diff --git a/public/assets/js/mammoth.browser.js b/public/assets/js/mammoth.browser.js index da64ed8..8f01d9e 100644 --- a/public/assets/js/mammoth.browser.js +++ b/public/assets/js/mammoth.browser.js @@ -1,24 +1,33 @@ -// Module: @xmldom/xmldom@0.8.6 -// License: MIT -// -// Module: base64-js@1.5.1 +// Module: base64-js@1.2.0 // License: MIT // // Module: bluebird@3.4.7 // License: MIT // +// Module: buffer-shims@1.0.0 +// License: MIT +// // Module: buffer@4.9.1 // License: MIT // +// Module: core-util-is@1.0.2 +// License: MIT +// // Module: dingbat-to-unicode@1.0.1 // License: BSD-2-Clause // +// Module: events@1.1.1 +// License: MIT +// // Module: ieee754@1.1.8 // License: BSD-3-Clause // // Module: inherits@2.0.1 // License: ISC // +// Module: inherits@2.0.3 +// License: ISC +// // Module: isarray@1.0.0 // License: MIT // @@ -28,7 +37,7 @@ // Module: lop@0.4.1 // License: BSD-2-Clause // -// Module: mammoth@1.6.0 +// Module: mammoth@1.4.19 // License: BSD-2-Clause // // Module: option@0.2.4 @@ -37,12 +46,30 @@ // Module: path-browserify@0.0.0 // License: MIT // +// Module: process-nextick-args@1.0.7 +// License: MIT +// // Module: process@0.11.9 // License: MIT // +// Module: readable-stream@2.2.6 +// License: MIT +// +// Module: sax@1.1.6 +// License: ISC +// +// Module: stream-browserify@2.0.1 +// License: MIT +// +// Module: string_decoder@0.10.31 +// License: MIT +// // Module: underscore@1.13.1 // License: MIT // +// Module: util-deprecate@1.0.2 +// License: MIT +// // Module: util@0.10.3 // License: MIT // @@ -81,7 +108,7 @@ } } - }, { "../lib/promises": 23, "../lib/zipfile": 40 }], 3: [function (require, module, exports) { + }, { "../lib/promises": 23, "../lib/zipfile": 39 }], 3: [function (require, module, exports) { var _ = require("underscore"); var promises = require("./promises"); @@ -539,255 +566,232 @@ return comment.authorInitials || ""; }; - }, { "./documents": 4, "./html": 18, "./images": 20, "./promises": 23, "./results": 25, "./styles/html-paths": 28, "./writers": 33, "underscore": 103 }], 4: [function (require, module, exports) { - (function (Buffer) { - var _ = require("underscore"); + }, { "./documents": 4, "./html": 18, "./images": 20, "./promises": 23, "./results": 25, "./styles/html-paths": 28, "./writers": 33, "underscore": 117 }], 4: [function (require, module, exports) { + var _ = require("underscore"); - var types = exports.types = { - document: "document", - paragraph: "paragraph", - run: "run", - text: "text", - tab: "tab", - hyperlink: "hyperlink", - noteReference: "noteReference", - image: "image", - note: "note", - commentReference: "commentReference", - comment: "comment", - table: "table", - tableRow: "tableRow", - tableCell: "tableCell", - "break": "break", - bookmarkStart: "bookmarkStart" + var types = exports.types = { + document: "document", + paragraph: "paragraph", + run: "run", + text: "text", + tab: "tab", + hyperlink: "hyperlink", + noteReference: "noteReference", + image: "image", + note: "note", + commentReference: "commentReference", + comment: "comment", + table: "table", + tableRow: "tableRow", + tableCell: "tableCell", + "break": "break", + bookmarkStart: "bookmarkStart" + }; + + function Document(children, options) { + options = options || {}; + return { + type: types.document, + children: children, + notes: options.notes || new Notes({}), + comments: options.comments || [] }; + } - function Document(children, options) { - options = options || {}; - return { - type: types.document, - children: children, - notes: options.notes || new Notes({}), - comments: options.comments || [] - }; - } - - function Paragraph(children, properties) { - properties = properties || {}; - var indent = properties.indent || {}; - return { - type: types.paragraph, - children: children, - styleId: properties.styleId || null, - styleName: properties.styleName || null, - numbering: properties.numbering || null, - alignment: properties.alignment || null, - indent: { - start: indent.start || null, - end: indent.end || null, - firstLine: indent.firstLine || null, - hanging: indent.hanging || null - } - }; - } - - function Run(children, properties) { - properties = properties || {}; - return { - type: types.run, - children: children, - styleId: properties.styleId || null, - styleName: properties.styleName || null, - isBold: !!properties.isBold, - isUnderline: !!properties.isUnderline, - isItalic: !!properties.isItalic, - isStrikethrough: !!properties.isStrikethrough, - isAllCaps: !!properties.isAllCaps, - isSmallCaps: !!properties.isSmallCaps, - verticalAlignment: properties.verticalAlignment || verticalAlignment.baseline, - font: properties.font || null, - fontSize: properties.fontSize || null - }; - } - - var verticalAlignment = { - baseline: "baseline", - superscript: "superscript", - subscript: "subscript" + function Paragraph(children, properties) { + properties = properties || {}; + var indent = properties.indent || {}; + return { + type: types.paragraph, + children: children, + styleId: properties.styleId || null, + styleName: properties.styleName || null, + numbering: properties.numbering || null, + alignment: properties.alignment || null, + indent: { + start: indent.start || null, + end: indent.end || null, + firstLine: indent.firstLine || null, + hanging: indent.hanging || null + } }; + } - function Text(value) { - return { - type: types.text, - value: value - }; - } - - function Tab() { - return { - type: types.tab - }; - } - - function Hyperlink(children, options) { - return { - type: types.hyperlink, - children: children, - href: options.href, - anchor: options.anchor, - targetFrame: options.targetFrame - }; - } - - function NoteReference(options) { - return { - type: types.noteReference, - noteType: options.noteType, - noteId: options.noteId - }; - } - - function Notes(notes) { - this._notes = _.indexBy(notes, function (note) { - return noteKey(note.noteType, note.noteId); - }); - } - - Notes.prototype.resolve = function (reference) { - return this.findNoteByKey(noteKey(reference.noteType, reference.noteId)); + function Run(children, properties) { + properties = properties || {}; + return { + type: types.run, + children: children, + styleId: properties.styleId || null, + styleName: properties.styleName || null, + isBold: properties.isBold, + isUnderline: properties.isUnderline, + isItalic: properties.isItalic, + isStrikethrough: properties.isStrikethrough, + isAllCaps: properties.isAllCaps, + isSmallCaps: properties.isSmallCaps, + verticalAlignment: properties.verticalAlignment || verticalAlignment.baseline, + font: properties.font || null, + fontSize: properties.fontSize || null }; + } - Notes.prototype.findNoteByKey = function (key) { - return this._notes[key] || null; + var verticalAlignment = { + baseline: "baseline", + superscript: "superscript", + subscript: "subscript" + }; + + function Text(value) { + return { + type: types.text, + value: value }; + } - function Note(options) { - return { - type: types.note, - noteType: options.noteType, - noteId: options.noteId, - body: options.body - }; - } + function Tab() { + return { + type: types.tab + }; + } - function commentReference(options) { - return { - type: types.commentReference, - commentId: options.commentId - }; - } + function Hyperlink(children, options) { + return { + type: types.hyperlink, + children: children, + href: options.href, + anchor: options.anchor, + targetFrame: options.targetFrame + }; + } - function comment(options) { - return { - type: types.comment, - commentId: options.commentId, - body: options.body, - authorName: options.authorName, - authorInitials: options.authorInitials - }; - } + function NoteReference(options) { + return { + type: types.noteReference, + noteType: options.noteType, + noteId: options.noteId + }; + } - function noteKey(noteType, id) { - return noteType + "-" + id; - } + function Notes(notes) { + this._notes = _.indexBy(notes, function (note) { + return noteKey(note.noteType, note.noteId); + }); + } - function Image(options) { - return { - type: types.image, - // `read` is retained for backwards compatibility, but other read - // methods should be preferred. - read: function (encoding) { - if (encoding) { - return options.readImage(encoding); - } else { - return options.readImage().then(function (arrayBuffer) { - return Buffer.from(arrayBuffer); - }); - } - }, - readAsArrayBuffer: function () { - return options.readImage(); - }, - readAsBase64String: function () { - return options.readImage("base64"); - }, - readAsBuffer: function () { - return options.readImage().then(function (arrayBuffer) { - return Buffer.from(arrayBuffer); - }); - }, - altText: options.altText, - contentType: options.contentType - }; - } + Notes.prototype.resolve = function (reference) { + return this.findNoteByKey(noteKey(reference.noteType, reference.noteId)); + }; - function Table(children, properties) { - properties = properties || {}; - return { - type: types.table, - children: children, - styleId: properties.styleId || null, - styleName: properties.styleName || null - }; - } + Notes.prototype.findNoteByKey = function (key) { + return this._notes[key] || null; + }; - function TableRow(children, options) { - options = options || {}; - return { - type: types.tableRow, - children: children, - isHeader: options.isHeader || false - }; - } + function Note(options) { + return { + type: types.note, + noteType: options.noteType, + noteId: options.noteId, + body: options.body + }; + } - function TableCell(children, options) { - options = options || {}; - return { - type: types.tableCell, - children: children, - colSpan: options.colSpan == null ? 1 : options.colSpan, - rowSpan: options.rowSpan == null ? 1 : options.rowSpan - }; - } + function commentReference(options) { + return { + type: types.commentReference, + commentId: options.commentId + }; + } - function Break(breakType) { - return { - type: types["break"], - breakType: breakType - }; - } + function comment(options) { + return { + type: types.comment, + commentId: options.commentId, + body: options.body, + authorName: options.authorName, + authorInitials: options.authorInitials + }; + } - function BookmarkStart(options) { - return { - type: types.bookmarkStart, - name: options.name - }; - } + function noteKey(noteType, id) { + return noteType + "-" + id; + } - exports.document = exports.Document = Document; - exports.paragraph = exports.Paragraph = Paragraph; - exports.run = exports.Run = Run; - exports.text = exports.Text = Text; - exports.tab = exports.Tab = Tab; - exports.Hyperlink = Hyperlink; - exports.noteReference = exports.NoteReference = NoteReference; - exports.Notes = Notes; - exports.Note = Note; - exports.commentReference = commentReference; - exports.comment = comment; - exports.Image = Image; - exports.Table = Table; - exports.TableRow = TableRow; - exports.TableCell = TableCell; - exports.lineBreak = Break("line"); - exports.pageBreak = Break("page"); - exports.columnBreak = Break("column"); - exports.BookmarkStart = BookmarkStart; + function Image(options) { + return { + type: types.image, + read: options.readImage, + altText: options.altText, + contentType: options.contentType + }; + } - exports.verticalAlignment = verticalAlignment; + function Table(children, properties) { + properties = properties || {}; + return { + type: types.table, + children: children, + styleId: properties.styleId || null, + styleName: properties.styleName || null + }; + } - }).call(this, require("buffer").Buffer) - }, { "buffer": 83, "underscore": 103 }], 5: [function (require, module, exports) { + function TableRow(children, options) { + options = options || {}; + return { + type: types.tableRow, + children: children, + isHeader: options.isHeader || false + }; + } + + function TableCell(children, options) { + options = options || {}; + return { + type: types.tableCell, + children: children, + colSpan: options.colSpan == null ? 1 : options.colSpan, + rowSpan: options.rowSpan == null ? 1 : options.rowSpan + }; + } + + function Break(breakType) { + return { + type: types["break"], + breakType: breakType + }; + } + + function BookmarkStart(options) { + return { + type: types.bookmarkStart, + name: options.name + }; + } + + exports.document = exports.Document = Document; + exports.paragraph = exports.Paragraph = Paragraph; + exports.run = exports.Run = Run; + exports.Text = Text; + exports.tab = exports.Tab = Tab; + exports.Hyperlink = Hyperlink; + exports.noteReference = exports.NoteReference = NoteReference; + exports.Notes = Notes; + exports.Note = Note; + exports.commentReference = commentReference; + exports.comment = comment; + exports.Image = Image; + exports.Table = Table; + exports.TableRow = TableRow; + exports.TableCell = TableCell; + exports.lineBreak = Break("line"); + exports.pageBreak = Break("page"); + exports.columnBreak = Break("column"); + exports.BookmarkStart = BookmarkStart; + + exports.verticalAlignment = verticalAlignment; + + }, { "underscore": 117 }], 5: [function (require, module, exports) { exports.createBodyReader = createBodyReader; exports._readNumberingProperties = readNumberingProperties; @@ -813,12 +817,6 @@ function BodyReader(options) { var complexFieldStack = []; var currentInstrText = []; - - // When a paragraph is marked as deleted, its contents should be combined - // with the following paragraph. See 17.13.5.15 del (Deleted Paragraph) of - // ECMA-376 4th edition Part 1. - var deletedParagraphContents = []; - var relationships = options.relationships; var contentTypes = options.contentTypes; var docxFile = options.docxFile; @@ -844,19 +842,6 @@ return emptyResult(); } - function readParagraphProperties(element) { - return readParagraphStyle(element).map(function (style) { - return { - type: "paragraphProperties", - styleId: style.styleId, - styleName: style.name, - alignment: element.firstOrEmpty("w:jc").attributes["w:val"], - numbering: readNumberingProperties(style.styleId, element.firstOrEmpty("w:numPr"), numbering), - indent: readParagraphIndent(element.firstOrEmpty("w:ind")) - }; - }); - } - function readParagraphIndent(element) { return { start: element.attributes["w:start"] || element.attributes["w:left"], @@ -892,7 +877,7 @@ function readUnderline(element) { if (element) { var value = element.attributes["w:val"]; - return value !== undefined && value !== "false" && value !== "0" && value !== "none"; + return value !== "false" && value !== "0" && value !== "none"; } else { return false; } @@ -1022,46 +1007,43 @@ var xmlElementReaders = { "w:p": function (element) { - var paragraphPropertiesElement = element.firstOrEmpty("w:pPr"); - - var isDeleted = !!paragraphPropertiesElement - .firstOrEmpty("w:rPr") - .first("w:del"); - - if (isDeleted) { - element.children.forEach(function (child) { - deletedParagraphContents.push(child); - }); - return emptyResult(); - } else { - var childrenXml = element.children; - if (deletedParagraphContents.length > 0) { - childrenXml = deletedParagraphContents.concat(childrenXml); - deletedParagraphContents = []; - } - return ReadResult.map( - readParagraphProperties(paragraphPropertiesElement), - readXmlElements(childrenXml), - function (properties, children) { - return new documents.Paragraph(children, properties); - } - ).insertExtra(); - } + return readXmlElements(element.children) + .map(function (children) { + var properties = _.find(children, isParagraphProperties); + return new documents.Paragraph( + children.filter(negate(isParagraphProperties)), + properties + ); + }) + .insertExtra(); + }, + "w:pPr": function (element) { + return readParagraphStyle(element).map(function (style) { + return { + type: "paragraphProperties", + styleId: style.styleId, + styleName: style.name, + alignment: element.firstOrEmpty("w:jc").attributes["w:val"], + numbering: readNumberingProperties(style.styleId, element.firstOrEmpty("w:numPr"), numbering), + indent: readParagraphIndent(element.firstOrEmpty("w:ind")) + }; + }); }, "w:r": function (element) { - return ReadResult.map( - readRunProperties(element.firstOrEmpty("w:rPr")), - readXmlElements(element.children), - function (properties, children) { + return readXmlElements(element.children) + .map(function (children) { + var properties = _.find(children, isRunProperties); + children = children.filter(negate(isRunProperties)); + var hyperlinkOptions = currentHyperlinkOptions(); if (hyperlinkOptions !== null) { children = [new documents.Hyperlink(children, hyperlinkOptions)]; } return new documents.Run(children, properties); - } - ); + }); }, + "w:rPr": readRunProperties, "w:fldChar": readFldChar, "w:instrText": readInstrText, "w:t": function (element) { @@ -1274,12 +1256,7 @@ function readBlip(element, blip) { var properties = element.first("wp:docPr").attributes; var altText = isBlank(properties.descr) ? properties.title : properties.descr; - var blipImageFile = findBlipImageFile(blip); - if (blipImageFile === null) { - return emptyResultWithMessages([warning("Could not find image file for a:blip element")]); - } else { - return readImage(blipImageFile, altText); - } + return readImage(findBlipImageFile(blip), altText); } function isBlank(value) { @@ -1291,14 +1268,12 @@ var linkRelationshipId = blip.attributes["r:link"]; if (embedRelationshipId) { return findEmbeddedImageFile(embedRelationshipId); - } else if (linkRelationshipId) { + } else { var imagePath = relationships.findTargetByRelationshipId(linkRelationshipId); return { path: imagePath, read: files.read.bind(files, imagePath) }; - } else { - return null; } } @@ -1381,14 +1356,27 @@ "w:del": true, "w:footnoteRef": true, "w:endnoteRef": true, - "w:pPr": true, - "w:rPr": true, "w:tblPr": true, "w:tblGrid": true, "w:trPr": true, "w:tcPr": true }; + function isParagraphProperties(element) { + return element.type === "paragraphProperties"; + } + + function isRunProperties(element) { + return element.type === "runProperties"; + } + + function negate(predicate) { + return function (value) { + return !predicate(value); + }; + } + + function emptyResultWithMessages(messages) { return new ReadResult(null, null, messages); } @@ -1407,7 +1395,7 @@ function ReadResult(element, extra, messages) { this.value = element || []; - this.extra = extra || []; + this.extra = extra; this._result = new Result({ element: this.value, extra: extra @@ -1442,14 +1430,6 @@ return new ReadResult(result.value.element, joinElements(this.extra, result.value.extra), result.messages); }; - ReadResult.map = function (first, second, func) { - return new ReadResult( - func(first.value, second.value), - joinElements(first.extra, second.extra), - first.messages.concat(second.messages) - ); - }; - function combineResults(results) { var result = Result.combine(_.pluck(results, "_result")); return new ReadResult( @@ -1467,7 +1447,7 @@ return value; } - }, { "../documents": 4, "../results": 25, "./uris": 16, "dingbat-to-unicode": 85, "underscore": 103 }], 6: [function (require, module, exports) { + }, { "../documents": 4, "../results": 25, "./uris": 16, "dingbat-to-unicode": 81, "underscore": 117 }], 6: [function (require, module, exports) { var documents = require("../documents"); var Result = require("../results").Result; @@ -1812,7 +1792,7 @@ defaultValue: relationshipsReader.defaultValue }); - }, { "../documents": 4, "../promises": 23, "../results": 25, "../zipfile": 40, "./body-reader": 5, "./comments-reader": 6, "./content-types-reader": 7, "./document-xml-reader": 8, "./files": 1, "./notes-reader": 10, "./numbering-xml": 11, "./office-xml-reader": 12, "./relationships-reader": 13, "./styles-reader": 15, "path": 101 }], 10: [function (require, module, exports) { + }, { "../documents": 4, "../promises": 23, "../results": 25, "../zipfile": 39, "./body-reader": 5, "./comments-reader": 6, "./content-types-reader": 7, "./document-xml-reader": 8, "./files": 1, "./notes-reader": 10, "./numbering-xml": 11, "./office-xml-reader": 12, "./relationships-reader": 13, "./styles-reader": 15, "path": 100 }], 10: [function (require, module, exports) { var documents = require("../documents"); var Result = require("../results").Result; @@ -1936,7 +1916,7 @@ return nums; } - }, { "underscore": 103 }], 12: [function (require, module, exports) { + }, { "underscore": 117 }], 12: [function (require, module, exports) { var _ = require("underscore"); var promises = require("../promises"); @@ -1996,7 +1976,7 @@ } } - }, { "../promises": 23, "../xml": 35, "underscore": 103 }], 13: [function (require, module, exports) { + }, { "../promises": 23, "../xml": 35, "underscore": 117 }], 13: [function (require, module, exports) { exports.readRelationships = readRelationships; exports.defaultValue = new Relationships([]); exports.Relationships = Relationships; @@ -2118,7 +2098,7 @@ } } - }, { "../promises": 23, "../xml": 35, "underscore": 103 }], 15: [function (require, module, exports) { + }, { "../promises": 23, "../xml": 35, "underscore": 117 }], 15: [function (require, module, exports) { exports.readStylesXml = readStylesXml; exports.Styles = Styles; exports.defaultStyles = new Styles({}, {}); @@ -2398,7 +2378,7 @@ module.exports = simplify; - }, { "./ast": 17, "underscore": 103 }], 20: [function (require, module, exports) { + }, { "./ast": 17, "underscore": 117 }], 20: [function (require, module, exports) { var _ = require("underscore"); var promises = require("./promises"); @@ -2409,12 +2389,10 @@ function imgElement(func) { return function (element, messages) { return promises.when(func(element)).then(function (result) { - var attributes = {}; + var attributes = _.clone(result); if (element.altText) { attributes.alt = element.altText; } - _.extend(attributes, result); - return [Html.freshElement("img", attributes)]; }); }; @@ -2424,129 +2402,124 @@ exports.inline = exports.imgElement; exports.dataUri = imgElement(function (element) { - return element.readAsBase64String().then(function (imageBuffer) { + return element.read("base64").then(function (imageBuffer) { return { src: "data:" + element.contentType + ";base64," + imageBuffer }; }); }); - }, { "./html": 18, "./promises": 23, "underscore": 103 }], 21: [function (require, module, exports) { - (function (Buffer) { - var _ = require("underscore"); + }, { "./html": 18, "./promises": 23, "underscore": 117 }], 21: [function (require, module, exports) { + var _ = require("underscore"); - var docxReader = require("./docx/docx-reader"); - var docxStyleMap = require("./docx/style-map"); - var DocumentConverter = require("./document-to-html").DocumentConverter; - var convertElementToRawText = require("./raw-text").convertElementToRawText; - var readStyle = require("./style-reader").readStyle; - var readOptions = require("./options-reader").readOptions; - var unzip = require("./unzip"); - var Result = require("./results").Result; + var docxReader = require("./docx/docx-reader"); + var docxStyleMap = require("./docx/style-map"); + var DocumentConverter = require("./document-to-html").DocumentConverter; + var convertElementToRawText = require("./raw-text").convertElementToRawText; + var readStyle = require("./style-reader").readStyle; + var readOptions = require("./options-reader").readOptions; + var unzip = require("./unzip"); + var Result = require("./results").Result; - exports.convertToHtml = convertToHtml; - exports.convertToMarkdown = convertToMarkdown; - exports.convert = convert; - exports.extractRawText = extractRawText; - exports.images = require("./images"); - exports.transforms = require("./transforms"); - exports.underline = require("./underline"); - exports.embedStyleMap = embedStyleMap; - exports.readEmbeddedStyleMap = readEmbeddedStyleMap; + exports.convertToHtml = convertToHtml; + exports.convertToMarkdown = convertToMarkdown; + exports.convert = convert; + exports.extractRawText = extractRawText; + exports.images = require("./images"); + exports.transforms = require("./transforms"); + exports.underline = require("./underline"); + exports.embedStyleMap = embedStyleMap; + exports.readEmbeddedStyleMap = readEmbeddedStyleMap; - function convertToHtml(input, options) { - return convert(input, options); - } + function convertToHtml(input, options) { + return convert(input, options); + } - function convertToMarkdown(input, options) { - var markdownOptions = Object.create(options || {}); - markdownOptions.outputFormat = "markdown"; - return convert(input, markdownOptions); - } + function convertToMarkdown(input, options) { + var markdownOptions = Object.create(options || {}); + markdownOptions.outputFormat = "markdown"; + return convert(input, markdownOptions); + } - function convert(input, options) { - options = readOptions(options); + function convert(input, options) { + options = readOptions(options); - return unzip.openZip(input) - .tap(function (docxFile) { - return docxStyleMap.readStyleMap(docxFile).then(function (styleMap) { - options.embeddedStyleMap = styleMap; - }); - }) - .then(function (docxFile) { - return docxReader.read(docxFile, input) - .then(function (documentResult) { - return documentResult.map(options.transformDocument); - }) - .then(function (documentResult) { - return convertDocumentToHtml(documentResult, options); - }); + return unzip.openZip(input) + .tap(function (docxFile) { + return docxStyleMap.readStyleMap(docxFile).then(function (styleMap) { + options.embeddedStyleMap = styleMap; }); - } - - function readEmbeddedStyleMap(input) { - return unzip.openZip(input) - .then(docxStyleMap.readStyleMap); - } - - function convertDocumentToHtml(documentResult, options) { - var styleMapResult = parseStyleMap(options.readStyleMap()); - var parsedOptions = _.extend({}, options, { - styleMap: styleMapResult.value + }) + .then(function (docxFile) { + return docxReader.read(docxFile, input) + .then(function (documentResult) { + return documentResult.map(options.transformDocument); + }) + .then(function (documentResult) { + return convertDocumentToHtml(documentResult, options); + }); }); - var documentConverter = new DocumentConverter(parsedOptions); + } - return documentResult.flatMapThen(function (document) { - return styleMapResult.flatMapThen(function (styleMap) { - return documentConverter.convertToHtml(document); + function readEmbeddedStyleMap(input) { + return unzip.openZip(input) + .then(docxStyleMap.readStyleMap); + } + + function convertDocumentToHtml(documentResult, options) { + var styleMapResult = parseStyleMap(options.readStyleMap()); + var parsedOptions = _.extend({}, options, { + styleMap: styleMapResult.value + }); + var documentConverter = new DocumentConverter(parsedOptions); + + return documentResult.flatMapThen(function (document) { + return styleMapResult.flatMapThen(function (styleMap) { + return documentConverter.convertToHtml(document); + }); + }); + } + + function parseStyleMap(styleMap) { + return Result.combine((styleMap || []).map(readStyle)) + .map(function (styleMap) { + return styleMap.filter(function (styleMapping) { + return !!styleMapping; }); }); - } - - function parseStyleMap(styleMap) { - return Result.combine((styleMap || []).map(readStyle)) - .map(function (styleMap) { - return styleMap.filter(function (styleMapping) { - return !!styleMapping; - }); - }); - } + } - function extractRawText(input) { - return unzip.openZip(input) - .then(docxReader.read) - .then(function (documentResult) { - return documentResult.map(convertElementToRawText); - }); - } + function extractRawText(input) { + return unzip.openZip(input) + .then(docxReader.read) + .then(function (documentResult) { + return documentResult.map(convertElementToRawText); + }); + } - function embedStyleMap(input, styleMap) { - return unzip.openZip(input) - .tap(function (docxFile) { - return docxStyleMap.writeStyleMap(docxFile, styleMap); - }) - .then(function (docxFile) { - return docxFile.toArrayBuffer(); - }) - .then(function (arrayBuffer) { - return { - toArrayBuffer: function () { - return arrayBuffer; - }, - toBuffer: function () { - return Buffer.from(arrayBuffer); - } - }; - }); - } + function embedStyleMap(input, styleMap) { + return unzip.openZip(input) + .tap(function (docxFile) { + return docxStyleMap.writeStyleMap(docxFile, styleMap); + }) + .then(function (docxFile) { + return docxFile.toBuffer(); + }) + .then(function (buffer) { + return { + toBuffer: function () { + return buffer; + } + }; + }); + } - exports.styleMapping = function () { - throw new Error('Use a raw string instead of mammoth.styleMapping e.g. "p[style-name=\'Title\'] => h1" instead of mammoth.styleMapping("p[style-name=\'Title\'] => h1")'); - }; + exports.styleMapping = function () { + throw new Error('Use a raw string instead of mammoth.styleMapping e.g. "p[style-name=\'Title\'] => h1" instead of mammoth.styleMapping("p[style-name=\'Title\'] => h1")'); + }; - }).call(this, require("buffer").Buffer) - }, { "./document-to-html": 3, "./docx/docx-reader": 9, "./docx/style-map": 14, "./images": 20, "./options-reader": 22, "./raw-text": 24, "./results": 25, "./style-reader": 26, "./transforms": 30, "./underline": 31, "./unzip": 2, "buffer": 83, "underscore": 103 }], 22: [function (require, module, exports) { + }, { "./document-to-html": 3, "./docx/docx-reader": 9, "./docx/style-map": 14, "./images": 20, "./options-reader": 22, "./raw-text": 24, "./results": 25, "./style-reader": 26, "./transforms": 30, "./underline": 31, "./unzip": 2, "underscore": 117 }], 22: [function (require, module, exports) { exports.readOptions = readOptions; @@ -2646,7 +2619,7 @@ return value; } - }, { "underscore": 103 }], 23: [function (require, module, exports) { + }, { "underscore": 117 }], 23: [function (require, module, exports) { var _ = require("underscore"); var bluebird = require("bluebird/js/release/promise")(); @@ -2690,7 +2663,7 @@ }; } - }, { "bluebird/js/release/promise": 68, "underscore": 103 }], 24: [function (require, module, exports) { + }, { "bluebird/js/release/promise": 61, "underscore": 117 }], 24: [function (require, module, exports) { var documents = require("./documents"); function convertElementToRawText(element) { @@ -2780,7 +2753,7 @@ return first.type === second.type && first.message === second.message; } - }, { "underscore": 103 }], 26: [function (require, module, exports) { + }, { "underscore": 117 }], 26: [function (require, module, exports) { var _ = require("underscore"); var lop = require("lop"); @@ -3105,7 +3078,7 @@ var styleRule = createStyleRule(); - }, { "./results": 25, "./styles/document-matchers": 27, "./styles/html-paths": 28, "./styles/parser/tokeniser": 29, "lop": 89, "underscore": 103 }], 27: [function (require, module, exports) { + }, { "./results": 25, "./styles/document-matchers": 27, "./styles/html-paths": 28, "./styles/parser/tokeniser": 29, "lop": 88, "underscore": 117 }], 27: [function (require, module, exports) { exports.paragraph = paragraph; exports.run = run; exports.table = table; @@ -3259,7 +3232,7 @@ } }; - }, { "../html": 18, "underscore": 103 }], 29: [function (require, module, exports) { + }, { "../html": 18, "underscore": 117 }], 29: [function (require, module, exports) { var lop = require("lop"); var RegexTokeniser = lop.RegexTokeniser; @@ -3291,7 +3264,7 @@ return tokeniser.tokenise(string); } - }, { "lop": 89 }], 30: [function (require, module, exports) { + }, { "lop": 88 }], 30: [function (require, module, exports) { var _ = require("underscore"); exports.paragraph = paragraph; @@ -3354,7 +3327,7 @@ } } - }, { "underscore": 103 }], 31: [function (require, module, exports) { + }, { "underscore": 117 }], 31: [function (require, module, exports) { var htmlPaths = require("./styles/html-paths"); var Html = require("./html"); @@ -3368,6 +3341,7 @@ } }, { "./html": 18, "./styles/html-paths": 28 }], 32: [function (require, module, exports) { + var util = require("util"); var _ = require("underscore"); exports.writer = writer; @@ -3473,21 +3447,21 @@ function open(tagName, attributes) { var attributeString = generateAttributeString(attributes); - fragments.push("<" + tagName + attributeString + ">"); + fragments.push(util.format("<%s%s>", tagName, attributeString)); } function close(tagName) { - fragments.push(""); + fragments.push(util.format("", tagName)); } function selfClosing(tagName, attributes) { var attributeString = generateAttributeString(attributes); - fragments.push("<" + tagName + attributeString + " />"); + fragments.push(util.format("<%s%s />", tagName, attributeString)); } function generateAttributeString(attributes) { return _.map(attributes, function (value, key) { - return " " + key + '="' + escapeHtmlAttribute(value) + '"'; + return util.format(' %s="%s"', key, escapeHtmlAttribute(value)); }).join(""); } @@ -3528,7 +3502,7 @@ .replace(/>/g, '>'); } - }, { "underscore": 103 }], 33: [function (require, module, exports) { + }, { "underscore": 117, "util": 121 }], 33: [function (require, module, exports) { var htmlWriter = require("./html-writer"); var markdownWriter = require("./markdown-writer"); @@ -3709,7 +3683,7 @@ .replace(/([\`\*_\{\}\[\]\(\)\#\+\-\.\!])/g, '\\$1'); } - }, { "underscore": 103 }], 35: [function (require, module, exports) { + }, { "underscore": 117 }], 35: [function (require, module, exports) { var nodes = require("./nodes"); exports.Element = nodes.Element; @@ -3789,78 +3763,92 @@ return _.extend(array, elementListPrototype); } - }, { "underscore": 103 }], 37: [function (require, module, exports) { + }, { "underscore": 117 }], 37: [function (require, module, exports) { var promises = require("../promises"); + var sax = require("sax"); var _ = require("underscore"); - var xmldom = require("./xmldom"); var nodes = require("./nodes"); var Element = nodes.Element; exports.readString = readString; - var Node = xmldom.Node; - function readString(xmlString, namespaceMap) { namespaceMap = namespaceMap || {}; - try { - var document = xmldom.parseFromString(xmlString, "text/xml"); - } catch (error) { - return promises.reject(error); - } + var finished = false; + var parser = sax.parser(true, { xmlns: true, position: false }); - if (document.documentElement.tagName === "parsererror") { - return promises.resolve(new Error(document.documentElement.textContent)); - } + var rootElement = { children: [] }; + var currentElement = rootElement; + var stack = []; - function convertNode(node) { - switch (node.nodeType) { - case Node.ELEMENT_NODE: - return convertElement(node); - case Node.TEXT_NODE: - return nodes.text(node.nodeValue); - } - } + var deferred = promises.defer(); - function convertElement(element) { - var convertedName = convertName(element); + parser.onopentag = function (node) { + var attributes = mapObject(node.attributes, function (attribute) { + return attribute.value; + }, mapName); - var convertedChildren = []; - _.forEach(element.childNodes, function (childNode) { - var convertedNode = convertNode(childNode); - if (convertedNode) { - convertedChildren.push(convertedNode); - } - }); + var element = new Element(mapName(node), attributes); + currentElement.children.push(element); + stack.push(currentElement); + currentElement = element; + }; - var convertedAttributes = {}; - _.forEach(element.attributes, function (attribute) { - convertedAttributes[convertName(attribute)] = attribute.value; - }); - - return new Element(convertedName, convertedAttributes, convertedChildren); - } - - function convertName(node) { - if (node.namespaceURI) { - var mappedPrefix = namespaceMap[node.namespaceURI]; + function mapName(node) { + if (node.uri) { + var mappedPrefix = namespaceMap[node.uri]; var prefix; if (mappedPrefix) { prefix = mappedPrefix + ":"; } else { - prefix = "{" + node.namespaceURI + "}"; + prefix = "{" + node.uri + "}"; } - return prefix + node.localName; + return prefix + node.local; } else { - return node.localName; + return node.local; } } - return promises.resolve(convertNode(document.documentElement)); + parser.onclosetag = function (node) { + currentElement = stack.pop(); + }; + + parser.ontext = function (text) { + if (currentElement !== rootElement) { + currentElement.children.push(nodes.text(text)); + } + }; + + parser.onend = function () { + if (!finished) { + finished = true; + deferred.resolve(rootElement.children[0]); + } + }; + + parser.onerror = function (error) { + if (!finished) { + finished = true; + deferred.reject(error); + } + }; + + parser.write(xmlString).close(); + + return deferred.promise; } - }, { "../promises": 23, "./nodes": 36, "./xmldom": 39, "underscore": 103 }], 38: [function (require, module, exports) { + function mapObject(input, valueFunc, keyFunc) { + return _.reduce(input, function (result, value, key) { + var mappedKey = keyFunc(value, key, input); + result[mappedKey] = valueFunc(value, key, input); + return result; + }, {}); + } + + }, { "../promises": 23, "./nodes": 36, "sax": 114, "underscore": 117 }], 38: [function (require, module, exports) { var _ = require("underscore"); var xmlbuilder = require("xmlbuilder"); @@ -3923,3413 +3911,88 @@ builder.text(node.value); } - }, { "underscore": 103, "xmlbuilder": 128 }], 39: [function (require, module, exports) { - var xmldom = require("@xmldom/xmldom"); - var dom = require("@xmldom/xmldom/lib/dom"); + }, { "underscore": 117, "xmlbuilder": 143 }], 39: [function (require, module, exports) { + (function (Buffer) { + var JSZip = require("jszip"); - function parseFromString(string) { - var error = null; + exports.openArrayBuffer = openArrayBuffer; + exports.splitPath = splitPath; + exports.joinPath = joinPath; - var domParser = new xmldom.DOMParser({ - errorHandler: function (level, message) { - error = { level: level, message: message }; - } - }); - - var document = domParser.parseFromString(string); - - if (error === null) { - return document; - } else { - throw new Error(error.level + ": " + error.message); - } - } - - exports.parseFromString = parseFromString; - exports.Node = dom.Node; - - }, { "@xmldom/xmldom": 45, "@xmldom/xmldom/lib/dom": 43 }], 40: [function (require, module, exports) { - var base64js = require("base64-js"); - var JSZip = require("jszip"); - - exports.openArrayBuffer = openArrayBuffer; - exports.splitPath = splitPath; - exports.joinPath = joinPath; - - function openArrayBuffer(arrayBuffer) { - return JSZip.loadAsync(arrayBuffer).then(function (zipFile) { - function exists(name) { - return zipFile.file(name) !== null; - } - - function read(name, encoding) { - return zipFile.file(name).async("uint8array").then(function (array) { - if (encoding === "base64") { - return base64js.fromByteArray(array); - } else if (encoding) { - var decoder = new TextDecoder(encoding); - return decoder.decode(array); - } else { - return array; - } - }); - } - - function write(name, contents) { - zipFile.file(name, contents); - } - - function toArrayBuffer() { - return zipFile.generateAsync({ type: "arraybuffer" }); - } - - return { - exists: exists, - read: read, - write: write, - toArrayBuffer: toArrayBuffer - }; - }); - } - - function splitPath(path) { - var lastIndex = path.lastIndexOf("/"); - if (lastIndex === -1) { - return { dirname: "", basename: path }; - } else { - return { - dirname: path.substring(0, lastIndex), - basename: path.substring(lastIndex + 1) - }; - } - } - - function joinPath() { - var nonEmptyPaths = Array.prototype.filter.call(arguments, function (path) { - return path; - }); - - var relevantPaths = []; - - nonEmptyPaths.forEach(function (path) { - if (/^\//.test(path)) { - relevantPaths = [path]; - } else { - relevantPaths.push(path); - } - }); - - return relevantPaths.join("/"); - } - - }, { "base64-js": 47, "jszip": 88 }], 41: [function (require, module, exports) { - 'use strict' - - /** - * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes. - * - * Works with anything that has a `length` property and index access properties, including NodeList. - * - * @template {unknown} T - * @param {Array | ({length:number, [number]: T})} list - * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate - * @param {Partial>?} ac `Array.prototype` by default, - * allows injecting a custom implementation in tests - * @returns {T | undefined} - * - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find - * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find - */ - function find(list, predicate, ac) { - if (ac === undefined) { - ac = Array.prototype; - } - if (list && typeof ac.find === 'function') { - return ac.find.call(list, predicate); - } - for (var i = 0; i < list.length; i++) { - if (Object.prototype.hasOwnProperty.call(list, i)) { - var item = list[i]; - if (predicate.call(undefined, item, i, list)) { - return item; + function openArrayBuffer(arrayBuffer) { + return JSZip.loadAsync(arrayBuffer).then(function (zipFile) { + function exists(name) { + return zipFile.file(name) !== null; } - } - } - } - /** - * "Shallow freezes" an object to render it immutable. - * Uses `Object.freeze` if available, - * otherwise the immutability is only in the type. - * - * Is used to create "enum like" objects. - * - * @template T - * @param {T} object the object to freeze - * @param {Pick = Object} oc `Object` by default, - * allows to inject custom object constructor for tests - * @returns {Readonly} - * - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze - */ - function freeze(object, oc) { - if (oc === undefined) { - oc = Object - } - return oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object - } - - /** - * Since we can not rely on `Object.assign` we provide a simplified version - * that is sufficient for our needs. - * - * @param {Object} target - * @param {Object | null | undefined} source - * - * @returns {Object} target - * @throws TypeError if target is not an object - * - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign - * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign - */ - function assign(target, source) { - if (target === null || typeof target !== 'object') { - throw new TypeError('target is not an object') - } - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key] - } - } - return target - } - - /** - * All mime types that are allowed as input to `DOMParser.parseFromString` - * - * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN - * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec - * @see DOMParser.prototype.parseFromString - */ - var MIME_TYPE = freeze({ - /** - * `text/html`, the only mime type that triggers treating an XML document as HTML. - * - * @see DOMParser.SupportedType.isHTML - * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration - * @see https://en.wikipedia.org/wiki/HTML Wikipedia - * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN - * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec - */ - HTML: 'text/html', - - /** - * Helper method to check a mime type if it indicates an HTML document - * - * @param {string} [value] - * @returns {boolean} - * - * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration - * @see https://en.wikipedia.org/wiki/HTML Wikipedia - * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN - * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring */ - isHTML: function (value) { - return value === MIME_TYPE.HTML - }, - - /** - * `application/xml`, the standard mime type for XML documents. - * - * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration - * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303 - * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia - */ - XML_APPLICATION: 'application/xml', - - /** - * `text/html`, an alias for `application/xml`. - * - * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303 - * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration - * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia - */ - XML_TEXT: 'text/xml', - - /** - * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace, - * but is parsed as an XML document. - * - * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration - * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec - * @see https://en.wikipedia.org/wiki/XHTML Wikipedia - */ - XML_XHTML_APPLICATION: 'application/xhtml+xml', - - /** - * `image/svg+xml`, - * - * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration - * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1 - * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia - */ - XML_SVG_IMAGE: 'image/svg+xml', - }) - - /** - * Namespaces that are used in this code base. - * - * @see http://www.w3.org/TR/REC-xml-names - */ - var NAMESPACE = freeze({ - /** - * The XHTML namespace. - * - * @see http://www.w3.org/1999/xhtml - */ - HTML: 'http://www.w3.org/1999/xhtml', - - /** - * Checks if `uri` equals `NAMESPACE.HTML`. - * - * @param {string} [uri] - * - * @see NAMESPACE.HTML - */ - isHTML: function (uri) { - return uri === NAMESPACE.HTML - }, - - /** - * The SVG namespace. - * - * @see http://www.w3.org/2000/svg - */ - SVG: 'http://www.w3.org/2000/svg', - - /** - * The `xml:` namespace. - * - * @see http://www.w3.org/XML/1998/namespace - */ - XML: 'http://www.w3.org/XML/1998/namespace', - - /** - * The `xmlns:` namespace - * - * @see https://www.w3.org/2000/xmlns/ - */ - XMLNS: 'http://www.w3.org/2000/xmlns/', - }) - - exports.assign = assign; - exports.find = find; - exports.freeze = freeze; - exports.MIME_TYPE = MIME_TYPE; - exports.NAMESPACE = NAMESPACE; - - }, {}], 42: [function (require, module, exports) { - var conventions = require("./conventions"); - var dom = require('./dom') - var entities = require('./entities'); - var sax = require('./sax'); - - var DOMImplementation = dom.DOMImplementation; - - var NAMESPACE = conventions.NAMESPACE; - - var ParseError = sax.ParseError; - var XMLReader = sax.XMLReader; - - /** - * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends: - * - * > XML parsed entities are often stored in computer files which, - * > for editing convenience, are organized into lines. - * > These lines are typically separated by some combination - * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA). - * > - * > To simplify the tasks of applications, the XML processor must behave - * > as if it normalized all line breaks in external parsed entities (including the document entity) - * > on input, before parsing, by translating all of the following to a single #xA character: - * > - * > 1. the two-character sequence #xD #xA - * > 2. the two-character sequence #xD #x85 - * > 3. the single character #x85 - * > 4. the single character #x2028 - * > 5. any #xD character that is not immediately followed by #xA or #x85. - * - * @param {string} input - * @returns {string} - */ - function normalizeLineEndings(input) { - return input - .replace(/\r[\n\u0085]/g, '\n') - .replace(/[\r\u0085\u2028]/g, '\n') - } - - /** - * @typedef Locator - * @property {number} [columnNumber] - * @property {number} [lineNumber] - */ - - /** - * @typedef DOMParserOptions - * @property {DOMHandler} [domBuilder] - * @property {Function} [errorHandler] - * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing - * defaults to `normalizeLineEndings` - * @property {Locator} [locator] - * @property {Record} [xmlns] - * - * @see normalizeLineEndings - */ - - /** - * The DOMParser interface provides the ability to parse XML or HTML source code - * from a string into a DOM `Document`. - * - * _xmldom is different from the spec in that it allows an `options` parameter, - * to override the default behavior._ - * - * @param {DOMParserOptions} [options] - * @constructor - * - * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser - * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization - */ - function DOMParser(options) { - this.options = options || { locator: {} }; - } - - DOMParser.prototype.parseFromString = function (source, mimeType) { - var options = this.options; - var sax = new XMLReader(); - var domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler - var errorHandler = options.errorHandler; - var locator = options.locator; - var defaultNSMap = options.xmlns || {}; - var isHTML = /\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1; - var entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES; - if (locator) { - domBuilder.setDocumentLocator(locator) - } - - sax.errorHandler = buildErrorHandler(errorHandler, domBuilder, locator); - sax.domBuilder = options.domBuilder || domBuilder; - if (isHTML) { - defaultNSMap[''] = NAMESPACE.HTML; - } - defaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML; - var normalize = options.normalizeLineEndings || normalizeLineEndings; - if (source && typeof source === 'string') { - sax.parse( - normalize(source), - defaultNSMap, - entityMap - ) - } else { - sax.errorHandler.error('invalid doc source') - } - return domBuilder.doc; - } - function buildErrorHandler(errorImpl, domBuilder, locator) { - if (!errorImpl) { - if (domBuilder instanceof DOMHandler) { - return domBuilder; - } - errorImpl = domBuilder; - } - var errorHandler = {} - var isCallback = errorImpl instanceof Function; - locator = locator || {} - function build(key) { - var fn = errorImpl[key]; - if (!fn && isCallback) { - fn = errorImpl.length == 2 ? function (msg) { errorImpl(key, msg) } : errorImpl; - } - errorHandler[key] = fn && function (msg) { - fn('[xmldom ' + key + ']\t' + msg + _locator(locator)); - } || function () { }; - } - build('warning'); - build('error'); - build('fatalError'); - return errorHandler; - } - - //console.log('#\n\n\n\n\n\n\n####') - /** - * +ContentHandler+ErrorHandler - * +LexicalHandler+EntityResolver2 - * -DeclHandler-DTDHandler - * - * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler - * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2 - * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html - */ - function DOMHandler() { - this.cdata = false; - } - function position(locator, node) { - node.lineNumber = locator.lineNumber; - node.columnNumber = locator.columnNumber; - } - /** - * @see org.xml.sax.ContentHandler#startDocument - * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html - */ - DOMHandler.prototype = { - startDocument: function () { - this.doc = new DOMImplementation().createDocument(null, null, null); - if (this.locator) { - this.doc.documentURI = this.locator.systemId; - } - }, - startElement: function (namespaceURI, localName, qName, attrs) { - var doc = this.doc; - var el = doc.createElementNS(namespaceURI, qName || localName); - var len = attrs.length; - appendElement(this, el); - this.currentElement = el; - - this.locator && position(this.locator, el) - for (var i = 0; i < len; i++) { - var namespaceURI = attrs.getURI(i); - var value = attrs.getValue(i); - var qName = attrs.getQName(i); - var attr = doc.createAttributeNS(namespaceURI, qName); - this.locator && position(attrs.getLocator(i), attr); - attr.value = attr.nodeValue = value; - el.setAttributeNode(attr) - } - }, - endElement: function (namespaceURI, localName, qName) { - var current = this.currentElement - var tagName = current.tagName; - this.currentElement = current.parentNode; - }, - startPrefixMapping: function (prefix, uri) { - }, - endPrefixMapping: function (prefix) { - }, - processingInstruction: function (target, data) { - var ins = this.doc.createProcessingInstruction(target, data); - this.locator && position(this.locator, ins) - appendElement(this, ins); - }, - ignorableWhitespace: function (ch, start, length) { - }, - characters: function (chars, start, length) { - chars = _toString.apply(this, arguments) - //console.log(chars) - if (chars) { - if (this.cdata) { - var charNode = this.doc.createCDATASection(chars); - } else { - var charNode = this.doc.createTextNode(chars); - } - if (this.currentElement) { - this.currentElement.appendChild(charNode); - } else if (/^\s*$/.test(chars)) { - this.doc.appendChild(charNode); - //process xml - } - this.locator && position(this.locator, charNode) - } - }, - skippedEntity: function (name) { - }, - endDocument: function () { - this.doc.normalize(); - }, - setDocumentLocator: function (locator) { - if (this.locator = locator) {// && !('lineNumber' in locator)){ - locator.lineNumber = 0; - } - }, - //LexicalHandler - comment: function (chars, start, length) { - chars = _toString.apply(this, arguments) - var comm = this.doc.createComment(chars); - this.locator && position(this.locator, comm) - appendElement(this, comm); - }, - - startCDATA: function () { - //used in characters() methods - this.cdata = true; - }, - endCDATA: function () { - this.cdata = false; - }, - - startDTD: function (name, publicId, systemId) { - var impl = this.doc.implementation; - if (impl && impl.createDocumentType) { - var dt = impl.createDocumentType(name, publicId, systemId); - this.locator && position(this.locator, dt) - appendElement(this, dt); - this.doc.doctype = dt; - } - }, - /** - * @see org.xml.sax.ErrorHandler - * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html - */ - warning: function (error) { - console.warn('[xmldom warning]\t' + error, _locator(this.locator)); - }, - error: function (error) { - console.error('[xmldom error]\t' + error, _locator(this.locator)); - }, - fatalError: function (error) { - throw new ParseError(error, this.locator); - } - } - function _locator(l) { - if (l) { - return '\n@' + (l.systemId || '') + '#[line:' + l.lineNumber + ',col:' + l.columnNumber + ']' - } - } - function _toString(chars, start, length) { - if (typeof chars == 'string') { - return chars.substr(start, length) - } else {//java sax connect width xmldom on rhino(what about: "? && !(chars instanceof String)") - if (chars.length >= start + length || start) { - return new java.lang.String(chars, start, length) + ''; - } - return chars; - } - } - - /* - * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html - * used method of org.xml.sax.ext.LexicalHandler: - * #comment(chars, start, length) - * #startCDATA() - * #endCDATA() - * #startDTD(name, publicId, systemId) - * - * - * IGNORED method of org.xml.sax.ext.LexicalHandler: - * #endDTD() - * #startEntity(name) - * #endEntity(name) - * - * - * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html - * IGNORED method of org.xml.sax.ext.DeclHandler - * #attributeDecl(eName, aName, type, mode, value) - * #elementDecl(name, model) - * #externalEntityDecl(name, publicId, systemId) - * #internalEntityDecl(name, value) - * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html - * IGNORED method of org.xml.sax.EntityResolver2 - * #resolveEntity(String name,String publicId,String baseURI,String systemId) - * #resolveEntity(publicId, systemId) - * #getExternalSubset(name, baseURI) - * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html - * IGNORED method of org.xml.sax.DTDHandler - * #notationDecl(name, publicId, systemId) {}; - * #unparsedEntityDecl(name, publicId, systemId, notationName) {}; - */ - "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, function (key) { - DOMHandler.prototype[key] = function () { return null } - }) - - /* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ - function appendElement(hander, node) { - if (!hander.currentElement) { - hander.doc.appendChild(node); - } else { - hander.currentElement.appendChild(node); - } - }//appendChild and setAttributeNS are preformance key - - exports.__DOMHandler = DOMHandler; - exports.normalizeLineEndings = normalizeLineEndings; - exports.DOMParser = DOMParser; - - }, { "./conventions": 41, "./dom": 43, "./entities": 44, "./sax": 46 }], 43: [function (require, module, exports) { - var conventions = require("./conventions"); - - var find = conventions.find; - var NAMESPACE = conventions.NAMESPACE; - - /** - * A prerequisite for `[].filter`, to drop elements that are empty - * @param {string} input - * @returns {boolean} - */ - function notEmptyString(input) { - return input !== '' - } - /** - * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace - * @see https://infra.spec.whatwg.org/#ascii-whitespace - * - * @param {string} input - * @returns {string[]} (can be empty) - */ - function splitOnASCIIWhitespace(input) { - // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE - return input ? input.split(/[\t\n\f\r ]+/).filter(notEmptyString) : [] - } - - /** - * Adds element as a key to current if it is not already present. - * - * @param {Record} current - * @param {string} element - * @returns {Record} - */ - function orderedSetReducer(current, element) { - if (!current.hasOwnProperty(element)) { - current[element] = true; - } - return current; - } - - /** - * @see https://infra.spec.whatwg.org/#ordered-set - * @param {string} input - * @returns {string[]} - */ - function toOrderedSet(input) { - if (!input) return []; - var list = splitOnASCIIWhitespace(input); - return Object.keys(list.reduce(orderedSetReducer, {})) - } - - /** - * Uses `list.indexOf` to implement something like `Array.prototype.includes`, - * which we can not rely on being available. - * - * @param {any[]} list - * @returns {function(any): boolean} - */ - function arrayIncludes(list) { - return function (element) { - return list && list.indexOf(element) !== -1; - } - } - - function copy(src, dest) { - for (var p in src) { - if (Object.prototype.hasOwnProperty.call(src, p)) { - dest[p] = src[p]; - } - } - } - - /** - ^\w+\.prototype\.([_\w]+)\s*=\s*((?:.*\{\s*?[\r\n][\s\S]*?^})|\S.*?(?=[;\r\n]));? - ^\w+\.prototype\.([_\w]+)\s*=\s*(\S.*?(?=[;\r\n]));? - */ - function _extends(Class, Super) { - var pt = Class.prototype; - if (!(pt instanceof Super)) { - function t() { }; - t.prototype = Super.prototype; - t = new t(); - copy(pt, t); - Class.prototype = pt = t; - } - if (pt.constructor != Class) { - if (typeof Class != 'function') { - console.error("unknown Class:" + Class) - } - pt.constructor = Class - } - } - - // Node Types - var NodeType = {} - var ELEMENT_NODE = NodeType.ELEMENT_NODE = 1; - var ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2; - var TEXT_NODE = NodeType.TEXT_NODE = 3; - var CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4; - var ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5; - var ENTITY_NODE = NodeType.ENTITY_NODE = 6; - var PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7; - var COMMENT_NODE = NodeType.COMMENT_NODE = 8; - var DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9; - var DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10; - var DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11; - var NOTATION_NODE = NodeType.NOTATION_NODE = 12; - - // ExceptionCode - var ExceptionCode = {} - var ExceptionMessage = {}; - var INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1] = "Index size error"), 1); - var DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2] = "DOMString size error"), 2); - var HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3] = "Hierarchy request error"), 3); - var WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4] = "Wrong document"), 4); - var INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5] = "Invalid character"), 5); - var NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6] = "No data allowed"), 6); - var NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7] = "No modification allowed"), 7); - var NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8] = "Not found"), 8); - var NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9] = "Not supported"), 9); - var INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10] = "Attribute in use"), 10); - //level2 - var INVALID_STATE_ERR = ExceptionCode.INVALID_STATE_ERR = ((ExceptionMessage[11] = "Invalid state"), 11); - var SYNTAX_ERR = ExceptionCode.SYNTAX_ERR = ((ExceptionMessage[12] = "Syntax error"), 12); - var INVALID_MODIFICATION_ERR = ExceptionCode.INVALID_MODIFICATION_ERR = ((ExceptionMessage[13] = "Invalid modification"), 13); - var NAMESPACE_ERR = ExceptionCode.NAMESPACE_ERR = ((ExceptionMessage[14] = "Invalid namespace"), 14); - var INVALID_ACCESS_ERR = ExceptionCode.INVALID_ACCESS_ERR = ((ExceptionMessage[15] = "Invalid access"), 15); - - /** - * DOM Level 2 - * Object DOMException - * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html - * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html - */ - function DOMException(code, message) { - if (message instanceof Error) { - var error = message; - } else { - error = this; - Error.call(this, ExceptionMessage[code]); - this.message = ExceptionMessage[code]; - if (Error.captureStackTrace) Error.captureStackTrace(this, DOMException); - } - error.code = code; - if (message) this.message = this.message + ": " + message; - return error; - }; - DOMException.prototype = Error.prototype; - copy(ExceptionCode, DOMException) - - /** - * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177 - * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live. - * The items in the NodeList are accessible via an integral index, starting from 0. - */ - function NodeList() { - }; - NodeList.prototype = { - /** - * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive. - * @standard level1 - */ - length: 0, - /** - * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null. - * @standard level1 - * @param index unsigned long - * Index into the collection. - * @return Node - * The node at the indexth position in the NodeList, or null if that is not a valid index. - */ - item: function (index) { - return this[index] || null; - }, - toString: function (isHTML, nodeFilter) { - for (var buf = [], i = 0; i < this.length; i++) { - serializeToString(this[i], buf, isHTML, nodeFilter); - } - return buf.join(''); - }, - /** - * @private - * @param {function (Node):boolean} predicate - * @returns {Node[]} - */ - filter: function (predicate) { - return Array.prototype.filter.call(this, predicate); - }, - /** - * @private - * @param {Node} item - * @returns {number} - */ - indexOf: function (item) { - return Array.prototype.indexOf.call(this, item); - }, - }; - - function LiveNodeList(node, refresh) { - this._node = node; - this._refresh = refresh - _updateLiveList(this); - } - function _updateLiveList(list) { - var inc = list._node._inc || list._node.ownerDocument._inc; - if (list._inc != inc) { - var ls = list._refresh(list._node); - //console.log(ls.length) - __set__(list, 'length', ls.length); - copy(ls, list); - list._inc = inc; - } - } - LiveNodeList.prototype.item = function (i) { - _updateLiveList(this); - return this[i]; - } - - _extends(LiveNodeList, NodeList); - - /** - * Objects implementing the NamedNodeMap interface are used - * to represent collections of nodes that can be accessed by name. - * Note that NamedNodeMap does not inherit from NodeList; - * NamedNodeMaps are not maintained in any particular order. - * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index, - * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap, - * and does not imply that the DOM specifies an order to these Nodes. - * NamedNodeMap objects in the DOM are live. - * used for attributes or DocumentType entities - */ - function NamedNodeMap() { - }; - - function _findNodeIndex(list, node) { - var i = list.length; - while (i--) { - if (list[i] === node) { return i } - } - } - - function _addNamedNode(el, list, newAttr, oldAttr) { - if (oldAttr) { - list[_findNodeIndex(list, oldAttr)] = newAttr; - } else { - list[list.length++] = newAttr; - } - if (el) { - newAttr.ownerElement = el; - var doc = el.ownerDocument; - if (doc) { - oldAttr && _onRemoveAttribute(doc, el, oldAttr); - _onAddAttribute(doc, el, newAttr); - } - } - } - function _removeNamedNode(el, list, attr) { - //console.log('remove attr:'+attr) - var i = _findNodeIndex(list, attr); - if (i >= 0) { - var lastIndex = list.length - 1 - while (i < lastIndex) { - list[i] = list[++i] - } - list.length = lastIndex; - if (el) { - var doc = el.ownerDocument; - if (doc) { - _onRemoveAttribute(doc, el, attr); - attr.ownerElement = null; - } - } - } else { - throw new DOMException(NOT_FOUND_ERR, new Error(el.tagName + '@' + attr)) - } - } - NamedNodeMap.prototype = { - length: 0, - item: NodeList.prototype.item, - getNamedItem: function (key) { - // if(key.indexOf(':')>0 || key == 'xmlns'){ - // return null; - // } - //console.log() - var i = this.length; - while (i--) { - var attr = this[i]; - //console.log(attr.nodeName,key) - if (attr.nodeName == key) { - return attr; - } - } - }, - setNamedItem: function (attr) { - var el = attr.ownerElement; - if (el && el != this._ownerElement) { - throw new DOMException(INUSE_ATTRIBUTE_ERR); - } - var oldAttr = this.getNamedItem(attr.nodeName); - _addNamedNode(this._ownerElement, this, attr, oldAttr); - return oldAttr; - }, - /* returns Node */ - setNamedItemNS: function (attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR - var el = attr.ownerElement, oldAttr; - if (el && el != this._ownerElement) { - throw new DOMException(INUSE_ATTRIBUTE_ERR); - } - oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName); - _addNamedNode(this._ownerElement, this, attr, oldAttr); - return oldAttr; - }, - - /* returns Node */ - removeNamedItem: function (key) { - var attr = this.getNamedItem(key); - _removeNamedNode(this._ownerElement, this, attr); - return attr; - - - },// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR - - //for level2 - removeNamedItemNS: function (namespaceURI, localName) { - var attr = this.getNamedItemNS(namespaceURI, localName); - _removeNamedNode(this._ownerElement, this, attr); - return attr; - }, - getNamedItemNS: function (namespaceURI, localName) { - var i = this.length; - while (i--) { - var node = this[i]; - if (node.localName == localName && node.namespaceURI == namespaceURI) { - return node; - } - } - return null; - } - }; - - /** - * The DOMImplementation interface represents an object providing methods - * which are not dependent on any particular document. - * Such an object is returned by the `Document.implementation` property. - * - * __The individual methods describe the differences compared to the specs.__ - * - * @constructor - * - * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN - * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial) - * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core - * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core - * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard - */ - function DOMImplementation() { - } - - DOMImplementation.prototype = { - /** - * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported. - * The different implementations fairly diverged in what kind of features were reported. - * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use. - * - * @deprecated It is deprecated and modern browsers return true in all cases. - * - * @param {string} feature - * @param {string} [version] - * @returns {boolean} always true - * - * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN - * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core - * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard - */ - hasFeature: function (feature, version) { - return true; - }, - /** - * Creates an XML Document object of the specified type with its document element. - * - * __It behaves slightly different from the description in the living standard__: - * - There is no interface/class `XMLDocument`, it returns a `Document` instance. - * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared. - * - this implementation is not validating names or qualified names - * (when parsing XML strings, the SAX parser takes care of that) - * - * @param {string|null} namespaceURI - * @param {string} qualifiedName - * @param {DocumentType=null} doctype - * @returns {Document} - * - * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN - * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial) - * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core - * - * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract - * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names - * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names - */ - createDocument: function (namespaceURI, qualifiedName, doctype) { - var doc = new Document(); - doc.implementation = this; - doc.childNodes = new NodeList(); - doc.doctype = doctype || null; - if (doctype) { - doc.appendChild(doctype); - } - if (qualifiedName) { - var root = doc.createElementNS(namespaceURI, qualifiedName); - doc.appendChild(root); - } - return doc; - }, - /** - * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`. - * - * __This behavior is slightly different from the in the specs__: - * - this implementation is not validating names or qualified names - * (when parsing XML strings, the SAX parser takes care of that) - * - * @param {string} qualifiedName - * @param {string} [publicId] - * @param {string} [systemId] - * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation - * or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()` - * - * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN - * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core - * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard - * - * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract - * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names - * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names - */ - createDocumentType: function (qualifiedName, publicId, systemId) { - var node = new DocumentType(); - node.name = qualifiedName; - node.nodeName = qualifiedName; - node.publicId = publicId || ''; - node.systemId = systemId || ''; - - return node; - } - }; - - - /** - * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 - */ - - function Node() { - }; - - Node.prototype = { - firstChild: null, - lastChild: null, - previousSibling: null, - nextSibling: null, - attributes: null, - parentNode: null, - childNodes: null, - ownerDocument: null, - nodeValue: null, - namespaceURI: null, - prefix: null, - localName: null, - // Modified in DOM Level 2: - insertBefore: function (newChild, refChild) {//raises - return _insertBefore(this, newChild, refChild); - }, - replaceChild: function (newChild, oldChild) {//raises - _insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument); - if (oldChild) { - this.removeChild(oldChild); - } - }, - removeChild: function (oldChild) { - return _removeChild(this, oldChild); - }, - appendChild: function (newChild) { - return this.insertBefore(newChild, null); - }, - hasChildNodes: function () { - return this.firstChild != null; - }, - cloneNode: function (deep) { - return cloneNode(this.ownerDocument || this, this, deep); - }, - // Modified in DOM Level 2: - normalize: function () { - var child = this.firstChild; - while (child) { - var next = child.nextSibling; - if (next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE) { - this.removeChild(next); - child.appendData(next.data); - } else { - child.normalize(); - child = next; - } - } - }, - // Introduced in DOM Level 2: - isSupported: function (feature, version) { - return this.ownerDocument.implementation.hasFeature(feature, version); - }, - // Introduced in DOM Level 2: - hasAttributes: function () { - return this.attributes.length > 0; - }, - /** - * Look up the prefix associated to the given namespace URI, starting from this node. - * **The default namespace declarations are ignored by this method.** - * See Namespace Prefix Lookup for details on the algorithm used by this method. - * - * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._ - * - * @param {string | null} namespaceURI - * @returns {string | null} - * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix - * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo - * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix - * @see https://github.com/xmldom/xmldom/issues/322 - */ - lookupPrefix: function (namespaceURI) { - var el = this; - while (el) { - var map = el._nsMap; - //console.dir(map) - if (map) { - for (var n in map) { - if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) { - return n; - } - } - } - el = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode; - } - return null; - }, - // Introduced in DOM Level 3: - lookupNamespaceURI: function (prefix) { - var el = this; - while (el) { - var map = el._nsMap; - //console.dir(map) - if (map) { - if (Object.prototype.hasOwnProperty.call(map, prefix)) { - return map[prefix]; - } - } - el = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode; - } - return null; - }, - // Introduced in DOM Level 3: - isDefaultNamespace: function (namespaceURI) { - var prefix = this.lookupPrefix(namespaceURI); - return prefix == null; - } - }; - - - function _xmlEncoder(c) { - return c == '<' && '<' || - c == '>' && '>' || - c == '&' && '&' || - c == '"' && '"' || - '&#' + c.charCodeAt() + ';' - } - - - copy(NodeType, Node); - copy(NodeType, Node.prototype); - - /** - * @param callback return true for continue,false for break - * @return boolean true: break visit; - */ - function _visitNode(node, callback) { - if (callback(node)) { - return true; - } - if (node = node.firstChild) { - do { - if (_visitNode(node, callback)) { return true } - } while (node = node.nextSibling) - } - } - - - - function Document() { - this.ownerDocument = this; - } - - function _onAddAttribute(doc, el, newAttr) { - doc && doc._inc++; - var ns = newAttr.namespaceURI; - if (ns === NAMESPACE.XMLNS) { - //update namespace - el._nsMap[newAttr.prefix ? newAttr.localName : ''] = newAttr.value - } - } - - function _onRemoveAttribute(doc, el, newAttr, remove) { - doc && doc._inc++; - var ns = newAttr.namespaceURI; - if (ns === NAMESPACE.XMLNS) { - //update namespace - delete el._nsMap[newAttr.prefix ? newAttr.localName : ''] - } - } - - /** - * Updates `el.childNodes`, updating the indexed items and it's `length`. - * Passing `newChild` means it will be appended. - * Otherwise it's assumed that an item has been removed, - * and `el.firstNode` and it's `.nextSibling` are used - * to walk the current list of child nodes. - * - * @param {Document} doc - * @param {Node} el - * @param {Node} [newChild] - * @private - */ - function _onUpdateChild(doc, el, newChild) { - if (doc && doc._inc) { - doc._inc++; - //update childNodes - var cs = el.childNodes; - if (newChild) { - cs[cs.length++] = newChild; - } else { - var child = el.firstChild; - var i = 0; - while (child) { - cs[i++] = child; - child = child.nextSibling; - } - cs.length = i; - delete cs[cs.length]; - } - } - } - - /** - * Removes the connections between `parentNode` and `child` - * and any existing `child.previousSibling` or `child.nextSibling`. - * - * @see https://github.com/xmldom/xmldom/issues/135 - * @see https://github.com/xmldom/xmldom/issues/145 - * - * @param {Node} parentNode - * @param {Node} child - * @returns {Node} the child that was removed. - * @private - */ - function _removeChild(parentNode, child) { - var previous = child.previousSibling; - var next = child.nextSibling; - if (previous) { - previous.nextSibling = next; - } else { - parentNode.firstChild = next; - } - if (next) { - next.previousSibling = previous; - } else { - parentNode.lastChild = previous; - } - child.parentNode = null; - child.previousSibling = null; - child.nextSibling = null; - _onUpdateChild(parentNode.ownerDocument, parentNode); - return child; - } - - /** - * Returns `true` if `node` can be a parent for insertion. - * @param {Node} node - * @returns {boolean} - */ - function hasValidParentNodeType(node) { - return ( - node && - (node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE) - ); - } - - /** - * Returns `true` if `node` can be inserted according to it's `nodeType`. - * @param {Node} node - * @returns {boolean} - */ - function hasInsertableNodeType(node) { - return ( - node && - (isElementNode(node) || - isTextNode(node) || - isDocTypeNode(node) || - node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || - node.nodeType === Node.COMMENT_NODE || - node.nodeType === Node.PROCESSING_INSTRUCTION_NODE) - ); - } - - /** - * Returns true if `node` is a DOCTYPE node - * @param {Node} node - * @returns {boolean} - */ - function isDocTypeNode(node) { - return node && node.nodeType === Node.DOCUMENT_TYPE_NODE; - } - - /** - * Returns true if the node is an element - * @param {Node} node - * @returns {boolean} - */ - function isElementNode(node) { - return node && node.nodeType === Node.ELEMENT_NODE; - } - /** - * Returns true if `node` is a text node - * @param {Node} node - * @returns {boolean} - */ - function isTextNode(node) { - return node && node.nodeType === Node.TEXT_NODE; - } - - /** - * Check if en element node can be inserted before `child`, or at the end if child is falsy, - * according to the presence and position of a doctype node on the same level. - * - * @param {Document} doc The document node - * @param {Node} child the node that would become the nextSibling if the element would be inserted - * @returns {boolean} `true` if an element can be inserted before child - * @private - * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity - */ - function isElementInsertionPossible(doc, child) { - var parentChildNodes = doc.childNodes || []; - if (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) { - return false; - } - var docTypeNode = find(parentChildNodes, isDocTypeNode); - return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child)); - } - - /** - * Check if en element node can be inserted before `child`, or at the end if child is falsy, - * according to the presence and position of a doctype node on the same level. - * - * @param {Node} doc The document node - * @param {Node} child the node that would become the nextSibling if the element would be inserted - * @returns {boolean} `true` if an element can be inserted before child - * @private - * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity - */ - function isElementReplacementPossible(doc, child) { - var parentChildNodes = doc.childNodes || []; - - function hasElementChildThatIsNotChild(node) { - return isElementNode(node) && node !== child; - } - - if (find(parentChildNodes, hasElementChildThatIsNotChild)) { - return false; - } - var docTypeNode = find(parentChildNodes, isDocTypeNode); - return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child)); - } - - /** - * @private - * Steps 1-5 of the checks before inserting and before replacing a child are the same. - * - * @param {Node} parent the parent node to insert `node` into - * @param {Node} node the node to insert - * @param {Node=} child the node that should become the `nextSibling` of `node` - * @returns {Node} - * @throws DOMException for several node combinations that would create a DOM that is not well-formed. - * @throws DOMException if `child` is provided but is not a child of `parent`. - * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity - * @see https://dom.spec.whatwg.org/#concept-node-replace - */ - function assertPreInsertionValidity1to5(parent, node, child) { - // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a "HierarchyRequestError" DOMException. - if (!hasValidParentNodeType(parent)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType); - } - // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a "HierarchyRequestError" DOMException. - // not implemented! - // 3. If `child` is non-null and its parent is not `parent`, then throw a "NotFoundError" DOMException. - if (child && child.parentNode !== parent) { - throw new DOMException(NOT_FOUND_ERR, 'child not in parent'); - } - if ( - // 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a "HierarchyRequestError" DOMException. - !hasInsertableNodeType(node) || - // 5. If either `node` is a Text node and `parent` is a document, - // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0 - // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE) - // or `node` is a doctype and `parent` is not a document, then throw a "HierarchyRequestError" DOMException. - (isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE) - ) { - throw new DOMException( - HIERARCHY_REQUEST_ERR, - 'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType - ); - } - } - - /** - * @private - * Step 6 of the checks before inserting and before replacing a child are different. - * - * @param {Document} parent the parent node to insert `node` into - * @param {Node} node the node to insert - * @param {Node | undefined} child the node that should become the `nextSibling` of `node` - * @returns {Node} - * @throws DOMException for several node combinations that would create a DOM that is not well-formed. - * @throws DOMException if `child` is provided but is not a child of `parent`. - * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity - * @see https://dom.spec.whatwg.org/#concept-node-replace - */ - function assertPreInsertionValidityInDocument(parent, node, child) { - var parentChildNodes = parent.childNodes || []; - var nodeChildNodes = node.childNodes || []; - - // DocumentFragment - if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { - var nodeChildElements = nodeChildNodes.filter(isElementNode); - // If node has more than one element child or has a Text node child. - if (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment'); - } - // Otherwise, if `node` has one element child and either `parent` has an element child, - // `child` is a doctype, or `child` is non-null and a doctype is following `child`. - if (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype'); - } - } - // Element - if (isElementNode(node)) { - // `parent` has an element child, `child` is a doctype, - // or `child` is non-null and a doctype is following `child`. - if (!isElementInsertionPossible(parent, child)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype'); - } - } - // DocumentType - if (isDocTypeNode(node)) { - // `parent` has a doctype child, - if (find(parentChildNodes, isDocTypeNode)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed'); - } - var parentElementChild = find(parentChildNodes, isElementNode); - // `child` is non-null and an element is preceding `child`, - if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element'); - } - // or `child` is null and `parent` has an element child. - if (!child && parentElementChild) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present'); - } - } - } - - /** - * @private - * Step 6 of the checks before inserting and before replacing a child are different. - * - * @param {Document} parent the parent node to insert `node` into - * @param {Node} node the node to insert - * @param {Node | undefined} child the node that should become the `nextSibling` of `node` - * @returns {Node} - * @throws DOMException for several node combinations that would create a DOM that is not well-formed. - * @throws DOMException if `child` is provided but is not a child of `parent`. - * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity - * @see https://dom.spec.whatwg.org/#concept-node-replace - */ - function assertPreReplacementValidityInDocument(parent, node, child) { - var parentChildNodes = parent.childNodes || []; - var nodeChildNodes = node.childNodes || []; - - // DocumentFragment - if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { - var nodeChildElements = nodeChildNodes.filter(isElementNode); - // If `node` has more than one element child or has a Text node child. - if (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment'); - } - // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`. - if (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype'); - } - } - // Element - if (isElementNode(node)) { - // `parent` has an element child that is not `child` or a doctype is following `child`. - if (!isElementReplacementPossible(parent, child)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype'); - } - } - // DocumentType - if (isDocTypeNode(node)) { - function hasDoctypeChildThatIsNotChild(node) { - return isDocTypeNode(node) && node !== child; - } - - // `parent` has a doctype child that is not `child`, - if (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed'); - } - var parentElementChild = find(parentChildNodes, isElementNode); - // or an element is preceding `child`. - if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) { - throw new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element'); - } - } - } - - /** - * @private - * @param {Node} parent the parent node to insert `node` into - * @param {Node} node the node to insert - * @param {Node=} child the node that should become the `nextSibling` of `node` - * @returns {Node} - * @throws DOMException for several node combinations that would create a DOM that is not well-formed. - * @throws DOMException if `child` is provided but is not a child of `parent`. - * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity - */ - function _insertBefore(parent, node, child, _inDocumentAssertion) { - // To ensure pre-insertion validity of a node into a parent before a child, run these steps: - assertPreInsertionValidity1to5(parent, node, child); - - // If parent is a document, and any of the statements below, switched on the interface node implements, - // are true, then throw a "HierarchyRequestError" DOMException. - if (parent.nodeType === Node.DOCUMENT_NODE) { - (_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child); - } - - var cp = node.parentNode; - if (cp) { - cp.removeChild(node);//remove and update - } - if (node.nodeType === DOCUMENT_FRAGMENT_NODE) { - var newFirst = node.firstChild; - if (newFirst == null) { - return node; - } - var newLast = node.lastChild; - } else { - newFirst = newLast = node; - } - var pre = child ? child.previousSibling : parent.lastChild; - - newFirst.previousSibling = pre; - newLast.nextSibling = child; - - - if (pre) { - pre.nextSibling = newFirst; - } else { - parent.firstChild = newFirst; - } - if (child == null) { - parent.lastChild = newLast; - } else { - child.previousSibling = newLast; - } - do { - newFirst.parentNode = parent; - } while (newFirst !== newLast && (newFirst = newFirst.nextSibling)) - _onUpdateChild(parent.ownerDocument || parent, parent); - //console.log(parent.lastChild.nextSibling == null) - if (node.nodeType == DOCUMENT_FRAGMENT_NODE) { - node.firstChild = node.lastChild = null; - } - return node; - } - - /** - * Appends `newChild` to `parentNode`. - * If `newChild` is already connected to a `parentNode` it is first removed from it. - * - * @see https://github.com/xmldom/xmldom/issues/135 - * @see https://github.com/xmldom/xmldom/issues/145 - * @param {Node} parentNode - * @param {Node} newChild - * @returns {Node} - * @private - */ - function _appendSingleChild(parentNode, newChild) { - if (newChild.parentNode) { - newChild.parentNode.removeChild(newChild); - } - newChild.parentNode = parentNode; - newChild.previousSibling = parentNode.lastChild; - newChild.nextSibling = null; - if (newChild.previousSibling) { - newChild.previousSibling.nextSibling = newChild; - } else { - parentNode.firstChild = newChild; - } - parentNode.lastChild = newChild; - _onUpdateChild(parentNode.ownerDocument, parentNode, newChild); - return newChild; - } - - Document.prototype = { - //implementation : null, - nodeName: '#document', - nodeType: DOCUMENT_NODE, - /** - * The DocumentType node of the document. - * - * @readonly - * @type DocumentType - */ - doctype: null, - documentElement: null, - _inc: 1, - - insertBefore: function (newChild, refChild) {//raises - if (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) { - var child = newChild.firstChild; - while (child) { - var next = child.nextSibling; - this.insertBefore(child, refChild); - child = next; - } - return newChild; - } - _insertBefore(this, newChild, refChild); - newChild.ownerDocument = this; - if (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) { - this.documentElement = newChild; - } - - return newChild; - }, - removeChild: function (oldChild) { - if (this.documentElement == oldChild) { - this.documentElement = null; - } - return _removeChild(this, oldChild); - }, - replaceChild: function (newChild, oldChild) { - //raises - _insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument); - newChild.ownerDocument = this; - if (oldChild) { - this.removeChild(oldChild); - } - if (isElementNode(newChild)) { - this.documentElement = newChild; - } - }, - // Introduced in DOM Level 2: - importNode: function (importedNode, deep) { - return importNode(this, importedNode, deep); - }, - // Introduced in DOM Level 2: - getElementById: function (id) { - var rtv = null; - _visitNode(this.documentElement, function (node) { - if (node.nodeType == ELEMENT_NODE) { - if (node.getAttribute('id') == id) { - rtv = node; - return true; - } - } - }) - return rtv; - }, - - /** - * The `getElementsByClassName` method of `Document` interface returns an array-like object - * of all child elements which have **all** of the given class name(s). - * - * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters. - * - * - * Warning: This is a live LiveNodeList. - * Changes in the DOM will reflect in the array as the changes occur. - * If an element selected by this array no longer qualifies for the selector, - * it will automatically be removed. Be aware of this for iteration purposes. - * - * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace - * - * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName - * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname - */ - getElementsByClassName: function (classNames) { - var classNamesSet = toOrderedSet(classNames) - return new LiveNodeList(this, function (base) { - var ls = []; - if (classNamesSet.length > 0) { - _visitNode(base.documentElement, function (node) { - if (node !== base && node.nodeType === ELEMENT_NODE) { - var nodeClassNames = node.getAttribute('class') - // can be null if the attribute does not exist - if (nodeClassNames) { - // before splitting and iterating just compare them for the most common case - var matches = classNames === nodeClassNames; - if (!matches) { - var nodeClassNamesSet = toOrderedSet(nodeClassNames) - matches = classNamesSet.every(arrayIncludes(nodeClassNamesSet)) - } - if (matches) { - ls.push(node); - } - } + function read(name, encoding) { + return zipFile.file(name).async("uint8array").then(function (array) { + var buffer = uint8ArrayToBuffer(array); + if (encoding) { + return buffer.toString(encoding); + } else { + return buffer; } }); } - return ls; - }); - }, - //document factory method: - createElement: function (tagName) { - var node = new Element(); - node.ownerDocument = this; - node.nodeName = tagName; - node.tagName = tagName; - node.localName = tagName; - node.childNodes = new NodeList(); - var attrs = node.attributes = new NamedNodeMap(); - attrs._ownerElement = node; - return node; - }, - createDocumentFragment: function () { - var node = new DocumentFragment(); - node.ownerDocument = this; - node.childNodes = new NodeList(); - return node; - }, - createTextNode: function (data) { - var node = new Text(); - node.ownerDocument = this; - node.appendData(data) - return node; - }, - createComment: function (data) { - var node = new Comment(); - node.ownerDocument = this; - node.appendData(data) - return node; - }, - createCDATASection: function (data) { - var node = new CDATASection(); - node.ownerDocument = this; - node.appendData(data) - return node; - }, - createProcessingInstruction: function (target, data) { - var node = new ProcessingInstruction(); - node.ownerDocument = this; - node.tagName = node.target = target; - node.nodeValue = node.data = data; - return node; - }, - createAttribute: function (name) { - var node = new Attr(); - node.ownerDocument = this; - node.name = name; - node.nodeName = name; - node.localName = name; - node.specified = true; - return node; - }, - createEntityReference: function (name) { - var node = new EntityReference(); - node.ownerDocument = this; - node.nodeName = name; - return node; - }, - // Introduced in DOM Level 2: - createElementNS: function (namespaceURI, qualifiedName) { - var node = new Element(); - var pl = qualifiedName.split(':'); - var attrs = node.attributes = new NamedNodeMap(); - node.childNodes = new NodeList(); - node.ownerDocument = this; - node.nodeName = qualifiedName; - node.tagName = qualifiedName; - node.namespaceURI = namespaceURI; - if (pl.length == 2) { - node.prefix = pl[0]; - node.localName = pl[1]; - } else { - //el.prefix = null; - node.localName = qualifiedName; - } - attrs._ownerElement = node; - return node; - }, - // Introduced in DOM Level 2: - createAttributeNS: function (namespaceURI, qualifiedName) { - var node = new Attr(); - var pl = qualifiedName.split(':'); - node.ownerDocument = this; - node.nodeName = qualifiedName; - node.name = qualifiedName; - node.namespaceURI = namespaceURI; - node.specified = true; - if (pl.length == 2) { - node.prefix = pl[0]; - node.localName = pl[1]; - } else { - //el.prefix = null; - node.localName = qualifiedName; - } - return node; - } - }; - _extends(Document, Node); + function write(name, contents) { + zipFile.file(name, contents); + } + function toBuffer() { + return zipFile.generateAsync({ type: "nodebuffer" }); + } - function Element() { - this._nsMap = {}; - }; - Element.prototype = { - nodeType: ELEMENT_NODE, - hasAttribute: function (name) { - return this.getAttributeNode(name) != null; - }, - getAttribute: function (name) { - var attr = this.getAttributeNode(name); - return attr && attr.value || ''; - }, - getAttributeNode: function (name) { - return this.attributes.getNamedItem(name); - }, - setAttribute: function (name, value) { - var attr = this.ownerDocument.createAttribute(name); - attr.value = attr.nodeValue = "" + value; - this.setAttributeNode(attr) - }, - removeAttribute: function (name) { - var attr = this.getAttributeNode(name) - attr && this.removeAttributeNode(attr); - }, - - //four real opeartion method - appendChild: function (newChild) { - if (newChild.nodeType === DOCUMENT_FRAGMENT_NODE) { - return this.insertBefore(newChild, null); - } else { - return _appendSingleChild(this, newChild); - } - }, - setAttributeNode: function (newAttr) { - return this.attributes.setNamedItem(newAttr); - }, - setAttributeNodeNS: function (newAttr) { - return this.attributes.setNamedItemNS(newAttr); - }, - removeAttributeNode: function (oldAttr) { - //console.log(this == oldAttr.ownerElement) - return this.attributes.removeNamedItem(oldAttr.nodeName); - }, - //get real attribute name,and remove it by removeAttributeNode - removeAttributeNS: function (namespaceURI, localName) { - var old = this.getAttributeNodeNS(namespaceURI, localName); - old && this.removeAttributeNode(old); - }, - - hasAttributeNS: function (namespaceURI, localName) { - return this.getAttributeNodeNS(namespaceURI, localName) != null; - }, - getAttributeNS: function (namespaceURI, localName) { - var attr = this.getAttributeNodeNS(namespaceURI, localName); - return attr && attr.value || ''; - }, - setAttributeNS: function (namespaceURI, qualifiedName, value) { - var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName); - attr.value = attr.nodeValue = "" + value; - this.setAttributeNode(attr) - }, - getAttributeNodeNS: function (namespaceURI, localName) { - return this.attributes.getNamedItemNS(namespaceURI, localName); - }, - - getElementsByTagName: function (tagName) { - return new LiveNodeList(this, function (base) { - var ls = []; - _visitNode(base, function (node) { - if (node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)) { - ls.push(node); - } - }); - return ls; - }); - }, - getElementsByTagNameNS: function (namespaceURI, localName) { - return new LiveNodeList(this, function (base) { - var ls = []; - _visitNode(base, function (node) { - if (node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)) { - ls.push(node); - } - }); - return ls; - + return { + exists: exists, + read: read, + write: write, + toBuffer: toBuffer + }; }); } - }; - Document.prototype.getElementsByTagName = Element.prototype.getElementsByTagName; - Document.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS; - - _extends(Element, Node); - function Attr() { - }; - Attr.prototype.nodeType = ATTRIBUTE_NODE; - _extends(Attr, Node); - - - function CharacterData() { - }; - CharacterData.prototype = { - data: '', - substringData: function (offset, count) { - return this.data.substring(offset, offset + count); - }, - appendData: function (text) { - text = this.data + text; - this.nodeValue = this.data = text; - this.length = text.length; - }, - insertData: function (offset, text) { - this.replaceData(offset, 0, text); - - }, - appendChild: function (newChild) { - throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR]) - }, - deleteData: function (offset, count) { - this.replaceData(offset, count, ""); - }, - replaceData: function (offset, count, text) { - var start = this.data.substring(0, offset); - var end = this.data.substring(offset + count); - text = start + text + end; - this.nodeValue = this.data = text; - this.length = text.length; - } - } - _extends(CharacterData, Node); - function Text() { - }; - Text.prototype = { - nodeName: "#text", - nodeType: TEXT_NODE, - splitText: function (offset) { - var text = this.data; - var newText = text.substring(offset); - text = text.substring(0, offset); - this.data = this.nodeValue = text; - this.length = text.length; - var newNode = this.ownerDocument.createTextNode(newText); - if (this.parentNode) { - this.parentNode.insertBefore(newNode, this.nextSibling); - } - return newNode; - } - } - _extends(Text, CharacterData); - function Comment() { - }; - Comment.prototype = { - nodeName: "#comment", - nodeType: COMMENT_NODE - } - _extends(Comment, CharacterData); - - function CDATASection() { - }; - CDATASection.prototype = { - nodeName: "#cdata-section", - nodeType: CDATA_SECTION_NODE - } - _extends(CDATASection, CharacterData); - - - function DocumentType() { - }; - DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE; - _extends(DocumentType, Node); - - function Notation() { - }; - Notation.prototype.nodeType = NOTATION_NODE; - _extends(Notation, Node); - - function Entity() { - }; - Entity.prototype.nodeType = ENTITY_NODE; - _extends(Entity, Node); - - function EntityReference() { - }; - EntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE; - _extends(EntityReference, Node); - - function DocumentFragment() { - }; - DocumentFragment.prototype.nodeName = "#document-fragment"; - DocumentFragment.prototype.nodeType = DOCUMENT_FRAGMENT_NODE; - _extends(DocumentFragment, Node); - - - function ProcessingInstruction() { - } - ProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE; - _extends(ProcessingInstruction, Node); - function XMLSerializer() { } - XMLSerializer.prototype.serializeToString = function (node, isHtml, nodeFilter) { - return nodeSerializeToString.call(node, isHtml, nodeFilter); - } - Node.prototype.toString = nodeSerializeToString; - function nodeSerializeToString(isHtml, nodeFilter) { - var buf = []; - var refNode = this.nodeType == 9 && this.documentElement || this; - var prefix = refNode.prefix; - var uri = refNode.namespaceURI; - - if (uri && prefix == null) { - //console.log(prefix) - var prefix = refNode.lookupPrefix(uri); - if (prefix == null) { - //isHTML = true; - var visibleNamespaces = [ - { namespace: uri, prefix: null } - //{namespace:uri,prefix:''} - ] - } - } - serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces); - //console.log('###',this.nodeType,uri,prefix,buf.join('')) - return buf.join(''); - } - - function needNamespaceDefine(node, isHTML, visibleNamespaces) { - var prefix = node.prefix || ''; - var uri = node.namespaceURI; - // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) , - // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl : - // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty. - // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using) - // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared : - // > [...] Furthermore, the attribute value [...] must not be an empty string. - // so serializing empty namespace value like xmlns:ds="" would produce an invalid XML document. - if (!uri) { - return false; - } - if (prefix === "xml" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) { - return false; - } - - var i = visibleNamespaces.length - while (i--) { - var ns = visibleNamespaces[i]; - // get namespace prefix - if (ns.prefix === prefix) { - return ns.namespace !== uri; - } - } - return true; - } - /** - * Well-formed constraint: No < in Attribute Values - * > The replacement text of any entity referred to directly or indirectly - * > in an attribute value must not contain a <. - * @see https://www.w3.org/TR/xml11/#CleanAttrVals - * @see https://www.w3.org/TR/xml11/#NT-AttValue - * - * Literal whitespace other than space that appear in attribute values - * are serialized as their entity references, so they will be preserved. - * (In contrast to whitespace literals in the input which are normalized to spaces) - * @see https://www.w3.org/TR/xml11/#AVNormalize - * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes - */ - function addSerializedAttribute(buf, qualifiedName, value) { - buf.push(' ', qualifiedName, '="', value.replace(/[<>&"\t\n\r]/g, _xmlEncoder), '"') - } - - function serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) { - if (!visibleNamespaces) { - visibleNamespaces = []; - } - - if (nodeFilter) { - node = nodeFilter(node); - if (node) { - if (typeof node == 'string') { - buf.push(node); - return; - } + function uint8ArrayToBuffer(array) { + if (Buffer.from && Buffer.from !== Uint8Array.from) { + return Buffer.from(array); } else { - return; + return new Buffer(array); } - //buf.sort.apply(attrs, attributeSorter); } - switch (node.nodeType) { - case ELEMENT_NODE: - var attrs = node.attributes; - var len = attrs.length; - var child = node.firstChild; - var nodeName = node.tagName; + function splitPath(path) { + var lastIndex = path.lastIndexOf("/"); + if (lastIndex === -1) { + return { dirname: "", basename: path }; + } else { + return { + dirname: path.substring(0, lastIndex), + basename: path.substring(lastIndex + 1) + }; + } + } - isHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML + function joinPath() { + var nonEmptyPaths = Array.prototype.filter.call(arguments, function (path) { + return path; + }); - var prefixedNodeName = nodeName - if (!isHTML && !node.prefix && node.namespaceURI) { - var defaultNS - // lookup current default ns from `xmlns` attribute - for (var ai = 0; ai < attrs.length; ai++) { - if (attrs.item(ai).name === 'xmlns') { - defaultNS = attrs.item(ai).value - break - } - } - if (!defaultNS) { - // lookup current default ns in visibleNamespaces - for (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) { - var namespace = visibleNamespaces[nsi] - if (namespace.prefix === '' && namespace.namespace === node.namespaceURI) { - defaultNS = namespace.namespace - break - } - } - } - if (defaultNS !== node.namespaceURI) { - for (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) { - var namespace = visibleNamespaces[nsi] - if (namespace.namespace === node.namespaceURI) { - if (namespace.prefix) { - prefixedNodeName = namespace.prefix + ':' + nodeName - } - break - } - } - } - } + var relevantPaths = []; - buf.push('<', prefixedNodeName); - - for (var i = 0; i < len; i++) { - // add namespaces for attributes - var attr = attrs.item(i); - if (attr.prefix == 'xmlns') { - visibleNamespaces.push({ prefix: attr.localName, namespace: attr.value }); - } else if (attr.nodeName == 'xmlns') { - visibleNamespaces.push({ prefix: '', namespace: attr.value }); - } - } - - for (var i = 0; i < len; i++) { - var attr = attrs.item(i); - if (needNamespaceDefine(attr, isHTML, visibleNamespaces)) { - var prefix = attr.prefix || ''; - var uri = attr.namespaceURI; - addSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : "xmlns", uri); - visibleNamespaces.push({ prefix: prefix, namespace: uri }); - } - serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces); - } - - // add namespace for current node - if (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) { - var prefix = node.prefix || ''; - var uri = node.namespaceURI; - addSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : "xmlns", uri); - visibleNamespaces.push({ prefix: prefix, namespace: uri }); - } - - if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) { - buf.push('>'); - //if is cdata child node - if (isHTML && /^script$/i.test(nodeName)) { - while (child) { - if (child.data) { - buf.push(child.data); - } else { - serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice()); - } - child = child.nextSibling; - } - } else { - while (child) { - serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice()); - child = child.nextSibling; - } - } - buf.push(''); + nonEmptyPaths.forEach(function (path) { + if (/^\//.test(path)) { + relevantPaths = [path]; } else { - buf.push('/>'); - } - // remove added visible namespaces - //visibleNamespaces.length = startVisibleNamespaces; - return; - case DOCUMENT_NODE: - case DOCUMENT_FRAGMENT_NODE: - var child = node.firstChild; - while (child) { - serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice()); - child = child.nextSibling; - } - return; - case ATTRIBUTE_NODE: - return addSerializedAttribute(buf, node.name, node.value); - case TEXT_NODE: - /** - * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form, - * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section. - * If they are needed elsewhere, they must be escaped using either numeric character references or the strings - * `&` and `<` respectively. - * The right angle bracket (>) may be represented using the string " > ", and must, for compatibility, - * be escaped using either `>` or a character reference when it appears in the string `]]>` in content, - * when that string is not marking the end of a CDATA section. - * - * In the content of elements, character data is any string of characters - * which does not contain the start-delimiter of any markup - * and does not include the CDATA-section-close delimiter, `]]>`. - * - * @see https://www.w3.org/TR/xml/#NT-CharData - * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node - */ - return buf.push(node.data - .replace(/[<&>]/g, _xmlEncoder) - ); - case CDATA_SECTION_NODE: - return buf.push(''); - case COMMENT_NODE: - return buf.push(""); - case DOCUMENT_TYPE_NODE: - var pubid = node.publicId; - var sysid = node.systemId; - buf.push(''); - } else if (sysid && sysid != '.') { - buf.push(' SYSTEM ', sysid, '>'); - } else { - var sub = node.internalSubset; - if (sub) { - buf.push(" [", sub, "]"); - } - buf.push(">"); - } - return; - case PROCESSING_INSTRUCTION_NODE: - return buf.push(""); - case ENTITY_REFERENCE_NODE: - return buf.push('&', node.nodeName, ';'); - //case ENTITY_NODE: - //case NOTATION_NODE: - default: - buf.push('??', node.nodeName); - } - } - function importNode(doc, node, deep) { - var node2; - switch (node.nodeType) { - case ELEMENT_NODE: - node2 = node.cloneNode(false); - node2.ownerDocument = doc; - //var attrs = node2.attributes; - //var len = attrs.length; - //for(var i=0;i', lt: '<', quot: '"' }) - - /** - * A map of currently 241 entities that are detected in an HTML document. - * They contain all entries from `XML_ENTITIES`. - * - * @see XML_ENTITIES - * @see DOMParser.parseFromString - * @see DOMImplementation.prototype.createHTMLDocument - * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec - * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names - * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML - * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML) - * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML) - */ - exports.HTML_ENTITIES = freeze({ - lt: '<', - gt: '>', - amp: '&', - quot: '"', - apos: "'", - Agrave: "À", - Aacute: "Á", - Acirc: "Â", - Atilde: "Ã", - Auml: "Ä", - Aring: "Å", - AElig: "Æ", - Ccedil: "Ç", - Egrave: "È", - Eacute: "É", - Ecirc: "Ê", - Euml: "Ë", - Igrave: "Ì", - Iacute: "Í", - Icirc: "Î", - Iuml: "Ï", - ETH: "Ð", - Ntilde: "Ñ", - Ograve: "Ò", - Oacute: "Ó", - Ocirc: "Ô", - Otilde: "Õ", - Ouml: "Ö", - Oslash: "Ø", - Ugrave: "Ù", - Uacute: "Ú", - Ucirc: "Û", - Uuml: "Ü", - Yacute: "Ý", - THORN: "Þ", - szlig: "ß", - agrave: "à", - aacute: "á", - acirc: "â", - atilde: "ã", - auml: "ä", - aring: "å", - aelig: "æ", - ccedil: "ç", - egrave: "è", - eacute: "é", - ecirc: "ê", - euml: "ë", - igrave: "ì", - iacute: "í", - icirc: "î", - iuml: "ï", - eth: "ð", - ntilde: "ñ", - ograve: "ò", - oacute: "ó", - ocirc: "ô", - otilde: "õ", - ouml: "ö", - oslash: "ø", - ugrave: "ù", - uacute: "ú", - ucirc: "û", - uuml: "ü", - yacute: "ý", - thorn: "þ", - yuml: "ÿ", - nbsp: "\u00a0", - iexcl: "¡", - cent: "¢", - pound: "£", - curren: "¤", - yen: "¥", - brvbar: "¦", - sect: "§", - uml: "¨", - copy: "©", - ordf: "ª", - laquo: "«", - not: "¬", - shy: "­­", - reg: "®", - macr: "¯", - deg: "°", - plusmn: "±", - sup2: "²", - sup3: "³", - acute: "´", - micro: "µ", - para: "¶", - middot: "·", - cedil: "¸", - sup1: "¹", - ordm: "º", - raquo: "»", - frac14: "¼", - frac12: "½", - frac34: "¾", - iquest: "¿", - times: "×", - divide: "÷", - forall: "∀", - part: "∂", - exist: "∃", - empty: "∅", - nabla: "∇", - isin: "∈", - notin: "∉", - ni: "∋", - prod: "∏", - sum: "∑", - minus: "−", - lowast: "∗", - radic: "√", - prop: "∝", - infin: "∞", - ang: "∠", - and: "∧", - or: "∨", - cap: "∩", - cup: "∪", - 'int': "∫", - there4: "∴", - sim: "∼", - cong: "≅", - asymp: "≈", - ne: "≠", - equiv: "≡", - le: "≤", - ge: "≥", - sub: "⊂", - sup: "⊃", - nsub: "⊄", - sube: "⊆", - supe: "⊇", - oplus: "⊕", - otimes: "⊗", - perp: "⊥", - sdot: "⋅", - Alpha: "Α", - Beta: "Β", - Gamma: "Γ", - Delta: "Δ", - Epsilon: "Ε", - Zeta: "Ζ", - Eta: "Η", - Theta: "Θ", - Iota: "Ι", - Kappa: "Κ", - Lambda: "Λ", - Mu: "Μ", - Nu: "Ν", - Xi: "Ξ", - Omicron: "Ο", - Pi: "Π", - Rho: "Ρ", - Sigma: "Σ", - Tau: "Τ", - Upsilon: "Υ", - Phi: "Φ", - Chi: "Χ", - Psi: "Ψ", - Omega: "Ω", - alpha: "α", - beta: "β", - gamma: "γ", - delta: "δ", - epsilon: "ε", - zeta: "ζ", - eta: "η", - theta: "θ", - iota: "ι", - kappa: "κ", - lambda: "λ", - mu: "μ", - nu: "ν", - xi: "ξ", - omicron: "ο", - pi: "π", - rho: "ρ", - sigmaf: "ς", - sigma: "σ", - tau: "τ", - upsilon: "υ", - phi: "φ", - chi: "χ", - psi: "ψ", - omega: "ω", - thetasym: "ϑ", - upsih: "ϒ", - piv: "ϖ", - OElig: "Œ", - oelig: "œ", - Scaron: "Š", - scaron: "š", - Yuml: "Ÿ", - fnof: "ƒ", - circ: "ˆ", - tilde: "˜", - ensp: " ", - emsp: " ", - thinsp: " ", - zwnj: "‌", - zwj: "‍", - lrm: "‎", - rlm: "‏", - ndash: "–", - mdash: "—", - lsquo: "‘", - rsquo: "’", - sbquo: "‚", - ldquo: "“", - rdquo: "”", - bdquo: "„", - dagger: "†", - Dagger: "‡", - bull: "•", - hellip: "…", - permil: "‰", - prime: "′", - Prime: "″", - lsaquo: "‹", - rsaquo: "›", - oline: "‾", - euro: "€", - trade: "™", - larr: "←", - uarr: "↑", - rarr: "→", - darr: "↓", - harr: "↔", - crarr: "↵", - lceil: "⌈", - rceil: "⌉", - lfloor: "⌊", - rfloor: "⌋", - loz: "◊", - spades: "♠", - clubs: "♣", - hearts: "♥", - diams: "♦" - }); - - /** - * @deprecated use `HTML_ENTITIES` instead - * @see HTML_ENTITIES - */ - exports.entityMap = exports.HTML_ENTITIES - - }, { "./conventions": 41 }], 45: [function (require, module, exports) { - var dom = require('./dom') - exports.DOMImplementation = dom.DOMImplementation - exports.XMLSerializer = dom.XMLSerializer - exports.DOMParser = require('./dom-parser').DOMParser - - }, { "./dom": 43, "./dom-parser": 42 }], 46: [function (require, module, exports) { - var NAMESPACE = require("./conventions").NAMESPACE; - - //[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] - //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] - //[5] Name ::= NameStartChar (NameChar)* - var nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]///\u10000-\uEFFFF - var nameChar = new RegExp("[\\-\\.0-9" + nameStartChar.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"); - var tagNamePattern = new RegExp('^' + nameStartChar.source + nameChar.source + '*(?:\:' + nameStartChar.source + nameChar.source + '*)?$'); - //var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/ - //var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',') - - //S_TAG, S_ATTR, S_EQ, S_ATTR_NOQUOT_VALUE - //S_ATTR_SPACE, S_ATTR_END, S_TAG_SPACE, S_TAG_CLOSE - var S_TAG = 0;//tag name offerring - var S_ATTR = 1;//attr name offerring - var S_ATTR_SPACE = 2;//attr name end and space offer - var S_EQ = 3;//=space? - var S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only) - var S_ATTR_END = 5;//attr value end and no space(quot end) - var S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer) - var S_TAG_CLOSE = 7;//closed el - - /** - * Creates an error that will not be caught by XMLReader aka the SAX parser. - * - * @param {string} message - * @param {any?} locator Optional, can provide details about the location in the source - * @constructor - */ - function ParseError(message, locator) { - this.message = message - this.locator = locator - if (Error.captureStackTrace) Error.captureStackTrace(this, ParseError); - } - ParseError.prototype = new Error(); - ParseError.prototype.name = ParseError.name - - function XMLReader() { - - } - - XMLReader.prototype = { - parse: function (source, defaultNSMap, entityMap) { - var domBuilder = this.domBuilder; - domBuilder.startDocument(); - _copy(defaultNSMap, defaultNSMap = {}) - parse(source, defaultNSMap, entityMap, - domBuilder, this.errorHandler); - domBuilder.endDocument(); - } - } - function parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) { - function fixedFromCharCode(code) { - // String.prototype.fromCharCode does not supports - // > 2 bytes unicode chars directly - if (code > 0xffff) { - code -= 0x10000; - var surrogate1 = 0xd800 + (code >> 10) - , surrogate2 = 0xdc00 + (code & 0x3ff); - - return String.fromCharCode(surrogate1, surrogate2); - } else { - return String.fromCharCode(code); - } - } - function entityReplacer(a) { - var k = a.slice(1, -1); - if (Object.hasOwnProperty.call(entityMap, k)) { - return entityMap[k]; - } else if (k.charAt(0) === '#') { - return fixedFromCharCode(parseInt(k.substr(1).replace('x', '0x'))) - } else { - errorHandler.error('entity not found:' + a); - return a; - } - } - function appendText(end) {//has some bugs - if (end > start) { - var xt = source.substring(start, end).replace(/&#?\w+;/g, entityReplacer); - locator && position(start); - domBuilder.characters(xt, 0, end - start); - start = end - } - } - function position(p, m) { - while (p >= lineEnd && (m = linePattern.exec(source))) { - lineStart = m.index; - lineEnd = lineStart + m[0].length; - locator.lineNumber++; - //console.log('line++:',locator,startPos,endPos) - } - locator.columnNumber = p - lineStart + 1; - } - var lineStart = 0; - var lineEnd = 0; - var linePattern = /.*(?:\r\n?|\n)|.*$/g - var locator = domBuilder.locator; - - var parseStack = [{ currentNSMap: defaultNSMapCopy }] - var closeMap = {}; - var start = 0; - while (true) { - try { - var tagStart = source.indexOf('<', start); - if (tagStart < 0) { - if (!source.substr(start).match(/^\s*$/)) { - var doc = domBuilder.doc; - var text = doc.createTextNode(source.substr(start)); - doc.appendChild(text); - domBuilder.currentElement = text; - } - return; - } - if (tagStart > start) { - appendText(tagStart); - } - switch (source.charAt(tagStart + 1)) { - case '/': - var end = source.indexOf('>', tagStart + 3); - var tagName = source.substring(tagStart + 2, end).replace(/[ \t\n\r]+$/g, ''); - var config = parseStack.pop(); - if (end < 0) { - - tagName = source.substring(tagStart + 2).replace(/[\s<].*/, ''); - errorHandler.error("end tag name: " + tagName + ' is not complete:' + config.tagName); - end = tagStart + 1 + tagName.length; - } else if (tagName.match(/\s - locator && position(tagStart); - end = parseInstruction(source, tagStart, domBuilder); - break; - case '!':// start) { - start = end; - } else { - //TODO: 这里有可能sax回退,有位置错误风险 - appendText(Math.max(tagStart, start) + 1); - } - } - } - function copyLocator(f, t) { - t.lineNumber = f.lineNumber; - t.columnNumber = f.columnNumber; - return t; - } - - /** - * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack); - * @return end of the elementStartPart(end of elementEndPart for selfClosed el) - */ - function parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) { - - /** - * @param {string} qname - * @param {string} value - * @param {number} startIndex - */ - function addAttribute(qname, value, startIndex) { - if (el.attributeNames.hasOwnProperty(qname)) { - errorHandler.fatalError('Attribute ' + qname + ' redefined') - } - el.addValue( - qname, - // @see https://www.w3.org/TR/xml/#AVNormalize - // since the xmldom sax parser does not "interpret" DTD the following is not implemented: - // - recursive replacement of (DTD) entity references - // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA - value.replace(/[\t\n\r]/g, ' ').replace(/&#?\w+;/g, entityReplacer), - startIndex - ) - } - var attrName; - var value; - var p = ++start; - var s = S_TAG;//status - while (true) { - var c = source.charAt(p); - switch (c) { - case '=': - if (s === S_ATTR) {//attrName - attrName = source.slice(start, p); - s = S_EQ; - } else if (s === S_ATTR_SPACE) { - s = S_EQ; - } else { - //fatalError: equal must after attrName or space after attrName - throw new Error('attribute equal must after attrName'); // No known test case - } - break; - case '\'': - case '"': - if (s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE - ) {//equal - if (s === S_ATTR) { - errorHandler.warning('attribute value must after "="') - attrName = source.slice(start, p) - } - start = p + 1; - p = source.indexOf(c, start) - if (p > 0) { - value = source.slice(start, p); - addAttribute(attrName, value, start - 1); - s = S_ATTR_END; - } else { - //fatalError: no end quot match - throw new Error('attribute value no end \'' + c + '\' match'); - } - } else if (s == S_ATTR_NOQUOT_VALUE) { - value = source.slice(start, p); - addAttribute(attrName, value, start); - errorHandler.warning('attribute "' + attrName + '" missed start quot(' + c + ')!!'); - start = p + 1; - s = S_ATTR_END - } else { - //fatalError: no equal before - throw new Error('attribute value must after "="'); // No known test case - } - break; - case '/': - switch (s) { - case S_TAG: - el.setTagName(source.slice(start, p)); - case S_ATTR_END: - case S_TAG_SPACE: - case S_TAG_CLOSE: - s = S_TAG_CLOSE; - el.closed = true; - case S_ATTR_NOQUOT_VALUE: - case S_ATTR: - case S_ATTR_SPACE: - break; - //case S_EQ: - default: - throw new Error("attribute invalid close char('/')") // No known test case - } - break; - case ''://end document - errorHandler.error('unexpected end of input'); - if (s == S_TAG) { - el.setTagName(source.slice(start, p)); - } - return p; - case '>': - switch (s) { - case S_TAG: - el.setTagName(source.slice(start, p)); - case S_ATTR_END: - case S_TAG_SPACE: - case S_TAG_CLOSE: - break;//normal - case S_ATTR_NOQUOT_VALUE://Compatible state - case S_ATTR: - value = source.slice(start, p); - if (value.slice(-1) === '/') { - el.closed = true; - value = value.slice(0, -1) - } - case S_ATTR_SPACE: - if (s === S_ATTR_SPACE) { - value = attrName; - } - if (s == S_ATTR_NOQUOT_VALUE) { - errorHandler.warning('attribute "' + value + '" missed quot(")!'); - addAttribute(attrName, value, start) - } else { - if (!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)) { - errorHandler.warning('attribute "' + value + '" missed value!! "' + value + '" instead!!') - } - addAttribute(value, value, start) - } - break; - case S_EQ: - throw new Error('attribute value missed!!'); - } - // console.log(tagName,tagNamePattern,tagNamePattern.test(tagName)) - return p; - /*xml space '\x20' | #x9 | #xD | #xA; */ - case '\u0080': - c = ' '; - default: - if (c <= ' ') {//space - switch (s) { - case S_TAG: - el.setTagName(source.slice(start, p));//tagName - s = S_TAG_SPACE; - break; - case S_ATTR: - attrName = source.slice(start, p) - s = S_ATTR_SPACE; - break; - case S_ATTR_NOQUOT_VALUE: - var value = source.slice(start, p); - errorHandler.warning('attribute "' + value + '" missed quot(")!!'); - addAttribute(attrName, value, start) - case S_ATTR_END: - s = S_TAG_SPACE; - break; - //case S_TAG_SPACE: - //case S_EQ: - //case S_ATTR_SPACE: - // void();break; - //case S_TAG_CLOSE: - //ignore warning - } - } else {//not space - //S_TAG, S_ATTR, S_EQ, S_ATTR_NOQUOT_VALUE - //S_ATTR_SPACE, S_ATTR_END, S_TAG_SPACE, S_TAG_CLOSE - switch (s) { - //case S_TAG:void();break; - //case S_ATTR:void();break; - //case S_ATTR_NOQUOT_VALUE:void();break; - case S_ATTR_SPACE: - var tagName = el.tagName; - if (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) { - errorHandler.warning('attribute "' + attrName + '" missed value!! "' + attrName + '" instead2!!') - } - addAttribute(attrName, attrName, start); - start = p; - s = S_ATTR; - break; - case S_ATTR_END: - errorHandler.warning('attribute space is required"' + attrName + '"!!') - case S_TAG_SPACE: - s = S_ATTR; - start = p; - break; - case S_EQ: - s = S_ATTR_NOQUOT_VALUE; - start = p; - break; - case S_TAG_CLOSE: - throw new Error("elements closed character '/' and '>' must be connected to"); - } - } - }//end outer switch - //console.log('p++',p) - p++; - } - } - /** - * @return true if has new namespace define - */ - function appendElement(el, domBuilder, currentNSMap) { - var tagName = el.tagName; - var localNSMap = null; - //var currentNSMap = parseStack[parseStack.length-1].currentNSMap; - var i = el.length; - while (i--) { - var a = el[i]; - var qName = a.qName; - var value = a.value; - var nsp = qName.indexOf(':'); - if (nsp > 0) { - var prefix = a.prefix = qName.slice(0, nsp); - var localName = qName.slice(nsp + 1); - var nsPrefix = prefix === 'xmlns' && localName - } else { - localName = qName; - prefix = null - nsPrefix = qName === 'xmlns' && '' - } - //can not set prefix,because prefix !== '' - a.localName = localName; - //prefix == null for no ns prefix attribute - if (nsPrefix !== false) {//hack!! - if (localNSMap == null) { - localNSMap = {} - //console.log(currentNSMap,0) - _copy(currentNSMap, currentNSMap = {}) - //console.log(currentNSMap,1) - } - currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value; - a.uri = NAMESPACE.XMLNS - domBuilder.startPrefixMapping(nsPrefix, value) - } - } - var i = el.length; - while (i--) { - a = el[i]; - var prefix = a.prefix; - if (prefix) {//no prefix attribute has no namespace - if (prefix === 'xml') { - a.uri = NAMESPACE.XML; - } if (prefix !== 'xmlns') { - a.uri = currentNSMap[prefix || ''] - - //{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)} - } - } - } - var nsp = tagName.indexOf(':'); - if (nsp > 0) { - prefix = el.prefix = tagName.slice(0, nsp); - localName = el.localName = tagName.slice(nsp + 1); - } else { - prefix = null;//important!! - localName = el.localName = tagName; - } - //no prefix element has default namespace - var ns = el.uri = currentNSMap[prefix || '']; - domBuilder.startElement(ns, localName, tagName, el); - //endPrefixMapping and startPrefixMapping have not any help for dom builder - //localNSMap = null - if (el.closed) { - domBuilder.endElement(ns, localName, tagName); - if (localNSMap) { - for (prefix in localNSMap) { - if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) { - domBuilder.endPrefixMapping(prefix); - } - } - } - } else { - el.currentNSMap = currentNSMap; - el.localNSMap = localNSMap; - //parseStack.push(el); - return true; - } - } - function parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) { - if (/^(?:script|textarea)$/i.test(tagName)) { - var elEndStart = source.indexOf('', elStartEnd); - var text = source.substring(elStartEnd + 1, elEndStart); - if (/[&<]/.test(text)) { - if (/^script$/i.test(tagName)) { - //if(!/\]\]>/.test(text)){ - //lexHandler.startCDATA(); - domBuilder.characters(text, 0, text.length); - //lexHandler.endCDATA(); - return elEndStart; - //} - }//}else{//text area - text = text.replace(/&#?\w+;/g, entityReplacer); - domBuilder.characters(text, 0, text.length); - return elEndStart; - //} - - } - } - return elStartEnd + 1; - } - function fixSelfClosed(source, elStartEnd, tagName, closeMap) { - //if(tagName in closeMap){ - var pos = closeMap[tagName]; - if (pos == null) { - //console.log(tagName) - pos = source.lastIndexOf('') - if (pos < elStartEnd) {//忘记闭合 - pos = source.lastIndexOf('', start + 4); - //append comment source.substring(4,end)// in non-strict mode, + // which is a comment of " blah -- bloo " + parser.comment += '--' + c + parser.state = S.COMMENT + } else { + parser.state = S.TEXT + } + continue + + case S.CDATA: + if (c === ']') { + parser.state = S.CDATA_ENDING + } else { + parser.cdata += c + } + continue + + case S.CDATA_ENDING: + if (c === ']') { + parser.state = S.CDATA_ENDING_2 + } else { + parser.cdata += ']' + c + parser.state = S.CDATA + } + continue + + case S.CDATA_ENDING_2: + if (c === '>') { + if (parser.cdata) { + emitNode(parser, 'oncdata', parser.cdata) + } + emitNode(parser, 'onclosecdata') + parser.cdata = '' + parser.state = S.TEXT + } else if (c === ']') { + parser.cdata += ']' + } else { + parser.cdata += ']]' + c + parser.state = S.CDATA + } + continue + + case S.PROC_INST: + if (c === '?') { + parser.state = S.PROC_INST_ENDING + } else if (is(whitespace, c)) { + parser.state = S.PROC_INST_BODY + } else { + parser.procInstName += c + } + continue + + case S.PROC_INST_BODY: + if (!parser.procInstBody && is(whitespace, c)) { + continue + } else if (c === '?') { + parser.state = S.PROC_INST_ENDING + } else { + parser.procInstBody += c + } + continue + + case S.PROC_INST_ENDING: + if (c === '>') { + emitNode(parser, 'onprocessinginstruction', { + name: parser.procInstName, + body: parser.procInstBody + }) + parser.procInstName = parser.procInstBody = '' + parser.state = S.TEXT + } else { + parser.procInstBody += '?' + c + parser.state = S.PROC_INST_BODY + } + continue + + case S.OPEN_TAG: + if (is(nameBody, c)) { + parser.tagName += c + } else { + newTag(parser) + if (c === '>') { + openTag(parser) + } else if (c === '/') { + parser.state = S.OPEN_TAG_SLASH + } else { + if (not(whitespace, c)) { + strictFail(parser, 'Invalid character in tag name') + } + parser.state = S.ATTRIB + } + } + continue + + case S.OPEN_TAG_SLASH: + if (c === '>') { + openTag(parser, true) + closeTag(parser) + } else { + strictFail(parser, 'Forward-slash in opening tag not followed by >') + parser.state = S.ATTRIB + } + continue + + case S.ATTRIB: + // haven't read the attribute name yet. + if (is(whitespace, c)) { + continue + } else if (c === '>') { + openTag(parser) + } else if (c === '/') { + parser.state = S.OPEN_TAG_SLASH + } else if (is(nameStart, c)) { + parser.attribName = c + parser.attribValue = '' + parser.state = S.ATTRIB_NAME + } else { + strictFail(parser, 'Invalid attribute name') + } + continue + + case S.ATTRIB_NAME: + if (c === '=') { + parser.state = S.ATTRIB_VALUE + } else if (c === '>') { + strictFail(parser, 'Attribute without value') + parser.attribValue = parser.attribName + attrib(parser) + openTag(parser) + } else if (is(whitespace, c)) { + parser.state = S.ATTRIB_NAME_SAW_WHITE + } else if (is(nameBody, c)) { + parser.attribName += c + } else { + strictFail(parser, 'Invalid attribute name') + } + continue + + case S.ATTRIB_NAME_SAW_WHITE: + if (c === '=') { + parser.state = S.ATTRIB_VALUE + } else if (is(whitespace, c)) { + continue + } else { + strictFail(parser, 'Attribute without value') + parser.tag.attributes[parser.attribName] = '' + parser.attribValue = '' + emitNode(parser, 'onattribute', { + name: parser.attribName, + value: '' + }) + parser.attribName = '' + if (c === '>') { + openTag(parser) + } else if (is(nameStart, c)) { + parser.attribName = c + parser.state = S.ATTRIB_NAME + } else { + strictFail(parser, 'Invalid attribute name') + parser.state = S.ATTRIB + } + } + continue + + case S.ATTRIB_VALUE: + if (is(whitespace, c)) { + continue + } else if (is(quote, c)) { + parser.q = c + parser.state = S.ATTRIB_VALUE_QUOTED + } else { + strictFail(parser, 'Unquoted attribute value') + parser.state = S.ATTRIB_VALUE_UNQUOTED + parser.attribValue = c + } + continue + + case S.ATTRIB_VALUE_QUOTED: + if (c !== parser.q) { + if (c === '&') { + parser.state = S.ATTRIB_VALUE_ENTITY_Q + } else { + parser.attribValue += c + } + continue + } + attrib(parser) + parser.q = '' + parser.state = S.ATTRIB_VALUE_CLOSED + continue + + case S.ATTRIB_VALUE_CLOSED: + if (is(whitespace, c)) { + parser.state = S.ATTRIB + } else if (c === '>') { + openTag(parser) + } else if (c === '/') { + parser.state = S.OPEN_TAG_SLASH + } else if (is(nameStart, c)) { + strictFail(parser, 'No whitespace between attributes') + parser.attribName = c + parser.attribValue = '' + parser.state = S.ATTRIB_NAME + } else { + strictFail(parser, 'Invalid attribute name') + } + continue + + case S.ATTRIB_VALUE_UNQUOTED: + if (not(attribEnd, c)) { + if (c === '&') { + parser.state = S.ATTRIB_VALUE_ENTITY_U + } else { + parser.attribValue += c + } + continue + } + attrib(parser) + if (c === '>') { + openTag(parser) + } else { + parser.state = S.ATTRIB + } + continue + + case S.CLOSE_TAG: + if (!parser.tagName) { + if (is(whitespace, c)) { + continue + } else if (not(nameStart, c)) { + if (parser.script) { + parser.script += '') { + closeTag(parser) + } else if (is(nameBody, c)) { + parser.tagName += c + } else if (parser.script) { + parser.script += '') { + closeTag(parser) + } else { + strictFail(parser, 'Invalid characters in closing tag') + } + continue + + case S.TEXT_ENTITY: + case S.ATTRIB_VALUE_ENTITY_Q: + case S.ATTRIB_VALUE_ENTITY_U: + var returnState + var buffer + switch (parser.state) { + case S.TEXT_ENTITY: + returnState = S.TEXT + buffer = 'textNode' + break + + case S.ATTRIB_VALUE_ENTITY_Q: + returnState = S.ATTRIB_VALUE_QUOTED + buffer = 'attribValue' + break + + case S.ATTRIB_VALUE_ENTITY_U: + returnState = S.ATTRIB_VALUE_UNQUOTED + buffer = 'attribValue' + break + } + + if (c === ';') { + parser[buffer] += parseEntity(parser) + parser.entity = '' + parser.state = returnState + } else if (is(parser.entity.length ? entityBody : entityStart, c)) { + parser.entity += c + } else { + strictFail(parser, 'Invalid character in entity name') + parser[buffer] += '&' + parser.entity + c + parser.entity = '' + parser.state = returnState + } + + continue + + default: + throw new Error(parser, 'Unknown state: ' + parser.state) + } + } // while + + if (parser.position >= parser.bufferCheckPosition) { + checkBufferLength(parser) + } + return parser + } + + /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */ + if (!String.fromCodePoint) { + (function () { + var stringFromCharCode = String.fromCharCode + var floor = Math.floor + var fromCodePoint = function () { + var MAX_SIZE = 0x4000 + var codeUnits = [] + var highSurrogate + var lowSurrogate + var index = -1 + var length = arguments.length + if (!length) { + return '' + } + var result = '' + while (++index < length) { + var codePoint = Number(arguments[index]) + if ( + !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity` + codePoint < 0 || // not a valid Unicode code point + codePoint > 0x10FFFF || // not a valid Unicode code point + floor(codePoint) !== codePoint // not an integer + ) { + throw RangeError('Invalid code point: ' + codePoint) + } + if (codePoint <= 0xFFFF) { // BMP code point + codeUnits.push(codePoint) + } else { // Astral code point; split in surrogate halves + // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + codePoint -= 0x10000 + highSurrogate = (codePoint >> 10) + 0xD800 + lowSurrogate = (codePoint % 0x400) + 0xDC00 + codeUnits.push(highSurrogate, lowSurrogate) + } + if (index + 1 === length || codeUnits.length > MAX_SIZE) { + result += stringFromCharCode.apply(null, codeUnits) + codeUnits.length = 0 + } + } + return result + } + if (Object.defineProperty) { + Object.defineProperty(String, 'fromCodePoint', { + value: fromCodePoint, + configurable: true, + writable: true + }) + } else { + String.fromCodePoint = fromCodePoint + } + }()) + } + })(typeof exports === 'undefined' ? this.sax = {} : exports) + + }).call(this, require("buffer").Buffer) + }, { "buffer": 78, "stream": 115, "string_decoder": 116 }], 115: [function (require, module, exports) { + // Copyright Joyent, Inc. and other Node contributors. + // + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: + // + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. + + module.exports = Stream; + + var EE = require('events').EventEmitter; + var inherits = require('inherits'); + + inherits(Stream, EE); + Stream.Readable = require('readable-stream/readable.js'); + Stream.Writable = require('readable-stream/writable.js'); + Stream.Duplex = require('readable-stream/duplex.js'); + Stream.Transform = require('readable-stream/transform.js'); + Stream.PassThrough = require('readable-stream/passthrough.js'); + + // Backwards-compat with node 0.4.x + Stream.Stream = Stream; + + + + // old-style streams. Note that the pipe method (the only relevant + // part of this class) is overridden in the Readable class. + + function Stream() { + EE.call(this); + } + + Stream.prototype.pipe = function (dest, options) { + var source = this; + + function ondata(chunk) { + if (dest.writable) { + if (false === dest.write(chunk) && source.pause) { + source.pause(); + } + } + } + + source.on('data', ondata); + + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } + + dest.on('drain', ondrain); + + // If the 'end' option is not supplied, dest.end() will be called when + // source gets the 'end' or 'close' events. Only dest.end() once. + if (!dest._isStdio && (!options || options.end !== false)) { + source.on('end', onend); + source.on('close', onclose); + } + + var didOnEnd = false; + function onend() { + if (didOnEnd) return; + didOnEnd = true; + + dest.end(); + } + + + function onclose() { + if (didOnEnd) return; + didOnEnd = true; + + if (typeof dest.destroy === 'function') dest.destroy(); + } + + // don't leave dangling pipes when there are errors. + function onerror(er) { + cleanup(); + if (EE.listenerCount(this, 'error') === 0) { + throw er; // Unhandled stream error in pipe. + } + } + + source.on('error', onerror); + dest.on('error', onerror); + + // remove all the event listeners that were added. + function cleanup() { + source.removeListener('data', ondata); + dest.removeListener('drain', ondrain); + + source.removeListener('end', onend); + source.removeListener('close', onclose); + + source.removeListener('error', onerror); + dest.removeListener('error', onerror); + + source.removeListener('end', cleanup); + source.removeListener('close', cleanup); + + dest.removeListener('close', cleanup); + } + + source.on('end', cleanup); + source.on('close', cleanup); + + dest.on('close', cleanup); + + dest.emit('pipe', source); + + // Allow for unix-like usage: A.pipe(B).pipe(C) + return dest; + }; + + }, { "events": 82, "inherits": 84, "readable-stream/duplex.js": 103, "readable-stream/passthrough.js": 110, "readable-stream/readable.js": 111, "readable-stream/transform.js": 112, "readable-stream/writable.js": 113 }], 116: [function (require, module, exports) { + // Copyright Joyent, Inc. and other Node contributors. + // + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: + // + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. + + var Buffer = require('buffer').Buffer; + + var isBufferEncoding = Buffer.isEncoding + || function (encoding) { + switch (encoding && encoding.toLowerCase()) { + case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; + default: return false; + } + } + + + function assertEncoding(encoding) { + if (encoding && !isBufferEncoding(encoding)) { + throw new Error('Unknown encoding: ' + encoding); + } + } + + // StringDecoder provides an interface for efficiently splitting a series of + // buffers into a series of JS strings without breaking apart multi-byte + // characters. CESU-8 is handled as part of the UTF-8 encoding. + // + // @TODO Handling all encodings inside a single object makes it very difficult + // to reason about this code, so it should be split up in the future. + // @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code + // points as used by CESU-8. + var StringDecoder = exports.StringDecoder = function (encoding) { + this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); + assertEncoding(encoding); + switch (this.encoding) { + case 'utf8': + // CESU-8 represents each of Surrogate Pair by 3-bytes + this.surrogateSize = 3; + break; + case 'ucs2': + case 'utf16le': + // UTF-16 represents each of Surrogate Pair by 2-bytes + this.surrogateSize = 2; + this.detectIncompleteChar = utf16DetectIncompleteChar; + break; + case 'base64': + // Base-64 stores 3 bytes in 4 chars, and pads the remainder. + this.surrogateSize = 3; + this.detectIncompleteChar = base64DetectIncompleteChar; + break; + default: + this.write = passThroughWrite; + return; + } + + // Enough space to store all bytes of a single character. UTF-8 needs 4 + // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). + this.charBuffer = new Buffer(6); + // Number of bytes received for the current incomplete multi-byte character. + this.charReceived = 0; + // Number of bytes expected for the current incomplete multi-byte character. + this.charLength = 0; + }; + + + // write decodes the given buffer and returns it as JS string that is + // guaranteed to not contain any partial multi-byte characters. Any partial + // character found at the end of the buffer is buffered up, and will be + // returned when calling write again with the remaining bytes. + // + // Note: Converting a Buffer containing an orphan surrogate to a String + // currently works, but converting a String to a Buffer (via `new Buffer`, or + // Buffer#write) will replace incomplete surrogates with the unicode + // replacement character. See https://codereview.chromium.org/121173009/ . + StringDecoder.prototype.write = function (buffer) { + var charStr = ''; + // if our last write ended with an incomplete multibyte character + while (this.charLength) { + // determine how many remaining bytes this buffer has to offer for this char + var available = (buffer.length >= this.charLength - this.charReceived) ? + this.charLength - this.charReceived : + buffer.length; + + // add the new bytes to the char buffer + buffer.copy(this.charBuffer, this.charReceived, 0, available); + this.charReceived += available; + + if (this.charReceived < this.charLength) { + // still not enough chars in this buffer? wait for more ... + return ''; + } + + // remove bytes belonging to the current character from the buffer + buffer = buffer.slice(available, buffer.length); + + // get the character that was split + charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); + + // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character + var charCode = charStr.charCodeAt(charStr.length - 1); + if (charCode >= 0xD800 && charCode <= 0xDBFF) { + this.charLength += this.surrogateSize; + charStr = ''; + continue; + } + this.charReceived = this.charLength = 0; + + // if there are no more bytes in this buffer, just emit our char + if (buffer.length === 0) { + return charStr; + } + break; + } + + // determine and set charLength / charReceived + this.detectIncompleteChar(buffer); + + var end = buffer.length; + if (this.charLength) { + // buffer the incomplete character bytes we got + buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); + end -= this.charReceived; + } + + charStr += buffer.toString(this.encoding, 0, end); + + var end = charStr.length - 1; + var charCode = charStr.charCodeAt(end); + // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character + if (charCode >= 0xD800 && charCode <= 0xDBFF) { + var size = this.surrogateSize; + this.charLength += size; + this.charReceived += size; + this.charBuffer.copy(this.charBuffer, size, 0, size); + buffer.copy(this.charBuffer, 0, 0, size); + return charStr.substring(0, end); + } + + // or just emit the charStr + return charStr; + }; + + // detectIncompleteChar determines if there is an incomplete UTF-8 character at + // the end of the given buffer. If so, it sets this.charLength to the byte + // length that character, and sets this.charReceived to the number of bytes + // that are available for this character. + StringDecoder.prototype.detectIncompleteChar = function (buffer) { + // determine how many bytes we have to check at the end of this buffer + var i = (buffer.length >= 3) ? 3 : buffer.length; + + // Figure out if one of the last i bytes of our buffer announces an + // incomplete char. + for (; i > 0; i--) { + var c = buffer[buffer.length - i]; + + // See http://en.wikipedia.org/wiki/UTF-8#Description + + // 110XXXXX + if (i == 1 && c >> 5 == 0x06) { + this.charLength = 2; + break; + } + + // 1110XXXX + if (i <= 2 && c >> 4 == 0x0E) { + this.charLength = 3; + break; + } + + // 11110XXX + if (i <= 3 && c >> 3 == 0x1E) { + this.charLength = 4; + break; + } + } + this.charReceived = i; + }; + + StringDecoder.prototype.end = function (buffer) { + var res = ''; + if (buffer && buffer.length) + res = this.write(buffer); + + if (this.charReceived) { + var cr = this.charReceived; + var buf = this.charBuffer; + var enc = this.encoding; + res += buf.slice(0, cr).toString(enc); + } + + return res; + }; + + function passThroughWrite(buffer) { + return buffer.toString(this.encoding); + } + + function utf16DetectIncompleteChar(buffer) { + this.charReceived = buffer.length % 2; + this.charLength = this.charReceived ? 2 : 0; + } + + function base64DetectIncompleteChar(buffer) { + this.charReceived = buffer.length % 3; + this.charLength = this.charReceived ? 3 : 0; + } + + }, { "buffer": 78 }], 117: [function (require, module, exports) { (function (global) { (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : @@ -19451,39 +20513,87 @@ }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) - }, {}], 104: [function (require, module, exports) { - if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; - } else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () { } - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } + }, {}], 118: [function (require, module, exports) { + (function (global) { - }, {}], 105: [function (require, module, exports) { + /** + * Module exports. + */ + + module.exports = deprecate; + + /** + * Mark that a method should not be used. + * Returns a modified function which warns once by default. + * + * If `localStorage.noDeprecation = true` is set, then it is a no-op. + * + * If `localStorage.throwDeprecation = true` is set, then deprecated functions + * will throw an Error when invoked. + * + * If `localStorage.traceDeprecation = true` is set, then deprecated functions + * will invoke `console.trace()` instead of `console.error()`. + * + * @param {Function} fn - the function to deprecate + * @param {String} msg - the string to print to the console when `fn` is invoked + * @returns {Function} a new "deprecated" version of `fn` + * @api public + */ + + function deprecate(fn, msg) { + if (config('noDeprecation')) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (config('throwDeprecation')) { + throw new Error(msg); + } else if (config('traceDeprecation')) { + console.trace(msg); + } else { + console.warn(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; + } + + /** + * Checks `localStorage` for boolean values for the given `name`. + * + * @param {String} name + * @returns {Boolean} + * @api private + */ + + function config(name) { + // accessing global.localStorage can trigger a DOMException in sandboxed iframes + try { + if (!global.localStorage) return false; + } catch (_) { + return false; + } + var val = global.localStorage[name]; + if (null == val) return false; + return String(val).toLowerCase() === 'true'; + } + + }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + }, {}], 119: [function (require, module, exports) { + arguments[4][84][0].apply(exports, arguments) + }, { "dup": 84 }], 120: [function (require, module, exports) { module.exports = function isBuffer(arg) { return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function'; } - }, {}], 106: [function (require, module, exports) { + }, {}], 121: [function (require, module, exports) { (function (process, global) { // Copyright Joyent, Inc. and other Node contributors. // @@ -20073,7 +21183,7 @@ } }).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) - }, { "./support/isBuffer": 105, "_process": 102, "inherits": 104 }], 107: [function (require, module, exports) { + }, { "./support/isBuffer": 120, "_process": 102, "inherits": 119 }], 122: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject, @@ -20158,7 +21268,7 @@ }).call(this); - }, {}], 108: [function (require, module, exports) { + }, {}], 123: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLAttribute; @@ -20206,7 +21316,7 @@ }).call(this); - }, {}], 109: [function (require, module, exports) { + }, {}], 124: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLCData, XMLNode, @@ -20240,7 +21350,7 @@ }).call(this); - }, { "./XMLNode": 120 }], 110: [function (require, module, exports) { + }, { "./XMLNode": 135 }], 125: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLComment, XMLNode, @@ -20274,7 +21384,7 @@ }).call(this); - }, { "./XMLNode": 120 }], 111: [function (require, module, exports) { + }, { "./XMLNode": 135 }], 126: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLDTDAttList, XMLNode, @@ -20326,7 +21436,7 @@ }).call(this); - }, { "./XMLNode": 120 }], 112: [function (require, module, exports) { + }, { "./XMLNode": 135 }], 127: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLDTDElement, XMLNode, @@ -20363,7 +21473,7 @@ }).call(this); - }, { "./XMLNode": 120 }], 113: [function (require, module, exports) { + }, { "./XMLNode": 135 }], 128: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLDTDEntity, XMLNode, isObject, @@ -20421,7 +21531,7 @@ }).call(this); - }, { "./Utility": 107, "./XMLNode": 120 }], 114: [function (require, module, exports) { + }, { "./Utility": 122, "./XMLNode": 135 }], 129: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLDTDNotation, XMLNode, @@ -20460,7 +21570,7 @@ }).call(this); - }, { "./XMLNode": 120 }], 115: [function (require, module, exports) { + }, { "./XMLNode": 135 }], 130: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLDeclaration, XMLNode, isObject, @@ -20502,7 +21612,7 @@ }).call(this); - }, { "./Utility": 107, "./XMLNode": 120 }], 116: [function (require, module, exports) { + }, { "./Utility": 122, "./XMLNode": 135 }], 131: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNode, isObject, @@ -20612,7 +21722,7 @@ }).call(this); - }, { "./Utility": 107, "./XMLDTDAttList": 111, "./XMLDTDElement": 112, "./XMLDTDEntity": 113, "./XMLDTDNotation": 114, "./XMLNode": 120 }], 117: [function (require, module, exports) { + }, { "./Utility": 122, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLNode": 135 }], 132: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject, @@ -20663,7 +21773,7 @@ }).call(this); - }, { "./Utility": 107, "./XMLNode": 120, "./XMLStringWriter": 124, "./XMLStringifier": 125 }], 118: [function (require, module, exports) { + }, { "./Utility": 122, "./XMLNode": 135, "./XMLStringWriter": 139, "./XMLStringifier": 140 }], 133: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref, @@ -21076,7 +22186,7 @@ }).call(this); - }, { "./Utility": 107, "./XMLAttribute": 108, "./XMLCData": 109, "./XMLComment": 110, "./XMLDTDAttList": 111, "./XMLDTDElement": 112, "./XMLDTDEntity": 113, "./XMLDTDNotation": 114, "./XMLDeclaration": 115, "./XMLDocType": 116, "./XMLElement": 119, "./XMLProcessingInstruction": 121, "./XMLRaw": 122, "./XMLStringWriter": 124, "./XMLStringifier": 125, "./XMLText": 126 }], 119: [function (require, module, exports) { + }, { "./Utility": 122, "./XMLAttribute": 123, "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLStringWriter": 139, "./XMLStringifier": 140, "./XMLText": 141 }], 134: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLAttribute, XMLElement, XMLNode, getValue, isFunction, isObject, ref, @@ -21189,7 +22299,7 @@ }).call(this); - }, { "./Utility": 107, "./XMLAttribute": 108, "./XMLNode": 120 }], 120: [function (require, module, exports) { + }, { "./Utility": 122, "./XMLAttribute": 123, "./XMLNode": 135 }], 135: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref, @@ -21637,7 +22747,7 @@ }).call(this); - }, { "./Utility": 107, "./XMLCData": 109, "./XMLComment": 110, "./XMLDeclaration": 115, "./XMLDocType": 116, "./XMLElement": 119, "./XMLProcessingInstruction": 121, "./XMLRaw": 122, "./XMLText": 126 }], 121: [function (require, module, exports) { + }, { "./Utility": 122, "./XMLCData": 124, "./XMLComment": 125, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141 }], 136: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLNode, XMLProcessingInstruction, @@ -21674,7 +22784,7 @@ }).call(this); - }, { "./XMLNode": 120 }], 122: [function (require, module, exports) { + }, { "./XMLNode": 135 }], 137: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLNode, XMLRaw, @@ -21708,7 +22818,7 @@ }).call(this); - }, { "./XMLNode": 120 }], 123: [function (require, module, exports) { + }, { "./XMLNode": 135 }], 138: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStreamWriter, XMLText, XMLWriterBase, @@ -21989,7 +23099,7 @@ }).call(this); - }, { "./XMLCData": 109, "./XMLComment": 110, "./XMLDTDAttList": 111, "./XMLDTDElement": 112, "./XMLDTDEntity": 113, "./XMLDTDNotation": 114, "./XMLDeclaration": 115, "./XMLDocType": 116, "./XMLElement": 119, "./XMLProcessingInstruction": 121, "./XMLRaw": 122, "./XMLText": 126, "./XMLWriterBase": 127 }], 124: [function (require, module, exports) { + }, { "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141, "./XMLWriterBase": 142 }], 139: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLText, XMLWriterBase, @@ -22325,7 +23435,7 @@ }).call(this); - }, { "./XMLCData": 109, "./XMLComment": 110, "./XMLDTDAttList": 111, "./XMLDTDElement": 112, "./XMLDTDEntity": 113, "./XMLDTDNotation": 114, "./XMLDeclaration": 115, "./XMLDocType": 116, "./XMLElement": 119, "./XMLProcessingInstruction": 121, "./XMLRaw": 122, "./XMLText": 126, "./XMLWriterBase": 127 }], 125: [function (require, module, exports) { + }, { "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141, "./XMLWriterBase": 142 }], 140: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLStringifier, @@ -22490,7 +23600,7 @@ }).call(this); - }, {}], 126: [function (require, module, exports) { + }, {}], 141: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLNode, XMLText, @@ -22524,7 +23634,7 @@ }).call(this); - }, { "./XMLNode": 120 }], 127: [function (require, module, exports) { + }, { "./XMLNode": 135 }], 142: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLWriterBase, @@ -22616,7 +23726,7 @@ }).call(this); - }, {}], 128: [function (require, module, exports) { + }, {}], 143: [function (require, module, exports) { // Generated by CoffeeScript 1.12.7 (function () { var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; @@ -22669,9 +23779,9 @@ return new XMLStreamWriter(stream, options); }; + }).call(this); - - }, { "./Utility": 107, "./XMLDocument": 117, "./XMLDocumentCB": 118, "./XMLStreamWriter": 123, "./XMLStringWriter": 124 }] + }, { "./Utility": 122, "./XMLDocument": 132, "./XMLDocumentCB": 133, "./XMLStreamWriter": 138, "./XMLStringWriter": 139 }] }, {}, [21])(21) }); diff --git a/public/assets/js/mammoth.browser.min.js b/public/assets/js/mammoth.browser.min.js index bb17e44..4096819 100644 --- a/public/assets/js/mammoth.browser.min.js +++ b/public/assets/js/mammoth.browser.min.js @@ -1,130 +1,140 @@ !function (f) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = f(); else if ("function" == typeof define && define.amd) define([], f); else { var g; g = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, g.mammoth = f() } }(function () { var define, module, exports; return function e(t, n, r) { function s(o, u) { if (!n[o]) { if (!t[o]) { var a = "function" == typeof require && require; if (!u && a) return a(o, !0); if (i) return i(o, !0); var f = new Error("Cannot find module '" + o + "'"); throw f.code = "MODULE_NOT_FOUND", f } var l = n[o] = { exports: {} }; t[o][0].call(l.exports, function (e) { var n = t[o][1][e]; return s(n ? n : e) }, l, l.exports, e, t, n, r) } return n[o].exports } for (var i = "function" == typeof require && require, o = 0; o < r.length; o++)s(r[o]); return s }({ - 1: [function (require, module, exports) { function Files() { function read(uri) { return promises.reject(new Error("could not open external image: '" + uri + "'\ncannot open linked files from a web browser")) } return { read: read } } var promises = require("../../lib/promises"); exports.Files = Files }, { "../../lib/promises": 23 }], 2: [function (require, module, exports) { function openZip(options) { return options.arrayBuffer ? promises.resolve(zipfile.openArrayBuffer(options.arrayBuffer)) : promises.reject(new Error("Could not find file in options")) } var promises = require("../lib/promises"), zipfile = require("../lib/zipfile"); exports.openZip = openZip }, { "../lib/promises": 23, "../lib/zipfile": 40 }], 3: [function (require, module, exports) { function DocumentConverter(options) { return { convertToHtml: function (element) { var comments = _.indexBy(element.type === documents.types.document ? element.comments : [], "commentId"), conversion = new DocumentConversion(options, comments); return conversion.convertToHtml(element) } } } function DocumentConversion(options, comments) { function convertToHtml(document) { var messages = [], html = elementToHtml(document, messages, {}), deferredNodes = []; walkHtml(html, function (node) { "deferred" === node.type && deferredNodes.push(node) }); var deferredValues = {}; return promises.mapSeries(deferredNodes, function (deferred) { return deferred.value().then(function (value) { deferredValues[deferred.id] = value }) }).then(function () { function replaceDeferred(nodes) { return flatMap(nodes, function (node) { return "deferred" === node.type ? deferredValues[node.id] : node.children ? [_.extend({}, node, { children: replaceDeferred(node.children) })] : [node] }) } var writer = writers.writer({ prettyPrint: options.prettyPrint, outputFormat: options.outputFormat }); return Html.write(writer, Html.simplify(replaceDeferred(html))), new results.Result(writer.asString(), messages) }) } function convertElements(elements, messages, options) { return flatMap(elements, function (element) { return elementToHtml(element, messages, options) }) } function elementToHtml(element, messages, options) { if (!options) throw new Error("options not set"); var handler = elementConverters[element.type]; return handler ? handler(element, messages, options) : [] } function convertParagraph(element, messages, options) { return htmlPathForParagraph(element, messages).wrap(function () { var content = convertElements(element.children, messages, options); return ignoreEmptyParagraphs ? content : [Html.forceWrite].concat(content) }) } function htmlPathForParagraph(element, messages) { var style = findStyle(element); return style ? style.to : (element.styleId && messages.push(unrecognisedStyleWarning("paragraph", element)), defaultParagraphStyle) } function convertRun(run, messages, options) { var nodes = function () { return convertElements(run.children, messages, options) }, paths = []; run.isSmallCaps && paths.push(findHtmlPathForRunProperty("smallCaps")), run.isAllCaps && paths.push(findHtmlPathForRunProperty("allCaps")), run.isStrikethrough && paths.push(findHtmlPathForRunProperty("strikethrough", "s")), run.isUnderline && paths.push(findHtmlPathForRunProperty("underline")), run.verticalAlignment === documents.verticalAlignment.subscript && paths.push(htmlPaths.element("sub", {}, { fresh: !1 })), run.verticalAlignment === documents.verticalAlignment.superscript && paths.push(htmlPaths.element("sup", {}, { fresh: !1 })), run.isItalic && paths.push(findHtmlPathForRunProperty("italic", "em")), run.isBold && paths.push(findHtmlPathForRunProperty("bold", "strong")); var stylePath = htmlPaths.empty, style = findStyle(run); return style ? stylePath = style.to : run.styleId && messages.push(unrecognisedStyleWarning("run", run)), paths.push(stylePath), paths.forEach(function (path) { nodes = path.wrap.bind(path, nodes) }), nodes() } function findHtmlPathForRunProperty(elementType, defaultTagName) { var path = findHtmlPath({ type: elementType }); return path ? path : defaultTagName ? htmlPaths.element(defaultTagName, {}, { fresh: !1 }) : htmlPaths.empty } function findHtmlPath(element, defaultPath) { var style = findStyle(element); return style ? style.to : defaultPath } function findStyle(element) { for (var i = 0; i < styleMap.length; i++)if (styleMap[i].from.matches(element)) return styleMap[i] } function recoveringConvertImage(convertImage) { return function (image, messages) { return promises.attempt(function () { return convertImage(image, messages) }).caught(function (error) { return messages.push(results.error(error)), [] }) } } function noteHtmlId(note) { return referentHtmlId(note.noteType, note.noteId) } function noteRefHtmlId(note) { return referenceHtmlId(note.noteType, note.noteId) } function referentHtmlId(referenceType, referenceId) { return htmlId(referenceType + "-" + referenceId) } function referenceHtmlId(referenceType, referenceId) { return htmlId(referenceType + "-ref-" + referenceId) } function htmlId(suffix) { return idPrefix + suffix } function convertTable(element, messages, options) { return findHtmlPath(element, defaultTablePath).wrap(function () { return convertTableChildren(element, messages, options) }) } function convertTableChildren(element, messages, options) { var bodyIndex = _.findIndex(element.children, function (child) { return !child.type === documents.types.tableRow || !child.isHeader }); -1 === bodyIndex && (bodyIndex = element.children.length); var children; if (0 === bodyIndex) children = convertElements(element.children, messages, _.extend({}, options, { isTableHeader: !1 })); else { var headRows = convertElements(element.children.slice(0, bodyIndex), messages, _.extend({}, options, { isTableHeader: !0 })), bodyRows = convertElements(element.children.slice(bodyIndex), messages, _.extend({}, options, { isTableHeader: !1 })); children = [Html.freshElement("thead", {}, headRows), Html.freshElement("tbody", {}, bodyRows)] } return [Html.forceWrite].concat(children) } function convertTableRow(element, messages, options) { var children = convertElements(element.children, messages, options); return [Html.freshElement("tr", {}, [Html.forceWrite].concat(children))] } function convertTableCell(element, messages, options) { var tagName = options.isTableHeader ? "th" : "td", children = convertElements(element.children, messages, options), attributes = {}; return 1 !== element.colSpan && (attributes.colspan = element.colSpan.toString()), 1 !== element.rowSpan && (attributes.rowspan = element.rowSpan.toString()), [Html.freshElement(tagName, attributes, [Html.forceWrite].concat(children))] } function convertCommentReference(reference, messages, options) { return findHtmlPath(reference, htmlPaths.ignore).wrap(function () { var comment = comments[reference.commentId], count = referencedComments.length + 1, label = "[" + commentAuthorLabel(comment) + count + "]"; return referencedComments.push({ label: label, comment: comment }), [Html.freshElement("a", { href: "#" + referentHtmlId("comment", reference.commentId), id: referenceHtmlId("comment", reference.commentId) }, [Html.text(label)])] }) } function convertComment(referencedComment, messages, options) { var label = referencedComment.label, comment = referencedComment.comment, body = convertElements(comment.body, messages, options).concat([Html.nonFreshElement("p", {}, [Html.text(" "), Html.freshElement("a", { href: "#" + referenceHtmlId("comment", comment.commentId) }, [Html.text("↑")])])]); return [Html.freshElement("dt", { id: referentHtmlId("comment", comment.commentId) }, [Html.text("Comment " + label)]), Html.freshElement("dd", {}, body)] } function convertBreak(element, messages, options) { return htmlPathForBreak(element).wrap(function () { return [] }) } function htmlPathForBreak(element) { var style = findStyle(element); return style ? style.to : "line" === element.breakType ? htmlPaths.topLevelElement("br") : htmlPaths.empty } var noteNumber = 1, noteReferences = [], referencedComments = []; options = _.extend({ ignoreEmptyParagraphs: !0 }, options); var idPrefix = void 0 === options.idPrefix ? "" : options.idPrefix, ignoreEmptyParagraphs = options.ignoreEmptyParagraphs, defaultParagraphStyle = htmlPaths.topLevelElement("p"), styleMap = options.styleMap || [], defaultTablePath = htmlPaths.elements([htmlPaths.element("table", {}, { fresh: !0 })]), elementConverters = { document: function (document, messages, options) { var children = convertElements(document.children, messages, options), notes = noteReferences.map(function (noteReference) { return document.notes.resolve(noteReference) }), notesNodes = convertElements(notes, messages, options); return children.concat([Html.freshElement("ol", {}, notesNodes), Html.freshElement("dl", {}, flatMap(referencedComments, function (referencedComment) { return convertComment(referencedComment, messages, options) }))]) }, paragraph: convertParagraph, run: convertRun, text: function (element, messages, options) { return [Html.text(element.value)] }, tab: function (element, messages, options) { return [Html.text(" ")] }, hyperlink: function (element, messages, options) { var href = element.anchor ? "#" + htmlId(element.anchor) : element.href, attributes = { href: href }; null != element.targetFrame && (attributes.target = element.targetFrame); var children = convertElements(element.children, messages, options); return [Html.nonFreshElement("a", attributes, children)] }, bookmarkStart: function (element, messages, options) { var anchor = Html.freshElement("a", { id: htmlId(element.name) }, [Html.forceWrite]); return [anchor] }, noteReference: function (element, messages, options) { noteReferences.push(element); var anchor = Html.freshElement("a", { href: "#" + noteHtmlId(element), id: noteRefHtmlId(element) }, [Html.text("[" + noteNumber++ + "]")]); return [Html.freshElement("sup", {}, [anchor])] }, note: function (element, messages, options) { var children = convertElements(element.body, messages, options), backLink = Html.elementWithTag(htmlPaths.element("p", {}, { fresh: !1 }), [Html.text(" "), Html.freshElement("a", { href: "#" + noteRefHtmlId(element) }, [Html.text("↑")])]), body = children.concat([backLink]); return Html.freshElement("li", { id: noteHtmlId(element) }, body) }, commentReference: convertCommentReference, comment: convertComment, image: deferredConversion(recoveringConvertImage(options.convertImage || images.dataUri)), table: convertTable, tableRow: convertTableRow, tableCell: convertTableCell, "break": convertBreak }; return { convertToHtml: convertToHtml } } function deferredConversion(func) { return function (element, messages, options) { return [{ type: "deferred", id: deferredId++, value: function () { return func(element, messages, options) } }] } } function unrecognisedStyleWarning(type, element) { return results.warning("Unrecognised " + type + " style: '" + element.styleName + "' (Style ID: " + element.styleId + ")") } function flatMap(values, func) { return _.flatten(values.map(func), !0) } function walkHtml(nodes, callback) { nodes.forEach(function (node) { callback(node), node.children && walkHtml(node.children, callback) }) } var _ = require("underscore"), promises = require("./promises"), documents = require("./documents"), htmlPaths = require("./styles/html-paths"), results = require("./results"), images = require("./images"), Html = require("./html"), writers = require("./writers"); exports.DocumentConverter = DocumentConverter; var deferredId = 1, commentAuthorLabel = exports.commentAuthorLabel = function (comment) { return comment.authorInitials || "" } }, { "./documents": 4, "./html": 18, "./images": 20, "./promises": 23, "./results": 25, "./styles/html-paths": 28, "./writers": 33, underscore: 103 }], 4: [function (require, module, exports) { (function (Buffer) { function Document(children, options) { return options = options || {}, { type: types.document, children: children, notes: options.notes || new Notes({}), comments: options.comments || [] } } function Paragraph(children, properties) { properties = properties || {}; var indent = properties.indent || {}; return { type: types.paragraph, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null, numbering: properties.numbering || null, alignment: properties.alignment || null, indent: { start: indent.start || null, end: indent.end || null, firstLine: indent.firstLine || null, hanging: indent.hanging || null } } } function Run(children, properties) { return properties = properties || {}, { type: types.run, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null, isBold: !!properties.isBold, isUnderline: !!properties.isUnderline, isItalic: !!properties.isItalic, isStrikethrough: !!properties.isStrikethrough, isAllCaps: !!properties.isAllCaps, isSmallCaps: !!properties.isSmallCaps, verticalAlignment: properties.verticalAlignment || verticalAlignment.baseline, font: properties.font || null, fontSize: properties.fontSize || null } } function Text(value) { return { type: types.text, value: value } } function Tab() { return { type: types.tab } } function Hyperlink(children, options) { return { type: types.hyperlink, children: children, href: options.href, anchor: options.anchor, targetFrame: options.targetFrame } } function NoteReference(options) { return { type: types.noteReference, noteType: options.noteType, noteId: options.noteId } } function Notes(notes) { this._notes = _.indexBy(notes, function (note) { return noteKey(note.noteType, note.noteId) }) } function Note(options) { return { type: types.note, noteType: options.noteType, noteId: options.noteId, body: options.body } } function commentReference(options) { return { type: types.commentReference, commentId: options.commentId } } function comment(options) { return { type: types.comment, commentId: options.commentId, body: options.body, authorName: options.authorName, authorInitials: options.authorInitials } } function noteKey(noteType, id) { return noteType + "-" + id } function Image(options) { return { type: types.image, read: function (encoding) { return encoding ? options.readImage(encoding) : options.readImage().then(function (arrayBuffer) { return Buffer.from(arrayBuffer) }) }, readAsArrayBuffer: function () { return options.readImage() }, readAsBase64String: function () { return options.readImage("base64") }, readAsBuffer: function () { return options.readImage().then(function (arrayBuffer) { return Buffer.from(arrayBuffer) }) }, altText: options.altText, contentType: options.contentType } } function Table(children, properties) { return properties = properties || {}, { type: types.table, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null } } function TableRow(children, options) { return options = options || {}, { type: types.tableRow, children: children, isHeader: options.isHeader || !1 } } function TableCell(children, options) { return options = options || {}, { type: types.tableCell, children: children, colSpan: null == options.colSpan ? 1 : options.colSpan, rowSpan: null == options.rowSpan ? 1 : options.rowSpan } } function Break(breakType) { return { type: types["break"], breakType: breakType } } function BookmarkStart(options) { return { type: types.bookmarkStart, name: options.name } } var _ = require("underscore"), types = exports.types = { document: "document", paragraph: "paragraph", run: "run", text: "text", tab: "tab", hyperlink: "hyperlink", noteReference: "noteReference", image: "image", note: "note", commentReference: "commentReference", comment: "comment", table: "table", tableRow: "tableRow", tableCell: "tableCell", "break": "break", bookmarkStart: "bookmarkStart" }, verticalAlignment = { baseline: "baseline", superscript: "superscript", subscript: "subscript" }; Notes.prototype.resolve = function (reference) { return this.findNoteByKey(noteKey(reference.noteType, reference.noteId)) }, Notes.prototype.findNoteByKey = function (key) { return this._notes[key] || null }, exports.document = exports.Document = Document, exports.paragraph = exports.Paragraph = Paragraph, exports.run = exports.Run = Run, exports.text = exports.Text = Text, exports.tab = exports.Tab = Tab, exports.Hyperlink = Hyperlink, exports.noteReference = exports.NoteReference = NoteReference, exports.Notes = Notes, exports.Note = Note, exports.commentReference = commentReference, exports.comment = comment, exports.Image = Image, exports.Table = Table, exports.TableRow = TableRow, exports.TableCell = TableCell, exports.lineBreak = Break("line"), exports.pageBreak = Break("page"), exports.columnBreak = Break("column"), exports.BookmarkStart = BookmarkStart, exports.verticalAlignment = verticalAlignment }).call(this, require("buffer").Buffer) }, { buffer: 83, underscore: 103 }], 5: [function (require, module, exports) { function createBodyReader(options) { return { readXmlElement: function (element) { return new BodyReader(options).readXmlElement(element) }, readXmlElements: function (elements) { return new BodyReader(options).readXmlElements(elements) } } } function BodyReader(options) { function readXmlElements(elements) { var results = elements.map(readXmlElement); return combineResults(results) } function readXmlElement(element) { if ("element" === element.type) { var handler = xmlElementReaders[element.name]; if (handler) return handler(element); if (!Object.prototype.hasOwnProperty.call(ignoreElements, element.name)) { var message = warning("An unrecognised element was ignored: " + element.name); return emptyResultWithMessages([message]) } } return emptyResult() } function readParagraphProperties(element) { return readParagraphStyle(element).map(function (style) { return { type: "paragraphProperties", styleId: style.styleId, styleName: style.name, alignment: element.firstOrEmpty("w:jc").attributes["w:val"], numbering: readNumberingProperties(style.styleId, element.firstOrEmpty("w:numPr"), numbering), indent: readParagraphIndent(element.firstOrEmpty("w:ind")) } }) } function readParagraphIndent(element) { return { start: element.attributes["w:start"] || element.attributes["w:left"], end: element.attributes["w:end"] || element.attributes["w:right"], firstLine: element.attributes["w:firstLine"], hanging: element.attributes["w:hanging"] } } function readRunProperties(element) { return readRunStyle(element).map(function (style) { var fontSizeString = element.firstOrEmpty("w:sz").attributes["w:val"], fontSize = /^[0-9]+$/.test(fontSizeString) ? parseInt(fontSizeString, 10) / 2 : null; return { type: "runProperties", styleId: style.styleId, styleName: style.name, verticalAlignment: element.firstOrEmpty("w:vertAlign").attributes["w:val"], font: element.firstOrEmpty("w:rFonts").attributes["w:ascii"], fontSize: fontSize, isBold: readBooleanElement(element.first("w:b")), isUnderline: readUnderline(element.first("w:u")), isItalic: readBooleanElement(element.first("w:i")), isStrikethrough: readBooleanElement(element.first("w:strike")), isAllCaps: readBooleanElement(element.first("w:caps")), isSmallCaps: readBooleanElement(element.first("w:smallCaps")) } }) } function readUnderline(element) { if (element) { var value = element.attributes["w:val"]; return void 0 !== value && "false" !== value && "0" !== value && "none" !== value } return !1 } function readBooleanElement(element) { if (element) { var value = element.attributes["w:val"]; return "false" !== value && "0" !== value } return !1 } function readParagraphStyle(element) { return readStyle(element, "w:pStyle", "Paragraph", styles.findParagraphStyleById) } function readRunStyle(element) { return readStyle(element, "w:rStyle", "Run", styles.findCharacterStyleById) } function readTableStyle(element) { return readStyle(element, "w:tblStyle", "Table", styles.findTableStyleById) } function readStyle(element, styleTagName, styleType, findStyleById) { var messages = [], styleElement = element.first(styleTagName), styleId = null, name = null; if (styleElement && (styleId = styleElement.attributes["w:val"])) { var style = findStyleById(styleId); style ? name = style.name : messages.push(undefinedStyleWarning(styleType, styleId)) } return elementResultWithMessages({ styleId: styleId, name: name }, messages) } function readFldChar(element) { var type = element.attributes["w:fldCharType"]; if ("begin" === type) complexFieldStack.push(unknownComplexField), currentInstrText = []; else if ("end" === type) complexFieldStack.pop(); else if ("separate" === type) { var hyperlinkOptions = parseHyperlinkFieldCode(currentInstrText.join("")), complexField = null === hyperlinkOptions ? unknownComplexField : { type: "hyperlink", options: hyperlinkOptions }; complexFieldStack.pop(), complexFieldStack.push(complexField) } return emptyResult() } function currentHyperlinkOptions() { var topHyperlink = _.last(complexFieldStack.filter(function (complexField) { return "hyperlink" === complexField.type })); return topHyperlink ? topHyperlink.options : null } function parseHyperlinkFieldCode(code) { var externalLinkResult = /\s*HYPERLINK "(.*)"/.exec(code); if (externalLinkResult) return { href: externalLinkResult[1] }; var internalLinkResult = /\s*HYPERLINK\s+\\l\s+"(.*)"/.exec(code); return internalLinkResult ? { anchor: internalLinkResult[1] } : null } function readInstrText(element) { return currentInstrText.push(element.text()), emptyResult() } function readSymbol(element) { var font = element.attributes["w:font"], char = element.attributes["w:char"], unicodeCharacter = dingbatToUnicode.hex(font, char); return null == unicodeCharacter && /^F0..$/.test(char) && (unicodeCharacter = dingbatToUnicode.hex(font, char.substring(2))), null == unicodeCharacter ? emptyResultWithMessages([warning("A w:sym element with an unsupported character was ignored: char " + char + " in font " + font)]) : elementResult(new documents.Text(unicodeCharacter.string)) } function noteReferenceReader(noteType) { return function (element) { var noteId = element.attributes["w:id"]; return elementResult(new documents.NoteReference({ noteType: noteType, noteId: noteId })) } } function readCommentReference(element) { return elementResult(documents.commentReference({ commentId: element.attributes["w:id"] })) } function readChildElements(element) { return readXmlElements(element.children) } function readTable(element) { var propertiesResult = readTableProperties(element.firstOrEmpty("w:tblPr")); return readXmlElements(element.children).flatMap(calculateRowSpans).flatMap(function (children) { return propertiesResult.map(function (properties) { return documents.Table(children, properties) }) }) } function readTableProperties(element) { return readTableStyle(element).map(function (style) { return { styleId: style.styleId, styleName: style.name } }) } function readTableRow(element) { var properties = element.firstOrEmpty("w:trPr"), isHeader = !!properties.first("w:tblHeader"); return readXmlElements(element.children).map(function (children) { return documents.TableRow(children, { isHeader: isHeader }) }) } function readTableCell(element) { return readXmlElements(element.children).map(function (children) { var properties = element.firstOrEmpty("w:tcPr"), gridSpan = properties.firstOrEmpty("w:gridSpan").attributes["w:val"], colSpan = gridSpan ? parseInt(gridSpan, 10) : 1, cell = documents.TableCell(children, { colSpan: colSpan }); return cell._vMerge = readVMerge(properties), cell }) } function readVMerge(properties) { var element = properties.first("w:vMerge"); if (element) { var val = element.attributes["w:val"]; return "continue" === val || !val } return null } function calculateRowSpans(rows) { var unexpectedNonRows = _.any(rows, function (row) { return row.type !== documents.types.tableRow }); if (unexpectedNonRows) return elementResultWithMessages(rows, [warning("unexpected non-row element in table, cell merging may be incorrect")]); var unexpectedNonCells = _.any(rows, function (row) { return _.any(row.children, function (cell) { return cell.type !== documents.types.tableCell }) }); if (unexpectedNonCells) return elementResultWithMessages(rows, [warning("unexpected non-cell element in table row, cell merging may be incorrect")]); var columns = {}; return rows.forEach(function (row) { var cellIndex = 0; row.children.forEach(function (cell) { cell._vMerge && columns[cellIndex] ? columns[cellIndex].rowSpan++ : (columns[cellIndex] = cell, cell._vMerge = !1), cellIndex += cell.colSpan }) }), rows.forEach(function (row) { row.children = row.children.filter(function (cell) { return !cell._vMerge }), row.children.forEach(function (cell) { delete cell._vMerge }) }), elementResult(rows) } function readDrawingElement(element) { var blips = element.getElementsByTagName("a:graphic").getElementsByTagName("a:graphicData").getElementsByTagName("pic:pic").getElementsByTagName("pic:blipFill").getElementsByTagName("a:blip"); return combineResults(blips.map(readBlip.bind(null, element))) } function readBlip(element, blip) { var properties = element.first("wp:docPr").attributes, altText = isBlank(properties.descr) ? properties.title : properties.descr, blipImageFile = findBlipImageFile(blip); return null === blipImageFile ? emptyResultWithMessages([warning("Could not find image file for a:blip element")]) : readImage(blipImageFile, altText) } function isBlank(value) { return null == value || /^\s*$/.test(value) } function findBlipImageFile(blip) { var embedRelationshipId = blip.attributes["r:embed"], linkRelationshipId = blip.attributes["r:link"]; if (embedRelationshipId) return findEmbeddedImageFile(embedRelationshipId); if (linkRelationshipId) { var imagePath = relationships.findTargetByRelationshipId(linkRelationshipId); return { path: imagePath, read: files.read.bind(files, imagePath) } } return null } function readImageData(element) { var relationshipId = element.attributes["r:id"]; return relationshipId ? readImage(findEmbeddedImageFile(relationshipId), element.attributes["o:title"]) : emptyResultWithMessages([warning("A v:imagedata element without a relationship ID was ignored")]) } function findEmbeddedImageFile(relationshipId) { var path = uris.uriToZipEntryName("word", relationships.findTargetByRelationshipId(relationshipId)); return { path: path, read: docxFile.read.bind(docxFile, path) } } function readImage(imageFile, altText) { var contentType = contentTypes.findContentType(imageFile.path), image = documents.Image({ readImage: imageFile.read, altText: altText, contentType: contentType }), warnings = supportedImageTypes[contentType] ? [] : warning("Image of type " + contentType + " is unlikely to display in web browsers"); return elementResultWithMessages(image, warnings) } function undefinedStyleWarning(type, styleId) { return warning(type + " style with ID " + styleId + " was referenced but not defined in the document") } var complexFieldStack = [], currentInstrText = [], deletedParagraphContents = [], relationships = options.relationships, contentTypes = options.contentTypes, docxFile = options.docxFile, files = options.files, numbering = options.numbering, styles = options.styles, unknownComplexField = { type: "unknown" }, xmlElementReaders = { "w:p": function (element) { var paragraphPropertiesElement = element.firstOrEmpty("w:pPr"), isDeleted = !!paragraphPropertiesElement.firstOrEmpty("w:rPr").first("w:del"); if (isDeleted) return element.children.forEach(function (child) { deletedParagraphContents.push(child) }), emptyResult(); var childrenXml = element.children; return deletedParagraphContents.length > 0 && (childrenXml = deletedParagraphContents.concat(childrenXml), deletedParagraphContents = []), ReadResult.map(readParagraphProperties(paragraphPropertiesElement), readXmlElements(childrenXml), function (properties, children) { return new documents.Paragraph(children, properties) }).insertExtra() }, "w:r": function (element) { return ReadResult.map(readRunProperties(element.firstOrEmpty("w:rPr")), readXmlElements(element.children), function (properties, children) { var hyperlinkOptions = currentHyperlinkOptions(); return null !== hyperlinkOptions && (children = [new documents.Hyperlink(children, hyperlinkOptions)]), new documents.Run(children, properties) }) }, "w:fldChar": readFldChar, "w:instrText": readInstrText, "w:t": function (element) { return elementResult(new documents.Text(element.text())) }, "w:tab": function (element) { return elementResult(new documents.Tab) }, "w:noBreakHyphen": function () { return elementResult(new documents.Text("‑")) }, "w:softHyphen": function (element) { return elementResult(new documents.Text("­")) }, "w:sym": readSymbol, "w:hyperlink": function (element) { var relationshipId = element.attributes["r:id"], anchor = element.attributes["w:anchor"]; return readXmlElements(element.children).map(function (children) { function create(options) { var targetFrame = element.attributes["w:tgtFrame"] || null; return new documents.Hyperlink(children, _.extend({ targetFrame: targetFrame }, options)) } if (relationshipId) { var href = relationships.findTargetByRelationshipId(relationshipId); return anchor && (href = uris.replaceFragment(href, anchor)), create({ href: href }) } return anchor ? create({ anchor: anchor }) : children }) }, "w:tbl": readTable, "w:tr": readTableRow, "w:tc": readTableCell, "w:footnoteReference": noteReferenceReader("footnote"), "w:endnoteReference": noteReferenceReader("endnote"), "w:commentReference": readCommentReference, "w:br": function (element) { var breakType = element.attributes["w:type"]; return null == breakType || "textWrapping" === breakType ? elementResult(documents.lineBreak) : "page" === breakType ? elementResult(documents.pageBreak) : "column" === breakType ? elementResult(documents.columnBreak) : emptyResultWithMessages([warning("Unsupported break type: " + breakType)]) }, "w:bookmarkStart": function (element) { var name = element.attributes["w:name"]; return "_GoBack" === name ? emptyResult() : elementResult(new documents.BookmarkStart({ name: name })) }, "mc:AlternateContent": function (element) { return readChildElements(element.first("mc:Fallback")) }, "w:sdt": function (element) { return readXmlElements(element.firstOrEmpty("w:sdtContent").children) }, "w:ins": readChildElements, "w:object": readChildElements, "w:smartTag": readChildElements, "w:drawing": readChildElements, "w:pict": function (element) { return readChildElements(element).toExtra() }, "v:roundrect": readChildElements, "v:shape": readChildElements, "v:textbox": readChildElements, "w:txbxContent": readChildElements, "wp:inline": readDrawingElement, "wp:anchor": readDrawingElement, "v:imagedata": readImageData, "v:group": readChildElements, "v:rect": readChildElements }; return { readXmlElement: readXmlElement, readXmlElements: readXmlElements } } function readNumberingProperties(styleId, element, numbering) { if (null != styleId) { var levelByStyleId = numbering.findLevelByParagraphStyleId(styleId); if (null != levelByStyleId) return levelByStyleId } var level = element.firstOrEmpty("w:ilvl").attributes["w:val"], numId = element.firstOrEmpty("w:numId").attributes["w:val"]; return void 0 === level || void 0 === numId ? null : numbering.findLevel(numId, level) } function emptyResultWithMessages(messages) { return new ReadResult(null, null, messages) } function emptyResult() { return new ReadResult(null) } function elementResult(element) { return new ReadResult(element) } function elementResultWithMessages(element, messages) { return new ReadResult(element, null, messages) } function ReadResult(element, extra, messages) { this.value = element || [], this.extra = extra || [], this._result = new Result({ element: this.value, extra: extra }, messages), this.messages = this._result.messages } function combineResults(results) { var result = Result.combine(_.pluck(results, "_result")); return new ReadResult(_.flatten(_.pluck(result.value, "element")), _.filter(_.flatten(_.pluck(result.value, "extra")), identity), result.messages) } function joinElements(first, second) { return _.flatten([first, second]) } function identity(value) { return value } exports.createBodyReader = createBodyReader, exports._readNumberingProperties = readNumberingProperties; var dingbatToUnicode = require("dingbat-to-unicode"), _ = require("underscore"), documents = require("../documents"), Result = require("../results").Result, warning = require("../results").warning, uris = require("./uris"), supportedImageTypes = { "image/png": !0, "image/gif": !0, "image/jpeg": !0, "image/svg+xml": !0, "image/tiff": !0 }, ignoreElements = { "office-word:wrap": !0, "v:shadow": !0, "v:shapetype": !0, "w:annotationRef": !0, "w:bookmarkEnd": !0, "w:sectPr": !0, "w:proofErr": !0, "w:lastRenderedPageBreak": !0, "w:commentRangeStart": !0, "w:commentRangeEnd": !0, "w:del": !0, "w:footnoteRef": !0, "w:endnoteRef": !0, "w:pPr": !0, "w:rPr": !0, "w:tblPr": !0, "w:tblGrid": !0, "w:trPr": !0, "w:tcPr": !0 }; ReadResult.prototype.toExtra = function () { return new ReadResult(null, joinElements(this.extra, this.value), this.messages) }, ReadResult.prototype.insertExtra = function () { var extra = this.extra; return extra && extra.length ? new ReadResult(joinElements(this.value, extra), null, this.messages) : this }, ReadResult.prototype.map = function (func) { var result = this._result.map(function (value) { return func(value.element) }); return new ReadResult(result.value, this.extra, result.messages) }, ReadResult.prototype.flatMap = function (func) { var result = this._result.flatMap(function (value) { return func(value.element)._result }); return new ReadResult(result.value.element, joinElements(this.extra, result.value.extra), result.messages) }, ReadResult.map = function (first, second, func) { return new ReadResult(func(first.value, second.value), joinElements(first.extra, second.extra), first.messages.concat(second.messages)) } }, { "../documents": 4, "../results": 25, "./uris": 16, "dingbat-to-unicode": 85, underscore: 103 }], 6: [function (require, module, exports) { - function createCommentsReader(bodyReader) { - function readCommentsXml(element) { - return Result.combine(element.getElementsByTagName("w:comment").map(readCommentElement)) - } function readCommentElement(element) { function readOptionalAttribute(name) { return (element.attributes[name] || "").trim() || null } var id = element.attributes["w:id"]; return bodyReader.readXmlElements(element.children).map(function (body) { return documents.comment({ commentId: id, body: body, authorName: readOptionalAttribute("w:author"), authorInitials: readOptionalAttribute("w:initials") }) }) } return readCommentsXml - } var documents = require("../documents"), Result = require("../results").Result; exports.createCommentsReader = createCommentsReader - }, { "../documents": 4, "../results": 25 }], 7: [function (require, module, exports) { function readContentTypesFromXml(element) { var extensionDefaults = {}, overrides = {}; return element.children.forEach(function (child) { if ("content-types:Default" === child.name && (extensionDefaults[child.attributes.Extension] = child.attributes.ContentType), "content-types:Override" === child.name) { var name = child.attributes.PartName; "/" === name.charAt(0) && (name = name.substring(1)), overrides[name] = child.attributes.ContentType } }), contentTypes(overrides, extensionDefaults) } function contentTypes(overrides, extensionDefaults) { return { findContentType: function (path) { var overrideContentType = overrides[path]; if (overrideContentType) return overrideContentType; var pathParts = path.split("."), extension = pathParts[pathParts.length - 1]; if (extensionDefaults.hasOwnProperty(extension)) return extensionDefaults[extension]; var fallback = fallbackContentTypes[extension.toLowerCase()]; return fallback ? "image/" + fallback : null } } } exports.readContentTypesFromXml = readContentTypesFromXml; var fallbackContentTypes = { png: "png", gif: "gif", jpeg: "jpeg", jpg: "jpeg", tif: "tiff", tiff: "tiff", bmp: "bmp" }; exports.defaultContentTypes = contentTypes({}, {}) }, {}], 8: [function (require, module, exports) { function DocumentXmlReader(options) { function convertXmlToDocument(element) { var body = element.first("w:body"), result = bodyReader.readXmlElements(body.children).map(function (children) { return new documents.Document(children, { notes: options.notes, comments: options.comments }) }); return new Result(result.value, result.messages) } var bodyReader = options.bodyReader; return { convertXmlToDocument: convertXmlToDocument } } exports.DocumentXmlReader = DocumentXmlReader; var documents = require("../documents"), Result = require("../results").Result }, { "../documents": 4, "../results": 25 }], 9: [function (require, module, exports) { function read(docxFile, input) { return input = input || {}, promises.props({ contentTypes: readContentTypesFromZipFile(docxFile), partPaths: findPartPaths(docxFile), docxFile: docxFile, files: new Files(input.path ? path.dirname(input.path) : null) }).also(function (result) { return { styles: readStylesFromZipFile(docxFile, result.partPaths.styles) } }).also(function (result) { return { numbering: readNumberingFromZipFile(docxFile, result.partPaths.numbering, result.styles) } }).also(function (result) { return { footnotes: readXmlFileWithBody(result.partPaths.footnotes, result, function (bodyReader, xml) { return xml ? notesReader.createFootnotesReader(bodyReader)(xml) : new Result([]) }), endnotes: readXmlFileWithBody(result.partPaths.endnotes, result, function (bodyReader, xml) { return xml ? notesReader.createEndnotesReader(bodyReader)(xml) : new Result([]) }), comments: readXmlFileWithBody(result.partPaths.comments, result, function (bodyReader, xml) { return xml ? commentsReader.createCommentsReader(bodyReader)(xml) : new Result([]) }) } }).also(function (result) { return { notes: result.footnotes.flatMap(function (footnotes) { return result.endnotes.map(function (endnotes) { return new documents.Notes(footnotes.concat(endnotes)) }) }) } }).then(function (result) { return readXmlFileWithBody(result.partPaths.mainDocument, result, function (bodyReader, xml) { return result.notes.flatMap(function (notes) { return result.comments.flatMap(function (comments) { var reader = new DocumentXmlReader({ bodyReader: bodyReader, notes: notes, comments: comments }); return reader.convertXmlToDocument(xml) }) }) }) }) } function findPartPaths(docxFile) { return readPackageRelationships(docxFile).then(function (packageRelationships) { var mainDocumentPath = findPartPath({ docxFile: docxFile, relationships: packageRelationships, relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", basePath: "", fallbackPath: "word/document.xml" }); if (!docxFile.exists(mainDocumentPath)) throw new Error("Could not find main document part. Are you sure this is a valid .docx file?"); return xmlFileReader({ filename: relationshipsFilename(mainDocumentPath), readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue })(docxFile).then(function (documentRelationships) { function findPartRelatedToMainDocument(name) { return findPartPath({ docxFile: docxFile, relationships: documentRelationships, relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/" + name, basePath: zipfile.splitPath(mainDocumentPath).dirname, fallbackPath: "word/" + name + ".xml" }) } return { mainDocument: mainDocumentPath, comments: findPartRelatedToMainDocument("comments"), endnotes: findPartRelatedToMainDocument("endnotes"), footnotes: findPartRelatedToMainDocument("footnotes"), numbering: findPartRelatedToMainDocument("numbering"), styles: findPartRelatedToMainDocument("styles") } }) }) } function findPartPath(options) { var docxFile = options.docxFile, relationships = options.relationships, relationshipType = options.relationshipType, basePath = options.basePath, fallbackPath = options.fallbackPath, targets = relationships.findTargetsByType(relationshipType), normalisedTargets = targets.map(function (target) { return stripPrefix(zipfile.joinPath(basePath, target), "/") }), validTargets = normalisedTargets.filter(function (target) { return docxFile.exists(target) }); return 0 === validTargets.length ? fallbackPath : validTargets[0] } function stripPrefix(value, prefix) { return value.substring(0, prefix.length) === prefix ? value.substring(prefix.length) : value } function xmlFileReader(options) { return function (zipFile) { return readXmlFromZipFile(zipFile, options.filename).then(function (element) { return element ? options.readElement(element) : options.defaultValue }) } } function readXmlFileWithBody(filename, options, func) { var readRelationshipsFromZipFile = xmlFileReader({ filename: relationshipsFilename(filename), readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue }); return readRelationshipsFromZipFile(options.docxFile).then(function (relationships) { var bodyReader = new createBodyReader({ relationships: relationships, contentTypes: options.contentTypes, docxFile: options.docxFile, numbering: options.numbering, styles: options.styles, files: options.files }); return readXmlFromZipFile(options.docxFile, filename).then(function (xml) { return func(bodyReader, xml) }) }) } function relationshipsFilename(filename) { var split = zipfile.splitPath(filename); return zipfile.joinPath(split.dirname, "_rels", split.basename + ".rels") } function readNumberingFromZipFile(zipFile, path, styles) { return xmlFileReader({ filename: path, readElement: function (element) { return numberingXml.readNumberingXml(element, { styles: styles }) }, defaultValue: numberingXml.defaultNumbering })(zipFile) } function readStylesFromZipFile(zipFile, path) { return xmlFileReader({ filename: path, readElement: stylesReader.readStylesXml, defaultValue: stylesReader.defaultStyles })(zipFile) } exports.read = read, exports._findPartPaths = findPartPaths; var path = require("path"), promises = require("../promises"), documents = require("../documents"), Result = require("../results").Result, zipfile = require("../zipfile"), readXmlFromZipFile = require("./office-xml-reader").readXmlFromZipFile, createBodyReader = require("./body-reader").createBodyReader, DocumentXmlReader = require("./document-xml-reader").DocumentXmlReader, relationshipsReader = require("./relationships-reader"), contentTypesReader = require("./content-types-reader"), numberingXml = require("./numbering-xml"), stylesReader = require("./styles-reader"), notesReader = require("./notes-reader"), commentsReader = require("./comments-reader"), Files = require("./files").Files, readContentTypesFromZipFile = xmlFileReader({ filename: "[Content_Types].xml", readElement: contentTypesReader.readContentTypesFromXml, defaultValue: contentTypesReader.defaultContentTypes }), readPackageRelationships = xmlFileReader({ filename: "_rels/.rels", readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue }) }, { "../documents": 4, "../promises": 23, "../results": 25, "../zipfile": 40, "./body-reader": 5, "./comments-reader": 6, "./content-types-reader": 7, "./document-xml-reader": 8, "./files": 1, "./notes-reader": 10, "./numbering-xml": 11, "./office-xml-reader": 12, "./relationships-reader": 13, "./styles-reader": 15, path: 101 }], 10: [function (require, module, exports) { function createReader(noteType, bodyReader) { function readNotesXml(element) { return Result.combine(element.getElementsByTagName("w:" + noteType).filter(isFootnoteElement).map(readFootnoteElement)) } function isFootnoteElement(element) { var type = element.attributes["w:type"]; return "continuationSeparator" !== type && "separator" !== type } function readFootnoteElement(footnoteElement) { var id = footnoteElement.attributes["w:id"]; return bodyReader.readXmlElements(footnoteElement.children).map(function (body) { return documents.Note({ noteType: noteType, noteId: id, body: body }) }) } return readNotesXml } var documents = require("../documents"), Result = require("../results").Result; exports.createFootnotesReader = createReader.bind(this, "footnote"), exports.createEndnotesReader = createReader.bind(this, "endnote") }, { "../documents": 4, "../results": 25 }], 11: [function (require, module, exports) { function Numbering(nums, abstractNums, styles) { function findLevel(numId, level) { var num = nums[numId]; if (num) { var abstractNum = abstractNums[num.abstractNumId]; if (abstractNum) { if (null == abstractNum.numStyleLink) return abstractNums[num.abstractNumId].levels[level]; var style = styles.findNumberingStyleById(abstractNum.numStyleLink); return findLevel(style.numId, level) } return null } return null } function findLevelByParagraphStyleId(styleId) { return levelsByParagraphStyleId[styleId] || null } var allLevels = _.flatten(_.values(abstractNums).map(function (abstractNum) { return _.values(abstractNum.levels) })), levelsByParagraphStyleId = _.indexBy(allLevels.filter(function (level) { return null != level.paragraphStyleId }), "paragraphStyleId"); return { findLevel: findLevel, findLevelByParagraphStyleId: findLevelByParagraphStyleId } } function readNumberingXml(root, options) { if (!options || !options.styles) throw new Error("styles is missing"); var abstractNums = readAbstractNums(root), nums = readNums(root, abstractNums); return new Numbering(nums, abstractNums, options.styles) } function readAbstractNums(root) { var abstractNums = {}; return root.getElementsByTagName("w:abstractNum").forEach(function (element) { var id = element.attributes["w:abstractNumId"]; abstractNums[id] = readAbstractNum(element) }), abstractNums } function readAbstractNum(element) { var levels = {}; element.getElementsByTagName("w:lvl").forEach(function (levelElement) { var levelIndex = levelElement.attributes["w:ilvl"], numFmt = levelElement.first("w:numFmt").attributes["w:val"], paragraphStyleId = levelElement.firstOrEmpty("w:pStyle").attributes["w:val"]; levels[levelIndex] = { isOrdered: "bullet" !== numFmt, level: levelIndex, paragraphStyleId: paragraphStyleId } }); var numStyleLink = element.firstOrEmpty("w:numStyleLink").attributes["w:val"]; return { levels: levels, numStyleLink: numStyleLink } } function readNums(root) { var nums = {}; return root.getElementsByTagName("w:num").forEach(function (element) { var numId = element.attributes["w:numId"], abstractNumId = element.first("w:abstractNumId").attributes["w:val"]; nums[numId] = { abstractNumId: abstractNumId } }), nums } var _ = require("underscore"); exports.readNumberingXml = readNumberingXml, exports.Numbering = Numbering, exports.defaultNumbering = new Numbering({}, {}) }, { underscore: 103 }], 12: [function (require, module, exports) { function read(xmlString) { return xml.readString(xmlString, xmlNamespaceMap).then(function (document) { return collapseAlternateContent(document)[0] }) } function readXmlFromZipFile(docxFile, path) { return docxFile.exists(path) ? docxFile.read(path, "utf-8").then(stripUtf8Bom).then(read) : promises.resolve(null) } function stripUtf8Bom(xmlString) { return xmlString.replace(/^\uFEFF/g, "") } function collapseAlternateContent(node) { return "element" === node.type ? "mc:AlternateContent" === node.name ? node.first("mc:Fallback").children : (node.children = _.flatten(node.children.map(collapseAlternateContent, !0)), [node]) : [node] } var _ = require("underscore"), promises = require("../promises"), xml = require("../xml"); exports.read = read, exports.readXmlFromZipFile = readXmlFromZipFile; var xmlNamespaceMap = { "http://schemas.openxmlformats.org/wordprocessingml/2006/main": "w", "http://schemas.openxmlformats.org/officeDocument/2006/relationships": "r", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing": "wp", "http://schemas.openxmlformats.org/drawingml/2006/main": "a", "http://schemas.openxmlformats.org/drawingml/2006/picture": "pic", "http://schemas.openxmlformats.org/package/2006/content-types": "content-types", "urn:schemas-microsoft-com:vml": "v", "http://schemas.openxmlformats.org/markup-compatibility/2006": "mc", "urn:schemas-microsoft-com:office:word": "office-word" } }, { "../promises": 23, "../xml": 35, underscore: 103 }], 13: [function (require, module, exports) { function readRelationships(element) { var relationships = []; return element.children.forEach(function (child) { if ("{http://schemas.openxmlformats.org/package/2006/relationships}Relationship" === child.name) { var relationship = { relationshipId: child.attributes.Id, target: child.attributes.Target, type: child.attributes.Type }; relationships.push(relationship) } }), new Relationships(relationships) } function Relationships(relationships) { var targetsByRelationshipId = {}; relationships.forEach(function (relationship) { targetsByRelationshipId[relationship.relationshipId] = relationship.target }); var targetsByType = {}; return relationships.forEach(function (relationship) { targetsByType[relationship.type] || (targetsByType[relationship.type] = []), targetsByType[relationship.type].push(relationship.target) }), { findTargetByRelationshipId: function (relationshipId) { return targetsByRelationshipId[relationshipId] }, findTargetsByType: function (type) { return targetsByType[type] || [] } } } exports.readRelationships = readRelationships, exports.defaultValue = new Relationships([]), exports.Relationships = Relationships }, {}], 14: [function (require, module, exports) { function writeStyleMap(docxFile, styleMap) { return docxFile.write(styleMapPath, styleMap), updateRelationships(docxFile).then(function () { return updateContentTypes(docxFile) }) } function updateRelationships(docxFile) { var path = "word/_rels/document.xml.rels", relationshipsUri = "http://schemas.openxmlformats.org/package/2006/relationships", relationshipElementName = "{" + relationshipsUri + "}Relationship"; return docxFile.read(path, "utf8").then(xml.readString).then(function (relationshipsContainer) { var relationships = relationshipsContainer.children; addOrUpdateElement(relationships, relationshipElementName, "Id", { Id: "rMammothStyleMap", Type: schema, Target: styleMapAbsolutePath }); var namespaces = { "": relationshipsUri }; return docxFile.write(path, xml.writeString(relationshipsContainer, namespaces)) }) } function updateContentTypes(docxFile) { var path = "[Content_Types].xml", contentTypesUri = "http://schemas.openxmlformats.org/package/2006/content-types", overrideName = "{" + contentTypesUri + "}Override"; return docxFile.read(path, "utf8").then(xml.readString).then(function (typesElement) { var children = typesElement.children; addOrUpdateElement(children, overrideName, "PartName", { PartName: styleMapAbsolutePath, ContentType: "text/prs.mammoth.style-map" }); var namespaces = { "": contentTypesUri }; return docxFile.write(path, xml.writeString(typesElement, namespaces)) }) } function addOrUpdateElement(elements, name, identifyingAttribute, attributes) { var existingElement = _.find(elements, function (element) { return element.name === name && element.attributes[identifyingAttribute] === attributes[identifyingAttribute] }); existingElement ? existingElement.attributes = attributes : elements.push(xml.element(name, attributes)) } function readStyleMap(docxFile) { return docxFile.exists(styleMapPath) ? docxFile.read(styleMapPath, "utf8") : promises.resolve(null) } var _ = require("underscore"), promises = require("../promises"), xml = require("../xml"); exports.writeStyleMap = writeStyleMap, exports.readStyleMap = readStyleMap; var schema = "http://schemas.zwobble.org/mammoth/style-map", styleMapPath = "mammoth/style-map", styleMapAbsolutePath = "/" + styleMapPath }, { "../promises": 23, "../xml": 35, underscore: 103 }], 15: [function (require, module, exports) { function Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) { return { findParagraphStyleById: function (styleId) { return paragraphStyles[styleId] }, findCharacterStyleById: function (styleId) { return characterStyles[styleId] }, findTableStyleById: function (styleId) { return tableStyles[styleId] }, findNumberingStyleById: function (styleId) { return numberingStyles[styleId] } } } function readStylesXml(root) { var paragraphStyles = {}, characterStyles = {}, tableStyles = {}, numberingStyles = {}, styles = { paragraph: paragraphStyles, character: characterStyles, table: tableStyles }; return root.getElementsByTagName("w:style").forEach(function (styleElement) { var style = readStyleElement(styleElement); if ("numbering" === style.type) numberingStyles[style.styleId] = readNumberingStyleElement(styleElement); else { var styleSet = styles[style.type]; styleSet && (styleSet[style.styleId] = style) } }), new Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) } function readStyleElement(styleElement) { var type = styleElement.attributes["w:type"], styleId = styleElement.attributes["w:styleId"], name = styleName(styleElement); return { type: type, styleId: styleId, name: name } } function styleName(styleElement) { var nameElement = styleElement.first("w:name"); return nameElement ? nameElement.attributes["w:val"] : null } function readNumberingStyleElement(styleElement) { var numId = styleElement.firstOrEmpty("w:pPr").firstOrEmpty("w:numPr").firstOrEmpty("w:numId").attributes["w:val"]; return { numId: numId } } exports.readStylesXml = readStylesXml, exports.Styles = Styles, exports.defaultStyles = new Styles({}, {}), Styles.EMPTY = new Styles({}, {}, {}, {}) }, {}], 16: [function (require, module, exports) { function uriToZipEntryName(base, uri) { return "/" === uri.charAt(0) ? uri.substr(1) : base + "/" + uri } function replaceFragment(uri, fragment) { var hashIndex = uri.indexOf("#"); return -1 !== hashIndex && (uri = uri.substring(0, hashIndex)), uri + "#" + fragment } exports.uriToZipEntryName = uriToZipEntryName, exports.replaceFragment = replaceFragment }, {}], 17: [function (require, module, exports) { function nonFreshElement(tagName, attributes, children) { return elementWithTag(htmlPaths.element(tagName, attributes, { fresh: !1 }), children) } function freshElement(tagName, attributes, children) { var tag = htmlPaths.element(tagName, attributes, { fresh: !0 }); return elementWithTag(tag, children) } function elementWithTag(tag, children) { return { type: "element", tag: tag, children: children || [] } } function text(value) { return { type: "text", value: value } } function isVoidElement(node) { return 0 === node.children.length && voidTagNames[node.tag.tagName] } var htmlPaths = require("../styles/html-paths"), forceWrite = { type: "forceWrite" }; exports.freshElement = freshElement, exports.nonFreshElement = nonFreshElement, exports.elementWithTag = elementWithTag, exports.text = text, exports.forceWrite = forceWrite; var voidTagNames = { br: !0, hr: !0, img: !0 }; exports.isVoidElement = isVoidElement }, { "../styles/html-paths": 28 }], 18: [function (require, module, exports) { function write(writer, nodes) { nodes.forEach(function (node) { writeNode(writer, node) }) } function writeNode(writer, node) { toStrings[node.type](writer, node) } function generateElementString(writer, node) { ast.isVoidElement(node) ? writer.selfClosing(node.tag.tagName, node.tag.attributes) : (writer.open(node.tag.tagName, node.tag.attributes), write(writer, node.children), writer.close(node.tag.tagName)) } function generateTextString(writer, node) { writer.text(node.value) } var ast = require("./ast"); exports.freshElement = ast.freshElement, exports.nonFreshElement = ast.nonFreshElement, exports.elementWithTag = ast.elementWithTag, exports.text = ast.text, exports.forceWrite = ast.forceWrite, exports.simplify = require("./simplify"); var toStrings = { element: generateElementString, text: generateTextString, forceWrite: function () { } }; exports.write = write }, { "./ast": 17, "./simplify": 19 }], 19: [function (require, module, exports) { function simplify(nodes) { return collapse(removeEmpty(nodes)) } function collapse(nodes) { var children = []; return nodes.map(collapseNode).forEach(function (child) { appendChild(children, child) }), children } function collapseNode(node) { return collapsers[node.type](node) } function collapseElement(node) { return ast.elementWithTag(node.tag, collapse(node.children)) } function identity(value) { return value } function appendChild(children, child) { var lastChild = children[children.length - 1]; "element" === child.type && !child.tag.fresh && lastChild && "element" === lastChild.type && child.tag.matchesElement(lastChild.tag) ? (child.tag.separator && appendChild(lastChild.children, ast.text(child.tag.separator)), child.children.forEach(function (grandChild) { appendChild(lastChild.children, grandChild) })) : children.push(child) } function removeEmpty(nodes) { return flatMap(nodes, function (node) { return emptiers[node.type](node) }) } function flatMap(values, func) { return _.flatten(_.map(values, func), !0) } function neverEmpty(node) { return [node] } function elementEmptier(element) { var children = removeEmpty(element.children); return 0 !== children.length || ast.isVoidElement(element) ? [ast.elementWithTag(element.tag, children)] : [] } function textEmptier(node) { return 0 === node.value.length ? [] : [node] } var _ = require("underscore"), ast = require("./ast"), collapsers = { element: collapseElement, text: identity, forceWrite: identity }, emptiers = { element: elementEmptier, text: textEmptier, forceWrite: neverEmpty }; module.exports = simplify }, { "./ast": 17, underscore: 103 }], 20: [function (require, module, exports) { function imgElement(func) { return function (element, messages) { return promises.when(func(element)).then(function (result) { var attributes = {}; return element.altText && (attributes.alt = element.altText), _.extend(attributes, result), [Html.freshElement("img", attributes)] }) } } var _ = require("underscore"), promises = require("./promises"), Html = require("./html"); exports.imgElement = imgElement, exports.inline = exports.imgElement, exports.dataUri = imgElement(function (element) { return element.readAsBase64String().then(function (imageBuffer) { return { src: "data:" + element.contentType + ";base64," + imageBuffer } }) }) }, { "./html": 18, "./promises": 23, underscore: 103 }], 21: [function (require, module, exports) { (function (Buffer) { function convertToHtml(input, options) { return convert(input, options) } function convertToMarkdown(input, options) { var markdownOptions = Object.create(options || {}); return markdownOptions.outputFormat = "markdown", convert(input, markdownOptions) } function convert(input, options) { return options = readOptions(options), unzip.openZip(input).tap(function (docxFile) { return docxStyleMap.readStyleMap(docxFile).then(function (styleMap) { options.embeddedStyleMap = styleMap }) }).then(function (docxFile) { return docxReader.read(docxFile, input).then(function (documentResult) { return documentResult.map(options.transformDocument) }).then(function (documentResult) { return convertDocumentToHtml(documentResult, options) }) }) } function readEmbeddedStyleMap(input) { return unzip.openZip(input).then(docxStyleMap.readStyleMap) } function convertDocumentToHtml(documentResult, options) { var styleMapResult = parseStyleMap(options.readStyleMap()), parsedOptions = _.extend({}, options, { styleMap: styleMapResult.value }), documentConverter = new DocumentConverter(parsedOptions); return documentResult.flatMapThen(function (document) { return styleMapResult.flatMapThen(function (styleMap) { return documentConverter.convertToHtml(document) }) }) } function parseStyleMap(styleMap) { return Result.combine((styleMap || []).map(readStyle)).map(function (styleMap) { return styleMap.filter(function (styleMapping) { return !!styleMapping }) }) } function extractRawText(input) { return unzip.openZip(input).then(docxReader.read).then(function (documentResult) { return documentResult.map(convertElementToRawText) }) } function embedStyleMap(input, styleMap) { return unzip.openZip(input).tap(function (docxFile) { return docxStyleMap.writeStyleMap(docxFile, styleMap) }).then(function (docxFile) { return docxFile.toArrayBuffer() }).then(function (arrayBuffer) { return { toArrayBuffer: function () { return arrayBuffer }, toBuffer: function () { return Buffer.from(arrayBuffer) } } }) } var _ = require("underscore"), docxReader = require("./docx/docx-reader"), docxStyleMap = require("./docx/style-map"), DocumentConverter = require("./document-to-html").DocumentConverter, convertElementToRawText = require("./raw-text").convertElementToRawText, readStyle = require("./style-reader").readStyle, readOptions = require("./options-reader").readOptions, unzip = require("./unzip"), Result = require("./results").Result; exports.convertToHtml = convertToHtml, exports.convertToMarkdown = convertToMarkdown, exports.convert = convert, exports.extractRawText = extractRawText, exports.images = require("./images"), exports.transforms = require("./transforms"), exports.underline = require("./underline"), exports.embedStyleMap = embedStyleMap, exports.readEmbeddedStyleMap = readEmbeddedStyleMap, exports.styleMapping = function () { throw new Error("Use a raw string instead of mammoth.styleMapping e.g. \"p[style-name='Title'] => h1\" instead of mammoth.styleMapping(\"p[style-name='Title'] => h1\")") } }).call(this, require("buffer").Buffer) }, { "./document-to-html": 3, "./docx/docx-reader": 9, "./docx/style-map": 14, "./images": 20, "./options-reader": 22, "./raw-text": 24, "./results": 25, "./style-reader": 26, "./transforms": 30, "./underline": 31, "./unzip": 2, buffer: 83, underscore: 103 }], 22: [function (require, module, exports) { function readOptions(options) { return options = options || {}, _.extend({}, standardOptions, options, { customStyleMap: readStyleMap(options.styleMap), readStyleMap: function () { var styleMap = this.customStyleMap; return this.includeEmbeddedStyleMap && (styleMap = styleMap.concat(readStyleMap(this.embeddedStyleMap))), this.includeDefaultStyleMap && (styleMap = styleMap.concat(defaultStyleMap)), styleMap } }) } function readStyleMap(styleMap) { return styleMap ? _.isString(styleMap) ? styleMap.split("\n").map(function (line) { return line.trim() }).filter(function (line) { return "" !== line && "#" !== line.charAt(0) }) : styleMap : [] } function identity(value) { return value } exports.readOptions = readOptions; var _ = require("underscore"), defaultStyleMap = exports._defaultStyleMap = ["p.Heading1 => h1:fresh", "p.Heading2 => h2:fresh", "p.Heading3 => h3:fresh", "p.Heading4 => h4:fresh", "p.Heading5 => h5:fresh", "p.Heading6 => h6:fresh", "p[style-name='Heading 1'] => h1:fresh", "p[style-name='Heading 2'] => h2:fresh", "p[style-name='Heading 3'] => h3:fresh", "p[style-name='Heading 4'] => h4:fresh", "p[style-name='Heading 5'] => h5:fresh", "p[style-name='Heading 6'] => h6:fresh", "p[style-name='heading 1'] => h1:fresh", "p[style-name='heading 2'] => h2:fresh", "p[style-name='heading 3'] => h3:fresh", "p[style-name='heading 4'] => h4:fresh", "p[style-name='heading 5'] => h5:fresh", "p[style-name='heading 6'] => h6:fresh", "r[style-name='Strong'] => strong", "p[style-name='footnote text'] => p:fresh", "r[style-name='footnote reference'] =>", "p[style-name='endnote text'] => p:fresh", "r[style-name='endnote reference'] =>", "p[style-name='annotation text'] => p:fresh", "r[style-name='annotation reference'] =>", "p[style-name='Footnote'] => p:fresh", "r[style-name='Footnote anchor'] =>", "p[style-name='Endnote'] => p:fresh", "r[style-name='Endnote anchor'] =>", "p:unordered-list(1) => ul > li:fresh", "p:unordered-list(2) => ul|ol > li > ul > li:fresh", "p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh", "p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh", "p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh", "p:ordered-list(1) => ol > li:fresh", "p:ordered-list(2) => ul|ol > li > ol > li:fresh", "p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh", "p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh", "p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh", "r[style-name='Hyperlink'] =>", "p[style-name='Normal'] => p:fresh"], standardOptions = exports._standardOptions = { transformDocument: identity, includeDefaultStyleMap: !0, includeEmbeddedStyleMap: !0 } }, { underscore: 103 }], 23: [function (require, module, exports) { function defer() { var resolve, reject, promise = new bluebird.Promise(function (resolveArg, rejectArg) { resolve = resolveArg, reject = rejectArg }); return { resolve: resolve, reject: reject, promise: promise } } var _ = require("underscore"), bluebird = require("bluebird/js/release/promise")(); exports.defer = defer, exports.when = bluebird.resolve, exports.resolve = bluebird.resolve, exports.all = bluebird.all, exports.props = bluebird.props, exports.reject = bluebird.reject, exports.promisify = bluebird.promisify, exports.mapSeries = bluebird.mapSeries, exports.attempt = bluebird.attempt, exports.nfcall = function (func) { var args = Array.prototype.slice.call(arguments, 1), promisedFunc = bluebird.promisify(func); return promisedFunc.apply(null, args) }, bluebird.prototype.fail = bluebird.prototype.caught, bluebird.prototype.also = function (func) { return this.then(function (value) { var returnValue = _.extend({}, value, func(value)); return bluebird.props(returnValue) }) } }, { "bluebird/js/release/promise": 68, underscore: 103 }], 24: [function (require, module, exports) { function convertElementToRawText(element) { if ("text" === element.type) return element.value; if (element.type === documents.types.tab) return " "; var tail = "paragraph" === element.type ? "\n\n" : ""; return (element.children || []).map(convertElementToRawText).join("") + tail } var documents = require("./documents"); exports.convertElementToRawText = convertElementToRawText }, { "./documents": 4 }], 25: [function (require, module, exports) { function Result(value, messages) { this.value = value, this.messages = messages || [] } function success(value) { return new Result(value, []) } function warning(message) { return { type: "warning", message: message } } function error(exception) { return { type: "error", message: exception.message, error: exception } } function combineMessages(results) { var messages = []; return _.flatten(_.pluck(results, "messages"), !0).forEach(function (message) { containsMessage(messages, message) || messages.push(message) }), messages } function containsMessage(messages, message) { return void 0 !== _.find(messages, isSameMessage.bind(null, message)) } function isSameMessage(first, second) { return first.type === second.type && first.message === second.message } var _ = require("underscore"); exports.Result = Result, exports.success = success, exports.warning = warning, exports.error = error, Result.prototype.map = function (func) { return new Result(func(this.value), this.messages) }, Result.prototype.flatMap = function (func) { var funcResult = func(this.value); return new Result(funcResult.value, combineMessages([this, funcResult])) }, Result.prototype.flatMapThen = function (func) { var that = this; return func(this.value).then(function (otherResult) { return new Result(otherResult.value, combineMessages([that, otherResult])) }) }, Result.combine = function (results) { var values = _.flatten(_.pluck(results, "value")), messages = combineMessages(results); return new Result(values, messages) } }, { underscore: 103 }], 26: [function (require, module, exports) { + 1: [function (require, module, exports) { function Files() { function read(uri) { return promises.reject(new Error("could not open external image: '" + uri + "'\ncannot open linked files from a web browser")) } return { read: read } } var promises = require("../../lib/promises"); exports.Files = Files }, { "../../lib/promises": 23 }], 2: [function (require, module, exports) { function openZip(options) { return options.arrayBuffer ? promises.resolve(zipfile.openArrayBuffer(options.arrayBuffer)) : promises.reject(new Error("Could not find file in options")) } var promises = require("../lib/promises"), zipfile = require("../lib/zipfile"); exports.openZip = openZip }, { "../lib/promises": 23, "../lib/zipfile": 39 }], 3: [function (require, module, exports) { function DocumentConverter(options) { return { convertToHtml: function (element) { var comments = _.indexBy(element.type === documents.types.document ? element.comments : [], "commentId"), conversion = new DocumentConversion(options, comments); return conversion.convertToHtml(element) } } } function DocumentConversion(options, comments) { function convertToHtml(document) { var messages = [], html = elementToHtml(document, messages, {}), deferredNodes = []; walkHtml(html, function (node) { "deferred" === node.type && deferredNodes.push(node) }); var deferredValues = {}; return promises.mapSeries(deferredNodes, function (deferred) { return deferred.value().then(function (value) { deferredValues[deferred.id] = value }) }).then(function () { function replaceDeferred(nodes) { return flatMap(nodes, function (node) { return "deferred" === node.type ? deferredValues[node.id] : node.children ? [_.extend({}, node, { children: replaceDeferred(node.children) })] : [node] }) } var writer = writers.writer({ prettyPrint: options.prettyPrint, outputFormat: options.outputFormat }); return Html.write(writer, Html.simplify(replaceDeferred(html))), new results.Result(writer.asString(), messages) }) } function convertElements(elements, messages, options) { return flatMap(elements, function (element) { return elementToHtml(element, messages, options) }) } function elementToHtml(element, messages, options) { if (!options) throw new Error("options not set"); var handler = elementConverters[element.type]; return handler ? handler(element, messages, options) : [] } function convertParagraph(element, messages, options) { return htmlPathForParagraph(element, messages).wrap(function () { var content = convertElements(element.children, messages, options); return ignoreEmptyParagraphs ? content : [Html.forceWrite].concat(content) }) } function htmlPathForParagraph(element, messages) { var style = findStyle(element); return style ? style.to : (element.styleId && messages.push(unrecognisedStyleWarning("paragraph", element)), defaultParagraphStyle) } function convertRun(run, messages, options) { var nodes = function () { return convertElements(run.children, messages, options) }, paths = []; run.isSmallCaps && paths.push(findHtmlPathForRunProperty("smallCaps")), run.isAllCaps && paths.push(findHtmlPathForRunProperty("allCaps")), run.isStrikethrough && paths.push(findHtmlPathForRunProperty("strikethrough", "s")), run.isUnderline && paths.push(findHtmlPathForRunProperty("underline")), run.verticalAlignment === documents.verticalAlignment.subscript && paths.push(htmlPaths.element("sub", {}, { fresh: !1 })), run.verticalAlignment === documents.verticalAlignment.superscript && paths.push(htmlPaths.element("sup", {}, { fresh: !1 })), run.isItalic && paths.push(findHtmlPathForRunProperty("italic", "em")), run.isBold && paths.push(findHtmlPathForRunProperty("bold", "strong")); var stylePath = htmlPaths.empty, style = findStyle(run); return style ? stylePath = style.to : run.styleId && messages.push(unrecognisedStyleWarning("run", run)), paths.push(stylePath), paths.forEach(function (path) { nodes = path.wrap.bind(path, nodes) }), nodes() } function findHtmlPathForRunProperty(elementType, defaultTagName) { var path = findHtmlPath({ type: elementType }); return path ? path : defaultTagName ? htmlPaths.element(defaultTagName, {}, { fresh: !1 }) : htmlPaths.empty } function findHtmlPath(element, defaultPath) { var style = findStyle(element); return style ? style.to : defaultPath } function findStyle(element) { for (var i = 0; i < styleMap.length; i++)if (styleMap[i].from.matches(element)) return styleMap[i] } function recoveringConvertImage(convertImage) { return function (image, messages) { return promises.attempt(function () { return convertImage(image, messages) }).caught(function (error) { return messages.push(results.error(error)), [] }) } } function noteHtmlId(note) { return referentHtmlId(note.noteType, note.noteId) } function noteRefHtmlId(note) { return referenceHtmlId(note.noteType, note.noteId) } function referentHtmlId(referenceType, referenceId) { return htmlId(referenceType + "-" + referenceId) } function referenceHtmlId(referenceType, referenceId) { return htmlId(referenceType + "-ref-" + referenceId) } function htmlId(suffix) { return idPrefix + suffix } function convertTable(element, messages, options) { return findHtmlPath(element, defaultTablePath).wrap(function () { return convertTableChildren(element, messages, options) }) } function convertTableChildren(element, messages, options) { var bodyIndex = _.findIndex(element.children, function (child) { return !child.type === documents.types.tableRow || !child.isHeader }); -1 === bodyIndex && (bodyIndex = element.children.length); var children; if (0 === bodyIndex) children = convertElements(element.children, messages, _.extend({}, options, { isTableHeader: !1 })); else { var headRows = convertElements(element.children.slice(0, bodyIndex), messages, _.extend({}, options, { isTableHeader: !0 })), bodyRows = convertElements(element.children.slice(bodyIndex), messages, _.extend({}, options, { isTableHeader: !1 })); children = [Html.freshElement("thead", {}, headRows), Html.freshElement("tbody", {}, bodyRows)] } return [Html.forceWrite].concat(children) } function convertTableRow(element, messages, options) { var children = convertElements(element.children, messages, options); return [Html.freshElement("tr", {}, [Html.forceWrite].concat(children))] } function convertTableCell(element, messages, options) { var tagName = options.isTableHeader ? "th" : "td", children = convertElements(element.children, messages, options), attributes = {}; return 1 !== element.colSpan && (attributes.colspan = element.colSpan.toString()), 1 !== element.rowSpan && (attributes.rowspan = element.rowSpan.toString()), [Html.freshElement(tagName, attributes, [Html.forceWrite].concat(children))] } function convertCommentReference(reference, messages, options) { return findHtmlPath(reference, htmlPaths.ignore).wrap(function () { var comment = comments[reference.commentId], count = referencedComments.length + 1, label = "[" + commentAuthorLabel(comment) + count + "]"; return referencedComments.push({ label: label, comment: comment }), [Html.freshElement("a", { href: "#" + referentHtmlId("comment", reference.commentId), id: referenceHtmlId("comment", reference.commentId) }, [Html.text(label)])] }) } function convertComment(referencedComment, messages, options) { var label = referencedComment.label, comment = referencedComment.comment, body = convertElements(comment.body, messages, options).concat([Html.nonFreshElement("p", {}, [Html.text(" "), Html.freshElement("a", { href: "#" + referenceHtmlId("comment", comment.commentId) }, [Html.text("↑")])])]); return [Html.freshElement("dt", { id: referentHtmlId("comment", comment.commentId) }, [Html.text("Comment " + label)]), Html.freshElement("dd", {}, body)] } function convertBreak(element, messages, options) { return htmlPathForBreak(element).wrap(function () { return [] }) } function htmlPathForBreak(element) { var style = findStyle(element); return style ? style.to : "line" === element.breakType ? htmlPaths.topLevelElement("br") : htmlPaths.empty } var noteNumber = 1, noteReferences = [], referencedComments = []; options = _.extend({ ignoreEmptyParagraphs: !0 }, options); var idPrefix = void 0 === options.idPrefix ? "" : options.idPrefix, ignoreEmptyParagraphs = options.ignoreEmptyParagraphs, defaultParagraphStyle = htmlPaths.topLevelElement("p"), styleMap = options.styleMap || [], defaultTablePath = htmlPaths.elements([htmlPaths.element("table", {}, { fresh: !0 })]), elementConverters = { document: function (document, messages, options) { var children = convertElements(document.children, messages, options), notes = noteReferences.map(function (noteReference) { return document.notes.resolve(noteReference) }), notesNodes = convertElements(notes, messages, options); return children.concat([Html.freshElement("ol", {}, notesNodes), Html.freshElement("dl", {}, flatMap(referencedComments, function (referencedComment) { return convertComment(referencedComment, messages, options) }))]) }, paragraph: convertParagraph, run: convertRun, text: function (element, messages, options) { return [Html.text(element.value)] }, tab: function (element, messages, options) { return [Html.text(" ")] }, hyperlink: function (element, messages, options) { var href = element.anchor ? "#" + htmlId(element.anchor) : element.href, attributes = { href: href }; null != element.targetFrame && (attributes.target = element.targetFrame); var children = convertElements(element.children, messages, options); return [Html.nonFreshElement("a", attributes, children)] }, bookmarkStart: function (element, messages, options) { var anchor = Html.freshElement("a", { id: htmlId(element.name) }, [Html.forceWrite]); return [anchor] }, noteReference: function (element, messages, options) { noteReferences.push(element); var anchor = Html.freshElement("a", { href: "#" + noteHtmlId(element), id: noteRefHtmlId(element) }, [Html.text("[" + noteNumber++ + "]")]); return [Html.freshElement("sup", {}, [anchor])] }, note: function (element, messages, options) { var children = convertElements(element.body, messages, options), backLink = Html.elementWithTag(htmlPaths.element("p", {}, { fresh: !1 }), [Html.text(" "), Html.freshElement("a", { href: "#" + noteRefHtmlId(element) }, [Html.text("↑")])]), body = children.concat([backLink]); return Html.freshElement("li", { id: noteHtmlId(element) }, body) }, commentReference: convertCommentReference, comment: convertComment, image: deferredConversion(recoveringConvertImage(options.convertImage || images.dataUri)), table: convertTable, tableRow: convertTableRow, tableCell: convertTableCell, "break": convertBreak }; return { convertToHtml: convertToHtml } } function deferredConversion(func) { return function (element, messages, options) { return [{ type: "deferred", id: deferredId++, value: function () { return func(element, messages, options) } }] } } function unrecognisedStyleWarning(type, element) { return results.warning("Unrecognised " + type + " style: '" + element.styleName + "' (Style ID: " + element.styleId + ")") } function flatMap(values, func) { return _.flatten(values.map(func), !0) } function walkHtml(nodes, callback) { nodes.forEach(function (node) { callback(node), node.children && walkHtml(node.children, callback) }) } var _ = require("underscore"), promises = require("./promises"), documents = require("./documents"), htmlPaths = require("./styles/html-paths"), results = require("./results"), images = require("./images"), Html = require("./html"), writers = require("./writers"); exports.DocumentConverter = DocumentConverter; var deferredId = 1, commentAuthorLabel = exports.commentAuthorLabel = function (comment) { return comment.authorInitials || "" } }, { "./documents": 4, "./html": 18, "./images": 20, "./promises": 23, "./results": 25, "./styles/html-paths": 28, "./writers": 33, underscore: 117 }], 4: [function (require, module, exports) { function Document(children, options) { return options = options || {}, { type: types.document, children: children, notes: options.notes || new Notes({}), comments: options.comments || [] } } function Paragraph(children, properties) { properties = properties || {}; var indent = properties.indent || {}; return { type: types.paragraph, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null, numbering: properties.numbering || null, alignment: properties.alignment || null, indent: { start: indent.start || null, end: indent.end || null, firstLine: indent.firstLine || null, hanging: indent.hanging || null } } } function Run(children, properties) { return properties = properties || {}, { type: types.run, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null, isBold: properties.isBold, isUnderline: properties.isUnderline, isItalic: properties.isItalic, isStrikethrough: properties.isStrikethrough, isAllCaps: properties.isAllCaps, isSmallCaps: properties.isSmallCaps, verticalAlignment: properties.verticalAlignment || verticalAlignment.baseline, font: properties.font || null, fontSize: properties.fontSize || null } } function Text(value) { return { type: types.text, value: value } } function Tab() { return { type: types.tab } } function Hyperlink(children, options) { return { type: types.hyperlink, children: children, href: options.href, anchor: options.anchor, targetFrame: options.targetFrame } } function NoteReference(options) { return { type: types.noteReference, noteType: options.noteType, noteId: options.noteId } } function Notes(notes) { this._notes = _.indexBy(notes, function (note) { return noteKey(note.noteType, note.noteId) }) } function Note(options) { return { type: types.note, noteType: options.noteType, noteId: options.noteId, body: options.body } } function commentReference(options) { return { type: types.commentReference, commentId: options.commentId } } function comment(options) { return { type: types.comment, commentId: options.commentId, body: options.body, authorName: options.authorName, authorInitials: options.authorInitials } } function noteKey(noteType, id) { return noteType + "-" + id } function Image(options) { return { type: types.image, read: options.readImage, altText: options.altText, contentType: options.contentType } } function Table(children, properties) { return properties = properties || {}, { type: types.table, children: children, styleId: properties.styleId || null, styleName: properties.styleName || null } } function TableRow(children, options) { return options = options || {}, { type: types.tableRow, children: children, isHeader: options.isHeader || !1 } } function TableCell(children, options) { return options = options || {}, { type: types.tableCell, children: children, colSpan: null == options.colSpan ? 1 : options.colSpan, rowSpan: null == options.rowSpan ? 1 : options.rowSpan } } function Break(breakType) { return { type: types["break"], breakType: breakType } } function BookmarkStart(options) { return { type: types.bookmarkStart, name: options.name } } var _ = require("underscore"), types = exports.types = { document: "document", paragraph: "paragraph", run: "run", text: "text", tab: "tab", hyperlink: "hyperlink", noteReference: "noteReference", image: "image", note: "note", commentReference: "commentReference", comment: "comment", table: "table", tableRow: "tableRow", tableCell: "tableCell", "break": "break", bookmarkStart: "bookmarkStart" }, verticalAlignment = { baseline: "baseline", superscript: "superscript", subscript: "subscript" }; Notes.prototype.resolve = function (reference) { return this.findNoteByKey(noteKey(reference.noteType, reference.noteId)) }, Notes.prototype.findNoteByKey = function (key) { return this._notes[key] || null }, exports.document = exports.Document = Document, exports.paragraph = exports.Paragraph = Paragraph, exports.run = exports.Run = Run, exports.Text = Text, exports.tab = exports.Tab = Tab, exports.Hyperlink = Hyperlink, exports.noteReference = exports.NoteReference = NoteReference, exports.Notes = Notes, exports.Note = Note, exports.commentReference = commentReference, exports.comment = comment, exports.Image = Image, exports.Table = Table, exports.TableRow = TableRow, exports.TableCell = TableCell, exports.lineBreak = Break("line"), exports.pageBreak = Break("page"), exports.columnBreak = Break("column"), exports.BookmarkStart = BookmarkStart, exports.verticalAlignment = verticalAlignment }, { underscore: 117 }], 5: [function (require, module, exports) { function createBodyReader(options) { return { readXmlElement: function (element) { return new BodyReader(options).readXmlElement(element) }, readXmlElements: function (elements) { return new BodyReader(options).readXmlElements(elements) } } } function BodyReader(options) { function readXmlElements(elements) { var results = elements.map(readXmlElement); return combineResults(results) } function readXmlElement(element) { if ("element" === element.type) { var handler = xmlElementReaders[element.name]; if (handler) return handler(element); if (!Object.prototype.hasOwnProperty.call(ignoreElements, element.name)) { var message = warning("An unrecognised element was ignored: " + element.name); return emptyResultWithMessages([message]) } } return emptyResult() } function readParagraphIndent(element) { return { start: element.attributes["w:start"] || element.attributes["w:left"], end: element.attributes["w:end"] || element.attributes["w:right"], firstLine: element.attributes["w:firstLine"], hanging: element.attributes["w:hanging"] } } function readRunProperties(element) { return readRunStyle(element).map(function (style) { var fontSizeString = element.firstOrEmpty("w:sz").attributes["w:val"], fontSize = /^[0-9]+$/.test(fontSizeString) ? parseInt(fontSizeString, 10) / 2 : null; return { type: "runProperties", styleId: style.styleId, styleName: style.name, verticalAlignment: element.firstOrEmpty("w:vertAlign").attributes["w:val"], font: element.firstOrEmpty("w:rFonts").attributes["w:ascii"], fontSize: fontSize, isBold: readBooleanElement(element.first("w:b")), isUnderline: readUnderline(element.first("w:u")), isItalic: readBooleanElement(element.first("w:i")), isStrikethrough: readBooleanElement(element.first("w:strike")), isAllCaps: readBooleanElement(element.first("w:caps")), isSmallCaps: readBooleanElement(element.first("w:smallCaps")) } }) } function readUnderline(element) { if (element) { var value = element.attributes["w:val"]; return "false" !== value && "0" !== value && "none" !== value } return !1 } function readBooleanElement(element) { if (element) { var value = element.attributes["w:val"]; return "false" !== value && "0" !== value } return !1 } function readParagraphStyle(element) { return readStyle(element, "w:pStyle", "Paragraph", styles.findParagraphStyleById) } function readRunStyle(element) { return readStyle(element, "w:rStyle", "Run", styles.findCharacterStyleById) } function readTableStyle(element) { return readStyle(element, "w:tblStyle", "Table", styles.findTableStyleById) } function readStyle(element, styleTagName, styleType, findStyleById) { var messages = [], styleElement = element.first(styleTagName), styleId = null, name = null; if (styleElement && (styleId = styleElement.attributes["w:val"])) { var style = findStyleById(styleId); style ? name = style.name : messages.push(undefinedStyleWarning(styleType, styleId)) } return elementResultWithMessages({ styleId: styleId, name: name }, messages) } function readFldChar(element) { var type = element.attributes["w:fldCharType"]; if ("begin" === type) complexFieldStack.push(unknownComplexField), currentInstrText = []; else if ("end" === type) complexFieldStack.pop(); else if ("separate" === type) { var hyperlinkOptions = parseHyperlinkFieldCode(currentInstrText.join("")), complexField = null === hyperlinkOptions ? unknownComplexField : { type: "hyperlink", options: hyperlinkOptions }; complexFieldStack.pop(), complexFieldStack.push(complexField) } return emptyResult() } function currentHyperlinkOptions() { var topHyperlink = _.last(complexFieldStack.filter(function (complexField) { return "hyperlink" === complexField.type })); return topHyperlink ? topHyperlink.options : null } function parseHyperlinkFieldCode(code) { var externalLinkResult = /\s*HYPERLINK "(.*)"/.exec(code); if (externalLinkResult) return { href: externalLinkResult[1] }; var internalLinkResult = /\s*HYPERLINK\s+\\l\s+"(.*)"/.exec(code); return internalLinkResult ? { anchor: internalLinkResult[1] } : null } function readInstrText(element) { return currentInstrText.push(element.text()), emptyResult() } function readSymbol(element) { var font = element.attributes["w:font"], char = element.attributes["w:char"], unicodeCharacter = dingbatToUnicode.hex(font, char); return null == unicodeCharacter && /^F0..$/.test(char) && (unicodeCharacter = dingbatToUnicode.hex(font, char.substring(2))), null == unicodeCharacter ? emptyResultWithMessages([warning("A w:sym element with an unsupported character was ignored: char " + char + " in font " + font)]) : elementResult(new documents.Text(unicodeCharacter.string)) } function noteReferenceReader(noteType) { return function (element) { var noteId = element.attributes["w:id"]; return elementResult(new documents.NoteReference({ noteType: noteType, noteId: noteId })) } } function readCommentReference(element) { return elementResult(documents.commentReference({ commentId: element.attributes["w:id"] })) } function readChildElements(element) { return readXmlElements(element.children) } function readTable(element) { var propertiesResult = readTableProperties(element.firstOrEmpty("w:tblPr")); return readXmlElements(element.children).flatMap(calculateRowSpans).flatMap(function (children) { return propertiesResult.map(function (properties) { return documents.Table(children, properties) }) }) } function readTableProperties(element) { return readTableStyle(element).map(function (style) { return { styleId: style.styleId, styleName: style.name } }) } function readTableRow(element) { var properties = element.firstOrEmpty("w:trPr"), isHeader = !!properties.first("w:tblHeader"); return readXmlElements(element.children).map(function (children) { return documents.TableRow(children, { isHeader: isHeader }) }) } function readTableCell(element) { return readXmlElements(element.children).map(function (children) { var properties = element.firstOrEmpty("w:tcPr"), gridSpan = properties.firstOrEmpty("w:gridSpan").attributes["w:val"], colSpan = gridSpan ? parseInt(gridSpan, 10) : 1, cell = documents.TableCell(children, { colSpan: colSpan }); return cell._vMerge = readVMerge(properties), cell }) } function readVMerge(properties) { var element = properties.first("w:vMerge"); if (element) { var val = element.attributes["w:val"]; return "continue" === val || !val } return null } function calculateRowSpans(rows) { var unexpectedNonRows = _.any(rows, function (row) { return row.type !== documents.types.tableRow }); if (unexpectedNonRows) return elementResultWithMessages(rows, [warning("unexpected non-row element in table, cell merging may be incorrect")]); var unexpectedNonCells = _.any(rows, function (row) { return _.any(row.children, function (cell) { return cell.type !== documents.types.tableCell }) }); if (unexpectedNonCells) return elementResultWithMessages(rows, [warning("unexpected non-cell element in table row, cell merging may be incorrect")]); var columns = {}; return rows.forEach(function (row) { var cellIndex = 0; row.children.forEach(function (cell) { cell._vMerge && columns[cellIndex] ? columns[cellIndex].rowSpan++ : (columns[cellIndex] = cell, cell._vMerge = !1), cellIndex += cell.colSpan }) }), rows.forEach(function (row) { row.children = row.children.filter(function (cell) { return !cell._vMerge }), row.children.forEach(function (cell) { delete cell._vMerge }) }), elementResult(rows) } function readDrawingElement(element) { var blips = element.getElementsByTagName("a:graphic").getElementsByTagName("a:graphicData").getElementsByTagName("pic:pic").getElementsByTagName("pic:blipFill").getElementsByTagName("a:blip"); return combineResults(blips.map(readBlip.bind(null, element))) } function readBlip(element, blip) { var properties = element.first("wp:docPr").attributes, altText = isBlank(properties.descr) ? properties.title : properties.descr; return readImage(findBlipImageFile(blip), altText) } function isBlank(value) { return null == value || /^\s*$/.test(value) } function findBlipImageFile(blip) { var embedRelationshipId = blip.attributes["r:embed"], linkRelationshipId = blip.attributes["r:link"]; if (embedRelationshipId) return findEmbeddedImageFile(embedRelationshipId); var imagePath = relationships.findTargetByRelationshipId(linkRelationshipId); return { path: imagePath, read: files.read.bind(files, imagePath) } } function readImageData(element) { var relationshipId = element.attributes["r:id"]; return relationshipId ? readImage(findEmbeddedImageFile(relationshipId), element.attributes["o:title"]) : emptyResultWithMessages([warning("A v:imagedata element without a relationship ID was ignored")]) } function findEmbeddedImageFile(relationshipId) { var path = uris.uriToZipEntryName("word", relationships.findTargetByRelationshipId(relationshipId)); return { path: path, read: docxFile.read.bind(docxFile, path) } } function readImage(imageFile, altText) { var contentType = contentTypes.findContentType(imageFile.path), image = documents.Image({ readImage: imageFile.read, altText: altText, contentType: contentType }), warnings = supportedImageTypes[contentType] ? [] : warning("Image of type " + contentType + " is unlikely to display in web browsers"); return elementResultWithMessages(image, warnings) } function undefinedStyleWarning(type, styleId) { return warning(type + " style with ID " + styleId + " was referenced but not defined in the document") } var complexFieldStack = [], currentInstrText = [], relationships = options.relationships, contentTypes = options.contentTypes, docxFile = options.docxFile, files = options.files, numbering = options.numbering, styles = options.styles, unknownComplexField = { type: "unknown" }, xmlElementReaders = { "w:p": function (element) { return readXmlElements(element.children).map(function (children) { var properties = _.find(children, isParagraphProperties); return new documents.Paragraph(children.filter(negate(isParagraphProperties)), properties) }).insertExtra() }, "w:pPr": function (element) { return readParagraphStyle(element).map(function (style) { return { type: "paragraphProperties", styleId: style.styleId, styleName: style.name, alignment: element.firstOrEmpty("w:jc").attributes["w:val"], numbering: readNumberingProperties(style.styleId, element.firstOrEmpty("w:numPr"), numbering), indent: readParagraphIndent(element.firstOrEmpty("w:ind")) } }) }, "w:r": function (element) { return readXmlElements(element.children).map(function (children) { var properties = _.find(children, isRunProperties); children = children.filter(negate(isRunProperties)); var hyperlinkOptions = currentHyperlinkOptions(); return null !== hyperlinkOptions && (children = [new documents.Hyperlink(children, hyperlinkOptions)]), new documents.Run(children, properties) }) }, "w:rPr": readRunProperties, "w:fldChar": readFldChar, "w:instrText": readInstrText, "w:t": function (element) { return elementResult(new documents.Text(element.text())) }, "w:tab": function (element) { return elementResult(new documents.Tab) }, "w:noBreakHyphen": function () { return elementResult(new documents.Text("‑")) }, "w:softHyphen": function (element) { return elementResult(new documents.Text("­")) }, "w:sym": readSymbol, "w:hyperlink": function (element) { var relationshipId = element.attributes["r:id"], anchor = element.attributes["w:anchor"]; return readXmlElements(element.children).map(function (children) { function create(options) { var targetFrame = element.attributes["w:tgtFrame"] || null; return new documents.Hyperlink(children, _.extend({ targetFrame: targetFrame }, options)) } if (relationshipId) { var href = relationships.findTargetByRelationshipId(relationshipId); return anchor && (href = uris.replaceFragment(href, anchor)), create({ href: href }) } return anchor ? create({ anchor: anchor }) : children }) }, "w:tbl": readTable, "w:tr": readTableRow, "w:tc": readTableCell, "w:footnoteReference": noteReferenceReader("footnote"), "w:endnoteReference": noteReferenceReader("endnote"), "w:commentReference": readCommentReference, "w:br": function (element) { var breakType = element.attributes["w:type"]; return null == breakType || "textWrapping" === breakType ? elementResult(documents.lineBreak) : "page" === breakType ? elementResult(documents.pageBreak) : "column" === breakType ? elementResult(documents.columnBreak) : emptyResultWithMessages([warning("Unsupported break type: " + breakType)]) }, "w:bookmarkStart": function (element) { var name = element.attributes["w:name"]; return "_GoBack" === name ? emptyResult() : elementResult(new documents.BookmarkStart({ name: name })) }, "mc:AlternateContent": function (element) { return readChildElements(element.first("mc:Fallback")) }, "w:sdt": function (element) { return readXmlElements(element.firstOrEmpty("w:sdtContent").children) }, "w:ins": readChildElements, "w:object": readChildElements, "w:smartTag": readChildElements, "w:drawing": readChildElements, "w:pict": function (element) { return readChildElements(element).toExtra() }, "v:roundrect": readChildElements, "v:shape": readChildElements, "v:textbox": readChildElements, "w:txbxContent": readChildElements, "wp:inline": readDrawingElement, "wp:anchor": readDrawingElement, "v:imagedata": readImageData, "v:group": readChildElements, "v:rect": readChildElements }; return { readXmlElement: readXmlElement, readXmlElements: readXmlElements } } function readNumberingProperties(styleId, element, numbering) { if (null != styleId) { var levelByStyleId = numbering.findLevelByParagraphStyleId(styleId); if (null != levelByStyleId) return levelByStyleId } var level = element.firstOrEmpty("w:ilvl").attributes["w:val"], numId = element.firstOrEmpty("w:numId").attributes["w:val"]; return void 0 === level || void 0 === numId ? null : numbering.findLevel(numId, level) } function isParagraphProperties(element) { return "paragraphProperties" === element.type } function isRunProperties(element) { return "runProperties" === element.type } function negate(predicate) { return function (value) { return !predicate(value) } } function emptyResultWithMessages(messages) { return new ReadResult(null, null, messages) } function emptyResult() { return new ReadResult(null) } function elementResult(element) { return new ReadResult(element) } function elementResultWithMessages(element, messages) { return new ReadResult(element, null, messages) } function ReadResult(element, extra, messages) { this.value = element || [], this.extra = extra, this._result = new Result({ element: this.value, extra: extra }, messages), this.messages = this._result.messages } function combineResults(results) { var result = Result.combine(_.pluck(results, "_result")); return new ReadResult(_.flatten(_.pluck(result.value, "element")), _.filter(_.flatten(_.pluck(result.value, "extra")), identity), result.messages) } function joinElements(first, second) { return _.flatten([first, second]) } function identity(value) { return value } exports.createBodyReader = createBodyReader, exports._readNumberingProperties = readNumberingProperties; var dingbatToUnicode = require("dingbat-to-unicode"), _ = require("underscore"), documents = require("../documents"), Result = require("../results").Result, warning = require("../results").warning, uris = require("./uris"), supportedImageTypes = { "image/png": !0, "image/gif": !0, "image/jpeg": !0, "image/svg+xml": !0, "image/tiff": !0 }, ignoreElements = { "office-word:wrap": !0, "v:shadow": !0, "v:shapetype": !0, "w:annotationRef": !0, "w:bookmarkEnd": !0, "w:sectPr": !0, "w:proofErr": !0, "w:lastRenderedPageBreak": !0, "w:commentRangeStart": !0, "w:commentRangeEnd": !0, "w:del": !0, "w:footnoteRef": !0, "w:endnoteRef": !0, "w:tblPr": !0, "w:tblGrid": !0, "w:trPr": !0, "w:tcPr": !0 }; ReadResult.prototype.toExtra = function () { return new ReadResult(null, joinElements(this.extra, this.value), this.messages) }, ReadResult.prototype.insertExtra = function () { var extra = this.extra; return extra && extra.length ? new ReadResult(joinElements(this.value, extra), null, this.messages) : this }, ReadResult.prototype.map = function (func) { var result = this._result.map(function (value) { return func(value.element) }); return new ReadResult(result.value, this.extra, result.messages) }, ReadResult.prototype.flatMap = function (func) { var result = this._result.flatMap(function (value) { return func(value.element)._result }); return new ReadResult(result.value.element, joinElements(this.extra, result.value.extra), result.messages) } }, { "../documents": 4, "../results": 25, "./uris": 16, "dingbat-to-unicode": 81, underscore: 117 }], 6: [function (require, module, exports) { function createCommentsReader(bodyReader) { function readCommentsXml(element) { return Result.combine(element.getElementsByTagName("w:comment").map(readCommentElement)) } function readCommentElement(element) { function readOptionalAttribute(name) { return (element.attributes[name] || "").trim() || null } var id = element.attributes["w:id"]; return bodyReader.readXmlElements(element.children).map(function (body) { return documents.comment({ commentId: id, body: body, authorName: readOptionalAttribute("w:author"), authorInitials: readOptionalAttribute("w:initials") }) }) } return readCommentsXml } var documents = require("../documents"), Result = require("../results").Result; exports.createCommentsReader = createCommentsReader }, { "../documents": 4, "../results": 25 }], 7: [function (require, module, exports) { + function readContentTypesFromXml(element) { + var extensionDefaults = {}, overrides = {}; return element.children.forEach(function (child) { + if ("content-types:Default" === child.name && (extensionDefaults[child.attributes.Extension] = child.attributes.ContentType), "content-types:Override" === child.name) { + var name = child.attributes.PartName; "/" === name.charAt(0) && (name = name.substring(1)), overrides[name] = child.attributes.ContentType + } + }), contentTypes(overrides, extensionDefaults) + } function contentTypes(overrides, extensionDefaults) { return { findContentType: function (path) { var overrideContentType = overrides[path]; if (overrideContentType) return overrideContentType; var pathParts = path.split("."), extension = pathParts[pathParts.length - 1]; if (extensionDefaults.hasOwnProperty(extension)) return extensionDefaults[extension]; var fallback = fallbackContentTypes[extension.toLowerCase()]; return fallback ? "image/" + fallback : null } } } exports.readContentTypesFromXml = readContentTypesFromXml; var fallbackContentTypes = { png: "png", gif: "gif", jpeg: "jpeg", jpg: "jpeg", tif: "tiff", tiff: "tiff", bmp: "bmp" }; exports.defaultContentTypes = contentTypes({}, {}) + }, {}], 8: [function (require, module, exports) { function DocumentXmlReader(options) { function convertXmlToDocument(element) { var body = element.first("w:body"), result = bodyReader.readXmlElements(body.children).map(function (children) { return new documents.Document(children, { notes: options.notes, comments: options.comments }) }); return new Result(result.value, result.messages) } var bodyReader = options.bodyReader; return { convertXmlToDocument: convertXmlToDocument } } exports.DocumentXmlReader = DocumentXmlReader; var documents = require("../documents"), Result = require("../results").Result }, { "../documents": 4, "../results": 25 }], 9: [function (require, module, exports) { function read(docxFile, input) { return input = input || {}, promises.props({ contentTypes: readContentTypesFromZipFile(docxFile), partPaths: findPartPaths(docxFile), docxFile: docxFile, files: new Files(input.path ? path.dirname(input.path) : null) }).also(function (result) { return { styles: readStylesFromZipFile(docxFile, result.partPaths.styles) } }).also(function (result) { return { numbering: readNumberingFromZipFile(docxFile, result.partPaths.numbering, result.styles) } }).also(function (result) { return { footnotes: readXmlFileWithBody(result.partPaths.footnotes, result, function (bodyReader, xml) { return xml ? notesReader.createFootnotesReader(bodyReader)(xml) : new Result([]) }), endnotes: readXmlFileWithBody(result.partPaths.endnotes, result, function (bodyReader, xml) { return xml ? notesReader.createEndnotesReader(bodyReader)(xml) : new Result([]) }), comments: readXmlFileWithBody(result.partPaths.comments, result, function (bodyReader, xml) { return xml ? commentsReader.createCommentsReader(bodyReader)(xml) : new Result([]) }) } }).also(function (result) { return { notes: result.footnotes.flatMap(function (footnotes) { return result.endnotes.map(function (endnotes) { return new documents.Notes(footnotes.concat(endnotes)) }) }) } }).then(function (result) { return readXmlFileWithBody(result.partPaths.mainDocument, result, function (bodyReader, xml) { return result.notes.flatMap(function (notes) { return result.comments.flatMap(function (comments) { var reader = new DocumentXmlReader({ bodyReader: bodyReader, notes: notes, comments: comments }); return reader.convertXmlToDocument(xml) }) }) }) }) } function findPartPaths(docxFile) { return readPackageRelationships(docxFile).then(function (packageRelationships) { var mainDocumentPath = findPartPath({ docxFile: docxFile, relationships: packageRelationships, relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", basePath: "", fallbackPath: "word/document.xml" }); if (!docxFile.exists(mainDocumentPath)) throw new Error("Could not find main document part. Are you sure this is a valid .docx file?"); return xmlFileReader({ filename: relationshipsFilename(mainDocumentPath), readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue })(docxFile).then(function (documentRelationships) { function findPartRelatedToMainDocument(name) { return findPartPath({ docxFile: docxFile, relationships: documentRelationships, relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/" + name, basePath: zipfile.splitPath(mainDocumentPath).dirname, fallbackPath: "word/" + name + ".xml" }) } return { mainDocument: mainDocumentPath, comments: findPartRelatedToMainDocument("comments"), endnotes: findPartRelatedToMainDocument("endnotes"), footnotes: findPartRelatedToMainDocument("footnotes"), numbering: findPartRelatedToMainDocument("numbering"), styles: findPartRelatedToMainDocument("styles") } }) }) } function findPartPath(options) { var docxFile = options.docxFile, relationships = options.relationships, relationshipType = options.relationshipType, basePath = options.basePath, fallbackPath = options.fallbackPath, targets = relationships.findTargetsByType(relationshipType), normalisedTargets = targets.map(function (target) { return stripPrefix(zipfile.joinPath(basePath, target), "/") }), validTargets = normalisedTargets.filter(function (target) { return docxFile.exists(target) }); return 0 === validTargets.length ? fallbackPath : validTargets[0] } function stripPrefix(value, prefix) { return value.substring(0, prefix.length) === prefix ? value.substring(prefix.length) : value } function xmlFileReader(options) { return function (zipFile) { return readXmlFromZipFile(zipFile, options.filename).then(function (element) { return element ? options.readElement(element) : options.defaultValue }) } } function readXmlFileWithBody(filename, options, func) { var readRelationshipsFromZipFile = xmlFileReader({ filename: relationshipsFilename(filename), readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue }); return readRelationshipsFromZipFile(options.docxFile).then(function (relationships) { var bodyReader = new createBodyReader({ relationships: relationships, contentTypes: options.contentTypes, docxFile: options.docxFile, numbering: options.numbering, styles: options.styles, files: options.files }); return readXmlFromZipFile(options.docxFile, filename).then(function (xml) { return func(bodyReader, xml) }) }) } function relationshipsFilename(filename) { var split = zipfile.splitPath(filename); return zipfile.joinPath(split.dirname, "_rels", split.basename + ".rels") } function readNumberingFromZipFile(zipFile, path, styles) { return xmlFileReader({ filename: path, readElement: function (element) { return numberingXml.readNumberingXml(element, { styles: styles }) }, defaultValue: numberingXml.defaultNumbering })(zipFile) } function readStylesFromZipFile(zipFile, path) { return xmlFileReader({ filename: path, readElement: stylesReader.readStylesXml, defaultValue: stylesReader.defaultStyles })(zipFile) } exports.read = read, exports._findPartPaths = findPartPaths; var path = require("path"), promises = require("../promises"), documents = require("../documents"), Result = require("../results").Result, zipfile = require("../zipfile"), readXmlFromZipFile = require("./office-xml-reader").readXmlFromZipFile, createBodyReader = require("./body-reader").createBodyReader, DocumentXmlReader = require("./document-xml-reader").DocumentXmlReader, relationshipsReader = require("./relationships-reader"), contentTypesReader = require("./content-types-reader"), numberingXml = require("./numbering-xml"), stylesReader = require("./styles-reader"), notesReader = require("./notes-reader"), commentsReader = require("./comments-reader"), Files = require("./files").Files, readContentTypesFromZipFile = xmlFileReader({ filename: "[Content_Types].xml", readElement: contentTypesReader.readContentTypesFromXml, defaultValue: contentTypesReader.defaultContentTypes }), readPackageRelationships = xmlFileReader({ filename: "_rels/.rels", readElement: relationshipsReader.readRelationships, defaultValue: relationshipsReader.defaultValue }) }, { "../documents": 4, "../promises": 23, "../results": 25, "../zipfile": 39, "./body-reader": 5, "./comments-reader": 6, "./content-types-reader": 7, "./document-xml-reader": 8, "./files": 1, "./notes-reader": 10, "./numbering-xml": 11, "./office-xml-reader": 12, "./relationships-reader": 13, "./styles-reader": 15, path: 100 }], 10: [function (require, module, exports) { function createReader(noteType, bodyReader) { function readNotesXml(element) { return Result.combine(element.getElementsByTagName("w:" + noteType).filter(isFootnoteElement).map(readFootnoteElement)) } function isFootnoteElement(element) { var type = element.attributes["w:type"]; return "continuationSeparator" !== type && "separator" !== type } function readFootnoteElement(footnoteElement) { var id = footnoteElement.attributes["w:id"]; return bodyReader.readXmlElements(footnoteElement.children).map(function (body) { return documents.Note({ noteType: noteType, noteId: id, body: body }) }) } return readNotesXml } var documents = require("../documents"), Result = require("../results").Result; exports.createFootnotesReader = createReader.bind(this, "footnote"), exports.createEndnotesReader = createReader.bind(this, "endnote") }, { "../documents": 4, "../results": 25 }], 11: [function (require, module, exports) { function Numbering(nums, abstractNums, styles) { function findLevel(numId, level) { var num = nums[numId]; if (num) { var abstractNum = abstractNums[num.abstractNumId]; if (abstractNum) { if (null == abstractNum.numStyleLink) return abstractNums[num.abstractNumId].levels[level]; var style = styles.findNumberingStyleById(abstractNum.numStyleLink); return findLevel(style.numId, level) } return null } return null } function findLevelByParagraphStyleId(styleId) { return levelsByParagraphStyleId[styleId] || null } var allLevels = _.flatten(_.values(abstractNums).map(function (abstractNum) { return _.values(abstractNum.levels) })), levelsByParagraphStyleId = _.indexBy(allLevels.filter(function (level) { return null != level.paragraphStyleId }), "paragraphStyleId"); return { findLevel: findLevel, findLevelByParagraphStyleId: findLevelByParagraphStyleId } } function readNumberingXml(root, options) { if (!options || !options.styles) throw new Error("styles is missing"); var abstractNums = readAbstractNums(root), nums = readNums(root, abstractNums); return new Numbering(nums, abstractNums, options.styles) } function readAbstractNums(root) { var abstractNums = {}; return root.getElementsByTagName("w:abstractNum").forEach(function (element) { var id = element.attributes["w:abstractNumId"]; abstractNums[id] = readAbstractNum(element) }), abstractNums } function readAbstractNum(element) { var levels = {}; element.getElementsByTagName("w:lvl").forEach(function (levelElement) { var levelIndex = levelElement.attributes["w:ilvl"], numFmt = levelElement.first("w:numFmt").attributes["w:val"], paragraphStyleId = levelElement.firstOrEmpty("w:pStyle").attributes["w:val"]; levels[levelIndex] = { isOrdered: "bullet" !== numFmt, level: levelIndex, paragraphStyleId: paragraphStyleId } }); var numStyleLink = element.firstOrEmpty("w:numStyleLink").attributes["w:val"]; return { levels: levels, numStyleLink: numStyleLink } } function readNums(root) { var nums = {}; return root.getElementsByTagName("w:num").forEach(function (element) { var numId = element.attributes["w:numId"], abstractNumId = element.first("w:abstractNumId").attributes["w:val"]; nums[numId] = { abstractNumId: abstractNumId } }), nums } var _ = require("underscore"); exports.readNumberingXml = readNumberingXml, exports.Numbering = Numbering, exports.defaultNumbering = new Numbering({}, {}) }, { underscore: 117 }], 12: [function (require, module, exports) { function read(xmlString) { return xml.readString(xmlString, xmlNamespaceMap).then(function (document) { return collapseAlternateContent(document)[0] }) } function readXmlFromZipFile(docxFile, path) { return docxFile.exists(path) ? docxFile.read(path, "utf-8").then(stripUtf8Bom).then(read) : promises.resolve(null) } function stripUtf8Bom(xmlString) { return xmlString.replace(/^\uFEFF/g, "") } function collapseAlternateContent(node) { return "element" === node.type ? "mc:AlternateContent" === node.name ? node.first("mc:Fallback").children : (node.children = _.flatten(node.children.map(collapseAlternateContent, !0)), [node]) : [node] } var _ = require("underscore"), promises = require("../promises"), xml = require("../xml"); exports.read = read, exports.readXmlFromZipFile = readXmlFromZipFile; var xmlNamespaceMap = { "http://schemas.openxmlformats.org/wordprocessingml/2006/main": "w", "http://schemas.openxmlformats.org/officeDocument/2006/relationships": "r", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing": "wp", "http://schemas.openxmlformats.org/drawingml/2006/main": "a", "http://schemas.openxmlformats.org/drawingml/2006/picture": "pic", "http://schemas.openxmlformats.org/package/2006/content-types": "content-types", "urn:schemas-microsoft-com:vml": "v", "http://schemas.openxmlformats.org/markup-compatibility/2006": "mc", "urn:schemas-microsoft-com:office:word": "office-word" } }, { "../promises": 23, "../xml": 35, underscore: 117 }], 13: [function (require, module, exports) { function readRelationships(element) { var relationships = []; return element.children.forEach(function (child) { if ("{http://schemas.openxmlformats.org/package/2006/relationships}Relationship" === child.name) { var relationship = { relationshipId: child.attributes.Id, target: child.attributes.Target, type: child.attributes.Type }; relationships.push(relationship) } }), new Relationships(relationships) } function Relationships(relationships) { var targetsByRelationshipId = {}; relationships.forEach(function (relationship) { targetsByRelationshipId[relationship.relationshipId] = relationship.target }); var targetsByType = {}; return relationships.forEach(function (relationship) { targetsByType[relationship.type] || (targetsByType[relationship.type] = []), targetsByType[relationship.type].push(relationship.target) }), { findTargetByRelationshipId: function (relationshipId) { return targetsByRelationshipId[relationshipId] }, findTargetsByType: function (type) { return targetsByType[type] || [] } } } exports.readRelationships = readRelationships, exports.defaultValue = new Relationships([]), exports.Relationships = Relationships }, {}], 14: [function (require, module, exports) { function writeStyleMap(docxFile, styleMap) { return docxFile.write(styleMapPath, styleMap), updateRelationships(docxFile).then(function () { return updateContentTypes(docxFile) }) } function updateRelationships(docxFile) { var path = "word/_rels/document.xml.rels", relationshipsUri = "http://schemas.openxmlformats.org/package/2006/relationships", relationshipElementName = "{" + relationshipsUri + "}Relationship"; return docxFile.read(path, "utf8").then(xml.readString).then(function (relationshipsContainer) { var relationships = relationshipsContainer.children; addOrUpdateElement(relationships, relationshipElementName, "Id", { Id: "rMammothStyleMap", Type: schema, Target: styleMapAbsolutePath }); var namespaces = { "": relationshipsUri }; return docxFile.write(path, xml.writeString(relationshipsContainer, namespaces)) }) } function updateContentTypes(docxFile) { var path = "[Content_Types].xml", contentTypesUri = "http://schemas.openxmlformats.org/package/2006/content-types", overrideName = "{" + contentTypesUri + "}Override"; return docxFile.read(path, "utf8").then(xml.readString).then(function (typesElement) { var children = typesElement.children; addOrUpdateElement(children, overrideName, "PartName", { PartName: styleMapAbsolutePath, ContentType: "text/prs.mammoth.style-map" }); var namespaces = { "": contentTypesUri }; return docxFile.write(path, xml.writeString(typesElement, namespaces)) }) } function addOrUpdateElement(elements, name, identifyingAttribute, attributes) { var existingElement = _.find(elements, function (element) { return element.name === name && element.attributes[identifyingAttribute] === attributes[identifyingAttribute] }); existingElement ? existingElement.attributes = attributes : elements.push(xml.element(name, attributes)) } function readStyleMap(docxFile) { return docxFile.exists(styleMapPath) ? docxFile.read(styleMapPath, "utf8") : promises.resolve(null) } var _ = require("underscore"), promises = require("../promises"), xml = require("../xml"); exports.writeStyleMap = writeStyleMap, exports.readStyleMap = readStyleMap; var schema = "http://schemas.zwobble.org/mammoth/style-map", styleMapPath = "mammoth/style-map", styleMapAbsolutePath = "/" + styleMapPath }, { "../promises": 23, "../xml": 35, underscore: 117 }], 15: [function (require, module, exports) { function Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) { return { findParagraphStyleById: function (styleId) { return paragraphStyles[styleId] }, findCharacterStyleById: function (styleId) { return characterStyles[styleId] }, findTableStyleById: function (styleId) { return tableStyles[styleId] }, findNumberingStyleById: function (styleId) { return numberingStyles[styleId] } } } function readStylesXml(root) { var paragraphStyles = {}, characterStyles = {}, tableStyles = {}, numberingStyles = {}, styles = { paragraph: paragraphStyles, character: characterStyles, table: tableStyles }; return root.getElementsByTagName("w:style").forEach(function (styleElement) { var style = readStyleElement(styleElement); if ("numbering" === style.type) numberingStyles[style.styleId] = readNumberingStyleElement(styleElement); else { var styleSet = styles[style.type]; styleSet && (styleSet[style.styleId] = style) } }), new Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) } function readStyleElement(styleElement) { var type = styleElement.attributes["w:type"], styleId = styleElement.attributes["w:styleId"], name = styleName(styleElement); return { type: type, styleId: styleId, name: name } } function styleName(styleElement) { var nameElement = styleElement.first("w:name"); return nameElement ? nameElement.attributes["w:val"] : null } function readNumberingStyleElement(styleElement) { var numId = styleElement.firstOrEmpty("w:pPr").firstOrEmpty("w:numPr").firstOrEmpty("w:numId").attributes["w:val"]; return { numId: numId } } exports.readStylesXml = readStylesXml, exports.Styles = Styles, exports.defaultStyles = new Styles({}, {}), Styles.EMPTY = new Styles({}, {}, {}, {}) }, {}], 16: [function (require, module, exports) { function uriToZipEntryName(base, uri) { return "/" === uri.charAt(0) ? uri.substr(1) : base + "/" + uri } function replaceFragment(uri, fragment) { var hashIndex = uri.indexOf("#"); return -1 !== hashIndex && (uri = uri.substring(0, hashIndex)), uri + "#" + fragment } exports.uriToZipEntryName = uriToZipEntryName, exports.replaceFragment = replaceFragment }, {}], 17: [function (require, module, exports) { function nonFreshElement(tagName, attributes, children) { return elementWithTag(htmlPaths.element(tagName, attributes, { fresh: !1 }), children) } function freshElement(tagName, attributes, children) { var tag = htmlPaths.element(tagName, attributes, { fresh: !0 }); return elementWithTag(tag, children) } function elementWithTag(tag, children) { return { type: "element", tag: tag, children: children || [] } } function text(value) { return { type: "text", value: value } } function isVoidElement(node) { return 0 === node.children.length && voidTagNames[node.tag.tagName] } var htmlPaths = require("../styles/html-paths"), forceWrite = { type: "forceWrite" }; exports.freshElement = freshElement, exports.nonFreshElement = nonFreshElement, exports.elementWithTag = elementWithTag, exports.text = text, exports.forceWrite = forceWrite; var voidTagNames = { br: !0, hr: !0, img: !0 }; exports.isVoidElement = isVoidElement }, { "../styles/html-paths": 28 }], 18: [function (require, module, exports) { function write(writer, nodes) { nodes.forEach(function (node) { writeNode(writer, node) }) } function writeNode(writer, node) { toStrings[node.type](writer, node) } function generateElementString(writer, node) { ast.isVoidElement(node) ? writer.selfClosing(node.tag.tagName, node.tag.attributes) : (writer.open(node.tag.tagName, node.tag.attributes), write(writer, node.children), writer.close(node.tag.tagName)) } function generateTextString(writer, node) { writer.text(node.value) } var ast = require("./ast"); exports.freshElement = ast.freshElement, exports.nonFreshElement = ast.nonFreshElement, exports.elementWithTag = ast.elementWithTag, exports.text = ast.text, exports.forceWrite = ast.forceWrite, exports.simplify = require("./simplify"); var toStrings = { element: generateElementString, text: generateTextString, forceWrite: function () { } }; exports.write = write }, { "./ast": 17, "./simplify": 19 }], 19: [function (require, module, exports) { function simplify(nodes) { return collapse(removeEmpty(nodes)) } function collapse(nodes) { var children = []; return nodes.map(collapseNode).forEach(function (child) { appendChild(children, child) }), children } function collapseNode(node) { return collapsers[node.type](node) } function collapseElement(node) { return ast.elementWithTag(node.tag, collapse(node.children)) } function identity(value) { return value } function appendChild(children, child) { var lastChild = children[children.length - 1]; "element" === child.type && !child.tag.fresh && lastChild && "element" === lastChild.type && child.tag.matchesElement(lastChild.tag) ? (child.tag.separator && appendChild(lastChild.children, ast.text(child.tag.separator)), child.children.forEach(function (grandChild) { appendChild(lastChild.children, grandChild) })) : children.push(child) } function removeEmpty(nodes) { return flatMap(nodes, function (node) { return emptiers[node.type](node) }) } function flatMap(values, func) { return _.flatten(_.map(values, func), !0) } function neverEmpty(node) { return [node] } function elementEmptier(element) { var children = removeEmpty(element.children); return 0 !== children.length || ast.isVoidElement(element) ? [ast.elementWithTag(element.tag, children)] : [] } function textEmptier(node) { return 0 === node.value.length ? [] : [node] } var _ = require("underscore"), ast = require("./ast"), collapsers = { element: collapseElement, text: identity, forceWrite: identity }, emptiers = { element: elementEmptier, text: textEmptier, forceWrite: neverEmpty }; module.exports = simplify }, { "./ast": 17, underscore: 117 }], 20: [function (require, module, exports) { function imgElement(func) { return function (element, messages) { return promises.when(func(element)).then(function (result) { var attributes = _.clone(result); return element.altText && (attributes.alt = element.altText), [Html.freshElement("img", attributes)] }) } } var _ = require("underscore"), promises = require("./promises"), Html = require("./html"); exports.imgElement = imgElement, exports.inline = exports.imgElement, exports.dataUri = imgElement(function (element) { return element.read("base64").then(function (imageBuffer) { return { src: "data:" + element.contentType + ";base64," + imageBuffer } }) }) }, { "./html": 18, "./promises": 23, underscore: 117 }], 21: [function (require, module, exports) { function convertToHtml(input, options) { return convert(input, options) } function convertToMarkdown(input, options) { var markdownOptions = Object.create(options || {}); return markdownOptions.outputFormat = "markdown", convert(input, markdownOptions) } function convert(input, options) { return options = readOptions(options), unzip.openZip(input).tap(function (docxFile) { return docxStyleMap.readStyleMap(docxFile).then(function (styleMap) { options.embeddedStyleMap = styleMap }) }).then(function (docxFile) { return docxReader.read(docxFile, input).then(function (documentResult) { return documentResult.map(options.transformDocument) }).then(function (documentResult) { return convertDocumentToHtml(documentResult, options) }) }) } function readEmbeddedStyleMap(input) { return unzip.openZip(input).then(docxStyleMap.readStyleMap) } function convertDocumentToHtml(documentResult, options) { var styleMapResult = parseStyleMap(options.readStyleMap()), parsedOptions = _.extend({}, options, { styleMap: styleMapResult.value }), documentConverter = new DocumentConverter(parsedOptions); return documentResult.flatMapThen(function (document) { return styleMapResult.flatMapThen(function (styleMap) { return documentConverter.convertToHtml(document) }) }) } function parseStyleMap(styleMap) { return Result.combine((styleMap || []).map(readStyle)).map(function (styleMap) { return styleMap.filter(function (styleMapping) { return !!styleMapping }) }) } function extractRawText(input) { return unzip.openZip(input).then(docxReader.read).then(function (documentResult) { return documentResult.map(convertElementToRawText) }) } function embedStyleMap(input, styleMap) { return unzip.openZip(input).tap(function (docxFile) { return docxStyleMap.writeStyleMap(docxFile, styleMap) }).then(function (docxFile) { return docxFile.toBuffer() }).then(function (buffer) { return { toBuffer: function () { return buffer } } }) } var _ = require("underscore"), docxReader = require("./docx/docx-reader"), docxStyleMap = require("./docx/style-map"), DocumentConverter = require("./document-to-html").DocumentConverter, convertElementToRawText = require("./raw-text").convertElementToRawText, readStyle = require("./style-reader").readStyle, readOptions = require("./options-reader").readOptions, unzip = require("./unzip"), Result = require("./results").Result; exports.convertToHtml = convertToHtml, exports.convertToMarkdown = convertToMarkdown, exports.convert = convert, exports.extractRawText = extractRawText, exports.images = require("./images"), exports.transforms = require("./transforms"), exports.underline = require("./underline"), exports.embedStyleMap = embedStyleMap, exports.readEmbeddedStyleMap = readEmbeddedStyleMap, exports.styleMapping = function () { throw new Error("Use a raw string instead of mammoth.styleMapping e.g. \"p[style-name='Title'] => h1\" instead of mammoth.styleMapping(\"p[style-name='Title'] => h1\")") } }, { "./document-to-html": 3, "./docx/docx-reader": 9, "./docx/style-map": 14, "./images": 20, "./options-reader": 22, "./raw-text": 24, "./results": 25, "./style-reader": 26, "./transforms": 30, "./underline": 31, "./unzip": 2, underscore: 117 }], 22: [function (require, module, exports) { function readOptions(options) { return options = options || {}, _.extend({}, standardOptions, options, { customStyleMap: readStyleMap(options.styleMap), readStyleMap: function () { var styleMap = this.customStyleMap; return this.includeEmbeddedStyleMap && (styleMap = styleMap.concat(readStyleMap(this.embeddedStyleMap))), this.includeDefaultStyleMap && (styleMap = styleMap.concat(defaultStyleMap)), styleMap } }) } function readStyleMap(styleMap) { return styleMap ? _.isString(styleMap) ? styleMap.split("\n").map(function (line) { return line.trim() }).filter(function (line) { return "" !== line && "#" !== line.charAt(0) }) : styleMap : [] } function identity(value) { return value } exports.readOptions = readOptions; var _ = require("underscore"), defaultStyleMap = exports._defaultStyleMap = ["p.Heading1 => h1:fresh", "p.Heading2 => h2:fresh", "p.Heading3 => h3:fresh", "p.Heading4 => h4:fresh", "p.Heading5 => h5:fresh", "p.Heading6 => h6:fresh", "p[style-name='Heading 1'] => h1:fresh", "p[style-name='Heading 2'] => h2:fresh", "p[style-name='Heading 3'] => h3:fresh", "p[style-name='Heading 4'] => h4:fresh", "p[style-name='Heading 5'] => h5:fresh", "p[style-name='Heading 6'] => h6:fresh", "p[style-name='heading 1'] => h1:fresh", "p[style-name='heading 2'] => h2:fresh", "p[style-name='heading 3'] => h3:fresh", "p[style-name='heading 4'] => h4:fresh", "p[style-name='heading 5'] => h5:fresh", "p[style-name='heading 6'] => h6:fresh", "r[style-name='Strong'] => strong", "p[style-name='footnote text'] => p:fresh", "r[style-name='footnote reference'] =>", "p[style-name='endnote text'] => p:fresh", "r[style-name='endnote reference'] =>", "p[style-name='annotation text'] => p:fresh", "r[style-name='annotation reference'] =>", "p[style-name='Footnote'] => p:fresh", "r[style-name='Footnote anchor'] =>", "p[style-name='Endnote'] => p:fresh", "r[style-name='Endnote anchor'] =>", "p:unordered-list(1) => ul > li:fresh", "p:unordered-list(2) => ul|ol > li > ul > li:fresh", "p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh", "p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh", "p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh", "p:ordered-list(1) => ol > li:fresh", "p:ordered-list(2) => ul|ol > li > ol > li:fresh", "p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh", "p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh", "p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh", "r[style-name='Hyperlink'] =>", "p[style-name='Normal'] => p:fresh"], standardOptions = exports._standardOptions = { transformDocument: identity, includeDefaultStyleMap: !0, includeEmbeddedStyleMap: !0 } }, { underscore: 117 }], 23: [function (require, module, exports) { function defer() { var resolve, reject, promise = new bluebird.Promise(function (resolveArg, rejectArg) { resolve = resolveArg, reject = rejectArg }); return { resolve: resolve, reject: reject, promise: promise } } var _ = require("underscore"), bluebird = require("bluebird/js/release/promise")(); exports.defer = defer, exports.when = bluebird.resolve, exports.resolve = bluebird.resolve, exports.all = bluebird.all, exports.props = bluebird.props, exports.reject = bluebird.reject, exports.promisify = bluebird.promisify, exports.mapSeries = bluebird.mapSeries, exports.attempt = bluebird.attempt, exports.nfcall = function (func) { var args = Array.prototype.slice.call(arguments, 1), promisedFunc = bluebird.promisify(func); return promisedFunc.apply(null, args) }, bluebird.prototype.fail = bluebird.prototype.caught, bluebird.prototype.also = function (func) { return this.then(function (value) { var returnValue = _.extend({}, value, func(value)); return bluebird.props(returnValue) }) } }, { "bluebird/js/release/promise": 61, underscore: 117 }], 24: [function (require, module, exports) { function convertElementToRawText(element) { if ("text" === element.type) return element.value; if (element.type === documents.types.tab) return " "; var tail = "paragraph" === element.type ? "\n\n" : ""; return (element.children || []).map(convertElementToRawText).join("") + tail } var documents = require("./documents"); exports.convertElementToRawText = convertElementToRawText }, { "./documents": 4 }], 25: [function (require, module, exports) { function Result(value, messages) { this.value = value, this.messages = messages || [] } function success(value) { return new Result(value, []) } function warning(message) { return { type: "warning", message: message } } function error(exception) { return { type: "error", message: exception.message, error: exception } } function combineMessages(results) { var messages = []; return _.flatten(_.pluck(results, "messages"), !0).forEach(function (message) { containsMessage(messages, message) || messages.push(message) }), messages } function containsMessage(messages, message) { return void 0 !== _.find(messages, isSameMessage.bind(null, message)) } function isSameMessage(first, second) { return first.type === second.type && first.message === second.message } var _ = require("underscore"); exports.Result = Result, exports.success = success, exports.warning = warning, exports.error = error, Result.prototype.map = function (func) { return new Result(func(this.value), this.messages) }, Result.prototype.flatMap = function (func) { var funcResult = func(this.value); return new Result(funcResult.value, combineMessages([this, funcResult])) }, Result.prototype.flatMapThen = function (func) { var that = this; return func(this.value).then(function (otherResult) { return new Result(otherResult.value, combineMessages([that, otherResult])) }) }, Result.combine = function (results) { var values = _.flatten(_.pluck(results, "value")), messages = combineMessages(results); return new Result(values, messages) } }, { underscore: 117 }], 26: [function (require, module, exports) { function readStyle(string) { return parseString(styleRule, string) } function createStyleRule() { return lop.rules.sequence(lop.rules.sequence.capture(documentMatcherRule()), lop.rules.tokenOfType("whitespace"), lop.rules.tokenOfType("arrow"), lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("whitespace"), lop.rules.sequence.capture(htmlPathRule())).head())), lop.rules.tokenOfType("end")).map(function (documentMatcher, htmlPath) { return { from: documentMatcher, to: htmlPath.valueOrElse(htmlPaths.empty) } }) } function readDocumentMatcher(string) { return parseString(documentMatcherRule(), string) } function documentMatcherRule() { - function createMatcherSuffixesRule(rules) { var matcherSuffix = lop.rules.firstOf.apply(lop.rules.firstOf, ["matcher suffix"].concat(rules)), matcherSuffixes = lop.rules.zeroOrMore(matcherSuffix); return lop.rules.then(matcherSuffixes, function (suffixes) { var matcherOptions = {}; return suffixes.forEach(function (suffix) { _.extend(matcherOptions, suffix) }), matcherOptions }) } var sequence = lop.rules.sequence, identifierToConstant = function (identifier, constant) { - return lop.rules.then(lop.rules.token("identifier", identifier), function () { return constant }) - }, paragraphRule = identifierToConstant("p", documentMatchers.paragraph), runRule = identifierToConstant("r", documentMatchers.run), elementTypeRule = lop.rules.firstOf("p or r or table", paragraphRule, runRule), styleIdRule = lop.rules.then(classRule, function (styleId) { return { styleId: styleId } }), styleNameMatcherRule = lop.rules.firstOf("style name matcher", lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("equals"), lop.rules.sequence.cut(), lop.rules.sequence.capture(stringRule)).head(), function (styleName) { return { styleName: documentMatchers.equalTo(styleName) } }), lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("startsWith"), lop.rules.sequence.cut(), lop.rules.sequence.capture(stringRule)).head(), function (styleName) { return { styleName: documentMatchers.startsWith(styleName) } })), styleNameRule = lop.rules.sequence(lop.rules.tokenOfType("open-square-bracket"), lop.rules.sequence.cut(), lop.rules.token("identifier", "style-name"), lop.rules.sequence.capture(styleNameMatcherRule), lop.rules.tokenOfType("close-square-bracket")).head(), listTypeRule = lop.rules.firstOf("list type", identifierToConstant("ordered-list", { isOrdered: !0 }), identifierToConstant("unordered-list", { isOrdered: !1 })), listRule = sequence(lop.rules.tokenOfType("colon"), sequence.capture(listTypeRule), sequence.cut(), lop.rules.tokenOfType("open-paren"), sequence.capture(integerRule), lop.rules.tokenOfType("close-paren")).map(function (listType, levelNumber) { return { list: { isOrdered: listType.isOrdered, levelIndex: levelNumber - 1 } } }), paragraphOrRun = sequence(sequence.capture(elementTypeRule), sequence.capture(createMatcherSuffixesRule([styleIdRule, styleNameRule, listRule]))).map(function (createMatcher, matcherOptions) { return createMatcher(matcherOptions) }), table = sequence(lop.rules.token("identifier", "table"), sequence.capture(createMatcherSuffixesRule([styleIdRule, styleNameRule]))).map(function (options) { return documentMatchers.table(options) }), bold = identifierToConstant("b", documentMatchers.bold), italic = identifierToConstant("i", documentMatchers.italic), underline = identifierToConstant("u", documentMatchers.underline), strikethrough = identifierToConstant("strike", documentMatchers.strikethrough), allCaps = identifierToConstant("all-caps", documentMatchers.allCaps), smallCaps = identifierToConstant("small-caps", documentMatchers.smallCaps), commentReference = identifierToConstant("comment-reference", documentMatchers.commentReference), breakMatcher = sequence(lop.rules.token("identifier", "br"), sequence.cut(), lop.rules.tokenOfType("open-square-bracket"), lop.rules.token("identifier", "type"), lop.rules.tokenOfType("equals"), sequence.capture(stringRule), lop.rules.tokenOfType("close-square-bracket")).map(function (breakType) { switch (breakType) { case "line": return documentMatchers.lineBreak; case "page": return documentMatchers.pageBreak; case "column": return documentMatchers.columnBreak } }); return lop.rules.firstOf("element type", paragraphOrRun, table, bold, italic, underline, strikethrough, allCaps, smallCaps, commentReference, breakMatcher) + function createMatcherSuffixesRule(rules) { var matcherSuffix = lop.rules.firstOf.apply(lop.rules.firstOf, ["matcher suffix"].concat(rules)), matcherSuffixes = lop.rules.zeroOrMore(matcherSuffix); return lop.rules.then(matcherSuffixes, function (suffixes) { var matcherOptions = {}; return suffixes.forEach(function (suffix) { _.extend(matcherOptions, suffix) }), matcherOptions }) } var sequence = lop.rules.sequence, identifierToConstant = function (identifier, constant) { return lop.rules.then(lop.rules.token("identifier", identifier), function () { return constant }) }, paragraphRule = identifierToConstant("p", documentMatchers.paragraph), runRule = identifierToConstant("r", documentMatchers.run), elementTypeRule = lop.rules.firstOf("p or r or table", paragraphRule, runRule), styleIdRule = lop.rules.then(classRule, function (styleId) { return { styleId: styleId } }), styleNameMatcherRule = lop.rules.firstOf("style name matcher", lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("equals"), lop.rules.sequence.cut(), lop.rules.sequence.capture(stringRule)).head(), function (styleName) { return { styleName: documentMatchers.equalTo(styleName) } }), lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("startsWith"), lop.rules.sequence.cut(), lop.rules.sequence.capture(stringRule)).head(), function (styleName) { return { styleName: documentMatchers.startsWith(styleName) } })), styleNameRule = lop.rules.sequence(lop.rules.tokenOfType("open-square-bracket"), lop.rules.sequence.cut(), lop.rules.token("identifier", "style-name"), lop.rules.sequence.capture(styleNameMatcherRule), lop.rules.tokenOfType("close-square-bracket")).head(), listTypeRule = lop.rules.firstOf("list type", identifierToConstant("ordered-list", { + isOrdered: !0 + }), identifierToConstant("unordered-list", { isOrdered: !1 })), listRule = sequence(lop.rules.tokenOfType("colon"), sequence.capture(listTypeRule), sequence.cut(), lop.rules.tokenOfType("open-paren"), sequence.capture(integerRule), lop.rules.tokenOfType("close-paren")).map(function (listType, levelNumber) { return { list: { isOrdered: listType.isOrdered, levelIndex: levelNumber - 1 } } }), paragraphOrRun = sequence(sequence.capture(elementTypeRule), sequence.capture(createMatcherSuffixesRule([styleIdRule, styleNameRule, listRule]))).map(function (createMatcher, matcherOptions) { return createMatcher(matcherOptions) }), table = sequence(lop.rules.token("identifier", "table"), sequence.capture(createMatcherSuffixesRule([styleIdRule, styleNameRule]))).map(function (options) { return documentMatchers.table(options) }), bold = identifierToConstant("b", documentMatchers.bold), italic = identifierToConstant("i", documentMatchers.italic), underline = identifierToConstant("u", documentMatchers.underline), strikethrough = identifierToConstant("strike", documentMatchers.strikethrough), allCaps = identifierToConstant("all-caps", documentMatchers.allCaps), smallCaps = identifierToConstant("small-caps", documentMatchers.smallCaps), commentReference = identifierToConstant("comment-reference", documentMatchers.commentReference), breakMatcher = sequence(lop.rules.token("identifier", "br"), sequence.cut(), lop.rules.tokenOfType("open-square-bracket"), lop.rules.token("identifier", "type"), lop.rules.tokenOfType("equals"), sequence.capture(stringRule), lop.rules.tokenOfType("close-square-bracket")).map(function (breakType) { switch (breakType) { case "line": return documentMatchers.lineBreak; case "page": return documentMatchers.pageBreak; case "column": return documentMatchers.columnBreak } }); return lop.rules.firstOf("element type", paragraphOrRun, table, bold, italic, underline, strikethrough, allCaps, smallCaps, commentReference, breakMatcher) } function readHtmlPath(string) { return parseString(htmlPathRule(), string) } function htmlPathRule() { var capture = lop.rules.sequence.capture, whitespaceRule = lop.rules.tokenOfType("whitespace"), freshRule = lop.rules.then(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("colon"), lop.rules.token("identifier", "fresh"))), function (option) { return option.map(function () { return !0 }).valueOrElse(!1) }), separatorRule = lop.rules.then(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("colon"), lop.rules.token("identifier", "separator"), lop.rules.tokenOfType("open-paren"), capture(stringRule), lop.rules.tokenOfType("close-paren")).head()), function (option) { return option.valueOrElse("") }), tagNamesRule = lop.rules.oneOrMoreWithSeparator(identifierRule, lop.rules.tokenOfType("choice")), styleElementRule = lop.rules.sequence(capture(tagNamesRule), capture(lop.rules.zeroOrMore(classRule)), capture(freshRule), capture(separatorRule)).map(function (tagName, classNames, fresh, separator) { var attributes = {}, options = {}; return classNames.length > 0 && (attributes["class"] = classNames.join(" ")), fresh && (options.fresh = !0), separator && (options.separator = separator), htmlPaths.element(tagName, attributes, options) }); return lop.rules.firstOf("html path", lop.rules.then(lop.rules.tokenOfType("bang"), function () { return htmlPaths.ignore }), lop.rules.then(lop.rules.zeroOrMoreWithSeparator(styleElementRule, lop.rules.sequence(whitespaceRule, lop.rules.tokenOfType("gt"), whitespaceRule)), htmlPaths.elements)) } function decodeEscapeSequences(value) { return value.replace(/\\(.)/g, function (match, code) { return escapeSequences[code] || code }) } function parseString(rule, string) { var tokens = tokenise(string), parser = lop.Parser(), parseResult = parser.parseTokens(rule, tokens); return parseResult.isSuccess() ? results.success(parseResult.value()) : new results.Result(null, [results.warning(describeFailure(string, parseResult))]) } function describeFailure(input, parseResult) { return "Did not understand this style mapping, so ignored it: " + input + "\n" + parseResult.errors().map(describeError).join("\n") } function describeError(error) { return "Error was at character number " + error.characterNumber() + ": Expected " + error.expected + " but got " + error.actual } var _ = require("underscore"), lop = require("lop"), documentMatchers = require("./styles/document-matchers"), htmlPaths = require("./styles/html-paths"), tokenise = require("./styles/parser/tokeniser").tokenise, results = require("./results"); exports.readHtmlPath = readHtmlPath, exports.readDocumentMatcher = readDocumentMatcher, exports.readStyle = readStyle; var identifierRule = lop.rules.then(lop.rules.tokenOfType("identifier"), decodeEscapeSequences), integerRule = lop.rules.tokenOfType("integer"), stringRule = lop.rules.then(lop.rules.tokenOfType("string"), decodeEscapeSequences), escapeSequences = { n: "\n", r: "\r", t: " " }, classRule = lop.rules.sequence(lop.rules.tokenOfType("dot"), lop.rules.sequence.cut(), lop.rules.sequence.capture(identifierRule)).head(), styleRule = createStyleRule() - }, { "./results": 25, "./styles/document-matchers": 27, "./styles/html-paths": 28, "./styles/parser/tokeniser": 29, lop: 89, underscore: 103 }], 27: [function (require, module, exports) { function paragraph(options) { return new Matcher("paragraph", options) } function run(options) { return new Matcher("run", options) } function table(options) { return new Matcher("table", options) } function Matcher(elementType, options) { options = options || {}, this._elementType = elementType, this._styleId = options.styleId, this._styleName = options.styleName, options.list && (this._listIndex = options.list.levelIndex, this._listIsOrdered = options.list.isOrdered) } function isList(element, levelIndex, isOrdered) { return element.numbering && element.numbering.level == levelIndex && element.numbering.isOrdered == isOrdered } function equalTo(value) { return { operator: operatorEqualTo, operand: value } } function startsWith(value) { return { operator: operatorStartsWith, operand: value } } function operatorEqualTo(first, second) { return first.toUpperCase() === second.toUpperCase() } function operatorStartsWith(first, second) { return 0 === second.toUpperCase().indexOf(first.toUpperCase()) } exports.paragraph = paragraph, exports.run = run, exports.table = table, exports.bold = new Matcher("bold"), exports.italic = new Matcher("italic"), exports.underline = new Matcher("underline"), exports.strikethrough = new Matcher("strikethrough"), exports.allCaps = new Matcher("allCaps"), exports.smallCaps = new Matcher("smallCaps"), exports.commentReference = new Matcher("commentReference"), exports.lineBreak = new Matcher("break", { breakType: "line" }), exports.pageBreak = new Matcher("break", { breakType: "page" }), exports.columnBreak = new Matcher("break", { breakType: "column" }), exports.equalTo = equalTo, exports.startsWith = startsWith, Matcher.prototype.matches = function (element) { return element.type === this._elementType && (void 0 === this._styleId || element.styleId === this._styleId) && (void 0 === this._styleName || element.styleName && this._styleName.operator(this._styleName.operand, element.styleName)) && (void 0 === this._listIndex || isList(element, this._listIndex, this._listIsOrdered)) && (void 0 === this._breakType || this._breakType === element.breakType) } }, {}], 28: [function (require, module, exports) { function topLevelElement(tagName, attributes) { return elements([element(tagName, attributes, { fresh: !0 })]) } function elements(elementStyles) { return new HtmlPath(elementStyles.map(function (elementStyle) { return _.isString(elementStyle) ? element(elementStyle) : elementStyle })) } function HtmlPath(elements) { this._elements = elements } function element(tagName, attributes, options) { return options = options || {}, new Element(tagName, attributes, options) } function Element(tagName, attributes, options) { var tagNames = {}; _.isArray(tagName) ? (tagName.forEach(function (tagName) { tagNames[tagName] = !0 }), tagName = tagName[0]) : tagNames[tagName] = !0, this.tagName = tagName, this.tagNames = tagNames, this.attributes = attributes || {}, this.fresh = options.fresh, this.separator = options.separator } var _ = require("underscore"), html = require("../html"); exports.topLevelElement = topLevelElement, exports.elements = elements, exports.element = element, HtmlPath.prototype.wrap = function (children) { for (var result = children(), index = this._elements.length - 1; index >= 0; index--)result = this._elements[index].wrapNodes(result); return result }, Element.prototype.matchesElement = function (element) { return this.tagNames[element.tagName] && _.isEqual(this.attributes || {}, element.attributes || {}) }, Element.prototype.wrap = function (generateNodes) { return this.wrapNodes(generateNodes()) }, Element.prototype.wrapNodes = function (nodes) { return [html.elementWithTag(this, nodes)] }, exports.empty = elements([]), exports.ignore = { wrap: function () { return [] } } }, { "../html": 18, underscore: 103 }], 29: [function (require, module, exports) { function tokenise(string) { var identifierCharacter = "(?:[a-zA-Z\\-_]|\\\\.)", tokeniser = new RegexTokeniser([{ name: "identifier", regex: new RegExp("(" + identifierCharacter + "(?:" + identifierCharacter + "|[0-9])*)") }, { name: "dot", regex: /\./ }, { name: "colon", regex: /:/ }, { name: "gt", regex: />/ }, { name: "whitespace", regex: /\s+/ }, { name: "arrow", regex: /=>/ }, { name: "equals", regex: /=/ }, { name: "startsWith", regex: /\^=/ }, { name: "open-paren", regex: /\(/ }, { name: "close-paren", regex: /\)/ }, { name: "open-square-bracket", regex: /\[/ }, { name: "close-square-bracket", regex: /\]/ }, { name: "string", regex: new RegExp(stringPrefix + "'") }, { name: "unterminated-string", regex: new RegExp(stringPrefix) }, { name: "integer", regex: /([0-9]+)/ }, { name: "choice", regex: /\|/ }, { name: "bang", regex: /(!)/ }]); return tokeniser.tokenise(string) } var lop = require("lop"), RegexTokeniser = lop.RegexTokeniser; exports.tokenise = tokenise; var stringPrefix = "'((?:\\\\.|[^'])*)" }, { lop: 89 }], 30: [function (require, module, exports) { function paragraph(transform) { return elementsOfType("paragraph", transform) } function run(transform) { return elementsOfType("run", transform) } function elementsOfType(elementType, transform) { return elements(function (element) { return element.type === elementType ? transform(element) : element }) } function elements(transform) { return function transformElement(element) { if (element.children) { var children = _.map(element.children, transformElement); element = _.extend(element, { children: children }) } return transform(element) } } function getDescendantsOfType(element, type) { return getDescendants(element).filter(function (descendant) { return descendant.type === type }) } function getDescendants(element) { var descendants = []; return visitDescendants(element, function (descendant) { descendants.push(descendant) }), descendants } function visitDescendants(element, visit) { element.children && element.children.forEach(function (child) { visitDescendants(child, visit), visit(child) }) } var _ = require("underscore"); exports.paragraph = paragraph, exports.run = run, exports._elements = elements, exports.getDescendantsOfType = getDescendantsOfType, exports.getDescendants = getDescendants }, { underscore: 103 }], 31: [function (require, module, exports) { function element(name) { return function (html) { return Html.elementWithTag(htmlPaths.element(name), [html]) } } var htmlPaths = require("./styles/html-paths"), Html = require("./html"); exports.element = element }, { "./html": 18, "./styles/html-paths": 28 }], 32: [function (require, module, exports) { function writer(options) { return options = options || {}, options.prettyPrint ? prettyWriter() : simpleWriter() } function prettyWriter() { function open(tagName, attributes) { indentedElements[tagName] && indent(), stack.push(tagName), writer.open(tagName, attributes), indentedElements[tagName] && indentationLevel++, start = !1 } function close(tagName) { indentedElements[tagName] && (indentationLevel--, indent()), stack.pop(), writer.close(tagName) } function text(value) { startText(); var text = isInPre() ? value : value.replace("\n", "\n" + indentation); writer.text(text) } function selfClosing(tagName, attributes) { indent(), writer.selfClosing(tagName, attributes) } function insideIndentedElement() { return 0 === stack.length || indentedElements[stack[stack.length - 1]] } function startText() { inText || (indent(), inText = !0) } function indent() { if (inText = !1, !start && insideIndentedElement() && !isInPre()) { writer._append("\n"); for (var i = 0; indentationLevel > i; i++)writer._append(indentation) } } function isInPre() { return _.some(stack, function (tagName) { return "pre" === tagName }) } var indentationLevel = 0, indentation = " ", stack = [], start = !0, inText = !1, writer = simpleWriter(); return { asString: writer.asString, open: open, close: close, text: text, selfClosing: selfClosing } } function simpleWriter() { function open(tagName, attributes) { var attributeString = generateAttributeString(attributes); fragments.push("<" + tagName + attributeString + ">") } function close(tagName) { fragments.push("") } function selfClosing(tagName, attributes) { var attributeString = generateAttributeString(attributes); fragments.push("<" + tagName + attributeString + " />") } function generateAttributeString(attributes) { return _.map(attributes, function (value, key) { return " " + key + '="' + escapeHtmlAttribute(value) + '"' }).join("") } function text(value) { fragments.push(escapeHtmlText(value)) } function append(html) { fragments.push(html) } function asString() { return fragments.join("") } var fragments = []; return { asString: asString, open: open, close: close, text: text, selfClosing: selfClosing, _append: append } } function escapeHtmlText(value) { return value.replace(/&/g, "&").replace(//g, ">") } function escapeHtmlAttribute(value) { return value.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">") } var _ = require("underscore"); exports.writer = writer; var indentedElements = { div: !0, p: !0, ul: !0, li: !0 } }, { underscore: 103 }], 33: [function (require, module, exports) { function writer(options) { return options = options || {}, "markdown" === options.outputFormat ? markdownWriter.writer() : htmlWriter.writer(options) } var htmlWriter = require("./html-writer"), markdownWriter = require("./markdown-writer"); exports.writer = writer }, { "./html-writer": 32, "./markdown-writer": 34 }], 34: [function (require, module, exports) { function symmetricMarkdownElement(end) { return markdownElement(end, end) } function markdownElement(start, end) { return function () { return { start: start, end: end } } } function markdownLink(attributes) { var href = attributes.href || ""; return href ? { start: "[", end: "](" + href + ")", anchorPosition: "before" } : {} } function markdownImage(attributes) { var src = attributes.src || "", altText = attributes.alt || ""; return src || altText ? { start: "![" + altText + "](" + src + ")" } : {} } function markdownList(options) { return function (attributes, list) { return { start: list ? "\n" : "", end: list ? "" : "\n", list: { isOrdered: options.isOrdered, indent: list ? list.indent + 1 : 0, count: 0 } } } } function markdownListItem(attributes, list, listItem) { list = list || { indent: 0, isOrdered: !1, count: 0 }, list.count++, listItem.hasClosed = !1; var bullet = list.isOrdered ? list.count + "." : "-", start = repeatString(" ", list.indent) + bullet + " "; return { start: start, end: function () { return listItem.hasClosed ? void 0 : (listItem.hasClosed = !0, "\n") } } } function repeatString(value, count) { return new Array(count + 1).join(value) } function markdownWriter() { function open(tagName, attributes) { attributes = attributes || {}; var createElement = htmlToMarkdown[tagName] || function () { return {} }, element = createElement(attributes, list, listItem); elementStack.push({ end: element.end, list: list }), element.list && (list = element.list); var anchorBeforeStart = "before" === element.anchorPosition; anchorBeforeStart && writeAnchor(attributes), fragments.push(element.start || ""), anchorBeforeStart || writeAnchor(attributes) } function writeAnchor(attributes) { attributes.id && fragments.push('') } function close(tagName) { var element = elementStack.pop(); list = element.list; var end = _.isFunction(element.end) ? element.end() : element.end; fragments.push(end || "") } function selfClosing(tagName, attributes) { open(tagName, attributes), close(tagName) } function text(value) { fragments.push(escapeMarkdown(value)) } function asString() { return fragments.join("") } var fragments = [], elementStack = [], list = null, listItem = {}; return { asString: asString, open: open, close: close, text: text, selfClosing: selfClosing } } function escapeMarkdown(value) { return value.replace(/\\/g, "\\\\").replace(/([\`\*_\{\}\[\]\(\)\#\+\-\.\!])/g, "\\$1") } var _ = require("underscore"), htmlToMarkdown = { p: markdownElement("", "\n\n"), br: markdownElement("", " \n"), ul: markdownList({ isOrdered: !1 }), ol: markdownList({ isOrdered: !0 }), li: markdownListItem, strong: symmetricMarkdownElement("__"), em: symmetricMarkdownElement("*"), a: markdownLink, img: markdownImage }; !function () { for (var i = 1; 6 >= i; i++)htmlToMarkdown["h" + i] = markdownElement(repeatString("#", i) + " ", "\n\n") }(), exports.writer = markdownWriter }, { underscore: 103 }], 35: [function (require, module, exports) { var nodes = require("./nodes"); exports.Element = nodes.Element, exports.element = nodes.element, exports.text = nodes.text, exports.readString = require("./reader").readString, exports.writeString = require("./writer").writeString }, { "./nodes": 36, "./reader": 37, "./writer": 38 }], 36: [function (require, module, exports) { function Element(name, attributes, children) { this.type = "element", this.name = name, this.attributes = attributes || {}, this.children = children || [] } function toElementList(array) { return _.extend(array, elementListPrototype) } var _ = require("underscore"); exports.Element = Element, exports.element = function (name, attributes, children) { return new Element(name, attributes, children) }, exports.text = function (value) { return { type: "text", value: value } }; var emptyElement = { first: function () { return null }, firstOrEmpty: function () { return emptyElement }, attributes: {} }; Element.prototype.first = function (name) { return _.find(this.children, function (child) { return child.name === name }) }, Element.prototype.firstOrEmpty = function (name) { return this.first(name) || emptyElement }, Element.prototype.getElementsByTagName = function (name) { var elements = _.filter(this.children, function (child) { return child.name === name }); return toElementList(elements) }, Element.prototype.text = function () { if (0 === this.children.length) return ""; if (1 !== this.children.length || "text" !== this.children[0].type) throw new Error("Not implemented"); return this.children[0].value }; var elementListPrototype = { getElementsByTagName: function (name) { return toElementList(_.flatten(this.map(function (element) { return element.getElementsByTagName(name) }, !0))) } } }, { underscore: 103 }], 37: [function (require, module, exports) { function readString(xmlString, namespaceMap) { function convertNode(node) { switch (node.nodeType) { case Node.ELEMENT_NODE: return convertElement(node); case Node.TEXT_NODE: return nodes.text(node.nodeValue) } } function convertElement(element) { var convertedName = convertName(element), convertedChildren = []; _.forEach(element.childNodes, function (childNode) { var convertedNode = convertNode(childNode); convertedNode && convertedChildren.push(convertedNode) }); var convertedAttributes = {}; return _.forEach(element.attributes, function (attribute) { convertedAttributes[convertName(attribute)] = attribute.value }), new Element(convertedName, convertedAttributes, convertedChildren) } function convertName(node) { if (node.namespaceURI) { var prefix, mappedPrefix = namespaceMap[node.namespaceURI]; return prefix = mappedPrefix ? mappedPrefix + ":" : "{" + node.namespaceURI + "}", prefix + node.localName } return node.localName } namespaceMap = namespaceMap || {}; try { var document = xmldom.parseFromString(xmlString, "text/xml") } catch (error) { return promises.reject(error) } return "parsererror" === document.documentElement.tagName ? promises.resolve(new Error(document.documentElement.textContent)) : promises.resolve(convertNode(document.documentElement)) } var promises = require("../promises"), _ = require("underscore"), xmldom = require("./xmldom"), nodes = require("./nodes"), Element = nodes.Element; exports.readString = readString; var Node = xmldom.Node }, { "../promises": 23, "./nodes": 36, "./xmldom": 39, underscore: 103 }], 38: [function (require, module, exports) { function writeString(root, namespaces) { function writeNode(builder, node) { return nodeWriters[node.type](builder, node) } function writeElement(builder, element) { var elementBuilder = builder.element(mapElementName(element.name), element.attributes); element.children.forEach(function (child) { writeNode(elementBuilder, child) }) } function mapElementName(name) { var longFormMatch = /^\{(.*)\}(.*)$/.exec(name); if (longFormMatch) { var prefix = uriToPrefix[longFormMatch[1]]; return prefix + ("" === prefix ? "" : ":") + longFormMatch[2] } return name } function writeDocument(root) { var builder = xmlbuilder.create(mapElementName(root.name), { version: "1.0", encoding: "UTF-8", standalone: !0 }); return _.forEach(namespaces, function (uri, prefix) { var key = "xmlns" + ("" === prefix ? "" : ":" + prefix); builder.attribute(key, uri) }), root.children.forEach(function (child) { writeNode(builder, child) }), builder.end() } var uriToPrefix = _.invert(namespaces), nodeWriters = { element: writeElement, text: writeTextNode }; return writeDocument(root) } function writeTextNode(builder, node) { builder.text(node.value) } var _ = require("underscore"), xmlbuilder = require("xmlbuilder"); exports.writeString = writeString }, { underscore: 103, xmlbuilder: 128 }], 39: [function (require, module, exports) { function parseFromString(string) { var error = null, domParser = new xmldom.DOMParser({ errorHandler: function (level, message) { error = { level: level, message: message } } }), document = domParser.parseFromString(string); if (null === error) return document; throw new Error(error.level + ": " + error.message) } var xmldom = require("@xmldom/xmldom"), dom = require("@xmldom/xmldom/lib/dom"); exports.parseFromString = parseFromString, exports.Node = dom.Node }, { "@xmldom/xmldom": 45, "@xmldom/xmldom/lib/dom": 43 }], 40: [function (require, module, exports) { function openArrayBuffer(arrayBuffer) { return JSZip.loadAsync(arrayBuffer).then(function (zipFile) { function exists(name) { return null !== zipFile.file(name) } function read(name, encoding) { return zipFile.file(name).async("uint8array").then(function (array) { if ("base64" === encoding) return base64js.fromByteArray(array); if (encoding) { var decoder = new TextDecoder(encoding); return decoder.decode(array) } return array }) } function write(name, contents) { zipFile.file(name, contents) } function toArrayBuffer() { return zipFile.generateAsync({ type: "arraybuffer" }) } return { exists: exists, read: read, write: write, toArrayBuffer: toArrayBuffer } }) } function splitPath(path) { var lastIndex = path.lastIndexOf("/"); return -1 === lastIndex ? { dirname: "", basename: path } : { dirname: path.substring(0, lastIndex), basename: path.substring(lastIndex + 1) } } function joinPath() { var nonEmptyPaths = Array.prototype.filter.call(arguments, function (path) { return path }), relevantPaths = []; return nonEmptyPaths.forEach(function (path) { /^\//.test(path) ? relevantPaths = [path] : relevantPaths.push(path) }), relevantPaths.join("/") } var base64js = require("base64-js"), JSZip = require("jszip"); exports.openArrayBuffer = openArrayBuffer, exports.splitPath = splitPath, exports.joinPath = joinPath }, { "base64-js": 47, jszip: 88 }], 41: [function (require, module, exports) { "use strict"; function find(list, predicate, ac) { if (void 0 === ac && (ac = Array.prototype), list && "function" == typeof ac.find) return ac.find.call(list, predicate); for (var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) { var item = list[i]; if (predicate.call(void 0, item, i, list)) return item } } function freeze(object, oc) { return void 0 === oc && (oc = Object), oc && "function" == typeof oc.freeze ? oc.freeze(object) : object } function assign(target, source) { if (null === target || "object" != typeof target) throw new TypeError("target is not an object"); for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]); return target } var MIME_TYPE = freeze({ HTML: "text/html", isHTML: function (value) { return value === MIME_TYPE.HTML }, XML_APPLICATION: "application/xml", XML_TEXT: "text/xml", XML_XHTML_APPLICATION: "application/xhtml+xml", XML_SVG_IMAGE: "image/svg+xml" }), NAMESPACE = freeze({ HTML: "http://www.w3.org/1999/xhtml", isHTML: function (uri) { return uri === NAMESPACE.HTML }, SVG: "http://www.w3.org/2000/svg", XML: "http://www.w3.org/XML/1998/namespace", XMLNS: "http://www.w3.org/2000/xmlns/" }); exports.assign = assign, exports.find = find, exports.freeze = freeze, exports.MIME_TYPE = MIME_TYPE, exports.NAMESPACE = NAMESPACE }, {}], 42: [function (require, module, exports) { function normalizeLineEndings(input) { return input.replace(/\r[\n\u0085]/g, "\n").replace(/[\r\u0085\u2028]/g, "\n") } function DOMParser(options) { this.options = options || { locator: {} } } function buildErrorHandler(errorImpl, domBuilder, locator) { function build(key) { var fn = errorImpl[key]; !fn && isCallback && (fn = 2 == errorImpl.length ? function (msg) { errorImpl(key, msg) } : errorImpl), errorHandler[key] = fn && function (msg) { fn("[xmldom " + key + "] " + msg + _locator(locator)) } || function () { } } if (!errorImpl) { if (domBuilder instanceof DOMHandler) return domBuilder; errorImpl = domBuilder } var errorHandler = {}, isCallback = errorImpl instanceof Function; return locator = locator || {}, build("warning"), build("error"), build("fatalError"), errorHandler } function DOMHandler() { this.cdata = !1 } function position(locator, node) { node.lineNumber = locator.lineNumber, node.columnNumber = locator.columnNumber } function _locator(l) { return l ? "\n@" + (l.systemId || "") + "#[line:" + l.lineNumber + ",col:" + l.columnNumber + "]" : void 0 } function _toString(chars, start, length) { return "string" == typeof chars ? chars.substr(start, length) : chars.length >= start + length || start ? new java.lang.String(chars, start, length) + "" : chars } function appendElement(hander, node) { hander.currentElement ? hander.currentElement.appendChild(node) : hander.doc.appendChild(node) } var conventions = require("./conventions"), dom = require("./dom"), entities = require("./entities"), sax = require("./sax"), DOMImplementation = dom.DOMImplementation, NAMESPACE = conventions.NAMESPACE, ParseError = sax.ParseError, XMLReader = sax.XMLReader; DOMParser.prototype.parseFromString = function (source, mimeType) { var options = this.options, sax = new XMLReader, domBuilder = options.domBuilder || new DOMHandler, errorHandler = options.errorHandler, locator = options.locator, defaultNSMap = options.xmlns || {}, isHTML = /\/x?html?$/.test(mimeType), entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES; locator && domBuilder.setDocumentLocator(locator), sax.errorHandler = buildErrorHandler(errorHandler, domBuilder, locator), sax.domBuilder = options.domBuilder || domBuilder, isHTML && (defaultNSMap[""] = NAMESPACE.HTML), defaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML; var normalize = options.normalizeLineEndings || normalizeLineEndings; return source && "string" == typeof source ? sax.parse(normalize(source), defaultNSMap, entityMap) : sax.errorHandler.error("invalid doc source"), domBuilder.doc }, DOMHandler.prototype = { startDocument: function () { this.doc = (new DOMImplementation).createDocument(null, null, null), this.locator && (this.doc.documentURI = this.locator.systemId) }, startElement: function (namespaceURI, localName, qName, attrs) { var doc = this.doc, el = doc.createElementNS(namespaceURI, qName || localName), len = attrs.length; appendElement(this, el), this.currentElement = el, this.locator && position(this.locator, el); for (var i = 0; len > i; i++) { var namespaceURI = attrs.getURI(i), value = attrs.getValue(i), qName = attrs.getQName(i), attr = doc.createAttributeNS(namespaceURI, qName); this.locator && position(attrs.getLocator(i), attr), attr.value = attr.nodeValue = value, el.setAttributeNode(attr) } }, endElement: function (namespaceURI, localName, qName) { var current = this.currentElement; current.tagName; this.currentElement = current.parentNode }, startPrefixMapping: function (prefix, uri) { }, endPrefixMapping: function (prefix) { }, processingInstruction: function (target, data) { var ins = this.doc.createProcessingInstruction(target, data); this.locator && position(this.locator, ins), appendElement(this, ins) }, ignorableWhitespace: function (ch, start, length) { }, characters: function (chars, start, length) { if (chars = _toString.apply(this, arguments)) { if (this.cdata) var charNode = this.doc.createCDATASection(chars); else var charNode = this.doc.createTextNode(chars); this.currentElement ? this.currentElement.appendChild(charNode) : /^\s*$/.test(chars) && this.doc.appendChild(charNode), this.locator && position(this.locator, charNode) } }, skippedEntity: function (name) { }, endDocument: function () { this.doc.normalize() }, setDocumentLocator: function (locator) { (this.locator = locator) && (locator.lineNumber = 0) }, comment: function (chars, start, length) { chars = _toString.apply(this, arguments); var comm = this.doc.createComment(chars); this.locator && position(this.locator, comm), appendElement(this, comm) }, startCDATA: function () { this.cdata = !0 }, endCDATA: function () { this.cdata = !1 }, startDTD: function (name, publicId, systemId) { var impl = this.doc.implementation; if (impl && impl.createDocumentType) { var dt = impl.createDocumentType(name, publicId, systemId); this.locator && position(this.locator, dt), appendElement(this, dt), this.doc.doctype = dt } }, warning: function (error) { console.warn("[xmldom warning] " + error, _locator(this.locator)) }, error: function (error) { console.error("[xmldom error] " + error, _locator(this.locator)) }, fatalError: function (error) { throw new ParseError(error, this.locator) } }, "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, function (key) { DOMHandler.prototype[key] = function () { return null } }), exports.__DOMHandler = DOMHandler, exports.normalizeLineEndings = normalizeLineEndings, exports.DOMParser = DOMParser }, { "./conventions": 41, "./dom": 43, "./entities": 44, "./sax": 46 }], 43: [function (require, module, exports) { - function notEmptyString(input) { return "" !== input } function splitOnASCIIWhitespace(input) { return input ? input.split(/[\t\n\f\r ]+/).filter(notEmptyString) : [] } function orderedSetReducer(current, element) { return current.hasOwnProperty(element) || (current[element] = !0), current } function toOrderedSet(input) { if (!input) return []; var list = splitOnASCIIWhitespace(input); return Object.keys(list.reduce(orderedSetReducer, {})) } function arrayIncludes(list) { return function (element) { return list && -1 !== list.indexOf(element) } } function copy(src, dest) { for (var p in src) Object.prototype.hasOwnProperty.call(src, p) && (dest[p] = src[p]) } function _extends(Class, Super) { function t() { } var pt = Class.prototype; pt instanceof Super || (t.prototype = Super.prototype, t = new t, copy(pt, t), Class.prototype = pt = t), pt.constructor != Class && ("function" != typeof Class && console.error("unknown Class:" + Class), pt.constructor = Class) } function DOMException(code, message) { if (message instanceof Error) var error = message; else error = this, Error.call(this, ExceptionMessage[code]), this.message = ExceptionMessage[code], Error.captureStackTrace && Error.captureStackTrace(this, DOMException); return error.code = code, message && (this.message = this.message + ": " + message), error } function NodeList() { } function LiveNodeList(node, refresh) { this._node = node, this._refresh = refresh, _updateLiveList(this) } function _updateLiveList(list) { var inc = list._node._inc || list._node.ownerDocument._inc; if (list._inc != inc) { var ls = list._refresh(list._node); __set__(list, "length", ls.length), copy(ls, list), list._inc = inc } } function NamedNodeMap() { } function _findNodeIndex(list, node) { for (var i = list.length; i--;)if (list[i] === node) return i } function _addNamedNode(el, list, newAttr, oldAttr) { if (oldAttr ? list[_findNodeIndex(list, oldAttr)] = newAttr : list[list.length++] = newAttr, el) { newAttr.ownerElement = el; var doc = el.ownerDocument; doc && (oldAttr && _onRemoveAttribute(doc, el, oldAttr), _onAddAttribute(doc, el, newAttr)) } } function _removeNamedNode(el, list, attr) { var i = _findNodeIndex(list, attr); if (!(i >= 0)) throw new DOMException(NOT_FOUND_ERR, new Error(el.tagName + "@" + attr)); for (var lastIndex = list.length - 1; lastIndex > i;)list[i] = list[++i]; if (list.length = lastIndex, el) { var doc = el.ownerDocument; doc && (_onRemoveAttribute(doc, el, attr), attr.ownerElement = null) } } function DOMImplementation() { } - function Node() { } function _xmlEncoder(c) { return "<" == c && "<" || ">" == c && ">" || "&" == c && "&" || '"' == c && """ || "&#" + c.charCodeAt() + ";" } function _visitNode(node, callback) { if (callback(node)) return !0; if (node = node.firstChild) do if (_visitNode(node, callback)) return !0; while (node = node.nextSibling) } function Document() { this.ownerDocument = this } function _onAddAttribute(doc, el, newAttr) { doc && doc._inc++; var ns = newAttr.namespaceURI; ns === NAMESPACE.XMLNS && (el._nsMap[newAttr.prefix ? newAttr.localName : ""] = newAttr.value) } function _onRemoveAttribute(doc, el, newAttr, remove) { doc && doc._inc++; var ns = newAttr.namespaceURI; ns === NAMESPACE.XMLNS && delete el._nsMap[newAttr.prefix ? newAttr.localName : ""] } function _onUpdateChild(doc, el, newChild) { if (doc && doc._inc) { doc._inc++; var cs = el.childNodes; if (newChild) cs[cs.length++] = newChild; else { for (var child = el.firstChild, i = 0; child;)cs[i++] = child, child = child.nextSibling; cs.length = i, delete cs[cs.length] } } } function _removeChild(parentNode, child) { var previous = child.previousSibling, next = child.nextSibling; return previous ? previous.nextSibling = next : parentNode.firstChild = next, next ? next.previousSibling = previous : parentNode.lastChild = previous, child.parentNode = null, child.previousSibling = null, child.nextSibling = null, _onUpdateChild(parentNode.ownerDocument, parentNode), child } function hasValidParentNodeType(node) { return node && (node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE) } function hasInsertableNodeType(node) { return node && (isElementNode(node) || isTextNode(node) || isDocTypeNode(node) || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.COMMENT_NODE || node.nodeType === Node.PROCESSING_INSTRUCTION_NODE) } function isDocTypeNode(node) { return node && node.nodeType === Node.DOCUMENT_TYPE_NODE } function isElementNode(node) { return node && node.nodeType === Node.ELEMENT_NODE } function isTextNode(node) { return node && node.nodeType === Node.TEXT_NODE } function isElementInsertionPossible(doc, child) { var parentChildNodes = doc.childNodes || []; if (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) return !1; var docTypeNode = find(parentChildNodes, isDocTypeNode); return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child)) } function isElementReplacementPossible(doc, child) { function hasElementChildThatIsNotChild(node) { return isElementNode(node) && node !== child } var parentChildNodes = doc.childNodes || []; if (find(parentChildNodes, hasElementChildThatIsNotChild)) return !1; var docTypeNode = find(parentChildNodes, isDocTypeNode); return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child)) } function assertPreInsertionValidity1to5(parent, node, child) { if (!hasValidParentNodeType(parent)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Unexpected parent node type " + parent.nodeType); if (child && child.parentNode !== parent) throw new DOMException(NOT_FOUND_ERR, "child not in parent"); if (!hasInsertableNodeType(node) || isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE) throw new DOMException(HIERARCHY_REQUEST_ERR, "Unexpected node type " + node.nodeType + " for parent node type " + parent.nodeType) } function assertPreInsertionValidityInDocument(parent, node, child) { var parentChildNodes = parent.childNodes || [], nodeChildNodes = node.childNodes || []; if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { var nodeChildElements = nodeChildNodes.filter(isElementNode); if (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) throw new DOMException(HIERARCHY_REQUEST_ERR, "More than one element or text in fragment"); if (1 === nodeChildElements.length && !isElementInsertionPossible(parent, child)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Element in fragment can not be inserted before doctype") } if (isElementNode(node) && !isElementInsertionPossible(parent, child)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Only one element can be added and only after doctype"); if (isDocTypeNode(node)) { if (find(parentChildNodes, isDocTypeNode)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Only one doctype is allowed"); var parentElementChild = find(parentChildNodes, isElementNode); if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Doctype can only be inserted before an element"); if (!child && parentElementChild) throw new DOMException(HIERARCHY_REQUEST_ERR, "Doctype can not be appended since element is present") } } function assertPreReplacementValidityInDocument(parent, node, child) { function hasDoctypeChildThatIsNotChild(node) { return isDocTypeNode(node) && node !== child } var parentChildNodes = parent.childNodes || [], nodeChildNodes = node.childNodes || []; if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { var nodeChildElements = nodeChildNodes.filter(isElementNode); if (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) throw new DOMException(HIERARCHY_REQUEST_ERR, "More than one element or text in fragment"); if (1 === nodeChildElements.length && !isElementReplacementPossible(parent, child)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Element in fragment can not be inserted before doctype") } if (isElementNode(node) && !isElementReplacementPossible(parent, child)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Only one element can be added and only after doctype"); if (isDocTypeNode(node)) { if (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Only one doctype is allowed"); var parentElementChild = find(parentChildNodes, isElementNode); if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new DOMException(HIERARCHY_REQUEST_ERR, "Doctype can only be inserted before an element") } } function _insertBefore(parent, node, child, _inDocumentAssertion) { assertPreInsertionValidity1to5(parent, node, child), parent.nodeType === Node.DOCUMENT_NODE && (_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child); var cp = node.parentNode; if (cp && cp.removeChild(node), node.nodeType === DOCUMENT_FRAGMENT_NODE) { var newFirst = node.firstChild; if (null == newFirst) return node; var newLast = node.lastChild } else newFirst = newLast = node; var pre = child ? child.previousSibling : parent.lastChild; newFirst.previousSibling = pre, newLast.nextSibling = child, pre ? pre.nextSibling = newFirst : parent.firstChild = newFirst, null == child ? parent.lastChild = newLast : child.previousSibling = newLast; do newFirst.parentNode = parent; while (newFirst !== newLast && (newFirst = newFirst.nextSibling)); return _onUpdateChild(parent.ownerDocument || parent, parent), node.nodeType == DOCUMENT_FRAGMENT_NODE && (node.firstChild = node.lastChild = null), node } function _appendSingleChild(parentNode, newChild) { return newChild.parentNode && newChild.parentNode.removeChild(newChild), newChild.parentNode = parentNode, newChild.previousSibling = parentNode.lastChild, newChild.nextSibling = null, newChild.previousSibling ? newChild.previousSibling.nextSibling = newChild : parentNode.firstChild = newChild, parentNode.lastChild = newChild, _onUpdateChild(parentNode.ownerDocument, parentNode, newChild), newChild } function Element() { this._nsMap = {} } function Attr() { } function CharacterData() { } function Text() { } function Comment() { } function CDATASection() { } function DocumentType() { } function Notation() { } function Entity() { } function EntityReference() { } function DocumentFragment() { } function ProcessingInstruction() { } function XMLSerializer() { } function nodeSerializeToString(isHtml, nodeFilter) { var buf = [], refNode = 9 == this.nodeType && this.documentElement || this, prefix = refNode.prefix, uri = refNode.namespaceURI; if (uri && null == prefix) { var prefix = refNode.lookupPrefix(uri); if (null == prefix) var visibleNamespaces = [{ namespace: uri, prefix: null }] } return serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces), buf.join("") } function needNamespaceDefine(node, isHTML, visibleNamespaces) { var prefix = node.prefix || "", uri = node.namespaceURI; if (!uri) return !1; if ("xml" === prefix && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) return !1; for (var i = visibleNamespaces.length; i--;) { var ns = visibleNamespaces[i]; if (ns.prefix === prefix) return ns.namespace !== uri } return !0 } function addSerializedAttribute(buf, qualifiedName, value) { buf.push(" ", qualifiedName, '="', value.replace(/[<>&"\t\n\r]/g, _xmlEncoder), '"') } function serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) { if (visibleNamespaces || (visibleNamespaces = []), nodeFilter) { if (node = nodeFilter(node), !node) return; if ("string" == typeof node) return void buf.push(node) } switch (node.nodeType) { case ELEMENT_NODE: var attrs = node.attributes, len = attrs.length, child = node.firstChild, nodeName = node.tagName; isHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML; var prefixedNodeName = nodeName; if (!isHTML && !node.prefix && node.namespaceURI) { for (var defaultNS, ai = 0; ai < attrs.length; ai++)if ("xmlns" === attrs.item(ai).name) { defaultNS = attrs.item(ai).value; break } if (!defaultNS) for (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) { var namespace = visibleNamespaces[nsi]; if ("" === namespace.prefix && namespace.namespace === node.namespaceURI) { defaultNS = namespace.namespace; break } } if (defaultNS !== node.namespaceURI) for (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) { var namespace = visibleNamespaces[nsi]; if (namespace.namespace === node.namespaceURI) { namespace.prefix && (prefixedNodeName = namespace.prefix + ":" + nodeName); break } } } buf.push("<", prefixedNodeName); for (var i = 0; len > i; i++) { var attr = attrs.item(i); "xmlns" == attr.prefix ? visibleNamespaces.push({ prefix: attr.localName, namespace: attr.value }) : "xmlns" == attr.nodeName && visibleNamespaces.push({ prefix: "", namespace: attr.value }) } for (var i = 0; len > i; i++) { var attr = attrs.item(i); if (needNamespaceDefine(attr, isHTML, visibleNamespaces)) { var prefix = attr.prefix || "", uri = attr.namespaceURI; addSerializedAttribute(buf, prefix ? "xmlns:" + prefix : "xmlns", uri), visibleNamespaces.push({ prefix: prefix, namespace: uri }) } serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces) } if (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) { var prefix = node.prefix || "", uri = node.namespaceURI; addSerializedAttribute(buf, prefix ? "xmlns:" + prefix : "xmlns", uri), visibleNamespaces.push({ prefix: prefix, namespace: uri }) } if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) { if (buf.push(">"), isHTML && /^script$/i.test(nodeName)) for (; child;)child.data ? buf.push(child.data) : serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice()), child = child.nextSibling; else for (; child;)serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice()), child = child.nextSibling; buf.push("") } else buf.push("/>"); return; case DOCUMENT_NODE: case DOCUMENT_FRAGMENT_NODE: for (var child = node.firstChild; child;)serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice()), child = child.nextSibling; return; case ATTRIBUTE_NODE: return addSerializedAttribute(buf, node.name, node.value); case TEXT_NODE: return buf.push(node.data.replace(/[<&>]/g, _xmlEncoder)); case CDATA_SECTION_NODE: return buf.push(""); case COMMENT_NODE: return buf.push(""); case DOCUMENT_TYPE_NODE: var pubid = node.publicId, sysid = node.systemId; if (buf.push(""); else if (sysid && "." != sysid) buf.push(" SYSTEM ", sysid, ">"); else { var sub = node.internalSubset; sub && buf.push(" [", sub, "]"), buf.push(">") } return; case PROCESSING_INSTRUCTION_NODE: return buf.push(""); case ENTITY_REFERENCE_NODE: return buf.push("&", node.nodeName, ";"); default: buf.push("??", node.nodeName) } } function importNode(doc, node, deep) { var node2; switch (node.nodeType) { case ELEMENT_NODE: node2 = node.cloneNode(!1), node2.ownerDocument = doc; case DOCUMENT_FRAGMENT_NODE: break; case ATTRIBUTE_NODE: deep = !0 }if (node2 || (node2 = node.cloneNode(!1)), node2.ownerDocument = doc, node2.parentNode = null, deep) for (var child = node.firstChild; child;)node2.appendChild(importNode(doc, child, deep)), child = child.nextSibling; return node2 } function cloneNode(doc, node, deep) { var node2 = new node.constructor; for (var n in node) if (Object.prototype.hasOwnProperty.call(node, n)) { var v = node[n]; "object" != typeof v && v != node2[n] && (node2[n] = v) } switch (node.childNodes && (node2.childNodes = new NodeList), node2.ownerDocument = doc, node2.nodeType) { case ELEMENT_NODE: var attrs = node.attributes, attrs2 = node2.attributes = new NamedNodeMap, len = attrs.length; attrs2._ownerElement = node2; for (var i = 0; len > i; i++)node2.setAttributeNode(cloneNode(doc, attrs.item(i), !0)); break; case ATTRIBUTE_NODE: deep = !0 }if (deep) for (var child = node.firstChild; child;)node2.appendChild(cloneNode(doc, child, deep)), child = child.nextSibling; return node2 } function __set__(object, key, value) { object[key] = value } function getTextContent(node) { switch (node.nodeType) { case ELEMENT_NODE: case DOCUMENT_FRAGMENT_NODE: var buf = []; for (node = node.firstChild; node;)7 !== node.nodeType && 8 !== node.nodeType && buf.push(getTextContent(node)), node = node.nextSibling; return buf.join(""); default: return node.nodeValue } } var conventions = require("./conventions"), find = conventions.find, NAMESPACE = conventions.NAMESPACE, NodeType = {}, ELEMENT_NODE = NodeType.ELEMENT_NODE = 1, ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2, TEXT_NODE = NodeType.TEXT_NODE = 3, CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4, ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = NodeType.ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = NodeType.COMMENT_NODE = 8, DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = NodeType.NOTATION_NODE = 12, ExceptionCode = {}, ExceptionMessage = {}, HIERARCHY_REQUEST_ERR = (ExceptionCode.INDEX_SIZE_ERR = (ExceptionMessage[1] = "Index size error", 1), ExceptionCode.DOMSTRING_SIZE_ERR = (ExceptionMessage[2] = "DOMString size error", 2), ExceptionCode.HIERARCHY_REQUEST_ERR = (ExceptionMessage[3] = "Hierarchy request error", 3)), NOT_FOUND_ERR = (ExceptionCode.WRONG_DOCUMENT_ERR = (ExceptionMessage[4] = "Wrong document", 4), ExceptionCode.INVALID_CHARACTER_ERR = (ExceptionMessage[5] = "Invalid character", 5), ExceptionCode.NO_DATA_ALLOWED_ERR = (ExceptionMessage[6] = "No data allowed", 6), ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = (ExceptionMessage[7] = "No modification allowed", 7), ExceptionCode.NOT_FOUND_ERR = (ExceptionMessage[8] = "Not found", 8)), INUSE_ATTRIBUTE_ERR = (ExceptionCode.NOT_SUPPORTED_ERR = (ExceptionMessage[9] = "Not supported", 9), ExceptionCode.INUSE_ATTRIBUTE_ERR = (ExceptionMessage[10] = "Attribute in use", 10)); ExceptionCode.INVALID_STATE_ERR = (ExceptionMessage[11] = "Invalid state", 11), ExceptionCode.SYNTAX_ERR = (ExceptionMessage[12] = "Syntax error", 12), ExceptionCode.INVALID_MODIFICATION_ERR = (ExceptionMessage[13] = "Invalid modification", 13), ExceptionCode.NAMESPACE_ERR = (ExceptionMessage[14] = "Invalid namespace", 14), ExceptionCode.INVALID_ACCESS_ERR = (ExceptionMessage[15] = "Invalid access", 15); DOMException.prototype = Error.prototype, copy(ExceptionCode, DOMException), NodeList.prototype = { length: 0, item: function (index) { return this[index] || null }, toString: function (isHTML, nodeFilter) { for (var buf = [], i = 0; i < this.length; i++)serializeToString(this[i], buf, isHTML, nodeFilter); return buf.join("") }, filter: function (predicate) { return Array.prototype.filter.call(this, predicate) }, indexOf: function (item) { return Array.prototype.indexOf.call(this, item) } }, LiveNodeList.prototype.item = function (i) { return _updateLiveList(this), this[i] }, _extends(LiveNodeList, NodeList), NamedNodeMap.prototype = { length: 0, item: NodeList.prototype.item, getNamedItem: function (key) { for (var i = this.length; i--;) { var attr = this[i]; if (attr.nodeName == key) return attr } }, setNamedItem: function (attr) { var el = attr.ownerElement; if (el && el != this._ownerElement) throw new DOMException(INUSE_ATTRIBUTE_ERR); var oldAttr = this.getNamedItem(attr.nodeName); return _addNamedNode(this._ownerElement, this, attr, oldAttr), oldAttr }, setNamedItemNS: function (attr) { var oldAttr, el = attr.ownerElement; if (el && el != this._ownerElement) throw new DOMException(INUSE_ATTRIBUTE_ERR); return oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName), _addNamedNode(this._ownerElement, this, attr, oldAttr), oldAttr }, removeNamedItem: function (key) { var attr = this.getNamedItem(key); return _removeNamedNode(this._ownerElement, this, attr), attr }, removeNamedItemNS: function (namespaceURI, localName) { var attr = this.getNamedItemNS(namespaceURI, localName); return _removeNamedNode(this._ownerElement, this, attr), attr }, getNamedItemNS: function (namespaceURI, localName) { for (var i = this.length; i--;) { var node = this[i]; if (node.localName == localName && node.namespaceURI == namespaceURI) return node } return null } }, DOMImplementation.prototype = { hasFeature: function (feature, version) { return !0 }, createDocument: function (namespaceURI, qualifiedName, doctype) { var doc = new Document; if (doc.implementation = this, doc.childNodes = new NodeList, doc.doctype = doctype || null, doctype && doc.appendChild(doctype), qualifiedName) { var root = doc.createElementNS(namespaceURI, qualifiedName); doc.appendChild(root) } return doc }, createDocumentType: function (qualifiedName, publicId, systemId) { var node = new DocumentType; return node.name = qualifiedName, node.nodeName = qualifiedName, node.publicId = publicId || "", node.systemId = systemId || "", node } }, Node.prototype = { firstChild: null, lastChild: null, previousSibling: null, nextSibling: null, attributes: null, parentNode: null, childNodes: null, ownerDocument: null, nodeValue: null, namespaceURI: null, prefix: null, localName: null, insertBefore: function (newChild, refChild) { return _insertBefore(this, newChild, refChild) }, replaceChild: function (newChild, oldChild) { _insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument), oldChild && this.removeChild(oldChild) }, removeChild: function (oldChild) { return _removeChild(this, oldChild) }, appendChild: function (newChild) { return this.insertBefore(newChild, null) }, hasChildNodes: function () { return null != this.firstChild }, cloneNode: function (deep) { return cloneNode(this.ownerDocument || this, this, deep) }, normalize: function () { for (var child = this.firstChild; child;) { var next = child.nextSibling; next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE ? (this.removeChild(next), child.appendData(next.data)) : (child.normalize(), child = next) } }, isSupported: function (feature, version) { return this.ownerDocument.implementation.hasFeature(feature, version) }, hasAttributes: function () { return this.attributes.length > 0 }, lookupPrefix: function (namespaceURI) { for (var el = this; el;) { var map = el._nsMap; if (map) for (var n in map) if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n; el = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode } return null }, lookupNamespaceURI: function (prefix) { for (var el = this; el;) { var map = el._nsMap; if (map && Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix]; el = el.nodeType == ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode } return null }, isDefaultNamespace: function (namespaceURI) { var prefix = this.lookupPrefix(namespaceURI); return null == prefix } }, copy(NodeType, Node), copy(NodeType, Node.prototype), Document.prototype = { nodeName: "#document", nodeType: DOCUMENT_NODE, doctype: null, documentElement: null, _inc: 1, insertBefore: function (newChild, refChild) { if (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) { for (var child = newChild.firstChild; child;) { var next = child.nextSibling; this.insertBefore(child, refChild), child = next } return newChild } return _insertBefore(this, newChild, refChild), newChild.ownerDocument = this, null === this.documentElement && newChild.nodeType === ELEMENT_NODE && (this.documentElement = newChild), newChild }, removeChild: function (oldChild) { return this.documentElement == oldChild && (this.documentElement = null), _removeChild(this, oldChild) }, replaceChild: function (newChild, oldChild) { _insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument), newChild.ownerDocument = this, oldChild && this.removeChild(oldChild), isElementNode(newChild) && (this.documentElement = newChild) }, importNode: function (importedNode, deep) { return importNode(this, importedNode, deep) }, getElementById: function (id) { var rtv = null; return _visitNode(this.documentElement, function (node) { return node.nodeType == ELEMENT_NODE && node.getAttribute("id") == id ? (rtv = node, !0) : void 0 }), rtv }, getElementsByClassName: function (classNames) { var classNamesSet = toOrderedSet(classNames); return new LiveNodeList(this, function (base) { var ls = []; return classNamesSet.length > 0 && _visitNode(base.documentElement, function (node) { if (node !== base && node.nodeType === ELEMENT_NODE) { var nodeClassNames = node.getAttribute("class"); if (nodeClassNames) { var matches = classNames === nodeClassNames; if (!matches) { var nodeClassNamesSet = toOrderedSet(nodeClassNames); matches = classNamesSet.every(arrayIncludes(nodeClassNamesSet)) } matches && ls.push(node) } } }), ls }) }, createElement: function (tagName) { var node = new Element; node.ownerDocument = this, node.nodeName = tagName, node.tagName = tagName, node.localName = tagName, node.childNodes = new NodeList; var attrs = node.attributes = new NamedNodeMap; return attrs._ownerElement = node, node }, createDocumentFragment: function () { var node = new DocumentFragment; return node.ownerDocument = this, node.childNodes = new NodeList, node }, createTextNode: function (data) { var node = new Text; return node.ownerDocument = this, node.appendData(data), node }, createComment: function (data) { var node = new Comment; return node.ownerDocument = this, node.appendData(data), node }, createCDATASection: function (data) { var node = new CDATASection; return node.ownerDocument = this, node.appendData(data), node }, createProcessingInstruction: function (target, data) { var node = new ProcessingInstruction; return node.ownerDocument = this, node.tagName = node.target = target, node.nodeValue = node.data = data, node }, createAttribute: function (name) { var node = new Attr; return node.ownerDocument = this, node.name = name, node.nodeName = name, node.localName = name, node.specified = !0, node }, createEntityReference: function (name) { var node = new EntityReference; return node.ownerDocument = this, node.nodeName = name, node }, createElementNS: function (namespaceURI, qualifiedName) { var node = new Element, pl = qualifiedName.split(":"), attrs = node.attributes = new NamedNodeMap; return node.childNodes = new NodeList, node.ownerDocument = this, node.nodeName = qualifiedName, node.tagName = qualifiedName, node.namespaceURI = namespaceURI, 2 == pl.length ? (node.prefix = pl[0], node.localName = pl[1]) : node.localName = qualifiedName, attrs._ownerElement = node, node }, createAttributeNS: function (namespaceURI, qualifiedName) { var node = new Attr, pl = qualifiedName.split(":"); return node.ownerDocument = this, node.nodeName = qualifiedName, node.name = qualifiedName, node.namespaceURI = namespaceURI, node.specified = !0, 2 == pl.length ? (node.prefix = pl[0], node.localName = pl[1]) : node.localName = qualifiedName, node } }, _extends(Document, Node), Element.prototype = { nodeType: ELEMENT_NODE, hasAttribute: function (name) { return null != this.getAttributeNode(name) }, getAttribute: function (name) { var attr = this.getAttributeNode(name); return attr && attr.value || "" }, getAttributeNode: function (name) { return this.attributes.getNamedItem(name) }, setAttribute: function (name, value) { var attr = this.ownerDocument.createAttribute(name); attr.value = attr.nodeValue = "" + value, this.setAttributeNode(attr) }, removeAttribute: function (name) { var attr = this.getAttributeNode(name); attr && this.removeAttributeNode(attr) }, appendChild: function (newChild) { return newChild.nodeType === DOCUMENT_FRAGMENT_NODE ? this.insertBefore(newChild, null) : _appendSingleChild(this, newChild) }, setAttributeNode: function (newAttr) { return this.attributes.setNamedItem(newAttr) }, setAttributeNodeNS: function (newAttr) { return this.attributes.setNamedItemNS(newAttr) }, removeAttributeNode: function (oldAttr) { return this.attributes.removeNamedItem(oldAttr.nodeName) }, removeAttributeNS: function (namespaceURI, localName) { var old = this.getAttributeNodeNS(namespaceURI, localName); old && this.removeAttributeNode(old) }, hasAttributeNS: function (namespaceURI, localName) { return null != this.getAttributeNodeNS(namespaceURI, localName) }, getAttributeNS: function (namespaceURI, localName) { var attr = this.getAttributeNodeNS(namespaceURI, localName); return attr && attr.value || "" }, setAttributeNS: function (namespaceURI, qualifiedName, value) { var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName); attr.value = attr.nodeValue = "" + value, this.setAttributeNode(attr) }, getAttributeNodeNS: function (namespaceURI, localName) { return this.attributes.getNamedItemNS(namespaceURI, localName) }, getElementsByTagName: function (tagName) { return new LiveNodeList(this, function (base) { var ls = []; return _visitNode(base, function (node) { node === base || node.nodeType != ELEMENT_NODE || "*" !== tagName && node.tagName != tagName || ls.push(node) }), ls }) }, getElementsByTagNameNS: function (namespaceURI, localName) { return new LiveNodeList(this, function (base) { var ls = []; return _visitNode(base, function (node) { node === base || node.nodeType !== ELEMENT_NODE || "*" !== namespaceURI && node.namespaceURI !== namespaceURI || "*" !== localName && node.localName != localName || ls.push(node) }), ls }) } }, Document.prototype.getElementsByTagName = Element.prototype.getElementsByTagName, Document.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS, _extends(Element, Node), Attr.prototype.nodeType = ATTRIBUTE_NODE, _extends(Attr, Node), CharacterData.prototype = { data: "", substringData: function (offset, count) { return this.data.substring(offset, offset + count) }, appendData: function (text) { text = this.data + text, this.nodeValue = this.data = text, this.length = text.length }, insertData: function (offset, text) { this.replaceData(offset, 0, text) }, appendChild: function (newChild) { throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR]) }, deleteData: function (offset, count) { this.replaceData(offset, count, "") }, replaceData: function (offset, count, text) { var start = this.data.substring(0, offset), end = this.data.substring(offset + count); text = start + text + end, this.nodeValue = this.data = text, this.length = text.length } }, _extends(CharacterData, Node), Text.prototype = { nodeName: "#text", nodeType: TEXT_NODE, splitText: function (offset) { var text = this.data, newText = text.substring(offset); text = text.substring(0, offset), this.data = this.nodeValue = text, this.length = text.length; var newNode = this.ownerDocument.createTextNode(newText); return this.parentNode && this.parentNode.insertBefore(newNode, this.nextSibling), newNode } }, _extends(Text, CharacterData), Comment.prototype = { nodeName: "#comment", nodeType: COMMENT_NODE }, _extends(Comment, CharacterData), CDATASection.prototype = { nodeName: "#cdata-section", nodeType: CDATA_SECTION_NODE }, _extends(CDATASection, CharacterData), DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE, _extends(DocumentType, Node), Notation.prototype.nodeType = NOTATION_NODE, _extends(Notation, Node), Entity.prototype.nodeType = ENTITY_NODE, _extends(Entity, Node), EntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE, _extends(EntityReference, Node), DocumentFragment.prototype.nodeName = "#document-fragment", DocumentFragment.prototype.nodeType = DOCUMENT_FRAGMENT_NODE, _extends(DocumentFragment, Node), ProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE, _extends(ProcessingInstruction, Node), XMLSerializer.prototype.serializeToString = function (node, isHtml, nodeFilter) { return nodeSerializeToString.call(node, isHtml, nodeFilter) }, Node.prototype.toString = nodeSerializeToString; try { Object.defineProperty && (Object.defineProperty(LiveNodeList.prototype, "length", { get: function () { return _updateLiveList(this), this.$$length } }), Object.defineProperty(Node.prototype, "textContent", { get: function () { return getTextContent(this) }, set: function (data) { switch (this.nodeType) { case ELEMENT_NODE: case DOCUMENT_FRAGMENT_NODE: for (; this.firstChild;)this.removeChild(this.firstChild); (data || String(data)) && this.appendChild(this.ownerDocument.createTextNode(data)); break; default: this.data = data, this.value = data, this.nodeValue = data } } }), __set__ = function (object, key, value) { object["$$" + key] = value }) } catch (e) { } exports.DocumentType = DocumentType, exports.DOMException = DOMException, exports.DOMImplementation = DOMImplementation, exports.Element = Element, exports.Node = Node, exports.NodeList = NodeList, exports.XMLSerializer = XMLSerializer - }, { "./conventions": 41 }], 44: [function (require, module, exports) { var freeze = require("./conventions").freeze; exports.XML_ENTITIES = freeze({ amp: "&", apos: "'", gt: ">", lt: "<", quot: '"' }), exports.HTML_ENTITIES = freeze({ lt: "<", gt: ">", amp: "&", quot: '"', apos: "'", Agrave: "À", Aacute: "Á", Acirc: "Â", Atilde: "Ã", Auml: "Ä", Aring: "Å", AElig: "Æ", Ccedil: "Ç", Egrave: "È", Eacute: "É", Ecirc: "Ê", Euml: "Ë", Igrave: "Ì", Iacute: "Í", Icirc: "Î", Iuml: "Ï", ETH: "Ð", Ntilde: "Ñ", Ograve: "Ò", Oacute: "Ó", Ocirc: "Ô", Otilde: "Õ", Ouml: "Ö", Oslash: "Ø", Ugrave: "Ù", Uacute: "Ú", Ucirc: "Û", Uuml: "Ü", Yacute: "Ý", THORN: "Þ", szlig: "ß", agrave: "à", aacute: "á", acirc: "â", atilde: "ã", auml: "ä", aring: "å", aelig: "æ", ccedil: "ç", egrave: "è", eacute: "é", ecirc: "ê", euml: "ë", igrave: "ì", iacute: "í", icirc: "î", iuml: "ï", eth: "ð", ntilde: "ñ", ograve: "ò", oacute: "ó", ocirc: "ô", otilde: "õ", ouml: "ö", oslash: "ø", ugrave: "ù", uacute: "ú", ucirc: "û", uuml: "ü", yacute: "ý", thorn: "þ", yuml: "ÿ", nbsp: " ", iexcl: "¡", cent: "¢", pound: "£", curren: "¤", yen: "¥", brvbar: "¦", sect: "§", uml: "¨", copy: "©", ordf: "ª", laquo: "«", not: "¬", shy: "­­", reg: "®", macr: "¯", deg: "°", plusmn: "±", sup2: "²", sup3: "³", acute: "´", micro: "µ", para: "¶", middot: "·", cedil: "¸", sup1: "¹", ordm: "º", raquo: "»", frac14: "¼", frac12: "½", frac34: "¾", iquest: "¿", times: "×", divide: "÷", forall: "∀", part: "∂", exist: "∃", empty: "∅", nabla: "∇", isin: "∈", notin: "∉", ni: "∋", prod: "∏", sum: "∑", minus: "−", lowast: "∗", radic: "√", prop: "∝", infin: "∞", ang: "∠", and: "∧", or: "∨", cap: "∩", cup: "∪", "int": "∫", there4: "∴", sim: "∼", cong: "≅", asymp: "≈", ne: "≠", equiv: "≡", le: "≤", ge: "≥", sub: "⊂", sup: "⊃", nsub: "⊄", sube: "⊆", supe: "⊇", oplus: "⊕", otimes: "⊗", perp: "⊥", sdot: "⋅", Alpha: "Α", Beta: "Β", Gamma: "Γ", Delta: "Δ", Epsilon: "Ε", Zeta: "Ζ", Eta: "Η", Theta: "Θ", Iota: "Ι", Kappa: "Κ", Lambda: "Λ", Mu: "Μ", Nu: "Ν", Xi: "Ξ", Omicron: "Ο", Pi: "Π", Rho: "Ρ", Sigma: "Σ", Tau: "Τ", Upsilon: "Υ", Phi: "Φ", Chi: "Χ", Psi: "Ψ", Omega: "Ω", alpha: "α", beta: "β", gamma: "γ", delta: "δ", epsilon: "ε", zeta: "ζ", eta: "η", theta: "θ", iota: "ι", kappa: "κ", lambda: "λ", mu: "μ", nu: "ν", xi: "ξ", omicron: "ο", pi: "π", rho: "ρ", sigmaf: "ς", sigma: "σ", tau: "τ", upsilon: "υ", phi: "φ", chi: "χ", psi: "ψ", omega: "ω", thetasym: "ϑ", upsih: "ϒ", piv: "ϖ", OElig: "Œ", oelig: "œ", Scaron: "Š", scaron: "š", Yuml: "Ÿ", fnof: "ƒ", circ: "ˆ", tilde: "˜", ensp: " ", emsp: " ", thinsp: " ", zwnj: "‌", zwj: "‍", lrm: "‎", rlm: "‏", ndash: "–", mdash: "—", lsquo: "‘", rsquo: "’", sbquo: "‚", ldquo: "“", rdquo: "”", bdquo: "„", dagger: "†", Dagger: "‡", bull: "•", hellip: "…", permil: "‰", prime: "′", Prime: "″", lsaquo: "‹", rsaquo: "›", oline: "‾", euro: "€", trade: "™", larr: "←", uarr: "↑", rarr: "→", darr: "↓", harr: "↔", crarr: "↵", lceil: "⌈", rceil: "⌉", lfloor: "⌊", rfloor: "⌋", loz: "◊", spades: "♠", clubs: "♣", hearts: "♥", diams: "♦" }), exports.entityMap = exports.HTML_ENTITIES }, { "./conventions": 41 }], 45: [function (require, module, exports) { var dom = require("./dom"); exports.DOMImplementation = dom.DOMImplementation, exports.XMLSerializer = dom.XMLSerializer, exports.DOMParser = require("./dom-parser").DOMParser }, { "./dom": 43, "./dom-parser": 42 }], 46: [function (require, module, exports) { - function ParseError(message, locator) { this.message = message, this.locator = locator, Error.captureStackTrace && Error.captureStackTrace(this, ParseError) } function XMLReader() { } function parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) { - function fixedFromCharCode(code) { if (code > 65535) { code -= 65536; var surrogate1 = 55296 + (code >> 10), surrogate2 = 56320 + (1023 & code); return String.fromCharCode(surrogate1, surrogate2) } return String.fromCharCode(code) } function entityReplacer(a) { var k = a.slice(1, -1); return Object.hasOwnProperty.call(entityMap, k) ? entityMap[k] : "#" === k.charAt(0) ? fixedFromCharCode(parseInt(k.substr(1).replace("x", "0x"))) : (errorHandler.error("entity not found:" + a), a) } function appendText(end) { if (end > start) { var xt = source.substring(start, end).replace(/&#?\w+;/g, entityReplacer); locator && position(start), domBuilder.characters(xt, 0, end - start), start = end } } function position(p, m) { for (; p >= lineEnd && (m = linePattern.exec(source));)lineStart = m.index, lineEnd = lineStart + m[0].length, locator.lineNumber++; locator.columnNumber = p - lineStart + 1 } for (var lineStart = 0, lineEnd = 0, linePattern = /.*(?:\r\n?|\n)|.*$/g, locator = domBuilder.locator, parseStack = [{ currentNSMap: defaultNSMapCopy }], closeMap = {}, start = 0; ;) { - try { - var tagStart = source.indexOf("<", start); if (0 > tagStart) { if (!source.substr(start).match(/^\s*$/)) { var doc = domBuilder.doc, text = doc.createTextNode(source.substr(start)); doc.appendChild(text), domBuilder.currentElement = text } return } switch (tagStart > start && appendText(tagStart), source.charAt(tagStart + 1)) { - case "/": var end = source.indexOf(">", tagStart + 3), tagName = source.substring(tagStart + 2, end).replace(/[ \t\n\r]+$/g, ""), config = parseStack.pop(); - 0 > end ? (tagName = source.substring(tagStart + 2).replace(/[\s<].*/, ""), errorHandler.error("end tag name: " + tagName + " is not complete:" + config.tagName), end = tagStart + 1 + tagName.length) : tagName.match(/\s i; i++) { var a = el[i]; position(a.offset), a.locator = copyLocator(locator, {}) } domBuilder.locator = locator2, appendElement(el, domBuilder, currentNSMap) && parseStack.push(el), domBuilder.locator = locator } else appendElement(el, domBuilder, currentNSMap) && parseStack.push(el); NAMESPACE.isHTML(el.uri) && !el.closed ? end = parseHtmlSpecialContent(source, end, el.tagName, entityReplacer, domBuilder) : end++ - } - } catch (e) { if (e instanceof ParseError) throw e; errorHandler.error("element parse error: " + e), end = -1 } end > start ? start = end : appendText(Math.max(tagStart, start) + 1) + }, { "./results": 25, "./styles/document-matchers": 27, "./styles/html-paths": 28, "./styles/parser/tokeniser": 29, lop: 88, underscore: 117 }], 27: [function (require, module, exports) { function paragraph(options) { return new Matcher("paragraph", options) } function run(options) { return new Matcher("run", options) } function table(options) { return new Matcher("table", options) } function Matcher(elementType, options) { options = options || {}, this._elementType = elementType, this._styleId = options.styleId, this._styleName = options.styleName, options.list && (this._listIndex = options.list.levelIndex, this._listIsOrdered = options.list.isOrdered) } function isList(element, levelIndex, isOrdered) { return element.numbering && element.numbering.level == levelIndex && element.numbering.isOrdered == isOrdered } function equalTo(value) { return { operator: operatorEqualTo, operand: value } } function startsWith(value) { return { operator: operatorStartsWith, operand: value } } function operatorEqualTo(first, second) { return first.toUpperCase() === second.toUpperCase() } function operatorStartsWith(first, second) { return 0 === second.toUpperCase().indexOf(first.toUpperCase()) } exports.paragraph = paragraph, exports.run = run, exports.table = table, exports.bold = new Matcher("bold"), exports.italic = new Matcher("italic"), exports.underline = new Matcher("underline"), exports.strikethrough = new Matcher("strikethrough"), exports.allCaps = new Matcher("allCaps"), exports.smallCaps = new Matcher("smallCaps"), exports.commentReference = new Matcher("commentReference"), exports.lineBreak = new Matcher("break", { breakType: "line" }), exports.pageBreak = new Matcher("break", { breakType: "page" }), exports.columnBreak = new Matcher("break", { breakType: "column" }), exports.equalTo = equalTo, exports.startsWith = startsWith, Matcher.prototype.matches = function (element) { return element.type === this._elementType && (void 0 === this._styleId || element.styleId === this._styleId) && (void 0 === this._styleName || element.styleName && this._styleName.operator(this._styleName.operand, element.styleName)) && (void 0 === this._listIndex || isList(element, this._listIndex, this._listIsOrdered)) && (void 0 === this._breakType || this._breakType === element.breakType) } }, {}], 28: [function (require, module, exports) { function topLevelElement(tagName, attributes) { return elements([element(tagName, attributes, { fresh: !0 })]) } function elements(elementStyles) { return new HtmlPath(elementStyles.map(function (elementStyle) { return _.isString(elementStyle) ? element(elementStyle) : elementStyle })) } function HtmlPath(elements) { this._elements = elements } function element(tagName, attributes, options) { return options = options || {}, new Element(tagName, attributes, options) } function Element(tagName, attributes, options) { var tagNames = {}; _.isArray(tagName) ? (tagName.forEach(function (tagName) { tagNames[tagName] = !0 }), tagName = tagName[0]) : tagNames[tagName] = !0, this.tagName = tagName, this.tagNames = tagNames, this.attributes = attributes || {}, this.fresh = options.fresh, this.separator = options.separator } var _ = require("underscore"), html = require("../html"); exports.topLevelElement = topLevelElement, exports.elements = elements, exports.element = element, HtmlPath.prototype.wrap = function (children) { for (var result = children(), index = this._elements.length - 1; index >= 0; index--)result = this._elements[index].wrapNodes(result); return result }, Element.prototype.matchesElement = function (element) { return this.tagNames[element.tagName] && _.isEqual(this.attributes || {}, element.attributes || {}) }, Element.prototype.wrap = function (generateNodes) { return this.wrapNodes(generateNodes()) }, Element.prototype.wrapNodes = function (nodes) { return [html.elementWithTag(this, nodes)] }, exports.empty = elements([]), exports.ignore = { wrap: function () { return [] } } }, { "../html": 18, underscore: 117 }], 29: [function (require, module, exports) { function tokenise(string) { var identifierCharacter = "(?:[a-zA-Z\\-_]|\\\\.)", tokeniser = new RegexTokeniser([{ name: "identifier", regex: new RegExp("(" + identifierCharacter + "(?:" + identifierCharacter + "|[0-9])*)") }, { name: "dot", regex: /\./ }, { name: "colon", regex: /:/ }, { name: "gt", regex: />/ }, { name: "whitespace", regex: /\s+/ }, { name: "arrow", regex: /=>/ }, { name: "equals", regex: /=/ }, { name: "startsWith", regex: /\^=/ }, { name: "open-paren", regex: /\(/ }, { name: "close-paren", regex: /\)/ }, { name: "open-square-bracket", regex: /\[/ }, { name: "close-square-bracket", regex: /\]/ }, { name: "string", regex: new RegExp(stringPrefix + "'") }, { name: "unterminated-string", regex: new RegExp(stringPrefix) }, { name: "integer", regex: /([0-9]+)/ }, { name: "choice", regex: /\|/ }, { name: "bang", regex: /(!)/ }]); return tokeniser.tokenise(string) } var lop = require("lop"), RegexTokeniser = lop.RegexTokeniser; exports.tokenise = tokenise; var stringPrefix = "'((?:\\\\.|[^'])*)" }, { lop: 88 }], 30: [function (require, module, exports) { function paragraph(transform) { return elementsOfType("paragraph", transform) } function run(transform) { return elementsOfType("run", transform) } function elementsOfType(elementType, transform) { return elements(function (element) { return element.type === elementType ? transform(element) : element }) } function elements(transform) { return function transformElement(element) { if (element.children) { var children = _.map(element.children, transformElement); element = _.extend(element, { children: children }) } return transform(element) } } function getDescendantsOfType(element, type) { return getDescendants(element).filter(function (descendant) { return descendant.type === type }) } function getDescendants(element) { var descendants = []; return visitDescendants(element, function (descendant) { descendants.push(descendant) }), descendants } function visitDescendants(element, visit) { element.children && element.children.forEach(function (child) { visitDescendants(child, visit), visit(child) }) } var _ = require("underscore"); exports.paragraph = paragraph, exports.run = run, exports._elements = elements, exports.getDescendantsOfType = getDescendantsOfType, exports.getDescendants = getDescendants }, { underscore: 117 }], 31: [function (require, module, exports) { function element(name) { return function (html) { return Html.elementWithTag(htmlPaths.element(name), [html]) } } var htmlPaths = require("./styles/html-paths"), Html = require("./html"); exports.element = element }, { "./html": 18, "./styles/html-paths": 28 }], 32: [function (require, module, exports) { function writer(options) { return options = options || {}, options.prettyPrint ? prettyWriter() : simpleWriter() } function prettyWriter() { function open(tagName, attributes) { indentedElements[tagName] && indent(), stack.push(tagName), writer.open(tagName, attributes), indentedElements[tagName] && indentationLevel++, start = !1 } function close(tagName) { indentedElements[tagName] && (indentationLevel--, indent()), stack.pop(), writer.close(tagName) } function text(value) { startText(); var text = isInPre() ? value : value.replace("\n", "\n" + indentation); writer.text(text) } function selfClosing(tagName, attributes) { indent(), writer.selfClosing(tagName, attributes) } function insideIndentedElement() { return 0 === stack.length || indentedElements[stack[stack.length - 1]] } function startText() { inText || (indent(), inText = !0) } function indent() { if (inText = !1, !start && insideIndentedElement() && !isInPre()) { writer._append("\n"); for (var i = 0; indentationLevel > i; i++)writer._append(indentation) } } function isInPre() { return _.some(stack, function (tagName) { return "pre" === tagName }) } var indentationLevel = 0, indentation = " ", stack = [], start = !0, inText = !1, writer = simpleWriter(); return { asString: writer.asString, open: open, close: close, text: text, selfClosing: selfClosing } } function simpleWriter() { function open(tagName, attributes) { var attributeString = generateAttributeString(attributes); fragments.push(util.format("<%s%s>", tagName, attributeString)) } function close(tagName) { fragments.push(util.format("", tagName)) } function selfClosing(tagName, attributes) { var attributeString = generateAttributeString(attributes); fragments.push(util.format("<%s%s />", tagName, attributeString)) } function generateAttributeString(attributes) { return _.map(attributes, function (value, key) { return util.format(' %s="%s"', key, escapeHtmlAttribute(value)) }).join("") } function text(value) { fragments.push(escapeHtmlText(value)) } function append(html) { fragments.push(html) } function asString() { return fragments.join("") } var fragments = []; return { asString: asString, open: open, close: close, text: text, selfClosing: selfClosing, _append: append } } function escapeHtmlText(value) { return value.replace(/&/g, "&").replace(//g, ">") } function escapeHtmlAttribute(value) { return value.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">") } var util = require("util"), _ = require("underscore"); exports.writer = writer; var indentedElements = { div: !0, p: !0, ul: !0, li: !0 } }, { underscore: 117, util: 121 }], 33: [function (require, module, exports) { function writer(options) { return options = options || {}, "markdown" === options.outputFormat ? markdownWriter.writer() : htmlWriter.writer(options) } var htmlWriter = require("./html-writer"), markdownWriter = require("./markdown-writer"); exports.writer = writer }, { "./html-writer": 32, "./markdown-writer": 34 }], 34: [function (require, module, exports) { function symmetricMarkdownElement(end) { return markdownElement(end, end) } function markdownElement(start, end) { return function () { return { start: start, end: end } } } function markdownLink(attributes) { var href = attributes.href || ""; return href ? { start: "[", end: "](" + href + ")", anchorPosition: "before" } : {} } function markdownImage(attributes) { var src = attributes.src || "", altText = attributes.alt || ""; return src || altText ? { start: "![" + altText + "](" + src + ")" } : {} } function markdownList(options) { return function (attributes, list) { return { start: list ? "\n" : "", end: list ? "" : "\n", list: { isOrdered: options.isOrdered, indent: list ? list.indent + 1 : 0, count: 0 } } } } function markdownListItem(attributes, list, listItem) { list = list || { indent: 0, isOrdered: !1, count: 0 }, list.count++, listItem.hasClosed = !1; var bullet = list.isOrdered ? list.count + "." : "-", start = repeatString(" ", list.indent) + bullet + " "; return { start: start, end: function () { return listItem.hasClosed ? void 0 : (listItem.hasClosed = !0, "\n") } } } function repeatString(value, count) { return new Array(count + 1).join(value) } function markdownWriter() { function open(tagName, attributes) { attributes = attributes || {}; var createElement = htmlToMarkdown[tagName] || function () { return {} }, element = createElement(attributes, list, listItem); elementStack.push({ end: element.end, list: list }), element.list && (list = element.list); var anchorBeforeStart = "before" === element.anchorPosition; anchorBeforeStart && writeAnchor(attributes), fragments.push(element.start || ""), anchorBeforeStart || writeAnchor(attributes) } function writeAnchor(attributes) { attributes.id && fragments.push('') } function close(tagName) { var element = elementStack.pop(); list = element.list; var end = _.isFunction(element.end) ? element.end() : element.end; fragments.push(end || "") } function selfClosing(tagName, attributes) { open(tagName, attributes), close(tagName) } function text(value) { fragments.push(escapeMarkdown(value)) } function asString() { return fragments.join("") } var fragments = [], elementStack = [], list = null, listItem = {}; return { asString: asString, open: open, close: close, text: text, selfClosing: selfClosing } } function escapeMarkdown(value) { return value.replace(/\\/g, "\\\\").replace(/([\`\*_\{\}\[\]\(\)\#\+\-\.\!])/g, "\\$1") } var _ = require("underscore"), htmlToMarkdown = { p: markdownElement("", "\n\n"), br: markdownElement("", " \n"), ul: markdownList({ isOrdered: !1 }), ol: markdownList({ isOrdered: !0 }), li: markdownListItem, strong: symmetricMarkdownElement("__"), em: symmetricMarkdownElement("*"), a: markdownLink, img: markdownImage }; !function () { for (var i = 1; 6 >= i; i++)htmlToMarkdown["h" + i] = markdownElement(repeatString("#", i) + " ", "\n\n") }(), exports.writer = markdownWriter }, { underscore: 117 }], 35: [function (require, module, exports) { var nodes = require("./nodes"); exports.Element = nodes.Element, exports.element = nodes.element, exports.text = nodes.text, exports.readString = require("./reader").readString, exports.writeString = require("./writer").writeString }, { "./nodes": 36, "./reader": 37, "./writer": 38 }], 36: [function (require, module, exports) { function Element(name, attributes, children) { this.type = "element", this.name = name, this.attributes = attributes || {}, this.children = children || [] } function toElementList(array) { return _.extend(array, elementListPrototype) } var _ = require("underscore"); exports.Element = Element, exports.element = function (name, attributes, children) { return new Element(name, attributes, children) }, exports.text = function (value) { return { type: "text", value: value } }; var emptyElement = { first: function () { return null }, firstOrEmpty: function () { return emptyElement }, attributes: {} }; Element.prototype.first = function (name) { return _.find(this.children, function (child) { return child.name === name }) }, Element.prototype.firstOrEmpty = function (name) { return this.first(name) || emptyElement }, Element.prototype.getElementsByTagName = function (name) { var elements = _.filter(this.children, function (child) { return child.name === name }); return toElementList(elements) }, Element.prototype.text = function () { if (0 === this.children.length) return ""; if (1 !== this.children.length || "text" !== this.children[0].type) throw new Error("Not implemented"); return this.children[0].value }; var elementListPrototype = { getElementsByTagName: function (name) { return toElementList(_.flatten(this.map(function (element) { return element.getElementsByTagName(name) }, !0))) } } }, { underscore: 117 }], 37: [function (require, module, exports) { function readString(xmlString, namespaceMap) { function mapName(node) { if (node.uri) { var prefix, mappedPrefix = namespaceMap[node.uri]; return prefix = mappedPrefix ? mappedPrefix + ":" : "{" + node.uri + "}", prefix + node.local } return node.local } namespaceMap = namespaceMap || {}; var finished = !1, parser = sax.parser(!0, { xmlns: !0, position: !1 }), rootElement = { children: [] }, currentElement = rootElement, stack = [], deferred = promises.defer(); return parser.onopentag = function (node) { var attributes = mapObject(node.attributes, function (attribute) { return attribute.value }, mapName), element = new Element(mapName(node), attributes); currentElement.children.push(element), stack.push(currentElement), currentElement = element }, parser.onclosetag = function (node) { currentElement = stack.pop() }, parser.ontext = function (text) { currentElement !== rootElement && currentElement.children.push(nodes.text(text)) }, parser.onend = function () { finished || (finished = !0, deferred.resolve(rootElement.children[0])) }, parser.onerror = function (error) { finished || (finished = !0, deferred.reject(error)) }, parser.write(xmlString).close(), deferred.promise } function mapObject(input, valueFunc, keyFunc) { return _.reduce(input, function (result, value, key) { var mappedKey = keyFunc(value, key, input); return result[mappedKey] = valueFunc(value, key, input), result }, {}) } var promises = require("../promises"), sax = require("sax"), _ = require("underscore"), nodes = require("./nodes"), Element = nodes.Element; exports.readString = readString }, { "../promises": 23, "./nodes": 36, sax: 114, underscore: 117 }], 38: [function (require, module, exports) { function writeString(root, namespaces) { function writeNode(builder, node) { return nodeWriters[node.type](builder, node) } function writeElement(builder, element) { var elementBuilder = builder.element(mapElementName(element.name), element.attributes); element.children.forEach(function (child) { writeNode(elementBuilder, child) }) } function mapElementName(name) { var longFormMatch = /^\{(.*)\}(.*)$/.exec(name); if (longFormMatch) { var prefix = uriToPrefix[longFormMatch[1]]; return prefix + ("" === prefix ? "" : ":") + longFormMatch[2] } return name } function writeDocument(root) { var builder = xmlbuilder.create(mapElementName(root.name), { version: "1.0", encoding: "UTF-8", standalone: !0 }); return _.forEach(namespaces, function (uri, prefix) { var key = "xmlns" + ("" === prefix ? "" : ":" + prefix); builder.attribute(key, uri) }), root.children.forEach(function (child) { writeNode(builder, child) }), builder.end() } var uriToPrefix = _.invert(namespaces), nodeWriters = { element: writeElement, text: writeTextNode }; return writeDocument(root) } function writeTextNode(builder, node) { builder.text(node.value) } var _ = require("underscore"), xmlbuilder = require("xmlbuilder"); exports.writeString = writeString }, { underscore: 117, xmlbuilder: 143 }], 39: [function (require, module, exports) { (function (Buffer) { function openArrayBuffer(arrayBuffer) { return JSZip.loadAsync(arrayBuffer).then(function (zipFile) { function exists(name) { return null !== zipFile.file(name) } function read(name, encoding) { return zipFile.file(name).async("uint8array").then(function (array) { var buffer = uint8ArrayToBuffer(array); return encoding ? buffer.toString(encoding) : buffer }) } function write(name, contents) { zipFile.file(name, contents) } function toBuffer() { return zipFile.generateAsync({ type: "nodebuffer" }) } return { exists: exists, read: read, write: write, toBuffer: toBuffer } }) } function uint8ArrayToBuffer(array) { return Buffer.from && Buffer.from !== Uint8Array.from ? Buffer.from(array) : new Buffer(array) } function splitPath(path) { var lastIndex = path.lastIndexOf("/"); return -1 === lastIndex ? { dirname: "", basename: path } : { dirname: path.substring(0, lastIndex), basename: path.substring(lastIndex + 1) } } function joinPath() { var nonEmptyPaths = Array.prototype.filter.call(arguments, function (path) { return path }), relevantPaths = []; return nonEmptyPaths.forEach(function (path) { /^\//.test(path) ? relevantPaths = [path] : relevantPaths.push(path) }), relevantPaths.join("/") } var JSZip = require("jszip"); exports.openArrayBuffer = openArrayBuffer, exports.splitPath = splitPath, exports.joinPath = joinPath }).call(this, require("buffer").Buffer) }, { buffer: 78, jszip: 87 }], 40: [function (require, module, exports) { "use strict"; function placeHoldersCount(b64) { var len = b64.length; if (len % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); return "=" === b64[len - 2] ? 2 : "=" === b64[len - 1] ? 1 : 0 } function byteLength(b64) { return 3 * b64.length / 4 - placeHoldersCount(b64) } function toByteArray(b64) { var i, j, l, tmp, placeHolders, arr, len = b64.length; placeHolders = placeHoldersCount(b64), arr = new Arr(3 * len / 4 - placeHolders), l = placeHolders > 0 ? len - 4 : len; var L = 0; for (i = 0, j = 0; l > i; i += 4, j += 3)tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)], arr[L++] = tmp >> 16 & 255, arr[L++] = tmp >> 8 & 255, arr[L++] = 255 & tmp; return 2 === placeHolders ? (tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4, arr[L++] = 255 & tmp) : 1 === placeHolders && (tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2, arr[L++] = tmp >> 8 & 255, arr[L++] = 255 & tmp), arr } function tripletToBase64(num) { return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[63 & num] } function encodeChunk(uint8, start, end) { for (var tmp, output = [], i = start; end > i; i += 3)tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2], output.push(tripletToBase64(tmp)); return output.join("") } function fromByteArray(uint8) { for (var tmp, len = uint8.length, extraBytes = len % 3, output = "", parts = [], maxChunkLength = 16383, i = 0, len2 = len - extraBytes; len2 > i; i += maxChunkLength)parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength)); return 1 === extraBytes ? (tmp = uint8[len - 1], output += lookup[tmp >> 2], output += lookup[tmp << 4 & 63], output += "==") : 2 === extraBytes && (tmp = (uint8[len - 2] << 8) + uint8[len - 1], output += lookup[tmp >> 10], output += lookup[tmp >> 4 & 63], output += lookup[tmp << 2 & 63], output += "="), parts.push(output), parts.join("") } exports.byteLength = byteLength, exports.toByteArray = toByteArray, exports.fromByteArray = fromByteArray; for (var lookup = [], revLookup = [], Arr = "undefined" != typeof Uint8Array ? Uint8Array : Array, code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i = 0, len = code.length; len > i; ++i)lookup[i] = code[i], revLookup[code.charCodeAt(i)] = i; revLookup["-".charCodeAt(0)] = 62, revLookup["_".charCodeAt(0)] = 63 }, {}], 41: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function any(promises) { var ret = new SomePromiseArray(promises), promise = ret.promise(); return ret.setHowMany(1), ret.setUnwrap(), ret.init(), promise } var SomePromiseArray = Promise._SomePromiseArray; Promise.any = function (promises) { return any(promises) }, Promise.prototype.any = function () { return any(this) } } }, {}], 42: [function (require, module, exports) { (function (process) { "use strict"; function Async() { this._customScheduler = !1, this._isTickUsed = !1, this._lateQueue = new Queue(16), this._normalQueue = new Queue(16), this._haveDrainedQueues = !1, this._trampolineEnabled = !0; var self = this; this.drainQueues = function () { self._drainQueues() }, this._schedule = schedule } function AsyncInvokeLater(fn, receiver, arg) { this._lateQueue.push(fn, receiver, arg), this._queueTick() } function AsyncInvoke(fn, receiver, arg) { this._normalQueue.push(fn, receiver, arg), this._queueTick() } function AsyncSettlePromises(promise) { this._normalQueue._pushOne(promise), this._queueTick() } var firstLineError; try { throw new Error } catch (e) { firstLineError = e } var schedule = require("./schedule"), Queue = require("./queue"), util = require("./util"); Async.prototype.setScheduler = function (fn) { var prev = this._schedule; return this._schedule = fn, this._customScheduler = !0, prev }, Async.prototype.hasCustomScheduler = function () { return this._customScheduler }, Async.prototype.enableTrampoline = function () { this._trampolineEnabled = !0 }, Async.prototype.disableTrampolineIfNecessary = function () { util.hasDevTools && (this._trampolineEnabled = !1) }, Async.prototype.haveItemsQueued = function () { return this._isTickUsed || this._haveDrainedQueues }, Async.prototype.fatalError = function (e, isNode) { isNode ? (process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + "\n"), process.exit(2)) : this.throwLater(e) }, Async.prototype.throwLater = function (fn, arg) { if (1 === arguments.length && (arg = fn, fn = function () { throw arg }), "undefined" != typeof setTimeout) setTimeout(function () { fn(arg) }, 0); else try { this._schedule(function () { fn(arg) }) } catch (e) { throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n") } }, util.hasDevTools ? (Async.prototype.invokeLater = function (fn, receiver, arg) { this._trampolineEnabled ? AsyncInvokeLater.call(this, fn, receiver, arg) : this._schedule(function () { setTimeout(function () { fn.call(receiver, arg) }, 100) }) }, Async.prototype.invoke = function (fn, receiver, arg) { this._trampolineEnabled ? AsyncInvoke.call(this, fn, receiver, arg) : this._schedule(function () { fn.call(receiver, arg) }) }, Async.prototype.settlePromises = function (promise) { this._trampolineEnabled ? AsyncSettlePromises.call(this, promise) : this._schedule(function () { promise._settlePromises() }) }) : (Async.prototype.invokeLater = AsyncInvokeLater, Async.prototype.invoke = AsyncInvoke, Async.prototype.settlePromises = AsyncSettlePromises), Async.prototype._drainQueue = function (queue) { for (; queue.length() > 0;) { var fn = queue.shift(); if ("function" == typeof fn) { var receiver = queue.shift(), arg = queue.shift(); fn.call(receiver, arg) } else fn._settlePromises() } }, Async.prototype._drainQueues = function () { this._drainQueue(this._normalQueue), this._reset(), this._haveDrainedQueues = !0, this._drainQueue(this._lateQueue) }, Async.prototype._queueTick = function () { this._isTickUsed || (this._isTickUsed = !0, this._schedule(this.drainQueues)) }, Async.prototype._reset = function () { this._isTickUsed = !1 }, module.exports = Async, module.exports.firstLineError = firstLineError }).call(this, require("_process")) }, { "./queue": 65, "./schedule": 68, "./util": 75, _process: 102 }], 43: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, debug) { var calledBind = !1, rejectThis = function (_, e) { this._reject(e) }, targetRejected = function (e, context) { context.promiseRejectionQueued = !0, context.bindingPromise._then(rejectThis, rejectThis, null, this, e) }, bindingResolved = function (thisArg, context) { 0 === (50397184 & this._bitField) && this._resolveCallback(context.target) }, bindingRejected = function (e, context) { context.promiseRejectionQueued || this._reject(e) }; Promise.prototype.bind = function (thisArg) { calledBind || (calledBind = !0, Promise.prototype._propagateFrom = debug.propagateFromFunction(), Promise.prototype._boundValue = debug.boundValueFunction()); var maybePromise = tryConvertToPromise(thisArg), ret = new Promise(INTERNAL); ret._propagateFrom(this, 1); var target = this._target(); if (ret._setBoundTo(maybePromise), maybePromise instanceof Promise) { var context = { promiseRejectionQueued: !1, promise: ret, target: target, bindingPromise: maybePromise }; target._then(INTERNAL, targetRejected, void 0, ret, context), maybePromise._then(bindingResolved, bindingRejected, void 0, ret, context), ret._setOnCancel(maybePromise) } else ret._resolveCallback(target); return ret }, Promise.prototype._setBoundTo = function (obj) { void 0 !== obj ? (this._bitField = 2097152 | this._bitField, this._boundTo = obj) : this._bitField = -2097153 & this._bitField }, Promise.prototype._isBound = function () { return 2097152 === (2097152 & this._bitField) }, Promise.bind = function (thisArg, value) { return Promise.resolve(value).bind(thisArg) } } }, {}], 44: [function (require, module, exports) { + "use strict"; var cr = Object.create; if (cr) { var callerCache = cr(null), getterCache = cr(null); callerCache[" size"] = getterCache[" size"] = 0 } module.exports = function (Promise) { + function ensureMethod(obj, methodName) { var fn; if (null != obj && (fn = obj[methodName]), "function" != typeof fn) { var message = "Object " + util.classString(obj) + " has no method '" + util.toString(methodName) + "'"; throw new Promise.TypeError(message) } return fn } function caller(obj) { var methodName = this.pop(), fn = ensureMethod(obj, methodName); return fn.apply(obj, this) } function namedGetter(obj) { return obj[this] } function indexedGetter(obj) { var index = +this; return 0 > index && (index = Math.max(0, index + obj.length)), obj[index] } var getMethodCaller, getGetter, util = require("./util"), canEvaluate = util.canEvaluate, isIdentifier = util.isIdentifier, makeMethodCaller = function (methodName) { return new Function("ensureMethod", " \n return function(obj) { \n 'use strict' \n var len = this.length; \n ensureMethod(obj, 'methodName'); \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: \n return obj.methodName.apply(obj, this); \n } \n }; \n ".replace(/methodName/g, methodName))(ensureMethod) }, makeGetter = function (propertyName) { return new Function("obj", " \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName", propertyName)) }, getCompiled = function (name, compiler, cache) { var ret = cache[name]; if ("function" != typeof ret) { if (!isIdentifier(name)) return null; if (ret = compiler(name), cache[name] = ret, cache[" size"]++, cache[" size"] > 512) { for (var keys = Object.keys(cache), i = 0; 256 > i; ++i)delete cache[keys[i]]; cache[" size"] = keys.length - 256 } } return ret }; getMethodCaller = function (name) { return getCompiled(name, makeMethodCaller, callerCache) }, getGetter = function (name) { return getCompiled(name, makeGetter, getterCache) }, Promise.prototype.call = function (methodName) { + for (var $_len = arguments.length, args = new Array(Math.max($_len - 1, 0)), $_i = 1; $_len > $_i; ++$_i)args[$_i - 1] = arguments[$_i]; if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (null !== maybeCaller) return this._then(maybeCaller, void 0, void 0, args, void 0) + } return args.push(methodName), this._then(caller, void 0, void 0, args, void 0) + }, Promise.prototype.get = function (propertyName) { var getter, isIndex = "number" == typeof propertyName; if (isIndex) getter = indexedGetter; else if (canEvaluate) { var maybeGetter = getGetter(propertyName); getter = null !== maybeGetter ? maybeGetter : namedGetter } else getter = namedGetter; return this._then(getter, void 0, void 0, propertyName, void 0) } + } + }, { "./util": 75 }], 45: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, debug) { var util = require("./util"), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; Promise.prototype["break"] = Promise.prototype.cancel = function () { if (!debug.cancellation()) return this._warn("cancellation is disabled"); for (var promise = this, child = promise; promise._isCancellable();) { if (!promise._cancelBy(child)) { child._isFollowing() ? child._followee().cancel() : child._cancelBranched(); break } var parent = promise._cancellationParent; if (null == parent || !parent._isCancellable()) { promise._isFollowing() ? promise._followee().cancel() : promise._cancelBranched(); break } promise._isFollowing() && promise._followee().cancel(), promise._setWillBeCancelled(), child = promise, promise = parent } }, Promise.prototype._branchHasCancelled = function () { this._branchesRemainingToCancel-- }, Promise.prototype._enoughBranchesHaveCancelled = function () { return void 0 === this._branchesRemainingToCancel || this._branchesRemainingToCancel <= 0 }, Promise.prototype._cancelBy = function (canceller) { return canceller === this ? (this._branchesRemainingToCancel = 0, this._invokeOnCancel(), !0) : (this._branchHasCancelled(), this._enoughBranchesHaveCancelled() ? (this._invokeOnCancel(), !0) : !1) }, Promise.prototype._cancelBranched = function () { this._enoughBranchesHaveCancelled() && this._cancel() }, Promise.prototype._cancel = function () { this._isCancellable() && (this._setCancelled(), async.invoke(this._cancelPromises, this, void 0)) }, Promise.prototype._cancelPromises = function () { this._length() > 0 && this._settlePromises() }, Promise.prototype._unsetOnCancel = function () { this._onCancelField = void 0 }, Promise.prototype._isCancellable = function () { return this.isPending() && !this._isCancelled() }, Promise.prototype.isCancellable = function () { return this.isPending() && !this.isCancelled() }, Promise.prototype._doInvokeOnCancel = function (onCancelCallback, internalOnly) { if (util.isArray(onCancelCallback)) for (var i = 0; i < onCancelCallback.length; ++i)this._doInvokeOnCancel(onCancelCallback[i], internalOnly); else if (void 0 !== onCancelCallback) if ("function" == typeof onCancelCallback) { if (!internalOnly) { var e = tryCatch(onCancelCallback).call(this._boundValue()); e === errorObj && (this._attachExtraTrace(e.e), async.throwLater(e.e)) } } else onCancelCallback._resultCancelled(this) }, Promise.prototype._invokeOnCancel = function () { var onCancelCallback = this._onCancel(); this._unsetOnCancel(), async.invoke(this._doInvokeOnCancel, this, onCancelCallback) }, Promise.prototype._invokeInternalOnCancel = function () { this._isCancellable() && (this._doInvokeOnCancel(this._onCancel(), !0), this._unsetOnCancel()) }, Promise.prototype._resultCancelled = function () { this.cancel() } } }, { "./util": 75 }], 46: [function (require, module, exports) { "use strict"; module.exports = function (NEXT_FILTER) { function catchFilter(instances, cb, promise) { return function (e) { var boundTo = promise._boundValue(); predicateLoop: for (var i = 0; i < instances.length; ++i) { var item = instances[i]; if (item === Error || null != item && item.prototype instanceof Error) { if (e instanceof item) return tryCatch(cb).call(boundTo, e) } else if ("function" == typeof item) { var matchesPredicate = tryCatch(item).call(boundTo, e); if (matchesPredicate === errorObj) return matchesPredicate; if (matchesPredicate) return tryCatch(cb).call(boundTo, e) } else if (util.isObject(e)) { for (var keys = getKeys(item), j = 0; j < keys.length; ++j) { var key = keys[j]; if (item[key] != e[key]) continue predicateLoop } return tryCatch(cb).call(boundTo, e) } } return NEXT_FILTER } } var util = require("./util"), getKeys = require("./es5").keys, tryCatch = util.tryCatch, errorObj = util.errorObj; return catchFilter } }, { "./es5": 52, "./util": 75 }], 47: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function Context() { this._trace = new Context.CapturedTrace(peekContext()) } function createContext() { return longStackTraces ? new Context : void 0 } function peekContext() { var lastIndex = contextStack.length - 1; return lastIndex >= 0 ? contextStack[lastIndex] : void 0 } var longStackTraces = !1, contextStack = []; return Promise.prototype._promiseCreated = function () { }, Promise.prototype._pushContext = function () { }, Promise.prototype._popContext = function () { return null }, Promise._peekContext = Promise.prototype._peekContext = function () { }, Context.prototype._pushContext = function () { void 0 !== this._trace && (this._trace._promiseCreated = null, contextStack.push(this._trace)) }, Context.prototype._popContext = function () { if (void 0 !== this._trace) { var trace = contextStack.pop(), ret = trace._promiseCreated; return trace._promiseCreated = null, ret } return null }, Context.CapturedTrace = null, Context.create = createContext, Context.deactivateLongStackTraces = function () { }, Context.activateLongStackTraces = function () { var Promise_pushContext = Promise.prototype._pushContext, Promise_popContext = Promise.prototype._popContext, Promise_PeekContext = Promise._peekContext, Promise_peekContext = Promise.prototype._peekContext, Promise_promiseCreated = Promise.prototype._promiseCreated; Context.deactivateLongStackTraces = function () { Promise.prototype._pushContext = Promise_pushContext, Promise.prototype._popContext = Promise_popContext, Promise._peekContext = Promise_PeekContext, Promise.prototype._peekContext = Promise_peekContext, Promise.prototype._promiseCreated = Promise_promiseCreated, longStackTraces = !1 }, longStackTraces = !0, Promise.prototype._pushContext = Context.prototype._pushContext, Promise.prototype._popContext = Context.prototype._popContext, Promise._peekContext = Promise.prototype._peekContext = peekContext, Promise.prototype._promiseCreated = function () { var ctx = this._peekContext(); ctx && null == ctx._promiseCreated && (ctx._promiseCreated = this) } }, Context } }, {}], 48: [function (require, module, exports) { (function (process) { "use strict"; module.exports = function (Promise, Context) { function generatePromiseLifecycleEventObject(name, promise) { return { promise: promise } } function defaultFireEvent() { return !1 } function cancellationExecute(executor, resolve, reject) { var promise = this; try { executor(resolve, reject, function (onCancel) { if ("function" != typeof onCancel) throw new TypeError("onCancel must be a function, got: " + util.toString(onCancel)); promise._attachCancellationCallback(onCancel) }) } catch (e) { return e } } function cancellationAttachCancellationCallback(onCancel) { if (!this._isCancellable()) return this; var previousOnCancel = this._onCancel(); void 0 !== previousOnCancel ? util.isArray(previousOnCancel) ? previousOnCancel.push(onCancel) : this._setOnCancel([previousOnCancel, onCancel]) : this._setOnCancel(onCancel) } function cancellationOnCancel() { return this._onCancelField } function cancellationSetOnCancel(onCancel) { this._onCancelField = onCancel } function cancellationClearCancellationData() { this._cancellationParent = void 0, this._onCancelField = void 0 } function cancellationPropagateFrom(parent, flags) { if (0 !== (1 & flags)) { this._cancellationParent = parent; var branchesRemainingToCancel = parent._branchesRemainingToCancel; void 0 === branchesRemainingToCancel && (branchesRemainingToCancel = 0), parent._branchesRemainingToCancel = branchesRemainingToCancel + 1 } 0 !== (2 & flags) && parent._isBound() && this._setBoundTo(parent._boundTo) } function bindingPropagateFrom(parent, flags) { 0 !== (2 & flags) && parent._isBound() && this._setBoundTo(parent._boundTo) } function boundValueFunction() { var ret = this._boundTo; return void 0 !== ret && ret instanceof Promise ? ret.isFulfilled() ? ret.value() : void 0 : ret } function longStackTracesCaptureStackTrace() { this._trace = new CapturedTrace(this._peekContext()) } function longStackTracesAttachExtraTrace(error, ignoreSelf) { if (canAttachTrace(error)) { var trace = this._trace; if (void 0 !== trace && ignoreSelf && (trace = trace._parent), void 0 !== trace) trace.attachExtraTrace(error); else if (!error.__stackCleaned__) { var parsed = parseStackAndMessage(error); util.notEnumerableProp(error, "stack", parsed.message + "\n" + parsed.stack.join("\n")), util.notEnumerableProp(error, "__stackCleaned__", !0) } } } function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) { if (void 0 === returnValue && null !== promiseCreated && wForgottenReturn) { if (void 0 !== parent && parent._returnedNonUndefined()) return; if (0 === (65535 & promise._bitField)) return; name && (name += " "); var handlerLine = "", creatorLine = ""; if (promiseCreated._trace) { for (var traceLines = promiseCreated._trace.stack.split("\n"), stack = cleanStack(traceLines), i = stack.length - 1; i >= 0; --i) { var line = stack[i]; if (!nodeFramePattern.test(line)) { var lineMatches = line.match(parseLinePattern); lineMatches && (handlerLine = "at " + lineMatches[1] + ":" + lineMatches[2] + ":" + lineMatches[3] + " "); break } } if (stack.length > 0) for (var firstUserLine = stack[0], i = 0; i < traceLines.length; ++i)if (traceLines[i] === firstUserLine) { i > 0 && (creatorLine = "\n" + traceLines[i - 1]); break } } var msg = "a promise was created in a " + name + "handler " + handlerLine + "but was not returned from it, see http://goo.gl/rRqMUw" + creatorLine; promise._warn(msg, !0, promiseCreated) } } function deprecated(name, replacement) { var message = name + " is deprecated and will be removed in a future version."; return replacement && (message += " Use " + replacement + " instead."), warn(message) } function warn(message, shouldUseOwnTrace, promise) { if (config.warnings) { var ctx, warning = new Warning(message); if (shouldUseOwnTrace) promise._attachExtraTrace(warning); else if (config.longStackTraces && (ctx = Promise._peekContext())) ctx.attachExtraTrace(warning); else { var parsed = parseStackAndMessage(warning); warning.stack = parsed.message + "\n" + parsed.stack.join("\n") } activeFireEvent("warning", warning) || formatAndLogError(warning, "", !0) } } function reconstructStack(message, stacks) { for (var i = 0; i < stacks.length - 1; ++i)stacks[i].push("From previous event:"), stacks[i] = stacks[i].join("\n"); return i < stacks.length && (stacks[i] = stacks[i].join("\n")), message + "\n" + stacks.join("\n") } function removeDuplicateOrEmptyJumps(stacks) { for (var i = 0; i < stacks.length; ++i)(0 === stacks[i].length || i + 1 < stacks.length && stacks[i][0] === stacks[i + 1][0]) && (stacks.splice(i, 1), i--) } function removeCommonRoots(stacks) { for (var current = stacks[0], i = 1; i < stacks.length; ++i) { for (var prev = stacks[i], currentLastIndex = current.length - 1, currentLastLine = current[currentLastIndex], commonRootMeetPoint = -1, j = prev.length - 1; j >= 0; --j)if (prev[j] === currentLastLine) { commonRootMeetPoint = j; break } for (var j = commonRootMeetPoint; j >= 0; --j) { var line = prev[j]; if (current[currentLastIndex] !== line) break; current.pop(), currentLastIndex-- } current = prev } } function cleanStack(stack) { for (var ret = [], i = 0; i < stack.length; ++i) { var line = stack[i], isTraceLine = " (No stack trace)" === line || stackFramePattern.test(line), isInternalFrame = isTraceLine && shouldIgnore(line); isTraceLine && !isInternalFrame && (indentStackFrames && " " !== line.charAt(0) && (line = " " + line), ret.push(line)) } return ret } function stackFramesAsArray(error) { for (var stack = error.stack.replace(/\s+$/g, "").split("\n"), i = 0; i < stack.length; ++i) { var line = stack[i]; if (" (No stack trace)" === line || stackFramePattern.test(line)) break } return i > 0 && "SyntaxError" != error.name && (stack = stack.slice(i)), stack } function parseStackAndMessage(error) { var stack = error.stack, message = error.toString(); return stack = "string" == typeof stack && stack.length > 0 ? stackFramesAsArray(error) : [" (No stack trace)"], { message: message, stack: "SyntaxError" == error.name ? stack : cleanStack(stack) } } function formatAndLogError(error, title, isSoft) { if ("undefined" != typeof console) { var message; if (util.isObject(error)) { var stack = error.stack; message = title + formatStack(stack, error) } else message = title + String(error); "function" == typeof printWarning ? printWarning(message, isSoft) : ("function" == typeof console.log || "object" == typeof console.log) && console.log(message) } } function fireRejectionEvent(name, localHandler, reason, promise) { var localEventFired = !1; try { "function" == typeof localHandler && (localEventFired = !0, "rejectionHandled" === name ? localHandler(promise) : localHandler(reason, promise)) } catch (e) { async.throwLater(e) } "unhandledRejection" === name ? activeFireEvent(name, reason, promise) || localEventFired || formatAndLogError(reason, "Unhandled rejection ") : activeFireEvent(name, promise) } function formatNonError(obj) { var str; if ("function" == typeof obj) str = "[function " + (obj.name || "anonymous") + "]"; else { str = obj && "function" == typeof obj.toString ? obj.toString() : util.toString(obj); var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; if (ruselessToString.test(str)) try { var newStr = JSON.stringify(obj); str = newStr } catch (e) { } 0 === str.length && (str = "(empty array)") } return "(<" + snip(str) + ">, no stack trace)" } function snip(str) { var maxChars = 41; return str.length < maxChars ? str : str.substr(0, maxChars - 3) + "..." } function longStackTracesIsSupported() { return "function" == typeof captureStackTrace } function parseLineInfo(line) { var matches = line.match(parseLineInfoRegex); return matches ? { fileName: matches[1], line: parseInt(matches[2], 10) } : void 0 } function setBounds(firstLineError, lastLineError) { if (longStackTracesIsSupported()) { for (var firstFileName, lastFileName, firstStackLines = firstLineError.stack.split("\n"), lastStackLines = lastLineError.stack.split("\n"), firstIndex = -1, lastIndex = -1, i = 0; i < firstStackLines.length; ++i) { var result = parseLineInfo(firstStackLines[i]); if (result) { firstFileName = result.fileName, firstIndex = result.line; break } } for (var i = 0; i < lastStackLines.length; ++i) { var result = parseLineInfo(lastStackLines[i]); if (result) { lastFileName = result.fileName, lastIndex = result.line; break } } 0 > firstIndex || 0 > lastIndex || !firstFileName || !lastFileName || firstFileName !== lastFileName || firstIndex >= lastIndex || (shouldIgnore = function (line) { if (bluebirdFramePattern.test(line)) return !0; var info = parseLineInfo(line); return info && info.fileName === firstFileName && firstIndex <= info.line && info.line <= lastIndex ? !0 : !1 }) } } function CapturedTrace(parent) { this._parent = parent, this._promisesCreated = 0; var length = this._length = 1 + (void 0 === parent ? 0 : parent._length); captureStackTrace(this, CapturedTrace), length > 32 && this.uncycle() } var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = require("./errors").Warning, util = require("./util"), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); Promise.prototype.suppressUnhandledRejections = function () { var target = this._target(); target._bitField = -1048577 & target._bitField | 524288 }, Promise.prototype._ensurePossibleRejectionHandled = function () { 0 === (524288 & this._bitField) && (this._setRejectionIsUnhandled(), async.invokeLater(this._notifyUnhandledRejection, this, void 0)) }, Promise.prototype._notifyUnhandledRejectionIsHandled = function () { fireRejectionEvent("rejectionHandled", unhandledRejectionHandled, void 0, this) }, Promise.prototype._setReturnedNonUndefined = function () { this._bitField = 268435456 | this._bitField }, Promise.prototype._returnedNonUndefined = function () { return 0 !== (268435456 & this._bitField) }, Promise.prototype._notifyUnhandledRejection = function () { if (this._isRejectionUnhandled()) { var reason = this._settledValue(); this._setUnhandledRejectionIsNotified(), fireRejectionEvent("unhandledRejection", possiblyUnhandledRejection, reason, this) } }, Promise.prototype._setUnhandledRejectionIsNotified = function () { this._bitField = 262144 | this._bitField }, Promise.prototype._unsetUnhandledRejectionIsNotified = function () { this._bitField = -262145 & this._bitField }, Promise.prototype._isUnhandledRejectionNotified = function () { return (262144 & this._bitField) > 0 }, Promise.prototype._setRejectionIsUnhandled = function () { this._bitField = 1048576 | this._bitField }, Promise.prototype._unsetRejectionIsUnhandled = function () { this._bitField = -1048577 & this._bitField, this._isUnhandledRejectionNotified() && (this._unsetUnhandledRejectionIsNotified(), this._notifyUnhandledRejectionIsHandled()) }, Promise.prototype._isRejectionUnhandled = function () { return (1048576 & this._bitField) > 0 }, Promise.prototype._warn = function (message, shouldUseOwnTrace, promise) { return warn(message, shouldUseOwnTrace, promise || this) }, Promise.onPossiblyUnhandledRejection = function (fn) { var domain = getDomain(); possiblyUnhandledRejection = "function" == typeof fn ? null === domain ? fn : util.domainBind(domain, fn) : void 0 }, Promise.onUnhandledRejectionHandled = function (fn) { var domain = getDomain(); unhandledRejectionHandled = "function" == typeof fn ? null === domain ? fn : util.domainBind(domain, fn) : void 0 }; var disableLongStackTraces = function () { }; Promise.longStackTraces = function () { if (async.haveItemsQueued() && !config.longStackTraces) throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); if (!config.longStackTraces && longStackTracesIsSupported()) { var Promise_captureStackTrace = Promise.prototype._captureStackTrace, Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; config.longStackTraces = !0, disableLongStackTraces = function () { if (async.haveItemsQueued() && !config.longStackTraces) throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); Promise.prototype._captureStackTrace = Promise_captureStackTrace, Promise.prototype._attachExtraTrace = Promise_attachExtraTrace, Context.deactivateLongStackTraces(), async.enableTrampoline(), config.longStackTraces = !1 }, Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace, Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace, Context.activateLongStackTraces(), async.disableTrampolineIfNecessary() } }, Promise.hasLongStackTraces = function () { return config.longStackTraces && longStackTracesIsSupported() }; var fireDomEvent = function () { try { if ("function" == typeof CustomEvent) { var event = new CustomEvent("CustomEvent"); return util.global.dispatchEvent(event), function (name, event) { var domEvent = new CustomEvent(name.toLowerCase(), { detail: event, cancelable: !0 }); return !util.global.dispatchEvent(domEvent) } } if ("function" == typeof Event) { var event = new Event("CustomEvent"); return util.global.dispatchEvent(event), function (name, event) { var domEvent = new Event(name.toLowerCase(), { cancelable: !0 }); return domEvent.detail = event, !util.global.dispatchEvent(domEvent) } } var event = document.createEvent("CustomEvent"); return event.initCustomEvent("testingtheevent", !1, !0, {}), util.global.dispatchEvent(event), function (name, event) { var domEvent = document.createEvent("CustomEvent"); return domEvent.initCustomEvent(name.toLowerCase(), !1, !0, event), !util.global.dispatchEvent(domEvent) } } catch (e) { } return function () { return !1 } }(), fireGlobalEvent = function () { return util.isNode ? function () { return process.emit.apply(process, arguments) } : util.global ? function (name) { var methodName = "on" + name.toLowerCase(), method = util.global[methodName]; return method ? (method.apply(util.global, [].slice.call(arguments, 1)), !0) : !1 } : function () { return !1 } }(), eventToObjectGenerator = { promiseCreated: generatePromiseLifecycleEventObject, promiseFulfilled: generatePromiseLifecycleEventObject, promiseRejected: generatePromiseLifecycleEventObject, promiseResolved: generatePromiseLifecycleEventObject, promiseCancelled: generatePromiseLifecycleEventObject, promiseChained: function (name, promise, child) { return { promise: promise, child: child } }, warning: function (name, warning) { return { warning: warning } }, unhandledRejection: function (name, reason, promise) { return { reason: reason, promise: promise } }, rejectionHandled: generatePromiseLifecycleEventObject }, activeFireEvent = function (name) { var globalEventFired = !1; try { globalEventFired = fireGlobalEvent.apply(null, arguments) } catch (e) { async.throwLater(e), globalEventFired = !0 } var domEventFired = !1; try { domEventFired = fireDomEvent(name, eventToObjectGenerator[name].apply(null, arguments)) } catch (e) { async.throwLater(e), domEventFired = !0 } return domEventFired || globalEventFired }; Promise.config = function (opts) { if (opts = Object(opts), "longStackTraces" in opts && (opts.longStackTraces ? Promise.longStackTraces() : !opts.longStackTraces && Promise.hasLongStackTraces() && disableLongStackTraces()), "warnings" in opts) { var warningsOption = opts.warnings; config.warnings = !!warningsOption, wForgottenReturn = config.warnings, util.isObject(warningsOption) && "wForgottenReturn" in warningsOption && (wForgottenReturn = !!warningsOption.wForgottenReturn) } if ("cancellation" in opts && opts.cancellation && !config.cancellation) { if (async.haveItemsQueued()) throw new Error("cannot enable cancellation after promises are in use"); Promise.prototype._clearCancellationData = cancellationClearCancellationData, Promise.prototype._propagateFrom = cancellationPropagateFrom, Promise.prototype._onCancel = cancellationOnCancel, Promise.prototype._setOnCancel = cancellationSetOnCancel, Promise.prototype._attachCancellationCallback = cancellationAttachCancellationCallback, Promise.prototype._execute = cancellationExecute, propagateFromFunction = cancellationPropagateFrom, config.cancellation = !0 } return "monitoring" in opts && (opts.monitoring && !config.monitoring ? (config.monitoring = !0, Promise.prototype._fireEvent = activeFireEvent) : !opts.monitoring && config.monitoring && (config.monitoring = !1, Promise.prototype._fireEvent = defaultFireEvent)), Promise }, Promise.prototype._fireEvent = defaultFireEvent, Promise.prototype._execute = function (executor, resolve, reject) { try { executor(resolve, reject) } catch (e) { return e } }, Promise.prototype._onCancel = function () { }, Promise.prototype._setOnCancel = function (handler) { }, Promise.prototype._attachCancellationCallback = function (onCancel) { }, Promise.prototype._captureStackTrace = function () { }, Promise.prototype._attachExtraTrace = function () { }, Promise.prototype._clearCancellationData = function () { }, Promise.prototype._propagateFrom = function (parent, flags) { }; var propagateFromFunction = bindingPropagateFrom, shouldIgnore = function () { return !1 }, parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; util.inherits(CapturedTrace, Error), Context.CapturedTrace = CapturedTrace, CapturedTrace.prototype.uncycle = function () { var length = this._length; if (!(2 > length)) { for (var nodes = [], stackToIndex = {}, i = 0, node = this; void 0 !== node; ++i)nodes.push(node), node = node._parent; length = this._length = i; for (var i = length - 1; i >= 0; --i) { var stack = nodes[i].stack; void 0 === stackToIndex[stack] && (stackToIndex[stack] = i) } for (var i = 0; length > i; ++i) { var currentStack = nodes[i].stack, index = stackToIndex[currentStack]; if (void 0 !== index && index !== i) { index > 0 && (nodes[index - 1]._parent = void 0, nodes[index - 1]._length = 1), nodes[i]._parent = void 0, nodes[i]._length = 1; var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; length - 1 > index ? (cycleEdgeNode._parent = nodes[index + 1], cycleEdgeNode._parent.uncycle(), cycleEdgeNode._length = cycleEdgeNode._parent._length + 1) : (cycleEdgeNode._parent = void 0, cycleEdgeNode._length = 1); for (var currentChildLength = cycleEdgeNode._length + 1, j = i - 2; j >= 0; --j)nodes[j]._length = currentChildLength, currentChildLength++; return } } } }, CapturedTrace.prototype.attachExtraTrace = function (error) { if (!error.__stackCleaned__) { this.uncycle(); for (var parsed = parseStackAndMessage(error), message = parsed.message, stacks = [parsed.stack], trace = this; void 0 !== trace;)stacks.push(cleanStack(trace.stack.split("\n"))), trace = trace._parent; removeCommonRoots(stacks), removeDuplicateOrEmptyJumps(stacks), util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)), util.notEnumerableProp(error, "__stackCleaned__", !0) } }; var captureStackTrace = function () { var v8stackFramePattern = /^\s*at\s*/, v8stackFormatter = function (stack, error) { return "string" == typeof stack ? stack : void 0 !== error.name && void 0 !== error.message ? error.toString() : formatNonError(error) }; if ("number" == typeof Error.stackTraceLimit && "function" == typeof Error.captureStackTrace) { Error.stackTraceLimit += 6, stackFramePattern = v8stackFramePattern, formatStack = v8stackFormatter; var captureStackTrace = Error.captureStackTrace; return shouldIgnore = function (line) { return bluebirdFramePattern.test(line) }, function (receiver, ignoreUntil) { Error.stackTraceLimit += 6, captureStackTrace(receiver, ignoreUntil), Error.stackTraceLimit -= 6 } } var err = new Error; if ("string" == typeof err.stack && err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) return stackFramePattern = /@/, formatStack = v8stackFormatter, indentStackFrames = !0, function (o) { o.stack = (new Error).stack }; var hasStackAfterThrow; try { throw new Error } catch (e) { hasStackAfterThrow = "stack" in e } return "stack" in err || !hasStackAfterThrow || "number" != typeof Error.stackTraceLimit ? (formatStack = function (stack, error) { return "string" == typeof stack ? stack : "object" != typeof error && "function" != typeof error || void 0 === error.name || void 0 === error.message ? formatNonError(error) : error.toString() }, null) : (stackFramePattern = v8stackFramePattern, formatStack = v8stackFormatter, function (o) { Error.stackTraceLimit += 6; try { throw new Error } catch (e) { o.stack = e.stack } Error.stackTraceLimit -= 6 }) }([]); "undefined" != typeof console && "undefined" != typeof console.warn && (printWarning = function (message) { console.warn(message) }, util.isNode && process.stderr.isTTY ? printWarning = function (message, isSoft) { var color = isSoft ? "" : ""; console.warn(color + message + "\n") } : util.isNode || "string" != typeof (new Error).stack || (printWarning = function (message, isSoft) { console.warn("%c" + message, isSoft ? "color: darkorange" : "color: red") })); var config = { warnings: warnings, longStackTraces: !1, cancellation: !1, monitoring: !1 }; return longStackTraces && Promise.longStackTraces(), { longStackTraces: function () { return config.longStackTraces }, warnings: function () { return config.warnings }, cancellation: function () { return config.cancellation }, monitoring: function () { return config.monitoring }, propagateFromFunction: function () { return propagateFromFunction }, boundValueFunction: function () { return boundValueFunction }, checkForgottenReturns: checkForgottenReturns, setBounds: setBounds, warn: warn, deprecated: deprecated, CapturedTrace: CapturedTrace, fireDomEvent: fireDomEvent, fireGlobalEvent: fireGlobalEvent } } }).call(this, require("_process")) }, { "./errors": 51, "./util": 75, _process: 102 }], 49: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function returner() { return this.value } function thrower() { throw this.reason } Promise.prototype["return"] = Promise.prototype.thenReturn = function (value) { return value instanceof Promise && value.suppressUnhandledRejections(), this._then(returner, void 0, void 0, { value: value }, void 0) }, Promise.prototype["throw"] = Promise.prototype.thenThrow = function (reason) { return this._then(thrower, void 0, void 0, { reason: reason }, void 0) }, Promise.prototype.catchThrow = function (reason) { if (arguments.length <= 1) return this._then(void 0, thrower, void 0, { reason: reason }, void 0); var _reason = arguments[1], handler = function () { throw _reason }; return this.caught(reason, handler) }, Promise.prototype.catchReturn = function (value) { if (arguments.length <= 1) return value instanceof Promise && value.suppressUnhandledRejections(), this._then(void 0, returner, void 0, { value: value }, void 0); var _value = arguments[1]; _value instanceof Promise && _value.suppressUnhandledRejections(); var handler = function () { return _value }; return this.caught(value, handler) } } }, {}], 50: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { function promiseAllThis() { return PromiseAll(this) } function PromiseMapSeries(promises, fn) { return PromiseReduce(promises, fn, INTERNAL, INTERNAL) } var PromiseReduce = Promise.reduce, PromiseAll = Promise.all; Promise.prototype.each = function (fn) { return PromiseReduce(this, fn, INTERNAL, 0)._then(promiseAllThis, void 0, void 0, this, void 0) }, Promise.prototype.mapSeries = function (fn) { return PromiseReduce(this, fn, INTERNAL, INTERNAL) }, Promise.each = function (promises, fn) { return PromiseReduce(promises, fn, INTERNAL, 0)._then(promiseAllThis, void 0, void 0, promises, void 0) }, Promise.mapSeries = PromiseMapSeries } }, {}], 51: [function (require, module, exports) { "use strict"; function subError(nameProperty, defaultMessage) { function SubError(message) { return this instanceof SubError ? (notEnumerableProp(this, "message", "string" == typeof message ? message : defaultMessage), notEnumerableProp(this, "name", nameProperty), void (Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : Error.call(this))) : new SubError(message) } return inherits(SubError, Error), SubError } function OperationalError(message) { return this instanceof OperationalError ? (notEnumerableProp(this, "name", "OperationalError"), notEnumerableProp(this, "message", message), this.cause = message, this.isOperational = !0, void (message instanceof Error ? (notEnumerableProp(this, "message", message.message), notEnumerableProp(this, "stack", message.stack)) : Error.captureStackTrace && Error.captureStackTrace(this, this.constructor))) : new OperationalError(message) } var _TypeError, _RangeError, es5 = require("./es5"), Objectfreeze = es5.freeze, util = require("./util"), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp, Warning = subError("Warning", "warning"), CancellationError = subError("CancellationError", "cancellation error"), TimeoutError = subError("TimeoutError", "timeout error"), AggregateError = subError("AggregateError", "aggregate error"); try { _TypeError = TypeError, _RangeError = RangeError } catch (e) { _TypeError = subError("TypeError", "type error"), _RangeError = subError("RangeError", "range error") } for (var methods = "join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "), i = 0; i < methods.length; ++i)"function" == typeof Array.prototype[methods[i]] && (AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]); es5.defineProperty(AggregateError.prototype, "length", { value: 0, configurable: !1, writable: !0, enumerable: !0 }), AggregateError.prototype.isOperational = !0; var level = 0; AggregateError.prototype.toString = function () { var indent = Array(4 * level + 1).join(" "), ret = "\n" + indent + "AggregateError of:\n"; level++, indent = Array(4 * level + 1).join(" "); for (var i = 0; i < this.length; ++i) { for (var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "", lines = str.split("\n"), j = 0; j < lines.length; ++j)lines[j] = indent + lines[j]; str = lines.join("\n"), ret += str + "\n" } return level--, ret }, inherits(OperationalError, Error); var errorTypes = Error.__BluebirdErrorTypes__; errorTypes || (errorTypes = Objectfreeze({ CancellationError: CancellationError, TimeoutError: TimeoutError, OperationalError: OperationalError, RejectionError: OperationalError, AggregateError: AggregateError }), es5.defineProperty(Error, "__BluebirdErrorTypes__", { value: errorTypes, writable: !1, enumerable: !1, configurable: !1 })), module.exports = { Error: Error, TypeError: _TypeError, RangeError: _RangeError, CancellationError: errorTypes.CancellationError, OperationalError: errorTypes.OperationalError, TimeoutError: errorTypes.TimeoutError, AggregateError: errorTypes.AggregateError, Warning: Warning } }, { "./es5": 52, "./util": 75 }], 52: [function (require, module, exports) { + var isES5 = function () { "use strict"; return void 0 === this }(); if (isES5) module.exports = { freeze: Object.freeze, defineProperty: Object.defineProperty, getDescriptor: Object.getOwnPropertyDescriptor, keys: Object.keys, names: Object.getOwnPropertyNames, getPrototypeOf: Object.getPrototypeOf, isArray: Array.isArray, isES5: isES5, propertyIsWritable: function (obj, prop) { var descriptor = Object.getOwnPropertyDescriptor(obj, prop); return !(descriptor && !descriptor.writable && !descriptor.set) } }; else { + var has = {}.hasOwnProperty, str = {}.toString, proto = {}.constructor.prototype, ObjectKeys = function (o) { var ret = []; for (var key in o) has.call(o, key) && ret.push(key); return ret }, ObjectGetDescriptor = function (o, key) { return { value: o[key] } }, ObjectDefineProperty = function (o, key, desc) { return o[key] = desc.value, o }, ObjectFreeze = function (obj) { return obj }, ObjectGetPrototypeOf = function (obj) { try { return Object(obj).constructor.prototype } catch (e) { return proto } }, ArrayIsArray = function (obj) { try { return "[object Array]" === str.call(obj) } catch (e) { return !1 } }; module.exports = { + isArray: ArrayIsArray, keys: ObjectKeys, + names: ObjectKeys, defineProperty: ObjectDefineProperty, getDescriptor: ObjectGetDescriptor, freeze: ObjectFreeze, getPrototypeOf: ObjectGetPrototypeOf, isES5: isES5, propertyIsWritable: function () { return !0 } } - } function copyLocator(f, t) { return t.lineNumber = f.lineNumber, t.columnNumber = f.columnNumber, t } function parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) { function addAttribute(qname, value, startIndex) { el.attributeNames.hasOwnProperty(qname) && errorHandler.fatalError("Attribute " + qname + " redefined"), el.addValue(qname, value.replace(/[\t\n\r]/g, " ").replace(/&#?\w+;/g, entityReplacer), startIndex) } for (var attrName, value, p = ++start, s = S_TAG; ;) { var c = source.charAt(p); switch (c) { case "=": if (s === S_ATTR) attrName = source.slice(start, p), s = S_EQ; else { if (s !== S_ATTR_SPACE) throw new Error("attribute equal must after attrName"); s = S_EQ } break; case "'": case '"': if (s === S_EQ || s === S_ATTR) { if (s === S_ATTR && (errorHandler.warning('attribute value must after "="'), attrName = source.slice(start, p)), start = p + 1, p = source.indexOf(c, start), !(p > 0)) throw new Error("attribute value no end '" + c + "' match"); value = source.slice(start, p), addAttribute(attrName, value, start - 1), s = S_ATTR_END } else { if (s != S_ATTR_NOQUOT_VALUE) throw new Error('attribute value must after "="'); value = source.slice(start, p), addAttribute(attrName, value, start), errorHandler.warning('attribute "' + attrName + '" missed start quot(' + c + ")!!"), start = p + 1, s = S_ATTR_END } break; case "/": switch (s) { case S_TAG: el.setTagName(source.slice(start, p)); case S_ATTR_END: case S_TAG_SPACE: case S_TAG_CLOSE: s = S_TAG_CLOSE, el.closed = !0; case S_ATTR_NOQUOT_VALUE: case S_ATTR: case S_ATTR_SPACE: break; default: throw new Error("attribute invalid close char('/')") }break; case "": return errorHandler.error("unexpected end of input"), s == S_TAG && el.setTagName(source.slice(start, p)), p; case ">": switch (s) { case S_TAG: el.setTagName(source.slice(start, p)); case S_ATTR_END: case S_TAG_SPACE: case S_TAG_CLOSE: break; case S_ATTR_NOQUOT_VALUE: case S_ATTR: value = source.slice(start, p), "/" === value.slice(-1) && (el.closed = !0, value = value.slice(0, -1)); case S_ATTR_SPACE: s === S_ATTR_SPACE && (value = attrName), s == S_ATTR_NOQUOT_VALUE ? (errorHandler.warning('attribute "' + value + '" missed quot(")!'), addAttribute(attrName, value, start)) : (NAMESPACE.isHTML(currentNSMap[""]) && value.match(/^(?:disabled|checked|selected)$/i) || errorHandler.warning('attribute "' + value + '" missed value!! "' + value + '" instead!!'), addAttribute(value, value, start)); break; case S_EQ: throw new Error("attribute value missed!!") }return p; case "€": c = " "; default: if (" " >= c) switch (s) { case S_TAG: el.setTagName(source.slice(start, p)), s = S_TAG_SPACE; break; case S_ATTR: attrName = source.slice(start, p), s = S_ATTR_SPACE; break; case S_ATTR_NOQUOT_VALUE: var value = source.slice(start, p); errorHandler.warning('attribute "' + value + '" missed quot(")!!'), addAttribute(attrName, value, start); case S_ATTR_END: s = S_TAG_SPACE } else switch (s) { case S_ATTR_SPACE: el.tagName; NAMESPACE.isHTML(currentNSMap[""]) && attrName.match(/^(?:disabled|checked|selected)$/i) || errorHandler.warning('attribute "' + attrName + '" missed value!! "' + attrName + '" instead2!!'), addAttribute(attrName, attrName, start), start = p, s = S_ATTR; break; case S_ATTR_END: errorHandler.warning('attribute space is required"' + attrName + '"!!'); case S_TAG_SPACE: s = S_ATTR, start = p; break; case S_EQ: s = S_ATTR_NOQUOT_VALUE, start = p; break; case S_TAG_CLOSE: throw new Error("elements closed character '/' and '>' must be connected to") } }p++ } } function appendElement(el, domBuilder, currentNSMap) { for (var tagName = el.tagName, localNSMap = null, i = el.length; i--;) { var a = el[i], qName = a.qName, value = a.value, nsp = qName.indexOf(":"); if (nsp > 0) var prefix = a.prefix = qName.slice(0, nsp), localName = qName.slice(nsp + 1), nsPrefix = "xmlns" === prefix && localName; else localName = qName, prefix = null, nsPrefix = "xmlns" === qName && ""; a.localName = localName, nsPrefix !== !1 && (null == localNSMap && (localNSMap = {}, _copy(currentNSMap, currentNSMap = {})), currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value, a.uri = NAMESPACE.XMLNS, domBuilder.startPrefixMapping(nsPrefix, value)) } for (var i = el.length; i--;) { a = el[i]; var prefix = a.prefix; prefix && ("xml" === prefix && (a.uri = NAMESPACE.XML), "xmlns" !== prefix && (a.uri = currentNSMap[prefix || ""])) } var nsp = tagName.indexOf(":"); nsp > 0 ? (prefix = el.prefix = tagName.slice(0, nsp), localName = el.localName = tagName.slice(nsp + 1)) : (prefix = null, localName = el.localName = tagName); var ns = el.uri = currentNSMap[prefix || ""]; if (domBuilder.startElement(ns, localName, tagName, el), !el.closed) return el.currentNSMap = currentNSMap, el.localNSMap = localNSMap, !0; if (domBuilder.endElement(ns, localName, tagName), localNSMap) for (prefix in localNSMap) Object.prototype.hasOwnProperty.call(localNSMap, prefix) && domBuilder.endPrefixMapping(prefix) } function parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) { if (/^(?:script|textarea)$/i.test(tagName)) { var elEndStart = source.indexOf("", elStartEnd), text = source.substring(elStartEnd + 1, elEndStart); if (/[&<]/.test(text)) return /^script$/i.test(tagName) ? (domBuilder.characters(text, 0, text.length), elEndStart) : (text = text.replace(/&#?\w+;/g, entityReplacer), domBuilder.characters(text, 0, text.length), elEndStart) } return elStartEnd + 1 } function fixSelfClosed(source, elStartEnd, tagName, closeMap) { var pos = closeMap[tagName]; return null == pos && (pos = source.lastIndexOf(""), elStartEnd > pos && (pos = source.lastIndexOf(" pos } function _copy(source, target) { for (var n in source) Object.prototype.hasOwnProperty.call(source, n) && (target[n] = source[n]) } function parseDCC(source, start, domBuilder, errorHandler) { var next = source.charAt(start + 2); switch (next) { case "-": if ("-" === source.charAt(start + 3)) { var end = source.indexOf("-->", start + 4); return end > start ? (domBuilder.comment(source, start + 4, end - start - 4), end + 3) : (errorHandler.error("Unclosed comment"), -1) } return -1; default: if ("CDATA[" == source.substr(start + 3, 6)) { var end = source.indexOf("]]>", start + 9); return domBuilder.startCDATA(), domBuilder.characters(source, start + 9, end - start - 9), domBuilder.endCDATA(), end + 3 } var matchs = split(source, start), len = matchs.length; if (len > 1 && /!doctype/i.test(matchs[0][0])) { var name = matchs[1][0], pubid = !1, sysid = !1; len > 3 && (/^public$/i.test(matchs[2][0]) ? (pubid = matchs[3][0], sysid = len > 4 && matchs[4][0]) : /^system$/i.test(matchs[2][0]) && (sysid = matchs[3][0])); var lastMatch = matchs[len - 1]; return domBuilder.startDTD(name, pubid, sysid), domBuilder.endDTD(), lastMatch.index + lastMatch[0].length } }return -1 } function parseInstruction(source, start, domBuilder) { var end = source.indexOf("?>", start); if (end) { var match = source.substring(start, end).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/); if (match) { match[0].length; return domBuilder.processingInstruction(match[1], match[2]), end + 2 } return -1 } return -1 } function ElementAttributes() { this.attributeNames = {} } function split(source, start) { var match, buf = [], reg = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g; for (reg.lastIndex = start, reg.exec(source); match = reg.exec(source);)if (buf.push(match), match[1]) return buf } var NAMESPACE = require("./conventions").NAMESPACE, nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, nameChar = new RegExp("[\\-\\.0-9" + nameStartChar.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"), tagNamePattern = new RegExp("^" + nameStartChar.source + nameChar.source + "*(?::" + nameStartChar.source + nameChar.source + "*)?$"), S_TAG = 0, S_ATTR = 1, S_ATTR_SPACE = 2, S_EQ = 3, S_ATTR_NOQUOT_VALUE = 4, S_ATTR_END = 5, S_TAG_SPACE = 6, S_TAG_CLOSE = 7; ParseError.prototype = new Error, ParseError.prototype.name = ParseError.name, XMLReader.prototype = { parse: function (source, defaultNSMap, entityMap) { var domBuilder = this.domBuilder; domBuilder.startDocument(), _copy(defaultNSMap, defaultNSMap = {}), parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler), domBuilder.endDocument() } }, ElementAttributes.prototype = { setTagName: function (tagName) { if (!tagNamePattern.test(tagName)) throw new Error("invalid tagName:" + tagName); this.tagName = tagName }, addValue: function (qName, value, offset) { if (!tagNamePattern.test(qName)) throw new Error("invalid attribute:" + qName); this.attributeNames[qName] = this.length, this[this.length++] = { qName: qName, value: value, offset: offset } }, length: 0, getLocalName: function (i) { return this[i].localName }, getLocator: function (i) { return this[i].locator }, getQName: function (i) { return this[i].qName }, getURI: function (i) { return this[i].uri }, getValue: function (i) { return this[i].value } }, exports.XMLReader = XMLReader, exports.ParseError = ParseError - }, { "./conventions": 41 }], 47: [function (require, module, exports) { "use strict"; function getLens(b64) { var len = b64.length; if (len % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); var validLen = b64.indexOf("="); -1 === validLen && (validLen = len); var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4; return [validLen, placeHoldersLen] } function byteLength(b64) { var lens = getLens(b64), validLen = lens[0], placeHoldersLen = lens[1]; return 3 * (validLen + placeHoldersLen) / 4 - placeHoldersLen } function _byteLength(b64, validLen, placeHoldersLen) { return 3 * (validLen + placeHoldersLen) / 4 - placeHoldersLen } function toByteArray(b64) { var tmp, i, lens = getLens(b64), validLen = lens[0], placeHoldersLen = lens[1], arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)), curByte = 0, len = placeHoldersLen > 0 ? validLen - 4 : validLen; for (i = 0; len > i; i += 4)tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)], arr[curByte++] = tmp >> 16 & 255, arr[curByte++] = tmp >> 8 & 255, arr[curByte++] = 255 & tmp; return 2 === placeHoldersLen && (tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4, arr[curByte++] = 255 & tmp), 1 === placeHoldersLen && (tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2, arr[curByte++] = tmp >> 8 & 255, arr[curByte++] = 255 & tmp), arr } function tripletToBase64(num) { return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[63 & num] } function encodeChunk(uint8, start, end) { for (var tmp, output = [], i = start; end > i; i += 3)tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (255 & uint8[i + 2]), output.push(tripletToBase64(tmp)); return output.join("") } function fromByteArray(uint8) { for (var tmp, len = uint8.length, extraBytes = len % 3, parts = [], maxChunkLength = 16383, i = 0, len2 = len - extraBytes; len2 > i; i += maxChunkLength)parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength)); return 1 === extraBytes ? (tmp = uint8[len - 1], parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==")) : 2 === extraBytes && (tmp = (uint8[len - 2] << 8) + uint8[len - 1], parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=")), parts.join("") } exports.byteLength = byteLength, exports.toByteArray = toByteArray, exports.fromByteArray = fromByteArray; for (var lookup = [], revLookup = [], Arr = "undefined" != typeof Uint8Array ? Uint8Array : Array, code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i = 0, len = code.length; len > i; ++i)lookup[i] = code[i], revLookup[code.charCodeAt(i)] = i; revLookup["-".charCodeAt(0)] = 62, revLookup["_".charCodeAt(0)] = 63 }, {}], 48: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function any(promises) { var ret = new SomePromiseArray(promises), promise = ret.promise(); return ret.setHowMany(1), ret.setUnwrap(), ret.init(), promise } var SomePromiseArray = Promise._SomePromiseArray; Promise.any = function (promises) { return any(promises) }, Promise.prototype.any = function () { return any(this) } } }, {}], 49: [function (require, module, exports) { (function (process) { "use strict"; function Async() { this._customScheduler = !1, this._isTickUsed = !1, this._lateQueue = new Queue(16), this._normalQueue = new Queue(16), this._haveDrainedQueues = !1, this._trampolineEnabled = !0; var self = this; this.drainQueues = function () { self._drainQueues() }, this._schedule = schedule } function AsyncInvokeLater(fn, receiver, arg) { this._lateQueue.push(fn, receiver, arg), this._queueTick() } function AsyncInvoke(fn, receiver, arg) { this._normalQueue.push(fn, receiver, arg), this._queueTick() } function AsyncSettlePromises(promise) { this._normalQueue._pushOne(promise), this._queueTick() } var firstLineError; try { throw new Error } catch (e) { firstLineError = e } var schedule = require("./schedule"), Queue = require("./queue"), util = require("./util"); Async.prototype.setScheduler = function (fn) { var prev = this._schedule; return this._schedule = fn, this._customScheduler = !0, prev }, Async.prototype.hasCustomScheduler = function () { return this._customScheduler }, Async.prototype.enableTrampoline = function () { this._trampolineEnabled = !0 }, Async.prototype.disableTrampolineIfNecessary = function () { util.hasDevTools && (this._trampolineEnabled = !1) }, Async.prototype.haveItemsQueued = function () { return this._isTickUsed || this._haveDrainedQueues }, Async.prototype.fatalError = function (e, isNode) { isNode ? (process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + "\n"), process.exit(2)) : this.throwLater(e) }, Async.prototype.throwLater = function (fn, arg) { if (1 === arguments.length && (arg = fn, fn = function () { throw arg }), "undefined" != typeof setTimeout) setTimeout(function () { fn(arg) }, 0); else try { this._schedule(function () { fn(arg) }) } catch (e) { throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n") } }, util.hasDevTools ? (Async.prototype.invokeLater = function (fn, receiver, arg) { this._trampolineEnabled ? AsyncInvokeLater.call(this, fn, receiver, arg) : this._schedule(function () { setTimeout(function () { fn.call(receiver, arg) }, 100) }) }, Async.prototype.invoke = function (fn, receiver, arg) { this._trampolineEnabled ? AsyncInvoke.call(this, fn, receiver, arg) : this._schedule(function () { fn.call(receiver, arg) }) }, Async.prototype.settlePromises = function (promise) { this._trampolineEnabled ? AsyncSettlePromises.call(this, promise) : this._schedule(function () { promise._settlePromises() }) }) : (Async.prototype.invokeLater = AsyncInvokeLater, Async.prototype.invoke = AsyncInvoke, Async.prototype.settlePromises = AsyncSettlePromises), Async.prototype._drainQueue = function (queue) { for (; queue.length() > 0;) { var fn = queue.shift(); if ("function" == typeof fn) { var receiver = queue.shift(), arg = queue.shift(); fn.call(receiver, arg) } else fn._settlePromises() } }, Async.prototype._drainQueues = function () { this._drainQueue(this._normalQueue), this._reset(), this._haveDrainedQueues = !0, this._drainQueue(this._lateQueue) }, Async.prototype._queueTick = function () { this._isTickUsed || (this._isTickUsed = !0, this._schedule(this.drainQueues)) }, Async.prototype._reset = function () { this._isTickUsed = !1 }, module.exports = Async, module.exports.firstLineError = firstLineError }).call(this, require("_process")) }, { "./queue": 72, "./schedule": 75, "./util": 82, _process: 102 }], 50: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, debug) { var calledBind = !1, rejectThis = function (_, e) { this._reject(e) }, targetRejected = function (e, context) { context.promiseRejectionQueued = !0, context.bindingPromise._then(rejectThis, rejectThis, null, this, e) }, bindingResolved = function (thisArg, context) { 0 === (50397184 & this._bitField) && this._resolveCallback(context.target) }, bindingRejected = function (e, context) { context.promiseRejectionQueued || this._reject(e) }; Promise.prototype.bind = function (thisArg) { calledBind || (calledBind = !0, Promise.prototype._propagateFrom = debug.propagateFromFunction(), Promise.prototype._boundValue = debug.boundValueFunction()); var maybePromise = tryConvertToPromise(thisArg), ret = new Promise(INTERNAL); ret._propagateFrom(this, 1); var target = this._target(); if (ret._setBoundTo(maybePromise), maybePromise instanceof Promise) { var context = { promiseRejectionQueued: !1, promise: ret, target: target, bindingPromise: maybePromise }; target._then(INTERNAL, targetRejected, void 0, ret, context), maybePromise._then(bindingResolved, bindingRejected, void 0, ret, context), ret._setOnCancel(maybePromise) } else ret._resolveCallback(target); return ret }, Promise.prototype._setBoundTo = function (obj) { void 0 !== obj ? (this._bitField = 2097152 | this._bitField, this._boundTo = obj) : this._bitField = -2097153 & this._bitField }, Promise.prototype._isBound = function () { return 2097152 === (2097152 & this._bitField) }, Promise.bind = function (thisArg, value) { return Promise.resolve(value).bind(thisArg) } } }, {}], 51: [function (require, module, exports) { "use strict"; var cr = Object.create; if (cr) { var callerCache = cr(null), getterCache = cr(null); callerCache[" size"] = getterCache[" size"] = 0 } module.exports = function (Promise) { function ensureMethod(obj, methodName) { var fn; if (null != obj && (fn = obj[methodName]), "function" != typeof fn) { var message = "Object " + util.classString(obj) + " has no method '" + util.toString(methodName) + "'"; throw new Promise.TypeError(message) } return fn } function caller(obj) { var methodName = this.pop(), fn = ensureMethod(obj, methodName); return fn.apply(obj, this) } function namedGetter(obj) { return obj[this] } function indexedGetter(obj) { var index = +this; return 0 > index && (index = Math.max(0, index + obj.length)), obj[index] } var getMethodCaller, getGetter, util = require("./util"), canEvaluate = util.canEvaluate, isIdentifier = util.isIdentifier, makeMethodCaller = function (methodName) { return new Function("ensureMethod", " \n return function(obj) { \n 'use strict' \n var len = this.length; \n ensureMethod(obj, 'methodName'); \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: \n return obj.methodName.apply(obj, this); \n } \n }; \n ".replace(/methodName/g, methodName))(ensureMethod) }, makeGetter = function (propertyName) { return new Function("obj", " \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName", propertyName)) }, getCompiled = function (name, compiler, cache) { var ret = cache[name]; if ("function" != typeof ret) { if (!isIdentifier(name)) return null; if (ret = compiler(name), cache[name] = ret, cache[" size"]++, cache[" size"] > 512) { for (var keys = Object.keys(cache), i = 0; 256 > i; ++i)delete cache[keys[i]]; cache[" size"] = keys.length - 256 } } return ret }; getMethodCaller = function (name) { return getCompiled(name, makeMethodCaller, callerCache) }, getGetter = function (name) { return getCompiled(name, makeGetter, getterCache) }, Promise.prototype.call = function (methodName) { for (var $_len = arguments.length, args = new Array(Math.max($_len - 1, 0)), $_i = 1; $_len > $_i; ++$_i)args[$_i - 1] = arguments[$_i]; if (canEvaluate) { var maybeCaller = getMethodCaller(methodName); if (null !== maybeCaller) return this._then(maybeCaller, void 0, void 0, args, void 0) } return args.push(methodName), this._then(caller, void 0, void 0, args, void 0) }, Promise.prototype.get = function (propertyName) { var getter, isIndex = "number" == typeof propertyName; if (isIndex) getter = indexedGetter; else if (canEvaluate) { var maybeGetter = getGetter(propertyName); getter = null !== maybeGetter ? maybeGetter : namedGetter } else getter = namedGetter; return this._then(getter, void 0, void 0, propertyName, void 0) } } }, { "./util": 82 }], 52: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, debug) { var util = require("./util"), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; Promise.prototype["break"] = Promise.prototype.cancel = function () { if (!debug.cancellation()) return this._warn("cancellation is disabled"); for (var promise = this, child = promise; promise._isCancellable();) { if (!promise._cancelBy(child)) { child._isFollowing() ? child._followee().cancel() : child._cancelBranched(); break } var parent = promise._cancellationParent; if (null == parent || !parent._isCancellable()) { promise._isFollowing() ? promise._followee().cancel() : promise._cancelBranched(); break } promise._isFollowing() && promise._followee().cancel(), promise._setWillBeCancelled(), child = promise, promise = parent } }, Promise.prototype._branchHasCancelled = function () { this._branchesRemainingToCancel-- }, Promise.prototype._enoughBranchesHaveCancelled = function () { return void 0 === this._branchesRemainingToCancel || this._branchesRemainingToCancel <= 0 }, Promise.prototype._cancelBy = function (canceller) { return canceller === this ? (this._branchesRemainingToCancel = 0, this._invokeOnCancel(), !0) : (this._branchHasCancelled(), this._enoughBranchesHaveCancelled() ? (this._invokeOnCancel(), !0) : !1) }, Promise.prototype._cancelBranched = function () { this._enoughBranchesHaveCancelled() && this._cancel() }, Promise.prototype._cancel = function () { this._isCancellable() && (this._setCancelled(), async.invoke(this._cancelPromises, this, void 0)) }, Promise.prototype._cancelPromises = function () { this._length() > 0 && this._settlePromises() }, Promise.prototype._unsetOnCancel = function () { this._onCancelField = void 0 }, Promise.prototype._isCancellable = function () { return this.isPending() && !this._isCancelled() }, Promise.prototype.isCancellable = function () { return this.isPending() && !this.isCancelled() }, Promise.prototype._doInvokeOnCancel = function (onCancelCallback, internalOnly) { if (util.isArray(onCancelCallback)) for (var i = 0; i < onCancelCallback.length; ++i)this._doInvokeOnCancel(onCancelCallback[i], internalOnly); else if (void 0 !== onCancelCallback) if ("function" == typeof onCancelCallback) { if (!internalOnly) { var e = tryCatch(onCancelCallback).call(this._boundValue()); e === errorObj && (this._attachExtraTrace(e.e), async.throwLater(e.e)) } } else onCancelCallback._resultCancelled(this) }, Promise.prototype._invokeOnCancel = function () { var onCancelCallback = this._onCancel(); this._unsetOnCancel(), async.invoke(this._doInvokeOnCancel, this, onCancelCallback) }, Promise.prototype._invokeInternalOnCancel = function () { this._isCancellable() && (this._doInvokeOnCancel(this._onCancel(), !0), this._unsetOnCancel()) }, Promise.prototype._resultCancelled = function () { this.cancel() } } }, { "./util": 82 }], 53: [function (require, module, exports) { "use strict"; module.exports = function (NEXT_FILTER) { function catchFilter(instances, cb, promise) { return function (e) { var boundTo = promise._boundValue(); predicateLoop: for (var i = 0; i < instances.length; ++i) { var item = instances[i]; if (item === Error || null != item && item.prototype instanceof Error) { if (e instanceof item) return tryCatch(cb).call(boundTo, e) } else if ("function" == typeof item) { var matchesPredicate = tryCatch(item).call(boundTo, e); if (matchesPredicate === errorObj) return matchesPredicate; if (matchesPredicate) return tryCatch(cb).call(boundTo, e) } else if (util.isObject(e)) { for (var keys = getKeys(item), j = 0; j < keys.length; ++j) { var key = keys[j]; if (item[key] != e[key]) continue predicateLoop } return tryCatch(cb).call(boundTo, e) } } return NEXT_FILTER } } var util = require("./util"), getKeys = require("./es5").keys, tryCatch = util.tryCatch, errorObj = util.errorObj; return catchFilter } }, { "./es5": 59, "./util": 82 }], 54: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function Context() { this._trace = new Context.CapturedTrace(peekContext()) } function createContext() { return longStackTraces ? new Context : void 0 } function peekContext() { var lastIndex = contextStack.length - 1; return lastIndex >= 0 ? contextStack[lastIndex] : void 0 } var longStackTraces = !1, contextStack = []; return Promise.prototype._promiseCreated = function () { }, Promise.prototype._pushContext = function () { }, Promise.prototype._popContext = function () { return null }, Promise._peekContext = Promise.prototype._peekContext = function () { }, Context.prototype._pushContext = function () { void 0 !== this._trace && (this._trace._promiseCreated = null, contextStack.push(this._trace)) }, Context.prototype._popContext = function () { if (void 0 !== this._trace) { var trace = contextStack.pop(), ret = trace._promiseCreated; return trace._promiseCreated = null, ret } return null }, Context.CapturedTrace = null, Context.create = createContext, Context.deactivateLongStackTraces = function () { }, Context.activateLongStackTraces = function () { var Promise_pushContext = Promise.prototype._pushContext, Promise_popContext = Promise.prototype._popContext, Promise_PeekContext = Promise._peekContext, Promise_peekContext = Promise.prototype._peekContext, Promise_promiseCreated = Promise.prototype._promiseCreated; Context.deactivateLongStackTraces = function () { Promise.prototype._pushContext = Promise_pushContext, Promise.prototype._popContext = Promise_popContext, Promise._peekContext = Promise_PeekContext, Promise.prototype._peekContext = Promise_peekContext, Promise.prototype._promiseCreated = Promise_promiseCreated, longStackTraces = !1 }, longStackTraces = !0, Promise.prototype._pushContext = Context.prototype._pushContext, Promise.prototype._popContext = Context.prototype._popContext, Promise._peekContext = Promise.prototype._peekContext = peekContext, Promise.prototype._promiseCreated = function () { var ctx = this._peekContext(); ctx && null == ctx._promiseCreated && (ctx._promiseCreated = this) } }, Context } }, {}], 55: [function (require, module, exports) { + } + }, {}], 53: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { var PromiseMap = Promise.map; Promise.prototype.filter = function (fn, options) { return PromiseMap(this, fn, options, INTERNAL) }, Promise.filter = function (promises, fn, options) { return PromiseMap(promises, fn, options, INTERNAL) } } }, {}], 54: [function (require, module, exports) { "use strict"; module.exports = function (Promise, tryConvertToPromise) { function PassThroughHandlerContext(promise, type, handler) { this.promise = promise, this.type = type, this.handler = handler, this.called = !1, this.cancelPromise = null } function FinallyHandlerCancelReaction(finallyHandler) { this.finallyHandler = finallyHandler } function checkCancel(ctx, reason) { return null != ctx.cancelPromise ? (arguments.length > 1 ? ctx.cancelPromise._reject(reason) : ctx.cancelPromise._cancel(), ctx.cancelPromise = null, !0) : !1 } function succeed() { return finallyHandler.call(this, this.promise._target()._settledValue()) } function fail(reason) { return checkCancel(this, reason) ? void 0 : (errorObj.e = reason, errorObj) } function finallyHandler(reasonOrValue) { var promise = this.promise, handler = this.handler; if (!this.called) { this.called = !0; var ret = this.isFinallyHandler() ? handler.call(promise._boundValue()) : handler.call(promise._boundValue(), reasonOrValue); if (void 0 !== ret) { promise._setReturnedNonUndefined(); var maybePromise = tryConvertToPromise(ret, promise); if (maybePromise instanceof Promise) { if (null != this.cancelPromise) { if (maybePromise._isCancelled()) { var reason = new CancellationError("late cancellation observer"); return promise._attachExtraTrace(reason), errorObj.e = reason, errorObj } maybePromise.isPending() && maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this)) } return maybePromise._then(succeed, fail, void 0, this, void 0) } } } return promise.isRejected() ? (checkCancel(this), errorObj.e = reasonOrValue, errorObj) : (checkCancel(this), reasonOrValue) } var util = require("./util"), CancellationError = Promise.CancellationError, errorObj = util.errorObj; return PassThroughHandlerContext.prototype.isFinallyHandler = function () { return 0 === this.type }, FinallyHandlerCancelReaction.prototype._resultCancelled = function () { checkCancel(this.finallyHandler) }, Promise.prototype._passThrough = function (handler, type, success, fail) { return "function" != typeof handler ? this.then() : this._then(success, fail, void 0, new PassThroughHandlerContext(this, type, handler), void 0) }, Promise.prototype.lastly = Promise.prototype["finally"] = function (handler) { return this._passThrough(handler, 0, finallyHandler, finallyHandler) }, Promise.prototype.tap = function (handler) { return this._passThrough(handler, 1, finallyHandler) }, PassThroughHandlerContext } }, { "./util": 75 }], 55: [function (require, module, exports) { "use strict"; module.exports = function (Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { function promiseFromYieldHandler(value, yieldHandlers, traceParent) { for (var i = 0; i < yieldHandlers.length; ++i) { traceParent._pushContext(); var result = tryCatch(yieldHandlers[i])(value); if (traceParent._popContext(), result === errorObj) { traceParent._pushContext(); var ret = Promise.reject(errorObj.e); return traceParent._popContext(), ret } var maybePromise = tryConvertToPromise(result, traceParent); if (maybePromise instanceof Promise) return maybePromise } return null } function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { if (debug.cancellation()) { var internal = new Promise(INTERNAL), _finallyPromise = this._finallyPromise = new Promise(INTERNAL); this._promise = internal.lastly(function () { return _finallyPromise }), internal._captureStackTrace(), internal._setOnCancel(this) } else { var promise = this._promise = new Promise(INTERNAL); promise._captureStackTrace() } this._stack = stack, this._generatorFunction = generatorFunction, this._receiver = receiver, this._generator = void 0, this._yieldHandlers = "function" == typeof yieldHandler ? [yieldHandler].concat(yieldHandlers) : yieldHandlers, this._yieldedPromise = null, this._cancellationPhase = !1 } var errors = require("./errors"), TypeError = errors.TypeError, util = require("./util"), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; util.inherits(PromiseSpawn, Proxyable), PromiseSpawn.prototype._isResolved = function () { return null === this._promise }, PromiseSpawn.prototype._cleanup = function () { this._promise = this._generator = null, debug.cancellation() && null !== this._finallyPromise && (this._finallyPromise._fulfill(), this._finallyPromise = null) }, PromiseSpawn.prototype._promiseCancelled = function () { if (!this._isResolved()) { var result, implementsReturn = "undefined" != typeof this._generator["return"]; if (implementsReturn) this._promise._pushContext(), result = tryCatch(this._generator["return"]).call(this._generator, void 0), this._promise._popContext(); else { var reason = new Promise.CancellationError("generator .return() sentinel"); Promise.coroutine.returnSentinel = reason, this._promise._attachExtraTrace(reason), this._promise._pushContext(), result = tryCatch(this._generator["throw"]).call(this._generator, reason), this._promise._popContext() } this._cancellationPhase = !0, this._yieldedPromise = null, this._continue(result) } }, PromiseSpawn.prototype._promiseFulfilled = function (value) { this._yieldedPromise = null, this._promise._pushContext(); var result = tryCatch(this._generator.next).call(this._generator, value); this._promise._popContext(), this._continue(result) }, PromiseSpawn.prototype._promiseRejected = function (reason) { this._yieldedPromise = null, this._promise._attachExtraTrace(reason), this._promise._pushContext(); var result = tryCatch(this._generator["throw"]).call(this._generator, reason); this._promise._popContext(), this._continue(result) }, PromiseSpawn.prototype._resultCancelled = function () { if (this._yieldedPromise instanceof Promise) { var promise = this._yieldedPromise; this._yieldedPromise = null, promise.cancel() } }, PromiseSpawn.prototype.promise = function () { return this._promise }, PromiseSpawn.prototype._run = function () { this._generator = this._generatorFunction.call(this._receiver), this._receiver = this._generatorFunction = void 0, this._promiseFulfilled(void 0) }, PromiseSpawn.prototype._continue = function (result) { var promise = this._promise; if (result === errorObj) return this._cleanup(), this._cancellationPhase ? promise.cancel() : promise._rejectCallback(result.e, !1); var value = result.value; if (result.done === !0) return this._cleanup(), this._cancellationPhase ? promise.cancel() : promise._resolveCallback(value); var maybePromise = tryConvertToPromise(value, this._promise); if (!(maybePromise instanceof Promise) && (maybePromise = promiseFromYieldHandler(maybePromise, this._yieldHandlers, this._promise), null === maybePromise)) return void this._promiseRejected(new TypeError("A value %s was yielded that could not be treated as a promise\n\n See http://goo.gl/MqrFmX\n\n".replace("%s", value) + "From coroutine:\n" + this._stack.split("\n").slice(1, -7).join("\n"))); maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; 0 === (50397184 & bitField) ? (this._yieldedPromise = maybePromise, maybePromise._proxy(this, null)) : 0 !== (33554432 & bitField) ? Promise._async.invoke(this._promiseFulfilled, this, maybePromise._value()) : 0 !== (16777216 & bitField) ? Promise._async.invoke(this._promiseRejected, this, maybePromise._reason()) : this._promiseCancelled() }, Promise.coroutine = function (generatorFunction, options) { if ("function" != typeof generatorFunction) throw new TypeError("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); var yieldHandler = Object(options).yieldHandler, PromiseSpawn$ = PromiseSpawn, stack = (new Error).stack; return function () { var generator = generatorFunction.apply(this, arguments), spawn = new PromiseSpawn$(void 0, void 0, yieldHandler, stack), ret = spawn.promise(); return spawn._generator = generator, spawn._promiseFulfilled(void 0), ret } }, Promise.coroutine.addYieldHandler = function (fn) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); yieldHandlers.push(fn) }, Promise.spawn = function (generatorFunction) { if (debug.deprecated("Promise.spawn()", "Promise.coroutine()"), "function" != typeof generatorFunction) return apiRejection("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); var spawn = new PromiseSpawn(generatorFunction, this), ret = spawn.promise(); return spawn._run(Promise.spawn), ret } } }, { "./errors": 51, "./util": 75 }], 56: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain) { var reject, util = require("./util"), canEvaluate = util.canEvaluate, tryCatch = util.tryCatch, errorObj = util.errorObj; if (canEvaluate) { for (var thenCallback = function (i) { return new Function("value", "holder", " \n 'use strict'; \n holder.pIndex = value; \n holder.checkFulfillment(this); \n ".replace(/Index/g, i)) }, promiseSetter = function (i) { return new Function("promise", "holder", " \n 'use strict'; \n holder.pIndex = promise; \n ".replace(/Index/g, i)) }, generateHolderClass = function (total) { for (var props = new Array(total), i = 0; i < props.length; ++i)props[i] = "this.p" + (i + 1); var assignment = props.join(" = ") + " = null;", cancellationCode = "var promise;\n" + props.map(function (prop) { return " \n promise = " + prop + "; \n if (promise instanceof Promise) { \n promise.cancel(); \n } \n " }).join("\n"), passedArguments = props.join(", "), name = "Holder$" + total, code = "return function(tryCatch, errorObj, Promise, async) { \n 'use strict'; \n function [TheName](fn) { \n [TheProperties] \n this.fn = fn; \n this.asyncNeeded = true; \n this.now = 0; \n } \n \n [TheName].prototype._callFunction = function(promise) { \n promise._pushContext(); \n var ret = tryCatch(this.fn)([ThePassedArguments]); \n promise._popContext(); \n if (ret === errorObj) { \n promise._rejectCallback(ret.e, false); \n } else { \n promise._resolveCallback(ret); \n } \n }; \n \n [TheName].prototype.checkFulfillment = function(promise) { \n var now = ++this.now; \n if (now === [TheTotal]) { \n if (this.asyncNeeded) { \n async.invoke(this._callFunction, this, promise); \n } else { \n this._callFunction(promise); \n } \n \n } \n }; \n \n [TheName].prototype._resultCancelled = function() { \n [CancellationCode] \n }; \n \n return [TheName]; \n }(tryCatch, errorObj, Promise, async); \n "; return code = code.replace(/\[TheName\]/g, name).replace(/\[TheTotal\]/g, total).replace(/\[ThePassedArguments\]/g, passedArguments).replace(/\[TheProperties\]/g, assignment).replace(/\[CancellationCode\]/g, cancellationCode), new Function("tryCatch", "errorObj", "Promise", "async", code)(tryCatch, errorObj, Promise, async) }, holderClasses = [], thenCallbacks = [], promiseSetters = [], i = 0; 8 > i; ++i)holderClasses.push(generateHolderClass(i + 1)), thenCallbacks.push(thenCallback(i + 1)), promiseSetters.push(promiseSetter(i + 1)); reject = function (reason) { this._reject(reason) } } Promise.join = function () { var fn, last = arguments.length - 1; if (last > 0 && "function" == typeof arguments[last] && (fn = arguments[last], 8 >= last && canEvaluate)) { var ret = new Promise(INTERNAL); ret._captureStackTrace(); for (var HolderClass = holderClasses[last - 1], holder = new HolderClass(fn), callbacks = thenCallbacks, i = 0; last > i; ++i) { var maybePromise = tryConvertToPromise(arguments[i], ret); if (maybePromise instanceof Promise) { maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; 0 === (50397184 & bitField) ? (maybePromise._then(callbacks[i], reject, void 0, ret, holder), promiseSetters[i](maybePromise, holder), holder.asyncNeeded = !1) : 0 !== (33554432 & bitField) ? callbacks[i].call(ret, maybePromise._value(), holder) : 0 !== (16777216 & bitField) ? ret._reject(maybePromise._reason()) : ret._cancel() } else callbacks[i].call(ret, maybePromise, holder) } if (!ret._isFateSealed()) { if (holder.asyncNeeded) { var domain = getDomain(); null !== domain && (holder.fn = util.domainBind(domain, holder.fn)) } ret._setAsyncGuaranteed(), ret._setOnCancel(holder) } return ret } for (var $_len = arguments.length, args = new Array($_len), $_i = 0; $_len > $_i; ++$_i)args[$_i] = arguments[$_i]; fn && args.pop(); var ret = new PromiseArray(args).promise(); return void 0 !== fn ? ret.spread(fn) : ret } } }, { "./util": 75 }], 57: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { function MappingPromiseArray(promises, fn, limit, _filter) { this.constructor$(promises), this._promise._captureStackTrace(); var domain = getDomain(); this._callback = null === domain ? fn : util.domainBind(domain, fn), this._preservedValues = _filter === INTERNAL ? new Array(this.length()) : null, this._limit = limit, this._inFlight = 0, this._queue = [], async.invoke(this._asyncInit, this, void 0) } function map(promises, fn, options, _filter) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var limit = 0; if (void 0 !== options) { if ("object" != typeof options || null === options) return Promise.reject(new TypeError("options argument must be an object but it is " + util.classString(options))); if ("number" != typeof options.concurrency) return Promise.reject(new TypeError("'concurrency' must be a number but it is " + util.classString(options.concurrency))); limit = options.concurrency } return limit = "number" == typeof limit && isFinite(limit) && limit >= 1 ? limit : 0, new MappingPromiseArray(promises, fn, limit, _filter).promise() } var getDomain = Promise._getDomain, util = require("./util"), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; util.inherits(MappingPromiseArray, PromiseArray), MappingPromiseArray.prototype._asyncInit = function () { this._init$(void 0, -2) }, MappingPromiseArray.prototype._init = function () { }, MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { var values = this._values, length = this.length(), preservedValues = this._preservedValues, limit = this._limit; if (0 > index) { if (index = -1 * index - 1, values[index] = value, limit >= 1 && (this._inFlight--, this._drainQueue(), this._isResolved())) return !0 } else { if (limit >= 1 && this._inFlight >= limit) return values[index] = value, this._queue.push(index), !1; null !== preservedValues && (preservedValues[index] = value); var promise = this._promise, callback = this._callback, receiver = promise._boundValue(); promise._pushContext(); var ret = tryCatch(callback).call(receiver, value, index, length), promiseCreated = promise._popContext(); if (debug.checkForgottenReturns(ret, promiseCreated, null !== preservedValues ? "Promise.filter" : "Promise.map", promise), ret === errorObj) return this._reject(ret.e), !0; var maybePromise = tryConvertToPromise(ret, this._promise); if (maybePromise instanceof Promise) { maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; if (0 === (50397184 & bitField)) return limit >= 1 && this._inFlight++, values[index] = maybePromise, maybePromise._proxy(this, -1 * (index + 1)), !1; if (0 === (33554432 & bitField)) return 0 !== (16777216 & bitField) ? (this._reject(maybePromise._reason()), !0) : (this._cancel(), !0); ret = maybePromise._value() } values[index] = ret } var totalResolved = ++this._totalResolved; return totalResolved >= length ? (null !== preservedValues ? this._filter(values, preservedValues) : this._resolve(values), !0) : !1 }, MappingPromiseArray.prototype._drainQueue = function () { for (var queue = this._queue, limit = this._limit, values = this._values; queue.length > 0 && this._inFlight < limit;) { if (this._isResolved()) return; var index = queue.pop(); this._promiseFulfilled(values[index], index) } }, MappingPromiseArray.prototype._filter = function (booleans, values) { for (var len = values.length, ret = new Array(len), j = 0, i = 0; len > i; ++i)booleans[i] && (ret[j++] = values[i]); ret.length = j, this._resolve(ret) }, MappingPromiseArray.prototype.preservedValues = function () { return this._preservedValues }, Promise.prototype.map = function (fn, options) { return map(this, fn, options, null) }, Promise.map = function (promises, fn, options, _filter) { return map(promises, fn, options, _filter) } } }, { "./util": 75 }], 58: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { var util = require("./util"), tryCatch = util.tryCatch; Promise.method = function (fn) { if ("function" != typeof fn) throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); return function () { var ret = new Promise(INTERNAL); ret._captureStackTrace(), ret._pushContext(); var value = tryCatch(fn).apply(this, arguments), promiseCreated = ret._popContext(); return debug.checkForgottenReturns(value, promiseCreated, "Promise.method", ret), ret._resolveFromSyncValue(value), ret } }, Promise.attempt = Promise["try"] = function (fn) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var ret = new Promise(INTERNAL); ret._captureStackTrace(), ret._pushContext(); var value; if (arguments.length > 1) { debug.deprecated("calling Promise.try with more than 1 argument"); var arg = arguments[1], ctx = arguments[2]; value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) : tryCatch(fn).call(ctx, arg) } else value = tryCatch(fn)(); var promiseCreated = ret._popContext(); return debug.checkForgottenReturns(value, promiseCreated, "Promise.try", ret), ret._resolveFromSyncValue(value), ret }, Promise.prototype._resolveFromSyncValue = function (value) { value === util.errorObj ? this._rejectCallback(value.e, !1) : this._resolveCallback(value, !0) } } }, { "./util": 75 }], 59: [function (require, module, exports) { "use strict"; function isUntypedError(obj) { return obj instanceof Error && es5.getPrototypeOf(obj) === Error.prototype } function wrapAsOperationalError(obj) { var ret; if (isUntypedError(obj)) { ret = new OperationalError(obj), ret.name = obj.name, ret.message = obj.message, ret.stack = obj.stack; for (var keys = es5.keys(obj), i = 0; i < keys.length; ++i) { var key = keys[i]; rErrorKey.test(key) || (ret[key] = obj[key]) } return ret } return util.markAsOriginatingFromRejection(obj), obj } function nodebackForPromise(promise, multiArgs) { return function (err, value) { if (null !== promise) { if (err) { var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); promise._attachExtraTrace(wrapped), promise._reject(wrapped) } else if (multiArgs) { for (var $_len = arguments.length, args = new Array(Math.max($_len - 1, 0)), $_i = 1; $_len > $_i; ++$_i)args[$_i - 1] = arguments[$_i]; promise._fulfill(args) } else promise._fulfill(value); promise = null } } } var util = require("./util"), maybeWrapAsError = util.maybeWrapAsError, errors = require("./errors"), OperationalError = errors.OperationalError, es5 = require("./es5"), rErrorKey = /^(?:name|message|stack|cause)$/; module.exports = nodebackForPromise }, { "./errors": 51, "./es5": 52, "./util": 75 }], 60: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function spreadAdapter(val, nodeback) { var promise = this; if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); var ret = tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); ret === errorObj && async.throwLater(ret.e) } function successAdapter(val, nodeback) { var promise = this, receiver = promise._boundValue(), ret = void 0 === val ? tryCatch(nodeback).call(receiver, null) : tryCatch(nodeback).call(receiver, null, val); ret === errorObj && async.throwLater(ret.e) } function errorAdapter(reason, nodeback) { var promise = this; if (!reason) { var newReason = new Error(reason + ""); newReason.cause = reason, reason = newReason } var ret = tryCatch(nodeback).call(promise._boundValue(), reason); ret === errorObj && async.throwLater(ret.e) } var util = require("./util"), async = Promise._async, tryCatch = util.tryCatch, errorObj = util.errorObj; Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, options) { if ("function" == typeof nodeback) { var adapter = successAdapter; void 0 !== options && Object(options).spread && (adapter = spreadAdapter), this._then(adapter, errorAdapter, void 0, this, nodeback) } return this } } }, { "./util": 75 }], 61: [function (require, module, exports) { (function (process) { - "use strict"; module.exports = function (Promise, Context) { - function generatePromiseLifecycleEventObject(name, promise) { return { promise: promise } } function defaultFireEvent() { return !1 } function cancellationExecute(executor, resolve, reject) { var promise = this; try { executor(resolve, reject, function (onCancel) { if ("function" != typeof onCancel) throw new TypeError("onCancel must be a function, got: " + util.toString(onCancel)); promise._attachCancellationCallback(onCancel) }) } catch (e) { return e } } function cancellationAttachCancellationCallback(onCancel) { if (!this._isCancellable()) return this; var previousOnCancel = this._onCancel(); void 0 !== previousOnCancel ? util.isArray(previousOnCancel) ? previousOnCancel.push(onCancel) : this._setOnCancel([previousOnCancel, onCancel]) : this._setOnCancel(onCancel) } function cancellationOnCancel() { return this._onCancelField } function cancellationSetOnCancel(onCancel) { this._onCancelField = onCancel } function cancellationClearCancellationData() { this._cancellationParent = void 0, this._onCancelField = void 0 } function cancellationPropagateFrom(parent, flags) { if (0 !== (1 & flags)) { this._cancellationParent = parent; var branchesRemainingToCancel = parent._branchesRemainingToCancel; void 0 === branchesRemainingToCancel && (branchesRemainingToCancel = 0), parent._branchesRemainingToCancel = branchesRemainingToCancel + 1 } 0 !== (2 & flags) && parent._isBound() && this._setBoundTo(parent._boundTo) } function bindingPropagateFrom(parent, flags) { 0 !== (2 & flags) && parent._isBound() && this._setBoundTo(parent._boundTo) } function boundValueFunction() { var ret = this._boundTo; return void 0 !== ret && ret instanceof Promise ? ret.isFulfilled() ? ret.value() : void 0 : ret } function longStackTracesCaptureStackTrace() { this._trace = new CapturedTrace(this._peekContext()) } function longStackTracesAttachExtraTrace(error, ignoreSelf) { if (canAttachTrace(error)) { var trace = this._trace; if (void 0 !== trace && ignoreSelf && (trace = trace._parent), void 0 !== trace) trace.attachExtraTrace(error); else if (!error.__stackCleaned__) { var parsed = parseStackAndMessage(error); util.notEnumerableProp(error, "stack", parsed.message + "\n" + parsed.stack.join("\n")), util.notEnumerableProp(error, "__stackCleaned__", !0) } } } function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) { if (void 0 === returnValue && null !== promiseCreated && wForgottenReturn) { if (void 0 !== parent && parent._returnedNonUndefined()) return; if (0 === (65535 & promise._bitField)) return; name && (name += " "); var handlerLine = "", creatorLine = ""; if (promiseCreated._trace) { for (var traceLines = promiseCreated._trace.stack.split("\n"), stack = cleanStack(traceLines), i = stack.length - 1; i >= 0; --i) { var line = stack[i]; if (!nodeFramePattern.test(line)) { var lineMatches = line.match(parseLinePattern); lineMatches && (handlerLine = "at " + lineMatches[1] + ":" + lineMatches[2] + ":" + lineMatches[3] + " "); break } } if (stack.length > 0) for (var firstUserLine = stack[0], i = 0; i < traceLines.length; ++i)if (traceLines[i] === firstUserLine) { i > 0 && (creatorLine = "\n" + traceLines[i - 1]); break } } var msg = "a promise was created in a " + name + "handler " + handlerLine + "but was not returned from it, see http://goo.gl/rRqMUw" + creatorLine; promise._warn(msg, !0, promiseCreated) } } function deprecated(name, replacement) { var message = name + " is deprecated and will be removed in a future version."; return replacement && (message += " Use " + replacement + " instead."), warn(message) } function warn(message, shouldUseOwnTrace, promise) { if (config.warnings) { var ctx, warning = new Warning(message); if (shouldUseOwnTrace) promise._attachExtraTrace(warning); else if (config.longStackTraces && (ctx = Promise._peekContext())) ctx.attachExtraTrace(warning); else { var parsed = parseStackAndMessage(warning); warning.stack = parsed.message + "\n" + parsed.stack.join("\n") } activeFireEvent("warning", warning) || formatAndLogError(warning, "", !0) } } function reconstructStack(message, stacks) { for (var i = 0; i < stacks.length - 1; ++i)stacks[i].push("From previous event:"), stacks[i] = stacks[i].join("\n"); return i < stacks.length && (stacks[i] = stacks[i].join("\n")), message + "\n" + stacks.join("\n") } function removeDuplicateOrEmptyJumps(stacks) { for (var i = 0; i < stacks.length; ++i)(0 === stacks[i].length || i + 1 < stacks.length && stacks[i][0] === stacks[i + 1][0]) && (stacks.splice(i, 1), i--) } function removeCommonRoots(stacks) { for (var current = stacks[0], i = 1; i < stacks.length; ++i) { for (var prev = stacks[i], currentLastIndex = current.length - 1, currentLastLine = current[currentLastIndex], commonRootMeetPoint = -1, j = prev.length - 1; j >= 0; --j)if (prev[j] === currentLastLine) { commonRootMeetPoint = j; break } for (var j = commonRootMeetPoint; j >= 0; --j) { var line = prev[j]; if (current[currentLastIndex] !== line) break; current.pop(), currentLastIndex-- } current = prev } } function cleanStack(stack) { for (var ret = [], i = 0; i < stack.length; ++i) { var line = stack[i], isTraceLine = " (No stack trace)" === line || stackFramePattern.test(line), isInternalFrame = isTraceLine && shouldIgnore(line); isTraceLine && !isInternalFrame && (indentStackFrames && " " !== line.charAt(0) && (line = " " + line), ret.push(line)) } return ret } function stackFramesAsArray(error) { for (var stack = error.stack.replace(/\s+$/g, "").split("\n"), i = 0; i < stack.length; ++i) { var line = stack[i]; if (" (No stack trace)" === line || stackFramePattern.test(line)) break } return i > 0 && "SyntaxError" != error.name && (stack = stack.slice(i)), stack } function parseStackAndMessage(error) { - var stack = error.stack, message = error.toString(); return stack = "string" == typeof stack && stack.length > 0 ? stackFramesAsArray(error) : [" (No stack trace)"], { message: message, stack: "SyntaxError" == error.name ? stack : cleanStack(stack) } - } function formatAndLogError(error, title, isSoft) { if ("undefined" != typeof console) { var message; if (util.isObject(error)) { var stack = error.stack; message = title + formatStack(stack, error) } else message = title + String(error); "function" == typeof printWarning ? printWarning(message, isSoft) : ("function" == typeof console.log || "object" == typeof console.log) && console.log(message) } } function fireRejectionEvent(name, localHandler, reason, promise) { var localEventFired = !1; try { "function" == typeof localHandler && (localEventFired = !0, "rejectionHandled" === name ? localHandler(promise) : localHandler(reason, promise)) } catch (e) { async.throwLater(e) } "unhandledRejection" === name ? activeFireEvent(name, reason, promise) || localEventFired || formatAndLogError(reason, "Unhandled rejection ") : activeFireEvent(name, promise) } function formatNonError(obj) { var str; if ("function" == typeof obj) str = "[function " + (obj.name || "anonymous") + "]"; else { str = obj && "function" == typeof obj.toString ? obj.toString() : util.toString(obj); var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; if (ruselessToString.test(str)) try { var newStr = JSON.stringify(obj); str = newStr } catch (e) { } 0 === str.length && (str = "(empty array)") } return "(<" + snip(str) + ">, no stack trace)" } function snip(str) { var maxChars = 41; return str.length < maxChars ? str : str.substr(0, maxChars - 3) + "..." } function longStackTracesIsSupported() { return "function" == typeof captureStackTrace } function parseLineInfo(line) { var matches = line.match(parseLineInfoRegex); return matches ? { fileName: matches[1], line: parseInt(matches[2], 10) } : void 0 } function setBounds(firstLineError, lastLineError) { if (longStackTracesIsSupported()) { for (var firstFileName, lastFileName, firstStackLines = firstLineError.stack.split("\n"), lastStackLines = lastLineError.stack.split("\n"), firstIndex = -1, lastIndex = -1, i = 0; i < firstStackLines.length; ++i) { var result = parseLineInfo(firstStackLines[i]); if (result) { firstFileName = result.fileName, firstIndex = result.line; break } } for (var i = 0; i < lastStackLines.length; ++i) { var result = parseLineInfo(lastStackLines[i]); if (result) { lastFileName = result.fileName, lastIndex = result.line; break } } 0 > firstIndex || 0 > lastIndex || !firstFileName || !lastFileName || firstFileName !== lastFileName || firstIndex >= lastIndex || (shouldIgnore = function (line) { if (bluebirdFramePattern.test(line)) return !0; var info = parseLineInfo(line); return info && info.fileName === firstFileName && firstIndex <= info.line && info.line <= lastIndex ? !0 : !1 }) } } function CapturedTrace(parent) { this._parent = parent, this._promisesCreated = 0; var length = this._length = 1 + (void 0 === parent ? 0 : parent._length); captureStackTrace(this, CapturedTrace), length > 32 && this.uncycle() } var unhandledRejectionHandled, possiblyUnhandledRejection, printWarning, getDomain = Promise._getDomain, async = Promise._async, Warning = require("./errors").Warning, util = require("./util"), canAttachTrace = util.canAttachTrace, bluebirdFramePattern = /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/, nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/, parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/, stackFramePattern = null, formatStack = null, indentStackFrames = !1, debugging = !(0 == util.env("BLUEBIRD_DEBUG") || !util.env("BLUEBIRD_DEBUG") && "development" !== util.env("NODE_ENV")), warnings = !(0 == util.env("BLUEBIRD_WARNINGS") || !debugging && !util.env("BLUEBIRD_WARNINGS")), longStackTraces = !(0 == util.env("BLUEBIRD_LONG_STACK_TRACES") || !debugging && !util.env("BLUEBIRD_LONG_STACK_TRACES")), wForgottenReturn = 0 != util.env("BLUEBIRD_W_FORGOTTEN_RETURN") && (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); Promise.prototype.suppressUnhandledRejections = function () { var target = this._target(); target._bitField = -1048577 & target._bitField | 524288 }, Promise.prototype._ensurePossibleRejectionHandled = function () { 0 === (524288 & this._bitField) && (this._setRejectionIsUnhandled(), async.invokeLater(this._notifyUnhandledRejection, this, void 0)) }, Promise.prototype._notifyUnhandledRejectionIsHandled = function () { fireRejectionEvent("rejectionHandled", unhandledRejectionHandled, void 0, this) }, Promise.prototype._setReturnedNonUndefined = function () { this._bitField = 268435456 | this._bitField }, Promise.prototype._returnedNonUndefined = function () { return 0 !== (268435456 & this._bitField) }, Promise.prototype._notifyUnhandledRejection = function () { if (this._isRejectionUnhandled()) { var reason = this._settledValue(); this._setUnhandledRejectionIsNotified(), fireRejectionEvent("unhandledRejection", possiblyUnhandledRejection, reason, this) } }, Promise.prototype._setUnhandledRejectionIsNotified = function () { this._bitField = 262144 | this._bitField }, Promise.prototype._unsetUnhandledRejectionIsNotified = function () { this._bitField = -262145 & this._bitField }, Promise.prototype._isUnhandledRejectionNotified = function () { return (262144 & this._bitField) > 0 }, Promise.prototype._setRejectionIsUnhandled = function () { this._bitField = 1048576 | this._bitField }, Promise.prototype._unsetRejectionIsUnhandled = function () { this._bitField = -1048577 & this._bitField, this._isUnhandledRejectionNotified() && (this._unsetUnhandledRejectionIsNotified(), this._notifyUnhandledRejectionIsHandled()) }, Promise.prototype._isRejectionUnhandled = function () { return (1048576 & this._bitField) > 0 }, Promise.prototype._warn = function (message, shouldUseOwnTrace, promise) { return warn(message, shouldUseOwnTrace, promise || this) }, Promise.onPossiblyUnhandledRejection = function (fn) { var domain = getDomain(); possiblyUnhandledRejection = "function" == typeof fn ? null === domain ? fn : util.domainBind(domain, fn) : void 0 }, Promise.onUnhandledRejectionHandled = function (fn) { var domain = getDomain(); unhandledRejectionHandled = "function" == typeof fn ? null === domain ? fn : util.domainBind(domain, fn) : void 0 }; var disableLongStackTraces = function () { }; Promise.longStackTraces = function () { if (async.haveItemsQueued() && !config.longStackTraces) throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); if (!config.longStackTraces && longStackTracesIsSupported()) { var Promise_captureStackTrace = Promise.prototype._captureStackTrace, Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; config.longStackTraces = !0, disableLongStackTraces = function () { if (async.haveItemsQueued() && !config.longStackTraces) throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n"); Promise.prototype._captureStackTrace = Promise_captureStackTrace, Promise.prototype._attachExtraTrace = Promise_attachExtraTrace, Context.deactivateLongStackTraces(), async.enableTrampoline(), config.longStackTraces = !1 }, Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace, Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace, Context.activateLongStackTraces(), async.disableTrampolineIfNecessary() } }, Promise.hasLongStackTraces = function () { return config.longStackTraces && longStackTracesIsSupported() }; var fireDomEvent = function () { try { if ("function" == typeof CustomEvent) { var event = new CustomEvent("CustomEvent"); return util.global.dispatchEvent(event), function (name, event) { var domEvent = new CustomEvent(name.toLowerCase(), { detail: event, cancelable: !0 }); return !util.global.dispatchEvent(domEvent) } } if ("function" == typeof Event) { var event = new Event("CustomEvent"); return util.global.dispatchEvent(event), function (name, event) { var domEvent = new Event(name.toLowerCase(), { cancelable: !0 }); return domEvent.detail = event, !util.global.dispatchEvent(domEvent) } } var event = document.createEvent("CustomEvent"); return event.initCustomEvent("testingtheevent", !1, !0, {}), util.global.dispatchEvent(event), function (name, event) { var domEvent = document.createEvent("CustomEvent"); return domEvent.initCustomEvent(name.toLowerCase(), !1, !0, event), !util.global.dispatchEvent(domEvent) } } catch (e) { } return function () { return !1 } }(), fireGlobalEvent = function () { return util.isNode ? function () { return process.emit.apply(process, arguments) } : util.global ? function (name) { var methodName = "on" + name.toLowerCase(), method = util.global[methodName]; return method ? (method.apply(util.global, [].slice.call(arguments, 1)), !0) : !1 } : function () { return !1 } }(), eventToObjectGenerator = { promiseCreated: generatePromiseLifecycleEventObject, promiseFulfilled: generatePromiseLifecycleEventObject, promiseRejected: generatePromiseLifecycleEventObject, promiseResolved: generatePromiseLifecycleEventObject, promiseCancelled: generatePromiseLifecycleEventObject, promiseChained: function (name, promise, child) { return { promise: promise, child: child } }, warning: function (name, warning) { return { warning: warning } }, unhandledRejection: function (name, reason, promise) { return { reason: reason, promise: promise } }, rejectionHandled: generatePromiseLifecycleEventObject }, activeFireEvent = function (name) { var globalEventFired = !1; try { globalEventFired = fireGlobalEvent.apply(null, arguments) } catch (e) { async.throwLater(e), globalEventFired = !0 } var domEventFired = !1; try { domEventFired = fireDomEvent(name, eventToObjectGenerator[name].apply(null, arguments)) } catch (e) { async.throwLater(e), domEventFired = !0 } return domEventFired || globalEventFired }; Promise.config = function (opts) { if (opts = Object(opts), "longStackTraces" in opts && (opts.longStackTraces ? Promise.longStackTraces() : !opts.longStackTraces && Promise.hasLongStackTraces() && disableLongStackTraces()), "warnings" in opts) { var warningsOption = opts.warnings; config.warnings = !!warningsOption, wForgottenReturn = config.warnings, util.isObject(warningsOption) && "wForgottenReturn" in warningsOption && (wForgottenReturn = !!warningsOption.wForgottenReturn) } if ("cancellation" in opts && opts.cancellation && !config.cancellation) { if (async.haveItemsQueued()) throw new Error("cannot enable cancellation after promises are in use"); Promise.prototype._clearCancellationData = cancellationClearCancellationData, Promise.prototype._propagateFrom = cancellationPropagateFrom, Promise.prototype._onCancel = cancellationOnCancel, Promise.prototype._setOnCancel = cancellationSetOnCancel, Promise.prototype._attachCancellationCallback = cancellationAttachCancellationCallback, Promise.prototype._execute = cancellationExecute, propagateFromFunction = cancellationPropagateFrom, config.cancellation = !0 } return "monitoring" in opts && (opts.monitoring && !config.monitoring ? (config.monitoring = !0, Promise.prototype._fireEvent = activeFireEvent) : !opts.monitoring && config.monitoring && (config.monitoring = !1, Promise.prototype._fireEvent = defaultFireEvent)), Promise }, Promise.prototype._fireEvent = defaultFireEvent, Promise.prototype._execute = function (executor, resolve, reject) { try { executor(resolve, reject) } catch (e) { return e } }, Promise.prototype._onCancel = function () { }, Promise.prototype._setOnCancel = function (handler) { }, Promise.prototype._attachCancellationCallback = function (onCancel) { }, Promise.prototype._captureStackTrace = function () { }, Promise.prototype._attachExtraTrace = function () { }, Promise.prototype._clearCancellationData = function () { }, Promise.prototype._propagateFrom = function (parent, flags) { }; var propagateFromFunction = bindingPropagateFrom, shouldIgnore = function () { return !1 }, parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; util.inherits(CapturedTrace, Error), Context.CapturedTrace = CapturedTrace, CapturedTrace.prototype.uncycle = function () { var length = this._length; if (!(2 > length)) { for (var nodes = [], stackToIndex = {}, i = 0, node = this; void 0 !== node; ++i)nodes.push(node), node = node._parent; length = this._length = i; for (var i = length - 1; i >= 0; --i) { var stack = nodes[i].stack; void 0 === stackToIndex[stack] && (stackToIndex[stack] = i) } for (var i = 0; length > i; ++i) { var currentStack = nodes[i].stack, index = stackToIndex[currentStack]; if (void 0 !== index && index !== i) { index > 0 && (nodes[index - 1]._parent = void 0, nodes[index - 1]._length = 1), nodes[i]._parent = void 0, nodes[i]._length = 1; var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; length - 1 > index ? (cycleEdgeNode._parent = nodes[index + 1], cycleEdgeNode._parent.uncycle(), cycleEdgeNode._length = cycleEdgeNode._parent._length + 1) : (cycleEdgeNode._parent = void 0, cycleEdgeNode._length = 1); for (var currentChildLength = cycleEdgeNode._length + 1, j = i - 2; j >= 0; --j)nodes[j]._length = currentChildLength, currentChildLength++; return } } } }, CapturedTrace.prototype.attachExtraTrace = function (error) { if (!error.__stackCleaned__) { this.uncycle(); for (var parsed = parseStackAndMessage(error), message = parsed.message, stacks = [parsed.stack], trace = this; void 0 !== trace;)stacks.push(cleanStack(trace.stack.split("\n"))), trace = trace._parent; removeCommonRoots(stacks), removeDuplicateOrEmptyJumps(stacks), util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)), util.notEnumerableProp(error, "__stackCleaned__", !0) } }; var captureStackTrace = function () { var v8stackFramePattern = /^\s*at\s*/, v8stackFormatter = function (stack, error) { return "string" == typeof stack ? stack : void 0 !== error.name && void 0 !== error.message ? error.toString() : formatNonError(error) }; if ("number" == typeof Error.stackTraceLimit && "function" == typeof Error.captureStackTrace) { Error.stackTraceLimit += 6, stackFramePattern = v8stackFramePattern, formatStack = v8stackFormatter; var captureStackTrace = Error.captureStackTrace; return shouldIgnore = function (line) { return bluebirdFramePattern.test(line) }, function (receiver, ignoreUntil) { Error.stackTraceLimit += 6, captureStackTrace(receiver, ignoreUntil), Error.stackTraceLimit -= 6 } } var err = new Error; if ("string" == typeof err.stack && err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) return stackFramePattern = /@/, formatStack = v8stackFormatter, indentStackFrames = !0, function (o) { o.stack = (new Error).stack }; var hasStackAfterThrow; try { throw new Error } catch (e) { hasStackAfterThrow = "stack" in e } return "stack" in err || !hasStackAfterThrow || "number" != typeof Error.stackTraceLimit ? (formatStack = function (stack, error) { return "string" == typeof stack ? stack : "object" != typeof error && "function" != typeof error || void 0 === error.name || void 0 === error.message ? formatNonError(error) : error.toString() }, null) : (stackFramePattern = v8stackFramePattern, formatStack = v8stackFormatter, function (o) { Error.stackTraceLimit += 6; try { throw new Error } catch (e) { o.stack = e.stack } Error.stackTraceLimit -= 6 }) }([]); "undefined" != typeof console && "undefined" != typeof console.warn && (printWarning = function (message) { console.warn(message) }, util.isNode && process.stderr.isTTY ? printWarning = function (message, isSoft) { var color = isSoft ? "" : ""; console.warn(color + message + "\n") } : util.isNode || "string" != typeof (new Error).stack || (printWarning = function (message, isSoft) { console.warn("%c" + message, isSoft ? "color: darkorange" : "color: red") })); var config = { warnings: warnings, longStackTraces: !1, cancellation: !1, monitoring: !1 }; return longStackTraces && Promise.longStackTraces(), { longStackTraces: function () { return config.longStackTraces }, warnings: function () { return config.warnings }, cancellation: function () { return config.cancellation }, monitoring: function () { return config.monitoring }, propagateFromFunction: function () { return propagateFromFunction }, boundValueFunction: function () { return boundValueFunction }, checkForgottenReturns: checkForgottenReturns, setBounds: setBounds, warn: warn, deprecated: deprecated, CapturedTrace: CapturedTrace, fireDomEvent: fireDomEvent, fireGlobalEvent: fireGlobalEvent } + "use strict"; module.exports = function () { + function Proxyable() { } function check(self, executor) { if ("function" != typeof executor) throw new TypeError("expecting a function but got " + util.classString(executor)); if (self.constructor !== Promise) throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n") } function Promise(executor) { this._bitField = 0, this._fulfillmentHandler0 = void 0, this._rejectionHandler0 = void 0, this._promise0 = void 0, this._receiver0 = void 0, executor !== INTERNAL && (check(this, executor), this._resolveFromExecutor(executor)), this._promiseCreated(), this._fireEvent("promiseCreated", this) } function deferResolve(v) { this.promise._resolveCallback(v) } function deferReject(v) { this.promise._rejectCallback(v, !1) } function fillTypes(value) { var p = new Promise(INTERNAL); p._fulfillmentHandler0 = value, p._rejectionHandler0 = value, p._promise0 = value, p._receiver0 = value } var getDomain, makeSelfResolutionError = function () { return new TypeError("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n") }, reflectHandler = function () { return new Promise.PromiseInspection(this._target()) }, apiRejection = function (msg) { return Promise.reject(new TypeError(msg)) }, UNDEFINED_BINDING = {}, util = require("./util"); getDomain = util.isNode ? function () { var ret = process.domain; return void 0 === ret && (ret = null), ret } : function () { return null }, util.notEnumerableProp(Promise, "_getDomain", getDomain); var es5 = require("./es5"), Async = require("./async"), async = new Async; es5.defineProperty(Promise, "_async", { value: async }); var errors = require("./errors"), TypeError = Promise.TypeError = errors.TypeError; Promise.RangeError = errors.RangeError; var CancellationError = Promise.CancellationError = errors.CancellationError; Promise.TimeoutError = errors.TimeoutError, Promise.OperationalError = errors.OperationalError, Promise.RejectionError = errors.OperationalError, Promise.AggregateError = errors.AggregateError; var INTERNAL = function () { }, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = require("./thenables")(Promise, INTERNAL), PromiseArray = require("./promise_array")(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = require("./context")(Promise), createContext = Context.create, debug = require("./debuggability")(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, require("./finally")(Promise, tryConvertToPromise)), catchFilter = require("./catch_filter")(NEXT_FILTER), nodebackForPromise = require("./nodeback"), errorObj = util.errorObj, tryCatch = util.tryCatch; return Promise.prototype.toString = function () { return "[object Promise]" }, Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { var len = arguments.length; if (len > 1) { var i, catchInstances = new Array(len - 1), j = 0; for (i = 0; len - 1 > i; ++i) { var item = arguments[i]; if (!util.isObject(item)) return apiRejection("expecting an object but got A catch statement predicate " + util.classString(item)); catchInstances[j++] = item } return catchInstances.length = j, fn = arguments[i], this.then(void 0, catchFilter(catchInstances, fn, this)) } return this.then(void 0, fn) }, Promise.prototype.reflect = function () { return this._then(reflectHandler, reflectHandler, void 0, this, void 0) }, Promise.prototype.then = function (didFulfill, didReject) { if (debug.warnings() && arguments.length > 0 && "function" != typeof didFulfill && "function" != typeof didReject) { var msg = ".then() only accepts functions but was passed: " + util.classString(didFulfill); arguments.length > 1 && (msg += ", " + util.classString(didReject)), this._warn(msg) } return this._then(didFulfill, didReject, void 0, void 0, void 0) }, Promise.prototype.done = function (didFulfill, didReject) { var promise = this._then(didFulfill, didReject, void 0, void 0, void 0); promise._setIsFinal() }, Promise.prototype.spread = function (fn) { return "function" != typeof fn ? apiRejection("expecting a function but got " + util.classString(fn)) : this.all()._then(fn, void 0, void 0, APPLY, void 0) }, Promise.prototype.toJSON = function () { var ret = { isFulfilled: !1, isRejected: !1, fulfillmentValue: void 0, rejectionReason: void 0 }; return this.isFulfilled() ? (ret.fulfillmentValue = this.value(), ret.isFulfilled = !0) : this.isRejected() && (ret.rejectionReason = this.reason(), ret.isRejected = !0), ret }, Promise.prototype.all = function () { return arguments.length > 0 && this._warn(".all() was passed arguments but it does not take any"), new PromiseArray(this).promise() }, Promise.prototype.error = function (fn) { return this.caught(util.originatesFromRejection, fn) }, Promise.getNewLibraryCopy = module.exports, Promise.is = function (val) { return val instanceof Promise }, Promise.fromNode = Promise.fromCallback = function (fn) { var ret = new Promise(INTERNAL); ret._captureStackTrace(); var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs : !1, result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); return result === errorObj && ret._rejectCallback(result.e, !0), ret._isFateSealed() || ret._setAsyncGuaranteed(), ret }, Promise.all = function (promises) { return new PromiseArray(promises).promise() }, Promise.cast = function (obj) { var ret = tryConvertToPromise(obj); return ret instanceof Promise || (ret = new Promise(INTERNAL), ret._captureStackTrace(), ret._setFulfilled(), ret._rejectionHandler0 = obj), ret }, Promise.resolve = Promise.fulfilled = Promise.cast, Promise.reject = Promise.rejected = function (reason) { var ret = new Promise(INTERNAL); return ret._captureStackTrace(), ret._rejectCallback(reason, !0), ret }, Promise.setScheduler = function (fn) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); return async.setScheduler(fn) }, Promise.prototype._then = function (didFulfill, didReject, _, receiver, internalData) { var haveInternalData = void 0 !== internalData, promise = haveInternalData ? internalData : new Promise(INTERNAL), target = this._target(), bitField = target._bitField; haveInternalData || (promise._propagateFrom(this, 3), promise._captureStackTrace(), void 0 === receiver && 0 !== (2097152 & this._bitField) && (receiver = 0 !== (50397184 & bitField) ? this._boundValue() : target === this ? void 0 : this._boundTo), this._fireEvent("promiseChained", this, promise)); var domain = getDomain(); if (0 !== (50397184 & bitField)) { var handler, value, settler = target._settlePromiseCtx; 0 !== (33554432 & bitField) ? (value = target._rejectionHandler0, handler = didFulfill) : 0 !== (16777216 & bitField) ? (value = target._fulfillmentHandler0, handler = didReject, target._unsetRejectionIsUnhandled()) : (settler = target._settlePromiseLateCancellationObserver, value = new CancellationError("late cancellation observer"), target._attachExtraTrace(value), handler = didReject), async.invoke(settler, target, { handler: null === domain ? handler : "function" == typeof handler && util.domainBind(domain, handler), promise: promise, receiver: receiver, value: value }) } else target._addCallbacks(didFulfill, didReject, promise, receiver, domain); return promise }, Promise.prototype._length = function () { return 65535 & this._bitField }, Promise.prototype._isFateSealed = function () { return 0 !== (117506048 & this._bitField) }, Promise.prototype._isFollowing = function () { return 67108864 === (67108864 & this._bitField) }, Promise.prototype._setLength = function (len) { this._bitField = -65536 & this._bitField | 65535 & len }, Promise.prototype._setFulfilled = function () { this._bitField = 33554432 | this._bitField, this._fireEvent("promiseFulfilled", this) }, Promise.prototype._setRejected = function () { this._bitField = 16777216 | this._bitField, this._fireEvent("promiseRejected", this) }, Promise.prototype._setFollowing = function () { this._bitField = 67108864 | this._bitField, this._fireEvent("promiseResolved", this) }, Promise.prototype._setIsFinal = function () { this._bitField = 4194304 | this._bitField }, Promise.prototype._isFinal = function () { return (4194304 & this._bitField) > 0 }, Promise.prototype._unsetCancelled = function () { this._bitField = -65537 & this._bitField }, Promise.prototype._setCancelled = function () { this._bitField = 65536 | this._bitField, this._fireEvent("promiseCancelled", this) }, Promise.prototype._setWillBeCancelled = function () { this._bitField = 8388608 | this._bitField }, Promise.prototype._setAsyncGuaranteed = function () { async.hasCustomScheduler() || (this._bitField = 134217728 | this._bitField) }, Promise.prototype._receiverAt = function (index) { var ret = 0 === index ? this._receiver0 : this[4 * index - 4 + 3]; return ret === UNDEFINED_BINDING ? void 0 : void 0 === ret && this._isBound() ? this._boundValue() : ret }, Promise.prototype._promiseAt = function (index) { return this[4 * index - 4 + 2] }, Promise.prototype._fulfillmentHandlerAt = function (index) { return this[4 * index - 4 + 0] }, Promise.prototype._rejectionHandlerAt = function (index) { return this[4 * index - 4 + 1] }, Promise.prototype._boundValue = function () { }, Promise.prototype._migrateCallback0 = function (follower) { var fulfill = (follower._bitField, follower._fulfillmentHandler0), reject = follower._rejectionHandler0, promise = follower._promise0, receiver = follower._receiverAt(0); void 0 === receiver && (receiver = UNDEFINED_BINDING), this._addCallbacks(fulfill, reject, promise, receiver, null) }, Promise.prototype._migrateCallbackAt = function (follower, index) { var fulfill = follower._fulfillmentHandlerAt(index), reject = follower._rejectionHandlerAt(index), promise = follower._promiseAt(index), receiver = follower._receiverAt(index); void 0 === receiver && (receiver = UNDEFINED_BINDING), this._addCallbacks(fulfill, reject, promise, receiver, null) }, Promise.prototype._addCallbacks = function (fulfill, reject, promise, receiver, domain) { var index = this._length(); if (index >= 65531 && (index = 0, this._setLength(0)), 0 === index) this._promise0 = promise, this._receiver0 = receiver, "function" == typeof fulfill && (this._fulfillmentHandler0 = null === domain ? fulfill : util.domainBind(domain, fulfill)), "function" == typeof reject && (this._rejectionHandler0 = null === domain ? reject : util.domainBind(domain, reject)); else { var base = 4 * index - 4; this[base + 2] = promise, this[base + 3] = receiver, "function" == typeof fulfill && (this[base + 0] = null === domain ? fulfill : util.domainBind(domain, fulfill)), "function" == typeof reject && (this[base + 1] = null === domain ? reject : util.domainBind(domain, reject)) } return this._setLength(index + 1), index }, Promise.prototype._proxy = function (proxyable, arg) { this._addCallbacks(void 0, void 0, arg, proxyable, null) }, Promise.prototype._resolveCallback = function (value, shouldBind) { + if (0 === (117506048 & this._bitField)) { + if (value === this) return this._rejectCallback(makeSelfResolutionError(), !1); + var maybePromise = tryConvertToPromise(value, this); if (!(maybePromise instanceof Promise)) return this._fulfill(value); shouldBind && this._propagateFrom(maybePromise, 2); var promise = maybePromise._target(); if (promise === this) return void this._reject(makeSelfResolutionError()); var bitField = promise._bitField; if (0 === (50397184 & bitField)) { var len = this._length(); len > 0 && promise._migrateCallback0(this); for (var i = 1; len > i; ++i)promise._migrateCallbackAt(this, i); this._setFollowing(), this._setLength(0), this._setFollowee(promise) } else if (0 !== (33554432 & bitField)) this._fulfill(promise._value()); else if (0 !== (16777216 & bitField)) this._reject(promise._reason()); else { var reason = new CancellationError("late cancellation observer"); promise._attachExtraTrace(reason), this._reject(reason) } + } + }, Promise.prototype._rejectCallback = function (reason, synchronous, ignoreNonErrorWarnings) { var trace = util.ensureErrorObject(reason), hasStack = trace === reason; if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { var message = "a promise was rejected with a non-error: " + util.classString(reason); this._warn(message, !0) } this._attachExtraTrace(trace, synchronous ? hasStack : !1), this._reject(reason) }, Promise.prototype._resolveFromExecutor = function (executor) { var promise = this; this._captureStackTrace(), this._pushContext(); var synchronous = !0, r = this._execute(executor, function (value) { promise._resolveCallback(value) }, function (reason) { promise._rejectCallback(reason, synchronous) }); synchronous = !1, this._popContext(), void 0 !== r && promise._rejectCallback(r, !0) }, Promise.prototype._settlePromiseFromHandler = function (handler, receiver, value, promise) { var bitField = promise._bitField; if (0 === (65536 & bitField)) { promise._pushContext(); var x; receiver === APPLY ? value && "number" == typeof value.length ? x = tryCatch(handler).apply(this._boundValue(), value) : (x = errorObj, x.e = new TypeError("cannot .spread() a non-array: " + util.classString(value))) : x = tryCatch(handler).call(receiver, value); var promiseCreated = promise._popContext(); bitField = promise._bitField, 0 === (65536 & bitField) && (x === NEXT_FILTER ? promise._reject(value) : x === errorObj ? promise._rejectCallback(x.e, !1) : (debug.checkForgottenReturns(x, promiseCreated, "", promise, this), promise._resolveCallback(x))) } }, Promise.prototype._target = function () { for (var ret = this; ret._isFollowing();)ret = ret._followee(); return ret }, Promise.prototype._followee = function () { return this._rejectionHandler0 }, Promise.prototype._setFollowee = function (promise) { this._rejectionHandler0 = promise }, Promise.prototype._settlePromise = function (promise, handler, receiver, value) { var isPromise = promise instanceof Promise, bitField = this._bitField, asyncGuaranteed = 0 !== (134217728 & bitField); 0 !== (65536 & bitField) ? (isPromise && promise._invokeInternalOnCancel(), receiver instanceof PassThroughHandlerContext && receiver.isFinallyHandler() ? (receiver.cancelPromise = promise, tryCatch(handler).call(receiver, value) === errorObj && promise._reject(errorObj.e)) : handler === reflectHandler ? promise._fulfill(reflectHandler.call(receiver)) : receiver instanceof Proxyable ? receiver._promiseCancelled(promise) : isPromise || promise instanceof PromiseArray ? promise._cancel() : receiver.cancel()) : "function" == typeof handler ? isPromise ? (asyncGuaranteed && promise._setAsyncGuaranteed(), this._settlePromiseFromHandler(handler, receiver, value, promise)) : handler.call(receiver, value, promise) : receiver instanceof Proxyable ? receiver._isResolved() || (0 !== (33554432 & bitField) ? receiver._promiseFulfilled(value, promise) : receiver._promiseRejected(value, promise)) : isPromise && (asyncGuaranteed && promise._setAsyncGuaranteed(), 0 !== (33554432 & bitField) ? promise._fulfill(value) : promise._reject(value)) }, Promise.prototype._settlePromiseLateCancellationObserver = function (ctx) { var handler = ctx.handler, promise = ctx.promise, receiver = ctx.receiver, value = ctx.value; "function" == typeof handler ? promise instanceof Promise ? this._settlePromiseFromHandler(handler, receiver, value, promise) : handler.call(receiver, value, promise) : promise instanceof Promise && promise._reject(value) }, Promise.prototype._settlePromiseCtx = function (ctx) { this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value) }, Promise.prototype._settlePromise0 = function (handler, value, bitField) { var promise = this._promise0, receiver = this._receiverAt(0); this._promise0 = void 0, this._receiver0 = void 0, this._settlePromise(promise, handler, receiver, value) }, Promise.prototype._clearCallbackDataAtIndex = function (index) { var base = 4 * index - 4; this[base + 2] = this[base + 3] = this[base + 0] = this[base + 1] = void 0 }, Promise.prototype._fulfill = function (value) { var bitField = this._bitField; if (!((117506048 & bitField) >>> 16)) { if (value === this) { var err = makeSelfResolutionError(); return this._attachExtraTrace(err), this._reject(err) } this._setFulfilled(), this._rejectionHandler0 = value, (65535 & bitField) > 0 && (0 !== (134217728 & bitField) ? this._settlePromises() : async.settlePromises(this)) } }, Promise.prototype._reject = function (reason) { var bitField = this._bitField; if (!((117506048 & bitField) >>> 16)) return this._setRejected(), this._fulfillmentHandler0 = reason, this._isFinal() ? async.fatalError(reason, util.isNode) : void ((65535 & bitField) > 0 ? async.settlePromises(this) : this._ensurePossibleRejectionHandled()) }, Promise.prototype._fulfillPromises = function (len, value) { for (var i = 1; len > i; i++) { var handler = this._fulfillmentHandlerAt(i), promise = this._promiseAt(i), receiver = this._receiverAt(i); this._clearCallbackDataAtIndex(i), this._settlePromise(promise, handler, receiver, value) } }, Promise.prototype._rejectPromises = function (len, reason) { for (var i = 1; len > i; i++) { var handler = this._rejectionHandlerAt(i), promise = this._promiseAt(i), receiver = this._receiverAt(i); this._clearCallbackDataAtIndex(i), this._settlePromise(promise, handler, receiver, reason) } }, Promise.prototype._settlePromises = function () { var bitField = this._bitField, len = 65535 & bitField; if (len > 0) { if (0 !== (16842752 & bitField)) { var reason = this._fulfillmentHandler0; this._settlePromise0(this._rejectionHandler0, reason, bitField), this._rejectPromises(len, reason) } else { var value = this._rejectionHandler0; this._settlePromise0(this._fulfillmentHandler0, value, bitField), this._fulfillPromises(len, value) } this._setLength(0) } this._clearCancellationData() }, Promise.prototype._settledValue = function () { var bitField = this._bitField; return 0 !== (33554432 & bitField) ? this._rejectionHandler0 : 0 !== (16777216 & bitField) ? this._fulfillmentHandler0 : void 0 }, Promise.defer = Promise.pending = function () { debug.deprecated("Promise.defer", "new Promise"); var promise = new Promise(INTERNAL); return { promise: promise, resolve: deferResolve, reject: deferReject } }, util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError), require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug), require("./cancel")(Promise, PromiseArray, apiRejection, debug), require("./direct_resolve")(Promise), require("./synchronous_inspection")(Promise), require("./join")(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), Promise.Promise = Promise, Promise.version = "3.4.7", require("./map.js")(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), require("./call_get.js")(Promise), require("./using.js")(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), require("./timers.js")(Promise, INTERNAL, debug), require("./generators.js")(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), require("./nodeify.js")(Promise), require("./promisify.js")(Promise, INTERNAL), require("./props.js")(Promise, PromiseArray, tryConvertToPromise, apiRejection), require("./race.js")(Promise, INTERNAL, tryConvertToPromise, apiRejection), require("./reduce.js")(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), require("./settle.js")(Promise, PromiseArray, debug), require("./some.js")(Promise, PromiseArray, apiRejection), require("./filter.js")(Promise, INTERNAL), require("./each.js")(Promise, INTERNAL), require("./any.js")(Promise), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), fillTypes({ a: 1 }), fillTypes({ b: 2 }), fillTypes({ c: 3 }), fillTypes(1), fillTypes(function () { }), fillTypes(void 0), fillTypes(!1), fillTypes(new Promise(INTERNAL)), debug.setBounds(Async.firstLineError, util.lastLineError), Promise } }).call(this, require("_process")) - }, { "./errors": 58, "./util": 82, _process: 102 }], 56: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function returner() { return this.value } function thrower() { throw this.reason } Promise.prototype["return"] = Promise.prototype.thenReturn = function (value) { return value instanceof Promise && value.suppressUnhandledRejections(), this._then(returner, void 0, void 0, { value: value }, void 0) }, Promise.prototype["throw"] = Promise.prototype.thenThrow = function (reason) { return this._then(thrower, void 0, void 0, { reason: reason }, void 0) }, Promise.prototype.catchThrow = function (reason) { if (arguments.length <= 1) return this._then(void 0, thrower, void 0, { reason: reason }, void 0); var _reason = arguments[1], handler = function () { throw _reason }; return this.caught(reason, handler) }, Promise.prototype.catchReturn = function (value) { if (arguments.length <= 1) return value instanceof Promise && value.suppressUnhandledRejections(), this._then(void 0, returner, void 0, { value: value }, void 0); var _value = arguments[1]; _value instanceof Promise && _value.suppressUnhandledRejections(); var handler = function () { return _value }; return this.caught(value, handler) } } }, {}], 57: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { function promiseAllThis() { return PromiseAll(this) } function PromiseMapSeries(promises, fn) { return PromiseReduce(promises, fn, INTERNAL, INTERNAL) } var PromiseReduce = Promise.reduce, PromiseAll = Promise.all; Promise.prototype.each = function (fn) { return PromiseReduce(this, fn, INTERNAL, 0)._then(promiseAllThis, void 0, void 0, this, void 0) }, Promise.prototype.mapSeries = function (fn) { return PromiseReduce(this, fn, INTERNAL, INTERNAL) }, Promise.each = function (promises, fn) { return PromiseReduce(promises, fn, INTERNAL, 0)._then(promiseAllThis, void 0, void 0, promises, void 0) }, Promise.mapSeries = PromiseMapSeries } }, {}], 58: [function (require, module, exports) { "use strict"; function subError(nameProperty, defaultMessage) { function SubError(message) { return this instanceof SubError ? (notEnumerableProp(this, "message", "string" == typeof message ? message : defaultMessage), notEnumerableProp(this, "name", nameProperty), void (Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : Error.call(this))) : new SubError(message) } return inherits(SubError, Error), SubError } function OperationalError(message) { return this instanceof OperationalError ? (notEnumerableProp(this, "name", "OperationalError"), notEnumerableProp(this, "message", message), this.cause = message, this.isOperational = !0, void (message instanceof Error ? (notEnumerableProp(this, "message", message.message), notEnumerableProp(this, "stack", message.stack)) : Error.captureStackTrace && Error.captureStackTrace(this, this.constructor))) : new OperationalError(message) } var _TypeError, _RangeError, es5 = require("./es5"), Objectfreeze = es5.freeze, util = require("./util"), inherits = util.inherits, notEnumerableProp = util.notEnumerableProp, Warning = subError("Warning", "warning"), CancellationError = subError("CancellationError", "cancellation error"), TimeoutError = subError("TimeoutError", "timeout error"), AggregateError = subError("AggregateError", "aggregate error"); try { _TypeError = TypeError, _RangeError = RangeError } catch (e) { _TypeError = subError("TypeError", "type error"), _RangeError = subError("RangeError", "range error") } for (var methods = "join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "), i = 0; i < methods.length; ++i)"function" == typeof Array.prototype[methods[i]] && (AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]); es5.defineProperty(AggregateError.prototype, "length", { value: 0, configurable: !1, writable: !0, enumerable: !0 }), AggregateError.prototype.isOperational = !0; var level = 0; AggregateError.prototype.toString = function () { var indent = Array(4 * level + 1).join(" "), ret = "\n" + indent + "AggregateError of:\n"; level++, indent = Array(4 * level + 1).join(" "); for (var i = 0; i < this.length; ++i) { for (var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "", lines = str.split("\n"), j = 0; j < lines.length; ++j)lines[j] = indent + lines[j]; str = lines.join("\n"), ret += str + "\n" } return level--, ret }, inherits(OperationalError, Error); var errorTypes = Error.__BluebirdErrorTypes__; errorTypes || (errorTypes = Objectfreeze({ CancellationError: CancellationError, TimeoutError: TimeoutError, OperationalError: OperationalError, RejectionError: OperationalError, AggregateError: AggregateError }), es5.defineProperty(Error, "__BluebirdErrorTypes__", { value: errorTypes, writable: !1, enumerable: !1, configurable: !1 })), module.exports = { Error: Error, TypeError: _TypeError, RangeError: _RangeError, CancellationError: errorTypes.CancellationError, OperationalError: errorTypes.OperationalError, TimeoutError: errorTypes.TimeoutError, AggregateError: errorTypes.AggregateError, Warning: Warning } }, { "./es5": 59, "./util": 82 }], 59: [function (require, module, exports) { var isES5 = function () { "use strict"; return void 0 === this }(); if (isES5) module.exports = { freeze: Object.freeze, defineProperty: Object.defineProperty, getDescriptor: Object.getOwnPropertyDescriptor, keys: Object.keys, names: Object.getOwnPropertyNames, getPrototypeOf: Object.getPrototypeOf, isArray: Array.isArray, isES5: isES5, propertyIsWritable: function (obj, prop) { var descriptor = Object.getOwnPropertyDescriptor(obj, prop); return !(descriptor && !descriptor.writable && !descriptor.set) } }; else { var has = {}.hasOwnProperty, str = {}.toString, proto = {}.constructor.prototype, ObjectKeys = function (o) { var ret = []; for (var key in o) has.call(o, key) && ret.push(key); return ret }, ObjectGetDescriptor = function (o, key) { return { value: o[key] } }, ObjectDefineProperty = function (o, key, desc) { return o[key] = desc.value, o }, ObjectFreeze = function (obj) { return obj }, ObjectGetPrototypeOf = function (obj) { try { return Object(obj).constructor.prototype } catch (e) { return proto } }, ArrayIsArray = function (obj) { try { return "[object Array]" === str.call(obj) } catch (e) { return !1 } }; module.exports = { isArray: ArrayIsArray, keys: ObjectKeys, names: ObjectKeys, defineProperty: ObjectDefineProperty, getDescriptor: ObjectGetDescriptor, freeze: ObjectFreeze, getPrototypeOf: ObjectGetPrototypeOf, isES5: isES5, propertyIsWritable: function () { return !0 } } } }, {}], 60: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { var PromiseMap = Promise.map; Promise.prototype.filter = function (fn, options) { return PromiseMap(this, fn, options, INTERNAL) }, Promise.filter = function (promises, fn, options) { return PromiseMap(promises, fn, options, INTERNAL) } } }, {}], 61: [function (require, module, exports) { "use strict"; module.exports = function (Promise, tryConvertToPromise) { function PassThroughHandlerContext(promise, type, handler) { this.promise = promise, this.type = type, this.handler = handler, this.called = !1, this.cancelPromise = null } function FinallyHandlerCancelReaction(finallyHandler) { this.finallyHandler = finallyHandler } function checkCancel(ctx, reason) { return null != ctx.cancelPromise ? (arguments.length > 1 ? ctx.cancelPromise._reject(reason) : ctx.cancelPromise._cancel(), ctx.cancelPromise = null, !0) : !1 } function succeed() { return finallyHandler.call(this, this.promise._target()._settledValue()) } function fail(reason) { return checkCancel(this, reason) ? void 0 : (errorObj.e = reason, errorObj) } function finallyHandler(reasonOrValue) { var promise = this.promise, handler = this.handler; if (!this.called) { this.called = !0; var ret = this.isFinallyHandler() ? handler.call(promise._boundValue()) : handler.call(promise._boundValue(), reasonOrValue); if (void 0 !== ret) { promise._setReturnedNonUndefined(); var maybePromise = tryConvertToPromise(ret, promise); if (maybePromise instanceof Promise) { if (null != this.cancelPromise) { if (maybePromise._isCancelled()) { var reason = new CancellationError("late cancellation observer"); return promise._attachExtraTrace(reason), errorObj.e = reason, errorObj } maybePromise.isPending() && maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this)) } return maybePromise._then(succeed, fail, void 0, this, void 0) } } } return promise.isRejected() ? (checkCancel(this), errorObj.e = reasonOrValue, errorObj) : (checkCancel(this), reasonOrValue) } var util = require("./util"), CancellationError = Promise.CancellationError, errorObj = util.errorObj; return PassThroughHandlerContext.prototype.isFinallyHandler = function () { return 0 === this.type }, FinallyHandlerCancelReaction.prototype._resultCancelled = function () { checkCancel(this.finallyHandler) }, Promise.prototype._passThrough = function (handler, type, success, fail) { return "function" != typeof handler ? this.then() : this._then(success, fail, void 0, new PassThroughHandlerContext(this, type, handler), void 0) }, Promise.prototype.lastly = Promise.prototype["finally"] = function (handler) { return this._passThrough(handler, 0, finallyHandler, finallyHandler) }, Promise.prototype.tap = function (handler) { return this._passThrough(handler, 1, finallyHandler) }, PassThroughHandlerContext } }, { "./util": 82 }], 62: [function (require, module, exports) { "use strict"; module.exports = function (Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug) { function promiseFromYieldHandler(value, yieldHandlers, traceParent) { for (var i = 0; i < yieldHandlers.length; ++i) { traceParent._pushContext(); var result = tryCatch(yieldHandlers[i])(value); if (traceParent._popContext(), result === errorObj) { traceParent._pushContext(); var ret = Promise.reject(errorObj.e); return traceParent._popContext(), ret } var maybePromise = tryConvertToPromise(result, traceParent); if (maybePromise instanceof Promise) return maybePromise } return null } function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { if (debug.cancellation()) { var internal = new Promise(INTERNAL), _finallyPromise = this._finallyPromise = new Promise(INTERNAL); this._promise = internal.lastly(function () { return _finallyPromise }), internal._captureStackTrace(), internal._setOnCancel(this) } else { var promise = this._promise = new Promise(INTERNAL); promise._captureStackTrace() } this._stack = stack, this._generatorFunction = generatorFunction, this._receiver = receiver, this._generator = void 0, this._yieldHandlers = "function" == typeof yieldHandler ? [yieldHandler].concat(yieldHandlers) : yieldHandlers, this._yieldedPromise = null, this._cancellationPhase = !1 } var errors = require("./errors"), TypeError = errors.TypeError, util = require("./util"), errorObj = util.errorObj, tryCatch = util.tryCatch, yieldHandlers = []; util.inherits(PromiseSpawn, Proxyable), PromiseSpawn.prototype._isResolved = function () { return null === this._promise }, PromiseSpawn.prototype._cleanup = function () { this._promise = this._generator = null, debug.cancellation() && null !== this._finallyPromise && (this._finallyPromise._fulfill(), this._finallyPromise = null) }, PromiseSpawn.prototype._promiseCancelled = function () { if (!this._isResolved()) { var result, implementsReturn = "undefined" != typeof this._generator["return"]; if (implementsReturn) this._promise._pushContext(), result = tryCatch(this._generator["return"]).call(this._generator, void 0), this._promise._popContext(); else { var reason = new Promise.CancellationError("generator .return() sentinel"); Promise.coroutine.returnSentinel = reason, this._promise._attachExtraTrace(reason), this._promise._pushContext(), result = tryCatch(this._generator["throw"]).call(this._generator, reason), this._promise._popContext() } this._cancellationPhase = !0, this._yieldedPromise = null, this._continue(result) } }, PromiseSpawn.prototype._promiseFulfilled = function (value) { this._yieldedPromise = null, this._promise._pushContext(); var result = tryCatch(this._generator.next).call(this._generator, value); this._promise._popContext(), this._continue(result) }, PromiseSpawn.prototype._promiseRejected = function (reason) { this._yieldedPromise = null, this._promise._attachExtraTrace(reason), this._promise._pushContext(); var result = tryCatch(this._generator["throw"]).call(this._generator, reason); this._promise._popContext(), this._continue(result) }, PromiseSpawn.prototype._resultCancelled = function () { if (this._yieldedPromise instanceof Promise) { var promise = this._yieldedPromise; this._yieldedPromise = null, promise.cancel() } }, PromiseSpawn.prototype.promise = function () { return this._promise }, PromiseSpawn.prototype._run = function () { this._generator = this._generatorFunction.call(this._receiver), this._receiver = this._generatorFunction = void 0, this._promiseFulfilled(void 0) }, PromiseSpawn.prototype._continue = function (result) { var promise = this._promise; if (result === errorObj) return this._cleanup(), this._cancellationPhase ? promise.cancel() : promise._rejectCallback(result.e, !1); var value = result.value; if (result.done === !0) return this._cleanup(), this._cancellationPhase ? promise.cancel() : promise._resolveCallback(value); var maybePromise = tryConvertToPromise(value, this._promise); if (!(maybePromise instanceof Promise) && (maybePromise = promiseFromYieldHandler(maybePromise, this._yieldHandlers, this._promise), null === maybePromise)) return void this._promiseRejected(new TypeError("A value %s was yielded that could not be treated as a promise\n\n See http://goo.gl/MqrFmX\n\n".replace("%s", value) + "From coroutine:\n" + this._stack.split("\n").slice(1, -7).join("\n"))); maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; 0 === (50397184 & bitField) ? (this._yieldedPromise = maybePromise, maybePromise._proxy(this, null)) : 0 !== (33554432 & bitField) ? Promise._async.invoke(this._promiseFulfilled, this, maybePromise._value()) : 0 !== (16777216 & bitField) ? Promise._async.invoke(this._promiseRejected, this, maybePromise._reason()) : this._promiseCancelled() }, Promise.coroutine = function (generatorFunction, options) { if ("function" != typeof generatorFunction) throw new TypeError("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); var yieldHandler = Object(options).yieldHandler, PromiseSpawn$ = PromiseSpawn, stack = (new Error).stack; return function () { var generator = generatorFunction.apply(this, arguments), spawn = new PromiseSpawn$(void 0, void 0, yieldHandler, stack), ret = spawn.promise(); return spawn._generator = generator, spawn._promiseFulfilled(void 0), ret } }, Promise.coroutine.addYieldHandler = function (fn) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); yieldHandlers.push(fn) }, Promise.spawn = function (generatorFunction) { if (debug.deprecated("Promise.spawn()", "Promise.coroutine()"), "function" != typeof generatorFunction) return apiRejection("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n"); var spawn = new PromiseSpawn(generatorFunction, this), ret = spawn.promise(); return spawn._run(Promise.spawn), ret } } }, { "./errors": 58, "./util": 82 }], 63: [function (require, module, exports) { - "use strict"; module.exports = function (Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain) { - var reject, util = require("./util"), canEvaluate = util.canEvaluate, tryCatch = util.tryCatch, errorObj = util.errorObj; if (canEvaluate) { - for (var thenCallback = function (i) { return new Function("value", "holder", " \n 'use strict'; \n holder.pIndex = value; \n holder.checkFulfillment(this); \n ".replace(/Index/g, i)) }, promiseSetter = function (i) { return new Function("promise", "holder", " \n 'use strict'; \n holder.pIndex = promise; \n ".replace(/Index/g, i)) }, generateHolderClass = function (total) { - for (var props = new Array(total), i = 0; i < props.length; ++i)props[i] = "this.p" + (i + 1); var assignment = props.join(" = ") + " = null;", cancellationCode = "var promise;\n" + props.map(function (prop) { return " \n promise = " + prop + "; \n if (promise instanceof Promise) { \n promise.cancel(); \n } \n " }).join("\n"), passedArguments = props.join(", "), name = "Holder$" + total, code = "return function(tryCatch, errorObj, Promise, async) { \n 'use strict'; \n function [TheName](fn) { \n [TheProperties] \n this.fn = fn; \n this.asyncNeeded = true; \n this.now = 0; \n } \n \n [TheName].prototype._callFunction = function(promise) { \n promise._pushContext(); \n var ret = tryCatch(this.fn)([ThePassedArguments]); \n promise._popContext(); \n if (ret === errorObj) { \n promise._rejectCallback(ret.e, false); \n } else { \n promise._resolveCallback(ret); \n } \n }; \n \n [TheName].prototype.checkFulfillment = function(promise) { \n var now = ++this.now; \n if (now === [TheTotal]) { \n if (this.asyncNeeded) { \n async.invoke(this._callFunction, this, promise); \n } else { \n this._callFunction(promise); \n } \n \n } \n }; \n \n [TheName].prototype._resultCancelled = function() { \n [CancellationCode] \n }; \n \n return [TheName]; \n }(tryCatch, errorObj, Promise, async); \n "; - return code = code.replace(/\[TheName\]/g, name).replace(/\[TheTotal\]/g, total).replace(/\[ThePassedArguments\]/g, passedArguments).replace(/\[TheProperties\]/g, assignment).replace(/\[CancellationCode\]/g, cancellationCode), new Function("tryCatch", "errorObj", "Promise", "async", code)(tryCatch, errorObj, Promise, async) - }, holderClasses = [], thenCallbacks = [], promiseSetters = [], i = 0; 8 > i; ++i)holderClasses.push(generateHolderClass(i + 1)), thenCallbacks.push(thenCallback(i + 1)), promiseSetters.push(promiseSetter(i + 1)); reject = function (reason) { this._reject(reason) } - } Promise.join = function () { var fn, last = arguments.length - 1; if (last > 0 && "function" == typeof arguments[last] && (fn = arguments[last], 8 >= last && canEvaluate)) { var ret = new Promise(INTERNAL); ret._captureStackTrace(); for (var HolderClass = holderClasses[last - 1], holder = new HolderClass(fn), callbacks = thenCallbacks, i = 0; last > i; ++i) { var maybePromise = tryConvertToPromise(arguments[i], ret); if (maybePromise instanceof Promise) { maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; 0 === (50397184 & bitField) ? (maybePromise._then(callbacks[i], reject, void 0, ret, holder), promiseSetters[i](maybePromise, holder), holder.asyncNeeded = !1) : 0 !== (33554432 & bitField) ? callbacks[i].call(ret, maybePromise._value(), holder) : 0 !== (16777216 & bitField) ? ret._reject(maybePromise._reason()) : ret._cancel() } else callbacks[i].call(ret, maybePromise, holder) } if (!ret._isFateSealed()) { if (holder.asyncNeeded) { var domain = getDomain(); null !== domain && (holder.fn = util.domainBind(domain, holder.fn)) } ret._setAsyncGuaranteed(), ret._setOnCancel(holder) } return ret } for (var $_len = arguments.length, args = new Array($_len), $_i = 0; $_len > $_i; ++$_i)args[$_i] = arguments[$_i]; fn && args.pop(); var ret = new PromiseArray(args).promise(); return void 0 !== fn ? ret.spread(fn) : ret } + }, { "./any.js": 41, "./async": 42, "./bind": 43, "./call_get.js": 44, "./cancel": 45, "./catch_filter": 46, "./context": 47, "./debuggability": 48, "./direct_resolve": 49, "./each.js": 50, "./errors": 51, "./es5": 52, "./filter.js": 53, "./finally": 54, "./generators.js": 55, "./join": 56, "./map.js": 57, "./method": 58, "./nodeback": 59, "./nodeify.js": 60, "./promise_array": 62, "./promisify.js": 63, "./props.js": 64, "./race.js": 66, "./reduce.js": 67, "./settle.js": 69, "./some.js": 70, "./synchronous_inspection": 71, "./thenables": 72, "./timers.js": 73, "./using.js": 74, "./util": 75, _process: 102 }], 62: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable) { function toResolutionValue(val) { switch (val) { case -2: return []; case -3: return {} } } function PromiseArray(values) { var promise = this._promise = new Promise(INTERNAL); values instanceof Promise && promise._propagateFrom(values, 3), promise._setOnCancel(this), this._values = values, this._length = 0, this._totalResolved = 0, this._init(void 0, -2) } var util = require("./util"); util.isArray; return util.inherits(PromiseArray, Proxyable), PromiseArray.prototype.length = function () { return this._length }, PromiseArray.prototype.promise = function () { return this._promise }, PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { var values = tryConvertToPromise(this._values, this._promise); if (values instanceof Promise) { values = values._target(); var bitField = values._bitField; if (this._values = values, 0 === (50397184 & bitField)) return this._promise._setAsyncGuaranteed(), values._then(init, this._reject, void 0, this, resolveValueIfEmpty); if (0 === (33554432 & bitField)) return 0 !== (16777216 & bitField) ? this._reject(values._reason()) : this._cancel(); values = values._value() } if (values = util.asArray(values), null === values) { var err = apiRejection("expecting an array or an iterable object but got " + util.classString(values)).reason(); return void this._promise._rejectCallback(err, !1) } return 0 === values.length ? void (-5 === resolveValueIfEmpty ? this._resolveEmptyArray() : this._resolve(toResolutionValue(resolveValueIfEmpty))) : void this._iterate(values) }, PromiseArray.prototype._iterate = function (values) { var len = this.getActualLength(values.length); this._length = len, this._values = this.shouldCopyValues() ? new Array(len) : this._values; for (var result = this._promise, isResolved = !1, bitField = null, i = 0; len > i; ++i) { var maybePromise = tryConvertToPromise(values[i], result); maybePromise instanceof Promise ? (maybePromise = maybePromise._target(), bitField = maybePromise._bitField) : bitField = null, isResolved ? null !== bitField && maybePromise.suppressUnhandledRejections() : null !== bitField ? 0 === (50397184 & bitField) ? (maybePromise._proxy(this, i), this._values[i] = maybePromise) : isResolved = 0 !== (33554432 & bitField) ? this._promiseFulfilled(maybePromise._value(), i) : 0 !== (16777216 & bitField) ? this._promiseRejected(maybePromise._reason(), i) : this._promiseCancelled(i) : isResolved = this._promiseFulfilled(maybePromise, i) } isResolved || result._setAsyncGuaranteed() }, PromiseArray.prototype._isResolved = function () { return null === this._values }, PromiseArray.prototype._resolve = function (value) { this._values = null, this._promise._fulfill(value) }, PromiseArray.prototype._cancel = function () { !this._isResolved() && this._promise._isCancellable() && (this._values = null, this._promise._cancel()) }, PromiseArray.prototype._reject = function (reason) { this._values = null, this._promise._rejectCallback(reason, !1) }, PromiseArray.prototype._promiseFulfilled = function (value, index) { this._values[index] = value; var totalResolved = ++this._totalResolved; return totalResolved >= this._length ? (this._resolve(this._values), !0) : !1 }, PromiseArray.prototype._promiseCancelled = function () { return this._cancel(), !0 }, PromiseArray.prototype._promiseRejected = function (reason) { return this._totalResolved++, this._reject(reason), !0 }, PromiseArray.prototype._resultCancelled = function () { if (!this._isResolved()) { var values = this._values; if (this._cancel(), values instanceof Promise) values.cancel(); else for (var i = 0; i < values.length; ++i)values[i] instanceof Promise && values[i].cancel() } }, PromiseArray.prototype.shouldCopyValues = function () { return !0 }, PromiseArray.prototype.getActualLength = function (len) { return len }, PromiseArray } }, { "./util": 75 }], 63: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { function propsFilter(key) { return !noCopyPropsPattern.test(key) } function isPromisified(fn) { try { return fn.__isPromisified__ === !0 } catch (e) { return !1 } } function hasPromisified(obj, key, suffix) { var val = util.getDataPropertyOrDefault(obj, key + suffix, defaultPromisified); return val ? isPromisified(val) : !1 } function checkValid(ret, suffix, suffixRegexp) { for (var i = 0; i < ret.length; i += 2) { var key = ret[i]; if (suffixRegexp.test(key)) for (var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""), j = 0; j < ret.length; j += 2)if (ret[j] === keyWithoutAsyncSuffix) throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\n\n See http://goo.gl/MqrFmX\n".replace("%s", suffix)) } } function promisifiableMethods(obj, suffix, suffixRegexp, filter) { for (var keys = util.inheritedDataKeys(obj), ret = [], i = 0; i < keys.length; ++i) { var key = keys[i], value = obj[key], passesDefaultFilter = filter === defaultFilter ? !0 : defaultFilter(key, value, obj); "function" != typeof value || isPromisified(value) || hasPromisified(obj, key, suffix) || !filter(key, value, obj, passesDefaultFilter) || ret.push(key, value) } return checkValid(ret, suffix, suffixRegexp), ret } function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { function promisified() { var _receiver = receiver; receiver === THIS && (_receiver = this); var promise = new Promise(INTERNAL); promise._captureStackTrace(); var cb = "string" == typeof method && this !== defaultThis ? this[method] : callback, fn = nodebackForPromise(promise, multiArgs); try { cb.apply(_receiver, withAppended(arguments, fn)) } catch (e) { promise._rejectCallback(maybeWrapAsError(e), !0, !0) } return promise._isFateSealed() || promise._setAsyncGuaranteed(), promise } var defaultThis = function () { return this }(), method = callback; return "string" == typeof method && (callback = fn), util.notEnumerableProp(promisified, "__isPromisified__", !0), promisified } function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { for (var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"), methods = promisifiableMethods(obj, suffix, suffixRegexp, filter), i = 0, len = methods.length; len > i; i += 2) { var key = methods[i], fn = methods[i + 1], promisifiedKey = key + suffix; if (promisifier === makeNodePromisified) obj[promisifiedKey] = makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); else { var promisified = promisifier(fn, function () { return makeNodePromisified(key, THIS, key, fn, suffix, multiArgs) }); util.notEnumerableProp(promisified, "__isPromisified__", !0), obj[promisifiedKey] = promisified } } return util.toFastProperties(obj), obj } function promisify(callback, receiver, multiArgs) { return makeNodePromisified(callback, receiver, void 0, callback, null, multiArgs) } var makeNodePromisifiedEval, THIS = {}, util = require("./util"), nodebackForPromise = require("./nodeback"), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = require("./errors").TypeError, defaultSuffix = "Async", defaultPromisified = { __isPromisified__: !0 }, noCopyProps = ["arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__"], noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"), defaultFilter = function (name) { return util.isIdentifier(name) && "_" !== name.charAt(0) && "constructor" !== name }, escapeIdentRegex = function (str) { return str.replace(/([$])/, "\\$") }, switchCaseArgumentOrder = function (likelyArgumentCount) { for (var ret = [likelyArgumentCount], min = Math.max(0, likelyArgumentCount - 1 - 3), i = likelyArgumentCount - 1; i >= min; --i)ret.push(i); for (var i = likelyArgumentCount + 1; 3 >= i; ++i)ret.push(i); return ret }, argumentSequence = function (argumentCount) { return util.filledRange(argumentCount, "_arg", "") }, parameterDeclaration = function (parameterCount) { return util.filledRange(Math.max(parameterCount, 3), "_arg", "") }, parameterCount = function (fn) { return "number" == typeof fn.length ? Math.max(Math.min(fn.length, 1024), 0) : 0 }; makeNodePromisifiedEval = function (callback, receiver, originalName, fn, _, multiArgs) { function generateCallForArgumentCount(count) { var ret, args = argumentSequence(count).join(", "), comma = count > 0 ? ", " : ""; return ret = shouldProxyThis ? "ret = callback.call(this, {{args}}, nodeback); break;\n" : void 0 === receiver ? "ret = callback({{args}}, nodeback); break;\n" : "ret = callback.call(receiver, {{args}}, nodeback); break;\n", ret.replace("{{args}}", args).replace(", ", comma) } function generateArgumentSwitchCase() { for (var ret = "", i = 0; i < argumentOrder.length; ++i)ret += "case " + argumentOrder[i] + ":" + generateCallForArgumentCount(argumentOrder[i]); return ret += " \n default: \n var args = new Array(len + 1); \n var i = 0; \n for (var i = 0; i < len; ++i) { \n args[i] = arguments[i]; \n } \n args[i] = nodeback; \n [CodeForCall] \n break; \n ".replace("[CodeForCall]", shouldProxyThis ? "ret = callback.apply(this, args);\n" : "ret = callback.apply(receiver, args);\n") } var newParameterCount = Math.max(0, parameterCount(fn) - 1), argumentOrder = switchCaseArgumentOrder(newParameterCount), shouldProxyThis = "string" == typeof callback || receiver === THIS, getFunctionCode = "string" == typeof callback ? "this != null ? this['" + callback + "'] : fn" : "fn", body = "'use strict'; \n var ret = function (Parameters) { \n 'use strict'; \n var len = arguments.length; \n var promise = new Promise(INTERNAL); \n promise._captureStackTrace(); \n var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n var ret; \n var callback = tryCatch([GetFunctionCode]); \n switch(len) { \n [CodeForSwitchCase] \n } \n if (ret === errorObj) { \n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n } \n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n return promise; \n }; \n notEnumerableProp(ret, '__isPromisified__', true); \n return ret; \n ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()).replace("[GetFunctionCode]", getFunctionCode); return body = body.replace("Parameters", parameterDeclaration(newParameterCount)), new Function("Promise", "fn", "receiver", "withAppended", "maybeWrapAsError", "nodebackForPromise", "tryCatch", "errorObj", "notEnumerableProp", "INTERNAL", body)(Promise, fn, receiver, withAppended, maybeWrapAsError, nodebackForPromise, util.tryCatch, util.errorObj, util.notEnumerableProp, INTERNAL) }; var makeNodePromisified = canEvaluate ? makeNodePromisifiedEval : makeNodePromisifiedClosure; Promise.promisify = function (fn, options) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); if (isPromisified(fn)) return fn; options = Object(options); var receiver = void 0 === options.context ? THIS : options.context, multiArgs = !!options.multiArgs, ret = promisify(fn, receiver, multiArgs); return util.copyDescriptors(fn, ret, propsFilter), ret }, Promise.promisifyAll = function (target, options) { if ("function" != typeof target && "object" != typeof target) throw new TypeError("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n"); options = Object(options); var multiArgs = !!options.multiArgs, suffix = options.suffix; "string" != typeof suffix && (suffix = defaultSuffix); var filter = options.filter; "function" != typeof filter && (filter = defaultFilter); var promisifier = options.promisifier; if ("function" != typeof promisifier && (promisifier = makeNodePromisified), !util.isIdentifier(suffix)) throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n"); for (var keys = util.inheritedDataKeys(target), i = 0; i < keys.length; ++i) { var value = target[keys[i]]; "constructor" !== keys[i] && util.isClass(value) && (promisifyAll(value.prototype, suffix, filter, promisifier, multiArgs), promisifyAll(value, suffix, filter, promisifier, multiArgs)) } return promisifyAll(target, suffix, filter, promisifier, multiArgs) } } }, { "./errors": 51, "./nodeback": 59, "./util": 75 }], 64: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, tryConvertToPromise, apiRejection) { function PropertiesPromiseArray(obj) { var entries, isMap = !1; if (void 0 !== Es6Map && obj instanceof Es6Map) entries = mapToEntries(obj), isMap = !0; else { var keys = es5.keys(obj), len = keys.length; entries = new Array(2 * len); for (var i = 0; len > i; ++i) { var key = keys[i]; entries[i] = obj[key], entries[i + len] = key } } this.constructor$(entries), this._isMap = isMap, this._init$(void 0, -3) } function props(promises) { var ret, castValue = tryConvertToPromise(promises); return isObject(castValue) ? (ret = castValue instanceof Promise ? castValue._then(Promise.props, void 0, void 0, void 0, void 0) : new PropertiesPromiseArray(castValue).promise(), castValue instanceof Promise && ret._propagateFrom(castValue, 2), ret) : apiRejection("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n") } var Es6Map, util = require("./util"), isObject = util.isObject, es5 = require("./es5"); "function" == typeof Map && (Es6Map = Map); var mapToEntries = function () { function extractEntry(value, key) { this[index] = value, this[index + size] = key, index++ } var index = 0, size = 0; return function (map) { size = map.size, index = 0; var ret = new Array(2 * map.size); return map.forEach(extractEntry, ret), ret } }(), entriesToMap = function (entries) { for (var ret = new Es6Map, length = entries.length / 2 | 0, i = 0; length > i; ++i) { var key = entries[length + i], value = entries[i]; ret.set(key, value) } return ret }; util.inherits(PropertiesPromiseArray, PromiseArray), PropertiesPromiseArray.prototype._init = function () { }, PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { this._values[index] = value; var totalResolved = ++this._totalResolved; if (totalResolved >= this._length) { var val; if (this._isMap) val = entriesToMap(this._values); else { val = {}; for (var keyOffset = this.length(), i = 0, len = this.length(); len > i; ++i)val[this._values[i + keyOffset]] = this._values[i] } return this._resolve(val), !0 } return !1 }, PropertiesPromiseArray.prototype.shouldCopyValues = function () { return !1 }, PropertiesPromiseArray.prototype.getActualLength = function (len) { return len >> 1 }, Promise.prototype.props = function () { return props(this) }, Promise.props = function (promises) { return props(promises) } } }, { "./es5": 52, "./util": 75 }], 65: [function (require, module, exports) { "use strict"; function arrayMove(src, srcIndex, dst, dstIndex, len) { for (var j = 0; len > j; ++j)dst[j + dstIndex] = src[j + srcIndex], src[j + srcIndex] = void 0 } function Queue(capacity) { this._capacity = capacity, this._length = 0, this._front = 0 } Queue.prototype._willBeOverCapacity = function (size) { return this._capacity < size }, Queue.prototype._pushOne = function (arg) { var length = this.length(); this._checkCapacity(length + 1); var i = this._front + length & this._capacity - 1; this[i] = arg, this._length = length + 1 }, Queue.prototype.push = function (fn, receiver, arg) { var length = this.length() + 3; if (this._willBeOverCapacity(length)) return this._pushOne(fn), this._pushOne(receiver), void this._pushOne(arg); var j = this._front + length - 3; this._checkCapacity(length); var wrapMask = this._capacity - 1; this[j + 0 & wrapMask] = fn, this[j + 1 & wrapMask] = receiver, this[j + 2 & wrapMask] = arg, this._length = length }, Queue.prototype.shift = function () { var front = this._front, ret = this[front]; return this[front] = void 0, this._front = front + 1 & this._capacity - 1, this._length--, ret }, Queue.prototype.length = function () { return this._length }, Queue.prototype._checkCapacity = function (size) { this._capacity < size && this._resizeTo(this._capacity << 1) }, Queue.prototype._resizeTo = function (capacity) { var oldCapacity = this._capacity; this._capacity = capacity; var front = this._front, length = this._length, moveItemsCount = front + length & oldCapacity - 1; arrayMove(this, 0, this, oldCapacity, moveItemsCount) }, module.exports = Queue }, {}], 66: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection) { function race(promises, parent) { var maybePromise = tryConvertToPromise(promises); if (maybePromise instanceof Promise) return raceLater(maybePromise); if (promises = util.asArray(promises), null === promises) return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); var ret = new Promise(INTERNAL); void 0 !== parent && ret._propagateFrom(parent, 3); for (var fulfill = ret._fulfill, reject = ret._reject, i = 0, len = promises.length; len > i; ++i) { var val = promises[i]; (void 0 !== val || i in promises) && Promise.cast(val)._then(fulfill, reject, void 0, ret, null) } return ret } var util = require("./util"), raceLater = function (promise) { return promise.then(function (array) { return race(array, promise) }) }; Promise.race = function (promises) { return race(promises, void 0) }, Promise.prototype.race = function () { return race(this, void 0) } } }, { "./util": 75 }], 67: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { function ReductionPromiseArray(promises, fn, initialValue, _each) { this.constructor$(promises); var domain = getDomain(); this._fn = null === domain ? fn : util.domainBind(domain, fn), void 0 !== initialValue && (initialValue = Promise.resolve(initialValue), initialValue._attachCancellationCallback(this)), this._initialValue = initialValue, this._currentCancellable = null, _each === INTERNAL ? this._eachValues = Array(this._length) : 0 === _each ? this._eachValues = null : this._eachValues = void 0, this._promise._captureStackTrace(), this._init$(void 0, -5) } function completed(valueOrReason, array) { this.isFulfilled() ? array._resolve(valueOrReason) : array._reject(valueOrReason) } function reduce(promises, fn, initialValue, _each) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var array = new ReductionPromiseArray(promises, fn, initialValue, _each); return array.promise() } function gotAccum(accum) { this.accum = accum, this.array._gotAccum(accum); var value = tryConvertToPromise(this.value, this.array._promise); return value instanceof Promise ? (this.array._currentCancellable = value, value._then(gotValue, void 0, void 0, this, void 0)) : gotValue.call(this, value) } function gotValue(value) { var array = this.array, promise = array._promise, fn = tryCatch(array._fn); promise._pushContext(); var ret; ret = void 0 !== array._eachValues ? fn.call(promise._boundValue(), value, this.index, this.length) : fn.call(promise._boundValue(), this.accum, value, this.index, this.length), ret instanceof Promise && (array._currentCancellable = ret); var promiseCreated = promise._popContext(); return debug.checkForgottenReturns(ret, promiseCreated, void 0 !== array._eachValues ? "Promise.each" : "Promise.reduce", promise), ret } var getDomain = Promise._getDomain, util = require("./util"), tryCatch = util.tryCatch; util.inherits(ReductionPromiseArray, PromiseArray), ReductionPromiseArray.prototype._gotAccum = function (accum) { void 0 !== this._eachValues && null !== this._eachValues && accum !== INTERNAL && this._eachValues.push(accum) }, ReductionPromiseArray.prototype._eachComplete = function (value) { return null !== this._eachValues && this._eachValues.push(value), this._eachValues }, ReductionPromiseArray.prototype._init = function () { }, ReductionPromiseArray.prototype._resolveEmptyArray = function () { this._resolve(void 0 !== this._eachValues ? this._eachValues : this._initialValue) }, ReductionPromiseArray.prototype.shouldCopyValues = function () { return !1 }, ReductionPromiseArray.prototype._resolve = function (value) { this._promise._resolveCallback(value), this._values = null }, ReductionPromiseArray.prototype._resultCancelled = function (sender) { return sender === this._initialValue ? this._cancel() : void (this._isResolved() || (this._resultCancelled$(), this._currentCancellable instanceof Promise && this._currentCancellable.cancel(), this._initialValue instanceof Promise && this._initialValue.cancel())) }, ReductionPromiseArray.prototype._iterate = function (values) { this._values = values; var value, i, length = values.length; if (void 0 !== this._initialValue ? (value = this._initialValue, i = 0) : (value = Promise.resolve(values[0]), i = 1), this._currentCancellable = value, !value.isRejected()) for (; length > i; ++i) { var ctx = { accum: null, value: values[i], index: i, length: length, array: this }; value = value._then(gotAccum, void 0, void 0, ctx, void 0) } void 0 !== this._eachValues && (value = value._then(this._eachComplete, void 0, void 0, this, void 0)), value._then(completed, completed, void 0, value, this) }, Promise.prototype.reduce = function (fn, initialValue) { return reduce(this, fn, initialValue, null) }, Promise.reduce = function (promises, fn, initialValue, _each) { return reduce(promises, fn, initialValue, _each) } } }, { "./util": 75 }], 68: [function (require, module, exports) { (function (process, global) { "use strict"; var schedule, util = require("./util"), noAsyncScheduler = function () { throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n") }, NativePromise = util.getNativePromise(); if (util.isNode && "undefined" == typeof MutationObserver) { var GlobalSetImmediate = global.setImmediate, ProcessNextTick = process.nextTick; schedule = util.isRecentNode ? function (fn) { GlobalSetImmediate.call(global, fn) } : function (fn) { ProcessNextTick.call(process, fn) } } else if ("function" == typeof NativePromise && "function" == typeof NativePromise.resolve) { var nativePromise = NativePromise.resolve(); schedule = function (fn) { nativePromise.then(fn) } } else schedule = "undefined" == typeof MutationObserver || "undefined" != typeof window && window.navigator && (window.navigator.standalone || window.cordova) ? "undefined" != typeof setImmediate ? function (fn) { setImmediate(fn) } : "undefined" != typeof setTimeout ? function (fn) { setTimeout(fn, 0) } : noAsyncScheduler : function () { var div = document.createElement("div"), opts = { attributes: !0 }, toggleScheduled = !1, div2 = document.createElement("div"), o2 = new MutationObserver(function () { div.classList.toggle("foo"), toggleScheduled = !1 }); o2.observe(div2, opts); var scheduleToggle = function () { toggleScheduled || (toggleScheduled = !0, div2.classList.toggle("foo")) }; return function (fn) { var o = new MutationObserver(function () { o.disconnect(), fn() }); o.observe(div, opts), scheduleToggle() } }(); module.exports = schedule }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./util": 75, _process: 102 }], 69: [function (require, module, exports) { + "use strict"; module.exports = function (Promise, PromiseArray, debug) { + function SettledPromiseArray(values) { this.constructor$(values) } var PromiseInspection = Promise.PromiseInspection, util = require("./util"); util.inherits(SettledPromiseArray, PromiseArray), SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { this._values[index] = inspection; var totalResolved = ++this._totalResolved; return totalResolved >= this._length ? (this._resolve(this._values), !0) : !1 }, SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { var ret = new PromiseInspection; return ret._bitField = 33554432, ret._settledValueField = value, this._promiseResolved(index, ret) }, SettledPromiseArray.prototype._promiseRejected = function (reason, index) { + var ret = new PromiseInspection; return ret._bitField = 16777216, ret._settledValueField = reason, this._promiseResolved(index, ret) + }, Promise.settle = function (promises) { return debug.deprecated(".settle()", ".reflect()"), new SettledPromiseArray(promises).promise() }, Promise.prototype.settle = function () { return Promise.settle(this) } } - }, { "./util": 82 }], 64: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { function MappingPromiseArray(promises, fn, limit, _filter) { this.constructor$(promises), this._promise._captureStackTrace(); var domain = getDomain(); this._callback = null === domain ? fn : util.domainBind(domain, fn), this._preservedValues = _filter === INTERNAL ? new Array(this.length()) : null, this._limit = limit, this._inFlight = 0, this._queue = [], async.invoke(this._asyncInit, this, void 0) } function map(promises, fn, options, _filter) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var limit = 0; if (void 0 !== options) { if ("object" != typeof options || null === options) return Promise.reject(new TypeError("options argument must be an object but it is " + util.classString(options))); if ("number" != typeof options.concurrency) return Promise.reject(new TypeError("'concurrency' must be a number but it is " + util.classString(options.concurrency))); limit = options.concurrency } return limit = "number" == typeof limit && isFinite(limit) && limit >= 1 ? limit : 0, new MappingPromiseArray(promises, fn, limit, _filter).promise() } var getDomain = Promise._getDomain, util = require("./util"), tryCatch = util.tryCatch, errorObj = util.errorObj, async = Promise._async; util.inherits(MappingPromiseArray, PromiseArray), MappingPromiseArray.prototype._asyncInit = function () { this._init$(void 0, -2) }, MappingPromiseArray.prototype._init = function () { }, MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { var values = this._values, length = this.length(), preservedValues = this._preservedValues, limit = this._limit; if (0 > index) { if (index = -1 * index - 1, values[index] = value, limit >= 1 && (this._inFlight--, this._drainQueue(), this._isResolved())) return !0 } else { if (limit >= 1 && this._inFlight >= limit) return values[index] = value, this._queue.push(index), !1; null !== preservedValues && (preservedValues[index] = value); var promise = this._promise, callback = this._callback, receiver = promise._boundValue(); promise._pushContext(); var ret = tryCatch(callback).call(receiver, value, index, length), promiseCreated = promise._popContext(); if (debug.checkForgottenReturns(ret, promiseCreated, null !== preservedValues ? "Promise.filter" : "Promise.map", promise), ret === errorObj) return this._reject(ret.e), !0; var maybePromise = tryConvertToPromise(ret, this._promise); if (maybePromise instanceof Promise) { maybePromise = maybePromise._target(); var bitField = maybePromise._bitField; if (0 === (50397184 & bitField)) return limit >= 1 && this._inFlight++, values[index] = maybePromise, maybePromise._proxy(this, -1 * (index + 1)), !1; if (0 === (33554432 & bitField)) return 0 !== (16777216 & bitField) ? (this._reject(maybePromise._reason()), !0) : (this._cancel(), !0); ret = maybePromise._value() } values[index] = ret } var totalResolved = ++this._totalResolved; return totalResolved >= length ? (null !== preservedValues ? this._filter(values, preservedValues) : this._resolve(values), !0) : !1 }, MappingPromiseArray.prototype._drainQueue = function () { for (var queue = this._queue, limit = this._limit, values = this._values; queue.length > 0 && this._inFlight < limit;) { if (this._isResolved()) return; var index = queue.pop(); this._promiseFulfilled(values[index], index) } }, MappingPromiseArray.prototype._filter = function (booleans, values) { for (var len = values.length, ret = new Array(len), j = 0, i = 0; len > i; ++i)booleans[i] && (ret[j++] = values[i]); ret.length = j, this._resolve(ret) }, MappingPromiseArray.prototype.preservedValues = function () { return this._preservedValues }, Promise.prototype.map = function (fn, options) { return map(this, fn, options, null) }, Promise.map = function (promises, fn, options, _filter) { return map(promises, fn, options, _filter) } } }, { "./util": 82 }], 65: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { var util = require("./util"), tryCatch = util.tryCatch; Promise.method = function (fn) { if ("function" != typeof fn) throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); return function () { var ret = new Promise(INTERNAL); ret._captureStackTrace(), ret._pushContext(); var value = tryCatch(fn).apply(this, arguments), promiseCreated = ret._popContext(); return debug.checkForgottenReturns(value, promiseCreated, "Promise.method", ret), ret._resolveFromSyncValue(value), ret } }, Promise.attempt = Promise["try"] = function (fn) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var ret = new Promise(INTERNAL); ret._captureStackTrace(), ret._pushContext(); var value; if (arguments.length > 1) { debug.deprecated("calling Promise.try with more than 1 argument"); var arg = arguments[1], ctx = arguments[2]; value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) : tryCatch(fn).call(ctx, arg) } else value = tryCatch(fn)(); var promiseCreated = ret._popContext(); return debug.checkForgottenReturns(value, promiseCreated, "Promise.try", ret), ret._resolveFromSyncValue(value), ret }, Promise.prototype._resolveFromSyncValue = function (value) { value === util.errorObj ? this._rejectCallback(value.e, !1) : this._resolveCallback(value, !0) } } }, { "./util": 82 }], 66: [function (require, module, exports) { "use strict"; function isUntypedError(obj) { return obj instanceof Error && es5.getPrototypeOf(obj) === Error.prototype } function wrapAsOperationalError(obj) { var ret; if (isUntypedError(obj)) { ret = new OperationalError(obj), ret.name = obj.name, ret.message = obj.message, ret.stack = obj.stack; for (var keys = es5.keys(obj), i = 0; i < keys.length; ++i) { var key = keys[i]; rErrorKey.test(key) || (ret[key] = obj[key]) } return ret } return util.markAsOriginatingFromRejection(obj), obj } function nodebackForPromise(promise, multiArgs) { return function (err, value) { if (null !== promise) { if (err) { var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); promise._attachExtraTrace(wrapped), promise._reject(wrapped) } else if (multiArgs) { for (var $_len = arguments.length, args = new Array(Math.max($_len - 1, 0)), $_i = 1; $_len > $_i; ++$_i)args[$_i - 1] = arguments[$_i]; promise._fulfill(args) } else promise._fulfill(value); promise = null } } } var util = require("./util"), maybeWrapAsError = util.maybeWrapAsError, errors = require("./errors"), OperationalError = errors.OperationalError, es5 = require("./es5"), rErrorKey = /^(?:name|message|stack|cause)$/; module.exports = nodebackForPromise }, { "./errors": 58, "./es5": 59, "./util": 82 }], 67: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function spreadAdapter(val, nodeback) { var promise = this; if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); var ret = tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); ret === errorObj && async.throwLater(ret.e) } function successAdapter(val, nodeback) { var promise = this, receiver = promise._boundValue(), ret = void 0 === val ? tryCatch(nodeback).call(receiver, null) : tryCatch(nodeback).call(receiver, null, val); ret === errorObj && async.throwLater(ret.e) } function errorAdapter(reason, nodeback) { var promise = this; if (!reason) { var newReason = new Error(reason + ""); newReason.cause = reason, reason = newReason } var ret = tryCatch(nodeback).call(promise._boundValue(), reason); ret === errorObj && async.throwLater(ret.e) } var util = require("./util"), async = Promise._async, tryCatch = util.tryCatch, errorObj = util.errorObj; Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, options) { if ("function" == typeof nodeback) { var adapter = successAdapter; void 0 !== options && Object(options).spread && (adapter = spreadAdapter), this._then(adapter, errorAdapter, void 0, this, nodeback) } return this } } }, { "./util": 82 }], 68: [function (require, module, exports) { (function (process) { "use strict"; module.exports = function () { function Proxyable() { } function check(self, executor) { if ("function" != typeof executor) throw new TypeError("expecting a function but got " + util.classString(executor)); if (self.constructor !== Promise) throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n") } function Promise(executor) { this._bitField = 0, this._fulfillmentHandler0 = void 0, this._rejectionHandler0 = void 0, this._promise0 = void 0, this._receiver0 = void 0, executor !== INTERNAL && (check(this, executor), this._resolveFromExecutor(executor)), this._promiseCreated(), this._fireEvent("promiseCreated", this) } function deferResolve(v) { this.promise._resolveCallback(v) } function deferReject(v) { this.promise._rejectCallback(v, !1) } function fillTypes(value) { var p = new Promise(INTERNAL); p._fulfillmentHandler0 = value, p._rejectionHandler0 = value, p._promise0 = value, p._receiver0 = value } var getDomain, makeSelfResolutionError = function () { return new TypeError("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n") }, reflectHandler = function () { return new Promise.PromiseInspection(this._target()) }, apiRejection = function (msg) { return Promise.reject(new TypeError(msg)) }, UNDEFINED_BINDING = {}, util = require("./util"); getDomain = util.isNode ? function () { var ret = process.domain; return void 0 === ret && (ret = null), ret } : function () { return null }, util.notEnumerableProp(Promise, "_getDomain", getDomain); var es5 = require("./es5"), Async = require("./async"), async = new Async; es5.defineProperty(Promise, "_async", { value: async }); var errors = require("./errors"), TypeError = Promise.TypeError = errors.TypeError; Promise.RangeError = errors.RangeError; var CancellationError = Promise.CancellationError = errors.CancellationError; Promise.TimeoutError = errors.TimeoutError, Promise.OperationalError = errors.OperationalError, Promise.RejectionError = errors.OperationalError, Promise.AggregateError = errors.AggregateError; var INTERNAL = function () { }, APPLY = {}, NEXT_FILTER = {}, tryConvertToPromise = require("./thenables")(Promise, INTERNAL), PromiseArray = require("./promise_array")(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable), Context = require("./context")(Promise), createContext = Context.create, debug = require("./debuggability")(Promise, Context), PassThroughHandlerContext = (debug.CapturedTrace, require("./finally")(Promise, tryConvertToPromise)), catchFilter = require("./catch_filter")(NEXT_FILTER), nodebackForPromise = require("./nodeback"), errorObj = util.errorObj, tryCatch = util.tryCatch; return Promise.prototype.toString = function () { return "[object Promise]" }, Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { var len = arguments.length; if (len > 1) { var i, catchInstances = new Array(len - 1), j = 0; for (i = 0; len - 1 > i; ++i) { var item = arguments[i]; if (!util.isObject(item)) return apiRejection("expecting an object but got A catch statement predicate " + util.classString(item)); catchInstances[j++] = item } return catchInstances.length = j, fn = arguments[i], this.then(void 0, catchFilter(catchInstances, fn, this)) } return this.then(void 0, fn) }, Promise.prototype.reflect = function () { return this._then(reflectHandler, reflectHandler, void 0, this, void 0) }, Promise.prototype.then = function (didFulfill, didReject) { if (debug.warnings() && arguments.length > 0 && "function" != typeof didFulfill && "function" != typeof didReject) { var msg = ".then() only accepts functions but was passed: " + util.classString(didFulfill); arguments.length > 1 && (msg += ", " + util.classString(didReject)), this._warn(msg) } return this._then(didFulfill, didReject, void 0, void 0, void 0) }, Promise.prototype.done = function (didFulfill, didReject) { var promise = this._then(didFulfill, didReject, void 0, void 0, void 0); promise._setIsFinal() }, Promise.prototype.spread = function (fn) { return "function" != typeof fn ? apiRejection("expecting a function but got " + util.classString(fn)) : this.all()._then(fn, void 0, void 0, APPLY, void 0) }, Promise.prototype.toJSON = function () { var ret = { isFulfilled: !1, isRejected: !1, fulfillmentValue: void 0, rejectionReason: void 0 }; return this.isFulfilled() ? (ret.fulfillmentValue = this.value(), ret.isFulfilled = !0) : this.isRejected() && (ret.rejectionReason = this.reason(), ret.isRejected = !0), ret }, Promise.prototype.all = function () { return arguments.length > 0 && this._warn(".all() was passed arguments but it does not take any"), new PromiseArray(this).promise() }, Promise.prototype.error = function (fn) { return this.caught(util.originatesFromRejection, fn) }, Promise.getNewLibraryCopy = module.exports, Promise.is = function (val) { return val instanceof Promise }, Promise.fromNode = Promise.fromCallback = function (fn) { var ret = new Promise(INTERNAL); ret._captureStackTrace(); var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs : !1, result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); return result === errorObj && ret._rejectCallback(result.e, !0), ret._isFateSealed() || ret._setAsyncGuaranteed(), ret }, Promise.all = function (promises) { return new PromiseArray(promises).promise() }, Promise.cast = function (obj) { var ret = tryConvertToPromise(obj); return ret instanceof Promise || (ret = new Promise(INTERNAL), ret._captureStackTrace(), ret._setFulfilled(), ret._rejectionHandler0 = obj), ret }, Promise.resolve = Promise.fulfilled = Promise.cast, Promise.reject = Promise.rejected = function (reason) { var ret = new Promise(INTERNAL); return ret._captureStackTrace(), ret._rejectCallback(reason, !0), ret }, Promise.setScheduler = function (fn) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); return async.setScheduler(fn) }, Promise.prototype._then = function (didFulfill, didReject, _, receiver, internalData) { var haveInternalData = void 0 !== internalData, promise = haveInternalData ? internalData : new Promise(INTERNAL), target = this._target(), bitField = target._bitField; haveInternalData || (promise._propagateFrom(this, 3), promise._captureStackTrace(), void 0 === receiver && 0 !== (2097152 & this._bitField) && (receiver = 0 !== (50397184 & bitField) ? this._boundValue() : target === this ? void 0 : this._boundTo), this._fireEvent("promiseChained", this, promise)); var domain = getDomain(); if (0 !== (50397184 & bitField)) { var handler, value, settler = target._settlePromiseCtx; 0 !== (33554432 & bitField) ? (value = target._rejectionHandler0, handler = didFulfill) : 0 !== (16777216 & bitField) ? (value = target._fulfillmentHandler0, handler = didReject, target._unsetRejectionIsUnhandled()) : (settler = target._settlePromiseLateCancellationObserver, value = new CancellationError("late cancellation observer"), target._attachExtraTrace(value), handler = didReject), async.invoke(settler, target, { handler: null === domain ? handler : "function" == typeof handler && util.domainBind(domain, handler), promise: promise, receiver: receiver, value: value }) } else target._addCallbacks(didFulfill, didReject, promise, receiver, domain); return promise }, Promise.prototype._length = function () { return 65535 & this._bitField }, Promise.prototype._isFateSealed = function () { return 0 !== (117506048 & this._bitField) }, Promise.prototype._isFollowing = function () { return 67108864 === (67108864 & this._bitField) }, Promise.prototype._setLength = function (len) { this._bitField = -65536 & this._bitField | 65535 & len }, Promise.prototype._setFulfilled = function () { this._bitField = 33554432 | this._bitField, this._fireEvent("promiseFulfilled", this) }, Promise.prototype._setRejected = function () { this._bitField = 16777216 | this._bitField, this._fireEvent("promiseRejected", this) }, Promise.prototype._setFollowing = function () { this._bitField = 67108864 | this._bitField, this._fireEvent("promiseResolved", this) }, Promise.prototype._setIsFinal = function () { this._bitField = 4194304 | this._bitField }, Promise.prototype._isFinal = function () { return (4194304 & this._bitField) > 0 }, Promise.prototype._unsetCancelled = function () { this._bitField = -65537 & this._bitField }, Promise.prototype._setCancelled = function () { this._bitField = 65536 | this._bitField, this._fireEvent("promiseCancelled", this) }, Promise.prototype._setWillBeCancelled = function () { this._bitField = 8388608 | this._bitField }, Promise.prototype._setAsyncGuaranteed = function () { async.hasCustomScheduler() || (this._bitField = 134217728 | this._bitField) }, Promise.prototype._receiverAt = function (index) { var ret = 0 === index ? this._receiver0 : this[4 * index - 4 + 3]; return ret === UNDEFINED_BINDING ? void 0 : void 0 === ret && this._isBound() ? this._boundValue() : ret }, Promise.prototype._promiseAt = function (index) { return this[4 * index - 4 + 2] }, Promise.prototype._fulfillmentHandlerAt = function (index) { return this[4 * index - 4 + 0] }, Promise.prototype._rejectionHandlerAt = function (index) { return this[4 * index - 4 + 1] }, Promise.prototype._boundValue = function () { }, Promise.prototype._migrateCallback0 = function (follower) { var fulfill = (follower._bitField, follower._fulfillmentHandler0), reject = follower._rejectionHandler0, promise = follower._promise0, receiver = follower._receiverAt(0); void 0 === receiver && (receiver = UNDEFINED_BINDING), this._addCallbacks(fulfill, reject, promise, receiver, null) }, Promise.prototype._migrateCallbackAt = function (follower, index) { var fulfill = follower._fulfillmentHandlerAt(index), reject = follower._rejectionHandlerAt(index), promise = follower._promiseAt(index), receiver = follower._receiverAt(index); void 0 === receiver && (receiver = UNDEFINED_BINDING), this._addCallbacks(fulfill, reject, promise, receiver, null) }, Promise.prototype._addCallbacks = function (fulfill, reject, promise, receiver, domain) { var index = this._length(); if (index >= 65531 && (index = 0, this._setLength(0)), 0 === index) this._promise0 = promise, this._receiver0 = receiver, "function" == typeof fulfill && (this._fulfillmentHandler0 = null === domain ? fulfill : util.domainBind(domain, fulfill)), "function" == typeof reject && (this._rejectionHandler0 = null === domain ? reject : util.domainBind(domain, reject)); else { var base = 4 * index - 4; this[base + 2] = promise, this[base + 3] = receiver, "function" == typeof fulfill && (this[base + 0] = null === domain ? fulfill : util.domainBind(domain, fulfill)), "function" == typeof reject && (this[base + 1] = null === domain ? reject : util.domainBind(domain, reject)) } return this._setLength(index + 1), index }, Promise.prototype._proxy = function (proxyable, arg) { this._addCallbacks(void 0, void 0, arg, proxyable, null) }, Promise.prototype._resolveCallback = function (value, shouldBind) { if (0 === (117506048 & this._bitField)) { if (value === this) return this._rejectCallback(makeSelfResolutionError(), !1); var maybePromise = tryConvertToPromise(value, this); if (!(maybePromise instanceof Promise)) return this._fulfill(value); shouldBind && this._propagateFrom(maybePromise, 2); var promise = maybePromise._target(); if (promise === this) return void this._reject(makeSelfResolutionError()); var bitField = promise._bitField; if (0 === (50397184 & bitField)) { var len = this._length(); len > 0 && promise._migrateCallback0(this); for (var i = 1; len > i; ++i)promise._migrateCallbackAt(this, i); this._setFollowing(), this._setLength(0), this._setFollowee(promise) } else if (0 !== (33554432 & bitField)) this._fulfill(promise._value()); else if (0 !== (16777216 & bitField)) this._reject(promise._reason()); else { var reason = new CancellationError("late cancellation observer"); promise._attachExtraTrace(reason), this._reject(reason) } } }, Promise.prototype._rejectCallback = function (reason, synchronous, ignoreNonErrorWarnings) { var trace = util.ensureErrorObject(reason), hasStack = trace === reason; if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { var message = "a promise was rejected with a non-error: " + util.classString(reason); this._warn(message, !0) } this._attachExtraTrace(trace, synchronous ? hasStack : !1), this._reject(reason) }, Promise.prototype._resolveFromExecutor = function (executor) { var promise = this; this._captureStackTrace(), this._pushContext(); var synchronous = !0, r = this._execute(executor, function (value) { promise._resolveCallback(value) }, function (reason) { promise._rejectCallback(reason, synchronous) }); synchronous = !1, this._popContext(), void 0 !== r && promise._rejectCallback(r, !0) }, Promise.prototype._settlePromiseFromHandler = function (handler, receiver, value, promise) { var bitField = promise._bitField; if (0 === (65536 & bitField)) { promise._pushContext(); var x; receiver === APPLY ? value && "number" == typeof value.length ? x = tryCatch(handler).apply(this._boundValue(), value) : (x = errorObj, x.e = new TypeError("cannot .spread() a non-array: " + util.classString(value))) : x = tryCatch(handler).call(receiver, value); var promiseCreated = promise._popContext(); bitField = promise._bitField, 0 === (65536 & bitField) && (x === NEXT_FILTER ? promise._reject(value) : x === errorObj ? promise._rejectCallback(x.e, !1) : (debug.checkForgottenReturns(x, promiseCreated, "", promise, this), promise._resolveCallback(x))) } }, Promise.prototype._target = function () { for (var ret = this; ret._isFollowing();)ret = ret._followee(); return ret }, Promise.prototype._followee = function () { return this._rejectionHandler0 }, Promise.prototype._setFollowee = function (promise) { this._rejectionHandler0 = promise }, Promise.prototype._settlePromise = function (promise, handler, receiver, value) { var isPromise = promise instanceof Promise, bitField = this._bitField, asyncGuaranteed = 0 !== (134217728 & bitField); 0 !== (65536 & bitField) ? (isPromise && promise._invokeInternalOnCancel(), receiver instanceof PassThroughHandlerContext && receiver.isFinallyHandler() ? (receiver.cancelPromise = promise, tryCatch(handler).call(receiver, value) === errorObj && promise._reject(errorObj.e)) : handler === reflectHandler ? promise._fulfill(reflectHandler.call(receiver)) : receiver instanceof Proxyable ? receiver._promiseCancelled(promise) : isPromise || promise instanceof PromiseArray ? promise._cancel() : receiver.cancel()) : "function" == typeof handler ? isPromise ? (asyncGuaranteed && promise._setAsyncGuaranteed(), this._settlePromiseFromHandler(handler, receiver, value, promise)) : handler.call(receiver, value, promise) : receiver instanceof Proxyable ? receiver._isResolved() || (0 !== (33554432 & bitField) ? receiver._promiseFulfilled(value, promise) : receiver._promiseRejected(value, promise)) : isPromise && (asyncGuaranteed && promise._setAsyncGuaranteed(), 0 !== (33554432 & bitField) ? promise._fulfill(value) : promise._reject(value)) }, Promise.prototype._settlePromiseLateCancellationObserver = function (ctx) { var handler = ctx.handler, promise = ctx.promise, receiver = ctx.receiver, value = ctx.value; "function" == typeof handler ? promise instanceof Promise ? this._settlePromiseFromHandler(handler, receiver, value, promise) : handler.call(receiver, value, promise) : promise instanceof Promise && promise._reject(value) }, Promise.prototype._settlePromiseCtx = function (ctx) { this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value) }, Promise.prototype._settlePromise0 = function (handler, value, bitField) { var promise = this._promise0, receiver = this._receiverAt(0); this._promise0 = void 0, this._receiver0 = void 0, this._settlePromise(promise, handler, receiver, value) }, Promise.prototype._clearCallbackDataAtIndex = function (index) { var base = 4 * index - 4; this[base + 2] = this[base + 3] = this[base + 0] = this[base + 1] = void 0 }, Promise.prototype._fulfill = function (value) { var bitField = this._bitField; if (!((117506048 & bitField) >>> 16)) { if (value === this) { var err = makeSelfResolutionError(); return this._attachExtraTrace(err), this._reject(err) } this._setFulfilled(), this._rejectionHandler0 = value, (65535 & bitField) > 0 && (0 !== (134217728 & bitField) ? this._settlePromises() : async.settlePromises(this)) } }, Promise.prototype._reject = function (reason) { var bitField = this._bitField; if (!((117506048 & bitField) >>> 16)) return this._setRejected(), this._fulfillmentHandler0 = reason, this._isFinal() ? async.fatalError(reason, util.isNode) : void ((65535 & bitField) > 0 ? async.settlePromises(this) : this._ensurePossibleRejectionHandled()) }, Promise.prototype._fulfillPromises = function (len, value) { for (var i = 1; len > i; i++) { var handler = this._fulfillmentHandlerAt(i), promise = this._promiseAt(i), receiver = this._receiverAt(i); this._clearCallbackDataAtIndex(i), this._settlePromise(promise, handler, receiver, value) } }, Promise.prototype._rejectPromises = function (len, reason) { for (var i = 1; len > i; i++) { var handler = this._rejectionHandlerAt(i), promise = this._promiseAt(i), receiver = this._receiverAt(i); this._clearCallbackDataAtIndex(i), this._settlePromise(promise, handler, receiver, reason) } }, Promise.prototype._settlePromises = function () { var bitField = this._bitField, len = 65535 & bitField; if (len > 0) { if (0 !== (16842752 & bitField)) { var reason = this._fulfillmentHandler0; this._settlePromise0(this._rejectionHandler0, reason, bitField), this._rejectPromises(len, reason) } else { var value = this._rejectionHandler0; this._settlePromise0(this._fulfillmentHandler0, value, bitField), this._fulfillPromises(len, value) } this._setLength(0) } this._clearCancellationData() }, Promise.prototype._settledValue = function () { var bitField = this._bitField; return 0 !== (33554432 & bitField) ? this._rejectionHandler0 : 0 !== (16777216 & bitField) ? this._fulfillmentHandler0 : void 0 }, Promise.defer = Promise.pending = function () { debug.deprecated("Promise.defer", "new Promise"); var promise = new Promise(INTERNAL); return { promise: promise, resolve: deferResolve, reject: deferReject } }, util.notEnumerableProp(Promise, "_makeSelfResolutionError", makeSelfResolutionError), require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug), require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug), require("./cancel")(Promise, PromiseArray, apiRejection, debug), require("./direct_resolve")(Promise), require("./synchronous_inspection")(Promise), require("./join")(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain), Promise.Promise = Promise, Promise.version = "3.4.7", require("./map.js")(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), require("./call_get.js")(Promise), require("./using.js")(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug), require("./timers.js")(Promise, INTERNAL, debug), require("./generators.js")(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug), require("./nodeify.js")(Promise), require("./promisify.js")(Promise, INTERNAL), require("./props.js")(Promise, PromiseArray, tryConvertToPromise, apiRejection), require("./race.js")(Promise, INTERNAL, tryConvertToPromise, apiRejection), require("./reduce.js")(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug), require("./settle.js")(Promise, PromiseArray, debug), require("./some.js")(Promise, PromiseArray, apiRejection), require("./filter.js")(Promise, INTERNAL), require("./each.js")(Promise, INTERNAL), require("./any.js")(Promise), util.toFastProperties(Promise), util.toFastProperties(Promise.prototype), fillTypes({ a: 1 }), fillTypes({ b: 2 }), fillTypes({ c: 3 }), fillTypes(1), fillTypes(function () { }), fillTypes(void 0), fillTypes(!1), fillTypes(new Promise(INTERNAL)), debug.setBounds(Async.firstLineError, util.lastLineError), Promise } }).call(this, require("_process")) }, { "./any.js": 48, "./async": 49, "./bind": 50, "./call_get.js": 51, "./cancel": 52, "./catch_filter": 53, "./context": 54, "./debuggability": 55, "./direct_resolve": 56, "./each.js": 57, "./errors": 58, "./es5": 59, "./filter.js": 60, "./finally": 61, "./generators.js": 62, "./join": 63, "./map.js": 64, "./method": 65, "./nodeback": 66, "./nodeify.js": 67, "./promise_array": 69, "./promisify.js": 70, "./props.js": 71, "./race.js": 73, "./reduce.js": 74, "./settle.js": 76, "./some.js": 77, "./synchronous_inspection": 78, "./thenables": 79, "./timers.js": 80, "./using.js": 81, "./util": 82, _process: 102 }], 69: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable) { function toResolutionValue(val) { switch (val) { case -2: return []; case -3: return {} } } function PromiseArray(values) { var promise = this._promise = new Promise(INTERNAL); values instanceof Promise && promise._propagateFrom(values, 3), promise._setOnCancel(this), this._values = values, this._length = 0, this._totalResolved = 0, this._init(void 0, -2) } var util = require("./util"); util.isArray; return util.inherits(PromiseArray, Proxyable), PromiseArray.prototype.length = function () { return this._length }, PromiseArray.prototype.promise = function () { return this._promise }, PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { var values = tryConvertToPromise(this._values, this._promise); if (values instanceof Promise) { values = values._target(); var bitField = values._bitField; if (this._values = values, 0 === (50397184 & bitField)) return this._promise._setAsyncGuaranteed(), values._then(init, this._reject, void 0, this, resolveValueIfEmpty); if (0 === (33554432 & bitField)) return 0 !== (16777216 & bitField) ? this._reject(values._reason()) : this._cancel(); values = values._value() } if (values = util.asArray(values), null === values) { var err = apiRejection("expecting an array or an iterable object but got " + util.classString(values)).reason(); return void this._promise._rejectCallback(err, !1) } return 0 === values.length ? void (-5 === resolveValueIfEmpty ? this._resolveEmptyArray() : this._resolve(toResolutionValue(resolveValueIfEmpty))) : void this._iterate(values) }, PromiseArray.prototype._iterate = function (values) { var len = this.getActualLength(values.length); this._length = len, this._values = this.shouldCopyValues() ? new Array(len) : this._values; for (var result = this._promise, isResolved = !1, bitField = null, i = 0; len > i; ++i) { var maybePromise = tryConvertToPromise(values[i], result); maybePromise instanceof Promise ? (maybePromise = maybePromise._target(), bitField = maybePromise._bitField) : bitField = null, isResolved ? null !== bitField && maybePromise.suppressUnhandledRejections() : null !== bitField ? 0 === (50397184 & bitField) ? (maybePromise._proxy(this, i), this._values[i] = maybePromise) : isResolved = 0 !== (33554432 & bitField) ? this._promiseFulfilled(maybePromise._value(), i) : 0 !== (16777216 & bitField) ? this._promiseRejected(maybePromise._reason(), i) : this._promiseCancelled(i) : isResolved = this._promiseFulfilled(maybePromise, i) } isResolved || result._setAsyncGuaranteed() }, PromiseArray.prototype._isResolved = function () { return null === this._values }, PromiseArray.prototype._resolve = function (value) { this._values = null, this._promise._fulfill(value) }, PromiseArray.prototype._cancel = function () { !this._isResolved() && this._promise._isCancellable() && (this._values = null, this._promise._cancel()) }, PromiseArray.prototype._reject = function (reason) { this._values = null, this._promise._rejectCallback(reason, !1) }, PromiseArray.prototype._promiseFulfilled = function (value, index) { this._values[index] = value; var totalResolved = ++this._totalResolved; return totalResolved >= this._length ? (this._resolve(this._values), !0) : !1 }, PromiseArray.prototype._promiseCancelled = function () { return this._cancel(), !0 }, PromiseArray.prototype._promiseRejected = function (reason) { return this._totalResolved++, this._reject(reason), !0 }, PromiseArray.prototype._resultCancelled = function () { if (!this._isResolved()) { var values = this._values; if (this._cancel(), values instanceof Promise) values.cancel(); else for (var i = 0; i < values.length; ++i)values[i] instanceof Promise && values[i].cancel() } }, PromiseArray.prototype.shouldCopyValues = function () { return !0 }, PromiseArray.prototype.getActualLength = function (len) { return len }, PromiseArray } }, { "./util": 82 }], 70: [function (require, module, exports) { - "use strict"; module.exports = function (Promise, INTERNAL) { - function propsFilter(key) { return !noCopyPropsPattern.test(key) } function isPromisified(fn) { try { return fn.__isPromisified__ === !0 } catch (e) { return !1 } } function hasPromisified(obj, key, suffix) { var val = util.getDataPropertyOrDefault(obj, key + suffix, defaultPromisified); return val ? isPromisified(val) : !1 } function checkValid(ret, suffix, suffixRegexp) { - for (var i = 0; i < ret.length; i += 2) { - var key = ret[i]; if (suffixRegexp.test(key)) for (var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""), j = 0; j < ret.length; j += 2)if (ret[j] === keyWithoutAsyncSuffix) throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\n\n See http://goo.gl/MqrFmX\n".replace("%s", suffix)); - } - } function promisifiableMethods(obj, suffix, suffixRegexp, filter) { for (var keys = util.inheritedDataKeys(obj), ret = [], i = 0; i < keys.length; ++i) { var key = keys[i], value = obj[key], passesDefaultFilter = filter === defaultFilter ? !0 : defaultFilter(key, value, obj); "function" != typeof value || isPromisified(value) || hasPromisified(obj, key, suffix) || !filter(key, value, obj, passesDefaultFilter) || ret.push(key, value) } return checkValid(ret, suffix, suffixRegexp), ret } function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { function promisified() { var _receiver = receiver; receiver === THIS && (_receiver = this); var promise = new Promise(INTERNAL); promise._captureStackTrace(); var cb = "string" == typeof method && this !== defaultThis ? this[method] : callback, fn = nodebackForPromise(promise, multiArgs); try { cb.apply(_receiver, withAppended(arguments, fn)) } catch (e) { promise._rejectCallback(maybeWrapAsError(e), !0, !0) } return promise._isFateSealed() || promise._setAsyncGuaranteed(), promise } var defaultThis = function () { return this }(), method = callback; return "string" == typeof method && (callback = fn), util.notEnumerableProp(promisified, "__isPromisified__", !0), promisified } function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { for (var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"), methods = promisifiableMethods(obj, suffix, suffixRegexp, filter), i = 0, len = methods.length; len > i; i += 2) { var key = methods[i], fn = methods[i + 1], promisifiedKey = key + suffix; if (promisifier === makeNodePromisified) obj[promisifiedKey] = makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); else { var promisified = promisifier(fn, function () { return makeNodePromisified(key, THIS, key, fn, suffix, multiArgs) }); util.notEnumerableProp(promisified, "__isPromisified__", !0), obj[promisifiedKey] = promisified } } return util.toFastProperties(obj), obj } function promisify(callback, receiver, multiArgs) { return makeNodePromisified(callback, receiver, void 0, callback, null, multiArgs) } var makeNodePromisifiedEval, THIS = {}, util = require("./util"), nodebackForPromise = require("./nodeback"), withAppended = util.withAppended, maybeWrapAsError = util.maybeWrapAsError, canEvaluate = util.canEvaluate, TypeError = require("./errors").TypeError, defaultSuffix = "Async", defaultPromisified = { __isPromisified__: !0 }, noCopyProps = ["arity", "length", "name", "arguments", "caller", "callee", "prototype", "__isPromisified__"], noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"), defaultFilter = function (name) { return util.isIdentifier(name) && "_" !== name.charAt(0) && "constructor" !== name }, escapeIdentRegex = function (str) { return str.replace(/([$])/, "\\$") }, switchCaseArgumentOrder = function (likelyArgumentCount) { for (var ret = [likelyArgumentCount], min = Math.max(0, likelyArgumentCount - 1 - 3), i = likelyArgumentCount - 1; i >= min; --i)ret.push(i); for (var i = likelyArgumentCount + 1; 3 >= i; ++i)ret.push(i); return ret }, argumentSequence = function (argumentCount) { return util.filledRange(argumentCount, "_arg", "") }, parameterDeclaration = function (parameterCount) { return util.filledRange(Math.max(parameterCount, 3), "_arg", "") }, parameterCount = function (fn) { return "number" == typeof fn.length ? Math.max(Math.min(fn.length, 1024), 0) : 0 }; makeNodePromisifiedEval = function (callback, receiver, originalName, fn, _, multiArgs) { function generateCallForArgumentCount(count) { var ret, args = argumentSequence(count).join(", "), comma = count > 0 ? ", " : ""; return ret = shouldProxyThis ? "ret = callback.call(this, {{args}}, nodeback); break;\n" : void 0 === receiver ? "ret = callback({{args}}, nodeback); break;\n" : "ret = callback.call(receiver, {{args}}, nodeback); break;\n", ret.replace("{{args}}", args).replace(", ", comma) } function generateArgumentSwitchCase() { for (var ret = "", i = 0; i < argumentOrder.length; ++i)ret += "case " + argumentOrder[i] + ":" + generateCallForArgumentCount(argumentOrder[i]); return ret += " \n default: \n var args = new Array(len + 1); \n var i = 0; \n for (var i = 0; i < len; ++i) { \n args[i] = arguments[i]; \n } \n args[i] = nodeback; \n [CodeForCall] \n break; \n ".replace("[CodeForCall]", shouldProxyThis ? "ret = callback.apply(this, args);\n" : "ret = callback.apply(receiver, args);\n") } var newParameterCount = Math.max(0, parameterCount(fn) - 1), argumentOrder = switchCaseArgumentOrder(newParameterCount), shouldProxyThis = "string" == typeof callback || receiver === THIS, getFunctionCode = "string" == typeof callback ? "this != null ? this['" + callback + "'] : fn" : "fn", body = "'use strict'; \n var ret = function (Parameters) { \n 'use strict'; \n var len = arguments.length; \n var promise = new Promise(INTERNAL); \n promise._captureStackTrace(); \n var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n var ret; \n var callback = tryCatch([GetFunctionCode]); \n switch(len) { \n [CodeForSwitchCase] \n } \n if (ret === errorObj) { \n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n } \n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n return promise; \n }; \n notEnumerableProp(ret, '__isPromisified__', true); \n return ret; \n ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()).replace("[GetFunctionCode]", getFunctionCode); return body = body.replace("Parameters", parameterDeclaration(newParameterCount)), new Function("Promise", "fn", "receiver", "withAppended", "maybeWrapAsError", "nodebackForPromise", "tryCatch", "errorObj", "notEnumerableProp", "INTERNAL", body)(Promise, fn, receiver, withAppended, maybeWrapAsError, nodebackForPromise, util.tryCatch, util.errorObj, util.notEnumerableProp, INTERNAL) }; var makeNodePromisified = canEvaluate ? makeNodePromisifiedEval : makeNodePromisifiedClosure; Promise.promisify = function (fn, options) { if ("function" != typeof fn) throw new TypeError("expecting a function but got " + util.classString(fn)); if (isPromisified(fn)) return fn; options = Object(options); var receiver = void 0 === options.context ? THIS : options.context, multiArgs = !!options.multiArgs, ret = promisify(fn, receiver, multiArgs); return util.copyDescriptors(fn, ret, propsFilter), ret }, Promise.promisifyAll = function (target, options) { if ("function" != typeof target && "object" != typeof target) throw new TypeError("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n"); options = Object(options); var multiArgs = !!options.multiArgs, suffix = options.suffix; "string" != typeof suffix && (suffix = defaultSuffix); var filter = options.filter; "function" != typeof filter && (filter = defaultFilter); var promisifier = options.promisifier; if ("function" != typeof promisifier && (promisifier = makeNodePromisified), !util.isIdentifier(suffix)) throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n"); for (var keys = util.inheritedDataKeys(target), i = 0; i < keys.length; ++i) { var value = target[keys[i]]; "constructor" !== keys[i] && util.isClass(value) && (promisifyAll(value.prototype, suffix, filter, promisifier, multiArgs), promisifyAll(value, suffix, filter, promisifier, multiArgs)) } return promisifyAll(target, suffix, filter, promisifier, multiArgs) } - } - }, { "./errors": 58, "./nodeback": 66, "./util": 82 }], 71: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, tryConvertToPromise, apiRejection) { function PropertiesPromiseArray(obj) { var entries, isMap = !1; if (void 0 !== Es6Map && obj instanceof Es6Map) entries = mapToEntries(obj), isMap = !0; else { var keys = es5.keys(obj), len = keys.length; entries = new Array(2 * len); for (var i = 0; len > i; ++i) { var key = keys[i]; entries[i] = obj[key], entries[i + len] = key } } this.constructor$(entries), this._isMap = isMap, this._init$(void 0, -3) } function props(promises) { var ret, castValue = tryConvertToPromise(promises); return isObject(castValue) ? (ret = castValue instanceof Promise ? castValue._then(Promise.props, void 0, void 0, void 0, void 0) : new PropertiesPromiseArray(castValue).promise(), castValue instanceof Promise && ret._propagateFrom(castValue, 2), ret) : apiRejection("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n") } var Es6Map, util = require("./util"), isObject = util.isObject, es5 = require("./es5"); "function" == typeof Map && (Es6Map = Map); var mapToEntries = function () { function extractEntry(value, key) { this[index] = value, this[index + size] = key, index++ } var index = 0, size = 0; return function (map) { size = map.size, index = 0; var ret = new Array(2 * map.size); return map.forEach(extractEntry, ret), ret } }(), entriesToMap = function (entries) { for (var ret = new Es6Map, length = entries.length / 2 | 0, i = 0; length > i; ++i) { var key = entries[length + i], value = entries[i]; ret.set(key, value) } return ret }; util.inherits(PropertiesPromiseArray, PromiseArray), PropertiesPromiseArray.prototype._init = function () { }, PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { this._values[index] = value; var totalResolved = ++this._totalResolved; if (totalResolved >= this._length) { var val; if (this._isMap) val = entriesToMap(this._values); else { val = {}; for (var keyOffset = this.length(), i = 0, len = this.length(); len > i; ++i)val[this._values[i + keyOffset]] = this._values[i] } return this._resolve(val), !0 } return !1 }, PropertiesPromiseArray.prototype.shouldCopyValues = function () { return !1 }, PropertiesPromiseArray.prototype.getActualLength = function (len) { return len >> 1 }, Promise.prototype.props = function () { return props(this) }, Promise.props = function (promises) { return props(promises) } } }, { "./es5": 59, "./util": 82 }], 72: [function (require, module, exports) { "use strict"; function arrayMove(src, srcIndex, dst, dstIndex, len) { for (var j = 0; len > j; ++j)dst[j + dstIndex] = src[j + srcIndex], src[j + srcIndex] = void 0 } function Queue(capacity) { this._capacity = capacity, this._length = 0, this._front = 0 } Queue.prototype._willBeOverCapacity = function (size) { return this._capacity < size }, Queue.prototype._pushOne = function (arg) { var length = this.length(); this._checkCapacity(length + 1); var i = this._front + length & this._capacity - 1; this[i] = arg, this._length = length + 1 }, Queue.prototype.push = function (fn, receiver, arg) { var length = this.length() + 3; if (this._willBeOverCapacity(length)) return this._pushOne(fn), this._pushOne(receiver), void this._pushOne(arg); var j = this._front + length - 3; this._checkCapacity(length); var wrapMask = this._capacity - 1; this[j + 0 & wrapMask] = fn, this[j + 1 & wrapMask] = receiver, this[j + 2 & wrapMask] = arg, this._length = length }, Queue.prototype.shift = function () { var front = this._front, ret = this[front]; return this[front] = void 0, this._front = front + 1 & this._capacity - 1, this._length--, ret }, Queue.prototype.length = function () { return this._length }, Queue.prototype._checkCapacity = function (size) { this._capacity < size && this._resizeTo(this._capacity << 1) }, Queue.prototype._resizeTo = function (capacity) { var oldCapacity = this._capacity; this._capacity = capacity; var front = this._front, length = this._length, moveItemsCount = front + length & oldCapacity - 1; arrayMove(this, 0, this, oldCapacity, moveItemsCount) }, module.exports = Queue }, {}], 73: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection) { function race(promises, parent) { var maybePromise = tryConvertToPromise(promises); if (maybePromise instanceof Promise) return raceLater(maybePromise); if (promises = util.asArray(promises), null === promises) return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); var ret = new Promise(INTERNAL); void 0 !== parent && ret._propagateFrom(parent, 3); for (var fulfill = ret._fulfill, reject = ret._reject, i = 0, len = promises.length; len > i; ++i) { var val = promises[i]; (void 0 !== val || i in promises) && Promise.cast(val)._then(fulfill, reject, void 0, ret, null) } return ret } var util = require("./util"), raceLater = function (promise) { return promise.then(function (array) { return race(array, promise) }) }; Promise.race = function (promises) { return race(promises, void 0) }, Promise.prototype.race = function () { return race(this, void 0) } } }, { "./util": 82 }], 74: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug) { function ReductionPromiseArray(promises, fn, initialValue, _each) { this.constructor$(promises); var domain = getDomain(); this._fn = null === domain ? fn : util.domainBind(domain, fn), void 0 !== initialValue && (initialValue = Promise.resolve(initialValue), initialValue._attachCancellationCallback(this)), this._initialValue = initialValue, this._currentCancellable = null, _each === INTERNAL ? this._eachValues = Array(this._length) : 0 === _each ? this._eachValues = null : this._eachValues = void 0, this._promise._captureStackTrace(), this._init$(void 0, -5) } function completed(valueOrReason, array) { this.isFulfilled() ? array._resolve(valueOrReason) : array._reject(valueOrReason) } function reduce(promises, fn, initialValue, _each) { if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var array = new ReductionPromiseArray(promises, fn, initialValue, _each); return array.promise() } function gotAccum(accum) { this.accum = accum, this.array._gotAccum(accum); var value = tryConvertToPromise(this.value, this.array._promise); return value instanceof Promise ? (this.array._currentCancellable = value, value._then(gotValue, void 0, void 0, this, void 0)) : gotValue.call(this, value) } function gotValue(value) { var array = this.array, promise = array._promise, fn = tryCatch(array._fn); promise._pushContext(); var ret; ret = void 0 !== array._eachValues ? fn.call(promise._boundValue(), value, this.index, this.length) : fn.call(promise._boundValue(), this.accum, value, this.index, this.length), ret instanceof Promise && (array._currentCancellable = ret); var promiseCreated = promise._popContext(); return debug.checkForgottenReturns(ret, promiseCreated, void 0 !== array._eachValues ? "Promise.each" : "Promise.reduce", promise), ret } var getDomain = Promise._getDomain, util = require("./util"), tryCatch = util.tryCatch; util.inherits(ReductionPromiseArray, PromiseArray), ReductionPromiseArray.prototype._gotAccum = function (accum) { void 0 !== this._eachValues && null !== this._eachValues && accum !== INTERNAL && this._eachValues.push(accum) }, ReductionPromiseArray.prototype._eachComplete = function (value) { return null !== this._eachValues && this._eachValues.push(value), this._eachValues }, ReductionPromiseArray.prototype._init = function () { }, ReductionPromiseArray.prototype._resolveEmptyArray = function () { this._resolve(void 0 !== this._eachValues ? this._eachValues : this._initialValue) }, ReductionPromiseArray.prototype.shouldCopyValues = function () { return !1 }, ReductionPromiseArray.prototype._resolve = function (value) { this._promise._resolveCallback(value), this._values = null }, ReductionPromiseArray.prototype._resultCancelled = function (sender) { return sender === this._initialValue ? this._cancel() : void (this._isResolved() || (this._resultCancelled$(), this._currentCancellable instanceof Promise && this._currentCancellable.cancel(), this._initialValue instanceof Promise && this._initialValue.cancel())) }, ReductionPromiseArray.prototype._iterate = function (values) { this._values = values; var value, i, length = values.length; if (void 0 !== this._initialValue ? (value = this._initialValue, i = 0) : (value = Promise.resolve(values[0]), i = 1), this._currentCancellable = value, !value.isRejected()) for (; length > i; ++i) { var ctx = { accum: null, value: values[i], index: i, length: length, array: this }; value = value._then(gotAccum, void 0, void 0, ctx, void 0) } void 0 !== this._eachValues && (value = value._then(this._eachComplete, void 0, void 0, this, void 0)), value._then(completed, completed, void 0, value, this) }, Promise.prototype.reduce = function (fn, initialValue) { return reduce(this, fn, initialValue, null) }, Promise.reduce = function (promises, fn, initialValue, _each) { return reduce(promises, fn, initialValue, _each) } } }, { "./util": 82 }], 75: [function (require, module, exports) { (function (process, global) { "use strict"; var schedule, util = require("./util"), noAsyncScheduler = function () { throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n") }, NativePromise = util.getNativePromise(); if (util.isNode && "undefined" == typeof MutationObserver) { var GlobalSetImmediate = global.setImmediate, ProcessNextTick = process.nextTick; schedule = util.isRecentNode ? function (fn) { GlobalSetImmediate.call(global, fn) } : function (fn) { ProcessNextTick.call(process, fn) } } else if ("function" == typeof NativePromise && "function" == typeof NativePromise.resolve) { var nativePromise = NativePromise.resolve(); schedule = function (fn) { nativePromise.then(fn) } } else schedule = "undefined" == typeof MutationObserver || "undefined" != typeof window && window.navigator && (window.navigator.standalone || window.cordova) ? "undefined" != typeof setImmediate ? function (fn) { setImmediate(fn) } : "undefined" != typeof setTimeout ? function (fn) { setTimeout(fn, 0) } : noAsyncScheduler : function () { var div = document.createElement("div"), opts = { attributes: !0 }, toggleScheduled = !1, div2 = document.createElement("div"), o2 = new MutationObserver(function () { div.classList.toggle("foo"), toggleScheduled = !1 }); o2.observe(div2, opts); var scheduleToggle = function () { toggleScheduled || (toggleScheduled = !0, div2.classList.toggle("foo")) }; return function (fn) { var o = new MutationObserver(function () { o.disconnect(), fn() }); o.observe(div, opts), scheduleToggle() } }(); module.exports = schedule }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./util": 82, _process: 102 }], 76: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, debug) { function SettledPromiseArray(values) { this.constructor$(values) } var PromiseInspection = Promise.PromiseInspection, util = require("./util"); util.inherits(SettledPromiseArray, PromiseArray), SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { this._values[index] = inspection; var totalResolved = ++this._totalResolved; return totalResolved >= this._length ? (this._resolve(this._values), !0) : !1 }, SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { var ret = new PromiseInspection; return ret._bitField = 33554432, ret._settledValueField = value, this._promiseResolved(index, ret) }, SettledPromiseArray.prototype._promiseRejected = function (reason, index) { var ret = new PromiseInspection; return ret._bitField = 16777216, ret._settledValueField = reason, this._promiseResolved(index, ret) }, Promise.settle = function (promises) { return debug.deprecated(".settle()", ".reflect()"), new SettledPromiseArray(promises).promise() }, Promise.prototype.settle = function () { return Promise.settle(this) } } }, { "./util": 82 }], 77: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection) { function SomePromiseArray(values) { this.constructor$(values), this._howMany = 0, this._unwrap = !1, this._initialized = !1 } function some(promises, howMany) { if ((0 | howMany) !== howMany || 0 > howMany) return apiRejection("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n"); var ret = new SomePromiseArray(promises), promise = ret.promise(); return ret.setHowMany(howMany), ret.init(), promise } var util = require("./util"), RangeError = require("./errors").RangeError, AggregateError = require("./errors").AggregateError, isArray = util.isArray, CANCELLATION = {}; util.inherits(SomePromiseArray, PromiseArray), SomePromiseArray.prototype._init = function () { if (this._initialized) { if (0 === this._howMany) return void this._resolve([]); this._init$(void 0, -5); var isArrayResolved = isArray(this._values); !this._isResolved() && isArrayResolved && this._howMany > this._canPossiblyFulfill() && this._reject(this._getRangeError(this.length())) } }, SomePromiseArray.prototype.init = function () { this._initialized = !0, this._init() }, SomePromiseArray.prototype.setUnwrap = function () { this._unwrap = !0 }, SomePromiseArray.prototype.howMany = function () { return this._howMany }, SomePromiseArray.prototype.setHowMany = function (count) { this._howMany = count }, SomePromiseArray.prototype._promiseFulfilled = function (value) { return this._addFulfilled(value), this._fulfilled() === this.howMany() ? (this._values.length = this.howMany(), 1 === this.howMany() && this._unwrap ? this._resolve(this._values[0]) : this._resolve(this._values), !0) : !1 }, SomePromiseArray.prototype._promiseRejected = function (reason) { return this._addRejected(reason), this._checkOutcome() }, SomePromiseArray.prototype._promiseCancelled = function () { return this._values instanceof Promise || null == this._values ? this._cancel() : (this._addRejected(CANCELLATION), this._checkOutcome()) }, SomePromiseArray.prototype._checkOutcome = function () { if (this.howMany() > this._canPossiblyFulfill()) { for (var e = new AggregateError, i = this.length(); i < this._values.length; ++i)this._values[i] !== CANCELLATION && e.push(this._values[i]); return e.length > 0 ? this._reject(e) : this._cancel(), !0 } return !1 }, SomePromiseArray.prototype._fulfilled = function () { return this._totalResolved }, SomePromiseArray.prototype._rejected = function () { return this._values.length - this.length() }, SomePromiseArray.prototype._addRejected = function (reason) { this._values.push(reason) }, SomePromiseArray.prototype._addFulfilled = function (value) { this._values[this._totalResolved++] = value }, SomePromiseArray.prototype._canPossiblyFulfill = function () { return this.length() - this._rejected() }, SomePromiseArray.prototype._getRangeError = function (count) { var message = "Input array must contain at least " + this._howMany + " items but contains only " + count + " items"; return new RangeError(message) }, SomePromiseArray.prototype._resolveEmptyArray = function () { this._reject(this._getRangeError(0)) }, Promise.some = function (promises, howMany) { return some(promises, howMany) }, Promise.prototype.some = function (howMany) { return some(this, howMany) }, Promise._SomePromiseArray = SomePromiseArray } }, { "./errors": 58, "./util": 82 }], 78: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function PromiseInspection(promise) { void 0 !== promise ? (promise = promise._target(), this._bitField = promise._bitField, this._settledValueField = promise._isFateSealed() ? promise._settledValue() : void 0) : (this._bitField = 0, this._settledValueField = void 0) } PromiseInspection.prototype._settledValue = function () { return this._settledValueField }; var value = PromiseInspection.prototype.value = function () { if (!this.isFulfilled()) throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n"); return this._settledValue() }, reason = PromiseInspection.prototype.error = PromiseInspection.prototype.reason = function () { if (!this.isRejected()) throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n"); return this._settledValue() }, isFulfilled = PromiseInspection.prototype.isFulfilled = function () { return 0 !== (33554432 & this._bitField) }, isRejected = PromiseInspection.prototype.isRejected = function () { return 0 !== (16777216 & this._bitField) }, isPending = PromiseInspection.prototype.isPending = function () { return 0 === (50397184 & this._bitField) }, isResolved = PromiseInspection.prototype.isResolved = function () { return 0 !== (50331648 & this._bitField) }; PromiseInspection.prototype.isCancelled = function () { return 0 !== (8454144 & this._bitField) }, Promise.prototype.__isCancelled = function () { return 65536 === (65536 & this._bitField) }, Promise.prototype._isCancelled = function () { return this._target().__isCancelled() }, Promise.prototype.isCancelled = function () { return 0 !== (8454144 & this._target()._bitField) }, Promise.prototype.isPending = function () { return isPending.call(this._target()) }, Promise.prototype.isRejected = function () { return isRejected.call(this._target()) }, Promise.prototype.isFulfilled = function () { return isFulfilled.call(this._target()) }, Promise.prototype.isResolved = function () { return isResolved.call(this._target()) }, Promise.prototype.value = function () { return value.call(this._target()) }, Promise.prototype.reason = function () { var target = this._target(); return target._unsetRejectionIsUnhandled(), reason.call(target) }, Promise.prototype._value = function () { return this._settledValue() }, Promise.prototype._reason = function () { return this._unsetRejectionIsUnhandled(), this._settledValue() }, Promise.PromiseInspection = PromiseInspection } }, {}], 79: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { function tryConvertToPromise(obj, context) { if (isObject(obj)) { if (obj instanceof Promise) return obj; var then = getThen(obj); if (then === errorObj) { context && context._pushContext(); var ret = Promise.reject(then.e); return context && context._popContext(), ret } if ("function" == typeof then) { if (isAnyBluebirdPromise(obj)) { var ret = new Promise(INTERNAL); return obj._then(ret._fulfill, ret._reject, void 0, ret, null), ret } return doThenable(obj, then, context) } } return obj } function doGetThen(obj) { return obj.then } function getThen(obj) { try { return doGetThen(obj) } catch (e) { return errorObj.e = e, errorObj } } function isAnyBluebirdPromise(obj) { try { return hasProp.call(obj, "_promise0") } catch (e) { return !1 } } function doThenable(x, then, context) { function resolve(value) { promise && (promise._resolveCallback(value), promise = null) } function reject(reason) { promise && (promise._rejectCallback(reason, synchronous, !0), promise = null) } var promise = new Promise(INTERNAL), ret = promise; context && context._pushContext(), promise._captureStackTrace(), context && context._popContext(); var synchronous = !0, result = util.tryCatch(then).call(x, resolve, reject); return synchronous = !1, promise && result === errorObj && (promise._rejectCallback(result.e, !0, !0), promise = null), ret } var util = require("./util"), errorObj = util.errorObj, isObject = util.isObject, hasProp = {}.hasOwnProperty; return tryConvertToPromise } }, { "./util": 82 }], 80: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, debug) { function HandleWrapper(handle) { this.handle = handle } function successClear(value) { return clearTimeout(this.handle), value } function failureClear(reason) { throw clearTimeout(this.handle), reason } var util = require("./util"), TimeoutError = Promise.TimeoutError; HandleWrapper.prototype._resultCancelled = function () { clearTimeout(this.handle) }; var afterValue = function (value) { return delay(+this).thenReturn(value) }, delay = Promise.delay = function (ms, value) { var ret, handle; return void 0 !== value ? (ret = Promise.resolve(value)._then(afterValue, null, null, ms, void 0), debug.cancellation() && value instanceof Promise && ret._setOnCancel(value)) : (ret = new Promise(INTERNAL), handle = setTimeout(function () { ret._fulfill() }, +ms), debug.cancellation() && ret._setOnCancel(new HandleWrapper(handle)), ret._captureStackTrace()), ret._setAsyncGuaranteed(), ret }; Promise.prototype.delay = function (ms) { return delay(ms, this) }; var afterTimeout = function (promise, message, parent) { var err; err = "string" != typeof message ? message instanceof Error ? message : new TimeoutError("operation timed out") : new TimeoutError(message), util.markAsOriginatingFromRejection(err), promise._attachExtraTrace(err), promise._reject(err), null != parent && parent.cancel() }; Promise.prototype.timeout = function (ms, message) { ms = +ms; var ret, parent, handleWrapper = new HandleWrapper(setTimeout(function () { ret.isPending() && afterTimeout(ret, message, parent) }, ms)); return debug.cancellation() ? (parent = this.then(), ret = parent._then(successClear, failureClear, void 0, handleWrapper, void 0), ret._setOnCancel(handleWrapper)) : ret = this._then(successClear, failureClear, void 0, handleWrapper, void 0), ret } } }, { "./util": 82 }], 81: [function (require, module, exports) { - "use strict"; module.exports = function (Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { - function thrower(e) { setTimeout(function () { throw e }, 0) } function castPreservingDisposable(thenable) { var maybePromise = tryConvertToPromise(thenable); return maybePromise !== thenable && "function" == typeof thenable._isDisposable && "function" == typeof thenable._getDisposer && thenable._isDisposable() && maybePromise._setDisposable(thenable._getDisposer()), maybePromise } function dispose(resources, inspection) { function iterator() { if (i >= len) return ret._fulfill(); var maybePromise = castPreservingDisposable(resources[i++]); if (maybePromise instanceof Promise && maybePromise._isDisposable()) { try { maybePromise = tryConvertToPromise(maybePromise._getDisposer().tryDispose(inspection), resources.promise) } catch (e) { return thrower(e) } if (maybePromise instanceof Promise) return maybePromise._then(iterator, thrower, null, null, null) } iterator() } var i = 0, len = resources.length, ret = new Promise(INTERNAL); return iterator(), ret } function Disposer(data, promise, context) { this._data = data, this._promise = promise, this._context = context } function FunctionDisposer(fn, promise, context) { this.constructor$(fn, promise, context) } function maybeUnwrapDisposer(value) { return Disposer.isDisposer(value) ? (this.resources[this.index]._setDisposable(value), value.promise()) : value } function ResourceList(length) { this.length = length, this.promise = null, this[length - 1] = null } var util = require("./util"), TypeError = require("./errors").TypeError, inherits = require("./util").inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; Disposer.prototype.data = function () { return this._data }, Disposer.prototype.promise = function () { return this._promise }, Disposer.prototype.resource = function () { return this.promise().isFulfilled() ? this.promise().value() : NULL }, Disposer.prototype.tryDispose = function (inspection) { var resource = this.resource(), context = this._context; void 0 !== context && context._pushContext(); var ret = resource !== NULL ? this.doDispose(resource, inspection) : null; return void 0 !== context && context._popContext(), this._promise._unsetDisposable(), this._data = null, ret }, Disposer.isDisposer = function (d) { return null != d && "function" == typeof d.resource && "function" == typeof d.tryDispose }, inherits(FunctionDisposer, Disposer), FunctionDisposer.prototype.doDispose = function (resource, inspection) { var fn = this.data(); return fn.call(resource, resource, inspection) }, ResourceList.prototype._resultCancelled = function () { for (var len = this.length, i = 0; len > i; ++i) { var item = this[i]; item instanceof Promise && item.cancel() } }, Promise.using = function () { - var len = arguments.length; if (2 > len) return apiRejection("you must pass at least 2 arguments to Promise.using"); var fn = arguments[len - 1]; if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var input, spreadArgs = !0; 2 === len && Array.isArray(arguments[0]) ? (input = arguments[0], len = input.length, spreadArgs = !1) : (input = arguments, len--); for (var resources = new ResourceList(len), i = 0; len > i; ++i) { var resource = input[i]; if (Disposer.isDisposer(resource)) { var disposer = resource; resource = resource.promise(), resource._setDisposable(disposer) } else { var maybePromise = tryConvertToPromise(resource); maybePromise instanceof Promise && (resource = maybePromise._then(maybeUnwrapDisposer, null, null, { resources: resources, index: i }, void 0)) } resources[i] = resource } for (var reflectedResources = new Array(resources.length), i = 0; i < reflectedResources.length; ++i)reflectedResources[i] = Promise.resolve(resources[i]).reflect(); var resultPromise = Promise.all(reflectedResources).then(function (inspections) { for (var i = 0; i < inspections.length; ++i) { var inspection = inspections[i]; if (inspection.isRejected()) return errorObj.e = inspection.error(), errorObj; if (!inspection.isFulfilled()) return void resultPromise.cancel(); inspections[i] = inspection.value() } promise._pushContext(), fn = tryCatch(fn); var ret = spreadArgs ? fn.apply(void 0, inspections) : fn(inspections), promiseCreated = promise._popContext(); return debug.checkForgottenReturns(ret, promiseCreated, "Promise.using", promise), ret }), promise = resultPromise.lastly(function () { - var inspection = new Promise.PromiseInspection(resultPromise); - return dispose(resources, inspection) - }); return resources.promise = promise, promise._setOnCancel(resources), promise - }, Promise.prototype._setDisposable = function (disposer) { this._bitField = 131072 | this._bitField, this._disposer = disposer }, Promise.prototype._isDisposable = function () { return (131072 & this._bitField) > 0 }, Promise.prototype._getDisposer = function () { return this._disposer }, Promise.prototype._unsetDisposable = function () { this._bitField = -131073 & this._bitField, this._disposer = void 0 }, Promise.prototype.disposer = function (fn) { if ("function" == typeof fn) return new FunctionDisposer(fn, this, createContext()); throw new TypeError } - } - }, { "./errors": 58, "./util": 82 }], 82: [function (require, module, exports) { (function (process, global) { "use strict"; function tryCatcher() { try { var target = tryCatchTarget; return tryCatchTarget = null, target.apply(this, arguments) } catch (e) { return errorObj.e = e, errorObj } } function tryCatch(fn) { return tryCatchTarget = fn, tryCatcher } function isPrimitive(val) { return null == val || val === !0 || val === !1 || "string" == typeof val || "number" == typeof val } function isObject(value) { return "function" == typeof value || "object" == typeof value && null !== value } function maybeWrapAsError(maybeError) { return isPrimitive(maybeError) ? new Error(safeToString(maybeError)) : maybeError } function withAppended(target, appendee) { var i, len = target.length, ret = new Array(len + 1); for (i = 0; len > i; ++i)ret[i] = target[i]; return ret[i] = appendee, ret } function getDataPropertyOrDefault(obj, key, defaultValue) { if (!es5.isES5) return {}.hasOwnProperty.call(obj, key) ? obj[key] : void 0; var desc = Object.getOwnPropertyDescriptor(obj, key); return null != desc ? null == desc.get && null == desc.set ? desc.value : defaultValue : void 0 } function notEnumerableProp(obj, name, value) { if (isPrimitive(obj)) return obj; var descriptor = { value: value, configurable: !0, enumerable: !1, writable: !0 }; return es5.defineProperty(obj, name, descriptor), obj } function thrower(r) { throw r } function isClass(fn) { try { if ("function" == typeof fn) { var keys = es5.names(fn.prototype), hasMethods = es5.isES5 && keys.length > 1, hasMethodsOtherThanConstructor = keys.length > 0 && !(1 === keys.length && "constructor" === keys[0]), hasThisAssignmentAndStaticMethods = thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; if (hasMethods || hasMethodsOtherThanConstructor || hasThisAssignmentAndStaticMethods) return !0 } return !1 } catch (e) { return !1 } } function toFastProperties(obj) { function FakeConstructor() { } FakeConstructor.prototype = obj; for (var l = 8; l--;)new FakeConstructor; return obj } function isIdentifier(str) { return rident.test(str) } function filledRange(count, prefix, suffix) { for (var ret = new Array(count), i = 0; count > i; ++i)ret[i] = prefix + i + suffix; return ret } function safeToString(obj) { try { return obj + "" } catch (e) { return "[no string representation]" } } function isError(obj) { return null !== obj && "object" == typeof obj && "string" == typeof obj.message && "string" == typeof obj.name } function markAsOriginatingFromRejection(e) { try { notEnumerableProp(e, "isOperational", !0) } catch (ignore) { } } function originatesFromRejection(e) { return null == e ? !1 : e instanceof Error.__BluebirdErrorTypes__.OperationalError || e.isOperational === !0 } function canAttachTrace(obj) { return isError(obj) && es5.propertyIsWritable(obj, "stack") } function classString(obj) { return {}.toString.call(obj) } function copyDescriptors(from, to, filter) { for (var keys = es5.names(from), i = 0; i < keys.length; ++i) { var key = keys[i]; if (filter(key)) try { es5.defineProperty(to, key, es5.getDescriptor(from, key)) } catch (ignore) { } } } function env(key) { return hasEnvVariables ? process.env[key] : void 0 } function getNativePromise() { if ("function" == typeof Promise) try { var promise = new Promise(function () { }); if ("[object Promise]" === {}.toString.call(promise)) return Promise } catch (e) { } } function domainBind(self, cb) { return self.bind(cb) } var es5 = require("./es5"), canEvaluate = "undefined" == typeof navigator, errorObj = { e: {} }, tryCatchTarget, globalObject = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0 !== this ? this : null, inherits = function (Child, Parent) { function T() { this.constructor = Child, this.constructor$ = Parent; for (var propertyName in Parent.prototype) hasProp.call(Parent.prototype, propertyName) && "$" !== propertyName.charAt(propertyName.length - 1) && (this[propertyName + "$"] = Parent.prototype[propertyName]) } var hasProp = {}.hasOwnProperty; return T.prototype = Parent.prototype, Child.prototype = new T, Child.prototype }, inheritedDataKeys = function () { var excludedPrototypes = [Array.prototype, Object.prototype, Function.prototype], isExcludedProto = function (val) { for (var i = 0; i < excludedPrototypes.length; ++i)if (excludedPrototypes[i] === val) return !0; return !1 }; if (es5.isES5) { var getKeys = Object.getOwnPropertyNames; return function (obj) { for (var ret = [], visitedKeys = Object.create(null); null != obj && !isExcludedProto(obj);) { var keys; try { keys = getKeys(obj) } catch (e) { return ret } for (var i = 0; i < keys.length; ++i) { var key = keys[i]; if (!visitedKeys[key]) { visitedKeys[key] = !0; var desc = Object.getOwnPropertyDescriptor(obj, key); null != desc && null == desc.get && null == desc.set && ret.push(key) } } obj = es5.getPrototypeOf(obj) } return ret } } var hasProp = {}.hasOwnProperty; return function (obj) { if (isExcludedProto(obj)) return []; var ret = []; enumeration: for (var key in obj) if (hasProp.call(obj, key)) ret.push(key); else { for (var i = 0; i < excludedPrototypes.length; ++i)if (hasProp.call(excludedPrototypes[i], key)) continue enumeration; ret.push(key) } return ret } }(), thisAssignmentPattern = /this\s*\.\s*\S+\s*=/, rident = /^[a-z$_][a-z$_0-9]*$/i, ensureErrorObject = function () { return "stack" in new Error ? function (value) { return canAttachTrace(value) ? value : new Error(safeToString(value)) } : function (value) { if (canAttachTrace(value)) return value; try { throw new Error(safeToString(value)) } catch (err) { return err } } }(), asArray = function (v) { return es5.isArray(v) ? v : null }; if ("undefined" != typeof Symbol && Symbol.iterator) { var ArrayFrom = "function" == typeof Array.from ? function (v) { return Array.from(v) } : function (v) { for (var itResult, ret = [], it = v[Symbol.iterator](); !(itResult = it.next()).done;)ret.push(itResult.value); return ret }; asArray = function (v) { return es5.isArray(v) ? v : null != v && "function" == typeof v[Symbol.iterator] ? ArrayFrom(v) : null } } var isNode = "undefined" != typeof process && "[object process]" === classString(process).toLowerCase(), hasEnvVariables = "undefined" != typeof process && "undefined" != typeof process.env, ret = { isClass: isClass, isIdentifier: isIdentifier, inheritedDataKeys: inheritedDataKeys, getDataPropertyOrDefault: getDataPropertyOrDefault, thrower: thrower, isArray: es5.isArray, asArray: asArray, notEnumerableProp: notEnumerableProp, isPrimitive: isPrimitive, isObject: isObject, isError: isError, canEvaluate: canEvaluate, errorObj: errorObj, tryCatch: tryCatch, inherits: inherits, withAppended: withAppended, maybeWrapAsError: maybeWrapAsError, toFastProperties: toFastProperties, filledRange: filledRange, toString: safeToString, canAttachTrace: canAttachTrace, ensureErrorObject: ensureErrorObject, originatesFromRejection: originatesFromRejection, markAsOriginatingFromRejection: markAsOriginatingFromRejection, classString: classString, copyDescriptors: copyDescriptors, hasDevTools: "undefined" != typeof chrome && chrome && "function" == typeof chrome.loadTimes, isNode: isNode, hasEnvVariables: hasEnvVariables, env: env, global: globalObject, getNativePromise: getNativePromise, domainBind: domainBind }; ret.isRecentNode = ret.isNode && function () { var version = process.versions.node.split(".").map(Number); return 0 === version[0] && version[1] > 10 || version[0] > 0 }(), ret.isNode && ret.toFastProperties(process); try { throw new Error } catch (e) { ret.lastLineError = e } module.exports = ret }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./es5": 59, _process: 102 }], 83: [function (require, module, exports) { + }, { "./util": 75 }], 70: [function (require, module, exports) { "use strict"; module.exports = function (Promise, PromiseArray, apiRejection) { function SomePromiseArray(values) { this.constructor$(values), this._howMany = 0, this._unwrap = !1, this._initialized = !1 } function some(promises, howMany) { if ((0 | howMany) !== howMany || 0 > howMany) return apiRejection("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n"); var ret = new SomePromiseArray(promises), promise = ret.promise(); return ret.setHowMany(howMany), ret.init(), promise } var util = require("./util"), RangeError = require("./errors").RangeError, AggregateError = require("./errors").AggregateError, isArray = util.isArray, CANCELLATION = {}; util.inherits(SomePromiseArray, PromiseArray), SomePromiseArray.prototype._init = function () { if (this._initialized) { if (0 === this._howMany) return void this._resolve([]); this._init$(void 0, -5); var isArrayResolved = isArray(this._values); !this._isResolved() && isArrayResolved && this._howMany > this._canPossiblyFulfill() && this._reject(this._getRangeError(this.length())) } }, SomePromiseArray.prototype.init = function () { this._initialized = !0, this._init() }, SomePromiseArray.prototype.setUnwrap = function () { this._unwrap = !0 }, SomePromiseArray.prototype.howMany = function () { return this._howMany }, SomePromiseArray.prototype.setHowMany = function (count) { this._howMany = count }, SomePromiseArray.prototype._promiseFulfilled = function (value) { return this._addFulfilled(value), this._fulfilled() === this.howMany() ? (this._values.length = this.howMany(), 1 === this.howMany() && this._unwrap ? this._resolve(this._values[0]) : this._resolve(this._values), !0) : !1 }, SomePromiseArray.prototype._promiseRejected = function (reason) { return this._addRejected(reason), this._checkOutcome() }, SomePromiseArray.prototype._promiseCancelled = function () { return this._values instanceof Promise || null == this._values ? this._cancel() : (this._addRejected(CANCELLATION), this._checkOutcome()) }, SomePromiseArray.prototype._checkOutcome = function () { if (this.howMany() > this._canPossiblyFulfill()) { for (var e = new AggregateError, i = this.length(); i < this._values.length; ++i)this._values[i] !== CANCELLATION && e.push(this._values[i]); return e.length > 0 ? this._reject(e) : this._cancel(), !0 } return !1 }, SomePromiseArray.prototype._fulfilled = function () { return this._totalResolved }, SomePromiseArray.prototype._rejected = function () { return this._values.length - this.length() }, SomePromiseArray.prototype._addRejected = function (reason) { this._values.push(reason) }, SomePromiseArray.prototype._addFulfilled = function (value) { this._values[this._totalResolved++] = value }, SomePromiseArray.prototype._canPossiblyFulfill = function () { return this.length() - this._rejected() }, SomePromiseArray.prototype._getRangeError = function (count) { var message = "Input array must contain at least " + this._howMany + " items but contains only " + count + " items"; return new RangeError(message) }, SomePromiseArray.prototype._resolveEmptyArray = function () { this._reject(this._getRangeError(0)) }, Promise.some = function (promises, howMany) { return some(promises, howMany) }, Promise.prototype.some = function (howMany) { return some(this, howMany) }, Promise._SomePromiseArray = SomePromiseArray } }, { "./errors": 51, "./util": 75 }], 71: [function (require, module, exports) { "use strict"; module.exports = function (Promise) { function PromiseInspection(promise) { void 0 !== promise ? (promise = promise._target(), this._bitField = promise._bitField, this._settledValueField = promise._isFateSealed() ? promise._settledValue() : void 0) : (this._bitField = 0, this._settledValueField = void 0) } PromiseInspection.prototype._settledValue = function () { return this._settledValueField }; var value = PromiseInspection.prototype.value = function () { if (!this.isFulfilled()) throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n"); return this._settledValue() }, reason = PromiseInspection.prototype.error = PromiseInspection.prototype.reason = function () { if (!this.isRejected()) throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n"); return this._settledValue() }, isFulfilled = PromiseInspection.prototype.isFulfilled = function () { return 0 !== (33554432 & this._bitField) }, isRejected = PromiseInspection.prototype.isRejected = function () { return 0 !== (16777216 & this._bitField) }, isPending = PromiseInspection.prototype.isPending = function () { return 0 === (50397184 & this._bitField) }, isResolved = PromiseInspection.prototype.isResolved = function () { return 0 !== (50331648 & this._bitField) }; PromiseInspection.prototype.isCancelled = function () { return 0 !== (8454144 & this._bitField) }, Promise.prototype.__isCancelled = function () { return 65536 === (65536 & this._bitField) }, Promise.prototype._isCancelled = function () { return this._target().__isCancelled() }, Promise.prototype.isCancelled = function () { return 0 !== (8454144 & this._target()._bitField) }, Promise.prototype.isPending = function () { return isPending.call(this._target()) }, Promise.prototype.isRejected = function () { return isRejected.call(this._target()) }, Promise.prototype.isFulfilled = function () { return isFulfilled.call(this._target()) }, Promise.prototype.isResolved = function () { return isResolved.call(this._target()) }, Promise.prototype.value = function () { return value.call(this._target()) }, Promise.prototype.reason = function () { var target = this._target(); return target._unsetRejectionIsUnhandled(), reason.call(target) }, Promise.prototype._value = function () { return this._settledValue() }, Promise.prototype._reason = function () { return this._unsetRejectionIsUnhandled(), this._settledValue() }, Promise.PromiseInspection = PromiseInspection } }, {}], 72: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL) { function tryConvertToPromise(obj, context) { if (isObject(obj)) { if (obj instanceof Promise) return obj; var then = getThen(obj); if (then === errorObj) { context && context._pushContext(); var ret = Promise.reject(then.e); return context && context._popContext(), ret } if ("function" == typeof then) { if (isAnyBluebirdPromise(obj)) { var ret = new Promise(INTERNAL); return obj._then(ret._fulfill, ret._reject, void 0, ret, null), ret } return doThenable(obj, then, context) } } return obj } function doGetThen(obj) { return obj.then } function getThen(obj) { try { return doGetThen(obj) } catch (e) { return errorObj.e = e, errorObj } } function isAnyBluebirdPromise(obj) { try { return hasProp.call(obj, "_promise0") } catch (e) { return !1 } } function doThenable(x, then, context) { function resolve(value) { promise && (promise._resolveCallback(value), promise = null) } function reject(reason) { promise && (promise._rejectCallback(reason, synchronous, !0), promise = null) } var promise = new Promise(INTERNAL), ret = promise; context && context._pushContext(), promise._captureStackTrace(), context && context._popContext(); var synchronous = !0, result = util.tryCatch(then).call(x, resolve, reject); return synchronous = !1, promise && result === errorObj && (promise._rejectCallback(result.e, !0, !0), promise = null), ret } var util = require("./util"), errorObj = util.errorObj, isObject = util.isObject, hasProp = {}.hasOwnProperty; return tryConvertToPromise } }, { "./util": 75 }], 73: [function (require, module, exports) { "use strict"; module.exports = function (Promise, INTERNAL, debug) { function HandleWrapper(handle) { this.handle = handle } function successClear(value) { return clearTimeout(this.handle), value } function failureClear(reason) { throw clearTimeout(this.handle), reason } var util = require("./util"), TimeoutError = Promise.TimeoutError; HandleWrapper.prototype._resultCancelled = function () { clearTimeout(this.handle) }; var afterValue = function (value) { return delay(+this).thenReturn(value) }, delay = Promise.delay = function (ms, value) { var ret, handle; return void 0 !== value ? (ret = Promise.resolve(value)._then(afterValue, null, null, ms, void 0), debug.cancellation() && value instanceof Promise && ret._setOnCancel(value)) : (ret = new Promise(INTERNAL), handle = setTimeout(function () { ret._fulfill() }, +ms), debug.cancellation() && ret._setOnCancel(new HandleWrapper(handle)), ret._captureStackTrace()), ret._setAsyncGuaranteed(), ret }; Promise.prototype.delay = function (ms) { return delay(ms, this) }; var afterTimeout = function (promise, message, parent) { var err; err = "string" != typeof message ? message instanceof Error ? message : new TimeoutError("operation timed out") : new TimeoutError(message), util.markAsOriginatingFromRejection(err), promise._attachExtraTrace(err), promise._reject(err), null != parent && parent.cancel() }; Promise.prototype.timeout = function (ms, message) { ms = +ms; var ret, parent, handleWrapper = new HandleWrapper(setTimeout(function () { ret.isPending() && afterTimeout(ret, message, parent) }, ms)); return debug.cancellation() ? (parent = this.then(), ret = parent._then(successClear, failureClear, void 0, handleWrapper, void 0), ret._setOnCancel(handleWrapper)) : ret = this._then(successClear, failureClear, void 0, handleWrapper, void 0), ret } } }, { "./util": 75 }], 74: [function (require, module, exports) { "use strict"; module.exports = function (Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug) { function thrower(e) { setTimeout(function () { throw e }, 0) } function castPreservingDisposable(thenable) { var maybePromise = tryConvertToPromise(thenable); return maybePromise !== thenable && "function" == typeof thenable._isDisposable && "function" == typeof thenable._getDisposer && thenable._isDisposable() && maybePromise._setDisposable(thenable._getDisposer()), maybePromise } function dispose(resources, inspection) { function iterator() { if (i >= len) return ret._fulfill(); var maybePromise = castPreservingDisposable(resources[i++]); if (maybePromise instanceof Promise && maybePromise._isDisposable()) { try { maybePromise = tryConvertToPromise(maybePromise._getDisposer().tryDispose(inspection), resources.promise) } catch (e) { return thrower(e) } if (maybePromise instanceof Promise) return maybePromise._then(iterator, thrower, null, null, null) } iterator() } var i = 0, len = resources.length, ret = new Promise(INTERNAL); return iterator(), ret } function Disposer(data, promise, context) { this._data = data, this._promise = promise, this._context = context } function FunctionDisposer(fn, promise, context) { this.constructor$(fn, promise, context) } function maybeUnwrapDisposer(value) { return Disposer.isDisposer(value) ? (this.resources[this.index]._setDisposable(value), value.promise()) : value } function ResourceList(length) { this.length = length, this.promise = null, this[length - 1] = null } var util = require("./util"), TypeError = require("./errors").TypeError, inherits = require("./util").inherits, errorObj = util.errorObj, tryCatch = util.tryCatch, NULL = {}; Disposer.prototype.data = function () { return this._data }, Disposer.prototype.promise = function () { return this._promise }, Disposer.prototype.resource = function () { return this.promise().isFulfilled() ? this.promise().value() : NULL }, Disposer.prototype.tryDispose = function (inspection) { var resource = this.resource(), context = this._context; void 0 !== context && context._pushContext(); var ret = resource !== NULL ? this.doDispose(resource, inspection) : null; return void 0 !== context && context._popContext(), this._promise._unsetDisposable(), this._data = null, ret }, Disposer.isDisposer = function (d) { return null != d && "function" == typeof d.resource && "function" == typeof d.tryDispose }, inherits(FunctionDisposer, Disposer), FunctionDisposer.prototype.doDispose = function (resource, inspection) { var fn = this.data(); return fn.call(resource, resource, inspection) }, ResourceList.prototype._resultCancelled = function () { for (var len = this.length, i = 0; len > i; ++i) { var item = this[i]; item instanceof Promise && item.cancel() } }, Promise.using = function () { var len = arguments.length; if (2 > len) return apiRejection("you must pass at least 2 arguments to Promise.using"); var fn = arguments[len - 1]; if ("function" != typeof fn) return apiRejection("expecting a function but got " + util.classString(fn)); var input, spreadArgs = !0; 2 === len && Array.isArray(arguments[0]) ? (input = arguments[0], len = input.length, spreadArgs = !1) : (input = arguments, len--); for (var resources = new ResourceList(len), i = 0; len > i; ++i) { var resource = input[i]; if (Disposer.isDisposer(resource)) { var disposer = resource; resource = resource.promise(), resource._setDisposable(disposer) } else { var maybePromise = tryConvertToPromise(resource); maybePromise instanceof Promise && (resource = maybePromise._then(maybeUnwrapDisposer, null, null, { resources: resources, index: i }, void 0)) } resources[i] = resource } for (var reflectedResources = new Array(resources.length), i = 0; i < reflectedResources.length; ++i)reflectedResources[i] = Promise.resolve(resources[i]).reflect(); var resultPromise = Promise.all(reflectedResources).then(function (inspections) { for (var i = 0; i < inspections.length; ++i) { var inspection = inspections[i]; if (inspection.isRejected()) return errorObj.e = inspection.error(), errorObj; if (!inspection.isFulfilled()) return void resultPromise.cancel(); inspections[i] = inspection.value() } promise._pushContext(), fn = tryCatch(fn); var ret = spreadArgs ? fn.apply(void 0, inspections) : fn(inspections), promiseCreated = promise._popContext(); return debug.checkForgottenReturns(ret, promiseCreated, "Promise.using", promise), ret }), promise = resultPromise.lastly(function () { var inspection = new Promise.PromiseInspection(resultPromise); return dispose(resources, inspection) }); return resources.promise = promise, promise._setOnCancel(resources), promise }, Promise.prototype._setDisposable = function (disposer) { this._bitField = 131072 | this._bitField, this._disposer = disposer }, Promise.prototype._isDisposable = function () { return (131072 & this._bitField) > 0 }, Promise.prototype._getDisposer = function () { return this._disposer }, Promise.prototype._unsetDisposable = function () { this._bitField = -131073 & this._bitField, this._disposer = void 0 }, Promise.prototype.disposer = function (fn) { if ("function" == typeof fn) return new FunctionDisposer(fn, this, createContext()); throw new TypeError } } }, { "./errors": 51, "./util": 75 }], 75: [function (require, module, exports) { (function (process, global) { "use strict"; function tryCatcher() { try { var target = tryCatchTarget; return tryCatchTarget = null, target.apply(this, arguments) } catch (e) { return errorObj.e = e, errorObj } } function tryCatch(fn) { return tryCatchTarget = fn, tryCatcher } function isPrimitive(val) { return null == val || val === !0 || val === !1 || "string" == typeof val || "number" == typeof val } function isObject(value) { return "function" == typeof value || "object" == typeof value && null !== value } function maybeWrapAsError(maybeError) { return isPrimitive(maybeError) ? new Error(safeToString(maybeError)) : maybeError } function withAppended(target, appendee) { var i, len = target.length, ret = new Array(len + 1); for (i = 0; len > i; ++i)ret[i] = target[i]; return ret[i] = appendee, ret } function getDataPropertyOrDefault(obj, key, defaultValue) { if (!es5.isES5) return {}.hasOwnProperty.call(obj, key) ? obj[key] : void 0; var desc = Object.getOwnPropertyDescriptor(obj, key); return null != desc ? null == desc.get && null == desc.set ? desc.value : defaultValue : void 0 } function notEnumerableProp(obj, name, value) { if (isPrimitive(obj)) return obj; var descriptor = { value: value, configurable: !0, enumerable: !1, writable: !0 }; return es5.defineProperty(obj, name, descriptor), obj } function thrower(r) { throw r } function isClass(fn) { try { if ("function" == typeof fn) { var keys = es5.names(fn.prototype), hasMethods = es5.isES5 && keys.length > 1, hasMethodsOtherThanConstructor = keys.length > 0 && !(1 === keys.length && "constructor" === keys[0]), hasThisAssignmentAndStaticMethods = thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; if (hasMethods || hasMethodsOtherThanConstructor || hasThisAssignmentAndStaticMethods) return !0 } return !1 } catch (e) { return !1 } } function toFastProperties(obj) { function FakeConstructor() { } FakeConstructor.prototype = obj; for (var l = 8; l--;)new FakeConstructor; return obj } function isIdentifier(str) { return rident.test(str) } function filledRange(count, prefix, suffix) { for (var ret = new Array(count), i = 0; count > i; ++i)ret[i] = prefix + i + suffix; return ret } function safeToString(obj) { try { return obj + "" } catch (e) { return "[no string representation]" } } function isError(obj) { return null !== obj && "object" == typeof obj && "string" == typeof obj.message && "string" == typeof obj.name } function markAsOriginatingFromRejection(e) { try { notEnumerableProp(e, "isOperational", !0) } catch (ignore) { } } function originatesFromRejection(e) { return null == e ? !1 : e instanceof Error.__BluebirdErrorTypes__.OperationalError || e.isOperational === !0 } function canAttachTrace(obj) { return isError(obj) && es5.propertyIsWritable(obj, "stack") } function classString(obj) { return {}.toString.call(obj) } function copyDescriptors(from, to, filter) { for (var keys = es5.names(from), i = 0; i < keys.length; ++i) { var key = keys[i]; if (filter(key)) try { es5.defineProperty(to, key, es5.getDescriptor(from, key)) } catch (ignore) { } } } function env(key) { return hasEnvVariables ? process.env[key] : void 0 } function getNativePromise() { if ("function" == typeof Promise) try { var promise = new Promise(function () { }); if ("[object Promise]" === {}.toString.call(promise)) return Promise } catch (e) { } } function domainBind(self, cb) { return self.bind(cb) } var es5 = require("./es5"), canEvaluate = "undefined" == typeof navigator, errorObj = { e: {} }, tryCatchTarget, globalObject = "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0 !== this ? this : null, inherits = function (Child, Parent) { function T() { this.constructor = Child, this.constructor$ = Parent; for (var propertyName in Parent.prototype) hasProp.call(Parent.prototype, propertyName) && "$" !== propertyName.charAt(propertyName.length - 1) && (this[propertyName + "$"] = Parent.prototype[propertyName]) } var hasProp = {}.hasOwnProperty; return T.prototype = Parent.prototype, Child.prototype = new T, Child.prototype }, inheritedDataKeys = function () { var excludedPrototypes = [Array.prototype, Object.prototype, Function.prototype], isExcludedProto = function (val) { for (var i = 0; i < excludedPrototypes.length; ++i)if (excludedPrototypes[i] === val) return !0; return !1 }; if (es5.isES5) { var getKeys = Object.getOwnPropertyNames; return function (obj) { for (var ret = [], visitedKeys = Object.create(null); null != obj && !isExcludedProto(obj);) { var keys; try { keys = getKeys(obj) } catch (e) { return ret } for (var i = 0; i < keys.length; ++i) { var key = keys[i]; if (!visitedKeys[key]) { visitedKeys[key] = !0; var desc = Object.getOwnPropertyDescriptor(obj, key); null != desc && null == desc.get && null == desc.set && ret.push(key) } } obj = es5.getPrototypeOf(obj) } return ret } } var hasProp = {}.hasOwnProperty; return function (obj) { if (isExcludedProto(obj)) return []; var ret = []; enumeration: for (var key in obj) if (hasProp.call(obj, key)) ret.push(key); else { for (var i = 0; i < excludedPrototypes.length; ++i)if (hasProp.call(excludedPrototypes[i], key)) continue enumeration; ret.push(key) } return ret } }(), thisAssignmentPattern = /this\s*\.\s*\S+\s*=/, rident = /^[a-z$_][a-z$_0-9]*$/i, ensureErrorObject = function () { return "stack" in new Error ? function (value) { return canAttachTrace(value) ? value : new Error(safeToString(value)) } : function (value) { if (canAttachTrace(value)) return value; try { throw new Error(safeToString(value)) } catch (err) { return err } } }(), asArray = function (v) { return es5.isArray(v) ? v : null }; if ("undefined" != typeof Symbol && Symbol.iterator) { var ArrayFrom = "function" == typeof Array.from ? function (v) { return Array.from(v) } : function (v) { for (var itResult, ret = [], it = v[Symbol.iterator](); !(itResult = it.next()).done;)ret.push(itResult.value); return ret }; asArray = function (v) { return es5.isArray(v) ? v : null != v && "function" == typeof v[Symbol.iterator] ? ArrayFrom(v) : null } } var isNode = "undefined" != typeof process && "[object process]" === classString(process).toLowerCase(), hasEnvVariables = "undefined" != typeof process && "undefined" != typeof process.env, ret = { isClass: isClass, isIdentifier: isIdentifier, inheritedDataKeys: inheritedDataKeys, getDataPropertyOrDefault: getDataPropertyOrDefault, thrower: thrower, isArray: es5.isArray, asArray: asArray, notEnumerableProp: notEnumerableProp, isPrimitive: isPrimitive, isObject: isObject, isError: isError, canEvaluate: canEvaluate, errorObj: errorObj, tryCatch: tryCatch, inherits: inherits, withAppended: withAppended, maybeWrapAsError: maybeWrapAsError, toFastProperties: toFastProperties, filledRange: filledRange, toString: safeToString, canAttachTrace: canAttachTrace, ensureErrorObject: ensureErrorObject, originatesFromRejection: originatesFromRejection, markAsOriginatingFromRejection: markAsOriginatingFromRejection, classString: classString, copyDescriptors: copyDescriptors, hasDevTools: "undefined" != typeof chrome && chrome && "function" == typeof chrome.loadTimes, isNode: isNode, hasEnvVariables: hasEnvVariables, env: env, global: globalObject, getNativePromise: getNativePromise, domainBind: domainBind }; ret.isRecentNode = ret.isNode && function () { var version = process.versions.node.split(".").map(Number); return 0 === version[0] && version[1] > 10 || version[0] > 0 }(), ret.isNode && ret.toFastProperties(process); try { throw new Error } catch (e) { ret.lastLineError = e } module.exports = ret }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./es5": 52, _process: 102 }], 76: [function (require, module, exports) { }, {}], 77: [function (require, module, exports) { (function (global) { "use strict"; var buffer = require("buffer"), Buffer = buffer.Buffer, SlowBuffer = buffer.SlowBuffer, MAX_LEN = buffer.kMaxLength || 2147483647; exports.alloc = function (size, fill, encoding) { if ("function" == typeof Buffer.alloc) return Buffer.alloc(size, fill, encoding); if ("number" == typeof encoding) throw new TypeError("encoding must not be number"); if ("number" != typeof size) throw new TypeError("size must be a number"); if (size > MAX_LEN) throw new RangeError("size is too large"); var enc = encoding, _fill = fill; void 0 === _fill && (enc = void 0, _fill = 0); var buf = new Buffer(size); if ("string" == typeof _fill) for (var fillBuf = new Buffer(_fill, enc), flen = fillBuf.length, i = -1; ++i < size;)buf[i] = fillBuf[i % flen]; else buf.fill(_fill); return buf }, exports.allocUnsafe = function (size) { if ("function" == typeof Buffer.allocUnsafe) return Buffer.allocUnsafe(size); if ("number" != typeof size) throw new TypeError("size must be a number"); if (size > MAX_LEN) throw new RangeError("size is too large"); return new Buffer(size) }, exports.from = function (value, encodingOrOffset, length) { if ("function" == typeof Buffer.from && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) return Buffer.from(value, encodingOrOffset, length); if ("number" == typeof value) throw new TypeError('"value" argument must not be a number'); if ("string" == typeof value) return new Buffer(value, encodingOrOffset); if ("undefined" != typeof ArrayBuffer && value instanceof ArrayBuffer) { var offset = encodingOrOffset; if (1 === arguments.length) return new Buffer(value); "undefined" == typeof offset && (offset = 0); var len = length; if ("undefined" == typeof len && (len = value.byteLength - offset), offset >= value.byteLength) throw new RangeError("'offset' is out of bounds"); if (len > value.byteLength - offset) throw new RangeError("'length' is out of bounds"); return new Buffer(value.slice(offset, offset + len)) } if (Buffer.isBuffer(value)) { var out = new Buffer(value.length); return value.copy(out, 0, 0, value.length), out } if (value) { if (Array.isArray(value) || "undefined" != typeof ArrayBuffer && value.buffer instanceof ArrayBuffer || "length" in value) return new Buffer(value); if ("Buffer" === value.type && Array.isArray(value.data)) return new Buffer(value.data) } throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") }, exports.allocUnsafeSlow = function (size) { if ("function" == typeof Buffer.allocUnsafeSlow) return Buffer.allocUnsafeSlow(size); if ("number" != typeof size) throw new TypeError("size must be a number"); if (size >= MAX_LEN) throw new RangeError("size is too large"); return new SlowBuffer(size) } }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { buffer: 78 }], 78: [function (require, module, exports) { (function (global) { - "use strict"; function typedArraySupport() { try { var arr = new Uint8Array(1); return arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }, 42 === arr.foo() && "function" == typeof arr.subarray && 0 === arr.subarray(1, 1).byteLength } catch (e) { return !1 } } function kMaxLength() { return Buffer.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823 } function createBuffer(that, length) { if (kMaxLength() < length) throw new RangeError("Invalid typed array length"); return Buffer.TYPED_ARRAY_SUPPORT ? (that = new Uint8Array(length), that.__proto__ = Buffer.prototype) : (null === that && (that = new Buffer(length)), that.length = length), that } function Buffer(arg, encodingOrOffset, length) { if (!(Buffer.TYPED_ARRAY_SUPPORT || this instanceof Buffer)) return new Buffer(arg, encodingOrOffset, length); if ("number" == typeof arg) { if ("string" == typeof encodingOrOffset) throw new Error("If encoding is specified then the first argument must be a string"); return allocUnsafe(this, arg) } return from(this, arg, encodingOrOffset, length) } function from(that, value, encodingOrOffset, length) { if ("number" == typeof value) throw new TypeError('"value" argument must not be a number'); return "undefined" != typeof ArrayBuffer && value instanceof ArrayBuffer ? fromArrayBuffer(that, value, encodingOrOffset, length) : "string" == typeof value ? fromString(that, value, encodingOrOffset) : fromObject(that, value) } function assertSize(size) { if ("number" != typeof size) throw new TypeError('"size" argument must be a number'); if (0 > size) throw new RangeError('"size" argument must not be negative') } function alloc(that, size, fill, encoding) { return assertSize(size), 0 >= size ? createBuffer(that, size) : void 0 !== fill ? "string" == typeof encoding ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill) : createBuffer(that, size) } function allocUnsafe(that, size) { if (assertSize(size), that = createBuffer(that, 0 > size ? 0 : 0 | checked(size)), !Buffer.TYPED_ARRAY_SUPPORT) for (var i = 0; size > i; ++i)that[i] = 0; return that } function fromString(that, string, encoding) { if (("string" != typeof encoding || "" === encoding) && (encoding = "utf8"), !Buffer.isEncoding(encoding)) throw new TypeError('"encoding" must be a valid string encoding'); var length = 0 | byteLength(string, encoding); that = createBuffer(that, length); var actual = that.write(string, encoding); return actual !== length && (that = that.slice(0, actual)), that } function fromArrayLike(that, array) { var length = array.length < 0 ? 0 : 0 | checked(array.length); that = createBuffer(that, length); for (var i = 0; length > i; i += 1)that[i] = 255 & array[i]; return that } function fromArrayBuffer(that, array, byteOffset, length) { if (array.byteLength, 0 > byteOffset || array.byteLength < byteOffset) throw new RangeError("'offset' is out of bounds"); if (array.byteLength < byteOffset + (length || 0)) throw new RangeError("'length' is out of bounds"); return array = void 0 === byteOffset && void 0 === length ? new Uint8Array(array) : void 0 === length ? new Uint8Array(array, byteOffset) : new Uint8Array(array, byteOffset, length), Buffer.TYPED_ARRAY_SUPPORT ? (that = array, that.__proto__ = Buffer.prototype) : that = fromArrayLike(that, array), that } function fromObject(that, obj) { if (Buffer.isBuffer(obj)) { var len = 0 | checked(obj.length); return that = createBuffer(that, len), 0 === that.length ? that : (obj.copy(that, 0, 0, len), that) } if (obj) { if ("undefined" != typeof ArrayBuffer && obj.buffer instanceof ArrayBuffer || "length" in obj) return "number" != typeof obj.length || isnan(obj.length) ? createBuffer(that, 0) : fromArrayLike(that, obj); if ("Buffer" === obj.type && isArray(obj.data)) return fromArrayLike(that, obj.data) } throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") } function checked(length) { if (length >= kMaxLength()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + kMaxLength().toString(16) + " bytes"); return 0 | length } function SlowBuffer(length) { return +length != length && (length = 0), Buffer.alloc(+length) } function byteLength(string, encoding) { if (Buffer.isBuffer(string)) return string.length; if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) return string.byteLength; "string" != typeof string && (string = "" + string); var len = string.length; if (0 === len) return 0; for (var loweredCase = !1; ;)switch (encoding) { case "ascii": case "latin1": case "binary": return len; case "utf8": case "utf-8": case void 0: return utf8ToBytes(string).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return 2 * len; case "hex": return len >>> 1; case "base64": return base64ToBytes(string).length; default: if (loweredCase) return utf8ToBytes(string).length; encoding = ("" + encoding).toLowerCase(), loweredCase = !0 } } function slowToString(encoding, start, end) { var loweredCase = !1; if ((void 0 === start || 0 > start) && (start = 0), start > this.length) return ""; if ((void 0 === end || end > this.length) && (end = this.length), 0 >= end) return ""; if (end >>>= 0, start >>>= 0, start >= end) return ""; for (encoding || (encoding = "utf8"); ;)switch (encoding) { case "hex": return hexSlice(this, start, end); case "utf8": case "utf-8": return utf8Slice(this, start, end); case "ascii": return asciiSlice(this, start, end); case "latin1": case "binary": return latin1Slice(this, start, end); case "base64": return base64Slice(this, start, end); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return utf16leSlice(this, start, end); default: if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); encoding = (encoding + "").toLowerCase(), loweredCase = !0 } } function swap(b, n, m) { var i = b[n]; b[n] = b[m], b[m] = i } function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { if (0 === buffer.length) return -1; if ("string" == typeof byteOffset ? (encoding = byteOffset, byteOffset = 0) : byteOffset > 2147483647 ? byteOffset = 2147483647 : -2147483648 > byteOffset && (byteOffset = -2147483648), byteOffset = +byteOffset, isNaN(byteOffset) && (byteOffset = dir ? 0 : buffer.length - 1), 0 > byteOffset && (byteOffset = buffer.length + byteOffset), byteOffset >= buffer.length) { if (dir) return -1; byteOffset = buffer.length - 1 } else if (0 > byteOffset) { if (!dir) return -1; byteOffset = 0 } if ("string" == typeof val && (val = Buffer.from(val, encoding)), Buffer.isBuffer(val)) return 0 === val.length ? -1 : arrayIndexOf(buffer, val, byteOffset, encoding, dir); if ("number" == typeof val) return val = 255 & val, Buffer.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? dir ? Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) : Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) : arrayIndexOf(buffer, [val], byteOffset, encoding, dir); throw new TypeError("val must be string, number or Buffer") } function arrayIndexOf(arr, val, byteOffset, encoding, dir) { function read(buf, i) { return 1 === indexSize ? buf[i] : buf.readUInt16BE(i * indexSize) } var indexSize = 1, arrLength = arr.length, valLength = val.length; if (void 0 !== encoding && (encoding = String(encoding).toLowerCase(), "ucs2" === encoding || "ucs-2" === encoding || "utf16le" === encoding || "utf-16le" === encoding)) { if (arr.length < 2 || val.length < 2) return -1; indexSize = 2, arrLength /= 2, valLength /= 2, byteOffset /= 2 } var i; if (dir) { var foundIndex = -1; for (i = byteOffset; arrLength > i; i++)if (read(arr, i) === read(val, -1 === foundIndex ? 0 : i - foundIndex)) { if (-1 === foundIndex && (foundIndex = i), i - foundIndex + 1 === valLength) return foundIndex * indexSize } else -1 !== foundIndex && (i -= i - foundIndex), foundIndex = -1 } else for (byteOffset + valLength > arrLength && (byteOffset = arrLength - valLength), i = byteOffset; i >= 0; i--) { for (var found = !0, j = 0; valLength > j; j++)if (read(arr, i + j) !== read(val, j)) { found = !1; break } if (found) return i } return -1 } function hexWrite(buf, string, offset, length) { offset = Number(offset) || 0; var remaining = buf.length - offset; length ? (length = Number(length), length > remaining && (length = remaining)) : length = remaining; var strLen = string.length; if (strLen % 2 !== 0) throw new TypeError("Invalid hex string"); length > strLen / 2 && (length = strLen / 2); for (var i = 0; length > i; ++i) { var parsed = parseInt(string.substr(2 * i, 2), 16); if (isNaN(parsed)) return i; buf[offset + i] = parsed } return i } function utf8Write(buf, string, offset, length) { return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } function asciiWrite(buf, string, offset, length) { return blitBuffer(asciiToBytes(string), buf, offset, length) } function latin1Write(buf, string, offset, length) { return asciiWrite(buf, string, offset, length) } function base64Write(buf, string, offset, length) { return blitBuffer(base64ToBytes(string), buf, offset, length) } function ucs2Write(buf, string, offset, length) { return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) } function base64Slice(buf, start, end) { return 0 === start && end === buf.length ? base64.fromByteArray(buf) : base64.fromByteArray(buf.slice(start, end)) } function utf8Slice(buf, start, end) { end = Math.min(buf.length, end); for (var res = [], i = start; end > i;) { var firstByte = buf[i], codePoint = null, bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; if (end >= i + bytesPerSequence) { var secondByte, thirdByte, fourthByte, tempCodePoint; switch (bytesPerSequence) { case 1: 128 > firstByte && (codePoint = firstByte); break; case 2: secondByte = buf[i + 1], 128 === (192 & secondByte) && (tempCodePoint = (31 & firstByte) << 6 | 63 & secondByte, tempCodePoint > 127 && (codePoint = tempCodePoint)); break; case 3: secondByte = buf[i + 1], thirdByte = buf[i + 2], 128 === (192 & secondByte) && 128 === (192 & thirdByte) && (tempCodePoint = (15 & firstByte) << 12 | (63 & secondByte) << 6 | 63 & thirdByte, tempCodePoint > 2047 && (55296 > tempCodePoint || tempCodePoint > 57343) && (codePoint = tempCodePoint)); break; case 4: secondByte = buf[i + 1], thirdByte = buf[i + 2], fourthByte = buf[i + 3], 128 === (192 & secondByte) && 128 === (192 & thirdByte) && 128 === (192 & fourthByte) && (tempCodePoint = (15 & firstByte) << 18 | (63 & secondByte) << 12 | (63 & thirdByte) << 6 | 63 & fourthByte, tempCodePoint > 65535 && 1114112 > tempCodePoint && (codePoint = tempCodePoint)) } } null === codePoint ? (codePoint = 65533, bytesPerSequence = 1) : codePoint > 65535 && (codePoint -= 65536, res.push(codePoint >>> 10 & 1023 | 55296), codePoint = 56320 | 1023 & codePoint), res.push(codePoint), i += bytesPerSequence } return decodeCodePointsArray(res) } function decodeCodePointsArray(codePoints) { var len = codePoints.length; if (MAX_ARGUMENTS_LENGTH >= len) return String.fromCharCode.apply(String, codePoints); for (var res = "", i = 0; len > i;)res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); return res } function asciiSlice(buf, start, end) { var ret = ""; end = Math.min(buf.length, end); for (var i = start; end > i; ++i)ret += String.fromCharCode(127 & buf[i]); return ret } function latin1Slice(buf, start, end) { var ret = ""; end = Math.min(buf.length, end); for (var i = start; end > i; ++i)ret += String.fromCharCode(buf[i]); return ret } function hexSlice(buf, start, end) { var len = buf.length; (!start || 0 > start) && (start = 0), (!end || 0 > end || end > len) && (end = len); for (var out = "", i = start; end > i; ++i)out += toHex(buf[i]); return out } function utf16leSlice(buf, start, end) { for (var bytes = buf.slice(start, end), res = "", i = 0; i < bytes.length; i += 2)res += String.fromCharCode(bytes[i] + 256 * bytes[i + 1]); return res } function checkOffset(offset, ext, length) { if (offset % 1 !== 0 || 0 > offset) throw new RangeError("offset is not uint"); if (offset + ext > length) throw new RangeError("Trying to access beyond buffer length") } function checkInt(buf, value, offset, ext, max, min) { if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (value > max || min > value) throw new RangeError('"value" argument is out of bounds'); if (offset + ext > buf.length) throw new RangeError("Index out of range") } function objectWriteUInt16(buf, value, offset, littleEndian) { 0 > value && (value = 65535 + value + 1); for (var i = 0, j = Math.min(buf.length - offset, 2); j > i; ++i)buf[offset + i] = (value & 255 << 8 * (littleEndian ? i : 1 - i)) >>> 8 * (littleEndian ? i : 1 - i) } function objectWriteUInt32(buf, value, offset, littleEndian) { 0 > value && (value = 4294967295 + value + 1); for (var i = 0, j = Math.min(buf.length - offset, 4); j > i; ++i)buf[offset + i] = value >>> 8 * (littleEndian ? i : 3 - i) & 255 } function checkIEEE754(buf, value, offset, ext, max, min) { if (offset + ext > buf.length) throw new RangeError("Index out of range"); if (0 > offset) throw new RangeError("Index out of range") } function writeFloat(buf, value, offset, littleEndian, noAssert) { return noAssert || checkIEEE754(buf, value, offset, 4, 3.4028234663852886e38, -3.4028234663852886e38), ieee754.write(buf, value, offset, littleEndian, 23, 4), offset + 4 } function writeDouble(buf, value, offset, littleEndian, noAssert) { return noAssert || checkIEEE754(buf, value, offset, 8, 1.7976931348623157e308, -1.7976931348623157e308), ieee754.write(buf, value, offset, littleEndian, 52, 8), offset + 8 } function base64clean(str) { if (str = stringtrim(str).replace(INVALID_BASE64_RE, ""), str.length < 2) return ""; for (; str.length % 4 !== 0;)str += "="; return str } function stringtrim(str) { return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, "") } function toHex(n) { return 16 > n ? "0" + n.toString(16) : n.toString(16) } function utf8ToBytes(string, units) { units = units || 1 / 0; for (var codePoint, length = string.length, leadSurrogate = null, bytes = [], i = 0; length > i; ++i) { if (codePoint = string.charCodeAt(i), codePoint > 55295 && 57344 > codePoint) { if (!leadSurrogate) { if (codePoint > 56319) { (units -= 3) > -1 && bytes.push(239, 191, 189); continue } if (i + 1 === length) { (units -= 3) > -1 && bytes.push(239, 191, 189); continue } leadSurrogate = codePoint; continue } if (56320 > codePoint) { (units -= 3) > -1 && bytes.push(239, 191, 189), leadSurrogate = codePoint; continue } codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536 } else leadSurrogate && (units -= 3) > -1 && bytes.push(239, 191, 189); if (leadSurrogate = null, 128 > codePoint) { if ((units -= 1) < 0) break; bytes.push(codePoint) } else if (2048 > codePoint) { if ((units -= 2) < 0) break; bytes.push(codePoint >> 6 | 192, 63 & codePoint | 128) } else if (65536 > codePoint) { if ((units -= 3) < 0) break; bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, 63 & codePoint | 128) } else { if (!(1114112 > codePoint)) throw new Error("Invalid code point"); if ((units -= 4) < 0) break; bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, 63 & codePoint | 128) } } return bytes } function asciiToBytes(str) { for (var byteArray = [], i = 0; i < str.length; ++i)byteArray.push(255 & str.charCodeAt(i)); return byteArray } function utf16leToBytes(str, units) { for (var c, hi, lo, byteArray = [], i = 0; i < str.length && !((units -= 2) < 0); ++i)c = str.charCodeAt(i), hi = c >> 8, lo = c % 256, byteArray.push(lo), byteArray.push(hi); return byteArray } function base64ToBytes(str) { return base64.toByteArray(base64clean(str)) } function blitBuffer(src, dst, offset, length) { for (var i = 0; length > i && !(i + offset >= dst.length || i >= src.length); ++i)dst[i + offset] = src[i]; return i } function isnan(val) { return val !== val } var base64 = require("base64-js"), ieee754 = require("ieee754"), isArray = require("isarray"); exports.Buffer = Buffer, exports.SlowBuffer = SlowBuffer, exports.INSPECT_MAX_BYTES = 50, Buffer.TYPED_ARRAY_SUPPORT = void 0 !== global.TYPED_ARRAY_SUPPORT ? global.TYPED_ARRAY_SUPPORT : typedArraySupport(), exports.kMaxLength = kMaxLength(), Buffer.poolSize = 8192, Buffer._augment = function (arr) { return arr.__proto__ = Buffer.prototype, arr }, Buffer.from = function (value, encodingOrOffset, length) { return from(null, value, encodingOrOffset, length) }, Buffer.TYPED_ARRAY_SUPPORT && (Buffer.prototype.__proto__ = Uint8Array.prototype, Buffer.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && Buffer[Symbol.species] === Buffer && Object.defineProperty(Buffer, Symbol.species, { value: null, configurable: !0 })), Buffer.alloc = function (size, fill, encoding) { return alloc(null, size, fill, encoding) }, Buffer.allocUnsafe = function (size) { return allocUnsafe(null, size) }, Buffer.allocUnsafeSlow = function (size) { return allocUnsafe(null, size) }, Buffer.isBuffer = function (b) { return !(null == b || !b._isBuffer) }, Buffer.compare = function (a, b) { if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) throw new TypeError("Arguments must be Buffers"); if (a === b) return 0; for (var x = a.length, y = b.length, i = 0, len = Math.min(x, y); len > i; ++i)if (a[i] !== b[i]) { x = a[i], y = b[i]; break } return y > x ? -1 : x > y ? 1 : 0 }, Buffer.isEncoding = function (encoding) { switch (String(encoding).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, Buffer.concat = function (list, length) { if (!isArray(list)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === list.length) return Buffer.alloc(0); var i; if (void 0 === length) for (length = 0, i = 0; i < list.length; ++i)length += list[i].length; var buffer = Buffer.allocUnsafe(length), pos = 0; for (i = 0; i < list.length; ++i) { var buf = list[i]; if (!Buffer.isBuffer(buf)) throw new TypeError('"list" argument must be an Array of Buffers'); buf.copy(buffer, pos), pos += buf.length } return buffer }, Buffer.byteLength = byteLength, Buffer.prototype._isBuffer = !0, Buffer.prototype.swap16 = function () { var len = this.length; if (len % 2 !== 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var i = 0; len > i; i += 2)swap(this, i, i + 1); return this }, Buffer.prototype.swap32 = function () { var len = this.length; if (len % 4 !== 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var i = 0; len > i; i += 4)swap(this, i, i + 3), swap(this, i + 1, i + 2); return this }, Buffer.prototype.swap64 = function () { var len = this.length; if (len % 8 !== 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var i = 0; len > i; i += 8)swap(this, i, i + 7), swap(this, i + 1, i + 6), swap(this, i + 2, i + 5), swap(this, i + 3, i + 4); return this }, Buffer.prototype.toString = function () { var length = 0 | this.length; return 0 === length ? "" : 0 === arguments.length ? utf8Slice(this, 0, length) : slowToString.apply(this, arguments) }, Buffer.prototype.equals = function (b) { if (!Buffer.isBuffer(b)) throw new TypeError("Argument must be a Buffer"); return this === b ? !0 : 0 === Buffer.compare(this, b) }, Buffer.prototype.inspect = function () { var str = "", max = exports.INSPECT_MAX_BYTES; return this.length > 0 && (str = this.toString("hex", 0, max).match(/.{2}/g).join(" "), this.length > max && (str += " ... ")), "" }, Buffer.prototype.compare = function (target, start, end, thisStart, thisEnd) { if (!Buffer.isBuffer(target)) throw new TypeError("Argument must be a Buffer"); if (void 0 === start && (start = 0), void 0 === end && (end = target ? target.length : 0), void 0 === thisStart && (thisStart = 0), void 0 === thisEnd && (thisEnd = this.length), 0 > start || end > target.length || 0 > thisStart || thisEnd > this.length) throw new RangeError("out of range index"); if (thisStart >= thisEnd && start >= end) return 0; if (thisStart >= thisEnd) return -1; if (start >= end) return 1; if (start >>>= 0, end >>>= 0, thisStart >>>= 0, thisEnd >>>= 0, this === target) return 0; for (var x = thisEnd - thisStart, y = end - start, len = Math.min(x, y), thisCopy = this.slice(thisStart, thisEnd), targetCopy = target.slice(start, end), i = 0; len > i; ++i)if (thisCopy[i] !== targetCopy[i]) { x = thisCopy[i], y = targetCopy[i]; break } return y > x ? -1 : x > y ? 1 : 0 }, Buffer.prototype.includes = function (val, byteOffset, encoding) { return -1 !== this.indexOf(val, byteOffset, encoding) }, Buffer.prototype.indexOf = function (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, !0) }, Buffer.prototype.lastIndexOf = function (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, !1) }, Buffer.prototype.write = function (string, offset, length, encoding) { if (void 0 === offset) encoding = "utf8", length = this.length, offset = 0; else if (void 0 === length && "string" == typeof offset) encoding = offset, length = this.length, offset = 0; else { if (!isFinite(offset)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); offset = 0 | offset, isFinite(length) ? (length = 0 | length, void 0 === encoding && (encoding = "utf8")) : (encoding = length, length = void 0) } var remaining = this.length - offset; if ((void 0 === length || length > remaining) && (length = remaining), string.length > 0 && (0 > length || 0 > offset) || offset > this.length) throw new RangeError("Attempt to write outside buffer bounds"); encoding || (encoding = "utf8"); for (var loweredCase = !1; ;)switch (encoding) { case "hex": return hexWrite(this, string, offset, length); case "utf8": case "utf-8": return utf8Write(this, string, offset, length); case "ascii": return asciiWrite(this, string, offset, length); case "latin1": case "binary": return latin1Write(this, string, offset, length); case "base64": return base64Write(this, string, offset, length); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return ucs2Write(this, string, offset, length); default: if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); encoding = ("" + encoding).toLowerCase(), loweredCase = !0 } }, Buffer.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) } }; var MAX_ARGUMENTS_LENGTH = 4096; Buffer.prototype.slice = function (start, end) { var len = this.length; start = ~~start, end = void 0 === end ? len : ~~end, 0 > start ? (start += len, 0 > start && (start = 0)) : start > len && (start = len), 0 > end ? (end += len, 0 > end && (end = 0)) : end > len && (end = len), start > end && (end = start); var newBuf; if (Buffer.TYPED_ARRAY_SUPPORT) newBuf = this.subarray(start, end), newBuf.__proto__ = Buffer.prototype; else { var sliceLen = end - start; newBuf = new Buffer(sliceLen, void 0); for (var i = 0; sliceLen > i; ++i)newBuf[i] = this[i + start] } return newBuf }, Buffer.prototype.readUIntLE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset], mul = 1, i = 0; ++i < byteLength && (mul *= 256);)val += this[offset + i] * mul; return val }, Buffer.prototype.readUIntBE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset + --byteLength], mul = 1; byteLength > 0 && (mul *= 256);)val += this[offset + --byteLength] * mul; return val }, Buffer.prototype.readUInt8 = function (offset, noAssert) { return noAssert || checkOffset(offset, 1, this.length), this[offset] }, Buffer.prototype.readUInt16LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 2, this.length), this[offset] | this[offset + 1] << 8 }, Buffer.prototype.readUInt16BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 2, this.length), this[offset] << 8 | this[offset + 1] }, Buffer.prototype.readUInt32LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + 16777216 * this[offset + 3] }, Buffer.prototype.readUInt32BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), 16777216 * this[offset] + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]) }, Buffer.prototype.readIntLE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset], mul = 1, i = 0; ++i < byteLength && (mul *= 256);)val += this[offset + i] * mul; return mul *= 128, val >= mul && (val -= Math.pow(2, 8 * byteLength)), val }, Buffer.prototype.readIntBE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var i = byteLength, mul = 1, val = this[offset + --i]; i > 0 && (mul *= 256);)val += this[offset + --i] * mul; return mul *= 128, val >= mul && (val -= Math.pow(2, 8 * byteLength)), val }, Buffer.prototype.readInt8 = function (offset, noAssert) { return noAssert || checkOffset(offset, 1, this.length), 128 & this[offset] ? -1 * (255 - this[offset] + 1) : this[offset] }, Buffer.prototype.readInt16LE = function (offset, noAssert) { noAssert || checkOffset(offset, 2, this.length); var val = this[offset] | this[offset + 1] << 8; return 32768 & val ? 4294901760 | val : val }, Buffer.prototype.readInt16BE = function (offset, noAssert) { noAssert || checkOffset(offset, 2, this.length); var val = this[offset + 1] | this[offset] << 8; return 32768 & val ? 4294901760 | val : val }, Buffer.prototype.readInt32LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24 }, Buffer.prototype.readInt32BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3] }, Buffer.prototype.readFloatLE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), ieee754.read(this, offset, !0, 23, 4) }, Buffer.prototype.readFloatBE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), ieee754.read(this, offset, !1, 23, 4) }, Buffer.prototype.readDoubleLE = function (offset, noAssert) { return noAssert || checkOffset(offset, 8, this.length), ieee754.read(this, offset, !0, 52, 8) }, Buffer.prototype.readDoubleBE = function (offset, noAssert) { return noAssert || checkOffset(offset, 8, this.length), ieee754.read(this, offset, !1, 52, 8) }, Buffer.prototype.writeUIntLE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, byteLength = 0 | byteLength, !noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1; checkInt(this, value, offset, byteLength, maxBytes, 0) } var mul = 1, i = 0; for (this[offset] = 255 & value; ++i < byteLength && (mul *= 256);)this[offset + i] = value / mul & 255; return offset + byteLength }, Buffer.prototype.writeUIntBE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, byteLength = 0 | byteLength, !noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1; checkInt(this, value, offset, byteLength, maxBytes, 0) } var i = byteLength - 1, mul = 1; for (this[offset + i] = 255 & value; --i >= 0 && (mul *= 256);)this[offset + i] = value / mul & 255; return offset + byteLength }, Buffer.prototype.writeUInt8 = function (value, offset, noAssert) { - return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 1, 255, 0), Buffer.TYPED_ARRAY_SUPPORT || (value = Math.floor(value)), this[offset] = 255 & value, offset + 1 - }, Buffer.prototype.writeUInt16LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 65535, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8) : objectWriteUInt16(this, value, offset, !0), offset + 2 }, Buffer.prototype.writeUInt16BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 65535, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 8, this[offset + 1] = 255 & value) : objectWriteUInt16(this, value, offset, !1), offset + 2 }, Buffer.prototype.writeUInt32LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 4294967295, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset + 3] = value >>> 24, this[offset + 2] = value >>> 16, this[offset + 1] = value >>> 8, this[offset] = 255 & value) : objectWriteUInt32(this, value, offset, !0), offset + 4 }, Buffer.prototype.writeUInt32BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 4294967295, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 24, this[offset + 1] = value >>> 16, this[offset + 2] = value >>> 8, this[offset + 3] = 255 & value) : objectWriteUInt32(this, value, offset, !1), offset + 4 }, Buffer.prototype.writeIntLE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, !noAssert) { var limit = Math.pow(2, 8 * byteLength - 1); checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = 0, mul = 1, sub = 0; for (this[offset] = 255 & value; ++i < byteLength && (mul *= 256);)0 > value && 0 === sub && 0 !== this[offset + i - 1] && (sub = 1), this[offset + i] = (value / mul >> 0) - sub & 255; return offset + byteLength }, Buffer.prototype.writeIntBE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, !noAssert) { var limit = Math.pow(2, 8 * byteLength - 1); checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = byteLength - 1, mul = 1, sub = 0; for (this[offset + i] = 255 & value; --i >= 0 && (mul *= 256);)0 > value && 0 === sub && 0 !== this[offset + i + 1] && (sub = 1), this[offset + i] = (value / mul >> 0) - sub & 255; return offset + byteLength }, Buffer.prototype.writeInt8 = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 1, 127, -128), Buffer.TYPED_ARRAY_SUPPORT || (value = Math.floor(value)), 0 > value && (value = 255 + value + 1), this[offset] = 255 & value, offset + 1 }, Buffer.prototype.writeInt16LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 32767, -32768), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8) : objectWriteUInt16(this, value, offset, !0), offset + 2 }, Buffer.prototype.writeInt16BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 32767, -32768), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 8, this[offset + 1] = 255 & value) : objectWriteUInt16(this, value, offset, !1), offset + 2 }, Buffer.prototype.writeInt32LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 2147483647, -2147483648), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8, this[offset + 2] = value >>> 16, this[offset + 3] = value >>> 24) : objectWriteUInt32(this, value, offset, !0), offset + 4 }, Buffer.prototype.writeInt32BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 2147483647, -2147483648), 0 > value && (value = 4294967295 + value + 1), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 24, this[offset + 1] = value >>> 16, this[offset + 2] = value >>> 8, this[offset + 3] = 255 & value) : objectWriteUInt32(this, value, offset, !1), offset + 4 }, Buffer.prototype.writeFloatLE = function (value, offset, noAssert) { return writeFloat(this, value, offset, !0, noAssert) }, Buffer.prototype.writeFloatBE = function (value, offset, noAssert) { return writeFloat(this, value, offset, !1, noAssert) }, Buffer.prototype.writeDoubleLE = function (value, offset, noAssert) { return writeDouble(this, value, offset, !0, noAssert) }, Buffer.prototype.writeDoubleBE = function (value, offset, noAssert) { return writeDouble(this, value, offset, !1, noAssert) }, Buffer.prototype.copy = function (target, targetStart, start, end) { if (start || (start = 0), end || 0 === end || (end = this.length), targetStart >= target.length && (targetStart = target.length), targetStart || (targetStart = 0), end > 0 && start > end && (end = start), end === start) return 0; if (0 === target.length || 0 === this.length) return 0; if (0 > targetStart) throw new RangeError("targetStart out of bounds"); if (0 > start || start >= this.length) throw new RangeError("sourceStart out of bounds"); if (0 > end) throw new RangeError("sourceEnd out of bounds"); end > this.length && (end = this.length), target.length - targetStart < end - start && (end = target.length - targetStart + start); var i, len = end - start; if (this === target && targetStart > start && end > targetStart) for (i = len - 1; i >= 0; --i)target[i + targetStart] = this[i + start]; else if (1e3 > len || !Buffer.TYPED_ARRAY_SUPPORT) for (i = 0; len > i; ++i)target[i + targetStart] = this[i + start]; else Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart); return len }, Buffer.prototype.fill = function (val, start, end, encoding) { if ("string" == typeof val) { if ("string" == typeof start ? (encoding = start, start = 0, end = this.length) : "string" == typeof end && (encoding = end, end = this.length), 1 === val.length) { var code = val.charCodeAt(0); 256 > code && (val = code) } if (void 0 !== encoding && "string" != typeof encoding) throw new TypeError("encoding must be a string"); if ("string" == typeof encoding && !Buffer.isEncoding(encoding)) throw new TypeError("Unknown encoding: " + encoding) } else "number" == typeof val && (val = 255 & val); if (0 > start || this.length < start || this.length < end) throw new RangeError("Out of range index"); if (start >= end) return this; start >>>= 0, end = void 0 === end ? this.length : end >>> 0, val || (val = 0); var i; if ("number" == typeof val) for (i = start; end > i; ++i)this[i] = val; else { var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString()), len = bytes.length; for (i = 0; end - start > i; ++i)this[i + start] = bytes[i % len] } return this }; var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + "use strict"; function typedArraySupport() { try { var arr = new Uint8Array(1); return arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }, 42 === arr.foo() && "function" == typeof arr.subarray && 0 === arr.subarray(1, 1).byteLength } catch (e) { return !1 } } function kMaxLength() { return Buffer.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823 } function createBuffer(that, length) { if (kMaxLength() < length) throw new RangeError("Invalid typed array length"); return Buffer.TYPED_ARRAY_SUPPORT ? (that = new Uint8Array(length), that.__proto__ = Buffer.prototype) : (null === that && (that = new Buffer(length)), that.length = length), that } function Buffer(arg, encodingOrOffset, length) { if (!(Buffer.TYPED_ARRAY_SUPPORT || this instanceof Buffer)) return new Buffer(arg, encodingOrOffset, length); if ("number" == typeof arg) { if ("string" == typeof encodingOrOffset) throw new Error("If encoding is specified then the first argument must be a string"); return allocUnsafe(this, arg) } return from(this, arg, encodingOrOffset, length) } function from(that, value, encodingOrOffset, length) { if ("number" == typeof value) throw new TypeError('"value" argument must not be a number'); return "undefined" != typeof ArrayBuffer && value instanceof ArrayBuffer ? fromArrayBuffer(that, value, encodingOrOffset, length) : "string" == typeof value ? fromString(that, value, encodingOrOffset) : fromObject(that, value) } function assertSize(size) { if ("number" != typeof size) throw new TypeError('"size" argument must be a number'); if (0 > size) throw new RangeError('"size" argument must not be negative') } function alloc(that, size, fill, encoding) { return assertSize(size), 0 >= size ? createBuffer(that, size) : void 0 !== fill ? "string" == typeof encoding ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill) : createBuffer(that, size) } function allocUnsafe(that, size) { if (assertSize(size), that = createBuffer(that, 0 > size ? 0 : 0 | checked(size)), !Buffer.TYPED_ARRAY_SUPPORT) for (var i = 0; size > i; ++i)that[i] = 0; return that } function fromString(that, string, encoding) { if (("string" != typeof encoding || "" === encoding) && (encoding = "utf8"), !Buffer.isEncoding(encoding)) throw new TypeError('"encoding" must be a valid string encoding'); var length = 0 | byteLength(string, encoding); that = createBuffer(that, length); var actual = that.write(string, encoding); return actual !== length && (that = that.slice(0, actual)), that } function fromArrayLike(that, array) { var length = array.length < 0 ? 0 : 0 | checked(array.length); that = createBuffer(that, length); for (var i = 0; length > i; i += 1)that[i] = 255 & array[i]; return that } function fromArrayBuffer(that, array, byteOffset, length) { if (array.byteLength, 0 > byteOffset || array.byteLength < byteOffset) throw new RangeError("'offset' is out of bounds"); if (array.byteLength < byteOffset + (length || 0)) throw new RangeError("'length' is out of bounds"); return array = void 0 === byteOffset && void 0 === length ? new Uint8Array(array) : void 0 === length ? new Uint8Array(array, byteOffset) : new Uint8Array(array, byteOffset, length), Buffer.TYPED_ARRAY_SUPPORT ? (that = array, that.__proto__ = Buffer.prototype) : that = fromArrayLike(that, array), that } function fromObject(that, obj) { if (Buffer.isBuffer(obj)) { var len = 0 | checked(obj.length); return that = createBuffer(that, len), 0 === that.length ? that : (obj.copy(that, 0, 0, len), that) } if (obj) { if ("undefined" != typeof ArrayBuffer && obj.buffer instanceof ArrayBuffer || "length" in obj) return "number" != typeof obj.length || isnan(obj.length) ? createBuffer(that, 0) : fromArrayLike(that, obj); if ("Buffer" === obj.type && isArray(obj.data)) return fromArrayLike(that, obj.data) } throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") } function checked(length) { if (length >= kMaxLength()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + kMaxLength().toString(16) + " bytes"); return 0 | length } function SlowBuffer(length) { return +length != length && (length = 0), Buffer.alloc(+length) } function byteLength(string, encoding) { if (Buffer.isBuffer(string)) return string.length; if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) return string.byteLength; "string" != typeof string && (string = "" + string); var len = string.length; if (0 === len) return 0; for (var loweredCase = !1; ;)switch (encoding) { case "ascii": case "latin1": case "binary": return len; case "utf8": case "utf-8": case void 0: return utf8ToBytes(string).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return 2 * len; case "hex": return len >>> 1; case "base64": return base64ToBytes(string).length; default: if (loweredCase) return utf8ToBytes(string).length; encoding = ("" + encoding).toLowerCase(), loweredCase = !0 } } function slowToString(encoding, start, end) { var loweredCase = !1; if ((void 0 === start || 0 > start) && (start = 0), start > this.length) return ""; if ((void 0 === end || end > this.length) && (end = this.length), 0 >= end) return ""; if (end >>>= 0, start >>>= 0, start >= end) return ""; for (encoding || (encoding = "utf8"); ;)switch (encoding) { case "hex": return hexSlice(this, start, end); case "utf8": case "utf-8": return utf8Slice(this, start, end); case "ascii": return asciiSlice(this, start, end); case "latin1": case "binary": return latin1Slice(this, start, end); case "base64": return base64Slice(this, start, end); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return utf16leSlice(this, start, end); default: if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); encoding = (encoding + "").toLowerCase(), loweredCase = !0 } } function swap(b, n, m) { var i = b[n]; b[n] = b[m], b[m] = i } function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { if (0 === buffer.length) return -1; if ("string" == typeof byteOffset ? (encoding = byteOffset, byteOffset = 0) : byteOffset > 2147483647 ? byteOffset = 2147483647 : -2147483648 > byteOffset && (byteOffset = -2147483648), byteOffset = +byteOffset, isNaN(byteOffset) && (byteOffset = dir ? 0 : buffer.length - 1), 0 > byteOffset && (byteOffset = buffer.length + byteOffset), byteOffset >= buffer.length) { if (dir) return -1; byteOffset = buffer.length - 1 } else if (0 > byteOffset) { if (!dir) return -1; byteOffset = 0 } if ("string" == typeof val && (val = Buffer.from(val, encoding)), Buffer.isBuffer(val)) return 0 === val.length ? -1 : arrayIndexOf(buffer, val, byteOffset, encoding, dir); if ("number" == typeof val) return val = 255 & val, Buffer.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? dir ? Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) : Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) : arrayIndexOf(buffer, [val], byteOffset, encoding, dir); throw new TypeError("val must be string, number or Buffer") } function arrayIndexOf(arr, val, byteOffset, encoding, dir) { function read(buf, i) { return 1 === indexSize ? buf[i] : buf.readUInt16BE(i * indexSize) } var indexSize = 1, arrLength = arr.length, valLength = val.length; if (void 0 !== encoding && (encoding = String(encoding).toLowerCase(), "ucs2" === encoding || "ucs-2" === encoding || "utf16le" === encoding || "utf-16le" === encoding)) { if (arr.length < 2 || val.length < 2) return -1; indexSize = 2, arrLength /= 2, valLength /= 2, byteOffset /= 2 } var i; if (dir) { var foundIndex = -1; for (i = byteOffset; arrLength > i; i++)if (read(arr, i) === read(val, -1 === foundIndex ? 0 : i - foundIndex)) { if (-1 === foundIndex && (foundIndex = i), i - foundIndex + 1 === valLength) return foundIndex * indexSize } else -1 !== foundIndex && (i -= i - foundIndex), foundIndex = -1 } else for (byteOffset + valLength > arrLength && (byteOffset = arrLength - valLength), i = byteOffset; i >= 0; i--) { for (var found = !0, j = 0; valLength > j; j++)if (read(arr, i + j) !== read(val, j)) { found = !1; break } if (found) return i } return -1 } function hexWrite(buf, string, offset, length) { offset = Number(offset) || 0; var remaining = buf.length - offset; length ? (length = Number(length), length > remaining && (length = remaining)) : length = remaining; var strLen = string.length; if (strLen % 2 !== 0) throw new TypeError("Invalid hex string"); length > strLen / 2 && (length = strLen / 2); for (var i = 0; length > i; ++i) { var parsed = parseInt(string.substr(2 * i, 2), 16); if (isNaN(parsed)) return i; buf[offset + i] = parsed } return i } function utf8Write(buf, string, offset, length) { return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } function asciiWrite(buf, string, offset, length) { return blitBuffer(asciiToBytes(string), buf, offset, length) } function latin1Write(buf, string, offset, length) { return asciiWrite(buf, string, offset, length) } function base64Write(buf, string, offset, length) { return blitBuffer(base64ToBytes(string), buf, offset, length) } function ucs2Write(buf, string, offset, length) { return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) } function base64Slice(buf, start, end) { return 0 === start && end === buf.length ? base64.fromByteArray(buf) : base64.fromByteArray(buf.slice(start, end)) } function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); for (var res = [], i = start; end > i;) { + var firstByte = buf[i], codePoint = null, bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; if (end >= i + bytesPerSequence) { + var secondByte, thirdByte, fourthByte, tempCodePoint; + switch (bytesPerSequence) { case 1: 128 > firstByte && (codePoint = firstByte); break; case 2: secondByte = buf[i + 1], 128 === (192 & secondByte) && (tempCodePoint = (31 & firstByte) << 6 | 63 & secondByte, tempCodePoint > 127 && (codePoint = tempCodePoint)); break; case 3: secondByte = buf[i + 1], thirdByte = buf[i + 2], 128 === (192 & secondByte) && 128 === (192 & thirdByte) && (tempCodePoint = (15 & firstByte) << 12 | (63 & secondByte) << 6 | 63 & thirdByte, tempCodePoint > 2047 && (55296 > tempCodePoint || tempCodePoint > 57343) && (codePoint = tempCodePoint)); break; case 4: secondByte = buf[i + 1], thirdByte = buf[i + 2], fourthByte = buf[i + 3], 128 === (192 & secondByte) && 128 === (192 & thirdByte) && 128 === (192 & fourthByte) && (tempCodePoint = (15 & firstByte) << 18 | (63 & secondByte) << 12 | (63 & thirdByte) << 6 | 63 & fourthByte, tempCodePoint > 65535 && 1114112 > tempCodePoint && (codePoint = tempCodePoint)) } + } null === codePoint ? (codePoint = 65533, bytesPerSequence = 1) : codePoint > 65535 && (codePoint -= 65536, res.push(codePoint >>> 10 & 1023 | 55296), codePoint = 56320 | 1023 & codePoint), res.push(codePoint), i += bytesPerSequence + } return decodeCodePointsArray(res) + } function decodeCodePointsArray(codePoints) { var len = codePoints.length; if (MAX_ARGUMENTS_LENGTH >= len) return String.fromCharCode.apply(String, codePoints); for (var res = "", i = 0; len > i;)res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); return res } function asciiSlice(buf, start, end) { var ret = ""; end = Math.min(buf.length, end); for (var i = start; end > i; ++i)ret += String.fromCharCode(127 & buf[i]); return ret } function latin1Slice(buf, start, end) { var ret = ""; end = Math.min(buf.length, end); for (var i = start; end > i; ++i)ret += String.fromCharCode(buf[i]); return ret } function hexSlice(buf, start, end) { var len = buf.length; (!start || 0 > start) && (start = 0), (!end || 0 > end || end > len) && (end = len); for (var out = "", i = start; end > i; ++i)out += toHex(buf[i]); return out } function utf16leSlice(buf, start, end) { for (var bytes = buf.slice(start, end), res = "", i = 0; i < bytes.length; i += 2)res += String.fromCharCode(bytes[i] + 256 * bytes[i + 1]); return res } function checkOffset(offset, ext, length) { if (offset % 1 !== 0 || 0 > offset) throw new RangeError("offset is not uint"); if (offset + ext > length) throw new RangeError("Trying to access beyond buffer length") } function checkInt(buf, value, offset, ext, max, min) { if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (value > max || min > value) throw new RangeError('"value" argument is out of bounds'); if (offset + ext > buf.length) throw new RangeError("Index out of range") } function objectWriteUInt16(buf, value, offset, littleEndian) { 0 > value && (value = 65535 + value + 1); for (var i = 0, j = Math.min(buf.length - offset, 2); j > i; ++i)buf[offset + i] = (value & 255 << 8 * (littleEndian ? i : 1 - i)) >>> 8 * (littleEndian ? i : 1 - i) } function objectWriteUInt32(buf, value, offset, littleEndian) { 0 > value && (value = 4294967295 + value + 1); for (var i = 0, j = Math.min(buf.length - offset, 4); j > i; ++i)buf[offset + i] = value >>> 8 * (littleEndian ? i : 3 - i) & 255 } function checkIEEE754(buf, value, offset, ext, max, min) { if (offset + ext > buf.length) throw new RangeError("Index out of range"); if (0 > offset) throw new RangeError("Index out of range") } function writeFloat(buf, value, offset, littleEndian, noAssert) { return noAssert || checkIEEE754(buf, value, offset, 4, 3.4028234663852886e38, -3.4028234663852886e38), ieee754.write(buf, value, offset, littleEndian, 23, 4), offset + 4 } function writeDouble(buf, value, offset, littleEndian, noAssert) { return noAssert || checkIEEE754(buf, value, offset, 8, 1.7976931348623157e308, -1.7976931348623157e308), ieee754.write(buf, value, offset, littleEndian, 52, 8), offset + 8 } function base64clean(str) { if (str = stringtrim(str).replace(INVALID_BASE64_RE, ""), str.length < 2) return ""; for (; str.length % 4 !== 0;)str += "="; return str } function stringtrim(str) { return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, "") } function toHex(n) { return 16 > n ? "0" + n.toString(16) : n.toString(16) } function utf8ToBytes(string, units) { units = units || 1 / 0; for (var codePoint, length = string.length, leadSurrogate = null, bytes = [], i = 0; length > i; ++i) { if (codePoint = string.charCodeAt(i), codePoint > 55295 && 57344 > codePoint) { if (!leadSurrogate) { if (codePoint > 56319) { (units -= 3) > -1 && bytes.push(239, 191, 189); continue } if (i + 1 === length) { (units -= 3) > -1 && bytes.push(239, 191, 189); continue } leadSurrogate = codePoint; continue } if (56320 > codePoint) { (units -= 3) > -1 && bytes.push(239, 191, 189), leadSurrogate = codePoint; continue } codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536 } else leadSurrogate && (units -= 3) > -1 && bytes.push(239, 191, 189); if (leadSurrogate = null, 128 > codePoint) { if ((units -= 1) < 0) break; bytes.push(codePoint) } else if (2048 > codePoint) { if ((units -= 2) < 0) break; bytes.push(codePoint >> 6 | 192, 63 & codePoint | 128) } else if (65536 > codePoint) { if ((units -= 3) < 0) break; bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, 63 & codePoint | 128) } else { if (!(1114112 > codePoint)) throw new Error("Invalid code point"); if ((units -= 4) < 0) break; bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, 63 & codePoint | 128) } } return bytes } function asciiToBytes(str) { for (var byteArray = [], i = 0; i < str.length; ++i)byteArray.push(255 & str.charCodeAt(i)); return byteArray } function utf16leToBytes(str, units) { for (var c, hi, lo, byteArray = [], i = 0; i < str.length && !((units -= 2) < 0); ++i)c = str.charCodeAt(i), hi = c >> 8, lo = c % 256, byteArray.push(lo), byteArray.push(hi); return byteArray } function base64ToBytes(str) { return base64.toByteArray(base64clean(str)) } function blitBuffer(src, dst, offset, length) { for (var i = 0; length > i && !(i + offset >= dst.length || i >= src.length); ++i)dst[i + offset] = src[i]; return i } function isnan(val) { return val !== val } var base64 = require("base64-js"), ieee754 = require("ieee754"), isArray = require("isarray"); exports.Buffer = Buffer, exports.SlowBuffer = SlowBuffer, exports.INSPECT_MAX_BYTES = 50, Buffer.TYPED_ARRAY_SUPPORT = void 0 !== global.TYPED_ARRAY_SUPPORT ? global.TYPED_ARRAY_SUPPORT : typedArraySupport(), exports.kMaxLength = kMaxLength(), Buffer.poolSize = 8192, Buffer._augment = function (arr) { return arr.__proto__ = Buffer.prototype, arr }, Buffer.from = function (value, encodingOrOffset, length) { return from(null, value, encodingOrOffset, length) }, Buffer.TYPED_ARRAY_SUPPORT && (Buffer.prototype.__proto__ = Uint8Array.prototype, Buffer.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && Buffer[Symbol.species] === Buffer && Object.defineProperty(Buffer, Symbol.species, { value: null, configurable: !0 })), Buffer.alloc = function (size, fill, encoding) { return alloc(null, size, fill, encoding) }, Buffer.allocUnsafe = function (size) { return allocUnsafe(null, size) }, Buffer.allocUnsafeSlow = function (size) { return allocUnsafe(null, size) }, Buffer.isBuffer = function (b) { return !(null == b || !b._isBuffer) }, Buffer.compare = function (a, b) { if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) throw new TypeError("Arguments must be Buffers"); if (a === b) return 0; for (var x = a.length, y = b.length, i = 0, len = Math.min(x, y); len > i; ++i)if (a[i] !== b[i]) { x = a[i], y = b[i]; break } return y > x ? -1 : x > y ? 1 : 0 }, Buffer.isEncoding = function (encoding) { switch (String(encoding).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, Buffer.concat = function (list, length) { if (!isArray(list)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === list.length) return Buffer.alloc(0); var i; if (void 0 === length) for (length = 0, i = 0; i < list.length; ++i)length += list[i].length; var buffer = Buffer.allocUnsafe(length), pos = 0; for (i = 0; i < list.length; ++i) { var buf = list[i]; if (!Buffer.isBuffer(buf)) throw new TypeError('"list" argument must be an Array of Buffers'); buf.copy(buffer, pos), pos += buf.length } return buffer }, Buffer.byteLength = byteLength, Buffer.prototype._isBuffer = !0, Buffer.prototype.swap16 = function () { var len = this.length; if (len % 2 !== 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var i = 0; len > i; i += 2)swap(this, i, i + 1); return this }, Buffer.prototype.swap32 = function () { var len = this.length; if (len % 4 !== 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var i = 0; len > i; i += 4)swap(this, i, i + 3), swap(this, i + 1, i + 2); return this }, Buffer.prototype.swap64 = function () { var len = this.length; if (len % 8 !== 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var i = 0; len > i; i += 8)swap(this, i, i + 7), swap(this, i + 1, i + 6), swap(this, i + 2, i + 5), swap(this, i + 3, i + 4); return this }, Buffer.prototype.toString = function () { var length = 0 | this.length; return 0 === length ? "" : 0 === arguments.length ? utf8Slice(this, 0, length) : slowToString.apply(this, arguments) }, Buffer.prototype.equals = function (b) { if (!Buffer.isBuffer(b)) throw new TypeError("Argument must be a Buffer"); return this === b ? !0 : 0 === Buffer.compare(this, b) }, Buffer.prototype.inspect = function () { var str = "", max = exports.INSPECT_MAX_BYTES; return this.length > 0 && (str = this.toString("hex", 0, max).match(/.{2}/g).join(" "), this.length > max && (str += " ... ")), "" }, Buffer.prototype.compare = function (target, start, end, thisStart, thisEnd) { if (!Buffer.isBuffer(target)) throw new TypeError("Argument must be a Buffer"); if (void 0 === start && (start = 0), void 0 === end && (end = target ? target.length : 0), void 0 === thisStart && (thisStart = 0), void 0 === thisEnd && (thisEnd = this.length), 0 > start || end > target.length || 0 > thisStart || thisEnd > this.length) throw new RangeError("out of range index"); if (thisStart >= thisEnd && start >= end) return 0; if (thisStart >= thisEnd) return -1; if (start >= end) return 1; if (start >>>= 0, end >>>= 0, thisStart >>>= 0, thisEnd >>>= 0, this === target) return 0; for (var x = thisEnd - thisStart, y = end - start, len = Math.min(x, y), thisCopy = this.slice(thisStart, thisEnd), targetCopy = target.slice(start, end), i = 0; len > i; ++i)if (thisCopy[i] !== targetCopy[i]) { x = thisCopy[i], y = targetCopy[i]; break } return y > x ? -1 : x > y ? 1 : 0 }, Buffer.prototype.includes = function (val, byteOffset, encoding) { return -1 !== this.indexOf(val, byteOffset, encoding) }, Buffer.prototype.indexOf = function (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, !0) }, Buffer.prototype.lastIndexOf = function (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, !1) }, Buffer.prototype.write = function (string, offset, length, encoding) { if (void 0 === offset) encoding = "utf8", length = this.length, offset = 0; else if (void 0 === length && "string" == typeof offset) encoding = offset, length = this.length, offset = 0; else { if (!isFinite(offset)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); offset = 0 | offset, isFinite(length) ? (length = 0 | length, void 0 === encoding && (encoding = "utf8")) : (encoding = length, length = void 0) } var remaining = this.length - offset; if ((void 0 === length || length > remaining) && (length = remaining), string.length > 0 && (0 > length || 0 > offset) || offset > this.length) throw new RangeError("Attempt to write outside buffer bounds"); encoding || (encoding = "utf8"); for (var loweredCase = !1; ;)switch (encoding) { case "hex": return hexWrite(this, string, offset, length); case "utf8": case "utf-8": return utf8Write(this, string, offset, length); case "ascii": return asciiWrite(this, string, offset, length); case "latin1": case "binary": return latin1Write(this, string, offset, length); case "base64": return base64Write(this, string, offset, length); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return ucs2Write(this, string, offset, length); default: if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); encoding = ("" + encoding).toLowerCase(), loweredCase = !0 } }, Buffer.prototype.toJSON = function () { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) } }; var MAX_ARGUMENTS_LENGTH = 4096; Buffer.prototype.slice = function (start, end) { var len = this.length; start = ~~start, end = void 0 === end ? len : ~~end, 0 > start ? (start += len, 0 > start && (start = 0)) : start > len && (start = len), 0 > end ? (end += len, 0 > end && (end = 0)) : end > len && (end = len), start > end && (end = start); var newBuf; if (Buffer.TYPED_ARRAY_SUPPORT) newBuf = this.subarray(start, end), newBuf.__proto__ = Buffer.prototype; else { var sliceLen = end - start; newBuf = new Buffer(sliceLen, void 0); for (var i = 0; sliceLen > i; ++i)newBuf[i] = this[i + start] } return newBuf }, Buffer.prototype.readUIntLE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset], mul = 1, i = 0; ++i < byteLength && (mul *= 256);)val += this[offset + i] * mul; return val }, Buffer.prototype.readUIntBE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset + --byteLength], mul = 1; byteLength > 0 && (mul *= 256);)val += this[offset + --byteLength] * mul; return val }, Buffer.prototype.readUInt8 = function (offset, noAssert) { return noAssert || checkOffset(offset, 1, this.length), this[offset] }, Buffer.prototype.readUInt16LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 2, this.length), this[offset] | this[offset + 1] << 8 }, Buffer.prototype.readUInt16BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 2, this.length), this[offset] << 8 | this[offset + 1] }, Buffer.prototype.readUInt32LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + 16777216 * this[offset + 3] }, Buffer.prototype.readUInt32BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), 16777216 * this[offset] + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]) }, Buffer.prototype.readIntLE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var val = this[offset], mul = 1, i = 0; ++i < byteLength && (mul *= 256);)val += this[offset + i] * mul; return mul *= 128, val >= mul && (val -= Math.pow(2, 8 * byteLength)), val }, Buffer.prototype.readIntBE = function (offset, byteLength, noAssert) { offset = 0 | offset, byteLength = 0 | byteLength, noAssert || checkOffset(offset, byteLength, this.length); for (var i = byteLength, mul = 1, val = this[offset + --i]; i > 0 && (mul *= 256);)val += this[offset + --i] * mul; return mul *= 128, val >= mul && (val -= Math.pow(2, 8 * byteLength)), val }, Buffer.prototype.readInt8 = function (offset, noAssert) { return noAssert || checkOffset(offset, 1, this.length), 128 & this[offset] ? -1 * (255 - this[offset] + 1) : this[offset] }, Buffer.prototype.readInt16LE = function (offset, noAssert) { noAssert || checkOffset(offset, 2, this.length); var val = this[offset] | this[offset + 1] << 8; return 32768 & val ? 4294901760 | val : val }, Buffer.prototype.readInt16BE = function (offset, noAssert) { noAssert || checkOffset(offset, 2, this.length); var val = this[offset + 1] | this[offset] << 8; return 32768 & val ? 4294901760 | val : val }, Buffer.prototype.readInt32LE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24 }, Buffer.prototype.readInt32BE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3] }, Buffer.prototype.readFloatLE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), ieee754.read(this, offset, !0, 23, 4) }, Buffer.prototype.readFloatBE = function (offset, noAssert) { return noAssert || checkOffset(offset, 4, this.length), ieee754.read(this, offset, !1, 23, 4) }, Buffer.prototype.readDoubleLE = function (offset, noAssert) { return noAssert || checkOffset(offset, 8, this.length), ieee754.read(this, offset, !0, 52, 8) }, Buffer.prototype.readDoubleBE = function (offset, noAssert) { return noAssert || checkOffset(offset, 8, this.length), ieee754.read(this, offset, !1, 52, 8) }, Buffer.prototype.writeUIntLE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, byteLength = 0 | byteLength, !noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1; checkInt(this, value, offset, byteLength, maxBytes, 0) } var mul = 1, i = 0; for (this[offset] = 255 & value; ++i < byteLength && (mul *= 256);)this[offset + i] = value / mul & 255; return offset + byteLength }, Buffer.prototype.writeUIntBE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, byteLength = 0 | byteLength, !noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1; checkInt(this, value, offset, byteLength, maxBytes, 0) } var i = byteLength - 1, mul = 1; for (this[offset + i] = 255 & value; --i >= 0 && (mul *= 256);)this[offset + i] = value / mul & 255; return offset + byteLength }, Buffer.prototype.writeUInt8 = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 1, 255, 0), Buffer.TYPED_ARRAY_SUPPORT || (value = Math.floor(value)), this[offset] = 255 & value, offset + 1 }, Buffer.prototype.writeUInt16LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 65535, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8) : objectWriteUInt16(this, value, offset, !0), offset + 2 }, Buffer.prototype.writeUInt16BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 65535, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 8, this[offset + 1] = 255 & value) : objectWriteUInt16(this, value, offset, !1), offset + 2 }, Buffer.prototype.writeUInt32LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 4294967295, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset + 3] = value >>> 24, this[offset + 2] = value >>> 16, this[offset + 1] = value >>> 8, this[offset] = 255 & value) : objectWriteUInt32(this, value, offset, !0), offset + 4 }, Buffer.prototype.writeUInt32BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 4294967295, 0), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 24, this[offset + 1] = value >>> 16, this[offset + 2] = value >>> 8, this[offset + 3] = 255 & value) : objectWriteUInt32(this, value, offset, !1), offset + 4 }, Buffer.prototype.writeIntLE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, !noAssert) { var limit = Math.pow(2, 8 * byteLength - 1); checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = 0, mul = 1, sub = 0; for (this[offset] = 255 & value; ++i < byteLength && (mul *= 256);)0 > value && 0 === sub && 0 !== this[offset + i - 1] && (sub = 1), this[offset + i] = (value / mul >> 0) - sub & 255; return offset + byteLength }, Buffer.prototype.writeIntBE = function (value, offset, byteLength, noAssert) { if (value = +value, offset = 0 | offset, !noAssert) { var limit = Math.pow(2, 8 * byteLength - 1); checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = byteLength - 1, mul = 1, sub = 0; for (this[offset + i] = 255 & value; --i >= 0 && (mul *= 256);)0 > value && 0 === sub && 0 !== this[offset + i + 1] && (sub = 1), this[offset + i] = (value / mul >> 0) - sub & 255; return offset + byteLength }, Buffer.prototype.writeInt8 = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 1, 127, -128), Buffer.TYPED_ARRAY_SUPPORT || (value = Math.floor(value)), 0 > value && (value = 255 + value + 1), this[offset] = 255 & value, offset + 1 }, Buffer.prototype.writeInt16LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 32767, -32768), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8) : objectWriteUInt16(this, value, offset, !0), offset + 2 }, Buffer.prototype.writeInt16BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 2, 32767, -32768), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 8, this[offset + 1] = 255 & value) : objectWriteUInt16(this, value, offset, !1), offset + 2 }, Buffer.prototype.writeInt32LE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 2147483647, -2147483648), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = 255 & value, this[offset + 1] = value >>> 8, this[offset + 2] = value >>> 16, this[offset + 3] = value >>> 24) : objectWriteUInt32(this, value, offset, !0), offset + 4 }, Buffer.prototype.writeInt32BE = function (value, offset, noAssert) { return value = +value, offset = 0 | offset, noAssert || checkInt(this, value, offset, 4, 2147483647, -2147483648), 0 > value && (value = 4294967295 + value + 1), Buffer.TYPED_ARRAY_SUPPORT ? (this[offset] = value >>> 24, this[offset + 1] = value >>> 16, this[offset + 2] = value >>> 8, this[offset + 3] = 255 & value) : objectWriteUInt32(this, value, offset, !1), offset + 4 }, Buffer.prototype.writeFloatLE = function (value, offset, noAssert) { return writeFloat(this, value, offset, !0, noAssert) }, Buffer.prototype.writeFloatBE = function (value, offset, noAssert) { return writeFloat(this, value, offset, !1, noAssert) }, Buffer.prototype.writeDoubleLE = function (value, offset, noAssert) { return writeDouble(this, value, offset, !0, noAssert) }, Buffer.prototype.writeDoubleBE = function (value, offset, noAssert) { return writeDouble(this, value, offset, !1, noAssert) }, Buffer.prototype.copy = function (target, targetStart, start, end) { if (start || (start = 0), end || 0 === end || (end = this.length), targetStart >= target.length && (targetStart = target.length), targetStart || (targetStart = 0), end > 0 && start > end && (end = start), end === start) return 0; if (0 === target.length || 0 === this.length) return 0; if (0 > targetStart) throw new RangeError("targetStart out of bounds"); if (0 > start || start >= this.length) throw new RangeError("sourceStart out of bounds"); if (0 > end) throw new RangeError("sourceEnd out of bounds"); end > this.length && (end = this.length), target.length - targetStart < end - start && (end = target.length - targetStart + start); var i, len = end - start; if (this === target && targetStart > start && end > targetStart) for (i = len - 1; i >= 0; --i)target[i + targetStart] = this[i + start]; else if (1e3 > len || !Buffer.TYPED_ARRAY_SUPPORT) for (i = 0; len > i; ++i)target[i + targetStart] = this[i + start]; else Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart); return len }, Buffer.prototype.fill = function (val, start, end, encoding) { if ("string" == typeof val) { if ("string" == typeof start ? (encoding = start, start = 0, end = this.length) : "string" == typeof end && (encoding = end, end = this.length), 1 === val.length) { var code = val.charCodeAt(0); 256 > code && (val = code) } if (void 0 !== encoding && "string" != typeof encoding) throw new TypeError("encoding must be a string"); if ("string" == typeof encoding && !Buffer.isEncoding(encoding)) throw new TypeError("Unknown encoding: " + encoding) } else "number" == typeof val && (val = 255 & val); if (0 > start || this.length < start || this.length < end) throw new RangeError("Out of range index"); if (start >= end) return this; start >>>= 0, end = void 0 === end ? this.length : end >>> 0, val || (val = 0); var i; if ("number" == typeof val) for (i = start; end > i; ++i)this[i] = val; else { var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString()), len = bytes.length; for (i = 0; end - start > i; ++i)this[i + start] = bytes[i % len] } return this }; var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) - }, { "base64-js": 47, ieee754: 86, isarray: 87 }], 84: [function (require, module, exports) { - "use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }); var dingbats = [{ "Typeface name": "Symbol", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Symbol", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "33", "Unicode hex": "21" }, { "Typeface name": "Symbol", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "8704", "Unicode hex": "2200" }, { "Typeface name": "Symbol", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "35", "Unicode hex": "23" }, { "Typeface name": "Symbol", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "8707", "Unicode hex": "2203" }, { "Typeface name": "Symbol", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "37", "Unicode hex": "25" }, { "Typeface name": "Symbol", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "38", "Unicode hex": "26" }, { "Typeface name": "Symbol", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "8717", "Unicode hex": "220D" }, { "Typeface name": "Symbol", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "40", "Unicode hex": "28" }, { "Typeface name": "Symbol", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "41", "Unicode hex": "29" }, { "Typeface name": "Symbol", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "42", "Unicode hex": "2A" }, { "Typeface name": "Symbol", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "43", "Unicode hex": "2B" }, { "Typeface name": "Symbol", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "44", "Unicode hex": "2C" }, { "Typeface name": "Symbol", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "8722", "Unicode hex": "2212" }, { "Typeface name": "Symbol", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "46", "Unicode hex": "2E" }, { "Typeface name": "Symbol", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "47", "Unicode hex": "2F" }, { "Typeface name": "Symbol", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "48", "Unicode hex": "30" }, { "Typeface name": "Symbol", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "49", "Unicode hex": "31" }, { "Typeface name": "Symbol", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "50", "Unicode hex": "32" }, { "Typeface name": "Symbol", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "51", "Unicode hex": "33" }, { "Typeface name": "Symbol", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "52", "Unicode hex": "34" }, { "Typeface name": "Symbol", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "53", "Unicode hex": "35" }, { "Typeface name": "Symbol", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "54", "Unicode hex": "36" }, { "Typeface name": "Symbol", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "55", "Unicode hex": "37" }, { "Typeface name": "Symbol", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "56", "Unicode hex": "38" }, { "Typeface name": "Symbol", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "57", "Unicode hex": "39" }, { "Typeface name": "Symbol", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "58", "Unicode hex": "3A" }, { "Typeface name": "Symbol", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "59", "Unicode hex": "3B" }, { "Typeface name": "Symbol", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "60", "Unicode hex": "3C" }, { "Typeface name": "Symbol", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "61", "Unicode hex": "3D" }, { "Typeface name": "Symbol", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "62", "Unicode hex": "3E" }, { "Typeface name": "Symbol", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "63", "Unicode hex": "3F" }, { "Typeface name": "Symbol", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "8773", "Unicode hex": "2245" }, { "Typeface name": "Symbol", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "913", "Unicode hex": "391" }, { "Typeface name": "Symbol", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "914", "Unicode hex": "392" }, { "Typeface name": "Symbol", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "935", "Unicode hex": "3A7" }, { "Typeface name": "Symbol", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "916", "Unicode hex": "394" }, { "Typeface name": "Symbol", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "917", "Unicode hex": "395" }, { "Typeface name": "Symbol", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "934", "Unicode hex": "3A6" }, { "Typeface name": "Symbol", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "915", "Unicode hex": "393" }, { "Typeface name": "Symbol", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "919", "Unicode hex": "397" }, { "Typeface name": "Symbol", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "921", "Unicode hex": "399" }, { "Typeface name": "Symbol", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "977", "Unicode hex": "3D1" }, { "Typeface name": "Symbol", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "922", "Unicode hex": "39A" }, { "Typeface name": "Symbol", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "923", "Unicode hex": "39B" }, { "Typeface name": "Symbol", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "924", "Unicode hex": "39C" }, { "Typeface name": "Symbol", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "925", "Unicode hex": "39D" }, { "Typeface name": "Symbol", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "927", "Unicode hex": "39F" }, { "Typeface name": "Symbol", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "928", "Unicode hex": "3A0" }, { "Typeface name": "Symbol", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "920", "Unicode hex": "398" }, { "Typeface name": "Symbol", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "929", "Unicode hex": "3A1" }, { "Typeface name": "Symbol", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "931", "Unicode hex": "3A3" }, { "Typeface name": "Symbol", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "932", "Unicode hex": "3A4" }, { "Typeface name": "Symbol", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "933", "Unicode hex": "3A5" }, { "Typeface name": "Symbol", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "962", "Unicode hex": "3C2" }, { "Typeface name": "Symbol", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "937", "Unicode hex": "3A9" }, { "Typeface name": "Symbol", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "926", "Unicode hex": "39E" }, { "Typeface name": "Symbol", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "936", "Unicode hex": "3A8" }, { "Typeface name": "Symbol", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "918", "Unicode hex": "396" }, { "Typeface name": "Symbol", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "91", "Unicode hex": "5B" }, { "Typeface name": "Symbol", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "8756", "Unicode hex": "2234" }, { "Typeface name": "Symbol", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "93", "Unicode hex": "5D" }, { "Typeface name": "Symbol", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "8869", "Unicode hex": "22A5" }, { "Typeface name": "Symbol", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "95", "Unicode hex": "5F" }, { "Typeface name": "Symbol", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "8254", "Unicode hex": "203E" }, { "Typeface name": "Symbol", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "945", "Unicode hex": "3B1" }, { "Typeface name": "Symbol", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "946", "Unicode hex": "3B2" }, { "Typeface name": "Symbol", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "967", "Unicode hex": "3C7" }, { "Typeface name": "Symbol", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "948", "Unicode hex": "3B4" }, { "Typeface name": "Symbol", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "949", "Unicode hex": "3B5" }, { "Typeface name": "Symbol", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "966", "Unicode hex": "3C6" }, { "Typeface name": "Symbol", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "947", "Unicode hex": "3B3" }, { "Typeface name": "Symbol", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "951", "Unicode hex": "3B7" }, { "Typeface name": "Symbol", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "953", "Unicode hex": "3B9" }, { "Typeface name": "Symbol", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "981", "Unicode hex": "3D5" }, { "Typeface name": "Symbol", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "954", "Unicode hex": "3BA" }, { "Typeface name": "Symbol", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "955", "Unicode hex": "3BB" }, { "Typeface name": "Symbol", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "956", "Unicode hex": "3BC" }, { "Typeface name": "Symbol", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "957", "Unicode hex": "3BD" }, { "Typeface name": "Symbol", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "959", "Unicode hex": "3BF" }, { "Typeface name": "Symbol", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "960", "Unicode hex": "3C0" }, { "Typeface name": "Symbol", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "952", "Unicode hex": "3B8" }, { "Typeface name": "Symbol", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "961", "Unicode hex": "3C1" }, { "Typeface name": "Symbol", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "963", "Unicode hex": "3C3" }, { "Typeface name": "Symbol", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "964", "Unicode hex": "3C4" }, { "Typeface name": "Symbol", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "965", "Unicode hex": "3C5" }, { "Typeface name": "Symbol", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "982", "Unicode hex": "3D6" }, { "Typeface name": "Symbol", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "969", "Unicode hex": "3C9" }, { "Typeface name": "Symbol", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "958", "Unicode hex": "3BE" }, { "Typeface name": "Symbol", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "968", "Unicode hex": "3C8" }, { "Typeface name": "Symbol", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "950", "Unicode hex": "3B6" }, { "Typeface name": "Symbol", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "123", "Unicode hex": "7B" }, { "Typeface name": "Symbol", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "124", "Unicode hex": "7C" }, { "Typeface name": "Symbol", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "125", "Unicode hex": "7D" }, { "Typeface name": "Symbol", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "126", "Unicode hex": "7E" }, { "Typeface name": "Symbol", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "8364", "Unicode hex": "20AC" }, { "Typeface name": "Symbol", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "978", "Unicode hex": "3D2" }, { "Typeface name": "Symbol", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "8242", "Unicode hex": "2032" }, { "Typeface name": "Symbol", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "8804", "Unicode hex": "2264" }, { "Typeface name": "Symbol", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "8260", "Unicode hex": "2044" }, { "Typeface name": "Symbol", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "8734", "Unicode hex": "221E" }, { "Typeface name": "Symbol", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "402", "Unicode hex": "192" }, { "Typeface name": "Symbol", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "9827", "Unicode hex": "2663" }, { "Typeface name": "Symbol", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "9830", "Unicode hex": "2666" }, { "Typeface name": "Symbol", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "9829", "Unicode hex": "2665" }, { "Typeface name": "Symbol", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "9824", "Unicode hex": "2660" }, { "Typeface name": "Symbol", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "8596", "Unicode hex": "2194" }, { "Typeface name": "Symbol", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "8592", "Unicode hex": "2190" }, { "Typeface name": "Symbol", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "8593", "Unicode hex": "2191" }, { "Typeface name": "Symbol", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "8594", "Unicode hex": "2192" }, { "Typeface name": "Symbol", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "8595", "Unicode hex": "2193" }, { "Typeface name": "Symbol", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "176", "Unicode hex": "B0" }, { "Typeface name": "Symbol", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "177", "Unicode hex": "B1" }, { "Typeface name": "Symbol", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "8243", "Unicode hex": "2033" }, { "Typeface name": "Symbol", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "8805", "Unicode hex": "2265" }, { "Typeface name": "Symbol", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "215", "Unicode hex": "D7" }, { "Typeface name": "Symbol", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "8733", "Unicode hex": "221D" }, { "Typeface name": "Symbol", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "8706", "Unicode hex": "2202" }, { "Typeface name": "Symbol", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "8226", "Unicode hex": "2022" }, { "Typeface name": "Symbol", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "247", "Unicode hex": "F7" }, { "Typeface name": "Symbol", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "8800", "Unicode hex": "2260" }, { "Typeface name": "Symbol", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "8801", "Unicode hex": "2261" }, { "Typeface name": "Symbol", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "8776", "Unicode hex": "2248" }, { "Typeface name": "Symbol", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "8230", "Unicode hex": "2026" }, { "Typeface name": "Symbol", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "9168", "Unicode hex": "23D0" }, { "Typeface name": "Symbol", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "9135", "Unicode hex": "23AF" }, { "Typeface name": "Symbol", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "8629", "Unicode hex": "21B5" }, { "Typeface name": "Symbol", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "8501", "Unicode hex": "2135" }, { "Typeface name": "Symbol", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "8465", "Unicode hex": "2111" }, { "Typeface name": "Symbol", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "8476", "Unicode hex": "211C" }, { "Typeface name": "Symbol", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "8472", "Unicode hex": "2118" }, { "Typeface name": "Symbol", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "8855", "Unicode hex": "2297" }, { "Typeface name": "Symbol", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "8853", "Unicode hex": "2295" }, { "Typeface name": "Symbol", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "8709", "Unicode hex": "2205" }, { "Typeface name": "Symbol", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "8745", "Unicode hex": "2229" }, { "Typeface name": "Symbol", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "8746", "Unicode hex": "222A" }, { "Typeface name": "Symbol", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "8835", "Unicode hex": "2283" }, { "Typeface name": "Symbol", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "8839", "Unicode hex": "2287" }, { "Typeface name": "Symbol", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "8836", "Unicode hex": "2284" }, { "Typeface name": "Symbol", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "8834", "Unicode hex": "2282" }, { "Typeface name": "Symbol", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "8838", "Unicode hex": "2286" }, { "Typeface name": "Symbol", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "8712", "Unicode hex": "2208" }, { "Typeface name": "Symbol", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "8713", "Unicode hex": "2209" }, { "Typeface name": "Symbol", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "8736", "Unicode hex": "2220" }, { "Typeface name": "Symbol", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "8711", "Unicode hex": "2207" }, { "Typeface name": "Symbol", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "174", "Unicode hex": "AE" }, { "Typeface name": "Symbol", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "169", "Unicode hex": "A9" }, { "Typeface name": "Symbol", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "8482", "Unicode hex": "2122" }, { "Typeface name": "Symbol", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "8719", "Unicode hex": "220F" }, { "Typeface name": "Symbol", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "8730", "Unicode hex": "221A" }, { "Typeface name": "Symbol", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "8901", "Unicode hex": "22C5" }, { "Typeface name": "Symbol", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "172", "Unicode hex": "AC" }, { "Typeface name": "Symbol", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "8743", "Unicode hex": "2227" }, { "Typeface name": "Symbol", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "8744", "Unicode hex": "2228" }, { "Typeface name": "Symbol", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "8660", "Unicode hex": "21D4" }, { "Typeface name": "Symbol", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "8656", "Unicode hex": "21D0" }, { "Typeface name": "Symbol", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "8657", "Unicode hex": "21D1" }, { "Typeface name": "Symbol", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "8658", "Unicode hex": "21D2" }, { "Typeface name": "Symbol", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "8659", "Unicode hex": "21D3" }, { "Typeface name": "Symbol", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "9674", "Unicode hex": "25CA" }, { "Typeface name": "Symbol", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "12296", "Unicode hex": "3008" }, { "Typeface name": "Symbol", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "174", "Unicode hex": "AE" }, { "Typeface name": "Symbol", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "169", "Unicode hex": "A9" }, { "Typeface name": "Symbol", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "8482", "Unicode hex": "2122" }, { "Typeface name": "Symbol", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "8721", "Unicode hex": "2211" }, { "Typeface name": "Symbol", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "9115", "Unicode hex": "239B" }, { "Typeface name": "Symbol", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "9116", "Unicode hex": "239C" }, { "Typeface name": "Symbol", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "9117", "Unicode hex": "239D" }, { "Typeface name": "Symbol", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "9121", "Unicode hex": "23A1" }, { "Typeface name": "Symbol", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "9122", "Unicode hex": "23A2" }, { "Typeface name": "Symbol", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "9123", "Unicode hex": "23A3" }, { "Typeface name": "Symbol", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "9127", "Unicode hex": "23A7" }, { "Typeface name": "Symbol", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "9128", "Unicode hex": "23A8" }, { "Typeface name": "Symbol", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "9129", "Unicode hex": "23A9" }, { "Typeface name": "Symbol", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "9130", "Unicode hex": "23AA" }, { "Typeface name": "Symbol", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "63743", "Unicode hex": "F8FF" }, { "Typeface name": "Symbol", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "12297", "Unicode hex": "3009" }, { "Typeface name": "Symbol", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "8747", "Unicode hex": "222B" }, { "Typeface name": "Symbol", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "8992", "Unicode hex": "2320" }, { "Typeface name": "Symbol", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "9134", "Unicode hex": "23AE" }, { "Typeface name": "Symbol", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "8993", "Unicode hex": "2321" }, { "Typeface name": "Symbol", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "9118", "Unicode hex": "239E" }, { "Typeface name": "Symbol", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "9119", "Unicode hex": "239F" }, { "Typeface name": "Symbol", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "9120", "Unicode hex": "23A0" }, { "Typeface name": "Symbol", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "9124", "Unicode hex": "23A4" }, { "Typeface name": "Symbol", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "9125", "Unicode hex": "23A5" }, { "Typeface name": "Symbol", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "9126", "Unicode hex": "23A6" }, { "Typeface name": "Symbol", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "9131", "Unicode hex": "23AB" }, { "Typeface name": "Symbol", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "9132", "Unicode hex": "23AC" }, { "Typeface name": "Symbol", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "9133", "Unicode hex": "23AD" }, { "Typeface name": "Webdings", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Webdings", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128375", "Unicode hex": "1F577" }, { "Typeface name": "Webdings", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "128376", "Unicode hex": "1F578" }, { "Typeface name": "Webdings", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "128370", "Unicode hex": "1F572" }, { "Typeface name": "Webdings", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128374", "Unicode hex": "1F576" }, { "Typeface name": "Webdings", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "127942", "Unicode hex": "1F3C6" }, { "Typeface name": "Webdings", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "127894", "Unicode hex": "1F396" }, { "Typeface name": "Webdings", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128391", "Unicode hex": "1F587" }, { "Typeface name": "Webdings", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128488", "Unicode hex": "1F5E8" }, { "Typeface name": "Webdings", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "128489", "Unicode hex": "1F5E9" }, { "Typeface name": "Webdings", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128496", "Unicode hex": "1F5F0" }, { "Typeface name": "Webdings", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128497", "Unicode hex": "1F5F1" }, { "Typeface name": "Webdings", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "127798", "Unicode hex": "1F336" }, { "Typeface name": "Webdings", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "127895", "Unicode hex": "1F397" }, { "Typeface name": "Webdings", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128638", "Unicode hex": "1F67E" }, { "Typeface name": "Webdings", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128636", "Unicode hex": "1F67C" }, { "Typeface name": "Webdings", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128469", "Unicode hex": "1F5D5" }, { "Typeface name": "Webdings", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128470", "Unicode hex": "1F5D6" }, { "Typeface name": "Webdings", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "128471", "Unicode hex": "1F5D7" }, { "Typeface name": "Webdings", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "9204", "Unicode hex": "23F4" }, { "Typeface name": "Webdings", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "9205", "Unicode hex": "23F5" }, { "Typeface name": "Webdings", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "9206", "Unicode hex": "23F6" }, { "Typeface name": "Webdings", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "9207", "Unicode hex": "23F7" }, { "Typeface name": "Webdings", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "9194", "Unicode hex": "23EA" }, { "Typeface name": "Webdings", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "9193", "Unicode hex": "23E9" }, { "Typeface name": "Webdings", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "9198", "Unicode hex": "23EE" }, { "Typeface name": "Webdings", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "9197", "Unicode hex": "23ED" }, { "Typeface name": "Webdings", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "9208", "Unicode hex": "23F8" }, { "Typeface name": "Webdings", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "9209", "Unicode hex": "23F9" }, { "Typeface name": "Webdings", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "9210", "Unicode hex": "23FA" }, { "Typeface name": "Webdings", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "128474", "Unicode hex": "1F5DA" }, { "Typeface name": "Webdings", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "128499", "Unicode hex": "1F5F3" }, { "Typeface name": "Webdings", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128736", "Unicode hex": "1F6E0" }, { "Typeface name": "Webdings", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "127959", "Unicode hex": "1F3D7" }, { "Typeface name": "Webdings", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "127960", "Unicode hex": "1F3D8" }, { "Typeface name": "Webdings", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "127961", "Unicode hex": "1F3D9" }, { "Typeface name": "Webdings", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "127962", "Unicode hex": "1F3DA" }, { "Typeface name": "Webdings", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "127964", "Unicode hex": "1F3DC" }, { "Typeface name": "Webdings", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "127981", "Unicode hex": "1F3ED" }, { "Typeface name": "Webdings", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "127963", "Unicode hex": "1F3DB" }, { "Typeface name": "Webdings", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "127968", "Unicode hex": "1F3E0" }, { "Typeface name": "Webdings", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "127958", "Unicode hex": "1F3D6" }, { "Typeface name": "Webdings", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "127965", "Unicode hex": "1F3DD" }, { "Typeface name": "Webdings", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128739", "Unicode hex": "1F6E3" }, { "Typeface name": "Webdings", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "128269", "Unicode hex": "1F50D" }, { "Typeface name": "Webdings", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "127956", "Unicode hex": "1F3D4" }, { "Typeface name": "Webdings", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128065", "Unicode hex": "1F441" }, { "Typeface name": "Webdings", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "128066", "Unicode hex": "1F442" }, { "Typeface name": "Webdings", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "127966", "Unicode hex": "1F3DE" }, { - "Typeface name": "Webdings", "Dingbat dec": "81", - "Dingbat hex": "51", "Unicode dec": "127957", "Unicode hex": "1F3D5" - }, { "Typeface name": "Webdings", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "128740", "Unicode hex": "1F6E4" }, { "Typeface name": "Webdings", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "127967", "Unicode hex": "1F3DF" }, { "Typeface name": "Webdings", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "128755", "Unicode hex": "1F6F3" }, { "Typeface name": "Webdings", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "128364", "Unicode hex": "1F56C" }, { "Typeface name": "Webdings", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "128363", "Unicode hex": "1F56B" }, { "Typeface name": "Webdings", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128360", "Unicode hex": "1F568" }, { "Typeface name": "Webdings", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "128264", "Unicode hex": "1F508" }, { "Typeface name": "Webdings", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "127892", "Unicode hex": "1F394" }, { "Typeface name": "Webdings", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "127893", "Unicode hex": "1F395" }, { "Typeface name": "Webdings", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "128492", "Unicode hex": "1F5EC" }, { "Typeface name": "Webdings", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128637", "Unicode hex": "1F67D" }, { "Typeface name": "Webdings", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "128493", "Unicode hex": "1F5ED" }, { "Typeface name": "Webdings", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "128490", "Unicode hex": "1F5EA" }, { "Typeface name": "Webdings", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "128491", "Unicode hex": "1F5EB" }, { "Typeface name": "Webdings", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "11156", "Unicode hex": "2B94" }, { "Typeface name": "Webdings", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "10004", "Unicode hex": "2714" }, { "Typeface name": "Webdings", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "128690", "Unicode hex": "1F6B2" }, { "Typeface name": "Webdings", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "11036", "Unicode hex": "2B1C" }, { "Typeface name": "Webdings", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "128737", "Unicode hex": "1F6E1" }, { "Typeface name": "Webdings", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "128230", "Unicode hex": "1F4E6" }, { "Typeface name": "Webdings", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "128753", "Unicode hex": "1F6F1" }, { "Typeface name": "Webdings", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "11035", "Unicode hex": "2B1B" }, { "Typeface name": "Webdings", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "128657", "Unicode hex": "1F691" }, { "Typeface name": "Webdings", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "128712", "Unicode hex": "1F6C8" }, { "Typeface name": "Webdings", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "128745", "Unicode hex": "1F6E9" }, { "Typeface name": "Webdings", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "128752", "Unicode hex": "1F6F0" }, { "Typeface name": "Webdings", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "128968", "Unicode hex": "1F7C8" }, { "Typeface name": "Webdings", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "128372", "Unicode hex": "1F574" }, { "Typeface name": "Webdings", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "11044", "Unicode hex": "2B24" }, { "Typeface name": "Webdings", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "128741", "Unicode hex": "1F6E5" }, { "Typeface name": "Webdings", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "128660", "Unicode hex": "1F694" }, { "Typeface name": "Webdings", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "128472", "Unicode hex": "1F5D8" }, { "Typeface name": "Webdings", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "128473", "Unicode hex": "1F5D9" }, { "Typeface name": "Webdings", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "10067", "Unicode hex": "2753" }, { "Typeface name": "Webdings", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "128754", "Unicode hex": "1F6F2" }, { "Typeface name": "Webdings", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "128647", "Unicode hex": "1F687" }, { "Typeface name": "Webdings", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "128653", "Unicode hex": "1F68D" }, { "Typeface name": "Webdings", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "9971", "Unicode hex": "26F3" }, { "Typeface name": "Webdings", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "10680", "Unicode hex": "29B8" }, { "Typeface name": "Webdings", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "8854", "Unicode hex": "2296" }, { "Typeface name": "Webdings", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "128685", "Unicode hex": "1F6AD" }, { "Typeface name": "Webdings", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "128494", "Unicode hex": "1F5EE" }, { "Typeface name": "Webdings", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "9168", "Unicode hex": "23D0" }, { "Typeface name": "Webdings", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128495", "Unicode hex": "1F5EF" }, { "Typeface name": "Webdings", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128498", "Unicode hex": "1F5F2" }, { "Typeface name": "Webdings", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "128697", "Unicode hex": "1F6B9" }, { "Typeface name": "Webdings", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "128698", "Unicode hex": "1F6BA" }, { "Typeface name": "Webdings", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "128713", "Unicode hex": "1F6C9" }, { "Typeface name": "Webdings", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "128714", "Unicode hex": "1F6CA" }, { "Typeface name": "Webdings", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "128700", "Unicode hex": "1F6BC" }, { "Typeface name": "Webdings", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "128125", "Unicode hex": "1F47D" }, { "Typeface name": "Webdings", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "127947", "Unicode hex": "1F3CB" }, { "Typeface name": "Webdings", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "9975", "Unicode hex": "26F7" }, { "Typeface name": "Webdings", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "127938", "Unicode hex": "1F3C2" }, { "Typeface name": "Webdings", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "127948", "Unicode hex": "1F3CC" }, { "Typeface name": "Webdings", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "127946", "Unicode hex": "1F3CA" }, { "Typeface name": "Webdings", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "127940", "Unicode hex": "1F3C4" }, { "Typeface name": "Webdings", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "127949", "Unicode hex": "1F3CD" }, { "Typeface name": "Webdings", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "127950", "Unicode hex": "1F3CE" }, { "Typeface name": "Webdings", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "128664", "Unicode hex": "1F698" }, { "Typeface name": "Webdings", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "128480", "Unicode hex": "1F5E0" }, { "Typeface name": "Webdings", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "128738", "Unicode hex": "1F6E2" }, { "Typeface name": "Webdings", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "128176", "Unicode hex": "1F4B0" }, { "Typeface name": "Webdings", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "127991", "Unicode hex": "1F3F7" }, { "Typeface name": "Webdings", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "128179", "Unicode hex": "1F4B3" }, { "Typeface name": "Webdings", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "128106", "Unicode hex": "1F46A" }, { "Typeface name": "Webdings", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "128481", "Unicode hex": "1F5E1" }, { "Typeface name": "Webdings", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128482", "Unicode hex": "1F5E2" }, { "Typeface name": "Webdings", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "128483", "Unicode hex": "1F5E3" }, { "Typeface name": "Webdings", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "10031", "Unicode hex": "272F" }, { "Typeface name": "Webdings", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "128388", "Unicode hex": "1F584" }, { "Typeface name": "Webdings", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128389", "Unicode hex": "1F585" }, { "Typeface name": "Webdings", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128387", "Unicode hex": "1F583" }, { "Typeface name": "Webdings", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128390", "Unicode hex": "1F586" }, { "Typeface name": "Webdings", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "128441", "Unicode hex": "1F5B9" }, { "Typeface name": "Webdings", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "128442", "Unicode hex": "1F5BA" }, { "Typeface name": "Webdings", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "128443", "Unicode hex": "1F5BB" }, { "Typeface name": "Webdings", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "128373", "Unicode hex": "1F575" }, { "Typeface name": "Webdings", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "128368", "Unicode hex": "1F570" }, { "Typeface name": "Webdings", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "128445", "Unicode hex": "1F5BD" }, { "Typeface name": "Webdings", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "128446", "Unicode hex": "1F5BE" }, { "Typeface name": "Webdings", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128203", "Unicode hex": "1F4CB" }, { "Typeface name": "Webdings", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128466", "Unicode hex": "1F5D2" }, { "Typeface name": "Webdings", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128467", "Unicode hex": "1F5D3" }, { "Typeface name": "Webdings", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "128366", "Unicode hex": "1F56E" }, { "Typeface name": "Webdings", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "128218", "Unicode hex": "1F4DA" }, { "Typeface name": "Webdings", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128478", "Unicode hex": "1F5DE" }, { "Typeface name": "Webdings", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128479", "Unicode hex": "1F5DF" }, { "Typeface name": "Webdings", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "128451", "Unicode hex": "1F5C3" }, { "Typeface name": "Webdings", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128450", "Unicode hex": "1F5C2" }, { "Typeface name": "Webdings", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "128444", "Unicode hex": "1F5BC" }, { "Typeface name": "Webdings", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "127917", "Unicode hex": "1F3AD" }, { "Typeface name": "Webdings", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "127900", "Unicode hex": "1F39C" }, { "Typeface name": "Webdings", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "127896", "Unicode hex": "1F398" }, { "Typeface name": "Webdings", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "127897", "Unicode hex": "1F399" }, { "Typeface name": "Webdings", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "127911", "Unicode hex": "1F3A7" }, { "Typeface name": "Webdings", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "128191", "Unicode hex": "1F4BF" }, { "Typeface name": "Webdings", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "127902", "Unicode hex": "1F39E" }, { "Typeface name": "Webdings", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "128247", "Unicode hex": "1F4F7" }, { "Typeface name": "Webdings", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "127903", "Unicode hex": "1F39F" }, { "Typeface name": "Webdings", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "127916", "Unicode hex": "1F3AC" }, { "Typeface name": "Webdings", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "128253", "Unicode hex": "1F4FD" }, { "Typeface name": "Webdings", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128249", "Unicode hex": "1F4F9" }, { "Typeface name": "Webdings", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "128254", "Unicode hex": "1F4FE" }, { "Typeface name": "Webdings", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "128251", "Unicode hex": "1F4FB" }, { "Typeface name": "Webdings", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "127898", "Unicode hex": "1F39A" }, { "Typeface name": "Webdings", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "127899", "Unicode hex": "1F39B" }, { "Typeface name": "Webdings", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "128250", "Unicode hex": "1F4FA" }, { "Typeface name": "Webdings", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "128187", "Unicode hex": "1F4BB" }, { "Typeface name": "Webdings", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "128421", "Unicode hex": "1F5A5" }, { "Typeface name": "Webdings", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "128422", "Unicode hex": "1F5A6" }, { "Typeface name": "Webdings", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "128423", "Unicode hex": "1F5A7" }, { "Typeface name": "Webdings", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "128377", "Unicode hex": "1F579" }, { "Typeface name": "Webdings", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "127918", "Unicode hex": "1F3AE" }, { "Typeface name": "Webdings", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "128379", "Unicode hex": "1F57B" }, { "Typeface name": "Webdings", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "128380", "Unicode hex": "1F57C" }, { "Typeface name": "Webdings", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "128223", "Unicode hex": "1F4DF" }, { "Typeface name": "Webdings", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "128385", "Unicode hex": "1F581" }, { "Typeface name": "Webdings", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "128384", "Unicode hex": "1F580" }, { "Typeface name": "Webdings", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "128424", "Unicode hex": "1F5A8" }, { "Typeface name": "Webdings", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128425", "Unicode hex": "1F5A9" }, { "Typeface name": "Webdings", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128447", "Unicode hex": "1F5BF" }, { "Typeface name": "Webdings", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128426", "Unicode hex": "1F5AA" }, { "Typeface name": "Webdings", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128476", "Unicode hex": "1F5DC" }, { "Typeface name": "Webdings", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128274", "Unicode hex": "1F512" }, { "Typeface name": "Webdings", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128275", "Unicode hex": "1F513" }, { "Typeface name": "Webdings", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128477", "Unicode hex": "1F5DD" }, { "Typeface name": "Webdings", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128229", "Unicode hex": "1F4E5" }, { "Typeface name": "Webdings", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128228", "Unicode hex": "1F4E4" }, { "Typeface name": "Webdings", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128371", "Unicode hex": "1F573" }, { "Typeface name": "Webdings", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "127779", "Unicode hex": "1F323" }, { "Typeface name": "Webdings", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "127780", "Unicode hex": "1F324" }, { "Typeface name": "Webdings", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "127781", "Unicode hex": "1F325" }, { "Typeface name": "Webdings", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "127782", "Unicode hex": "1F326" }, { "Typeface name": "Webdings", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "9729", "Unicode hex": "2601" }, { "Typeface name": "Webdings", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "127784", "Unicode hex": "1F328" }, { "Typeface name": "Webdings", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "127783", "Unicode hex": "1F327" }, { "Typeface name": "Webdings", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "127785", "Unicode hex": "1F329" }, { "Typeface name": "Webdings", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "127786", "Unicode hex": "1F32A" }, { "Typeface name": "Webdings", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "127788", "Unicode hex": "1F32C" }, { "Typeface name": "Webdings", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "127787", "Unicode hex": "1F32B" }, { "Typeface name": "Webdings", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "127772", "Unicode hex": "1F31C" }, { "Typeface name": "Webdings", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "127777", "Unicode hex": "1F321" }, { "Typeface name": "Webdings", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "128715", "Unicode hex": "1F6CB" }, { "Typeface name": "Webdings", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "128719", "Unicode hex": "1F6CF" }, { "Typeface name": "Webdings", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "127869", "Unicode hex": "1F37D" }, { "Typeface name": "Webdings", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "127864", "Unicode hex": "1F378" }, { "Typeface name": "Webdings", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "128718", "Unicode hex": "1F6CE" }, { "Typeface name": "Webdings", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "128717", "Unicode hex": "1F6CD" }, { "Typeface name": "Webdings", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "9413", "Unicode hex": "24C5" }, { "Typeface name": "Webdings", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "9855", "Unicode hex": "267F" }, { "Typeface name": "Webdings", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "128710", "Unicode hex": "1F6C6" }, { "Typeface name": "Webdings", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "128392", "Unicode hex": "1F588" }, { "Typeface name": "Webdings", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "127891", "Unicode hex": "1F393" }, { "Typeface name": "Webdings", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "128484", "Unicode hex": "1F5E4" }, { "Typeface name": "Webdings", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "128485", "Unicode hex": "1F5E5" }, { "Typeface name": "Webdings", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "128486", "Unicode hex": "1F5E6" }, { "Typeface name": "Webdings", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "128487", "Unicode hex": "1F5E7" }, { "Typeface name": "Webdings", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "128746", "Unicode hex": "1F6EA" }, { "Typeface name": "Webdings", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "128063", "Unicode hex": "1F43F" }, { "Typeface name": "Webdings", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "128038", "Unicode hex": "1F426" }, { "Typeface name": "Webdings", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "128031", "Unicode hex": "1F41F" }, { "Typeface name": "Webdings", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "128021", "Unicode hex": "1F415" }, { "Typeface name": "Webdings", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "128008", "Unicode hex": "1F408" }, { "Typeface name": "Webdings", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "128620", "Unicode hex": "1F66C" }, { "Typeface name": "Webdings", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "128622", "Unicode hex": "1F66E" }, { "Typeface name": "Webdings", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "128621", "Unicode hex": "1F66D" }, { "Typeface name": "Webdings", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "128623", "Unicode hex": "1F66F" }, { "Typeface name": "Webdings", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "128506", "Unicode hex": "1F5FA" }, { "Typeface name": "Webdings", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "127757", "Unicode hex": "1F30D" }, { "Typeface name": "Webdings", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "127759", "Unicode hex": "1F30F" }, { "Typeface name": "Webdings", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "127758", "Unicode hex": "1F30E" }, { "Typeface name": "Webdings", "Dingbat dec": "255", "Dingbat hex": "FF", "Unicode dec": "128330", "Unicode hex": "1F54A" }, { "Typeface name": "Wingdings", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128393", "Unicode hex": "1F589" }, { "Typeface name": "Wingdings", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "9986", "Unicode hex": "2702" }, { "Typeface name": "Wingdings", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "9985", "Unicode hex": "2701" }, { "Typeface name": "Wingdings", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128083", "Unicode hex": "1F453" }, { "Typeface name": "Wingdings", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "128365", "Unicode hex": "1F56D" }, { "Typeface name": "Wingdings", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "128366", "Unicode hex": "1F56E" }, { "Typeface name": "Wingdings", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128367", "Unicode hex": "1F56F" }, { "Typeface name": "Wingdings", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128383", "Unicode hex": "1F57F" }, { "Typeface name": "Wingdings", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "9990", "Unicode hex": "2706" }, { "Typeface name": "Wingdings", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128386", "Unicode hex": "1F582" }, { "Typeface name": "Wingdings", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128387", "Unicode hex": "1F583" }, { "Typeface name": "Wingdings", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "128234", "Unicode hex": "1F4EA" }, { "Typeface name": "Wingdings", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "128235", "Unicode hex": "1F4EB" }, { "Typeface name": "Wingdings", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128236", "Unicode hex": "1F4EC" }, { "Typeface name": "Wingdings", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128237", "Unicode hex": "1F4ED" }, { "Typeface name": "Wingdings", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128448", "Unicode hex": "1F5C0" }, { "Typeface name": "Wingdings", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128449", "Unicode hex": "1F5C1" }, { "Typeface name": "Wingdings", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "128462", "Unicode hex": "1F5CE" }, { "Typeface name": "Wingdings", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "128463", "Unicode hex": "1F5CF" }, { "Typeface name": "Wingdings", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "128464", "Unicode hex": "1F5D0" }, { "Typeface name": "Wingdings", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "128452", "Unicode hex": "1F5C4" }, { "Typeface name": "Wingdings", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "8987", "Unicode hex": "231B" }, { "Typeface name": "Wingdings", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "128430", "Unicode hex": "1F5AE" }, { "Typeface name": "Wingdings", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "128432", "Unicode hex": "1F5B0" }, { "Typeface name": "Wingdings", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "128434", "Unicode hex": "1F5B2" }, { "Typeface name": "Wingdings", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "128435", "Unicode hex": "1F5B3" }, { "Typeface name": "Wingdings", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "128436", "Unicode hex": "1F5B4" }, { "Typeface name": "Wingdings", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "128427", "Unicode hex": "1F5AB" }, { "Typeface name": "Wingdings", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "128428", "Unicode hex": "1F5AC" }, { "Typeface name": "Wingdings", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "9991", "Unicode hex": "2707" }, { "Typeface name": "Wingdings", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "9997", "Unicode hex": "270D" }, { "Typeface name": "Wingdings", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128398", "Unicode hex": "1F58E" }, { "Typeface name": "Wingdings", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "9996", "Unicode hex": "270C" }, { "Typeface name": "Wingdings", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "128399", "Unicode hex": "1F58F" }, { "Typeface name": "Wingdings", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "128077", "Unicode hex": "1F44D" }, { "Typeface name": "Wingdings", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "128078", "Unicode hex": "1F44E" }, { "Typeface name": "Wingdings", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "9756", "Unicode hex": "261C" }, { "Typeface name": "Wingdings", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "9758", "Unicode hex": "261E" }, { "Typeface name": "Wingdings", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "9757", "Unicode hex": "261D" }, { "Typeface name": "Wingdings", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "9759", "Unicode hex": "261F" }, { "Typeface name": "Wingdings", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "128400", "Unicode hex": "1F590" }, { "Typeface name": "Wingdings", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "9786", "Unicode hex": "263A" }, { "Typeface name": "Wingdings", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128528", "Unicode hex": "1F610" }, { "Typeface name": "Wingdings", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "9785", "Unicode hex": "2639" }, { "Typeface name": "Wingdings", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "128163", "Unicode hex": "1F4A3" }, { "Typeface name": "Wingdings", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128369", "Unicode hex": "1F571" }, { "Typeface name": "Wingdings", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "127987", "Unicode hex": "1F3F3" }, { "Typeface name": "Wingdings", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "127985", "Unicode hex": "1F3F1" }, { "Typeface name": "Wingdings", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "9992", "Unicode hex": "2708" }, { "Typeface name": "Wingdings", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9788", "Unicode hex": "263C" }, { "Typeface name": "Wingdings", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "127778", "Unicode hex": "1F322" }, { "Typeface name": "Wingdings", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "10052", "Unicode hex": "2744" }, { "Typeface name": "Wingdings", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "128326", "Unicode hex": "1F546" }, { "Typeface name": "Wingdings", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "10014", "Unicode hex": "271E" }, { "Typeface name": "Wingdings", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128328", "Unicode hex": "1F548" }, { "Typeface name": "Wingdings", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "10016", "Unicode hex": "2720" }, { "Typeface name": "Wingdings", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "10017", "Unicode hex": "2721" }, { "Typeface name": "Wingdings", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "9770", "Unicode hex": "262A" }, { "Typeface name": "Wingdings", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "9775", "Unicode hex": "262F" }, { "Typeface name": "Wingdings", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128329", "Unicode hex": "1F549" }, { "Typeface name": "Wingdings", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "9784", "Unicode hex": "2638" }, { "Typeface name": "Wingdings", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "9800", "Unicode hex": "2648" }, { "Typeface name": "Wingdings", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "9801", "Unicode hex": "2649" }, { "Typeface name": "Wingdings", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "9802", "Unicode hex": "264A" }, { "Typeface name": "Wingdings", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "9803", "Unicode hex": "264B" }, { "Typeface name": "Wingdings", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "9804", "Unicode hex": "264C" }, { "Typeface name": "Wingdings", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "9805", "Unicode hex": "264D" }, { "Typeface name": "Wingdings", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "9806", "Unicode hex": "264E" }, { "Typeface name": "Wingdings", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "9807", "Unicode hex": "264F" }, { "Typeface name": "Wingdings", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "9808", "Unicode hex": "2650" }, { "Typeface name": "Wingdings", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "9809", "Unicode hex": "2651" }, { "Typeface name": "Wingdings", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "9810", "Unicode hex": "2652" }, { "Typeface name": "Wingdings", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "9811", "Unicode hex": "2653" }, { "Typeface name": "Wingdings", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "128624", "Unicode hex": "1F670" }, { "Typeface name": "Wingdings", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "128629", "Unicode hex": "1F675" }, { "Typeface name": "Wingdings", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "9899", "Unicode hex": "26AB" }, { "Typeface name": "Wingdings", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "128318", "Unicode hex": "1F53E" }, { "Typeface name": "Wingdings", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "9724", "Unicode hex": "25FC" }, { "Typeface name": "Wingdings", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "128911", "Unicode hex": "1F78F" }, { "Typeface name": "Wingdings", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "128912", "Unicode hex": "1F790" }, { "Typeface name": "Wingdings", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "10065", "Unicode hex": "2751" }, { "Typeface name": "Wingdings", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "10066", "Unicode hex": "2752" }, { "Typeface name": "Wingdings", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "128927", "Unicode hex": "1F79F" }, { "Typeface name": "Wingdings", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "10731", "Unicode hex": "29EB" }, { "Typeface name": "Wingdings", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "9670", "Unicode hex": "25C6" }, { "Typeface name": "Wingdings", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "10070", "Unicode hex": "2756" }, { "Typeface name": "Wingdings", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "11049", "Unicode hex": "2B29" }, { "Typeface name": "Wingdings", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "8999", "Unicode hex": "2327" }, { "Typeface name": "Wingdings", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "11193", "Unicode hex": "2BB9" }, { "Typeface name": "Wingdings", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "8984", "Unicode hex": "2318" }, { "Typeface name": "Wingdings", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "127989", "Unicode hex": "1F3F5" }, { "Typeface name": "Wingdings", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "127990", "Unicode hex": "1F3F6" }, { "Typeface name": "Wingdings", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128630", "Unicode hex": "1F676" }, { "Typeface name": "Wingdings", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128631", "Unicode hex": "1F677" }, { "Typeface name": "Wingdings", "Dingbat dec": "127", "Dingbat hex": "7F", "Unicode dec": "9647", "Unicode hex": "25AF" }, { "Typeface name": "Wingdings", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "127243", "Unicode hex": "1F10B" }, { "Typeface name": "Wingdings", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "10112", "Unicode hex": "2780" }, { "Typeface name": "Wingdings", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "10113", "Unicode hex": "2781" }, { "Typeface name": "Wingdings", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "10114", "Unicode hex": "2782" }, { "Typeface name": "Wingdings", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "10115", "Unicode hex": "2783" }, { "Typeface name": "Wingdings", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "10116", "Unicode hex": "2784" }, { "Typeface name": "Wingdings", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "10117", "Unicode hex": "2785" }, { "Typeface name": "Wingdings", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "10118", "Unicode hex": "2786" }, { "Typeface name": "Wingdings", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "10119", "Unicode hex": "2787" }, { "Typeface name": "Wingdings", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "10120", "Unicode hex": "2788" }, { "Typeface name": "Wingdings", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "10121", "Unicode hex": "2789" }, { "Typeface name": "Wingdings", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "127244", "Unicode hex": "1F10C" }, { "Typeface name": "Wingdings", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "10122", "Unicode hex": "278A" }, { "Typeface name": "Wingdings", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "10123", "Unicode hex": "278B" }, { "Typeface name": "Wingdings", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "10124", "Unicode hex": "278C" }, { - "Typeface name": "Wingdings", - "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "10125", "Unicode hex": "278D" - }, { "Typeface name": "Wingdings", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "10126", "Unicode hex": "278E" }, { "Typeface name": "Wingdings", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "10127", "Unicode hex": "278F" }, { "Typeface name": "Wingdings", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "10128", "Unicode hex": "2790" }, { "Typeface name": "Wingdings", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "10129", "Unicode hex": "2791" }, { "Typeface name": "Wingdings", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "10130", "Unicode hex": "2792" }, { "Typeface name": "Wingdings", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "10131", "Unicode hex": "2793" }, { "Typeface name": "Wingdings", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128610", "Unicode hex": "1F662" }, { "Typeface name": "Wingdings", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "128608", "Unicode hex": "1F660" }, { "Typeface name": "Wingdings", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "128609", "Unicode hex": "1F661" }, { "Typeface name": "Wingdings", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "128611", "Unicode hex": "1F663" }, { "Typeface name": "Wingdings", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128606", "Unicode hex": "1F65E" }, { "Typeface name": "Wingdings", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128604", "Unicode hex": "1F65C" }, { "Typeface name": "Wingdings", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128605", "Unicode hex": "1F65D" }, { "Typeface name": "Wingdings", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "128607", "Unicode hex": "1F65F" }, { "Typeface name": "Wingdings", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "8729", "Unicode hex": "2219" }, { "Typeface name": "Wingdings", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "8226", "Unicode hex": "2022" }, { "Typeface name": "Wingdings", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "11037", "Unicode hex": "2B1D" }, { "Typeface name": "Wingdings", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "11096", "Unicode hex": "2B58" }, { "Typeface name": "Wingdings", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "128902", "Unicode hex": "1F786" }, { "Typeface name": "Wingdings", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "128904", "Unicode hex": "1F788" }, { "Typeface name": "Wingdings", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128906", "Unicode hex": "1F78A" }, { "Typeface name": "Wingdings", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128907", "Unicode hex": "1F78B" }, { "Typeface name": "Wingdings", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128319", "Unicode hex": "1F53F" }, { "Typeface name": "Wingdings", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "9642", "Unicode hex": "25AA" }, { "Typeface name": "Wingdings", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "128910", "Unicode hex": "1F78E" }, { "Typeface name": "Wingdings", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128961", "Unicode hex": "1F7C1" }, { "Typeface name": "Wingdings", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128965", "Unicode hex": "1F7C5" }, { "Typeface name": "Wingdings", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "9733", "Unicode hex": "2605" }, { "Typeface name": "Wingdings", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128971", "Unicode hex": "1F7CB" }, { "Typeface name": "Wingdings", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "128975", "Unicode hex": "1F7CF" }, { "Typeface name": "Wingdings", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "128979", "Unicode hex": "1F7D3" }, { "Typeface name": "Wingdings", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "128977", "Unicode hex": "1F7D1" }, { "Typeface name": "Wingdings", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "11216", "Unicode hex": "2BD0" }, { "Typeface name": "Wingdings", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "8982", "Unicode hex": "2316" }, { "Typeface name": "Wingdings", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "11214", "Unicode hex": "2BCE" }, { "Typeface name": "Wingdings", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "11215", "Unicode hex": "2BCF" }, { "Typeface name": "Wingdings", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "11217", "Unicode hex": "2BD1" }, { "Typeface name": "Wingdings", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "10026", "Unicode hex": "272A" }, { "Typeface name": "Wingdings", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "10032", "Unicode hex": "2730" }, { "Typeface name": "Wingdings", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "128336", "Unicode hex": "1F550" }, { "Typeface name": "Wingdings", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "128337", "Unicode hex": "1F551" }, { "Typeface name": "Wingdings", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128338", "Unicode hex": "1F552" }, { "Typeface name": "Wingdings", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "128339", "Unicode hex": "1F553" }, { "Typeface name": "Wingdings", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "128340", "Unicode hex": "1F554" }, { "Typeface name": "Wingdings", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "128341", "Unicode hex": "1F555" }, { "Typeface name": "Wingdings", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "128342", "Unicode hex": "1F556" }, { "Typeface name": "Wingdings", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "128343", "Unicode hex": "1F557" }, { "Typeface name": "Wingdings", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "128344", "Unicode hex": "1F558" }, { "Typeface name": "Wingdings", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "128345", "Unicode hex": "1F559" }, { "Typeface name": "Wingdings", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "128346", "Unicode hex": "1F55A" }, { "Typeface name": "Wingdings", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "128347", "Unicode hex": "1F55B" }, { "Typeface name": "Wingdings", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "11184", "Unicode hex": "2BB0" }, { "Typeface name": "Wingdings", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "11185", "Unicode hex": "2BB1" }, { "Typeface name": "Wingdings", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "11186", "Unicode hex": "2BB2" }, { "Typeface name": "Wingdings", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "11187", "Unicode hex": "2BB3" }, { "Typeface name": "Wingdings", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "11188", "Unicode hex": "2BB4" }, { "Typeface name": "Wingdings", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "11189", "Unicode hex": "2BB5" }, { "Typeface name": "Wingdings", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "11190", "Unicode hex": "2BB6" }, { "Typeface name": "Wingdings", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "11191", "Unicode hex": "2BB7" }, { "Typeface name": "Wingdings", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128618", "Unicode hex": "1F66A" }, { "Typeface name": "Wingdings", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128619", "Unicode hex": "1F66B" }, { "Typeface name": "Wingdings", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128597", "Unicode hex": "1F655" }, { "Typeface name": "Wingdings", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128596", "Unicode hex": "1F654" }, { "Typeface name": "Wingdings", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128599", "Unicode hex": "1F657" }, { "Typeface name": "Wingdings", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128598", "Unicode hex": "1F656" }, { "Typeface name": "Wingdings", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128592", "Unicode hex": "1F650" }, { "Typeface name": "Wingdings", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128593", "Unicode hex": "1F651" }, { "Typeface name": "Wingdings", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128594", "Unicode hex": "1F652" }, { "Typeface name": "Wingdings", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128595", "Unicode hex": "1F653" }, { "Typeface name": "Wingdings", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "9003", "Unicode hex": "232B" }, { "Typeface name": "Wingdings", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "8998", "Unicode hex": "2326" }, { "Typeface name": "Wingdings", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "11160", "Unicode hex": "2B98" }, { "Typeface name": "Wingdings", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "11162", "Unicode hex": "2B9A" }, { "Typeface name": "Wingdings", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "11161", "Unicode hex": "2B99" }, { "Typeface name": "Wingdings", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "11163", "Unicode hex": "2B9B" }, { "Typeface name": "Wingdings", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "11144", "Unicode hex": "2B88" }, { "Typeface name": "Wingdings", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "11146", "Unicode hex": "2B8A" }, { "Typeface name": "Wingdings", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "11145", "Unicode hex": "2B89" }, { "Typeface name": "Wingdings", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "11147", "Unicode hex": "2B8B" }, { "Typeface name": "Wingdings", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "129128", "Unicode hex": "1F868" }, { "Typeface name": "Wingdings", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "129130", "Unicode hex": "1F86A" }, { "Typeface name": "Wingdings", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "129129", "Unicode hex": "1F869" }, { "Typeface name": "Wingdings", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "129131", "Unicode hex": "1F86B" }, { "Typeface name": "Wingdings", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "129132", "Unicode hex": "1F86C" }, { "Typeface name": "Wingdings", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "129133", "Unicode hex": "1F86D" }, { "Typeface name": "Wingdings", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "129135", "Unicode hex": "1F86F" }, { "Typeface name": "Wingdings", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "129134", "Unicode hex": "1F86E" }, { "Typeface name": "Wingdings", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "129144", "Unicode hex": "1F878" }, { "Typeface name": "Wingdings", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "129146", "Unicode hex": "1F87A" }, { "Typeface name": "Wingdings", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "129145", "Unicode hex": "1F879" }, { "Typeface name": "Wingdings", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "129147", "Unicode hex": "1F87B" }, { "Typeface name": "Wingdings", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "129148", "Unicode hex": "1F87C" }, { "Typeface name": "Wingdings", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "129149", "Unicode hex": "1F87D" }, { "Typeface name": "Wingdings", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "129151", "Unicode hex": "1F87F" }, { "Typeface name": "Wingdings", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "129150", "Unicode hex": "1F87E" }, { "Typeface name": "Wingdings", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "8678", "Unicode hex": "21E6" }, { "Typeface name": "Wingdings", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "8680", "Unicode hex": "21E8" }, { "Typeface name": "Wingdings", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "8679", "Unicode hex": "21E7" }, { "Typeface name": "Wingdings", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "8681", "Unicode hex": "21E9" }, { "Typeface name": "Wingdings", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "11012", "Unicode hex": "2B04" }, { "Typeface name": "Wingdings", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "8691", "Unicode hex": "21F3" }, { "Typeface name": "Wingdings", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "11009", "Unicode hex": "2B01" }, { "Typeface name": "Wingdings", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "11008", "Unicode hex": "2B00" }, { "Typeface name": "Wingdings", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "11011", "Unicode hex": "2B03" }, { "Typeface name": "Wingdings", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "11010", "Unicode hex": "2B02" }, { "Typeface name": "Wingdings", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "129196", "Unicode hex": "1F8AC" }, { "Typeface name": "Wingdings", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "129197", "Unicode hex": "1F8AD" }, { "Typeface name": "Wingdings", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "128502", "Unicode hex": "1F5F6" }, { "Typeface name": "Wingdings", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "10003", "Unicode hex": "2713" }, { "Typeface name": "Wingdings", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "128503", "Unicode hex": "1F5F7" }, { "Typeface name": "Wingdings", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "128505", "Unicode hex": "1F5F9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128394", "Unicode hex": "1F58A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "128395", "Unicode hex": "1F58B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "128396", "Unicode hex": "1F58C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128397", "Unicode hex": "1F58D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "9988", "Unicode hex": "2704" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "9984", "Unicode hex": "2700" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128382", "Unicode hex": "1F57E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128381", "Unicode hex": "1F57D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "128453", "Unicode hex": "1F5C5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128454", "Unicode hex": "1F5C6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128455", "Unicode hex": "1F5C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "128456", "Unicode hex": "1F5C8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "128457", "Unicode hex": "1F5C9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128458", "Unicode hex": "1F5CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128459", "Unicode hex": "1F5CB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128460", "Unicode hex": "1F5CC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128461", "Unicode hex": "1F5CD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "128203", "Unicode hex": "1F4CB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "128465", "Unicode hex": "1F5D1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "128468", "Unicode hex": "1F5D4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "128437", "Unicode hex": "1F5B5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "128438", "Unicode hex": "1F5B6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "128439", "Unicode hex": "1F5B7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "128440", "Unicode hex": "1F5B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "128429", "Unicode hex": "1F5AD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "128431", "Unicode hex": "1F5AF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "128433", "Unicode hex": "1F5B1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "128402", "Unicode hex": "1F592" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "128403", "Unicode hex": "1F593" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "128408", "Unicode hex": "1F598" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "128409", "Unicode hex": "1F599" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128410", "Unicode hex": "1F59A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "128411", "Unicode hex": "1F59B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "128072", "Unicode hex": "1F448" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "128073", "Unicode hex": "1F449" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "128412", "Unicode hex": "1F59C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "128413", "Unicode hex": "1F59D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "128414", "Unicode hex": "1F59E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "128415", "Unicode hex": "1F59F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "128416", "Unicode hex": "1F5A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "128417", "Unicode hex": "1F5A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "128070", "Unicode hex": "1F446" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128071", "Unicode hex": "1F447" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "128418", "Unicode hex": "1F5A2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "128419", "Unicode hex": "1F5A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128401", "Unicode hex": "1F591" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "128500", "Unicode hex": "1F5F4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "128504", "Unicode hex": "1F5F8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "128501", "Unicode hex": "1F5F5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9745", "Unicode hex": "2611" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "11197", "Unicode hex": "2BBD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "9746", "Unicode hex": "2612" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "11198", "Unicode hex": "2BBE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "11199", "Unicode hex": "2BBF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128711", "Unicode hex": "1F6C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "10680", "Unicode hex": "29B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "128625", "Unicode hex": "1F671" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "128628", "Unicode hex": "1F674" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "128626", "Unicode hex": "1F672" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128627", "Unicode hex": "1F673" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "8253", "Unicode hex": "203D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "128633", "Unicode hex": "1F679" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "128634", "Unicode hex": "1F67A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "128635", "Unicode hex": "1F67B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "128614", "Unicode hex": "1F666" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "128612", "Unicode hex": "1F664" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "128613", "Unicode hex": "1F665" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "128615", "Unicode hex": "1F667" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "128602", "Unicode hex": "1F65A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "128600", "Unicode hex": "1F658" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "128601", "Unicode hex": "1F659" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "128603", "Unicode hex": "1F65B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "9450", "Unicode hex": "24EA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "9312", "Unicode hex": "2460" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "9313", "Unicode hex": "2461" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "9314", "Unicode hex": "2462" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "9315", "Unicode hex": "2463" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "9316", "Unicode hex": "2464" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "9317", "Unicode hex": "2465" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "9318", "Unicode hex": "2466" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "9319", "Unicode hex": "2467" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "9320", "Unicode hex": "2468" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "9321", "Unicode hex": "2469" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "9471", "Unicode hex": "24FF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "10102", "Unicode hex": "2776" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "10103", "Unicode hex": "2777" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "10104", "Unicode hex": "2778" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "10105", "Unicode hex": "2779" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "10106", "Unicode hex": "277A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "10107", "Unicode hex": "277B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "10108", "Unicode hex": "277C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "10109", "Unicode hex": "277D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "10110", "Unicode hex": "277E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "10111", "Unicode hex": "277F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "9737", "Unicode hex": "2609" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "127765", "Unicode hex": "1F315" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "9789", "Unicode hex": "263D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "9790", "Unicode hex": "263E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "11839", "Unicode hex": "2E3F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "10013", "Unicode hex": "271D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "128327", "Unicode hex": "1F547" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "128348", "Unicode hex": "1F55C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "128349", "Unicode hex": "1F55D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "128350", "Unicode hex": "1F55E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "128351", "Unicode hex": "1F55F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "128352", "Unicode hex": "1F560" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "128353", "Unicode hex": "1F561" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "128354", "Unicode hex": "1F562" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "128355", "Unicode hex": "1F563" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "128356", "Unicode hex": "1F564" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "128357", "Unicode hex": "1F565" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "128358", "Unicode hex": "1F566" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "128359", "Unicode hex": "1F567" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "128616", "Unicode hex": "1F668" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "128617", "Unicode hex": "1F669" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "8901", "Unicode hex": "22C5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128900", "Unicode hex": "1F784" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "10625", "Unicode hex": "2981" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "9679", "Unicode hex": "25CF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "9675", "Unicode hex": "25CB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128901", "Unicode hex": "1F785" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128903", "Unicode hex": "1F787" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128905", "Unicode hex": "1F789" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "8857", "Unicode hex": "2299" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "10687", "Unicode hex": "29BF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "128908", "Unicode hex": "1F78C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "128909", "Unicode hex": "1F78D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "9726", "Unicode hex": "25FE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "9632", "Unicode hex": "25A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "9633", "Unicode hex": "25A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128913", "Unicode hex": "1F791" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128914", "Unicode hex": "1F792" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128915", "Unicode hex": "1F793" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "128916", "Unicode hex": "1F794" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "9635", "Unicode hex": "25A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128917", "Unicode hex": "1F795" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128918", "Unicode hex": "1F796" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "128919", "Unicode hex": "1F797" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128920", "Unicode hex": "1F798" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "11049", "Unicode hex": "2B29" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "11045", "Unicode hex": "2B25" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "9671", "Unicode hex": "25C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "128922", "Unicode hex": "1F79A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "9672", "Unicode hex": "25C8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "128923", "Unicode hex": "1F79B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "128924", "Unicode hex": "1F79C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "128925", "Unicode hex": "1F79D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "128926", "Unicode hex": "1F79E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "11050", "Unicode hex": "2B2A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "11047", "Unicode hex": "2B27" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "9674", "Unicode hex": "25CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128928", "Unicode hex": "1F7A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "9686", "Unicode hex": "25D6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "9687", "Unicode hex": "25D7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "11210", "Unicode hex": "2BCA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "11211", "Unicode hex": "2BCB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "11200", "Unicode hex": "2BC0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "11201", "Unicode hex": "2BC1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "11039", "Unicode hex": "2B1F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "11202", "Unicode hex": "2BC2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "11043", "Unicode hex": "2B23" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "11042", "Unicode hex": "2B22" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "11203", "Unicode hex": "2BC3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "11204", "Unicode hex": "2BC4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "128929", "Unicode hex": "1F7A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "128930", "Unicode hex": "1F7A2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "128931", "Unicode hex": "1F7A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "128932", "Unicode hex": "1F7A4" }, { - "Typeface name": "Wingdings 2", - "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "128933", "Unicode hex": "1F7A5" - }, { "Typeface name": "Wingdings 2", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128934", "Unicode hex": "1F7A6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128935", "Unicode hex": "1F7A7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128936", "Unicode hex": "1F7A8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128937", "Unicode hex": "1F7A9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128938", "Unicode hex": "1F7AA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128939", "Unicode hex": "1F7AB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128940", "Unicode hex": "1F7AC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128941", "Unicode hex": "1F7AD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128942", "Unicode hex": "1F7AE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128943", "Unicode hex": "1F7AF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "128944", "Unicode hex": "1F7B0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "128945", "Unicode hex": "1F7B1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "128946", "Unicode hex": "1F7B2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "128947", "Unicode hex": "1F7B3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "128948", "Unicode hex": "1F7B4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "128949", "Unicode hex": "1F7B5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "128950", "Unicode hex": "1F7B6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "128951", "Unicode hex": "1F7B7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "128952", "Unicode hex": "1F7B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "128953", "Unicode hex": "1F7B9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "128954", "Unicode hex": "1F7BA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "128955", "Unicode hex": "1F7BB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "128956", "Unicode hex": "1F7BC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "128957", "Unicode hex": "1F7BD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "128958", "Unicode hex": "1F7BE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "128959", "Unicode hex": "1F7BF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "128960", "Unicode hex": "1F7C0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "128962", "Unicode hex": "1F7C2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "128964", "Unicode hex": "1F7C4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "128966", "Unicode hex": "1F7C6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "128969", "Unicode hex": "1F7C9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "128970", "Unicode hex": "1F7CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "10038", "Unicode hex": "2736" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "128972", "Unicode hex": "1F7CC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "128974", "Unicode hex": "1F7CE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "128976", "Unicode hex": "1F7D0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "128978", "Unicode hex": "1F7D2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "10041", "Unicode hex": "2739" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "128963", "Unicode hex": "1F7C3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "128967", "Unicode hex": "1F7C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "10031", "Unicode hex": "272F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "128973", "Unicode hex": "1F7CD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "128980", "Unicode hex": "1F7D4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "11212", "Unicode hex": "2BCC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "11213", "Unicode hex": "2BCD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "8251", "Unicode hex": "203B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "8258", "Unicode hex": "2042" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "11104", "Unicode hex": "2B60" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "11106", "Unicode hex": "2B62" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "11105", "Unicode hex": "2B61" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "11107", "Unicode hex": "2B63" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "11110", "Unicode hex": "2B66" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "11111", "Unicode hex": "2B67" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "11113", "Unicode hex": "2B69" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "11112", "Unicode hex": "2B68" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "11120", "Unicode hex": "2B70" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "11122", "Unicode hex": "2B72" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "11121", "Unicode hex": "2B71" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "11123", "Unicode hex": "2B73" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "11126", "Unicode hex": "2B76" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "11128", "Unicode hex": "2B78" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "11131", "Unicode hex": "2B7B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "11133", "Unicode hex": "2B7D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "11108", "Unicode hex": "2B64" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "11109", "Unicode hex": "2B65" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "11114", "Unicode hex": "2B6A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "11116", "Unicode hex": "2B6C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "11115", "Unicode hex": "2B6B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "11117", "Unicode hex": "2B6D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "11085", "Unicode hex": "2B4D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "11168", "Unicode hex": "2BA0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "11169", "Unicode hex": "2BA1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "11170", "Unicode hex": "2BA2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "11171", "Unicode hex": "2BA3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "11172", "Unicode hex": "2BA4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "11173", "Unicode hex": "2BA5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "11174", "Unicode hex": "2BA6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "11175", "Unicode hex": "2BA7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "11152", "Unicode hex": "2B90" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "11153", "Unicode hex": "2B91" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "11154", "Unicode hex": "2B92" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "11155", "Unicode hex": "2B93" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "11136", "Unicode hex": "2B80" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "11139", "Unicode hex": "2B83" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "11134", "Unicode hex": "2B7E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "11135", "Unicode hex": "2B7F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "11140", "Unicode hex": "2B84" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "11142", "Unicode hex": "2B86" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "11141", "Unicode hex": "2B85" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "11143", "Unicode hex": "2B87" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "11151", "Unicode hex": "2B8F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "11149", "Unicode hex": "2B8D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "11150", "Unicode hex": "2B8E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "11148", "Unicode hex": "2B8C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "11118", "Unicode hex": "2B6E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "11119", "Unicode hex": "2B6F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9099", "Unicode hex": "238B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "8996", "Unicode hex": "2324" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "8963", "Unicode hex": "2303" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "8997", "Unicode hex": "2325" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "9251", "Unicode hex": "2423" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "9085", "Unicode hex": "237D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "8682", "Unicode hex": "21EA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "11192", "Unicode hex": "2BB8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "129184", "Unicode hex": "1F8A0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "129185", "Unicode hex": "1F8A1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "129186", "Unicode hex": "1F8A2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "129187", "Unicode hex": "1F8A3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "129188", "Unicode hex": "1F8A4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "129189", "Unicode hex": "1F8A5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "129190", "Unicode hex": "1F8A6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "129191", "Unicode hex": "1F8A7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "129192", "Unicode hex": "1F8A8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "129193", "Unicode hex": "1F8A9" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "129194", "Unicode hex": "1F8AA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "129195", "Unicode hex": "1F8AB" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "129104", "Unicode hex": "1F850" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "129106", "Unicode hex": "1F852" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "129105", "Unicode hex": "1F851" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "129107", "Unicode hex": "1F853" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "129108", "Unicode hex": "1F854" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "129109", "Unicode hex": "1F855" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "129111", "Unicode hex": "1F857" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "129110", "Unicode hex": "1F856" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "129112", "Unicode hex": "1F858" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "129113", "Unicode hex": "1F859" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "9650", "Unicode hex": "25B2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "9660", "Unicode hex": "25BC" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "9651", "Unicode hex": "25B3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "9661", "Unicode hex": "25BD" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "9664", "Unicode hex": "25C0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "9654", "Unicode hex": "25B6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "9665", "Unicode hex": "25C1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "9655", "Unicode hex": "25B7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "9699", "Unicode hex": "25E3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "9698", "Unicode hex": "25E2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "9700", "Unicode hex": "25E4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "9701", "Unicode hex": "25E5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "128896", "Unicode hex": "1F780" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128898", "Unicode hex": "1F782" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128897", "Unicode hex": "1F781" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "128899", "Unicode hex": "1F783" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "11205", "Unicode hex": "2BC5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "11206", "Unicode hex": "2BC6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "11207", "Unicode hex": "2BC7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "11208", "Unicode hex": "2BC8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "11164", "Unicode hex": "2B9C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "11166", "Unicode hex": "2B9E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "11165", "Unicode hex": "2B9D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "11167", "Unicode hex": "2B9F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "129040", "Unicode hex": "1F810" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "129042", "Unicode hex": "1F812" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "129041", "Unicode hex": "1F811" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "129043", "Unicode hex": "1F813" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "129044", "Unicode hex": "1F814" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "129046", "Unicode hex": "1F816" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "129045", "Unicode hex": "1F815" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "129047", "Unicode hex": "1F817" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "129048", "Unicode hex": "1F818" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "129050", "Unicode hex": "1F81A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "129049", "Unicode hex": "1F819" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "129051", "Unicode hex": "1F81B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "129052", "Unicode hex": "1F81C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "129054", "Unicode hex": "1F81E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "129053", "Unicode hex": "1F81D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "129055", "Unicode hex": "1F81F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "129024", "Unicode hex": "1F800" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "129026", "Unicode hex": "1F802" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "129025", "Unicode hex": "1F801" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "129027", "Unicode hex": "1F803" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "129028", "Unicode hex": "1F804" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "129030", "Unicode hex": "1F806" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "129029", "Unicode hex": "1F805" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "129031", "Unicode hex": "1F807" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "129032", "Unicode hex": "1F808" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "129034", "Unicode hex": "1F80A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "129033", "Unicode hex": "1F809" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "129035", "Unicode hex": "1F80B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "129056", "Unicode hex": "1F820" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "129058", "Unicode hex": "1F822" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "129060", "Unicode hex": "1F824" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "129062", "Unicode hex": "1F826" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "129064", "Unicode hex": "1F828" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "129066", "Unicode hex": "1F82A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "129068", "Unicode hex": "1F82C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "129180", "Unicode hex": "1F89C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "129181", "Unicode hex": "1F89D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "129182", "Unicode hex": "1F89E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "129183", "Unicode hex": "1F89F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "129070", "Unicode hex": "1F82E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "129072", "Unicode hex": "1F830" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "129074", "Unicode hex": "1F832" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "129076", "Unicode hex": "1F834" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "129078", "Unicode hex": "1F836" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "129080", "Unicode hex": "1F838" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "129082", "Unicode hex": "1F83A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "129081", "Unicode hex": "1F839" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "129083", "Unicode hex": "1F83B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "129176", "Unicode hex": "1F898" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "129178", "Unicode hex": "1F89A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "129177", "Unicode hex": "1F899" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "129179", "Unicode hex": "1F89B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "129084", "Unicode hex": "1F83C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "129086", "Unicode hex": "1F83E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "129085", "Unicode hex": "1F83D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "129087", "Unicode hex": "1F83F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "129088", "Unicode hex": "1F840" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "129090", "Unicode hex": "1F842" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "129089", "Unicode hex": "1F841" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "129091", "Unicode hex": "1F843" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "129092", "Unicode hex": "1F844" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "129094", "Unicode hex": "1F846" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "129093", "Unicode hex": "1F845" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "129095", "Unicode hex": "1F847" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "11176", "Unicode hex": "2BA8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "11177", "Unicode hex": "2BA9" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "11178", "Unicode hex": "2BAA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "11179", "Unicode hex": "2BAB" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "11180", "Unicode hex": "2BAC" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "11181", "Unicode hex": "2BAD" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "11182", "Unicode hex": "2BAE" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "11183", "Unicode hex": "2BAF" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "129120", "Unicode hex": "1F860" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "129122", "Unicode hex": "1F862" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "129121", "Unicode hex": "1F861" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "129123", "Unicode hex": "1F863" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "129124", "Unicode hex": "1F864" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "129125", "Unicode hex": "1F865" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "129127", "Unicode hex": "1F867" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "129126", "Unicode hex": "1F866" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "129136", "Unicode hex": "1F870" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "129138", "Unicode hex": "1F872" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "129137", "Unicode hex": "1F871" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "129139", "Unicode hex": "1F873" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "129140", "Unicode hex": "1F874" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "129141", "Unicode hex": "1F875" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "129143", "Unicode hex": "1F877" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "129142", "Unicode hex": "1F876" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "129152", "Unicode hex": "1F880" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "129154", "Unicode hex": "1F882" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "129153", "Unicode hex": "1F881" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "129155", "Unicode hex": "1F883" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "129156", "Unicode hex": "1F884" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "129157", "Unicode hex": "1F885" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "129159", "Unicode hex": "1F887" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "129158", "Unicode hex": "1F886" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "129168", "Unicode hex": "1F890" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "129170", "Unicode hex": "1F892" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "129169", "Unicode hex": "1F891" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "129171", "Unicode hex": "1F893" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "129172", "Unicode hex": "1F894" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "129174", "Unicode hex": "1F896" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "129173", "Unicode hex": "1F895" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "129175", "Unicode hex": "1F897" }]; exports["default"] = dingbats - }, {}], 85: [function (require, module, exports) { "use strict"; function codePoint(typeface, codePoint) { return dingbatsByCodePoint[typeface.toUpperCase() + "_" + codePoint] } function dec(typeface, dec) { return codePoint(typeface, parseInt(dec, 10)) } function hex(typeface, hex) { return codePoint(typeface, parseInt(hex, 16)) } function fromCodePointPolyfill(codePoint) { if (65535 >= codePoint) return String.fromCharCode(codePoint); var highSurrogate = Math.floor((codePoint - 65536) / 1024) + 55296, lowSurrogate = (codePoint - 65536) % 1024 + 56320; return String.fromCharCode(highSurrogate, lowSurrogate) } var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod } }; Object.defineProperty(exports, "__esModule", { value: !0 }), exports.hex = exports.dec = exports.codePoint = void 0; for (var dingbats_1 = __importDefault(require("./dingbats")), dingbatsByCodePoint = {}, fromCodePoint = String.fromCodePoint ? String.fromCodePoint : fromCodePointPolyfill, _i = 0, dingbats_2 = dingbats_1["default"]; _i < dingbats_2.length; _i++) { var dingbat = dingbats_2[_i], codePoint_1 = parseInt(dingbat["Unicode dec"], 10), scalarValue = { codePoint: codePoint_1, string: fromCodePoint(codePoint_1) }; dingbatsByCodePoint[dingbat["Typeface name"].toUpperCase() + "_" + dingbat["Dingbat dec"]] = scalarValue } exports.codePoint = codePoint, exports.dec = dec, exports.hex = hex }, { "./dingbats": 84 }], 86: [function (require, module, exports) { - exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m, eLen = 8 * nBytes - mLen - 1, eMax = (1 << eLen) - 1, eBias = eMax >> 1, nBits = -7, i = isLE ? nBytes - 1 : 0, d = isLE ? -1 : 1, s = buffer[offset + i]; for (i += d, e = s & (1 << -nBits) - 1, s >>= -nBits, nBits += eLen; nBits > 0; e = 256 * e + buffer[offset + i], i += d, nBits -= 8); for (m = e & (1 << -nBits) - 1, e >>= -nBits, nBits += mLen; nBits > 0; m = 256 * m + buffer[offset + i], i += d, nBits -= 8); if (0 === e) e = 1 - eBias; else { if (e === eMax) return m ? NaN : (s ? -1 : 1) * (1 / 0); m += Math.pow(2, mLen), e -= eBias } return (s ? -1 : 1) * m * Math.pow(2, e - mLen) }, exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c, eLen = 8 * nBytes - mLen - 1, eMax = (1 << eLen) - 1, eBias = eMax >> 1, rt = 23 === mLen ? Math.pow(2, -24) - Math.pow(2, -77) : 0, i = isLE ? 0 : nBytes - 1, d = isLE ? 1 : -1, s = 0 > value || 0 === value && 0 > 1 / value ? 1 : 0; for (value = Math.abs(value), isNaN(value) || value === 1 / 0 ? (m = isNaN(value) ? 1 : 0, e = eMax) : (e = Math.floor(Math.log(value) / Math.LN2), value * (c = Math.pow(2, -e)) < 1 && (e--, c *= 2), value += e + eBias >= 1 ? rt / c : rt * Math.pow(2, 1 - eBias), value * c >= 2 && (e++, c /= 2), e + eBias >= eMax ? (m = 0, e = eMax) : e + eBias >= 1 ? (m = (value * c - 1) * Math.pow(2, mLen), e += eBias) : (m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen), e = 0)); mLen >= 8; buffer[offset + i] = 255 & m, i += d, m /= 256, mLen -= 8); for (e = e << mLen | m, eLen += mLen; eLen > 0; buffer[offset + i] = 255 & e, i += d, e /= 256, eLen -= 8); buffer[offset + i - d] |= 128 * s; - } - }, {}], 87: [function (require, module, exports) { var toString = {}.toString; module.exports = Array.isArray || function (arr) { return "[object Array]" == toString.call(arr) } }, {}], 88: [function (require, module, exports) { + }, { "base64-js": 40, ieee754: 83, isarray: 86 }], 79: [function (require, module, exports) { (function (Buffer) { function isArray(arg) { return Array.isArray ? Array.isArray(arg) : "[object Array]" === objectToString(arg) } function isBoolean(arg) { return "boolean" == typeof arg } function isNull(arg) { return null === arg } function isNullOrUndefined(arg) { return null == arg } function isNumber(arg) { return "number" == typeof arg } function isString(arg) { return "string" == typeof arg } function isSymbol(arg) { return "symbol" == typeof arg } function isUndefined(arg) { return void 0 === arg } function isRegExp(re) { return "[object RegExp]" === objectToString(re) } function isObject(arg) { return "object" == typeof arg && null !== arg } function isDate(d) { return "[object Date]" === objectToString(d) } function isError(e) { return "[object Error]" === objectToString(e) || e instanceof Error } function isFunction(arg) { return "function" == typeof arg } function isPrimitive(arg) { return null === arg || "boolean" == typeof arg || "number" == typeof arg || "string" == typeof arg || "symbol" == typeof arg || "undefined" == typeof arg } function objectToString(o) { return Object.prototype.toString.call(o) } exports.isArray = isArray, exports.isBoolean = isBoolean, exports.isNull = isNull, exports.isNullOrUndefined = isNullOrUndefined, exports.isNumber = isNumber, exports.isString = isString, exports.isSymbol = isSymbol, exports.isUndefined = isUndefined, exports.isRegExp = isRegExp, exports.isObject = isObject, exports.isDate = isDate, exports.isError = isError, exports.isFunction = isFunction, exports.isPrimitive = isPrimitive, exports.isBuffer = Buffer.isBuffer }).call(this, { isBuffer: require("../../is-buffer/index.js") }) }, { "../../is-buffer/index.js": 85 }], 80: [function (require, module, exports) { + "use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }); var dingbats = [{ "Typeface name": "Symbol", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Symbol", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "33", "Unicode hex": "21" }, { "Typeface name": "Symbol", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "8704", "Unicode hex": "2200" }, { "Typeface name": "Symbol", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "35", "Unicode hex": "23" }, { "Typeface name": "Symbol", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "8707", "Unicode hex": "2203" }, { "Typeface name": "Symbol", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "37", "Unicode hex": "25" }, { "Typeface name": "Symbol", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "38", "Unicode hex": "26" }, { "Typeface name": "Symbol", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "8717", "Unicode hex": "220D" }, { "Typeface name": "Symbol", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "40", "Unicode hex": "28" }, { "Typeface name": "Symbol", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "41", "Unicode hex": "29" }, { "Typeface name": "Symbol", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "42", "Unicode hex": "2A" }, { "Typeface name": "Symbol", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "43", "Unicode hex": "2B" }, { "Typeface name": "Symbol", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "44", "Unicode hex": "2C" }, { "Typeface name": "Symbol", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "8722", "Unicode hex": "2212" }, { "Typeface name": "Symbol", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "46", "Unicode hex": "2E" }, { "Typeface name": "Symbol", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "47", "Unicode hex": "2F" }, { "Typeface name": "Symbol", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "48", "Unicode hex": "30" }, { "Typeface name": "Symbol", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "49", "Unicode hex": "31" }, { "Typeface name": "Symbol", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "50", "Unicode hex": "32" }, { "Typeface name": "Symbol", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "51", "Unicode hex": "33" }, { "Typeface name": "Symbol", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "52", "Unicode hex": "34" }, { "Typeface name": "Symbol", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "53", "Unicode hex": "35" }, { "Typeface name": "Symbol", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "54", "Unicode hex": "36" }, { "Typeface name": "Symbol", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "55", "Unicode hex": "37" }, { "Typeface name": "Symbol", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "56", "Unicode hex": "38" }, { "Typeface name": "Symbol", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "57", "Unicode hex": "39" }, { "Typeface name": "Symbol", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "58", "Unicode hex": "3A" }, { "Typeface name": "Symbol", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "59", "Unicode hex": "3B" }, { "Typeface name": "Symbol", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "60", "Unicode hex": "3C" }, { "Typeface name": "Symbol", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "61", "Unicode hex": "3D" }, { "Typeface name": "Symbol", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "62", "Unicode hex": "3E" }, { "Typeface name": "Symbol", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "63", "Unicode hex": "3F" }, { "Typeface name": "Symbol", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "8773", "Unicode hex": "2245" }, { "Typeface name": "Symbol", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "913", "Unicode hex": "391" }, { "Typeface name": "Symbol", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "914", "Unicode hex": "392" }, { "Typeface name": "Symbol", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "935", "Unicode hex": "3A7" }, { "Typeface name": "Symbol", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "916", "Unicode hex": "394" }, { "Typeface name": "Symbol", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "917", "Unicode hex": "395" }, { "Typeface name": "Symbol", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "934", "Unicode hex": "3A6" }, { "Typeface name": "Symbol", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "915", "Unicode hex": "393" }, { "Typeface name": "Symbol", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "919", "Unicode hex": "397" }, { "Typeface name": "Symbol", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "921", "Unicode hex": "399" }, { "Typeface name": "Symbol", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "977", "Unicode hex": "3D1" }, { "Typeface name": "Symbol", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "922", "Unicode hex": "39A" }, { "Typeface name": "Symbol", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "923", "Unicode hex": "39B" }, { "Typeface name": "Symbol", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "924", "Unicode hex": "39C" }, { "Typeface name": "Symbol", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "925", "Unicode hex": "39D" }, { "Typeface name": "Symbol", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "927", "Unicode hex": "39F" }, { "Typeface name": "Symbol", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "928", "Unicode hex": "3A0" }, { "Typeface name": "Symbol", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "920", "Unicode hex": "398" }, { "Typeface name": "Symbol", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "929", "Unicode hex": "3A1" }, { "Typeface name": "Symbol", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "931", "Unicode hex": "3A3" }, { "Typeface name": "Symbol", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "932", "Unicode hex": "3A4" }, { "Typeface name": "Symbol", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "933", "Unicode hex": "3A5" }, { "Typeface name": "Symbol", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "962", "Unicode hex": "3C2" }, { "Typeface name": "Symbol", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "937", "Unicode hex": "3A9" }, { "Typeface name": "Symbol", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "926", "Unicode hex": "39E" }, { "Typeface name": "Symbol", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "936", "Unicode hex": "3A8" }, { "Typeface name": "Symbol", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "918", "Unicode hex": "396" }, { "Typeface name": "Symbol", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "91", "Unicode hex": "5B" }, { "Typeface name": "Symbol", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "8756", "Unicode hex": "2234" }, { "Typeface name": "Symbol", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "93", "Unicode hex": "5D" }, { "Typeface name": "Symbol", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "8869", "Unicode hex": "22A5" }, { "Typeface name": "Symbol", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "95", "Unicode hex": "5F" }, { "Typeface name": "Symbol", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "8254", "Unicode hex": "203E" }, { "Typeface name": "Symbol", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "945", "Unicode hex": "3B1" }, { "Typeface name": "Symbol", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "946", "Unicode hex": "3B2" }, { "Typeface name": "Symbol", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "967", "Unicode hex": "3C7" }, { "Typeface name": "Symbol", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "948", "Unicode hex": "3B4" }, { "Typeface name": "Symbol", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "949", "Unicode hex": "3B5" }, { "Typeface name": "Symbol", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "966", "Unicode hex": "3C6" }, { "Typeface name": "Symbol", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "947", "Unicode hex": "3B3" }, { "Typeface name": "Symbol", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "951", "Unicode hex": "3B7" }, { "Typeface name": "Symbol", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "953", "Unicode hex": "3B9" }, { "Typeface name": "Symbol", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "981", "Unicode hex": "3D5" }, { "Typeface name": "Symbol", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "954", "Unicode hex": "3BA" }, { "Typeface name": "Symbol", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "955", "Unicode hex": "3BB" }, { "Typeface name": "Symbol", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "956", "Unicode hex": "3BC" }, { "Typeface name": "Symbol", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "957", "Unicode hex": "3BD" }, { "Typeface name": "Symbol", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "959", "Unicode hex": "3BF" }, { + "Typeface name": "Symbol", + "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "960", "Unicode hex": "3C0" + }, { "Typeface name": "Symbol", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "952", "Unicode hex": "3B8" }, { "Typeface name": "Symbol", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "961", "Unicode hex": "3C1" }, { "Typeface name": "Symbol", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "963", "Unicode hex": "3C3" }, { "Typeface name": "Symbol", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "964", "Unicode hex": "3C4" }, { "Typeface name": "Symbol", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "965", "Unicode hex": "3C5" }, { "Typeface name": "Symbol", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "982", "Unicode hex": "3D6" }, { "Typeface name": "Symbol", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "969", "Unicode hex": "3C9" }, { "Typeface name": "Symbol", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "958", "Unicode hex": "3BE" }, { "Typeface name": "Symbol", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "968", "Unicode hex": "3C8" }, { "Typeface name": "Symbol", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "950", "Unicode hex": "3B6" }, { "Typeface name": "Symbol", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "123", "Unicode hex": "7B" }, { "Typeface name": "Symbol", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "124", "Unicode hex": "7C" }, { "Typeface name": "Symbol", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "125", "Unicode hex": "7D" }, { "Typeface name": "Symbol", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "126", "Unicode hex": "7E" }, { "Typeface name": "Symbol", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "8364", "Unicode hex": "20AC" }, { "Typeface name": "Symbol", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "978", "Unicode hex": "3D2" }, { "Typeface name": "Symbol", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "8242", "Unicode hex": "2032" }, { "Typeface name": "Symbol", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "8804", "Unicode hex": "2264" }, { "Typeface name": "Symbol", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "8260", "Unicode hex": "2044" }, { "Typeface name": "Symbol", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "8734", "Unicode hex": "221E" }, { "Typeface name": "Symbol", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "402", "Unicode hex": "192" }, { "Typeface name": "Symbol", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "9827", "Unicode hex": "2663" }, { "Typeface name": "Symbol", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "9830", "Unicode hex": "2666" }, { "Typeface name": "Symbol", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "9829", "Unicode hex": "2665" }, { "Typeface name": "Symbol", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "9824", "Unicode hex": "2660" }, { "Typeface name": "Symbol", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "8596", "Unicode hex": "2194" }, { "Typeface name": "Symbol", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "8592", "Unicode hex": "2190" }, { "Typeface name": "Symbol", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "8593", "Unicode hex": "2191" }, { "Typeface name": "Symbol", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "8594", "Unicode hex": "2192" }, { "Typeface name": "Symbol", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "8595", "Unicode hex": "2193" }, { "Typeface name": "Symbol", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "176", "Unicode hex": "B0" }, { "Typeface name": "Symbol", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "177", "Unicode hex": "B1" }, { "Typeface name": "Symbol", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "8243", "Unicode hex": "2033" }, { "Typeface name": "Symbol", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "8805", "Unicode hex": "2265" }, { "Typeface name": "Symbol", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "215", "Unicode hex": "D7" }, { "Typeface name": "Symbol", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "8733", "Unicode hex": "221D" }, { "Typeface name": "Symbol", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "8706", "Unicode hex": "2202" }, { "Typeface name": "Symbol", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "8226", "Unicode hex": "2022" }, { "Typeface name": "Symbol", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "247", "Unicode hex": "F7" }, { "Typeface name": "Symbol", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "8800", "Unicode hex": "2260" }, { "Typeface name": "Symbol", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "8801", "Unicode hex": "2261" }, { "Typeface name": "Symbol", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "8776", "Unicode hex": "2248" }, { "Typeface name": "Symbol", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "8230", "Unicode hex": "2026" }, { "Typeface name": "Symbol", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "9168", "Unicode hex": "23D0" }, { "Typeface name": "Symbol", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "9135", "Unicode hex": "23AF" }, { "Typeface name": "Symbol", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "8629", "Unicode hex": "21B5" }, { "Typeface name": "Symbol", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "8501", "Unicode hex": "2135" }, { "Typeface name": "Symbol", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "8465", "Unicode hex": "2111" }, { "Typeface name": "Symbol", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "8476", "Unicode hex": "211C" }, { "Typeface name": "Symbol", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "8472", "Unicode hex": "2118" }, { "Typeface name": "Symbol", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "8855", "Unicode hex": "2297" }, { "Typeface name": "Symbol", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "8853", "Unicode hex": "2295" }, { "Typeface name": "Symbol", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "8709", "Unicode hex": "2205" }, { "Typeface name": "Symbol", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "8745", "Unicode hex": "2229" }, { "Typeface name": "Symbol", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "8746", "Unicode hex": "222A" }, { "Typeface name": "Symbol", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "8835", "Unicode hex": "2283" }, { "Typeface name": "Symbol", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "8839", "Unicode hex": "2287" }, { "Typeface name": "Symbol", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "8836", "Unicode hex": "2284" }, { "Typeface name": "Symbol", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "8834", "Unicode hex": "2282" }, { "Typeface name": "Symbol", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "8838", "Unicode hex": "2286" }, { "Typeface name": "Symbol", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "8712", "Unicode hex": "2208" }, { "Typeface name": "Symbol", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "8713", "Unicode hex": "2209" }, { "Typeface name": "Symbol", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "8736", "Unicode hex": "2220" }, { "Typeface name": "Symbol", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "8711", "Unicode hex": "2207" }, { "Typeface name": "Symbol", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "174", "Unicode hex": "AE" }, { "Typeface name": "Symbol", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "169", "Unicode hex": "A9" }, { "Typeface name": "Symbol", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "8482", "Unicode hex": "2122" }, { "Typeface name": "Symbol", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "8719", "Unicode hex": "220F" }, { "Typeface name": "Symbol", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "8730", "Unicode hex": "221A" }, { "Typeface name": "Symbol", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "8901", "Unicode hex": "22C5" }, { "Typeface name": "Symbol", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "172", "Unicode hex": "AC" }, { "Typeface name": "Symbol", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "8743", "Unicode hex": "2227" }, { "Typeface name": "Symbol", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "8744", "Unicode hex": "2228" }, { "Typeface name": "Symbol", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "8660", "Unicode hex": "21D4" }, { "Typeface name": "Symbol", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "8656", "Unicode hex": "21D0" }, { "Typeface name": "Symbol", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "8657", "Unicode hex": "21D1" }, { "Typeface name": "Symbol", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "8658", "Unicode hex": "21D2" }, { "Typeface name": "Symbol", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "8659", "Unicode hex": "21D3" }, { "Typeface name": "Symbol", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "9674", "Unicode hex": "25CA" }, { "Typeface name": "Symbol", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "12296", "Unicode hex": "3008" }, { "Typeface name": "Symbol", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "174", "Unicode hex": "AE" }, { "Typeface name": "Symbol", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "169", "Unicode hex": "A9" }, { "Typeface name": "Symbol", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "8482", "Unicode hex": "2122" }, { "Typeface name": "Symbol", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "8721", "Unicode hex": "2211" }, { "Typeface name": "Symbol", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "9115", "Unicode hex": "239B" }, { "Typeface name": "Symbol", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "9116", "Unicode hex": "239C" }, { "Typeface name": "Symbol", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "9117", "Unicode hex": "239D" }, { "Typeface name": "Symbol", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "9121", "Unicode hex": "23A1" }, { "Typeface name": "Symbol", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "9122", "Unicode hex": "23A2" }, { "Typeface name": "Symbol", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "9123", "Unicode hex": "23A3" }, { "Typeface name": "Symbol", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "9127", "Unicode hex": "23A7" }, { "Typeface name": "Symbol", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "9128", "Unicode hex": "23A8" }, { "Typeface name": "Symbol", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "9129", "Unicode hex": "23A9" }, { "Typeface name": "Symbol", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "9130", "Unicode hex": "23AA" }, { "Typeface name": "Symbol", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "63743", "Unicode hex": "F8FF" }, { "Typeface name": "Symbol", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "12297", "Unicode hex": "3009" }, { "Typeface name": "Symbol", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "8747", "Unicode hex": "222B" }, { "Typeface name": "Symbol", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "8992", "Unicode hex": "2320" }, { "Typeface name": "Symbol", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "9134", "Unicode hex": "23AE" }, { "Typeface name": "Symbol", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "8993", "Unicode hex": "2321" }, { "Typeface name": "Symbol", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "9118", "Unicode hex": "239E" }, { "Typeface name": "Symbol", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "9119", "Unicode hex": "239F" }, { "Typeface name": "Symbol", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "9120", "Unicode hex": "23A0" }, { "Typeface name": "Symbol", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "9124", "Unicode hex": "23A4" }, { "Typeface name": "Symbol", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "9125", "Unicode hex": "23A5" }, { "Typeface name": "Symbol", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "9126", "Unicode hex": "23A6" }, { "Typeface name": "Symbol", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "9131", "Unicode hex": "23AB" }, { "Typeface name": "Symbol", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "9132", "Unicode hex": "23AC" }, { "Typeface name": "Symbol", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "9133", "Unicode hex": "23AD" }, { "Typeface name": "Webdings", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Webdings", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128375", "Unicode hex": "1F577" }, { "Typeface name": "Webdings", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "128376", "Unicode hex": "1F578" }, { "Typeface name": "Webdings", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "128370", "Unicode hex": "1F572" }, { "Typeface name": "Webdings", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128374", "Unicode hex": "1F576" }, { "Typeface name": "Webdings", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "127942", "Unicode hex": "1F3C6" }, { "Typeface name": "Webdings", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "127894", "Unicode hex": "1F396" }, { "Typeface name": "Webdings", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128391", "Unicode hex": "1F587" }, { "Typeface name": "Webdings", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128488", "Unicode hex": "1F5E8" }, { "Typeface name": "Webdings", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "128489", "Unicode hex": "1F5E9" }, { "Typeface name": "Webdings", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128496", "Unicode hex": "1F5F0" }, { "Typeface name": "Webdings", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128497", "Unicode hex": "1F5F1" }, { "Typeface name": "Webdings", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "127798", "Unicode hex": "1F336" }, { "Typeface name": "Webdings", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "127895", "Unicode hex": "1F397" }, { "Typeface name": "Webdings", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128638", "Unicode hex": "1F67E" }, { "Typeface name": "Webdings", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128636", "Unicode hex": "1F67C" }, { "Typeface name": "Webdings", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128469", "Unicode hex": "1F5D5" }, { "Typeface name": "Webdings", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128470", "Unicode hex": "1F5D6" }, { "Typeface name": "Webdings", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "128471", "Unicode hex": "1F5D7" }, { "Typeface name": "Webdings", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "9204", "Unicode hex": "23F4" }, { "Typeface name": "Webdings", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "9205", "Unicode hex": "23F5" }, { "Typeface name": "Webdings", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "9206", "Unicode hex": "23F6" }, { "Typeface name": "Webdings", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "9207", "Unicode hex": "23F7" }, { "Typeface name": "Webdings", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "9194", "Unicode hex": "23EA" }, { "Typeface name": "Webdings", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "9193", "Unicode hex": "23E9" }, { "Typeface name": "Webdings", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "9198", "Unicode hex": "23EE" }, { "Typeface name": "Webdings", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "9197", "Unicode hex": "23ED" }, { "Typeface name": "Webdings", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "9208", "Unicode hex": "23F8" }, { "Typeface name": "Webdings", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "9209", "Unicode hex": "23F9" }, { "Typeface name": "Webdings", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "9210", "Unicode hex": "23FA" }, { "Typeface name": "Webdings", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "128474", "Unicode hex": "1F5DA" }, { "Typeface name": "Webdings", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "128499", "Unicode hex": "1F5F3" }, { "Typeface name": "Webdings", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128736", "Unicode hex": "1F6E0" }, { "Typeface name": "Webdings", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "127959", "Unicode hex": "1F3D7" }, { "Typeface name": "Webdings", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "127960", "Unicode hex": "1F3D8" }, { "Typeface name": "Webdings", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "127961", "Unicode hex": "1F3D9" }, { "Typeface name": "Webdings", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "127962", "Unicode hex": "1F3DA" }, { "Typeface name": "Webdings", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "127964", "Unicode hex": "1F3DC" }, { "Typeface name": "Webdings", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "127981", "Unicode hex": "1F3ED" }, { "Typeface name": "Webdings", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "127963", "Unicode hex": "1F3DB" }, { "Typeface name": "Webdings", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "127968", "Unicode hex": "1F3E0" }, { "Typeface name": "Webdings", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "127958", "Unicode hex": "1F3D6" }, { "Typeface name": "Webdings", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "127965", "Unicode hex": "1F3DD" }, { "Typeface name": "Webdings", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128739", "Unicode hex": "1F6E3" }, { "Typeface name": "Webdings", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "128269", "Unicode hex": "1F50D" }, { "Typeface name": "Webdings", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "127956", "Unicode hex": "1F3D4" }, { "Typeface name": "Webdings", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128065", "Unicode hex": "1F441" }, { "Typeface name": "Webdings", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "128066", "Unicode hex": "1F442" }, { "Typeface name": "Webdings", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "127966", "Unicode hex": "1F3DE" }, { "Typeface name": "Webdings", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "127957", "Unicode hex": "1F3D5" }, { "Typeface name": "Webdings", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "128740", "Unicode hex": "1F6E4" }, { "Typeface name": "Webdings", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "127967", "Unicode hex": "1F3DF" }, { "Typeface name": "Webdings", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "128755", "Unicode hex": "1F6F3" }, { "Typeface name": "Webdings", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "128364", "Unicode hex": "1F56C" }, { "Typeface name": "Webdings", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "128363", "Unicode hex": "1F56B" }, { "Typeface name": "Webdings", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128360", "Unicode hex": "1F568" }, { "Typeface name": "Webdings", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "128264", "Unicode hex": "1F508" }, { "Typeface name": "Webdings", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "127892", "Unicode hex": "1F394" }, { "Typeface name": "Webdings", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "127893", "Unicode hex": "1F395" }, { "Typeface name": "Webdings", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "128492", "Unicode hex": "1F5EC" }, { "Typeface name": "Webdings", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128637", "Unicode hex": "1F67D" }, { "Typeface name": "Webdings", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "128493", "Unicode hex": "1F5ED" }, { "Typeface name": "Webdings", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "128490", "Unicode hex": "1F5EA" }, { "Typeface name": "Webdings", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "128491", "Unicode hex": "1F5EB" }, { "Typeface name": "Webdings", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "11156", "Unicode hex": "2B94" }, { "Typeface name": "Webdings", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "10004", "Unicode hex": "2714" }, { "Typeface name": "Webdings", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "128690", "Unicode hex": "1F6B2" }, { "Typeface name": "Webdings", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "11036", "Unicode hex": "2B1C" }, { "Typeface name": "Webdings", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "128737", "Unicode hex": "1F6E1" }, { "Typeface name": "Webdings", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "128230", "Unicode hex": "1F4E6" }, { "Typeface name": "Webdings", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "128753", "Unicode hex": "1F6F1" }, { "Typeface name": "Webdings", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "11035", "Unicode hex": "2B1B" }, { "Typeface name": "Webdings", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "128657", "Unicode hex": "1F691" }, { "Typeface name": "Webdings", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "128712", "Unicode hex": "1F6C8" }, { "Typeface name": "Webdings", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "128745", "Unicode hex": "1F6E9" }, { "Typeface name": "Webdings", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "128752", "Unicode hex": "1F6F0" }, { "Typeface name": "Webdings", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "128968", "Unicode hex": "1F7C8" }, { "Typeface name": "Webdings", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "128372", "Unicode hex": "1F574" }, { "Typeface name": "Webdings", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "11044", "Unicode hex": "2B24" }, { "Typeface name": "Webdings", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "128741", "Unicode hex": "1F6E5" }, { "Typeface name": "Webdings", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "128660", "Unicode hex": "1F694" }, { "Typeface name": "Webdings", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "128472", "Unicode hex": "1F5D8" }, { "Typeface name": "Webdings", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "128473", "Unicode hex": "1F5D9" }, { "Typeface name": "Webdings", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "10067", "Unicode hex": "2753" }, { "Typeface name": "Webdings", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "128754", "Unicode hex": "1F6F2" }, { "Typeface name": "Webdings", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "128647", "Unicode hex": "1F687" }, { "Typeface name": "Webdings", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "128653", "Unicode hex": "1F68D" }, { "Typeface name": "Webdings", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "9971", "Unicode hex": "26F3" }, { "Typeface name": "Webdings", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "10680", "Unicode hex": "29B8" }, { "Typeface name": "Webdings", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "8854", "Unicode hex": "2296" }, { "Typeface name": "Webdings", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "128685", "Unicode hex": "1F6AD" }, { "Typeface name": "Webdings", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "128494", "Unicode hex": "1F5EE" }, { "Typeface name": "Webdings", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "9168", "Unicode hex": "23D0" }, { "Typeface name": "Webdings", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128495", "Unicode hex": "1F5EF" }, { "Typeface name": "Webdings", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128498", "Unicode hex": "1F5F2" }, { "Typeface name": "Webdings", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "128697", "Unicode hex": "1F6B9" }, { "Typeface name": "Webdings", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "128698", "Unicode hex": "1F6BA" }, { "Typeface name": "Webdings", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "128713", "Unicode hex": "1F6C9" }, { "Typeface name": "Webdings", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "128714", "Unicode hex": "1F6CA" }, { "Typeface name": "Webdings", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "128700", "Unicode hex": "1F6BC" }, { "Typeface name": "Webdings", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "128125", "Unicode hex": "1F47D" }, { "Typeface name": "Webdings", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "127947", "Unicode hex": "1F3CB" }, { "Typeface name": "Webdings", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "9975", "Unicode hex": "26F7" }, { "Typeface name": "Webdings", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "127938", "Unicode hex": "1F3C2" }, { "Typeface name": "Webdings", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "127948", "Unicode hex": "1F3CC" }, { "Typeface name": "Webdings", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "127946", "Unicode hex": "1F3CA" }, { "Typeface name": "Webdings", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "127940", "Unicode hex": "1F3C4" }, { "Typeface name": "Webdings", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "127949", "Unicode hex": "1F3CD" }, { "Typeface name": "Webdings", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "127950", "Unicode hex": "1F3CE" }, { "Typeface name": "Webdings", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "128664", "Unicode hex": "1F698" }, { "Typeface name": "Webdings", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "128480", "Unicode hex": "1F5E0" }, { "Typeface name": "Webdings", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "128738", "Unicode hex": "1F6E2" }, { "Typeface name": "Webdings", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "128176", "Unicode hex": "1F4B0" }, { "Typeface name": "Webdings", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "127991", "Unicode hex": "1F3F7" }, { "Typeface name": "Webdings", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "128179", "Unicode hex": "1F4B3" }, { "Typeface name": "Webdings", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "128106", "Unicode hex": "1F46A" }, { "Typeface name": "Webdings", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "128481", "Unicode hex": "1F5E1" }, { "Typeface name": "Webdings", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128482", "Unicode hex": "1F5E2" }, { "Typeface name": "Webdings", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "128483", "Unicode hex": "1F5E3" }, { "Typeface name": "Webdings", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "10031", "Unicode hex": "272F" }, { "Typeface name": "Webdings", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "128388", "Unicode hex": "1F584" }, { "Typeface name": "Webdings", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128389", "Unicode hex": "1F585" }, { "Typeface name": "Webdings", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128387", "Unicode hex": "1F583" }, { "Typeface name": "Webdings", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128390", "Unicode hex": "1F586" }, { "Typeface name": "Webdings", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "128441", "Unicode hex": "1F5B9" }, { "Typeface name": "Webdings", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "128442", "Unicode hex": "1F5BA" }, { "Typeface name": "Webdings", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "128443", "Unicode hex": "1F5BB" }, { "Typeface name": "Webdings", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "128373", "Unicode hex": "1F575" }, { "Typeface name": "Webdings", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "128368", "Unicode hex": "1F570" }, { "Typeface name": "Webdings", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "128445", "Unicode hex": "1F5BD" }, { "Typeface name": "Webdings", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "128446", "Unicode hex": "1F5BE" }, { "Typeface name": "Webdings", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128203", "Unicode hex": "1F4CB" }, { "Typeface name": "Webdings", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128466", "Unicode hex": "1F5D2" }, { "Typeface name": "Webdings", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128467", "Unicode hex": "1F5D3" }, { "Typeface name": "Webdings", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "128366", "Unicode hex": "1F56E" }, { "Typeface name": "Webdings", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "128218", "Unicode hex": "1F4DA" }, { "Typeface name": "Webdings", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128478", "Unicode hex": "1F5DE" }, { "Typeface name": "Webdings", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128479", "Unicode hex": "1F5DF" }, { "Typeface name": "Webdings", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "128451", "Unicode hex": "1F5C3" }, { "Typeface name": "Webdings", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128450", "Unicode hex": "1F5C2" }, { "Typeface name": "Webdings", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "128444", "Unicode hex": "1F5BC" }, { "Typeface name": "Webdings", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "127917", "Unicode hex": "1F3AD" }, { "Typeface name": "Webdings", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "127900", "Unicode hex": "1F39C" }, { "Typeface name": "Webdings", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "127896", "Unicode hex": "1F398" }, { "Typeface name": "Webdings", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "127897", "Unicode hex": "1F399" }, { "Typeface name": "Webdings", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "127911", "Unicode hex": "1F3A7" }, { "Typeface name": "Webdings", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "128191", "Unicode hex": "1F4BF" }, { "Typeface name": "Webdings", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "127902", "Unicode hex": "1F39E" }, { "Typeface name": "Webdings", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "128247", "Unicode hex": "1F4F7" }, { "Typeface name": "Webdings", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "127903", "Unicode hex": "1F39F" }, { "Typeface name": "Webdings", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "127916", "Unicode hex": "1F3AC" }, { "Typeface name": "Webdings", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "128253", "Unicode hex": "1F4FD" }, { "Typeface name": "Webdings", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128249", "Unicode hex": "1F4F9" }, { "Typeface name": "Webdings", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "128254", "Unicode hex": "1F4FE" }, { "Typeface name": "Webdings", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "128251", "Unicode hex": "1F4FB" }, { "Typeface name": "Webdings", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "127898", "Unicode hex": "1F39A" }, { "Typeface name": "Webdings", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "127899", "Unicode hex": "1F39B" }, { "Typeface name": "Webdings", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "128250", "Unicode hex": "1F4FA" }, { "Typeface name": "Webdings", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "128187", "Unicode hex": "1F4BB" }, { "Typeface name": "Webdings", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "128421", "Unicode hex": "1F5A5" }, { "Typeface name": "Webdings", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "128422", "Unicode hex": "1F5A6" }, { "Typeface name": "Webdings", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "128423", "Unicode hex": "1F5A7" }, { "Typeface name": "Webdings", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "128377", "Unicode hex": "1F579" }, { "Typeface name": "Webdings", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "127918", "Unicode hex": "1F3AE" }, { "Typeface name": "Webdings", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "128379", "Unicode hex": "1F57B" }, { "Typeface name": "Webdings", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "128380", "Unicode hex": "1F57C" }, { "Typeface name": "Webdings", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "128223", "Unicode hex": "1F4DF" }, { "Typeface name": "Webdings", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "128385", "Unicode hex": "1F581" }, { "Typeface name": "Webdings", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "128384", "Unicode hex": "1F580" }, { "Typeface name": "Webdings", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "128424", "Unicode hex": "1F5A8" }, { "Typeface name": "Webdings", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128425", "Unicode hex": "1F5A9" }, { "Typeface name": "Webdings", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128447", "Unicode hex": "1F5BF" }, { "Typeface name": "Webdings", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128426", "Unicode hex": "1F5AA" }, { "Typeface name": "Webdings", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128476", "Unicode hex": "1F5DC" }, { "Typeface name": "Webdings", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128274", "Unicode hex": "1F512" }, { "Typeface name": "Webdings", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128275", "Unicode hex": "1F513" }, { "Typeface name": "Webdings", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128477", "Unicode hex": "1F5DD" }, { "Typeface name": "Webdings", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128229", "Unicode hex": "1F4E5" }, { "Typeface name": "Webdings", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128228", "Unicode hex": "1F4E4" }, { "Typeface name": "Webdings", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128371", "Unicode hex": "1F573" }, { + "Typeface name": "Webdings", + "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "127779", "Unicode hex": "1F323" + }, { "Typeface name": "Webdings", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "127780", "Unicode hex": "1F324" }, { "Typeface name": "Webdings", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "127781", "Unicode hex": "1F325" }, { "Typeface name": "Webdings", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "127782", "Unicode hex": "1F326" }, { "Typeface name": "Webdings", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "9729", "Unicode hex": "2601" }, { "Typeface name": "Webdings", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "127784", "Unicode hex": "1F328" }, { "Typeface name": "Webdings", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "127783", "Unicode hex": "1F327" }, { "Typeface name": "Webdings", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "127785", "Unicode hex": "1F329" }, { "Typeface name": "Webdings", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "127786", "Unicode hex": "1F32A" }, { "Typeface name": "Webdings", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "127788", "Unicode hex": "1F32C" }, { "Typeface name": "Webdings", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "127787", "Unicode hex": "1F32B" }, { "Typeface name": "Webdings", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "127772", "Unicode hex": "1F31C" }, { "Typeface name": "Webdings", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "127777", "Unicode hex": "1F321" }, { "Typeface name": "Webdings", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "128715", "Unicode hex": "1F6CB" }, { "Typeface name": "Webdings", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "128719", "Unicode hex": "1F6CF" }, { "Typeface name": "Webdings", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "127869", "Unicode hex": "1F37D" }, { "Typeface name": "Webdings", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "127864", "Unicode hex": "1F378" }, { "Typeface name": "Webdings", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "128718", "Unicode hex": "1F6CE" }, { "Typeface name": "Webdings", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "128717", "Unicode hex": "1F6CD" }, { "Typeface name": "Webdings", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "9413", "Unicode hex": "24C5" }, { "Typeface name": "Webdings", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "9855", "Unicode hex": "267F" }, { "Typeface name": "Webdings", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "128710", "Unicode hex": "1F6C6" }, { "Typeface name": "Webdings", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "128392", "Unicode hex": "1F588" }, { "Typeface name": "Webdings", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "127891", "Unicode hex": "1F393" }, { "Typeface name": "Webdings", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "128484", "Unicode hex": "1F5E4" }, { "Typeface name": "Webdings", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "128485", "Unicode hex": "1F5E5" }, { "Typeface name": "Webdings", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "128486", "Unicode hex": "1F5E6" }, { "Typeface name": "Webdings", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "128487", "Unicode hex": "1F5E7" }, { "Typeface name": "Webdings", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "128746", "Unicode hex": "1F6EA" }, { "Typeface name": "Webdings", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "128063", "Unicode hex": "1F43F" }, { "Typeface name": "Webdings", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "128038", "Unicode hex": "1F426" }, { "Typeface name": "Webdings", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "128031", "Unicode hex": "1F41F" }, { "Typeface name": "Webdings", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "128021", "Unicode hex": "1F415" }, { "Typeface name": "Webdings", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "128008", "Unicode hex": "1F408" }, { "Typeface name": "Webdings", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "128620", "Unicode hex": "1F66C" }, { "Typeface name": "Webdings", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "128622", "Unicode hex": "1F66E" }, { "Typeface name": "Webdings", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "128621", "Unicode hex": "1F66D" }, { "Typeface name": "Webdings", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "128623", "Unicode hex": "1F66F" }, { "Typeface name": "Webdings", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "128506", "Unicode hex": "1F5FA" }, { "Typeface name": "Webdings", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "127757", "Unicode hex": "1F30D" }, { "Typeface name": "Webdings", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "127759", "Unicode hex": "1F30F" }, { "Typeface name": "Webdings", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "127758", "Unicode hex": "1F30E" }, { "Typeface name": "Webdings", "Dingbat dec": "255", "Dingbat hex": "FF", "Unicode dec": "128330", "Unicode hex": "1F54A" }, { "Typeface name": "Wingdings", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128393", "Unicode hex": "1F589" }, { "Typeface name": "Wingdings", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "9986", "Unicode hex": "2702" }, { "Typeface name": "Wingdings", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "9985", "Unicode hex": "2701" }, { "Typeface name": "Wingdings", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128083", "Unicode hex": "1F453" }, { "Typeface name": "Wingdings", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "128365", "Unicode hex": "1F56D" }, { "Typeface name": "Wingdings", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "128366", "Unicode hex": "1F56E" }, { "Typeface name": "Wingdings", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128367", "Unicode hex": "1F56F" }, { "Typeface name": "Wingdings", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128383", "Unicode hex": "1F57F" }, { "Typeface name": "Wingdings", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "9990", "Unicode hex": "2706" }, { "Typeface name": "Wingdings", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128386", "Unicode hex": "1F582" }, { "Typeface name": "Wingdings", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128387", "Unicode hex": "1F583" }, { "Typeface name": "Wingdings", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "128234", "Unicode hex": "1F4EA" }, { "Typeface name": "Wingdings", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "128235", "Unicode hex": "1F4EB" }, { "Typeface name": "Wingdings", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128236", "Unicode hex": "1F4EC" }, { "Typeface name": "Wingdings", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128237", "Unicode hex": "1F4ED" }, { "Typeface name": "Wingdings", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128448", "Unicode hex": "1F5C0" }, { "Typeface name": "Wingdings", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128449", "Unicode hex": "1F5C1" }, { "Typeface name": "Wingdings", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "128462", "Unicode hex": "1F5CE" }, { "Typeface name": "Wingdings", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "128463", "Unicode hex": "1F5CF" }, { "Typeface name": "Wingdings", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "128464", "Unicode hex": "1F5D0" }, { "Typeface name": "Wingdings", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "128452", "Unicode hex": "1F5C4" }, { "Typeface name": "Wingdings", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "8987", "Unicode hex": "231B" }, { "Typeface name": "Wingdings", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "128430", "Unicode hex": "1F5AE" }, { "Typeface name": "Wingdings", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "128432", "Unicode hex": "1F5B0" }, { "Typeface name": "Wingdings", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "128434", "Unicode hex": "1F5B2" }, { "Typeface name": "Wingdings", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "128435", "Unicode hex": "1F5B3" }, { "Typeface name": "Wingdings", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "128436", "Unicode hex": "1F5B4" }, { "Typeface name": "Wingdings", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "128427", "Unicode hex": "1F5AB" }, { "Typeface name": "Wingdings", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "128428", "Unicode hex": "1F5AC" }, { "Typeface name": "Wingdings", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "9991", "Unicode hex": "2707" }, { "Typeface name": "Wingdings", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "9997", "Unicode hex": "270D" }, { "Typeface name": "Wingdings", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128398", "Unicode hex": "1F58E" }, { "Typeface name": "Wingdings", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "9996", "Unicode hex": "270C" }, { "Typeface name": "Wingdings", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "128399", "Unicode hex": "1F58F" }, { "Typeface name": "Wingdings", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "128077", "Unicode hex": "1F44D" }, { "Typeface name": "Wingdings", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "128078", "Unicode hex": "1F44E" }, { "Typeface name": "Wingdings", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "9756", "Unicode hex": "261C" }, { "Typeface name": "Wingdings", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "9758", "Unicode hex": "261E" }, { "Typeface name": "Wingdings", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "9757", "Unicode hex": "261D" }, { "Typeface name": "Wingdings", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "9759", "Unicode hex": "261F" }, { "Typeface name": "Wingdings", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "128400", "Unicode hex": "1F590" }, { "Typeface name": "Wingdings", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "9786", "Unicode hex": "263A" }, { "Typeface name": "Wingdings", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128528", "Unicode hex": "1F610" }, { "Typeface name": "Wingdings", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "9785", "Unicode hex": "2639" }, { "Typeface name": "Wingdings", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "128163", "Unicode hex": "1F4A3" }, { "Typeface name": "Wingdings", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128369", "Unicode hex": "1F571" }, { "Typeface name": "Wingdings", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "127987", "Unicode hex": "1F3F3" }, { "Typeface name": "Wingdings", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "127985", "Unicode hex": "1F3F1" }, { "Typeface name": "Wingdings", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "9992", "Unicode hex": "2708" }, { "Typeface name": "Wingdings", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9788", "Unicode hex": "263C" }, { "Typeface name": "Wingdings", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "127778", "Unicode hex": "1F322" }, { "Typeface name": "Wingdings", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "10052", "Unicode hex": "2744" }, { "Typeface name": "Wingdings", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "128326", "Unicode hex": "1F546" }, { "Typeface name": "Wingdings", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "10014", "Unicode hex": "271E" }, { "Typeface name": "Wingdings", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128328", "Unicode hex": "1F548" }, { "Typeface name": "Wingdings", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "10016", "Unicode hex": "2720" }, { "Typeface name": "Wingdings", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "10017", "Unicode hex": "2721" }, { "Typeface name": "Wingdings", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "9770", "Unicode hex": "262A" }, { "Typeface name": "Wingdings", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "9775", "Unicode hex": "262F" }, { "Typeface name": "Wingdings", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128329", "Unicode hex": "1F549" }, { "Typeface name": "Wingdings", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "9784", "Unicode hex": "2638" }, { "Typeface name": "Wingdings", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "9800", "Unicode hex": "2648" }, { "Typeface name": "Wingdings", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "9801", "Unicode hex": "2649" }, { "Typeface name": "Wingdings", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "9802", "Unicode hex": "264A" }, { "Typeface name": "Wingdings", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "9803", "Unicode hex": "264B" }, { "Typeface name": "Wingdings", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "9804", "Unicode hex": "264C" }, { "Typeface name": "Wingdings", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "9805", "Unicode hex": "264D" }, { "Typeface name": "Wingdings", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "9806", "Unicode hex": "264E" }, { "Typeface name": "Wingdings", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "9807", "Unicode hex": "264F" }, { "Typeface name": "Wingdings", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "9808", "Unicode hex": "2650" }, { "Typeface name": "Wingdings", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "9809", "Unicode hex": "2651" }, { "Typeface name": "Wingdings", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "9810", "Unicode hex": "2652" }, { "Typeface name": "Wingdings", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "9811", "Unicode hex": "2653" }, { "Typeface name": "Wingdings", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "128624", "Unicode hex": "1F670" }, { "Typeface name": "Wingdings", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "128629", "Unicode hex": "1F675" }, { "Typeface name": "Wingdings", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "9899", "Unicode hex": "26AB" }, { "Typeface name": "Wingdings", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "128318", "Unicode hex": "1F53E" }, { "Typeface name": "Wingdings", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "9724", "Unicode hex": "25FC" }, { "Typeface name": "Wingdings", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "128911", "Unicode hex": "1F78F" }, { "Typeface name": "Wingdings", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "128912", "Unicode hex": "1F790" }, { "Typeface name": "Wingdings", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "10065", "Unicode hex": "2751" }, { "Typeface name": "Wingdings", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "10066", "Unicode hex": "2752" }, { "Typeface name": "Wingdings", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "128927", "Unicode hex": "1F79F" }, { "Typeface name": "Wingdings", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "10731", "Unicode hex": "29EB" }, { "Typeface name": "Wingdings", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "9670", "Unicode hex": "25C6" }, { "Typeface name": "Wingdings", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "10070", "Unicode hex": "2756" }, { "Typeface name": "Wingdings", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "11049", "Unicode hex": "2B29" }, { "Typeface name": "Wingdings", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "8999", "Unicode hex": "2327" }, { "Typeface name": "Wingdings", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "11193", "Unicode hex": "2BB9" }, { "Typeface name": "Wingdings", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "8984", "Unicode hex": "2318" }, { "Typeface name": "Wingdings", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "127989", "Unicode hex": "1F3F5" }, { "Typeface name": "Wingdings", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "127990", "Unicode hex": "1F3F6" }, { "Typeface name": "Wingdings", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128630", "Unicode hex": "1F676" }, { "Typeface name": "Wingdings", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128631", "Unicode hex": "1F677" }, { "Typeface name": "Wingdings", "Dingbat dec": "127", "Dingbat hex": "7F", "Unicode dec": "9647", "Unicode hex": "25AF" }, { "Typeface name": "Wingdings", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "127243", "Unicode hex": "1F10B" }, { "Typeface name": "Wingdings", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "10112", "Unicode hex": "2780" }, { "Typeface name": "Wingdings", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "10113", "Unicode hex": "2781" }, { "Typeface name": "Wingdings", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "10114", "Unicode hex": "2782" }, { "Typeface name": "Wingdings", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "10115", "Unicode hex": "2783" }, { "Typeface name": "Wingdings", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "10116", "Unicode hex": "2784" }, { "Typeface name": "Wingdings", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "10117", "Unicode hex": "2785" }, { "Typeface name": "Wingdings", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "10118", "Unicode hex": "2786" }, { "Typeface name": "Wingdings", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "10119", "Unicode hex": "2787" }, { "Typeface name": "Wingdings", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "10120", "Unicode hex": "2788" }, { "Typeface name": "Wingdings", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "10121", "Unicode hex": "2789" }, { "Typeface name": "Wingdings", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "127244", "Unicode hex": "1F10C" }, { "Typeface name": "Wingdings", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "10122", "Unicode hex": "278A" }, { "Typeface name": "Wingdings", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "10123", "Unicode hex": "278B" }, { "Typeface name": "Wingdings", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "10124", "Unicode hex": "278C" }, { "Typeface name": "Wingdings", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "10125", "Unicode hex": "278D" }, { "Typeface name": "Wingdings", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "10126", "Unicode hex": "278E" }, { "Typeface name": "Wingdings", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "10127", "Unicode hex": "278F" }, { "Typeface name": "Wingdings", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "10128", "Unicode hex": "2790" }, { "Typeface name": "Wingdings", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "10129", "Unicode hex": "2791" }, { "Typeface name": "Wingdings", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "10130", "Unicode hex": "2792" }, { "Typeface name": "Wingdings", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "10131", "Unicode hex": "2793" }, { "Typeface name": "Wingdings", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128610", "Unicode hex": "1F662" }, { "Typeface name": "Wingdings", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "128608", "Unicode hex": "1F660" }, { "Typeface name": "Wingdings", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "128609", "Unicode hex": "1F661" }, { "Typeface name": "Wingdings", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "128611", "Unicode hex": "1F663" }, { "Typeface name": "Wingdings", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128606", "Unicode hex": "1F65E" }, { "Typeface name": "Wingdings", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128604", "Unicode hex": "1F65C" }, { "Typeface name": "Wingdings", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128605", "Unicode hex": "1F65D" }, { "Typeface name": "Wingdings", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "128607", "Unicode hex": "1F65F" }, { "Typeface name": "Wingdings", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "8729", "Unicode hex": "2219" }, { "Typeface name": "Wingdings", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "8226", "Unicode hex": "2022" }, { "Typeface name": "Wingdings", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "11037", "Unicode hex": "2B1D" }, { "Typeface name": "Wingdings", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "11096", "Unicode hex": "2B58" }, { "Typeface name": "Wingdings", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "128902", "Unicode hex": "1F786" }, { "Typeface name": "Wingdings", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "128904", "Unicode hex": "1F788" }, { "Typeface name": "Wingdings", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128906", "Unicode hex": "1F78A" }, { "Typeface name": "Wingdings", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128907", "Unicode hex": "1F78B" }, { "Typeface name": "Wingdings", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128319", "Unicode hex": "1F53F" }, { "Typeface name": "Wingdings", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "9642", "Unicode hex": "25AA" }, { "Typeface name": "Wingdings", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "128910", "Unicode hex": "1F78E" }, { "Typeface name": "Wingdings", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128961", "Unicode hex": "1F7C1" }, { "Typeface name": "Wingdings", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128965", "Unicode hex": "1F7C5" }, { "Typeface name": "Wingdings", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "9733", "Unicode hex": "2605" }, { "Typeface name": "Wingdings", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128971", "Unicode hex": "1F7CB" }, { "Typeface name": "Wingdings", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "128975", "Unicode hex": "1F7CF" }, { "Typeface name": "Wingdings", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "128979", "Unicode hex": "1F7D3" }, { "Typeface name": "Wingdings", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "128977", "Unicode hex": "1F7D1" }, { "Typeface name": "Wingdings", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "11216", "Unicode hex": "2BD0" }, { "Typeface name": "Wingdings", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "8982", "Unicode hex": "2316" }, { "Typeface name": "Wingdings", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "11214", "Unicode hex": "2BCE" }, { "Typeface name": "Wingdings", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "11215", "Unicode hex": "2BCF" }, { "Typeface name": "Wingdings", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "11217", "Unicode hex": "2BD1" }, { "Typeface name": "Wingdings", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "10026", "Unicode hex": "272A" }, { "Typeface name": "Wingdings", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "10032", "Unicode hex": "2730" }, { "Typeface name": "Wingdings", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "128336", "Unicode hex": "1F550" }, { "Typeface name": "Wingdings", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "128337", "Unicode hex": "1F551" }, { "Typeface name": "Wingdings", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128338", "Unicode hex": "1F552" }, { "Typeface name": "Wingdings", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "128339", "Unicode hex": "1F553" }, { "Typeface name": "Wingdings", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "128340", "Unicode hex": "1F554" }, { "Typeface name": "Wingdings", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "128341", "Unicode hex": "1F555" }, { "Typeface name": "Wingdings", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "128342", "Unicode hex": "1F556" }, { "Typeface name": "Wingdings", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "128343", "Unicode hex": "1F557" }, { "Typeface name": "Wingdings", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "128344", "Unicode hex": "1F558" }, { "Typeface name": "Wingdings", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "128345", "Unicode hex": "1F559" }, { "Typeface name": "Wingdings", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "128346", "Unicode hex": "1F55A" }, { "Typeface name": "Wingdings", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "128347", "Unicode hex": "1F55B" }, { "Typeface name": "Wingdings", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "11184", "Unicode hex": "2BB0" }, { "Typeface name": "Wingdings", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "11185", "Unicode hex": "2BB1" }, { "Typeface name": "Wingdings", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "11186", "Unicode hex": "2BB2" }, { "Typeface name": "Wingdings", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "11187", "Unicode hex": "2BB3" }, { "Typeface name": "Wingdings", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "11188", "Unicode hex": "2BB4" }, { "Typeface name": "Wingdings", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "11189", "Unicode hex": "2BB5" }, { "Typeface name": "Wingdings", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "11190", "Unicode hex": "2BB6" }, { "Typeface name": "Wingdings", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "11191", "Unicode hex": "2BB7" }, { "Typeface name": "Wingdings", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128618", "Unicode hex": "1F66A" }, { "Typeface name": "Wingdings", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128619", "Unicode hex": "1F66B" }, { "Typeface name": "Wingdings", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128597", "Unicode hex": "1F655" }, { "Typeface name": "Wingdings", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128596", "Unicode hex": "1F654" }, { "Typeface name": "Wingdings", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128599", "Unicode hex": "1F657" }, { "Typeface name": "Wingdings", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128598", "Unicode hex": "1F656" }, { "Typeface name": "Wingdings", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128592", "Unicode hex": "1F650" }, { "Typeface name": "Wingdings", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128593", "Unicode hex": "1F651" }, { "Typeface name": "Wingdings", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128594", "Unicode hex": "1F652" }, { "Typeface name": "Wingdings", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128595", "Unicode hex": "1F653" }, { "Typeface name": "Wingdings", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "9003", "Unicode hex": "232B" }, { "Typeface name": "Wingdings", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "8998", "Unicode hex": "2326" }, { "Typeface name": "Wingdings", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "11160", "Unicode hex": "2B98" }, { "Typeface name": "Wingdings", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "11162", "Unicode hex": "2B9A" }, { "Typeface name": "Wingdings", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "11161", "Unicode hex": "2B99" }, { "Typeface name": "Wingdings", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "11163", "Unicode hex": "2B9B" }, { "Typeface name": "Wingdings", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "11144", "Unicode hex": "2B88" }, { "Typeface name": "Wingdings", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "11146", "Unicode hex": "2B8A" }, { "Typeface name": "Wingdings", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "11145", "Unicode hex": "2B89" }, { "Typeface name": "Wingdings", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "11147", "Unicode hex": "2B8B" }, { "Typeface name": "Wingdings", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "129128", "Unicode hex": "1F868" }, { "Typeface name": "Wingdings", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "129130", "Unicode hex": "1F86A" }, { "Typeface name": "Wingdings", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "129129", "Unicode hex": "1F869" }, { "Typeface name": "Wingdings", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "129131", "Unicode hex": "1F86B" }, { "Typeface name": "Wingdings", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "129132", "Unicode hex": "1F86C" }, { "Typeface name": "Wingdings", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "129133", "Unicode hex": "1F86D" }, { "Typeface name": "Wingdings", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "129135", "Unicode hex": "1F86F" }, { "Typeface name": "Wingdings", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "129134", "Unicode hex": "1F86E" }, { "Typeface name": "Wingdings", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "129144", "Unicode hex": "1F878" }, { "Typeface name": "Wingdings", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "129146", "Unicode hex": "1F87A" }, { "Typeface name": "Wingdings", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "129145", "Unicode hex": "1F879" }, { "Typeface name": "Wingdings", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "129147", "Unicode hex": "1F87B" }, { "Typeface name": "Wingdings", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "129148", "Unicode hex": "1F87C" }, { "Typeface name": "Wingdings", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "129149", "Unicode hex": "1F87D" }, { "Typeface name": "Wingdings", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "129151", "Unicode hex": "1F87F" }, { "Typeface name": "Wingdings", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "129150", "Unicode hex": "1F87E" }, { "Typeface name": "Wingdings", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "8678", "Unicode hex": "21E6" }, { "Typeface name": "Wingdings", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "8680", "Unicode hex": "21E8" }, { "Typeface name": "Wingdings", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "8679", "Unicode hex": "21E7" }, { "Typeface name": "Wingdings", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "8681", "Unicode hex": "21E9" }, { "Typeface name": "Wingdings", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "11012", "Unicode hex": "2B04" }, { "Typeface name": "Wingdings", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "8691", "Unicode hex": "21F3" }, { "Typeface name": "Wingdings", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "11009", "Unicode hex": "2B01" }, { "Typeface name": "Wingdings", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "11008", "Unicode hex": "2B00" }, { "Typeface name": "Wingdings", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "11011", "Unicode hex": "2B03" }, { "Typeface name": "Wingdings", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "11010", "Unicode hex": "2B02" }, { "Typeface name": "Wingdings", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "129196", "Unicode hex": "1F8AC" }, { "Typeface name": "Wingdings", "Dingbat dec": "250", "Dingbat hex": "FA", "Unicode dec": "129197", "Unicode hex": "1F8AD" }, { "Typeface name": "Wingdings", "Dingbat dec": "251", "Dingbat hex": "FB", "Unicode dec": "128502", "Unicode hex": "1F5F6" }, { "Typeface name": "Wingdings", "Dingbat dec": "252", "Dingbat hex": "FC", "Unicode dec": "10003", "Unicode hex": "2713" }, { "Typeface name": "Wingdings", "Dingbat dec": "253", "Dingbat hex": "FD", "Unicode dec": "128503", "Unicode hex": "1F5F7" }, { "Typeface name": "Wingdings", "Dingbat dec": "254", "Dingbat hex": "FE", "Unicode dec": "128505", "Unicode hex": "1F5F9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "128394", "Unicode hex": "1F58A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "128395", "Unicode hex": "1F58B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "128396", "Unicode hex": "1F58C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "128397", "Unicode hex": "1F58D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "9988", "Unicode hex": "2704" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "9984", "Unicode hex": "2700" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "128382", "Unicode hex": "1F57E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "128381", "Unicode hex": "1F57D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "128453", "Unicode hex": "1F5C5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "128454", "Unicode hex": "1F5C6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "128455", "Unicode hex": "1F5C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "128456", "Unicode hex": "1F5C8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "128457", "Unicode hex": "1F5C9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "128458", "Unicode hex": "1F5CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "128459", "Unicode hex": "1F5CB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "128460", "Unicode hex": "1F5CC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "128461", "Unicode hex": "1F5CD" }, { + "Typeface name": "Wingdings 2", "Dingbat dec": "50", + "Dingbat hex": "32", "Unicode dec": "128203", "Unicode hex": "1F4CB" + }, { "Typeface name": "Wingdings 2", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "128465", "Unicode hex": "1F5D1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "128468", "Unicode hex": "1F5D4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "128437", "Unicode hex": "1F5B5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "128438", "Unicode hex": "1F5B6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "128439", "Unicode hex": "1F5B7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "128440", "Unicode hex": "1F5B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "128429", "Unicode hex": "1F5AD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "128431", "Unicode hex": "1F5AF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "128433", "Unicode hex": "1F5B1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "128402", "Unicode hex": "1F592" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "128403", "Unicode hex": "1F593" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "128408", "Unicode hex": "1F598" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "128409", "Unicode hex": "1F599" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "128410", "Unicode hex": "1F59A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "128411", "Unicode hex": "1F59B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "128072", "Unicode hex": "1F448" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "128073", "Unicode hex": "1F449" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "128412", "Unicode hex": "1F59C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "128413", "Unicode hex": "1F59D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "128414", "Unicode hex": "1F59E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "128415", "Unicode hex": "1F59F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "128416", "Unicode hex": "1F5A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "128417", "Unicode hex": "1F5A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "128070", "Unicode hex": "1F446" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "128071", "Unicode hex": "1F447" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "128418", "Unicode hex": "1F5A2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "128419", "Unicode hex": "1F5A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "128401", "Unicode hex": "1F591" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "128500", "Unicode hex": "1F5F4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "128504", "Unicode hex": "1F5F8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "128501", "Unicode hex": "1F5F5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9745", "Unicode hex": "2611" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "11197", "Unicode hex": "2BBD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "9746", "Unicode hex": "2612" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "11198", "Unicode hex": "2BBE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "11199", "Unicode hex": "2BBF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "128711", "Unicode hex": "1F6C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "10680", "Unicode hex": "29B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "128625", "Unicode hex": "1F671" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "128628", "Unicode hex": "1F674" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "128626", "Unicode hex": "1F672" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "128627", "Unicode hex": "1F673" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "8253", "Unicode hex": "203D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "128633", "Unicode hex": "1F679" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "128634", "Unicode hex": "1F67A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "128635", "Unicode hex": "1F67B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "128614", "Unicode hex": "1F666" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "128612", "Unicode hex": "1F664" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "128613", "Unicode hex": "1F665" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "128615", "Unicode hex": "1F667" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "128602", "Unicode hex": "1F65A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "128600", "Unicode hex": "1F658" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "128601", "Unicode hex": "1F659" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "128603", "Unicode hex": "1F65B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "9450", "Unicode hex": "24EA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "9312", "Unicode hex": "2460" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "9313", "Unicode hex": "2461" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "9314", "Unicode hex": "2462" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "9315", "Unicode hex": "2463" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "9316", "Unicode hex": "2464" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "9317", "Unicode hex": "2465" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "9318", "Unicode hex": "2466" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "9319", "Unicode hex": "2467" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "9320", "Unicode hex": "2468" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "9321", "Unicode hex": "2469" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "9471", "Unicode hex": "24FF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "10102", "Unicode hex": "2776" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "10103", "Unicode hex": "2777" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "10104", "Unicode hex": "2778" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "10105", "Unicode hex": "2779" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "10106", "Unicode hex": "277A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "10107", "Unicode hex": "277B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "10108", "Unicode hex": "277C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "10109", "Unicode hex": "277D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "10110", "Unicode hex": "277E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "10111", "Unicode hex": "277F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "9737", "Unicode hex": "2609" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "127765", "Unicode hex": "1F315" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "9789", "Unicode hex": "263D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "9790", "Unicode hex": "263E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "11839", "Unicode hex": "2E3F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "10013", "Unicode hex": "271D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "128327", "Unicode hex": "1F547" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "128348", "Unicode hex": "1F55C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "128349", "Unicode hex": "1F55D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "128350", "Unicode hex": "1F55E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "128351", "Unicode hex": "1F55F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "128352", "Unicode hex": "1F560" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "128353", "Unicode hex": "1F561" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "128354", "Unicode hex": "1F562" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "128355", "Unicode hex": "1F563" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "128356", "Unicode hex": "1F564" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "128357", "Unicode hex": "1F565" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "128358", "Unicode hex": "1F566" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "128359", "Unicode hex": "1F567" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "128616", "Unicode hex": "1F668" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "128617", "Unicode hex": "1F669" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "8901", "Unicode hex": "22C5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "128900", "Unicode hex": "1F784" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "10625", "Unicode hex": "2981" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "9679", "Unicode hex": "25CF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "9675", "Unicode hex": "25CB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "128901", "Unicode hex": "1F785" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "128903", "Unicode hex": "1F787" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "128905", "Unicode hex": "1F789" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "8857", "Unicode hex": "2299" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "10687", "Unicode hex": "29BF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "128908", "Unicode hex": "1F78C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "128909", "Unicode hex": "1F78D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "9726", "Unicode hex": "25FE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "9632", "Unicode hex": "25A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "9633", "Unicode hex": "25A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "128913", "Unicode hex": "1F791" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "128914", "Unicode hex": "1F792" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "128915", "Unicode hex": "1F793" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "128916", "Unicode hex": "1F794" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "9635", "Unicode hex": "25A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "128917", "Unicode hex": "1F795" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "128918", "Unicode hex": "1F796" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "128919", "Unicode hex": "1F797" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "128920", "Unicode hex": "1F798" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "11049", "Unicode hex": "2B29" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "11045", "Unicode hex": "2B25" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "9671", "Unicode hex": "25C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "128922", "Unicode hex": "1F79A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "9672", "Unicode hex": "25C8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "128923", "Unicode hex": "1F79B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "128924", "Unicode hex": "1F79C" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "128925", "Unicode hex": "1F79D" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "128926", "Unicode hex": "1F79E" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "11050", "Unicode hex": "2B2A" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "11047", "Unicode hex": "2B27" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "9674", "Unicode hex": "25CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "128928", "Unicode hex": "1F7A0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "9686", "Unicode hex": "25D6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "9687", "Unicode hex": "25D7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "11210", "Unicode hex": "2BCA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "11211", "Unicode hex": "2BCB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "11200", "Unicode hex": "2BC0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "11201", "Unicode hex": "2BC1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "11039", "Unicode hex": "2B1F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "11202", "Unicode hex": "2BC2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "11043", "Unicode hex": "2B23" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "11042", "Unicode hex": "2B22" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "11203", "Unicode hex": "2BC3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "11204", "Unicode hex": "2BC4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "128929", "Unicode hex": "1F7A1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "128930", "Unicode hex": "1F7A2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "128931", "Unicode hex": "1F7A3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "128932", "Unicode hex": "1F7A4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "128933", "Unicode hex": "1F7A5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "128934", "Unicode hex": "1F7A6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "128935", "Unicode hex": "1F7A7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "128936", "Unicode hex": "1F7A8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "128937", "Unicode hex": "1F7A9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "128938", "Unicode hex": "1F7AA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "128939", "Unicode hex": "1F7AB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "128940", "Unicode hex": "1F7AC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "128941", "Unicode hex": "1F7AD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "128942", "Unicode hex": "1F7AE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "128943", "Unicode hex": "1F7AF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "128944", "Unicode hex": "1F7B0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "128945", "Unicode hex": "1F7B1" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "128946", "Unicode hex": "1F7B2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "128947", "Unicode hex": "1F7B3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "128948", "Unicode hex": "1F7B4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "128949", "Unicode hex": "1F7B5" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "128950", "Unicode hex": "1F7B6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "128951", "Unicode hex": "1F7B7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "128952", "Unicode hex": "1F7B8" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "128953", "Unicode hex": "1F7B9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "128954", "Unicode hex": "1F7BA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "128955", "Unicode hex": "1F7BB" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "128956", "Unicode hex": "1F7BC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "128957", "Unicode hex": "1F7BD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "128958", "Unicode hex": "1F7BE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "128959", "Unicode hex": "1F7BF" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "128960", "Unicode hex": "1F7C0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "128962", "Unicode hex": "1F7C2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "128964", "Unicode hex": "1F7C4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "128966", "Unicode hex": "1F7C6" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "128969", "Unicode hex": "1F7C9" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "128970", "Unicode hex": "1F7CA" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "10038", "Unicode hex": "2736" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "128972", "Unicode hex": "1F7CC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "128974", "Unicode hex": "1F7CE" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "128976", "Unicode hex": "1F7D0" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "128978", "Unicode hex": "1F7D2" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "10041", "Unicode hex": "2739" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "241", "Dingbat hex": "F1", "Unicode dec": "128963", "Unicode hex": "1F7C3" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "242", "Dingbat hex": "F2", "Unicode dec": "128967", "Unicode hex": "1F7C7" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "243", "Dingbat hex": "F3", "Unicode dec": "10031", "Unicode hex": "272F" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "244", "Dingbat hex": "F4", "Unicode dec": "128973", "Unicode hex": "1F7CD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "245", "Dingbat hex": "F5", "Unicode dec": "128980", "Unicode hex": "1F7D4" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "246", "Dingbat hex": "F6", "Unicode dec": "11212", "Unicode hex": "2BCC" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "247", "Dingbat hex": "F7", "Unicode dec": "11213", "Unicode hex": "2BCD" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "248", "Dingbat hex": "F8", "Unicode dec": "8251", "Unicode hex": "203B" }, { "Typeface name": "Wingdings 2", "Dingbat dec": "249", "Dingbat hex": "F9", "Unicode dec": "8258", "Unicode hex": "2042" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "32", "Dingbat hex": "20", "Unicode dec": "32", "Unicode hex": "20" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "33", "Dingbat hex": "21", "Unicode dec": "11104", "Unicode hex": "2B60" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "34", "Dingbat hex": "22", "Unicode dec": "11106", "Unicode hex": "2B62" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "35", "Dingbat hex": "23", "Unicode dec": "11105", "Unicode hex": "2B61" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "36", "Dingbat hex": "24", "Unicode dec": "11107", "Unicode hex": "2B63" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "37", "Dingbat hex": "25", "Unicode dec": "11110", "Unicode hex": "2B66" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "38", "Dingbat hex": "26", "Unicode dec": "11111", "Unicode hex": "2B67" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "39", "Dingbat hex": "27", "Unicode dec": "11113", "Unicode hex": "2B69" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "40", "Dingbat hex": "28", "Unicode dec": "11112", "Unicode hex": "2B68" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "41", "Dingbat hex": "29", "Unicode dec": "11120", "Unicode hex": "2B70" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "42", "Dingbat hex": "2A", "Unicode dec": "11122", "Unicode hex": "2B72" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "43", "Dingbat hex": "2B", "Unicode dec": "11121", "Unicode hex": "2B71" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "44", "Dingbat hex": "2C", "Unicode dec": "11123", "Unicode hex": "2B73" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "45", "Dingbat hex": "2D", "Unicode dec": "11126", "Unicode hex": "2B76" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "46", "Dingbat hex": "2E", "Unicode dec": "11128", "Unicode hex": "2B78" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "47", "Dingbat hex": "2F", "Unicode dec": "11131", "Unicode hex": "2B7B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "48", "Dingbat hex": "30", "Unicode dec": "11133", "Unicode hex": "2B7D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "49", "Dingbat hex": "31", "Unicode dec": "11108", "Unicode hex": "2B64" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "50", "Dingbat hex": "32", "Unicode dec": "11109", "Unicode hex": "2B65" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "51", "Dingbat hex": "33", "Unicode dec": "11114", "Unicode hex": "2B6A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "52", "Dingbat hex": "34", "Unicode dec": "11116", "Unicode hex": "2B6C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "53", "Dingbat hex": "35", "Unicode dec": "11115", "Unicode hex": "2B6B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "54", "Dingbat hex": "36", "Unicode dec": "11117", "Unicode hex": "2B6D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "55", "Dingbat hex": "37", "Unicode dec": "11085", "Unicode hex": "2B4D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "56", "Dingbat hex": "38", "Unicode dec": "11168", "Unicode hex": "2BA0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "57", "Dingbat hex": "39", "Unicode dec": "11169", "Unicode hex": "2BA1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "58", "Dingbat hex": "3A", "Unicode dec": "11170", "Unicode hex": "2BA2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "59", "Dingbat hex": "3B", "Unicode dec": "11171", "Unicode hex": "2BA3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "60", "Dingbat hex": "3C", "Unicode dec": "11172", "Unicode hex": "2BA4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "61", "Dingbat hex": "3D", "Unicode dec": "11173", "Unicode hex": "2BA5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "62", "Dingbat hex": "3E", "Unicode dec": "11174", "Unicode hex": "2BA6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "63", "Dingbat hex": "3F", "Unicode dec": "11175", "Unicode hex": "2BA7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "64", "Dingbat hex": "40", "Unicode dec": "11152", "Unicode hex": "2B90" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "65", "Dingbat hex": "41", "Unicode dec": "11153", "Unicode hex": "2B91" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "66", "Dingbat hex": "42", "Unicode dec": "11154", "Unicode hex": "2B92" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "67", "Dingbat hex": "43", "Unicode dec": "11155", "Unicode hex": "2B93" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "68", "Dingbat hex": "44", "Unicode dec": "11136", "Unicode hex": "2B80" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "69", "Dingbat hex": "45", "Unicode dec": "11139", "Unicode hex": "2B83" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "70", "Dingbat hex": "46", "Unicode dec": "11134", "Unicode hex": "2B7E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "71", "Dingbat hex": "47", "Unicode dec": "11135", "Unicode hex": "2B7F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "72", "Dingbat hex": "48", "Unicode dec": "11140", "Unicode hex": "2B84" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "73", "Dingbat hex": "49", "Unicode dec": "11142", "Unicode hex": "2B86" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "74", "Dingbat hex": "4A", "Unicode dec": "11141", "Unicode hex": "2B85" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "75", "Dingbat hex": "4B", "Unicode dec": "11143", "Unicode hex": "2B87" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "76", "Dingbat hex": "4C", "Unicode dec": "11151", "Unicode hex": "2B8F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "77", "Dingbat hex": "4D", "Unicode dec": "11149", "Unicode hex": "2B8D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "78", "Dingbat hex": "4E", "Unicode dec": "11150", "Unicode hex": "2B8E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "79", "Dingbat hex": "4F", "Unicode dec": "11148", "Unicode hex": "2B8C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "80", "Dingbat hex": "50", "Unicode dec": "11118", "Unicode hex": "2B6E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "81", "Dingbat hex": "51", "Unicode dec": "11119", "Unicode hex": "2B6F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "82", "Dingbat hex": "52", "Unicode dec": "9099", "Unicode hex": "238B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "83", "Dingbat hex": "53", "Unicode dec": "8996", "Unicode hex": "2324" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "84", "Dingbat hex": "54", "Unicode dec": "8963", "Unicode hex": "2303" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "85", "Dingbat hex": "55", "Unicode dec": "8997", "Unicode hex": "2325" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "86", "Dingbat hex": "56", "Unicode dec": "9251", "Unicode hex": "2423" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "87", "Dingbat hex": "57", "Unicode dec": "9085", "Unicode hex": "237D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "88", "Dingbat hex": "58", "Unicode dec": "8682", "Unicode hex": "21EA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "89", "Dingbat hex": "59", "Unicode dec": "11192", "Unicode hex": "2BB8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "90", "Dingbat hex": "5A", "Unicode dec": "129184", "Unicode hex": "1F8A0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "91", "Dingbat hex": "5B", "Unicode dec": "129185", "Unicode hex": "1F8A1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "92", "Dingbat hex": "5C", "Unicode dec": "129186", "Unicode hex": "1F8A2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "93", "Dingbat hex": "5D", "Unicode dec": "129187", "Unicode hex": "1F8A3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "94", "Dingbat hex": "5E", "Unicode dec": "129188", "Unicode hex": "1F8A4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "95", "Dingbat hex": "5F", "Unicode dec": "129189", "Unicode hex": "1F8A5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "96", "Dingbat hex": "60", "Unicode dec": "129190", "Unicode hex": "1F8A6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "97", "Dingbat hex": "61", "Unicode dec": "129191", "Unicode hex": "1F8A7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "98", "Dingbat hex": "62", "Unicode dec": "129192", "Unicode hex": "1F8A8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "99", "Dingbat hex": "63", "Unicode dec": "129193", "Unicode hex": "1F8A9" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "100", "Dingbat hex": "64", "Unicode dec": "129194", "Unicode hex": "1F8AA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "101", "Dingbat hex": "65", "Unicode dec": "129195", "Unicode hex": "1F8AB" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "102", "Dingbat hex": "66", "Unicode dec": "129104", "Unicode hex": "1F850" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "103", "Dingbat hex": "67", "Unicode dec": "129106", "Unicode hex": "1F852" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "104", "Dingbat hex": "68", "Unicode dec": "129105", "Unicode hex": "1F851" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "105", "Dingbat hex": "69", "Unicode dec": "129107", "Unicode hex": "1F853" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "106", "Dingbat hex": "6A", "Unicode dec": "129108", "Unicode hex": "1F854" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "107", "Dingbat hex": "6B", "Unicode dec": "129109", "Unicode hex": "1F855" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "108", "Dingbat hex": "6C", "Unicode dec": "129111", "Unicode hex": "1F857" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "109", "Dingbat hex": "6D", "Unicode dec": "129110", "Unicode hex": "1F856" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "110", "Dingbat hex": "6E", "Unicode dec": "129112", "Unicode hex": "1F858" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "111", "Dingbat hex": "6F", "Unicode dec": "129113", "Unicode hex": "1F859" }, { + "Typeface name": "Wingdings 3", "Dingbat dec": "112", "Dingbat hex": "70", "Unicode dec": "9650", "Unicode hex": "25B2" + }, { "Typeface name": "Wingdings 3", "Dingbat dec": "113", "Dingbat hex": "71", "Unicode dec": "9660", "Unicode hex": "25BC" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "114", "Dingbat hex": "72", "Unicode dec": "9651", "Unicode hex": "25B3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "115", "Dingbat hex": "73", "Unicode dec": "9661", "Unicode hex": "25BD" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "116", "Dingbat hex": "74", "Unicode dec": "9664", "Unicode hex": "25C0" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "117", "Dingbat hex": "75", "Unicode dec": "9654", "Unicode hex": "25B6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "118", "Dingbat hex": "76", "Unicode dec": "9665", "Unicode hex": "25C1" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "119", "Dingbat hex": "77", "Unicode dec": "9655", "Unicode hex": "25B7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "120", "Dingbat hex": "78", "Unicode dec": "9699", "Unicode hex": "25E3" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "121", "Dingbat hex": "79", "Unicode dec": "9698", "Unicode hex": "25E2" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "122", "Dingbat hex": "7A", "Unicode dec": "9700", "Unicode hex": "25E4" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "123", "Dingbat hex": "7B", "Unicode dec": "9701", "Unicode hex": "25E5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "124", "Dingbat hex": "7C", "Unicode dec": "128896", "Unicode hex": "1F780" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "125", "Dingbat hex": "7D", "Unicode dec": "128898", "Unicode hex": "1F782" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "126", "Dingbat hex": "7E", "Unicode dec": "128897", "Unicode hex": "1F781" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "128", "Dingbat hex": "80", "Unicode dec": "128899", "Unicode hex": "1F783" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "129", "Dingbat hex": "81", "Unicode dec": "11205", "Unicode hex": "2BC5" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "130", "Dingbat hex": "82", "Unicode dec": "11206", "Unicode hex": "2BC6" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "131", "Dingbat hex": "83", "Unicode dec": "11207", "Unicode hex": "2BC7" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "132", "Dingbat hex": "84", "Unicode dec": "11208", "Unicode hex": "2BC8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "133", "Dingbat hex": "85", "Unicode dec": "11164", "Unicode hex": "2B9C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "134", "Dingbat hex": "86", "Unicode dec": "11166", "Unicode hex": "2B9E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "135", "Dingbat hex": "87", "Unicode dec": "11165", "Unicode hex": "2B9D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "136", "Dingbat hex": "88", "Unicode dec": "11167", "Unicode hex": "2B9F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "137", "Dingbat hex": "89", "Unicode dec": "129040", "Unicode hex": "1F810" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "138", "Dingbat hex": "8A", "Unicode dec": "129042", "Unicode hex": "1F812" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "139", "Dingbat hex": "8B", "Unicode dec": "129041", "Unicode hex": "1F811" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "140", "Dingbat hex": "8C", "Unicode dec": "129043", "Unicode hex": "1F813" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "141", "Dingbat hex": "8D", "Unicode dec": "129044", "Unicode hex": "1F814" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "142", "Dingbat hex": "8E", "Unicode dec": "129046", "Unicode hex": "1F816" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "143", "Dingbat hex": "8F", "Unicode dec": "129045", "Unicode hex": "1F815" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "144", "Dingbat hex": "90", "Unicode dec": "129047", "Unicode hex": "1F817" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "145", "Dingbat hex": "91", "Unicode dec": "129048", "Unicode hex": "1F818" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "146", "Dingbat hex": "92", "Unicode dec": "129050", "Unicode hex": "1F81A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "147", "Dingbat hex": "93", "Unicode dec": "129049", "Unicode hex": "1F819" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "148", "Dingbat hex": "94", "Unicode dec": "129051", "Unicode hex": "1F81B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "149", "Dingbat hex": "95", "Unicode dec": "129052", "Unicode hex": "1F81C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "150", "Dingbat hex": "96", "Unicode dec": "129054", "Unicode hex": "1F81E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "151", "Dingbat hex": "97", "Unicode dec": "129053", "Unicode hex": "1F81D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "152", "Dingbat hex": "98", "Unicode dec": "129055", "Unicode hex": "1F81F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "153", "Dingbat hex": "99", "Unicode dec": "129024", "Unicode hex": "1F800" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "154", "Dingbat hex": "9A", "Unicode dec": "129026", "Unicode hex": "1F802" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "155", "Dingbat hex": "9B", "Unicode dec": "129025", "Unicode hex": "1F801" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "156", "Dingbat hex": "9C", "Unicode dec": "129027", "Unicode hex": "1F803" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "157", "Dingbat hex": "9D", "Unicode dec": "129028", "Unicode hex": "1F804" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "158", "Dingbat hex": "9E", "Unicode dec": "129030", "Unicode hex": "1F806" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "159", "Dingbat hex": "9F", "Unicode dec": "129029", "Unicode hex": "1F805" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "160", "Dingbat hex": "A0", "Unicode dec": "129031", "Unicode hex": "1F807" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "161", "Dingbat hex": "A1", "Unicode dec": "129032", "Unicode hex": "1F808" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "162", "Dingbat hex": "A2", "Unicode dec": "129034", "Unicode hex": "1F80A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "163", "Dingbat hex": "A3", "Unicode dec": "129033", "Unicode hex": "1F809" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "164", "Dingbat hex": "A4", "Unicode dec": "129035", "Unicode hex": "1F80B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "165", "Dingbat hex": "A5", "Unicode dec": "129056", "Unicode hex": "1F820" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "166", "Dingbat hex": "A6", "Unicode dec": "129058", "Unicode hex": "1F822" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "167", "Dingbat hex": "A7", "Unicode dec": "129060", "Unicode hex": "1F824" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "168", "Dingbat hex": "A8", "Unicode dec": "129062", "Unicode hex": "1F826" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "169", "Dingbat hex": "A9", "Unicode dec": "129064", "Unicode hex": "1F828" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "170", "Dingbat hex": "AA", "Unicode dec": "129066", "Unicode hex": "1F82A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "171", "Dingbat hex": "AB", "Unicode dec": "129068", "Unicode hex": "1F82C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "172", "Dingbat hex": "AC", "Unicode dec": "129180", "Unicode hex": "1F89C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "173", "Dingbat hex": "AD", "Unicode dec": "129181", "Unicode hex": "1F89D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "174", "Dingbat hex": "AE", "Unicode dec": "129182", "Unicode hex": "1F89E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "175", "Dingbat hex": "AF", "Unicode dec": "129183", "Unicode hex": "1F89F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "176", "Dingbat hex": "B0", "Unicode dec": "129070", "Unicode hex": "1F82E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "177", "Dingbat hex": "B1", "Unicode dec": "129072", "Unicode hex": "1F830" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "178", "Dingbat hex": "B2", "Unicode dec": "129074", "Unicode hex": "1F832" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "179", "Dingbat hex": "B3", "Unicode dec": "129076", "Unicode hex": "1F834" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "180", "Dingbat hex": "B4", "Unicode dec": "129078", "Unicode hex": "1F836" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "181", "Dingbat hex": "B5", "Unicode dec": "129080", "Unicode hex": "1F838" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "182", "Dingbat hex": "B6", "Unicode dec": "129082", "Unicode hex": "1F83A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "183", "Dingbat hex": "B7", "Unicode dec": "129081", "Unicode hex": "1F839" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "184", "Dingbat hex": "B8", "Unicode dec": "129083", "Unicode hex": "1F83B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "185", "Dingbat hex": "B9", "Unicode dec": "129176", "Unicode hex": "1F898" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "186", "Dingbat hex": "BA", "Unicode dec": "129178", "Unicode hex": "1F89A" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "187", "Dingbat hex": "BB", "Unicode dec": "129177", "Unicode hex": "1F899" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "188", "Dingbat hex": "BC", "Unicode dec": "129179", "Unicode hex": "1F89B" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "189", "Dingbat hex": "BD", "Unicode dec": "129084", "Unicode hex": "1F83C" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "190", "Dingbat hex": "BE", "Unicode dec": "129086", "Unicode hex": "1F83E" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "191", "Dingbat hex": "BF", "Unicode dec": "129085", "Unicode hex": "1F83D" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "192", "Dingbat hex": "C0", "Unicode dec": "129087", "Unicode hex": "1F83F" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "193", "Dingbat hex": "C1", "Unicode dec": "129088", "Unicode hex": "1F840" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "194", "Dingbat hex": "C2", "Unicode dec": "129090", "Unicode hex": "1F842" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "195", "Dingbat hex": "C3", "Unicode dec": "129089", "Unicode hex": "1F841" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "196", "Dingbat hex": "C4", "Unicode dec": "129091", "Unicode hex": "1F843" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "197", "Dingbat hex": "C5", "Unicode dec": "129092", "Unicode hex": "1F844" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "198", "Dingbat hex": "C6", "Unicode dec": "129094", "Unicode hex": "1F846" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "199", "Dingbat hex": "C7", "Unicode dec": "129093", "Unicode hex": "1F845" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "200", "Dingbat hex": "C8", "Unicode dec": "129095", "Unicode hex": "1F847" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "201", "Dingbat hex": "C9", "Unicode dec": "11176", "Unicode hex": "2BA8" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "202", "Dingbat hex": "CA", "Unicode dec": "11177", "Unicode hex": "2BA9" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "203", "Dingbat hex": "CB", "Unicode dec": "11178", "Unicode hex": "2BAA" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "204", "Dingbat hex": "CC", "Unicode dec": "11179", "Unicode hex": "2BAB" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "205", "Dingbat hex": "CD", "Unicode dec": "11180", "Unicode hex": "2BAC" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "206", "Dingbat hex": "CE", "Unicode dec": "11181", "Unicode hex": "2BAD" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "207", "Dingbat hex": "CF", "Unicode dec": "11182", "Unicode hex": "2BAE" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "208", "Dingbat hex": "D0", "Unicode dec": "11183", "Unicode hex": "2BAF" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "209", "Dingbat hex": "D1", "Unicode dec": "129120", "Unicode hex": "1F860" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "210", "Dingbat hex": "D2", "Unicode dec": "129122", "Unicode hex": "1F862" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "211", "Dingbat hex": "D3", "Unicode dec": "129121", "Unicode hex": "1F861" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "212", "Dingbat hex": "D4", "Unicode dec": "129123", "Unicode hex": "1F863" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "213", "Dingbat hex": "D5", "Unicode dec": "129124", "Unicode hex": "1F864" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "214", "Dingbat hex": "D6", "Unicode dec": "129125", "Unicode hex": "1F865" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "215", "Dingbat hex": "D7", "Unicode dec": "129127", "Unicode hex": "1F867" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "216", "Dingbat hex": "D8", "Unicode dec": "129126", "Unicode hex": "1F866" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "217", "Dingbat hex": "D9", "Unicode dec": "129136", "Unicode hex": "1F870" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "218", "Dingbat hex": "DA", "Unicode dec": "129138", "Unicode hex": "1F872" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "219", "Dingbat hex": "DB", "Unicode dec": "129137", "Unicode hex": "1F871" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "220", "Dingbat hex": "DC", "Unicode dec": "129139", "Unicode hex": "1F873" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "221", "Dingbat hex": "DD", "Unicode dec": "129140", "Unicode hex": "1F874" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "222", "Dingbat hex": "DE", "Unicode dec": "129141", "Unicode hex": "1F875" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "223", "Dingbat hex": "DF", "Unicode dec": "129143", "Unicode hex": "1F877" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "224", "Dingbat hex": "E0", "Unicode dec": "129142", "Unicode hex": "1F876" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "225", "Dingbat hex": "E1", "Unicode dec": "129152", "Unicode hex": "1F880" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "226", "Dingbat hex": "E2", "Unicode dec": "129154", "Unicode hex": "1F882" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "227", "Dingbat hex": "E3", "Unicode dec": "129153", "Unicode hex": "1F881" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "228", "Dingbat hex": "E4", "Unicode dec": "129155", "Unicode hex": "1F883" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "229", "Dingbat hex": "E5", "Unicode dec": "129156", "Unicode hex": "1F884" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "230", "Dingbat hex": "E6", "Unicode dec": "129157", "Unicode hex": "1F885" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "231", "Dingbat hex": "E7", "Unicode dec": "129159", "Unicode hex": "1F887" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "232", "Dingbat hex": "E8", "Unicode dec": "129158", "Unicode hex": "1F886" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "233", "Dingbat hex": "E9", "Unicode dec": "129168", "Unicode hex": "1F890" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "234", "Dingbat hex": "EA", "Unicode dec": "129170", "Unicode hex": "1F892" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "235", "Dingbat hex": "EB", "Unicode dec": "129169", "Unicode hex": "1F891" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "236", "Dingbat hex": "EC", "Unicode dec": "129171", "Unicode hex": "1F893" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "237", "Dingbat hex": "ED", "Unicode dec": "129172", "Unicode hex": "1F894" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "238", "Dingbat hex": "EE", "Unicode dec": "129174", "Unicode hex": "1F896" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "239", "Dingbat hex": "EF", "Unicode dec": "129173", "Unicode hex": "1F895" }, { "Typeface name": "Wingdings 3", "Dingbat dec": "240", "Dingbat hex": "F0", "Unicode dec": "129175", "Unicode hex": "1F897" }]; exports["default"] = dingbats + }, {}], 81: [function (require, module, exports) { "use strict"; function codePoint(typeface, codePoint) { return dingbatsByCodePoint[typeface.toUpperCase() + "_" + codePoint] } function dec(typeface, dec) { return codePoint(typeface, parseInt(dec, 10)) } function hex(typeface, hex) { return codePoint(typeface, parseInt(hex, 16)) } function fromCodePointPolyfill(codePoint) { if (65535 >= codePoint) return String.fromCharCode(codePoint); var highSurrogate = Math.floor((codePoint - 65536) / 1024) + 55296, lowSurrogate = (codePoint - 65536) % 1024 + 56320; return String.fromCharCode(highSurrogate, lowSurrogate) } var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod } }; Object.defineProperty(exports, "__esModule", { value: !0 }), exports.hex = exports.dec = exports.codePoint = void 0; for (var dingbats_1 = __importDefault(require("./dingbats")), dingbatsByCodePoint = {}, fromCodePoint = String.fromCodePoint ? String.fromCodePoint : fromCodePointPolyfill, _i = 0, dingbats_2 = dingbats_1["default"]; _i < dingbats_2.length; _i++) { var dingbat = dingbats_2[_i], codePoint_1 = parseInt(dingbat["Unicode dec"], 10), scalarValue = { codePoint: codePoint_1, string: fromCodePoint(codePoint_1) }; dingbatsByCodePoint[dingbat["Typeface name"].toUpperCase() + "_" + dingbat["Dingbat dec"]] = scalarValue } exports.codePoint = codePoint, exports.dec = dec, exports.hex = hex }, { "./dingbats": 80 }], 82: [function (require, module, exports) { function EventEmitter() { this._events = this._events || {}, this._maxListeners = this._maxListeners || void 0 } function isFunction(arg) { return "function" == typeof arg } function isNumber(arg) { return "number" == typeof arg } function isObject(arg) { return "object" == typeof arg && null !== arg } function isUndefined(arg) { return void 0 === arg } module.exports = EventEmitter, EventEmitter.EventEmitter = EventEmitter, EventEmitter.prototype._events = void 0, EventEmitter.prototype._maxListeners = void 0, EventEmitter.defaultMaxListeners = 10, EventEmitter.prototype.setMaxListeners = function (n) { if (!isNumber(n) || 0 > n || isNaN(n)) throw TypeError("n must be a positive number"); return this._maxListeners = n, this }, EventEmitter.prototype.emit = function (type) { var er, handler, len, args, i, listeners; if (this._events || (this._events = {}), "error" === type && (!this._events.error || isObject(this._events.error) && !this._events.error.length)) { if (er = arguments[1], er instanceof Error) throw er; var err = new Error('Uncaught, unspecified "error" event. (' + er + ")"); throw err.context = er, err } if (handler = this._events[type], isUndefined(handler)) return !1; if (isFunction(handler)) switch (arguments.length) { case 1: handler.call(this); break; case 2: handler.call(this, arguments[1]); break; case 3: handler.call(this, arguments[1], arguments[2]); break; default: args = Array.prototype.slice.call(arguments, 1), handler.apply(this, args) } else if (isObject(handler)) for (args = Array.prototype.slice.call(arguments, 1), listeners = handler.slice(), len = listeners.length, i = 0; len > i; i++)listeners[i].apply(this, args); return !0 }, EventEmitter.prototype.addListener = function (type, listener) { var m; if (!isFunction(listener)) throw TypeError("listener must be a function"); return this._events || (this._events = {}), this._events.newListener && this.emit("newListener", type, isFunction(listener.listener) ? listener.listener : listener), this._events[type] ? isObject(this._events[type]) ? this._events[type].push(listener) : this._events[type] = [this._events[type], listener] : this._events[type] = listener, isObject(this._events[type]) && !this._events[type].warned && (m = isUndefined(this._maxListeners) ? EventEmitter.defaultMaxListeners : this._maxListeners, m && m > 0 && this._events[type].length > m && (this._events[type].warned = !0, console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[type].length), "function" == typeof console.trace && console.trace())), this }, EventEmitter.prototype.on = EventEmitter.prototype.addListener, EventEmitter.prototype.once = function (type, listener) { function g() { this.removeListener(type, g), fired || (fired = !0, listener.apply(this, arguments)) } if (!isFunction(listener)) throw TypeError("listener must be a function"); var fired = !1; return g.listener = listener, this.on(type, g), this }, EventEmitter.prototype.removeListener = function (type, listener) { var list, position, length, i; if (!isFunction(listener)) throw TypeError("listener must be a function"); if (!this._events || !this._events[type]) return this; if (list = this._events[type], length = list.length, position = -1, list === listener || isFunction(list.listener) && list.listener === listener) delete this._events[type], this._events.removeListener && this.emit("removeListener", type, listener); else if (isObject(list)) { for (i = length; i-- > 0;)if (list[i] === listener || list[i].listener && list[i].listener === listener) { position = i; break } if (0 > position) return this; 1 === list.length ? (list.length = 0, delete this._events[type]) : list.splice(position, 1), this._events.removeListener && this.emit("removeListener", type, listener) } return this }, EventEmitter.prototype.removeAllListeners = function (type) { var key, listeners; if (!this._events) return this; if (!this._events.removeListener) return 0 === arguments.length ? this._events = {} : this._events[type] && delete this._events[type], this; if (0 === arguments.length) { for (key in this._events) "removeListener" !== key && this.removeAllListeners(key); return this.removeAllListeners("removeListener"), this._events = {}, this } if (listeners = this._events[type], isFunction(listeners)) this.removeListener(type, listeners); else if (listeners) for (; listeners.length;)this.removeListener(type, listeners[listeners.length - 1]); return delete this._events[type], this }, EventEmitter.prototype.listeners = function (type) { var ret; return ret = this._events && this._events[type] ? isFunction(this._events[type]) ? [this._events[type]] : this._events[type].slice() : [] }, EventEmitter.prototype.listenerCount = function (type) { if (this._events) { var evlistener = this._events[type]; if (isFunction(evlistener)) return 1; if (evlistener) return evlistener.length } return 0 }, EventEmitter.listenerCount = function (emitter, type) { return emitter.listenerCount(type) } }, {}], 83: [function (require, module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m, eLen = 8 * nBytes - mLen - 1, eMax = (1 << eLen) - 1, eBias = eMax >> 1, nBits = -7, i = isLE ? nBytes - 1 : 0, d = isLE ? -1 : 1, s = buffer[offset + i]; for (i += d, e = s & (1 << -nBits) - 1, s >>= -nBits, nBits += eLen; nBits > 0; e = 256 * e + buffer[offset + i], i += d, nBits -= 8); for (m = e & (1 << -nBits) - 1, e >>= -nBits, nBits += mLen; nBits > 0; m = 256 * m + buffer[offset + i], i += d, nBits -= 8); if (0 === e) e = 1 - eBias; else { if (e === eMax) return m ? NaN : (s ? -1 : 1) * (1 / 0); m += Math.pow(2, mLen), e -= eBias } return (s ? -1 : 1) * m * Math.pow(2, e - mLen) }, exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { var e, m, c, eLen = 8 * nBytes - mLen - 1, eMax = (1 << eLen) - 1, eBias = eMax >> 1, rt = 23 === mLen ? Math.pow(2, -24) - Math.pow(2, -77) : 0, i = isLE ? 0 : nBytes - 1, d = isLE ? 1 : -1, s = 0 > value || 0 === value && 0 > 1 / value ? 1 : 0; for (value = Math.abs(value), isNaN(value) || value === 1 / 0 ? (m = isNaN(value) ? 1 : 0, e = eMax) : (e = Math.floor(Math.log(value) / Math.LN2), value * (c = Math.pow(2, -e)) < 1 && (e--, c *= 2), value += e + eBias >= 1 ? rt / c : rt * Math.pow(2, 1 - eBias), value * c >= 2 && (e++, c /= 2), e + eBias >= eMax ? (m = 0, e = eMax) : e + eBias >= 1 ? (m = (value * c - 1) * Math.pow(2, mLen), e += eBias) : (m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen), e = 0)); mLen >= 8; buffer[offset + i] = 255 & m, i += d, m /= 256, mLen -= 8); for (e = e << mLen | m, eLen += mLen; eLen > 0; buffer[offset + i] = 255 & e, i += d, e /= 256, eLen -= 8); buffer[offset + i - d] |= 128 * s } }, {}], 84: [function (require, module, exports) { "function" == typeof Object.create ? module.exports = function (ctor, superCtor) { ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: !1, writable: !0, configurable: !0 } }) } : module.exports = function (ctor, superCtor) { ctor.super_ = superCtor; var TempCtor = function () { }; TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor } }, {}], 85: [function (require, module, exports) { function isBuffer(obj) { return !!obj.constructor && "function" == typeof obj.constructor.isBuffer && obj.constructor.isBuffer(obj) } function isSlowBuffer(obj) { return "function" == typeof obj.readFloatLE && "function" == typeof obj.slice && isBuffer(obj.slice(0, 0)) } module.exports = function (obj) { return null != obj && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) } }, {}], 86: [function (require, module, exports) { var toString = {}.toString; module.exports = Array.isArray || function (arr) { return "[object Array]" == toString.call(arr) } }, {}], 87: [function (require, module, exports) { (function (global, Buffer) { !function (t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).JSZip = t() }(function () { return function s(a, o, h) { function u(r, t) { if (!o[r]) { if (!a[r]) { var e = "function" == typeof require && require; if (!t && e) return e(r, !0); if (l) return l(r, !0); var i = new Error("Cannot find module '" + r + "'"); throw i.code = "MODULE_NOT_FOUND", i } var n = o[r] = { exports: {} }; a[r][0].call(n.exports, function (t) { var e = a[r][1][t]; return u(e || t) }, n, n.exports, s, a, o, h) } return o[r].exports } for (var l = "function" == typeof require && require, t = 0; t < h.length; t++)u(h[t]); return u }({ - 1: [function (t, e, r) { "use strict"; var c = t("./utils"), d = t("./support"), p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; r.encode = function (t) { for (var e, r, i, n, s, a, o, h = [], u = 0, l = t.length, f = l, d = "string" !== c.getTypeOf(t); u < t.length;)f = l - u, i = d ? (e = t[u++], r = l > u ? t[u++] : 0, l > u ? t[u++] : 0) : (e = t.charCodeAt(u++), r = l > u ? t.charCodeAt(u++) : 0, l > u ? t.charCodeAt(u++) : 0), n = e >> 2, s = (3 & e) << 4 | r >> 4, a = f > 1 ? (15 & r) << 2 | i >> 6 : 64, o = f > 2 ? 63 & i : 64, h.push(p.charAt(n) + p.charAt(s) + p.charAt(a) + p.charAt(o)); return h.join("") }, r.decode = function (t) { var e, r, i, n, s, a, o = 0, h = 0, u = "data:"; if (t.substr(0, u.length) === u) throw new Error("Invalid base64 input, it looks like a data url."); var l, f = 3 * (t = t.replace(/[^A-Za-z0-9\+\/\=]/g, "")).length / 4; if (t.charAt(t.length - 1) === p.charAt(64) && f--, t.charAt(t.length - 2) === p.charAt(64) && f--, f % 1 != 0) throw new Error("Invalid base64 input, bad content length."); for (l = d.uint8array ? new Uint8Array(0 | f) : new Array(0 | f); o < t.length;)e = p.indexOf(t.charAt(o++)) << 2 | (n = p.indexOf(t.charAt(o++))) >> 4, r = (15 & n) << 4 | (s = p.indexOf(t.charAt(o++))) >> 2, i = (3 & s) << 6 | (a = p.indexOf(t.charAt(o++))), l[h++] = e, 64 !== s && (l[h++] = r), 64 !== a && (l[h++] = i); return l } }, { "./support": 30, "./utils": 32 }], 2: [function (t, e, r) { "use strict"; function o(t, e, r, i, n) { this.compressedSize = t, this.uncompressedSize = e, this.crc32 = r, this.compression = i, this.compressedContent = n } var i = t("./external"), n = t("./stream/DataWorker"), s = t("./stream/Crc32Probe"), a = t("./stream/DataLengthProbe"); o.prototype = { getContentWorker: function () { var t = new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")), e = this; return t.on("end", function () { if (this.streamInfo.data_length !== e.uncompressedSize) throw new Error("Bug : uncompressed data size mismatch") }), t }, getCompressedWorker: function () { return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize", this.compressedSize).withStreamInfo("uncompressedSize", this.uncompressedSize).withStreamInfo("crc32", this.crc32).withStreamInfo("compression", this.compression) } }, o.createWorkerFrom = function (t, e, r) { return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression", e) }, e.exports = o }, { "./external": 6, "./stream/Crc32Probe": 25, "./stream/DataLengthProbe": 26, "./stream/DataWorker": 27 }], 3: [function (t, e, r) { "use strict"; var i = t("./stream/GenericWorker"); r.STORE = { magic: "\x00\x00", compressWorker: function (t) { return new i("STORE compression") }, uncompressWorker: function () { return new i("STORE decompression") } }, r.DEFLATE = t("./flate") }, { "./flate": 7, "./stream/GenericWorker": 28 }], 4: [function (t, e, r) { "use strict"; var i = t("./utils"), o = function () { for (var t, e = [], r = 0; 256 > r; r++) { t = r; for (var i = 0; 8 > i; i++)t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1; e[r] = t } return e }(); e.exports = function (t, e) { return void 0 !== t && t.length ? "string" !== i.getTypeOf(t) ? function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++)t = t >>> 8 ^ n[255 & (t ^ e[a])]; return -1 ^ t }(0 | e, t, t.length, 0) : function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++)t = t >>> 8 ^ n[255 & (t ^ e.charCodeAt(a))]; return -1 ^ t }(0 | e, t, t.length, 0) : 0 } }, { "./utils": 32 }], 5: [function (t, e, r) { "use strict"; r.base64 = !1, r.binary = !1, r.dir = !1, r.createFolders = !0, r.date = null, r.compression = null, r.compressionOptions = null, r.comment = null, r.unixPermissions = null, r.dosPermissions = null }, {}], 6: [function (t, e, r) { "use strict"; var i = null; i = "undefined" != typeof Promise ? Promise : t("lie"), e.exports = { Promise: i } }, { lie: 37 }], 7: [function (t, e, r) { "use strict"; function h(t, e) { a.call(this, "FlateWorker/" + t), this._pako = null, this._pakoAction = t, this._pakoOptions = e, this.meta = {} } var i = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array, n = t("pako"), s = t("./utils"), a = t("./stream/GenericWorker"), o = i ? "uint8array" : "array"; r.magic = "\b\x00", s.inherits(h, a), h.prototype.processChunk = function (t) { this.meta = t.meta, null === this._pako && this._createPako(), this._pako.push(s.transformTo(o, t.data), !1) }, h.prototype.flush = function () { a.prototype.flush.call(this), null === this._pako && this._createPako(), this._pako.push([], !0) }, h.prototype.cleanUp = function () { a.prototype.cleanUp.call(this), this._pako = null }, h.prototype._createPako = function () { this._pako = new n[this._pakoAction]({ raw: !0, level: this._pakoOptions.level || -1 }); var e = this; this._pako.onData = function (t) { e.push({ data: t, meta: e.meta }) } }, r.compressWorker = function (t) { return new h("Deflate", t) }, r.uncompressWorker = function () { return new h("Inflate", {}) } }, { "./stream/GenericWorker": 28, "./utils": 32, pako: 38 }], 8: [function (t, e, r) { "use strict"; function A(t, e) { var r, i = ""; for (r = 0; e > r; r++)i += String.fromCharCode(255 & t), t >>>= 8; return i } function i(t, e, r, i, n, s) { var a, o, h = t.file, u = t.compression, l = s !== O.utf8encode, f = I.transformTo("string", s(h.name)), d = I.transformTo("string", O.utf8encode(h.name)), c = h.comment, p = I.transformTo("string", s(c)), m = I.transformTo("string", O.utf8encode(c)), _ = d.length !== h.name.length, g = m.length !== c.length, b = "", v = "", y = "", w = h.dir, k = h.date, x = { crc32: 0, compressedSize: 0, uncompressedSize: 0 }; e && !r || (x.crc32 = t.crc32, x.compressedSize = t.compressedSize, x.uncompressedSize = t.uncompressedSize); var S = 0; e && (S |= 8), l || !_ && !g || (S |= 2048); var z = 0, C = 0; w && (z |= 16), "UNIX" === n ? (C = 798, z |= function (t, e) { var r = t; return t || (r = e ? 16893 : 33204), (65535 & r) << 16 }(h.unixPermissions, w)) : (C = 20, z |= function (t) { return 63 & (t || 0) }(h.dosPermissions)), a = k.getUTCHours(), a <<= 6, a |= k.getUTCMinutes(), a <<= 5, a |= k.getUTCSeconds() / 2, o = k.getUTCFullYear() - 1980, o <<= 4, o |= k.getUTCMonth() + 1, o <<= 5, o |= k.getUTCDate(), _ && (v = A(1, 1) + A(B(f), 4) + d, b += "up" + A(v.length, 2) + v), g && (y = A(1, 1) + A(B(p), 4) + m, b += "uc" + A(y.length, 2) + y); var E = ""; return E += "\n\x00", E += A(S, 2), E += u.magic, E += A(a, 2), E += A(o, 2), E += A(x.crc32, 4), E += A(x.compressedSize, 4), E += A(x.uncompressedSize, 4), E += A(f.length, 2), E += A(b.length, 2), { fileRecord: R.LOCAL_FILE_HEADER + E + f + b, dirRecord: R.CENTRAL_FILE_HEADER + A(C, 2) + E + A(p.length, 2) + "\x00\x00\x00\x00" + A(z, 4) + A(i, 4) + f + b + p } } function s(t, e, r, i) { n.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = e, this.zipPlatform = r, this.encodeFileName = i, this.streamFiles = t, this.accumulate = !1, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = [] } var I = t("../utils"), n = t("../stream/GenericWorker"), O = t("../utf8"), B = t("../crc32"), R = t("../signature"); I.inherits(s, n), s.prototype.push = function (t) { var e = t.meta.percent || 0, r = this.entriesCount, i = this._sources.length; this.accumulate ? this.contentBuffer.push(t) : (this.bytesWritten += t.data.length, n.prototype.push.call(this, { data: t.data, meta: { currentFile: this.currentFile, percent: r ? (e + 100 * (r - i - 1)) / r : 100 } })) }, s.prototype.openedSource = function (t) { this.currentSourceOffset = this.bytesWritten, this.currentFile = t.file.name; var e = this.streamFiles && !t.file.dir; if (e) { var r = i(t, e, !1, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); this.push({ data: r.fileRecord, meta: { percent: 0 } }) } else this.accumulate = !0 }, s.prototype.closedSource = function (t) { this.accumulate = !1; var e = this.streamFiles && !t.file.dir, r = i(t, e, !0, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); if (this.dirRecords.push(r.dirRecord), e) this.push({ data: function (t) { return R.DATA_DESCRIPTOR + A(t.crc32, 4) + A(t.compressedSize, 4) + A(t.uncompressedSize, 4) }(t), meta: { percent: 100 } }); else for (this.push({ data: r.fileRecord, meta: { percent: 0 } }); this.contentBuffer.length;)this.push(this.contentBuffer.shift()); this.currentFile = null }, s.prototype.flush = function () { for (var t = this.bytesWritten, e = 0; e < this.dirRecords.length; e++)this.push({ data: this.dirRecords[e], meta: { percent: 100 } }); var r = this.bytesWritten - t, i = function (t, e, r, i, n) { var s = I.transformTo("string", n(i)); return R.CENTRAL_DIRECTORY_END + "\x00\x00\x00\x00" + A(t, 2) + A(t, 2) + A(e, 4) + A(r, 4) + A(s.length, 2) + s }(this.dirRecords.length, r, t, this.zipComment, this.encodeFileName); this.push({ data: i, meta: { percent: 100 } }) }, s.prototype.prepareNextSource = function () { this.previous = this._sources.shift(), this.openedSource(this.previous.streamInfo), this.isPaused ? this.previous.pause() : this.previous.resume() }, s.prototype.registerPrevious = function (t) { this._sources.push(t); var e = this; return t.on("data", function (t) { e.processChunk(t) }), t.on("end", function () { e.closedSource(e.previous.streamInfo), e._sources.length ? e.prepareNextSource() : e.end() }), t.on("error", function (t) { e.error(t) }), this }, s.prototype.resume = function () { return !!n.prototype.resume.call(this) && (!this.previous && this._sources.length ? (this.prepareNextSource(), !0) : this.previous || this._sources.length || this.generatedError ? void 0 : (this.end(), !0)) }, s.prototype.error = function (t) { var e = this._sources; if (!n.prototype.error.call(this, t)) return !1; for (var r = 0; r < e.length; r++)try { e[r].error(t) } catch (t) { } return !0 }, s.prototype.lock = function () { n.prototype.lock.call(this); for (var t = this._sources, e = 0; e < t.length; e++)t[e].lock() }, e.exports = s }, { "../crc32": 4, "../signature": 23, "../stream/GenericWorker": 28, "../utf8": 31, "../utils": 32 }], 9: [function (t, e, r) { "use strict"; var u = t("../compressions"), i = t("./ZipFileWorker"); r.generateWorker = function (t, a, e) { var o = new i(a.streamFiles, e, a.platform, a.encodeFileName), h = 0; try { t.forEach(function (t, e) { h++; var r = function (t, e) { var r = t || e, i = u[r]; if (!i) throw new Error(r + " is not a valid compression method !"); return i }(e.options.compression, a.compression), i = e.options.compressionOptions || a.compressionOptions || {}, n = e.dir, s = e.date; e._compressWorker(r, i).withStreamInfo("file", { name: t, dir: n, date: s, comment: e.comment || "", unixPermissions: e.unixPermissions, dosPermissions: e.dosPermissions }).pipe(o) }), o.entriesCount = h } catch (t) { o.error(t) } return o } }, { "../compressions": 3, "./ZipFileWorker": 8 }], 10: [function (t, e, r) { "use strict"; function i() { if (!(this instanceof i)) return new i; if (arguments.length) throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); this.files = Object.create(null), this.comment = null, this.root = "", this.clone = function () { var t = new i; for (var e in this) "function" != typeof this[e] && (t[e] = this[e]); return t } } (i.prototype = t("./object")).loadAsync = t("./load"), i.support = t("./support"), i.defaults = t("./defaults"), i.version = "3.7.1", i.loadAsync = function (t, e) { return (new i).loadAsync(t, e) }, i.external = t("./external"), e.exports = i }, { "./defaults": 5, "./external": 6, "./load": 11, "./object": 15, "./support": 30 }], 11: [function (t, e, r) { "use strict"; function l(i) { return new n.Promise(function (t, e) { var r = i.decompressed.getContentWorker().pipe(new s); r.on("error", function (t) { e(t) }).on("end", function () { r.streamInfo.crc32 !== i.decompressed.crc32 ? e(new Error("Corrupted zip : CRC32 mismatch")) : t() }).resume() }) } var i = t("./utils"), n = t("./external"), o = t("./utf8"), h = t("./zipEntries"), s = t("./stream/Crc32Probe"), u = t("./nodejsUtils"); e.exports = function (t, s) { var a = this; return s = i.extend(s || {}, { base64: !1, checkCRC32: !1, optimizedBinaryString: !1, createFolders: !1, decodeFileName: o.utf8decode }), u.isNode && u.isStream(t) ? n.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")) : i.prepareContent("the loaded zip file", t, !0, s.optimizedBinaryString, s.base64).then(function (t) { var e = new h(s); return e.load(t), e }).then(function (t) { var e = [n.Promise.resolve(t)], r = t.files; if (s.checkCRC32) for (var i = 0; i < r.length; i++)e.push(l(r[i])); return n.Promise.all(e) }).then(function (t) { for (var e = t.shift(), r = e.files, i = 0; i < r.length; i++) { var n = r[i]; a.file(n.fileNameStr, n.decompressed, { binary: !0, optimizedBinaryString: !0, date: n.date, dir: n.dir, comment: n.fileCommentStr.length ? n.fileCommentStr : null, unixPermissions: n.unixPermissions, dosPermissions: n.dosPermissions, createFolders: s.createFolders }) } return e.zipComment.length && (a.comment = e.zipComment), a }) } }, { "./external": 6, "./nodejsUtils": 14, "./stream/Crc32Probe": 25, "./utf8": 31, "./utils": 32, "./zipEntries": 33 }], 12: [function (t, e, r) { "use strict"; function s(t, e) { n.call(this, "Nodejs stream input adapter for " + t), this._upstreamEnded = !1, this._bindStream(e) } var i = t("../utils"), n = t("../stream/GenericWorker"); i.inherits(s, n), s.prototype._bindStream = function (t) { var e = this; (this._stream = t).pause(), t.on("data", function (t) { e.push({ data: t, meta: { percent: 0 } }) }).on("error", function (t) { e.isPaused ? this.generatedError = t : e.error(t) }).on("end", function () { e.isPaused ? e._upstreamEnded = !0 : e.end() }) }, s.prototype.pause = function () { return !!n.prototype.pause.call(this) && (this._stream.pause(), !0) }, s.prototype.resume = function () { return !!n.prototype.resume.call(this) && (this._upstreamEnded ? this.end() : this._stream.resume(), !0) }, e.exports = s }, { "../stream/GenericWorker": 28, "../utils": 32 }], 13: [function (t, e, r) { "use strict"; function i(t, e, r) { n.call(this, e), this._helper = t; var i = this; t.on("data", function (t, e) { i.push(t) || i._helper.pause(), r && r(e) }).on("error", function (t) { i.emit("error", t) }).on("end", function () { i.push(null) }) } var n = t("readable-stream").Readable; t("../utils").inherits(i, n), i.prototype._read = function () { this._helper.resume() }, e.exports = i }, { "../utils": 32, "readable-stream": 16 }], 14: [function (t, e, r) { "use strict"; e.exports = { isNode: "undefined" != typeof Buffer, newBufferFrom: function (t, e) { if (Buffer.from && Buffer.from !== Uint8Array.from) return Buffer.from(t, e); if ("number" == typeof t) throw new Error('The "data" argument must not be a number'); return new Buffer(t, e) }, allocBuffer: function (t) { if (Buffer.alloc) return Buffer.alloc(t); var e = new Buffer(t); return e.fill(0), e }, isBuffer: function (t) { return Buffer.isBuffer(t) }, isStream: function (t) { return t && "function" == typeof t.on && "function" == typeof t.pause && "function" == typeof t.resume } } }, {}], 15: [function (t, e, r) { "use strict"; function s(t, e, r) { var i, n = u.getTypeOf(e), s = u.extend(r || {}, f); s.date = s.date || new Date, null !== s.compression && (s.compression = s.compression.toUpperCase()), "string" == typeof s.unixPermissions && (s.unixPermissions = parseInt(s.unixPermissions, 8)), s.unixPermissions && 16384 & s.unixPermissions && (s.dir = !0), s.dosPermissions && 16 & s.dosPermissions && (s.dir = !0), s.dir && (t = g(t)), s.createFolders && (i = _(t)) && b.call(this, i, !0); var a = "string" === n && !1 === s.binary && !1 === s.base64; r && void 0 !== r.binary || (s.binary = !a), (e instanceof d && 0 === e.uncompressedSize || s.dir || !e || 0 === e.length) && (s.base64 = !1, s.binary = !0, e = "", s.compression = "STORE", n = "string"); var o = null; o = e instanceof d || e instanceof l ? e : p.isNode && p.isStream(e) ? new m(t, e) : u.prepareContent(t, e, s.binary, s.optimizedBinaryString, s.base64); var h = new c(t, o, s); this.files[t] = h } function h(t) { return "[object RegExp]" === Object.prototype.toString.call(t) } var n = t("./utf8"), u = t("./utils"), l = t("./stream/GenericWorker"), a = t("./stream/StreamHelper"), f = t("./defaults"), d = t("./compressedObject"), c = t("./zipObject"), o = t("./generate"), p = t("./nodejsUtils"), m = t("./nodejs/NodejsStreamInputAdapter"), _ = function (t) { "/" === t.slice(-1) && (t = t.substring(0, t.length - 1)); var e = t.lastIndexOf("/"); return e > 0 ? t.substring(0, e) : "" }, g = function (t) { return "/" !== t.slice(-1) && (t += "/"), t }, b = function (t, e) { return e = void 0 !== e ? e : f.createFolders, t = g(t), this.files[t] || s.call(this, t, null, { dir: !0, createFolders: e }), this.files[t] }, i = { load: function () { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, forEach: function (t) { var e, r, i; for (e in this.files) i = this.files[e], (r = e.slice(this.root.length, e.length)) && e.slice(0, this.root.length) === this.root && t(r, i) }, filter: function (r) { var i = []; return this.forEach(function (t, e) { r(t, e) && i.push(e) }), i }, file: function (t, e, r) { if (1 !== arguments.length) return t = this.root + t, s.call(this, t, e, r), this; if (h(t)) { var i = t; return this.filter(function (t, e) { return !e.dir && i.test(t) }) } var n = this.files[this.root + t]; return n && !n.dir ? n : null }, folder: function (r) { if (!r) return this; if (h(r)) return this.filter(function (t, e) { return e.dir && r.test(t) }); var t = this.root + r, e = b.call(this, t), i = this.clone(); return i.root = e.name, i }, remove: function (r) { r = this.root + r; var t = this.files[r]; if (t || ("/" !== r.slice(-1) && (r += "/"), t = this.files[r]), t && !t.dir) delete this.files[r]; else for (var e = this.filter(function (t, e) { return e.name.slice(0, r.length) === r }), i = 0; i < e.length; i++)delete this.files[e[i].name]; return this }, generate: function (t) { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, generateInternalStream: function (t) { var e, r = {}; try { if ((r = u.extend(t || {}, { streamFiles: !1, compression: "STORE", compressionOptions: null, type: "", platform: "DOS", comment: null, mimeType: "application/zip", encodeFileName: n.utf8encode })).type = r.type.toLowerCase(), r.compression = r.compression.toUpperCase(), "binarystring" === r.type && (r.type = "string"), !r.type) throw new Error("No output type specified."); u.checkSupport(r.type), "darwin" !== r.platform && "freebsd" !== r.platform && "linux" !== r.platform && "sunos" !== r.platform || (r.platform = "UNIX"), "win32" === r.platform && (r.platform = "DOS"); var i = r.comment || this.comment || ""; e = o.generateWorker(this, r, i) } catch (t) { (e = new l("error")).error(t) } return new a(e, r.type || "string", r.mimeType) }, generateAsync: function (t, e) { return this.generateInternalStream(t).accumulate(e) }, generateNodeStream: function (t, e) { return (t = t || {}).type || (t.type = "nodebuffer"), this.generateInternalStream(t).toNodejsStream(e) } }; e.exports = i }, { "./compressedObject": 2, "./defaults": 5, "./generate": 9, "./nodejs/NodejsStreamInputAdapter": 12, "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31, "./utils": 32, "./zipObject": 35 }], 16: [function (t, e, r) { e.exports = t("stream") }, { stream: void 0 }], 17: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t); for (var e = 0; e < this.data.length; e++)t[e] = 255 & t[e] } var i = t("./DataReader"); t("../utils").inherits(n, i), n.prototype.byteAt = function (t) { return this.data[this.zero + t] }, n.prototype.lastIndexOfSignature = function (t) { for (var e = t.charCodeAt(0), r = t.charCodeAt(1), i = t.charCodeAt(2), n = t.charCodeAt(3), s = this.length - 4; s >= 0; --s)if (this.data[s] === e && this.data[s + 1] === r && this.data[s + 2] === i && this.data[s + 3] === n) return s - this.zero; return -1 }, n.prototype.readAndCheckSignature = function (t) { var e = t.charCodeAt(0), r = t.charCodeAt(1), i = t.charCodeAt(2), n = t.charCodeAt(3), s = this.readData(4); return e === s[0] && r === s[1] && i === s[2] && n === s[3] }, n.prototype.readData = function (t) { if (this.checkOffset(t), 0 === t) return []; var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, { "../utils": 32, "./DataReader": 18 }], 18: [function (t, e, r) { "use strict"; function n(t) { this.data = t, this.length = t.length, this.index = 0, this.zero = 0 } var i = t("../utils"); n.prototype = { checkOffset: function (t) { this.checkIndex(this.index + t) }, checkIndex: function (t) { if (this.length < this.zero + t || 0 > t) throw new Error("End of data reached (data length = " + this.length + ", asked index = " + t + "). Corrupted zip ?") }, setIndex: function (t) { this.checkIndex(t), this.index = t }, skip: function (t) { this.setIndex(this.index + t) }, byteAt: function (t) { }, readInt: function (t) { var e, r = 0; for (this.checkOffset(t), e = this.index + t - 1; e >= this.index; e--)r = (r << 8) + this.byteAt(e); return this.index += t, r }, readString: function (t) { return i.transformTo("string", this.readData(t)) }, readData: function (t) { }, lastIndexOfSignature: function (t) { }, readAndCheckSignature: function (t) { }, readDate: function () { var t = this.readInt(4); return new Date(Date.UTC(1980 + (t >> 25 & 127), (t >> 21 & 15) - 1, t >> 16 & 31, t >> 11 & 31, t >> 5 & 63, (31 & t) << 1)) } }, e.exports = n }, { "../utils": 32 }], 19: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./Uint8ArrayReader"); t("../utils").inherits(n, i), n.prototype.readData = function (t) { this.checkOffset(t); var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, { "../utils": 32, "./Uint8ArrayReader": 21 }], 20: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./DataReader"); t("../utils").inherits(n, i), n.prototype.byteAt = function (t) { return this.data.charCodeAt(this.zero + t) }, n.prototype.lastIndexOfSignature = function (t) { return this.data.lastIndexOf(t) - this.zero }, n.prototype.readAndCheckSignature = function (t) { return t === this.readData(4) }, n.prototype.readData = function (t) { this.checkOffset(t); var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, { "../utils": 32, "./DataReader": 18 }], 21: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./ArrayReader"); t("../utils").inherits(n, i), n.prototype.readData = function (t) { if (this.checkOffset(t), 0 === t) return new Uint8Array(0); var e = this.data.subarray(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, { "../utils": 32, "./ArrayReader": 17 }], 22: [function (t, e, r) { "use strict"; var i = t("../utils"), n = t("../support"), s = t("./ArrayReader"), a = t("./StringReader"), o = t("./NodeBufferReader"), h = t("./Uint8ArrayReader"); e.exports = function (t) { var e = i.getTypeOf(t); return i.checkSupport(e), "string" !== e || n.uint8array ? "nodebuffer" === e ? new o(t) : n.uint8array ? new h(i.transformTo("uint8array", t)) : new s(i.transformTo("array", t)) : new a(t) } }, { "../support": 30, "../utils": 32, "./ArrayReader": 17, "./NodeBufferReader": 19, "./StringReader": 20, "./Uint8ArrayReader": 21 }], 23: [function (t, e, r) { "use strict"; r.LOCAL_FILE_HEADER = "PK", r.CENTRAL_FILE_HEADER = "PK", r.CENTRAL_DIRECTORY_END = "PK", r.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK", r.ZIP64_CENTRAL_DIRECTORY_END = "PK", r.DATA_DESCRIPTOR = "PK\b" }, {}], 24: [function (t, e, r) { "use strict"; function s(t) { i.call(this, "ConvertWorker to " + t), this.destType = t } var i = t("./GenericWorker"), n = t("../utils"); n.inherits(s, i), s.prototype.processChunk = function (t) { this.push({ data: n.transformTo(this.destType, t.data), meta: t.meta }) }, e.exports = s }, { "../utils": 32, "./GenericWorker": 28 }], 25: [function (t, e, r) { "use strict"; function s() { i.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0) } var i = t("./GenericWorker"), n = t("../crc32"); t("../utils").inherits(s, i), s.prototype.processChunk = function (t) { this.streamInfo.crc32 = n(t.data, this.streamInfo.crc32 || 0), this.push(t) }, e.exports = s }, { "../crc32": 4, "../utils": 32, "./GenericWorker": 28 }], 26: [function (t, e, r) { "use strict"; function s(t) { n.call(this, "DataLengthProbe for " + t), this.propName = t, this.withStreamInfo(t, 0) } var i = t("../utils"), n = t("./GenericWorker"); i.inherits(s, n), s.prototype.processChunk = function (t) { if (t) { var e = this.streamInfo[this.propName] || 0; this.streamInfo[this.propName] = e + t.data.length } n.prototype.processChunk.call(this, t) }, e.exports = s }, { "../utils": 32, "./GenericWorker": 28 }], 27: [function (t, e, r) { "use strict"; function s(t) { n.call(this, "DataWorker"); var e = this; this.dataIsReady = !1, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = !1, t.then(function (t) { e.dataIsReady = !0, e.data = t, e.max = t && t.length || 0, e.type = i.getTypeOf(t), e.isPaused || e._tickAndRepeat() }, function (t) { e.error(t) }) } var i = t("../utils"), n = t("./GenericWorker"); i.inherits(s, n), s.prototype.cleanUp = function () { n.prototype.cleanUp.call(this), this.data = null }, s.prototype.resume = function () { return !!n.prototype.resume.call(this) && (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = !0, i.delay(this._tickAndRepeat, [], this)), !0) }, s.prototype._tickAndRepeat = function () { this._tickScheduled = !1, this.isPaused || this.isFinished || (this._tick(), this.isFinished || (i.delay(this._tickAndRepeat, [], this), this._tickScheduled = !0)) }, s.prototype._tick = function () { if (this.isPaused || this.isFinished) return !1; var t = null, e = Math.min(this.max, this.index + 16384); if (this.index >= this.max) return this.end(); switch (this.type) { case "string": t = this.data.substring(this.index, e); break; case "uint8array": t = this.data.subarray(this.index, e); break; case "array": case "nodebuffer": t = this.data.slice(this.index, e) }return this.index = e, this.push({ data: t, meta: { percent: this.max ? this.index / this.max * 100 : 0 } }) }, e.exports = s }, { "../utils": 32, "./GenericWorker": 28 }], 28: [function (t, e, r) { "use strict"; function i(t) { this.name = t || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = !0, this.isFinished = !1, this.isLocked = !1, this._listeners = { data: [], end: [], error: [] }, this.previous = null } i.prototype = { push: function (t) { this.emit("data", t) }, end: function () { if (this.isFinished) return !1; this.flush(); try { this.emit("end"), this.cleanUp(), this.isFinished = !0 } catch (t) { this.emit("error", t) } return !0 }, error: function (t) { return !this.isFinished && (this.isPaused ? this.generatedError = t : (this.isFinished = !0, this.emit("error", t), this.previous && this.previous.error(t), this.cleanUp()), !0) }, on: function (t, e) { return this._listeners[t].push(e), this }, cleanUp: function () { this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = [] }, emit: function (t, e) { if (this._listeners[t]) for (var r = 0; r < this._listeners[t].length; r++)this._listeners[t][r].call(this, e) }, pipe: function (t) { return t.registerPrevious(this) }, registerPrevious: function (t) { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.streamInfo = t.streamInfo, this.mergeStreamInfo(), this.previous = t; var e = this; return t.on("data", function (t) { e.processChunk(t) }), t.on("end", function () { e.end() }), t.on("error", function (t) { e.error(t) }), this }, pause: function () { return !this.isPaused && !this.isFinished && (this.isPaused = !0, this.previous && this.previous.pause(), !0) }, resume: function () { if (!this.isPaused || this.isFinished) return !1; var t = this.isPaused = !1; return this.generatedError && (this.error(this.generatedError), t = !0), this.previous && this.previous.resume(), !t }, flush: function () { }, processChunk: function (t) { this.push(t) }, withStreamInfo: function (t, e) { return this.extraStreamInfo[t] = e, this.mergeStreamInfo(), this }, mergeStreamInfo: function () { for (var t in this.extraStreamInfo) this.extraStreamInfo.hasOwnProperty(t) && (this.streamInfo[t] = this.extraStreamInfo[t]) }, lock: function () { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.isLocked = !0, this.previous && this.previous.lock() }, toString: function () { var t = "Worker " + this.name; return this.previous ? this.previous + " -> " + t : t } }, e.exports = i }, {}], 29: [function (t, e, r) { "use strict"; function l(t, o) { return new a.Promise(function (e, r) { var i = [], n = t._internalType, s = t._outputType, a = t._mimeType; t.on("data", function (t, e) { i.push(t), o && o(e) }).on("error", function (t) { i = [], r(t) }).on("end", function () { try { var t = function (t, e, r) { switch (t) { case "blob": return h.newBlob(h.transformTo("arraybuffer", e), r); case "base64": return u.encode(e); default: return h.transformTo(t, e) } }(s, function (t, e) { var r, i = 0, n = null, s = 0; for (r = 0; r < e.length; r++)s += e[r].length; switch (t) { case "string": return e.join(""); case "array": return Array.prototype.concat.apply([], e); case "uint8array": for (n = new Uint8Array(s), r = 0; r < e.length; r++)n.set(e[r], i), i += e[r].length; return n; case "nodebuffer": return Buffer.concat(e); default: throw new Error("concat : unsupported type '" + t + "'") } }(n, i), a); e(t) } catch (t) { r(t) } i = [] }).resume() }) } function f(t, e, r) { var i = e; switch (e) { case "blob": case "arraybuffer": i = "uint8array"; break; case "base64": i = "string" }try { this._internalType = i, this._outputType = e, this._mimeType = r, h.checkSupport(i), this._worker = t.pipe(new n(i)), t.lock() } catch (t) { this._worker = new s("error"), this._worker.error(t) } } var h = t("../utils"), n = t("./ConvertWorker"), s = t("./GenericWorker"), u = t("../base64"), i = t("../support"), a = t("../external"), o = null; if (i.nodestream) try { o = t("../nodejs/NodejsStreamOutputAdapter") } catch (t) { } f.prototype = { accumulate: function (t) { return l(this, t) }, on: function (t, e) { var r = this; return "data" === t ? this._worker.on(t, function (t) { e.call(r, t.data, t.meta) }) : this._worker.on(t, function () { h.delay(e, arguments, r) }), this }, resume: function () { return h.delay(this._worker.resume, [], this._worker), this }, pause: function () { return this._worker.pause(), this }, toNodejsStream: function (t) { if (h.checkSupport("nodestream"), "nodebuffer" !== this._outputType) throw new Error(this._outputType + " is not supported by this method"); return new o(this, { objectMode: "nodebuffer" !== this._outputType }, t) } }, e.exports = f }, { "../base64": 1, "../external": 6, "../nodejs/NodejsStreamOutputAdapter": 13, "../support": 30, "../utils": 32, "./ConvertWorker": 24, "./GenericWorker": 28 }], 30: [function (t, e, r) { "use strict"; if (r.base64 = !0, r.array = !0, r.string = !0, r.arraybuffer = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array, r.nodebuffer = "undefined" != typeof Buffer, r.uint8array = "undefined" != typeof Uint8Array, "undefined" == typeof ArrayBuffer) r.blob = !1; else { var i = new ArrayBuffer(0); try { r.blob = 0 === new Blob([i], { type: "application/zip" }).size } catch (t) { try { var n = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder); n.append(i), r.blob = 0 === n.getBlob("application/zip").size } catch (t) { r.blob = !1 } } } try { r.nodestream = !!t("readable-stream").Readable } catch (t) { r.nodestream = !1 } }, { "readable-stream": 16 }], 31: [function (t, e, s) { "use strict"; function a() { i.call(this, "utf-8 decode"), this.leftOver = null } function l() { i.call(this, "utf-8 encode") } for (var o = t("./utils"), h = t("./support"), r = t("./nodejsUtils"), i = t("./stream/GenericWorker"), u = new Array(256), n = 0; 256 > n; n++)u[n] = n >= 252 ? 6 : n >= 248 ? 5 : n >= 240 ? 4 : n >= 224 ? 3 : n >= 192 ? 2 : 1; u[254] = u[254] = 1, s.utf8encode = function (t) { return h.nodebuffer ? r.newBufferFrom(t, "utf-8") : function (t) { var e, r, i, n, s, a = t.length, o = 0; for (n = 0; a > n; n++)55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), o += 128 > r ? 1 : 2048 > r ? 2 : 65536 > r ? 3 : 4; for (e = h.uint8array ? new Uint8Array(o) : new Array(o), n = s = 0; o > s; n++)55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), 128 > r ? e[s++] = r : (2048 > r ? e[s++] = 192 | r >>> 6 : (65536 > r ? e[s++] = 224 | r >>> 12 : (e[s++] = 240 | r >>> 18, e[s++] = 128 | r >>> 12 & 63), e[s++] = 128 | r >>> 6 & 63), e[s++] = 128 | 63 & r); return e }(t) }, s.utf8decode = function (t) { return h.nodebuffer ? o.transformTo("nodebuffer", t).toString("utf-8") : function (t) { var e, r, i, n, s = t.length, a = new Array(2 * s); for (e = r = 0; s > e;)if ((i = t[e++]) < 128) a[r++] = i; else if (4 < (n = u[i])) a[r++] = 65533, e += n - 1; else { for (i &= 2 === n ? 31 : 3 === n ? 15 : 7; n > 1 && s > e;)i = i << 6 | 63 & t[e++], n--; n > 1 ? a[r++] = 65533 : 65536 > i ? a[r++] = i : (i -= 65536, a[r++] = 55296 | i >> 10 & 1023, a[r++] = 56320 | 1023 & i) } return a.length !== r && (a.subarray ? a = a.subarray(0, r) : a.length = r), o.applyFromCharCode(a) }(t = o.transformTo(h.uint8array ? "uint8array" : "array", t)) }, o.inherits(a, i), a.prototype.processChunk = function (t) { var e = o.transformTo(h.uint8array ? "uint8array" : "array", t.data); if (this.leftOver && this.leftOver.length) { if (h.uint8array) { var r = e; (e = new Uint8Array(r.length + this.leftOver.length)).set(this.leftOver, 0), e.set(r, this.leftOver.length) } else e = this.leftOver.concat(e); this.leftOver = null } var i = function (t, e) { var r; for ((e = e || t.length) > t.length && (e = t.length), r = e - 1; r >= 0 && 128 == (192 & t[r]);)r--; return 0 > r ? e : 0 === r ? e : r + u[t[r]] > e ? r : e }(e), n = e; i !== e.length && (h.uint8array ? (n = e.subarray(0, i), this.leftOver = e.subarray(i, e.length)) : (n = e.slice(0, i), this.leftOver = e.slice(i, e.length))), this.push({ data: s.utf8decode(n), meta: t.meta }) }, a.prototype.flush = function () { this.leftOver && this.leftOver.length && (this.push({ data: s.utf8decode(this.leftOver), meta: {} }), this.leftOver = null) }, s.Utf8DecodeWorker = a, o.inherits(l, i), l.prototype.processChunk = function (t) { this.push({ data: s.utf8encode(t.data), meta: t.meta }) }, s.Utf8EncodeWorker = l }, { "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./support": 30, "./utils": 32 }], 32: [function (t, e, a) { - "use strict"; function n(t) { return t } function l(t, e) { for (var r = 0; r < t.length; ++r)e[r] = 255 & t.charCodeAt(r); return e } function f(t) { var e = 65536, r = a.getTypeOf(t), i = !0; if ("uint8array" === r ? i = s.applyCanBeUsed.uint8array : "nodebuffer" === r && (i = s.applyCanBeUsed.nodebuffer), i) for (; e > 1;)try { return s.stringifyByChunk(t, r, e) } catch (t) { e = Math.floor(e / 2) } return s.stringifyByChar(t) } function d(t, e) { for (var r = 0; r < t.length; r++)e[r] = t[r]; return e } var o = t("./support"), h = t("./base64"), r = t("./nodejsUtils"), i = t("set-immediate-shim"), u = t("./external"); - a.newBlob = function (e, r) { a.checkSupport("blob"); try { return new Blob([e], { type: r }) } catch (t) { try { var i = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder); return i.append(e), i.getBlob(r) } catch (t) { throw new Error("Bug : can't construct the Blob.") } } }; var s = { stringifyByChunk: function (t, e, r) { var i = [], n = 0, s = t.length; if (r >= s) return String.fromCharCode.apply(null, t); for (; s > n;)"array" === e || "nodebuffer" === e ? i.push(String.fromCharCode.apply(null, t.slice(n, Math.min(n + r, s)))) : i.push(String.fromCharCode.apply(null, t.subarray(n, Math.min(n + r, s)))), n += r; return i.join("") }, stringifyByChar: function (t) { for (var e = "", r = 0; r < t.length; r++)e += String.fromCharCode(t[r]); return e }, applyCanBeUsed: { uint8array: function () { try { return o.uint8array && 1 === String.fromCharCode.apply(null, new Uint8Array(1)).length } catch (t) { return !1 } }(), nodebuffer: function () { try { return o.nodebuffer && 1 === String.fromCharCode.apply(null, r.allocBuffer(1)).length } catch (t) { return !1 } }() } }; a.applyFromCharCode = f; var c = {}; c.string = { string: n, array: function (t) { return l(t, new Array(t.length)) }, arraybuffer: function (t) { return c.string.uint8array(t).buffer }, uint8array: function (t) { return l(t, new Uint8Array(t.length)) }, nodebuffer: function (t) { return l(t, r.allocBuffer(t.length)) } }, c.array = { string: f, array: n, arraybuffer: function (t) { return new Uint8Array(t).buffer }, uint8array: function (t) { return new Uint8Array(t) }, nodebuffer: function (t) { return r.newBufferFrom(t) } }, c.arraybuffer = { string: function (t) { return f(new Uint8Array(t)) }, array: function (t) { return d(new Uint8Array(t), new Array(t.byteLength)) }, arraybuffer: n, uint8array: function (t) { return new Uint8Array(t) }, nodebuffer: function (t) { return r.newBufferFrom(new Uint8Array(t)) } }, c.uint8array = { string: f, array: function (t) { return d(t, new Array(t.length)) }, arraybuffer: function (t) { return t.buffer }, uint8array: n, nodebuffer: function (t) { return r.newBufferFrom(t) } }, c.nodebuffer = { string: f, array: function (t) { return d(t, new Array(t.length)) }, arraybuffer: function (t) { return c.nodebuffer.uint8array(t).buffer }, uint8array: function (t) { return d(t, new Uint8Array(t.length)) }, nodebuffer: n }, a.transformTo = function (t, e) { if (e = e || "", !t) return e; a.checkSupport(t); var r = a.getTypeOf(e); return c[r][t](e) }, a.getTypeOf = function (t) { return "string" == typeof t ? "string" : "[object Array]" === Object.prototype.toString.call(t) ? "array" : o.nodebuffer && r.isBuffer(t) ? "nodebuffer" : o.uint8array && t instanceof Uint8Array ? "uint8array" : o.arraybuffer && t instanceof ArrayBuffer ? "arraybuffer" : void 0 }, a.checkSupport = function (t) { if (!o[t.toLowerCase()]) throw new Error(t + " is not supported by this platform") }, a.MAX_VALUE_16BITS = 65535, a.MAX_VALUE_32BITS = -1, a.pretty = function (t) { var e, r, i = ""; for (r = 0; r < (t || "").length; r++)i += "\\x" + ((e = t.charCodeAt(r)) < 16 ? "0" : "") + e.toString(16).toUpperCase(); return i }, a.delay = function (t, e, r) { i(function () { t.apply(r || null, e || []) }) }, a.inherits = function (t, e) { function r() { } r.prototype = e.prototype, t.prototype = new r }, a.extend = function () { var t, e, r = {}; for (t = 0; t < arguments.length; t++)for (e in arguments[t]) arguments[t].hasOwnProperty(e) && void 0 === r[e] && (r[e] = arguments[t][e]); return r }, a.prepareContent = function (r, t, i, n, s) { return u.Promise.resolve(t).then(function (i) { return o.blob && (i instanceof Blob || -1 !== ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(i))) && "undefined" != typeof FileReader ? new u.Promise(function (e, r) { var t = new FileReader; t.onload = function (t) { e(t.target.result) }, t.onerror = function (t) { r(t.target.error) }, t.readAsArrayBuffer(i) }) : i }).then(function (t) { var e = a.getTypeOf(t); return e ? ("arraybuffer" === e ? t = a.transformTo("uint8array", t) : "string" === e && (s ? t = h.decode(t) : i && !0 !== n && (t = function (t) { return l(t, o.uint8array ? new Uint8Array(t.length) : new Array(t.length)) }(t))), t) : u.Promise.reject(new Error("Can't read the data of '" + r + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")) }) } - }, { "./base64": 1, "./external": 6, "./nodejsUtils": 14, "./support": 30, "set-immediate-shim": 54 }], 33: [function (t, e, r) { "use strict"; function h(t) { this.files = [], this.loadOptions = t } var i = t("./reader/readerFor"), n = t("./utils"), s = t("./signature"), a = t("./zipEntry"), o = (t("./utf8"), t("./support")); h.prototype = { checkSignature: function (t) { if (!this.reader.readAndCheckSignature(t)) { this.reader.index -= 4; var e = this.reader.readString(4); throw new Error("Corrupted zip or bug: unexpected signature (" + n.pretty(e) + ", expected " + n.pretty(t) + ")") } }, isSignature: function (t, e) { var r = this.reader.index; this.reader.setIndex(t); var i = this.reader.readString(4) === e; return this.reader.setIndex(r), i }, readBlockEndOfCentral: function () { this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt(2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt(2); var t = this.reader.readData(this.zipCommentLength), e = o.uint8array ? "uint8array" : "array", r = n.transformTo(e, t); this.zipComment = this.loadOptions.decodeFileName(r) }, readBlockZip64EndOfCentral: function () { this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader.skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt(8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {}; for (var t, e, r, i = this.zip64EndOfCentralSize - 44; i > 0;)t = this.reader.readInt(2), e = this.reader.readInt(4), r = this.reader.readData(e), this.zip64ExtensibleData[t] = { id: t, length: e, value: r } }, readBlockZip64EndOfCentralLocator: function () { if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8), this.disksCount = this.reader.readInt(4), 1 < this.disksCount) throw new Error("Multi-volumes zip are not supported") }, readLocalFiles: function () { var t, e; for (t = 0; t < this.files.length; t++)e = this.files[t], this.reader.setIndex(e.localHeaderOffset), this.checkSignature(s.LOCAL_FILE_HEADER), e.readLocalPart(this.reader), e.handleUTF8(), e.processAttributes() }, readCentralDir: function () { var t; for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(t = new a({ zip64: this.zip64 }, this.loadOptions)).readCentralPart(this.reader), this.files.push(t); if (this.centralDirRecords !== this.files.length && 0 !== this.centralDirRecords && 0 === this.files.length) throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length) }, readEndOfCentral: function () { var t = this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END); if (0 > t) throw this.isSignature(0, s.LOCAL_FILE_HEADER) ? new Error("Corrupted zip: can't find end of central directory") : new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"); this.reader.setIndex(t); var e = t; if (this.checkSignature(s.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === n.MAX_VALUE_16BITS || this.diskWithCentralDirStart === n.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === n.MAX_VALUE_16BITS || this.centralDirRecords === n.MAX_VALUE_16BITS || this.centralDirSize === n.MAX_VALUE_32BITS || this.centralDirOffset === n.MAX_VALUE_32BITS) { if (this.zip64 = !0, (t = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR)) < 0) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); if (this.reader.setIndex(t), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature(this.relativeOffsetEndOfZip64CentralDir, s.ZIP64_CENTRAL_DIRECTORY_END) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0)) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral() } var r = this.centralDirOffset + this.centralDirSize; this.zip64 && (r += 20, r += 12 + this.zip64EndOfCentralSize); var i = e - r; if (i > 0) this.isSignature(e, s.CENTRAL_FILE_HEADER) || (this.reader.zero = i); else if (0 > i) throw new Error("Corrupted zip: missing " + Math.abs(i) + " bytes.") }, prepareReader: function (t) { this.reader = i(t) }, load: function (t) { this.prepareReader(t), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles() } }, e.exports = h }, { "./reader/readerFor": 22, "./signature": 23, "./support": 30, "./utf8": 31, "./utils": 32, "./zipEntry": 34 }], 34: [function (t, e, r) { "use strict"; function l(t, e) { this.options = t, this.loadOptions = e } var i = t("./reader/readerFor"), s = t("./utils"), n = t("./compressedObject"), a = t("./crc32"), o = t("./utf8"), h = t("./compressions"), u = t("./support"); l.prototype = { isEncrypted: function () { return 1 == (1 & this.bitFlag) }, useUTF8: function () { return 2048 == (2048 & this.bitFlag) }, readLocalPart: function (t) { var e, r; if (t.skip(22), this.fileNameLength = t.readInt(2), r = t.readInt(2), this.fileName = t.readData(this.fileNameLength), t.skip(r), -1 === this.compressedSize || -1 === this.uncompressedSize) throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)"); if (null === (e = function (t) { for (var e in h) if (h.hasOwnProperty(e) && h[e].magic === t) return h[e]; return null }(this.compressionMethod))) throw new Error("Corrupted zip : compression " + s.pretty(this.compressionMethod) + " unknown (inner file : " + s.transformTo("string", this.fileName) + ")"); this.decompressed = new n(this.compressedSize, this.uncompressedSize, this.crc32, e, t.readData(this.compressedSize)) }, readCentralPart: function (t) { this.versionMadeBy = t.readInt(2), t.skip(2), this.bitFlag = t.readInt(2), this.compressionMethod = t.readString(2), this.date = t.readDate(), this.crc32 = t.readInt(4), this.compressedSize = t.readInt(4), this.uncompressedSize = t.readInt(4); var e = t.readInt(2); if (this.extraFieldsLength = t.readInt(2), this.fileCommentLength = t.readInt(2), this.diskNumberStart = t.readInt(2), this.internalFileAttributes = t.readInt(2), this.externalFileAttributes = t.readInt(4), this.localHeaderOffset = t.readInt(4), this.isEncrypted()) throw new Error("Encrypted zip are not supported"); t.skip(e), this.readExtraFields(t), this.parseZIP64ExtraField(t), this.fileComment = t.readData(this.fileCommentLength) }, processAttributes: function () { this.unixPermissions = null, this.dosPermissions = null; var t = this.versionMadeBy >> 8; this.dir = !!(16 & this.externalFileAttributes), 0 == t && (this.dosPermissions = 63 & this.externalFileAttributes), 3 == t && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), this.dir || "/" !== this.fileNameStr.slice(-1) || (this.dir = !0) }, parseZIP64ExtraField: function (t) { if (this.extraFields[1]) { var e = i(this.extraFields[1].value); this.uncompressedSize === s.MAX_VALUE_32BITS && (this.uncompressedSize = e.readInt(8)), this.compressedSize === s.MAX_VALUE_32BITS && (this.compressedSize = e.readInt(8)), this.localHeaderOffset === s.MAX_VALUE_32BITS && (this.localHeaderOffset = e.readInt(8)), this.diskNumberStart === s.MAX_VALUE_32BITS && (this.diskNumberStart = e.readInt(4)) } }, readExtraFields: function (t) { var e, r, i, n = t.index + this.extraFieldsLength; for (this.extraFields || (this.extraFields = {}); t.index + 4 < n;)e = t.readInt(2), r = t.readInt(2), i = t.readData(r), this.extraFields[e] = { id: e, length: r, value: i }; t.setIndex(n) }, handleUTF8: function () { var t = u.uint8array ? "uint8array" : "array"; if (this.useUTF8()) this.fileNameStr = o.utf8decode(this.fileName), this.fileCommentStr = o.utf8decode(this.fileComment); else { var e = this.findExtraFieldUnicodePath(); if (null !== e) this.fileNameStr = e; else { var r = s.transformTo(t, this.fileName); this.fileNameStr = this.loadOptions.decodeFileName(r) } var i = this.findExtraFieldUnicodeComment(); if (null !== i) this.fileCommentStr = i; else { var n = s.transformTo(t, this.fileComment); this.fileCommentStr = this.loadOptions.decodeFileName(n) } } }, findExtraFieldUnicodePath: function () { var t = this.extraFields[28789]; if (t) { var e = i(t.value); return 1 !== e.readInt(1) ? null : a(this.fileName) !== e.readInt(4) ? null : o.utf8decode(e.readData(t.length - 5)) } return null }, findExtraFieldUnicodeComment: function () { var t = this.extraFields[25461]; if (t) { var e = i(t.value); return 1 !== e.readInt(1) ? null : a(this.fileComment) !== e.readInt(4) ? null : o.utf8decode(e.readData(t.length - 5)) } return null } }, e.exports = l }, { "./compressedObject": 2, "./compressions": 3, "./crc32": 4, "./reader/readerFor": 22, "./support": 30, "./utf8": 31, "./utils": 32 }], 35: [function (t, e, r) { "use strict"; function i(t, e, r) { this.name = t, this.dir = r.dir, this.date = r.date, this.comment = r.comment, this.unixPermissions = r.unixPermissions, this.dosPermissions = r.dosPermissions, this._data = e, this._dataBinary = r.binary, this.options = { compression: r.compression, compressionOptions: r.compressionOptions } } var s = t("./stream/StreamHelper"), n = t("./stream/DataWorker"), a = t("./utf8"), o = t("./compressedObject"), h = t("./stream/GenericWorker"); i.prototype = { internalStream: function (t) { var e = null, r = "string"; try { if (!t) throw new Error("No output type specified."); var i = "string" === (r = t.toLowerCase()) || "text" === r; "binarystring" !== r && "text" !== r || (r = "string"), e = this._decompressWorker(); var n = !this._dataBinary; n && !i && (e = e.pipe(new a.Utf8EncodeWorker)), !n && i && (e = e.pipe(new a.Utf8DecodeWorker)) } catch (t) { (e = new h("error")).error(t) } return new s(e, r, "") }, async: function (t, e) { return this.internalStream(t).accumulate(e) }, nodeStream: function (t, e) { return this.internalStream(t || "nodebuffer").toNodejsStream(e) }, _compressWorker: function (t, e) { if (this._data instanceof o && this._data.compression.magic === t.magic) return this._data.getCompressedWorker(); var r = this._decompressWorker(); return this._dataBinary || (r = r.pipe(new a.Utf8EncodeWorker)), o.createWorkerFrom(r, t, e) }, _decompressWorker: function () { return this._data instanceof o ? this._data.getContentWorker() : this._data instanceof h ? this._data : new n(this._data) } }; for (var u = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"], l = function () { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, f = 0; f < u.length; f++)i.prototype[u[f]] = l; e.exports = i }, { "./compressedObject": 2, "./stream/DataWorker": 27, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31 }], 36: [function (t, l, e) { (function (e) { "use strict"; function u() { var t, e; i = !0; for (var r = h.length; r;) { for (e = h, h = [], t = -1; ++t < r;)e[t](); r = h.length } i = !1 } var r, i, t = e.MutationObserver || e.WebKitMutationObserver; if (t) { var n = 0, s = new t(u), a = e.document.createTextNode(""); s.observe(a, { characterData: !0 }), r = function () { a.data = n = ++n % 2 } } else if (e.setImmediate || void 0 === e.MessageChannel) r = "document" in e && "onreadystatechange" in e.document.createElement("script") ? function () { var t = e.document.createElement("script"); t.onreadystatechange = function () { u(), t.onreadystatechange = null, t.parentNode.removeChild(t), t = null }, e.document.documentElement.appendChild(t) } : function () { setTimeout(u, 0) }; else { var o = new e.MessageChannel; o.port1.onmessage = u, r = function () { o.port2.postMessage(0) } } var h = []; l.exports = function (t) { 1 !== h.push(t) || i || r() } }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 37: [function (t, e, r) { "use strict"; function u() { } function o(t) { if ("function" != typeof t) throw new TypeError("resolver must be a function"); this.state = i, this.queue = [], this.outcome = void 0, t !== u && c(this, t) } function h(t, e, r) { this.promise = t, "function" == typeof e && (this.onFulfilled = e, this.callFulfilled = this.otherCallFulfilled), "function" == typeof r && (this.onRejected = r, this.callRejected = this.otherCallRejected) } function f(e, r, i) { n(function () { var t; try { t = r(i) } catch (t) { return l.reject(e, t) } t === e ? l.reject(e, new TypeError("Cannot resolve promise with itself")) : l.resolve(e, t) }) } function d(t) { var e = t && t.then; return !t || "object" != typeof t && "function" != typeof t || "function" != typeof e ? void 0 : function () { e.apply(t, arguments) } } function c(e, t) { function i(t) { r || (r = !0, l.reject(e, t)) } function n(t) { r || (r = !0, l.resolve(e, t)) } var r = !1, s = p(function () { t(n, i) }); "error" === s.status && i(s.value) } function p(t, e) { var r = {}; try { r.value = t(e), r.status = "success" } catch (t) { r.status = "error", r.value = t } return r } var n = t("immediate"), l = {}, s = ["REJECTED"], a = ["FULFILLED"], i = ["PENDING"]; (e.exports = o).prototype["finally"] = function (e) { if ("function" != typeof e) return this; var r = this.constructor; return this.then(function (t) { return r.resolve(e()).then(function () { return t }) }, function (t) { return r.resolve(e()).then(function () { throw t }) }) }, o.prototype["catch"] = function (t) { return this.then(null, t) }, o.prototype.then = function (t, e) { if ("function" != typeof t && this.state === a || "function" != typeof e && this.state === s) return this; var r = new this.constructor(u); return this.state !== i ? f(r, this.state === a ? t : e, this.outcome) : this.queue.push(new h(r, t, e)), r }, h.prototype.callFulfilled = function (t) { l.resolve(this.promise, t) }, h.prototype.otherCallFulfilled = function (t) { f(this.promise, this.onFulfilled, t) }, h.prototype.callRejected = function (t) { l.reject(this.promise, t) }, h.prototype.otherCallRejected = function (t) { f(this.promise, this.onRejected, t) }, l.resolve = function (t, e) { var r = p(d, e); if ("error" === r.status) return l.reject(t, r.value); var i = r.value; if (i) c(t, i); else { t.state = a, t.outcome = e; for (var n = -1, s = t.queue.length; ++n < s;)t.queue[n].callFulfilled(e) } return t }, l.reject = function (t, e) { t.state = s, t.outcome = e; for (var r = -1, i = t.queue.length; ++r < i;)t.queue[r].callRejected(e); return t }, o.resolve = function (t) { return t instanceof this ? t : l.resolve(new this(u), t) }, o.reject = function (t) { var e = new this(u); return l.reject(e, t) }, o.all = function (t) { function h(t, e) { r.resolve(t).then(function (t) { s[e] = t, ++a !== i || n || (n = !0, l.resolve(o, s)) }, function (t) { n || (n = !0, l.reject(o, t)) }) } var r = this; if ("[object Array]" !== Object.prototype.toString.call(t)) return this.reject(new TypeError("must be an array")); var i = t.length, n = !1; if (!i) return this.resolve([]); for (var s = new Array(i), a = 0, e = -1, o = new this(u); ++e < i;)h(t[e], e); return o }, o.race = function (t) { var e = this; if ("[object Array]" !== Object.prototype.toString.call(t)) return this.reject(new TypeError("must be an array")); var r = t.length, i = !1; if (!r) return this.resolve([]); for (var n = -1, s = new this(u); ++n < r;)a = t[n], e.resolve(a).then(function (t) { i || (i = !0, l.resolve(s, t)) }, function (t) { i || (i = !0, l.reject(s, t)) }); var a; return s } }, { immediate: 36 }], 38: [function (t, e, r) { "use strict"; var i = {}; t("./lib/utils/common").assign(i, t("./lib/deflate"), t("./lib/inflate"), t("./lib/zlib/constants")), e.exports = i }, { "./lib/deflate": 39, "./lib/inflate": 40, "./lib/utils/common": 41, "./lib/zlib/constants": 44 }], 39: [function (t, e, r) { "use strict"; function p(t) { if (!(this instanceof p)) return new p(t); this.options = o.assign({ level: f, method: c, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: d, to: "" }, t || {}); var e = this.options; e.raw && 0 < e.windowBits ? e.windowBits = -e.windowBits : e.gzip && 0 < e.windowBits && e.windowBits < 16 && (e.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new s, this.strm.avail_out = 0; var r = a.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy); if (r !== l) throw new Error(n[r]); if (e.header && a.deflateSetHeader(this.strm, e.header), e.dictionary) { var i; if (i = "string" == typeof e.dictionary ? h.string2buf(e.dictionary) : "[object ArrayBuffer]" === u.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary, (r = a.deflateSetDictionary(this.strm, i)) !== l) throw new Error(n[r]); this._dict_set = !0 } } function i(t, e) { var r = new p(e); if (r.push(t, !0), r.err) throw r.msg || n[r.err]; return r.result } var a = t("./zlib/deflate"), o = t("./utils/common"), h = t("./utils/strings"), n = t("./zlib/messages"), s = t("./zlib/zstream"), u = Object.prototype.toString, l = 0, f = -1, d = 0, c = 8; p.prototype.push = function (t, e) { var r, i, n = this.strm, s = this.options.chunkSize; if (this.ended) return !1; i = e === ~~e ? e : !0 === e ? 4 : 0, "string" == typeof t ? n.input = h.string2buf(t) : "[object ArrayBuffer]" === u.call(t) ? n.input = new Uint8Array(t) : n.input = t, n.next_in = 0, n.avail_in = n.input.length; do { if (0 === n.avail_out && (n.output = new o.Buf8(s), n.next_out = 0, n.avail_out = s), 1 !== (r = a.deflate(n, i)) && r !== l) return this.onEnd(r), !(this.ended = !0); 0 !== n.avail_out && (0 !== n.avail_in || 4 !== i && 2 !== i) || ("string" === this.options.to ? this.onData(h.buf2binstring(o.shrinkBuf(n.output, n.next_out))) : this.onData(o.shrinkBuf(n.output, n.next_out))) } while ((0 < n.avail_in || 0 === n.avail_out) && 1 !== r); return 4 === i ? (r = a.deflateEnd(this.strm), this.onEnd(r), this.ended = !0, r === l) : 2 !== i || (this.onEnd(l), !(n.avail_out = 0)) }, p.prototype.onData = function (t) { this.chunks.push(t) }, p.prototype.onEnd = function (t) { t === l && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = o.flattenChunks(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }, r.Deflate = p, r.deflate = i, r.deflateRaw = function (t, e) { return (e = e || {}).raw = !0, i(t, e) }, r.gzip = function (t, e) { return (e = e || {}).gzip = !0, i(t, e) } }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/deflate": 46, "./zlib/messages": 51, "./zlib/zstream": 53 }], 40: [function (t, e, r) { "use strict"; function a(t) { if (!(this instanceof a)) return new a(t); this.options = c.assign({ chunkSize: 16384, windowBits: 0, to: "" }, t || {}); var e = this.options; e.raw && 0 <= e.windowBits && e.windowBits < 16 && (e.windowBits = -e.windowBits, 0 === e.windowBits && (e.windowBits = -15)), !(0 <= e.windowBits && e.windowBits < 16) || t && t.windowBits || (e.windowBits += 32), 15 < e.windowBits && e.windowBits < 48 && 0 == (15 & e.windowBits) && (e.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new n, this.strm.avail_out = 0; var r = d.inflateInit2(this.strm, e.windowBits); if (r !== m.Z_OK) throw new Error(i[r]); this.header = new s, d.inflateGetHeader(this.strm, this.header) } function o(t, e) { var r = new a(e); if (r.push(t, !0), r.err) throw r.msg || i[r.err]; return r.result } var d = t("./zlib/inflate"), c = t("./utils/common"), p = t("./utils/strings"), m = t("./zlib/constants"), i = t("./zlib/messages"), n = t("./zlib/zstream"), s = t("./zlib/gzheader"), _ = Object.prototype.toString; a.prototype.push = function (t, e) { var r, i, n, s, a, o, h = this.strm, u = this.options.chunkSize, l = this.options.dictionary, f = !1; if (this.ended) return !1; i = e === ~~e ? e : !0 === e ? m.Z_FINISH : m.Z_NO_FLUSH, "string" == typeof t ? h.input = p.binstring2buf(t) : "[object ArrayBuffer]" === _.call(t) ? h.input = new Uint8Array(t) : h.input = t, h.next_in = 0, h.avail_in = h.input.length; do { if (0 === h.avail_out && (h.output = new c.Buf8(u), h.next_out = 0, h.avail_out = u), (r = d.inflate(h, m.Z_NO_FLUSH)) === m.Z_NEED_DICT && l && (o = "string" == typeof l ? p.string2buf(l) : "[object ArrayBuffer]" === _.call(l) ? new Uint8Array(l) : l, r = d.inflateSetDictionary(this.strm, o)), r === m.Z_BUF_ERROR && !0 === f && (r = m.Z_OK, f = !1), r !== m.Z_STREAM_END && r !== m.Z_OK) return this.onEnd(r), !(this.ended = !0); h.next_out && (0 !== h.avail_out && r !== m.Z_STREAM_END && (0 !== h.avail_in || i !== m.Z_FINISH && i !== m.Z_SYNC_FLUSH) || ("string" === this.options.to ? (n = p.utf8border(h.output, h.next_out), s = h.next_out - n, a = p.buf2string(h.output, n), h.next_out = s, h.avail_out = u - s, s && c.arraySet(h.output, h.output, n, s, 0), this.onData(a)) : this.onData(c.shrinkBuf(h.output, h.next_out)))), 0 === h.avail_in && 0 === h.avail_out && (f = !0) } while ((0 < h.avail_in || 0 === h.avail_out) && r !== m.Z_STREAM_END); return r === m.Z_STREAM_END && (i = m.Z_FINISH), i === m.Z_FINISH ? (r = d.inflateEnd(this.strm), this.onEnd(r), this.ended = !0, r === m.Z_OK) : i !== m.Z_SYNC_FLUSH || (this.onEnd(m.Z_OK), !(h.avail_out = 0)) }, a.prototype.onData = function (t) { this.chunks.push(t) }, a.prototype.onEnd = function (t) { t === m.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = c.flattenChunks(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }, r.Inflate = a, r.inflate = o, r.inflateRaw = function (t, e) { return (e = e || {}).raw = !0, o(t, e) }, r.ungzip = o }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/constants": 44, "./zlib/gzheader": 47, "./zlib/inflate": 49, "./zlib/messages": 51, "./zlib/zstream": 53 }], 41: [function (t, e, r) { "use strict"; var i = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array; r.assign = function (t) { for (var e = Array.prototype.slice.call(arguments, 1); e.length;) { var r = e.shift(); if (r) { if ("object" != typeof r) throw new TypeError(r + "must be non-object"); for (var i in r) r.hasOwnProperty(i) && (t[i] = r[i]) } } return t }, r.shrinkBuf = function (t, e) { return t.length === e ? t : t.subarray ? t.subarray(0, e) : (t.length = e, t) }; var n = { arraySet: function (t, e, r, i, n) { if (e.subarray && t.subarray) t.set(e.subarray(r, r + i), n); else for (var s = 0; i > s; s++)t[n + s] = e[r + s] }, flattenChunks: function (t) { var e, r, i, n, s, a; for (e = i = 0, r = t.length; r > e; e++)i += t[e].length; for (a = new Uint8Array(i), e = n = 0, r = t.length; r > e; e++)s = t[e], a.set(s, n), n += s.length; return a } }, s = { arraySet: function (t, e, r, i, n) { for (var s = 0; i > s; s++)t[n + s] = e[r + s] }, flattenChunks: function (t) { return [].concat.apply([], t) } }; r.setTyped = function (t) { t ? (r.Buf8 = Uint8Array, r.Buf16 = Uint16Array, r.Buf32 = Int32Array, r.assign(r, n)) : (r.Buf8 = Array, r.Buf16 = Array, r.Buf32 = Array, r.assign(r, s)) }, r.setTyped(i) }, {}], 42: [function (t, e, r) { "use strict"; function l(t, e) { if (65537 > e && (t.subarray && s || !t.subarray && n)) return String.fromCharCode.apply(null, h.shrinkBuf(t, e)); for (var r = "", i = 0; e > i; i++)r += String.fromCharCode(t[i]); return r } var h = t("./common"), n = !0, s = !0; try { String.fromCharCode.apply(null, [0]) } catch (t) { n = !1 } try { String.fromCharCode.apply(null, new Uint8Array(1)) } catch (t) { s = !1 } for (var u = new h.Buf8(256), i = 0; 256 > i; i++)u[i] = i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1; u[254] = u[254] = 1, r.string2buf = function (t) { var e, r, i, n, s, a = t.length, o = 0; for (n = 0; a > n; n++)55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), o += 128 > r ? 1 : 2048 > r ? 2 : 65536 > r ? 3 : 4; for (e = new h.Buf8(o), n = s = 0; o > s; n++)55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), 128 > r ? e[s++] = r : (2048 > r ? e[s++] = 192 | r >>> 6 : (65536 > r ? e[s++] = 224 | r >>> 12 : (e[s++] = 240 | r >>> 18, e[s++] = 128 | r >>> 12 & 63), e[s++] = 128 | r >>> 6 & 63), e[s++] = 128 | 63 & r); return e }, r.buf2binstring = function (t) { return l(t, t.length) }, r.binstring2buf = function (t) { for (var e = new h.Buf8(t.length), r = 0, i = e.length; i > r; r++)e[r] = t.charCodeAt(r); return e }, r.buf2string = function (t, e) { var r, i, n, s, a = e || t.length, o = new Array(2 * a); for (r = i = 0; a > r;)if ((n = t[r++]) < 128) o[i++] = n; else if (4 < (s = u[n])) o[i++] = 65533, r += s - 1; else { for (n &= 2 === s ? 31 : 3 === s ? 15 : 7; s > 1 && a > r;)n = n << 6 | 63 & t[r++], s--; s > 1 ? o[i++] = 65533 : 65536 > n ? o[i++] = n : (n -= 65536, o[i++] = 55296 | n >> 10 & 1023, o[i++] = 56320 | 1023 & n) } return l(o, i) }, r.utf8border = function (t, e) { var r; for ((e = e || t.length) > t.length && (e = t.length), r = e - 1; r >= 0 && 128 == (192 & t[r]);)r--; return 0 > r ? e : 0 === r ? e : r + u[t[r]] > e ? r : e } }, { "./common": 41 }], 43: [function (t, e, r) { "use strict"; e.exports = function (t, e, r, i) { for (var n = 65535 & t | 0, s = t >>> 16 & 65535 | 0, a = 0; 0 !== r;) { for (r -= a = r > 2e3 ? 2e3 : r; s = s + (n = n + e[i++] | 0) | 0, --a;); n %= 65521, s %= 65521 } return n | s << 16 | 0 } }, {}], 44: [function (t, e, r) { "use strict"; e.exports = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 } }, {}], 45: [function (t, e, r) { "use strict"; var o = function () { for (var t, e = [], r = 0; 256 > r; r++) { t = r; for (var i = 0; 8 > i; i++)t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1; e[r] = t } return e }(); e.exports = function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++)t = t >>> 8 ^ n[255 & (t ^ e[a])]; return -1 ^ t } }, {}], 46: [function (t, e, r) { - "use strict"; function R(t, e) { return t.msg = i[e], e } function T(t) { return (t << 1) - (t > 4 ? 9 : 0) } function D(t) { for (var e = t.length; 0 <= --e;)t[e] = 0 } function F(t) { var e = t.state, r = e.pending; r > t.avail_out && (r = t.avail_out), 0 !== r && (d.arraySet(t.output, e.pending_buf, e.pending_out, r, t.next_out), t.next_out += r, e.pending_out += r, t.total_out += r, t.avail_out -= r, e.pending -= r, 0 === e.pending && (e.pending_out = 0)) } function N(t, e) { u._tr_flush_block(t, 0 <= t.block_start ? t.block_start : -1, t.strstart - t.block_start, e), t.block_start = t.strstart, F(t.strm) } function U(t, e) { t.pending_buf[t.pending++] = e } function P(t, e) { t.pending_buf[t.pending++] = e >>> 8 & 255, t.pending_buf[t.pending++] = 255 & e } function L(t, e) { var r, i, n = t.max_chain_length, s = t.strstart, a = t.prev_length, o = t.nice_match, h = t.strstart > t.w_size - z ? t.strstart - (t.w_size - z) : 0, u = t.window, l = t.w_mask, f = t.prev, d = t.strstart + S, c = u[s + a - 1], p = u[s + a]; t.prev_length >= t.good_match && (n >>= 2), o > t.lookahead && (o = t.lookahead); do if (u[(r = e) + a] === p && u[r + a - 1] === c && u[r] === u[s] && u[++r] === u[s + 1]) { s += 2, r++; do; while (u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && d > s); if (i = S - (d - s), s = d - S, i > a) { if (t.match_start = e, o <= (a = i)) break; c = u[s + a - 1], p = u[s + a] } } while ((e = f[e & l]) > h && 0 != --n); return a <= t.lookahead ? a : t.lookahead } function j(t) { var e, r, i, n, s, a, o, h, u, l, f = t.w_size; do { if (n = t.window_size - t.lookahead - t.strstart, t.strstart >= f + (f - z)) { for (d.arraySet(t.window, t.window, f, f, 0), t.match_start -= f, t.strstart -= f, t.block_start -= f, e = r = t.hash_size; i = t.head[--e], t.head[e] = i >= f ? i - f : 0, --r;); for (e = r = f; i = t.prev[--e], t.prev[e] = i >= f ? i - f : 0, --r;); n += f } if (0 === t.strm.avail_in) break; if (a = t.strm, o = t.window, h = t.strstart + t.lookahead, u = n, l = void 0, l = a.avail_in, l > u && (l = u), r = 0 === l ? 0 : (a.avail_in -= l, d.arraySet(o, a.input, a.next_in, l, h), 1 === a.state.wrap ? a.adler = c(a.adler, o, l, h) : 2 === a.state.wrap && (a.adler = p(a.adler, o, l, h)), a.next_in += l, a.total_in += l, l), t.lookahead += r, t.lookahead + t.insert >= x) for (s = t.strstart - t.insert, t.ins_h = t.window[s], t.ins_h = (t.ins_h << t.hash_shift ^ t.window[s + 1]) & t.hash_mask; t.insert && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[s + x - 1]) & t.hash_mask, t.prev[s & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = s, s++, t.insert--, !(t.lookahead + t.insert < x));); } while (t.lookahead < z && 0 !== t.strm.avail_in) } function Z(t, e) { for (var r, i; ;) { if (t.lookahead < z) { if (j(t), t.lookahead < z && e === l) return A; if (0 === t.lookahead) break } if (r = 0, t.lookahead >= x && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 !== r && t.strstart - r <= t.w_size - z && (t.match_length = L(t, r)), t.match_length >= x) if (i = u._tr_tally(t, t.strstart - t.match_start, t.match_length - x), t.lookahead -= t.match_length, t.match_length <= t.max_lazy_match && t.lookahead >= x) { for (t.match_length--; t.strstart++, t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart, 0 != --t.match_length;); t.strstart++ } else t.strstart += t.match_length, t.match_length = 0, t.ins_h = t.window[t.strstart], t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + 1]) & t.hash_mask; else i = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++; if (i && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = t.strstart < x - 1 ? t.strstart : x - 1, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I } function W(t, e) { for (var r, i, n; ;) { if (t.lookahead < z) { if (j(t), t.lookahead < z && e === l) return A; if (0 === t.lookahead) break } if (r = 0, t.lookahead >= x && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), t.prev_length = t.match_length, t.prev_match = t.match_start, t.match_length = x - 1, 0 !== r && t.prev_length < t.max_lazy_match && t.strstart - r <= t.w_size - z && (t.match_length = L(t, r), t.match_length <= 5 && (1 === t.strategy || t.match_length === x && 4096 < t.strstart - t.match_start) && (t.match_length = x - 1)), t.prev_length >= x && t.match_length <= t.prev_length) { for (n = t.strstart + t.lookahead - x, i = u._tr_tally(t, t.strstart - 1 - t.prev_match, t.prev_length - x), t.lookahead -= t.prev_length - 1, t.prev_length -= 2; ++t.strstart <= n && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 != --t.prev_length;); if (t.match_available = 0, t.match_length = x - 1, t.strstart++, i && (N(t, !1), 0 === t.strm.avail_out)) return A } else if (t.match_available) { if ((i = u._tr_tally(t, 0, t.window[t.strstart - 1])) && N(t, !1), t.strstart++, t.lookahead--, 0 === t.strm.avail_out) return A } else t.match_available = 1, t.strstart++, t.lookahead-- } return t.match_available && (i = u._tr_tally(t, 0, t.window[t.strstart - 1]), t.match_available = 0), t.insert = t.strstart < x - 1 ? t.strstart : x - 1, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I } function M(t, e, r, i, n) { - this.good_length = t, this.max_lazy = e, this.nice_length = r, this.max_chain = i, this.func = n - } function H() { this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = v, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new d.Buf16(2 * w), this.dyn_dtree = new d.Buf16(2 * (2 * a + 1)), this.bl_tree = new d.Buf16(2 * (2 * o + 1)), D(this.dyn_ltree), D(this.dyn_dtree), D(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new d.Buf16(k + 1), this.heap = new d.Buf16(2 * s + 1), D(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new d.Buf16(2 * s + 1), D(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0 } function G(t) { var e; return t && t.state ? (t.total_in = t.total_out = 0, t.data_type = n, (e = t.state).pending = 0, e.pending_out = 0, e.wrap < 0 && (e.wrap = -e.wrap), e.status = e.wrap ? C : E, t.adler = 2 === e.wrap ? 0 : 1, e.last_flush = l, u._tr_init(e), m) : R(t, _) } function K(t) { var e = G(t); return e === m && function (t) { t.window_size = 2 * t.w_size, D(t.head), t.max_lazy_match = h[t.level].max_lazy, t.good_match = h[t.level].good_length, t.nice_match = h[t.level].nice_length, t.max_chain_length = h[t.level].max_chain, t.strstart = 0, t.block_start = 0, t.lookahead = 0, t.insert = 0, t.match_length = t.prev_length = x - 1, t.match_available = 0, t.ins_h = 0 }(t.state), e } function Y(t, e, r, i, n, s) { if (!t) return _; var a = 1; if (e === g && (e = 6), 0 > i ? (a = 0, i = -i) : i > 15 && (a = 2, i -= 16), 1 > n || n > y || r !== v || 8 > i || i > 15 || 0 > e || e > 9 || 0 > s || s > b) return R(t, _); 8 === i && (i = 9); var o = new H; return (t.state = o).strm = t, o.wrap = a, o.gzhead = null, o.w_bits = i, o.w_size = 1 << o.w_bits, o.w_mask = o.w_size - 1, o.hash_bits = n + 7, o.hash_size = 1 << o.hash_bits, o.hash_mask = o.hash_size - 1, o.hash_shift = ~~((o.hash_bits + x - 1) / x), o.window = new d.Buf8(2 * o.w_size), o.head = new d.Buf16(o.hash_size), o.prev = new d.Buf16(o.w_size), o.lit_bufsize = 1 << n + 6, o.pending_buf_size = 4 * o.lit_bufsize, o.pending_buf = new d.Buf8(o.pending_buf_size), o.d_buf = 1 * o.lit_bufsize, o.l_buf = 3 * o.lit_bufsize, o.level = e, o.strategy = s, o.method = r, K(t) } var h, d = t("../utils/common"), u = t("./trees"), c = t("./adler32"), p = t("./crc32"), i = t("./messages"), l = 0, f = 4, m = 0, _ = -2, g = -1, b = 4, n = 2, v = 8, y = 9, s = 286, a = 30, o = 19, w = 2 * s + 1, k = 15, x = 3, S = 258, z = S + x + 1, C = 42, E = 113, A = 1, I = 2, O = 3, B = 4; h = [new M(0, 0, 0, 0, function (t, e) { var r = 65535; for (r > t.pending_buf_size - 5 && (r = t.pending_buf_size - 5); ;) { if (t.lookahead <= 1) { if (j(t), 0 === t.lookahead && e === l) return A; if (0 === t.lookahead) break } t.strstart += t.lookahead, t.lookahead = 0; var i = t.block_start + r; if ((0 === t.strstart || t.strstart >= i) && (t.lookahead = t.strstart - i, t.strstart = i, N(t, !1), 0 === t.strm.avail_out)) return A; if (t.strstart - t.block_start >= t.w_size - z && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : (t.strstart > t.block_start && (N(t, !1), t.strm.avail_out), A) }), new M(4, 4, 8, 4, Z), new M(4, 5, 16, 8, Z), new M(4, 6, 32, 32, Z), new M(4, 4, 16, 16, W), new M(8, 16, 32, 32, W), new M(8, 16, 128, 128, W), new M(8, 32, 128, 256, W), new M(32, 128, 258, 1024, W), new M(32, 258, 258, 4096, W)], r.deflateInit = function (t, e) { return Y(t, e, v, 15, 8, 0) }, r.deflateInit2 = Y, r.deflateReset = K, r.deflateResetKeep = G, r.deflateSetHeader = function (t, e) { return t && t.state ? 2 !== t.state.wrap ? _ : (t.state.gzhead = e, m) : _ }, r.deflate = function (t, e) { var r, i, n, s; if (!t || !t.state || e > 5 || 0 > e) return t ? R(t, _) : _; if (i = t.state, !t.output || !t.input && 0 !== t.avail_in || 666 === i.status && e !== f) return R(t, 0 === t.avail_out ? -5 : _); if (i.strm = t, r = i.last_flush, i.last_flush = e, i.status === C) if (2 === i.wrap) t.adler = 0, U(i, 31), U(i, 139), U(i, 8), i.gzhead ? (U(i, (i.gzhead.text ? 1 : 0) + (i.gzhead.hcrc ? 2 : 0) + (i.gzhead.extra ? 4 : 0) + (i.gzhead.name ? 8 : 0) + (i.gzhead.comment ? 16 : 0)), U(i, 255 & i.gzhead.time), U(i, i.gzhead.time >> 8 & 255), U(i, i.gzhead.time >> 16 & 255), U(i, i.gzhead.time >> 24 & 255), U(i, 9 === i.level ? 2 : 2 <= i.strategy || i.level < 2 ? 4 : 0), U(i, 255 & i.gzhead.os), i.gzhead.extra && i.gzhead.extra.length && (U(i, 255 & i.gzhead.extra.length), U(i, i.gzhead.extra.length >> 8 & 255)), i.gzhead.hcrc && (t.adler = p(t.adler, i.pending_buf, i.pending, 0)), i.gzindex = 0, i.status = 69) : (U(i, 0), U(i, 0), U(i, 0), U(i, 0), U(i, 0), U(i, 9 === i.level ? 2 : 2 <= i.strategy || i.level < 2 ? 4 : 0), U(i, 3), i.status = E); else { var a = v + (i.w_bits - 8 << 4) << 8; a |= (2 <= i.strategy || i.level < 2 ? 0 : i.level < 6 ? 1 : 6 === i.level ? 2 : 3) << 6, 0 !== i.strstart && (a |= 32), a += 31 - a % 31, i.status = E, P(i, a), 0 !== i.strstart && (P(i, t.adler >>> 16), P(i, 65535 & t.adler)), t.adler = 1 } if (69 === i.status) if (i.gzhead.extra) { for (n = i.pending; i.gzindex < (65535 & i.gzhead.extra.length) && (i.pending !== i.pending_buf_size || (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending !== i.pending_buf_size));)U(i, 255 & i.gzhead.extra[i.gzindex]), i.gzindex++; i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), i.gzindex === i.gzhead.extra.length && (i.gzindex = 0, i.status = 73) } else i.status = 73; if (73 === i.status) if (i.gzhead.name) { n = i.pending; do { if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending === i.pending_buf_size)) { s = 1; break } s = i.gzindex < i.gzhead.name.length ? 255 & i.gzhead.name.charCodeAt(i.gzindex++) : 0, U(i, s) } while (0 !== s); i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), 0 === s && (i.gzindex = 0, i.status = 91) } else i.status = 91; if (91 === i.status) if (i.gzhead.comment) { n = i.pending; do { if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending === i.pending_buf_size)) { s = 1; break } s = i.gzindex < i.gzhead.comment.length ? 255 & i.gzhead.comment.charCodeAt(i.gzindex++) : 0, U(i, s) } while (0 !== s); i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), 0 === s && (i.status = 103) } else i.status = 103; if (103 === i.status && (i.gzhead.hcrc ? (i.pending + 2 > i.pending_buf_size && F(t), i.pending + 2 <= i.pending_buf_size && (U(i, 255 & t.adler), U(i, t.adler >> 8 & 255), t.adler = 0, i.status = E)) : i.status = E), 0 !== i.pending) { if (F(t), 0 === t.avail_out) return i.last_flush = -1, m } else if (0 === t.avail_in && T(e) <= T(r) && e !== f) return R(t, -5); if (666 === i.status && 0 !== t.avail_in) return R(t, -5); if (0 !== t.avail_in || 0 !== i.lookahead || e !== l && 666 !== i.status) { var o = 2 === i.strategy ? function (t, e) { for (var r; ;) { if (0 === t.lookahead && (j(t), 0 === t.lookahead)) { if (e === l) return A; break } if (t.match_length = 0, r = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++, r && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I }(i, e) : 3 === i.strategy ? function (t, e) { for (var r, i, n, s, a = t.window; ;) { if (t.lookahead <= S) { if (j(t), t.lookahead <= S && e === l) return A; if (0 === t.lookahead) break } if (t.match_length = 0, t.lookahead >= x && 0 < t.strstart && (i = a[n = t.strstart - 1]) === a[++n] && i === a[++n] && i === a[++n]) { s = t.strstart + S; do; while (i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && s > n); t.match_length = S - (s - n), t.match_length > t.lookahead && (t.match_length = t.lookahead) } if (t.match_length >= x ? (r = u._tr_tally(t, 1, t.match_length - x), t.lookahead -= t.match_length, t.strstart += t.match_length, t.match_length = 0) : (r = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++), r && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I }(i, e) : h[i.level].func(i, e); if (o !== O && o !== B || (i.status = 666), o === A || o === O) return 0 === t.avail_out && (i.last_flush = -1), m; if (o === I && (1 === e ? u._tr_align(i) : 5 !== e && (u._tr_stored_block(i, 0, 0, !1), 3 === e && (D(i.head), 0 === i.lookahead && (i.strstart = 0, i.block_start = 0, i.insert = 0))), F(t), 0 === t.avail_out)) return i.last_flush = -1, m } return e !== f ? m : i.wrap <= 0 ? 1 : (2 === i.wrap ? (U(i, 255 & t.adler), U(i, t.adler >> 8 & 255), U(i, t.adler >> 16 & 255), U(i, t.adler >> 24 & 255), U(i, 255 & t.total_in), U(i, t.total_in >> 8 & 255), U(i, t.total_in >> 16 & 255), U(i, t.total_in >> 24 & 255)) : (P(i, t.adler >>> 16), P(i, 65535 & t.adler)), F(t), 0 < i.wrap && (i.wrap = -i.wrap), 0 !== i.pending ? m : 1) }, r.deflateEnd = function (t) { var e; return t && t.state ? (e = t.state.status) !== C && 69 !== e && 73 !== e && 91 !== e && 103 !== e && e !== E && 666 !== e ? R(t, _) : (t.state = null, e === E ? R(t, -3) : m) : _ }, r.deflateSetDictionary = function (t, e) { var r, i, n, s, a, o, h, u, l = e.length; if (!t || !t.state) return _; if (2 === (s = (r = t.state).wrap) || 1 === s && r.status !== C || r.lookahead) return _; for (1 === s && (t.adler = c(t.adler, e, l, 0)), r.wrap = 0, l >= r.w_size && (0 === s && (D(r.head), r.strstart = 0, r.block_start = 0, r.insert = 0), u = new d.Buf8(r.w_size), d.arraySet(u, e, l - r.w_size, r.w_size, 0), e = u, l = r.w_size), a = t.avail_in, o = t.next_in, h = t.input, t.avail_in = l, t.next_in = 0, t.input = e, j(r); r.lookahead >= x;) { for (i = r.strstart, n = r.lookahead - (x - 1); r.ins_h = (r.ins_h << r.hash_shift ^ r.window[i + x - 1]) & r.hash_mask, r.prev[i & r.w_mask] = r.head[r.ins_h], r.head[r.ins_h] = i, i++, --n;); r.strstart = i, r.lookahead = x - 1, j(r) } return r.strstart += r.lookahead, r.block_start = r.strstart, r.insert = r.lookahead, r.lookahead = 0, r.match_length = r.prev_length = x - 1, r.match_available = 0, t.next_in = o, t.input = h, t.avail_in = a, r.wrap = s, m }, r.deflateInfo = "pako deflate (from Nodeca project)" - }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./messages": 51, "./trees": 52 }], 47: [function (t, e, r) { "use strict"; e.exports = function () { this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1 } }, {}], 48: [function (t, e, r) { "use strict"; e.exports = function (t, e) { var r, i, n, s, a, o, h, u, l, f, d, c, p, m, _, g, b, v, y, w, k, x, S, z, C; r = t.state, i = t.next_in, z = t.input, n = i + (t.avail_in - 5), s = t.next_out, C = t.output, a = s - (e - t.avail_out), o = s + (t.avail_out - 257), h = r.dmax, u = r.wsize, l = r.whave, f = r.wnext, d = r.window, c = r.hold, p = r.bits, m = r.lencode, _ = r.distcode, g = (1 << r.lenbits) - 1, b = (1 << r.distbits) - 1; t: do { 15 > p && (c += z[i++] << p, p += 8, c += z[i++] << p, p += 8), v = m[c & g]; e: for (; ;) { if (c >>>= y = v >>> 24, p -= y, 0 === (y = v >>> 16 & 255)) C[s++] = 65535 & v; else { if (!(16 & y)) { if (0 == (64 & y)) { v = m[(65535 & v) + (c & (1 << y) - 1)]; continue e } if (32 & y) { r.mode = 12; break t } t.msg = "invalid literal/length code", r.mode = 30; break t } w = 65535 & v, (y &= 15) && (y > p && (c += z[i++] << p, p += 8), w += c & (1 << y) - 1, c >>>= y, p -= y), 15 > p && (c += z[i++] << p, p += 8, c += z[i++] << p, p += 8), v = _[c & b]; r: for (; ;) { if (c >>>= y = v >>> 24, p -= y, !(16 & (y = v >>> 16 & 255))) { if (0 == (64 & y)) { v = _[(65535 & v) + (c & (1 << y) - 1)]; continue r } t.msg = "invalid distance code", r.mode = 30; break t } if (k = 65535 & v, p < (y &= 15) && (c += z[i++] << p, (p += 8) < y && (c += z[i++] << p, p += 8)), h < (k += c & (1 << y) - 1)) { t.msg = "invalid distance too far back", r.mode = 30; break t } if (c >>>= y, p -= y, (y = s - a) < k) { if (l < (y = k - y) && r.sane) { t.msg = "invalid distance too far back", r.mode = 30; break t } if (S = d, (x = 0) === f) { if (x += u - y, w > y) { for (w -= y; C[s++] = d[x++], --y;); x = s - k, S = C } } else if (y > f) { if (x += u + f - y, (y -= f) < w) { for (w -= y; C[s++] = d[x++], --y;); if (x = 0, w > f) { for (w -= y = f; C[s++] = d[x++], --y;); x = s - k, S = C } } } else if (x += f - y, w > y) { for (w -= y; C[s++] = d[x++], --y;); x = s - k, S = C } for (; w > 2;)C[s++] = S[x++], C[s++] = S[x++], C[s++] = S[x++], w -= 3; w && (C[s++] = S[x++], w > 1 && (C[s++] = S[x++])) } else { for (x = s - k; C[s++] = C[x++], C[s++] = C[x++], C[s++] = C[x++], 2 < (w -= 3);); w && (C[s++] = C[x++], w > 1 && (C[s++] = C[x++])) } break } } break } } while (n > i && o > s); i -= w = p >> 3, c &= (1 << (p -= w << 3)) - 1, t.next_in = i, t.next_out = s, t.avail_in = n > i ? n - i + 5 : 5 - (i - n), t.avail_out = o > s ? o - s + 257 : 257 - (s - o), r.hold = c, r.bits = p } }, {}], 49: [function (t, e, r) { "use strict"; function L(t) { return (t >>> 24 & 255) + (t >>> 8 & 65280) + ((65280 & t) << 8) + ((255 & t) << 24) } function s() { this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new I.Buf16(320), this.work = new I.Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0 } function a(t) { var e; return t && t.state ? (e = t.state, t.total_in = t.total_out = e.total = 0, t.msg = "", e.wrap && (t.adler = 1 & e.wrap), e.mode = P, e.last = 0, e.havedict = 0, e.dmax = 32768, e.head = null, e.hold = 0, e.bits = 0, e.lencode = e.lendyn = new I.Buf32(i), e.distcode = e.distdyn = new I.Buf32(n), e.sane = 1, e.back = -1, N) : U } function o(t) { var e; return t && t.state ? ((e = t.state).wsize = 0, e.whave = 0, e.wnext = 0, a(t)) : U } function h(t, e) { var r, i; return t && t.state ? (i = t.state, 0 > e ? (r = 0, e = -e) : (r = 1 + (e >> 4), 48 > e && (e &= 15)), e && (8 > e || e > 15) ? U : (null !== i.window && i.wbits !== e && (i.window = null), i.wrap = r, i.wbits = e, o(t))) : U } function u(t, e) { var r, i; return t ? (i = new s, (t.state = i).window = null, (r = h(t, e)) !== N && (t.state = null), r) : U } function j(t) { if (d) { var e; for (l = new I.Buf32(512), f = new I.Buf32(32), e = 0; 144 > e;)t.lens[e++] = 8; for (; 256 > e;)t.lens[e++] = 9; for (; 280 > e;)t.lens[e++] = 7; for (; 288 > e;)t.lens[e++] = 8; for (T(D, t.lens, 0, 288, l, 0, t.work, { bits: 9 }), e = 0; 32 > e;)t.lens[e++] = 5; T(F, t.lens, 0, 32, f, 0, t.work, { bits: 5 }), d = !1 } t.lencode = l, t.lenbits = 9, t.distcode = f, t.distbits = 5 } function Z(t, e, r, i) { var n, s = t.state; return null === s.window && (s.wsize = 1 << s.wbits, s.wnext = 0, s.whave = 0, s.window = new I.Buf8(s.wsize)), i >= s.wsize ? (I.arraySet(s.window, e, r - s.wsize, s.wsize, 0), s.wnext = 0, s.whave = s.wsize) : (i < (n = s.wsize - s.wnext) && (n = i), I.arraySet(s.window, e, r - i, n, s.wnext), (i -= n) ? (I.arraySet(s.window, e, r - i, i, 0), s.wnext = i, s.whave = s.wsize) : (s.wnext += n, s.wnext === s.wsize && (s.wnext = 0), s.whave < s.wsize && (s.whave += n))), 0 } var l, f, I = t("../utils/common"), O = t("./adler32"), B = t("./crc32"), R = t("./inffast"), T = t("./inftrees"), D = 1, F = 2, N = 0, U = -2, P = 1, i = 852, n = 592, d = !0; r.inflateReset = o, r.inflateReset2 = h, r.inflateResetKeep = a, r.inflateInit = function (t) { return u(t, 15) }, r.inflateInit2 = u, r.inflate = function (t, e) { var r, i, n, s, a, o, h, u, l, f, d, c, p, m, _, g, b, v, y, w, k, x, S, z, C = 0, E = new I.Buf8(4), A = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; if (!t || !t.state || !t.output || !t.input && 0 !== t.avail_in) return U; 12 === (r = t.state).mode && (r.mode = 13), a = t.next_out, n = t.output, h = t.avail_out, s = t.next_in, i = t.input, o = t.avail_in, u = r.hold, l = r.bits, f = o, d = h, x = N; t: for (; ;)switch (r.mode) { case P: if (0 === r.wrap) { r.mode = 13; break } for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (2 & r.wrap && 35615 === u) { E[r.check = 0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0), l = u = 0, r.mode = 2; break } if (r.flags = 0, r.head && (r.head.done = !1), !(1 & r.wrap) || (((255 & u) << 8) + (u >> 8)) % 31) { t.msg = "incorrect header check", r.mode = 30; break } if (8 != (15 & u)) { t.msg = "unknown compression method", r.mode = 30; break } if (l -= 4, k = 8 + (15 & (u >>>= 4)), 0 === r.wbits) r.wbits = k; else if (k > r.wbits) { t.msg = "invalid window size", r.mode = 30; break } r.dmax = 1 << k, t.adler = r.check = 1, r.mode = 512 & u ? 10 : 12, l = u = 0; break; case 2: for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (r.flags = u, 8 != (255 & r.flags)) { t.msg = "unknown compression method", r.mode = 30; break } if (57344 & r.flags) { t.msg = "unknown header flags set", r.mode = 30; break } r.head && (r.head.text = u >> 8 & 1), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0, r.mode = 3; case 3: for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.head && (r.head.time = u), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, E[2] = u >>> 16 & 255, E[3] = u >>> 24 & 255, r.check = B(r.check, E, 4, 0)), l = u = 0, r.mode = 4; case 4: for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.head && (r.head.xflags = 255 & u, r.head.os = u >> 8), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0, r.mode = 5; case 5: if (1024 & r.flags) { for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.length = u, r.head && (r.head.extra_len = u), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0 } else r.head && (r.head.extra = null); r.mode = 6; case 6: if (1024 & r.flags && (o < (c = r.length) && (c = o), c && (r.head && (k = r.head.extra_len - r.length, r.head.extra || (r.head.extra = new Array(r.head.extra_len)), I.arraySet(r.head.extra, i, s, c, k)), 512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, r.length -= c), r.length)) break t; r.length = 0, r.mode = 7; case 7: if (2048 & r.flags) { if (0 === o) break t; for (c = 0; k = i[s + c++], r.head && k && r.length < 65536 && (r.head.name += String.fromCharCode(k)), k && o > c;); if (512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, k) break t } else r.head && (r.head.name = null); r.length = 0, r.mode = 8; case 8: if (4096 & r.flags) { if (0 === o) break t; for (c = 0; k = i[s + c++], r.head && k && r.length < 65536 && (r.head.comment += String.fromCharCode(k)), k && o > c;); if (512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, k) break t } else r.head && (r.head.comment = null); r.mode = 9; case 9: if (512 & r.flags) { for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u !== (65535 & r.check)) { t.msg = "header crc mismatch", r.mode = 30; break } l = u = 0 } r.head && (r.head.hcrc = r.flags >> 9 & 1, r.head.done = !0), t.adler = r.check = 0, r.mode = 12; break; case 10: for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } t.adler = r.check = L(u), l = u = 0, r.mode = 11; case 11: if (0 === r.havedict) return t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, 2; t.adler = r.check = 1, r.mode = 12; case 12: if (5 === e || 6 === e) break t; case 13: if (r.last) { u >>>= 7 & l, l -= 7 & l, r.mode = 27; break } for (; 3 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } switch (r.last = 1 & u, l -= 1, 3 & (u >>>= 1)) { case 0: r.mode = 14; break; case 1: if (j(r), r.mode = 20, 6 !== e) break; u >>>= 2, l -= 2; break t; case 2: r.mode = 17; break; case 3: t.msg = "invalid block type", r.mode = 30 }u >>>= 2, l -= 2; break; case 14: for (u >>>= 7 & l, l -= 7 & l; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if ((65535 & u) != (u >>> 16 ^ 65535)) { t.msg = "invalid stored block lengths", r.mode = 30; break } if (r.length = 65535 & u, l = u = 0, r.mode = 15, 6 === e) break t; case 15: r.mode = 16; case 16: if (c = r.length) { if (c > o && (c = o), c > h && (c = h), 0 === c) break t; I.arraySet(n, i, s, c, a), o -= c, s += c, h -= c, a += c, r.length -= c; break } r.mode = 12; break; case 17: for (; 14 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (r.nlen = 257 + (31 & u), u >>>= 5, l -= 5, r.ndist = 1 + (31 & u), u >>>= 5, l -= 5, r.ncode = 4 + (15 & u), u >>>= 4, l -= 4, 286 < r.nlen || 30 < r.ndist) { t.msg = "too many length or distance symbols", r.mode = 30; break } r.have = 0, r.mode = 18; case 18: for (; r.have < r.ncode;) { for (; 3 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.lens[A[r.have++]] = 7 & u, u >>>= 3, l -= 3 } for (; r.have < 19;)r.lens[A[r.have++]] = 0; if (r.lencode = r.lendyn, r.lenbits = 7, S = { bits: r.lenbits }, x = T(0, r.lens, 0, 19, r.lencode, 0, r.work, S), r.lenbits = S.bits, x) { t.msg = "invalid code lengths set", r.mode = 30; break } r.have = 0, r.mode = 19; case 19: for (; r.have < r.nlen + r.ndist;) { for (; g = (C = r.lencode[u & (1 << r.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (16 > b) u >>>= _, l -= _, r.lens[r.have++] = b; else { if (16 === b) { for (z = _ + 2; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u >>>= _, l -= _, 0 === r.have) { t.msg = "invalid bit length repeat", r.mode = 30; break } k = r.lens[r.have - 1], c = 3 + (3 & u), u >>>= 2, l -= 2 } else if (17 === b) { for (z = _ + 3; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } l -= _, k = 0, c = 3 + (7 & (u >>>= _)), u >>>= 3, l -= 3 } else { for (z = _ + 7; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } l -= _, k = 0, c = 11 + (127 & (u >>>= _)), u >>>= 7, l -= 7 } if (r.have + c > r.nlen + r.ndist) { t.msg = "invalid bit length repeat", r.mode = 30; break } for (; c--;)r.lens[r.have++] = k } } if (30 === r.mode) break; if (0 === r.lens[256]) { t.msg = "invalid code -- missing end-of-block", r.mode = 30; break } if (r.lenbits = 9, S = { bits: r.lenbits }, x = T(D, r.lens, 0, r.nlen, r.lencode, 0, r.work, S), r.lenbits = S.bits, x) { t.msg = "invalid literal/lengths set", r.mode = 30; break } if (r.distbits = 6, r.distcode = r.distdyn, S = { bits: r.distbits }, x = T(F, r.lens, r.nlen, r.ndist, r.distcode, 0, r.work, S), r.distbits = S.bits, x) { t.msg = "invalid distances set", r.mode = 30; break } if (r.mode = 20, 6 === e) break t; case 20: r.mode = 21; case 21: if (o >= 6 && h >= 258) { t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, R(t, d), a = t.next_out, n = t.output, h = t.avail_out, s = t.next_in, i = t.input, o = t.avail_in, u = r.hold, l = r.bits, 12 === r.mode && (r.back = -1); break } for (r.back = 0; g = (C = r.lencode[u & (1 << r.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (g && 0 == (240 & g)) { for (v = _, y = g, w = b; g = (C = r.lencode[w + ((u & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } u >>>= v, l -= v, r.back += v } if (u >>>= _, l -= _, r.back += _, r.length = b, 0 === g) { r.mode = 26; break } if (32 & g) { r.back = -1, r.mode = 12; break } if (64 & g) { t.msg = "invalid literal/length code", r.mode = 30; break } r.extra = 15 & g, r.mode = 22; case 22: if (r.extra) { for (z = r.extra; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.length += u & (1 << r.extra) - 1, u >>>= r.extra, l -= r.extra, r.back += r.extra } r.was = r.length, r.mode = 23; case 23: for (; g = (C = r.distcode[u & (1 << r.distbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (0 == (240 & g)) { for (v = _, y = g, w = b; g = (C = r.distcode[w + ((u & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } u >>>= v, l -= v, r.back += v } if (u >>>= _, l -= _, r.back += _, 64 & g) { t.msg = "invalid distance code", r.mode = 30; break } r.offset = b, r.extra = 15 & g, r.mode = 24; case 24: if (r.extra) { for (z = r.extra; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.offset += u & (1 << r.extra) - 1, u >>>= r.extra, l -= r.extra, r.back += r.extra } if (r.offset > r.dmax) { t.msg = "invalid distance too far back", r.mode = 30; break } r.mode = 25; case 25: if (0 === h) break t; if (c = d - h, r.offset > c) { if ((c = r.offset - c) > r.whave && r.sane) { t.msg = "invalid distance too far back", r.mode = 30; break } p = c > r.wnext ? (c -= r.wnext, r.wsize - c) : r.wnext - c, c > r.length && (c = r.length), m = r.window } else m = n, p = a - r.offset, c = r.length; for (c > h && (c = h), h -= c, r.length -= c; n[a++] = m[p++], --c;); 0 === r.length && (r.mode = 21); break; case 26: if (0 === h) break t; n[a++] = r.length, h--, r.mode = 21; break; case 27: if (r.wrap) { for (; 32 > l;) { if (0 === o) break t; o--, u |= i[s++] << l, l += 8 } if (d -= h, t.total_out += d, r.total += d, d && (t.adler = r.check = r.flags ? B(r.check, n, d, a - d) : O(r.check, n, d, a - d)), d = h, (r.flags ? u : L(u)) !== r.check) { t.msg = "incorrect data check", r.mode = 30; break } l = u = 0 } r.mode = 28; case 28: if (r.wrap && r.flags) { for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u !== (4294967295 & r.total)) { t.msg = "incorrect length check", r.mode = 30; break } l = u = 0 } r.mode = 29; case 29: x = 1; break t; case 30: x = -3; break t; case 31: return -4; case 32: default: return U }return t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, (r.wsize || d !== t.avail_out && r.mode < 30 && (r.mode < 27 || 4 !== e)) && Z(t, t.output, t.next_out, d - t.avail_out) ? (r.mode = 31, -4) : (f -= t.avail_in, d -= t.avail_out, t.total_in += f, t.total_out += d, r.total += d, r.wrap && d && (t.adler = r.check = r.flags ? B(r.check, n, d, t.next_out - d) : O(r.check, n, d, t.next_out - d)), t.data_type = r.bits + (r.last ? 64 : 0) + (12 === r.mode ? 128 : 0) + (20 === r.mode || 15 === r.mode ? 256 : 0), (0 == f && 0 === d || 4 === e) && x === N && (x = -5), x) }, r.inflateEnd = function (t) { if (!t || !t.state) return U; var e = t.state; return e.window && (e.window = null), t.state = null, N }, r.inflateGetHeader = function (t, e) { var r; return t && t.state ? 0 == (2 & (r = t.state).wrap) ? U : ((r.head = e).done = !1, N) : U }, r.inflateSetDictionary = function (t, e) { var r, i = e.length; return t && t.state ? 0 !== (r = t.state).wrap && 11 !== r.mode ? U : 11 === r.mode && O(1, e, i, 0) !== r.check ? -3 : Z(t, e, i, i) ? (r.mode = 31, -4) : (r.havedict = 1, N) : U }, r.inflateInfo = "pako inflate (from Nodeca project)" }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./inffast": 48, "./inftrees": 50 }], 50: [function (t, e, r) { "use strict"; var D = t("../utils/common"), F = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0], N = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78], U = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0], P = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]; e.exports = function (t, e, r, i, n, s, a, o) { var h, u, l, f, d, c, p, m, _, g = o.bits, b = 0, v = 0, y = 0, w = 0, k = 0, x = 0, S = 0, z = 0, C = 0, E = 0, A = null, I = 0, O = new D.Buf16(16), B = new D.Buf16(16), R = null, T = 0; for (b = 0; 15 >= b; b++)O[b] = 0; for (v = 0; i > v; v++)O[e[r + v]]++; for (k = g, w = 15; w >= 1 && 0 === O[w]; w--); if (k > w && (k = w), 0 === w) return n[s++] = 20971520, n[s++] = 20971520, o.bits = 1, 0; for (y = 1; w > y && 0 === O[y]; y++); for (y > k && (k = y), b = z = 1; 15 >= b; b++)if (z <<= 1, (z -= O[b]) < 0) return -1; if (z > 0 && (0 === t || 1 !== w)) return -1; for (B[1] = 0, b = 1; 15 > b; b++)B[b + 1] = B[b] + O[b]; for (v = 0; i > v; v++)0 !== e[r + v] && (a[B[e[r + v]]++] = v); if (c = 0 === t ? (A = R = a, 19) : 1 === t ? (A = F, I -= 257, R = N, T -= 257, 256) : (A = U, R = P, -1), b = y, d = s, S = v = E = 0, l = -1, f = (C = 1 << (x = k)) - 1, 1 === t && C > 852 || 2 === t && C > 592) return 1; for (; ;) { for (p = b - S, _ = a[v] < c ? (m = 0, a[v]) : a[v] > c ? (m = R[T + a[v]], A[I + a[v]]) : (m = 96, 0), h = 1 << b - S, y = u = 1 << x; n[d + (E >> S) + (u -= h)] = p << 24 | m << 16 | _ | 0, 0 !== u;); for (h = 1 << b - 1; E & h;)h >>= 1; if (0 !== h ? (E &= h - 1, E += h) : E = 0, v++, 0 == --O[b]) { if (b === w) break; b = e[r + a[v]] } if (b > k && (E & f) !== l) { for (0 === S && (S = k), d += y, z = 1 << (x = b - S); w > x + S && !((z -= O[x + S]) <= 0);)x++, z <<= 1; if (C += 1 << x, 1 === t && C > 852 || 2 === t && C > 592) return 1; n[l = E & f] = k << 24 | x << 16 | d - s | 0 } } return 0 !== E && (n[d + E] = b - S << 24 | 64 << 16 | 0), o.bits = k, 0 } }, { "../utils/common": 41 }], 51: [function (t, e, r) { "use strict"; e.exports = { 2: "need dictionary", 1: "stream end", 0: "", "-1": "file error", "-2": "stream error", "-3": "data error", "-4": "insufficient memory", "-5": "buffer error", "-6": "incompatible version" } }, {}], 52: [function (t, e, r) { "use strict"; function i(t) { for (var e = t.length; 0 <= --e;)t[e] = 0 } function D(t, e, r, i, n) { this.static_tree = t, this.extra_bits = e, this.extra_base = r, this.elems = i, this.max_length = n, this.has_stree = t && t.length } function F(t, e) { this.dyn_tree = t, this.max_code = 0, this.stat_desc = e } function N(t) { return 256 > t ? E[t] : E[256 + (t >>> 7)] } function U(t, e) { t.pending_buf[t.pending++] = 255 & e, t.pending_buf[t.pending++] = e >>> 8 & 255 } function P(t, e, r) { t.bi_valid > c - r ? (t.bi_buf |= e << t.bi_valid & 65535, U(t, t.bi_buf), t.bi_buf = e >> c - t.bi_valid, t.bi_valid += r - c) : (t.bi_buf |= e << t.bi_valid & 65535, t.bi_valid += r) } function L(t, e, r) { P(t, r[2 * e], r[2 * e + 1]) } function j(t, e) { for (var r = 0; r |= 1 & t, t >>>= 1, r <<= 1, 0 < --e;); return r >>> 1 } function Z(t, e, r) { var i, n, s = new Array(g + 1), a = 0; for (i = 1; g >= i; i++)s[i] = a = a + r[i - 1] << 1; for (n = 0; e >= n; n++) { var o = t[2 * n + 1]; 0 !== o && (t[2 * n] = j(s[o]++, o)) } } function W(t) { var e; for (e = 0; l > e; e++)t.dyn_ltree[2 * e] = 0; for (e = 0; f > e; e++)t.dyn_dtree[2 * e] = 0; for (e = 0; d > e; e++)t.bl_tree[2 * e] = 0; t.dyn_ltree[2 * m] = 1, t.opt_len = t.static_len = 0, t.last_lit = t.matches = 0 } function M(t) { 8 < t.bi_valid ? U(t, t.bi_buf) : 0 < t.bi_valid && (t.pending_buf[t.pending++] = t.bi_buf), t.bi_buf = 0, t.bi_valid = 0 } function H(t, e, r, i) { var n = 2 * e, s = 2 * r; return t[n] < t[s] || t[n] === t[s] && i[e] <= i[r] } function G(t, e, r) { for (var i = t.heap[r], n = r << 1; n <= t.heap_len && (n < t.heap_len && H(e, t.heap[n + 1], t.heap[n], t.depth) && n++, !H(e, i, t.heap[n], t.depth));)t.heap[r] = t.heap[n], r = n, n <<= 1; t.heap[r] = i } function K(t, e, r) { var i, n, s, a, o = 0; if (0 !== t.last_lit) for (; i = t.pending_buf[t.d_buf + 2 * o] << 8 | t.pending_buf[t.d_buf + 2 * o + 1], n = t.pending_buf[t.l_buf + o], o++, 0 === i ? L(t, n, e) : (L(t, (s = A[n]) + u + 1, e), 0 !== (a = w[s]) && P(t, n -= I[s], a), L(t, s = N(--i), r), 0 !== (a = k[s]) && P(t, i -= T[s], a)), o < t.last_lit;); L(t, m, e) } function Y(t, e) { var r, i, n, s = e.dyn_tree, a = e.stat_desc.static_tree, o = e.stat_desc.has_stree, h = e.stat_desc.elems, u = -1; for (t.heap_len = 0, t.heap_max = _, r = 0; h > r; r++)0 !== s[2 * r] ? (t.heap[++t.heap_len] = u = r, t.depth[r] = 0) : s[2 * r + 1] = 0; for (; t.heap_len < 2;)s[2 * (n = t.heap[++t.heap_len] = 2 > u ? ++u : 0)] = 1, t.depth[n] = 0, t.opt_len--, o && (t.static_len -= a[2 * n + 1]); for (e.max_code = u, r = t.heap_len >> 1; r >= 1; r--)G(t, s, r); for (n = h; r = t.heap[1], t.heap[1] = t.heap[t.heap_len--], G(t, s, 1), i = t.heap[1], t.heap[--t.heap_max] = r, t.heap[--t.heap_max] = i, s[2 * n] = s[2 * r] + s[2 * i], t.depth[n] = (t.depth[r] >= t.depth[i] ? t.depth[r] : t.depth[i]) + 1, s[2 * r + 1] = s[2 * i + 1] = n, t.heap[1] = n++, G(t, s, 1), 2 <= t.heap_len;); t.heap[--t.heap_max] = t.heap[1], function (t, e) { var r, i, n, s, a, o, h = e.dyn_tree, u = e.max_code, l = e.stat_desc.static_tree, f = e.stat_desc.has_stree, d = e.stat_desc.extra_bits, c = e.stat_desc.extra_base, p = e.stat_desc.max_length, m = 0; for (s = 0; g >= s; s++)t.bl_count[s] = 0; for (h[2 * t.heap[t.heap_max] + 1] = 0, r = t.heap_max + 1; _ > r; r++)p < (s = h[2 * h[2 * (i = t.heap[r]) + 1] + 1] + 1) && (s = p, m++), h[2 * i + 1] = s, i > u || (t.bl_count[s]++, a = 0, i >= c && (a = d[i - c]), o = h[2 * i], t.opt_len += o * (s + a), f && (t.static_len += o * (l[2 * i + 1] + a))); if (0 !== m) { do { for (s = p - 1; 0 === t.bl_count[s];)s--; t.bl_count[s]--, t.bl_count[s + 1] += 2, t.bl_count[p]--, m -= 2 } while (m > 0); for (s = p; 0 !== s; s--)for (i = t.bl_count[s]; 0 !== i;)u < (n = t.heap[--r]) || (h[2 * n + 1] !== s && (t.opt_len += (s - h[2 * n + 1]) * h[2 * n], h[2 * n + 1] = s), i--) } }(t, e), Z(s, u, t.bl_count) } function X(t, e, r) { var i, n, s = -1, a = e[1], o = 0, h = 7, u = 4; for (0 === a && (h = 138, u = 3), e[2 * (r + 1) + 1] = 65535, i = 0; r >= i; i++)n = a, a = e[2 * (i + 1) + 1], ++o < h && n === a || (u > o ? t.bl_tree[2 * n] += o : 0 !== n ? (n !== s && t.bl_tree[2 * n]++, t.bl_tree[2 * b]++) : 10 >= o ? t.bl_tree[2 * v]++ : t.bl_tree[2 * y]++, s = n, u = (o = 0) === a ? (h = 138, 3) : n === a ? (h = 6, 3) : (h = 7, 4)) } function V(t, e, r) { var i, n, s = -1, a = e[1], o = 0, h = 7, u = 4; for (0 === a && (h = 138, u = 3), i = 0; r >= i; i++)if (n = a, a = e[2 * (i + 1) + 1], !(++o < h && n === a)) { if (u > o) for (; L(t, n, t.bl_tree), 0 != --o;); else 0 !== n ? (n !== s && (L(t, n, t.bl_tree), o--), L(t, b, t.bl_tree), P(t, o - 3, 2)) : 10 >= o ? (L(t, v, t.bl_tree), P(t, o - 3, 3)) : (L(t, y, t.bl_tree), P(t, o - 11, 7)); s = n, u = (o = 0) === a ? (h = 138, 3) : n === a ? (h = 6, 3) : (h = 7, 4) } } function J(t, e, r, i) { P(t, (s << 1) + (i ? 1 : 0), 3), function (t, e, r, i) { M(t), i && (U(t, r), U(t, ~r)), n.arraySet(t.pending_buf, t.window, e, r, t.pending), t.pending += r }(t, e, r, !0) } var n = t("../utils/common"), o = 0, h = 1, s = 0, a = 29, u = 256, l = u + 1 + a, f = 30, d = 19, _ = 2 * l + 1, g = 15, c = 16, p = 7, m = 256, b = 16, v = 17, y = 18, w = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0], k = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13], x = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], S = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], z = new Array(2 * (l + 2)); i(z); var C = new Array(2 * f); i(C); var E = new Array(512); i(E); var A = new Array(256); i(A); var I = new Array(a); i(I); var O, B, R, T = new Array(f); i(T); var q = !1; r._tr_init = function (t) { q || (function () { var t, e, r, i, n, s = new Array(g + 1); for (i = r = 0; a - 1 > i; i++)for (I[i] = r, t = 0; t < 1 << w[i]; t++)A[r++] = i; for (A[r - 1] = i, i = n = 0; 16 > i; i++)for (T[i] = n, t = 0; t < 1 << k[i]; t++)E[n++] = i; for (n >>= 7; f > i; i++)for (T[i] = n << 7, t = 0; t < 1 << k[i] - 7; t++)E[256 + n++] = i; for (e = 0; g >= e; e++)s[e] = 0; for (t = 0; 143 >= t;)z[2 * t + 1] = 8, t++, s[8]++; for (; 255 >= t;)z[2 * t + 1] = 9, t++, s[9]++; for (; 279 >= t;)z[2 * t + 1] = 7, t++, s[7]++; for (; 287 >= t;)z[2 * t + 1] = 8, t++, s[8]++; for (Z(z, l + 1, s), t = 0; f > t; t++)C[2 * t + 1] = 5, C[2 * t] = j(t, 5); O = new D(z, w, u + 1, l, g), B = new D(C, k, 0, f, g), R = new D(new Array(0), x, 0, d, p) }(), q = !0), t.l_desc = new F(t.dyn_ltree, O), t.d_desc = new F(t.dyn_dtree, B), t.bl_desc = new F(t.bl_tree, R), t.bi_buf = 0, t.bi_valid = 0, W(t) }, r._tr_stored_block = J, r._tr_flush_block = function (t, e, r, i) { var n, s, a = 0; 0 < t.level ? (2 === t.strm.data_type && (t.strm.data_type = function (t) { var e, r = 4093624447; for (e = 0; 31 >= e; e++, r >>>= 1)if (1 & r && 0 !== t.dyn_ltree[2 * e]) return o; if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26]) return h; for (e = 32; u > e; e++)if (0 !== t.dyn_ltree[2 * e]) return h; return o }(t)), Y(t, t.l_desc), Y(t, t.d_desc), a = function (t) { var e; for (X(t, t.dyn_ltree, t.l_desc.max_code), X(t, t.dyn_dtree, t.d_desc.max_code), Y(t, t.bl_desc), e = d - 1; e >= 3 && 0 === t.bl_tree[2 * S[e] + 1]; e--); return t.opt_len += 3 * (e + 1) + 5 + 5 + 4, e }(t), n = t.opt_len + 3 + 7 >>> 3, (s = t.static_len + 3 + 7 >>> 3) <= n && (n = s)) : n = s = r + 5, n >= r + 4 && -1 !== e ? J(t, e, r, i) : 4 === t.strategy || s === n ? (P(t, 2 + (i ? 1 : 0), 3), K(t, z, C)) : (P(t, 4 + (i ? 1 : 0), 3), function (t, e, r, i) { var n; for (P(t, e - 257, 5), P(t, r - 1, 5), P(t, i - 4, 4), n = 0; i > n; n++)P(t, t.bl_tree[2 * S[n] + 1], 3); V(t, t.dyn_ltree, e - 1), V(t, t.dyn_dtree, r - 1) }(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, a + 1), K(t, t.dyn_ltree, t.dyn_dtree)), W(t), i && M(t) }, r._tr_tally = function (t, e, r) { return t.pending_buf[t.d_buf + 2 * t.last_lit] = e >>> 8 & 255, t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e, t.pending_buf[t.l_buf + t.last_lit] = 255 & r, t.last_lit++, 0 === e ? t.dyn_ltree[2 * r]++ : (t.matches++, e--, t.dyn_ltree[2 * (A[r] + u + 1)]++, t.dyn_dtree[2 * N(e)]++), t.last_lit === t.lit_bufsize - 1 }, r._tr_align = function (t) { P(t, 2, 3), L(t, m, z), function (t) { 16 === t.bi_valid ? (U(t, t.bi_buf), t.bi_buf = 0, t.bi_valid = 0) : 8 <= t.bi_valid && (t.pending_buf[t.pending++] = 255 & t.bi_buf, t.bi_buf >>= 8, t.bi_valid -= 8) }(t) } }, { "../utils/common": 41 }], 53: [function (t, e, r) { "use strict"; e.exports = function () { this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0 } }, {}], 54: [function (t, e, r) { "use strict"; e.exports = "function" == typeof setImmediate ? setImmediate : function () { var t = [].slice.apply(arguments); t.splice(1, 0, 0), setTimeout.apply(null, t) } }, {}] + 1: [function (t, e, r) { "use strict"; var c = t("./utils"), d = t("./support"), p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; r.encode = function (t) { for (var e, r, i, n, s, a, o, h = [], u = 0, l = t.length, f = l, d = "string" !== c.getTypeOf(t); u < t.length;)f = l - u, i = d ? (e = t[u++], r = l > u ? t[u++] : 0, l > u ? t[u++] : 0) : (e = t.charCodeAt(u++), r = l > u ? t.charCodeAt(u++) : 0, l > u ? t.charCodeAt(u++) : 0), n = e >> 2, s = (3 & e) << 4 | r >> 4, a = f > 1 ? (15 & r) << 2 | i >> 6 : 64, o = f > 2 ? 63 & i : 64, h.push(p.charAt(n) + p.charAt(s) + p.charAt(a) + p.charAt(o)); return h.join("") }, r.decode = function (t) { var e, r, i, n, s, a, o = 0, h = 0, u = "data:"; if (t.substr(0, u.length) === u) throw new Error("Invalid base64 input, it looks like a data url."); var l, f = 3 * (t = t.replace(/[^A-Za-z0-9\+\/\=]/g, "")).length / 4; if (t.charAt(t.length - 1) === p.charAt(64) && f--, t.charAt(t.length - 2) === p.charAt(64) && f--, f % 1 != 0) throw new Error("Invalid base64 input, bad content length."); for (l = d.uint8array ? new Uint8Array(0 | f) : new Array(0 | f); o < t.length;)e = p.indexOf(t.charAt(o++)) << 2 | (n = p.indexOf(t.charAt(o++))) >> 4, r = (15 & n) << 4 | (s = p.indexOf(t.charAt(o++))) >> 2, i = (3 & s) << 6 | (a = p.indexOf(t.charAt(o++))), l[h++] = e, 64 !== s && (l[h++] = r), 64 !== a && (l[h++] = i); return l } }, { "./support": 30, "./utils": 32 }], 2: [function (t, e, r) { "use strict"; function o(t, e, r, i, n) { this.compressedSize = t, this.uncompressedSize = e, this.crc32 = r, this.compression = i, this.compressedContent = n } var i = t("./external"), n = t("./stream/DataWorker"), s = t("./stream/Crc32Probe"), a = t("./stream/DataLengthProbe"); o.prototype = { getContentWorker: function () { var t = new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")), e = this; return t.on("end", function () { if (this.streamInfo.data_length !== e.uncompressedSize) throw new Error("Bug : uncompressed data size mismatch") }), t }, getCompressedWorker: function () { return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize", this.compressedSize).withStreamInfo("uncompressedSize", this.uncompressedSize).withStreamInfo("crc32", this.crc32).withStreamInfo("compression", this.compression) } }, o.createWorkerFrom = function (t, e, r) { return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression", e) }, e.exports = o }, { "./external": 6, "./stream/Crc32Probe": 25, "./stream/DataLengthProbe": 26, "./stream/DataWorker": 27 }], 3: [function (t, e, r) { "use strict"; var i = t("./stream/GenericWorker"); r.STORE = { magic: "\x00\x00", compressWorker: function (t) { return new i("STORE compression") }, uncompressWorker: function () { return new i("STORE decompression") } }, r.DEFLATE = t("./flate") }, { "./flate": 7, "./stream/GenericWorker": 28 }], 4: [function (t, e, r) { "use strict"; var i = t("./utils"), o = function () { for (var t, e = [], r = 0; 256 > r; r++) { t = r; for (var i = 0; 8 > i; i++)t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1; e[r] = t } return e }(); e.exports = function (t, e) { return void 0 !== t && t.length ? "string" !== i.getTypeOf(t) ? function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++)t = t >>> 8 ^ n[255 & (t ^ e[a])]; return -1 ^ t }(0 | e, t, t.length, 0) : function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++)t = t >>> 8 ^ n[255 & (t ^ e.charCodeAt(a))]; return -1 ^ t }(0 | e, t, t.length, 0) : 0 } }, { "./utils": 32 }], 5: [function (t, e, r) { "use strict"; r.base64 = !1, r.binary = !1, r.dir = !1, r.createFolders = !0, r.date = null, r.compression = null, r.compressionOptions = null, r.comment = null, r.unixPermissions = null, r.dosPermissions = null }, {}], 6: [function (t, e, r) { "use strict"; var i = null; i = "undefined" != typeof Promise ? Promise : t("lie"), e.exports = { Promise: i } }, { lie: 37 }], 7: [function (t, e, r) { "use strict"; function h(t, e) { a.call(this, "FlateWorker/" + t), this._pako = null, this._pakoAction = t, this._pakoOptions = e, this.meta = {} } var i = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array, n = t("pako"), s = t("./utils"), a = t("./stream/GenericWorker"), o = i ? "uint8array" : "array"; r.magic = "\b\x00", s.inherits(h, a), h.prototype.processChunk = function (t) { this.meta = t.meta, null === this._pako && this._createPako(), this._pako.push(s.transformTo(o, t.data), !1) }, h.prototype.flush = function () { a.prototype.flush.call(this), null === this._pako && this._createPako(), this._pako.push([], !0) }, h.prototype.cleanUp = function () { a.prototype.cleanUp.call(this), this._pako = null }, h.prototype._createPako = function () { this._pako = new n[this._pakoAction]({ raw: !0, level: this._pakoOptions.level || -1 }); var e = this; this._pako.onData = function (t) { e.push({ data: t, meta: e.meta }) } }, r.compressWorker = function (t) { return new h("Deflate", t) }, r.uncompressWorker = function () { return new h("Inflate", {}) } }, { "./stream/GenericWorker": 28, "./utils": 32, pako: 38 }], 8: [function (t, e, r) { + "use strict"; function A(t, e) { var r, i = ""; for (r = 0; e > r; r++)i += String.fromCharCode(255 & t), t >>>= 8; return i } function i(t, e, r, i, n, s) { var a, o, h = t.file, u = t.compression, l = s !== O.utf8encode, f = I.transformTo("string", s(h.name)), d = I.transformTo("string", O.utf8encode(h.name)), c = h.comment, p = I.transformTo("string", s(c)), m = I.transformTo("string", O.utf8encode(c)), _ = d.length !== h.name.length, g = m.length !== c.length, b = "", v = "", y = "", w = h.dir, k = h.date, x = { crc32: 0, compressedSize: 0, uncompressedSize: 0 }; e && !r || (x.crc32 = t.crc32, x.compressedSize = t.compressedSize, x.uncompressedSize = t.uncompressedSize); var S = 0; e && (S |= 8), l || !_ && !g || (S |= 2048); var z = 0, C = 0; w && (z |= 16), "UNIX" === n ? (C = 798, z |= function (t, e) { var r = t; return t || (r = e ? 16893 : 33204), (65535 & r) << 16 }(h.unixPermissions, w)) : (C = 20, z |= function (t) { return 63 & (t || 0) }(h.dosPermissions)), a = k.getUTCHours(), a <<= 6, a |= k.getUTCMinutes(), a <<= 5, a |= k.getUTCSeconds() / 2, o = k.getUTCFullYear() - 1980, o <<= 4, o |= k.getUTCMonth() + 1, o <<= 5, o |= k.getUTCDate(), _ && (v = A(1, 1) + A(B(f), 4) + d, b += "up" + A(v.length, 2) + v), g && (y = A(1, 1) + A(B(p), 4) + m, b += "uc" + A(y.length, 2) + y); var E = ""; return E += "\n\x00", E += A(S, 2), E += u.magic, E += A(a, 2), E += A(o, 2), E += A(x.crc32, 4), E += A(x.compressedSize, 4), E += A(x.uncompressedSize, 4), E += A(f.length, 2), E += A(b.length, 2), { fileRecord: R.LOCAL_FILE_HEADER + E + f + b, dirRecord: R.CENTRAL_FILE_HEADER + A(C, 2) + E + A(p.length, 2) + "\x00\x00\x00\x00" + A(z, 4) + A(i, 4) + f + b + p } } function s(t, e, r, i) { n.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = e, this.zipPlatform = r, this.encodeFileName = i, this.streamFiles = t, this.accumulate = !1, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = [] } var I = t("../utils"), n = t("../stream/GenericWorker"), O = t("../utf8"), B = t("../crc32"), R = t("../signature"); I.inherits(s, n), s.prototype.push = function (t) { var e = t.meta.percent || 0, r = this.entriesCount, i = this._sources.length; this.accumulate ? this.contentBuffer.push(t) : (this.bytesWritten += t.data.length, n.prototype.push.call(this, { data: t.data, meta: { currentFile: this.currentFile, percent: r ? (e + 100 * (r - i - 1)) / r : 100 } })) }, s.prototype.openedSource = function (t) { this.currentSourceOffset = this.bytesWritten, this.currentFile = t.file.name; var e = this.streamFiles && !t.file.dir; if (e) { var r = i(t, e, !1, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); this.push({ data: r.fileRecord, meta: { percent: 0 } }) } else this.accumulate = !0 }, s.prototype.closedSource = function (t) { this.accumulate = !1; var e = this.streamFiles && !t.file.dir, r = i(t, e, !0, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); if (this.dirRecords.push(r.dirRecord), e) this.push({ data: function (t) { return R.DATA_DESCRIPTOR + A(t.crc32, 4) + A(t.compressedSize, 4) + A(t.uncompressedSize, 4) }(t), meta: { percent: 100 } }); else for (this.push({ data: r.fileRecord, meta: { percent: 0 } }); this.contentBuffer.length;)this.push(this.contentBuffer.shift()); this.currentFile = null }, s.prototype.flush = function () { for (var t = this.bytesWritten, e = 0; e < this.dirRecords.length; e++)this.push({ data: this.dirRecords[e], meta: { percent: 100 } }); var r = this.bytesWritten - t, i = function (t, e, r, i, n) { var s = I.transformTo("string", n(i)); return R.CENTRAL_DIRECTORY_END + "\x00\x00\x00\x00" + A(t, 2) + A(t, 2) + A(e, 4) + A(r, 4) + A(s.length, 2) + s }(this.dirRecords.length, r, t, this.zipComment, this.encodeFileName); this.push({ data: i, meta: { percent: 100 } }) }, s.prototype.prepareNextSource = function () { this.previous = this._sources.shift(), this.openedSource(this.previous.streamInfo), this.isPaused ? this.previous.pause() : this.previous.resume() }, s.prototype.registerPrevious = function (t) { this._sources.push(t); var e = this; return t.on("data", function (t) { e.processChunk(t) }), t.on("end", function () { e.closedSource(e.previous.streamInfo), e._sources.length ? e.prepareNextSource() : e.end() }), t.on("error", function (t) { e.error(t) }), this }, s.prototype.resume = function () { + return !!n.prototype.resume.call(this) && (!this.previous && this._sources.length ? (this.prepareNextSource(), + !0) : this.previous || this._sources.length || this.generatedError ? void 0 : (this.end(), !0)) + }, s.prototype.error = function (t) { var e = this._sources; if (!n.prototype.error.call(this, t)) return !1; for (var r = 0; r < e.length; r++)try { e[r].error(t) } catch (t) { } return !0 }, s.prototype.lock = function () { n.prototype.lock.call(this); for (var t = this._sources, e = 0; e < t.length; e++)t[e].lock() }, e.exports = s + }, { "../crc32": 4, "../signature": 23, "../stream/GenericWorker": 28, "../utf8": 31, "../utils": 32 }], 9: [function (t, e, r) { "use strict"; var u = t("../compressions"), i = t("./ZipFileWorker"); r.generateWorker = function (t, a, e) { var o = new i(a.streamFiles, e, a.platform, a.encodeFileName), h = 0; try { t.forEach(function (t, e) { h++; var r = function (t, e) { var r = t || e, i = u[r]; if (!i) throw new Error(r + " is not a valid compression method !"); return i }(e.options.compression, a.compression), i = e.options.compressionOptions || a.compressionOptions || {}, n = e.dir, s = e.date; e._compressWorker(r, i).withStreamInfo("file", { name: t, dir: n, date: s, comment: e.comment || "", unixPermissions: e.unixPermissions, dosPermissions: e.dosPermissions }).pipe(o) }), o.entriesCount = h } catch (t) { o.error(t) } return o } }, { "../compressions": 3, "./ZipFileWorker": 8 }], 10: [function (t, e, r) { "use strict"; function i() { if (!(this instanceof i)) return new i; if (arguments.length) throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); this.files = Object.create(null), this.comment = null, this.root = "", this.clone = function () { var t = new i; for (var e in this) "function" != typeof this[e] && (t[e] = this[e]); return t } } (i.prototype = t("./object")).loadAsync = t("./load"), i.support = t("./support"), i.defaults = t("./defaults"), i.version = "3.7.1", i.loadAsync = function (t, e) { return (new i).loadAsync(t, e) }, i.external = t("./external"), e.exports = i }, { "./defaults": 5, "./external": 6, "./load": 11, "./object": 15, "./support": 30 }], 11: [function (t, e, r) { "use strict"; function l(i) { return new n.Promise(function (t, e) { var r = i.decompressed.getContentWorker().pipe(new s); r.on("error", function (t) { e(t) }).on("end", function () { r.streamInfo.crc32 !== i.decompressed.crc32 ? e(new Error("Corrupted zip : CRC32 mismatch")) : t() }).resume() }) } var i = t("./utils"), n = t("./external"), o = t("./utf8"), h = t("./zipEntries"), s = t("./stream/Crc32Probe"), u = t("./nodejsUtils"); e.exports = function (t, s) { var a = this; return s = i.extend(s || {}, { base64: !1, checkCRC32: !1, optimizedBinaryString: !1, createFolders: !1, decodeFileName: o.utf8decode }), u.isNode && u.isStream(t) ? n.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")) : i.prepareContent("the loaded zip file", t, !0, s.optimizedBinaryString, s.base64).then(function (t) { var e = new h(s); return e.load(t), e }).then(function (t) { var e = [n.Promise.resolve(t)], r = t.files; if (s.checkCRC32) for (var i = 0; i < r.length; i++)e.push(l(r[i])); return n.Promise.all(e) }).then(function (t) { for (var e = t.shift(), r = e.files, i = 0; i < r.length; i++) { var n = r[i]; a.file(n.fileNameStr, n.decompressed, { binary: !0, optimizedBinaryString: !0, date: n.date, dir: n.dir, comment: n.fileCommentStr.length ? n.fileCommentStr : null, unixPermissions: n.unixPermissions, dosPermissions: n.dosPermissions, createFolders: s.createFolders }) } return e.zipComment.length && (a.comment = e.zipComment), a }) } }, { "./external": 6, "./nodejsUtils": 14, "./stream/Crc32Probe": 25, "./utf8": 31, "./utils": 32, "./zipEntries": 33 }], 12: [function (t, e, r) { "use strict"; function s(t, e) { n.call(this, "Nodejs stream input adapter for " + t), this._upstreamEnded = !1, this._bindStream(e) } var i = t("../utils"), n = t("../stream/GenericWorker"); i.inherits(s, n), s.prototype._bindStream = function (t) { var e = this; (this._stream = t).pause(), t.on("data", function (t) { e.push({ data: t, meta: { percent: 0 } }) }).on("error", function (t) { e.isPaused ? this.generatedError = t : e.error(t) }).on("end", function () { e.isPaused ? e._upstreamEnded = !0 : e.end() }) }, s.prototype.pause = function () { return !!n.prototype.pause.call(this) && (this._stream.pause(), !0) }, s.prototype.resume = function () { return !!n.prototype.resume.call(this) && (this._upstreamEnded ? this.end() : this._stream.resume(), !0) }, e.exports = s }, { "../stream/GenericWorker": 28, "../utils": 32 }], 13: [function (t, e, r) { "use strict"; function i(t, e, r) { n.call(this, e), this._helper = t; var i = this; t.on("data", function (t, e) { i.push(t) || i._helper.pause(), r && r(e) }).on("error", function (t) { i.emit("error", t) }).on("end", function () { i.push(null) }) } var n = t("readable-stream").Readable; t("../utils").inherits(i, n), i.prototype._read = function () { this._helper.resume() }, e.exports = i }, { "../utils": 32, "readable-stream": 16 }], 14: [function (t, e, r) { "use strict"; e.exports = { isNode: "undefined" != typeof Buffer, newBufferFrom: function (t, e) { if (Buffer.from && Buffer.from !== Uint8Array.from) return Buffer.from(t, e); if ("number" == typeof t) throw new Error('The "data" argument must not be a number'); return new Buffer(t, e) }, allocBuffer: function (t) { if (Buffer.alloc) return Buffer.alloc(t); var e = new Buffer(t); return e.fill(0), e }, isBuffer: function (t) { return Buffer.isBuffer(t) }, isStream: function (t) { return t && "function" == typeof t.on && "function" == typeof t.pause && "function" == typeof t.resume } } }, {}], 15: [function (t, e, r) { "use strict"; function s(t, e, r) { var i, n = u.getTypeOf(e), s = u.extend(r || {}, f); s.date = s.date || new Date, null !== s.compression && (s.compression = s.compression.toUpperCase()), "string" == typeof s.unixPermissions && (s.unixPermissions = parseInt(s.unixPermissions, 8)), s.unixPermissions && 16384 & s.unixPermissions && (s.dir = !0), s.dosPermissions && 16 & s.dosPermissions && (s.dir = !0), s.dir && (t = g(t)), s.createFolders && (i = _(t)) && b.call(this, i, !0); var a = "string" === n && !1 === s.binary && !1 === s.base64; r && void 0 !== r.binary || (s.binary = !a), (e instanceof d && 0 === e.uncompressedSize || s.dir || !e || 0 === e.length) && (s.base64 = !1, s.binary = !0, e = "", s.compression = "STORE", n = "string"); var o = null; o = e instanceof d || e instanceof l ? e : p.isNode && p.isStream(e) ? new m(t, e) : u.prepareContent(t, e, s.binary, s.optimizedBinaryString, s.base64); var h = new c(t, o, s); this.files[t] = h } function h(t) { return "[object RegExp]" === Object.prototype.toString.call(t) } var n = t("./utf8"), u = t("./utils"), l = t("./stream/GenericWorker"), a = t("./stream/StreamHelper"), f = t("./defaults"), d = t("./compressedObject"), c = t("./zipObject"), o = t("./generate"), p = t("./nodejsUtils"), m = t("./nodejs/NodejsStreamInputAdapter"), _ = function (t) { "/" === t.slice(-1) && (t = t.substring(0, t.length - 1)); var e = t.lastIndexOf("/"); return e > 0 ? t.substring(0, e) : "" }, g = function (t) { return "/" !== t.slice(-1) && (t += "/"), t }, b = function (t, e) { return e = void 0 !== e ? e : f.createFolders, t = g(t), this.files[t] || s.call(this, t, null, { dir: !0, createFolders: e }), this.files[t] }, i = { load: function () { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, forEach: function (t) { var e, r, i; for (e in this.files) i = this.files[e], (r = e.slice(this.root.length, e.length)) && e.slice(0, this.root.length) === this.root && t(r, i) }, filter: function (r) { var i = []; return this.forEach(function (t, e) { r(t, e) && i.push(e) }), i }, file: function (t, e, r) { if (1 !== arguments.length) return t = this.root + t, s.call(this, t, e, r), this; if (h(t)) { var i = t; return this.filter(function (t, e) { return !e.dir && i.test(t) }) } var n = this.files[this.root + t]; return n && !n.dir ? n : null }, folder: function (r) { if (!r) return this; if (h(r)) return this.filter(function (t, e) { return e.dir && r.test(t) }); var t = this.root + r, e = b.call(this, t), i = this.clone(); return i.root = e.name, i }, remove: function (r) { r = this.root + r; var t = this.files[r]; if (t || ("/" !== r.slice(-1) && (r += "/"), t = this.files[r]), t && !t.dir) delete this.files[r]; else for (var e = this.filter(function (t, e) { return e.name.slice(0, r.length) === r }), i = 0; i < e.length; i++)delete this.files[e[i].name]; return this }, generate: function (t) { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, generateInternalStream: function (t) { var e, r = {}; try { if ((r = u.extend(t || {}, { streamFiles: !1, compression: "STORE", compressionOptions: null, type: "", platform: "DOS", comment: null, mimeType: "application/zip", encodeFileName: n.utf8encode })).type = r.type.toLowerCase(), r.compression = r.compression.toUpperCase(), "binarystring" === r.type && (r.type = "string"), !r.type) throw new Error("No output type specified."); u.checkSupport(r.type), "darwin" !== r.platform && "freebsd" !== r.platform && "linux" !== r.platform && "sunos" !== r.platform || (r.platform = "UNIX"), "win32" === r.platform && (r.platform = "DOS"); var i = r.comment || this.comment || ""; e = o.generateWorker(this, r, i) } catch (t) { (e = new l("error")).error(t) } return new a(e, r.type || "string", r.mimeType) }, generateAsync: function (t, e) { return this.generateInternalStream(t).accumulate(e) }, generateNodeStream: function (t, e) { return (t = t || {}).type || (t.type = "nodebuffer"), this.generateInternalStream(t).toNodejsStream(e) } }; e.exports = i }, { "./compressedObject": 2, "./defaults": 5, "./generate": 9, "./nodejs/NodejsStreamInputAdapter": 12, "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31, "./utils": 32, "./zipObject": 35 }], 16: [function (t, e, r) { e.exports = t("stream") }, { stream: void 0 }], 17: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t); for (var e = 0; e < this.data.length; e++)t[e] = 255 & t[e] } var i = t("./DataReader"); t("../utils").inherits(n, i), n.prototype.byteAt = function (t) { return this.data[this.zero + t] }, n.prototype.lastIndexOfSignature = function (t) { for (var e = t.charCodeAt(0), r = t.charCodeAt(1), i = t.charCodeAt(2), n = t.charCodeAt(3), s = this.length - 4; s >= 0; --s)if (this.data[s] === e && this.data[s + 1] === r && this.data[s + 2] === i && this.data[s + 3] === n) return s - this.zero; return -1 }, n.prototype.readAndCheckSignature = function (t) { var e = t.charCodeAt(0), r = t.charCodeAt(1), i = t.charCodeAt(2), n = t.charCodeAt(3), s = this.readData(4); return e === s[0] && r === s[1] && i === s[2] && n === s[3] }, n.prototype.readData = function (t) { if (this.checkOffset(t), 0 === t) return []; var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, { "../utils": 32, "./DataReader": 18 }], 18: [function (t, e, r) { "use strict"; function n(t) { this.data = t, this.length = t.length, this.index = 0, this.zero = 0 } var i = t("../utils"); n.prototype = { checkOffset: function (t) { this.checkIndex(this.index + t) }, checkIndex: function (t) { if (this.length < this.zero + t || 0 > t) throw new Error("End of data reached (data length = " + this.length + ", asked index = " + t + "). Corrupted zip ?") }, setIndex: function (t) { this.checkIndex(t), this.index = t }, skip: function (t) { this.setIndex(this.index + t) }, byteAt: function (t) { }, readInt: function (t) { var e, r = 0; for (this.checkOffset(t), e = this.index + t - 1; e >= this.index; e--)r = (r << 8) + this.byteAt(e); return this.index += t, r }, readString: function (t) { return i.transformTo("string", this.readData(t)) }, readData: function (t) { }, lastIndexOfSignature: function (t) { }, readAndCheckSignature: function (t) { }, readDate: function () { var t = this.readInt(4); return new Date(Date.UTC(1980 + (t >> 25 & 127), (t >> 21 & 15) - 1, t >> 16 & 31, t >> 11 & 31, t >> 5 & 63, (31 & t) << 1)) } }, e.exports = n }, { "../utils": 32 }], 19: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./Uint8ArrayReader"); t("../utils").inherits(n, i), n.prototype.readData = function (t) { this.checkOffset(t); var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, { "../utils": 32, "./Uint8ArrayReader": 21 }], 20: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./DataReader"); t("../utils").inherits(n, i), n.prototype.byteAt = function (t) { return this.data.charCodeAt(this.zero + t) }, n.prototype.lastIndexOfSignature = function (t) { return this.data.lastIndexOf(t) - this.zero }, n.prototype.readAndCheckSignature = function (t) { return t === this.readData(4) }, n.prototype.readData = function (t) { this.checkOffset(t); var e = this.data.slice(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, { "../utils": 32, "./DataReader": 18 }], 21: [function (t, e, r) { "use strict"; function n(t) { i.call(this, t) } var i = t("./ArrayReader"); t("../utils").inherits(n, i), n.prototype.readData = function (t) { if (this.checkOffset(t), 0 === t) return new Uint8Array(0); var e = this.data.subarray(this.zero + this.index, this.zero + this.index + t); return this.index += t, e }, e.exports = n }, { "../utils": 32, "./ArrayReader": 17 }], 22: [function (t, e, r) { "use strict"; var i = t("../utils"), n = t("../support"), s = t("./ArrayReader"), a = t("./StringReader"), o = t("./NodeBufferReader"), h = t("./Uint8ArrayReader"); e.exports = function (t) { var e = i.getTypeOf(t); return i.checkSupport(e), "string" !== e || n.uint8array ? "nodebuffer" === e ? new o(t) : n.uint8array ? new h(i.transformTo("uint8array", t)) : new s(i.transformTo("array", t)) : new a(t) } }, { "../support": 30, "../utils": 32, "./ArrayReader": 17, "./NodeBufferReader": 19, "./StringReader": 20, "./Uint8ArrayReader": 21 }], 23: [function (t, e, r) { "use strict"; r.LOCAL_FILE_HEADER = "PK", r.CENTRAL_FILE_HEADER = "PK", r.CENTRAL_DIRECTORY_END = "PK", r.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK", r.ZIP64_CENTRAL_DIRECTORY_END = "PK", r.DATA_DESCRIPTOR = "PK\b" }, {}], 24: [function (t, e, r) { "use strict"; function s(t) { i.call(this, "ConvertWorker to " + t), this.destType = t } var i = t("./GenericWorker"), n = t("../utils"); n.inherits(s, i), s.prototype.processChunk = function (t) { this.push({ data: n.transformTo(this.destType, t.data), meta: t.meta }) }, e.exports = s }, { "../utils": 32, "./GenericWorker": 28 }], 25: [function (t, e, r) { "use strict"; function s() { i.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0) } var i = t("./GenericWorker"), n = t("../crc32"); t("../utils").inherits(s, i), s.prototype.processChunk = function (t) { this.streamInfo.crc32 = n(t.data, this.streamInfo.crc32 || 0), this.push(t) }, e.exports = s }, { "../crc32": 4, "../utils": 32, "./GenericWorker": 28 }], 26: [function (t, e, r) { "use strict"; function s(t) { n.call(this, "DataLengthProbe for " + t), this.propName = t, this.withStreamInfo(t, 0) } var i = t("../utils"), n = t("./GenericWorker"); i.inherits(s, n), s.prototype.processChunk = function (t) { if (t) { var e = this.streamInfo[this.propName] || 0; this.streamInfo[this.propName] = e + t.data.length } n.prototype.processChunk.call(this, t) }, e.exports = s }, { "../utils": 32, "./GenericWorker": 28 }], 27: [function (t, e, r) { "use strict"; function s(t) { n.call(this, "DataWorker"); var e = this; this.dataIsReady = !1, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = !1, t.then(function (t) { e.dataIsReady = !0, e.data = t, e.max = t && t.length || 0, e.type = i.getTypeOf(t), e.isPaused || e._tickAndRepeat() }, function (t) { e.error(t) }) } var i = t("../utils"), n = t("./GenericWorker"); i.inherits(s, n), s.prototype.cleanUp = function () { n.prototype.cleanUp.call(this), this.data = null }, s.prototype.resume = function () { return !!n.prototype.resume.call(this) && (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = !0, i.delay(this._tickAndRepeat, [], this)), !0) }, s.prototype._tickAndRepeat = function () { this._tickScheduled = !1, this.isPaused || this.isFinished || (this._tick(), this.isFinished || (i.delay(this._tickAndRepeat, [], this), this._tickScheduled = !0)) }, s.prototype._tick = function () { if (this.isPaused || this.isFinished) return !1; var t = null, e = Math.min(this.max, this.index + 16384); if (this.index >= this.max) return this.end(); switch (this.type) { case "string": t = this.data.substring(this.index, e); break; case "uint8array": t = this.data.subarray(this.index, e); break; case "array": case "nodebuffer": t = this.data.slice(this.index, e) }return this.index = e, this.push({ data: t, meta: { percent: this.max ? this.index / this.max * 100 : 0 } }) }, e.exports = s }, { "../utils": 32, "./GenericWorker": 28 }], 28: [function (t, e, r) { "use strict"; function i(t) { this.name = t || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = !0, this.isFinished = !1, this.isLocked = !1, this._listeners = { data: [], end: [], error: [] }, this.previous = null } i.prototype = { push: function (t) { this.emit("data", t) }, end: function () { if (this.isFinished) return !1; this.flush(); try { this.emit("end"), this.cleanUp(), this.isFinished = !0 } catch (t) { this.emit("error", t) } return !0 }, error: function (t) { return !this.isFinished && (this.isPaused ? this.generatedError = t : (this.isFinished = !0, this.emit("error", t), this.previous && this.previous.error(t), this.cleanUp()), !0) }, on: function (t, e) { return this._listeners[t].push(e), this }, cleanUp: function () { this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = [] }, emit: function (t, e) { if (this._listeners[t]) for (var r = 0; r < this._listeners[t].length; r++)this._listeners[t][r].call(this, e) }, pipe: function (t) { return t.registerPrevious(this) }, registerPrevious: function (t) { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.streamInfo = t.streamInfo, this.mergeStreamInfo(), this.previous = t; var e = this; return t.on("data", function (t) { e.processChunk(t) }), t.on("end", function () { e.end() }), t.on("error", function (t) { e.error(t) }), this }, pause: function () { return !this.isPaused && !this.isFinished && (this.isPaused = !0, this.previous && this.previous.pause(), !0) }, resume: function () { if (!this.isPaused || this.isFinished) return !1; var t = this.isPaused = !1; return this.generatedError && (this.error(this.generatedError), t = !0), this.previous && this.previous.resume(), !t }, flush: function () { }, processChunk: function (t) { this.push(t) }, withStreamInfo: function (t, e) { return this.extraStreamInfo[t] = e, this.mergeStreamInfo(), this }, mergeStreamInfo: function () { for (var t in this.extraStreamInfo) this.extraStreamInfo.hasOwnProperty(t) && (this.streamInfo[t] = this.extraStreamInfo[t]) }, lock: function () { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.isLocked = !0, this.previous && this.previous.lock() }, toString: function () { var t = "Worker " + this.name; return this.previous ? this.previous + " -> " + t : t } }, e.exports = i }, {}], 29: [function (t, e, r) { "use strict"; function l(t, o) { return new a.Promise(function (e, r) { var i = [], n = t._internalType, s = t._outputType, a = t._mimeType; t.on("data", function (t, e) { i.push(t), o && o(e) }).on("error", function (t) { i = [], r(t) }).on("end", function () { try { var t = function (t, e, r) { switch (t) { case "blob": return h.newBlob(h.transformTo("arraybuffer", e), r); case "base64": return u.encode(e); default: return h.transformTo(t, e) } }(s, function (t, e) { var r, i = 0, n = null, s = 0; for (r = 0; r < e.length; r++)s += e[r].length; switch (t) { case "string": return e.join(""); case "array": return Array.prototype.concat.apply([], e); case "uint8array": for (n = new Uint8Array(s), r = 0; r < e.length; r++)n.set(e[r], i), i += e[r].length; return n; case "nodebuffer": return Buffer.concat(e); default: throw new Error("concat : unsupported type '" + t + "'") } }(n, i), a); e(t) } catch (t) { r(t) } i = [] }).resume() }) } function f(t, e, r) { var i = e; switch (e) { case "blob": case "arraybuffer": i = "uint8array"; break; case "base64": i = "string" }try { this._internalType = i, this._outputType = e, this._mimeType = r, h.checkSupport(i), this._worker = t.pipe(new n(i)), t.lock() } catch (t) { this._worker = new s("error"), this._worker.error(t) } } var h = t("../utils"), n = t("./ConvertWorker"), s = t("./GenericWorker"), u = t("../base64"), i = t("../support"), a = t("../external"), o = null; if (i.nodestream) try { o = t("../nodejs/NodejsStreamOutputAdapter") } catch (t) { } f.prototype = { accumulate: function (t) { return l(this, t) }, on: function (t, e) { var r = this; return "data" === t ? this._worker.on(t, function (t) { e.call(r, t.data, t.meta) }) : this._worker.on(t, function () { h.delay(e, arguments, r) }), this }, resume: function () { return h.delay(this._worker.resume, [], this._worker), this }, pause: function () { return this._worker.pause(), this }, toNodejsStream: function (t) { if (h.checkSupport("nodestream"), "nodebuffer" !== this._outputType) throw new Error(this._outputType + " is not supported by this method"); return new o(this, { objectMode: "nodebuffer" !== this._outputType }, t) } }, e.exports = f }, { "../base64": 1, "../external": 6, "../nodejs/NodejsStreamOutputAdapter": 13, "../support": 30, "../utils": 32, "./ConvertWorker": 24, "./GenericWorker": 28 }], 30: [function (t, e, r) { "use strict"; if (r.base64 = !0, r.array = !0, r.string = !0, r.arraybuffer = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array, r.nodebuffer = "undefined" != typeof Buffer, r.uint8array = "undefined" != typeof Uint8Array, "undefined" == typeof ArrayBuffer) r.blob = !1; else { var i = new ArrayBuffer(0); try { r.blob = 0 === new Blob([i], { type: "application/zip" }).size } catch (t) { try { var n = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder); n.append(i), r.blob = 0 === n.getBlob("application/zip").size } catch (t) { r.blob = !1 } } } try { r.nodestream = !!t("readable-stream").Readable } catch (t) { r.nodestream = !1 } }, { "readable-stream": 16 }], 31: [function (t, e, s) { "use strict"; function a() { i.call(this, "utf-8 decode"), this.leftOver = null } function l() { i.call(this, "utf-8 encode") } for (var o = t("./utils"), h = t("./support"), r = t("./nodejsUtils"), i = t("./stream/GenericWorker"), u = new Array(256), n = 0; 256 > n; n++)u[n] = n >= 252 ? 6 : n >= 248 ? 5 : n >= 240 ? 4 : n >= 224 ? 3 : n >= 192 ? 2 : 1; u[254] = u[254] = 1, s.utf8encode = function (t) { return h.nodebuffer ? r.newBufferFrom(t, "utf-8") : function (t) { var e, r, i, n, s, a = t.length, o = 0; for (n = 0; a > n; n++)55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), o += 128 > r ? 1 : 2048 > r ? 2 : 65536 > r ? 3 : 4; for (e = h.uint8array ? new Uint8Array(o) : new Array(o), n = s = 0; o > s; n++)55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), 128 > r ? e[s++] = r : (2048 > r ? e[s++] = 192 | r >>> 6 : (65536 > r ? e[s++] = 224 | r >>> 12 : (e[s++] = 240 | r >>> 18, e[s++] = 128 | r >>> 12 & 63), e[s++] = 128 | r >>> 6 & 63), e[s++] = 128 | 63 & r); return e }(t) }, s.utf8decode = function (t) { return h.nodebuffer ? o.transformTo("nodebuffer", t).toString("utf-8") : function (t) { var e, r, i, n, s = t.length, a = new Array(2 * s); for (e = r = 0; s > e;)if ((i = t[e++]) < 128) a[r++] = i; else if (4 < (n = u[i])) a[r++] = 65533, e += n - 1; else { for (i &= 2 === n ? 31 : 3 === n ? 15 : 7; n > 1 && s > e;)i = i << 6 | 63 & t[e++], n--; n > 1 ? a[r++] = 65533 : 65536 > i ? a[r++] = i : (i -= 65536, a[r++] = 55296 | i >> 10 & 1023, a[r++] = 56320 | 1023 & i) } return a.length !== r && (a.subarray ? a = a.subarray(0, r) : a.length = r), o.applyFromCharCode(a) }(t = o.transformTo(h.uint8array ? "uint8array" : "array", t)) }, o.inherits(a, i), a.prototype.processChunk = function (t) { var e = o.transformTo(h.uint8array ? "uint8array" : "array", t.data); if (this.leftOver && this.leftOver.length) { if (h.uint8array) { var r = e; (e = new Uint8Array(r.length + this.leftOver.length)).set(this.leftOver, 0), e.set(r, this.leftOver.length) } else e = this.leftOver.concat(e); this.leftOver = null } var i = function (t, e) { var r; for ((e = e || t.length) > t.length && (e = t.length), r = e - 1; r >= 0 && 128 == (192 & t[r]);)r--; return 0 > r ? e : 0 === r ? e : r + u[t[r]] > e ? r : e }(e), n = e; i !== e.length && (h.uint8array ? (n = e.subarray(0, i), this.leftOver = e.subarray(i, e.length)) : (n = e.slice(0, i), this.leftOver = e.slice(i, e.length))), this.push({ data: s.utf8decode(n), meta: t.meta }) }, a.prototype.flush = function () { this.leftOver && this.leftOver.length && (this.push({ data: s.utf8decode(this.leftOver), meta: {} }), this.leftOver = null) }, s.Utf8DecodeWorker = a, o.inherits(l, i), l.prototype.processChunk = function (t) { this.push({ data: s.utf8encode(t.data), meta: t.meta }) }, s.Utf8EncodeWorker = l }, { "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./support": 30, "./utils": 32 }], 32: [function (t, e, a) { "use strict"; function n(t) { return t } function l(t, e) { for (var r = 0; r < t.length; ++r)e[r] = 255 & t.charCodeAt(r); return e } function f(t) { var e = 65536, r = a.getTypeOf(t), i = !0; if ("uint8array" === r ? i = s.applyCanBeUsed.uint8array : "nodebuffer" === r && (i = s.applyCanBeUsed.nodebuffer), i) for (; e > 1;)try { return s.stringifyByChunk(t, r, e) } catch (t) { e = Math.floor(e / 2) } return s.stringifyByChar(t) } function d(t, e) { for (var r = 0; r < t.length; r++)e[r] = t[r]; return e } var o = t("./support"), h = t("./base64"), r = t("./nodejsUtils"), i = t("set-immediate-shim"), u = t("./external"); a.newBlob = function (e, r) { a.checkSupport("blob"); try { return new Blob([e], { type: r }) } catch (t) { try { var i = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder); return i.append(e), i.getBlob(r) } catch (t) { throw new Error("Bug : can't construct the Blob.") } } }; var s = { stringifyByChunk: function (t, e, r) { var i = [], n = 0, s = t.length; if (r >= s) return String.fromCharCode.apply(null, t); for (; s > n;)"array" === e || "nodebuffer" === e ? i.push(String.fromCharCode.apply(null, t.slice(n, Math.min(n + r, s)))) : i.push(String.fromCharCode.apply(null, t.subarray(n, Math.min(n + r, s)))), n += r; return i.join("") }, stringifyByChar: function (t) { for (var e = "", r = 0; r < t.length; r++)e += String.fromCharCode(t[r]); return e }, applyCanBeUsed: { uint8array: function () { try { return o.uint8array && 1 === String.fromCharCode.apply(null, new Uint8Array(1)).length } catch (t) { return !1 } }(), nodebuffer: function () { try { return o.nodebuffer && 1 === String.fromCharCode.apply(null, r.allocBuffer(1)).length } catch (t) { return !1 } }() } }; a.applyFromCharCode = f; var c = {}; c.string = { string: n, array: function (t) { return l(t, new Array(t.length)) }, arraybuffer: function (t) { return c.string.uint8array(t).buffer }, uint8array: function (t) { return l(t, new Uint8Array(t.length)) }, nodebuffer: function (t) { return l(t, r.allocBuffer(t.length)) } }, c.array = { string: f, array: n, arraybuffer: function (t) { return new Uint8Array(t).buffer }, uint8array: function (t) { return new Uint8Array(t) }, nodebuffer: function (t) { return r.newBufferFrom(t) } }, c.arraybuffer = { string: function (t) { return f(new Uint8Array(t)) }, array: function (t) { return d(new Uint8Array(t), new Array(t.byteLength)) }, arraybuffer: n, uint8array: function (t) { return new Uint8Array(t) }, nodebuffer: function (t) { return r.newBufferFrom(new Uint8Array(t)) } }, c.uint8array = { string: f, array: function (t) { return d(t, new Array(t.length)) }, arraybuffer: function (t) { return t.buffer }, uint8array: n, nodebuffer: function (t) { return r.newBufferFrom(t) } }, c.nodebuffer = { string: f, array: function (t) { return d(t, new Array(t.length)) }, arraybuffer: function (t) { return c.nodebuffer.uint8array(t).buffer }, uint8array: function (t) { return d(t, new Uint8Array(t.length)) }, nodebuffer: n }, a.transformTo = function (t, e) { if (e = e || "", !t) return e; a.checkSupport(t); var r = a.getTypeOf(e); return c[r][t](e) }, a.getTypeOf = function (t) { return "string" == typeof t ? "string" : "[object Array]" === Object.prototype.toString.call(t) ? "array" : o.nodebuffer && r.isBuffer(t) ? "nodebuffer" : o.uint8array && t instanceof Uint8Array ? "uint8array" : o.arraybuffer && t instanceof ArrayBuffer ? "arraybuffer" : void 0 }, a.checkSupport = function (t) { if (!o[t.toLowerCase()]) throw new Error(t + " is not supported by this platform") }, a.MAX_VALUE_16BITS = 65535, a.MAX_VALUE_32BITS = -1, a.pretty = function (t) { var e, r, i = ""; for (r = 0; r < (t || "").length; r++)i += "\\x" + ((e = t.charCodeAt(r)) < 16 ? "0" : "") + e.toString(16).toUpperCase(); return i }, a.delay = function (t, e, r) { i(function () { t.apply(r || null, e || []) }) }, a.inherits = function (t, e) { function r() { } r.prototype = e.prototype, t.prototype = new r }, a.extend = function () { var t, e, r = {}; for (t = 0; t < arguments.length; t++)for (e in arguments[t]) arguments[t].hasOwnProperty(e) && void 0 === r[e] && (r[e] = arguments[t][e]); return r }, a.prepareContent = function (r, t, i, n, s) { return u.Promise.resolve(t).then(function (i) { return o.blob && (i instanceof Blob || -1 !== ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(i))) && "undefined" != typeof FileReader ? new u.Promise(function (e, r) { var t = new FileReader; t.onload = function (t) { e(t.target.result) }, t.onerror = function (t) { r(t.target.error) }, t.readAsArrayBuffer(i) }) : i }).then(function (t) { var e = a.getTypeOf(t); return e ? ("arraybuffer" === e ? t = a.transformTo("uint8array", t) : "string" === e && (s ? t = h.decode(t) : i && !0 !== n && (t = function (t) { return l(t, o.uint8array ? new Uint8Array(t.length) : new Array(t.length)) }(t))), t) : u.Promise.reject(new Error("Can't read the data of '" + r + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")) }) } }, { "./base64": 1, "./external": 6, "./nodejsUtils": 14, "./support": 30, "set-immediate-shim": 54 }], 33: [function (t, e, r) { "use strict"; function h(t) { this.files = [], this.loadOptions = t } var i = t("./reader/readerFor"), n = t("./utils"), s = t("./signature"), a = t("./zipEntry"), o = (t("./utf8"), t("./support")); h.prototype = { checkSignature: function (t) { if (!this.reader.readAndCheckSignature(t)) { this.reader.index -= 4; var e = this.reader.readString(4); throw new Error("Corrupted zip or bug: unexpected signature (" + n.pretty(e) + ", expected " + n.pretty(t) + ")") } }, isSignature: function (t, e) { var r = this.reader.index; this.reader.setIndex(t); var i = this.reader.readString(4) === e; return this.reader.setIndex(r), i }, readBlockEndOfCentral: function () { this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt(2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt(2); var t = this.reader.readData(this.zipCommentLength), e = o.uint8array ? "uint8array" : "array", r = n.transformTo(e, t); this.zipComment = this.loadOptions.decodeFileName(r) }, readBlockZip64EndOfCentral: function () { this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader.skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt(8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {}; for (var t, e, r, i = this.zip64EndOfCentralSize - 44; i > 0;)t = this.reader.readInt(2), e = this.reader.readInt(4), r = this.reader.readData(e), this.zip64ExtensibleData[t] = { id: t, length: e, value: r } }, readBlockZip64EndOfCentralLocator: function () { if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8), this.disksCount = this.reader.readInt(4), 1 < this.disksCount) throw new Error("Multi-volumes zip are not supported") }, readLocalFiles: function () { var t, e; for (t = 0; t < this.files.length; t++)e = this.files[t], this.reader.setIndex(e.localHeaderOffset), this.checkSignature(s.LOCAL_FILE_HEADER), e.readLocalPart(this.reader), e.handleUTF8(), e.processAttributes() }, readCentralDir: function () { var t; for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(t = new a({ zip64: this.zip64 }, this.loadOptions)).readCentralPart(this.reader), this.files.push(t); if (this.centralDirRecords !== this.files.length && 0 !== this.centralDirRecords && 0 === this.files.length) throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length) }, readEndOfCentral: function () { var t = this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END); if (0 > t) throw this.isSignature(0, s.LOCAL_FILE_HEADER) ? new Error("Corrupted zip: can't find end of central directory") : new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"); this.reader.setIndex(t); var e = t; if (this.checkSignature(s.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === n.MAX_VALUE_16BITS || this.diskWithCentralDirStart === n.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === n.MAX_VALUE_16BITS || this.centralDirRecords === n.MAX_VALUE_16BITS || this.centralDirSize === n.MAX_VALUE_32BITS || this.centralDirOffset === n.MAX_VALUE_32BITS) { if (this.zip64 = !0, (t = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR)) < 0) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); if (this.reader.setIndex(t), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature(this.relativeOffsetEndOfZip64CentralDir, s.ZIP64_CENTRAL_DIRECTORY_END) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0)) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral() } var r = this.centralDirOffset + this.centralDirSize; this.zip64 && (r += 20, r += 12 + this.zip64EndOfCentralSize); var i = e - r; if (i > 0) this.isSignature(e, s.CENTRAL_FILE_HEADER) || (this.reader.zero = i); else if (0 > i) throw new Error("Corrupted zip: missing " + Math.abs(i) + " bytes.") }, prepareReader: function (t) { this.reader = i(t) }, load: function (t) { this.prepareReader(t), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles() } }, e.exports = h }, { "./reader/readerFor": 22, "./signature": 23, "./support": 30, "./utf8": 31, "./utils": 32, "./zipEntry": 34 }], 34: [function (t, e, r) { + "use strict"; function l(t, e) { this.options = t, this.loadOptions = e } var i = t("./reader/readerFor"), s = t("./utils"), n = t("./compressedObject"), a = t("./crc32"), o = t("./utf8"), h = t("./compressions"), u = t("./support"); l.prototype = { + isEncrypted: function () { return 1 == (1 & this.bitFlag) }, useUTF8: function () { return 2048 == (2048 & this.bitFlag) }, readLocalPart: function (t) { + var e, r; if (t.skip(22), this.fileNameLength = t.readInt(2), r = t.readInt(2), this.fileName = t.readData(this.fileNameLength), t.skip(r), -1 === this.compressedSize || -1 === this.uncompressedSize) throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)"); + if (null === (e = function (t) { for (var e in h) if (h.hasOwnProperty(e) && h[e].magic === t) return h[e]; return null }(this.compressionMethod))) throw new Error("Corrupted zip : compression " + s.pretty(this.compressionMethod) + " unknown (inner file : " + s.transformTo("string", this.fileName) + ")"); this.decompressed = new n(this.compressedSize, this.uncompressedSize, this.crc32, e, t.readData(this.compressedSize)) + }, readCentralPart: function (t) { this.versionMadeBy = t.readInt(2), t.skip(2), this.bitFlag = t.readInt(2), this.compressionMethod = t.readString(2), this.date = t.readDate(), this.crc32 = t.readInt(4), this.compressedSize = t.readInt(4), this.uncompressedSize = t.readInt(4); var e = t.readInt(2); if (this.extraFieldsLength = t.readInt(2), this.fileCommentLength = t.readInt(2), this.diskNumberStart = t.readInt(2), this.internalFileAttributes = t.readInt(2), this.externalFileAttributes = t.readInt(4), this.localHeaderOffset = t.readInt(4), this.isEncrypted()) throw new Error("Encrypted zip are not supported"); t.skip(e), this.readExtraFields(t), this.parseZIP64ExtraField(t), this.fileComment = t.readData(this.fileCommentLength) }, processAttributes: function () { this.unixPermissions = null, this.dosPermissions = null; var t = this.versionMadeBy >> 8; this.dir = !!(16 & this.externalFileAttributes), 0 == t && (this.dosPermissions = 63 & this.externalFileAttributes), 3 == t && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), this.dir || "/" !== this.fileNameStr.slice(-1) || (this.dir = !0) }, parseZIP64ExtraField: function (t) { if (this.extraFields[1]) { var e = i(this.extraFields[1].value); this.uncompressedSize === s.MAX_VALUE_32BITS && (this.uncompressedSize = e.readInt(8)), this.compressedSize === s.MAX_VALUE_32BITS && (this.compressedSize = e.readInt(8)), this.localHeaderOffset === s.MAX_VALUE_32BITS && (this.localHeaderOffset = e.readInt(8)), this.diskNumberStart === s.MAX_VALUE_32BITS && (this.diskNumberStart = e.readInt(4)) } }, readExtraFields: function (t) { var e, r, i, n = t.index + this.extraFieldsLength; for (this.extraFields || (this.extraFields = {}); t.index + 4 < n;)e = t.readInt(2), r = t.readInt(2), i = t.readData(r), this.extraFields[e] = { id: e, length: r, value: i }; t.setIndex(n) }, handleUTF8: function () { var t = u.uint8array ? "uint8array" : "array"; if (this.useUTF8()) this.fileNameStr = o.utf8decode(this.fileName), this.fileCommentStr = o.utf8decode(this.fileComment); else { var e = this.findExtraFieldUnicodePath(); if (null !== e) this.fileNameStr = e; else { var r = s.transformTo(t, this.fileName); this.fileNameStr = this.loadOptions.decodeFileName(r) } var i = this.findExtraFieldUnicodeComment(); if (null !== i) this.fileCommentStr = i; else { var n = s.transformTo(t, this.fileComment); this.fileCommentStr = this.loadOptions.decodeFileName(n) } } }, findExtraFieldUnicodePath: function () { var t = this.extraFields[28789]; if (t) { var e = i(t.value); return 1 !== e.readInt(1) ? null : a(this.fileName) !== e.readInt(4) ? null : o.utf8decode(e.readData(t.length - 5)) } return null }, findExtraFieldUnicodeComment: function () { var t = this.extraFields[25461]; if (t) { var e = i(t.value); return 1 !== e.readInt(1) ? null : a(this.fileComment) !== e.readInt(4) ? null : o.utf8decode(e.readData(t.length - 5)) } return null } + }, e.exports = l + }, { "./compressedObject": 2, "./compressions": 3, "./crc32": 4, "./reader/readerFor": 22, "./support": 30, "./utf8": 31, "./utils": 32 }], 35: [function (t, e, r) { "use strict"; function i(t, e, r) { this.name = t, this.dir = r.dir, this.date = r.date, this.comment = r.comment, this.unixPermissions = r.unixPermissions, this.dosPermissions = r.dosPermissions, this._data = e, this._dataBinary = r.binary, this.options = { compression: r.compression, compressionOptions: r.compressionOptions } } var s = t("./stream/StreamHelper"), n = t("./stream/DataWorker"), a = t("./utf8"), o = t("./compressedObject"), h = t("./stream/GenericWorker"); i.prototype = { internalStream: function (t) { var e = null, r = "string"; try { if (!t) throw new Error("No output type specified."); var i = "string" === (r = t.toLowerCase()) || "text" === r; "binarystring" !== r && "text" !== r || (r = "string"), e = this._decompressWorker(); var n = !this._dataBinary; n && !i && (e = e.pipe(new a.Utf8EncodeWorker)), !n && i && (e = e.pipe(new a.Utf8DecodeWorker)) } catch (t) { (e = new h("error")).error(t) } return new s(e, r, "") }, async: function (t, e) { return this.internalStream(t).accumulate(e) }, nodeStream: function (t, e) { return this.internalStream(t || "nodebuffer").toNodejsStream(e) }, _compressWorker: function (t, e) { if (this._data instanceof o && this._data.compression.magic === t.magic) return this._data.getCompressedWorker(); var r = this._decompressWorker(); return this._dataBinary || (r = r.pipe(new a.Utf8EncodeWorker)), o.createWorkerFrom(r, t, e) }, _decompressWorker: function () { return this._data instanceof o ? this._data.getContentWorker() : this._data instanceof h ? this._data : new n(this._data) } }; for (var u = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"], l = function () { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.") }, f = 0; f < u.length; f++)i.prototype[u[f]] = l; e.exports = i }, { "./compressedObject": 2, "./stream/DataWorker": 27, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31 }], 36: [function (t, l, e) { (function (e) { "use strict"; function u() { var t, e; i = !0; for (var r = h.length; r;) { for (e = h, h = [], t = -1; ++t < r;)e[t](); r = h.length } i = !1 } var r, i, t = e.MutationObserver || e.WebKitMutationObserver; if (t) { var n = 0, s = new t(u), a = e.document.createTextNode(""); s.observe(a, { characterData: !0 }), r = function () { a.data = n = ++n % 2 } } else if (e.setImmediate || void 0 === e.MessageChannel) r = "document" in e && "onreadystatechange" in e.document.createElement("script") ? function () { var t = e.document.createElement("script"); t.onreadystatechange = function () { u(), t.onreadystatechange = null, t.parentNode.removeChild(t), t = null }, e.document.documentElement.appendChild(t) } : function () { setTimeout(u, 0) }; else { var o = new e.MessageChannel; o.port1.onmessage = u, r = function () { o.port2.postMessage(0) } } var h = []; l.exports = function (t) { 1 !== h.push(t) || i || r() } }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 37: [function (t, e, r) { "use strict"; function u() { } function o(t) { if ("function" != typeof t) throw new TypeError("resolver must be a function"); this.state = i, this.queue = [], this.outcome = void 0, t !== u && c(this, t) } function h(t, e, r) { this.promise = t, "function" == typeof e && (this.onFulfilled = e, this.callFulfilled = this.otherCallFulfilled), "function" == typeof r && (this.onRejected = r, this.callRejected = this.otherCallRejected) } function f(e, r, i) { n(function () { var t; try { t = r(i) } catch (t) { return l.reject(e, t) } t === e ? l.reject(e, new TypeError("Cannot resolve promise with itself")) : l.resolve(e, t) }) } function d(t) { var e = t && t.then; return !t || "object" != typeof t && "function" != typeof t || "function" != typeof e ? void 0 : function () { e.apply(t, arguments) } } function c(e, t) { function i(t) { r || (r = !0, l.reject(e, t)) } function n(t) { r || (r = !0, l.resolve(e, t)) } var r = !1, s = p(function () { t(n, i) }); "error" === s.status && i(s.value) } function p(t, e) { var r = {}; try { r.value = t(e), r.status = "success" } catch (t) { r.status = "error", r.value = t } return r } var n = t("immediate"), l = {}, s = ["REJECTED"], a = ["FULFILLED"], i = ["PENDING"]; (e.exports = o).prototype["finally"] = function (e) { if ("function" != typeof e) return this; var r = this.constructor; return this.then(function (t) { return r.resolve(e()).then(function () { return t }) }, function (t) { return r.resolve(e()).then(function () { throw t }) }) }, o.prototype["catch"] = function (t) { return this.then(null, t) }, o.prototype.then = function (t, e) { if ("function" != typeof t && this.state === a || "function" != typeof e && this.state === s) return this; var r = new this.constructor(u); return this.state !== i ? f(r, this.state === a ? t : e, this.outcome) : this.queue.push(new h(r, t, e)), r }, h.prototype.callFulfilled = function (t) { l.resolve(this.promise, t) }, h.prototype.otherCallFulfilled = function (t) { f(this.promise, this.onFulfilled, t) }, h.prototype.callRejected = function (t) { l.reject(this.promise, t) }, h.prototype.otherCallRejected = function (t) { f(this.promise, this.onRejected, t) }, l.resolve = function (t, e) { var r = p(d, e); if ("error" === r.status) return l.reject(t, r.value); var i = r.value; if (i) c(t, i); else { t.state = a, t.outcome = e; for (var n = -1, s = t.queue.length; ++n < s;)t.queue[n].callFulfilled(e) } return t }, l.reject = function (t, e) { t.state = s, t.outcome = e; for (var r = -1, i = t.queue.length; ++r < i;)t.queue[r].callRejected(e); return t }, o.resolve = function (t) { return t instanceof this ? t : l.resolve(new this(u), t) }, o.reject = function (t) { var e = new this(u); return l.reject(e, t) }, o.all = function (t) { function h(t, e) { r.resolve(t).then(function (t) { s[e] = t, ++a !== i || n || (n = !0, l.resolve(o, s)) }, function (t) { n || (n = !0, l.reject(o, t)) }) } var r = this; if ("[object Array]" !== Object.prototype.toString.call(t)) return this.reject(new TypeError("must be an array")); var i = t.length, n = !1; if (!i) return this.resolve([]); for (var s = new Array(i), a = 0, e = -1, o = new this(u); ++e < i;)h(t[e], e); return o }, o.race = function (t) { var e = this; if ("[object Array]" !== Object.prototype.toString.call(t)) return this.reject(new TypeError("must be an array")); var r = t.length, i = !1; if (!r) return this.resolve([]); for (var n = -1, s = new this(u); ++n < r;)a = t[n], e.resolve(a).then(function (t) { i || (i = !0, l.resolve(s, t)) }, function (t) { i || (i = !0, l.reject(s, t)) }); var a; return s } }, { immediate: 36 }], 38: [function (t, e, r) { "use strict"; var i = {}; t("./lib/utils/common").assign(i, t("./lib/deflate"), t("./lib/inflate"), t("./lib/zlib/constants")), e.exports = i }, { "./lib/deflate": 39, "./lib/inflate": 40, "./lib/utils/common": 41, "./lib/zlib/constants": 44 }], 39: [function (t, e, r) { "use strict"; function p(t) { if (!(this instanceof p)) return new p(t); this.options = o.assign({ level: f, method: c, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: d, to: "" }, t || {}); var e = this.options; e.raw && 0 < e.windowBits ? e.windowBits = -e.windowBits : e.gzip && 0 < e.windowBits && e.windowBits < 16 && (e.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new s, this.strm.avail_out = 0; var r = a.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy); if (r !== l) throw new Error(n[r]); if (e.header && a.deflateSetHeader(this.strm, e.header), e.dictionary) { var i; if (i = "string" == typeof e.dictionary ? h.string2buf(e.dictionary) : "[object ArrayBuffer]" === u.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary, (r = a.deflateSetDictionary(this.strm, i)) !== l) throw new Error(n[r]); this._dict_set = !0 } } function i(t, e) { var r = new p(e); if (r.push(t, !0), r.err) throw r.msg || n[r.err]; return r.result } var a = t("./zlib/deflate"), o = t("./utils/common"), h = t("./utils/strings"), n = t("./zlib/messages"), s = t("./zlib/zstream"), u = Object.prototype.toString, l = 0, f = -1, d = 0, c = 8; p.prototype.push = function (t, e) { var r, i, n = this.strm, s = this.options.chunkSize; if (this.ended) return !1; i = e === ~~e ? e : !0 === e ? 4 : 0, "string" == typeof t ? n.input = h.string2buf(t) : "[object ArrayBuffer]" === u.call(t) ? n.input = new Uint8Array(t) : n.input = t, n.next_in = 0, n.avail_in = n.input.length; do { if (0 === n.avail_out && (n.output = new o.Buf8(s), n.next_out = 0, n.avail_out = s), 1 !== (r = a.deflate(n, i)) && r !== l) return this.onEnd(r), !(this.ended = !0); 0 !== n.avail_out && (0 !== n.avail_in || 4 !== i && 2 !== i) || ("string" === this.options.to ? this.onData(h.buf2binstring(o.shrinkBuf(n.output, n.next_out))) : this.onData(o.shrinkBuf(n.output, n.next_out))) } while ((0 < n.avail_in || 0 === n.avail_out) && 1 !== r); return 4 === i ? (r = a.deflateEnd(this.strm), this.onEnd(r), this.ended = !0, r === l) : 2 !== i || (this.onEnd(l), !(n.avail_out = 0)) }, p.prototype.onData = function (t) { this.chunks.push(t) }, p.prototype.onEnd = function (t) { t === l && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = o.flattenChunks(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }, r.Deflate = p, r.deflate = i, r.deflateRaw = function (t, e) { return (e = e || {}).raw = !0, i(t, e) }, r.gzip = function (t, e) { return (e = e || {}).gzip = !0, i(t, e) } }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/deflate": 46, "./zlib/messages": 51, "./zlib/zstream": 53 }], 40: [function (t, e, r) { "use strict"; function a(t) { if (!(this instanceof a)) return new a(t); this.options = c.assign({ chunkSize: 16384, windowBits: 0, to: "" }, t || {}); var e = this.options; e.raw && 0 <= e.windowBits && e.windowBits < 16 && (e.windowBits = -e.windowBits, 0 === e.windowBits && (e.windowBits = -15)), !(0 <= e.windowBits && e.windowBits < 16) || t && t.windowBits || (e.windowBits += 32), 15 < e.windowBits && e.windowBits < 48 && 0 == (15 & e.windowBits) && (e.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new n, this.strm.avail_out = 0; var r = d.inflateInit2(this.strm, e.windowBits); if (r !== m.Z_OK) throw new Error(i[r]); this.header = new s, d.inflateGetHeader(this.strm, this.header) } function o(t, e) { var r = new a(e); if (r.push(t, !0), r.err) throw r.msg || i[r.err]; return r.result } var d = t("./zlib/inflate"), c = t("./utils/common"), p = t("./utils/strings"), m = t("./zlib/constants"), i = t("./zlib/messages"), n = t("./zlib/zstream"), s = t("./zlib/gzheader"), _ = Object.prototype.toString; a.prototype.push = function (t, e) { var r, i, n, s, a, o, h = this.strm, u = this.options.chunkSize, l = this.options.dictionary, f = !1; if (this.ended) return !1; i = e === ~~e ? e : !0 === e ? m.Z_FINISH : m.Z_NO_FLUSH, "string" == typeof t ? h.input = p.binstring2buf(t) : "[object ArrayBuffer]" === _.call(t) ? h.input = new Uint8Array(t) : h.input = t, h.next_in = 0, h.avail_in = h.input.length; do { if (0 === h.avail_out && (h.output = new c.Buf8(u), h.next_out = 0, h.avail_out = u), (r = d.inflate(h, m.Z_NO_FLUSH)) === m.Z_NEED_DICT && l && (o = "string" == typeof l ? p.string2buf(l) : "[object ArrayBuffer]" === _.call(l) ? new Uint8Array(l) : l, r = d.inflateSetDictionary(this.strm, o)), r === m.Z_BUF_ERROR && !0 === f && (r = m.Z_OK, f = !1), r !== m.Z_STREAM_END && r !== m.Z_OK) return this.onEnd(r), !(this.ended = !0); h.next_out && (0 !== h.avail_out && r !== m.Z_STREAM_END && (0 !== h.avail_in || i !== m.Z_FINISH && i !== m.Z_SYNC_FLUSH) || ("string" === this.options.to ? (n = p.utf8border(h.output, h.next_out), s = h.next_out - n, a = p.buf2string(h.output, n), h.next_out = s, h.avail_out = u - s, s && c.arraySet(h.output, h.output, n, s, 0), this.onData(a)) : this.onData(c.shrinkBuf(h.output, h.next_out)))), 0 === h.avail_in && 0 === h.avail_out && (f = !0) } while ((0 < h.avail_in || 0 === h.avail_out) && r !== m.Z_STREAM_END); return r === m.Z_STREAM_END && (i = m.Z_FINISH), i === m.Z_FINISH ? (r = d.inflateEnd(this.strm), this.onEnd(r), this.ended = !0, r === m.Z_OK) : i !== m.Z_SYNC_FLUSH || (this.onEnd(m.Z_OK), !(h.avail_out = 0)) }, a.prototype.onData = function (t) { this.chunks.push(t) }, a.prototype.onEnd = function (t) { t === m.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = c.flattenChunks(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }, r.Inflate = a, r.inflate = o, r.inflateRaw = function (t, e) { return (e = e || {}).raw = !0, o(t, e) }, r.ungzip = o }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/constants": 44, "./zlib/gzheader": 47, "./zlib/inflate": 49, "./zlib/messages": 51, "./zlib/zstream": 53 }], 41: [function (t, e, r) { "use strict"; var i = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array; r.assign = function (t) { for (var e = Array.prototype.slice.call(arguments, 1); e.length;) { var r = e.shift(); if (r) { if ("object" != typeof r) throw new TypeError(r + "must be non-object"); for (var i in r) r.hasOwnProperty(i) && (t[i] = r[i]) } } return t }, r.shrinkBuf = function (t, e) { return t.length === e ? t : t.subarray ? t.subarray(0, e) : (t.length = e, t) }; var n = { arraySet: function (t, e, r, i, n) { if (e.subarray && t.subarray) t.set(e.subarray(r, r + i), n); else for (var s = 0; i > s; s++)t[n + s] = e[r + s] }, flattenChunks: function (t) { var e, r, i, n, s, a; for (e = i = 0, r = t.length; r > e; e++)i += t[e].length; for (a = new Uint8Array(i), e = n = 0, r = t.length; r > e; e++)s = t[e], a.set(s, n), n += s.length; return a } }, s = { arraySet: function (t, e, r, i, n) { for (var s = 0; i > s; s++)t[n + s] = e[r + s] }, flattenChunks: function (t) { return [].concat.apply([], t) } }; r.setTyped = function (t) { t ? (r.Buf8 = Uint8Array, r.Buf16 = Uint16Array, r.Buf32 = Int32Array, r.assign(r, n)) : (r.Buf8 = Array, r.Buf16 = Array, r.Buf32 = Array, r.assign(r, s)) }, r.setTyped(i) }, {}], 42: [function (t, e, r) { "use strict"; function l(t, e) { if (65537 > e && (t.subarray && s || !t.subarray && n)) return String.fromCharCode.apply(null, h.shrinkBuf(t, e)); for (var r = "", i = 0; e > i; i++)r += String.fromCharCode(t[i]); return r } var h = t("./common"), n = !0, s = !0; try { String.fromCharCode.apply(null, [0]) } catch (t) { n = !1 } try { String.fromCharCode.apply(null, new Uint8Array(1)) } catch (t) { s = !1 } for (var u = new h.Buf8(256), i = 0; 256 > i; i++)u[i] = i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1; u[254] = u[254] = 1, r.string2buf = function (t) { var e, r, i, n, s, a = t.length, o = 0; for (n = 0; a > n; n++)55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), o += 128 > r ? 1 : 2048 > r ? 2 : 65536 > r ? 3 : 4; for (e = new h.Buf8(o), n = s = 0; o > s; n++)55296 == (64512 & (r = t.charCodeAt(n))) && a > n + 1 && 56320 == (64512 & (i = t.charCodeAt(n + 1))) && (r = 65536 + (r - 55296 << 10) + (i - 56320), n++), 128 > r ? e[s++] = r : (2048 > r ? e[s++] = 192 | r >>> 6 : (65536 > r ? e[s++] = 224 | r >>> 12 : (e[s++] = 240 | r >>> 18, e[s++] = 128 | r >>> 12 & 63), e[s++] = 128 | r >>> 6 & 63), e[s++] = 128 | 63 & r); return e }, r.buf2binstring = function (t) { return l(t, t.length) }, r.binstring2buf = function (t) { for (var e = new h.Buf8(t.length), r = 0, i = e.length; i > r; r++)e[r] = t.charCodeAt(r); return e }, r.buf2string = function (t, e) { var r, i, n, s, a = e || t.length, o = new Array(2 * a); for (r = i = 0; a > r;)if ((n = t[r++]) < 128) o[i++] = n; else if (4 < (s = u[n])) o[i++] = 65533, r += s - 1; else { for (n &= 2 === s ? 31 : 3 === s ? 15 : 7; s > 1 && a > r;)n = n << 6 | 63 & t[r++], s--; s > 1 ? o[i++] = 65533 : 65536 > n ? o[i++] = n : (n -= 65536, o[i++] = 55296 | n >> 10 & 1023, o[i++] = 56320 | 1023 & n) } return l(o, i) }, r.utf8border = function (t, e) { var r; for ((e = e || t.length) > t.length && (e = t.length), r = e - 1; r >= 0 && 128 == (192 & t[r]);)r--; return 0 > r ? e : 0 === r ? e : r + u[t[r]] > e ? r : e } }, { "./common": 41 }], 43: [function (t, e, r) { "use strict"; e.exports = function (t, e, r, i) { for (var n = 65535 & t | 0, s = t >>> 16 & 65535 | 0, a = 0; 0 !== r;) { for (r -= a = r > 2e3 ? 2e3 : r; s = s + (n = n + e[i++] | 0) | 0, --a;); n %= 65521, s %= 65521 } return n | s << 16 | 0 } }, {}], 44: [function (t, e, r) { "use strict"; e.exports = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 } }, {}], 45: [function (t, e, r) { "use strict"; var o = function () { for (var t, e = [], r = 0; 256 > r; r++) { t = r; for (var i = 0; 8 > i; i++)t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1; e[r] = t } return e }(); e.exports = function (t, e, r, i) { var n = o, s = i + r; t ^= -1; for (var a = i; s > a; a++)t = t >>> 8 ^ n[255 & (t ^ e[a])]; return -1 ^ t } }, {}], 46: [function (t, e, r) { "use strict"; function R(t, e) { return t.msg = i[e], e } function T(t) { return (t << 1) - (t > 4 ? 9 : 0) } function D(t) { for (var e = t.length; 0 <= --e;)t[e] = 0 } function F(t) { var e = t.state, r = e.pending; r > t.avail_out && (r = t.avail_out), 0 !== r && (d.arraySet(t.output, e.pending_buf, e.pending_out, r, t.next_out), t.next_out += r, e.pending_out += r, t.total_out += r, t.avail_out -= r, e.pending -= r, 0 === e.pending && (e.pending_out = 0)) } function N(t, e) { u._tr_flush_block(t, 0 <= t.block_start ? t.block_start : -1, t.strstart - t.block_start, e), t.block_start = t.strstart, F(t.strm) } function U(t, e) { t.pending_buf[t.pending++] = e } function P(t, e) { t.pending_buf[t.pending++] = e >>> 8 & 255, t.pending_buf[t.pending++] = 255 & e } function L(t, e) { var r, i, n = t.max_chain_length, s = t.strstart, a = t.prev_length, o = t.nice_match, h = t.strstart > t.w_size - z ? t.strstart - (t.w_size - z) : 0, u = t.window, l = t.w_mask, f = t.prev, d = t.strstart + S, c = u[s + a - 1], p = u[s + a]; t.prev_length >= t.good_match && (n >>= 2), o > t.lookahead && (o = t.lookahead); do if (u[(r = e) + a] === p && u[r + a - 1] === c && u[r] === u[s] && u[++r] === u[s + 1]) { s += 2, r++; do; while (u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && u[++s] === u[++r] && d > s); if (i = S - (d - s), s = d - S, i > a) { if (t.match_start = e, o <= (a = i)) break; c = u[s + a - 1], p = u[s + a] } } while ((e = f[e & l]) > h && 0 != --n); return a <= t.lookahead ? a : t.lookahead } function j(t) { var e, r, i, n, s, a, o, h, u, l, f = t.w_size; do { if (n = t.window_size - t.lookahead - t.strstart, t.strstart >= f + (f - z)) { for (d.arraySet(t.window, t.window, f, f, 0), t.match_start -= f, t.strstart -= f, t.block_start -= f, e = r = t.hash_size; i = t.head[--e], t.head[e] = i >= f ? i - f : 0, --r;); for (e = r = f; i = t.prev[--e], t.prev[e] = i >= f ? i - f : 0, --r;); n += f } if (0 === t.strm.avail_in) break; if (a = t.strm, o = t.window, h = t.strstart + t.lookahead, u = n, l = void 0, l = a.avail_in, l > u && (l = u), r = 0 === l ? 0 : (a.avail_in -= l, d.arraySet(o, a.input, a.next_in, l, h), 1 === a.state.wrap ? a.adler = c(a.adler, o, l, h) : 2 === a.state.wrap && (a.adler = p(a.adler, o, l, h)), a.next_in += l, a.total_in += l, l), t.lookahead += r, t.lookahead + t.insert >= x) for (s = t.strstart - t.insert, t.ins_h = t.window[s], t.ins_h = (t.ins_h << t.hash_shift ^ t.window[s + 1]) & t.hash_mask; t.insert && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[s + x - 1]) & t.hash_mask, t.prev[s & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = s, s++, t.insert--, !(t.lookahead + t.insert < x));); } while (t.lookahead < z && 0 !== t.strm.avail_in) } function Z(t, e) { for (var r, i; ;) { if (t.lookahead < z) { if (j(t), t.lookahead < z && e === l) return A; if (0 === t.lookahead) break } if (r = 0, t.lookahead >= x && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 !== r && t.strstart - r <= t.w_size - z && (t.match_length = L(t, r)), t.match_length >= x) if (i = u._tr_tally(t, t.strstart - t.match_start, t.match_length - x), t.lookahead -= t.match_length, t.match_length <= t.max_lazy_match && t.lookahead >= x) { for (t.match_length--; t.strstart++, t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart, 0 != --t.match_length;); t.strstart++ } else t.strstart += t.match_length, t.match_length = 0, t.ins_h = t.window[t.strstart], t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + 1]) & t.hash_mask; else i = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++; if (i && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = t.strstart < x - 1 ? t.strstart : x - 1, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I } function W(t, e) { for (var r, i, n; ;) { if (t.lookahead < z) { if (j(t), t.lookahead < z && e === l) return A; if (0 === t.lookahead) break } if (r = 0, t.lookahead >= x && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), t.prev_length = t.match_length, t.prev_match = t.match_start, t.match_length = x - 1, 0 !== r && t.prev_length < t.max_lazy_match && t.strstart - r <= t.w_size - z && (t.match_length = L(t, r), t.match_length <= 5 && (1 === t.strategy || t.match_length === x && 4096 < t.strstart - t.match_start) && (t.match_length = x - 1)), t.prev_length >= x && t.match_length <= t.prev_length) { for (n = t.strstart + t.lookahead - x, i = u._tr_tally(t, t.strstart - 1 - t.prev_match, t.prev_length - x), t.lookahead -= t.prev_length - 1, t.prev_length -= 2; ++t.strstart <= n && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + x - 1]) & t.hash_mask, r = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 != --t.prev_length;); if (t.match_available = 0, t.match_length = x - 1, t.strstart++, i && (N(t, !1), 0 === t.strm.avail_out)) return A } else if (t.match_available) { if ((i = u._tr_tally(t, 0, t.window[t.strstart - 1])) && N(t, !1), t.strstart++, t.lookahead--, 0 === t.strm.avail_out) return A } else t.match_available = 1, t.strstart++, t.lookahead-- } return t.match_available && (i = u._tr_tally(t, 0, t.window[t.strstart - 1]), t.match_available = 0), t.insert = t.strstart < x - 1 ? t.strstart : x - 1, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I } function M(t, e, r, i, n) { this.good_length = t, this.max_lazy = e, this.nice_length = r, this.max_chain = i, this.func = n } function H() { this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = v, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new d.Buf16(2 * w), this.dyn_dtree = new d.Buf16(2 * (2 * a + 1)), this.bl_tree = new d.Buf16(2 * (2 * o + 1)), D(this.dyn_ltree), D(this.dyn_dtree), D(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new d.Buf16(k + 1), this.heap = new d.Buf16(2 * s + 1), D(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new d.Buf16(2 * s + 1), D(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0 } function G(t) { var e; return t && t.state ? (t.total_in = t.total_out = 0, t.data_type = n, (e = t.state).pending = 0, e.pending_out = 0, e.wrap < 0 && (e.wrap = -e.wrap), e.status = e.wrap ? C : E, t.adler = 2 === e.wrap ? 0 : 1, e.last_flush = l, u._tr_init(e), m) : R(t, _) } function K(t) { var e = G(t); return e === m && function (t) { t.window_size = 2 * t.w_size, D(t.head), t.max_lazy_match = h[t.level].max_lazy, t.good_match = h[t.level].good_length, t.nice_match = h[t.level].nice_length, t.max_chain_length = h[t.level].max_chain, t.strstart = 0, t.block_start = 0, t.lookahead = 0, t.insert = 0, t.match_length = t.prev_length = x - 1, t.match_available = 0, t.ins_h = 0 }(t.state), e } function Y(t, e, r, i, n, s) { if (!t) return _; var a = 1; if (e === g && (e = 6), 0 > i ? (a = 0, i = -i) : i > 15 && (a = 2, i -= 16), 1 > n || n > y || r !== v || 8 > i || i > 15 || 0 > e || e > 9 || 0 > s || s > b) return R(t, _); 8 === i && (i = 9); var o = new H; return (t.state = o).strm = t, o.wrap = a, o.gzhead = null, o.w_bits = i, o.w_size = 1 << o.w_bits, o.w_mask = o.w_size - 1, o.hash_bits = n + 7, o.hash_size = 1 << o.hash_bits, o.hash_mask = o.hash_size - 1, o.hash_shift = ~~((o.hash_bits + x - 1) / x), o.window = new d.Buf8(2 * o.w_size), o.head = new d.Buf16(o.hash_size), o.prev = new d.Buf16(o.w_size), o.lit_bufsize = 1 << n + 6, o.pending_buf_size = 4 * o.lit_bufsize, o.pending_buf = new d.Buf8(o.pending_buf_size), o.d_buf = 1 * o.lit_bufsize, o.l_buf = 3 * o.lit_bufsize, o.level = e, o.strategy = s, o.method = r, K(t) } var h, d = t("../utils/common"), u = t("./trees"), c = t("./adler32"), p = t("./crc32"), i = t("./messages"), l = 0, f = 4, m = 0, _ = -2, g = -1, b = 4, n = 2, v = 8, y = 9, s = 286, a = 30, o = 19, w = 2 * s + 1, k = 15, x = 3, S = 258, z = S + x + 1, C = 42, E = 113, A = 1, I = 2, O = 3, B = 4; h = [new M(0, 0, 0, 0, function (t, e) { var r = 65535; for (r > t.pending_buf_size - 5 && (r = t.pending_buf_size - 5); ;) { if (t.lookahead <= 1) { if (j(t), 0 === t.lookahead && e === l) return A; if (0 === t.lookahead) break } t.strstart += t.lookahead, t.lookahead = 0; var i = t.block_start + r; if ((0 === t.strstart || t.strstart >= i) && (t.lookahead = t.strstart - i, t.strstart = i, N(t, !1), 0 === t.strm.avail_out)) return A; if (t.strstart - t.block_start >= t.w_size - z && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : (t.strstart > t.block_start && (N(t, !1), t.strm.avail_out), A) }), new M(4, 4, 8, 4, Z), new M(4, 5, 16, 8, Z), new M(4, 6, 32, 32, Z), new M(4, 4, 16, 16, W), new M(8, 16, 32, 32, W), new M(8, 16, 128, 128, W), new M(8, 32, 128, 256, W), new M(32, 128, 258, 1024, W), new M(32, 258, 258, 4096, W)], r.deflateInit = function (t, e) { return Y(t, e, v, 15, 8, 0) }, r.deflateInit2 = Y, r.deflateReset = K, r.deflateResetKeep = G, r.deflateSetHeader = function (t, e) { return t && t.state ? 2 !== t.state.wrap ? _ : (t.state.gzhead = e, m) : _ }, r.deflate = function (t, e) { var r, i, n, s; if (!t || !t.state || e > 5 || 0 > e) return t ? R(t, _) : _; if (i = t.state, !t.output || !t.input && 0 !== t.avail_in || 666 === i.status && e !== f) return R(t, 0 === t.avail_out ? -5 : _); if (i.strm = t, r = i.last_flush, i.last_flush = e, i.status === C) if (2 === i.wrap) t.adler = 0, U(i, 31), U(i, 139), U(i, 8), i.gzhead ? (U(i, (i.gzhead.text ? 1 : 0) + (i.gzhead.hcrc ? 2 : 0) + (i.gzhead.extra ? 4 : 0) + (i.gzhead.name ? 8 : 0) + (i.gzhead.comment ? 16 : 0)), U(i, 255 & i.gzhead.time), U(i, i.gzhead.time >> 8 & 255), U(i, i.gzhead.time >> 16 & 255), U(i, i.gzhead.time >> 24 & 255), U(i, 9 === i.level ? 2 : 2 <= i.strategy || i.level < 2 ? 4 : 0), U(i, 255 & i.gzhead.os), i.gzhead.extra && i.gzhead.extra.length && (U(i, 255 & i.gzhead.extra.length), U(i, i.gzhead.extra.length >> 8 & 255)), i.gzhead.hcrc && (t.adler = p(t.adler, i.pending_buf, i.pending, 0)), i.gzindex = 0, i.status = 69) : (U(i, 0), U(i, 0), U(i, 0), U(i, 0), U(i, 0), U(i, 9 === i.level ? 2 : 2 <= i.strategy || i.level < 2 ? 4 : 0), U(i, 3), i.status = E); else { var a = v + (i.w_bits - 8 << 4) << 8; a |= (2 <= i.strategy || i.level < 2 ? 0 : i.level < 6 ? 1 : 6 === i.level ? 2 : 3) << 6, 0 !== i.strstart && (a |= 32), a += 31 - a % 31, i.status = E, P(i, a), 0 !== i.strstart && (P(i, t.adler >>> 16), P(i, 65535 & t.adler)), t.adler = 1 } if (69 === i.status) if (i.gzhead.extra) { for (n = i.pending; i.gzindex < (65535 & i.gzhead.extra.length) && (i.pending !== i.pending_buf_size || (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending !== i.pending_buf_size));)U(i, 255 & i.gzhead.extra[i.gzindex]), i.gzindex++; i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), i.gzindex === i.gzhead.extra.length && (i.gzindex = 0, i.status = 73) } else i.status = 73; if (73 === i.status) if (i.gzhead.name) { n = i.pending; do { if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending === i.pending_buf_size)) { s = 1; break } s = i.gzindex < i.gzhead.name.length ? 255 & i.gzhead.name.charCodeAt(i.gzindex++) : 0, U(i, s) } while (0 !== s); i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), 0 === s && (i.gzindex = 0, i.status = 91) } else i.status = 91; if (91 === i.status) if (i.gzhead.comment) { n = i.pending; do { if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), F(t), n = i.pending, i.pending === i.pending_buf_size)) { s = 1; break } s = i.gzindex < i.gzhead.comment.length ? 255 & i.gzhead.comment.charCodeAt(i.gzindex++) : 0, U(i, s) } while (0 !== s); i.gzhead.hcrc && i.pending > n && (t.adler = p(t.adler, i.pending_buf, i.pending - n, n)), 0 === s && (i.status = 103) } else i.status = 103; if (103 === i.status && (i.gzhead.hcrc ? (i.pending + 2 > i.pending_buf_size && F(t), i.pending + 2 <= i.pending_buf_size && (U(i, 255 & t.adler), U(i, t.adler >> 8 & 255), t.adler = 0, i.status = E)) : i.status = E), 0 !== i.pending) { if (F(t), 0 === t.avail_out) return i.last_flush = -1, m } else if (0 === t.avail_in && T(e) <= T(r) && e !== f) return R(t, -5); if (666 === i.status && 0 !== t.avail_in) return R(t, -5); if (0 !== t.avail_in || 0 !== i.lookahead || e !== l && 666 !== i.status) { var o = 2 === i.strategy ? function (t, e) { for (var r; ;) { if (0 === t.lookahead && (j(t), 0 === t.lookahead)) { if (e === l) return A; break } if (t.match_length = 0, r = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++, r && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I }(i, e) : 3 === i.strategy ? function (t, e) { for (var r, i, n, s, a = t.window; ;) { if (t.lookahead <= S) { if (j(t), t.lookahead <= S && e === l) return A; if (0 === t.lookahead) break } if (t.match_length = 0, t.lookahead >= x && 0 < t.strstart && (i = a[n = t.strstart - 1]) === a[++n] && i === a[++n] && i === a[++n]) { s = t.strstart + S; do; while (i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && i === a[++n] && s > n); t.match_length = S - (s - n), t.match_length > t.lookahead && (t.match_length = t.lookahead) } if (t.match_length >= x ? (r = u._tr_tally(t, 1, t.match_length - x), t.lookahead -= t.match_length, t.strstart += t.match_length, t.match_length = 0) : (r = u._tr_tally(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++), r && (N(t, !1), 0 === t.strm.avail_out)) return A } return t.insert = 0, e === f ? (N(t, !0), 0 === t.strm.avail_out ? O : B) : t.last_lit && (N(t, !1), 0 === t.strm.avail_out) ? A : I }(i, e) : h[i.level].func(i, e); if (o !== O && o !== B || (i.status = 666), o === A || o === O) return 0 === t.avail_out && (i.last_flush = -1), m; if (o === I && (1 === e ? u._tr_align(i) : 5 !== e && (u._tr_stored_block(i, 0, 0, !1), 3 === e && (D(i.head), 0 === i.lookahead && (i.strstart = 0, i.block_start = 0, i.insert = 0))), F(t), 0 === t.avail_out)) return i.last_flush = -1, m } return e !== f ? m : i.wrap <= 0 ? 1 : (2 === i.wrap ? (U(i, 255 & t.adler), U(i, t.adler >> 8 & 255), U(i, t.adler >> 16 & 255), U(i, t.adler >> 24 & 255), U(i, 255 & t.total_in), U(i, t.total_in >> 8 & 255), U(i, t.total_in >> 16 & 255), U(i, t.total_in >> 24 & 255)) : (P(i, t.adler >>> 16), P(i, 65535 & t.adler)), F(t), 0 < i.wrap && (i.wrap = -i.wrap), 0 !== i.pending ? m : 1) }, r.deflateEnd = function (t) { var e; return t && t.state ? (e = t.state.status) !== C && 69 !== e && 73 !== e && 91 !== e && 103 !== e && e !== E && 666 !== e ? R(t, _) : (t.state = null, e === E ? R(t, -3) : m) : _ }, r.deflateSetDictionary = function (t, e) { var r, i, n, s, a, o, h, u, l = e.length; if (!t || !t.state) return _; if (2 === (s = (r = t.state).wrap) || 1 === s && r.status !== C || r.lookahead) return _; for (1 === s && (t.adler = c(t.adler, e, l, 0)), r.wrap = 0, l >= r.w_size && (0 === s && (D(r.head), r.strstart = 0, r.block_start = 0, r.insert = 0), u = new d.Buf8(r.w_size), d.arraySet(u, e, l - r.w_size, r.w_size, 0), e = u, l = r.w_size), a = t.avail_in, o = t.next_in, h = t.input, t.avail_in = l, t.next_in = 0, t.input = e, j(r); r.lookahead >= x;) { for (i = r.strstart, n = r.lookahead - (x - 1); r.ins_h = (r.ins_h << r.hash_shift ^ r.window[i + x - 1]) & r.hash_mask, r.prev[i & r.w_mask] = r.head[r.ins_h], r.head[r.ins_h] = i, i++, --n;); r.strstart = i, r.lookahead = x - 1, j(r) } return r.strstart += r.lookahead, r.block_start = r.strstart, r.insert = r.lookahead, r.lookahead = 0, r.match_length = r.prev_length = x - 1, r.match_available = 0, t.next_in = o, t.input = h, t.avail_in = a, r.wrap = s, m }, r.deflateInfo = "pako deflate (from Nodeca project)" }, { + "../utils/common": 41, + "./adler32": 43, "./crc32": 45, "./messages": 51, "./trees": 52 + }], 47: [function (t, e, r) { "use strict"; e.exports = function () { this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1 } }, {}], 48: [function (t, e, r) { "use strict"; e.exports = function (t, e) { var r, i, n, s, a, o, h, u, l, f, d, c, p, m, _, g, b, v, y, w, k, x, S, z, C; r = t.state, i = t.next_in, z = t.input, n = i + (t.avail_in - 5), s = t.next_out, C = t.output, a = s - (e - t.avail_out), o = s + (t.avail_out - 257), h = r.dmax, u = r.wsize, l = r.whave, f = r.wnext, d = r.window, c = r.hold, p = r.bits, m = r.lencode, _ = r.distcode, g = (1 << r.lenbits) - 1, b = (1 << r.distbits) - 1; t: do { 15 > p && (c += z[i++] << p, p += 8, c += z[i++] << p, p += 8), v = m[c & g]; e: for (; ;) { if (c >>>= y = v >>> 24, p -= y, 0 === (y = v >>> 16 & 255)) C[s++] = 65535 & v; else { if (!(16 & y)) { if (0 == (64 & y)) { v = m[(65535 & v) + (c & (1 << y) - 1)]; continue e } if (32 & y) { r.mode = 12; break t } t.msg = "invalid literal/length code", r.mode = 30; break t } w = 65535 & v, (y &= 15) && (y > p && (c += z[i++] << p, p += 8), w += c & (1 << y) - 1, c >>>= y, p -= y), 15 > p && (c += z[i++] << p, p += 8, c += z[i++] << p, p += 8), v = _[c & b]; r: for (; ;) { if (c >>>= y = v >>> 24, p -= y, !(16 & (y = v >>> 16 & 255))) { if (0 == (64 & y)) { v = _[(65535 & v) + (c & (1 << y) - 1)]; continue r } t.msg = "invalid distance code", r.mode = 30; break t } if (k = 65535 & v, p < (y &= 15) && (c += z[i++] << p, (p += 8) < y && (c += z[i++] << p, p += 8)), h < (k += c & (1 << y) - 1)) { t.msg = "invalid distance too far back", r.mode = 30; break t } if (c >>>= y, p -= y, (y = s - a) < k) { if (l < (y = k - y) && r.sane) { t.msg = "invalid distance too far back", r.mode = 30; break t } if (S = d, (x = 0) === f) { if (x += u - y, w > y) { for (w -= y; C[s++] = d[x++], --y;); x = s - k, S = C } } else if (y > f) { if (x += u + f - y, (y -= f) < w) { for (w -= y; C[s++] = d[x++], --y;); if (x = 0, w > f) { for (w -= y = f; C[s++] = d[x++], --y;); x = s - k, S = C } } } else if (x += f - y, w > y) { for (w -= y; C[s++] = d[x++], --y;); x = s - k, S = C } for (; w > 2;)C[s++] = S[x++], C[s++] = S[x++], C[s++] = S[x++], w -= 3; w && (C[s++] = S[x++], w > 1 && (C[s++] = S[x++])) } else { for (x = s - k; C[s++] = C[x++], C[s++] = C[x++], C[s++] = C[x++], 2 < (w -= 3);); w && (C[s++] = C[x++], w > 1 && (C[s++] = C[x++])) } break } } break } } while (n > i && o > s); i -= w = p >> 3, c &= (1 << (p -= w << 3)) - 1, t.next_in = i, t.next_out = s, t.avail_in = n > i ? n - i + 5 : 5 - (i - n), t.avail_out = o > s ? o - s + 257 : 257 - (s - o), r.hold = c, r.bits = p } }, {}], 49: [function (t, e, r) { "use strict"; function L(t) { return (t >>> 24 & 255) + (t >>> 8 & 65280) + ((65280 & t) << 8) + ((255 & t) << 24) } function s() { this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new I.Buf16(320), this.work = new I.Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0 } function a(t) { var e; return t && t.state ? (e = t.state, t.total_in = t.total_out = e.total = 0, t.msg = "", e.wrap && (t.adler = 1 & e.wrap), e.mode = P, e.last = 0, e.havedict = 0, e.dmax = 32768, e.head = null, e.hold = 0, e.bits = 0, e.lencode = e.lendyn = new I.Buf32(i), e.distcode = e.distdyn = new I.Buf32(n), e.sane = 1, e.back = -1, N) : U } function o(t) { var e; return t && t.state ? ((e = t.state).wsize = 0, e.whave = 0, e.wnext = 0, a(t)) : U } function h(t, e) { var r, i; return t && t.state ? (i = t.state, 0 > e ? (r = 0, e = -e) : (r = 1 + (e >> 4), 48 > e && (e &= 15)), e && (8 > e || e > 15) ? U : (null !== i.window && i.wbits !== e && (i.window = null), i.wrap = r, i.wbits = e, o(t))) : U } function u(t, e) { var r, i; return t ? (i = new s, (t.state = i).window = null, (r = h(t, e)) !== N && (t.state = null), r) : U } function j(t) { if (d) { var e; for (l = new I.Buf32(512), f = new I.Buf32(32), e = 0; 144 > e;)t.lens[e++] = 8; for (; 256 > e;)t.lens[e++] = 9; for (; 280 > e;)t.lens[e++] = 7; for (; 288 > e;)t.lens[e++] = 8; for (T(D, t.lens, 0, 288, l, 0, t.work, { bits: 9 }), e = 0; 32 > e;)t.lens[e++] = 5; T(F, t.lens, 0, 32, f, 0, t.work, { bits: 5 }), d = !1 } t.lencode = l, t.lenbits = 9, t.distcode = f, t.distbits = 5 } function Z(t, e, r, i) { var n, s = t.state; return null === s.window && (s.wsize = 1 << s.wbits, s.wnext = 0, s.whave = 0, s.window = new I.Buf8(s.wsize)), i >= s.wsize ? (I.arraySet(s.window, e, r - s.wsize, s.wsize, 0), s.wnext = 0, s.whave = s.wsize) : (i < (n = s.wsize - s.wnext) && (n = i), I.arraySet(s.window, e, r - i, n, s.wnext), (i -= n) ? (I.arraySet(s.window, e, r - i, i, 0), s.wnext = i, s.whave = s.wsize) : (s.wnext += n, s.wnext === s.wsize && (s.wnext = 0), s.whave < s.wsize && (s.whave += n))), 0 } var l, f, I = t("../utils/common"), O = t("./adler32"), B = t("./crc32"), R = t("./inffast"), T = t("./inftrees"), D = 1, F = 2, N = 0, U = -2, P = 1, i = 852, n = 592, d = !0; r.inflateReset = o, r.inflateReset2 = h, r.inflateResetKeep = a, r.inflateInit = function (t) { return u(t, 15) }, r.inflateInit2 = u, r.inflate = function (t, e) { var r, i, n, s, a, o, h, u, l, f, d, c, p, m, _, g, b, v, y, w, k, x, S, z, C = 0, E = new I.Buf8(4), A = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; if (!t || !t.state || !t.output || !t.input && 0 !== t.avail_in) return U; 12 === (r = t.state).mode && (r.mode = 13), a = t.next_out, n = t.output, h = t.avail_out, s = t.next_in, i = t.input, o = t.avail_in, u = r.hold, l = r.bits, f = o, d = h, x = N; t: for (; ;)switch (r.mode) { case P: if (0 === r.wrap) { r.mode = 13; break } for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (2 & r.wrap && 35615 === u) { E[r.check = 0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0), l = u = 0, r.mode = 2; break } if (r.flags = 0, r.head && (r.head.done = !1), !(1 & r.wrap) || (((255 & u) << 8) + (u >> 8)) % 31) { t.msg = "incorrect header check", r.mode = 30; break } if (8 != (15 & u)) { t.msg = "unknown compression method", r.mode = 30; break } if (l -= 4, k = 8 + (15 & (u >>>= 4)), 0 === r.wbits) r.wbits = k; else if (k > r.wbits) { t.msg = "invalid window size", r.mode = 30; break } r.dmax = 1 << k, t.adler = r.check = 1, r.mode = 512 & u ? 10 : 12, l = u = 0; break; case 2: for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (r.flags = u, 8 != (255 & r.flags)) { t.msg = "unknown compression method", r.mode = 30; break } if (57344 & r.flags) { t.msg = "unknown header flags set", r.mode = 30; break } r.head && (r.head.text = u >> 8 & 1), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0, r.mode = 3; case 3: for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.head && (r.head.time = u), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, E[2] = u >>> 16 & 255, E[3] = u >>> 24 & 255, r.check = B(r.check, E, 4, 0)), l = u = 0, r.mode = 4; case 4: for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.head && (r.head.xflags = 255 & u, r.head.os = u >> 8), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0, r.mode = 5; case 5: if (1024 & r.flags) { for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.length = u, r.head && (r.head.extra_len = u), 512 & r.flags && (E[0] = 255 & u, E[1] = u >>> 8 & 255, r.check = B(r.check, E, 2, 0)), l = u = 0 } else r.head && (r.head.extra = null); r.mode = 6; case 6: if (1024 & r.flags && (o < (c = r.length) && (c = o), c && (r.head && (k = r.head.extra_len - r.length, r.head.extra || (r.head.extra = new Array(r.head.extra_len)), I.arraySet(r.head.extra, i, s, c, k)), 512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, r.length -= c), r.length)) break t; r.length = 0, r.mode = 7; case 7: if (2048 & r.flags) { if (0 === o) break t; for (c = 0; k = i[s + c++], r.head && k && r.length < 65536 && (r.head.name += String.fromCharCode(k)), k && o > c;); if (512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, k) break t } else r.head && (r.head.name = null); r.length = 0, r.mode = 8; case 8: if (4096 & r.flags) { if (0 === o) break t; for (c = 0; k = i[s + c++], r.head && k && r.length < 65536 && (r.head.comment += String.fromCharCode(k)), k && o > c;); if (512 & r.flags && (r.check = B(r.check, i, c, s)), o -= c, s += c, k) break t } else r.head && (r.head.comment = null); r.mode = 9; case 9: if (512 & r.flags) { for (; 16 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u !== (65535 & r.check)) { t.msg = "header crc mismatch", r.mode = 30; break } l = u = 0 } r.head && (r.head.hcrc = r.flags >> 9 & 1, r.head.done = !0), t.adler = r.check = 0, r.mode = 12; break; case 10: for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } t.adler = r.check = L(u), l = u = 0, r.mode = 11; case 11: if (0 === r.havedict) return t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, 2; t.adler = r.check = 1, r.mode = 12; case 12: if (5 === e || 6 === e) break t; case 13: if (r.last) { u >>>= 7 & l, l -= 7 & l, r.mode = 27; break } for (; 3 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } switch (r.last = 1 & u, l -= 1, 3 & (u >>>= 1)) { case 0: r.mode = 14; break; case 1: if (j(r), r.mode = 20, 6 !== e) break; u >>>= 2, l -= 2; break t; case 2: r.mode = 17; break; case 3: t.msg = "invalid block type", r.mode = 30 }u >>>= 2, l -= 2; break; case 14: for (u >>>= 7 & l, l -= 7 & l; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if ((65535 & u) != (u >>> 16 ^ 65535)) { t.msg = "invalid stored block lengths", r.mode = 30; break } if (r.length = 65535 & u, l = u = 0, r.mode = 15, 6 === e) break t; case 15: r.mode = 16; case 16: if (c = r.length) { if (c > o && (c = o), c > h && (c = h), 0 === c) break t; I.arraySet(n, i, s, c, a), o -= c, s += c, h -= c, a += c, r.length -= c; break } r.mode = 12; break; case 17: for (; 14 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (r.nlen = 257 + (31 & u), u >>>= 5, l -= 5, r.ndist = 1 + (31 & u), u >>>= 5, l -= 5, r.ncode = 4 + (15 & u), u >>>= 4, l -= 4, 286 < r.nlen || 30 < r.ndist) { t.msg = "too many length or distance symbols", r.mode = 30; break } r.have = 0, r.mode = 18; case 18: for (; r.have < r.ncode;) { for (; 3 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.lens[A[r.have++]] = 7 & u, u >>>= 3, l -= 3 } for (; r.have < 19;)r.lens[A[r.have++]] = 0; if (r.lencode = r.lendyn, r.lenbits = 7, S = { bits: r.lenbits }, x = T(0, r.lens, 0, 19, r.lencode, 0, r.work, S), r.lenbits = S.bits, x) { t.msg = "invalid code lengths set", r.mode = 30; break } r.have = 0, r.mode = 19; case 19: for (; r.have < r.nlen + r.ndist;) { for (; g = (C = r.lencode[u & (1 << r.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (16 > b) u >>>= _, l -= _, r.lens[r.have++] = b; else { if (16 === b) { for (z = _ + 2; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u >>>= _, l -= _, 0 === r.have) { t.msg = "invalid bit length repeat", r.mode = 30; break } k = r.lens[r.have - 1], c = 3 + (3 & u), u >>>= 2, l -= 2 } else if (17 === b) { for (z = _ + 3; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } l -= _, k = 0, c = 3 + (7 & (u >>>= _)), u >>>= 3, l -= 3 } else { for (z = _ + 7; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } l -= _, k = 0, c = 11 + (127 & (u >>>= _)), u >>>= 7, l -= 7 } if (r.have + c > r.nlen + r.ndist) { t.msg = "invalid bit length repeat", r.mode = 30; break } for (; c--;)r.lens[r.have++] = k } } if (30 === r.mode) break; if (0 === r.lens[256]) { t.msg = "invalid code -- missing end-of-block", r.mode = 30; break } if (r.lenbits = 9, S = { bits: r.lenbits }, x = T(D, r.lens, 0, r.nlen, r.lencode, 0, r.work, S), r.lenbits = S.bits, x) { t.msg = "invalid literal/lengths set", r.mode = 30; break } if (r.distbits = 6, r.distcode = r.distdyn, S = { bits: r.distbits }, x = T(F, r.lens, r.nlen, r.ndist, r.distcode, 0, r.work, S), r.distbits = S.bits, x) { t.msg = "invalid distances set", r.mode = 30; break } if (r.mode = 20, 6 === e) break t; case 20: r.mode = 21; case 21: if (o >= 6 && h >= 258) { t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, R(t, d), a = t.next_out, n = t.output, h = t.avail_out, s = t.next_in, i = t.input, o = t.avail_in, u = r.hold, l = r.bits, 12 === r.mode && (r.back = -1); break } for (r.back = 0; g = (C = r.lencode[u & (1 << r.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (g && 0 == (240 & g)) { for (v = _, y = g, w = b; g = (C = r.lencode[w + ((u & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } u >>>= v, l -= v, r.back += v } if (u >>>= _, l -= _, r.back += _, r.length = b, 0 === g) { r.mode = 26; break } if (32 & g) { r.back = -1, r.mode = 12; break } if (64 & g) { t.msg = "invalid literal/length code", r.mode = 30; break } r.extra = 15 & g, r.mode = 22; case 22: if (r.extra) { for (z = r.extra; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.length += u & (1 << r.extra) - 1, u >>>= r.extra, l -= r.extra, r.back += r.extra } r.was = r.length, r.mode = 23; case 23: for (; g = (C = r.distcode[u & (1 << r.distbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (0 == (240 & g)) { for (v = _, y = g, w = b; g = (C = r.distcode[w + ((u & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l);) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } u >>>= v, l -= v, r.back += v } if (u >>>= _, l -= _, r.back += _, 64 & g) { t.msg = "invalid distance code", r.mode = 30; break } r.offset = b, r.extra = 15 & g, r.mode = 24; case 24: if (r.extra) { for (z = r.extra; z > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } r.offset += u & (1 << r.extra) - 1, u >>>= r.extra, l -= r.extra, r.back += r.extra } if (r.offset > r.dmax) { t.msg = "invalid distance too far back", r.mode = 30; break } r.mode = 25; case 25: if (0 === h) break t; if (c = d - h, r.offset > c) { if ((c = r.offset - c) > r.whave && r.sane) { t.msg = "invalid distance too far back", r.mode = 30; break } p = c > r.wnext ? (c -= r.wnext, r.wsize - c) : r.wnext - c, c > r.length && (c = r.length), m = r.window } else m = n, p = a - r.offset, c = r.length; for (c > h && (c = h), h -= c, r.length -= c; n[a++] = m[p++], --c;); 0 === r.length && (r.mode = 21); break; case 26: if (0 === h) break t; n[a++] = r.length, h--, r.mode = 21; break; case 27: if (r.wrap) { for (; 32 > l;) { if (0 === o) break t; o--, u |= i[s++] << l, l += 8 } if (d -= h, t.total_out += d, r.total += d, d && (t.adler = r.check = r.flags ? B(r.check, n, d, a - d) : O(r.check, n, d, a - d)), d = h, (r.flags ? u : L(u)) !== r.check) { t.msg = "incorrect data check", r.mode = 30; break } l = u = 0 } r.mode = 28; case 28: if (r.wrap && r.flags) { for (; 32 > l;) { if (0 === o) break t; o--, u += i[s++] << l, l += 8 } if (u !== (4294967295 & r.total)) { t.msg = "incorrect length check", r.mode = 30; break } l = u = 0 } r.mode = 29; case 29: x = 1; break t; case 30: x = -3; break t; case 31: return -4; case 32: default: return U }return t.next_out = a, t.avail_out = h, t.next_in = s, t.avail_in = o, r.hold = u, r.bits = l, (r.wsize || d !== t.avail_out && r.mode < 30 && (r.mode < 27 || 4 !== e)) && Z(t, t.output, t.next_out, d - t.avail_out) ? (r.mode = 31, -4) : (f -= t.avail_in, d -= t.avail_out, t.total_in += f, t.total_out += d, r.total += d, r.wrap && d && (t.adler = r.check = r.flags ? B(r.check, n, d, t.next_out - d) : O(r.check, n, d, t.next_out - d)), t.data_type = r.bits + (r.last ? 64 : 0) + (12 === r.mode ? 128 : 0) + (20 === r.mode || 15 === r.mode ? 256 : 0), (0 == f && 0 === d || 4 === e) && x === N && (x = -5), x) }, r.inflateEnd = function (t) { if (!t || !t.state) return U; var e = t.state; return e.window && (e.window = null), t.state = null, N }, r.inflateGetHeader = function (t, e) { var r; return t && t.state ? 0 == (2 & (r = t.state).wrap) ? U : ((r.head = e).done = !1, N) : U }, r.inflateSetDictionary = function (t, e) { var r, i = e.length; return t && t.state ? 0 !== (r = t.state).wrap && 11 !== r.mode ? U : 11 === r.mode && O(1, e, i, 0) !== r.check ? -3 : Z(t, e, i, i) ? (r.mode = 31, -4) : (r.havedict = 1, N) : U }, r.inflateInfo = "pako inflate (from Nodeca project)" }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./inffast": 48, "./inftrees": 50 }], 50: [function (t, e, r) { "use strict"; var D = t("../utils/common"), F = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0], N = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78], U = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0], P = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]; e.exports = function (t, e, r, i, n, s, a, o) { var h, u, l, f, d, c, p, m, _, g = o.bits, b = 0, v = 0, y = 0, w = 0, k = 0, x = 0, S = 0, z = 0, C = 0, E = 0, A = null, I = 0, O = new D.Buf16(16), B = new D.Buf16(16), R = null, T = 0; for (b = 0; 15 >= b; b++)O[b] = 0; for (v = 0; i > v; v++)O[e[r + v]]++; for (k = g, w = 15; w >= 1 && 0 === O[w]; w--); if (k > w && (k = w), 0 === w) return n[s++] = 20971520, n[s++] = 20971520, o.bits = 1, 0; for (y = 1; w > y && 0 === O[y]; y++); for (y > k && (k = y), b = z = 1; 15 >= b; b++)if (z <<= 1, (z -= O[b]) < 0) return -1; if (z > 0 && (0 === t || 1 !== w)) return -1; for (B[1] = 0, b = 1; 15 > b; b++)B[b + 1] = B[b] + O[b]; for (v = 0; i > v; v++)0 !== e[r + v] && (a[B[e[r + v]]++] = v); if (c = 0 === t ? (A = R = a, 19) : 1 === t ? (A = F, I -= 257, R = N, T -= 257, 256) : (A = U, R = P, -1), b = y, d = s, S = v = E = 0, l = -1, f = (C = 1 << (x = k)) - 1, 1 === t && C > 852 || 2 === t && C > 592) return 1; for (; ;) { for (p = b - S, _ = a[v] < c ? (m = 0, a[v]) : a[v] > c ? (m = R[T + a[v]], A[I + a[v]]) : (m = 96, 0), h = 1 << b - S, y = u = 1 << x; n[d + (E >> S) + (u -= h)] = p << 24 | m << 16 | _ | 0, 0 !== u;); for (h = 1 << b - 1; E & h;)h >>= 1; if (0 !== h ? (E &= h - 1, E += h) : E = 0, v++, 0 == --O[b]) { if (b === w) break; b = e[r + a[v]] } if (b > k && (E & f) !== l) { for (0 === S && (S = k), d += y, z = 1 << (x = b - S); w > x + S && !((z -= O[x + S]) <= 0);)x++, z <<= 1; if (C += 1 << x, 1 === t && C > 852 || 2 === t && C > 592) return 1; n[l = E & f] = k << 24 | x << 16 | d - s | 0 } } return 0 !== E && (n[d + E] = b - S << 24 | 64 << 16 | 0), o.bits = k, 0 } }, { "../utils/common": 41 }], 51: [function (t, e, r) { "use strict"; e.exports = { 2: "need dictionary", 1: "stream end", 0: "", "-1": "file error", "-2": "stream error", "-3": "data error", "-4": "insufficient memory", "-5": "buffer error", "-6": "incompatible version" } }, {}], 52: [function (t, e, r) { "use strict"; function i(t) { for (var e = t.length; 0 <= --e;)t[e] = 0 } function D(t, e, r, i, n) { this.static_tree = t, this.extra_bits = e, this.extra_base = r, this.elems = i, this.max_length = n, this.has_stree = t && t.length } function F(t, e) { this.dyn_tree = t, this.max_code = 0, this.stat_desc = e } function N(t) { return 256 > t ? E[t] : E[256 + (t >>> 7)] } function U(t, e) { t.pending_buf[t.pending++] = 255 & e, t.pending_buf[t.pending++] = e >>> 8 & 255 } function P(t, e, r) { t.bi_valid > c - r ? (t.bi_buf |= e << t.bi_valid & 65535, U(t, t.bi_buf), t.bi_buf = e >> c - t.bi_valid, t.bi_valid += r - c) : (t.bi_buf |= e << t.bi_valid & 65535, t.bi_valid += r) } function L(t, e, r) { P(t, r[2 * e], r[2 * e + 1]) } function j(t, e) { for (var r = 0; r |= 1 & t, t >>>= 1, r <<= 1, 0 < --e;); return r >>> 1 } function Z(t, e, r) { var i, n, s = new Array(g + 1), a = 0; for (i = 1; g >= i; i++)s[i] = a = a + r[i - 1] << 1; for (n = 0; e >= n; n++) { var o = t[2 * n + 1]; 0 !== o && (t[2 * n] = j(s[o]++, o)) } } function W(t) { var e; for (e = 0; l > e; e++)t.dyn_ltree[2 * e] = 0; for (e = 0; f > e; e++)t.dyn_dtree[2 * e] = 0; for (e = 0; d > e; e++)t.bl_tree[2 * e] = 0; t.dyn_ltree[2 * m] = 1, t.opt_len = t.static_len = 0, t.last_lit = t.matches = 0 } function M(t) { 8 < t.bi_valid ? U(t, t.bi_buf) : 0 < t.bi_valid && (t.pending_buf[t.pending++] = t.bi_buf), t.bi_buf = 0, t.bi_valid = 0 } function H(t, e, r, i) { var n = 2 * e, s = 2 * r; return t[n] < t[s] || t[n] === t[s] && i[e] <= i[r] } function G(t, e, r) { for (var i = t.heap[r], n = r << 1; n <= t.heap_len && (n < t.heap_len && H(e, t.heap[n + 1], t.heap[n], t.depth) && n++, !H(e, i, t.heap[n], t.depth));)t.heap[r] = t.heap[n], r = n, n <<= 1; t.heap[r] = i } function K(t, e, r) { var i, n, s, a, o = 0; if (0 !== t.last_lit) for (; i = t.pending_buf[t.d_buf + 2 * o] << 8 | t.pending_buf[t.d_buf + 2 * o + 1], n = t.pending_buf[t.l_buf + o], o++, 0 === i ? L(t, n, e) : (L(t, (s = A[n]) + u + 1, e), 0 !== (a = w[s]) && P(t, n -= I[s], a), L(t, s = N(--i), r), 0 !== (a = k[s]) && P(t, i -= T[s], a)), o < t.last_lit;); L(t, m, e) } function Y(t, e) { var r, i, n, s = e.dyn_tree, a = e.stat_desc.static_tree, o = e.stat_desc.has_stree, h = e.stat_desc.elems, u = -1; for (t.heap_len = 0, t.heap_max = _, r = 0; h > r; r++)0 !== s[2 * r] ? (t.heap[++t.heap_len] = u = r, t.depth[r] = 0) : s[2 * r + 1] = 0; for (; t.heap_len < 2;)s[2 * (n = t.heap[++t.heap_len] = 2 > u ? ++u : 0)] = 1, t.depth[n] = 0, t.opt_len--, o && (t.static_len -= a[2 * n + 1]); for (e.max_code = u, r = t.heap_len >> 1; r >= 1; r--)G(t, s, r); for (n = h; r = t.heap[1], t.heap[1] = t.heap[t.heap_len--], G(t, s, 1), i = t.heap[1], t.heap[--t.heap_max] = r, t.heap[--t.heap_max] = i, s[2 * n] = s[2 * r] + s[2 * i], t.depth[n] = (t.depth[r] >= t.depth[i] ? t.depth[r] : t.depth[i]) + 1, s[2 * r + 1] = s[2 * i + 1] = n, t.heap[1] = n++, G(t, s, 1), 2 <= t.heap_len;); t.heap[--t.heap_max] = t.heap[1], function (t, e) { var r, i, n, s, a, o, h = e.dyn_tree, u = e.max_code, l = e.stat_desc.static_tree, f = e.stat_desc.has_stree, d = e.stat_desc.extra_bits, c = e.stat_desc.extra_base, p = e.stat_desc.max_length, m = 0; for (s = 0; g >= s; s++)t.bl_count[s] = 0; for (h[2 * t.heap[t.heap_max] + 1] = 0, r = t.heap_max + 1; _ > r; r++)p < (s = h[2 * h[2 * (i = t.heap[r]) + 1] + 1] + 1) && (s = p, m++), h[2 * i + 1] = s, i > u || (t.bl_count[s]++, a = 0, i >= c && (a = d[i - c]), o = h[2 * i], t.opt_len += o * (s + a), f && (t.static_len += o * (l[2 * i + 1] + a))); if (0 !== m) { do { for (s = p - 1; 0 === t.bl_count[s];)s--; t.bl_count[s]--, t.bl_count[s + 1] += 2, t.bl_count[p]--, m -= 2 } while (m > 0); for (s = p; 0 !== s; s--)for (i = t.bl_count[s]; 0 !== i;)u < (n = t.heap[--r]) || (h[2 * n + 1] !== s && (t.opt_len += (s - h[2 * n + 1]) * h[2 * n], h[2 * n + 1] = s), i--) } }(t, e), Z(s, u, t.bl_count) } function X(t, e, r) { var i, n, s = -1, a = e[1], o = 0, h = 7, u = 4; for (0 === a && (h = 138, u = 3), e[2 * (r + 1) + 1] = 65535, i = 0; r >= i; i++)n = a, a = e[2 * (i + 1) + 1], ++o < h && n === a || (u > o ? t.bl_tree[2 * n] += o : 0 !== n ? (n !== s && t.bl_tree[2 * n]++, t.bl_tree[2 * b]++) : 10 >= o ? t.bl_tree[2 * v]++ : t.bl_tree[2 * y]++, s = n, u = (o = 0) === a ? (h = 138, 3) : n === a ? (h = 6, 3) : (h = 7, 4)) } function V(t, e, r) { var i, n, s = -1, a = e[1], o = 0, h = 7, u = 4; for (0 === a && (h = 138, u = 3), i = 0; r >= i; i++)if (n = a, a = e[2 * (i + 1) + 1], !(++o < h && n === a)) { if (u > o) for (; L(t, n, t.bl_tree), 0 != --o;); else 0 !== n ? (n !== s && (L(t, n, t.bl_tree), o--), L(t, b, t.bl_tree), P(t, o - 3, 2)) : 10 >= o ? (L(t, v, t.bl_tree), P(t, o - 3, 3)) : (L(t, y, t.bl_tree), P(t, o - 11, 7)); s = n, u = (o = 0) === a ? (h = 138, 3) : n === a ? (h = 6, 3) : (h = 7, 4) } } function J(t, e, r, i) { P(t, (s << 1) + (i ? 1 : 0), 3), function (t, e, r, i) { M(t), i && (U(t, r), U(t, ~r)), n.arraySet(t.pending_buf, t.window, e, r, t.pending), t.pending += r }(t, e, r, !0) } var n = t("../utils/common"), o = 0, h = 1, s = 0, a = 29, u = 256, l = u + 1 + a, f = 30, d = 19, _ = 2 * l + 1, g = 15, c = 16, p = 7, m = 256, b = 16, v = 17, y = 18, w = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0], k = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13], x = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], S = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], z = new Array(2 * (l + 2)); i(z); var C = new Array(2 * f); i(C); var E = new Array(512); i(E); var A = new Array(256); i(A); var I = new Array(a); i(I); var O, B, R, T = new Array(f); i(T); var q = !1; r._tr_init = function (t) { q || (function () { var t, e, r, i, n, s = new Array(g + 1); for (i = r = 0; a - 1 > i; i++)for (I[i] = r, t = 0; t < 1 << w[i]; t++)A[r++] = i; for (A[r - 1] = i, i = n = 0; 16 > i; i++)for (T[i] = n, t = 0; t < 1 << k[i]; t++)E[n++] = i; for (n >>= 7; f > i; i++)for (T[i] = n << 7, t = 0; t < 1 << k[i] - 7; t++)E[256 + n++] = i; for (e = 0; g >= e; e++)s[e] = 0; for (t = 0; 143 >= t;)z[2 * t + 1] = 8, t++, s[8]++; for (; 255 >= t;)z[2 * t + 1] = 9, t++, s[9]++; for (; 279 >= t;)z[2 * t + 1] = 7, t++, s[7]++; for (; 287 >= t;)z[2 * t + 1] = 8, t++, s[8]++; for (Z(z, l + 1, s), t = 0; f > t; t++)C[2 * t + 1] = 5, C[2 * t] = j(t, 5); O = new D(z, w, u + 1, l, g), B = new D(C, k, 0, f, g), R = new D(new Array(0), x, 0, d, p) }(), q = !0), t.l_desc = new F(t.dyn_ltree, O), t.d_desc = new F(t.dyn_dtree, B), t.bl_desc = new F(t.bl_tree, R), t.bi_buf = 0, t.bi_valid = 0, W(t) }, r._tr_stored_block = J, r._tr_flush_block = function (t, e, r, i) { var n, s, a = 0; 0 < t.level ? (2 === t.strm.data_type && (t.strm.data_type = function (t) { var e, r = 4093624447; for (e = 0; 31 >= e; e++, r >>>= 1)if (1 & r && 0 !== t.dyn_ltree[2 * e]) return o; if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26]) return h; for (e = 32; u > e; e++)if (0 !== t.dyn_ltree[2 * e]) return h; return o }(t)), Y(t, t.l_desc), Y(t, t.d_desc), a = function (t) { var e; for (X(t, t.dyn_ltree, t.l_desc.max_code), X(t, t.dyn_dtree, t.d_desc.max_code), Y(t, t.bl_desc), e = d - 1; e >= 3 && 0 === t.bl_tree[2 * S[e] + 1]; e--); return t.opt_len += 3 * (e + 1) + 5 + 5 + 4, e }(t), n = t.opt_len + 3 + 7 >>> 3, (s = t.static_len + 3 + 7 >>> 3) <= n && (n = s)) : n = s = r + 5, n >= r + 4 && -1 !== e ? J(t, e, r, i) : 4 === t.strategy || s === n ? (P(t, 2 + (i ? 1 : 0), 3), K(t, z, C)) : (P(t, 4 + (i ? 1 : 0), 3), function (t, e, r, i) { var n; for (P(t, e - 257, 5), P(t, r - 1, 5), P(t, i - 4, 4), n = 0; i > n; n++)P(t, t.bl_tree[2 * S[n] + 1], 3); V(t, t.dyn_ltree, e - 1), V(t, t.dyn_dtree, r - 1) }(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, a + 1), K(t, t.dyn_ltree, t.dyn_dtree)), W(t), i && M(t) }, r._tr_tally = function (t, e, r) { return t.pending_buf[t.d_buf + 2 * t.last_lit] = e >>> 8 & 255, t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e, t.pending_buf[t.l_buf + t.last_lit] = 255 & r, t.last_lit++, 0 === e ? t.dyn_ltree[2 * r]++ : (t.matches++, e--, t.dyn_ltree[2 * (A[r] + u + 1)]++, t.dyn_dtree[2 * N(e)]++), t.last_lit === t.lit_bufsize - 1 }, r._tr_align = function (t) { P(t, 2, 3), L(t, m, z), function (t) { 16 === t.bi_valid ? (U(t, t.bi_buf), t.bi_buf = 0, t.bi_valid = 0) : 8 <= t.bi_valid && (t.pending_buf[t.pending++] = 255 & t.bi_buf, t.bi_buf >>= 8, t.bi_valid -= 8) }(t) } }, { "../utils/common": 41 }], 53: [function (t, e, r) { "use strict"; e.exports = function () { this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0 } }, {}], 54: [function (t, e, r) { "use strict"; e.exports = "function" == typeof setImmediate ? setImmediate : function () { var t = [].slice.apply(arguments); t.splice(1, 0, 0), setTimeout.apply(null, t) } }, {}] }, {}, [10])(10) }) }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}, require("buffer").Buffer) - }, { buffer: 83 }], 89: [function (require, module, exports) { - exports.Parser = require("./lib/parser").Parser, exports.rules = require("./lib/rules"), exports.errors = require("./lib/errors"), exports.results = require("./lib/parsing-results"), exports.StringSource = require("./lib/StringSource"), exports.Token = require("./lib/Token"), exports.bottomUp = require("./lib/bottom-up"), exports.RegexTokeniser = require("./lib/regex-tokeniser").RegexTokeniser, - exports.rule = function (ruleBuilder) { var rule; return function (input) { return rule || (rule = ruleBuilder()), rule(input) } } - }, { "./lib/StringSource": 90, "./lib/Token": 91, "./lib/bottom-up": 93, "./lib/errors": 94, "./lib/parser": 96, "./lib/parsing-results": 97, "./lib/regex-tokeniser": 98, "./lib/rules": 99 }], 90: [function (require, module, exports) { var util = require("util"), StringSourceRange = (module.exports = function (string, description) { var self = { asString: function () { return string }, range: function (startIndex, endIndex) { return new StringSourceRange(string, description, startIndex, endIndex) } }; return self }, function (string, description, startIndex, endIndex) { this._string = string, this._description = description, this._startIndex = startIndex, this._endIndex = endIndex }); StringSourceRange.prototype.to = function (otherRange) { return new StringSourceRange(this._string, this._description, this._startIndex, otherRange._endIndex) }, StringSourceRange.prototype.describe = function () { var position = this._position(), description = this._description ? this._description + "\n" : ""; return util.format("%sLine number: %s\nCharacter number: %s", description, position.lineNumber, position.characterNumber) }, StringSourceRange.prototype.lineNumber = function () { return this._position().lineNumber }, StringSourceRange.prototype.characterNumber = function () { return this._position().characterNumber }, StringSourceRange.prototype._position = function () { for (var self = this, index = 0, nextNewLine = function () { return self._string.indexOf("\n", index) }, lineNumber = 1; -1 !== nextNewLine() && nextNewLine() < this._startIndex;)index = nextNewLine() + 1, lineNumber += 1; var characterNumber = this._startIndex - index + 1; return { lineNumber: lineNumber, characterNumber: characterNumber } } }, { util: 106 }], 91: [function (require, module, exports) { module.exports = function (name, value, source) { this.name = name, this.value = value, source && (this.source = source) } }, {}], 92: [function (require, module, exports) { var TokenIterator = module.exports = function (tokens, startIndex) { this._tokens = tokens, this._startIndex = startIndex || 0 }; TokenIterator.prototype.head = function () { return this._tokens[this._startIndex] }, TokenIterator.prototype.tail = function (startIndex) { return new TokenIterator(this._tokens, this._startIndex + 1) }, TokenIterator.prototype.toArray = function () { return this._tokens.slice(this._startIndex) }, TokenIterator.prototype.end = function () { return this._tokens[this._tokens.length - 1] }, TokenIterator.prototype.to = function (end) { var start = this.head().source, endToken = end.head() || end.end(); return start.to(endToken.source) } }, {}], 93: [function (require, module, exports) { function InfixRules(infixRules) { function untilExclusive(name) { return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name))) } function untilInclusive(name) { return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name) + 1)) } function ruleNames() { return infixRules.map(function (rule) { return rule.name }) } function apply(leftResult) { for (var currentResult, source; ;) { if (currentResult = applyToTokens(leftResult.remaining()), !currentResult.isSuccess()) return currentResult.isFailure() ? leftResult : currentResult; source = leftResult.source().to(currentResult.source()), leftResult = results.success(currentResult.value()(leftResult.value(), source), currentResult.remaining(), source) } } function applyToTokens(tokens) { return rules.firstOf("infix", infixRules.map(function (infix) { return infix.rule }))(tokens) } return { apply: apply, untilExclusive: untilExclusive, untilInclusive: untilInclusive } } var rules = require("./rules"), results = require("./parsing-results"); exports.parser = function (name, prefixRules, infixRuleBuilders) { function createInfixRule(infixRuleBuilder) { return { name: infixRuleBuilder.name, rule: lazyRule(infixRuleBuilder.ruleBuilder.bind(null, self)) } } function rule() { return createRule(infixRules) } function leftAssociative(name) { return createRule(infixRules.untilExclusive(name)) } function rightAssociative(name) { return createRule(infixRules.untilInclusive(name)) } function createRule(infixRules) { return apply.bind(null, infixRules) } function apply(infixRules, tokens) { var leftResult = prefixRule(tokens); return leftResult.isSuccess() ? infixRules.apply(leftResult) : leftResult } var self = { rule: rule, leftAssociative: leftAssociative, rightAssociative: rightAssociative }, infixRules = new InfixRules(infixRuleBuilders.map(createInfixRule)), prefixRule = rules.firstOf(name, prefixRules); return self }, exports.infix = function (name, ruleBuilder) { function map(func) { return exports.infix(name, function (parser) { var rule = ruleBuilder(parser); return function (tokens) { var result = rule(tokens); return result.map(function (right) { return function (left, source) { return func(left, right, source) } }) } }) } return { name: name, ruleBuilder: ruleBuilder, map: map } }; var lazyRule = function (ruleBuilder) { var rule; return function (input) { return rule || (rule = ruleBuilder()), rule(input) } } }, { "./parsing-results": 97, "./rules": 99 }], 94: [function (require, module, exports) { exports.error = function (options) { return new Error(options) }; var Error = function (options) { this.expected = options.expected, this.actual = options.actual, this._location = options.location }; Error.prototype.describe = function () { var locationDescription = this._location ? this._location.describe() + ":\n" : ""; return locationDescription + "Expected " + this.expected + "\nbut got " + this.actual }, Error.prototype.lineNumber = function () { return this._location.lineNumber() }, Error.prototype.characterNumber = function () { return this._location.characterNumber() } }, {}], 95: [function (require, module, exports) { var LazyIterator = (exports.fromArray = function (array) { var index = 0, hasNext = function () { return index < array.length }; return new LazyIterator({ hasNext: hasNext, next: function () { if (hasNext()) return array[index++]; throw new Error("No more elements") } }) }, function (iterator) { this._iterator = iterator }); LazyIterator.prototype.map = function (func) { var iterator = this._iterator; return new LazyIterator({ hasNext: function () { return iterator.hasNext() }, next: function () { return func(iterator.next()) } }) }, LazyIterator.prototype.filter = function (condition) { var next, iterator = this._iterator, moved = !1, hasNext = !1, moveIfNecessary = function () { if (!moved) for (moved = !0, hasNext = !1; iterator.hasNext() && !hasNext;)next = iterator.next(), hasNext = condition(next) }; return new LazyIterator({ hasNext: function () { return moveIfNecessary(), hasNext }, next: function () { moveIfNecessary(); var toReturn = next; return moved = !1, toReturn } }) }, LazyIterator.prototype.first = function () { var iterator = this._iterator; return this._iterator.hasNext() ? iterator.next() : null }, LazyIterator.prototype.toArray = function () { for (var result = []; this._iterator.hasNext();)result.push(this._iterator.next()); return result } }, {}], 96: [function (require, module, exports) { var TokenIterator = require("./TokenIterator"); exports.Parser = function (options) { var parseTokens = function (parser, tokens) { return parser(new TokenIterator(tokens)) }; return { parseTokens: parseTokens } } }, { "./TokenIterator": 92 }], 97: [function (require, module, exports) { module.exports = { failure: function (errors, remaining) { if (errors.length < 1) throw new Error("Failure must have errors"); return new Result({ status: "failure", remaining: remaining, errors: errors }) }, error: function (errors, remaining) { if (errors.length < 1) throw new Error("Failure must have errors"); return new Result({ status: "error", remaining: remaining, errors: errors }) }, success: function (value, remaining, source) { return new Result({ status: "success", value: value, source: source, remaining: remaining, errors: [] }) }, cut: function (remaining) { return new Result({ status: "cut", remaining: remaining, errors: [] }) } }; var Result = function (options) { this._value = options.value, this._status = options.status, this._hasValue = void 0 !== options.value, this._remaining = options.remaining, this._source = options.source, this._errors = options.errors }; Result.prototype.map = function (func) { return this._hasValue ? new Result({ value: func(this._value, this._source), status: this._status, remaining: this._remaining, source: this._source, errors: this._errors }) : this }, Result.prototype.changeRemaining = function (remaining) { return new Result({ value: this._value, status: this._status, remaining: remaining, source: this._source, errors: this._errors }) }, Result.prototype.isSuccess = function () { return "success" === this._status || "cut" === this._status }, Result.prototype.isFailure = function () { return "failure" === this._status }, Result.prototype.isError = function () { return "error" === this._status }, Result.prototype.isCut = function () { return "cut" === this._status }, Result.prototype.value = function () { return this._value }, Result.prototype.remaining = function () { return this._remaining }, Result.prototype.source = function () { return this._source }, Result.prototype.errors = function () { return this._errors } }, {}], 98: [function (require, module, exports) { function RegexTokeniser(rules) { function tokenise(input, description) { for (var source = new StringSource(input, description), index = 0, tokens = []; index < input.length;) { var result = readNextToken(input, index, source); index = result.endIndex, tokens.push(result.token) } return tokens.push(endToken(input, source)), tokens } function readNextToken(string, startIndex, source) { for (var i = 0; i < rules.length; i++) { var regex = rules[i].regex; regex.lastIndex = startIndex; var result = regex.exec(string); if (result) { var endIndex = startIndex + result[0].length; if (result.index === startIndex && endIndex > startIndex) { var value = result[1], token = new Token(rules[i].name, value, source.range(startIndex, endIndex)); return { token: token, endIndex: endIndex } } } } var endIndex = startIndex + 1, token = new Token("unrecognisedCharacter", string.substring(startIndex, endIndex), source.range(startIndex, endIndex)); return { token: token, endIndex: endIndex } } function endToken(input, source) { return new Token("end", null, source.range(input.length, input.length)) } return rules = rules.map(function (rule) { return { name: rule.name, regex: new RegExp(rule.regex.source, "g") } }), { tokenise: tokenise } } var Token = require("./Token"), StringSource = require("./StringSource"); exports.RegexTokeniser = RegexTokeniser }, { "./StringSource": 90, "./Token": 91 }], 99: [function (require, module, exports) { function noOpRule(input) { return results.success(null, input) } function describeTokenMismatch(input, expected) { var error, token = input.head(); return error = token ? errors.error({ expected: expected, actual: describeToken(token), location: token.source }) : errors.error({ expected: expected, actual: "end of tokens" }), results.failure([error], input) } var _ = require("underscore"), options = require("option"), results = require("./parsing-results"), errors = require("./errors"), lazyIterators = require("./lazy-iterators"); exports.token = function (tokenType, value) { var matchValue = void 0 !== value; return function (input) { var token = input.head(); if (!token || token.name !== tokenType || matchValue && token.value !== value) { var expected = describeToken({ name: tokenType, value: value }); return describeTokenMismatch(input, expected) } return results.success(token.value, input.tail(), token.source) } }, exports.tokenOfType = function (tokenType) { return exports.token(tokenType) }, exports.firstOf = function (name, parsers) { return _.isArray(parsers) || (parsers = Array.prototype.slice.call(arguments, 1)), function (input) { return lazyIterators.fromArray(parsers).map(function (parser) { return parser(input) }).filter(function (result) { return result.isSuccess() || result.isError() }).first() || describeTokenMismatch(input, name) } }, exports.then = function (parser, func) { return function (input) { var result = parser(input); return result.map || console.log(result), result.map(func) } }, exports.sequence = function () { function isCapturedRule(subRule) { return subRule.isCaptured } var parsers = Array.prototype.slice.call(arguments, 0), rule = function (input) { var result = _.foldl(parsers, function (memo, parser) { var result = memo.result, hasCut = memo.hasCut; if (!result.isSuccess()) return { result: result, hasCut: hasCut }; var subResult = parser(result.remaining()); if (subResult.isCut()) return { result: result, hasCut: !0 }; if (subResult.isSuccess()) { var values; values = parser.isCaptured ? result.value().withValue(parser, subResult.value()) : result.value(); var remaining = subResult.remaining(), source = input.to(remaining); return { result: results.success(values, remaining, source), hasCut: hasCut } } return hasCut ? { result: results.error(subResult.errors(), subResult.remaining()), hasCut: hasCut } : { result: subResult, hasCut: hasCut } }, { result: results.success(new SequenceValues, input), hasCut: !1 }).result, source = input.to(result.remaining()); return result.map(function (values) { return values.withValue(exports.sequence.source, source) }) }; return rule.head = function () { var firstCapture = _.find(parsers, isCapturedRule); return exports.then(rule, exports.sequence.extract(firstCapture)) }, rule.map = function (func) { return exports.then(rule, function (result) { return func.apply(this, result.toArray()) }) }, rule }; var SequenceValues = function (values, valuesArray) { this._values = values || {}, this._valuesArray = valuesArray || [] }; SequenceValues.prototype.withValue = function (rule, value) { if (rule.captureName && rule.captureName in this._values) throw new Error('Cannot add second value for capture "' + rule.captureName + '"'); var newValues = _.clone(this._values); newValues[rule.captureName] = value; var newValuesArray = this._valuesArray.concat([value]); return new SequenceValues(newValues, newValuesArray) }, SequenceValues.prototype.get = function (rule) { if (rule.captureName in this._values) return this._values[rule.captureName]; throw new Error('No value for capture "' + rule.captureName + '"') }, SequenceValues.prototype.toArray = function () { return this._valuesArray }, exports.sequence.capture = function (rule, name) { var captureRule = function () { return rule.apply(this, arguments) }; return captureRule.captureName = name, captureRule.isCaptured = !0, captureRule }, exports.sequence.extract = function (rule) { return function (result) { return result.get(rule) } }, exports.sequence.applyValues = function (func) { var rules = Array.prototype.slice.call(arguments, 1); return function (result) { var values = rules.map(function (rule) { return result.get(rule) }); return func.apply(this, values) } }, exports.sequence.source = { captureName: "☃source☃" }, exports.sequence.cut = function () { return function (input) { return results.cut(input) } }, exports.optional = function (rule) { return function (input) { var result = rule(input); return result.isSuccess() ? result.map(options.some) : result.isFailure() ? results.success(options.none, input) : result } }, exports.zeroOrMoreWithSeparator = function (rule, separator) { return repeatedWithSeparator(rule, separator, !1) }, exports.oneOrMoreWithSeparator = function (rule, separator) { return repeatedWithSeparator(rule, separator, !0) }; var zeroOrMore = exports.zeroOrMore = function (rule) { return function (input) { for (var result, values = []; (result = rule(input)) && result.isSuccess();)input = result.remaining(), values.push(result.value()); return result.isError() ? result : results.success(values, input) } }; exports.oneOrMore = function (rule) { return exports.oneOrMoreWithSeparator(rule, noOpRule) }; var repeatedWithSeparator = function (rule, separator, isOneOrMore) { return function (input) { var result = rule(input); if (result.isSuccess()) { var mainRule = exports.sequence.capture(rule, "main"), remainingRule = zeroOrMore(exports.then(exports.sequence(separator, mainRule), exports.sequence.extract(mainRule))), remainingResult = remainingRule(result.remaining()); return results.success([result.value()].concat(remainingResult.value()), remainingResult.remaining()) } return isOneOrMore || result.isError() ? result : results.success([], input) } }; exports.leftAssociative = function (leftRule, rightRule, func) { var rights; rights = func ? [{ func: func, rule: rightRule }] : rightRule, rights = rights.map(function (right) { return exports.then(right.rule, function (rightValue) { return function (leftValue, source) { return right.func(leftValue, rightValue, source) } }) }); var repeatedRule = exports.firstOf.apply(null, ["rules"].concat(rights)); return function (input) { var start = input, leftResult = leftRule(input); if (!leftResult.isSuccess()) return leftResult; for (var repeatedResult = repeatedRule(leftResult.remaining()); repeatedResult.isSuccess();) { var remaining = repeatedResult.remaining(), source = start.to(repeatedResult.remaining()), right = repeatedResult.value(); leftResult = results.success(right(leftResult.value(), source), remaining, source), repeatedResult = repeatedRule(leftResult.remaining()) } return repeatedResult.isError() ? repeatedResult : leftResult } }, exports.leftAssociative.firstOf = function () { return Array.prototype.slice.call(arguments, 0) }, exports.nonConsuming = function (rule) { return function (input) { return rule(input).changeRemaining(input) } }; var describeToken = function (token) { return token.value ? token.name + ' "' + token.value + '"' : token.name } }, { "./errors": 94, "./lazy-iterators": 95, "./parsing-results": 97, option: 100, underscore: 103 }], 100: [function (require, module, exports) { function callOrReturn(value) { return "function" == typeof value ? value() : value } exports.none = Object.create({ value: function () { throw new Error("Called value on none") }, isNone: function () { return !0 }, isSome: function () { return !1 }, map: function () { return exports.none }, flatMap: function () { return exports.none }, filter: function () { return exports.none }, toArray: function () { return [] }, orElse: callOrReturn, valueOrElse: callOrReturn }), exports.some = function (value) { return new Some(value) }; var Some = function (value) { this._value = value }; Some.prototype.value = function () { return this._value }, Some.prototype.isNone = function () { return !1 }, Some.prototype.isSome = function () { return !0 }, Some.prototype.map = function (func) { return new Some(func(this._value)) }, Some.prototype.flatMap = function (func) { return func(this._value) }, Some.prototype.filter = function (predicate) { return predicate(this._value) ? this : exports.none }, Some.prototype.toArray = function () { return [this._value] }, Some.prototype.orElse = function (value) { return this }, Some.prototype.valueOrElse = function (value) { return this._value }, exports.isOption = function (value) { return value === exports.none || value instanceof Some }, exports.fromNullable = function (value) { return null == value ? exports.none : new Some(value) } }, {}], 101: [function (require, module, exports) { (function (process) { function normalizeArray(parts, allowAboveRoot) { for (var up = 0, i = parts.length - 1; i >= 0; i--) { var last = parts[i]; "." === last ? parts.splice(i, 1) : ".." === last ? (parts.splice(i, 1), up++) : up && (parts.splice(i, 1), up--) } if (allowAboveRoot) for (; up--; up)parts.unshift(".."); return parts } function filter(xs, f) { if (xs.filter) return xs.filter(f); for (var res = [], i = 0; i < xs.length; i++)f(xs[i], i, xs) && res.push(xs[i]); return res } var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/, splitPath = function (filename) { return splitPathRe.exec(filename).slice(1) }; exports.resolve = function () { for (var resolvedPath = "", resolvedAbsolute = !1, i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = i >= 0 ? arguments[i] : process.cwd(); if ("string" != typeof path) throw new TypeError("Arguments to path.resolve must be strings"); path && (resolvedPath = path + "/" + resolvedPath, resolvedAbsolute = "/" === path.charAt(0)) } return resolvedPath = normalizeArray(filter(resolvedPath.split("/"), function (p) { return !!p }), !resolvedAbsolute).join("/"), (resolvedAbsolute ? "/" : "") + resolvedPath || "." }, exports.normalize = function (path) { var isAbsolute = exports.isAbsolute(path), trailingSlash = "/" === substr(path, -1); return path = normalizeArray(filter(path.split("/"), function (p) { return !!p }), !isAbsolute).join("/"), path || isAbsolute || (path = "."), path && trailingSlash && (path += "/"), (isAbsolute ? "/" : "") + path }, exports.isAbsolute = function (path) { return "/" === path.charAt(0) }, exports.join = function () { var paths = Array.prototype.slice.call(arguments, 0); return exports.normalize(filter(paths, function (p, index) { if ("string" != typeof p) throw new TypeError("Arguments to path.join must be strings"); return p }).join("/")) }, exports.relative = function (from, to) { function trim(arr) { for (var start = 0; start < arr.length && "" === arr[start]; start++); for (var end = arr.length - 1; end >= 0 && "" === arr[end]; end--); return start > end ? [] : arr.slice(start, end - start + 1) } from = exports.resolve(from).substr(1), to = exports.resolve(to).substr(1); for (var fromParts = trim(from.split("/")), toParts = trim(to.split("/")), length = Math.min(fromParts.length, toParts.length), samePartsLength = length, i = 0; length > i; i++)if (fromParts[i] !== toParts[i]) { samePartsLength = i; break } for (var outputParts = [], i = samePartsLength; i < fromParts.length; i++)outputParts.push(".."); return outputParts = outputParts.concat(toParts.slice(samePartsLength)), outputParts.join("/") }, exports.sep = "/", exports.delimiter = ":", exports.dirname = function (path) { var result = splitPath(path), root = result[0], dir = result[1]; return root || dir ? (dir && (dir = dir.substr(0, dir.length - 1)), root + dir) : "." }, exports.basename = function (path, ext) { var f = splitPath(path)[2]; return ext && f.substr(-1 * ext.length) === ext && (f = f.substr(0, f.length - ext.length)), f }, exports.extname = function (path) { return splitPath(path)[3] }; var substr = "b" === "ab".substr(-1) ? function (str, start, len) { return str.substr(start, len) } : function (str, start, len) { return 0 > start && (start = str.length + start), str.substr(start, len) } }).call(this, require("_process")) }, { _process: 102 }], 102: [function (require, module, exports) { function defaultSetTimout() { throw new Error("setTimeout has not been defined") } function defaultClearTimeout() { throw new Error("clearTimeout has not been defined") } function runTimeout(fun) { if (cachedSetTimeout === setTimeout) return setTimeout(fun, 0); if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) return cachedSetTimeout = setTimeout, setTimeout(fun, 0); try { return cachedSetTimeout(fun, 0) } catch (e) { try { return cachedSetTimeout.call(null, fun, 0) } catch (e) { return cachedSetTimeout.call(this, fun, 0) } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) return clearTimeout(marker); if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) return cachedClearTimeout = clearTimeout, clearTimeout(marker); try { return cachedClearTimeout(marker) } catch (e) { try { return cachedClearTimeout.call(null, marker) } catch (e) { return cachedClearTimeout.call(this, marker) } } } function cleanUpNextTick() { draining && currentQueue && (draining = !1, currentQueue.length ? queue = currentQueue.concat(queue) : queueIndex = -1, queue.length && drainQueue()) } function drainQueue() { if (!draining) { var timeout = runTimeout(cleanUpNextTick); draining = !0; for (var len = queue.length; len;) { for (currentQueue = queue, queue = []; ++queueIndex < len;)currentQueue && currentQueue[queueIndex].run(); queueIndex = -1, len = queue.length } currentQueue = null, draining = !1, runClearTimeout(timeout) } } function Item(fun, array) { this.fun = fun, this.array = array } function noop() { } var cachedSetTimeout, cachedClearTimeout, process = module.exports = {}; !function () { try { cachedSetTimeout = "function" == typeof setTimeout ? setTimeout : defaultSetTimout } catch (e) { cachedSetTimeout = defaultSetTimout } try { cachedClearTimeout = "function" == typeof clearTimeout ? clearTimeout : defaultClearTimeout } catch (e) { cachedClearTimeout = defaultClearTimeout } }(); var currentQueue, queue = [], draining = !1, queueIndex = -1; process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) for (var i = 1; i < arguments.length; i++)args[i - 1] = arguments[i]; queue.push(new Item(fun, args)), 1 !== queue.length || draining || runTimeout(drainQueue) }, Item.prototype.run = function () { this.fun.apply(null, this.array) }, process.title = "browser", process.browser = !0, process.env = {}, process.argv = [], process.version = "", process.versions = {}, process.on = noop, process.addListener = noop, process.once = noop, process.off = noop, process.removeListener = noop, process.removeAllListeners = noop, process.emit = noop, process.binding = function (name) { throw new Error("process.binding is not supported") }, process.cwd = function () { return "/" }, process.chdir = function (dir) { throw new Error("process.chdir is not supported") }, process.umask = function () { return 0 } }, {}], 103: [function (require, module, exports) { + }, { buffer: 78 }], 88: [function (require, module, exports) { exports.Parser = require("./lib/parser").Parser, exports.rules = require("./lib/rules"), exports.errors = require("./lib/errors"), exports.results = require("./lib/parsing-results"), exports.StringSource = require("./lib/StringSource"), exports.Token = require("./lib/Token"), exports.bottomUp = require("./lib/bottom-up"), exports.RegexTokeniser = require("./lib/regex-tokeniser").RegexTokeniser, exports.rule = function (ruleBuilder) { var rule; return function (input) { return rule || (rule = ruleBuilder()), rule(input) } } }, { "./lib/StringSource": 89, "./lib/Token": 90, "./lib/bottom-up": 92, "./lib/errors": 93, "./lib/parser": 95, "./lib/parsing-results": 96, "./lib/regex-tokeniser": 97, "./lib/rules": 98 }], 89: [function (require, module, exports) { var util = require("util"), StringSourceRange = (module.exports = function (string, description) { var self = { asString: function () { return string }, range: function (startIndex, endIndex) { return new StringSourceRange(string, description, startIndex, endIndex) } }; return self }, function (string, description, startIndex, endIndex) { this._string = string, this._description = description, this._startIndex = startIndex, this._endIndex = endIndex }); StringSourceRange.prototype.to = function (otherRange) { return new StringSourceRange(this._string, this._description, this._startIndex, otherRange._endIndex) }, StringSourceRange.prototype.describe = function () { var position = this._position(), description = this._description ? this._description + "\n" : ""; return util.format("%sLine number: %s\nCharacter number: %s", description, position.lineNumber, position.characterNumber) }, StringSourceRange.prototype.lineNumber = function () { return this._position().lineNumber }, StringSourceRange.prototype.characterNumber = function () { return this._position().characterNumber }, StringSourceRange.prototype._position = function () { for (var self = this, index = 0, nextNewLine = function () { return self._string.indexOf("\n", index) }, lineNumber = 1; -1 !== nextNewLine() && nextNewLine() < this._startIndex;)index = nextNewLine() + 1, lineNumber += 1; var characterNumber = this._startIndex - index + 1; return { lineNumber: lineNumber, characterNumber: characterNumber } } }, { util: 121 }], 90: [function (require, module, exports) { module.exports = function (name, value, source) { this.name = name, this.value = value, source && (this.source = source) } }, {}], 91: [function (require, module, exports) { var TokenIterator = module.exports = function (tokens, startIndex) { this._tokens = tokens, this._startIndex = startIndex || 0 }; TokenIterator.prototype.head = function () { return this._tokens[this._startIndex] }, TokenIterator.prototype.tail = function (startIndex) { return new TokenIterator(this._tokens, this._startIndex + 1) }, TokenIterator.prototype.toArray = function () { return this._tokens.slice(this._startIndex) }, TokenIterator.prototype.end = function () { return this._tokens[this._tokens.length - 1] }, TokenIterator.prototype.to = function (end) { var start = this.head().source, endToken = end.head() || end.end(); return start.to(endToken.source) } }, {}], 92: [function (require, module, exports) { function InfixRules(infixRules) { function untilExclusive(name) { return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name))) } function untilInclusive(name) { return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name) + 1)) } function ruleNames() { return infixRules.map(function (rule) { return rule.name }) } function apply(leftResult) { for (var currentResult, source; ;) { if (currentResult = applyToTokens(leftResult.remaining()), !currentResult.isSuccess()) return currentResult.isFailure() ? leftResult : currentResult; source = leftResult.source().to(currentResult.source()), leftResult = results.success(currentResult.value()(leftResult.value(), source), currentResult.remaining(), source) } } function applyToTokens(tokens) { return rules.firstOf("infix", infixRules.map(function (infix) { return infix.rule }))(tokens) } return { apply: apply, untilExclusive: untilExclusive, untilInclusive: untilInclusive } } var rules = require("./rules"), results = require("./parsing-results"); exports.parser = function (name, prefixRules, infixRuleBuilders) { function createInfixRule(infixRuleBuilder) { return { name: infixRuleBuilder.name, rule: lazyRule(infixRuleBuilder.ruleBuilder.bind(null, self)) } } function rule() { return createRule(infixRules) } function leftAssociative(name) { return createRule(infixRules.untilExclusive(name)) } function rightAssociative(name) { return createRule(infixRules.untilInclusive(name)) } function createRule(infixRules) { return apply.bind(null, infixRules) } function apply(infixRules, tokens) { var leftResult = prefixRule(tokens); return leftResult.isSuccess() ? infixRules.apply(leftResult) : leftResult } var self = { rule: rule, leftAssociative: leftAssociative, rightAssociative: rightAssociative }, infixRules = new InfixRules(infixRuleBuilders.map(createInfixRule)), prefixRule = rules.firstOf(name, prefixRules); return self }, exports.infix = function (name, ruleBuilder) { function map(func) { return exports.infix(name, function (parser) { var rule = ruleBuilder(parser); return function (tokens) { var result = rule(tokens); return result.map(function (right) { return function (left, source) { return func(left, right, source) } }) } }) } return { name: name, ruleBuilder: ruleBuilder, map: map } }; var lazyRule = function (ruleBuilder) { var rule; return function (input) { return rule || (rule = ruleBuilder()), rule(input) } } }, { "./parsing-results": 96, "./rules": 98 }], 93: [function (require, module, exports) { exports.error = function (options) { return new Error(options) }; var Error = function (options) { this.expected = options.expected, this.actual = options.actual, this._location = options.location }; Error.prototype.describe = function () { var locationDescription = this._location ? this._location.describe() + ":\n" : ""; return locationDescription + "Expected " + this.expected + "\nbut got " + this.actual }, Error.prototype.lineNumber = function () { return this._location.lineNumber() }, Error.prototype.characterNumber = function () { return this._location.characterNumber() } }, {}], 94: [function (require, module, exports) { var LazyIterator = (exports.fromArray = function (array) { var index = 0, hasNext = function () { return index < array.length }; return new LazyIterator({ hasNext: hasNext, next: function () { if (hasNext()) return array[index++]; throw new Error("No more elements") } }) }, function (iterator) { this._iterator = iterator }); LazyIterator.prototype.map = function (func) { var iterator = this._iterator; return new LazyIterator({ hasNext: function () { return iterator.hasNext() }, next: function () { return func(iterator.next()) } }) }, LazyIterator.prototype.filter = function (condition) { var next, iterator = this._iterator, moved = !1, hasNext = !1, moveIfNecessary = function () { if (!moved) for (moved = !0, hasNext = !1; iterator.hasNext() && !hasNext;)next = iterator.next(), hasNext = condition(next) }; return new LazyIterator({ hasNext: function () { return moveIfNecessary(), hasNext }, next: function () { moveIfNecessary(); var toReturn = next; return moved = !1, toReturn } }) }, LazyIterator.prototype.first = function () { var iterator = this._iterator; return this._iterator.hasNext() ? iterator.next() : null }, LazyIterator.prototype.toArray = function () { for (var result = []; this._iterator.hasNext();)result.push(this._iterator.next()); return result } }, {}], 95: [function (require, module, exports) { var TokenIterator = require("./TokenIterator"); exports.Parser = function (options) { var parseTokens = function (parser, tokens) { return parser(new TokenIterator(tokens)) }; return { parseTokens: parseTokens } } }, { "./TokenIterator": 91 }], 96: [function (require, module, exports) { module.exports = { failure: function (errors, remaining) { if (errors.length < 1) throw new Error("Failure must have errors"); return new Result({ status: "failure", remaining: remaining, errors: errors }) }, error: function (errors, remaining) { if (errors.length < 1) throw new Error("Failure must have errors"); return new Result({ status: "error", remaining: remaining, errors: errors }) }, success: function (value, remaining, source) { return new Result({ status: "success", value: value, source: source, remaining: remaining, errors: [] }) }, cut: function (remaining) { return new Result({ status: "cut", remaining: remaining, errors: [] }) } }; var Result = function (options) { this._value = options.value, this._status = options.status, this._hasValue = void 0 !== options.value, this._remaining = options.remaining, this._source = options.source, this._errors = options.errors }; Result.prototype.map = function (func) { return this._hasValue ? new Result({ value: func(this._value, this._source), status: this._status, remaining: this._remaining, source: this._source, errors: this._errors }) : this }, Result.prototype.changeRemaining = function (remaining) { return new Result({ value: this._value, status: this._status, remaining: remaining, source: this._source, errors: this._errors }) }, Result.prototype.isSuccess = function () { return "success" === this._status || "cut" === this._status }, Result.prototype.isFailure = function () { return "failure" === this._status }, Result.prototype.isError = function () { return "error" === this._status }, Result.prototype.isCut = function () { return "cut" === this._status }, Result.prototype.value = function () { return this._value }, Result.prototype.remaining = function () { return this._remaining }, Result.prototype.source = function () { return this._source }, Result.prototype.errors = function () { return this._errors } }, {}], 97: [function (require, module, exports) { + function RegexTokeniser(rules) { + function tokenise(input, description) { for (var source = new StringSource(input, description), index = 0, tokens = []; index < input.length;) { var result = readNextToken(input, index, source); index = result.endIndex, tokens.push(result.token) } return tokens.push(endToken(input, source)), tokens } function readNextToken(string, startIndex, source) { + for (var i = 0; i < rules.length; i++) { var regex = rules[i].regex; regex.lastIndex = startIndex; var result = regex.exec(string); if (result) { var endIndex = startIndex + result[0].length; if (result.index === startIndex && endIndex > startIndex) { var value = result[1], token = new Token(rules[i].name, value, source.range(startIndex, endIndex)); return { token: token, endIndex: endIndex } } } } var endIndex = startIndex + 1, token = new Token("unrecognisedCharacter", string.substring(startIndex, endIndex), source.range(startIndex, endIndex)); + return { token: token, endIndex: endIndex } + } function endToken(input, source) { return new Token("end", null, source.range(input.length, input.length)) } return rules = rules.map(function (rule) { return { name: rule.name, regex: new RegExp(rule.regex.source, "g") } }), { tokenise: tokenise } + } var Token = require("./Token"), StringSource = require("./StringSource"); exports.RegexTokeniser = RegexTokeniser + }, { "./StringSource": 89, "./Token": 90 }], 98: [function (require, module, exports) { function noOpRule(input) { return results.success(null, input) } function describeTokenMismatch(input, expected) { var error, token = input.head(); return error = token ? errors.error({ expected: expected, actual: describeToken(token), location: token.source }) : errors.error({ expected: expected, actual: "end of tokens" }), results.failure([error], input) } var _ = require("underscore"), options = require("option"), results = require("./parsing-results"), errors = require("./errors"), lazyIterators = require("./lazy-iterators"); exports.token = function (tokenType, value) { var matchValue = void 0 !== value; return function (input) { var token = input.head(); if (!token || token.name !== tokenType || matchValue && token.value !== value) { var expected = describeToken({ name: tokenType, value: value }); return describeTokenMismatch(input, expected) } return results.success(token.value, input.tail(), token.source) } }, exports.tokenOfType = function (tokenType) { return exports.token(tokenType) }, exports.firstOf = function (name, parsers) { return _.isArray(parsers) || (parsers = Array.prototype.slice.call(arguments, 1)), function (input) { return lazyIterators.fromArray(parsers).map(function (parser) { return parser(input) }).filter(function (result) { return result.isSuccess() || result.isError() }).first() || describeTokenMismatch(input, name) } }, exports.then = function (parser, func) { return function (input) { var result = parser(input); return result.map || console.log(result), result.map(func) } }, exports.sequence = function () { function isCapturedRule(subRule) { return subRule.isCaptured } var parsers = Array.prototype.slice.call(arguments, 0), rule = function (input) { var result = _.foldl(parsers, function (memo, parser) { var result = memo.result, hasCut = memo.hasCut; if (!result.isSuccess()) return { result: result, hasCut: hasCut }; var subResult = parser(result.remaining()); if (subResult.isCut()) return { result: result, hasCut: !0 }; if (subResult.isSuccess()) { var values; values = parser.isCaptured ? result.value().withValue(parser, subResult.value()) : result.value(); var remaining = subResult.remaining(), source = input.to(remaining); return { result: results.success(values, remaining, source), hasCut: hasCut } } return hasCut ? { result: results.error(subResult.errors(), subResult.remaining()), hasCut: hasCut } : { result: subResult, hasCut: hasCut } }, { result: results.success(new SequenceValues, input), hasCut: !1 }).result, source = input.to(result.remaining()); return result.map(function (values) { return values.withValue(exports.sequence.source, source) }) }; return rule.head = function () { var firstCapture = _.find(parsers, isCapturedRule); return exports.then(rule, exports.sequence.extract(firstCapture)) }, rule.map = function (func) { return exports.then(rule, function (result) { return func.apply(this, result.toArray()) }) }, rule }; var SequenceValues = function (values, valuesArray) { this._values = values || {}, this._valuesArray = valuesArray || [] }; SequenceValues.prototype.withValue = function (rule, value) { if (rule.captureName && rule.captureName in this._values) throw new Error('Cannot add second value for capture "' + rule.captureName + '"'); var newValues = _.clone(this._values); newValues[rule.captureName] = value; var newValuesArray = this._valuesArray.concat([value]); return new SequenceValues(newValues, newValuesArray) }, SequenceValues.prototype.get = function (rule) { if (rule.captureName in this._values) return this._values[rule.captureName]; throw new Error('No value for capture "' + rule.captureName + '"') }, SequenceValues.prototype.toArray = function () { return this._valuesArray }, exports.sequence.capture = function (rule, name) { var captureRule = function () { return rule.apply(this, arguments) }; return captureRule.captureName = name, captureRule.isCaptured = !0, captureRule }, exports.sequence.extract = function (rule) { return function (result) { return result.get(rule) } }, exports.sequence.applyValues = function (func) { var rules = Array.prototype.slice.call(arguments, 1); return function (result) { var values = rules.map(function (rule) { return result.get(rule) }); return func.apply(this, values) } }, exports.sequence.source = { captureName: "☃source☃" }, exports.sequence.cut = function () { return function (input) { return results.cut(input) } }, exports.optional = function (rule) { return function (input) { var result = rule(input); return result.isSuccess() ? result.map(options.some) : result.isFailure() ? results.success(options.none, input) : result } }, exports.zeroOrMoreWithSeparator = function (rule, separator) { return repeatedWithSeparator(rule, separator, !1) }, exports.oneOrMoreWithSeparator = function (rule, separator) { return repeatedWithSeparator(rule, separator, !0) }; var zeroOrMore = exports.zeroOrMore = function (rule) { return function (input) { for (var result, values = []; (result = rule(input)) && result.isSuccess();)input = result.remaining(), values.push(result.value()); return result.isError() ? result : results.success(values, input) } }; exports.oneOrMore = function (rule) { return exports.oneOrMoreWithSeparator(rule, noOpRule) }; var repeatedWithSeparator = function (rule, separator, isOneOrMore) { return function (input) { var result = rule(input); if (result.isSuccess()) { var mainRule = exports.sequence.capture(rule, "main"), remainingRule = zeroOrMore(exports.then(exports.sequence(separator, mainRule), exports.sequence.extract(mainRule))), remainingResult = remainingRule(result.remaining()); return results.success([result.value()].concat(remainingResult.value()), remainingResult.remaining()) } return isOneOrMore || result.isError() ? result : results.success([], input) } }; exports.leftAssociative = function (leftRule, rightRule, func) { var rights; rights = func ? [{ func: func, rule: rightRule }] : rightRule, rights = rights.map(function (right) { return exports.then(right.rule, function (rightValue) { return function (leftValue, source) { return right.func(leftValue, rightValue, source) } }) }); var repeatedRule = exports.firstOf.apply(null, ["rules"].concat(rights)); return function (input) { var start = input, leftResult = leftRule(input); if (!leftResult.isSuccess()) return leftResult; for (var repeatedResult = repeatedRule(leftResult.remaining()); repeatedResult.isSuccess();) { var remaining = repeatedResult.remaining(), source = start.to(repeatedResult.remaining()), right = repeatedResult.value(); leftResult = results.success(right(leftResult.value(), source), remaining, source), repeatedResult = repeatedRule(leftResult.remaining()) } return repeatedResult.isError() ? repeatedResult : leftResult } }, exports.leftAssociative.firstOf = function () { return Array.prototype.slice.call(arguments, 0) }, exports.nonConsuming = function (rule) { return function (input) { return rule(input).changeRemaining(input) } }; var describeToken = function (token) { return token.value ? token.name + ' "' + token.value + '"' : token.name } }, { "./errors": 93, "./lazy-iterators": 94, "./parsing-results": 96, option: 99, underscore: 117 }], 99: [function (require, module, exports) { function callOrReturn(value) { return "function" == typeof value ? value() : value } exports.none = Object.create({ value: function () { throw new Error("Called value on none") }, isNone: function () { return !0 }, isSome: function () { return !1 }, map: function () { return exports.none }, flatMap: function () { return exports.none }, filter: function () { return exports.none }, toArray: function () { return [] }, orElse: callOrReturn, valueOrElse: callOrReturn }), exports.some = function (value) { return new Some(value) }; var Some = function (value) { this._value = value }; Some.prototype.value = function () { return this._value }, Some.prototype.isNone = function () { return !1 }, Some.prototype.isSome = function () { return !0 }, Some.prototype.map = function (func) { return new Some(func(this._value)) }, Some.prototype.flatMap = function (func) { return func(this._value) }, Some.prototype.filter = function (predicate) { return predicate(this._value) ? this : exports.none }, Some.prototype.toArray = function () { return [this._value] }, Some.prototype.orElse = function (value) { return this }, Some.prototype.valueOrElse = function (value) { return this._value }, exports.isOption = function (value) { return value === exports.none || value instanceof Some }, exports.fromNullable = function (value) { return null == value ? exports.none : new Some(value) } }, {}], 100: [function (require, module, exports) { (function (process) { function normalizeArray(parts, allowAboveRoot) { for (var up = 0, i = parts.length - 1; i >= 0; i--) { var last = parts[i]; "." === last ? parts.splice(i, 1) : ".." === last ? (parts.splice(i, 1), up++) : up && (parts.splice(i, 1), up--) } if (allowAboveRoot) for (; up--; up)parts.unshift(".."); return parts } function filter(xs, f) { if (xs.filter) return xs.filter(f); for (var res = [], i = 0; i < xs.length; i++)f(xs[i], i, xs) && res.push(xs[i]); return res } var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/, splitPath = function (filename) { return splitPathRe.exec(filename).slice(1) }; exports.resolve = function () { for (var resolvedPath = "", resolvedAbsolute = !1, i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = i >= 0 ? arguments[i] : process.cwd(); if ("string" != typeof path) throw new TypeError("Arguments to path.resolve must be strings"); path && (resolvedPath = path + "/" + resolvedPath, resolvedAbsolute = "/" === path.charAt(0)) } return resolvedPath = normalizeArray(filter(resolvedPath.split("/"), function (p) { return !!p }), !resolvedAbsolute).join("/"), (resolvedAbsolute ? "/" : "") + resolvedPath || "." }, exports.normalize = function (path) { var isAbsolute = exports.isAbsolute(path), trailingSlash = "/" === substr(path, -1); return path = normalizeArray(filter(path.split("/"), function (p) { return !!p }), !isAbsolute).join("/"), path || isAbsolute || (path = "."), path && trailingSlash && (path += "/"), (isAbsolute ? "/" : "") + path }, exports.isAbsolute = function (path) { return "/" === path.charAt(0) }, exports.join = function () { var paths = Array.prototype.slice.call(arguments, 0); return exports.normalize(filter(paths, function (p, index) { if ("string" != typeof p) throw new TypeError("Arguments to path.join must be strings"); return p }).join("/")) }, exports.relative = function (from, to) { function trim(arr) { for (var start = 0; start < arr.length && "" === arr[start]; start++); for (var end = arr.length - 1; end >= 0 && "" === arr[end]; end--); return start > end ? [] : arr.slice(start, end - start + 1) } from = exports.resolve(from).substr(1), to = exports.resolve(to).substr(1); for (var fromParts = trim(from.split("/")), toParts = trim(to.split("/")), length = Math.min(fromParts.length, toParts.length), samePartsLength = length, i = 0; length > i; i++)if (fromParts[i] !== toParts[i]) { samePartsLength = i; break } for (var outputParts = [], i = samePartsLength; i < fromParts.length; i++)outputParts.push(".."); return outputParts = outputParts.concat(toParts.slice(samePartsLength)), outputParts.join("/") }, exports.sep = "/", exports.delimiter = ":", exports.dirname = function (path) { var result = splitPath(path), root = result[0], dir = result[1]; return root || dir ? (dir && (dir = dir.substr(0, dir.length - 1)), root + dir) : "." }, exports.basename = function (path, ext) { var f = splitPath(path)[2]; return ext && f.substr(-1 * ext.length) === ext && (f = f.substr(0, f.length - ext.length)), f }, exports.extname = function (path) { return splitPath(path)[3] }; var substr = "b" === "ab".substr(-1) ? function (str, start, len) { return str.substr(start, len) } : function (str, start, len) { return 0 > start && (start = str.length + start), str.substr(start, len) } }).call(this, require("_process")) }, { _process: 102 }], 101: [function (require, module, exports) { (function (process) { "use strict"; function nextTick(fn, arg1, arg2, arg3) { if ("function" != typeof fn) throw new TypeError('"callback" argument must be a function'); var args, i, len = arguments.length; switch (len) { case 0: case 1: return process.nextTick(fn); case 2: return process.nextTick(function () { fn.call(null, arg1) }); case 3: return process.nextTick(function () { fn.call(null, arg1, arg2) }); case 4: return process.nextTick(function () { fn.call(null, arg1, arg2, arg3) }); default: for (args = new Array(len - 1), i = 0; i < args.length;)args[i++] = arguments[i]; return process.nextTick(function () { fn.apply(null, args) }) } } !process.version || 0 === process.version.indexOf("v0.") || 0 === process.version.indexOf("v1.") && 0 !== process.version.indexOf("v1.8.") ? module.exports = nextTick : module.exports = process.nextTick }).call(this, require("_process")) }, { _process: 102 }], 102: [function (require, module, exports) { function defaultSetTimout() { throw new Error("setTimeout has not been defined") } function defaultClearTimeout() { throw new Error("clearTimeout has not been defined") } function runTimeout(fun) { if (cachedSetTimeout === setTimeout) return setTimeout(fun, 0); if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) return cachedSetTimeout = setTimeout, setTimeout(fun, 0); try { return cachedSetTimeout(fun, 0) } catch (e) { try { return cachedSetTimeout.call(null, fun, 0) } catch (e) { return cachedSetTimeout.call(this, fun, 0) } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) return clearTimeout(marker); if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) return cachedClearTimeout = clearTimeout, clearTimeout(marker); try { return cachedClearTimeout(marker) } catch (e) { try { return cachedClearTimeout.call(null, marker) } catch (e) { return cachedClearTimeout.call(this, marker) } } } function cleanUpNextTick() { draining && currentQueue && (draining = !1, currentQueue.length ? queue = currentQueue.concat(queue) : queueIndex = -1, queue.length && drainQueue()) } function drainQueue() { if (!draining) { var timeout = runTimeout(cleanUpNextTick); draining = !0; for (var len = queue.length; len;) { for (currentQueue = queue, queue = []; ++queueIndex < len;)currentQueue && currentQueue[queueIndex].run(); queueIndex = -1, len = queue.length } currentQueue = null, draining = !1, runClearTimeout(timeout) } } function Item(fun, array) { this.fun = fun, this.array = array } function noop() { } var cachedSetTimeout, cachedClearTimeout, process = module.exports = {}; !function () { try { cachedSetTimeout = "function" == typeof setTimeout ? setTimeout : defaultSetTimout } catch (e) { cachedSetTimeout = defaultSetTimout } try { cachedClearTimeout = "function" == typeof clearTimeout ? clearTimeout : defaultClearTimeout } catch (e) { cachedClearTimeout = defaultClearTimeout } }(); var currentQueue, queue = [], draining = !1, queueIndex = -1; process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) for (var i = 1; i < arguments.length; i++)args[i - 1] = arguments[i]; queue.push(new Item(fun, args)), 1 !== queue.length || draining || runTimeout(drainQueue) }, Item.prototype.run = function () { this.fun.apply(null, this.array) }, process.title = "browser", process.browser = !0, process.env = {}, process.argv = [], process.version = "", process.versions = {}, process.on = noop, process.addListener = noop, process.once = noop, process.off = noop, process.removeListener = noop, process.removeAllListeners = noop, process.emit = noop, process.binding = function (name) { throw new Error("process.binding is not supported") }, process.cwd = function () { return "/" }, process.chdir = function (dir) { throw new Error("process.chdir is not supported") }, process.umask = function () { return 0 } }, {}], 103: [function (require, module, exports) { module.exports = require("./lib/_stream_duplex.js") }, { "./lib/_stream_duplex.js": 104 }], 104: [function (require, module, exports) { "use strict"; function Duplex(options) { return this instanceof Duplex ? (Readable.call(this, options), Writable.call(this, options), options && options.readable === !1 && (this.readable = !1), options && options.writable === !1 && (this.writable = !1), this.allowHalfOpen = !0, options && options.allowHalfOpen === !1 && (this.allowHalfOpen = !1), void this.once("end", onend)) : new Duplex(options) } function onend() { this.allowHalfOpen || this._writableState.ended || processNextTick(onEndNT, this) } function onEndNT(self) { self.end() } var objectKeys = Object.keys || function (obj) { var keys = []; for (var key in obj) keys.push(key); return keys }; module.exports = Duplex; var processNextTick = require("process-nextick-args"), util = require("core-util-is"); util.inherits = require("inherits"); var Readable = require("./_stream_readable"), Writable = require("./_stream_writable"); util.inherits(Duplex, Readable); for (var keys = objectKeys(Writable.prototype), v = 0; v < keys.length; v++) { var method = keys[v]; Duplex.prototype[method] || (Duplex.prototype[method] = Writable.prototype[method]) } }, { "./_stream_readable": 106, "./_stream_writable": 108, "core-util-is": 79, inherits: 84, "process-nextick-args": 101 }], 105: [function (require, module, exports) { "use strict"; function PassThrough(options) { return this instanceof PassThrough ? void Transform.call(this, options) : new PassThrough(options) } module.exports = PassThrough; var Transform = require("./_stream_transform"), util = require("core-util-is"); util.inherits = require("inherits"), util.inherits(PassThrough, Transform), PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk) } }, { "./_stream_transform": 107, "core-util-is": 79, inherits: 84 }], 106: [function (require, module, exports) { (function (process) { "use strict"; function prependListener(emitter, event, fn) { return "function" == typeof emitter.prependListener ? emitter.prependListener(event, fn) : void (emitter._events && emitter._events[event] ? isArray(emitter._events[event]) ? emitter._events[event].unshift(fn) : emitter._events[event] = [fn, emitter._events[event]] : emitter.on(event, fn)) } function ReadableState(options, stream) { Duplex = Duplex || require("./_stream_duplex"), options = options || {}, this.objectMode = !!options.objectMode, stream instanceof Duplex && (this.objectMode = this.objectMode || !!options.readableObjectMode); var hwm = options.highWaterMark, defaultHwm = this.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : defaultHwm, this.highWaterMark = ~~this.highWaterMark, this.buffer = new BufferList, this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.defaultEncoding = options.defaultEncoding || "utf8", this.ranOut = !1, this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, options.encoding && (StringDecoder || (StringDecoder = require("string_decoder/").StringDecoder), this.decoder = new StringDecoder(options.encoding), this.encoding = options.encoding) } function Readable(options) { return Duplex = Duplex || require("./_stream_duplex"), this instanceof Readable ? (this._readableState = new ReadableState(options, this), this.readable = !0, options && "function" == typeof options.read && (this._read = options.read), void Stream.call(this)) : new Readable(options) } function readableAddChunk(stream, state, chunk, encoding, addToFront) { var er = chunkInvalid(state, chunk); if (er) stream.emit("error", er); else if (null === chunk) state.reading = !1, onEofChunk(stream, state); else if (state.objectMode || chunk && chunk.length > 0) if (state.ended && !addToFront) { var e = new Error("stream.push() after EOF"); stream.emit("error", e) } else if (state.endEmitted && addToFront) { var _e = new Error("stream.unshift() after end event"); stream.emit("error", _e) } else { var skipAdd; !state.decoder || addToFront || encoding || (chunk = state.decoder.write(chunk), skipAdd = !state.objectMode && 0 === chunk.length), addToFront || (state.reading = !1), skipAdd || (state.flowing && 0 === state.length && !state.sync ? (stream.emit("data", chunk), stream.read(0)) : (state.length += state.objectMode ? 1 : chunk.length, addToFront ? state.buffer.unshift(chunk) : state.buffer.push(chunk), state.needReadable && emitReadable(stream))), maybeReadMore(stream, state) } else addToFront || (state.reading = !1); return needMoreData(state) } function needMoreData(state) { return !state.ended && (state.needReadable || state.length < state.highWaterMark || 0 === state.length) } function computeNewHighWaterMark(n) { return n >= MAX_HWM ? n = MAX_HWM : (n--, n |= n >>> 1, n |= n >>> 2, n |= n >>> 4, n |= n >>> 8, n |= n >>> 16, n++), n } function howMuchToRead(n, state) { return 0 >= n || 0 === state.length && state.ended ? 0 : state.objectMode ? 1 : n !== n ? state.flowing && state.length ? state.buffer.head.data.length : state.length : (n > state.highWaterMark && (state.highWaterMark = computeNewHighWaterMark(n)), n <= state.length ? n : state.ended ? state.length : (state.needReadable = !0, 0)) } function chunkInvalid(state, chunk) { var er = null; return Buffer.isBuffer(chunk) || "string" == typeof chunk || null === chunk || void 0 === chunk || state.objectMode || (er = new TypeError("Invalid non-string/buffer chunk")), er } function onEofChunk(stream, state) { if (!state.ended) { if (state.decoder) { var chunk = state.decoder.end(); chunk && chunk.length && (state.buffer.push(chunk), state.length += state.objectMode ? 1 : chunk.length) } state.ended = !0, emitReadable(stream) } } function emitReadable(stream) { var state = stream._readableState; state.needReadable = !1, state.emittedReadable || (debug("emitReadable", state.flowing), state.emittedReadable = !0, state.sync ? processNextTick(emitReadable_, stream) : emitReadable_(stream)) } function emitReadable_(stream) { debug("emit readable"), stream.emit("readable"), flow(stream) } function maybeReadMore(stream, state) { state.readingMore || (state.readingMore = !0, processNextTick(maybeReadMore_, stream, state)) } function maybeReadMore_(stream, state) { for (var len = state.length; !state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark && (debug("maybeReadMore read 0"), stream.read(0), len !== state.length);)len = state.length; state.readingMore = !1 } function pipeOnDrain(src) { return function () { var state = src._readableState; debug("pipeOnDrain", state.awaitDrain), state.awaitDrain && state.awaitDrain--, 0 === state.awaitDrain && EElistenerCount(src, "data") && (state.flowing = !0, flow(src)) } } function nReadingNextTick(self) { debug("readable nexttick read 0"), self.read(0) } function resume(stream, state) { state.resumeScheduled || (state.resumeScheduled = !0, processNextTick(resume_, stream, state)) } function resume_(stream, state) { state.reading || (debug("resume read 0"), stream.read(0)), state.resumeScheduled = !1, state.awaitDrain = 0, stream.emit("resume"), flow(stream), state.flowing && !state.reading && stream.read(0) } function flow(stream) { var state = stream._readableState; for (debug("flow", state.flowing); state.flowing && null !== stream.read();); } function fromList(n, state) { if (0 === state.length) return null; var ret; return state.objectMode ? ret = state.buffer.shift() : !n || n >= state.length ? (ret = state.decoder ? state.buffer.join("") : 1 === state.buffer.length ? state.buffer.head.data : state.buffer.concat(state.length), state.buffer.clear()) : ret = fromListPartial(n, state.buffer, state.decoder), ret } function fromListPartial(n, list, hasStrings) { var ret; return n < list.head.data.length ? (ret = list.head.data.slice(0, n), list.head.data = list.head.data.slice(n)) : ret = n === list.head.data.length ? list.shift() : hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list), ret } function copyFromBufferString(n, list) { var p = list.head, c = 1, ret = p.data; for (n -= ret.length; p = p.next;) { var str = p.data, nb = n > str.length ? str.length : n; if (ret += nb === str.length ? str : str.slice(0, n), n -= nb, 0 === n) { nb === str.length ? (++c, p.next ? list.head = p.next : list.head = list.tail = null) : (list.head = p, p.data = str.slice(nb)); break } ++c } return list.length -= c, ret } function copyFromBuffer(n, list) { var ret = bufferShim.allocUnsafe(n), p = list.head, c = 1; for (p.data.copy(ret), n -= p.data.length; p = p.next;) { var buf = p.data, nb = n > buf.length ? buf.length : n; if (buf.copy(ret, ret.length - n, 0, nb), n -= nb, 0 === n) { nb === buf.length ? (++c, p.next ? list.head = p.next : list.head = list.tail = null) : (list.head = p, p.data = buf.slice(nb)); break } ++c } return list.length -= c, ret } function endReadable(stream) { var state = stream._readableState; if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); state.endEmitted || (state.ended = !0, processNextTick(endReadableNT, state, stream)) } function endReadableNT(state, stream) { state.endEmitted || 0 !== state.length || (state.endEmitted = !0, stream.readable = !1, stream.emit("end")) } function forEach(xs, f) { for (var i = 0, l = xs.length; l > i; i++)f(xs[i], i) } function indexOf(xs, x) { for (var i = 0, l = xs.length; l > i; i++)if (xs[i] === x) return i; return -1 } module.exports = Readable; var Duplex, processNextTick = require("process-nextick-args"), isArray = require("isarray"); Readable.ReadableState = ReadableState; var Stream, EElistenerCount = (require("events").EventEmitter, function (emitter, type) { return emitter.listeners(type).length }); !function () { try { Stream = require("stream") } catch (_) { } finally { Stream || (Stream = require("events").EventEmitter) } }(); var Buffer = require("buffer").Buffer, bufferShim = require("buffer-shims"), util = require("core-util-is"); util.inherits = require("inherits"); var debugUtil = require("util"), debug = void 0; debug = debugUtil && debugUtil.debuglog ? debugUtil.debuglog("stream") : function () { }; var StringDecoder, BufferList = require("./internal/streams/BufferList"); util.inherits(Readable, Stream), Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; return state.objectMode || "string" != typeof chunk || (encoding = encoding || state.defaultEncoding, encoding !== state.encoding && (chunk = bufferShim.from(chunk, encoding), encoding = "")), readableAddChunk(this, state, chunk, encoding, !1) }, Readable.prototype.unshift = function (chunk) { var state = this._readableState; return readableAddChunk(this, state, chunk, "", !0) }, Readable.prototype.isPaused = function () { return this._readableState.flowing === !1 }, Readable.prototype.setEncoding = function (enc) { return StringDecoder || (StringDecoder = require("string_decoder/").StringDecoder), this._readableState.decoder = new StringDecoder(enc), this._readableState.encoding = enc, this }; var MAX_HWM = 8388608; Readable.prototype.read = function (n) { debug("read", n), n = parseInt(n, 10); var state = this._readableState, nOrig = n; if (0 !== n && (state.emittedReadable = !1), 0 === n && state.needReadable && (state.length >= state.highWaterMark || state.ended)) return debug("read: emitReadable", state.length, state.ended), 0 === state.length && state.ended ? endReadable(this) : emitReadable(this), null; if (n = howMuchToRead(n, state), 0 === n && state.ended) return 0 === state.length && endReadable(this), null; var doRead = state.needReadable; debug("need readable", doRead), (0 === state.length || state.length - n < state.highWaterMark) && (doRead = !0, debug("length less than watermark", doRead)), state.ended || state.reading ? (doRead = !1, debug("reading or ended", doRead)) : doRead && (debug("do read"), state.reading = !0, state.sync = !0, 0 === state.length && (state.needReadable = !0), this._read(state.highWaterMark), state.sync = !1, state.reading || (n = howMuchToRead(nOrig, state))); var ret; return ret = n > 0 ? fromList(n, state) : null, null === ret ? (state.needReadable = !0, n = 0) : state.length -= n, 0 === state.length && (state.ended || (state.needReadable = !0), nOrig !== n && state.ended && endReadable(this)), null !== ret && this.emit("data", ret), ret }, Readable.prototype._read = function (n) { this.emit("error", new Error("_read() is not implemented")) }, Readable.prototype.pipe = function (dest, pipeOpts) { function onunpipe(readable) { debug("onunpipe"), readable === src && cleanup() } function onend() { debug("onend"), dest.end() } function cleanup() { debug("cleanup"), dest.removeListener("close", onclose), dest.removeListener("finish", onfinish), dest.removeListener("drain", ondrain), dest.removeListener("error", onerror), dest.removeListener("unpipe", onunpipe), src.removeListener("end", onend), src.removeListener("end", cleanup), src.removeListener("data", ondata), cleanedUp = !0, !state.awaitDrain || dest._writableState && !dest._writableState.needDrain || ondrain() } function ondata(chunk) { debug("ondata"), increasedAwaitDrain = !1; var ret = dest.write(chunk); !1 !== ret || increasedAwaitDrain || ((1 === state.pipesCount && state.pipes === dest || state.pipesCount > 1 && -1 !== indexOf(state.pipes, dest)) && !cleanedUp && (debug("false write response, pause", src._readableState.awaitDrain), src._readableState.awaitDrain++, increasedAwaitDrain = !0), src.pause()) } function onerror(er) { debug("onerror", er), unpipe(), dest.removeListener("error", onerror), 0 === EElistenerCount(dest, "error") && dest.emit("error", er) } function onclose() { dest.removeListener("finish", onfinish), unpipe() } function onfinish() { debug("onfinish"), dest.removeListener("close", onclose), unpipe() } function unpipe() { debug("unpipe"), src.unpipe(dest) } var src = this, state = this._readableState; switch (state.pipesCount) { case 0: state.pipes = dest; break; case 1: state.pipes = [state.pipes, dest]; break; default: state.pipes.push(dest) }state.pipesCount += 1, debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== !1) && dest !== process.stdout && dest !== process.stderr, endFn = doEnd ? onend : cleanup; state.endEmitted ? processNextTick(endFn) : src.once("end", endFn), dest.on("unpipe", onunpipe); var ondrain = pipeOnDrain(src); dest.on("drain", ondrain); var cleanedUp = !1, increasedAwaitDrain = !1; return src.on("data", ondata), prependListener(dest, "error", onerror), dest.once("close", onclose), dest.once("finish", onfinish), dest.emit("pipe", src), state.flowing || (debug("pipe resume"), src.resume()), dest }, Readable.prototype.unpipe = function (dest) { var state = this._readableState; if (0 === state.pipesCount) return this; if (1 === state.pipesCount) return dest && dest !== state.pipes ? this : (dest || (dest = state.pipes), state.pipes = null, state.pipesCount = 0, state.flowing = !1, dest && dest.emit("unpipe", this), this); if (!dest) { var dests = state.pipes, len = state.pipesCount; state.pipes = null, state.pipesCount = 0, state.flowing = !1; for (var i = 0; len > i; i++)dests[i].emit("unpipe", this); return this } var index = indexOf(state.pipes, dest); return -1 === index ? this : (state.pipes.splice(index, 1), state.pipesCount -= 1, 1 === state.pipesCount && (state.pipes = state.pipes[0]), dest.emit("unpipe", this), this) }, Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); if ("data" === ev) this._readableState.flowing !== !1 && this.resume(); else if ("readable" === ev) { var state = this._readableState; state.endEmitted || state.readableListening || (state.readableListening = state.needReadable = !0, state.emittedReadable = !1, state.reading ? state.length && emitReadable(this, state) : processNextTick(nReadingNextTick, this)) } return res }, Readable.prototype.addListener = Readable.prototype.on, Readable.prototype.resume = function () { var state = this._readableState; return state.flowing || (debug("resume"), state.flowing = !0, resume(this, state)), this }, Readable.prototype.pause = function () { return debug("call pause flowing=%j", this._readableState.flowing), !1 !== this._readableState.flowing && (debug("pause"), this._readableState.flowing = !1, this.emit("pause")), this }, Readable.prototype.wrap = function (stream) { var state = this._readableState, paused = !1, self = this; stream.on("end", function () { if (debug("wrapped end"), state.decoder && !state.ended) { var chunk = state.decoder.end(); chunk && chunk.length && self.push(chunk) } self.push(null) }), stream.on("data", function (chunk) { if (debug("wrapped data"), state.decoder && (chunk = state.decoder.write(chunk)), (!state.objectMode || null !== chunk && void 0 !== chunk) && (state.objectMode || chunk && chunk.length)) { var ret = self.push(chunk); ret || (paused = !0, stream.pause()) } }); for (var i in stream) void 0 === this[i] && "function" == typeof stream[i] && (this[i] = function (method) { return function () { return stream[method].apply(stream, arguments) } }(i)); var events = ["error", "close", "destroy", "pause", "resume"]; return forEach(events, function (ev) { stream.on(ev, self.emit.bind(self, ev)) }), self._read = function (n) { debug("wrapped _read", n), paused && (paused = !1, stream.resume()) }, self }, Readable._fromList = fromList }).call(this, require("_process")) }, { "./_stream_duplex": 104, "./internal/streams/BufferList": 109, _process: 102, buffer: 78, "buffer-shims": 77, "core-util-is": 79, events: 82, inherits: 84, isarray: 86, "process-nextick-args": 101, "string_decoder/": 116, util: 76 }], 107: [function (require, module, exports) { + "use strict"; function TransformState(stream) { this.afterTransform = function (er, data) { return afterTransform(stream, er, data) }, this.needTransform = !1, this.transforming = !1, this.writecb = null, this.writechunk = null, this.writeencoding = null } function afterTransform(stream, er, data) { var ts = stream._transformState; ts.transforming = !1; var cb = ts.writecb; if (!cb) return stream.emit("error", new Error("no writecb in Transform class")); ts.writechunk = null, ts.writecb = null, null !== data && void 0 !== data && stream.push(data), cb(er); var rs = stream._readableState; rs.reading = !1, (rs.needReadable || rs.length < rs.highWaterMark) && stream._read(rs.highWaterMark) } function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options), this._transformState = new TransformState(this); var stream = this; this._readableState.needReadable = !0, this._readableState.sync = !1, options && ("function" == typeof options.transform && (this._transform = options.transform), "function" == typeof options.flush && (this._flush = options.flush)), this.once("prefinish", function () { "function" == typeof this._flush ? this._flush(function (er, data) { done(stream, er, data) }) : done(stream) }) } function done(stream, er, data) { + if (er) return stream.emit("error", er); null !== data && void 0 !== data && stream.push(data); var ws = stream._writableState, ts = stream._transformState; + if (ws.length) throw new Error("Calling transform done when ws.length != 0"); if (ts.transforming) throw new Error("Calling transform done when still transforming"); return stream.push(null) + } module.exports = Transform; var Duplex = require("./_stream_duplex"), util = require("core-util-is"); util.inherits = require("inherits"), util.inherits(Transform, Duplex), Transform.prototype.push = function (chunk, encoding) { return this._transformState.needTransform = !1, Duplex.prototype.push.call(this, chunk, encoding) }, Transform.prototype._transform = function (chunk, encoding, cb) { throw new Error("_transform() is not implemented") }, Transform.prototype._write = function (chunk, encoding, cb) { var ts = this._transformState; if (ts.writecb = cb, ts.writechunk = chunk, ts.writeencoding = encoding, !ts.transforming) { var rs = this._readableState; (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) && this._read(rs.highWaterMark) } }, Transform.prototype._read = function (n) { var ts = this._transformState; null !== ts.writechunk && ts.writecb && !ts.transforming ? (ts.transforming = !0, this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform)) : ts.needTransform = !0 } + }, { "./_stream_duplex": 104, "core-util-is": 79, inherits: 84 }], 108: [function (require, module, exports) { (function (process) { "use strict"; function nop() { } function WriteReq(chunk, encoding, cb) { this.chunk = chunk, this.encoding = encoding, this.callback = cb, this.next = null } function WritableState(options, stream) { Duplex = Duplex || require("./_stream_duplex"), options = options || {}, this.objectMode = !!options.objectMode, stream instanceof Duplex && (this.objectMode = this.objectMode || !!options.writableObjectMode); var hwm = options.highWaterMark, defaultHwm = this.objectMode ? 16 : 16384; this.highWaterMark = hwm || 0 === hwm ? hwm : defaultHwm, this.highWaterMark = ~~this.highWaterMark, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1; var noDecode = options.decodeStrings === !1; this.decodeStrings = !noDecode, this.defaultEncoding = options.defaultEncoding || "utf8", this.length = 0, this.writing = !1, this.corked = 0, this.sync = !0, this.bufferProcessing = !1, this.onwrite = function (er) { onwrite(stream, er) }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = !1, this.errorEmitted = !1, this.bufferedRequestCount = 0, this.corkedRequestsFree = new CorkedRequest(this) } function Writable(options) { return Duplex = Duplex || require("./_stream_duplex"), realHasInstance.call(Writable, this) || this instanceof Duplex ? (this._writableState = new WritableState(options, this), this.writable = !0, options && ("function" == typeof options.write && (this._write = options.write), "function" == typeof options.writev && (this._writev = options.writev)), void Stream.call(this)) : new Writable(options) } function writeAfterEnd(stream, cb) { var er = new Error("write after end"); stream.emit("error", er), processNextTick(cb, er) } function validChunk(stream, state, chunk, cb) { var valid = !0, er = !1; return null === chunk ? er = new TypeError("May not write null values to stream") : "string" == typeof chunk || void 0 === chunk || state.objectMode || (er = new TypeError("Invalid non-string/buffer chunk")), er && (stream.emit("error", er), processNextTick(cb, er), valid = !1), valid } function decodeChunk(state, chunk, encoding) { return state.objectMode || state.decodeStrings === !1 || "string" != typeof chunk || (chunk = bufferShim.from(chunk, encoding)), chunk } function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { isBuf || (chunk = decodeChunk(state, chunk, encoding), Buffer.isBuffer(chunk) && (encoding = "buffer")); var len = state.objectMode ? 1 : chunk.length; state.length += len; var ret = state.length < state.highWaterMark; if (ret || (state.needDrain = !0), state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = new WriteReq(chunk, encoding, cb), last ? last.next = state.lastBufferedRequest : state.bufferedRequest = state.lastBufferedRequest, state.bufferedRequestCount += 1 } else doWrite(stream, state, !1, len, chunk, encoding, cb); return ret } function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len, state.writecb = cb, state.writing = !0, state.sync = !0, writev ? stream._writev(chunk, state.onwrite) : stream._write(chunk, encoding, state.onwrite), state.sync = !1 } function onwriteError(stream, state, sync, er, cb) { --state.pendingcb, sync ? processNextTick(cb, er) : cb(er), stream._writableState.errorEmitted = !0, stream.emit("error", er) } function onwriteStateUpdate(state) { state.writing = !1, state.writecb = null, state.length -= state.writelen, state.writelen = 0 } function onwrite(stream, er) { var state = stream._writableState, sync = state.sync, cb = state.writecb; if (onwriteStateUpdate(state), er) onwriteError(stream, state, sync, er, cb); else { var finished = needFinish(state); finished || state.corked || state.bufferProcessing || !state.bufferedRequest || clearBuffer(stream, state), sync ? asyncWrite(afterWrite, stream, state, finished, cb) : afterWrite(stream, state, finished, cb) } } function afterWrite(stream, state, finished, cb) { finished || onwriteDrain(stream, state), state.pendingcb--, cb(), finishMaybe(stream, state) } function onwriteDrain(stream, state) { 0 === state.length && state.needDrain && (state.needDrain = !1, stream.emit("drain")) } function clearBuffer(stream, state) { state.bufferProcessing = !0; var entry = state.bufferedRequest; if (stream._writev && entry && entry.next) { var l = state.bufferedRequestCount, buffer = new Array(l), holder = state.corkedRequestsFree; holder.entry = entry; for (var count = 0; entry;)buffer[count] = entry, entry = entry.next, count += 1; doWrite(stream, state, !0, state.length, buffer, "", holder.finish), state.pendingcb++, state.lastBufferedRequest = null, holder.next ? (state.corkedRequestsFree = holder.next, holder.next = null) : state.corkedRequestsFree = new CorkedRequest(state) } else { for (; entry;) { var chunk = entry.chunk, encoding = entry.encoding, cb = entry.callback, len = state.objectMode ? 1 : chunk.length; if (doWrite(stream, state, !1, len, chunk, encoding, cb), entry = entry.next, state.writing) break } null === entry && (state.lastBufferedRequest = null) } state.bufferedRequestCount = 0, state.bufferedRequest = entry, state.bufferProcessing = !1 } function needFinish(state) { return state.ending && 0 === state.length && null === state.bufferedRequest && !state.finished && !state.writing } function prefinish(stream, state) { state.prefinished || (state.prefinished = !0, stream.emit("prefinish")) } function finishMaybe(stream, state) { var need = needFinish(state); return need && (0 === state.pendingcb ? (prefinish(stream, state), state.finished = !0, stream.emit("finish")) : prefinish(stream, state)), need } function endWritable(stream, state, cb) { state.ending = !0, finishMaybe(stream, state), cb && (state.finished ? processNextTick(cb) : stream.once("finish", cb)), state.ended = !0, stream.writable = !1 } function CorkedRequest(state) { var _this = this; this.next = null, this.entry = null, this.finish = function (err) { var entry = _this.entry; for (_this.entry = null; entry;) { var cb = entry.callback; state.pendingcb--, cb(err), entry = entry.next } state.corkedRequestsFree ? state.corkedRequestsFree.next = _this : state.corkedRequestsFree = _this } } module.exports = Writable; var Duplex, processNextTick = require("process-nextick-args"), asyncWrite = !process.browser && ["v0.10", "v0.9."].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; Writable.WritableState = WritableState; var util = require("core-util-is"); util.inherits = require("inherits"); var Stream, internalUtil = { deprecate: require("util-deprecate") }; !function () { try { Stream = require("stream") } catch (_) { } finally { Stream || (Stream = require("events").EventEmitter) } }(); var Buffer = require("buffer").Buffer, bufferShim = require("buffer-shims"); util.inherits(Writable, Stream), WritableState.prototype.getBuffer = function () { for (var current = this.bufferedRequest, out = []; current;)out.push(current), current = current.next; return out }, function () { try { Object.defineProperty(WritableState.prototype, "buffer", { get: internalUtil.deprecate(function () { return this.getBuffer() }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.") }) } catch (_) { } }(); var realHasInstance; "function" == typeof Symbol && Symbol.hasInstance && "function" == typeof Function.prototype[Symbol.hasInstance] ? (realHasInstance = Function.prototype[Symbol.hasInstance], Object.defineProperty(Writable, Symbol.hasInstance, { value: function (object) { return realHasInstance.call(this, object) ? !0 : object && object._writableState instanceof WritableState } })) : realHasInstance = function (object) { return object instanceof this }, Writable.prototype.pipe = function () { this.emit("error", new Error("Cannot pipe, not readable")) }, Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState, ret = !1, isBuf = Buffer.isBuffer(chunk); return "function" == typeof encoding && (cb = encoding, encoding = null), isBuf ? encoding = "buffer" : encoding || (encoding = state.defaultEncoding), "function" != typeof cb && (cb = nop), state.ended ? writeAfterEnd(this, cb) : (isBuf || validChunk(this, state, chunk, cb)) && (state.pendingcb++, ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb)), ret }, Writable.prototype.cork = function () { var state = this._writableState; state.corked++ }, Writable.prototype.uncork = function () { var state = this._writableState; state.corked && (state.corked--, state.writing || state.corked || state.finished || state.bufferProcessing || !state.bufferedRequest || clearBuffer(this, state)) }, Writable.prototype.setDefaultEncoding = function (encoding) { if ("string" == typeof encoding && (encoding = encoding.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1)) throw new TypeError("Unknown encoding: " + encoding); return this._writableState.defaultEncoding = encoding, this }, Writable.prototype._write = function (chunk, encoding, cb) { cb(new Error("_write() is not implemented")) }, Writable.prototype._writev = null, Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; "function" == typeof chunk ? (cb = chunk, chunk = null, encoding = null) : "function" == typeof encoding && (cb = encoding, encoding = null), null !== chunk && void 0 !== chunk && this.write(chunk, encoding), state.corked && (state.corked = 1, this.uncork()), state.ending || state.finished || endWritable(this, state, cb) } }).call(this, require("_process")) }, { "./_stream_duplex": 104, _process: 102, buffer: 78, "buffer-shims": 77, "core-util-is": 79, events: 82, inherits: 84, "process-nextick-args": 101, "util-deprecate": 118 }], 109: [function (require, module, exports) { "use strict"; function BufferList() { this.head = null, this.tail = null, this.length = 0 } var bufferShim = (require("buffer").Buffer, require("buffer-shims")); module.exports = BufferList, BufferList.prototype.push = function (v) { var entry = { data: v, next: null }; this.length > 0 ? this.tail.next = entry : this.head = entry, this.tail = entry, ++this.length }, BufferList.prototype.unshift = function (v) { var entry = { data: v, next: this.head }; 0 === this.length && (this.tail = entry), this.head = entry, ++this.length }, BufferList.prototype.shift = function () { if (0 !== this.length) { var ret = this.head.data; return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, ret } }, BufferList.prototype.clear = function () { this.head = this.tail = null, this.length = 0 }, BufferList.prototype.join = function (s) { if (0 === this.length) return ""; for (var p = this.head, ret = "" + p.data; p = p.next;)ret += s + p.data; return ret }, BufferList.prototype.concat = function (n) { if (0 === this.length) return bufferShim.alloc(0); if (1 === this.length) return this.head.data; for (var ret = bufferShim.allocUnsafe(n >>> 0), p = this.head, i = 0; p;)p.data.copy(ret, i), i += p.data.length, p = p.next; return ret } }, { buffer: 78, "buffer-shims": 77 }], 110: [function (require, module, exports) { module.exports = require("./lib/_stream_passthrough.js") }, { "./lib/_stream_passthrough.js": 105 }], 111: [function (require, module, exports) { (function (process) { var Stream = function () { try { return require("stream") } catch (_) { } }(); exports = module.exports = require("./lib/_stream_readable.js"), exports.Stream = Stream || exports, exports.Readable = exports, exports.Writable = require("./lib/_stream_writable.js"), exports.Duplex = require("./lib/_stream_duplex.js"), exports.Transform = require("./lib/_stream_transform.js"), exports.PassThrough = require("./lib/_stream_passthrough.js"), !process.browser && "disable" === process.env.READABLE_STREAM && Stream && (module.exports = Stream) }).call(this, require("_process")) }, { "./lib/_stream_duplex.js": 104, "./lib/_stream_passthrough.js": 105, "./lib/_stream_readable.js": 106, "./lib/_stream_transform.js": 107, "./lib/_stream_writable.js": 108, _process: 102 }], 112: [function (require, module, exports) { module.exports = require("./lib/_stream_transform.js") }, { "./lib/_stream_transform.js": 107 }], 113: [function (require, module, exports) { module.exports = require("./lib/_stream_writable.js") }, { "./lib/_stream_writable.js": 108 }], 114: [function (require, module, exports) { + (function (Buffer) { + !function (sax) { + function SAXParser(strict, opt) { if (!(this instanceof SAXParser)) return new SAXParser(strict, opt); var parser = this; clearBuffers(parser), parser.q = parser.c = "", parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH, parser.opt = opt || {}, parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags, parser.looseCase = parser.opt.lowercase ? "toLowerCase" : "toUpperCase", parser.tags = [], parser.closed = parser.closedRoot = parser.sawRoot = !1, parser.tag = parser.error = null, parser.strict = !!strict, parser.noscript = !(!strict && !parser.opt.noscript), parser.state = S.BEGIN, parser.strictEntities = parser.opt.strictEntities, parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES), parser.attribList = [], parser.opt.xmlns && (parser.ns = Object.create(rootNS)), parser.trackPosition = parser.opt.position !== !1, parser.trackPosition && (parser.position = parser.line = parser.column = 0), emit(parser, "onready") } function checkBufferLength(parser) { for (var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10), maxActual = 0, i = 0, l = buffers.length; l > i; i++) { var len = parser[buffers[i]].length; if (len > maxAllowed) switch (buffers[i]) { case "textNode": closeText(parser); break; case "cdata": emitNode(parser, "oncdata", parser.cdata), parser.cdata = ""; break; case "script": emitNode(parser, "onscript", parser.script), parser.script = ""; break; default: error(parser, "Max buffer length exceeded: " + buffers[i]) }maxActual = Math.max(maxActual, len) } var m = sax.MAX_BUFFER_LENGTH - maxActual; parser.bufferCheckPosition = m + parser.position } function clearBuffers(parser) { for (var i = 0, l = buffers.length; l > i; i++)parser[buffers[i]] = "" } function flushBuffers(parser) { closeText(parser), "" !== parser.cdata && (emitNode(parser, "oncdata", parser.cdata), parser.cdata = ""), "" !== parser.script && (emitNode(parser, "onscript", parser.script), parser.script = "") } function createStream(strict, opt) { return new SAXStream(strict, opt) } function SAXStream(strict, opt) { if (!(this instanceof SAXStream)) return new SAXStream(strict, opt); Stream.apply(this), this._parser = new SAXParser(strict, opt), this.writable = !0, this.readable = !0; var me = this; this._parser.onend = function () { me.emit("end") }, this._parser.onerror = function (er) { me.emit("error", er), me._parser.error = null }, this._decoder = null, streamWraps.forEach(function (ev) { Object.defineProperty(me, "on" + ev, { get: function () { return me._parser["on" + ev] }, set: function (h) { return h ? void me.on(ev, h) : (me.removeAllListeners(ev), me._parser["on" + ev] = h, h) }, enumerable: !0, configurable: !1 }) }) } function charClass(str) { return str.split("").reduce(function (s, c) { return s[c] = !0, s }, {}) } function isRegExp(c) { return "[object RegExp]" === Object.prototype.toString.call(c) } function is(charclass, c) { return isRegExp(charclass) ? !!c.match(charclass) : charclass[c] } function not(charclass, c) { return !is(charclass, c) } function emit(parser, event, data) { parser[event] && parser[event](data) } function emitNode(parser, nodeType, data) { parser.textNode && closeText(parser), emit(parser, nodeType, data) } function closeText(parser) { parser.textNode = textopts(parser.opt, parser.textNode), parser.textNode && emit(parser, "ontext", parser.textNode), parser.textNode = "" } function textopts(opt, text) { return opt.trim && (text = text.trim()), opt.normalize && (text = text.replace(/\s+/g, " ")), text } function error(parser, er) { return closeText(parser), parser.trackPosition && (er += "\nLine: " + parser.line + "\nColumn: " + parser.column + "\nChar: " + parser.c), er = new Error(er), parser.error = er, emit(parser, "onerror", er), parser } function end(parser) { return parser.sawRoot && !parser.closedRoot && strictFail(parser, "Unclosed root tag"), parser.state !== S.BEGIN && parser.state !== S.BEGIN_WHITESPACE && parser.state !== S.TEXT && error(parser, "Unexpected end"), closeText(parser), parser.c = "", parser.closed = !0, emit(parser, "onend"), SAXParser.call(parser, parser.strict, parser.opt), parser } function strictFail(parser, message) { if ("object" != typeof parser || !(parser instanceof SAXParser)) throw new Error("bad call to strictFail"); parser.strict && error(parser, message) } function newTag(parser) { parser.strict || (parser.tagName = parser.tagName[parser.looseCase]()); var parent = parser.tags[parser.tags.length - 1] || parser, tag = parser.tag = { name: parser.tagName, attributes: {} }; parser.opt.xmlns && (tag.ns = parent.ns), parser.attribList.length = 0 } function qname(name, attribute) { var i = name.indexOf(":"), qualName = 0 > i ? ["", name] : name.split(":"), prefix = qualName[0], local = qualName[1]; return attribute && "xmlns" === name && (prefix = "xmlns", local = ""), { prefix: prefix, local: local } } function attrib(parser) { if (parser.strict || (parser.attribName = parser.attribName[parser.looseCase]()), -1 !== parser.attribList.indexOf(parser.attribName) || parser.tag.attributes.hasOwnProperty(parser.attribName)) return void (parser.attribName = parser.attribValue = ""); if (parser.opt.xmlns) { var qn = qname(parser.attribName, !0), prefix = qn.prefix, local = qn.local; if ("xmlns" === prefix) if ("xml" === local && parser.attribValue !== XML_NAMESPACE) strictFail(parser, "xml: prefix must be bound to " + XML_NAMESPACE + "\nActual: " + parser.attribValue); else if ("xmlns" === local && parser.attribValue !== XMLNS_NAMESPACE) strictFail(parser, "xmlns: prefix must be bound to " + XMLNS_NAMESPACE + "\nActual: " + parser.attribValue); else { var tag = parser.tag, parent = parser.tags[parser.tags.length - 1] || parser; tag.ns === parent.ns && (tag.ns = Object.create(parent.ns)), tag.ns[local] = parser.attribValue } parser.attribList.push([parser.attribName, parser.attribValue]) } else parser.tag.attributes[parser.attribName] = parser.attribValue, emitNode(parser, "onattribute", { name: parser.attribName, value: parser.attribValue }); parser.attribName = parser.attribValue = "" } function openTag(parser, selfClosing) { if (parser.opt.xmlns) { var tag = parser.tag, qn = qname(parser.tagName); tag.prefix = qn.prefix, tag.local = qn.local, tag.uri = tag.ns[qn.prefix] || "", tag.prefix && !tag.uri && (strictFail(parser, "Unbound namespace prefix: " + JSON.stringify(parser.tagName)), tag.uri = qn.prefix); var parent = parser.tags[parser.tags.length - 1] || parser; tag.ns && parent.ns !== tag.ns && Object.keys(tag.ns).forEach(function (p) { emitNode(parser, "onopennamespace", { prefix: p, uri: tag.ns[p] }) }); for (var i = 0, l = parser.attribList.length; l > i; i++) { var nv = parser.attribList[i], name = nv[0], value = nv[1], qualName = qname(name, !0), prefix = qualName.prefix, local = qualName.local, uri = "" === prefix ? "" : tag.ns[prefix] || "", a = { name: name, value: value, prefix: prefix, local: local, uri: uri }; prefix && "xmlns" !== prefix && !uri && (strictFail(parser, "Unbound namespace prefix: " + JSON.stringify(prefix)), a.uri = prefix), parser.tag.attributes[name] = a, emitNode(parser, "onattribute", a) } parser.attribList.length = 0 } parser.tag.isSelfClosing = !!selfClosing, parser.sawRoot = !0, parser.tags.push(parser.tag), emitNode(parser, "onopentag", parser.tag), selfClosing || (parser.noscript || "script" !== parser.tagName.toLowerCase() ? parser.state = S.TEXT : parser.state = S.SCRIPT, parser.tag = null, parser.tagName = ""), parser.attribName = parser.attribValue = "", parser.attribList.length = 0 } function closeTag(parser) { if (!parser.tagName) return strictFail(parser, "Weird empty close tag."), parser.textNode += "", void (parser.state = S.TEXT); if (parser.script) { if ("script" !== parser.tagName) return parser.script += "", parser.tagName = "", void (parser.state = S.SCRIPT); emitNode(parser, "onscript", parser.script), parser.script = "" } var t = parser.tags.length, tagName = parser.tagName; parser.strict || (tagName = tagName[parser.looseCase]()); for (var closeTo = tagName; t--;) { var close = parser.tags[t]; if (close.name === closeTo) break; strictFail(parser, "Unexpected close tag") } if (0 > t) return strictFail(parser, "Unmatched closing tag: " + parser.tagName), parser.textNode += "", void (parser.state = S.TEXT); parser.tagName = tagName; for (var s = parser.tags.length; s-- > t;) { var tag = parser.tag = parser.tags.pop(); parser.tagName = parser.tag.name, emitNode(parser, "onclosetag", parser.tagName); var x = {}; for (var i in tag.ns) x[i] = tag.ns[i]; var parent = parser.tags[parser.tags.length - 1] || parser; parser.opt.xmlns && tag.ns !== parent.ns && Object.keys(tag.ns).forEach(function (p) { var n = tag.ns[p]; emitNode(parser, "onclosenamespace", { prefix: p, uri: n }) }) } 0 === t && (parser.closedRoot = !0), parser.tagName = parser.attribValue = parser.attribName = "", parser.attribList.length = 0, parser.state = S.TEXT } function parseEntity(parser) { var num, entity = parser.entity, entityLC = entity.toLowerCase(), numStr = ""; return parser.ENTITIES[entity] ? parser.ENTITIES[entity] : parser.ENTITIES[entityLC] ? parser.ENTITIES[entityLC] : (entity = entityLC, "#" === entity.charAt(0) && ("x" === entity.charAt(1) ? (entity = entity.slice(2), num = parseInt(entity, 16), numStr = num.toString(16)) : (entity = entity.slice(1), num = parseInt(entity, 10), numStr = num.toString(10))), entity = entity.replace(/^0+/, ""), numStr.toLowerCase() !== entity ? (strictFail(parser, "Invalid character entity"), "&" + parser.entity + ";") : String.fromCodePoint(num)) } function beginWhiteSpace(parser, c) { "<" === c ? (parser.state = S.OPEN_WAKA, parser.startTagPosition = parser.position) : not(whitespace, c) && (strictFail(parser, "Non-whitespace before first tag."), parser.textNode = c, parser.state = S.TEXT) } function charAt(chunk, i) { var result = ""; return i < chunk.length && (result = chunk.charAt(i)), result } function write(chunk) { var parser = this; if (this.error) throw this.error; if (parser.closed) return error(parser, "Cannot write after close. Assign an onready handler."); if (null === chunk) return end(parser); "object" == typeof chunk && (chunk = chunk.toString()); for (var i = 0, c = ""; ;) { if (c = charAt(chunk, i++), parser.c = c, !c) break; switch (parser.trackPosition && (parser.position++, "\n" === c ? (parser.line++, parser.column = 0) : parser.column++), parser.state) { case S.BEGIN: if (parser.state = S.BEGIN_WHITESPACE, "\ufeff" === c) continue; beginWhiteSpace(parser, c); continue; case S.BEGIN_WHITESPACE: beginWhiteSpace(parser, c); continue; case S.TEXT: if (parser.sawRoot && !parser.closedRoot) { for (var starti = i - 1; c && "<" !== c && "&" !== c;)c = charAt(chunk, i++), c && parser.trackPosition && (parser.position++, "\n" === c ? (parser.line++, parser.column = 0) : parser.column++); parser.textNode += chunk.substring(starti, i - 1) } "<" !== c || parser.sawRoot && parser.closedRoot && !parser.strict ? (!not(whitespace, c) || parser.sawRoot && !parser.closedRoot || strictFail(parser, "Text data outside of root node."), "&" === c ? parser.state = S.TEXT_ENTITY : parser.textNode += c) : (parser.state = S.OPEN_WAKA, parser.startTagPosition = parser.position); continue; case S.SCRIPT: "<" === c ? parser.state = S.SCRIPT_ENDING : parser.script += c; continue; case S.SCRIPT_ENDING: "/" === c ? parser.state = S.CLOSE_TAG : (parser.script += "<" + c, parser.state = S.SCRIPT); continue; case S.OPEN_WAKA: if ("!" === c) parser.state = S.SGML_DECL, parser.sgmlDecl = ""; else if (is(whitespace, c)); else if (is(nameStart, c)) parser.state = S.OPEN_TAG, parser.tagName = c; else if ("/" === c) parser.state = S.CLOSE_TAG, parser.tagName = ""; else if ("?" === c) parser.state = S.PROC_INST, parser.procInstName = parser.procInstBody = ""; else { if (strictFail(parser, "Unencoded <"), parser.startTagPosition + 1 < parser.position) { var pad = parser.position - parser.startTagPosition; c = new Array(pad).join(" ") + c } parser.textNode += "<" + c, parser.state = S.TEXT } continue; case S.SGML_DECL: (parser.sgmlDecl + c).toUpperCase() === CDATA ? (emitNode(parser, "onopencdata"), parser.state = S.CDATA, parser.sgmlDecl = "", parser.cdata = "") : parser.sgmlDecl + c === "--" ? (parser.state = S.COMMENT, parser.comment = "", parser.sgmlDecl = "") : (parser.sgmlDecl + c).toUpperCase() === DOCTYPE ? (parser.state = S.DOCTYPE, (parser.doctype || parser.sawRoot) && strictFail(parser, "Inappropriately located doctype declaration"), parser.doctype = "", parser.sgmlDecl = "") : ">" === c ? (emitNode(parser, "onsgmldeclaration", parser.sgmlDecl), parser.sgmlDecl = "", parser.state = S.TEXT) : is(quote, c) ? (parser.state = S.SGML_DECL_QUOTED, parser.sgmlDecl += c) : parser.sgmlDecl += c; continue; case S.SGML_DECL_QUOTED: c === parser.q && (parser.state = S.SGML_DECL, parser.q = ""), parser.sgmlDecl += c; continue; case S.DOCTYPE: ">" === c ? (parser.state = S.TEXT, emitNode(parser, "ondoctype", parser.doctype), parser.doctype = !0) : (parser.doctype += c, "[" === c ? parser.state = S.DOCTYPE_DTD : is(quote, c) && (parser.state = S.DOCTYPE_QUOTED, parser.q = c)); continue; case S.DOCTYPE_QUOTED: parser.doctype += c, c === parser.q && (parser.q = "", parser.state = S.DOCTYPE); continue; case S.DOCTYPE_DTD: parser.doctype += c, "]" === c ? parser.state = S.DOCTYPE : is(quote, c) && (parser.state = S.DOCTYPE_DTD_QUOTED, parser.q = c); continue; case S.DOCTYPE_DTD_QUOTED: parser.doctype += c, c === parser.q && (parser.state = S.DOCTYPE_DTD, parser.q = ""); continue; case S.COMMENT: "-" === c ? parser.state = S.COMMENT_ENDING : parser.comment += c; continue; case S.COMMENT_ENDING: "-" === c ? (parser.state = S.COMMENT_ENDED, parser.comment = textopts(parser.opt, parser.comment), parser.comment && emitNode(parser, "oncomment", parser.comment), parser.comment = "") : (parser.comment += "-" + c, parser.state = S.COMMENT); continue; case S.COMMENT_ENDED: ">" !== c ? (strictFail(parser, "Malformed comment"), parser.comment += "--" + c, parser.state = S.COMMENT) : parser.state = S.TEXT; continue; case S.CDATA: "]" === c ? parser.state = S.CDATA_ENDING : parser.cdata += c; continue; case S.CDATA_ENDING: "]" === c ? parser.state = S.CDATA_ENDING_2 : (parser.cdata += "]" + c, parser.state = S.CDATA); continue; case S.CDATA_ENDING_2: ">" === c ? (parser.cdata && emitNode(parser, "oncdata", parser.cdata), emitNode(parser, "onclosecdata"), parser.cdata = "", parser.state = S.TEXT) : "]" === c ? parser.cdata += "]" : (parser.cdata += "]]" + c, parser.state = S.CDATA); continue; case S.PROC_INST: "?" === c ? parser.state = S.PROC_INST_ENDING : is(whitespace, c) ? parser.state = S.PROC_INST_BODY : parser.procInstName += c; continue; case S.PROC_INST_BODY: if (!parser.procInstBody && is(whitespace, c)) continue; "?" === c ? parser.state = S.PROC_INST_ENDING : parser.procInstBody += c; continue; case S.PROC_INST_ENDING: ">" === c ? (emitNode(parser, "onprocessinginstruction", { name: parser.procInstName, body: parser.procInstBody }), parser.procInstName = parser.procInstBody = "", parser.state = S.TEXT) : (parser.procInstBody += "?" + c, parser.state = S.PROC_INST_BODY); continue; case S.OPEN_TAG: is(nameBody, c) ? parser.tagName += c : (newTag(parser), ">" === c ? openTag(parser) : "/" === c ? parser.state = S.OPEN_TAG_SLASH : (not(whitespace, c) && strictFail(parser, "Invalid character in tag name"), parser.state = S.ATTRIB)); continue; case S.OPEN_TAG_SLASH: ">" === c ? (openTag(parser, !0), closeTag(parser)) : (strictFail(parser, "Forward-slash in opening tag not followed by >"), parser.state = S.ATTRIB); continue; case S.ATTRIB: if (is(whitespace, c)) continue; ">" === c ? openTag(parser) : "/" === c ? parser.state = S.OPEN_TAG_SLASH : is(nameStart, c) ? (parser.attribName = c, parser.attribValue = "", parser.state = S.ATTRIB_NAME) : strictFail(parser, "Invalid attribute name"); continue; case S.ATTRIB_NAME: "=" === c ? parser.state = S.ATTRIB_VALUE : ">" === c ? (strictFail(parser, "Attribute without value"), parser.attribValue = parser.attribName, attrib(parser), openTag(parser)) : is(whitespace, c) ? parser.state = S.ATTRIB_NAME_SAW_WHITE : is(nameBody, c) ? parser.attribName += c : strictFail(parser, "Invalid attribute name"); continue; case S.ATTRIB_NAME_SAW_WHITE: if ("=" === c) parser.state = S.ATTRIB_VALUE; else { if (is(whitespace, c)) continue; strictFail(parser, "Attribute without value"), parser.tag.attributes[parser.attribName] = "", parser.attribValue = "", emitNode(parser, "onattribute", { name: parser.attribName, value: "" }), parser.attribName = "", ">" === c ? openTag(parser) : is(nameStart, c) ? (parser.attribName = c, parser.state = S.ATTRIB_NAME) : (strictFail(parser, "Invalid attribute name"), parser.state = S.ATTRIB) } continue; case S.ATTRIB_VALUE: if (is(whitespace, c)) continue; is(quote, c) ? (parser.q = c, parser.state = S.ATTRIB_VALUE_QUOTED) : (strictFail(parser, "Unquoted attribute value"), parser.state = S.ATTRIB_VALUE_UNQUOTED, parser.attribValue = c); continue; case S.ATTRIB_VALUE_QUOTED: if (c !== parser.q) { "&" === c ? parser.state = S.ATTRIB_VALUE_ENTITY_Q : parser.attribValue += c; continue } attrib(parser), parser.q = "", parser.state = S.ATTRIB_VALUE_CLOSED; continue; case S.ATTRIB_VALUE_CLOSED: is(whitespace, c) ? parser.state = S.ATTRIB : ">" === c ? openTag(parser) : "/" === c ? parser.state = S.OPEN_TAG_SLASH : is(nameStart, c) ? (strictFail(parser, "No whitespace between attributes"), parser.attribName = c, parser.attribValue = "", parser.state = S.ATTRIB_NAME) : strictFail(parser, "Invalid attribute name"); continue; case S.ATTRIB_VALUE_UNQUOTED: if (not(attribEnd, c)) { "&" === c ? parser.state = S.ATTRIB_VALUE_ENTITY_U : parser.attribValue += c; continue } attrib(parser), ">" === c ? openTag(parser) : parser.state = S.ATTRIB; continue; case S.CLOSE_TAG: if (parser.tagName) ">" === c ? closeTag(parser) : is(nameBody, c) ? parser.tagName += c : parser.script ? (parser.script += "" === c ? closeTag(parser) : strictFail(parser, "Invalid characters in closing tag"); continue; case S.TEXT_ENTITY: case S.ATTRIB_VALUE_ENTITY_Q: case S.ATTRIB_VALUE_ENTITY_U: var returnState, buffer; switch (parser.state) { case S.TEXT_ENTITY: returnState = S.TEXT, buffer = "textNode"; break; case S.ATTRIB_VALUE_ENTITY_Q: returnState = S.ATTRIB_VALUE_QUOTED, buffer = "attribValue"; break; case S.ATTRIB_VALUE_ENTITY_U: returnState = S.ATTRIB_VALUE_UNQUOTED, buffer = "attribValue" }";" === c ? (parser[buffer] += parseEntity(parser), parser.entity = "", parser.state = returnState) : is(parser.entity.length ? entityBody : entityStart, c) ? parser.entity += c : (strictFail(parser, "Invalid character in entity name"), parser[buffer] += "&" + parser.entity + c, parser.entity = "", parser.state = returnState); continue; default: throw new Error(parser, "Unknown state: " + parser.state) } } return parser.position >= parser.bufferCheckPosition && checkBufferLength(parser), parser } sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }, sax.SAXParser = SAXParser, sax.SAXStream = SAXStream, sax.createStream = createStream, sax.MAX_BUFFER_LENGTH = 65536; var buffers = ["comment", "sgmlDecl", "textNode", "tagName", "doctype", "procInstName", "procInstBody", "entity", "attribName", "attribValue", "cdata", "script"]; sax.EVENTS = ["text", "processinginstruction", "sgmldeclaration", "doctype", "comment", "attribute", "opentag", "closetag", "opencdata", "cdata", "closecdata", "error", "end", "ready", "script", "opennamespace", "closenamespace"], Object.create || (Object.create = function (o) { function F() { } F.prototype = o; var newf = new F; return newf }), Object.keys || (Object.keys = function (o) { var a = []; for (var i in o) o.hasOwnProperty(i) && a.push(i); return a }), SAXParser.prototype = { end: function () { end(this) }, write: write, resume: function () { return this.error = null, this }, close: function () { return this.write(null) }, flush: function () { flushBuffers(this) } }; var Stream; try { Stream = require("stream").Stream } catch (ex) { Stream = function () { } } var streamWraps = sax.EVENTS.filter(function (ev) { return "error" !== ev && "end" !== ev }); SAXStream.prototype = Object.create(Stream.prototype, { constructor: { value: SAXStream } }), SAXStream.prototype.write = function (data) { if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(data)) { if (!this._decoder) { var SD = require("string_decoder").StringDecoder; this._decoder = new SD("utf8") } data = this._decoder.write(data) } return this._parser.write(data.toString()), this.emit("data", data), !0 }, SAXStream.prototype.end = function (chunk) { return chunk && chunk.length && this.write(chunk), this._parser.end(), !0 }, SAXStream.prototype.on = function (ev, handler) { var me = this; return me._parser["on" + ev] || -1 === streamWraps.indexOf(ev) || (me._parser["on" + ev] = function () { var args = 1 === arguments.length ? [arguments[0]] : Array.apply(null, arguments); args.splice(0, 0, ev), me.emit.apply(me, args) }), Stream.prototype.on.call(me, ev, handler) }; var whitespace = "\r\n ", number = "0124356789", letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", quote = "'\"", attribEnd = whitespace + ">", CDATA = "[CDATA[", DOCTYPE = "DOCTYPE", XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace", XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/", rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }; whitespace = charClass(whitespace), number = charClass(number), letter = charClass(letter); + var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/, entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/; quote = charClass(quote), attribEnd = charClass(attribEnd); var S = 0; sax.STATE = { BEGIN: S++, BEGIN_WHITESPACE: S++, TEXT: S++, TEXT_ENTITY: S++, OPEN_WAKA: S++, SGML_DECL: S++, SGML_DECL_QUOTED: S++, DOCTYPE: S++, DOCTYPE_QUOTED: S++, DOCTYPE_DTD: S++, DOCTYPE_DTD_QUOTED: S++, COMMENT_STARTING: S++, COMMENT: S++, COMMENT_ENDING: S++, COMMENT_ENDED: S++, CDATA: S++, CDATA_ENDING: S++, CDATA_ENDING_2: S++, PROC_INST: S++, PROC_INST_BODY: S++, PROC_INST_ENDING: S++, OPEN_TAG: S++, OPEN_TAG_SLASH: S++, ATTRIB: S++, ATTRIB_NAME: S++, ATTRIB_NAME_SAW_WHITE: S++, ATTRIB_VALUE: S++, ATTRIB_VALUE_QUOTED: S++, ATTRIB_VALUE_CLOSED: S++, ATTRIB_VALUE_UNQUOTED: S++, ATTRIB_VALUE_ENTITY_Q: S++, ATTRIB_VALUE_ENTITY_U: S++, CLOSE_TAG: S++, CLOSE_TAG_SAW_WHITE: S++, SCRIPT: S++, SCRIPT_ENDING: S++ }, sax.XML_ENTITIES = { amp: "&", gt: ">", lt: "<", quot: '"', apos: "'" }, sax.ENTITIES = { amp: "&", gt: ">", lt: "<", quot: '"', apos: "'", AElig: 198, Aacute: 193, Acirc: 194, Agrave: 192, Aring: 197, Atilde: 195, Auml: 196, Ccedil: 199, ETH: 208, Eacute: 201, Ecirc: 202, Egrave: 200, Euml: 203, Iacute: 205, Icirc: 206, Igrave: 204, Iuml: 207, Ntilde: 209, Oacute: 211, Ocirc: 212, Ograve: 210, Oslash: 216, Otilde: 213, Ouml: 214, THORN: 222, Uacute: 218, Ucirc: 219, Ugrave: 217, Uuml: 220, Yacute: 221, aacute: 225, acirc: 226, aelig: 230, agrave: 224, aring: 229, atilde: 227, auml: 228, ccedil: 231, eacute: 233, ecirc: 234, egrave: 232, eth: 240, euml: 235, iacute: 237, icirc: 238, igrave: 236, iuml: 239, ntilde: 241, oacute: 243, ocirc: 244, ograve: 242, oslash: 248, otilde: 245, ouml: 246, szlig: 223, thorn: 254, uacute: 250, ucirc: 251, ugrave: 249, uuml: 252, yacute: 253, yuml: 255, copy: 169, reg: 174, nbsp: 160, iexcl: 161, cent: 162, pound: 163, curren: 164, yen: 165, brvbar: 166, sect: 167, uml: 168, ordf: 170, laquo: 171, not: 172, shy: 173, macr: 175, deg: 176, plusmn: 177, sup1: 185, sup2: 178, sup3: 179, acute: 180, micro: 181, para: 182, middot: 183, cedil: 184, ordm: 186, raquo: 187, frac14: 188, frac12: 189, frac34: 190, iquest: 191, times: 215, divide: 247, OElig: 338, oelig: 339, Scaron: 352, scaron: 353, Yuml: 376, fnof: 402, circ: 710, tilde: 732, Alpha: 913, Beta: 914, Gamma: 915, Delta: 916, Epsilon: 917, Zeta: 918, Eta: 919, Theta: 920, Iota: 921, Kappa: 922, Lambda: 923, Mu: 924, Nu: 925, Xi: 926, Omicron: 927, Pi: 928, Rho: 929, Sigma: 931, Tau: 932, Upsilon: 933, Phi: 934, Chi: 935, Psi: 936, Omega: 937, alpha: 945, beta: 946, gamma: 947, delta: 948, epsilon: 949, zeta: 950, eta: 951, theta: 952, iota: 953, kappa: 954, lambda: 955, mu: 956, nu: 957, xi: 958, omicron: 959, pi: 960, rho: 961, sigmaf: 962, sigma: 963, tau: 964, upsilon: 965, phi: 966, chi: 967, psi: 968, omega: 969, thetasym: 977, upsih: 978, piv: 982, ensp: 8194, emsp: 8195, thinsp: 8201, zwnj: 8204, zwj: 8205, lrm: 8206, rlm: 8207, ndash: 8211, mdash: 8212, lsquo: 8216, rsquo: 8217, sbquo: 8218, ldquo: 8220, rdquo: 8221, bdquo: 8222, dagger: 8224, Dagger: 8225, bull: 8226, hellip: 8230, permil: 8240, prime: 8242, Prime: 8243, lsaquo: 8249, rsaquo: 8250, oline: 8254, frasl: 8260, euro: 8364, image: 8465, weierp: 8472, real: 8476, trade: 8482, alefsym: 8501, larr: 8592, uarr: 8593, rarr: 8594, darr: 8595, harr: 8596, crarr: 8629, lArr: 8656, uArr: 8657, rArr: 8658, dArr: 8659, hArr: 8660, forall: 8704, part: 8706, exist: 8707, empty: 8709, nabla: 8711, isin: 8712, notin: 8713, ni: 8715, prod: 8719, sum: 8721, minus: 8722, lowast: 8727, radic: 8730, prop: 8733, infin: 8734, ang: 8736, and: 8743, or: 8744, cap: 8745, cup: 8746, "int": 8747, there4: 8756, sim: 8764, cong: 8773, asymp: 8776, ne: 8800, equiv: 8801, le: 8804, ge: 8805, sub: 8834, sup: 8835, nsub: 8836, sube: 8838, supe: 8839, oplus: 8853, otimes: 8855, perp: 8869, sdot: 8901, lceil: 8968, rceil: 8969, lfloor: 8970, rfloor: 8971, lang: 9001, rang: 9002, loz: 9674, spades: 9824, clubs: 9827, hearts: 9829, diams: 9830 }, Object.keys(sax.ENTITIES).forEach(function (key) { var e = sax.ENTITIES[key], s = "number" == typeof e ? String.fromCharCode(e) : e; sax.ENTITIES[key] = s }); for (var s in sax.STATE) sax.STATE[sax.STATE[s]] = s; S = sax.STATE, String.fromCodePoint || !function () { var stringFromCharCode = String.fromCharCode, floor = Math.floor, fromCodePoint = function () { var highSurrogate, lowSurrogate, MAX_SIZE = 16384, codeUnits = [], index = -1, length = arguments.length; if (!length) return ""; for (var result = ""; ++index < length;) { var codePoint = Number(arguments[index]); if (!isFinite(codePoint) || 0 > codePoint || codePoint > 1114111 || floor(codePoint) !== codePoint) throw RangeError("Invalid code point: " + codePoint); 65535 >= codePoint ? codeUnits.push(codePoint) : (codePoint -= 65536, highSurrogate = (codePoint >> 10) + 55296, lowSurrogate = codePoint % 1024 + 56320, codeUnits.push(highSurrogate, lowSurrogate)), (index + 1 === length || codeUnits.length > MAX_SIZE) && (result += stringFromCharCode.apply(null, codeUnits), codeUnits.length = 0) } return result }; Object.defineProperty ? Object.defineProperty(String, "fromCodePoint", { value: fromCodePoint, configurable: !0, writable: !0 }) : String.fromCodePoint = fromCodePoint }() + }("undefined" == typeof exports ? this.sax = {} : exports) + }).call(this, require("buffer").Buffer) + }, { buffer: 78, stream: 115, string_decoder: 116 }], 115: [function (require, module, exports) { function Stream() { EE.call(this) } module.exports = Stream; var EE = require("events").EventEmitter, inherits = require("inherits"); inherits(Stream, EE), Stream.Readable = require("readable-stream/readable.js"), Stream.Writable = require("readable-stream/writable.js"), Stream.Duplex = require("readable-stream/duplex.js"), Stream.Transform = require("readable-stream/transform.js"), Stream.PassThrough = require("readable-stream/passthrough.js"), Stream.Stream = Stream, Stream.prototype.pipe = function (dest, options) { function ondata(chunk) { dest.writable && !1 === dest.write(chunk) && source.pause && source.pause() } function ondrain() { source.readable && source.resume && source.resume() } function onend() { didOnEnd || (didOnEnd = !0, dest.end()) } function onclose() { didOnEnd || (didOnEnd = !0, "function" == typeof dest.destroy && dest.destroy()) } function onerror(er) { if (cleanup(), 0 === EE.listenerCount(this, "error")) throw er } function cleanup() { source.removeListener("data", ondata), dest.removeListener("drain", ondrain), source.removeListener("end", onend), source.removeListener("close", onclose), source.removeListener("error", onerror), dest.removeListener("error", onerror), source.removeListener("end", cleanup), source.removeListener("close", cleanup), dest.removeListener("close", cleanup) } var source = this; source.on("data", ondata), dest.on("drain", ondrain), dest._isStdio || options && options.end === !1 || (source.on("end", onend), source.on("close", onclose)); var didOnEnd = !1; return source.on("error", onerror), dest.on("error", onerror), source.on("end", cleanup), source.on("close", cleanup), dest.on("close", cleanup), dest.emit("pipe", source), dest } }, { events: 82, inherits: 84, "readable-stream/duplex.js": 103, "readable-stream/passthrough.js": 110, "readable-stream/readable.js": 111, "readable-stream/transform.js": 112, "readable-stream/writable.js": 113 }], 116: [function (require, module, exports) { function assertEncoding(encoding) { if (encoding && !isBufferEncoding(encoding)) throw new Error("Unknown encoding: " + encoding) } function passThroughWrite(buffer) { return buffer.toString(this.encoding) } function utf16DetectIncompleteChar(buffer) { this.charReceived = buffer.length % 2, this.charLength = this.charReceived ? 2 : 0 } function base64DetectIncompleteChar(buffer) { this.charReceived = buffer.length % 3, this.charLength = this.charReceived ? 3 : 0 } var Buffer = require("buffer").Buffer, isBufferEncoding = Buffer.isEncoding || function (encoding) { switch (encoding && encoding.toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": case "raw": return !0; default: return !1 } }, StringDecoder = exports.StringDecoder = function (encoding) { switch (this.encoding = (encoding || "utf8").toLowerCase().replace(/[-_]/, ""), assertEncoding(encoding), this.encoding) { case "utf8": this.surrogateSize = 3; break; case "ucs2": case "utf16le": this.surrogateSize = 2, this.detectIncompleteChar = utf16DetectIncompleteChar; break; case "base64": this.surrogateSize = 3, this.detectIncompleteChar = base64DetectIncompleteChar; break; default: return void (this.write = passThroughWrite) }this.charBuffer = new Buffer(6), this.charReceived = 0, this.charLength = 0 }; StringDecoder.prototype.write = function (buffer) { for (var charStr = ""; this.charLength;) { var available = buffer.length >= this.charLength - this.charReceived ? this.charLength - this.charReceived : buffer.length; if (buffer.copy(this.charBuffer, this.charReceived, 0, available), this.charReceived += available, this.charReceived < this.charLength) return ""; buffer = buffer.slice(available, buffer.length), charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); var charCode = charStr.charCodeAt(charStr.length - 1); if (!(charCode >= 55296 && 56319 >= charCode)) { if (this.charReceived = this.charLength = 0, 0 === buffer.length) return charStr; break } this.charLength += this.surrogateSize, charStr = "" } this.detectIncompleteChar(buffer); var end = buffer.length; this.charLength && (buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end), end -= this.charReceived), charStr += buffer.toString(this.encoding, 0, end); var end = charStr.length - 1, charCode = charStr.charCodeAt(end); if (charCode >= 55296 && 56319 >= charCode) { var size = this.surrogateSize; return this.charLength += size, this.charReceived += size, this.charBuffer.copy(this.charBuffer, size, 0, size), buffer.copy(this.charBuffer, 0, 0, size), charStr.substring(0, end) } return charStr }, StringDecoder.prototype.detectIncompleteChar = function (buffer) { for (var i = buffer.length >= 3 ? 3 : buffer.length; i > 0; i--) { var c = buffer[buffer.length - i]; if (1 == i && c >> 5 == 6) { this.charLength = 2; break } if (2 >= i && c >> 4 == 14) { this.charLength = 3; break } if (3 >= i && c >> 3 == 30) { this.charLength = 4; break } } this.charReceived = i }, StringDecoder.prototype.end = function (buffer) { var res = ""; if (buffer && buffer.length && (res = this.write(buffer)), this.charReceived) { var cr = this.charReceived, buf = this.charBuffer, enc = this.encoding; res += buf.slice(0, cr).toString(enc) } return res } }, { buffer: 78 }], 117: [function (require, module, exports) { (function (global) { !function (global, factory) { "object" == typeof exports && "undefined" != typeof module ? module.exports = factory() : "function" == typeof define && define.amd ? define("underscore", factory) : (global = "undefined" != typeof globalThis ? globalThis : global || self, function () { var current = global._, exports = global._ = factory(); exports.noConflict = function () { return global._ = current, exports } }()) }(this, function () { - function restArguments(func, startIndex) { return startIndex = null == startIndex ? func.length - 1 : +startIndex, function () { for (var length = Math.max(arguments.length - startIndex, 0), rest = Array(length), index = 0; length > index; index++)rest[index] = arguments[index + startIndex]; switch (startIndex) { case 0: return func.call(this, rest); case 1: return func.call(this, arguments[0], rest); case 2: return func.call(this, arguments[0], arguments[1], rest) }var args = Array(startIndex + 1); for (index = 0; startIndex > index; index++)args[index] = arguments[index]; return args[startIndex] = rest, func.apply(this, args) } } function isObject(obj) { var type = typeof obj; return "function" === type || "object" === type && !!obj } function isNull(obj) { return null === obj } function isUndefined(obj) { return void 0 === obj } function isBoolean(obj) { return obj === !0 || obj === !1 || "[object Boolean]" === toString.call(obj) } function isElement(obj) { return !(!obj || 1 !== obj.nodeType) } function tagTester(name) { var tag = "[object " + name + "]"; return function (obj) { return toString.call(obj) === tag } } function ie10IsDataView(obj) { return null != obj && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer) } function has$1(obj, key) { return null != obj && hasOwnProperty.call(obj, key) } function isFinite$1(obj) { return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj)) } function isNaN$1(obj) { return isNumber(obj) && _isNaN(obj) } function constant(value) { return function () { return value } } function createSizePropertyCheck(getSizeProperty) { return function (collection) { var sizeProperty = getSizeProperty(collection); return "number" == typeof sizeProperty && sizeProperty >= 0 && MAX_ARRAY_INDEX >= sizeProperty } } function shallowProperty(key) { return function (obj) { return null == obj ? void 0 : obj[key] } } function isTypedArray(obj) { return nativeIsView ? nativeIsView(obj) && !isDataView$1(obj) : isBufferLike(obj) && typedArrayPattern.test(toString.call(obj)) } function emulatedSet(keys) { for (var hash = {}, l = keys.length, i = 0; l > i; ++i)hash[keys[i]] = !0; return { contains: function (key) { return hash[key] }, push: function (key) { return hash[key] = !0, keys.push(key) } } } function collectNonEnumProps(obj, keys) { keys = emulatedSet(keys); var nonEnumIdx = nonEnumerableProps.length, constructor = obj.constructor, proto = isFunction$1(constructor) && constructor.prototype || ObjProto, prop = "constructor"; for (has$1(obj, prop) && !keys.contains(prop) && keys.push(prop); nonEnumIdx--;)prop = nonEnumerableProps[nonEnumIdx], prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop) && keys.push(prop) } function keys(obj) { if (!isObject(obj)) return []; if (nativeKeys) return nativeKeys(obj); var keys = []; for (var key in obj) has$1(obj, key) && keys.push(key); return hasEnumBug && collectNonEnumProps(obj, keys), keys } function isEmpty(obj) { if (null == obj) return !0; var length = getLength(obj); return "number" == typeof length && (isArray(obj) || isString(obj) || isArguments$1(obj)) ? 0 === length : 0 === getLength(keys(obj)) } function isMatch(object, attrs) { var _keys = keys(attrs), length = _keys.length; if (null == object) return !length; for (var obj = Object(object), i = 0; length > i; i++) { var key = _keys[i]; if (attrs[key] !== obj[key] || !(key in obj)) return !1 } return !0 } function _$1(obj) { return obj instanceof _$1 ? obj : this instanceof _$1 ? void (this._wrapped = obj) : new _$1(obj) } function toBufferView(bufferSource) { return new Uint8Array(bufferSource.buffer || bufferSource, bufferSource.byteOffset || 0, getByteLength(bufferSource)) } function eq(a, b, aStack, bStack) { if (a === b) return 0 !== a || 1 / a === 1 / b; if (null == a || null == b) return !1; if (a !== a) return b !== b; var type = typeof a; return "function" !== type && "object" !== type && "object" != typeof b ? !1 : deepEq(a, b, aStack, bStack) } function deepEq(a, b, aStack, bStack) { a instanceof _$1 && (a = a._wrapped), b instanceof _$1 && (b = b._wrapped); var className = toString.call(a); if (className !== toString.call(b)) return !1; if (hasStringTagBug && "[object Object]" == className && isDataView$1(a)) { if (!isDataView$1(b)) return !1; className = tagDataView } switch (className) { case "[object RegExp]": case "[object String]": return "" + a == "" + b; case "[object Number]": return +a !== +a ? +b !== +b : 0 === +a ? 1 / +a === 1 / b : +a === +b; case "[object Date]": case "[object Boolean]": return +a === +b; case "[object Symbol]": return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b); case "[object ArrayBuffer]": case tagDataView: return deepEq(toBufferView(a), toBufferView(b), aStack, bStack) }var areArrays = "[object Array]" === className; if (!areArrays && isTypedArray$1(a)) { var byteLength = getByteLength(a); if (byteLength !== getByteLength(b)) return !1; if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return !0; areArrays = !0 } if (!areArrays) { if ("object" != typeof a || "object" != typeof b) return !1; var aCtor = a.constructor, bCtor = b.constructor; if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor && isFunction$1(bCtor) && bCtor instanceof bCtor) && "constructor" in a && "constructor" in b) return !1 } aStack = aStack || [], bStack = bStack || []; for (var length = aStack.length; length--;)if (aStack[length] === a) return bStack[length] === b; if (aStack.push(a), bStack.push(b), areArrays) { if (length = a.length, length !== b.length) return !1; for (; length--;)if (!eq(a[length], b[length], aStack, bStack)) return !1 } else { var key, _keys = keys(a); if (length = _keys.length, keys(b).length !== length) return !1; for (; length--;)if (key = _keys[length], !has$1(b, key) || !eq(a[key], b[key], aStack, bStack)) return !1 } return aStack.pop(), bStack.pop(), !0 } function isEqual(a, b) { return eq(a, b) } function allKeys(obj) { if (!isObject(obj)) return []; var keys = []; for (var key in obj) keys.push(key); return hasEnumBug && collectNonEnumProps(obj, keys), keys } function ie11fingerprint(methods) { var length = getLength(methods); return function (obj) { if (null == obj) return !1; var keys = allKeys(obj); if (getLength(keys)) return !1; for (var i = 0; length > i; i++)if (!isFunction$1(obj[methods[i]])) return !1; return methods !== weakMapMethods || !isFunction$1(obj[forEachName]) } } function values(obj) { for (var _keys = keys(obj), length = _keys.length, values = Array(length), i = 0; length > i; i++)values[i] = obj[_keys[i]]; return values } function pairs(obj) { for (var _keys = keys(obj), length = _keys.length, pairs = Array(length), i = 0; length > i; i++)pairs[i] = [_keys[i], obj[_keys[i]]]; return pairs } function invert(obj) { for (var result = {}, _keys = keys(obj), i = 0, length = _keys.length; length > i; i++)result[obj[_keys[i]]] = _keys[i]; return result } function functions(obj) { var names = []; for (var key in obj) isFunction$1(obj[key]) && names.push(key); return names.sort() } function createAssigner(keysFunc, defaults) { return function (obj) { var length = arguments.length; if (defaults && (obj = Object(obj)), 2 > length || null == obj) return obj; for (var index = 1; length > index; index++)for (var source = arguments[index], keys = keysFunc(source), l = keys.length, i = 0; l > i; i++) { var key = keys[i]; defaults && void 0 !== obj[key] || (obj[key] = source[key]) } return obj } } function ctor() { return function () { } } function baseCreate(prototype) { if (!isObject(prototype)) return {}; if (nativeCreate) return nativeCreate(prototype); var Ctor = ctor(); Ctor.prototype = prototype; var result = new Ctor; return Ctor.prototype = null, result } function create(prototype, props) { var result = baseCreate(prototype); return props && extendOwn(result, props), result } function clone(obj) { return isObject(obj) ? isArray(obj) ? obj.slice() : extend({}, obj) : obj } function tap(obj, interceptor) { return interceptor(obj), obj } function toPath$1(path) { return isArray(path) ? path : [path] } function toPath(path) { return _$1.toPath(path) } function deepGet(obj, path) { for (var length = path.length, i = 0; length > i; i++) { if (null == obj) return void 0; obj = obj[path[i]] } return length ? obj : void 0 } function get(object, path, defaultValue) { var value = deepGet(object, toPath(path)); return isUndefined(value) ? defaultValue : value } function has(obj, path) { path = toPath(path); for (var length = path.length, i = 0; length > i; i++) { var key = path[i]; if (!has$1(obj, key)) return !1; obj = obj[key] } return !!length } function identity(value) { return value } function matcher(attrs) { return attrs = extendOwn({}, attrs), function (obj) { return isMatch(obj, attrs) } } function property(path) { return path = toPath(path), function (obj) { return deepGet(obj, path) } } function optimizeCb(func, context, argCount) { if (void 0 === context) return func; switch (null == argCount ? 3 : argCount) { case 1: return function (value) { return func.call(context, value) }; case 3: return function (value, index, collection) { return func.call(context, value, index, collection) }; case 4: return function (accumulator, value, index, collection) { return func.call(context, accumulator, value, index, collection) } }return function () { return func.apply(context, arguments) } } function baseIteratee(value, context, argCount) { - return null == value ? identity : isFunction$1(value) ? optimizeCb(value, context, argCount) : isObject(value) && !isArray(value) ? matcher(value) : property(value); - } function iteratee(value, context) { return baseIteratee(value, context, 1 / 0) } function cb(value, context, argCount) { return _$1.iteratee !== iteratee ? _$1.iteratee(value, context) : baseIteratee(value, context, argCount) } function mapObject(obj, iteratee, context) { iteratee = cb(iteratee, context); for (var _keys = keys(obj), length = _keys.length, results = {}, index = 0; length > index; index++) { var currentKey = _keys[index]; results[currentKey] = iteratee(obj[currentKey], currentKey, obj) } return results } function noop() { } function propertyOf(obj) { return null == obj ? noop : function (path) { return get(obj, path) } } function times(n, iteratee, context) { var accum = Array(Math.max(0, n)); iteratee = optimizeCb(iteratee, context, 1); for (var i = 0; n > i; i++)accum[i] = iteratee(i); return accum } function random(min, max) { return null == max && (max = min, min = 0), min + Math.floor(Math.random() * (max - min + 1)) } function createEscaper(map) { var escaper = function (match) { return map[match] }, source = "(?:" + keys(map).join("|") + ")", testRegexp = RegExp(source), replaceRegexp = RegExp(source, "g"); return function (string) { return string = null == string ? "" : "" + string, testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string } } function escapeChar(match) { return "\\" + escapes[match] } function template(text, settings, oldSettings) { !settings && oldSettings && (settings = oldSettings), settings = defaults({}, settings, _$1.templateSettings); var matcher = RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join("|") + "|$", "g"), index = 0, source = "__p+='"; text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { return source += text.slice(index, offset).replace(escapeRegExp, escapeChar), index = offset + match.length, escape ? source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'" : interpolate ? source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'" : evaluate && (source += "';\n" + evaluate + "\n__p+='"), match }), source += "';\n"; var argument = settings.variable; if (argument) { if (!bareIdentifier.test(argument)) throw new Error("variable is not a bare identifier: " + argument) } else source = "with(obj||{}){\n" + source + "}\n", argument = "obj"; source = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + source + "return __p;\n"; var render; try { render = new Function(argument, "_", source) } catch (e) { throw e.source = source, e } var template = function (data) { return render.call(this, data, _$1) }; return template.source = "function(" + argument + "){\n" + source + "}", template } function result(obj, path, fallback) { path = toPath(path); var length = path.length; if (!length) return isFunction$1(fallback) ? fallback.call(obj) : fallback; for (var i = 0; length > i; i++) { var prop = null == obj ? void 0 : obj[path[i]]; void 0 === prop && (prop = fallback, i = length), obj = isFunction$1(prop) ? prop.call(obj) : prop } return obj } function uniqueId(prefix) { var id = ++idCounter + ""; return prefix ? prefix + id : id } function chain(obj) { var instance = _$1(obj); return instance._chain = !0, instance } function executeBound(sourceFunc, boundFunc, context, callingContext, args) { if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); var self = baseCreate(sourceFunc.prototype), result = sourceFunc.apply(self, args); return isObject(result) ? result : self } function flatten$1(input, depth, strict, output) { if (output = output || [], depth || 0 === depth) { if (0 >= depth) return output.concat(input) } else depth = 1 / 0; for (var idx = output.length, i = 0, length = getLength(input); length > i; i++) { var value = input[i]; if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) if (depth > 1) flatten$1(value, depth - 1, strict, output), idx = output.length; else for (var j = 0, len = value.length; len > j;)output[idx++] = value[j++]; else strict || (output[idx++] = value) } return output } function memoize(func, hasher) { var memoize = function (key) { var cache = memoize.cache, address = "" + (hasher ? hasher.apply(this, arguments) : key); return has$1(cache, address) || (cache[address] = func.apply(this, arguments)), cache[address] }; return memoize.cache = {}, memoize } function throttle(func, wait, options) { var timeout, context, args, result, previous = 0; options || (options = {}); var later = function () { previous = options.leading === !1 ? 0 : now(), timeout = null, result = func.apply(context, args), timeout || (context = args = null) }, throttled = function () { var _now = now(); previous || options.leading !== !1 || (previous = _now); var remaining = wait - (_now - previous); return context = this, args = arguments, 0 >= remaining || remaining > wait ? (timeout && (clearTimeout(timeout), timeout = null), previous = _now, result = func.apply(context, args), timeout || (context = args = null)) : timeout || options.trailing === !1 || (timeout = setTimeout(later, remaining)), result }; return throttled.cancel = function () { clearTimeout(timeout), previous = 0, timeout = context = args = null }, throttled } function debounce(func, wait, immediate) { var timeout, previous, args, result, context, later = function () { var passed = now() - previous; wait > passed ? timeout = setTimeout(later, wait - passed) : (timeout = null, immediate || (result = func.apply(context, args)), timeout || (args = context = null)) }, debounced = restArguments(function (_args) { return context = this, args = _args, previous = now(), timeout || (timeout = setTimeout(later, wait), immediate && (result = func.apply(context, args))), result }); return debounced.cancel = function () { clearTimeout(timeout), timeout = args = context = null }, debounced } function wrap(func, wrapper) { return partial(wrapper, func) } function negate(predicate) { return function () { return !predicate.apply(this, arguments) } } function compose() { var args = arguments, start = args.length - 1; return function () { for (var i = start, result = args[start].apply(this, arguments); i--;)result = args[i].call(this, result); return result } } function after(times, func) { return function () { return --times < 1 ? func.apply(this, arguments) : void 0 } } function before(times, func) { var memo; return function () { return --times > 0 && (memo = func.apply(this, arguments)), 1 >= times && (func = null), memo } } function findKey(obj, predicate, context) { predicate = cb(predicate, context); for (var key, _keys = keys(obj), i = 0, length = _keys.length; length > i; i++)if (key = _keys[i], predicate(obj[key], key, obj)) return key } function createPredicateIndexFinder(dir) { return function (array, predicate, context) { predicate = cb(predicate, context); for (var length = getLength(array), index = dir > 0 ? 0 : length - 1; index >= 0 && length > index; index += dir)if (predicate(array[index], index, array)) return index; return -1 } } function sortedIndex(array, obj, iteratee, context) { iteratee = cb(iteratee, context, 1); for (var value = iteratee(obj), low = 0, high = getLength(array); high > low;) { var mid = Math.floor((low + high) / 2); iteratee(array[mid]) < value ? low = mid + 1 : high = mid } return low } function createIndexFinder(dir, predicateFind, sortedIndex) { return function (array, item, idx) { var i = 0, length = getLength(array); if ("number" == typeof idx) dir > 0 ? i = idx >= 0 ? idx : Math.max(idx + length, i) : length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; else if (sortedIndex && idx && length) return idx = sortedIndex(array, item), array[idx] === item ? idx : -1; if (item !== item) return idx = predicateFind(slice.call(array, i, length), isNaN$1), idx >= 0 ? idx + i : -1; for (idx = dir > 0 ? i : length - 1; idx >= 0 && length > idx; idx += dir)if (array[idx] === item) return idx; return -1 } } function find(obj, predicate, context) { var keyFinder = isArrayLike(obj) ? findIndex : findKey, key = keyFinder(obj, predicate, context); return void 0 !== key && -1 !== key ? obj[key] : void 0 } function findWhere(obj, attrs) { return find(obj, matcher(attrs)) } function each(obj, iteratee, context) { iteratee = optimizeCb(iteratee, context); var i, length; if (isArrayLike(obj)) for (i = 0, length = obj.length; length > i; i++)iteratee(obj[i], i, obj); else { var _keys = keys(obj); for (i = 0, length = _keys.length; length > i; i++)iteratee(obj[_keys[i]], _keys[i], obj) } return obj } function map(obj, iteratee, context) { iteratee = cb(iteratee, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, results = Array(length), index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; results[index] = iteratee(obj[currentKey], currentKey, obj) } return results } function createReduce(dir) { var reducer = function (obj, iteratee, memo, initial) { var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = dir > 0 ? 0 : length - 1; for (initial || (memo = obj[_keys ? _keys[index] : index], index += dir); index >= 0 && length > index; index += dir) { var currentKey = _keys ? _keys[index] : index; memo = iteratee(memo, obj[currentKey], currentKey, obj) } return memo }; return function (obj, iteratee, memo, context) { var initial = arguments.length >= 3; return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial) } } function filter(obj, predicate, context) { var results = []; return predicate = cb(predicate, context), each(obj, function (value, index, list) { predicate(value, index, list) && results.push(value) }), results } function reject(obj, predicate, context) { return filter(obj, negate(cb(predicate)), context) } function every(obj, predicate, context) { predicate = cb(predicate, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; if (!predicate(obj[currentKey], currentKey, obj)) return !1 } return !0 } function some(obj, predicate, context) { predicate = cb(predicate, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; if (predicate(obj[currentKey], currentKey, obj)) return !0 } return !1 } function contains(obj, item, fromIndex, guard) { return isArrayLike(obj) || (obj = values(obj)), ("number" != typeof fromIndex || guard) && (fromIndex = 0), indexOf(obj, item, fromIndex) >= 0 } function pluck(obj, key) { return map(obj, property(key)) } function where(obj, attrs) { return filter(obj, matcher(attrs)) } function max(obj, iteratee, context) { var value, computed, result = -(1 / 0), lastComputed = -(1 / 0); if (null == iteratee || "number" == typeof iteratee && "object" != typeof obj[0] && null != obj) { obj = isArrayLike(obj) ? obj : values(obj); for (var i = 0, length = obj.length; length > i; i++)value = obj[i], null != value && value > result && (result = value) } else iteratee = cb(iteratee, context), each(obj, function (v, index, list) { computed = iteratee(v, index, list), (computed > lastComputed || computed === -(1 / 0) && result === -(1 / 0)) && (result = v, lastComputed = computed) }); return result } function min(obj, iteratee, context) { var value, computed, result = 1 / 0, lastComputed = 1 / 0; if (null == iteratee || "number" == typeof iteratee && "object" != typeof obj[0] && null != obj) { obj = isArrayLike(obj) ? obj : values(obj); for (var i = 0, length = obj.length; length > i; i++)value = obj[i], null != value && result > value && (result = value) } else iteratee = cb(iteratee, context), each(obj, function (v, index, list) { computed = iteratee(v, index, list), (lastComputed > computed || computed === 1 / 0 && result === 1 / 0) && (result = v, lastComputed = computed) }); return result } function sample(obj, n, guard) { if (null == n || guard) return isArrayLike(obj) || (obj = values(obj)), obj[random(obj.length - 1)]; var sample = isArrayLike(obj) ? clone(obj) : values(obj), length = getLength(sample); n = Math.max(Math.min(n, length), 0); for (var last = length - 1, index = 0; n > index; index++) { var rand = random(index, last), temp = sample[index]; sample[index] = sample[rand], sample[rand] = temp } return sample.slice(0, n) } function shuffle(obj) { return sample(obj, 1 / 0) } function sortBy(obj, iteratee, context) { var index = 0; return iteratee = cb(iteratee, context), pluck(map(obj, function (value, key, list) { return { value: value, index: index++, criteria: iteratee(value, key, list) } }).sort(function (left, right) { var a = left.criteria, b = right.criteria; if (a !== b) { if (a > b || void 0 === a) return 1; if (b > a || void 0 === b) return -1 } return left.index - right.index }), "value") } function group(behavior, partition) { return function (obj, iteratee, context) { var result = partition ? [[], []] : {}; return iteratee = cb(iteratee, context), each(obj, function (value, index) { var key = iteratee(value, index, obj); behavior(result, value, key) }), result } } function toArray(obj) { return obj ? isArray(obj) ? slice.call(obj) : isString(obj) ? obj.match(reStrSymbol) : isArrayLike(obj) ? map(obj, identity) : values(obj) : [] } function size(obj) { return null == obj ? 0 : isArrayLike(obj) ? obj.length : keys(obj).length } function keyInObj(value, key, obj) { return key in obj } function initial(array, n, guard) { return slice.call(array, 0, Math.max(0, array.length - (null == n || guard ? 1 : n))) } function first(array, n, guard) { return null == array || array.length < 1 ? null == n || guard ? void 0 : [] : null == n || guard ? array[0] : initial(array, array.length - n) } function rest(array, n, guard) { return slice.call(array, null == n || guard ? 1 : n) } function last(array, n, guard) { return null == array || array.length < 1 ? null == n || guard ? void 0 : [] : null == n || guard ? array[array.length - 1] : rest(array, Math.max(0, array.length - n)) } function compact(array) { return filter(array, Boolean) } function flatten(array, depth) { return flatten$1(array, depth, !1) } function uniq(array, isSorted, iteratee, context) { isBoolean(isSorted) || (context = iteratee, iteratee = isSorted, isSorted = !1), null != iteratee && (iteratee = cb(iteratee, context)); for (var result = [], seen = [], i = 0, length = getLength(array); length > i; i++) { var value = array[i], computed = iteratee ? iteratee(value, i, array) : value; isSorted && !iteratee ? (i && seen === computed || result.push(value), seen = computed) : iteratee ? contains(seen, computed) || (seen.push(computed), result.push(value)) : contains(result, value) || result.push(value) } return result } function intersection(array) { for (var result = [], argsLength = arguments.length, i = 0, length = getLength(array); length > i; i++) { var item = array[i]; if (!contains(result, item)) { var j; for (j = 1; argsLength > j && contains(arguments[j], item); j++); j === argsLength && result.push(item) } } return result } function unzip(array) { for (var length = array && max(array, getLength).length || 0, result = Array(length), index = 0; length > index; index++)result[index] = pluck(array, index); return result } function object(list, values) { for (var result = {}, i = 0, length = getLength(list); length > i; i++)values ? result[list[i]] = values[i] : result[list[i][0]] = list[i][1]; return result } function range(start, stop, step) { null == stop && (stop = start || 0, start = 0), step || (step = start > stop ? -1 : 1); for (var length = Math.max(Math.ceil((stop - start) / step), 0), range = Array(length), idx = 0; length > idx; idx++, start += step)range[idx] = start; return range } function chunk(array, count) { if (null == count || 1 > count) return []; for (var result = [], i = 0, length = array.length; length > i;)result.push(slice.call(array, i, i += count)); return result } function chainResult(instance, obj) { return instance._chain ? _$1(obj).chain() : obj } function mixin(obj) { return each(functions(obj), function (name) { var func = _$1[name] = obj[name]; _$1.prototype[name] = function () { var args = [this._wrapped]; return push.apply(args, arguments), chainResult(this, func.apply(_$1, args)) } }), _$1 } var VERSION = "1.13.1", root = "object" == typeof self && self.self === self && self || "object" == typeof global && global.global === global && global || Function("return this")() || {}, ArrayProto = Array.prototype, ObjProto = Object.prototype, SymbolProto = "undefined" != typeof Symbol ? Symbol.prototype : null, push = ArrayProto.push, slice = ArrayProto.slice, toString = ObjProto.toString, hasOwnProperty = ObjProto.hasOwnProperty, supportsArrayBuffer = "undefined" != typeof ArrayBuffer, supportsDataView = "undefined" != typeof DataView, nativeIsArray = Array.isArray, nativeKeys = Object.keys, nativeCreate = Object.create, nativeIsView = supportsArrayBuffer && ArrayBuffer.isView, _isNaN = isNaN, _isFinite = isFinite, hasEnumBug = !{ toString: null }.propertyIsEnumerable("toString"), nonEnumerableProps = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"], MAX_ARRAY_INDEX = Math.pow(2, 53) - 1, isString = tagTester("String"), isNumber = tagTester("Number"), isDate = tagTester("Date"), isRegExp = tagTester("RegExp"), isError = tagTester("Error"), isSymbol = tagTester("Symbol"), isArrayBuffer = tagTester("ArrayBuffer"), isFunction = tagTester("Function"), nodelist = root.document && root.document.childNodes; "function" != typeof /./ && "object" != typeof Int8Array && "function" != typeof nodelist && (isFunction = function (obj) { return "function" == typeof obj || !1 }); var isFunction$1 = isFunction, hasObjectTag = tagTester("Object"), hasStringTagBug = supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8))), isIE11 = "undefined" != typeof Map && hasObjectTag(new Map), isDataView = tagTester("DataView"), isDataView$1 = hasStringTagBug ? ie10IsDataView : isDataView, isArray = nativeIsArray || tagTester("Array"), isArguments = tagTester("Arguments"); !function () { isArguments(arguments) || (isArguments = function (obj) { return has$1(obj, "callee") }) }(); var isArguments$1 = isArguments, getByteLength = shallowProperty("byteLength"), isBufferLike = createSizePropertyCheck(getByteLength), typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/, isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(!1), getLength = shallowProperty("length"); _$1.VERSION = VERSION, _$1.prototype.value = function () { return this._wrapped }, _$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value, _$1.prototype.toString = function () { return String(this._wrapped) }; var tagDataView = "[object DataView]", forEachName = "forEach", hasName = "has", commonInit = ["clear", "delete"], mapTail = ["get", hasName, "set"], mapMethods = commonInit.concat(forEachName, mapTail), weakMapMethods = commonInit.concat(mapTail), setMethods = ["add"].concat(commonInit, forEachName, hasName), isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester("Map"), isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester("WeakMap"), isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester("Set"), isWeakSet = tagTester("WeakSet"), extend = createAssigner(allKeys), extendOwn = createAssigner(keys), defaults = createAssigner(allKeys, !0); _$1.toPath = toPath$1, _$1.iteratee = iteratee; var now = Date.now || function () { return (new Date).getTime() }, escapeMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'", "`": "`" }, _escape = createEscaper(escapeMap), unescapeMap = invert(escapeMap), _unescape = createEscaper(unescapeMap), templateSettings = _$1.templateSettings = { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g, escape: /<%-([\s\S]+?)%>/g }, noMatch = /(.)^/, escapes = { "'": "'", "\\": "\\", "\r": "r", "\n": "n", "\u2028": "u2028", "\u2029": "u2029" }, escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g, bareIdentifier = /^\s*(\w|\$)+\s*$/, idCounter = 0, partial = restArguments(function (func, boundArgs) { var placeholder = partial.placeholder, bound = function () { for (var position = 0, length = boundArgs.length, args = Array(length), i = 0; length > i; i++)args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; for (; position < arguments.length;)args.push(arguments[position++]); return executeBound(func, bound, this, this, args) }; return bound }); partial.placeholder = _$1; var bind = restArguments(function (func, context, args) { if (!isFunction$1(func)) throw new TypeError("Bind must be called on a function"); var bound = restArguments(function (callArgs) { return executeBound(func, bound, context, this, args.concat(callArgs)) }); return bound }), isArrayLike = createSizePropertyCheck(getLength), bindAll = restArguments(function (obj, keys) { keys = flatten$1(keys, !1, !1); var index = keys.length; if (1 > index) throw new Error("bindAll must be passed function names"); for (; index--;) { var key = keys[index]; obj[key] = bind(obj[key], obj) } return obj }), delay = restArguments(function (func, wait, args) { return setTimeout(function () { return func.apply(null, args) }, wait) }), defer = partial(delay, _$1, 1), once = partial(before, 2), findIndex = createPredicateIndexFinder(1), findLastIndex = createPredicateIndexFinder(-1), indexOf = createIndexFinder(1, findIndex, sortedIndex), lastIndexOf = createIndexFinder(-1, findLastIndex), reduce = createReduce(1), reduceRight = createReduce(-1), invoke = restArguments(function (obj, path, args) { var contextPath, func; return isFunction$1(path) ? func = path : (path = toPath(path), contextPath = path.slice(0, -1), path = path[path.length - 1]), map(obj, function (context) { var method = func; if (!method) { if (contextPath && contextPath.length && (context = deepGet(context, contextPath)), null == context) return void 0; method = context[path] } return null == method ? method : method.apply(context, args) }) }), groupBy = group(function (result, value, key) { has$1(result, key) ? result[key].push(value) : result[key] = [value] }), indexBy = group(function (result, value, key) { result[key] = value }), countBy = group(function (result, value, key) { has$1(result, key) ? result[key]++ : result[key] = 1 }), partition = group(function (result, value, pass) { result[pass ? 0 : 1].push(value) }, !0), reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g, pick = restArguments(function (obj, keys) { var result = {}, iteratee = keys[0]; if (null == obj) return result; isFunction$1(iteratee) ? (keys.length > 1 && (iteratee = optimizeCb(iteratee, keys[1])), keys = allKeys(obj)) : (iteratee = keyInObj, keys = flatten$1(keys, !1, !1), obj = Object(obj)); for (var i = 0, length = keys.length; length > i; i++) { var key = keys[i], value = obj[key]; iteratee(value, key, obj) && (result[key] = value) } return result }), omit = restArguments(function (obj, keys) { var context, iteratee = keys[0]; return isFunction$1(iteratee) ? (iteratee = negate(iteratee), keys.length > 1 && (context = keys[1])) : (keys = map(flatten$1(keys, !1, !1), String), iteratee = function (value, key) { return !contains(keys, key) }), pick(obj, iteratee, context) }), difference = restArguments(function (array, rest) { return rest = flatten$1(rest, !0, !0), filter(array, function (value) { return !contains(rest, value) }) }), without = restArguments(function (array, otherArrays) { return difference(array, otherArrays) }), union = restArguments(function (arrays) { return uniq(flatten$1(arrays, !0, !0)) }), zip = restArguments(unzip); each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function (name) { var method = ArrayProto[name]; _$1.prototype[name] = function () { var obj = this._wrapped; return null != obj && (method.apply(obj, arguments), "shift" !== name && "splice" !== name || 0 !== obj.length || delete obj[0]), chainResult(this, obj) } }), each(["concat", "join", "slice"], function (name) { var method = ArrayProto[name]; _$1.prototype[name] = function () { var obj = this._wrapped; return null != obj && (obj = method.apply(obj, arguments)), chainResult(this, obj) } }); var allExports = { __proto__: null, VERSION: VERSION, restArguments: restArguments, isObject: isObject, isNull: isNull, isUndefined: isUndefined, isBoolean: isBoolean, isElement: isElement, isString: isString, isNumber: isNumber, isDate: isDate, isRegExp: isRegExp, isError: isError, isSymbol: isSymbol, isArrayBuffer: isArrayBuffer, isDataView: isDataView$1, isArray: isArray, isFunction: isFunction$1, isArguments: isArguments$1, isFinite: isFinite$1, isNaN: isNaN$1, isTypedArray: isTypedArray$1, isEmpty: isEmpty, isMatch: isMatch, isEqual: isEqual, isMap: isMap, isWeakMap: isWeakMap, isSet: isSet, isWeakSet: isWeakSet, keys: keys, allKeys: allKeys, values: values, pairs: pairs, invert: invert, functions: functions, methods: functions, extend: extend, extendOwn: extendOwn, assign: extendOwn, defaults: defaults, create: create, clone: clone, tap: tap, get: get, has: has, mapObject: mapObject, identity: identity, constant: constant, noop: noop, toPath: toPath$1, property: property, propertyOf: propertyOf, matcher: matcher, matches: matcher, times: times, random: random, now: now, escape: _escape, unescape: _unescape, templateSettings: templateSettings, template: template, result: result, uniqueId: uniqueId, chain: chain, iteratee: iteratee, partial: partial, bind: bind, bindAll: bindAll, memoize: memoize, delay: delay, defer: defer, throttle: throttle, debounce: debounce, wrap: wrap, negate: negate, compose: compose, after: after, before: before, once: once, findKey: findKey, findIndex: findIndex, findLastIndex: findLastIndex, sortedIndex: sortedIndex, indexOf: indexOf, lastIndexOf: lastIndexOf, find: find, detect: find, findWhere: findWhere, each: each, forEach: each, map: map, collect: map, reduce: reduce, foldl: reduce, inject: reduce, reduceRight: reduceRight, foldr: reduceRight, filter: filter, select: filter, reject: reject, every: every, all: every, some: some, any: some, contains: contains, includes: contains, include: contains, invoke: invoke, pluck: pluck, where: where, max: max, min: min, shuffle: shuffle, sample: sample, sortBy: sortBy, groupBy: groupBy, indexBy: indexBy, countBy: countBy, partition: partition, toArray: toArray, size: size, pick: pick, omit: omit, first: first, head: first, take: first, initial: initial, last: last, rest: rest, tail: rest, drop: rest, compact: compact, flatten: flatten, without: without, uniq: uniq, unique: uniq, union: union, intersection: intersection, difference: difference, unzip: unzip, transpose: unzip, zip: zip, object: object, range: range, chunk: chunk, mixin: mixin, "default": _$1 }, _ = mixin(allExports); return _._ = _, _ + function restArguments(func, startIndex) { return startIndex = null == startIndex ? func.length - 1 : +startIndex, function () { for (var length = Math.max(arguments.length - startIndex, 0), rest = Array(length), index = 0; length > index; index++)rest[index] = arguments[index + startIndex]; switch (startIndex) { case 0: return func.call(this, rest); case 1: return func.call(this, arguments[0], rest); case 2: return func.call(this, arguments[0], arguments[1], rest) }var args = Array(startIndex + 1); for (index = 0; startIndex > index; index++)args[index] = arguments[index]; return args[startIndex] = rest, func.apply(this, args) } } function isObject(obj) { var type = typeof obj; return "function" === type || "object" === type && !!obj } function isNull(obj) { return null === obj } function isUndefined(obj) { return void 0 === obj } function isBoolean(obj) { return obj === !0 || obj === !1 || "[object Boolean]" === toString.call(obj) } function isElement(obj) { return !(!obj || 1 !== obj.nodeType) } function tagTester(name) { var tag = "[object " + name + "]"; return function (obj) { return toString.call(obj) === tag } } function ie10IsDataView(obj) { return null != obj && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer) } function has$1(obj, key) { return null != obj && hasOwnProperty.call(obj, key) } function isFinite$1(obj) { return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj)) } function isNaN$1(obj) { return isNumber(obj) && _isNaN(obj) } function constant(value) { return function () { return value } } function createSizePropertyCheck(getSizeProperty) { return function (collection) { var sizeProperty = getSizeProperty(collection); return "number" == typeof sizeProperty && sizeProperty >= 0 && MAX_ARRAY_INDEX >= sizeProperty } } function shallowProperty(key) { return function (obj) { return null == obj ? void 0 : obj[key] } } function isTypedArray(obj) { return nativeIsView ? nativeIsView(obj) && !isDataView$1(obj) : isBufferLike(obj) && typedArrayPattern.test(toString.call(obj)) } function emulatedSet(keys) { for (var hash = {}, l = keys.length, i = 0; l > i; ++i)hash[keys[i]] = !0; return { contains: function (key) { return hash[key] }, push: function (key) { return hash[key] = !0, keys.push(key) } } } function collectNonEnumProps(obj, keys) { keys = emulatedSet(keys); var nonEnumIdx = nonEnumerableProps.length, constructor = obj.constructor, proto = isFunction$1(constructor) && constructor.prototype || ObjProto, prop = "constructor"; for (has$1(obj, prop) && !keys.contains(prop) && keys.push(prop); nonEnumIdx--;)prop = nonEnumerableProps[nonEnumIdx], prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop) && keys.push(prop) } function keys(obj) { if (!isObject(obj)) return []; if (nativeKeys) return nativeKeys(obj); var keys = []; for (var key in obj) has$1(obj, key) && keys.push(key); return hasEnumBug && collectNonEnumProps(obj, keys), keys } function isEmpty(obj) { if (null == obj) return !0; var length = getLength(obj); return "number" == typeof length && (isArray(obj) || isString(obj) || isArguments$1(obj)) ? 0 === length : 0 === getLength(keys(obj)) } function isMatch(object, attrs) { var _keys = keys(attrs), length = _keys.length; if (null == object) return !length; for (var obj = Object(object), i = 0; length > i; i++) { var key = _keys[i]; if (attrs[key] !== obj[key] || !(key in obj)) return !1 } return !0 } function _$1(obj) { return obj instanceof _$1 ? obj : this instanceof _$1 ? void (this._wrapped = obj) : new _$1(obj) } function toBufferView(bufferSource) { return new Uint8Array(bufferSource.buffer || bufferSource, bufferSource.byteOffset || 0, getByteLength(bufferSource)) } function eq(a, b, aStack, bStack) { if (a === b) return 0 !== a || 1 / a === 1 / b; if (null == a || null == b) return !1; if (a !== a) return b !== b; var type = typeof a; return "function" !== type && "object" !== type && "object" != typeof b ? !1 : deepEq(a, b, aStack, bStack) } function deepEq(a, b, aStack, bStack) { a instanceof _$1 && (a = a._wrapped), b instanceof _$1 && (b = b._wrapped); var className = toString.call(a); if (className !== toString.call(b)) return !1; if (hasStringTagBug && "[object Object]" == className && isDataView$1(a)) { if (!isDataView$1(b)) return !1; className = tagDataView } switch (className) { case "[object RegExp]": case "[object String]": return "" + a == "" + b; case "[object Number]": return +a !== +a ? +b !== +b : 0 === +a ? 1 / +a === 1 / b : +a === +b; case "[object Date]": case "[object Boolean]": return +a === +b; case "[object Symbol]": return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b); case "[object ArrayBuffer]": case tagDataView: return deepEq(toBufferView(a), toBufferView(b), aStack, bStack) }var areArrays = "[object Array]" === className; if (!areArrays && isTypedArray$1(a)) { var byteLength = getByteLength(a); if (byteLength !== getByteLength(b)) return !1; if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return !0; areArrays = !0 } if (!areArrays) { if ("object" != typeof a || "object" != typeof b) return !1; var aCtor = a.constructor, bCtor = b.constructor; if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor && isFunction$1(bCtor) && bCtor instanceof bCtor) && "constructor" in a && "constructor" in b) return !1 } aStack = aStack || [], bStack = bStack || []; for (var length = aStack.length; length--;)if (aStack[length] === a) return bStack[length] === b; if (aStack.push(a), bStack.push(b), areArrays) { if (length = a.length, length !== b.length) return !1; for (; length--;)if (!eq(a[length], b[length], aStack, bStack)) return !1 } else { var key, _keys = keys(a); if (length = _keys.length, keys(b).length !== length) return !1; for (; length--;)if (key = _keys[length], !has$1(b, key) || !eq(a[key], b[key], aStack, bStack)) return !1 } return aStack.pop(), bStack.pop(), !0 } function isEqual(a, b) { return eq(a, b) } function allKeys(obj) { if (!isObject(obj)) return []; var keys = []; for (var key in obj) keys.push(key); return hasEnumBug && collectNonEnumProps(obj, keys), keys } function ie11fingerprint(methods) { var length = getLength(methods); return function (obj) { if (null == obj) return !1; var keys = allKeys(obj); if (getLength(keys)) return !1; for (var i = 0; length > i; i++)if (!isFunction$1(obj[methods[i]])) return !1; return methods !== weakMapMethods || !isFunction$1(obj[forEachName]) } } function values(obj) { for (var _keys = keys(obj), length = _keys.length, values = Array(length), i = 0; length > i; i++)values[i] = obj[_keys[i]]; return values } function pairs(obj) { for (var _keys = keys(obj), length = _keys.length, pairs = Array(length), i = 0; length > i; i++)pairs[i] = [_keys[i], obj[_keys[i]]]; return pairs } function invert(obj) { for (var result = {}, _keys = keys(obj), i = 0, length = _keys.length; length > i; i++)result[obj[_keys[i]]] = _keys[i]; return result } function functions(obj) { var names = []; for (var key in obj) isFunction$1(obj[key]) && names.push(key); return names.sort() } function createAssigner(keysFunc, defaults) { return function (obj) { var length = arguments.length; if (defaults && (obj = Object(obj)), 2 > length || null == obj) return obj; for (var index = 1; length > index; index++)for (var source = arguments[index], keys = keysFunc(source), l = keys.length, i = 0; l > i; i++) { var key = keys[i]; defaults && void 0 !== obj[key] || (obj[key] = source[key]) } return obj } } function ctor() { return function () { } } function baseCreate(prototype) { if (!isObject(prototype)) return {}; if (nativeCreate) return nativeCreate(prototype); var Ctor = ctor(); Ctor.prototype = prototype; var result = new Ctor; return Ctor.prototype = null, result } function create(prototype, props) { var result = baseCreate(prototype); return props && extendOwn(result, props), result } function clone(obj) { return isObject(obj) ? isArray(obj) ? obj.slice() : extend({}, obj) : obj } function tap(obj, interceptor) { return interceptor(obj), obj } function toPath$1(path) { return isArray(path) ? path : [path] } function toPath(path) { return _$1.toPath(path) } function deepGet(obj, path) { for (var length = path.length, i = 0; length > i; i++) { if (null == obj) return void 0; obj = obj[path[i]] } return length ? obj : void 0 } function get(object, path, defaultValue) { var value = deepGet(object, toPath(path)); return isUndefined(value) ? defaultValue : value } function has(obj, path) { path = toPath(path); for (var length = path.length, i = 0; length > i; i++) { var key = path[i]; if (!has$1(obj, key)) return !1; obj = obj[key] } return !!length } function identity(value) { return value } function matcher(attrs) { return attrs = extendOwn({}, attrs), function (obj) { return isMatch(obj, attrs) } } function property(path) { return path = toPath(path), function (obj) { return deepGet(obj, path) } } function optimizeCb(func, context, argCount) { if (void 0 === context) return func; switch (null == argCount ? 3 : argCount) { case 1: return function (value) { return func.call(context, value) }; case 3: return function (value, index, collection) { return func.call(context, value, index, collection) }; case 4: return function (accumulator, value, index, collection) { return func.call(context, accumulator, value, index, collection) } }return function () { return func.apply(context, arguments) } } function baseIteratee(value, context, argCount) { return null == value ? identity : isFunction$1(value) ? optimizeCb(value, context, argCount) : isObject(value) && !isArray(value) ? matcher(value) : property(value) } function iteratee(value, context) { return baseIteratee(value, context, 1 / 0) } function cb(value, context, argCount) { return _$1.iteratee !== iteratee ? _$1.iteratee(value, context) : baseIteratee(value, context, argCount) } function mapObject(obj, iteratee, context) { iteratee = cb(iteratee, context); for (var _keys = keys(obj), length = _keys.length, results = {}, index = 0; length > index; index++) { var currentKey = _keys[index]; results[currentKey] = iteratee(obj[currentKey], currentKey, obj) } return results } function noop() { } function propertyOf(obj) { return null == obj ? noop : function (path) { return get(obj, path) } } function times(n, iteratee, context) { var accum = Array(Math.max(0, n)); iteratee = optimizeCb(iteratee, context, 1); for (var i = 0; n > i; i++)accum[i] = iteratee(i); return accum } function random(min, max) { return null == max && (max = min, min = 0), min + Math.floor(Math.random() * (max - min + 1)) } function createEscaper(map) { var escaper = function (match) { return map[match] }, source = "(?:" + keys(map).join("|") + ")", testRegexp = RegExp(source), replaceRegexp = RegExp(source, "g"); return function (string) { return string = null == string ? "" : "" + string, testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string } } function escapeChar(match) { return "\\" + escapes[match] } function template(text, settings, oldSettings) { !settings && oldSettings && (settings = oldSettings), settings = defaults({}, settings, _$1.templateSettings); var matcher = RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join("|") + "|$", "g"), index = 0, source = "__p+='"; text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { return source += text.slice(index, offset).replace(escapeRegExp, escapeChar), index = offset + match.length, escape ? source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'" : interpolate ? source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'" : evaluate && (source += "';\n" + evaluate + "\n__p+='"), match }), source += "';\n"; var argument = settings.variable; if (argument) { if (!bareIdentifier.test(argument)) throw new Error("variable is not a bare identifier: " + argument) } else source = "with(obj||{}){\n" + source + "}\n", argument = "obj"; source = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + source + "return __p;\n"; var render; try { render = new Function(argument, "_", source) } catch (e) { throw e.source = source, e } var template = function (data) { return render.call(this, data, _$1) }; return template.source = "function(" + argument + "){\n" + source + "}", template } function result(obj, path, fallback) { path = toPath(path); var length = path.length; if (!length) return isFunction$1(fallback) ? fallback.call(obj) : fallback; for (var i = 0; length > i; i++) { var prop = null == obj ? void 0 : obj[path[i]]; void 0 === prop && (prop = fallback, i = length), obj = isFunction$1(prop) ? prop.call(obj) : prop } return obj } function uniqueId(prefix) { var id = ++idCounter + ""; return prefix ? prefix + id : id } function chain(obj) { var instance = _$1(obj); return instance._chain = !0, instance } function executeBound(sourceFunc, boundFunc, context, callingContext, args) { if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); var self = baseCreate(sourceFunc.prototype), result = sourceFunc.apply(self, args); return isObject(result) ? result : self } function flatten$1(input, depth, strict, output) { if (output = output || [], depth || 0 === depth) { if (0 >= depth) return output.concat(input) } else depth = 1 / 0; for (var idx = output.length, i = 0, length = getLength(input); length > i; i++) { var value = input[i]; if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) if (depth > 1) flatten$1(value, depth - 1, strict, output), idx = output.length; else for (var j = 0, len = value.length; len > j;)output[idx++] = value[j++]; else strict || (output[idx++] = value) } return output } function memoize(func, hasher) { var memoize = function (key) { var cache = memoize.cache, address = "" + (hasher ? hasher.apply(this, arguments) : key); return has$1(cache, address) || (cache[address] = func.apply(this, arguments)), cache[address] }; return memoize.cache = {}, memoize } function throttle(func, wait, options) { var timeout, context, args, result, previous = 0; options || (options = {}); var later = function () { previous = options.leading === !1 ? 0 : now(), timeout = null, result = func.apply(context, args), timeout || (context = args = null) }, throttled = function () { var _now = now(); previous || options.leading !== !1 || (previous = _now); var remaining = wait - (_now - previous); return context = this, args = arguments, 0 >= remaining || remaining > wait ? (timeout && (clearTimeout(timeout), timeout = null), previous = _now, result = func.apply(context, args), timeout || (context = args = null)) : timeout || options.trailing === !1 || (timeout = setTimeout(later, remaining)), result }; return throttled.cancel = function () { clearTimeout(timeout), previous = 0, timeout = context = args = null }, throttled } function debounce(func, wait, immediate) { var timeout, previous, args, result, context, later = function () { var passed = now() - previous; wait > passed ? timeout = setTimeout(later, wait - passed) : (timeout = null, immediate || (result = func.apply(context, args)), timeout || (args = context = null)) }, debounced = restArguments(function (_args) { return context = this, args = _args, previous = now(), timeout || (timeout = setTimeout(later, wait), immediate && (result = func.apply(context, args))), result }); return debounced.cancel = function () { clearTimeout(timeout), timeout = args = context = null }, debounced } function wrap(func, wrapper) { return partial(wrapper, func) } function negate(predicate) { return function () { return !predicate.apply(this, arguments) } } function compose() { var args = arguments, start = args.length - 1; return function () { for (var i = start, result = args[start].apply(this, arguments); i--;)result = args[i].call(this, result); return result } } function after(times, func) { return function () { return --times < 1 ? func.apply(this, arguments) : void 0 } } function before(times, func) { var memo; return function () { return --times > 0 && (memo = func.apply(this, arguments)), 1 >= times && (func = null), memo } } function findKey(obj, predicate, context) { predicate = cb(predicate, context); for (var key, _keys = keys(obj), i = 0, length = _keys.length; length > i; i++)if (key = _keys[i], predicate(obj[key], key, obj)) return key } function createPredicateIndexFinder(dir) { return function (array, predicate, context) { predicate = cb(predicate, context); for (var length = getLength(array), index = dir > 0 ? 0 : length - 1; index >= 0 && length > index; index += dir)if (predicate(array[index], index, array)) return index; return -1 } } function sortedIndex(array, obj, iteratee, context) { iteratee = cb(iteratee, context, 1); for (var value = iteratee(obj), low = 0, high = getLength(array); high > low;) { var mid = Math.floor((low + high) / 2); iteratee(array[mid]) < value ? low = mid + 1 : high = mid } return low } function createIndexFinder(dir, predicateFind, sortedIndex) { return function (array, item, idx) { var i = 0, length = getLength(array); if ("number" == typeof idx) dir > 0 ? i = idx >= 0 ? idx : Math.max(idx + length, i) : length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; else if (sortedIndex && idx && length) return idx = sortedIndex(array, item), array[idx] === item ? idx : -1; if (item !== item) return idx = predicateFind(slice.call(array, i, length), isNaN$1), idx >= 0 ? idx + i : -1; for (idx = dir > 0 ? i : length - 1; idx >= 0 && length > idx; idx += dir)if (array[idx] === item) return idx; return -1 } } function find(obj, predicate, context) { var keyFinder = isArrayLike(obj) ? findIndex : findKey, key = keyFinder(obj, predicate, context); return void 0 !== key && -1 !== key ? obj[key] : void 0 } function findWhere(obj, attrs) { return find(obj, matcher(attrs)) } function each(obj, iteratee, context) { iteratee = optimizeCb(iteratee, context); var i, length; if (isArrayLike(obj)) for (i = 0, length = obj.length; length > i; i++)iteratee(obj[i], i, obj); else { var _keys = keys(obj); for (i = 0, length = _keys.length; length > i; i++)iteratee(obj[_keys[i]], _keys[i], obj) } return obj } function map(obj, iteratee, context) { iteratee = cb(iteratee, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, results = Array(length), index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; results[index] = iteratee(obj[currentKey], currentKey, obj) } return results } function createReduce(dir) { var reducer = function (obj, iteratee, memo, initial) { var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = dir > 0 ? 0 : length - 1; for (initial || (memo = obj[_keys ? _keys[index] : index], index += dir); index >= 0 && length > index; index += dir) { var currentKey = _keys ? _keys[index] : index; memo = iteratee(memo, obj[currentKey], currentKey, obj) } return memo }; return function (obj, iteratee, memo, context) { var initial = arguments.length >= 3; return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial) } } function filter(obj, predicate, context) { var results = []; return predicate = cb(predicate, context), each(obj, function (value, index, list) { predicate(value, index, list) && results.push(value) }), results } function reject(obj, predicate, context) { return filter(obj, negate(cb(predicate)), context) } function every(obj, predicate, context) { predicate = cb(predicate, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; if (!predicate(obj[currentKey], currentKey, obj)) return !1 } return !0 } function some(obj, predicate, context) { predicate = cb(predicate, context); for (var _keys = !isArrayLike(obj) && keys(obj), length = (_keys || obj).length, index = 0; length > index; index++) { var currentKey = _keys ? _keys[index] : index; if (predicate(obj[currentKey], currentKey, obj)) return !0 } return !1 } function contains(obj, item, fromIndex, guard) { return isArrayLike(obj) || (obj = values(obj)), ("number" != typeof fromIndex || guard) && (fromIndex = 0), indexOf(obj, item, fromIndex) >= 0 } function pluck(obj, key) { return map(obj, property(key)) } function where(obj, attrs) { return filter(obj, matcher(attrs)) } function max(obj, iteratee, context) { var value, computed, result = -(1 / 0), lastComputed = -(1 / 0); if (null == iteratee || "number" == typeof iteratee && "object" != typeof obj[0] && null != obj) { obj = isArrayLike(obj) ? obj : values(obj); for (var i = 0, length = obj.length; length > i; i++)value = obj[i], null != value && value > result && (result = value) } else iteratee = cb(iteratee, context), each(obj, function (v, index, list) { computed = iteratee(v, index, list), (computed > lastComputed || computed === -(1 / 0) && result === -(1 / 0)) && (result = v, lastComputed = computed) }); return result } function min(obj, iteratee, context) { var value, computed, result = 1 / 0, lastComputed = 1 / 0; if (null == iteratee || "number" == typeof iteratee && "object" != typeof obj[0] && null != obj) { obj = isArrayLike(obj) ? obj : values(obj); for (var i = 0, length = obj.length; length > i; i++)value = obj[i], null != value && result > value && (result = value) } else iteratee = cb(iteratee, context), each(obj, function (v, index, list) { computed = iteratee(v, index, list), (lastComputed > computed || computed === 1 / 0 && result === 1 / 0) && (result = v, lastComputed = computed) }); return result } function sample(obj, n, guard) { if (null == n || guard) return isArrayLike(obj) || (obj = values(obj)), obj[random(obj.length - 1)]; var sample = isArrayLike(obj) ? clone(obj) : values(obj), length = getLength(sample); n = Math.max(Math.min(n, length), 0); for (var last = length - 1, index = 0; n > index; index++) { var rand = random(index, last), temp = sample[index]; sample[index] = sample[rand], sample[rand] = temp } return sample.slice(0, n) } function shuffle(obj) { return sample(obj, 1 / 0) } function sortBy(obj, iteratee, context) { var index = 0; return iteratee = cb(iteratee, context), pluck(map(obj, function (value, key, list) { return { value: value, index: index++, criteria: iteratee(value, key, list) } }).sort(function (left, right) { var a = left.criteria, b = right.criteria; if (a !== b) { if (a > b || void 0 === a) return 1; if (b > a || void 0 === b) return -1 } return left.index - right.index }), "value") } function group(behavior, partition) { return function (obj, iteratee, context) { var result = partition ? [[], []] : {}; return iteratee = cb(iteratee, context), each(obj, function (value, index) { var key = iteratee(value, index, obj); behavior(result, value, key) }), result } } function toArray(obj) { return obj ? isArray(obj) ? slice.call(obj) : isString(obj) ? obj.match(reStrSymbol) : isArrayLike(obj) ? map(obj, identity) : values(obj) : [] } function size(obj) { return null == obj ? 0 : isArrayLike(obj) ? obj.length : keys(obj).length } function keyInObj(value, key, obj) { return key in obj } function initial(array, n, guard) { return slice.call(array, 0, Math.max(0, array.length - (null == n || guard ? 1 : n))) } function first(array, n, guard) { return null == array || array.length < 1 ? null == n || guard ? void 0 : [] : null == n || guard ? array[0] : initial(array, array.length - n) } function rest(array, n, guard) { return slice.call(array, null == n || guard ? 1 : n) } function last(array, n, guard) { return null == array || array.length < 1 ? null == n || guard ? void 0 : [] : null == n || guard ? array[array.length - 1] : rest(array, Math.max(0, array.length - n)) } function compact(array) { return filter(array, Boolean) } function flatten(array, depth) { return flatten$1(array, depth, !1) } function uniq(array, isSorted, iteratee, context) { isBoolean(isSorted) || (context = iteratee, iteratee = isSorted, isSorted = !1), null != iteratee && (iteratee = cb(iteratee, context)); for (var result = [], seen = [], i = 0, length = getLength(array); length > i; i++) { var value = array[i], computed = iteratee ? iteratee(value, i, array) : value; isSorted && !iteratee ? (i && seen === computed || result.push(value), seen = computed) : iteratee ? contains(seen, computed) || (seen.push(computed), result.push(value)) : contains(result, value) || result.push(value) } return result } function intersection(array) { for (var result = [], argsLength = arguments.length, i = 0, length = getLength(array); length > i; i++) { var item = array[i]; if (!contains(result, item)) { var j; for (j = 1; argsLength > j && contains(arguments[j], item); j++); j === argsLength && result.push(item) } } return result } function unzip(array) { + for (var length = array && max(array, getLength).length || 0, result = Array(length), index = 0; length > index; index++)result[index] = pluck(array, index); return result + } function object(list, values) { for (var result = {}, i = 0, length = getLength(list); length > i; i++)values ? result[list[i]] = values[i] : result[list[i][0]] = list[i][1]; return result } function range(start, stop, step) { null == stop && (stop = start || 0, start = 0), step || (step = start > stop ? -1 : 1); for (var length = Math.max(Math.ceil((stop - start) / step), 0), range = Array(length), idx = 0; length > idx; idx++, start += step)range[idx] = start; return range } function chunk(array, count) { if (null == count || 1 > count) return []; for (var result = [], i = 0, length = array.length; length > i;)result.push(slice.call(array, i, i += count)); return result } function chainResult(instance, obj) { return instance._chain ? _$1(obj).chain() : obj } function mixin(obj) { return each(functions(obj), function (name) { var func = _$1[name] = obj[name]; _$1.prototype[name] = function () { var args = [this._wrapped]; return push.apply(args, arguments), chainResult(this, func.apply(_$1, args)) } }), _$1 } var VERSION = "1.13.1", root = "object" == typeof self && self.self === self && self || "object" == typeof global && global.global === global && global || Function("return this")() || {}, ArrayProto = Array.prototype, ObjProto = Object.prototype, SymbolProto = "undefined" != typeof Symbol ? Symbol.prototype : null, push = ArrayProto.push, slice = ArrayProto.slice, toString = ObjProto.toString, hasOwnProperty = ObjProto.hasOwnProperty, supportsArrayBuffer = "undefined" != typeof ArrayBuffer, supportsDataView = "undefined" != typeof DataView, nativeIsArray = Array.isArray, nativeKeys = Object.keys, nativeCreate = Object.create, nativeIsView = supportsArrayBuffer && ArrayBuffer.isView, _isNaN = isNaN, _isFinite = isFinite, hasEnumBug = !{ toString: null }.propertyIsEnumerable("toString"), nonEnumerableProps = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"], MAX_ARRAY_INDEX = Math.pow(2, 53) - 1, isString = tagTester("String"), isNumber = tagTester("Number"), isDate = tagTester("Date"), isRegExp = tagTester("RegExp"), isError = tagTester("Error"), isSymbol = tagTester("Symbol"), isArrayBuffer = tagTester("ArrayBuffer"), isFunction = tagTester("Function"), nodelist = root.document && root.document.childNodes; "function" != typeof /./ && "object" != typeof Int8Array && "function" != typeof nodelist && (isFunction = function (obj) { return "function" == typeof obj || !1 }); var isFunction$1 = isFunction, hasObjectTag = tagTester("Object"), hasStringTagBug = supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8))), isIE11 = "undefined" != typeof Map && hasObjectTag(new Map), isDataView = tagTester("DataView"), isDataView$1 = hasStringTagBug ? ie10IsDataView : isDataView, isArray = nativeIsArray || tagTester("Array"), isArguments = tagTester("Arguments"); !function () { isArguments(arguments) || (isArguments = function (obj) { return has$1(obj, "callee") }) }(); var isArguments$1 = isArguments, getByteLength = shallowProperty("byteLength"), isBufferLike = createSizePropertyCheck(getByteLength), typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/, isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(!1), getLength = shallowProperty("length"); _$1.VERSION = VERSION, _$1.prototype.value = function () { return this._wrapped }, _$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value, _$1.prototype.toString = function () { return String(this._wrapped) }; var tagDataView = "[object DataView]", forEachName = "forEach", hasName = "has", commonInit = ["clear", "delete"], mapTail = ["get", hasName, "set"], mapMethods = commonInit.concat(forEachName, mapTail), weakMapMethods = commonInit.concat(mapTail), setMethods = ["add"].concat(commonInit, forEachName, hasName), isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester("Map"), isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester("WeakMap"), isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester("Set"), isWeakSet = tagTester("WeakSet"), extend = createAssigner(allKeys), extendOwn = createAssigner(keys), defaults = createAssigner(allKeys, !0); _$1.toPath = toPath$1, _$1.iteratee = iteratee; var now = Date.now || function () { return (new Date).getTime() }, escapeMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'", "`": "`" }, _escape = createEscaper(escapeMap), unescapeMap = invert(escapeMap), _unescape = createEscaper(unescapeMap), templateSettings = _$1.templateSettings = { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g, escape: /<%-([\s\S]+?)%>/g }, noMatch = /(.)^/, escapes = { "'": "'", "\\": "\\", "\r": "r", "\n": "n", "\u2028": "u2028", "\u2029": "u2029" }, escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g, bareIdentifier = /^\s*(\w|\$)+\s*$/, idCounter = 0, partial = restArguments(function (func, boundArgs) { var placeholder = partial.placeholder, bound = function () { for (var position = 0, length = boundArgs.length, args = Array(length), i = 0; length > i; i++)args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; for (; position < arguments.length;)args.push(arguments[position++]); return executeBound(func, bound, this, this, args) }; return bound }); partial.placeholder = _$1; var bind = restArguments(function (func, context, args) { if (!isFunction$1(func)) throw new TypeError("Bind must be called on a function"); var bound = restArguments(function (callArgs) { return executeBound(func, bound, context, this, args.concat(callArgs)) }); return bound }), isArrayLike = createSizePropertyCheck(getLength), bindAll = restArguments(function (obj, keys) { keys = flatten$1(keys, !1, !1); var index = keys.length; if (1 > index) throw new Error("bindAll must be passed function names"); for (; index--;) { var key = keys[index]; obj[key] = bind(obj[key], obj) } return obj }), delay = restArguments(function (func, wait, args) { return setTimeout(function () { return func.apply(null, args) }, wait) }), defer = partial(delay, _$1, 1), once = partial(before, 2), findIndex = createPredicateIndexFinder(1), findLastIndex = createPredicateIndexFinder(-1), indexOf = createIndexFinder(1, findIndex, sortedIndex), lastIndexOf = createIndexFinder(-1, findLastIndex), reduce = createReduce(1), reduceRight = createReduce(-1), invoke = restArguments(function (obj, path, args) { var contextPath, func; return isFunction$1(path) ? func = path : (path = toPath(path), contextPath = path.slice(0, -1), path = path[path.length - 1]), map(obj, function (context) { var method = func; if (!method) { if (contextPath && contextPath.length && (context = deepGet(context, contextPath)), null == context) return void 0; method = context[path] } return null == method ? method : method.apply(context, args) }) }), groupBy = group(function (result, value, key) { has$1(result, key) ? result[key].push(value) : result[key] = [value] }), indexBy = group(function (result, value, key) { result[key] = value }), countBy = group(function (result, value, key) { has$1(result, key) ? result[key]++ : result[key] = 1 }), partition = group(function (result, value, pass) { result[pass ? 0 : 1].push(value) }, !0), reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g, pick = restArguments(function (obj, keys) { var result = {}, iteratee = keys[0]; if (null == obj) return result; isFunction$1(iteratee) ? (keys.length > 1 && (iteratee = optimizeCb(iteratee, keys[1])), keys = allKeys(obj)) : (iteratee = keyInObj, keys = flatten$1(keys, !1, !1), obj = Object(obj)); for (var i = 0, length = keys.length; length > i; i++) { var key = keys[i], value = obj[key]; iteratee(value, key, obj) && (result[key] = value) } return result }), omit = restArguments(function (obj, keys) { var context, iteratee = keys[0]; return isFunction$1(iteratee) ? (iteratee = negate(iteratee), keys.length > 1 && (context = keys[1])) : (keys = map(flatten$1(keys, !1, !1), String), iteratee = function (value, key) { return !contains(keys, key) }), pick(obj, iteratee, context) }), difference = restArguments(function (array, rest) { return rest = flatten$1(rest, !0, !0), filter(array, function (value) { return !contains(rest, value) }) }), without = restArguments(function (array, otherArrays) { return difference(array, otherArrays) }), union = restArguments(function (arrays) { return uniq(flatten$1(arrays, !0, !0)) }), zip = restArguments(unzip); each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function (name) { var method = ArrayProto[name]; _$1.prototype[name] = function () { var obj = this._wrapped; return null != obj && (method.apply(obj, arguments), "shift" !== name && "splice" !== name || 0 !== obj.length || delete obj[0]), chainResult(this, obj) } }), each(["concat", "join", "slice"], function (name) { var method = ArrayProto[name]; _$1.prototype[name] = function () { var obj = this._wrapped; return null != obj && (obj = method.apply(obj, arguments)), chainResult(this, obj) } }); var allExports = { __proto__: null, VERSION: VERSION, restArguments: restArguments, isObject: isObject, isNull: isNull, isUndefined: isUndefined, isBoolean: isBoolean, isElement: isElement, isString: isString, isNumber: isNumber, isDate: isDate, isRegExp: isRegExp, isError: isError, isSymbol: isSymbol, isArrayBuffer: isArrayBuffer, isDataView: isDataView$1, isArray: isArray, isFunction: isFunction$1, isArguments: isArguments$1, isFinite: isFinite$1, isNaN: isNaN$1, isTypedArray: isTypedArray$1, isEmpty: isEmpty, isMatch: isMatch, isEqual: isEqual, isMap: isMap, isWeakMap: isWeakMap, isSet: isSet, isWeakSet: isWeakSet, keys: keys, allKeys: allKeys, values: values, pairs: pairs, invert: invert, functions: functions, methods: functions, extend: extend, extendOwn: extendOwn, assign: extendOwn, defaults: defaults, create: create, clone: clone, tap: tap, get: get, has: has, mapObject: mapObject, identity: identity, constant: constant, noop: noop, toPath: toPath$1, property: property, propertyOf: propertyOf, matcher: matcher, matches: matcher, times: times, random: random, now: now, escape: _escape, unescape: _unescape, templateSettings: templateSettings, template: template, result: result, uniqueId: uniqueId, chain: chain, iteratee: iteratee, partial: partial, bind: bind, bindAll: bindAll, memoize: memoize, delay: delay, defer: defer, throttle: throttle, debounce: debounce, wrap: wrap, negate: negate, compose: compose, after: after, before: before, once: once, findKey: findKey, findIndex: findIndex, findLastIndex: findLastIndex, sortedIndex: sortedIndex, indexOf: indexOf, lastIndexOf: lastIndexOf, find: find, detect: find, findWhere: findWhere, each: each, forEach: each, map: map, collect: map, reduce: reduce, foldl: reduce, inject: reduce, reduceRight: reduceRight, foldr: reduceRight, filter: filter, select: filter, reject: reject, every: every, all: every, some: some, any: some, contains: contains, includes: contains, include: contains, invoke: invoke, pluck: pluck, where: where, max: max, min: min, shuffle: shuffle, sample: sample, sortBy: sortBy, groupBy: groupBy, indexBy: indexBy, countBy: countBy, partition: partition, toArray: toArray, size: size, pick: pick, omit: omit, first: first, head: first, take: first, initial: initial, last: last, rest: rest, tail: rest, drop: rest, compact: compact, flatten: flatten, without: without, uniq: uniq, unique: uniq, union: union, intersection: intersection, difference: difference, unzip: unzip, transpose: unzip, zip: zip, object: object, range: range, chunk: chunk, mixin: mixin, "default": _$1 }, _ = mixin(allExports); return _._ = _, _ }) }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) - }, {}], 104: [function (require, module, exports) { "function" == typeof Object.create ? module.exports = function (ctor, superCtor) { ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: !1, writable: !0, configurable: !0 } }) } : module.exports = function (ctor, superCtor) { ctor.super_ = superCtor; var TempCtor = function () { }; TempCtor.prototype = superCtor.prototype, ctor.prototype = new TempCtor, ctor.prototype.constructor = ctor } }, {}], 105: [function (require, module, exports) { module.exports = function (arg) { return arg && "object" == typeof arg && "function" == typeof arg.copy && "function" == typeof arg.fill && "function" == typeof arg.readUInt8 } }, {}], 106: [function (require, module, exports) { - (function (process, global) { - function inspect(obj, opts) { var ctx = { seen: [], stylize: stylizeNoColor }; return arguments.length >= 3 && (ctx.depth = arguments[2]), arguments.length >= 4 && (ctx.colors = arguments[3]), isBoolean(opts) ? ctx.showHidden = opts : opts && exports._extend(ctx, opts), isUndefined(ctx.showHidden) && (ctx.showHidden = !1), isUndefined(ctx.depth) && (ctx.depth = 2), isUndefined(ctx.colors) && (ctx.colors = !1), isUndefined(ctx.customInspect) && (ctx.customInspect = !0), ctx.colors && (ctx.stylize = stylizeWithColor), formatValue(ctx, obj, ctx.depth) } function stylizeWithColor(str, styleType) { var style = inspect.styles[styleType]; return style ? "[" + inspect.colors[style][0] + "m" + str + "[" + inspect.colors[style][1] + "m" : str } function stylizeNoColor(str, styleType) { return str } function arrayToHash(array) { var hash = {}; return array.forEach(function (val, idx) { hash[val] = !0 }), hash } function formatValue(ctx, value, recurseTimes) { if (ctx.customInspect && value && isFunction(value.inspect) && value.inspect !== exports.inspect && (!value.constructor || value.constructor.prototype !== value)) { var ret = value.inspect(recurseTimes, ctx); return isString(ret) || (ret = formatValue(ctx, ret, recurseTimes)), ret } var primitive = formatPrimitive(ctx, value); if (primitive) return primitive; var keys = Object.keys(value), visibleKeys = arrayToHash(keys); if (ctx.showHidden && (keys = Object.getOwnPropertyNames(value)), isError(value) && (keys.indexOf("message") >= 0 || keys.indexOf("description") >= 0)) return formatError(value); if (0 === keys.length) { if (isFunction(value)) { var name = value.name ? ": " + value.name : ""; return ctx.stylize("[Function" + name + "]", "special") } if (isRegExp(value)) return ctx.stylize(RegExp.prototype.toString.call(value), "regexp"); if (isDate(value)) return ctx.stylize(Date.prototype.toString.call(value), "date"); if (isError(value)) return formatError(value) } var base = "", array = !1, braces = ["{", "}"]; if (isArray(value) && (array = !0, braces = ["[", "]"]), isFunction(value)) { var n = value.name ? ": " + value.name : ""; base = " [Function" + n + "]" } if (isRegExp(value) && (base = " " + RegExp.prototype.toString.call(value)), isDate(value) && (base = " " + Date.prototype.toUTCString.call(value)), isError(value) && (base = " " + formatError(value)), 0 === keys.length && (!array || 0 == value.length)) return braces[0] + base + braces[1]; if (0 > recurseTimes) return isRegExp(value) ? ctx.stylize(RegExp.prototype.toString.call(value), "regexp") : ctx.stylize("[Object]", "special"); ctx.seen.push(value); var output; return output = array ? formatArray(ctx, value, recurseTimes, visibleKeys, keys) : keys.map(function (key) { return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) }), ctx.seen.pop(), reduceToSingleString(output, base, braces) } function formatPrimitive(ctx, value) { if (isUndefined(value)) return ctx.stylize("undefined", "undefined"); if (isString(value)) { var simple = "'" + JSON.stringify(value).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'"; return ctx.stylize(simple, "string") } return isNumber(value) ? ctx.stylize("" + value, "number") : isBoolean(value) ? ctx.stylize("" + value, "boolean") : isNull(value) ? ctx.stylize("null", "null") : void 0 } function formatError(value) { return "[" + Error.prototype.toString.call(value) + "]" } function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { for (var output = [], i = 0, l = value.length; l > i; ++i)hasOwnProperty(value, String(i)) ? output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), !0)) : output.push(""); return keys.forEach(function (key) { key.match(/^\d+$/) || output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, !0)) }), output } function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { var name, str, desc; if (desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }, desc.get ? str = desc.set ? ctx.stylize("[Getter/Setter]", "special") : ctx.stylize("[Getter]", "special") : desc.set && (str = ctx.stylize("[Setter]", "special")), hasOwnProperty(visibleKeys, key) || (name = "[" + key + "]"), str || (ctx.seen.indexOf(desc.value) < 0 ? (str = isNull(recurseTimes) ? formatValue(ctx, desc.value, null) : formatValue(ctx, desc.value, recurseTimes - 1), str.indexOf("\n") > -1 && (str = array ? str.split("\n").map(function (line) { return " " + line }).join("\n").substr(2) : "\n" + str.split("\n").map(function (line) { return " " + line }).join("\n"))) : str = ctx.stylize("[Circular]", "special")), isUndefined(name)) { if (array && key.match(/^\d+$/)) return str; name = JSON.stringify("" + key), name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (name = name.substr(1, name.length - 2), name = ctx.stylize(name, "name")) : (name = name.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), name = ctx.stylize(name, "string")) } return name + ": " + str } function reduceToSingleString(output, base, braces) { var numLinesEst = 0, length = output.reduce(function (prev, cur) { return numLinesEst++, cur.indexOf("\n") >= 0 && numLinesEst++, prev + cur.replace(/\u001b\[\d\d?m/g, "").length + 1 }, 0); return length > 60 ? braces[0] + ("" === base ? "" : base + "\n ") + " " + output.join(",\n ") + " " + braces[1] : braces[0] + base + " " + output.join(", ") + " " + braces[1] } function isArray(ar) { return Array.isArray(ar) } function isBoolean(arg) { return "boolean" == typeof arg } function isNull(arg) { return null === arg } function isNullOrUndefined(arg) { return null == arg } function isNumber(arg) { return "number" == typeof arg } function isString(arg) { return "string" == typeof arg } function isSymbol(arg) { return "symbol" == typeof arg } function isUndefined(arg) { return void 0 === arg } function isRegExp(re) { return isObject(re) && "[object RegExp]" === objectToString(re) } function isObject(arg) { return "object" == typeof arg && null !== arg } function isDate(d) { return isObject(d) && "[object Date]" === objectToString(d) } function isError(e) { return isObject(e) && ("[object Error]" === objectToString(e) || e instanceof Error) } function isFunction(arg) { return "function" == typeof arg } function isPrimitive(arg) { return null === arg || "boolean" == typeof arg || "number" == typeof arg || "string" == typeof arg || "symbol" == typeof arg || "undefined" == typeof arg } function objectToString(o) { return Object.prototype.toString.call(o) } function pad(n) { return 10 > n ? "0" + n.toString(10) : n.toString(10) } function timestamp() { var d = new Date, time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(":"); return [d.getDate(), months[d.getMonth()], time].join(" ") } function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop) } var formatRegExp = /%[sdj%]/g; exports.format = function (f) { if (!isString(f)) { for (var objects = [], i = 0; i < arguments.length; i++)objects.push(inspect(arguments[i])); return objects.join(" ") } for (var i = 1, args = arguments, len = args.length, str = String(f).replace(formatRegExp, function (x) { if ("%%" === x) return "%"; if (i >= len) return x; switch (x) { case "%s": return String(args[i++]); case "%d": return Number(args[i++]); case "%j": try { return JSON.stringify(args[i++]) } catch (_) { return "[Circular]" } default: return x } }), x = args[i]; len > i; x = args[++i])str += isNull(x) || !isObject(x) ? " " + x : " " + inspect(x); return str }, exports.deprecate = function (fn, msg) { function deprecated() { if (!warned) { if (process.throwDeprecation) throw new Error(msg); process.traceDeprecation ? console.trace(msg) : console.error(msg), warned = !0 } return fn.apply(this, arguments) } if (isUndefined(global.process)) return function () { return exports.deprecate(fn, msg).apply(this, arguments) }; if (process.noDeprecation === !0) return fn; var warned = !1; return deprecated }; var debugEnviron, debugs = {}; exports.debuglog = function (set) { if (isUndefined(debugEnviron) && (debugEnviron = process.env.NODE_DEBUG || ""), set = set.toUpperCase(), !debugs[set]) if (new RegExp("\\b" + set + "\\b", "i").test(debugEnviron)) { var pid = process.pid; debugs[set] = function () { var msg = exports.format.apply(exports, arguments); console.error("%s %d: %s", set, pid, msg) } } else debugs[set] = function () { }; return debugs[set] }, exports.inspect = inspect, inspect.colors = { - bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], - green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] - }, inspect.styles = { special: "cyan", number: "yellow", "boolean": "yellow", undefined: "grey", "null": "bold", string: "green", date: "magenta", regexp: "red" }, exports.isArray = isArray, exports.isBoolean = isBoolean, exports.isNull = isNull, exports.isNullOrUndefined = isNullOrUndefined, exports.isNumber = isNumber, exports.isString = isString, exports.isSymbol = isSymbol, exports.isUndefined = isUndefined, exports.isRegExp = isRegExp, exports.isObject = isObject, exports.isDate = isDate, exports.isError = isError, exports.isFunction = isFunction, exports.isPrimitive = isPrimitive, exports.isBuffer = require("./support/isBuffer"); var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; exports.log = function () { console.log("%s - %s", timestamp(), exports.format.apply(exports, arguments)) }, exports.inherits = require("inherits"), exports._extend = function (origin, add) { if (!add || !isObject(add)) return origin; for (var keys = Object.keys(add), i = keys.length; i--;)origin[keys[i]] = add[keys[i]]; return origin } - }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) - }, { "./support/isBuffer": 105, _process: 102, inherits: 104 }], 107: [function (require, module, exports) { (function () { var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject, slice = [].slice, hasProp = {}.hasOwnProperty; assign = function () { var i, key, len, source, sources, target; if (target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [], isFunction(Object.assign)) Object.assign.apply(null, arguments); else for (i = 0, len = sources.length; len > i; i++)if (source = sources[i], null != source) for (key in source) hasProp.call(source, key) && (target[key] = source[key]); return target }, isFunction = function (val) { return !!val && "[object Function]" === Object.prototype.toString.call(val) }, isObject = function (val) { var ref; return !!val && ("function" == (ref = typeof val) || "object" === ref) }, isArray = function (val) { return isFunction(Array.isArray) ? Array.isArray(val) : "[object Array]" === Object.prototype.toString.call(val) }, isEmpty = function (val) { var key; if (isArray(val)) return !val.length; for (key in val) if (hasProp.call(val, key)) return !1; return !0 }, isPlainObject = function (val) { var ctor, proto; return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && "function" == typeof ctor && ctor instanceof ctor && Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object) }, getValue = function (obj) { return isFunction(obj.valueOf) ? obj.valueOf() : obj }, module.exports.assign = assign, module.exports.isFunction = isFunction, module.exports.isObject = isObject, module.exports.isArray = isArray, module.exports.isEmpty = isEmpty, module.exports.isPlainObject = isPlainObject, module.exports.getValue = getValue }).call(this) }, {}], 108: [function (require, module, exports) { (function () { var XMLAttribute; module.exports = XMLAttribute = function () { function XMLAttribute(parent, name, value) { if (this.options = parent.options, this.stringify = parent.stringify, this.parent = parent, null == name) throw new Error("Missing attribute name. " + this.debugInfo(name)); if (null == value) throw new Error("Missing attribute value. " + this.debugInfo(name)); this.name = this.stringify.attName(name), this.value = this.stringify.attValue(value) } return XMLAttribute.prototype.clone = function () { return Object.create(this) }, XMLAttribute.prototype.toString = function (options) { return this.options.writer.set(options).attribute(this) }, XMLAttribute.prototype.debugInfo = function (name) { var ref, ref1; return name = name || this.name, null != name || (null != (ref = this.parent) ? ref.name : void 0) ? null == name ? "parent: <" + this.parent.name + ">" : (null != (ref1 = this.parent) ? ref1.name : void 0) ? "attribute: {" + name + "}, parent: <" + this.parent.name + ">" : "attribute: {" + name + "}" : "" }, XMLAttribute }() }).call(this) }, {}], 109: [function (require, module, exports) { (function () { var XMLCData, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLCData = function (superClass) { function XMLCData(parent, text) { if (XMLCData.__super__.constructor.call(this, parent), null == text) throw new Error("Missing CDATA text. " + this.debugInfo()); this.text = this.stringify.cdata(text) } return extend(XMLCData, superClass), XMLCData.prototype.clone = function () { return Object.create(this) }, XMLCData.prototype.toString = function (options) { return this.options.writer.set(options).cdata(this) }, XMLCData }(XMLNode) }).call(this) }, { "./XMLNode": 120 }], 110: [function (require, module, exports) { (function () { var XMLComment, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLComment = function (superClass) { function XMLComment(parent, text) { if (XMLComment.__super__.constructor.call(this, parent), null == text) throw new Error("Missing comment text. " + this.debugInfo()); this.text = this.stringify.comment(text) } return extend(XMLComment, superClass), XMLComment.prototype.clone = function () { return Object.create(this) }, XMLComment.prototype.toString = function (options) { return this.options.writer.set(options).comment(this) }, XMLComment }(XMLNode) }).call(this) }, { "./XMLNode": 120 }], 111: [function (require, module, exports) { (function () { var XMLDTDAttList, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDAttList = function (superClass) { function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { if (XMLDTDAttList.__super__.constructor.call(this, parent), null == elementName) throw new Error("Missing DTD element name. " + this.debugInfo()); if (null == attributeName) throw new Error("Missing DTD attribute name. " + this.debugInfo(elementName)); if (!attributeType) throw new Error("Missing DTD attribute type. " + this.debugInfo(elementName)); if (!defaultValueType) throw new Error("Missing DTD attribute default. " + this.debugInfo(elementName)); if (0 !== defaultValueType.indexOf("#") && (defaultValueType = "#" + defaultValueType), !defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. " + this.debugInfo(elementName)); if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) throw new Error("Default value only applies to #FIXED or #DEFAULT. " + this.debugInfo(elementName)); this.elementName = this.stringify.eleName(elementName), this.attributeName = this.stringify.attName(attributeName), this.attributeType = this.stringify.dtdAttType(attributeType), this.defaultValue = this.stringify.dtdAttDefault(defaultValue), this.defaultValueType = defaultValueType } return extend(XMLDTDAttList, superClass), XMLDTDAttList.prototype.toString = function (options) { return this.options.writer.set(options).dtdAttList(this) }, XMLDTDAttList }(XMLNode) }).call(this) }, { "./XMLNode": 120 }], 112: [function (require, module, exports) { (function () { var XMLDTDElement, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDElement = function (superClass) { function XMLDTDElement(parent, name, value) { if (XMLDTDElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD element name. " + this.debugInfo()); value || (value = "(#PCDATA)"), Array.isArray(value) && (value = "(" + value.join(",") + ")"), this.name = this.stringify.eleName(name), this.value = this.stringify.dtdElementValue(value) } return extend(XMLDTDElement, superClass), XMLDTDElement.prototype.toString = function (options) { return this.options.writer.set(options).dtdElement(this) }, XMLDTDElement }(XMLNode) }).call(this) }, { "./XMLNode": 120 }], 113: [function (require, module, exports) { (function () { var XMLDTDEntity, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), module.exports = XMLDTDEntity = function (superClass) { function XMLDTDEntity(parent, pe, name, value) { if (XMLDTDEntity.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD entity name. " + this.debugInfo(name)); if (null == value) throw new Error("Missing DTD entity value. " + this.debugInfo(name)); if (this.pe = !!pe, this.name = this.stringify.eleName(name), isObject(value)) { if (!value.pubID && !value.sysID) throw new Error("Public and/or system identifiers are required for an external entity. " + this.debugInfo(name)); if (value.pubID && !value.sysID) throw new Error("System identifier is required for a public external entity. " + this.debugInfo(name)); if (null != value.pubID && (this.pubID = this.stringify.dtdPubID(value.pubID)), null != value.sysID && (this.sysID = this.stringify.dtdSysID(value.sysID)), null != value.nData && (this.nData = this.stringify.dtdNData(value.nData)), this.pe && this.nData) throw new Error("Notation declaration is not allowed in a parameter entity. " + this.debugInfo(name)) } else this.value = this.stringify.dtdEntityValue(value) } return extend(XMLDTDEntity, superClass), XMLDTDEntity.prototype.toString = function (options) { return this.options.writer.set(options).dtdEntity(this) }, XMLDTDEntity }(XMLNode) }).call(this) }, { "./Utility": 107, "./XMLNode": 120 }], 114: [function (require, module, exports) { (function () { var XMLDTDNotation, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDNotation = function (superClass) { function XMLDTDNotation(parent, name, value) { if (XMLDTDNotation.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD notation name. " + this.debugInfo(name)); if (!value.pubID && !value.sysID) throw new Error("Public or system identifiers are required for an external entity. " + this.debugInfo(name)); this.name = this.stringify.eleName(name), null != value.pubID && (this.pubID = this.stringify.dtdPubID(value.pubID)), null != value.sysID && (this.sysID = this.stringify.dtdSysID(value.sysID)) } return extend(XMLDTDNotation, superClass), XMLDTDNotation.prototype.toString = function (options) { return this.options.writer.set(options).dtdNotation(this) }, XMLDTDNotation }(XMLNode) }).call(this) }, { "./XMLNode": 120 }], 115: [function (require, module, exports) { (function () { var XMLDeclaration, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), module.exports = XMLDeclaration = function (superClass) { function XMLDeclaration(parent, version, encoding, standalone) { var ref; XMLDeclaration.__super__.constructor.call(this, parent), isObject(version) && (ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone), version || (version = "1.0"), this.version = this.stringify.xmlVersion(version), null != encoding && (this.encoding = this.stringify.xmlEncoding(encoding)), null != standalone && (this.standalone = this.stringify.xmlStandalone(standalone)) } return extend(XMLDeclaration, superClass), XMLDeclaration.prototype.toString = function (options) { return this.options.writer.set(options).declaration(this) }, XMLDeclaration }(XMLNode) }).call(this) }, { "./Utility": 107, "./XMLNode": 120 }], 116: [function (require, module, exports) { (function () { var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDNotation = require("./XMLDTDNotation"), module.exports = XMLDocType = function (superClass) { function XMLDocType(parent, pubID, sysID) { var ref, ref1; XMLDocType.__super__.constructor.call(this, parent), this.name = "!DOCTYPE", this.documentObject = parent, isObject(pubID) && (ref = pubID, pubID = ref.pubID, sysID = ref.sysID), null == sysID && (ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1]), null != pubID && (this.pubID = this.stringify.dtdPubID(pubID)), null != sysID && (this.sysID = this.stringify.dtdSysID(sysID)) } return extend(XMLDocType, superClass), XMLDocType.prototype.element = function (name, value) { var child; return child = new XMLDTDElement(this, name, value), this.children.push(child), this }, XMLDocType.prototype.attList = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { var child; return child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue), this.children.push(child), this }, XMLDocType.prototype.entity = function (name, value) { var child; return child = new XMLDTDEntity(this, !1, name, value), this.children.push(child), this }, XMLDocType.prototype.pEntity = function (name, value) { var child; return child = new XMLDTDEntity(this, !0, name, value), this.children.push(child), this }, XMLDocType.prototype.notation = function (name, value) { var child; return child = new XMLDTDNotation(this, name, value), this.children.push(child), this }, XMLDocType.prototype.toString = function (options) { return this.options.writer.set(options).docType(this) }, XMLDocType.prototype.ele = function (name, value) { return this.element(name, value) }, XMLDocType.prototype.att = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue) }, XMLDocType.prototype.ent = function (name, value) { return this.entity(name, value) }, XMLDocType.prototype.pent = function (name, value) { return this.pEntity(name, value) }, XMLDocType.prototype.not = function (name, value) { return this.notation(name, value) }, XMLDocType.prototype.up = function () { return this.root() || this.documentObject }, XMLDocType }(XMLNode) }).call(this) }, { "./Utility": 107, "./XMLDTDAttList": 111, "./XMLDTDElement": 112, "./XMLDTDEntity": 113, "./XMLDTDNotation": 114, "./XMLNode": 120 }], 117: [function (require, module, exports) { (function () { var XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isPlainObject = require("./Utility").isPlainObject, XMLNode = require("./XMLNode"), XMLStringifier = require("./XMLStringifier"), XMLStringWriter = require("./XMLStringWriter"), module.exports = XMLDocument = function (superClass) { function XMLDocument(options) { XMLDocument.__super__.constructor.call(this, null), this.name = "?xml", options || (options = {}), options.writer || (options.writer = new XMLStringWriter), this.options = options, this.stringify = new XMLStringifier(options), this.isDocument = !0 } return extend(XMLDocument, superClass), XMLDocument.prototype.end = function (writer) { var writerOptions; return writer ? isPlainObject(writer) && (writerOptions = writer, writer = this.options.writer.set(writerOptions)) : writer = this.options.writer, writer.document(this) }, XMLDocument.prototype.toString = function (options) { return this.options.writer.set(options).document(this) }, XMLDocument }(XMLNode) }).call(this) }, { "./Utility": 107, "./XMLNode": 120, "./XMLStringWriter": 124, "./XMLStringifier": 125 }], 118: [function (require, module, exports) { (function () { var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue, XMLElement = require("./XMLElement"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDNotation = require("./XMLDTDNotation"), XMLAttribute = require("./XMLAttribute"), XMLStringifier = require("./XMLStringifier"), XMLStringWriter = require("./XMLStringWriter"), module.exports = XMLDocumentCB = function () { function XMLDocumentCB(options, onData, onEnd) { var writerOptions; this.name = "?xml", options || (options = {}), options.writer ? isPlainObject(options.writer) && (writerOptions = options.writer, options.writer = new XMLStringWriter(writerOptions)) : options.writer = new XMLStringWriter(options), this.options = options, this.writer = options.writer, this.stringify = new XMLStringifier(options), this.onDataCallback = onData || function () { }, this.onEndCallback = onEnd || function () { }, this.currentNode = null, this.currentLevel = -1, this.openTags = {}, this.documentStarted = !1, this.documentCompleted = !1, this.root = null } return XMLDocumentCB.prototype.node = function (name, attributes, text) { var ref1; if (null == name) throw new Error("Missing node name."); if (this.root && -1 === this.currentLevel) throw new Error("Document can only have one root node. " + this.debugInfo(name)); return this.openCurrent(), name = getValue(name), null == attributes && (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), this.currentNode = new XMLElement(this, name, attributes), this.currentNode.children = !1, this.currentLevel++, this.openTags[this.currentLevel] = this.currentNode, null != text && this.text(text), this }, XMLDocumentCB.prototype.element = function (name, attributes, text) { return this.currentNode && this.currentNode instanceof XMLDocType ? this.dtdElement.apply(this, arguments) : this.node(name, attributes, text) }, XMLDocumentCB.prototype.attribute = function (name, value) { var attName, attValue; if (!this.currentNode || this.currentNode.children) throw new Error("att() can only be used immediately after an ele() call in callback mode. " + this.debugInfo(name)); if (null != name && (name = getValue(name)), isObject(name)) for (attName in name) hasProp.call(name, attName) && (attValue = name[attName], this.attribute(attName, attValue)); else isFunction(value) && (value = value.apply()), this.options.skipNullAttributes && null == value || (this.currentNode.attributes[name] = new XMLAttribute(this, name, value)); return this }, XMLDocumentCB.prototype.text = function (value) { var node; return this.openCurrent(), node = new XMLText(this, value), this.onData(this.writer.text(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.cdata = function (value) { var node; return this.openCurrent(), node = new XMLCData(this, value), this.onData(this.writer.cdata(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.comment = function (value) { var node; return this.openCurrent(), node = new XMLComment(this, value), this.onData(this.writer.comment(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.raw = function (value) { var node; return this.openCurrent(), node = new XMLRaw(this, value), this.onData(this.writer.raw(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.instruction = function (target, value) { var i, insTarget, insValue, len, node; if (this.openCurrent(), null != target && (target = getValue(target)), null != value && (value = getValue(value)), Array.isArray(target)) for (i = 0, len = target.length; len > i; i++)insTarget = target[i], this.instruction(insTarget); else if (isObject(target)) for (insTarget in target) hasProp.call(target, insTarget) && (insValue = target[insTarget], this.instruction(insTarget, insValue)); else isFunction(value) && (value = value.apply()), node = new XMLProcessingInstruction(this, target, value), this.onData(this.writer.processingInstruction(node, this.currentLevel + 1), this.currentLevel + 1); return this }, XMLDocumentCB.prototype.declaration = function (version, encoding, standalone) { var node; if (this.openCurrent(), this.documentStarted) throw new Error("declaration() must be the first node."); return node = new XMLDeclaration(this, version, encoding, standalone), this.onData(this.writer.declaration(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.doctype = function (root, pubID, sysID) { if (this.openCurrent(), null == root) throw new Error("Missing root node name."); if (this.root) throw new Error("dtd() must come before the root node."); return this.currentNode = new XMLDocType(this, pubID, sysID), this.currentNode.rootNodeName = root, this.currentNode.children = !1, this.currentLevel++, this.openTags[this.currentLevel] = this.currentNode, this }, XMLDocumentCB.prototype.dtdElement = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDElement(this, name, value), this.onData(this.writer.dtdElement(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.attList = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { var node; return this.openCurrent(), node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue), this.onData(this.writer.dtdAttList(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.entity = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDEntity(this, !1, name, value), this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.pEntity = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDEntity(this, !0, name, value), this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.notation = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDNotation(this, name, value), this.onData(this.writer.dtdNotation(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.up = function () { if (this.currentLevel < 0) throw new Error("The document node has no parent."); return this.currentNode ? (this.currentNode.children ? this.closeNode(this.currentNode) : this.openNode(this.currentNode), this.currentNode = null) : this.closeNode(this.openTags[this.currentLevel]), delete this.openTags[this.currentLevel], this.currentLevel--, this }, XMLDocumentCB.prototype.end = function () { for (; this.currentLevel >= 0;)this.up(); return this.onEnd() }, XMLDocumentCB.prototype.openCurrent = function () { return this.currentNode ? (this.currentNode.children = !0, this.openNode(this.currentNode)) : void 0 }, XMLDocumentCB.prototype.openNode = function (node) { return node.isOpen ? void 0 : (!this.root && 0 === this.currentLevel && node instanceof XMLElement && (this.root = node), this.onData(this.writer.openNode(node, this.currentLevel), this.currentLevel), node.isOpen = !0) }, XMLDocumentCB.prototype.closeNode = function (node) { return node.isClosed ? void 0 : (this.onData(this.writer.closeNode(node, this.currentLevel), this.currentLevel), node.isClosed = !0) }, XMLDocumentCB.prototype.onData = function (chunk, level) { return this.documentStarted = !0, this.onDataCallback(chunk, level + 1) }, XMLDocumentCB.prototype.onEnd = function () { return this.documentCompleted = !0, this.onEndCallback() }, XMLDocumentCB.prototype.debugInfo = function (name) { return null == name ? "" : "node: <" + name + ">" }, XMLDocumentCB.prototype.ele = function () { return this.element.apply(this, arguments) }, XMLDocumentCB.prototype.nod = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLDocumentCB.prototype.txt = function (value) { return this.text(value) }, XMLDocumentCB.prototype.dat = function (value) { return this.cdata(value) }, XMLDocumentCB.prototype.com = function (value) { return this.comment(value) }, XMLDocumentCB.prototype.ins = function (target, value) { return this.instruction(target, value) }, XMLDocumentCB.prototype.dec = function (version, encoding, standalone) { return this.declaration(version, encoding, standalone) }, XMLDocumentCB.prototype.dtd = function (root, pubID, sysID) { return this.doctype(root, pubID, sysID) }, XMLDocumentCB.prototype.e = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLDocumentCB.prototype.n = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLDocumentCB.prototype.t = function (value) { return this.text(value) }, XMLDocumentCB.prototype.d = function (value) { return this.cdata(value) }, XMLDocumentCB.prototype.c = function (value) { return this.comment(value) }, XMLDocumentCB.prototype.r = function (value) { return this.raw(value) }, XMLDocumentCB.prototype.i = function (target, value) { return this.instruction(target, value) }, XMLDocumentCB.prototype.att = function () { return this.currentNode && this.currentNode instanceof XMLDocType ? this.attList.apply(this, arguments) : this.attribute.apply(this, arguments) }, XMLDocumentCB.prototype.a = function () { return this.currentNode && this.currentNode instanceof XMLDocType ? this.attList.apply(this, arguments) : this.attribute.apply(this, arguments) }, XMLDocumentCB.prototype.ent = function (name, value) { return this.entity(name, value) }, XMLDocumentCB.prototype.pent = function (name, value) { return this.pEntity(name, value) }, XMLDocumentCB.prototype.not = function (name, value) { return this.notation(name, value) }, XMLDocumentCB }() }).call(this) }, { "./Utility": 107, "./XMLAttribute": 108, "./XMLCData": 109, "./XMLComment": 110, "./XMLDTDAttList": 111, "./XMLDTDElement": 112, "./XMLDTDEntity": 113, "./XMLDTDNotation": 114, "./XMLDeclaration": 115, "./XMLDocType": 116, "./XMLElement": 119, "./XMLProcessingInstruction": 121, "./XMLRaw": 122, "./XMLStringWriter": 124, "./XMLStringifier": 125, "./XMLText": 126 }], 119: [function (require, module, exports) { (function () { var XMLAttribute, XMLElement, XMLNode, getValue, isFunction, isObject, ref, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue, XMLNode = require("./XMLNode"), XMLAttribute = require("./XMLAttribute"), module.exports = XMLElement = function (superClass) { function XMLElement(parent, name, attributes) { if (XMLElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing element name. " + this.debugInfo()); this.name = this.stringify.eleName(name), this.attributes = {}, null != attributes && this.attribute(attributes), parent.isDocument && (this.isRoot = !0, this.documentObject = parent, parent.rootObject = this) } return extend(XMLElement, superClass), XMLElement.prototype.clone = function () { var att, attName, clonedSelf, ref1; clonedSelf = Object.create(this), clonedSelf.isRoot && (clonedSelf.documentObject = null), clonedSelf.attributes = {}, ref1 = this.attributes; for (attName in ref1) hasProp.call(ref1, attName) && (att = ref1[attName], clonedSelf.attributes[attName] = att.clone()); return clonedSelf.children = [], this.children.forEach(function (child) { var clonedChild; return clonedChild = child.clone(), clonedChild.parent = clonedSelf, clonedSelf.children.push(clonedChild) }), clonedSelf }, XMLElement.prototype.attribute = function (name, value) { var attName, attValue; if (null != name && (name = getValue(name)), isObject(name)) for (attName in name) hasProp.call(name, attName) && (attValue = name[attName], this.attribute(attName, attValue)); else isFunction(value) && (value = value.apply()), this.options.skipNullAttributes && null == value || (this.attributes[name] = new XMLAttribute(this, name, value)); return this }, XMLElement.prototype.removeAttribute = function (name) { var attName, i, len; if (null == name) throw new Error("Missing attribute name. " + this.debugInfo()); if (name = getValue(name), Array.isArray(name)) for (i = 0, len = name.length; len > i; i++)attName = name[i], delete this.attributes[attName]; else delete this.attributes[name]; return this }, XMLElement.prototype.toString = function (options) { return this.options.writer.set(options).element(this) }, XMLElement.prototype.att = function (name, value) { return this.attribute(name, value) }, XMLElement.prototype.a = function (name, value) { return this.attribute(name, value) }, XMLElement }(XMLNode) }).call(this) }, { "./Utility": 107, "./XMLAttribute": 108, "./XMLNode": 120 }], 120: [function (require, module, exports) { + }, {}], 118: [function (require, module, exports) { (function (global) { function deprecate(fn, msg) { function deprecated() { if (!warned) { if (config("throwDeprecation")) throw new Error(msg); config("traceDeprecation") ? console.trace(msg) : console.warn(msg), warned = !0 } return fn.apply(this, arguments) } if (config("noDeprecation")) return fn; var warned = !1; return deprecated } function config(name) { try { if (!global.localStorage) return !1 } catch (_) { return !1 } var val = global.localStorage[name]; return null == val ? !1 : "true" === String(val).toLowerCase() } module.exports = deprecate }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 119: [function (require, module, exports) { arguments[4][84][0].apply(exports, arguments) }, { dup: 84 }], 120: [function (require, module, exports) { module.exports = function (arg) { return arg && "object" == typeof arg && "function" == typeof arg.copy && "function" == typeof arg.fill && "function" == typeof arg.readUInt8 } }, {}], 121: [function (require, module, exports) { (function (process, global) { function inspect(obj, opts) { var ctx = { seen: [], stylize: stylizeNoColor }; return arguments.length >= 3 && (ctx.depth = arguments[2]), arguments.length >= 4 && (ctx.colors = arguments[3]), isBoolean(opts) ? ctx.showHidden = opts : opts && exports._extend(ctx, opts), isUndefined(ctx.showHidden) && (ctx.showHidden = !1), isUndefined(ctx.depth) && (ctx.depth = 2), isUndefined(ctx.colors) && (ctx.colors = !1), isUndefined(ctx.customInspect) && (ctx.customInspect = !0), ctx.colors && (ctx.stylize = stylizeWithColor), formatValue(ctx, obj, ctx.depth) } function stylizeWithColor(str, styleType) { var style = inspect.styles[styleType]; return style ? "[" + inspect.colors[style][0] + "m" + str + "[" + inspect.colors[style][1] + "m" : str } function stylizeNoColor(str, styleType) { return str } function arrayToHash(array) { var hash = {}; return array.forEach(function (val, idx) { hash[val] = !0 }), hash } function formatValue(ctx, value, recurseTimes) { if (ctx.customInspect && value && isFunction(value.inspect) && value.inspect !== exports.inspect && (!value.constructor || value.constructor.prototype !== value)) { var ret = value.inspect(recurseTimes, ctx); return isString(ret) || (ret = formatValue(ctx, ret, recurseTimes)), ret } var primitive = formatPrimitive(ctx, value); if (primitive) return primitive; var keys = Object.keys(value), visibleKeys = arrayToHash(keys); if (ctx.showHidden && (keys = Object.getOwnPropertyNames(value)), isError(value) && (keys.indexOf("message") >= 0 || keys.indexOf("description") >= 0)) return formatError(value); if (0 === keys.length) { if (isFunction(value)) { var name = value.name ? ": " + value.name : ""; return ctx.stylize("[Function" + name + "]", "special") } if (isRegExp(value)) return ctx.stylize(RegExp.prototype.toString.call(value), "regexp"); if (isDate(value)) return ctx.stylize(Date.prototype.toString.call(value), "date"); if (isError(value)) return formatError(value) } var base = "", array = !1, braces = ["{", "}"]; if (isArray(value) && (array = !0, braces = ["[", "]"]), isFunction(value)) { var n = value.name ? ": " + value.name : ""; base = " [Function" + n + "]" } if (isRegExp(value) && (base = " " + RegExp.prototype.toString.call(value)), isDate(value) && (base = " " + Date.prototype.toUTCString.call(value)), isError(value) && (base = " " + formatError(value)), 0 === keys.length && (!array || 0 == value.length)) return braces[0] + base + braces[1]; if (0 > recurseTimes) return isRegExp(value) ? ctx.stylize(RegExp.prototype.toString.call(value), "regexp") : ctx.stylize("[Object]", "special"); ctx.seen.push(value); var output; return output = array ? formatArray(ctx, value, recurseTimes, visibleKeys, keys) : keys.map(function (key) { return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) }), ctx.seen.pop(), reduceToSingleString(output, base, braces) } function formatPrimitive(ctx, value) { if (isUndefined(value)) return ctx.stylize("undefined", "undefined"); if (isString(value)) { var simple = "'" + JSON.stringify(value).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'"; return ctx.stylize(simple, "string") } return isNumber(value) ? ctx.stylize("" + value, "number") : isBoolean(value) ? ctx.stylize("" + value, "boolean") : isNull(value) ? ctx.stylize("null", "null") : void 0 } function formatError(value) { return "[" + Error.prototype.toString.call(value) + "]" } function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { for (var output = [], i = 0, l = value.length; l > i; ++i)hasOwnProperty(value, String(i)) ? output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), !0)) : output.push(""); return keys.forEach(function (key) { key.match(/^\d+$/) || output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, !0)) }), output } function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { var name, str, desc; if (desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }, desc.get ? str = desc.set ? ctx.stylize("[Getter/Setter]", "special") : ctx.stylize("[Getter]", "special") : desc.set && (str = ctx.stylize("[Setter]", "special")), hasOwnProperty(visibleKeys, key) || (name = "[" + key + "]"), str || (ctx.seen.indexOf(desc.value) < 0 ? (str = isNull(recurseTimes) ? formatValue(ctx, desc.value, null) : formatValue(ctx, desc.value, recurseTimes - 1), str.indexOf("\n") > -1 && (str = array ? str.split("\n").map(function (line) { return " " + line }).join("\n").substr(2) : "\n" + str.split("\n").map(function (line) { return " " + line }).join("\n"))) : str = ctx.stylize("[Circular]", "special")), isUndefined(name)) { if (array && key.match(/^\d+$/)) return str; name = JSON.stringify("" + key), name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (name = name.substr(1, name.length - 2), name = ctx.stylize(name, "name")) : (name = name.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), name = ctx.stylize(name, "string")) } return name + ": " + str } function reduceToSingleString(output, base, braces) { var numLinesEst = 0, length = output.reduce(function (prev, cur) { return numLinesEst++, cur.indexOf("\n") >= 0 && numLinesEst++, prev + cur.replace(/\u001b\[\d\d?m/g, "").length + 1 }, 0); return length > 60 ? braces[0] + ("" === base ? "" : base + "\n ") + " " + output.join(",\n ") + " " + braces[1] : braces[0] + base + " " + output.join(", ") + " " + braces[1] } function isArray(ar) { return Array.isArray(ar) } function isBoolean(arg) { return "boolean" == typeof arg } function isNull(arg) { return null === arg } function isNullOrUndefined(arg) { return null == arg } function isNumber(arg) { return "number" == typeof arg } function isString(arg) { return "string" == typeof arg } function isSymbol(arg) { return "symbol" == typeof arg } function isUndefined(arg) { return void 0 === arg } function isRegExp(re) { return isObject(re) && "[object RegExp]" === objectToString(re) } function isObject(arg) { return "object" == typeof arg && null !== arg } function isDate(d) { return isObject(d) && "[object Date]" === objectToString(d) } function isError(e) { return isObject(e) && ("[object Error]" === objectToString(e) || e instanceof Error) } function isFunction(arg) { return "function" == typeof arg } function isPrimitive(arg) { return null === arg || "boolean" == typeof arg || "number" == typeof arg || "string" == typeof arg || "symbol" == typeof arg || "undefined" == typeof arg } function objectToString(o) { return Object.prototype.toString.call(o) } function pad(n) { return 10 > n ? "0" + n.toString(10) : n.toString(10) } function timestamp() { var d = new Date, time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(":"); return [d.getDate(), months[d.getMonth()], time].join(" ") } function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop) } var formatRegExp = /%[sdj%]/g; exports.format = function (f) { if (!isString(f)) { for (var objects = [], i = 0; i < arguments.length; i++)objects.push(inspect(arguments[i])); return objects.join(" ") } for (var i = 1, args = arguments, len = args.length, str = String(f).replace(formatRegExp, function (x) { if ("%%" === x) return "%"; if (i >= len) return x; switch (x) { case "%s": return String(args[i++]); case "%d": return Number(args[i++]); case "%j": try { return JSON.stringify(args[i++]) } catch (_) { return "[Circular]" } default: return x } }), x = args[i]; len > i; x = args[++i])str += isNull(x) || !isObject(x) ? " " + x : " " + inspect(x); return str }, exports.deprecate = function (fn, msg) { function deprecated() { if (!warned) { if (process.throwDeprecation) throw new Error(msg); process.traceDeprecation ? console.trace(msg) : console.error(msg), warned = !0 } return fn.apply(this, arguments) } if (isUndefined(global.process)) return function () { return exports.deprecate(fn, msg).apply(this, arguments) }; if (process.noDeprecation === !0) return fn; var warned = !1; return deprecated }; var debugEnviron, debugs = {}; exports.debuglog = function (set) { if (isUndefined(debugEnviron) && (debugEnviron = process.env.NODE_DEBUG || ""), set = set.toUpperCase(), !debugs[set]) if (new RegExp("\\b" + set + "\\b", "i").test(debugEnviron)) { var pid = process.pid; debugs[set] = function () { var msg = exports.format.apply(exports, arguments); console.error("%s %d: %s", set, pid, msg) } } else debugs[set] = function () { }; return debugs[set] }, exports.inspect = inspect, inspect.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] }, inspect.styles = { special: "cyan", number: "yellow", "boolean": "yellow", undefined: "grey", "null": "bold", string: "green", date: "magenta", regexp: "red" }, exports.isArray = isArray, exports.isBoolean = isBoolean, exports.isNull = isNull, exports.isNullOrUndefined = isNullOrUndefined, exports.isNumber = isNumber, exports.isString = isString, exports.isSymbol = isSymbol, exports.isUndefined = isUndefined, exports.isRegExp = isRegExp, exports.isObject = isObject, exports.isDate = isDate, exports.isError = isError, exports.isFunction = isFunction, exports.isPrimitive = isPrimitive, exports.isBuffer = require("./support/isBuffer"); var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; exports.log = function () { console.log("%s - %s", timestamp(), exports.format.apply(exports, arguments)) }, exports.inherits = require("inherits"), exports._extend = function (origin, add) { if (!add || !isObject(add)) return origin; for (var keys = Object.keys(add), i = keys.length; i--;)origin[keys[i]] = add[keys[i]]; return origin } }).call(this, require("_process"), "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./support/isBuffer": 120, _process: 102, inherits: 119 }], 122: [function (require, module, exports) { (function () { var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject, slice = [].slice, hasProp = {}.hasOwnProperty; assign = function () { var i, key, len, source, sources, target; if (target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [], isFunction(Object.assign)) Object.assign.apply(null, arguments); else for (i = 0, len = sources.length; len > i; i++)if (source = sources[i], null != source) for (key in source) hasProp.call(source, key) && (target[key] = source[key]); return target }, isFunction = function (val) { return !!val && "[object Function]" === Object.prototype.toString.call(val) }, isObject = function (val) { var ref; return !!val && ("function" == (ref = typeof val) || "object" === ref) }, isArray = function (val) { return isFunction(Array.isArray) ? Array.isArray(val) : "[object Array]" === Object.prototype.toString.call(val) }, isEmpty = function (val) { var key; if (isArray(val)) return !val.length; for (key in val) if (hasProp.call(val, key)) return !1; return !0 }, isPlainObject = function (val) { var ctor, proto; return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && "function" == typeof ctor && ctor instanceof ctor && Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object) }, getValue = function (obj) { return isFunction(obj.valueOf) ? obj.valueOf() : obj }, module.exports.assign = assign, module.exports.isFunction = isFunction, module.exports.isObject = isObject, module.exports.isArray = isArray, module.exports.isEmpty = isEmpty, module.exports.isPlainObject = isPlainObject, module.exports.getValue = getValue }).call(this) }, {}], 123: [function (require, module, exports) { (function () { var XMLAttribute; module.exports = XMLAttribute = function () { function XMLAttribute(parent, name, value) { if (this.options = parent.options, this.stringify = parent.stringify, this.parent = parent, null == name) throw new Error("Missing attribute name. " + this.debugInfo(name)); if (null == value) throw new Error("Missing attribute value. " + this.debugInfo(name)); this.name = this.stringify.attName(name), this.value = this.stringify.attValue(value) } return XMLAttribute.prototype.clone = function () { return Object.create(this) }, XMLAttribute.prototype.toString = function (options) { return this.options.writer.set(options).attribute(this) }, XMLAttribute.prototype.debugInfo = function (name) { var ref, ref1; return name = name || this.name, null != name || (null != (ref = this.parent) ? ref.name : void 0) ? null == name ? "parent: <" + this.parent.name + ">" : (null != (ref1 = this.parent) ? ref1.name : void 0) ? "attribute: {" + name + "}, parent: <" + this.parent.name + ">" : "attribute: {" + name + "}" : "" }, XMLAttribute }() }).call(this) }, {}], 124: [function (require, module, exports) { (function () { var XMLCData, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLCData = function (superClass) { function XMLCData(parent, text) { if (XMLCData.__super__.constructor.call(this, parent), null == text) throw new Error("Missing CDATA text. " + this.debugInfo()); this.text = this.stringify.cdata(text) } return extend(XMLCData, superClass), XMLCData.prototype.clone = function () { return Object.create(this) }, XMLCData.prototype.toString = function (options) { return this.options.writer.set(options).cdata(this) }, XMLCData }(XMLNode) }).call(this) }, { "./XMLNode": 135 }], 125: [function (require, module, exports) { (function () { var XMLComment, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLComment = function (superClass) { function XMLComment(parent, text) { if (XMLComment.__super__.constructor.call(this, parent), null == text) throw new Error("Missing comment text. " + this.debugInfo()); this.text = this.stringify.comment(text) } return extend(XMLComment, superClass), XMLComment.prototype.clone = function () { return Object.create(this) }, XMLComment.prototype.toString = function (options) { return this.options.writer.set(options).comment(this) }, XMLComment }(XMLNode) }).call(this) }, { "./XMLNode": 135 }], 126: [function (require, module, exports) { (function () { var XMLDTDAttList, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDAttList = function (superClass) { function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { if (XMLDTDAttList.__super__.constructor.call(this, parent), null == elementName) throw new Error("Missing DTD element name. " + this.debugInfo()); if (null == attributeName) throw new Error("Missing DTD attribute name. " + this.debugInfo(elementName)); if (!attributeType) throw new Error("Missing DTD attribute type. " + this.debugInfo(elementName)); if (!defaultValueType) throw new Error("Missing DTD attribute default. " + this.debugInfo(elementName)); if (0 !== defaultValueType.indexOf("#") && (defaultValueType = "#" + defaultValueType), !defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. " + this.debugInfo(elementName)); if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) throw new Error("Default value only applies to #FIXED or #DEFAULT. " + this.debugInfo(elementName)); this.elementName = this.stringify.eleName(elementName), this.attributeName = this.stringify.attName(attributeName), this.attributeType = this.stringify.dtdAttType(attributeType), this.defaultValue = this.stringify.dtdAttDefault(defaultValue), this.defaultValueType = defaultValueType } return extend(XMLDTDAttList, superClass), XMLDTDAttList.prototype.toString = function (options) { return this.options.writer.set(options).dtdAttList(this) }, XMLDTDAttList }(XMLNode) }).call(this) }, { "./XMLNode": 135 }], 127: [function (require, module, exports) { (function () { var XMLDTDElement, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDElement = function (superClass) { function XMLDTDElement(parent, name, value) { if (XMLDTDElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD element name. " + this.debugInfo()); value || (value = "(#PCDATA)"), Array.isArray(value) && (value = "(" + value.join(",") + ")"), this.name = this.stringify.eleName(name), this.value = this.stringify.dtdElementValue(value) } return extend(XMLDTDElement, superClass), XMLDTDElement.prototype.toString = function (options) { return this.options.writer.set(options).dtdElement(this) }, XMLDTDElement }(XMLNode) }).call(this) }, { "./XMLNode": 135 }], 128: [function (require, module, exports) { (function () { var XMLDTDEntity, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), module.exports = XMLDTDEntity = function (superClass) { function XMLDTDEntity(parent, pe, name, value) { if (XMLDTDEntity.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD entity name. " + this.debugInfo(name)); if (null == value) throw new Error("Missing DTD entity value. " + this.debugInfo(name)); if (this.pe = !!pe, this.name = this.stringify.eleName(name), isObject(value)) { if (!value.pubID && !value.sysID) throw new Error("Public and/or system identifiers are required for an external entity. " + this.debugInfo(name)); if (value.pubID && !value.sysID) throw new Error("System identifier is required for a public external entity. " + this.debugInfo(name)); if (null != value.pubID && (this.pubID = this.stringify.dtdPubID(value.pubID)), null != value.sysID && (this.sysID = this.stringify.dtdSysID(value.sysID)), null != value.nData && (this.nData = this.stringify.dtdNData(value.nData)), this.pe && this.nData) throw new Error("Notation declaration is not allowed in a parameter entity. " + this.debugInfo(name)) } else this.value = this.stringify.dtdEntityValue(value) } return extend(XMLDTDEntity, superClass), XMLDTDEntity.prototype.toString = function (options) { return this.options.writer.set(options).dtdEntity(this) }, XMLDTDEntity }(XMLNode) }).call(this) }, { "./Utility": 122, "./XMLNode": 135 }], 129: [function (require, module, exports) { (function () { var XMLDTDNotation, XMLNode, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLDTDNotation = function (superClass) { function XMLDTDNotation(parent, name, value) { if (XMLDTDNotation.__super__.constructor.call(this, parent), null == name) throw new Error("Missing DTD notation name. " + this.debugInfo(name)); if (!value.pubID && !value.sysID) throw new Error("Public or system identifiers are required for an external entity. " + this.debugInfo(name)); this.name = this.stringify.eleName(name), null != value.pubID && (this.pubID = this.stringify.dtdPubID(value.pubID)), null != value.sysID && (this.sysID = this.stringify.dtdSysID(value.sysID)) } return extend(XMLDTDNotation, superClass), XMLDTDNotation.prototype.toString = function (options) { return this.options.writer.set(options).dtdNotation(this) }, XMLDTDNotation }(XMLNode) }).call(this) }, { "./XMLNode": 135 }], 130: [function (require, module, exports) { (function () { var XMLDeclaration, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), module.exports = XMLDeclaration = function (superClass) { function XMLDeclaration(parent, version, encoding, standalone) { var ref; XMLDeclaration.__super__.constructor.call(this, parent), isObject(version) && (ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone), version || (version = "1.0"), this.version = this.stringify.xmlVersion(version), null != encoding && (this.encoding = this.stringify.xmlEncoding(encoding)), null != standalone && (this.standalone = this.stringify.xmlStandalone(standalone)) } return extend(XMLDeclaration, superClass), XMLDeclaration.prototype.toString = function (options) { return this.options.writer.set(options).declaration(this) }, XMLDeclaration }(XMLNode) }).call(this) }, { "./Utility": 122, "./XMLNode": 135 }], 131: [function (require, module, exports) { (function () { - var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty, getValue = ref.getValue, XMLElement = null, XMLCData = null, XMLComment = null, XMLDeclaration = null, XMLDocType = null, XMLRaw = null, XMLText = null, XMLProcessingInstruction = null, module.exports = XMLNode = function () { - function XMLNode(parent) { this.parent = parent, this.parent && (this.options = this.parent.options, this.stringify = this.parent.stringify), this.children = [], XMLElement || (XMLElement = require("./XMLElement"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction")) } return XMLNode.prototype.element = function (name, attributes, text) { var childNode, item, j, k, key, lastChild, len, len1, ref1, val; if (lastChild = null, null == attributes && (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), null != name && (name = getValue(name)), Array.isArray(name)) for (j = 0, len = name.length; len > j; j++)item = name[j], lastChild = this.element(item); else if (isFunction(name)) lastChild = this.element(name.apply()); else if (isObject(name)) { for (key in name) if (hasProp.call(name, key)) if (val = name[key], isFunction(val) && (val = val.apply()), isObject(val) && isEmpty(val) && (val = null), !this.options.ignoreDecorators && this.stringify.convertAttKey && 0 === key.indexOf(this.stringify.convertAttKey)) lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val); else if (!this.options.separateArrayItems && Array.isArray(val)) for (k = 0, len1 = val.length; len1 > k; k++)item = val[k], childNode = {}, childNode[key] = item, lastChild = this.element(childNode); else isObject(val) ? (lastChild = this.element(key), lastChild.element(val)) : lastChild = this.element(key, val) } else lastChild = !this.options.ignoreDecorators && this.stringify.convertTextKey && 0 === name.indexOf(this.stringify.convertTextKey) ? this.text(text) : !this.options.ignoreDecorators && this.stringify.convertCDataKey && 0 === name.indexOf(this.stringify.convertCDataKey) ? this.cdata(text) : !this.options.ignoreDecorators && this.stringify.convertCommentKey && 0 === name.indexOf(this.stringify.convertCommentKey) ? this.comment(text) : !this.options.ignoreDecorators && this.stringify.convertRawKey && 0 === name.indexOf(this.stringify.convertRawKey) ? this.raw(text) : !this.options.ignoreDecorators && this.stringify.convertPIKey && 0 === name.indexOf(this.stringify.convertPIKey) ? this.instruction(name.substr(this.stringify.convertPIKey.length), text) : this.node(name, attributes, text); if (null == lastChild) throw new Error("Could not create any elements with: " + name + ". " + this.debugInfo()); return lastChild }, XMLNode.prototype.insertBefore = function (name, attributes, text) { - var child, i, removed; if (this.isRoot) throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); - return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.element(name, attributes, text), Array.prototype.push.apply(this.parent.children, removed), child - }, XMLNode.prototype.insertAfter = function (name, attributes, text) { var child, i, removed; if (this.isRoot) throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.element(name, attributes, text), Array.prototype.push.apply(this.parent.children, removed), child }, XMLNode.prototype.remove = function () { var i, ref1; if (this.isRoot) throw new Error("Cannot remove the root element. " + this.debugInfo()); return i = this.parent.children.indexOf(this), [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref1 = [])), ref1, this.parent }, XMLNode.prototype.node = function (name, attributes, text) { var child, ref1; return null != name && (name = getValue(name)), attributes || (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), child = new XMLElement(this, name, attributes), null != text && child.text(text), this.children.push(child), child }, XMLNode.prototype.text = function (value) { var child; return child = new XMLText(this, value), this.children.push(child), this }, XMLNode.prototype.cdata = function (value) { var child; return child = new XMLCData(this, value), this.children.push(child), this }, XMLNode.prototype.comment = function (value) { var child; return child = new XMLComment(this, value), this.children.push(child), this }, XMLNode.prototype.commentBefore = function (value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.comment(value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.commentAfter = function (value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.comment(value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.raw = function (value) { var child; return child = new XMLRaw(this, value), this.children.push(child), this }, XMLNode.prototype.instruction = function (target, value) { var insTarget, insValue, instruction, j, len; if (null != target && (target = getValue(target)), null != value && (value = getValue(value)), Array.isArray(target)) for (j = 0, len = target.length; len > j; j++)insTarget = target[j], this.instruction(insTarget); else if (isObject(target)) for (insTarget in target) hasProp.call(target, insTarget) && (insValue = target[insTarget], this.instruction(insTarget, insValue)); else isFunction(value) && (value = value.apply()), instruction = new XMLProcessingInstruction(this, target, value), this.children.push(instruction); return this }, XMLNode.prototype.instructionBefore = function (target, value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.instruction(target, value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.instructionAfter = function (target, value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.instruction(target, value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.declaration = function (version, encoding, standalone) { var doc, xmldec; return doc = this.document(), xmldec = new XMLDeclaration(doc, version, encoding, standalone), doc.children[0] instanceof XMLDeclaration ? doc.children[0] = xmldec : doc.children.unshift(xmldec), doc.root() || doc }, XMLNode.prototype.doctype = function (pubID, sysID) { var child, doc, doctype, i, j, k, len, len1, ref1, ref2; for (doc = this.document(), doctype = new XMLDocType(doc, pubID, sysID), ref1 = doc.children, i = j = 0, len = ref1.length; len > j; i = ++j)if (child = ref1[i], child instanceof XMLDocType) return doc.children[i] = doctype, doctype; for (ref2 = doc.children, i = k = 0, len1 = ref2.length; len1 > k; i = ++k)if (child = ref2[i], child.isRoot) return doc.children.splice(i, 0, doctype), doctype; return doc.children.push(doctype), doctype }, XMLNode.prototype.up = function () { if (this.isRoot) throw new Error("The root node has no parent. Use doc() if you need to get the document object."); return this.parent }, XMLNode.prototype.root = function () { var node; for (node = this; node;) { if (node.isDocument) return node.rootObject; if (node.isRoot) return node; node = node.parent } }, XMLNode.prototype.document = function () { var node; for (node = this; node;) { if (node.isDocument) return node; node = node.parent } }, XMLNode.prototype.end = function (options) { return this.document().end(options) }, XMLNode.prototype.prev = function () { var i; if (i = this.parent.children.indexOf(this), 1 > i) throw new Error("Already at the first node. " + this.debugInfo()); return this.parent.children[i - 1] }, XMLNode.prototype.next = function () { var i; if (i = this.parent.children.indexOf(this), -1 === i || i === this.parent.children.length - 1) throw new Error("Already at the last node. " + this.debugInfo()); return this.parent.children[i + 1] }, XMLNode.prototype.importDocument = function (doc) { var clonedRoot; return clonedRoot = doc.root().clone(), clonedRoot.parent = this, clonedRoot.isRoot = !1, this.children.push(clonedRoot), this }, XMLNode.prototype.debugInfo = function (name) { var ref1, ref2; return name = name || this.name, null != name || (null != (ref1 = this.parent) ? ref1.name : void 0) ? null == name ? "parent: <" + this.parent.name + ">" : (null != (ref2 = this.parent) ? ref2.name : void 0) ? "node: <" + name + ">, parent: <" + this.parent.name + ">" : "node: <" + name + ">" : "" }, XMLNode.prototype.ele = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLNode.prototype.nod = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLNode.prototype.txt = function (value) { return this.text(value) }, XMLNode.prototype.dat = function (value) { return this.cdata(value) }, XMLNode.prototype.com = function (value) { return this.comment(value) }, XMLNode.prototype.ins = function (target, value) { return this.instruction(target, value) }, XMLNode.prototype.doc = function () { return this.document() }, XMLNode.prototype.dec = function (version, encoding, standalone) { return this.declaration(version, encoding, standalone) }, XMLNode.prototype.dtd = function (pubID, sysID) { return this.doctype(pubID, sysID) }, XMLNode.prototype.e = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLNode.prototype.n = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLNode.prototype.t = function (value) { return this.text(value) }, XMLNode.prototype.d = function (value) { return this.cdata(value) }, XMLNode.prototype.c = function (value) { return this.comment(value) }, XMLNode.prototype.r = function (value) { return this.raw(value) }, XMLNode.prototype.i = function (target, value) { return this.instruction(target, value) }, XMLNode.prototype.u = function () { return this.up() }, XMLNode.prototype.importXMLBuilder = function (doc) { return this.importDocument(doc) }, XMLNode - }() + var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNode, isObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isObject = require("./Utility").isObject, XMLNode = require("./XMLNode"), XMLDTDAttList = require("./XMLDTDAttList"), + XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDNotation = require("./XMLDTDNotation"), module.exports = XMLDocType = function (superClass) { function XMLDocType(parent, pubID, sysID) { var ref, ref1; XMLDocType.__super__.constructor.call(this, parent), this.name = "!DOCTYPE", this.documentObject = parent, isObject(pubID) && (ref = pubID, pubID = ref.pubID, sysID = ref.sysID), null == sysID && (ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1]), null != pubID && (this.pubID = this.stringify.dtdPubID(pubID)), null != sysID && (this.sysID = this.stringify.dtdSysID(sysID)) } return extend(XMLDocType, superClass), XMLDocType.prototype.element = function (name, value) { var child; return child = new XMLDTDElement(this, name, value), this.children.push(child), this }, XMLDocType.prototype.attList = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { var child; return child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue), this.children.push(child), this }, XMLDocType.prototype.entity = function (name, value) { var child; return child = new XMLDTDEntity(this, !1, name, value), this.children.push(child), this }, XMLDocType.prototype.pEntity = function (name, value) { var child; return child = new XMLDTDEntity(this, !0, name, value), this.children.push(child), this }, XMLDocType.prototype.notation = function (name, value) { var child; return child = new XMLDTDNotation(this, name, value), this.children.push(child), this }, XMLDocType.prototype.toString = function (options) { return this.options.writer.set(options).docType(this) }, XMLDocType.prototype.ele = function (name, value) { return this.element(name, value) }, XMLDocType.prototype.att = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue) }, XMLDocType.prototype.ent = function (name, value) { return this.entity(name, value) }, XMLDocType.prototype.pent = function (name, value) { return this.pEntity(name, value) }, XMLDocType.prototype.not = function (name, value) { return this.notation(name, value) }, XMLDocType.prototype.up = function () { return this.root() || this.documentObject }, XMLDocType }(XMLNode) }).call(this) - }, { "./Utility": 107, "./XMLCData": 109, "./XMLComment": 110, "./XMLDeclaration": 115, "./XMLDocType": 116, "./XMLElement": 119, "./XMLProcessingInstruction": 121, "./XMLRaw": 122, "./XMLText": 126 }], 121: [function (require, module, exports) { (function () { var XMLNode, XMLProcessingInstruction, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLProcessingInstruction = function (superClass) { function XMLProcessingInstruction(parent, target, value) { if (XMLProcessingInstruction.__super__.constructor.call(this, parent), null == target) throw new Error("Missing instruction target. " + this.debugInfo()); this.target = this.stringify.insTarget(target), value && (this.value = this.stringify.insValue(value)) } return extend(XMLProcessingInstruction, superClass), XMLProcessingInstruction.prototype.clone = function () { return Object.create(this) }, XMLProcessingInstruction.prototype.toString = function (options) { return this.options.writer.set(options).processingInstruction(this) }, XMLProcessingInstruction }(XMLNode) }).call(this) }, { "./XMLNode": 120 }], 122: [function (require, module, exports) { (function () { var XMLNode, XMLRaw, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLRaw = function (superClass) { function XMLRaw(parent, text) { if (XMLRaw.__super__.constructor.call(this, parent), null == text) throw new Error("Missing raw text. " + this.debugInfo()); this.value = this.stringify.raw(text) } return extend(XMLRaw, superClass), XMLRaw.prototype.clone = function () { return Object.create(this) }, XMLRaw.prototype.toString = function (options) { return this.options.writer.set(options).raw(this) }, XMLRaw }(XMLNode) }).call(this) }, { "./XMLNode": 120 }], 123: [function (require, module, exports) { (function () { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStreamWriter, XMLText, XMLWriterBase, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLElement = require("./XMLElement"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDNotation = require("./XMLDTDNotation"), XMLWriterBase = require("./XMLWriterBase"), module.exports = XMLStreamWriter = function (superClass) { function XMLStreamWriter(stream, options) { XMLStreamWriter.__super__.constructor.call(this, options), this.stream = stream } return extend(XMLStreamWriter, superClass), XMLStreamWriter.prototype.document = function (doc) { var child, i, j, len, len1, ref, ref1, results; for (ref = doc.children, i = 0, len = ref.length; len > i; i++)child = ref[i], child.isLastRootNode = !1; for (doc.children[doc.children.length - 1].isLastRootNode = !0, ref1 = doc.children, results = [], j = 0, len1 = ref1.length; len1 > j; j++)switch (child = ref1[j], !1) { case !(child instanceof XMLDeclaration): results.push(this.declaration(child)); break; case !(child instanceof XMLDocType): results.push(this.docType(child)); break; case !(child instanceof XMLComment): results.push(this.comment(child)); break; case !(child instanceof XMLProcessingInstruction): results.push(this.processingInstruction(child)); break; default: results.push(this.element(child)) }return results }, XMLStreamWriter.prototype.attribute = function (att) { return this.stream.write(" " + att.name + '="' + att.value + '"') }, XMLStreamWriter.prototype.cdata = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.comment = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.declaration = function (node, level) { return this.stream.write(this.space(level)), this.stream.write('"), this.stream.write(this.endline(node)) }, XMLStreamWriter.prototype.docType = function (node, level) { var child, i, len, ref; if (level || (level = 0), this.stream.write(this.space(level)), this.stream.write(" 0) { for (this.stream.write(" ["), this.stream.write(this.endline(node)), ref = node.children, i = 0, len = ref.length; len > i; i++)switch (child = ref[i], !1) { case !(child instanceof XMLDTDAttList): this.dtdAttList(child, level + 1); break; case !(child instanceof XMLDTDElement): this.dtdElement(child, level + 1); break; case !(child instanceof XMLDTDEntity): this.dtdEntity(child, level + 1); break; case !(child instanceof XMLDTDNotation): this.dtdNotation(child, level + 1); break; case !(child instanceof XMLCData): this.cdata(child, level + 1); break; case !(child instanceof XMLComment): this.comment(child, level + 1); break; case !(child instanceof XMLProcessingInstruction): this.processingInstruction(child, level + 1); break; default: throw new Error("Unknown DTD node type: " + child.constructor.name) }this.stream.write("]") } return this.stream.write(this.spacebeforeslash + ">"), this.stream.write(this.endline(node)) }, XMLStreamWriter.prototype.element = function (node, level) { var att, child, i, len, name, ref, ref1, space; level || (level = 0), space = this.space(level), this.stream.write(space + "<" + node.name), ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], this.attribute(att)); if (0 === node.children.length || node.children.every(function (e) { return "" === e.value })) this.allowEmpty ? this.stream.write(">") : this.stream.write(this.spacebeforeslash + "/>"); else if (this.pretty && 1 === node.children.length && null != node.children[0].value) this.stream.write(">"), this.stream.write(node.children[0].value), this.stream.write(""); else { for (this.stream.write(">" + this.newline), ref1 = node.children, i = 0, len = ref1.length; len > i; i++)switch (child = ref1[i], !1) { case !(child instanceof XMLCData): this.cdata(child, level + 1); break; case !(child instanceof XMLComment): this.comment(child, level + 1); break; case !(child instanceof XMLElement): this.element(child, level + 1); break; case !(child instanceof XMLRaw): this.raw(child, level + 1); break; case !(child instanceof XMLText): this.text(child, level + 1); break; case !(child instanceof XMLProcessingInstruction): this.processingInstruction(child, level + 1); break; default: throw new Error("Unknown XML node type: " + child.constructor.name) }this.stream.write(space + "") } return this.stream.write(this.endline(node)) }, XMLStreamWriter.prototype.processingInstruction = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.raw = function (node, level) { return this.stream.write(this.space(level) + node.value + this.endline(node)) }, XMLStreamWriter.prototype.text = function (node, level) { return this.stream.write(this.space(level) + node.value + this.endline(node)) }, XMLStreamWriter.prototype.dtdAttList = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdElement = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdEntity = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdNotation = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.endline = function (node) { return node.isLastRootNode ? "" : this.newline }, XMLStreamWriter }(XMLWriterBase) }).call(this) }, { "./XMLCData": 109, "./XMLComment": 110, "./XMLDTDAttList": 111, "./XMLDTDElement": 112, "./XMLDTDEntity": 113, "./XMLDTDNotation": 114, "./XMLDeclaration": 115, "./XMLDocType": 116, "./XMLElement": 119, "./XMLProcessingInstruction": 121, "./XMLRaw": 122, "./XMLText": 126, "./XMLWriterBase": 127 }], 124: [function (require, module, exports) { (function () { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLText, XMLWriterBase, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLElement = require("./XMLElement"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDNotation = require("./XMLDTDNotation"), XMLWriterBase = require("./XMLWriterBase"), module.exports = XMLStringWriter = function (superClass) { function XMLStringWriter(options) { XMLStringWriter.__super__.constructor.call(this, options) } return extend(XMLStringWriter, superClass), XMLStringWriter.prototype.document = function (doc) { var child, i, len, r, ref; for (this.textispresent = !1, r = "", ref = doc.children, i = 0, len = ref.length; len > i; i++)child = ref[i], r += function () { switch (!1) { case !(child instanceof XMLDeclaration): return this.declaration(child); case !(child instanceof XMLDocType): return this.docType(child); case !(child instanceof XMLComment): return this.comment(child); case !(child instanceof XMLProcessingInstruction): return this.processingInstruction(child); default: return this.element(child, 0) } }.call(this); return this.pretty && r.slice(-this.newline.length) === this.newline && (r = r.slice(0, -this.newline.length)), r }, XMLStringWriter.prototype.attribute = function (att) { return " " + att.name + '="' + att.value + '"' }, XMLStringWriter.prototype.cdata = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.comment = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.declaration = function (node, level) { var r; return r = this.space(level), r += '", r += this.newline }, XMLStringWriter.prototype.docType = function (node, level) { var child, i, len, r, ref; if (level || (level = 0), r = this.space(level), r += " 0) { for (r += " [", r += this.newline, ref = node.children, i = 0, len = ref.length; len > i; i++)child = ref[i], r += function () { switch (!1) { case !(child instanceof XMLDTDAttList): return this.dtdAttList(child, level + 1); case !(child instanceof XMLDTDElement): return this.dtdElement(child, level + 1); case !(child instanceof XMLDTDEntity): return this.dtdEntity(child, level + 1); case !(child instanceof XMLDTDNotation): return this.dtdNotation(child, level + 1); case !(child instanceof XMLCData): return this.cdata(child, level + 1); case !(child instanceof XMLComment): return this.comment(child, level + 1); case !(child instanceof XMLProcessingInstruction): return this.processingInstruction(child, level + 1); default: throw new Error("Unknown DTD node type: " + child.constructor.name) } }.call(this); r += "]" } return r += this.spacebeforeslash + ">", r += this.newline }, XMLStringWriter.prototype.element = function (node, level) { var att, child, i, j, len, len1, name, r, ref, ref1, ref2, space, textispresentwasset; level || (level = 0), textispresentwasset = !1, this.textispresent ? (this.newline = "", this.pretty = !1) : (this.newline = this.newlinedefault, this.pretty = this.prettydefault), space = this.space(level), r = "", r += space + "<" + node.name, ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], r += this.attribute(att)); if (0 === node.children.length || node.children.every(function (e) { return "" === e.value })) r += this.allowEmpty ? ">" + this.newline : this.spacebeforeslash + "/>" + this.newline; else if (this.pretty && 1 === node.children.length && null != node.children[0].value) r += ">", r += node.children[0].value, r += "" + this.newline; else { if (this.dontprettytextnodes) for (ref1 = node.children, i = 0, len = ref1.length; len > i; i++)if (child = ref1[i], null != child.value) { this.textispresent++, textispresentwasset = !0; break } for (this.textispresent && (this.newline = "", this.pretty = !1, space = this.space(level)), r += ">" + this.newline, ref2 = node.children, j = 0, len1 = ref2.length; len1 > j; j++)child = ref2[j], r += function () { switch (!1) { case !(child instanceof XMLCData): return this.cdata(child, level + 1); case !(child instanceof XMLComment): return this.comment(child, level + 1); case !(child instanceof XMLElement): return this.element(child, level + 1); case !(child instanceof XMLRaw): return this.raw(child, level + 1); case !(child instanceof XMLText): return this.text(child, level + 1); case !(child instanceof XMLProcessingInstruction): return this.processingInstruction(child, level + 1); default: throw new Error("Unknown XML node type: " + child.constructor.name) } }.call(this); textispresentwasset && this.textispresent--, this.textispresent || (this.newline = this.newlinedefault, this.pretty = this.prettydefault), r += space + "" + this.newline } return r }, XMLStringWriter.prototype.processingInstruction = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.raw = function (node, level) { return this.space(level) + node.value + this.newline }, XMLStringWriter.prototype.text = function (node, level) { return this.space(level) + node.value + this.newline }, XMLStringWriter.prototype.dtdAttList = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdElement = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdEntity = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdNotation = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.openNode = function (node, level) { var att, name, r, ref; if (level || (level = 0), node instanceof XMLElement) { r = this.space(level) + "<" + node.name, ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], r += this.attribute(att)); return r += (node.children ? ">" : "/>") + this.newline } return r = this.space(level) + "") + this.newline }, XMLStringWriter.prototype.closeNode = function (node, level) { switch (level || (level = 0), !1) { case !(node instanceof XMLElement): return this.space(level) + "" + this.newline; case !(node instanceof XMLDocType): return this.space(level) + "]>" + this.newline } }, XMLStringWriter }(XMLWriterBase) }).call(this) }, { "./XMLCData": 109, "./XMLComment": 110, "./XMLDTDAttList": 111, "./XMLDTDElement": 112, "./XMLDTDEntity": 113, "./XMLDTDNotation": 114, "./XMLDeclaration": 115, "./XMLDocType": 116, "./XMLElement": 119, "./XMLProcessingInstruction": 121, "./XMLRaw": 122, "./XMLText": 126, "./XMLWriterBase": 127 }], 125: [function (require, module, exports) { (function () { var XMLStringifier, bind = function (fn, me) { return function () { return fn.apply(me, arguments) } }, hasProp = {}.hasOwnProperty; module.exports = XMLStringifier = function () { function XMLStringifier(options) { this.assertLegalChar = bind(this.assertLegalChar, this); var key, ref, value; options || (options = {}), this.noDoubleEncoding = options.noDoubleEncoding, ref = options.stringify || {}; for (key in ref) hasProp.call(ref, key) && (value = ref[key], this[key] = value) } return XMLStringifier.prototype.eleName = function (val) { return val = "" + val || "", this.assertLegalChar(val) }, XMLStringifier.prototype.eleText = function (val) { return val = "" + val || "", this.assertLegalChar(this.elEscape(val)) }, XMLStringifier.prototype.cdata = function (val) { return val = "" + val || "", val = val.replace("]]>", "]]]]>"), this.assertLegalChar(val) }, XMLStringifier.prototype.comment = function (val) { if (val = "" + val || "", val.match(/--/)) throw new Error("Comment text cannot contain double-hypen: " + val); return this.assertLegalChar(val) }, XMLStringifier.prototype.raw = function (val) { return "" + val || "" }, XMLStringifier.prototype.attName = function (val) { return val = "" + val || "" }, XMLStringifier.prototype.attValue = function (val) { return val = "" + val || "", this.attEscape(val) }, XMLStringifier.prototype.insTarget = function (val) { return "" + val || "" }, XMLStringifier.prototype.insValue = function (val) { if (val = "" + val || "", val.match(/\?>/)) throw new Error("Invalid processing instruction value: " + val); return val }, XMLStringifier.prototype.xmlVersion = function (val) { if (val = "" + val || "", !val.match(/1\.[0-9]+/)) throw new Error("Invalid version number: " + val); return val }, XMLStringifier.prototype.xmlEncoding = function (val) { if (val = "" + val || "", !val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) throw new Error("Invalid encoding: " + val); return val }, XMLStringifier.prototype.xmlStandalone = function (val) { return val ? "yes" : "no" }, XMLStringifier.prototype.dtdPubID = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdSysID = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdElementValue = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdAttType = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdAttDefault = function (val) { return null != val ? "" + val || "" : val }, XMLStringifier.prototype.dtdEntityValue = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdNData = function (val) { return "" + val || "" }, XMLStringifier.prototype.convertAttKey = "@", XMLStringifier.prototype.convertPIKey = "?", XMLStringifier.prototype.convertTextKey = "#text", XMLStringifier.prototype.convertCDataKey = "#cdata", XMLStringifier.prototype.convertCommentKey = "#comment", XMLStringifier.prototype.convertRawKey = "#raw", XMLStringifier.prototype.assertLegalChar = function (str) { var res; if (res = str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/)) throw new Error("Invalid character in string: " + str + " at index " + res.index); return str }, XMLStringifier.prototype.elEscape = function (str) { var ampregex; return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(//g, ">").replace(/\r/g, " ") }, XMLStringifier.prototype.attEscape = function (str) { var ampregex; return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(/ 0 ? new Array(indent).join(this.indent) : "") : "" }, XMLWriterBase }() }).call(this) }, {}], 128: [function (require, module, exports) { (function () { var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; ref = require("./Utility"), assign = ref.assign, isFunction = ref.isFunction, XMLDocument = require("./XMLDocument"), XMLDocumentCB = require("./XMLDocumentCB"), XMLStringWriter = require("./XMLStringWriter"), XMLStreamWriter = require("./XMLStreamWriter"), module.exports.create = function (name, xmldec, doctype, options) { var doc, root; if (null == name) throw new Error("Root element needs a name."); return options = assign({}, xmldec, doctype, options), doc = new XMLDocument(options), root = doc.element(name), options.headless || (doc.declaration(options), (null != options.pubID || null != options.sysID) && doc.doctype(options)), root }, module.exports.begin = function (options, onData, onEnd) { var ref1; return isFunction(options) && (ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1], options = {}), onData ? new XMLDocumentCB(options, onData, onEnd) : new XMLDocument(options) }, module.exports.stringWriter = function (options) { return new XMLStringWriter(options) }, module.exports.streamWriter = function (stream, options) { return new XMLStreamWriter(stream, options) } }).call(this) }, { - "./Utility": 107, "./XMLDocument": 117, "./XMLDocumentCB": 118, "./XMLStreamWriter": 123, "./XMLStringWriter": 124 - }] + }, { "./Utility": 122, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLNode": 135 }], 132: [function (require, module, exports) { (function () { var XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; isPlainObject = require("./Utility").isPlainObject, XMLNode = require("./XMLNode"), XMLStringifier = require("./XMLStringifier"), XMLStringWriter = require("./XMLStringWriter"), module.exports = XMLDocument = function (superClass) { function XMLDocument(options) { XMLDocument.__super__.constructor.call(this, null), this.name = "?xml", options || (options = {}), options.writer || (options.writer = new XMLStringWriter), this.options = options, this.stringify = new XMLStringifier(options), this.isDocument = !0 } return extend(XMLDocument, superClass), XMLDocument.prototype.end = function (writer) { var writerOptions; return writer ? isPlainObject(writer) && (writerOptions = writer, writer = this.options.writer.set(writerOptions)) : writer = this.options.writer, writer.document(this) }, XMLDocument.prototype.toString = function (options) { return this.options.writer.set(options).document(this) }, XMLDocument }(XMLNode) }).call(this) }, { "./Utility": 122, "./XMLNode": 135, "./XMLStringWriter": 139, "./XMLStringifier": 140 }], 133: [function (require, module, exports) { (function () { var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue, XMLElement = require("./XMLElement"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDNotation = require("./XMLDTDNotation"), XMLAttribute = require("./XMLAttribute"), XMLStringifier = require("./XMLStringifier"), XMLStringWriter = require("./XMLStringWriter"), module.exports = XMLDocumentCB = function () { function XMLDocumentCB(options, onData, onEnd) { var writerOptions; this.name = "?xml", options || (options = {}), options.writer ? isPlainObject(options.writer) && (writerOptions = options.writer, options.writer = new XMLStringWriter(writerOptions)) : options.writer = new XMLStringWriter(options), this.options = options, this.writer = options.writer, this.stringify = new XMLStringifier(options), this.onDataCallback = onData || function () { }, this.onEndCallback = onEnd || function () { }, this.currentNode = null, this.currentLevel = -1, this.openTags = {}, this.documentStarted = !1, this.documentCompleted = !1, this.root = null } return XMLDocumentCB.prototype.node = function (name, attributes, text) { var ref1; if (null == name) throw new Error("Missing node name."); if (this.root && -1 === this.currentLevel) throw new Error("Document can only have one root node. " + this.debugInfo(name)); return this.openCurrent(), name = getValue(name), null == attributes && (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), this.currentNode = new XMLElement(this, name, attributes), this.currentNode.children = !1, this.currentLevel++, this.openTags[this.currentLevel] = this.currentNode, null != text && this.text(text), this }, XMLDocumentCB.prototype.element = function (name, attributes, text) { return this.currentNode && this.currentNode instanceof XMLDocType ? this.dtdElement.apply(this, arguments) : this.node(name, attributes, text) }, XMLDocumentCB.prototype.attribute = function (name, value) { var attName, attValue; if (!this.currentNode || this.currentNode.children) throw new Error("att() can only be used immediately after an ele() call in callback mode. " + this.debugInfo(name)); if (null != name && (name = getValue(name)), isObject(name)) for (attName in name) hasProp.call(name, attName) && (attValue = name[attName], this.attribute(attName, attValue)); else isFunction(value) && (value = value.apply()), this.options.skipNullAttributes && null == value || (this.currentNode.attributes[name] = new XMLAttribute(this, name, value)); return this }, XMLDocumentCB.prototype.text = function (value) { var node; return this.openCurrent(), node = new XMLText(this, value), this.onData(this.writer.text(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.cdata = function (value) { var node; return this.openCurrent(), node = new XMLCData(this, value), this.onData(this.writer.cdata(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.comment = function (value) { var node; return this.openCurrent(), node = new XMLComment(this, value), this.onData(this.writer.comment(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.raw = function (value) { var node; return this.openCurrent(), node = new XMLRaw(this, value), this.onData(this.writer.raw(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.instruction = function (target, value) { var i, insTarget, insValue, len, node; if (this.openCurrent(), null != target && (target = getValue(target)), null != value && (value = getValue(value)), Array.isArray(target)) for (i = 0, len = target.length; len > i; i++)insTarget = target[i], this.instruction(insTarget); else if (isObject(target)) for (insTarget in target) hasProp.call(target, insTarget) && (insValue = target[insTarget], this.instruction(insTarget, insValue)); else isFunction(value) && (value = value.apply()), node = new XMLProcessingInstruction(this, target, value), this.onData(this.writer.processingInstruction(node, this.currentLevel + 1), this.currentLevel + 1); return this }, XMLDocumentCB.prototype.declaration = function (version, encoding, standalone) { var node; if (this.openCurrent(), this.documentStarted) throw new Error("declaration() must be the first node."); return node = new XMLDeclaration(this, version, encoding, standalone), this.onData(this.writer.declaration(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.doctype = function (root, pubID, sysID) { if (this.openCurrent(), null == root) throw new Error("Missing root node name."); if (this.root) throw new Error("dtd() must come before the root node."); return this.currentNode = new XMLDocType(this, pubID, sysID), this.currentNode.rootNodeName = root, this.currentNode.children = !1, this.currentLevel++, this.openTags[this.currentLevel] = this.currentNode, this }, XMLDocumentCB.prototype.dtdElement = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDElement(this, name, value), this.onData(this.writer.dtdElement(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.attList = function (elementName, attributeName, attributeType, defaultValueType, defaultValue) { var node; return this.openCurrent(), node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue), this.onData(this.writer.dtdAttList(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.entity = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDEntity(this, !1, name, value), this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.pEntity = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDEntity(this, !0, name, value), this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.notation = function (name, value) { var node; return this.openCurrent(), node = new XMLDTDNotation(this, name, value), this.onData(this.writer.dtdNotation(node, this.currentLevel + 1), this.currentLevel + 1), this }, XMLDocumentCB.prototype.up = function () { if (this.currentLevel < 0) throw new Error("The document node has no parent."); return this.currentNode ? (this.currentNode.children ? this.closeNode(this.currentNode) : this.openNode(this.currentNode), this.currentNode = null) : this.closeNode(this.openTags[this.currentLevel]), delete this.openTags[this.currentLevel], this.currentLevel--, this }, XMLDocumentCB.prototype.end = function () { for (; this.currentLevel >= 0;)this.up(); return this.onEnd() }, XMLDocumentCB.prototype.openCurrent = function () { return this.currentNode ? (this.currentNode.children = !0, this.openNode(this.currentNode)) : void 0 }, XMLDocumentCB.prototype.openNode = function (node) { return node.isOpen ? void 0 : (!this.root && 0 === this.currentLevel && node instanceof XMLElement && (this.root = node), this.onData(this.writer.openNode(node, this.currentLevel), this.currentLevel), node.isOpen = !0) }, XMLDocumentCB.prototype.closeNode = function (node) { return node.isClosed ? void 0 : (this.onData(this.writer.closeNode(node, this.currentLevel), this.currentLevel), node.isClosed = !0) }, XMLDocumentCB.prototype.onData = function (chunk, level) { return this.documentStarted = !0, this.onDataCallback(chunk, level + 1) }, XMLDocumentCB.prototype.onEnd = function () { return this.documentCompleted = !0, this.onEndCallback() }, XMLDocumentCB.prototype.debugInfo = function (name) { return null == name ? "" : "node: <" + name + ">" }, XMLDocumentCB.prototype.ele = function () { return this.element.apply(this, arguments) }, XMLDocumentCB.prototype.nod = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLDocumentCB.prototype.txt = function (value) { return this.text(value) }, XMLDocumentCB.prototype.dat = function (value) { return this.cdata(value) }, XMLDocumentCB.prototype.com = function (value) { return this.comment(value) }, XMLDocumentCB.prototype.ins = function (target, value) { return this.instruction(target, value) }, XMLDocumentCB.prototype.dec = function (version, encoding, standalone) { return this.declaration(version, encoding, standalone) }, XMLDocumentCB.prototype.dtd = function (root, pubID, sysID) { return this.doctype(root, pubID, sysID) }, XMLDocumentCB.prototype.e = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLDocumentCB.prototype.n = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLDocumentCB.prototype.t = function (value) { return this.text(value) }, XMLDocumentCB.prototype.d = function (value) { return this.cdata(value) }, XMLDocumentCB.prototype.c = function (value) { return this.comment(value) }, XMLDocumentCB.prototype.r = function (value) { return this.raw(value) }, XMLDocumentCB.prototype.i = function (target, value) { return this.instruction(target, value) }, XMLDocumentCB.prototype.att = function () { return this.currentNode && this.currentNode instanceof XMLDocType ? this.attList.apply(this, arguments) : this.attribute.apply(this, arguments) }, XMLDocumentCB.prototype.a = function () { return this.currentNode && this.currentNode instanceof XMLDocType ? this.attList.apply(this, arguments) : this.attribute.apply(this, arguments) }, XMLDocumentCB.prototype.ent = function (name, value) { return this.entity(name, value) }, XMLDocumentCB.prototype.pent = function (name, value) { return this.pEntity(name, value) }, XMLDocumentCB.prototype.not = function (name, value) { return this.notation(name, value) }, XMLDocumentCB }() }).call(this) }, { "./Utility": 122, "./XMLAttribute": 123, "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLStringWriter": 139, "./XMLStringifier": 140, "./XMLText": 141 }], 134: [function (require, module, exports) { (function () { var XMLAttribute, XMLElement, XMLNode, getValue, isFunction, isObject, ref, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue, XMLNode = require("./XMLNode"), XMLAttribute = require("./XMLAttribute"), module.exports = XMLElement = function (superClass) { function XMLElement(parent, name, attributes) { if (XMLElement.__super__.constructor.call(this, parent), null == name) throw new Error("Missing element name. " + this.debugInfo()); this.name = this.stringify.eleName(name), this.attributes = {}, null != attributes && this.attribute(attributes), parent.isDocument && (this.isRoot = !0, this.documentObject = parent, parent.rootObject = this) } return extend(XMLElement, superClass), XMLElement.prototype.clone = function () { var att, attName, clonedSelf, ref1; clonedSelf = Object.create(this), clonedSelf.isRoot && (clonedSelf.documentObject = null), clonedSelf.attributes = {}, ref1 = this.attributes; for (attName in ref1) hasProp.call(ref1, attName) && (att = ref1[attName], clonedSelf.attributes[attName] = att.clone()); return clonedSelf.children = [], this.children.forEach(function (child) { var clonedChild; return clonedChild = child.clone(), clonedChild.parent = clonedSelf, clonedSelf.children.push(clonedChild) }), clonedSelf }, XMLElement.prototype.attribute = function (name, value) { var attName, attValue; if (null != name && (name = getValue(name)), isObject(name)) for (attName in name) hasProp.call(name, attName) && (attValue = name[attName], this.attribute(attName, attValue)); else isFunction(value) && (value = value.apply()), this.options.skipNullAttributes && null == value || (this.attributes[name] = new XMLAttribute(this, name, value)); return this }, XMLElement.prototype.removeAttribute = function (name) { var attName, i, len; if (null == name) throw new Error("Missing attribute name. " + this.debugInfo()); if (name = getValue(name), Array.isArray(name)) for (i = 0, len = name.length; len > i; i++)attName = name[i], delete this.attributes[attName]; else delete this.attributes[name]; return this }, XMLElement.prototype.toString = function (options) { return this.options.writer.set(options).element(this) }, XMLElement.prototype.att = function (name, value) { return this.attribute(name, value) }, XMLElement.prototype.a = function (name, value) { return this.attribute(name, value) }, XMLElement }(XMLNode) }).call(this) }, { "./Utility": 122, "./XMLAttribute": 123, "./XMLNode": 135 }], 135: [function (require, module, exports) { (function () { var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref, hasProp = {}.hasOwnProperty; ref = require("./Utility"), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty, getValue = ref.getValue, XMLElement = null, XMLCData = null, XMLComment = null, XMLDeclaration = null, XMLDocType = null, XMLRaw = null, XMLText = null, XMLProcessingInstruction = null, module.exports = XMLNode = function () { function XMLNode(parent) { this.parent = parent, this.parent && (this.options = this.parent.options, this.stringify = this.parent.stringify), this.children = [], XMLElement || (XMLElement = require("./XMLElement"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction")) } return XMLNode.prototype.element = function (name, attributes, text) { var childNode, item, j, k, key, lastChild, len, len1, ref1, val; if (lastChild = null, null == attributes && (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), null != name && (name = getValue(name)), Array.isArray(name)) for (j = 0, len = name.length; len > j; j++)item = name[j], lastChild = this.element(item); else if (isFunction(name)) lastChild = this.element(name.apply()); else if (isObject(name)) { for (key in name) if (hasProp.call(name, key)) if (val = name[key], isFunction(val) && (val = val.apply()), isObject(val) && isEmpty(val) && (val = null), !this.options.ignoreDecorators && this.stringify.convertAttKey && 0 === key.indexOf(this.stringify.convertAttKey)) lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val); else if (!this.options.separateArrayItems && Array.isArray(val)) for (k = 0, len1 = val.length; len1 > k; k++)item = val[k], childNode = {}, childNode[key] = item, lastChild = this.element(childNode); else isObject(val) ? (lastChild = this.element(key), lastChild.element(val)) : lastChild = this.element(key, val) } else lastChild = !this.options.ignoreDecorators && this.stringify.convertTextKey && 0 === name.indexOf(this.stringify.convertTextKey) ? this.text(text) : !this.options.ignoreDecorators && this.stringify.convertCDataKey && 0 === name.indexOf(this.stringify.convertCDataKey) ? this.cdata(text) : !this.options.ignoreDecorators && this.stringify.convertCommentKey && 0 === name.indexOf(this.stringify.convertCommentKey) ? this.comment(text) : !this.options.ignoreDecorators && this.stringify.convertRawKey && 0 === name.indexOf(this.stringify.convertRawKey) ? this.raw(text) : !this.options.ignoreDecorators && this.stringify.convertPIKey && 0 === name.indexOf(this.stringify.convertPIKey) ? this.instruction(name.substr(this.stringify.convertPIKey.length), text) : this.node(name, attributes, text); if (null == lastChild) throw new Error("Could not create any elements with: " + name + ". " + this.debugInfo()); return lastChild }, XMLNode.prototype.insertBefore = function (name, attributes, text) { var child, i, removed; if (this.isRoot) throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.element(name, attributes, text), Array.prototype.push.apply(this.parent.children, removed), child }, XMLNode.prototype.insertAfter = function (name, attributes, text) { var child, i, removed; if (this.isRoot) throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.element(name, attributes, text), Array.prototype.push.apply(this.parent.children, removed), child }, XMLNode.prototype.remove = function () { var i, ref1; if (this.isRoot) throw new Error("Cannot remove the root element. " + this.debugInfo()); return i = this.parent.children.indexOf(this), [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref1 = [])), ref1, this.parent }, XMLNode.prototype.node = function (name, attributes, text) { var child, ref1; return null != name && (name = getValue(name)), attributes || (attributes = {}), attributes = getValue(attributes), isObject(attributes) || (ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]), child = new XMLElement(this, name, attributes), null != text && child.text(text), this.children.push(child), child }, XMLNode.prototype.text = function (value) { var child; return child = new XMLText(this, value), this.children.push(child), this }, XMLNode.prototype.cdata = function (value) { var child; return child = new XMLCData(this, value), this.children.push(child), this }, XMLNode.prototype.comment = function (value) { var child; return child = new XMLComment(this, value), this.children.push(child), this }, XMLNode.prototype.commentBefore = function (value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.comment(value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.commentAfter = function (value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.comment(value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.raw = function (value) { var child; return child = new XMLRaw(this, value), this.children.push(child), this }, XMLNode.prototype.instruction = function (target, value) { var insTarget, insValue, instruction, j, len; if (null != target && (target = getValue(target)), null != value && (value = getValue(value)), Array.isArray(target)) for (j = 0, len = target.length; len > j; j++)insTarget = target[j], this.instruction(insTarget); else if (isObject(target)) for (insTarget in target) hasProp.call(target, insTarget) && (insValue = target[insTarget], this.instruction(insTarget, insValue)); else isFunction(value) && (value = value.apply()), instruction = new XMLProcessingInstruction(this, target, value), this.children.push(instruction); return this }, XMLNode.prototype.instructionBefore = function (target, value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i), child = this.parent.instruction(target, value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.instructionAfter = function (target, value) { var child, i, removed; return i = this.parent.children.indexOf(this), removed = this.parent.children.splice(i + 1), child = this.parent.instruction(target, value), Array.prototype.push.apply(this.parent.children, removed), this }, XMLNode.prototype.declaration = function (version, encoding, standalone) { var doc, xmldec; return doc = this.document(), xmldec = new XMLDeclaration(doc, version, encoding, standalone), doc.children[0] instanceof XMLDeclaration ? doc.children[0] = xmldec : doc.children.unshift(xmldec), doc.root() || doc }, XMLNode.prototype.doctype = function (pubID, sysID) { var child, doc, doctype, i, j, k, len, len1, ref1, ref2; for (doc = this.document(), doctype = new XMLDocType(doc, pubID, sysID), ref1 = doc.children, i = j = 0, len = ref1.length; len > j; i = ++j)if (child = ref1[i], child instanceof XMLDocType) return doc.children[i] = doctype, doctype; for (ref2 = doc.children, i = k = 0, len1 = ref2.length; len1 > k; i = ++k)if (child = ref2[i], child.isRoot) return doc.children.splice(i, 0, doctype), doctype; return doc.children.push(doctype), doctype }, XMLNode.prototype.up = function () { if (this.isRoot) throw new Error("The root node has no parent. Use doc() if you need to get the document object."); return this.parent }, XMLNode.prototype.root = function () { var node; for (node = this; node;) { if (node.isDocument) return node.rootObject; if (node.isRoot) return node; node = node.parent } }, XMLNode.prototype.document = function () { var node; for (node = this; node;) { if (node.isDocument) return node; node = node.parent } }, XMLNode.prototype.end = function (options) { return this.document().end(options) }, XMLNode.prototype.prev = function () { var i; if (i = this.parent.children.indexOf(this), 1 > i) throw new Error("Already at the first node. " + this.debugInfo()); return this.parent.children[i - 1] }, XMLNode.prototype.next = function () { var i; if (i = this.parent.children.indexOf(this), -1 === i || i === this.parent.children.length - 1) throw new Error("Already at the last node. " + this.debugInfo()); return this.parent.children[i + 1] }, XMLNode.prototype.importDocument = function (doc) { var clonedRoot; return clonedRoot = doc.root().clone(), clonedRoot.parent = this, clonedRoot.isRoot = !1, this.children.push(clonedRoot), this }, XMLNode.prototype.debugInfo = function (name) { var ref1, ref2; return name = name || this.name, null != name || (null != (ref1 = this.parent) ? ref1.name : void 0) ? null == name ? "parent: <" + this.parent.name + ">" : (null != (ref2 = this.parent) ? ref2.name : void 0) ? "node: <" + name + ">, parent: <" + this.parent.name + ">" : "node: <" + name + ">" : "" }, XMLNode.prototype.ele = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLNode.prototype.nod = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLNode.prototype.txt = function (value) { return this.text(value) }, XMLNode.prototype.dat = function (value) { return this.cdata(value) }, XMLNode.prototype.com = function (value) { return this.comment(value) }, XMLNode.prototype.ins = function (target, value) { return this.instruction(target, value) }, XMLNode.prototype.doc = function () { return this.document() }, XMLNode.prototype.dec = function (version, encoding, standalone) { return this.declaration(version, encoding, standalone) }, XMLNode.prototype.dtd = function (pubID, sysID) { return this.doctype(pubID, sysID) }, XMLNode.prototype.e = function (name, attributes, text) { return this.element(name, attributes, text) }, XMLNode.prototype.n = function (name, attributes, text) { return this.node(name, attributes, text) }, XMLNode.prototype.t = function (value) { return this.text(value) }, XMLNode.prototype.d = function (value) { return this.cdata(value) }, XMLNode.prototype.c = function (value) { return this.comment(value) }, XMLNode.prototype.r = function (value) { return this.raw(value) }, XMLNode.prototype.i = function (target, value) { return this.instruction(target, value) }, XMLNode.prototype.u = function () { return this.up() }, XMLNode.prototype.importXMLBuilder = function (doc) { return this.importDocument(doc) }, XMLNode }() }).call(this) }, { "./Utility": 122, "./XMLCData": 124, "./XMLComment": 125, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141 }], 136: [function (require, module, exports) { (function () { var XMLNode, XMLProcessingInstruction, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLProcessingInstruction = function (superClass) { function XMLProcessingInstruction(parent, target, value) { if (XMLProcessingInstruction.__super__.constructor.call(this, parent), null == target) throw new Error("Missing instruction target. " + this.debugInfo()); this.target = this.stringify.insTarget(target), value && (this.value = this.stringify.insValue(value)) } return extend(XMLProcessingInstruction, superClass), XMLProcessingInstruction.prototype.clone = function () { return Object.create(this) }, XMLProcessingInstruction.prototype.toString = function (options) { return this.options.writer.set(options).processingInstruction(this) }, XMLProcessingInstruction }(XMLNode) }).call(this) }, { "./XMLNode": 135 }], 137: [function (require, module, exports) { (function () { var XMLNode, XMLRaw, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLNode = require("./XMLNode"), module.exports = XMLRaw = function (superClass) { function XMLRaw(parent, text) { if (XMLRaw.__super__.constructor.call(this, parent), null == text) throw new Error("Missing raw text. " + this.debugInfo()); this.value = this.stringify.raw(text) } return extend(XMLRaw, superClass), XMLRaw.prototype.clone = function () { return Object.create(this) }, XMLRaw.prototype.toString = function (options) { return this.options.writer.set(options).raw(this) }, XMLRaw }(XMLNode) }).call(this) }, { "./XMLNode": 135 }], 138: [function (require, module, exports) { + (function () { + var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStreamWriter, XMLText, XMLWriterBase, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLElement = require("./XMLElement"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDNotation = require("./XMLDTDNotation"), XMLWriterBase = require("./XMLWriterBase"), module.exports = XMLStreamWriter = function (superClass) { + function XMLStreamWriter(stream, options) { XMLStreamWriter.__super__.constructor.call(this, options), this.stream = stream } return extend(XMLStreamWriter, superClass), XMLStreamWriter.prototype.document = function (doc) { var child, i, j, len, len1, ref, ref1, results; for (ref = doc.children, i = 0, len = ref.length; len > i; i++)child = ref[i], child.isLastRootNode = !1; for (doc.children[doc.children.length - 1].isLastRootNode = !0, ref1 = doc.children, results = [], j = 0, len1 = ref1.length; len1 > j; j++)switch (child = ref1[j], !1) { case !(child instanceof XMLDeclaration): results.push(this.declaration(child)); break; case !(child instanceof XMLDocType): results.push(this.docType(child)); break; case !(child instanceof XMLComment): results.push(this.comment(child)); break; case !(child instanceof XMLProcessingInstruction): results.push(this.processingInstruction(child)); break; default: results.push(this.element(child)) }return results }, XMLStreamWriter.prototype.attribute = function (att) { return this.stream.write(" " + att.name + '="' + att.value + '"') }, XMLStreamWriter.prototype.cdata = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.comment = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.declaration = function (node, level) { return this.stream.write(this.space(level)), this.stream.write('"), this.stream.write(this.endline(node)) }, XMLStreamWriter.prototype.docType = function (node, level) { + var child, i, len, ref; if (level || (level = 0), this.stream.write(this.space(level)), this.stream.write(" 0) { for (this.stream.write(" ["), this.stream.write(this.endline(node)), ref = node.children, i = 0, len = ref.length; len > i; i++)switch (child = ref[i], !1) { case !(child instanceof XMLDTDAttList): this.dtdAttList(child, level + 1); break; case !(child instanceof XMLDTDElement): this.dtdElement(child, level + 1); break; case !(child instanceof XMLDTDEntity): this.dtdEntity(child, level + 1); break; case !(child instanceof XMLDTDNotation): this.dtdNotation(child, level + 1); break; case !(child instanceof XMLCData): this.cdata(child, level + 1); break; case !(child instanceof XMLComment): this.comment(child, level + 1); break; case !(child instanceof XMLProcessingInstruction): this.processingInstruction(child, level + 1); break; default: throw new Error("Unknown DTD node type: " + child.constructor.name) }this.stream.write("]") } return this.stream.write(this.spacebeforeslash + ">"), + this.stream.write(this.endline(node)) + }, XMLStreamWriter.prototype.element = function (node, level) { var att, child, i, len, name, ref, ref1, space; level || (level = 0), space = this.space(level), this.stream.write(space + "<" + node.name), ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], this.attribute(att)); if (0 === node.children.length || node.children.every(function (e) { return "" === e.value })) this.allowEmpty ? this.stream.write(">") : this.stream.write(this.spacebeforeslash + "/>"); else if (this.pretty && 1 === node.children.length && null != node.children[0].value) this.stream.write(">"), this.stream.write(node.children[0].value), this.stream.write(""); else { for (this.stream.write(">" + this.newline), ref1 = node.children, i = 0, len = ref1.length; len > i; i++)switch (child = ref1[i], !1) { case !(child instanceof XMLCData): this.cdata(child, level + 1); break; case !(child instanceof XMLComment): this.comment(child, level + 1); break; case !(child instanceof XMLElement): this.element(child, level + 1); break; case !(child instanceof XMLRaw): this.raw(child, level + 1); break; case !(child instanceof XMLText): this.text(child, level + 1); break; case !(child instanceof XMLProcessingInstruction): this.processingInstruction(child, level + 1); break; default: throw new Error("Unknown XML node type: " + child.constructor.name) }this.stream.write(space + "") } return this.stream.write(this.endline(node)) }, XMLStreamWriter.prototype.processingInstruction = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.raw = function (node, level) { return this.stream.write(this.space(level) + node.value + this.endline(node)) }, XMLStreamWriter.prototype.text = function (node, level) { return this.stream.write(this.space(level) + node.value + this.endline(node)) }, XMLStreamWriter.prototype.dtdAttList = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdElement = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdEntity = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.dtdNotation = function (node, level) { return this.stream.write(this.space(level) + "" + this.endline(node)) }, XMLStreamWriter.prototype.endline = function (node) { return node.isLastRootNode ? "" : this.newline }, XMLStreamWriter + }(XMLWriterBase) + }).call(this) + }, { "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141, "./XMLWriterBase": 142 }], 139: [function (require, module, exports) { (function () { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLText, XMLWriterBase, extend = function (child, parent) { function ctor() { this.constructor = child } for (var key in parent) hasProp.call(parent, key) && (child[key] = parent[key]); return ctor.prototype = parent.prototype, child.prototype = new ctor, child.__super__ = parent.prototype, child }, hasProp = {}.hasOwnProperty; XMLDeclaration = require("./XMLDeclaration"), XMLDocType = require("./XMLDocType"), XMLCData = require("./XMLCData"), XMLComment = require("./XMLComment"), XMLElement = require("./XMLElement"), XMLRaw = require("./XMLRaw"), XMLText = require("./XMLText"), XMLProcessingInstruction = require("./XMLProcessingInstruction"), XMLDTDAttList = require("./XMLDTDAttList"), XMLDTDElement = require("./XMLDTDElement"), XMLDTDEntity = require("./XMLDTDEntity"), XMLDTDNotation = require("./XMLDTDNotation"), XMLWriterBase = require("./XMLWriterBase"), module.exports = XMLStringWriter = function (superClass) { function XMLStringWriter(options) { XMLStringWriter.__super__.constructor.call(this, options) } return extend(XMLStringWriter, superClass), XMLStringWriter.prototype.document = function (doc) { var child, i, len, r, ref; for (this.textispresent = !1, r = "", ref = doc.children, i = 0, len = ref.length; len > i; i++)child = ref[i], r += function () { switch (!1) { case !(child instanceof XMLDeclaration): return this.declaration(child); case !(child instanceof XMLDocType): return this.docType(child); case !(child instanceof XMLComment): return this.comment(child); case !(child instanceof XMLProcessingInstruction): return this.processingInstruction(child); default: return this.element(child, 0) } }.call(this); return this.pretty && r.slice(-this.newline.length) === this.newline && (r = r.slice(0, -this.newline.length)), r }, XMLStringWriter.prototype.attribute = function (att) { return " " + att.name + '="' + att.value + '"' }, XMLStringWriter.prototype.cdata = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.comment = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.declaration = function (node, level) { var r; return r = this.space(level), r += '", r += this.newline }, XMLStringWriter.prototype.docType = function (node, level) { var child, i, len, r, ref; if (level || (level = 0), r = this.space(level), r += " 0) { for (r += " [", r += this.newline, ref = node.children, i = 0, len = ref.length; len > i; i++)child = ref[i], r += function () { switch (!1) { case !(child instanceof XMLDTDAttList): return this.dtdAttList(child, level + 1); case !(child instanceof XMLDTDElement): return this.dtdElement(child, level + 1); case !(child instanceof XMLDTDEntity): return this.dtdEntity(child, level + 1); case !(child instanceof XMLDTDNotation): return this.dtdNotation(child, level + 1); case !(child instanceof XMLCData): return this.cdata(child, level + 1); case !(child instanceof XMLComment): return this.comment(child, level + 1); case !(child instanceof XMLProcessingInstruction): return this.processingInstruction(child, level + 1); default: throw new Error("Unknown DTD node type: " + child.constructor.name) } }.call(this); r += "]" } return r += this.spacebeforeslash + ">", r += this.newline }, XMLStringWriter.prototype.element = function (node, level) { var att, child, i, j, len, len1, name, r, ref, ref1, ref2, space, textispresentwasset; level || (level = 0), textispresentwasset = !1, this.textispresent ? (this.newline = "", this.pretty = !1) : (this.newline = this.newlinedefault, this.pretty = this.prettydefault), space = this.space(level), r = "", r += space + "<" + node.name, ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], r += this.attribute(att)); if (0 === node.children.length || node.children.every(function (e) { return "" === e.value })) r += this.allowEmpty ? ">" + this.newline : this.spacebeforeslash + "/>" + this.newline; else if (this.pretty && 1 === node.children.length && null != node.children[0].value) r += ">", r += node.children[0].value, r += "" + this.newline; else { if (this.dontprettytextnodes) for (ref1 = node.children, i = 0, len = ref1.length; len > i; i++)if (child = ref1[i], null != child.value) { this.textispresent++, textispresentwasset = !0; break } for (this.textispresent && (this.newline = "", this.pretty = !1, space = this.space(level)), r += ">" + this.newline, ref2 = node.children, j = 0, len1 = ref2.length; len1 > j; j++)child = ref2[j], r += function () { switch (!1) { case !(child instanceof XMLCData): return this.cdata(child, level + 1); case !(child instanceof XMLComment): return this.comment(child, level + 1); case !(child instanceof XMLElement): return this.element(child, level + 1); case !(child instanceof XMLRaw): return this.raw(child, level + 1); case !(child instanceof XMLText): return this.text(child, level + 1); case !(child instanceof XMLProcessingInstruction): return this.processingInstruction(child, level + 1); default: throw new Error("Unknown XML node type: " + child.constructor.name) } }.call(this); textispresentwasset && this.textispresent--, this.textispresent || (this.newline = this.newlinedefault, this.pretty = this.prettydefault), r += space + "" + this.newline } return r }, XMLStringWriter.prototype.processingInstruction = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.raw = function (node, level) { return this.space(level) + node.value + this.newline }, XMLStringWriter.prototype.text = function (node, level) { return this.space(level) + node.value + this.newline }, XMLStringWriter.prototype.dtdAttList = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdElement = function (node, level) { return this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdEntity = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.dtdNotation = function (node, level) { var r; return r = this.space(level) + "" + this.newline }, XMLStringWriter.prototype.openNode = function (node, level) { var att, name, r, ref; if (level || (level = 0), node instanceof XMLElement) { r = this.space(level) + "<" + node.name, ref = node.attributes; for (name in ref) hasProp.call(ref, name) && (att = ref[name], r += this.attribute(att)); return r += (node.children ? ">" : "/>") + this.newline } return r = this.space(level) + "") + this.newline }, XMLStringWriter.prototype.closeNode = function (node, level) { switch (level || (level = 0), !1) { case !(node instanceof XMLElement): return this.space(level) + "" + this.newline; case !(node instanceof XMLDocType): return this.space(level) + "]>" + this.newline } }, XMLStringWriter }(XMLWriterBase) }).call(this) }, { "./XMLCData": 124, "./XMLComment": 125, "./XMLDTDAttList": 126, "./XMLDTDElement": 127, "./XMLDTDEntity": 128, "./XMLDTDNotation": 129, "./XMLDeclaration": 130, "./XMLDocType": 131, "./XMLElement": 134, "./XMLProcessingInstruction": 136, "./XMLRaw": 137, "./XMLText": 141, "./XMLWriterBase": 142 }], 140: [function (require, module, exports) { (function () { var XMLStringifier, bind = function (fn, me) { return function () { return fn.apply(me, arguments) } }, hasProp = {}.hasOwnProperty; module.exports = XMLStringifier = function () { function XMLStringifier(options) { this.assertLegalChar = bind(this.assertLegalChar, this); var key, ref, value; options || (options = {}), this.noDoubleEncoding = options.noDoubleEncoding, ref = options.stringify || {}; for (key in ref) hasProp.call(ref, key) && (value = ref[key], this[key] = value) } return XMLStringifier.prototype.eleName = function (val) { return val = "" + val || "", this.assertLegalChar(val) }, XMLStringifier.prototype.eleText = function (val) { return val = "" + val || "", this.assertLegalChar(this.elEscape(val)) }, XMLStringifier.prototype.cdata = function (val) { return val = "" + val || "", val = val.replace("]]>", "]]]]>"), this.assertLegalChar(val) }, XMLStringifier.prototype.comment = function (val) { if (val = "" + val || "", val.match(/--/)) throw new Error("Comment text cannot contain double-hypen: " + val); return this.assertLegalChar(val) }, XMLStringifier.prototype.raw = function (val) { return "" + val || "" }, XMLStringifier.prototype.attName = function (val) { return val = "" + val || "" }, XMLStringifier.prototype.attValue = function (val) { return val = "" + val || "", this.attEscape(val) }, XMLStringifier.prototype.insTarget = function (val) { return "" + val || "" }, XMLStringifier.prototype.insValue = function (val) { if (val = "" + val || "", val.match(/\?>/)) throw new Error("Invalid processing instruction value: " + val); return val }, XMLStringifier.prototype.xmlVersion = function (val) { if (val = "" + val || "", !val.match(/1\.[0-9]+/)) throw new Error("Invalid version number: " + val); return val }, XMLStringifier.prototype.xmlEncoding = function (val) { if (val = "" + val || "", !val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) throw new Error("Invalid encoding: " + val); return val }, XMLStringifier.prototype.xmlStandalone = function (val) { return val ? "yes" : "no" }, XMLStringifier.prototype.dtdPubID = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdSysID = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdElementValue = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdAttType = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdAttDefault = function (val) { return null != val ? "" + val || "" : val }, XMLStringifier.prototype.dtdEntityValue = function (val) { return "" + val || "" }, XMLStringifier.prototype.dtdNData = function (val) { return "" + val || "" }, XMLStringifier.prototype.convertAttKey = "@", XMLStringifier.prototype.convertPIKey = "?", XMLStringifier.prototype.convertTextKey = "#text", XMLStringifier.prototype.convertCDataKey = "#cdata", XMLStringifier.prototype.convertCommentKey = "#comment", XMLStringifier.prototype.convertRawKey = "#raw", XMLStringifier.prototype.assertLegalChar = function (str) { var res; if (res = str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/)) throw new Error("Invalid character in string: " + str + " at index " + res.index); return str }, XMLStringifier.prototype.elEscape = function (str) { var ampregex; return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(//g, ">").replace(/\r/g, " ") }, XMLStringifier.prototype.attEscape = function (str) { var ampregex; return ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g, str.replace(ampregex, "&").replace(/ 0 ? new Array(indent).join(this.indent) : "") : "" }, XMLWriterBase }() }).call(this) }, {}], 143: [function (require, module, exports) { (function () { var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; ref = require("./Utility"), assign = ref.assign, isFunction = ref.isFunction, XMLDocument = require("./XMLDocument"), XMLDocumentCB = require("./XMLDocumentCB"), XMLStringWriter = require("./XMLStringWriter"), XMLStreamWriter = require("./XMLStreamWriter"), module.exports.create = function (name, xmldec, doctype, options) { var doc, root; if (null == name) throw new Error("Root element needs a name."); return options = assign({}, xmldec, doctype, options), doc = new XMLDocument(options), root = doc.element(name), options.headless || (doc.declaration(options), (null != options.pubID || null != options.sysID) && doc.doctype(options)), root }, module.exports.begin = function (options, onData, onEnd) { var ref1; return isFunction(options) && (ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1], options = {}), onData ? new XMLDocumentCB(options, onData, onEnd) : new XMLDocument(options) }, module.exports.stringWriter = function (options) { return new XMLStringWriter(options) }, module.exports.streamWriter = function (stream, options) { return new XMLStreamWriter(stream, options) } }).call(this) }, { "./Utility": 122, "./XMLDocument": 132, "./XMLDocumentCB": 133, "./XMLStreamWriter": 138, "./XMLStringWriter": 139 }] }, {}, [21])(21) });