ai-helper-agent 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -3
- package/dist/assets/__vite-browser-external-CM3Eme-n.js +1 -0
- package/dist/assets/agent-store-Ce3f4Ya3.js +1 -0
- package/dist/assets/background.js +104 -80
- package/dist/assets/chat-export-BNCkL6fS.js +37 -0
- package/dist/assets/chunk-CMxvf4Kt.js +1 -0
- package/dist/assets/content.js +159 -156
- package/dist/assets/{dist-BQOFgIxk.js → dist-DhUTa_WT.js} +5 -6
- package/dist/assets/dist-LQPh1k0y.js +24 -0
- package/dist/assets/i18n-ouMgDZ2t.js +49 -0
- package/dist/assets/jszip.min-Bm_16osY.js +2 -0
- package/dist/assets/lib-33nIefF6.js +220 -0
- package/dist/assets/{marked.min.js-08SGy6CO.js → marked.min.js-D2rXgLAQ.js} +7 -8
- package/dist/assets/{marked.min.js-loader-4kRZ9iCP.js → marked.min.js-loader-tKH5SQVQ.js} +1 -1
- package/dist/assets/model-profiles-6dzdrSS4.js +24 -0
- package/dist/assets/network-scope-CNRYXk74.js +1 -0
- package/dist/assets/options-Cp1UMkjK.css +1 -0
- package/dist/assets/options.js +108 -102
- package/dist/assets/{page-snapshot-renderer-CVL6r6Kf.js → page-snapshot-renderer-j72q92KH.js} +2 -3
- package/dist/assets/pdf-DnVqBaAN.js +6 -0
- package/dist/assets/session-store-CmGs_rhh.js +76 -0
- package/dist/assets/side_panel.css +1 -1
- package/dist/assets/side_panel.js +958 -1124
- package/dist/assets/theme-BRAX5X2F.css +1 -0
- package/dist/assets/{modulepreload-polyfill-P2Xu9kJm.js → theme-CLwYsx9o.js} +1 -1
- package/dist/assets/utils-9i9g8vW8.js +112 -0
- package/dist/assets/version-t8HzLv3V.js +1 -0
- package/dist/assets/xlsx-DGkz7cnk.js +105 -0
- package/dist/manifest.json +2 -5
- package/dist/offscreen/offscreen.js +7 -7
- package/dist/options.html +151 -75
- package/dist/side_panel.html +167 -137
- package/package.json +1 -1
- package/src/config.js +3 -2
- package/src/executor.js +99 -18
- package/src/locales/en.json +16 -2
- package/src/locales/zh.json +16 -2
- package/src/memory/injection.js +12 -2
- package/src/memory/routes.js +6 -0
- package/src/memory/service.js +57 -2
- package/src/rag/manager.js +1 -1
- package/src/rag/url-guard.js +27 -12
- package/src/security.js +433 -31
- package/src/server.js +28 -8
- package/dist/assets/agent-store-DcAs6YyA.js +0 -2
- package/dist/assets/agent-store-DcAs6YyA.js.map +0 -1
- package/dist/assets/background.js.map +0 -1
- package/dist/assets/dist-BQOFgIxk.js.map +0 -1
- package/dist/assets/i18n-C4jSRoCH.js +0 -50
- package/dist/assets/i18n-C4jSRoCH.js.map +0 -1
- package/dist/assets/jszip.min-BXqW2-9v.js +0 -3
- package/dist/assets/jszip.min-BXqW2-9v.js.map +0 -1
- package/dist/assets/lib-Bi7BFuND.js +0 -221
- package/dist/assets/lib-Bi7BFuND.js.map +0 -1
- package/dist/assets/marked.min.js-08SGy6CO.js.map +0 -1
- package/dist/assets/model-profiles-Dl_MsXWa.js +0 -25
- package/dist/assets/model-profiles-Dl_MsXWa.js.map +0 -1
- package/dist/assets/options-8-nu3P5K.css +0 -1
- package/dist/assets/options.js.map +0 -1
- package/dist/assets/page-snapshot-renderer-CVL6r6Kf.js.map +0 -1
- package/dist/assets/pdf-HiJ0icvU.js +0 -7
- package/dist/assets/pdf-HiJ0icvU.js.map +0 -1
- package/dist/assets/rolldown-runtime-C0FnF6B9.js +0 -1
- package/dist/assets/session-store-CzVQCgQ_.js +0 -77
- package/dist/assets/session-store-CzVQCgQ_.js.map +0 -1
- package/dist/assets/side_panel.js.map +0 -1
- package/dist/assets/version-CNG2KGnJ.js +0 -2
- package/dist/assets/version-CNG2KGnJ.js.map +0 -1
- package/dist/assets/xlsx-BHKh7vjA.js +0 -106
- package/dist/assets/xlsx-BHKh7vjA.js.map +0 -1
- package/dist/icons/badges/license-MIT.svg +0 -21
- package/dist/icons/badges/platform.svg +0 -21
- package/dist/icons/badges/prs-welcome.svg +0 -21
- package/dist/icons/badges/version.svg +0 -21
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib-Bi7BFuND.js","names":["hasObjectTag","isFunction","isArrayBuffer","has","has","isFinite","isSymbol","isNaN","isNumber","getByteLength","isDataView","isBufferLike","isFunction","has","has","getLength","isArray","isString","isArguments","_","getByteLength","_","isDataView","isTypedArray","getByteLength","isFunction","has","getLength","isFunction","isFunction","isArray","extend","toPath","isArray","_","_has","extendOwn","isFunction","isArray","_","escapeMap","escapeMap","unescapeMap","defaults","_","isFunction","_","_","isFunction","getLength","flatten","getLength","isArrayLike","isArray","isArguments","flatten","bind","has","delay","_","now","now","getLength","getLength","getLength","isNaN","findIndex","findLastIndex","isArrayLike","findIndex","isArrayLike","isArrayLike","isArrayLike","isArrayLike","isArrayLike","isArrayLike","indexOf","isFunction","isArrayLike","isArrayLike","isArray","isString","isArrayLike","isArrayLike","getLength","has","has","isArrayLike","isFunction","flatten","isFunction","flatten","pick","_flatten","flatten","difference","getLength","flatten","getLength","getLength","getLength","_","_","_","allExports"],"sources":["../../node_modules/underscore/modules/_setup.js","../../node_modules/underscore/modules/restArguments.js","../../node_modules/underscore/modules/isObject.js","../../node_modules/underscore/modules/isNull.js","../../node_modules/underscore/modules/isUndefined.js","../../node_modules/underscore/modules/isBoolean.js","../../node_modules/underscore/modules/isElement.js","../../node_modules/underscore/modules/_tagTester.js","../../node_modules/underscore/modules/isString.js","../../node_modules/underscore/modules/isNumber.js","../../node_modules/underscore/modules/isDate.js","../../node_modules/underscore/modules/isRegExp.js","../../node_modules/underscore/modules/isError.js","../../node_modules/underscore/modules/isSymbol.js","../../node_modules/underscore/modules/isArrayBuffer.js","../../node_modules/underscore/modules/isFunction.js","../../node_modules/underscore/modules/_hasObjectTag.js","../../node_modules/underscore/modules/_stringTagBug.js","../../node_modules/underscore/modules/isDataView.js","../../node_modules/underscore/modules/isArray.js","../../node_modules/underscore/modules/_has.js","../../node_modules/underscore/modules/isArguments.js","../../node_modules/underscore/modules/isFinite.js","../../node_modules/underscore/modules/isNaN.js","../../node_modules/underscore/modules/constant.js","../../node_modules/underscore/modules/_createSizePropertyCheck.js","../../node_modules/underscore/modules/_shallowProperty.js","../../node_modules/underscore/modules/_getByteLength.js","../../node_modules/underscore/modules/_isBufferLike.js","../../node_modules/underscore/modules/isTypedArray.js","../../node_modules/underscore/modules/_getLength.js","../../node_modules/underscore/modules/_collectNonEnumProps.js","../../node_modules/underscore/modules/keys.js","../../node_modules/underscore/modules/isEmpty.js","../../node_modules/underscore/modules/isMatch.js","../../node_modules/underscore/modules/underscore.js","../../node_modules/underscore/modules/_toBufferView.js","../../node_modules/underscore/modules/isEqual.js","../../node_modules/underscore/modules/allKeys.js","../../node_modules/underscore/modules/_methodFingerprint.js","../../node_modules/underscore/modules/isMap.js","../../node_modules/underscore/modules/isWeakMap.js","../../node_modules/underscore/modules/isSet.js","../../node_modules/underscore/modules/isWeakSet.js","../../node_modules/underscore/modules/values.js","../../node_modules/underscore/modules/pairs.js","../../node_modules/underscore/modules/invert.js","../../node_modules/underscore/modules/functions.js","../../node_modules/underscore/modules/_createAssigner.js","../../node_modules/underscore/modules/extend.js","../../node_modules/underscore/modules/extendOwn.js","../../node_modules/underscore/modules/defaults.js","../../node_modules/underscore/modules/_baseCreate.js","../../node_modules/underscore/modules/create.js","../../node_modules/underscore/modules/clone.js","../../node_modules/underscore/modules/tap.js","../../node_modules/underscore/modules/toPath.js","../../node_modules/underscore/modules/_toPath.js","../../node_modules/underscore/modules/_deepGet.js","../../node_modules/underscore/modules/get.js","../../node_modules/underscore/modules/has.js","../../node_modules/underscore/modules/identity.js","../../node_modules/underscore/modules/matcher.js","../../node_modules/underscore/modules/property.js","../../node_modules/underscore/modules/_optimizeCb.js","../../node_modules/underscore/modules/_baseIteratee.js","../../node_modules/underscore/modules/iteratee.js","../../node_modules/underscore/modules/_cb.js","../../node_modules/underscore/modules/mapObject.js","../../node_modules/underscore/modules/noop.js","../../node_modules/underscore/modules/propertyOf.js","../../node_modules/underscore/modules/times.js","../../node_modules/underscore/modules/random.js","../../node_modules/underscore/modules/now.js","../../node_modules/underscore/modules/_createEscaper.js","../../node_modules/underscore/modules/_escapeMap.js","../../node_modules/underscore/modules/escape.js","../../node_modules/underscore/modules/_unescapeMap.js","../../node_modules/underscore/modules/unescape.js","../../node_modules/underscore/modules/templateSettings.js","../../node_modules/underscore/modules/template.js","../../node_modules/underscore/modules/result.js","../../node_modules/underscore/modules/uniqueId.js","../../node_modules/underscore/modules/chain.js","../../node_modules/underscore/modules/_executeBound.js","../../node_modules/underscore/modules/partial.js","../../node_modules/underscore/modules/bind.js","../../node_modules/underscore/modules/_isArrayLike.js","../../node_modules/underscore/modules/_flatten.js","../../node_modules/underscore/modules/bindAll.js","../../node_modules/underscore/modules/memoize.js","../../node_modules/underscore/modules/delay.js","../../node_modules/underscore/modules/defer.js","../../node_modules/underscore/modules/throttle.js","../../node_modules/underscore/modules/debounce.js","../../node_modules/underscore/modules/wrap.js","../../node_modules/underscore/modules/negate.js","../../node_modules/underscore/modules/compose.js","../../node_modules/underscore/modules/after.js","../../node_modules/underscore/modules/before.js","../../node_modules/underscore/modules/once.js","../../node_modules/underscore/modules/findKey.js","../../node_modules/underscore/modules/_createPredicateIndexFinder.js","../../node_modules/underscore/modules/findIndex.js","../../node_modules/underscore/modules/findLastIndex.js","../../node_modules/underscore/modules/sortedIndex.js","../../node_modules/underscore/modules/_createIndexFinder.js","../../node_modules/underscore/modules/indexOf.js","../../node_modules/underscore/modules/lastIndexOf.js","../../node_modules/underscore/modules/find.js","../../node_modules/underscore/modules/findWhere.js","../../node_modules/underscore/modules/each.js","../../node_modules/underscore/modules/map.js","../../node_modules/underscore/modules/_createReduce.js","../../node_modules/underscore/modules/reduce.js","../../node_modules/underscore/modules/reduceRight.js","../../node_modules/underscore/modules/filter.js","../../node_modules/underscore/modules/reject.js","../../node_modules/underscore/modules/every.js","../../node_modules/underscore/modules/some.js","../../node_modules/underscore/modules/contains.js","../../node_modules/underscore/modules/invoke.js","../../node_modules/underscore/modules/pluck.js","../../node_modules/underscore/modules/where.js","../../node_modules/underscore/modules/max.js","../../node_modules/underscore/modules/min.js","../../node_modules/underscore/modules/toArray.js","../../node_modules/underscore/modules/sample.js","../../node_modules/underscore/modules/shuffle.js","../../node_modules/underscore/modules/sortBy.js","../../node_modules/underscore/modules/_group.js","../../node_modules/underscore/modules/groupBy.js","../../node_modules/underscore/modules/indexBy.js","../../node_modules/underscore/modules/countBy.js","../../node_modules/underscore/modules/partition.js","../../node_modules/underscore/modules/size.js","../../node_modules/underscore/modules/_keyInObj.js","../../node_modules/underscore/modules/pick.js","../../node_modules/underscore/modules/omit.js","../../node_modules/underscore/modules/initial.js","../../node_modules/underscore/modules/first.js","../../node_modules/underscore/modules/rest.js","../../node_modules/underscore/modules/last.js","../../node_modules/underscore/modules/compact.js","../../node_modules/underscore/modules/flatten.js","../../node_modules/underscore/modules/difference.js","../../node_modules/underscore/modules/without.js","../../node_modules/underscore/modules/uniq.js","../../node_modules/underscore/modules/union.js","../../node_modules/underscore/modules/intersection.js","../../node_modules/underscore/modules/unzip.js","../../node_modules/underscore/modules/zip.js","../../node_modules/underscore/modules/object.js","../../node_modules/underscore/modules/range.js","../../node_modules/underscore/modules/chunk.js","../../node_modules/underscore/modules/_chainResult.js","../../node_modules/underscore/modules/mixin.js","../../node_modules/underscore/modules/underscore-array-methods.js","../../node_modules/underscore/modules/index.js","../../node_modules/underscore/modules/index-default.js","../../node_modules/underscore/modules/index-all.js","../../node_modules/bluebird/js/release/es5.js","../../node_modules/bluebird/js/release/util.js","../../node_modules/bluebird/js/release/schedule.js","../../node_modules/bluebird/js/release/queue.js","../../node_modules/bluebird/js/release/async.js","../../node_modules/bluebird/js/release/errors.js","../../node_modules/bluebird/js/release/thenables.js","../../node_modules/bluebird/js/release/promise_array.js","../../node_modules/bluebird/js/release/context.js","../../node_modules/bluebird/js/release/debuggability.js","../../node_modules/bluebird/js/release/finally.js","../../node_modules/bluebird/js/release/catch_filter.js","../../node_modules/bluebird/js/release/nodeback.js","../../node_modules/bluebird/js/release/method.js","../../node_modules/bluebird/js/release/bind.js","../../node_modules/bluebird/js/release/cancel.js","../../node_modules/bluebird/js/release/direct_resolve.js","../../node_modules/bluebird/js/release/synchronous_inspection.js","../../node_modules/bluebird/js/release/join.js","../../node_modules/bluebird/js/release/map.js","../../node_modules/bluebird/js/release/call_get.js","../../node_modules/bluebird/js/release/using.js","../../node_modules/bluebird/js/release/timers.js","../../node_modules/bluebird/js/release/generators.js","../../node_modules/bluebird/js/release/nodeify.js","../../node_modules/bluebird/js/release/promisify.js","../../node_modules/bluebird/js/release/props.js","../../node_modules/bluebird/js/release/race.js","../../node_modules/bluebird/js/release/reduce.js","../../node_modules/bluebird/js/release/settle.js","../../node_modules/bluebird/js/release/some.js","../../node_modules/bluebird/js/release/filter.js","../../node_modules/bluebird/js/release/each.js","../../node_modules/bluebird/js/release/any.js","../../node_modules/bluebird/js/release/promise.js","../../node_modules/mammoth/lib/promises.js","../../node_modules/mammoth/lib/documents.js","../../node_modules/mammoth/lib/results.js","../../node_modules/base64-js/index.js","../../node_modules/mammoth/lib/zipfile.js","../../node_modules/mammoth/lib/xml/nodes.js","../../node_modules/@xmldom/xmldom/lib/conventions.js","../../node_modules/@xmldom/xmldom/lib/dom.js","../../node_modules/@xmldom/xmldom/lib/entities.js","../../node_modules/@xmldom/xmldom/lib/sax.js","../../node_modules/@xmldom/xmldom/lib/dom-parser.js","../../node_modules/@xmldom/xmldom/lib/index.js","../../node_modules/mammoth/lib/xml/xmldom.js","../../node_modules/mammoth/lib/xml/reader.js","../../node_modules/xmlbuilder/lib/Utility.js","../../node_modules/xmlbuilder/lib/XMLAttribute.js","../../node_modules/xmlbuilder/lib/XMLElement.js","../../node_modules/xmlbuilder/lib/XMLCData.js","../../node_modules/xmlbuilder/lib/XMLComment.js","../../node_modules/xmlbuilder/lib/XMLDeclaration.js","../../node_modules/xmlbuilder/lib/XMLDTDAttList.js","../../node_modules/xmlbuilder/lib/XMLDTDEntity.js","../../node_modules/xmlbuilder/lib/XMLDTDElement.js","../../node_modules/xmlbuilder/lib/XMLDTDNotation.js","../../node_modules/xmlbuilder/lib/XMLDocType.js","../../node_modules/xmlbuilder/lib/XMLRaw.js","../../node_modules/xmlbuilder/lib/XMLText.js","../../node_modules/xmlbuilder/lib/XMLProcessingInstruction.js","../../node_modules/xmlbuilder/lib/XMLDummy.js","../../node_modules/xmlbuilder/lib/XMLNode.js","../../node_modules/xmlbuilder/lib/XMLStringifier.js","../../node_modules/xmlbuilder/lib/XMLWriterBase.js","../../node_modules/xmlbuilder/lib/XMLStringWriter.js","../../node_modules/xmlbuilder/lib/XMLDocument.js","../../node_modules/xmlbuilder/lib/XMLDocumentCB.js","../../node_modules/xmlbuilder/lib/XMLStreamWriter.js","../../node_modules/xmlbuilder/lib/index.js","../../node_modules/mammoth/lib/xml/writer.js","../../node_modules/mammoth/lib/xml/index.js","../../node_modules/mammoth/lib/docx/office-xml-reader.js","../../node_modules/dingbat-to-unicode/dist/dingbats.js","../../node_modules/dingbat-to-unicode/dist/index.js","../../node_modules/mammoth/lib/transforms.js","../../node_modules/mammoth/lib/docx/uris.js","../../node_modules/mammoth/lib/docx/body-reader.js","../../node_modules/mammoth/lib/docx/document-xml-reader.js","../../node_modules/mammoth/lib/docx/relationships-reader.js","../../node_modules/mammoth/lib/docx/content-types-reader.js","../../node_modules/mammoth/lib/docx/numbering-xml.js","../../node_modules/mammoth/lib/docx/styles-reader.js","../../node_modules/mammoth/lib/docx/notes-reader.js","../../node_modules/mammoth/lib/docx/comments-reader.js","../../node_modules/mammoth/browser/docx/files.js","../../node_modules/mammoth/lib/docx/docx-reader.js","../../node_modules/mammoth/lib/docx/style-map.js","../../node_modules/mammoth/lib/html/ast.js","../../node_modules/mammoth/lib/html/simplify.js","../../node_modules/mammoth/lib/html/index.js","../../node_modules/mammoth/lib/styles/html-paths.js","../../node_modules/mammoth/lib/images.js","../../node_modules/mammoth/lib/writers/html-writer.js","../../node_modules/mammoth/lib/writers/markdown-writer.js","../../node_modules/mammoth/lib/writers/index.js","../../node_modules/mammoth/lib/document-to-html.js","../../node_modules/mammoth/lib/raw-text.js","../../node_modules/lop/lib/TokenIterator.js","../../node_modules/lop/lib/parser.js","../../node_modules/option/index.js","../../node_modules/lop/lib/parsing-results.js","../../node_modules/lop/lib/errors.js","../../node_modules/lop/lib/lazy-iterators.js","../../node_modules/lop/lib/rules.js","../../node_modules/lop/lib/StringSource.js","../../node_modules/lop/lib/Token.js","../../node_modules/lop/lib/bottom-up.js","../../node_modules/lop/lib/regex-tokeniser.js","../../node_modules/lop/index.js","../../node_modules/mammoth/lib/styles/document-matchers.js","../../node_modules/mammoth/lib/styles/parser/tokeniser.js","../../node_modules/mammoth/lib/style-reader.js","../../node_modules/mammoth/lib/options-reader.js","../../node_modules/mammoth/browser/unzip.js","../../node_modules/mammoth/lib/underline.js","../../node_modules/mammoth/lib/index.js"],"sourcesContent":["// Current version.\nexport var VERSION = '1.13.8';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global) ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n return obj === null;\n}\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\n// Also, there are cases where an application can override the native\n// `DataView` object, in cases like that we can't use the constructor\n// safely and should just rely on alternate `DataView` checks\nexport var hasDataViewBug = (\n supportsDataView && (!/\\[native code\\]/.test(String(DataView)) || hasObjectTag(new DataView(new ArrayBuffer(8))))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasDataViewBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\n// Also, in cases where the native `DataView` is\n// overridden we can't rely on the tag itself.\nfunction alternateIsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasDataViewBug ? alternateIsDataView : isDataView);\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key] === true; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasDataViewBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n var todo = [{a: a, b: b}];\n // Initializing stacks of traversed objects for cycle detection.\n var aStack = [], bStack = [];\n\n while (todo.length) {\n var frame = todo.pop();\n if (frame === true) {\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n continue;\n }\n a = frame.a;\n b = frame.b;\n\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n if (a !== 0 || 1 / a === 1 / b) continue;\n return false;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n if (b !== b) continue;\n return false;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n\n// Internal recursive comparison function for `_.isEqual`.\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasDataViewBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n if ('' + a === '' + b) continue;\n return false;\n case '[object Number]':\n todo.push({a: +a, b: +b});\n continue;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n if (+a === +b) continue;\n return false;\n case '[object Symbol]':\n if (SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b)) continue;\n return false;\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n todo.push({a: toBufferView(a), b: toBufferView(b)});\n continue;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) continue;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n if (bStack[length] === b) break;\n return false;\n }\n }\n if (length >= 0) continue;\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n todo.push(true);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n todo.push({a: a[length], b: b[length]});\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!has(b, key)) return false;\n todo.push({a: a[key], b: b[key]});\n }\n }\n }\n return true;\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!_has(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict) {\n if (!depth && depth !== 0) depth = Infinity;\n var output = [], idx = 0, i = 0, length = getLength(input) || 0, stack = [];\n while (true) {\n if (i >= length) {\n if (!stack.length) break;\n var frame = stack.pop();\n i = frame.i;\n input = frame.v;\n length = getLength(input);\n continue;\n }\n var value = input[i++];\n if (stack.length >= depth) {\n output[idx++] = value;\n } else if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n stack.push({i: i, v: input});\n i = 0;\n input = value;\n length = getLength(input);\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || (computed === Infinity && result === Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\nimport toArray from './toArray.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = toArray(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n return sample(obj, Infinity);\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n result[key] = value;\n});\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n return key in obj;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n return filter(array, Boolean);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n return _flatten(array, depth, false);\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n return uniq(flatten(arrays, true, true));\n});\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = (array && max(array, getLength).length) || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","import getLength from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\nexport default _;\n","// Named Exports\n// =============\n\n// Underscore.js 1.13.8\n// https://underscorejs.org\n// (c) 2009-2026 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n// Baseline setup.\nexport { VERSION } from './_setup.js';\nexport { default as restArguments } from './restArguments.js';\n\n// Object Functions\n// ----------------\n// Our most fundamental functions operate on any JavaScript object.\n// Most functions in Underscore depend on at least one function in this section.\n\n// A group of functions that check the types of core JavaScript values.\n// These are often informally referred to as the \"isType\" functions.\nexport { default as isObject } from './isObject.js';\nexport { default as isNull } from './isNull.js';\nexport { default as isUndefined } from './isUndefined.js';\nexport { default as isBoolean } from './isBoolean.js';\nexport { default as isElement } from './isElement.js';\nexport { default as isString } from './isString.js';\nexport { default as isNumber } from './isNumber.js';\nexport { default as isDate } from './isDate.js';\nexport { default as isRegExp } from './isRegExp.js';\nexport { default as isError } from './isError.js';\nexport { default as isSymbol } from './isSymbol.js';\nexport { default as isArrayBuffer } from './isArrayBuffer.js';\nexport { default as isDataView } from './isDataView.js';\nexport { default as isArray } from './isArray.js';\nexport { default as isFunction } from './isFunction.js';\nexport { default as isArguments } from './isArguments.js';\nexport { default as isFinite } from './isFinite.js';\nexport { default as isNaN } from './isNaN.js';\nexport { default as isTypedArray } from './isTypedArray.js';\nexport { default as isEmpty } from './isEmpty.js';\nexport { default as isMatch } from './isMatch.js';\nexport { default as isEqual } from './isEqual.js';\nexport { default as isMap } from './isMap.js';\nexport { default as isWeakMap } from './isWeakMap.js';\nexport { default as isSet } from './isSet.js';\nexport { default as isWeakSet } from './isWeakSet.js';\n\n// Functions that treat an object as a dictionary of key-value pairs.\nexport { default as keys } from './keys.js';\nexport { default as allKeys } from './allKeys.js';\nexport { default as values } from './values.js';\nexport { default as pairs } from './pairs.js';\nexport { default as invert } from './invert.js';\nexport { default as functions,\n default as methods } from './functions.js';\nexport { default as extend } from './extend.js';\nexport { default as extendOwn,\n default as assign } from './extendOwn.js';\nexport { default as defaults } from './defaults.js';\nexport { default as create } from './create.js';\nexport { default as clone } from './clone.js';\nexport { default as tap } from './tap.js';\nexport { default as get } from './get.js';\nexport { default as has } from './has.js';\nexport { default as mapObject } from './mapObject.js';\n\n// Utility Functions\n// -----------------\n// A bit of a grab bag: Predicate-generating functions for use with filters and\n// loops, string escaping and templating, create random numbers and unique ids,\n// and functions that facilitate Underscore's chaining and iteration conventions.\nexport { default as identity } from './identity.js';\nexport { default as constant } from './constant.js';\nexport { default as noop } from './noop.js';\nexport { default as toPath } from './toPath.js';\nexport { default as property } from './property.js';\nexport { default as propertyOf } from './propertyOf.js';\nexport { default as matcher,\n default as matches } from './matcher.js';\nexport { default as times } from './times.js';\nexport { default as random } from './random.js';\nexport { default as now } from './now.js';\nexport { default as escape } from './escape.js';\nexport { default as unescape } from './unescape.js';\nexport { default as templateSettings } from './templateSettings.js';\nexport { default as template } from './template.js';\nexport { default as result } from './result.js';\nexport { default as uniqueId } from './uniqueId.js';\nexport { default as chain } from './chain.js';\nexport { default as iteratee } from './iteratee.js';\n\n// Function (ahem) Functions\n// -------------------------\n// These functions take a function as an argument and return a new function\n// as the result. Also known as higher-order functions.\nexport { default as partial } from './partial.js';\nexport { default as bind } from './bind.js';\nexport { default as bindAll } from './bindAll.js';\nexport { default as memoize } from './memoize.js';\nexport { default as delay } from './delay.js';\nexport { default as defer } from './defer.js';\nexport { default as throttle } from './throttle.js';\nexport { default as debounce } from './debounce.js';\nexport { default as wrap } from './wrap.js';\nexport { default as negate } from './negate.js';\nexport { default as compose } from './compose.js';\nexport { default as after } from './after.js';\nexport { default as before } from './before.js';\nexport { default as once } from './once.js';\n\n// Finders\n// -------\n// Functions that extract (the position of) a single element from an object\n// or array based on some criterion.\nexport { default as findKey } from './findKey.js';\nexport { default as findIndex } from './findIndex.js';\nexport { default as findLastIndex } from './findLastIndex.js';\nexport { default as sortedIndex } from './sortedIndex.js';\nexport { default as indexOf } from './indexOf.js';\nexport { default as lastIndexOf } from './lastIndexOf.js';\nexport { default as find,\n default as detect } from './find.js';\nexport { default as findWhere } from './findWhere.js';\n\n// Collection Functions\n// --------------------\n// Functions that work on any collection of elements: either an array, or\n// an object of key-value pairs.\nexport { default as each,\n default as forEach } from './each.js';\nexport { default as map,\n default as collect } from './map.js';\nexport { default as reduce,\n default as foldl,\n default as inject } from './reduce.js';\nexport { default as reduceRight,\n default as foldr } from './reduceRight.js';\nexport { default as filter,\n default as select } from './filter.js';\nexport { default as reject } from './reject.js';\nexport { default as every,\n default as all } from './every.js';\nexport { default as some,\n default as any } from './some.js';\nexport { default as contains,\n default as includes,\n default as include } from './contains.js';\nexport { default as invoke } from './invoke.js';\nexport { default as pluck } from './pluck.js';\nexport { default as where } from './where.js';\nexport { default as max } from './max.js';\nexport { default as min } from './min.js';\nexport { default as shuffle } from './shuffle.js';\nexport { default as sample } from './sample.js';\nexport { default as sortBy } from './sortBy.js';\nexport { default as groupBy } from './groupBy.js';\nexport { default as indexBy } from './indexBy.js';\nexport { default as countBy } from './countBy.js';\nexport { default as partition } from './partition.js';\nexport { default as toArray } from './toArray.js';\nexport { default as size } from './size.js';\n\n// `_.pick` and `_.omit` are actually object functions, but we put\n// them here in order to create a more natural reading order in the\n// monolithic build as they depend on `_.contains`.\nexport { default as pick } from './pick.js';\nexport { default as omit } from './omit.js';\n\n// Array Functions\n// ---------------\n// Functions that operate on arrays (and array-likes) only, because they’re\n// expressed in terms of operations on an ordered list of values.\nexport { default as first,\n default as head,\n default as take } from './first.js';\nexport { default as initial } from './initial.js';\nexport { default as last } from './last.js';\nexport { default as rest,\n default as tail,\n default as drop } from './rest.js';\nexport { default as compact } from './compact.js';\nexport { default as flatten } from './flatten.js';\nexport { default as without } from './without.js';\nexport { default as uniq,\n default as unique } from './uniq.js';\nexport { default as union } from './union.js';\nexport { default as intersection } from './intersection.js';\nexport { default as difference } from './difference.js';\nexport { default as unzip,\n default as transpose } from './unzip.js';\nexport { default as zip } from './zip.js';\nexport { default as object } from './object.js';\nexport { default as range } from './range.js';\nexport { default as chunk } from './chunk.js';\n\n// OOP\n// ---\n// These modules support the \"object-oriented\" calling style. See also\n// `underscore.js` and `index-default.js`.\nexport { default as mixin } from './mixin.js';\nexport { default } from './underscore-array-methods.js';\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","// ESM Exports\n// ===========\n// This module is the package entry point for ES module users. In other words,\n// it is the module they are interfacing with when they import from the whole\n// package instead of from a submodule, like this:\n//\n// ```js\n// import { map } from 'underscore';\n// ```\n//\n// The difference with `./index-default`, which is the package entry point for\n// CommonJS, AMD and UMD users, is purely technical. In ES modules, named and\n// default exports are considered to be siblings, so when you have a default\n// export, its properties are not automatically available as named exports. For\n// this reason, we re-export the named exports in addition to providing the same\n// default export as in `./index-default`.\nexport { default } from './index-default.js';\nexport * from './index.js';\n","var isES5 = (function(){\n \"use strict\";\n return this === undefined;\n})();\n\nif (isES5) {\n module.exports = {\n freeze: Object.freeze,\n defineProperty: Object.defineProperty,\n getDescriptor: Object.getOwnPropertyDescriptor,\n keys: Object.keys,\n names: Object.getOwnPropertyNames,\n getPrototypeOf: Object.getPrototypeOf,\n isArray: Array.isArray,\n isES5: isES5,\n propertyIsWritable: function(obj, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n return !!(!descriptor || descriptor.writable || descriptor.set);\n }\n };\n} else {\n var has = {}.hasOwnProperty;\n var str = {}.toString;\n var proto = {}.constructor.prototype;\n\n var ObjectKeys = function (o) {\n var ret = [];\n for (var key in o) {\n if (has.call(o, key)) {\n ret.push(key);\n }\n }\n return ret;\n };\n\n var ObjectGetDescriptor = function(o, key) {\n return {value: o[key]};\n };\n\n var ObjectDefineProperty = function (o, key, desc) {\n o[key] = desc.value;\n return o;\n };\n\n var ObjectFreeze = function (obj) {\n return obj;\n };\n\n var ObjectGetPrototypeOf = function (obj) {\n try {\n return Object(obj).constructor.prototype;\n }\n catch (e) {\n return proto;\n }\n };\n\n var ArrayIsArray = function (obj) {\n try {\n return str.call(obj) === \"[object Array]\";\n }\n catch(e) {\n return false;\n }\n };\n\n module.exports = {\n isArray: ArrayIsArray,\n keys: ObjectKeys,\n names: ObjectKeys,\n defineProperty: ObjectDefineProperty,\n getDescriptor: ObjectGetDescriptor,\n freeze: ObjectFreeze,\n getPrototypeOf: ObjectGetPrototypeOf,\n isES5: isES5,\n propertyIsWritable: function() {\n return true;\n }\n };\n}\n","\"use strict\";\nvar es5 = require(\"./es5\");\nvar canEvaluate = typeof navigator == \"undefined\";\n\nvar errorObj = {e: {}};\nvar tryCatchTarget;\nvar globalObject = typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n this !== undefined ? this : null;\n\nfunction tryCatcher() {\n try {\n var target = tryCatchTarget;\n tryCatchTarget = null;\n return target.apply(this, arguments);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n\nvar inherits = function(Child, Parent) {\n var hasProp = {}.hasOwnProperty;\n\n function T() {\n this.constructor = Child;\n this.constructor$ = Parent;\n for (var propertyName in Parent.prototype) {\n if (hasProp.call(Parent.prototype, propertyName) &&\n propertyName.charAt(propertyName.length-1) !== \"$\"\n ) {\n this[propertyName + \"$\"] = Parent.prototype[propertyName];\n }\n }\n }\n T.prototype = Parent.prototype;\n Child.prototype = new T();\n return Child.prototype;\n};\n\n\nfunction isPrimitive(val) {\n return val == null || val === true || val === false ||\n typeof val === \"string\" || typeof val === \"number\";\n\n}\n\nfunction isObject(value) {\n return typeof value === \"function\" ||\n typeof value === \"object\" && value !== null;\n}\n\nfunction maybeWrapAsError(maybeError) {\n if (!isPrimitive(maybeError)) return maybeError;\n\n return new Error(safeToString(maybeError));\n}\n\nfunction withAppended(target, appendee) {\n var len = target.length;\n var ret = new Array(len + 1);\n var i;\n for (i = 0; i < len; ++i) {\n ret[i] = target[i];\n }\n ret[i] = appendee;\n return ret;\n}\n\nfunction getDataPropertyOrDefault(obj, key, defaultValue) {\n if (es5.isES5) {\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null) {\n return desc.get == null && desc.set == null\n ? desc.value\n : defaultValue;\n }\n } else {\n return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n }\n}\n\nfunction notEnumerableProp(obj, name, value) {\n if (isPrimitive(obj)) return obj;\n var descriptor = {\n value: value,\n configurable: true,\n enumerable: false,\n writable: true\n };\n es5.defineProperty(obj, name, descriptor);\n return obj;\n}\n\nfunction thrower(r) {\n throw r;\n}\n\nvar inheritedDataKeys = (function() {\n var excludedPrototypes = [\n Array.prototype,\n Object.prototype,\n Function.prototype\n ];\n\n var isExcludedProto = function(val) {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (excludedPrototypes[i] === val) {\n return true;\n }\n }\n return false;\n };\n\n if (es5.isES5) {\n var getKeys = Object.getOwnPropertyNames;\n return function(obj) {\n var ret = [];\n var visitedKeys = Object.create(null);\n while (obj != null && !isExcludedProto(obj)) {\n var keys;\n try {\n keys = getKeys(obj);\n } catch (e) {\n return ret;\n }\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (visitedKeys[key]) continue;\n visitedKeys[key] = true;\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n if (desc != null && desc.get == null && desc.set == null) {\n ret.push(key);\n }\n }\n obj = es5.getPrototypeOf(obj);\n }\n return ret;\n };\n } else {\n var hasProp = {}.hasOwnProperty;\n return function(obj) {\n if (isExcludedProto(obj)) return [];\n var ret = [];\n\n /*jshint forin:false */\n enumeration: for (var key in obj) {\n if (hasProp.call(obj, key)) {\n ret.push(key);\n } else {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (hasProp.call(excludedPrototypes[i], key)) {\n continue enumeration;\n }\n }\n ret.push(key);\n }\n }\n return ret;\n };\n }\n\n})();\n\nvar thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\nfunction isClass(fn) {\n try {\n if (typeof fn === \"function\") {\n var keys = es5.names(fn.prototype);\n\n var hasMethods = es5.isES5 && keys.length > 1;\n var hasMethodsOtherThanConstructor = keys.length > 0 &&\n !(keys.length === 1 && keys[0] === \"constructor\");\n var hasThisAssignmentAndStaticMethods =\n thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n if (hasMethods || hasMethodsOtherThanConstructor ||\n hasThisAssignmentAndStaticMethods) {\n return true;\n }\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\nfunction toFastProperties(obj) {\n /*jshint -W027,-W055,-W031*/\n function FakeConstructor() {}\n FakeConstructor.prototype = obj;\n var l = 8;\n while (l--) new FakeConstructor();\n return obj;\n eval(obj);\n}\n\nvar rident = /^[a-z$_][a-z$_0-9]*$/i;\nfunction isIdentifier(str) {\n return rident.test(str);\n}\n\nfunction filledRange(count, prefix, suffix) {\n var ret = new Array(count);\n for(var i = 0; i < count; ++i) {\n ret[i] = prefix + i + suffix;\n }\n return ret;\n}\n\nfunction safeToString(obj) {\n try {\n return obj + \"\";\n } catch (e) {\n return \"[no string representation]\";\n }\n}\n\nfunction isError(obj) {\n return obj !== null &&\n typeof obj === \"object\" &&\n typeof obj.message === \"string\" &&\n typeof obj.name === \"string\";\n}\n\nfunction markAsOriginatingFromRejection(e) {\n try {\n notEnumerableProp(e, \"isOperational\", true);\n }\n catch(ignore) {}\n}\n\nfunction originatesFromRejection(e) {\n if (e == null) return false;\n return ((e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError) ||\n e[\"isOperational\"] === true);\n}\n\nfunction canAttachTrace(obj) {\n return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n}\n\nvar ensureErrorObject = (function() {\n if (!(\"stack\" in new Error())) {\n return function(value) {\n if (canAttachTrace(value)) return value;\n try {throw new Error(safeToString(value));}\n catch(err) {return err;}\n };\n } else {\n return function(value) {\n if (canAttachTrace(value)) return value;\n return new Error(safeToString(value));\n };\n }\n})();\n\nfunction classString(obj) {\n return {}.toString.call(obj);\n}\n\nfunction copyDescriptors(from, to, filter) {\n var keys = es5.names(from);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (filter(key)) {\n try {\n es5.defineProperty(to, key, es5.getDescriptor(from, key));\n } catch (ignore) {}\n }\n }\n}\n\nvar asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n }\n return null;\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n var ArrayFrom = typeof Array.from === \"function\" ? function(v) {\n return Array.from(v);\n } : function(v) {\n var ret = [];\n var it = v[Symbol.iterator]();\n var itResult;\n while (!((itResult = it.next()).done)) {\n ret.push(itResult.value);\n }\n return ret;\n };\n\n asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n return ArrayFrom(v);\n }\n return null;\n };\n}\n\nvar isNode = typeof process !== \"undefined\" &&\n classString(process).toLowerCase() === \"[object process]\";\n\nvar hasEnvVariables = typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\";\n\nfunction env(key) {\n return hasEnvVariables ? process.env[key] : undefined;\n}\n\nfunction getNativePromise() {\n if (typeof Promise === \"function\") {\n try {\n var promise = new Promise(function(){});\n if ({}.toString.call(promise) === \"[object Promise]\") {\n return Promise;\n }\n } catch (e) {}\n }\n}\n\nfunction domainBind(self, cb) {\n return self.bind(cb);\n}\n\nvar ret = {\n isClass: isClass,\n isIdentifier: isIdentifier,\n inheritedDataKeys: inheritedDataKeys,\n getDataPropertyOrDefault: getDataPropertyOrDefault,\n thrower: thrower,\n isArray: es5.isArray,\n asArray: asArray,\n notEnumerableProp: notEnumerableProp,\n isPrimitive: isPrimitive,\n isObject: isObject,\n isError: isError,\n canEvaluate: canEvaluate,\n errorObj: errorObj,\n tryCatch: tryCatch,\n inherits: inherits,\n withAppended: withAppended,\n maybeWrapAsError: maybeWrapAsError,\n toFastProperties: toFastProperties,\n filledRange: filledRange,\n toString: safeToString,\n canAttachTrace: canAttachTrace,\n ensureErrorObject: ensureErrorObject,\n originatesFromRejection: originatesFromRejection,\n markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n classString: classString,\n copyDescriptors: copyDescriptors,\n hasDevTools: typeof chrome !== \"undefined\" && chrome &&\n typeof chrome.loadTimes === \"function\",\n isNode: isNode,\n hasEnvVariables: hasEnvVariables,\n env: env,\n global: globalObject,\n getNativePromise: getNativePromise,\n domainBind: domainBind\n};\nret.isRecentNode = ret.isNode && (function() {\n var version = process.versions.node.split(\".\").map(Number);\n return (version[0] === 0 && version[1] > 10) || (version[0] > 0);\n})();\n\nif (ret.isNode) ret.toFastProperties(process);\n\ntry {throw new Error(); } catch (e) {ret.lastLineError = e;}\nmodule.exports = ret;\n","\"use strict\";\nvar util = require(\"./util\");\nvar schedule;\nvar noAsyncScheduler = function() {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar NativePromise = util.getNativePromise();\nif (util.isNode && typeof MutationObserver === \"undefined\") {\n var GlobalSetImmediate = global.setImmediate;\n var ProcessNextTick = process.nextTick;\n schedule = util.isRecentNode\n ? function(fn) { GlobalSetImmediate.call(global, fn); }\n : function(fn) { ProcessNextTick.call(process, fn); };\n} else if (typeof NativePromise === \"function\" &&\n typeof NativePromise.resolve === \"function\") {\n var nativePromise = NativePromise.resolve();\n schedule = function(fn) {\n nativePromise.then(fn);\n };\n} else if ((typeof MutationObserver !== \"undefined\") &&\n !(typeof window !== \"undefined\" &&\n window.navigator &&\n (window.navigator.standalone || window.cordova))) {\n schedule = (function() {\n var div = document.createElement(\"div\");\n var opts = {attributes: true};\n var toggleScheduled = false;\n var div2 = document.createElement(\"div\");\n var o2 = new MutationObserver(function() {\n div.classList.toggle(\"foo\");\n toggleScheduled = false;\n });\n o2.observe(div2, opts);\n\n var scheduleToggle = function() {\n if (toggleScheduled) return;\n toggleScheduled = true;\n div2.classList.toggle(\"foo\");\n };\n\n return function schedule(fn) {\n var o = new MutationObserver(function() {\n o.disconnect();\n fn();\n });\n o.observe(div, opts);\n scheduleToggle();\n };\n })();\n} else if (typeof setImmediate !== \"undefined\") {\n schedule = function (fn) {\n setImmediate(fn);\n };\n} else if (typeof setTimeout !== \"undefined\") {\n schedule = function (fn) {\n setTimeout(fn, 0);\n };\n} else {\n schedule = noAsyncScheduler;\n}\nmodule.exports = schedule;\n","\"use strict\";\nfunction arrayMove(src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex];\n src[j + srcIndex] = void 0;\n }\n}\n\nfunction Queue(capacity) {\n this._capacity = capacity;\n this._length = 0;\n this._front = 0;\n}\n\nQueue.prototype._willBeOverCapacity = function (size) {\n return this._capacity < size;\n};\n\nQueue.prototype._pushOne = function (arg) {\n var length = this.length();\n this._checkCapacity(length + 1);\n var i = (this._front + length) & (this._capacity - 1);\n this[i] = arg;\n this._length = length + 1;\n};\n\nQueue.prototype.push = function (fn, receiver, arg) {\n var length = this.length() + 3;\n if (this._willBeOverCapacity(length)) {\n this._pushOne(fn);\n this._pushOne(receiver);\n this._pushOne(arg);\n return;\n }\n var j = this._front + length - 3;\n this._checkCapacity(length);\n var wrapMask = this._capacity - 1;\n this[(j + 0) & wrapMask] = fn;\n this[(j + 1) & wrapMask] = receiver;\n this[(j + 2) & wrapMask] = arg;\n this._length = length;\n};\n\nQueue.prototype.shift = function () {\n var front = this._front,\n ret = this[front];\n\n this[front] = undefined;\n this._front = (front + 1) & (this._capacity - 1);\n this._length--;\n return ret;\n};\n\nQueue.prototype.length = function () {\n return this._length;\n};\n\nQueue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._resizeTo(this._capacity << 1);\n }\n};\n\nQueue.prototype._resizeTo = function (capacity) {\n var oldCapacity = this._capacity;\n this._capacity = capacity;\n var front = this._front;\n var length = this._length;\n var moveItemsCount = (front + length) & (oldCapacity - 1);\n arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n};\n\nmodule.exports = Queue;\n","\"use strict\";\nvar firstLineError;\ntry {throw new Error(); } catch (e) {firstLineError = e;}\nvar schedule = require(\"./schedule\");\nvar Queue = require(\"./queue\");\nvar util = require(\"./util\");\n\nfunction Async() {\n this._customScheduler = false;\n this._isTickUsed = false;\n this._lateQueue = new Queue(16);\n this._normalQueue = new Queue(16);\n this._haveDrainedQueues = false;\n this._trampolineEnabled = true;\n var self = this;\n this.drainQueues = function () {\n self._drainQueues();\n };\n this._schedule = schedule;\n}\n\nAsync.prototype.setScheduler = function(fn) {\n var prev = this._schedule;\n this._schedule = fn;\n this._customScheduler = true;\n return prev;\n};\n\nAsync.prototype.hasCustomScheduler = function() {\n return this._customScheduler;\n};\n\nAsync.prototype.enableTrampoline = function() {\n this._trampolineEnabled = true;\n};\n\nAsync.prototype.disableTrampolineIfNecessary = function() {\n if (util.hasDevTools) {\n this._trampolineEnabled = false;\n }\n};\n\nAsync.prototype.haveItemsQueued = function () {\n return this._isTickUsed || this._haveDrainedQueues;\n};\n\n\nAsync.prototype.fatalError = function(e, isNode) {\n if (isNode) {\n process.stderr.write(\"Fatal \" + (e instanceof Error ? e.stack : e) +\n \"\\n\");\n process.exit(2);\n } else {\n this.throwLater(e);\n }\n};\n\nAsync.prototype.throwLater = function(fn, arg) {\n if (arguments.length === 1) {\n arg = fn;\n fn = function () { throw arg; };\n }\n if (typeof setTimeout !== \"undefined\") {\n setTimeout(function() {\n fn(arg);\n }, 0);\n } else try {\n this._schedule(function() {\n fn(arg);\n });\n } catch (e) {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n};\n\nfunction AsyncInvokeLater(fn, receiver, arg) {\n this._lateQueue.push(fn, receiver, arg);\n this._queueTick();\n}\n\nfunction AsyncInvoke(fn, receiver, arg) {\n this._normalQueue.push(fn, receiver, arg);\n this._queueTick();\n}\n\nfunction AsyncSettlePromises(promise) {\n this._normalQueue._pushOne(promise);\n this._queueTick();\n}\n\nif (!util.hasDevTools) {\n Async.prototype.invokeLater = AsyncInvokeLater;\n Async.prototype.invoke = AsyncInvoke;\n Async.prototype.settlePromises = AsyncSettlePromises;\n} else {\n Async.prototype.invokeLater = function (fn, receiver, arg) {\n if (this._trampolineEnabled) {\n AsyncInvokeLater.call(this, fn, receiver, arg);\n } else {\n this._schedule(function() {\n setTimeout(function() {\n fn.call(receiver, arg);\n }, 100);\n });\n }\n };\n\n Async.prototype.invoke = function (fn, receiver, arg) {\n if (this._trampolineEnabled) {\n AsyncInvoke.call(this, fn, receiver, arg);\n } else {\n this._schedule(function() {\n fn.call(receiver, arg);\n });\n }\n };\n\n Async.prototype.settlePromises = function(promise) {\n if (this._trampolineEnabled) {\n AsyncSettlePromises.call(this, promise);\n } else {\n this._schedule(function() {\n promise._settlePromises();\n });\n }\n };\n}\n\nAsync.prototype._drainQueue = function(queue) {\n while (queue.length() > 0) {\n var fn = queue.shift();\n if (typeof fn !== \"function\") {\n fn._settlePromises();\n continue;\n }\n var receiver = queue.shift();\n var arg = queue.shift();\n fn.call(receiver, arg);\n }\n};\n\nAsync.prototype._drainQueues = function () {\n this._drainQueue(this._normalQueue);\n this._reset();\n this._haveDrainedQueues = true;\n this._drainQueue(this._lateQueue);\n};\n\nAsync.prototype._queueTick = function () {\n if (!this._isTickUsed) {\n this._isTickUsed = true;\n this._schedule(this.drainQueues);\n }\n};\n\nAsync.prototype._reset = function () {\n this._isTickUsed = false;\n};\n\nmodule.exports = Async;\nmodule.exports.firstLineError = firstLineError;\n","\"use strict\";\nvar es5 = require(\"./es5\");\nvar Objectfreeze = es5.freeze;\nvar util = require(\"./util\");\nvar inherits = util.inherits;\nvar notEnumerableProp = util.notEnumerableProp;\n\nfunction subError(nameProperty, defaultMessage) {\n function SubError(message) {\n if (!(this instanceof SubError)) return new SubError(message);\n notEnumerableProp(this, \"message\",\n typeof message === \"string\" ? message : defaultMessage);\n notEnumerableProp(this, \"name\", nameProperty);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n Error.call(this);\n }\n }\n inherits(SubError, Error);\n return SubError;\n}\n\nvar _TypeError, _RangeError;\nvar Warning = subError(\"Warning\", \"warning\");\nvar CancellationError = subError(\"CancellationError\", \"cancellation error\");\nvar TimeoutError = subError(\"TimeoutError\", \"timeout error\");\nvar AggregateError = subError(\"AggregateError\", \"aggregate error\");\ntry {\n _TypeError = TypeError;\n _RangeError = RangeError;\n} catch(e) {\n _TypeError = subError(\"TypeError\", \"type error\");\n _RangeError = subError(\"RangeError\", \"range error\");\n}\n\nvar methods = (\"join pop push shift unshift slice filter forEach some \" +\n \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\nfor (var i = 0; i < methods.length; ++i) {\n if (typeof Array.prototype[methods[i]] === \"function\") {\n AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n }\n}\n\nes5.defineProperty(AggregateError.prototype, \"length\", {\n value: 0,\n configurable: false,\n writable: true,\n enumerable: true\n});\nAggregateError.prototype[\"isOperational\"] = true;\nvar level = 0;\nAggregateError.prototype.toString = function() {\n var indent = Array(level * 4 + 1).join(\" \");\n var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n level++;\n indent = Array(level * 4 + 1).join(\" \");\n for (var i = 0; i < this.length; ++i) {\n var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n var lines = str.split(\"\\n\");\n for (var j = 0; j < lines.length; ++j) {\n lines[j] = indent + lines[j];\n }\n str = lines.join(\"\\n\");\n ret += str + \"\\n\";\n }\n level--;\n return ret;\n};\n\nfunction OperationalError(message) {\n if (!(this instanceof OperationalError))\n return new OperationalError(message);\n notEnumerableProp(this, \"name\", \"OperationalError\");\n notEnumerableProp(this, \"message\", message);\n this.cause = message;\n this[\"isOperational\"] = true;\n\n if (message instanceof Error) {\n notEnumerableProp(this, \"message\", message.message);\n notEnumerableProp(this, \"stack\", message.stack);\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n}\ninherits(OperationalError, Error);\n\nvar errorTypes = Error[\"__BluebirdErrorTypes__\"];\nif (!errorTypes) {\n errorTypes = Objectfreeze({\n CancellationError: CancellationError,\n TimeoutError: TimeoutError,\n OperationalError: OperationalError,\n RejectionError: OperationalError,\n AggregateError: AggregateError\n });\n es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n value: errorTypes,\n writable: false,\n enumerable: false,\n configurable: false\n });\n}\n\nmodule.exports = {\n Error: Error,\n TypeError: _TypeError,\n RangeError: _RangeError,\n CancellationError: errorTypes.CancellationError,\n OperationalError: errorTypes.OperationalError,\n TimeoutError: errorTypes.TimeoutError,\n AggregateError: errorTypes.AggregateError,\n Warning: Warning\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar util = require(\"./util\");\nvar errorObj = util.errorObj;\nvar isObject = util.isObject;\n\nfunction tryConvertToPromise(obj, context) {\n if (isObject(obj)) {\n if (obj instanceof Promise) return obj;\n var then = getThen(obj);\n if (then === errorObj) {\n if (context) context._pushContext();\n var ret = Promise.reject(then.e);\n if (context) context._popContext();\n return ret;\n } else if (typeof then === \"function\") {\n if (isAnyBluebirdPromise(obj)) {\n var ret = new Promise(INTERNAL);\n obj._then(\n ret._fulfill,\n ret._reject,\n undefined,\n ret,\n null\n );\n return ret;\n }\n return doThenable(obj, then, context);\n }\n }\n return obj;\n}\n\nfunction doGetThen(obj) {\n return obj.then;\n}\n\nfunction getThen(obj) {\n try {\n return doGetThen(obj);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\n\nvar hasProp = {}.hasOwnProperty;\nfunction isAnyBluebirdPromise(obj) {\n try {\n return hasProp.call(obj, \"_promise0\");\n } catch (e) {\n return false;\n }\n}\n\nfunction doThenable(x, then, context) {\n var promise = new Promise(INTERNAL);\n var ret = promise;\n if (context) context._pushContext();\n promise._captureStackTrace();\n if (context) context._popContext();\n var synchronous = true;\n var result = util.tryCatch(then).call(x, resolve, reject);\n synchronous = false;\n\n if (promise && result === errorObj) {\n promise._rejectCallback(result.e, true, true);\n promise = null;\n }\n\n function resolve(value) {\n if (!promise) return;\n promise._resolveCallback(value);\n promise = null;\n }\n\n function reject(reason) {\n if (!promise) return;\n promise._rejectCallback(reason, synchronous, true);\n promise = null;\n }\n return ret;\n}\n\nreturn tryConvertToPromise;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise,\n apiRejection, Proxyable) {\nvar util = require(\"./util\");\nvar isArray = util.isArray;\n\nfunction toResolutionValue(val) {\n switch(val) {\n case -2: return [];\n case -3: return {};\n }\n}\n\nfunction PromiseArray(values) {\n var promise = this._promise = new Promise(INTERNAL);\n if (values instanceof Promise) {\n promise._propagateFrom(values, 3);\n }\n promise._setOnCancel(this);\n this._values = values;\n this._length = 0;\n this._totalResolved = 0;\n this._init(undefined, -2);\n}\nutil.inherits(PromiseArray, Proxyable);\n\nPromiseArray.prototype.length = function () {\n return this._length;\n};\n\nPromiseArray.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n var values = tryConvertToPromise(this._values, this._promise);\n if (values instanceof Promise) {\n values = values._target();\n var bitField = values._bitField;\n ;\n this._values = values;\n\n if (((bitField & 50397184) === 0)) {\n this._promise._setAsyncGuaranteed();\n return values._then(\n init,\n this._reject,\n undefined,\n this,\n resolveValueIfEmpty\n );\n } else if (((bitField & 33554432) !== 0)) {\n values = values._value();\n } else if (((bitField & 16777216) !== 0)) {\n return this._reject(values._reason());\n } else {\n return this._cancel();\n }\n }\n values = util.asArray(values);\n if (values === null) {\n var err = apiRejection(\n \"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n this._promise._rejectCallback(err, false);\n return;\n }\n\n if (values.length === 0) {\n if (resolveValueIfEmpty === -5) {\n this._resolveEmptyArray();\n }\n else {\n this._resolve(toResolutionValue(resolveValueIfEmpty));\n }\n return;\n }\n this._iterate(values);\n};\n\nPromiseArray.prototype._iterate = function(values) {\n var len = this.getActualLength(values.length);\n this._length = len;\n this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n var result = this._promise;\n var isResolved = false;\n var bitField = null;\n for (var i = 0; i < len; ++i) {\n var maybePromise = tryConvertToPromise(values[i], result);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n bitField = maybePromise._bitField;\n } else {\n bitField = null;\n }\n\n if (isResolved) {\n if (bitField !== null) {\n maybePromise.suppressUnhandledRejections();\n }\n } else if (bitField !== null) {\n if (((bitField & 50397184) === 0)) {\n maybePromise._proxy(this, i);\n this._values[i] = maybePromise;\n } else if (((bitField & 33554432) !== 0)) {\n isResolved = this._promiseFulfilled(maybePromise._value(), i);\n } else if (((bitField & 16777216) !== 0)) {\n isResolved = this._promiseRejected(maybePromise._reason(), i);\n } else {\n isResolved = this._promiseCancelled(i);\n }\n } else {\n isResolved = this._promiseFulfilled(maybePromise, i);\n }\n }\n if (!isResolved) result._setAsyncGuaranteed();\n};\n\nPromiseArray.prototype._isResolved = function () {\n return this._values === null;\n};\n\nPromiseArray.prototype._resolve = function (value) {\n this._values = null;\n this._promise._fulfill(value);\n};\n\nPromiseArray.prototype._cancel = function() {\n if (this._isResolved() || !this._promise._isCancellable()) return;\n this._values = null;\n this._promise._cancel();\n};\n\nPromiseArray.prototype._reject = function (reason) {\n this._values = null;\n this._promise._rejectCallback(reason, false);\n};\n\nPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nPromiseArray.prototype._promiseCancelled = function() {\n this._cancel();\n return true;\n};\n\nPromiseArray.prototype._promiseRejected = function (reason) {\n this._totalResolved++;\n this._reject(reason);\n return true;\n};\n\nPromiseArray.prototype._resultCancelled = function() {\n if (this._isResolved()) return;\n var values = this._values;\n this._cancel();\n if (values instanceof Promise) {\n values.cancel();\n } else {\n for (var i = 0; i < values.length; ++i) {\n if (values[i] instanceof Promise) {\n values[i].cancel();\n }\n }\n }\n};\n\nPromiseArray.prototype.shouldCopyValues = function () {\n return true;\n};\n\nPromiseArray.prototype.getActualLength = function (len) {\n return len;\n};\n\nreturn PromiseArray;\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar longStackTraces = false;\nvar contextStack = [];\n\nPromise.prototype._promiseCreated = function() {};\nPromise.prototype._pushContext = function() {};\nPromise.prototype._popContext = function() {return null;};\nPromise._peekContext = Promise.prototype._peekContext = function() {};\n\nfunction Context() {\n this._trace = new Context.CapturedTrace(peekContext());\n}\nContext.prototype._pushContext = function () {\n if (this._trace !== undefined) {\n this._trace._promiseCreated = null;\n contextStack.push(this._trace);\n }\n};\n\nContext.prototype._popContext = function () {\n if (this._trace !== undefined) {\n var trace = contextStack.pop();\n var ret = trace._promiseCreated;\n trace._promiseCreated = null;\n return ret;\n }\n return null;\n};\n\nfunction createContext() {\n if (longStackTraces) return new Context();\n}\n\nfunction peekContext() {\n var lastIndex = contextStack.length - 1;\n if (lastIndex >= 0) {\n return contextStack[lastIndex];\n }\n return undefined;\n}\nContext.CapturedTrace = null;\nContext.create = createContext;\nContext.deactivateLongStackTraces = function() {};\nContext.activateLongStackTraces = function() {\n var Promise_pushContext = Promise.prototype._pushContext;\n var Promise_popContext = Promise.prototype._popContext;\n var Promise_PeekContext = Promise._peekContext;\n var Promise_peekContext = Promise.prototype._peekContext;\n var Promise_promiseCreated = Promise.prototype._promiseCreated;\n Context.deactivateLongStackTraces = function() {\n Promise.prototype._pushContext = Promise_pushContext;\n Promise.prototype._popContext = Promise_popContext;\n Promise._peekContext = Promise_PeekContext;\n Promise.prototype._peekContext = Promise_peekContext;\n Promise.prototype._promiseCreated = Promise_promiseCreated;\n longStackTraces = false;\n };\n longStackTraces = true;\n Promise.prototype._pushContext = Context.prototype._pushContext;\n Promise.prototype._popContext = Context.prototype._popContext;\n Promise._peekContext = Promise.prototype._peekContext = peekContext;\n Promise.prototype._promiseCreated = function() {\n var ctx = this._peekContext();\n if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n };\n};\nreturn Context;\n};\n","\"use strict\";\nmodule.exports = function(Promise, Context) {\nvar getDomain = Promise._getDomain;\nvar async = Promise._async;\nvar Warning = require(\"./errors\").Warning;\nvar util = require(\"./util\");\nvar canAttachTrace = util.canAttachTrace;\nvar unhandledRejectionHandled;\nvar possiblyUnhandledRejection;\nvar bluebirdFramePattern =\n /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\nvar nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\nvar parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\nvar stackFramePattern = null;\nvar formatStack = null;\nvar indentStackFrames = false;\nvar printWarning;\nvar debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 &&\n (false ||\n util.env(\"BLUEBIRD_DEBUG\") ||\n util.env(\"NODE_ENV\") === \"development\"));\n\nvar warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n\nvar longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n\nvar wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 &&\n (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n\nPromise.prototype.suppressUnhandledRejections = function() {\n var target = this._target();\n target._bitField = ((target._bitField & (~1048576)) |\n 524288);\n};\n\nPromise.prototype._ensurePossibleRejectionHandled = function () {\n if ((this._bitField & 524288) !== 0) return;\n this._setRejectionIsUnhandled();\n async.invokeLater(this._notifyUnhandledRejection, this, undefined);\n};\n\nPromise.prototype._notifyUnhandledRejectionIsHandled = function () {\n fireRejectionEvent(\"rejectionHandled\",\n unhandledRejectionHandled, undefined, this);\n};\n\nPromise.prototype._setReturnedNonUndefined = function() {\n this._bitField = this._bitField | 268435456;\n};\n\nPromise.prototype._returnedNonUndefined = function() {\n return (this._bitField & 268435456) !== 0;\n};\n\nPromise.prototype._notifyUnhandledRejection = function () {\n if (this._isRejectionUnhandled()) {\n var reason = this._settledValue();\n this._setUnhandledRejectionIsNotified();\n fireRejectionEvent(\"unhandledRejection\",\n possiblyUnhandledRejection, reason, this);\n }\n};\n\nPromise.prototype._setUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField | 262144;\n};\n\nPromise.prototype._unsetUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField & (~262144);\n};\n\nPromise.prototype._isUnhandledRejectionNotified = function () {\n return (this._bitField & 262144) > 0;\n};\n\nPromise.prototype._setRejectionIsUnhandled = function () {\n this._bitField = this._bitField | 1048576;\n};\n\nPromise.prototype._unsetRejectionIsUnhandled = function () {\n this._bitField = this._bitField & (~1048576);\n if (this._isUnhandledRejectionNotified()) {\n this._unsetUnhandledRejectionIsNotified();\n this._notifyUnhandledRejectionIsHandled();\n }\n};\n\nPromise.prototype._isRejectionUnhandled = function () {\n return (this._bitField & 1048576) > 0;\n};\n\nPromise.prototype._warn = function(message, shouldUseOwnTrace, promise) {\n return warn(message, shouldUseOwnTrace, promise || this);\n};\n\nPromise.onPossiblyUnhandledRejection = function (fn) {\n var domain = getDomain();\n possiblyUnhandledRejection =\n typeof fn === \"function\" ? (domain === null ?\n fn : util.domainBind(domain, fn))\n : undefined;\n};\n\nPromise.onUnhandledRejectionHandled = function (fn) {\n var domain = getDomain();\n unhandledRejectionHandled =\n typeof fn === \"function\" ? (domain === null ?\n fn : util.domainBind(domain, fn))\n : undefined;\n};\n\nvar disableLongStackTraces = function() {};\nPromise.longStackTraces = function () {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (!config.longStackTraces && longStackTracesIsSupported()) {\n var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n config.longStackTraces = true;\n disableLongStackTraces = function() {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n Context.deactivateLongStackTraces();\n async.enableTrampoline();\n config.longStackTraces = false;\n };\n Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n Context.activateLongStackTraces();\n async.disableTrampolineIfNecessary();\n }\n};\n\nPromise.hasLongStackTraces = function () {\n return config.longStackTraces && longStackTracesIsSupported();\n};\n\nvar fireDomEvent = (function() {\n try {\n if (typeof CustomEvent === \"function\") {\n var event = new CustomEvent(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = new CustomEvent(name.toLowerCase(), {\n detail: event,\n cancelable: true\n });\n return !util.global.dispatchEvent(domEvent);\n };\n } else if (typeof Event === \"function\") {\n var event = new Event(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = new Event(name.toLowerCase(), {\n cancelable: true\n });\n domEvent.detail = event;\n return !util.global.dispatchEvent(domEvent);\n };\n } else {\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"testingtheevent\", false, true, {});\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = document.createEvent(\"CustomEvent\");\n domEvent.initCustomEvent(name.toLowerCase(), false, true,\n event);\n return !util.global.dispatchEvent(domEvent);\n };\n }\n } catch (e) {}\n return function() {\n return false;\n };\n})();\n\nvar fireGlobalEvent = (function() {\n if (util.isNode) {\n return function() {\n return process.emit.apply(process, arguments);\n };\n } else {\n if (!util.global) {\n return function() {\n return false;\n };\n }\n return function(name) {\n var methodName = \"on\" + name.toLowerCase();\n var method = util.global[methodName];\n if (!method) return false;\n method.apply(util.global, [].slice.call(arguments, 1));\n return true;\n };\n }\n})();\n\nfunction generatePromiseLifecycleEventObject(name, promise) {\n return {promise: promise};\n}\n\nvar eventToObjectGenerator = {\n promiseCreated: generatePromiseLifecycleEventObject,\n promiseFulfilled: generatePromiseLifecycleEventObject,\n promiseRejected: generatePromiseLifecycleEventObject,\n promiseResolved: generatePromiseLifecycleEventObject,\n promiseCancelled: generatePromiseLifecycleEventObject,\n promiseChained: function(name, promise, child) {\n return {promise: promise, child: child};\n },\n warning: function(name, warning) {\n return {warning: warning};\n },\n unhandledRejection: function (name, reason, promise) {\n return {reason: reason, promise: promise};\n },\n rejectionHandled: generatePromiseLifecycleEventObject\n};\n\nvar activeFireEvent = function (name) {\n var globalEventFired = false;\n try {\n globalEventFired = fireGlobalEvent.apply(null, arguments);\n } catch (e) {\n async.throwLater(e);\n globalEventFired = true;\n }\n\n var domEventFired = false;\n try {\n domEventFired = fireDomEvent(name,\n eventToObjectGenerator[name].apply(null, arguments));\n } catch (e) {\n async.throwLater(e);\n domEventFired = true;\n }\n\n return domEventFired || globalEventFired;\n};\n\nPromise.config = function(opts) {\n opts = Object(opts);\n if (\"longStackTraces\" in opts) {\n if (opts.longStackTraces) {\n Promise.longStackTraces();\n } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n disableLongStackTraces();\n }\n }\n if (\"warnings\" in opts) {\n var warningsOption = opts.warnings;\n config.warnings = !!warningsOption;\n wForgottenReturn = config.warnings;\n\n if (util.isObject(warningsOption)) {\n if (\"wForgottenReturn\" in warningsOption) {\n wForgottenReturn = !!warningsOption.wForgottenReturn;\n }\n }\n }\n if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n if (async.haveItemsQueued()) {\n throw new Error(\n \"cannot enable cancellation after promises are in use\");\n }\n Promise.prototype._clearCancellationData =\n cancellationClearCancellationData;\n Promise.prototype._propagateFrom = cancellationPropagateFrom;\n Promise.prototype._onCancel = cancellationOnCancel;\n Promise.prototype._setOnCancel = cancellationSetOnCancel;\n Promise.prototype._attachCancellationCallback =\n cancellationAttachCancellationCallback;\n Promise.prototype._execute = cancellationExecute;\n propagateFromFunction = cancellationPropagateFrom;\n config.cancellation = true;\n }\n if (\"monitoring\" in opts) {\n if (opts.monitoring && !config.monitoring) {\n config.monitoring = true;\n Promise.prototype._fireEvent = activeFireEvent;\n } else if (!opts.monitoring && config.monitoring) {\n config.monitoring = false;\n Promise.prototype._fireEvent = defaultFireEvent;\n }\n }\n return Promise;\n};\n\nfunction defaultFireEvent() { return false; }\n\nPromise.prototype._fireEvent = defaultFireEvent;\nPromise.prototype._execute = function(executor, resolve, reject) {\n try {\n executor(resolve, reject);\n } catch (e) {\n return e;\n }\n};\nPromise.prototype._onCancel = function () {};\nPromise.prototype._setOnCancel = function (handler) { ; };\nPromise.prototype._attachCancellationCallback = function(onCancel) {\n ;\n};\nPromise.prototype._captureStackTrace = function () {};\nPromise.prototype._attachExtraTrace = function () {};\nPromise.prototype._clearCancellationData = function() {};\nPromise.prototype._propagateFrom = function (parent, flags) {\n ;\n ;\n};\n\nfunction cancellationExecute(executor, resolve, reject) {\n var promise = this;\n try {\n executor(resolve, reject, function(onCancel) {\n if (typeof onCancel !== \"function\") {\n throw new TypeError(\"onCancel must be a function, got: \" +\n util.toString(onCancel));\n }\n promise._attachCancellationCallback(onCancel);\n });\n } catch (e) {\n return e;\n }\n}\n\nfunction cancellationAttachCancellationCallback(onCancel) {\n if (!this._isCancellable()) return this;\n\n var previousOnCancel = this._onCancel();\n if (previousOnCancel !== undefined) {\n if (util.isArray(previousOnCancel)) {\n previousOnCancel.push(onCancel);\n } else {\n this._setOnCancel([previousOnCancel, onCancel]);\n }\n } else {\n this._setOnCancel(onCancel);\n }\n}\n\nfunction cancellationOnCancel() {\n return this._onCancelField;\n}\n\nfunction cancellationSetOnCancel(onCancel) {\n this._onCancelField = onCancel;\n}\n\nfunction cancellationClearCancellationData() {\n this._cancellationParent = undefined;\n this._onCancelField = undefined;\n}\n\nfunction cancellationPropagateFrom(parent, flags) {\n if ((flags & 1) !== 0) {\n this._cancellationParent = parent;\n var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n if (branchesRemainingToCancel === undefined) {\n branchesRemainingToCancel = 0;\n }\n parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n }\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\n\nfunction bindingPropagateFrom(parent, flags) {\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\nvar propagateFromFunction = bindingPropagateFrom;\n\nfunction boundValueFunction() {\n var ret = this._boundTo;\n if (ret !== undefined) {\n if (ret instanceof Promise) {\n if (ret.isFulfilled()) {\n return ret.value();\n } else {\n return undefined;\n }\n }\n }\n return ret;\n}\n\nfunction longStackTracesCaptureStackTrace() {\n this._trace = new CapturedTrace(this._peekContext());\n}\n\nfunction longStackTracesAttachExtraTrace(error, ignoreSelf) {\n if (canAttachTrace(error)) {\n var trace = this._trace;\n if (trace !== undefined) {\n if (ignoreSelf) trace = trace._parent;\n }\n if (trace !== undefined) {\n trace.attachExtraTrace(error);\n } else if (!error.__stackCleaned__) {\n var parsed = parseStackAndMessage(error);\n util.notEnumerableProp(error, \"stack\",\n parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n }\n }\n}\n\nfunction checkForgottenReturns(returnValue, promiseCreated, name, promise,\n parent) {\n if (returnValue === undefined && promiseCreated !== null &&\n wForgottenReturn) {\n if (parent !== undefined && parent._returnedNonUndefined()) return;\n if ((promise._bitField & 65535) === 0) return;\n\n if (name) name = name + \" \";\n var handlerLine = \"\";\n var creatorLine = \"\";\n if (promiseCreated._trace) {\n var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n var stack = cleanStack(traceLines);\n for (var i = stack.length - 1; i >= 0; --i) {\n var line = stack[i];\n if (!nodeFramePattern.test(line)) {\n var lineMatches = line.match(parseLinePattern);\n if (lineMatches) {\n handlerLine = \"at \" + lineMatches[1] +\n \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n }\n break;\n }\n }\n\n if (stack.length > 0) {\n var firstUserLine = stack[0];\n for (var i = 0; i < traceLines.length; ++i) {\n\n if (traceLines[i] === firstUserLine) {\n if (i > 0) {\n creatorLine = \"\\n\" + traceLines[i - 1];\n }\n break;\n }\n }\n\n }\n }\n var msg = \"a promise was created in a \" + name +\n \"handler \" + handlerLine + \"but was not returned from it, \" +\n \"see http://goo.gl/rRqMUw\" +\n creatorLine;\n promise._warn(msg, true, promiseCreated);\n }\n}\n\nfunction deprecated(name, replacement) {\n var message = name +\n \" is deprecated and will be removed in a future version.\";\n if (replacement) message += \" Use \" + replacement + \" instead.\";\n return warn(message);\n}\n\nfunction warn(message, shouldUseOwnTrace, promise) {\n if (!config.warnings) return;\n var warning = new Warning(message);\n var ctx;\n if (shouldUseOwnTrace) {\n promise._attachExtraTrace(warning);\n } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n ctx.attachExtraTrace(warning);\n } else {\n var parsed = parseStackAndMessage(warning);\n warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n }\n\n if (!activeFireEvent(\"warning\", warning)) {\n formatAndLogError(warning, \"\", true);\n }\n}\n\nfunction reconstructStack(message, stacks) {\n for (var i = 0; i < stacks.length - 1; ++i) {\n stacks[i].push(\"From previous event:\");\n stacks[i] = stacks[i].join(\"\\n\");\n }\n if (i < stacks.length) {\n stacks[i] = stacks[i].join(\"\\n\");\n }\n return message + \"\\n\" + stacks.join(\"\\n\");\n}\n\nfunction removeDuplicateOrEmptyJumps(stacks) {\n for (var i = 0; i < stacks.length; ++i) {\n if (stacks[i].length === 0 ||\n ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {\n stacks.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction removeCommonRoots(stacks) {\n var current = stacks[0];\n for (var i = 1; i < stacks.length; ++i) {\n var prev = stacks[i];\n var currentLastIndex = current.length - 1;\n var currentLastLine = current[currentLastIndex];\n var commonRootMeetPoint = -1;\n\n for (var j = prev.length - 1; j >= 0; --j) {\n if (prev[j] === currentLastLine) {\n commonRootMeetPoint = j;\n break;\n }\n }\n\n for (var j = commonRootMeetPoint; j >= 0; --j) {\n var line = prev[j];\n if (current[currentLastIndex] === line) {\n current.pop();\n currentLastIndex--;\n } else {\n break;\n }\n }\n current = prev;\n }\n}\n\nfunction cleanStack(stack) {\n var ret = [];\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n var isTraceLine = \" (No stack trace)\" === line ||\n stackFramePattern.test(line);\n var isInternalFrame = isTraceLine && shouldIgnore(line);\n if (isTraceLine && !isInternalFrame) {\n if (indentStackFrames && line.charAt(0) !== \" \") {\n line = \" \" + line;\n }\n ret.push(line);\n }\n }\n return ret;\n}\n\nfunction stackFramesAsArray(error) {\n var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n if (\" (No stack trace)\" === line || stackFramePattern.test(line)) {\n break;\n }\n }\n if (i > 0 && error.name != \"SyntaxError\") {\n stack = stack.slice(i);\n }\n return stack;\n}\n\nfunction parseStackAndMessage(error) {\n var stack = error.stack;\n var message = error.toString();\n stack = typeof stack === \"string\" && stack.length > 0\n ? stackFramesAsArray(error) : [\" (No stack trace)\"];\n return {\n message: message,\n stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n };\n}\n\nfunction formatAndLogError(error, title, isSoft) {\n if (typeof console !== \"undefined\") {\n var message;\n if (util.isObject(error)) {\n var stack = error.stack;\n message = title + formatStack(stack, error);\n } else {\n message = title + String(error);\n }\n if (typeof printWarning === \"function\") {\n printWarning(message, isSoft);\n } else if (typeof console.log === \"function\" ||\n typeof console.log === \"object\") {\n console.log(message);\n }\n }\n}\n\nfunction fireRejectionEvent(name, localHandler, reason, promise) {\n var localEventFired = false;\n try {\n if (typeof localHandler === \"function\") {\n localEventFired = true;\n if (name === \"rejectionHandled\") {\n localHandler(promise);\n } else {\n localHandler(reason, promise);\n }\n }\n } catch (e) {\n async.throwLater(e);\n }\n\n if (name === \"unhandledRejection\") {\n if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n formatAndLogError(reason, \"Unhandled rejection \");\n }\n } else {\n activeFireEvent(name, promise);\n }\n}\n\nfunction formatNonError(obj) {\n var str;\n if (typeof obj === \"function\") {\n str = \"[function \" +\n (obj.name || \"anonymous\") +\n \"]\";\n } else {\n str = obj && typeof obj.toString === \"function\"\n ? obj.toString() : util.toString(obj);\n var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n if (ruselessToString.test(str)) {\n try {\n var newStr = JSON.stringify(obj);\n str = newStr;\n }\n catch(e) {\n\n }\n }\n if (str.length === 0) {\n str = \"(empty array)\";\n }\n }\n return (\"(<\" + snip(str) + \">, no stack trace)\");\n}\n\nfunction snip(str) {\n var maxChars = 41;\n if (str.length < maxChars) {\n return str;\n }\n return str.substr(0, maxChars - 3) + \"...\";\n}\n\nfunction longStackTracesIsSupported() {\n return typeof captureStackTrace === \"function\";\n}\n\nvar shouldIgnore = function() { return false; };\nvar parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\nfunction parseLineInfo(line) {\n var matches = line.match(parseLineInfoRegex);\n if (matches) {\n return {\n fileName: matches[1],\n line: parseInt(matches[2], 10)\n };\n }\n}\n\nfunction setBounds(firstLineError, lastLineError) {\n if (!longStackTracesIsSupported()) return;\n var firstStackLines = firstLineError.stack.split(\"\\n\");\n var lastStackLines = lastLineError.stack.split(\"\\n\");\n var firstIndex = -1;\n var lastIndex = -1;\n var firstFileName;\n var lastFileName;\n for (var i = 0; i < firstStackLines.length; ++i) {\n var result = parseLineInfo(firstStackLines[i]);\n if (result) {\n firstFileName = result.fileName;\n firstIndex = result.line;\n break;\n }\n }\n for (var i = 0; i < lastStackLines.length; ++i) {\n var result = parseLineInfo(lastStackLines[i]);\n if (result) {\n lastFileName = result.fileName;\n lastIndex = result.line;\n break;\n }\n }\n if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||\n firstFileName !== lastFileName || firstIndex >= lastIndex) {\n return;\n }\n\n shouldIgnore = function(line) {\n if (bluebirdFramePattern.test(line)) return true;\n var info = parseLineInfo(line);\n if (info) {\n if (info.fileName === firstFileName &&\n (firstIndex <= info.line && info.line <= lastIndex)) {\n return true;\n }\n }\n return false;\n };\n}\n\nfunction CapturedTrace(parent) {\n this._parent = parent;\n this._promisesCreated = 0;\n var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n captureStackTrace(this, CapturedTrace);\n if (length > 32) this.uncycle();\n}\nutil.inherits(CapturedTrace, Error);\nContext.CapturedTrace = CapturedTrace;\n\nCapturedTrace.prototype.uncycle = function() {\n var length = this._length;\n if (length < 2) return;\n var nodes = [];\n var stackToIndex = {};\n\n for (var i = 0, node = this; node !== undefined; ++i) {\n nodes.push(node);\n node = node._parent;\n }\n length = this._length = i;\n for (var i = length - 1; i >= 0; --i) {\n var stack = nodes[i].stack;\n if (stackToIndex[stack] === undefined) {\n stackToIndex[stack] = i;\n }\n }\n for (var i = 0; i < length; ++i) {\n var currentStack = nodes[i].stack;\n var index = stackToIndex[currentStack];\n if (index !== undefined && index !== i) {\n if (index > 0) {\n nodes[index - 1]._parent = undefined;\n nodes[index - 1]._length = 1;\n }\n nodes[i]._parent = undefined;\n nodes[i]._length = 1;\n var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n if (index < length - 1) {\n cycleEdgeNode._parent = nodes[index + 1];\n cycleEdgeNode._parent.uncycle();\n cycleEdgeNode._length =\n cycleEdgeNode._parent._length + 1;\n } else {\n cycleEdgeNode._parent = undefined;\n cycleEdgeNode._length = 1;\n }\n var currentChildLength = cycleEdgeNode._length + 1;\n for (var j = i - 2; j >= 0; --j) {\n nodes[j]._length = currentChildLength;\n currentChildLength++;\n }\n return;\n }\n }\n};\n\nCapturedTrace.prototype.attachExtraTrace = function(error) {\n if (error.__stackCleaned__) return;\n this.uncycle();\n var parsed = parseStackAndMessage(error);\n var message = parsed.message;\n var stacks = [parsed.stack];\n\n var trace = this;\n while (trace !== undefined) {\n stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n trace = trace._parent;\n }\n removeCommonRoots(stacks);\n removeDuplicateOrEmptyJumps(stacks);\n util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n};\n\nvar captureStackTrace = (function stackDetection() {\n var v8stackFramePattern = /^\\s*at\\s*/;\n var v8stackFormatter = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if (error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n if (typeof Error.stackTraceLimit === \"number\" &&\n typeof Error.captureStackTrace === \"function\") {\n Error.stackTraceLimit += 6;\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n var captureStackTrace = Error.captureStackTrace;\n\n shouldIgnore = function(line) {\n return bluebirdFramePattern.test(line);\n };\n return function(receiver, ignoreUntil) {\n Error.stackTraceLimit += 6;\n captureStackTrace(receiver, ignoreUntil);\n Error.stackTraceLimit -= 6;\n };\n }\n var err = new Error();\n\n if (typeof err.stack === \"string\" &&\n err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n stackFramePattern = /@/;\n formatStack = v8stackFormatter;\n indentStackFrames = true;\n return function captureStackTrace(o) {\n o.stack = new Error().stack;\n };\n }\n\n var hasStackAfterThrow;\n try { throw new Error(); }\n catch(e) {\n hasStackAfterThrow = (\"stack\" in e);\n }\n if (!(\"stack\" in err) && hasStackAfterThrow &&\n typeof Error.stackTraceLimit === \"number\") {\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n return function captureStackTrace(o) {\n Error.stackTraceLimit += 6;\n try { throw new Error(); }\n catch(e) { o.stack = e.stack; }\n Error.stackTraceLimit -= 6;\n };\n }\n\n formatStack = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if ((typeof error === \"object\" ||\n typeof error === \"function\") &&\n error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n return null;\n\n})([]);\n\nif (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n printWarning = function (message) {\n console.warn(message);\n };\n if (util.isNode && process.stderr.isTTY) {\n printWarning = function(message, isSoft) {\n var color = isSoft ? \"\\u001b[33m\" : \"\\u001b[31m\";\n console.warn(color + message + \"\\u001b[0m\\n\");\n };\n } else if (!util.isNode && typeof (new Error().stack) === \"string\") {\n printWarning = function(message, isSoft) {\n console.warn(\"%c\" + message,\n isSoft ? \"color: darkorange\" : \"color: red\");\n };\n }\n}\n\nvar config = {\n warnings: warnings,\n longStackTraces: false,\n cancellation: false,\n monitoring: false\n};\n\nif (longStackTraces) Promise.longStackTraces();\n\nreturn {\n longStackTraces: function() {\n return config.longStackTraces;\n },\n warnings: function() {\n return config.warnings;\n },\n cancellation: function() {\n return config.cancellation;\n },\n monitoring: function() {\n return config.monitoring;\n },\n propagateFromFunction: function() {\n return propagateFromFunction;\n },\n boundValueFunction: function() {\n return boundValueFunction;\n },\n checkForgottenReturns: checkForgottenReturns,\n setBounds: setBounds,\n warn: warn,\n deprecated: deprecated,\n CapturedTrace: CapturedTrace,\n fireDomEvent: fireDomEvent,\n fireGlobalEvent: fireGlobalEvent\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, tryConvertToPromise) {\nvar util = require(\"./util\");\nvar CancellationError = Promise.CancellationError;\nvar errorObj = util.errorObj;\n\nfunction PassThroughHandlerContext(promise, type, handler) {\n this.promise = promise;\n this.type = type;\n this.handler = handler;\n this.called = false;\n this.cancelPromise = null;\n}\n\nPassThroughHandlerContext.prototype.isFinallyHandler = function() {\n return this.type === 0;\n};\n\nfunction FinallyHandlerCancelReaction(finallyHandler) {\n this.finallyHandler = finallyHandler;\n}\n\nFinallyHandlerCancelReaction.prototype._resultCancelled = function() {\n checkCancel(this.finallyHandler);\n};\n\nfunction checkCancel(ctx, reason) {\n if (ctx.cancelPromise != null) {\n if (arguments.length > 1) {\n ctx.cancelPromise._reject(reason);\n } else {\n ctx.cancelPromise._cancel();\n }\n ctx.cancelPromise = null;\n return true;\n }\n return false;\n}\n\nfunction succeed() {\n return finallyHandler.call(this, this.promise._target()._settledValue());\n}\nfunction fail(reason) {\n if (checkCancel(this, reason)) return;\n errorObj.e = reason;\n return errorObj;\n}\nfunction finallyHandler(reasonOrValue) {\n var promise = this.promise;\n var handler = this.handler;\n\n if (!this.called) {\n this.called = true;\n var ret = this.isFinallyHandler()\n ? handler.call(promise._boundValue())\n : handler.call(promise._boundValue(), reasonOrValue);\n if (ret !== undefined) {\n promise._setReturnedNonUndefined();\n var maybePromise = tryConvertToPromise(ret, promise);\n if (maybePromise instanceof Promise) {\n if (this.cancelPromise != null) {\n if (maybePromise._isCancelled()) {\n var reason =\n new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n errorObj.e = reason;\n return errorObj;\n } else if (maybePromise.isPending()) {\n maybePromise._attachCancellationCallback(\n new FinallyHandlerCancelReaction(this));\n }\n }\n return maybePromise._then(\n succeed, fail, undefined, this, undefined);\n }\n }\n }\n\n if (promise.isRejected()) {\n checkCancel(this);\n errorObj.e = reasonOrValue;\n return errorObj;\n } else {\n checkCancel(this);\n return reasonOrValue;\n }\n}\n\nPromise.prototype._passThrough = function(handler, type, success, fail) {\n if (typeof handler !== \"function\") return this.then();\n return this._then(success,\n fail,\n undefined,\n new PassThroughHandlerContext(this, type, handler),\n undefined);\n};\n\nPromise.prototype.lastly =\nPromise.prototype[\"finally\"] = function (handler) {\n return this._passThrough(handler,\n 0,\n finallyHandler,\n finallyHandler);\n};\n\nPromise.prototype.tap = function (handler) {\n return this._passThrough(handler, 1, finallyHandler);\n};\n\nreturn PassThroughHandlerContext;\n};\n","\"use strict\";\nmodule.exports = function(NEXT_FILTER) {\nvar util = require(\"./util\");\nvar getKeys = require(\"./es5\").keys;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction catchFilter(instances, cb, promise) {\n return function(e) {\n var boundTo = promise._boundValue();\n predicateLoop: for (var i = 0; i < instances.length; ++i) {\n var item = instances[i];\n\n if (item === Error ||\n (item != null && item.prototype instanceof Error)) {\n if (e instanceof item) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (typeof item === \"function\") {\n var matchesPredicate = tryCatch(item).call(boundTo, e);\n if (matchesPredicate === errorObj) {\n return matchesPredicate;\n } else if (matchesPredicate) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (util.isObject(e)) {\n var keys = getKeys(item);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n if (item[key] != e[key]) {\n continue predicateLoop;\n }\n }\n return tryCatch(cb).call(boundTo, e);\n }\n }\n return NEXT_FILTER;\n };\n}\n\nreturn catchFilter;\n};\n","\"use strict\";\nvar util = require(\"./util\");\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar errors = require(\"./errors\");\nvar OperationalError = errors.OperationalError;\nvar es5 = require(\"./es5\");\n\nfunction isUntypedError(obj) {\n return obj instanceof Error &&\n es5.getPrototypeOf(obj) === Error.prototype;\n}\n\nvar rErrorKey = /^(?:name|message|stack|cause)$/;\nfunction wrapAsOperationalError(obj) {\n var ret;\n if (isUntypedError(obj)) {\n ret = new OperationalError(obj);\n ret.name = obj.name;\n ret.message = obj.message;\n ret.stack = obj.stack;\n var keys = es5.keys(obj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!rErrorKey.test(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n }\n util.markAsOriginatingFromRejection(obj);\n return obj;\n}\n\nfunction nodebackForPromise(promise, multiArgs) {\n return function(err, value) {\n if (promise === null) return;\n if (err) {\n var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n promise._attachExtraTrace(wrapped);\n promise._reject(wrapped);\n } else if (!multiArgs) {\n promise._fulfill(value);\n } else {\n var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};\n promise._fulfill(args);\n }\n promise = null;\n };\n}\n\nmodule.exports = nodebackForPromise;\n","\"use strict\";\nmodule.exports =\nfunction(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\n\nPromise.method = function (fn) {\n if (typeof fn !== \"function\") {\n throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return function () {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value = tryCatch(fn).apply(this, arguments);\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.method\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n };\n};\n\nPromise.attempt = Promise[\"try\"] = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value;\n if (arguments.length > 1) {\n debug.deprecated(\"calling Promise.try with more than 1 argument\");\n var arg = arguments[1];\n var ctx = arguments[2];\n value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)\n : tryCatch(fn).call(ctx, arg);\n } else {\n value = tryCatch(fn)();\n }\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.try\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n};\n\nPromise.prototype._resolveFromSyncValue = function (value) {\n if (value === util.errorObj) {\n this._rejectCallback(value.e, false);\n } else {\n this._resolveCallback(value, true);\n }\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {\nvar calledBind = false;\nvar rejectThis = function(_, e) {\n this._reject(e);\n};\n\nvar targetRejected = function(e, context) {\n context.promiseRejectionQueued = true;\n context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n};\n\nvar bindingResolved = function(thisArg, context) {\n if (((this._bitField & 50397184) === 0)) {\n this._resolveCallback(context.target);\n }\n};\n\nvar bindingRejected = function(e, context) {\n if (!context.promiseRejectionQueued) this._reject(e);\n};\n\nPromise.prototype.bind = function (thisArg) {\n if (!calledBind) {\n calledBind = true;\n Promise.prototype._propagateFrom = debug.propagateFromFunction();\n Promise.prototype._boundValue = debug.boundValueFunction();\n }\n var maybePromise = tryConvertToPromise(thisArg);\n var ret = new Promise(INTERNAL);\n ret._propagateFrom(this, 1);\n var target = this._target();\n ret._setBoundTo(maybePromise);\n if (maybePromise instanceof Promise) {\n var context = {\n promiseRejectionQueued: false,\n promise: ret,\n target: target,\n bindingPromise: maybePromise\n };\n target._then(INTERNAL, targetRejected, undefined, ret, context);\n maybePromise._then(\n bindingResolved, bindingRejected, undefined, ret, context);\n ret._setOnCancel(maybePromise);\n } else {\n ret._resolveCallback(target);\n }\n return ret;\n};\n\nPromise.prototype._setBoundTo = function (obj) {\n if (obj !== undefined) {\n this._bitField = this._bitField | 2097152;\n this._boundTo = obj;\n } else {\n this._bitField = this._bitField & (~2097152);\n }\n};\n\nPromise.prototype._isBound = function () {\n return (this._bitField & 2097152) === 2097152;\n};\n\nPromise.bind = function (thisArg, value) {\n return Promise.resolve(value).bind(thisArg);\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, PromiseArray, apiRejection, debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nPromise.prototype[\"break\"] = Promise.prototype.cancel = function() {\n if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n\n var promise = this;\n var child = promise;\n while (promise._isCancellable()) {\n if (!promise._cancelBy(child)) {\n if (child._isFollowing()) {\n child._followee().cancel();\n } else {\n child._cancelBranched();\n }\n break;\n }\n\n var parent = promise._cancellationParent;\n if (parent == null || !parent._isCancellable()) {\n if (promise._isFollowing()) {\n promise._followee().cancel();\n } else {\n promise._cancelBranched();\n }\n break;\n } else {\n if (promise._isFollowing()) promise._followee().cancel();\n promise._setWillBeCancelled();\n child = promise;\n promise = parent;\n }\n }\n};\n\nPromise.prototype._branchHasCancelled = function() {\n this._branchesRemainingToCancel--;\n};\n\nPromise.prototype._enoughBranchesHaveCancelled = function() {\n return this._branchesRemainingToCancel === undefined ||\n this._branchesRemainingToCancel <= 0;\n};\n\nPromise.prototype._cancelBy = function(canceller) {\n if (canceller === this) {\n this._branchesRemainingToCancel = 0;\n this._invokeOnCancel();\n return true;\n } else {\n this._branchHasCancelled();\n if (this._enoughBranchesHaveCancelled()) {\n this._invokeOnCancel();\n return true;\n }\n }\n return false;\n};\n\nPromise.prototype._cancelBranched = function() {\n if (this._enoughBranchesHaveCancelled()) {\n this._cancel();\n }\n};\n\nPromise.prototype._cancel = function() {\n if (!this._isCancellable()) return;\n this._setCancelled();\n async.invoke(this._cancelPromises, this, undefined);\n};\n\nPromise.prototype._cancelPromises = function() {\n if (this._length() > 0) this._settlePromises();\n};\n\nPromise.prototype._unsetOnCancel = function() {\n this._onCancelField = undefined;\n};\n\nPromise.prototype._isCancellable = function() {\n return this.isPending() && !this._isCancelled();\n};\n\nPromise.prototype.isCancellable = function() {\n return this.isPending() && !this.isCancelled();\n};\n\nPromise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {\n if (util.isArray(onCancelCallback)) {\n for (var i = 0; i < onCancelCallback.length; ++i) {\n this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n }\n } else if (onCancelCallback !== undefined) {\n if (typeof onCancelCallback === \"function\") {\n if (!internalOnly) {\n var e = tryCatch(onCancelCallback).call(this._boundValue());\n if (e === errorObj) {\n this._attachExtraTrace(e.e);\n async.throwLater(e.e);\n }\n }\n } else {\n onCancelCallback._resultCancelled(this);\n }\n }\n};\n\nPromise.prototype._invokeOnCancel = function() {\n var onCancelCallback = this._onCancel();\n this._unsetOnCancel();\n async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n};\n\nPromise.prototype._invokeInternalOnCancel = function() {\n if (this._isCancellable()) {\n this._doInvokeOnCancel(this._onCancel(), true);\n this._unsetOnCancel();\n }\n};\n\nPromise.prototype._resultCancelled = function() {\n this.cancel();\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nfunction returner() {\n return this.value;\n}\nfunction thrower() {\n throw this.reason;\n}\n\nPromise.prototype[\"return\"] =\nPromise.prototype.thenReturn = function (value) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n returner, undefined, undefined, {value: value}, undefined);\n};\n\nPromise.prototype[\"throw\"] =\nPromise.prototype.thenThrow = function (reason) {\n return this._then(\n thrower, undefined, undefined, {reason: reason}, undefined);\n};\n\nPromise.prototype.catchThrow = function (reason) {\n if (arguments.length <= 1) {\n return this._then(\n undefined, thrower, undefined, {reason: reason}, undefined);\n } else {\n var _reason = arguments[1];\n var handler = function() {throw _reason;};\n return this.caught(reason, handler);\n }\n};\n\nPromise.prototype.catchReturn = function (value) {\n if (arguments.length <= 1) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n undefined, returner, undefined, {value: value}, undefined);\n } else {\n var _value = arguments[1];\n if (_value instanceof Promise) _value.suppressUnhandledRejections();\n var handler = function() {return _value;};\n return this.caught(value, handler);\n }\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nfunction PromiseInspection(promise) {\n if (promise !== undefined) {\n promise = promise._target();\n this._bitField = promise._bitField;\n this._settledValueField = promise._isFateSealed()\n ? promise._settledValue() : undefined;\n }\n else {\n this._bitField = 0;\n this._settledValueField = undefined;\n }\n}\n\nPromiseInspection.prototype._settledValue = function() {\n return this._settledValueField;\n};\n\nvar value = PromiseInspection.prototype.value = function () {\n if (!this.isFulfilled()) {\n throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar reason = PromiseInspection.prototype.error =\nPromiseInspection.prototype.reason = function () {\n if (!this.isRejected()) {\n throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar isFulfilled = PromiseInspection.prototype.isFulfilled = function() {\n return (this._bitField & 33554432) !== 0;\n};\n\nvar isRejected = PromiseInspection.prototype.isRejected = function () {\n return (this._bitField & 16777216) !== 0;\n};\n\nvar isPending = PromiseInspection.prototype.isPending = function () {\n return (this._bitField & 50397184) === 0;\n};\n\nvar isResolved = PromiseInspection.prototype.isResolved = function () {\n return (this._bitField & 50331648) !== 0;\n};\n\nPromiseInspection.prototype.isCancelled = function() {\n return (this._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.__isCancelled = function() {\n return (this._bitField & 65536) === 65536;\n};\n\nPromise.prototype._isCancelled = function() {\n return this._target().__isCancelled();\n};\n\nPromise.prototype.isCancelled = function() {\n return (this._target()._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.isPending = function() {\n return isPending.call(this._target());\n};\n\nPromise.prototype.isRejected = function() {\n return isRejected.call(this._target());\n};\n\nPromise.prototype.isFulfilled = function() {\n return isFulfilled.call(this._target());\n};\n\nPromise.prototype.isResolved = function() {\n return isResolved.call(this._target());\n};\n\nPromise.prototype.value = function() {\n return value.call(this._target());\n};\n\nPromise.prototype.reason = function() {\n var target = this._target();\n target._unsetRejectionIsUnhandled();\n return reason.call(target);\n};\n\nPromise.prototype._value = function() {\n return this._settledValue();\n};\n\nPromise.prototype._reason = function() {\n this._unsetRejectionIsUnhandled();\n return this._settledValue();\n};\n\nPromise.PromiseInspection = PromiseInspection;\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,\n getDomain) {\nvar util = require(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar reject;\n\nif (!false) {\nif (canEvaluate) {\n var thenCallback = function(i) {\n return new Function(\"value\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = value; \\n\\\n holder.checkFulfillment(this); \\n\\\n \".replace(/Index/g, i));\n };\n\n var promiseSetter = function(i) {\n return new Function(\"promise\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = promise; \\n\\\n \".replace(/Index/g, i));\n };\n\n var generateHolderClass = function(total) {\n var props = new Array(total);\n for (var i = 0; i < props.length; ++i) {\n props[i] = \"this.p\" + (i+1);\n }\n var assignment = props.join(\" = \") + \" = null;\";\n var cancellationCode= \"var promise;\\n\" + props.map(function(prop) {\n return \" \\n\\\n promise = \" + prop + \"; \\n\\\n if (promise instanceof Promise) { \\n\\\n promise.cancel(); \\n\\\n } \\n\\\n \";\n }).join(\"\\n\");\n var passedArguments = props.join(\", \");\n var name = \"Holder$\" + total;\n\n\n var code = \"return function(tryCatch, errorObj, Promise, async) { \\n\\\n 'use strict'; \\n\\\n function [TheName](fn) { \\n\\\n [TheProperties] \\n\\\n this.fn = fn; \\n\\\n this.asyncNeeded = true; \\n\\\n this.now = 0; \\n\\\n } \\n\\\n \\n\\\n [TheName].prototype._callFunction = function(promise) { \\n\\\n promise._pushContext(); \\n\\\n var ret = tryCatch(this.fn)([ThePassedArguments]); \\n\\\n promise._popContext(); \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(ret.e, false); \\n\\\n } else { \\n\\\n promise._resolveCallback(ret); \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype.checkFulfillment = function(promise) { \\n\\\n var now = ++this.now; \\n\\\n if (now === [TheTotal]) { \\n\\\n if (this.asyncNeeded) { \\n\\\n async.invoke(this._callFunction, this, promise); \\n\\\n } else { \\n\\\n this._callFunction(promise); \\n\\\n } \\n\\\n \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype._resultCancelled = function() { \\n\\\n [CancellationCode] \\n\\\n }; \\n\\\n \\n\\\n return [TheName]; \\n\\\n }(tryCatch, errorObj, Promise, async); \\n\\\n \";\n\n code = code.replace(/\\[TheName\\]/g, name)\n .replace(/\\[TheTotal\\]/g, total)\n .replace(/\\[ThePassedArguments\\]/g, passedArguments)\n .replace(/\\[TheProperties\\]/g, assignment)\n .replace(/\\[CancellationCode\\]/g, cancellationCode);\n\n return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)\n (tryCatch, errorObj, Promise, async);\n };\n\n var holderClasses = [];\n var thenCallbacks = [];\n var promiseSetters = [];\n\n for (var i = 0; i < 8; ++i) {\n holderClasses.push(generateHolderClass(i + 1));\n thenCallbacks.push(thenCallback(i + 1));\n promiseSetters.push(promiseSetter(i + 1));\n }\n\n reject = function (reason) {\n this._reject(reason);\n };\n}}\n\nPromise.join = function () {\n var last = arguments.length - 1;\n var fn;\n if (last > 0 && typeof arguments[last] === \"function\") {\n fn = arguments[last];\n if (!false) {\n if (last <= 8 && canEvaluate) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var HolderClass = holderClasses[last - 1];\n var holder = new HolderClass(fn);\n var callbacks = thenCallbacks;\n\n for (var i = 0; i < last; ++i) {\n var maybePromise = tryConvertToPromise(arguments[i], ret);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n maybePromise._then(callbacks[i], reject,\n undefined, ret, holder);\n promiseSetters[i](maybePromise, holder);\n holder.asyncNeeded = false;\n } else if (((bitField & 33554432) !== 0)) {\n callbacks[i].call(ret,\n maybePromise._value(), holder);\n } else if (((bitField & 16777216) !== 0)) {\n ret._reject(maybePromise._reason());\n } else {\n ret._cancel();\n }\n } else {\n callbacks[i].call(ret, maybePromise, holder);\n }\n }\n\n if (!ret._isFateSealed()) {\n if (holder.asyncNeeded) {\n var domain = getDomain();\n if (domain !== null) {\n holder.fn = util.domainBind(domain, holder.fn);\n }\n }\n ret._setAsyncGuaranteed();\n ret._setOnCancel(holder);\n }\n return ret;\n }\n }\n }\n var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];};\n if (fn) args.pop();\n var ret = new PromiseArray(args).promise();\n return fn !== undefined ? ret.spread(fn) : ret;\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar getDomain = Promise._getDomain;\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nfunction MappingPromiseArray(promises, fn, limit, _filter) {\n this.constructor$(promises);\n this._promise._captureStackTrace();\n var domain = getDomain();\n this._callback = domain === null ? fn : util.domainBind(domain, fn);\n this._preservedValues = _filter === INTERNAL\n ? new Array(this.length())\n : null;\n this._limit = limit;\n this._inFlight = 0;\n this._queue = [];\n async.invoke(this._asyncInit, this, undefined);\n}\nutil.inherits(MappingPromiseArray, PromiseArray);\n\nMappingPromiseArray.prototype._asyncInit = function() {\n this._init$(undefined, -2);\n};\n\nMappingPromiseArray.prototype._init = function () {};\n\nMappingPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var values = this._values;\n var length = this.length();\n var preservedValues = this._preservedValues;\n var limit = this._limit;\n\n if (index < 0) {\n index = (index * -1) - 1;\n values[index] = value;\n if (limit >= 1) {\n this._inFlight--;\n this._drainQueue();\n if (this._isResolved()) return true;\n }\n } else {\n if (limit >= 1 && this._inFlight >= limit) {\n values[index] = value;\n this._queue.push(index);\n return false;\n }\n if (preservedValues !== null) preservedValues[index] = value;\n\n var promise = this._promise;\n var callback = this._callback;\n var receiver = promise._boundValue();\n promise._pushContext();\n var ret = tryCatch(callback).call(receiver, value, index, length);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n preservedValues !== null ? \"Promise.filter\" : \"Promise.map\",\n promise\n );\n if (ret === errorObj) {\n this._reject(ret.e);\n return true;\n }\n\n var maybePromise = tryConvertToPromise(ret, this._promise);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n if (limit >= 1) this._inFlight++;\n values[index] = maybePromise;\n maybePromise._proxy(this, (index + 1) * -1);\n return false;\n } else if (((bitField & 33554432) !== 0)) {\n ret = maybePromise._value();\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(maybePromise._reason());\n return true;\n } else {\n this._cancel();\n return true;\n }\n }\n values[index] = ret;\n }\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= length) {\n if (preservedValues !== null) {\n this._filter(values, preservedValues);\n } else {\n this._resolve(values);\n }\n return true;\n }\n return false;\n};\n\nMappingPromiseArray.prototype._drainQueue = function () {\n var queue = this._queue;\n var limit = this._limit;\n var values = this._values;\n while (queue.length > 0 && this._inFlight < limit) {\n if (this._isResolved()) return;\n var index = queue.pop();\n this._promiseFulfilled(values[index], index);\n }\n};\n\nMappingPromiseArray.prototype._filter = function (booleans, values) {\n var len = values.length;\n var ret = new Array(len);\n var j = 0;\n for (var i = 0; i < len; ++i) {\n if (booleans[i]) ret[j++] = values[i];\n }\n ret.length = j;\n this._resolve(ret);\n};\n\nMappingPromiseArray.prototype.preservedValues = function () {\n return this._preservedValues;\n};\n\nfunction map(promises, fn, options, _filter) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n var limit = 0;\n if (options !== undefined) {\n if (typeof options === \"object\" && options !== null) {\n if (typeof options.concurrency !== \"number\") {\n return Promise.reject(\n new TypeError(\"'concurrency' must be a number but it is \" +\n util.classString(options.concurrency)));\n }\n limit = options.concurrency;\n } else {\n return Promise.reject(new TypeError(\n \"options argument must be an object but it is \" +\n util.classString(options)));\n }\n }\n limit = typeof limit === \"number\" &&\n isFinite(limit) && limit >= 1 ? limit : 0;\n return new MappingPromiseArray(promises, fn, limit, _filter).promise();\n}\n\nPromise.prototype.map = function (fn, options) {\n return map(this, fn, options, null);\n};\n\nPromise.map = function (promises, fn, options, _filter) {\n return map(promises, fn, options, _filter);\n};\n\n\n};\n","\"use strict\";\nvar cr = Object.create;\nif (cr) {\n var callerCache = cr(null);\n var getterCache = cr(null);\n callerCache[\" size\"] = getterCache[\" size\"] = 0;\n}\n\nmodule.exports = function(Promise) {\nvar util = require(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar isIdentifier = util.isIdentifier;\n\nvar getMethodCaller;\nvar getGetter;\nif (!false) {\nvar makeMethodCaller = function (methodName) {\n return new Function(\"ensureMethod\", \" \\n\\\n return function(obj) { \\n\\\n 'use strict' \\n\\\n var len = this.length; \\n\\\n ensureMethod(obj, 'methodName'); \\n\\\n switch(len) { \\n\\\n case 1: return obj.methodName(this[0]); \\n\\\n case 2: return obj.methodName(this[0], this[1]); \\n\\\n case 3: return obj.methodName(this[0], this[1], this[2]); \\n\\\n case 0: return obj.methodName(); \\n\\\n default: \\n\\\n return obj.methodName.apply(obj, this); \\n\\\n } \\n\\\n }; \\n\\\n \".replace(/methodName/g, methodName))(ensureMethod);\n};\n\nvar makeGetter = function (propertyName) {\n return new Function(\"obj\", \" \\n\\\n 'use strict'; \\n\\\n return obj.propertyName; \\n\\\n \".replace(\"propertyName\", propertyName));\n};\n\nvar getCompiled = function(name, compiler, cache) {\n var ret = cache[name];\n if (typeof ret !== \"function\") {\n if (!isIdentifier(name)) {\n return null;\n }\n ret = compiler(name);\n cache[name] = ret;\n cache[\" size\"]++;\n if (cache[\" size\"] > 512) {\n var keys = Object.keys(cache);\n for (var i = 0; i < 256; ++i) delete cache[keys[i]];\n cache[\" size\"] = keys.length - 256;\n }\n }\n return ret;\n};\n\ngetMethodCaller = function(name) {\n return getCompiled(name, makeMethodCaller, callerCache);\n};\n\ngetGetter = function(name) {\n return getCompiled(name, makeGetter, getterCache);\n};\n}\n\nfunction ensureMethod(obj, methodName) {\n var fn;\n if (obj != null) fn = obj[methodName];\n if (typeof fn !== \"function\") {\n var message = \"Object \" + util.classString(obj) + \" has no method '\" +\n util.toString(methodName) + \"'\";\n throw new Promise.TypeError(message);\n }\n return fn;\n}\n\nfunction caller(obj) {\n var methodName = this.pop();\n var fn = ensureMethod(obj, methodName);\n return fn.apply(obj, this);\n}\nPromise.prototype.call = function (methodName) {\n var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};\n if (!false) {\n if (canEvaluate) {\n var maybeCaller = getMethodCaller(methodName);\n if (maybeCaller !== null) {\n return this._then(\n maybeCaller, undefined, undefined, args, undefined);\n }\n }\n }\n args.push(methodName);\n return this._then(caller, undefined, undefined, args, undefined);\n};\n\nfunction namedGetter(obj) {\n return obj[this];\n}\nfunction indexedGetter(obj) {\n var index = +this;\n if (index < 0) index = Math.max(0, index + obj.length);\n return obj[index];\n}\nPromise.prototype.get = function (propertyName) {\n var isIndex = (typeof propertyName === \"number\");\n var getter;\n if (!isIndex) {\n if (canEvaluate) {\n var maybeGetter = getGetter(propertyName);\n getter = maybeGetter !== null ? maybeGetter : namedGetter;\n } else {\n getter = namedGetter;\n }\n } else {\n getter = indexedGetter;\n }\n return this._then(getter, undefined, undefined, propertyName, undefined);\n};\n};\n","\"use strict\";\nmodule.exports = function (Promise, apiRejection, tryConvertToPromise,\n createContext, INTERNAL, debug) {\n var util = require(\"./util\");\n var TypeError = require(\"./errors\").TypeError;\n var inherits = require(\"./util\").inherits;\n var errorObj = util.errorObj;\n var tryCatch = util.tryCatch;\n var NULL = {};\n\n function thrower(e) {\n setTimeout(function(){throw e;}, 0);\n }\n\n function castPreservingDisposable(thenable) {\n var maybePromise = tryConvertToPromise(thenable);\n if (maybePromise !== thenable &&\n typeof thenable._isDisposable === \"function\" &&\n typeof thenable._getDisposer === \"function\" &&\n thenable._isDisposable()) {\n maybePromise._setDisposable(thenable._getDisposer());\n }\n return maybePromise;\n }\n function dispose(resources, inspection) {\n var i = 0;\n var len = resources.length;\n var ret = new Promise(INTERNAL);\n function iterator() {\n if (i >= len) return ret._fulfill();\n var maybePromise = castPreservingDisposable(resources[i++]);\n if (maybePromise instanceof Promise &&\n maybePromise._isDisposable()) {\n try {\n maybePromise = tryConvertToPromise(\n maybePromise._getDisposer().tryDispose(inspection),\n resources.promise);\n } catch (e) {\n return thrower(e);\n }\n if (maybePromise instanceof Promise) {\n return maybePromise._then(iterator, thrower,\n null, null, null);\n }\n }\n iterator();\n }\n iterator();\n return ret;\n }\n\n function Disposer(data, promise, context) {\n this._data = data;\n this._promise = promise;\n this._context = context;\n }\n\n Disposer.prototype.data = function () {\n return this._data;\n };\n\n Disposer.prototype.promise = function () {\n return this._promise;\n };\n\n Disposer.prototype.resource = function () {\n if (this.promise().isFulfilled()) {\n return this.promise().value();\n }\n return NULL;\n };\n\n Disposer.prototype.tryDispose = function(inspection) {\n var resource = this.resource();\n var context = this._context;\n if (context !== undefined) context._pushContext();\n var ret = resource !== NULL\n ? this.doDispose(resource, inspection) : null;\n if (context !== undefined) context._popContext();\n this._promise._unsetDisposable();\n this._data = null;\n return ret;\n };\n\n Disposer.isDisposer = function (d) {\n return (d != null &&\n typeof d.resource === \"function\" &&\n typeof d.tryDispose === \"function\");\n };\n\n function FunctionDisposer(fn, promise, context) {\n this.constructor$(fn, promise, context);\n }\n inherits(FunctionDisposer, Disposer);\n\n FunctionDisposer.prototype.doDispose = function (resource, inspection) {\n var fn = this.data();\n return fn.call(resource, resource, inspection);\n };\n\n function maybeUnwrapDisposer(value) {\n if (Disposer.isDisposer(value)) {\n this.resources[this.index]._setDisposable(value);\n return value.promise();\n }\n return value;\n }\n\n function ResourceList(length) {\n this.length = length;\n this.promise = null;\n this[length-1] = null;\n }\n\n ResourceList.prototype._resultCancelled = function() {\n var len = this.length;\n for (var i = 0; i < len; ++i) {\n var item = this[i];\n if (item instanceof Promise) {\n item.cancel();\n }\n }\n };\n\n Promise.using = function () {\n var len = arguments.length;\n if (len < 2) return apiRejection(\n \"you must pass at least 2 arguments to Promise.using\");\n var fn = arguments[len - 1];\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var input;\n var spreadArgs = true;\n if (len === 2 && Array.isArray(arguments[0])) {\n input = arguments[0];\n len = input.length;\n spreadArgs = false;\n } else {\n input = arguments;\n len--;\n }\n var resources = new ResourceList(len);\n for (var i = 0; i < len; ++i) {\n var resource = input[i];\n if (Disposer.isDisposer(resource)) {\n var disposer = resource;\n resource = resource.promise();\n resource._setDisposable(disposer);\n } else {\n var maybePromise = tryConvertToPromise(resource);\n if (maybePromise instanceof Promise) {\n resource =\n maybePromise._then(maybeUnwrapDisposer, null, null, {\n resources: resources,\n index: i\n }, undefined);\n }\n }\n resources[i] = resource;\n }\n\n var reflectedResources = new Array(resources.length);\n for (var i = 0; i < reflectedResources.length; ++i) {\n reflectedResources[i] = Promise.resolve(resources[i]).reflect();\n }\n\n var resultPromise = Promise.all(reflectedResources)\n .then(function(inspections) {\n for (var i = 0; i < inspections.length; ++i) {\n var inspection = inspections[i];\n if (inspection.isRejected()) {\n errorObj.e = inspection.error();\n return errorObj;\n } else if (!inspection.isFulfilled()) {\n resultPromise.cancel();\n return;\n }\n inspections[i] = inspection.value();\n }\n promise._pushContext();\n\n fn = tryCatch(fn);\n var ret = spreadArgs\n ? fn.apply(undefined, inspections) : fn(inspections);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret, promiseCreated, \"Promise.using\", promise);\n return ret;\n });\n\n var promise = resultPromise.lastly(function() {\n var inspection = new Promise.PromiseInspection(resultPromise);\n return dispose(resources, inspection);\n });\n resources.promise = promise;\n promise._setOnCancel(resources);\n return promise;\n };\n\n Promise.prototype._setDisposable = function (disposer) {\n this._bitField = this._bitField | 131072;\n this._disposer = disposer;\n };\n\n Promise.prototype._isDisposable = function () {\n return (this._bitField & 131072) > 0;\n };\n\n Promise.prototype._getDisposer = function () {\n return this._disposer;\n };\n\n Promise.prototype._unsetDisposable = function () {\n this._bitField = this._bitField & (~131072);\n this._disposer = undefined;\n };\n\n Promise.prototype.disposer = function (fn) {\n if (typeof fn === \"function\") {\n return new FunctionDisposer(fn, this, createContext());\n }\n throw new TypeError();\n };\n\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, debug) {\nvar util = require(\"./util\");\nvar TimeoutError = Promise.TimeoutError;\n\nfunction HandleWrapper(handle) {\n this.handle = handle;\n}\n\nHandleWrapper.prototype._resultCancelled = function() {\n clearTimeout(this.handle);\n};\n\nvar afterValue = function(value) { return delay(+this).thenReturn(value); };\nvar delay = Promise.delay = function (ms, value) {\n var ret;\n var handle;\n if (value !== undefined) {\n ret = Promise.resolve(value)\n ._then(afterValue, null, null, ms, undefined);\n if (debug.cancellation() && value instanceof Promise) {\n ret._setOnCancel(value);\n }\n } else {\n ret = new Promise(INTERNAL);\n handle = setTimeout(function() { ret._fulfill(); }, +ms);\n if (debug.cancellation()) {\n ret._setOnCancel(new HandleWrapper(handle));\n }\n ret._captureStackTrace();\n }\n ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.prototype.delay = function (ms) {\n return delay(ms, this);\n};\n\nvar afterTimeout = function (promise, message, parent) {\n var err;\n if (typeof message !== \"string\") {\n if (message instanceof Error) {\n err = message;\n } else {\n err = new TimeoutError(\"operation timed out\");\n }\n } else {\n err = new TimeoutError(message);\n }\n util.markAsOriginatingFromRejection(err);\n promise._attachExtraTrace(err);\n promise._reject(err);\n\n if (parent != null) {\n parent.cancel();\n }\n};\n\nfunction successClear(value) {\n clearTimeout(this.handle);\n return value;\n}\n\nfunction failureClear(reason) {\n clearTimeout(this.handle);\n throw reason;\n}\n\nPromise.prototype.timeout = function (ms, message) {\n ms = +ms;\n var ret, parent;\n\n var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {\n if (ret.isPending()) {\n afterTimeout(ret, message, parent);\n }\n }, ms));\n\n if (debug.cancellation()) {\n parent = this.then();\n ret = parent._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n ret._setOnCancel(handleWrapper);\n } else {\n ret = this._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n }\n\n return ret;\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n apiRejection,\n INTERNAL,\n tryConvertToPromise,\n Proxyable,\n debug) {\nvar errors = require(\"./errors\");\nvar TypeError = errors.TypeError;\nvar util = require(\"./util\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nvar yieldHandlers = [];\n\nfunction promiseFromYieldHandler(value, yieldHandlers, traceParent) {\n for (var i = 0; i < yieldHandlers.length; ++i) {\n traceParent._pushContext();\n var result = tryCatch(yieldHandlers[i])(value);\n traceParent._popContext();\n if (result === errorObj) {\n traceParent._pushContext();\n var ret = Promise.reject(errorObj.e);\n traceParent._popContext();\n return ret;\n }\n var maybePromise = tryConvertToPromise(result, traceParent);\n if (maybePromise instanceof Promise) return maybePromise;\n }\n return null;\n}\n\nfunction PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {\n if (debug.cancellation()) {\n var internal = new Promise(INTERNAL);\n var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);\n this._promise = internal.lastly(function() {\n return _finallyPromise;\n });\n internal._captureStackTrace();\n internal._setOnCancel(this);\n } else {\n var promise = this._promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n }\n this._stack = stack;\n this._generatorFunction = generatorFunction;\n this._receiver = receiver;\n this._generator = undefined;\n this._yieldHandlers = typeof yieldHandler === \"function\"\n ? [yieldHandler].concat(yieldHandlers)\n : yieldHandlers;\n this._yieldedPromise = null;\n this._cancellationPhase = false;\n}\nutil.inherits(PromiseSpawn, Proxyable);\n\nPromiseSpawn.prototype._isResolved = function() {\n return this._promise === null;\n};\n\nPromiseSpawn.prototype._cleanup = function() {\n this._promise = this._generator = null;\n if (debug.cancellation() && this._finallyPromise !== null) {\n this._finallyPromise._fulfill();\n this._finallyPromise = null;\n }\n};\n\nPromiseSpawn.prototype._promiseCancelled = function() {\n if (this._isResolved()) return;\n var implementsReturn = typeof this._generator[\"return\"] !== \"undefined\";\n\n var result;\n if (!implementsReturn) {\n var reason = new Promise.CancellationError(\n \"generator .return() sentinel\");\n Promise.coroutine.returnSentinel = reason;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n result = tryCatch(this._generator[\"throw\"]).call(this._generator,\n reason);\n this._promise._popContext();\n } else {\n this._promise._pushContext();\n result = tryCatch(this._generator[\"return\"]).call(this._generator,\n undefined);\n this._promise._popContext();\n }\n this._cancellationPhase = true;\n this._yieldedPromise = null;\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseFulfilled = function(value) {\n this._yieldedPromise = null;\n this._promise._pushContext();\n var result = tryCatch(this._generator.next).call(this._generator, value);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseRejected = function(reason) {\n this._yieldedPromise = null;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n var result = tryCatch(this._generator[\"throw\"])\n .call(this._generator, reason);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._resultCancelled = function() {\n if (this._yieldedPromise instanceof Promise) {\n var promise = this._yieldedPromise;\n this._yieldedPromise = null;\n promise.cancel();\n }\n};\n\nPromiseSpawn.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseSpawn.prototype._run = function () {\n this._generator = this._generatorFunction.call(this._receiver);\n this._receiver =\n this._generatorFunction = undefined;\n this._promiseFulfilled(undefined);\n};\n\nPromiseSpawn.prototype._continue = function (result) {\n var promise = this._promise;\n if (result === errorObj) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._rejectCallback(result.e, false);\n }\n }\n\n var value = result.value;\n if (result.done === true) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._resolveCallback(value);\n }\n } else {\n var maybePromise = tryConvertToPromise(value, this._promise);\n if (!(maybePromise instanceof Promise)) {\n maybePromise =\n promiseFromYieldHandler(maybePromise,\n this._yieldHandlers,\n this._promise);\n if (maybePromise === null) {\n this._promiseRejected(\n new TypeError(\n \"A value %s was yielded that could not be treated as a promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\\u000a\".replace(\"%s\", value) +\n \"From coroutine:\\u000a\" +\n this._stack.split(\"\\n\").slice(1, -7).join(\"\\n\")\n )\n );\n return;\n }\n }\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n this._yieldedPromise = maybePromise;\n maybePromise._proxy(this, null);\n } else if (((bitField & 33554432) !== 0)) {\n Promise._async.invoke(\n this._promiseFulfilled, this, maybePromise._value()\n );\n } else if (((bitField & 16777216) !== 0)) {\n Promise._async.invoke(\n this._promiseRejected, this, maybePromise._reason()\n );\n } else {\n this._promiseCancelled();\n }\n }\n};\n\nPromise.coroutine = function (generatorFunction, options) {\n if (typeof generatorFunction !== \"function\") {\n throw new TypeError(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var yieldHandler = Object(options).yieldHandler;\n var PromiseSpawn$ = PromiseSpawn;\n var stack = new Error().stack;\n return function () {\n var generator = generatorFunction.apply(this, arguments);\n var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,\n stack);\n var ret = spawn.promise();\n spawn._generator = generator;\n spawn._promiseFulfilled(undefined);\n return ret;\n };\n};\n\nPromise.coroutine.addYieldHandler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n yieldHandlers.push(fn);\n};\n\nPromise.spawn = function (generatorFunction) {\n debug.deprecated(\"Promise.spawn()\", \"Promise.coroutine()\");\n if (typeof generatorFunction !== \"function\") {\n return apiRejection(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var spawn = new PromiseSpawn(generatorFunction, this);\n var ret = spawn.promise();\n spawn._run(Promise.spawn);\n return ret;\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar util = require(\"./util\");\nvar async = Promise._async;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction spreadAdapter(val, nodeback) {\n var promise = this;\n if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);\n var ret =\n tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nfunction successAdapter(val, nodeback) {\n var promise = this;\n var receiver = promise._boundValue();\n var ret = val === undefined\n ? tryCatch(nodeback).call(receiver, null)\n : tryCatch(nodeback).call(receiver, null, val);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\nfunction errorAdapter(reason, nodeback) {\n var promise = this;\n if (!reason) {\n var newReason = new Error(reason + \"\");\n newReason.cause = reason;\n reason = newReason;\n }\n var ret = tryCatch(nodeback).call(promise._boundValue(), reason);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nPromise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,\n options) {\n if (typeof nodeback == \"function\") {\n var adapter = successAdapter;\n if (options !== undefined && Object(options).spread) {\n adapter = spreadAdapter;\n }\n this._then(\n adapter,\n errorAdapter,\n undefined,\n this,\n nodeback\n );\n }\n return this;\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar THIS = {};\nvar util = require(\"./util\");\nvar nodebackForPromise = require(\"./nodeback\");\nvar withAppended = util.withAppended;\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar canEvaluate = util.canEvaluate;\nvar TypeError = require(\"./errors\").TypeError;\nvar defaultSuffix = \"Async\";\nvar defaultPromisified = {__isPromisified__: true};\nvar noCopyProps = [\n \"arity\", \"length\",\n \"name\",\n \"arguments\",\n \"caller\",\n \"callee\",\n \"prototype\",\n \"__isPromisified__\"\n];\nvar noCopyPropsPattern = new RegExp(\"^(?:\" + noCopyProps.join(\"|\") + \")$\");\n\nvar defaultFilter = function(name) {\n return util.isIdentifier(name) &&\n name.charAt(0) !== \"_\" &&\n name !== \"constructor\";\n};\n\nfunction propsFilter(key) {\n return !noCopyPropsPattern.test(key);\n}\n\nfunction isPromisified(fn) {\n try {\n return fn.__isPromisified__ === true;\n }\n catch (e) {\n return false;\n }\n}\n\nfunction hasPromisified(obj, key, suffix) {\n var val = util.getDataPropertyOrDefault(obj, key + suffix,\n defaultPromisified);\n return val ? isPromisified(val) : false;\n}\nfunction checkValid(ret, suffix, suffixRegexp) {\n for (var i = 0; i < ret.length; i += 2) {\n var key = ret[i];\n if (suffixRegexp.test(key)) {\n var keyWithoutAsyncSuffix = key.replace(suffixRegexp, \"\");\n for (var j = 0; j < ret.length; j += 2) {\n if (ret[j] === keyWithoutAsyncSuffix) {\n throw new TypeError(\"Cannot promisify an API that has normal methods with '%s'-suffix\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\"\n .replace(\"%s\", suffix));\n }\n }\n }\n }\n}\n\nfunction promisifiableMethods(obj, suffix, suffixRegexp, filter) {\n var keys = util.inheritedDataKeys(obj);\n var ret = [];\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = obj[key];\n var passesDefaultFilter = filter === defaultFilter\n ? true : defaultFilter(key, value, obj);\n if (typeof value === \"function\" &&\n !isPromisified(value) &&\n !hasPromisified(obj, key, suffix) &&\n filter(key, value, obj, passesDefaultFilter)) {\n ret.push(key, value);\n }\n }\n checkValid(ret, suffix, suffixRegexp);\n return ret;\n}\n\nvar escapeIdentRegex = function(str) {\n return str.replace(/([$])/, \"\\\\$\");\n};\n\nvar makeNodePromisifiedEval;\nif (!false) {\nvar switchCaseArgumentOrder = function(likelyArgumentCount) {\n var ret = [likelyArgumentCount];\n var min = Math.max(0, likelyArgumentCount - 1 - 3);\n for(var i = likelyArgumentCount - 1; i >= min; --i) {\n ret.push(i);\n }\n for(var i = likelyArgumentCount + 1; i <= 3; ++i) {\n ret.push(i);\n }\n return ret;\n};\n\nvar argumentSequence = function(argumentCount) {\n return util.filledRange(argumentCount, \"_arg\", \"\");\n};\n\nvar parameterDeclaration = function(parameterCount) {\n return util.filledRange(\n Math.max(parameterCount, 3), \"_arg\", \"\");\n};\n\nvar parameterCount = function(fn) {\n if (typeof fn.length === \"number\") {\n return Math.max(Math.min(fn.length, 1023 + 1), 0);\n }\n return 0;\n};\n\nmakeNodePromisifiedEval =\nfunction(callback, receiver, originalName, fn, _, multiArgs) {\n var newParameterCount = Math.max(0, parameterCount(fn) - 1);\n var argumentOrder = switchCaseArgumentOrder(newParameterCount);\n var shouldProxyThis = typeof callback === \"string\" || receiver === THIS;\n\n function generateCallForArgumentCount(count) {\n var args = argumentSequence(count).join(\", \");\n var comma = count > 0 ? \", \" : \"\";\n var ret;\n if (shouldProxyThis) {\n ret = \"ret = callback.call(this, {{args}}, nodeback); break;\\n\";\n } else {\n ret = receiver === undefined\n ? \"ret = callback({{args}}, nodeback); break;\\n\"\n : \"ret = callback.call(receiver, {{args}}, nodeback); break;\\n\";\n }\n return ret.replace(\"{{args}}\", args).replace(\", \", comma);\n }\n\n function generateArgumentSwitchCase() {\n var ret = \"\";\n for (var i = 0; i < argumentOrder.length; ++i) {\n ret += \"case \" + argumentOrder[i] +\":\" +\n generateCallForArgumentCount(argumentOrder[i]);\n }\n\n ret += \" \\n\\\n default: \\n\\\n var args = new Array(len + 1); \\n\\\n var i = 0; \\n\\\n for (var i = 0; i < len; ++i) { \\n\\\n args[i] = arguments[i]; \\n\\\n } \\n\\\n args[i] = nodeback; \\n\\\n [CodeForCall] \\n\\\n break; \\n\\\n \".replace(\"[CodeForCall]\", (shouldProxyThis\n ? \"ret = callback.apply(this, args);\\n\"\n : \"ret = callback.apply(receiver, args);\\n\"));\n return ret;\n }\n\n var getFunctionCode = typeof callback === \"string\"\n ? (\"this != null ? this['\"+callback+\"'] : fn\")\n : \"fn\";\n var body = \"'use strict'; \\n\\\n var ret = function (Parameters) { \\n\\\n 'use strict'; \\n\\\n var len = arguments.length; \\n\\\n var promise = new Promise(INTERNAL); \\n\\\n promise._captureStackTrace(); \\n\\\n var nodeback = nodebackForPromise(promise, \" + multiArgs + \"); \\n\\\n var ret; \\n\\\n var callback = tryCatch([GetFunctionCode]); \\n\\\n switch(len) { \\n\\\n [CodeForSwitchCase] \\n\\\n } \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\\n\\\n } \\n\\\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \\n\\\n return promise; \\n\\\n }; \\n\\\n notEnumerableProp(ret, '__isPromisified__', true); \\n\\\n return ret; \\n\\\n \".replace(\"[CodeForSwitchCase]\", generateArgumentSwitchCase())\n .replace(\"[GetFunctionCode]\", getFunctionCode);\n body = body.replace(\"Parameters\", parameterDeclaration(newParameterCount));\n return new Function(\"Promise\",\n \"fn\",\n \"receiver\",\n \"withAppended\",\n \"maybeWrapAsError\",\n \"nodebackForPromise\",\n \"tryCatch\",\n \"errorObj\",\n \"notEnumerableProp\",\n \"INTERNAL\",\n body)(\n Promise,\n fn,\n receiver,\n withAppended,\n maybeWrapAsError,\n nodebackForPromise,\n util.tryCatch,\n util.errorObj,\n util.notEnumerableProp,\n INTERNAL);\n};\n}\n\nfunction makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {\n var defaultThis = (function() {return this;})();\n var method = callback;\n if (typeof method === \"string\") {\n callback = fn;\n }\n function promisified() {\n var _receiver = receiver;\n if (receiver === THIS) _receiver = this;\n var promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n var cb = typeof method === \"string\" && this !== defaultThis\n ? this[method] : callback;\n var fn = nodebackForPromise(promise, multiArgs);\n try {\n cb.apply(_receiver, withAppended(arguments, fn));\n } catch(e) {\n promise._rejectCallback(maybeWrapAsError(e), true, true);\n }\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed();\n return promise;\n }\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n return promisified;\n}\n\nvar makeNodePromisified = canEvaluate\n ? makeNodePromisifiedEval\n : makeNodePromisifiedClosure;\n\nfunction promisifyAll(obj, suffix, filter, promisifier, multiArgs) {\n var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + \"$\");\n var methods =\n promisifiableMethods(obj, suffix, suffixRegexp, filter);\n\n for (var i = 0, len = methods.length; i < len; i+= 2) {\n var key = methods[i];\n var fn = methods[i+1];\n var promisifiedKey = key + suffix;\n if (promisifier === makeNodePromisified) {\n obj[promisifiedKey] =\n makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);\n } else {\n var promisified = promisifier(fn, function() {\n return makeNodePromisified(key, THIS, key,\n fn, suffix, multiArgs);\n });\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n obj[promisifiedKey] = promisified;\n }\n }\n util.toFastProperties(obj);\n return obj;\n}\n\nfunction promisify(callback, receiver, multiArgs) {\n return makeNodePromisified(callback, receiver, undefined,\n callback, null, multiArgs);\n}\n\nPromise.promisify = function (fn, options) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n if (isPromisified(fn)) {\n return fn;\n }\n options = Object(options);\n var receiver = options.context === undefined ? THIS : options.context;\n var multiArgs = !!options.multiArgs;\n var ret = promisify(fn, receiver, multiArgs);\n util.copyDescriptors(fn, ret, propsFilter);\n return ret;\n};\n\nPromise.promisifyAll = function (target, options) {\n if (typeof target !== \"function\" && typeof target !== \"object\") {\n throw new TypeError(\"the target of promisifyAll must be an object or a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n options = Object(options);\n var multiArgs = !!options.multiArgs;\n var suffix = options.suffix;\n if (typeof suffix !== \"string\") suffix = defaultSuffix;\n var filter = options.filter;\n if (typeof filter !== \"function\") filter = defaultFilter;\n var promisifier = options.promisifier;\n if (typeof promisifier !== \"function\") promisifier = makeNodePromisified;\n\n if (!util.isIdentifier(suffix)) {\n throw new RangeError(\"suffix must be a valid identifier\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n\n var keys = util.inheritedDataKeys(target);\n for (var i = 0; i < keys.length; ++i) {\n var value = target[keys[i]];\n if (keys[i] !== \"constructor\" &&\n util.isClass(value)) {\n promisifyAll(value.prototype, suffix, filter, promisifier,\n multiArgs);\n promisifyAll(value, suffix, filter, promisifier, multiArgs);\n }\n }\n\n return promisifyAll(target, suffix, filter, promisifier, multiArgs);\n};\n};\n\n","\"use strict\";\nmodule.exports = function(\n Promise, PromiseArray, tryConvertToPromise, apiRejection) {\nvar util = require(\"./util\");\nvar isObject = util.isObject;\nvar es5 = require(\"./es5\");\nvar Es6Map;\nif (typeof Map === \"function\") Es6Map = Map;\n\nvar mapToEntries = (function() {\n var index = 0;\n var size = 0;\n\n function extractEntry(value, key) {\n this[index] = value;\n this[index + size] = key;\n index++;\n }\n\n return function mapToEntries(map) {\n size = map.size;\n index = 0;\n var ret = new Array(map.size * 2);\n map.forEach(extractEntry, ret);\n return ret;\n };\n})();\n\nvar entriesToMap = function(entries) {\n var ret = new Es6Map();\n var length = entries.length / 2 | 0;\n for (var i = 0; i < length; ++i) {\n var key = entries[length + i];\n var value = entries[i];\n ret.set(key, value);\n }\n return ret;\n};\n\nfunction PropertiesPromiseArray(obj) {\n var isMap = false;\n var entries;\n if (Es6Map !== undefined && obj instanceof Es6Map) {\n entries = mapToEntries(obj);\n isMap = true;\n } else {\n var keys = es5.keys(obj);\n var len = keys.length;\n entries = new Array(len * 2);\n for (var i = 0; i < len; ++i) {\n var key = keys[i];\n entries[i] = obj[key];\n entries[i + len] = key;\n }\n }\n this.constructor$(entries);\n this._isMap = isMap;\n this._init$(undefined, -3);\n}\nutil.inherits(PropertiesPromiseArray, PromiseArray);\n\nPropertiesPromiseArray.prototype._init = function () {};\n\nPropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n var val;\n if (this._isMap) {\n val = entriesToMap(this._values);\n } else {\n val = {};\n var keyOffset = this.length();\n for (var i = 0, len = this.length(); i < len; ++i) {\n val[this._values[i + keyOffset]] = this._values[i];\n }\n }\n this._resolve(val);\n return true;\n }\n return false;\n};\n\nPropertiesPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nPropertiesPromiseArray.prototype.getActualLength = function (len) {\n return len >> 1;\n};\n\nfunction props(promises) {\n var ret;\n var castValue = tryConvertToPromise(promises);\n\n if (!isObject(castValue)) {\n return apiRejection(\"cannot await properties of a non-object\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n } else if (castValue instanceof Promise) {\n ret = castValue._then(\n Promise.props, undefined, undefined, undefined, undefined);\n } else {\n ret = new PropertiesPromiseArray(castValue).promise();\n }\n\n if (castValue instanceof Promise) {\n ret._propagateFrom(castValue, 2);\n }\n return ret;\n}\n\nPromise.prototype.props = function () {\n return props(this);\n};\n\nPromise.props = function (promises) {\n return props(promises);\n};\n};\n","\"use strict\";\nmodule.exports = function(\n Promise, INTERNAL, tryConvertToPromise, apiRejection) {\nvar util = require(\"./util\");\n\nvar raceLater = function (promise) {\n return promise.then(function(array) {\n return race(array, promise);\n });\n};\n\nfunction race(promises, parent) {\n var maybePromise = tryConvertToPromise(promises);\n\n if (maybePromise instanceof Promise) {\n return raceLater(maybePromise);\n } else {\n promises = util.asArray(promises);\n if (promises === null)\n return apiRejection(\"expecting an array or an iterable object but got \" + util.classString(promises));\n }\n\n var ret = new Promise(INTERNAL);\n if (parent !== undefined) {\n ret._propagateFrom(parent, 3);\n }\n var fulfill = ret._fulfill;\n var reject = ret._reject;\n for (var i = 0, len = promises.length; i < len; ++i) {\n var val = promises[i];\n\n if (val === undefined && !(i in promises)) {\n continue;\n }\n\n Promise.cast(val)._then(fulfill, reject, undefined, ret, null);\n }\n return ret;\n}\n\nPromise.race = function (promises) {\n return race(promises, undefined);\n};\n\nPromise.prototype.race = function () {\n return race(this, undefined);\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar getDomain = Promise._getDomain;\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\n\nfunction ReductionPromiseArray(promises, fn, initialValue, _each) {\n this.constructor$(promises);\n var domain = getDomain();\n this._fn = domain === null ? fn : util.domainBind(domain, fn);\n if (initialValue !== undefined) {\n initialValue = Promise.resolve(initialValue);\n initialValue._attachCancellationCallback(this);\n }\n this._initialValue = initialValue;\n this._currentCancellable = null;\n if(_each === INTERNAL) {\n this._eachValues = Array(this._length);\n } else if (_each === 0) {\n this._eachValues = null;\n } else {\n this._eachValues = undefined;\n }\n this._promise._captureStackTrace();\n this._init$(undefined, -5);\n}\nutil.inherits(ReductionPromiseArray, PromiseArray);\n\nReductionPromiseArray.prototype._gotAccum = function(accum) {\n if (this._eachValues !== undefined && \n this._eachValues !== null && \n accum !== INTERNAL) {\n this._eachValues.push(accum);\n }\n};\n\nReductionPromiseArray.prototype._eachComplete = function(value) {\n if (this._eachValues !== null) {\n this._eachValues.push(value);\n }\n return this._eachValues;\n};\n\nReductionPromiseArray.prototype._init = function() {};\n\nReductionPromiseArray.prototype._resolveEmptyArray = function() {\n this._resolve(this._eachValues !== undefined ? this._eachValues\n : this._initialValue);\n};\n\nReductionPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nReductionPromiseArray.prototype._resolve = function(value) {\n this._promise._resolveCallback(value);\n this._values = null;\n};\n\nReductionPromiseArray.prototype._resultCancelled = function(sender) {\n if (sender === this._initialValue) return this._cancel();\n if (this._isResolved()) return;\n this._resultCancelled$();\n if (this._currentCancellable instanceof Promise) {\n this._currentCancellable.cancel();\n }\n if (this._initialValue instanceof Promise) {\n this._initialValue.cancel();\n }\n};\n\nReductionPromiseArray.prototype._iterate = function (values) {\n this._values = values;\n var value;\n var i;\n var length = values.length;\n if (this._initialValue !== undefined) {\n value = this._initialValue;\n i = 0;\n } else {\n value = Promise.resolve(values[0]);\n i = 1;\n }\n\n this._currentCancellable = value;\n\n if (!value.isRejected()) {\n for (; i < length; ++i) {\n var ctx = {\n accum: null,\n value: values[i],\n index: i,\n length: length,\n array: this\n };\n value = value._then(gotAccum, undefined, undefined, ctx, undefined);\n }\n }\n\n if (this._eachValues !== undefined) {\n value = value\n ._then(this._eachComplete, undefined, undefined, this, undefined);\n }\n value._then(completed, completed, undefined, value, this);\n};\n\nPromise.prototype.reduce = function (fn, initialValue) {\n return reduce(this, fn, initialValue, null);\n};\n\nPromise.reduce = function (promises, fn, initialValue, _each) {\n return reduce(promises, fn, initialValue, _each);\n};\n\nfunction completed(valueOrReason, array) {\n if (this.isFulfilled()) {\n array._resolve(valueOrReason);\n } else {\n array._reject(valueOrReason);\n }\n}\n\nfunction reduce(promises, fn, initialValue, _each) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var array = new ReductionPromiseArray(promises, fn, initialValue, _each);\n return array.promise();\n}\n\nfunction gotAccum(accum) {\n this.accum = accum;\n this.array._gotAccum(accum);\n var value = tryConvertToPromise(this.value, this.array._promise);\n if (value instanceof Promise) {\n this.array._currentCancellable = value;\n return value._then(gotValue, undefined, undefined, this, undefined);\n } else {\n return gotValue.call(this, value);\n }\n}\n\nfunction gotValue(value) {\n var array = this.array;\n var promise = array._promise;\n var fn = tryCatch(array._fn);\n promise._pushContext();\n var ret;\n if (array._eachValues !== undefined) {\n ret = fn.call(promise._boundValue(), value, this.index, this.length);\n } else {\n ret = fn.call(promise._boundValue(),\n this.accum, value, this.index, this.length);\n }\n if (ret instanceof Promise) {\n array._currentCancellable = ret;\n }\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n array._eachValues !== undefined ? \"Promise.each\" : \"Promise.reduce\",\n promise\n );\n return ret;\n}\n};\n","\"use strict\";\nmodule.exports =\n function(Promise, PromiseArray, debug) {\nvar PromiseInspection = Promise.PromiseInspection;\nvar util = require(\"./util\");\n\nfunction SettledPromiseArray(values) {\n this.constructor$(values);\n}\nutil.inherits(SettledPromiseArray, PromiseArray);\n\nSettledPromiseArray.prototype._promiseResolved = function (index, inspection) {\n this._values[index] = inspection;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nSettledPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var ret = new PromiseInspection();\n ret._bitField = 33554432;\n ret._settledValueField = value;\n return this._promiseResolved(index, ret);\n};\nSettledPromiseArray.prototype._promiseRejected = function (reason, index) {\n var ret = new PromiseInspection();\n ret._bitField = 16777216;\n ret._settledValueField = reason;\n return this._promiseResolved(index, ret);\n};\n\nPromise.settle = function (promises) {\n debug.deprecated(\".settle()\", \".reflect()\");\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.prototype.settle = function () {\n return Promise.settle(this);\n};\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, apiRejection) {\nvar util = require(\"./util\");\nvar RangeError = require(\"./errors\").RangeError;\nvar AggregateError = require(\"./errors\").AggregateError;\nvar isArray = util.isArray;\nvar CANCELLATION = {};\n\n\nfunction SomePromiseArray(values) {\n this.constructor$(values);\n this._howMany = 0;\n this._unwrap = false;\n this._initialized = false;\n}\nutil.inherits(SomePromiseArray, PromiseArray);\n\nSomePromiseArray.prototype._init = function () {\n if (!this._initialized) {\n return;\n }\n if (this._howMany === 0) {\n this._resolve([]);\n return;\n }\n this._init$(undefined, -5);\n var isArrayResolved = isArray(this._values);\n if (!this._isResolved() &&\n isArrayResolved &&\n this._howMany > this._canPossiblyFulfill()) {\n this._reject(this._getRangeError(this.length()));\n }\n};\n\nSomePromiseArray.prototype.init = function () {\n this._initialized = true;\n this._init();\n};\n\nSomePromiseArray.prototype.setUnwrap = function () {\n this._unwrap = true;\n};\n\nSomePromiseArray.prototype.howMany = function () {\n return this._howMany;\n};\n\nSomePromiseArray.prototype.setHowMany = function (count) {\n this._howMany = count;\n};\n\nSomePromiseArray.prototype._promiseFulfilled = function (value) {\n this._addFulfilled(value);\n if (this._fulfilled() === this.howMany()) {\n this._values.length = this.howMany();\n if (this.howMany() === 1 && this._unwrap) {\n this._resolve(this._values[0]);\n } else {\n this._resolve(this._values);\n }\n return true;\n }\n return false;\n\n};\nSomePromiseArray.prototype._promiseRejected = function (reason) {\n this._addRejected(reason);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._promiseCancelled = function () {\n if (this._values instanceof Promise || this._values == null) {\n return this._cancel();\n }\n this._addRejected(CANCELLATION);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._checkOutcome = function() {\n if (this.howMany() > this._canPossiblyFulfill()) {\n var e = new AggregateError();\n for (var i = this.length(); i < this._values.length; ++i) {\n if (this._values[i] !== CANCELLATION) {\n e.push(this._values[i]);\n }\n }\n if (e.length > 0) {\n this._reject(e);\n } else {\n this._cancel();\n }\n return true;\n }\n return false;\n};\n\nSomePromiseArray.prototype._fulfilled = function () {\n return this._totalResolved;\n};\n\nSomePromiseArray.prototype._rejected = function () {\n return this._values.length - this.length();\n};\n\nSomePromiseArray.prototype._addRejected = function (reason) {\n this._values.push(reason);\n};\n\nSomePromiseArray.prototype._addFulfilled = function (value) {\n this._values[this._totalResolved++] = value;\n};\n\nSomePromiseArray.prototype._canPossiblyFulfill = function () {\n return this.length() - this._rejected();\n};\n\nSomePromiseArray.prototype._getRangeError = function (count) {\n var message = \"Input array must contain at least \" +\n this._howMany + \" items but contains only \" + count + \" items\";\n return new RangeError(message);\n};\n\nSomePromiseArray.prototype._resolveEmptyArray = function () {\n this._reject(this._getRangeError(0));\n};\n\nfunction some(promises, howMany) {\n if ((howMany | 0) !== howMany || howMany < 0) {\n return apiRejection(\"expecting a positive integer\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(howMany);\n ret.init();\n return promise;\n}\n\nPromise.some = function (promises, howMany) {\n return some(promises, howMany);\n};\n\nPromise.prototype.some = function (howMany) {\n return some(this, howMany);\n};\n\nPromise._SomePromiseArray = SomePromiseArray;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseMap = Promise.map;\n\nPromise.prototype.filter = function (fn, options) {\n return PromiseMap(this, fn, options, INTERNAL);\n};\n\nPromise.filter = function (promises, fn, options) {\n return PromiseMap(promises, fn, options, INTERNAL);\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseReduce = Promise.reduce;\nvar PromiseAll = Promise.all;\n\nfunction promiseAllThis() {\n return PromiseAll(this);\n}\n\nfunction PromiseMapSeries(promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, INTERNAL);\n}\n\nPromise.prototype.each = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, this, undefined);\n};\n\nPromise.prototype.mapSeries = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, INTERNAL);\n};\n\nPromise.each = function (promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, promises, undefined);\n};\n\nPromise.mapSeries = PromiseMapSeries;\n};\n\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar SomePromiseArray = Promise._SomePromiseArray;\nfunction any(promises) {\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(1);\n ret.setUnwrap();\n ret.init();\n return promise;\n}\n\nPromise.any = function (promises) {\n return any(promises);\n};\n\nPromise.prototype.any = function () {\n return any(this);\n};\n\n};\n","\"use strict\";\nmodule.exports = function() {\nvar makeSelfResolutionError = function () {\n return new TypeError(\"circular promise resolution chain\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar reflectHandler = function() {\n return new Promise.PromiseInspection(this._target());\n};\nvar apiRejection = function(msg) {\n return Promise.reject(new TypeError(msg));\n};\nfunction Proxyable() {}\nvar UNDEFINED_BINDING = {};\nvar util = require(\"./util\");\n\nvar getDomain;\nif (util.isNode) {\n getDomain = function() {\n var ret = process.domain;\n if (ret === undefined) ret = null;\n return ret;\n };\n} else {\n getDomain = function() {\n return null;\n };\n}\nutil.notEnumerableProp(Promise, \"_getDomain\", getDomain);\n\nvar es5 = require(\"./es5\");\nvar Async = require(\"./async\");\nvar async = new Async();\nes5.defineProperty(Promise, \"_async\", {value: async});\nvar errors = require(\"./errors\");\nvar TypeError = Promise.TypeError = errors.TypeError;\nPromise.RangeError = errors.RangeError;\nvar CancellationError = Promise.CancellationError = errors.CancellationError;\nPromise.TimeoutError = errors.TimeoutError;\nPromise.OperationalError = errors.OperationalError;\nPromise.RejectionError = errors.OperationalError;\nPromise.AggregateError = errors.AggregateError;\nvar INTERNAL = function(){};\nvar APPLY = {};\nvar NEXT_FILTER = {};\nvar tryConvertToPromise = require(\"./thenables\")(Promise, INTERNAL);\nvar PromiseArray =\n require(\"./promise_array\")(Promise, INTERNAL,\n tryConvertToPromise, apiRejection, Proxyable);\nvar Context = require(\"./context\")(Promise);\n /*jshint unused:false*/\nvar createContext = Context.create;\nvar debug = require(\"./debuggability\")(Promise, Context);\nvar CapturedTrace = debug.CapturedTrace;\nvar PassThroughHandlerContext =\n require(\"./finally\")(Promise, tryConvertToPromise);\nvar catchFilter = require(\"./catch_filter\")(NEXT_FILTER);\nvar nodebackForPromise = require(\"./nodeback\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nfunction check(self, executor) {\n if (typeof executor !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n }\n if (self.constructor !== Promise) {\n throw new TypeError(\"the promise constructor cannot be invoked directly\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n}\n\nfunction Promise(executor) {\n this._bitField = 0;\n this._fulfillmentHandler0 = undefined;\n this._rejectionHandler0 = undefined;\n this._promise0 = undefined;\n this._receiver0 = undefined;\n if (executor !== INTERNAL) {\n check(this, executor);\n this._resolveFromExecutor(executor);\n }\n this._promiseCreated();\n this._fireEvent(\"promiseCreated\", this);\n}\n\nPromise.prototype.toString = function () {\n return \"[object Promise]\";\n};\n\nPromise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n var len = arguments.length;\n if (len > 1) {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return apiRejection(\"expecting an object but got \" +\n \"A catch statement predicate \" + util.classString(item));\n }\n }\n catchInstances.length = j;\n fn = arguments[i];\n return this.then(undefined, catchFilter(catchInstances, fn, this));\n }\n return this.then(undefined, fn);\n};\n\nPromise.prototype.reflect = function () {\n return this._then(reflectHandler,\n reflectHandler, undefined, this, undefined);\n};\n\nPromise.prototype.then = function (didFulfill, didReject) {\n if (debug.warnings() && arguments.length > 0 &&\n typeof didFulfill !== \"function\" &&\n typeof didReject !== \"function\") {\n var msg = \".then() only accepts functions but was passed: \" +\n util.classString(didFulfill);\n if (arguments.length > 1) {\n msg += \", \" + util.classString(didReject);\n }\n this._warn(msg);\n }\n return this._then(didFulfill, didReject, undefined, undefined, undefined);\n};\n\nPromise.prototype.done = function (didFulfill, didReject) {\n var promise =\n this._then(didFulfill, didReject, undefined, undefined, undefined);\n promise._setIsFinal();\n};\n\nPromise.prototype.spread = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n};\n\nPromise.prototype.toJSON = function () {\n var ret = {\n isFulfilled: false,\n isRejected: false,\n fulfillmentValue: undefined,\n rejectionReason: undefined\n };\n if (this.isFulfilled()) {\n ret.fulfillmentValue = this.value();\n ret.isFulfilled = true;\n } else if (this.isRejected()) {\n ret.rejectionReason = this.reason();\n ret.isRejected = true;\n }\n return ret;\n};\n\nPromise.prototype.all = function () {\n if (arguments.length > 0) {\n this._warn(\".all() was passed arguments but it does not take any\");\n }\n return new PromiseArray(this).promise();\n};\n\nPromise.prototype.error = function (fn) {\n return this.caught(util.originatesFromRejection, fn);\n};\n\nPromise.getNewLibraryCopy = module.exports;\n\nPromise.is = function (val) {\n return val instanceof Promise;\n};\n\nPromise.fromNode = Promise.fromCallback = function(fn) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs\n : false;\n var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n if (result === errorObj) {\n ret._rejectCallback(result.e, true);\n }\n if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.all = function (promises) {\n return new PromiseArray(promises).promise();\n};\n\nPromise.cast = function (obj) {\n var ret = tryConvertToPromise(obj);\n if (!(ret instanceof Promise)) {\n ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._setFulfilled();\n ret._rejectionHandler0 = obj;\n }\n return ret;\n};\n\nPromise.resolve = Promise.fulfilled = Promise.cast;\n\nPromise.reject = Promise.rejected = function (reason) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._rejectCallback(reason, true);\n return ret;\n};\n\nPromise.setScheduler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return async.setScheduler(fn);\n};\n\nPromise.prototype._then = function (\n didFulfill,\n didReject,\n _, receiver,\n internalData\n) {\n var haveInternalData = internalData !== undefined;\n var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n var target = this._target();\n var bitField = target._bitField;\n\n if (!haveInternalData) {\n promise._propagateFrom(this, 3);\n promise._captureStackTrace();\n if (receiver === undefined &&\n ((this._bitField & 2097152) !== 0)) {\n if (!((bitField & 50397184) === 0)) {\n receiver = this._boundValue();\n } else {\n receiver = target === this ? undefined : this._boundTo;\n }\n }\n this._fireEvent(\"promiseChained\", this, promise);\n }\n\n var domain = getDomain();\n if (!((bitField & 50397184) === 0)) {\n var handler, value, settler = target._settlePromiseCtx;\n if (((bitField & 33554432) !== 0)) {\n value = target._rejectionHandler0;\n handler = didFulfill;\n } else if (((bitField & 16777216) !== 0)) {\n value = target._fulfillmentHandler0;\n handler = didReject;\n target._unsetRejectionIsUnhandled();\n } else {\n settler = target._settlePromiseLateCancellationObserver;\n value = new CancellationError(\"late cancellation observer\");\n target._attachExtraTrace(value);\n handler = didReject;\n }\n\n async.invoke(settler, target, {\n handler: domain === null ? handler\n : (typeof handler === \"function\" &&\n util.domainBind(domain, handler)),\n promise: promise,\n receiver: receiver,\n value: value\n });\n } else {\n target._addCallbacks(didFulfill, didReject, promise, receiver, domain);\n }\n\n return promise;\n};\n\nPromise.prototype._length = function () {\n return this._bitField & 65535;\n};\n\nPromise.prototype._isFateSealed = function () {\n return (this._bitField & 117506048) !== 0;\n};\n\nPromise.prototype._isFollowing = function () {\n return (this._bitField & 67108864) === 67108864;\n};\n\nPromise.prototype._setLength = function (len) {\n this._bitField = (this._bitField & -65536) |\n (len & 65535);\n};\n\nPromise.prototype._setFulfilled = function () {\n this._bitField = this._bitField | 33554432;\n this._fireEvent(\"promiseFulfilled\", this);\n};\n\nPromise.prototype._setRejected = function () {\n this._bitField = this._bitField | 16777216;\n this._fireEvent(\"promiseRejected\", this);\n};\n\nPromise.prototype._setFollowing = function () {\n this._bitField = this._bitField | 67108864;\n this._fireEvent(\"promiseResolved\", this);\n};\n\nPromise.prototype._setIsFinal = function () {\n this._bitField = this._bitField | 4194304;\n};\n\nPromise.prototype._isFinal = function () {\n return (this._bitField & 4194304) > 0;\n};\n\nPromise.prototype._unsetCancelled = function() {\n this._bitField = this._bitField & (~65536);\n};\n\nPromise.prototype._setCancelled = function() {\n this._bitField = this._bitField | 65536;\n this._fireEvent(\"promiseCancelled\", this);\n};\n\nPromise.prototype._setWillBeCancelled = function() {\n this._bitField = this._bitField | 8388608;\n};\n\nPromise.prototype._setAsyncGuaranteed = function() {\n if (async.hasCustomScheduler()) return;\n this._bitField = this._bitField | 134217728;\n};\n\nPromise.prototype._receiverAt = function (index) {\n var ret = index === 0 ? this._receiver0 : this[\n index * 4 - 4 + 3];\n if (ret === UNDEFINED_BINDING) {\n return undefined;\n } else if (ret === undefined && this._isBound()) {\n return this._boundValue();\n }\n return ret;\n};\n\nPromise.prototype._promiseAt = function (index) {\n return this[\n index * 4 - 4 + 2];\n};\n\nPromise.prototype._fulfillmentHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 0];\n};\n\nPromise.prototype._rejectionHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 1];\n};\n\nPromise.prototype._boundValue = function() {};\n\nPromise.prototype._migrateCallback0 = function (follower) {\n var bitField = follower._bitField;\n var fulfill = follower._fulfillmentHandler0;\n var reject = follower._rejectionHandler0;\n var promise = follower._promise0;\n var receiver = follower._receiverAt(0);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._migrateCallbackAt = function (follower, index) {\n var fulfill = follower._fulfillmentHandlerAt(index);\n var reject = follower._rejectionHandlerAt(index);\n var promise = follower._promiseAt(index);\n var receiver = follower._receiverAt(index);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._addCallbacks = function (\n fulfill,\n reject,\n promise,\n receiver,\n domain\n) {\n var index = this._length();\n\n if (index >= 65535 - 4) {\n index = 0;\n this._setLength(0);\n }\n\n if (index === 0) {\n this._promise0 = promise;\n this._receiver0 = receiver;\n if (typeof fulfill === \"function\") {\n this._fulfillmentHandler0 =\n domain === null ? fulfill : util.domainBind(domain, fulfill);\n }\n if (typeof reject === \"function\") {\n this._rejectionHandler0 =\n domain === null ? reject : util.domainBind(domain, reject);\n }\n } else {\n var base = index * 4 - 4;\n this[base + 2] = promise;\n this[base + 3] = receiver;\n if (typeof fulfill === \"function\") {\n this[base + 0] =\n domain === null ? fulfill : util.domainBind(domain, fulfill);\n }\n if (typeof reject === \"function\") {\n this[base + 1] =\n domain === null ? reject : util.domainBind(domain, reject);\n }\n }\n this._setLength(index + 1);\n return index;\n};\n\nPromise.prototype._proxy = function (proxyable, arg) {\n this._addCallbacks(undefined, undefined, arg, proxyable, null);\n};\n\nPromise.prototype._resolveCallback = function(value, shouldBind) {\n if (((this._bitField & 117506048) !== 0)) return;\n if (value === this)\n return this._rejectCallback(makeSelfResolutionError(), false);\n var maybePromise = tryConvertToPromise(value, this);\n if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n\n if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n var promise = maybePromise._target();\n\n if (promise === this) {\n this._reject(makeSelfResolutionError());\n return;\n }\n\n var bitField = promise._bitField;\n if (((bitField & 50397184) === 0)) {\n var len = this._length();\n if (len > 0) promise._migrateCallback0(this);\n for (var i = 1; i < len; ++i) {\n promise._migrateCallbackAt(this, i);\n }\n this._setFollowing();\n this._setLength(0);\n this._setFollowee(promise);\n } else if (((bitField & 33554432) !== 0)) {\n this._fulfill(promise._value());\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(promise._reason());\n } else {\n var reason = new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n this._reject(reason);\n }\n};\n\nPromise.prototype._rejectCallback =\nfunction(reason, synchronous, ignoreNonErrorWarnings) {\n var trace = util.ensureErrorObject(reason);\n var hasStack = trace === reason;\n if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n var message = \"a promise was rejected with a non-error: \" +\n util.classString(reason);\n this._warn(message, true);\n }\n this._attachExtraTrace(trace, synchronous ? hasStack : false);\n this._reject(reason);\n};\n\nPromise.prototype._resolveFromExecutor = function (executor) {\n var promise = this;\n this._captureStackTrace();\n this._pushContext();\n var synchronous = true;\n var r = this._execute(executor, function(value) {\n promise._resolveCallback(value);\n }, function (reason) {\n promise._rejectCallback(reason, synchronous);\n });\n synchronous = false;\n this._popContext();\n\n if (r !== undefined) {\n promise._rejectCallback(r, true);\n }\n};\n\nPromise.prototype._settlePromiseFromHandler = function (\n handler, receiver, value, promise\n) {\n var bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n promise._pushContext();\n var x;\n if (receiver === APPLY) {\n if (!value || typeof value.length !== \"number\") {\n x = errorObj;\n x.e = new TypeError(\"cannot .spread() a non-array: \" +\n util.classString(value));\n } else {\n x = tryCatch(handler).apply(this._boundValue(), value);\n }\n } else {\n x = tryCatch(handler).call(receiver, value);\n }\n var promiseCreated = promise._popContext();\n bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n\n if (x === NEXT_FILTER) {\n promise._reject(value);\n } else if (x === errorObj) {\n promise._rejectCallback(x.e, false);\n } else {\n debug.checkForgottenReturns(x, promiseCreated, \"\", promise, this);\n promise._resolveCallback(x);\n }\n};\n\nPromise.prototype._target = function() {\n var ret = this;\n while (ret._isFollowing()) ret = ret._followee();\n return ret;\n};\n\nPromise.prototype._followee = function() {\n return this._rejectionHandler0;\n};\n\nPromise.prototype._setFollowee = function(promise) {\n this._rejectionHandler0 = promise;\n};\n\nPromise.prototype._settlePromise = function(promise, handler, receiver, value) {\n var isPromise = promise instanceof Promise;\n var bitField = this._bitField;\n var asyncGuaranteed = ((bitField & 134217728) !== 0);\n if (((bitField & 65536) !== 0)) {\n if (isPromise) promise._invokeInternalOnCancel();\n\n if (receiver instanceof PassThroughHandlerContext &&\n receiver.isFinallyHandler()) {\n receiver.cancelPromise = promise;\n if (tryCatch(handler).call(receiver, value) === errorObj) {\n promise._reject(errorObj.e);\n }\n } else if (handler === reflectHandler) {\n promise._fulfill(reflectHandler.call(receiver));\n } else if (receiver instanceof Proxyable) {\n receiver._promiseCancelled(promise);\n } else if (isPromise || promise instanceof PromiseArray) {\n promise._cancel();\n } else {\n receiver.cancel();\n }\n } else if (typeof handler === \"function\") {\n if (!isPromise) {\n handler.call(receiver, value, promise);\n } else {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (receiver instanceof Proxyable) {\n if (!receiver._isResolved()) {\n if (((bitField & 33554432) !== 0)) {\n receiver._promiseFulfilled(value, promise);\n } else {\n receiver._promiseRejected(value, promise);\n }\n }\n } else if (isPromise) {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n if (((bitField & 33554432) !== 0)) {\n promise._fulfill(value);\n } else {\n promise._reject(value);\n }\n }\n};\n\nPromise.prototype._settlePromiseLateCancellationObserver = function(ctx) {\n var handler = ctx.handler;\n var promise = ctx.promise;\n var receiver = ctx.receiver;\n var value = ctx.value;\n if (typeof handler === \"function\") {\n if (!(promise instanceof Promise)) {\n handler.call(receiver, value, promise);\n } else {\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (promise instanceof Promise) {\n promise._reject(value);\n }\n};\n\nPromise.prototype._settlePromiseCtx = function(ctx) {\n this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n};\n\nPromise.prototype._settlePromise0 = function(handler, value, bitField) {\n var promise = this._promise0;\n var receiver = this._receiverAt(0);\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._settlePromise(promise, handler, receiver, value);\n};\n\nPromise.prototype._clearCallbackDataAtIndex = function(index) {\n var base = index * 4 - 4;\n this[base + 2] =\n this[base + 3] =\n this[base + 0] =\n this[base + 1] = undefined;\n};\n\nPromise.prototype._fulfill = function (value) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n if (value === this) {\n var err = makeSelfResolutionError();\n this._attachExtraTrace(err);\n return this._reject(err);\n }\n this._setFulfilled();\n this._rejectionHandler0 = value;\n\n if ((bitField & 65535) > 0) {\n if (((bitField & 134217728) !== 0)) {\n this._settlePromises();\n } else {\n async.settlePromises(this);\n }\n }\n};\n\nPromise.prototype._reject = function (reason) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n this._setRejected();\n this._fulfillmentHandler0 = reason;\n\n if (this._isFinal()) {\n return async.fatalError(reason, util.isNode);\n }\n\n if ((bitField & 65535) > 0) {\n async.settlePromises(this);\n } else {\n this._ensurePossibleRejectionHandled();\n }\n};\n\nPromise.prototype._fulfillPromises = function (len, value) {\n for (var i = 1; i < len; i++) {\n var handler = this._fulfillmentHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, value);\n }\n};\n\nPromise.prototype._rejectPromises = function (len, reason) {\n for (var i = 1; i < len; i++) {\n var handler = this._rejectionHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, reason);\n }\n};\n\nPromise.prototype._settlePromises = function () {\n var bitField = this._bitField;\n var len = (bitField & 65535);\n\n if (len > 0) {\n if (((bitField & 16842752) !== 0)) {\n var reason = this._fulfillmentHandler0;\n this._settlePromise0(this._rejectionHandler0, reason, bitField);\n this._rejectPromises(len, reason);\n } else {\n var value = this._rejectionHandler0;\n this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n this._fulfillPromises(len, value);\n }\n this._setLength(0);\n }\n this._clearCancellationData();\n};\n\nPromise.prototype._settledValue = function() {\n var bitField = this._bitField;\n if (((bitField & 33554432) !== 0)) {\n return this._rejectionHandler0;\n } else if (((bitField & 16777216) !== 0)) {\n return this._fulfillmentHandler0;\n }\n};\n\nfunction deferResolve(v) {this.promise._resolveCallback(v);}\nfunction deferReject(v) {this.promise._rejectCallback(v, false);}\n\nPromise.defer = Promise.pending = function() {\n debug.deprecated(\"Promise.defer\", \"new Promise\");\n var promise = new Promise(INTERNAL);\n return {\n promise: promise,\n resolve: deferResolve,\n reject: deferReject\n };\n};\n\nutil.notEnumerableProp(Promise,\n \"_makeSelfResolutionError\",\n makeSelfResolutionError);\n\nrequire(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection,\n debug);\nrequire(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\nrequire(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\nrequire(\"./direct_resolve\")(Promise);\nrequire(\"./synchronous_inspection\")(Promise);\nrequire(\"./join\")(\n Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);\nPromise.Promise = Promise;\nPromise.version = \"3.4.7\";\nrequire('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\nrequire('./call_get.js')(Promise);\nrequire('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);\nrequire('./timers.js')(Promise, INTERNAL, debug);\nrequire('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);\nrequire('./nodeify.js')(Promise);\nrequire('./promisify.js')(Promise, INTERNAL);\nrequire('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);\nrequire('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);\nrequire('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\nrequire('./settle.js')(Promise, PromiseArray, debug);\nrequire('./some.js')(Promise, PromiseArray, apiRejection);\nrequire('./filter.js')(Promise, INTERNAL);\nrequire('./each.js')(Promise, INTERNAL);\nrequire('./any.js')(Promise);\n \n util.toFastProperties(Promise); \n util.toFastProperties(Promise.prototype); \n function fillTypes(value) { \n var p = new Promise(INTERNAL); \n p._fulfillmentHandler0 = value; \n p._rejectionHandler0 = value; \n p._promise0 = value; \n p._receiver0 = value; \n } \n // Complete slack tracking, opt out of field-type tracking and \n // stabilize map \n fillTypes({a: 1}); \n fillTypes({b: 2}); \n fillTypes({c: 3}); \n fillTypes(1); \n fillTypes(function(){}); \n fillTypes(undefined); \n fillTypes(false); \n fillTypes(new Promise(INTERNAL)); \n debug.setBounds(Async.firstLineError, util.lastLineError); \n return Promise; \n\n};\n","var _ = require(\"underscore\");\nvar bluebird = require(\"bluebird/js/release/promise\")();\n\nexports.defer = defer;\nexports.when = bluebird.resolve;\nexports.resolve = bluebird.resolve;\nexports.all = bluebird.all;\nexports.props = bluebird.props;\nexports.reject = bluebird.reject;\nexports.promisify = bluebird.promisify;\nexports.mapSeries = bluebird.mapSeries;\nexports.attempt = bluebird.attempt;\n\nexports.nfcall = function(func) {\n var args = Array.prototype.slice.call(arguments, 1);\n var promisedFunc = bluebird.promisify(func);\n return promisedFunc.apply(null, args);\n};\n\nbluebird.prototype.fail = bluebird.prototype.caught;\n\nbluebird.prototype.also = function(func) {\n return this.then(function(value) {\n var returnValue = _.extend({}, value, func(value));\n return bluebird.props(returnValue);\n });\n};\n\nfunction defer() {\n var resolve;\n var reject;\n var promise = new bluebird.Promise(function(resolveArg, rejectArg) {\n resolve = resolveArg;\n reject = rejectArg;\n });\n\n return {\n resolve: resolve,\n reject: reject,\n promise: promise\n };\n}\n","var _ = require(\"underscore\");\n\nvar types = exports.types = {\n document: \"document\",\n paragraph: \"paragraph\",\n run: \"run\",\n text: \"text\",\n tab: \"tab\",\n checkbox: \"checkbox\",\n hyperlink: \"hyperlink\",\n noteReference: \"noteReference\",\n image: \"image\",\n note: \"note\",\n commentReference: \"commentReference\",\n comment: \"comment\",\n table: \"table\",\n tableRow: \"tableRow\",\n tableCell: \"tableCell\",\n \"break\": \"break\",\n bookmarkStart: \"bookmarkStart\"\n};\n\nfunction Document(children, options) {\n options = options || {};\n return {\n type: types.document,\n children: children,\n notes: options.notes || new Notes({}),\n comments: options.comments || []\n };\n}\n\nfunction Paragraph(children, properties) {\n properties = properties || {};\n var indent = properties.indent || {};\n return {\n type: types.paragraph,\n children: children,\n styleId: properties.styleId || null,\n styleName: properties.styleName || null,\n numbering: properties.numbering || null,\n alignment: properties.alignment || null,\n indent: {\n start: indent.start || null,\n end: indent.end || null,\n firstLine: indent.firstLine || null,\n hanging: indent.hanging || null\n }\n };\n}\n\nfunction Run(children, properties) {\n properties = properties || {};\n return {\n type: types.run,\n children: children,\n styleId: properties.styleId || null,\n styleName: properties.styleName || null,\n isBold: !!properties.isBold,\n isUnderline: !!properties.isUnderline,\n isItalic: !!properties.isItalic,\n isStrikethrough: !!properties.isStrikethrough,\n isAllCaps: !!properties.isAllCaps,\n isSmallCaps: !!properties.isSmallCaps,\n verticalAlignment: properties.verticalAlignment || verticalAlignment.baseline,\n font: properties.font || null,\n fontSize: properties.fontSize || null,\n highlight: properties.highlight || null\n };\n}\n\nvar verticalAlignment = {\n baseline: \"baseline\",\n superscript: \"superscript\",\n subscript: \"subscript\"\n};\n\nfunction Text(value) {\n return {\n type: types.text,\n value: value\n };\n}\n\nfunction Tab() {\n return {\n type: types.tab\n };\n}\n\nfunction Checkbox(options) {\n return {\n type: types.checkbox,\n checked: options.checked\n };\n}\n\nfunction Hyperlink(children, options) {\n return {\n type: types.hyperlink,\n children: children,\n href: options.href,\n anchor: options.anchor,\n targetFrame: options.targetFrame\n };\n}\n\nfunction NoteReference(options) {\n return {\n type: types.noteReference,\n noteType: options.noteType,\n noteId: options.noteId\n };\n}\n\nfunction Notes(notes) {\n this._notes = _.indexBy(notes, function(note) {\n return noteKey(note.noteType, note.noteId);\n });\n}\n\nNotes.prototype.resolve = function(reference) {\n return this.findNoteByKey(noteKey(reference.noteType, reference.noteId));\n};\n\nNotes.prototype.findNoteByKey = function(key) {\n return this._notes[key] || null;\n};\n\nfunction Note(options) {\n return {\n type: types.note,\n noteType: options.noteType,\n noteId: options.noteId,\n body: options.body\n };\n}\n\nfunction commentReference(options) {\n return {\n type: types.commentReference,\n commentId: options.commentId\n };\n}\n\nfunction comment(options) {\n return {\n type: types.comment,\n commentId: options.commentId,\n body: options.body,\n authorName: options.authorName,\n authorInitials: options.authorInitials\n };\n}\n\nfunction noteKey(noteType, id) {\n return noteType + \"-\" + id;\n}\n\nfunction Image(options) {\n return {\n type: types.image,\n // `read` is retained for backwards compatibility, but other read\n // methods should be preferred.\n read: function(encoding) {\n if (encoding) {\n return options.readImage(encoding);\n } else {\n return options.readImage().then(function(arrayBuffer) {\n return Buffer.from(arrayBuffer);\n });\n }\n },\n readAsArrayBuffer: function() {\n return options.readImage();\n },\n readAsBase64String: function() {\n return options.readImage(\"base64\");\n },\n readAsBuffer: function() {\n return options.readImage().then(function(arrayBuffer) {\n return Buffer.from(arrayBuffer);\n });\n },\n altText: options.altText,\n contentType: options.contentType\n };\n}\n\nfunction Table(children, properties) {\n properties = properties || {};\n return {\n type: types.table,\n children: children,\n styleId: properties.styleId || null,\n styleName: properties.styleName || null\n };\n}\n\nfunction TableRow(children, options) {\n options = options || {};\n return {\n type: types.tableRow,\n children: children,\n isHeader: options.isHeader || false\n };\n}\n\nfunction TableCell(children, options) {\n options = options || {};\n return {\n type: types.tableCell,\n children: children,\n colSpan: options.colSpan == null ? 1 : options.colSpan,\n rowSpan: options.rowSpan == null ? 1 : options.rowSpan\n };\n}\n\nfunction Break(breakType) {\n return {\n type: types[\"break\"],\n breakType: breakType\n };\n}\n\nfunction BookmarkStart(options) {\n return {\n type: types.bookmarkStart,\n name: options.name\n };\n}\n\nexports.document = exports.Document = Document;\nexports.paragraph = exports.Paragraph = Paragraph;\nexports.run = exports.Run = Run;\nexports.text = exports.Text = Text;\nexports.tab = exports.Tab = Tab;\nexports.checkbox = exports.Checkbox = Checkbox;\nexports.Hyperlink = Hyperlink;\nexports.noteReference = exports.NoteReference = NoteReference;\nexports.Notes = Notes;\nexports.Note = Note;\nexports.commentReference = commentReference;\nexports.comment = comment;\nexports.Image = Image;\nexports.Table = Table;\nexports.TableRow = TableRow;\nexports.TableCell = TableCell;\nexports.lineBreak = Break(\"line\");\nexports.pageBreak = Break(\"page\");\nexports.columnBreak = Break(\"column\");\nexports.BookmarkStart = BookmarkStart;\n\nexports.verticalAlignment = verticalAlignment;\n","var _ = require(\"underscore\");\n\n\nexports.Result = Result;\nexports.success = success;\nexports.warning = warning;\nexports.error = error;\n\n\nfunction Result(value, messages) {\n this.value = value;\n this.messages = messages || [];\n}\n\nResult.prototype.map = function(func) {\n return new Result(func(this.value), this.messages);\n};\n\nResult.prototype.flatMap = function(func) {\n var funcResult = func(this.value);\n return new Result(funcResult.value, combineMessages([this, funcResult]));\n};\n\nResult.prototype.flatMapThen = function(func) {\n var that = this;\n return func(this.value).then(function(otherResult) {\n return new Result(otherResult.value, combineMessages([that, otherResult]));\n });\n};\n\nResult.combine = function(results) {\n var values = _.flatten(_.pluck(results, \"value\"));\n var messages = combineMessages(results);\n return new Result(values, messages);\n};\n\nfunction success(value) {\n return new Result(value, []);\n}\n\nfunction warning(message) {\n return {\n type: \"warning\",\n message: message\n };\n}\n\nfunction error(exception) {\n return {\n type: \"error\",\n message: exception.message,\n error: exception\n };\n}\n\nfunction combineMessages(results) {\n var messages = [];\n _.flatten(_.pluck(results, \"messages\"), true).forEach(function(message) {\n if (!containsMessage(messages, message)) {\n messages.push(message);\n }\n });\n return messages;\n}\n\nfunction containsMessage(messages, message) {\n return _.find(messages, isSameMessage.bind(null, message)) !== undefined;\n}\n\nfunction isSameMessage(first, second) {\n return first.type === second.type && first.message === second.message;\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var base64js = require(\"base64-js\");\nvar JSZip = require(\"jszip\");\n\nexports.openArrayBuffer = openArrayBuffer;\nexports.splitPath = splitPath;\nexports.joinPath = joinPath;\n\nfunction openArrayBuffer(arrayBuffer) {\n return JSZip.loadAsync(arrayBuffer).then(function(zipFile) {\n function exists(name) {\n return zipFile.file(name) !== null;\n }\n\n function read(name, encoding) {\n return zipFile.file(name).async(\"uint8array\").then(function(array) {\n if (encoding === \"base64\") {\n return base64js.fromByteArray(array);\n } else if (encoding) {\n var decoder = new TextDecoder(encoding);\n return decoder.decode(array);\n } else {\n return array;\n }\n });\n }\n\n function write(name, contents) {\n zipFile.file(name, contents);\n }\n\n function toArrayBuffer() {\n return zipFile.generateAsync({type: \"arraybuffer\"});\n }\n\n return {\n exists: exists,\n read: read,\n write: write,\n toArrayBuffer: toArrayBuffer\n };\n });\n}\n\nfunction splitPath(path) {\n var lastIndex = path.lastIndexOf(\"/\");\n if (lastIndex === -1) {\n return {dirname: \"\", basename: path};\n } else {\n return {\n dirname: path.substring(0, lastIndex),\n basename: path.substring(lastIndex + 1)\n };\n }\n}\n\nfunction joinPath() {\n var nonEmptyPaths = Array.prototype.filter.call(arguments, function(path) {\n return path;\n });\n\n var relevantPaths = [];\n\n nonEmptyPaths.forEach(function(path) {\n if (/^\\//.test(path)) {\n relevantPaths = [path];\n } else {\n relevantPaths.push(path);\n }\n });\n\n return relevantPaths.join(\"/\");\n}\n","var _ = require(\"underscore\");\n\n\nexports.Element = Element;\nexports.element = function(name, attributes, children) {\n return new Element(name, attributes, children);\n};\nexports.text = function(value) {\n return {\n type: \"text\",\n value: value\n };\n};\n\n\nvar emptyElement = exports.emptyElement = {\n first: function() {\n return null;\n },\n firstOrEmpty: function() {\n return emptyElement;\n },\n attributes: {},\n children: []\n};\n\nfunction Element(name, attributes, children) {\n this.type = \"element\";\n this.name = name;\n this.attributes = attributes || {};\n this.children = children || [];\n}\n\nElement.prototype.first = function(name) {\n return _.find(this.children, function(child) {\n return child.name === name;\n });\n};\n\nElement.prototype.firstOrEmpty = function(name) {\n return this.first(name) || emptyElement;\n};\n\nElement.prototype.getElementsByTagName = function(name) {\n var elements = _.filter(this.children, function(child) {\n return child.name === name;\n });\n return toElementList(elements);\n};\n\nElement.prototype.text = function() {\n if (this.children.length === 0) {\n return \"\";\n } else if (this.children.length !== 1 || this.children[0].type !== \"text\") {\n throw new Error(\"Not implemented\");\n }\n return this.children[0].value;\n};\n\nvar elementListPrototype = {\n getElementsByTagName: function(name) {\n return toElementList(_.flatten(this.map(function(element) {\n return element.getElementsByTagName(name);\n }, true)));\n }\n};\n\nfunction toElementList(array) {\n return _.extend(array, elementListPrototype);\n}\n","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * 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.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * 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.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter,options){\n\t\tvar requireWellFormed = !!options && !!options.requireWellFormed;\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter,null,requireWellFormed);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif (list._inc !== inc) {\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list,'length',ls.length);\n\t\tif (!list.$$length || ls.length < list.$$length) {\n\t\t\tfor (var i = ls.length; i in list; i++) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i] || null;\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This implementation differs from the specification:__\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * Note: `internalSubset` can only be introduced via a direct property write to `node.internalSubset` after creation.\n\t * Creation-time validation of `publicId`, `systemId` is not enforced.\n\t * The serializer-level check covers all mutation vectors, including direct property writes.\n\t * `internalSubset` is only serialized as `[ ... ]` when both `publicId` and `systemId` are\n\t * absent (empty or `'.'`) — if either external identifier is present, `internalSubset` is\n\t * silently omitted from the serialized output.\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * The external subset public identifier. Stored verbatim including surrounding quotes.\n\t * When serialized with `requireWellFormed: true` (via the 4th-parameter options object),\n\t * throws `DOMException` with code `INVALID_STATE_ERR` if the value is non-empty and does\n\t * not match the XML `PubidLiteral` production (W3C DOM Parsing §3.2.1.3; XML 1.0 [12]).\n\t * @param {string} [systemId]\n\t * The external subset system identifier. Stored verbatim including surrounding quotes.\n\t * When serialized with `requireWellFormed: true`, throws `DOMException` with code\n\t * `INVALID_STATE_ERR` if the value is non-empty and does not match the XML `SystemLiteral`\n\t * production (W3C DOM Parsing §3.2.1.3; XML 1.0 [11]).\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\t/**\n\t * Puts the specified node and all of its subtree into a \"normalized\" form. In a normalized\n\t * subtree, no text nodes in the subtree are empty and there are no adjacent text nodes.\n\t *\n\t * Specifically, this method merges any adjacent text nodes (i.e., nodes for which `nodeType`\n\t * is `TEXT_NODE`) into a single node with the combined data. It also removes any empty text\n\t * nodes.\n\t *\n\t * This method iteratively traverses all child nodes to normalize all descendant nodes within\n\t * the subtree.\n\t *\n\t * @throws {DOMException}\n\t * May throw a DOMException if operations within removeChild or appendData (which are\n\t * potentially invoked in this method) do not meet their specific constraints.\n\t * @see {@link Node.removeChild}\n\t * @see {@link CharacterData.appendData}\n\t * @see ../docs/walk-dom.md.\n\t */\n\tnormalize: function () {\n\t\twalkDOM(this, null, {\n\t\t\tenter: function (node) {\n\t\t\t\t// Merge adjacent text children of node before walkDOM schedules them.\n\t\t\t\t// walkDOM reads lastChild/previousSibling after enter returns, so the\n\t\t\t\t// surviving post-merge children are what it descends into.\n\t\t\t\tvar child = node.firstChild;\n\t\t\t\twhile (child) {\n\t\t\t\t\tvar next = child.nextSibling;\n\t\t\t\t\tif (next !== null && next.nodeType === TEXT_NODE && child.nodeType === TEXT_NODE) {\n\t\t\t\t\t\tnode.removeChild(next);\n\t\t\t\t\t\tchild.appendData(next.data);\n\t\t\t\t\t\t// Do not advance child: re-check new nextSibling for another text run\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild = next;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true; // descend into surviving children\n\t\t\t},\n\t\t});\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param {Node} node\n * Root of the subtree to visit.\n * @param {function(Node): boolean} callback\n * Called for each node in depth-first pre-order. Return a truthy value to stop traversal early.\n * @return {boolean} `true` if traversal was aborted by the callback, `false` otherwise.\n */\nfunction _visitNode(node, callback) {\n\treturn walkDOM(node, null, { enter: function (n) { return callback(n) ? walkDOM.STOP : true; } }) === walkDOM.STOP;\n}\n\n/**\n * Depth-first pre/post-order DOM tree walker.\n *\n * Visits every node in the subtree rooted at `node`. For each node:\n *\n * 1. Calls `callbacks.enter(node, context)` before descending into the node's children. The\n * return value becomes the `context` passed to each child's `enter` call and to the matching\n * `exit` call.\n * 2. If `enter` returns `null` or `undefined`, the node's children are skipped;\n * sibling traversal continues normally.\n * 3. If `enter` returns `walkDOM.STOP`, the entire traversal is aborted immediately — no\n * further `enter` or `exit` calls are made.\n * 4. `lastChild` and `previousSibling` are read **after** `enter` returns, so `enter` may\n * safely modify the node's own child list before the walker descends. Modifying siblings of\n * the current node or any other part of the tree produces unpredictable results: nodes already\n * queued on the stack are visited regardless of DOM changes, and newly inserted nodes outside\n * the current child list are never visited.\n * 5. Calls `callbacks.exit(node, context)` (if provided) after all of a node's children have\n * been visited, passing the same `context` that `enter`\n * returned for that node.\n *\n * This implementation uses an explicit stack and does not recurse — it is safe on arbitrarily\n * deep trees.\n *\n * @param {Node} node\n * Root of the subtree to walk.\n * @param {*} context\n * Initial context value passed to the root node's `enter`.\n * @param {{ enter: function(Node, *): *, exit?: function(Node, *): void }} callbacks\n * @returns {void | walkDOM.STOP}\n * @see ../docs/walk-dom.md.\n */\nfunction walkDOM(node, context, callbacks) {\n\t// Each stack frame is {node, context, phase}:\n\t// walkDOM.ENTER — call enter, then push children\n\t// walkDOM.EXIT — call exit\n\tvar stack = [{ node: node, context: context, phase: walkDOM.ENTER }];\n\twhile (stack.length > 0) {\n\t\tvar frame = stack.pop();\n\t\tif (frame.phase === walkDOM.ENTER) {\n\t\t\tvar childContext = callbacks.enter(frame.node, frame.context);\n\t\t\tif (childContext === walkDOM.STOP) {\n\t\t\t\treturn walkDOM.STOP;\n\t\t\t}\n\t\t\t// Push exit frame before children so it fires after all children are processed (Last In First Out)\n\t\t\tstack.push({ node: frame.node, context: childContext, phase: walkDOM.EXIT });\n\t\t\tif (childContext === null || childContext === undefined) {\n\t\t\t\tcontinue; // skip children\n\t\t\t}\n\t\t\t// lastChild is read after enter returns, so enter may modify the child list.\n\t\t\tvar child = frame.node.lastChild;\n\t\t\t// Traverse from lastChild backwards so that pushing onto the stack\n\t\t\t// naturally yields firstChild on top (processed first).\n\t\t\twhile (child) {\n\t\t\t\tstack.push({ node: child, context: childContext, phase: walkDOM.ENTER });\n\t\t\t\tchild = child.previousSibling;\n\t\t\t}\n\t\t} else {\n\t\t\t// frame.phase === walkDOM.EXIT\n\t\t\tif (callbacks.exit) {\n\t\t\t\tcallbacks.exit(frame.node, frame.context);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Sentinel value returned from a `walkDOM` `enter` callback to abort the entire traversal\n * immediately.\n *\n * @type {symbol}\n */\nwalkDOM.STOP = Symbol('walkDOM.STOP');\n/**\n * Phase constant for a stack frame that has not yet been visited.\n * The `enter` callback is called and children are scheduled.\n *\n * @type {number}\n */\nwalkDOM.ENTER = 0;\n/**\n * Phase constant for a stack frame whose subtree has been fully visited.\n * The `exit` callback is called.\n *\n * @type {number}\n */\nwalkDOM.EXIT = 1;\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t\t// Update ownerDocument for each node being inserted\n\t\tvar targetDoc = parent.ownerDocument || parent;\n\t\t_updateOwnerDocument(newFirst, targetDoc);\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Recursively updates the ownerDocument property for a node and all its descendants\n * @param {Node} node\n * @param {Document} newOwnerDocument\n * @private\n */\nfunction _updateOwnerDocument(node, newOwnerDocument) {\n\tif (node.ownerDocument === newOwnerDocument) {\n\t\treturn;\n\t}\n\t\n\tnode.ownerDocument = newOwnerDocument;\n\t\n\t// Update attributes if this is an element\n\tif (node.nodeType === ELEMENT_NODE && node.attributes) {\n\t\tfor (var i = 0; i < node.attributes.length; i++) {\n\t\t\tvar attr = node.attributes.item(i);\n\t\t\tif (attr) {\n\t\t\t\tattr.ownerDocument = newOwnerDocument;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t// Recursively update child nodes\n\tvar child = node.firstChild;\n\twhile (child) {\n\t\t_updateOwnerDocument(child, newOwnerDocument);\n\t\tchild = child.nextSibling;\n\t}\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\t\n\t// Update ownerDocument for the new child and all its descendants\n\tvar targetDoc = parentNode.ownerDocument || parentNode;\n\t_updateOwnerDocument(newChild, targetDoc);\n\t\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\t_updateOwnerDocument(newChild, this);\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\t_updateOwnerDocument(newChild, this);\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\t/**\n\t * Returns a new CDATASection node whose data is `data`.\n\t *\n\t * __This implementation differs from the specification:__\n\t * - calling this method on an HTML document does not throw `NotSupportedError`.\n\t *\n\t * @param {string} data\n\t * @returns {CDATASection}\n\t * @throws DOMException with code `INVALID_CHARACTER_ERR` if `data` contains `\"]]>\"`.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createCDATASection\n\t * @see https://dom.spec.whatwg.org/#dom-document-createcdatasection\n\t */\n\tcreateCDATASection :\tfunction(data){\n\t\tif (data.indexOf(']]>') !== -1) {\n\t\t\tthrow new DOMException(INVALID_CHARACTER_ERR, 'data contains \"]]>\"');\n\t\t}\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\t/**\n\t * Returns a ProcessingInstruction node whose target is target and data is data.\n\t *\n\t * __This implementation differs from the specification:__\n\t * - it does not do any input validation on the arguments and doesn't throw \"InvalidCharacterError\".\n\t *\n\t * Note: When the resulting document is serialized with `requireWellFormed: true`, the\n\t * serializer throws with code `INVALID_STATE_ERR` if `.data` contains `?>` (W3C DOM Parsing\n\t * §3.2.1.7). Without that option the data is emitted verbatim.\n\t *\n\t * @param {string} target\n\t * @param {string} data\n\t * @returns {ProcessingInstruction}\n\t * @see https://developer.mozilla.org/docs/Web/API/Document/createProcessingInstruction\n\t * @see https://dom.spec.whatwg.org/#dom-document-createprocessinginstruction\n\t * @see https://www.w3.org/TR/DOM-Parsing/#dfn-concept-serialize-xml §3.2.1.7\n\t */\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\n/**\n * Represents a DocumentType node (the `<!DOCTYPE ...>` declaration).\n *\n * `publicId`, `systemId`, and `internalSubset` are plain own-property assignments.\n * xmldom does not enforce the `readonly` constraint declared by the WHATWG DOM spec —\n * direct property writes succeed silently. Values are serialized verbatim when\n * `requireWellFormed` is false (the default). When the serializer is invoked with\n * `requireWellFormed: true` (via the 4th-parameter options object), it validates each\n * field and throws `DOMException` with code `INVALID_STATE_ERR` on invalid values.\n *\n * @class\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentType MDN\n */\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\n/**\n * Returns the result of serializing `node` to XML.\n *\n * When `options.requireWellFormed` is `true`, the serializer throws for content that would\n * produce ill-formed XML.\n *\n * __This implementation differs from the specification:__\n * - CDATASection nodes whose data contains `]]>` are serialized by splitting the section\n * at each `]]>` occurrence (following W3C DOM Level 3 Core `split-cdata-sections`\n * default behaviour) unless `requireWellFormed` is `true`.\n * - when `requireWellFormed` is `true`, `DOMException` with code `INVALID_STATE_ERR`\n * is only thrown to prevent injection vectors, not for all the spec mandated checks.\n *\n * @param {Node} node\n * @param {boolean} [isHtml]\n * @param {function} [nodeFilter]\n * @param {Object} [options]\n * @param {boolean} [options.requireWellFormed=false]\n * When `true`, throws for content that would produce ill-formed XML.\n * @returns {string}\n * @throws {DOMException}\n * With code `INVALID_STATE_ERR` when `requireWellFormed` is `true` and:\n * - a CDATASection node's data contains `\"]]>\"`,\n * - a Comment node's data contains `\"-->\"` (bare `\"--\"` does not throw on this branch),\n * - a ProcessingInstruction's data contains `\"?>\"`,\n * - a DocumentType's `publicId` is non-empty and does not match the XML `PubidLiteral`\n * production,\n * - a DocumentType's `systemId` is non-empty and does not match the XML `SystemLiteral`\n * production, or\n * - a DocumentType's `internalSubset` contains `\"]>\"`.\n * Note: xmldom does not enforce `readonly` on DocumentType fields — direct property\n * writes succeed and are covered by the serializer-level checks above.\n * @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring\n * @see https://w3c.github.io/DOM-Parsing/#xml-serialization\n * @see https://github.com/w3c/DOM-Parsing/issues/84\n */\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter,options){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter,options);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter,options){\n\tvar requireWellFormed = !!options && !!options.requireWellFormed;\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces,requireWellFormed);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces, requireWellFormed) {\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\twalkDOM(node, { ns: visibleNamespaces, isHTML: isHTML }, {\n\t\tenter: function (n, ctx) {\n\t\t\tvar ns = ctx.ns;\n\t\t\tvar html = ctx.isHTML;\n\n\t\t\tif (nodeFilter) {\n\t\t\t\tn = nodeFilter(n);\n\t\t\t\tif (n) {\n\t\t\t\t\tif (typeof n == 'string') {\n\t\t\t\t\t\tbuf.push(n);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswitch (n.nodeType) {\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\t\tvar attrs = n.attributes;\n\t\t\t\t\tvar len = attrs.length;\n\t\t\t\t\tvar nodeName = n.tagName;\n\n\t\t\t\t\thtml = NAMESPACE.isHTML(n.namespaceURI) || html;\n\n\t\t\t\t\tvar prefixedNodeName = nodeName;\n\t\t\t\t\tif (!html && !n.prefix && n.namespaceURI) {\n\t\t\t\t\t\tvar defaultNS;\n\t\t\t\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\t\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\t\t\t\tdefaultNS = attrs.item(ai).value;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!defaultNS) {\n\t\t\t\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\t\t\t\tfor (var nsi = ns.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\t\t\t\tvar nsEntry = ns[nsi];\n\t\t\t\t\t\t\t\tif (nsEntry.prefix === '' && nsEntry.namespace === n.namespaceURI) {\n\t\t\t\t\t\t\t\t\tdefaultNS = nsEntry.namespace;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (defaultNS !== n.namespaceURI) {\n\t\t\t\t\t\t\tfor (var nsi = ns.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\t\t\t\tvar nsEntry = ns[nsi];\n\t\t\t\t\t\t\t\tif (nsEntry.namespace === n.namespaceURI) {\n\t\t\t\t\t\t\t\t\tif (nsEntry.prefix) {\n\t\t\t\t\t\t\t\t\t\tprefixedNodeName = nsEntry.prefix + ':' + nodeName;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbuf.push('<', prefixedNodeName);\n\n\t\t\t\t\t// Build a fresh namespace snapshot for this element's children.\n\t\t\t\t\t// The slice prevents sibling elements from inheriting each other's declarations.\n\t\t\t\t\tvar childNs = ns.slice();\n\t\t\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t\t\tvar attr = attrs.item(i);\n\t\t\t\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\t\t\t\tchildNs.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t\t\t\t} else if (attr.nodeName == 'xmlns') {\n\t\t\t\t\t\t\tchildNs.push({ prefix: '', namespace: attr.value });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t\t\tvar attr = attrs.item(i);\n\t\t\t\t\t\tif (needNamespaceDefine(attr, html, childNs)) {\n\t\t\t\t\t\t\tvar attrPrefix = attr.prefix || '';\n\t\t\t\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\t\t\t\taddSerializedAttribute(buf, attrPrefix ? 'xmlns:' + attrPrefix : 'xmlns', uri);\n\t\t\t\t\t\t\tchildNs.push({ prefix: attrPrefix, namespace: uri });\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Apply nodeFilter and serialize the attribute.\n\t\t\t\t\t\tvar filteredAttr = nodeFilter ? nodeFilter(attr) : attr;\n\t\t\t\t\t\tif (filteredAttr) {\n\t\t\t\t\t\t\tif (typeof filteredAttr === 'string') {\n\t\t\t\t\t\t\t\tbuf.push(filteredAttr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\taddSerializedAttribute(buf, filteredAttr.name, filteredAttr.value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// add namespace for current node\n\t\t\t\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(n, html, childNs)) {\n\t\t\t\t\t\tvar nodePrefix = n.prefix || '';\n\t\t\t\t\t\tvar uri = n.namespaceURI;\n\t\t\t\t\t\taddSerializedAttribute(buf, nodePrefix ? 'xmlns:' + nodePrefix : 'xmlns', uri);\n\t\t\t\t\t\tchildNs.push({ prefix: nodePrefix, namespace: uri });\n\t\t\t\t\t}\n\n\t\t\t\t\tvar child = n.firstChild;\n\t\t\t\t\tif (child || html && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n\t\t\t\t\t\tbuf.push('>');\n\t\t\t\t\t\tif (html && /^script$/i.test(nodeName)) {\n\t\t\t\t\t\t\t// Inline serialization for <script> children; return null to skip walkDOM descent.\n\t\t\t\t\t\t\twhile (child) {\n\t\t\t\t\t\t\t\tif (child.data) {\n\t\t\t\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tserializeToString(child, buf, html, nodeFilter, childNs.slice(), requireWellFormed);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbuf.push('</', nodeName, '>');\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Return child context; walkDOM descends and exit emits the closing tag.\n\t\t\t\t\t\treturn { ns: childNs, isHTML: html, tag: prefixedNodeName };\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuf.push('/>');\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\tcase DOCUMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\t// Descend into children; exit is a no-op (tag is null).\n\t\t\t\t\treturn { ns: ns.slice(), isHTML: html, tag: null };\n\n\t\t\t\tcase ATTRIBUTE_NODE:\n\t\t\t\t\taddSerializedAttribute(buf, n.name, n.value);\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase TEXT_NODE:\n\t\t\t\t\t/**\n\t\t\t\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t\t\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t\t\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t\t\t\t * `&` and `<` respectively.\n\t\t\t\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t\t\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t\t\t\t * when that string is not marking the end of a CDATA section.\n\t\t\t\t\t *\n\t\t\t\t\t * In the content of elements, character data is any string of characters\n\t\t\t\t\t * which does not contain the start-delimiter of any markup\n\t\t\t\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t\t\t\t *\n\t\t\t\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t\t\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t\t\t\t */\n\t\t\t\t\tbuf.push(n.data.replace(/[<&>]/g, _xmlEncoder));\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase CDATA_SECTION_NODE:\n\t\t\t\t\tif (requireWellFormed && n.data.indexOf(']]>') !== -1) {\n\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'The CDATASection data contains \"]]>\"');\n\t\t\t\t\t}\n\t\t\t\t\tbuf.push('<![CDATA[', n.data.replace(/]]>/g, ']]]]><![CDATA[>'), ']]>');\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase COMMENT_NODE:\n\t\t\t\t\tif (requireWellFormed && n.data.indexOf('-->') !== -1) {\n\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'The comment node data contains \"-->\"');\n\t\t\t\t\t}\n\t\t\t\t\tbuf.push('<!--', n.data, '-->');\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase DOCUMENT_TYPE_NODE:\n\t\t\t\t\tif (requireWellFormed) {\n\t\t\t\t\t\tif (n.publicId && !/^(\"[\\x20\\r\\na-zA-Z0-9\\-()+,.\\/:=?;!*#@$_%']*\"|'[\\x20\\r\\na-zA-Z0-9\\-()+,.\\/:=?;!*#@$_%'\"]*')$/.test(n.publicId)) {\n\t\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'DocumentType publicId is not a valid PubidLiteral');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n.systemId && !/^(\"[^\"]*\"|'[^']*')$/.test(n.systemId)) {\n\t\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'DocumentType systemId is not a valid SystemLiteral');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n.internalSubset && n.internalSubset.indexOf(']>') !== -1) {\n\t\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'DocumentType internalSubset contains \"]>\"');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar pubid = n.publicId;\n\t\t\t\t\tvar sysid = n.systemId;\n\t\t\t\t\tbuf.push('<!DOCTYPE ', n.name);\n\t\t\t\t\tif (pubid) {\n\t\t\t\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\t\t\t\tif (sysid && sysid != '.') {\n\t\t\t\t\t\t\tbuf.push(' ', sysid);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuf.push('>');\n\t\t\t\t\t} else if (sysid && sysid != '.') {\n\t\t\t\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar sub = n.internalSubset;\n\t\t\t\t\t\tif (sub) {\n\t\t\t\t\t\t\tbuf.push(' [', sub, ']');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuf.push('>');\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase PROCESSING_INSTRUCTION_NODE:\n\t\t\t\t\tif (requireWellFormed && n.data.indexOf('?>') !== -1) {\n\t\t\t\t\t\tthrow new DOMException(INVALID_STATE_ERR, 'The ProcessingInstruction data contains \"?>\"');\n\t\t\t\t\t}\n\t\t\t\t\tbuf.push('<?', n.target, ' ', n.data, '?>');\n\t\t\t\t\treturn null;\n\n\t\t\t\tcase ENTITY_REFERENCE_NODE:\n\t\t\t\t\tbuf.push('&', n.nodeName, ';');\n\t\t\t\t\treturn null;\n\n\t\t\t\t//case ENTITY_NODE:\n\t\t\t\t//case NOTATION_NODE:\n\t\t\t\tdefault:\n\t\t\t\t\tbuf.push('??', n.nodeName);\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\texit: function (n, childCtx) {\n\t\t\tif (childCtx && childCtx.tag) {\n\t\t\t\tbuf.push('</', childCtx.tag, '>');\n\t\t\t}\n\t\t},\n\t});\n}\n/**\n * Imports a node from a different document into `doc`, creating a new copy.\n * Delegates to {@link walkDOM} for traversal. Each node in the subtree is shallow-cloned,\n * stamped with `doc` as its `ownerDocument`, and detached (`parentNode` set to `null`).\n * Children are imported recursively when `deep` is `true`; for {@link Attr} nodes `deep` is\n * always forced to `true`\n * because an attribute's value lives in a child text node.\n *\n * @param {Document} doc\n * The document that will own the imported node.\n * @param {Node} node\n * The node to import.\n * @param {boolean} deep\n * If `true`, descendants are imported recursively.\n * @returns {Node}\n * The newly imported node, now owned by `doc`.\n */\nfunction importNode(doc, node, deep) {\n\tvar destRoot;\n\twalkDOM(node, null, {\n\t\tenter: function (srcNode, destParent) {\n\t\t\t// Shallow-clone the node and stamp it into the target document.\n\t\t\tvar destNode = srcNode.cloneNode(false);\n\t\t\tdestNode.ownerDocument = doc;\n\t\t\tdestNode.parentNode = null;\n\t\t\t// capture as the root of the imported subtree or attach to parent.\n\t\t\tif (destParent === null) {\n\t\t\t\tdestRoot = destNode;\n\t\t\t} else {\n\t\t\t\tdestParent.appendChild(destNode);\n\t\t\t}\n\t\t\t// ATTRIBUTE_NODE must always be imported deeply: its value lives in a child text node.\n\t\t\tvar shouldDeep = srcNode.nodeType === ATTRIBUTE_NODE || deep;\n\t\t\treturn shouldDeep ? destNode : null;\n\t\t},\n\t});\n\treturn destRoot;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc, node, deep) {\n\tvar destRoot;\n\twalkDOM(node, null, {\n\t\tenter: function (srcNode, destParent) {\n\t\t\t// 1. Create a blank node of the same type and copy all scalar own properties.\n\t\t\tvar destNode = new srcNode.constructor();\n\t\t\tfor (var n in srcNode) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(srcNode, n)) {\n\t\t\t\t\tvar v = srcNode[n];\n\t\t\t\t\tif (typeof v != 'object') {\n\t\t\t\t\t\tif (v != destNode[n]) {\n\t\t\t\t\t\t\tdestNode[n] = v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (srcNode.childNodes) {\n\t\t\t\tdestNode.childNodes = new NodeList();\n\t\t\t}\n\t\t\tdestNode.ownerDocument = doc;\n\t\t\t// 2. Handle node-type-specific setup.\n\t\t\t// Attributes are not DOM children, so they are cloned inline here\n\t\t\t// rather than by walkDOM descent.\n\t\t\t// ATTRIBUTE_NODE forces deep=true so its own children are walked.\n\t\t\tvar shouldDeep = deep;\n\t\t\tswitch (destNode.nodeType) {\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\t\tvar attrs = srcNode.attributes;\n\t\t\t\t\tvar attrs2 = (destNode.attributes = new NamedNodeMap());\n\t\t\t\t\tvar len = attrs.length;\n\t\t\t\t\tattrs2._ownerElement = destNode;\n\t\t\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\t\t\tdestNode.setAttributeNode(cloneNode(doc, attrs.item(i), true));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ATTRIBUTE_NODE:\n\t\t\t\t\tshouldDeep = true;\n\t\t\t}\n\t\t\t// 3. Attach to parent, or capture as the root of the cloned subtree.\n\t\t\tif (destParent !== null) {\n\t\t\t\tdestParent.appendChild(destNode);\n\t\t\t} else {\n\t\t\t\tdestRoot = destNode;\n\t\t\t}\n\t\t\t// 4. Return destNode as the context for children (causes walkDOM to descend),\n\t\t\t// or null to skip children (shallow clone).\n\t\t\treturn shouldDeep ? destNode : null;\n\t\t},\n\t});\n\treturn destRoot;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * The text content of this node and its descendants.\n\t\t *\n\t\t * Setting `textContent` on an element or document fragment replaces all child nodes with a\n\t\t * single text node; on other nodes it sets `data`, `value`, and `nodeValue` directly.\n\t\t *\n\t\t * @type {string | null}\n\t\t * @see {@link https://dom.spec.whatwg.org/#dom-node-textcontent}\n\t\t */\n\t\tObject.defineProperty(Node.prototype, 'textContent', {\n\t\t\tget: function () {\n\t\t\t\tif (this.nodeType === ELEMENT_NODE || this.nodeType === DOCUMENT_FRAGMENT_NODE) {\n\t\t\t\t\tvar buf = [];\n\t\t\t\t\twalkDOM(this, null, {\n\t\t\t\t\t\tenter: function (n) {\n\t\t\t\t\t\t\tif (n.nodeType === ELEMENT_NODE || n.nodeType === DOCUMENT_FRAGMENT_NODE) {\n\t\t\t\t\t\t\t\treturn true; // enter children\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (n.nodeType === PROCESSING_INSTRUCTION_NODE || n.nodeType === COMMENT_NODE) {\n\t\t\t\t\t\t\t\treturn null; // excluded from text content\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbuf.push(n.nodeValue);\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\treturn buf.join('');\n\t\t\t\t}\n\t\t\t\treturn this.nodeValue;\n\t\t\t},\n\n\t\t\tset: function (data) {\n\t\t\t\tswitch (this.nodeType) {\n\t\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\t\twhile (this.firstChild) {\n\t\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (data || String(data)) {\n\t\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.data = data;\n\t\t\t\t\t\tthis.value = data;\n\t\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DocumentType = DocumentType;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.Element = Element;\n\texports.Node = Node;\n\texports.NodeList = NodeList;\n\texports.walkDOM = walkDOM;\n\texports.XMLSerializer = XMLSerializer;\n//}\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [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]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar 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\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//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(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el<el />\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s</)){\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t if(endIgnoreCaseMach){\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!endMatch){\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t }else{\n\t\t \tparseStack.push(config)\n\t\t }\n\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\n\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (NAMESPACE.isHTML(el.uri) && !el.closed) {\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t} else {\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//}\n}\n\nfunction _copy (source, target) {\n\tfor (var n in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA()\n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record<string, string>} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* 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 */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","var xmldom = require(\"@xmldom/xmldom\");\nvar dom = require(\"@xmldom/xmldom/lib/dom\");\n\nfunction parseFromString(string) {\n var error = null;\n\n var domParser = new xmldom.DOMParser({\n errorHandler: function(level, message) {\n error = {level: level, message: message};\n }\n });\n\n var document = domParser.parseFromString(string);\n\n if (error === null) {\n return document;\n } else {\n throw new Error(error.level + \": \" + error.message);\n }\n}\n\nexports.parseFromString = parseFromString;\nexports.Node = dom.Node;\n","var promises = require(\"../promises\");\nvar _ = require(\"underscore\");\n\nvar xmldom = require(\"./xmldom\");\nvar nodes = require(\"./nodes\");\nvar Element = nodes.Element;\n\nexports.readString = readString;\n\nvar Node = xmldom.Node;\n\nfunction readString(xmlString, namespaceMap) {\n namespaceMap = namespaceMap || {};\n\n try {\n var document = xmldom.parseFromString(xmlString, \"text/xml\");\n } catch (error) {\n return promises.reject(error);\n }\n\n if (document.documentElement.tagName === \"parsererror\") {\n return promises.resolve(new Error(document.documentElement.textContent));\n }\n\n function convertNode(node) {\n switch (node.nodeType) {\n case Node.ELEMENT_NODE:\n return convertElement(node);\n case Node.TEXT_NODE:\n return nodes.text(node.nodeValue);\n }\n }\n\n function convertElement(element) {\n var convertedName = convertName(element);\n\n var convertedChildren = [];\n _.forEach(element.childNodes, function(childNode) {\n var convertedNode = convertNode(childNode);\n if (convertedNode) {\n convertedChildren.push(convertedNode);\n }\n });\n\n var convertedAttributes = {};\n _.forEach(element.attributes, function(attribute) {\n convertedAttributes[convertName(attribute)] = attribute.value;\n });\n\n return new Element(convertedName, convertedAttributes, convertedChildren);\n }\n\n function convertName(node) {\n if (node.namespaceURI) {\n var mappedPrefix = namespaceMap[node.namespaceURI];\n var prefix;\n if (mappedPrefix) {\n prefix = mappedPrefix + \":\";\n } else {\n prefix = \"{\" + node.namespaceURI + \"}\";\n }\n return prefix + node.localName;\n } else {\n return node.localName;\n }\n }\n\n return promises.resolve(convertNode(document.documentElement));\n}\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject,\n slice = [].slice,\n hasProp = {}.hasOwnProperty;\n\n assign = function() {\n var i, key, len, source, sources, target;\n target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n if (isFunction(Object.assign)) {\n Object.assign.apply(null, arguments);\n } else {\n for (i = 0, len = sources.length; i < len; i++) {\n source = sources[i];\n if (source != null) {\n for (key in source) {\n if (!hasProp.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n };\n\n isFunction = function(val) {\n return !!val && Object.prototype.toString.call(val) === '[object Function]';\n };\n\n isObject = function(val) {\n var ref;\n return !!val && ((ref = typeof val) === 'function' || ref === 'object');\n };\n\n isArray = function(val) {\n if (isFunction(Array.isArray)) {\n return Array.isArray(val);\n } else {\n return Object.prototype.toString.call(val) === '[object Array]';\n }\n };\n\n isEmpty = function(val) {\n var key;\n if (isArray(val)) {\n return !val.length;\n } else {\n for (key in val) {\n if (!hasProp.call(val, key)) continue;\n return false;\n }\n return true;\n }\n };\n\n isPlainObject = function(val) {\n var ctor, proto;\n return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));\n };\n\n getValue = function(obj) {\n if (isFunction(obj.valueOf)) {\n return obj.valueOf();\n } else {\n return obj;\n }\n };\n\n module.exports.assign = assign;\n\n module.exports.isFunction = isFunction;\n\n module.exports.isObject = isObject;\n\n module.exports.isArray = isArray;\n\n module.exports.isEmpty = isEmpty;\n\n module.exports.isPlainObject = isPlainObject;\n\n module.exports.getValue = getValue;\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLAttribute;\n\n module.exports = XMLAttribute = (function() {\n function XMLAttribute(parent, name, value) {\n this.options = parent.options;\n this.stringify = parent.stringify;\n this.parent = parent;\n if (name == null) {\n throw new Error(\"Missing attribute name. \" + this.debugInfo(name));\n }\n if (value == null) {\n throw new Error(\"Missing attribute value. \" + this.debugInfo(name));\n }\n this.name = this.stringify.attName(name);\n this.value = this.stringify.attValue(value);\n }\n\n XMLAttribute.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLAttribute.prototype.toString = function(options) {\n return this.options.writer.set(options).attribute(this);\n };\n\n XMLAttribute.prototype.debugInfo = function(name) {\n name = name || this.name;\n if (name == null) {\n return \"parent: <\" + this.parent.name + \">\";\n } else {\n return \"attribute: {\" + name + \"}, parent: <\" + this.parent.name + \">\";\n }\n };\n\n return XMLAttribute;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLAttribute, XMLElement, XMLNode, getValue, isFunction, isObject, ref,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue;\n\n XMLNode = require('./XMLNode');\n\n XMLAttribute = require('./XMLAttribute');\n\n module.exports = XMLElement = (function(superClass) {\n extend(XMLElement, superClass);\n\n function XMLElement(parent, name, attributes) {\n XMLElement.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing element name. \" + this.debugInfo());\n }\n this.name = this.stringify.eleName(name);\n this.attributes = {};\n if (attributes != null) {\n this.attribute(attributes);\n }\n if (parent.isDocument) {\n this.isRoot = true;\n this.documentObject = parent;\n parent.rootObject = this;\n }\n }\n\n XMLElement.prototype.clone = function() {\n var att, attName, clonedSelf, ref1;\n clonedSelf = Object.create(this);\n if (clonedSelf.isRoot) {\n clonedSelf.documentObject = null;\n }\n clonedSelf.attributes = {};\n ref1 = this.attributes;\n for (attName in ref1) {\n if (!hasProp.call(ref1, attName)) continue;\n att = ref1[attName];\n clonedSelf.attributes[attName] = att.clone();\n }\n clonedSelf.children = [];\n this.children.forEach(function(child) {\n var clonedChild;\n clonedChild = child.clone();\n clonedChild.parent = clonedSelf;\n return clonedSelf.children.push(clonedChild);\n });\n return clonedSelf;\n };\n\n XMLElement.prototype.attribute = function(name, value) {\n var attName, attValue;\n if (name != null) {\n name = getValue(name);\n }\n if (isObject(name)) {\n for (attName in name) {\n if (!hasProp.call(name, attName)) continue;\n attValue = name[attName];\n this.attribute(attName, attValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n if (!this.options.skipNullAttributes || (value != null)) {\n this.attributes[name] = new XMLAttribute(this, name, value);\n }\n }\n return this;\n };\n\n XMLElement.prototype.removeAttribute = function(name) {\n var attName, i, len;\n if (name == null) {\n throw new Error(\"Missing attribute name. \" + this.debugInfo());\n }\n name = getValue(name);\n if (Array.isArray(name)) {\n for (i = 0, len = name.length; i < len; i++) {\n attName = name[i];\n delete this.attributes[attName];\n }\n } else {\n delete this.attributes[name];\n }\n return this;\n };\n\n XMLElement.prototype.toString = function(options) {\n return this.options.writer.set(options).element(this);\n };\n\n XMLElement.prototype.att = function(name, value) {\n return this.attribute(name, value);\n };\n\n XMLElement.prototype.a = function(name, value) {\n return this.attribute(name, value);\n };\n\n return XMLElement;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLCData, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLCData = (function(superClass) {\n extend(XMLCData, superClass);\n\n function XMLCData(parent, text) {\n XMLCData.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing CDATA text. \" + this.debugInfo());\n }\n this.text = this.stringify.cdata(text);\n }\n\n XMLCData.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLCData.prototype.toString = function(options) {\n return this.options.writer.set(options).cdata(this);\n };\n\n return XMLCData;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLComment, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLComment = (function(superClass) {\n extend(XMLComment, superClass);\n\n function XMLComment(parent, text) {\n XMLComment.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing comment text. \" + this.debugInfo());\n }\n this.text = this.stringify.comment(text);\n }\n\n XMLComment.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLComment.prototype.toString = function(options) {\n return this.options.writer.set(options).comment(this);\n };\n\n return XMLComment;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDeclaration, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLDeclaration = (function(superClass) {\n extend(XMLDeclaration, superClass);\n\n function XMLDeclaration(parent, version, encoding, standalone) {\n var ref;\n XMLDeclaration.__super__.constructor.call(this, parent);\n if (isObject(version)) {\n ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;\n }\n if (!version) {\n version = '1.0';\n }\n this.version = this.stringify.xmlVersion(version);\n if (encoding != null) {\n this.encoding = this.stringify.xmlEncoding(encoding);\n }\n if (standalone != null) {\n this.standalone = this.stringify.xmlStandalone(standalone);\n }\n }\n\n XMLDeclaration.prototype.toString = function(options) {\n return this.options.writer.set(options).declaration(this);\n };\n\n return XMLDeclaration;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDTDAttList, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLDTDAttList = (function(superClass) {\n extend(XMLDTDAttList, superClass);\n\n function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n XMLDTDAttList.__super__.constructor.call(this, parent);\n if (elementName == null) {\n throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n }\n if (attributeName == null) {\n throw new Error(\"Missing DTD attribute name. \" + this.debugInfo(elementName));\n }\n if (!attributeType) {\n throw new Error(\"Missing DTD attribute type. \" + this.debugInfo(elementName));\n }\n if (!defaultValueType) {\n throw new Error(\"Missing DTD attribute default. \" + this.debugInfo(elementName));\n }\n if (defaultValueType.indexOf('#') !== 0) {\n defaultValueType = '#' + defaultValueType;\n }\n if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {\n throw new Error(\"Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n }\n if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {\n throw new Error(\"Default value only applies to #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n }\n this.elementName = this.stringify.eleName(elementName);\n this.attributeName = this.stringify.attName(attributeName);\n this.attributeType = this.stringify.dtdAttType(attributeType);\n this.defaultValue = this.stringify.dtdAttDefault(defaultValue);\n this.defaultValueType = defaultValueType;\n }\n\n XMLDTDAttList.prototype.toString = function(options) {\n return this.options.writer.set(options).dtdAttList(this);\n };\n\n return XMLDTDAttList;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDTDEntity, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLDTDEntity = (function(superClass) {\n extend(XMLDTDEntity, superClass);\n\n function XMLDTDEntity(parent, pe, name, value) {\n XMLDTDEntity.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD entity name. \" + this.debugInfo(name));\n }\n if (value == null) {\n throw new Error(\"Missing DTD entity value. \" + this.debugInfo(name));\n }\n this.pe = !!pe;\n this.name = this.stringify.eleName(name);\n if (!isObject(value)) {\n this.value = this.stringify.dtdEntityValue(value);\n } else {\n if (!value.pubID && !value.sysID) {\n throw new Error(\"Public and/or system identifiers are required for an external entity. \" + this.debugInfo(name));\n }\n if (value.pubID && !value.sysID) {\n throw new Error(\"System identifier is required for a public external entity. \" + this.debugInfo(name));\n }\n if (value.pubID != null) {\n this.pubID = this.stringify.dtdPubID(value.pubID);\n }\n if (value.sysID != null) {\n this.sysID = this.stringify.dtdSysID(value.sysID);\n }\n if (value.nData != null) {\n this.nData = this.stringify.dtdNData(value.nData);\n }\n if (this.pe && this.nData) {\n throw new Error(\"Notation declaration is not allowed in a parameter entity. \" + this.debugInfo(name));\n }\n }\n }\n\n XMLDTDEntity.prototype.toString = function(options) {\n return this.options.writer.set(options).dtdEntity(this);\n };\n\n return XMLDTDEntity;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDTDElement, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLDTDElement = (function(superClass) {\n extend(XMLDTDElement, superClass);\n\n function XMLDTDElement(parent, name, value) {\n XMLDTDElement.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n }\n if (!value) {\n value = '(#PCDATA)';\n }\n if (Array.isArray(value)) {\n value = '(' + value.join(',') + ')';\n }\n this.name = this.stringify.eleName(name);\n this.value = this.stringify.dtdElementValue(value);\n }\n\n XMLDTDElement.prototype.toString = function(options) {\n return this.options.writer.set(options).dtdElement(this);\n };\n\n return XMLDTDElement;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDTDNotation, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLDTDNotation = (function(superClass) {\n extend(XMLDTDNotation, superClass);\n\n function XMLDTDNotation(parent, name, value) {\n XMLDTDNotation.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD notation name. \" + this.debugInfo(name));\n }\n if (!value.pubID && !value.sysID) {\n throw new Error(\"Public or system identifiers are required for an external entity. \" + this.debugInfo(name));\n }\n this.name = this.stringify.eleName(name);\n if (value.pubID != null) {\n this.pubID = this.stringify.dtdPubID(value.pubID);\n }\n if (value.sysID != null) {\n this.sysID = this.stringify.dtdSysID(value.sysID);\n }\n }\n\n XMLDTDNotation.prototype.toString = function(options) {\n return this.options.writer.set(options).dtdNotation(this);\n };\n\n return XMLDTDNotation;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNode, isObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n module.exports = XMLDocType = (function(superClass) {\n extend(XMLDocType, superClass);\n\n function XMLDocType(parent, pubID, sysID) {\n var ref, ref1;\n XMLDocType.__super__.constructor.call(this, parent);\n this.name = \"!DOCTYPE\";\n this.documentObject = parent;\n if (isObject(pubID)) {\n ref = pubID, pubID = ref.pubID, sysID = ref.sysID;\n }\n if (sysID == null) {\n ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1];\n }\n if (pubID != null) {\n this.pubID = this.stringify.dtdPubID(pubID);\n }\n if (sysID != null) {\n this.sysID = this.stringify.dtdSysID(sysID);\n }\n }\n\n XMLDocType.prototype.element = function(name, value) {\n var child;\n child = new XMLDTDElement(this, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n var child;\n child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.entity = function(name, value) {\n var child;\n child = new XMLDTDEntity(this, false, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.pEntity = function(name, value) {\n var child;\n child = new XMLDTDEntity(this, true, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.notation = function(name, value) {\n var child;\n child = new XMLDTDNotation(this, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.toString = function(options) {\n return this.options.writer.set(options).docType(this);\n };\n\n XMLDocType.prototype.ele = function(name, value) {\n return this.element(name, value);\n };\n\n XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);\n };\n\n XMLDocType.prototype.ent = function(name, value) {\n return this.entity(name, value);\n };\n\n XMLDocType.prototype.pent = function(name, value) {\n return this.pEntity(name, value);\n };\n\n XMLDocType.prototype.not = function(name, value) {\n return this.notation(name, value);\n };\n\n XMLDocType.prototype.up = function() {\n return this.root() || this.documentObject;\n };\n\n return XMLDocType;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLNode, XMLRaw,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLRaw = (function(superClass) {\n extend(XMLRaw, superClass);\n\n function XMLRaw(parent, text) {\n XMLRaw.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing raw text. \" + this.debugInfo());\n }\n this.value = this.stringify.raw(text);\n }\n\n XMLRaw.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLRaw.prototype.toString = function(options) {\n return this.options.writer.set(options).raw(this);\n };\n\n return XMLRaw;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLNode, XMLText,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLText = (function(superClass) {\n extend(XMLText, superClass);\n\n function XMLText(parent, text) {\n XMLText.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing element text. \" + this.debugInfo());\n }\n this.value = this.stringify.eleText(text);\n }\n\n XMLText.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLText.prototype.toString = function(options) {\n return this.options.writer.set(options).text(this);\n };\n\n return XMLText;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLNode, XMLProcessingInstruction,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLProcessingInstruction = (function(superClass) {\n extend(XMLProcessingInstruction, superClass);\n\n function XMLProcessingInstruction(parent, target, value) {\n XMLProcessingInstruction.__super__.constructor.call(this, parent);\n if (target == null) {\n throw new Error(\"Missing instruction target. \" + this.debugInfo());\n }\n this.target = this.stringify.insTarget(target);\n if (value) {\n this.value = this.stringify.insValue(value);\n }\n }\n\n XMLProcessingInstruction.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLProcessingInstruction.prototype.toString = function(options) {\n return this.options.writer.set(options).processingInstruction(this);\n };\n\n return XMLProcessingInstruction;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDummy, XMLNode,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLDummy = (function(superClass) {\n extend(XMLDummy, superClass);\n\n function XMLDummy(parent) {\n XMLDummy.__super__.constructor.call(this, parent);\n this.isDummy = true;\n }\n\n XMLDummy.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLDummy.prototype.toString = function(options) {\n return '';\n };\n\n return XMLDummy;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLNode, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref,\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty, getValue = ref.getValue;\n\n XMLElement = null;\n\n XMLCData = null;\n\n XMLComment = null;\n\n XMLDeclaration = null;\n\n XMLDocType = null;\n\n XMLRaw = null;\n\n XMLText = null;\n\n XMLProcessingInstruction = null;\n\n XMLDummy = null;\n\n module.exports = XMLNode = (function() {\n function XMLNode(parent) {\n this.parent = parent;\n if (this.parent) {\n this.options = this.parent.options;\n this.stringify = this.parent.stringify;\n }\n this.children = [];\n if (!XMLElement) {\n XMLElement = require('./XMLElement');\n XMLCData = require('./XMLCData');\n XMLComment = require('./XMLComment');\n XMLDeclaration = require('./XMLDeclaration');\n XMLDocType = require('./XMLDocType');\n XMLRaw = require('./XMLRaw');\n XMLText = require('./XMLText');\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n XMLDummy = require('./XMLDummy');\n }\n }\n\n XMLNode.prototype.element = function(name, attributes, text) {\n var childNode, item, j, k, key, lastChild, len, len1, ref1, ref2, val;\n lastChild = null;\n if (attributes === null && (text == null)) {\n ref1 = [{}, null], attributes = ref1[0], text = ref1[1];\n }\n if (attributes == null) {\n attributes = {};\n }\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref2 = [attributes, text], text = ref2[0], attributes = ref2[1];\n }\n if (name != null) {\n name = getValue(name);\n }\n if (Array.isArray(name)) {\n for (j = 0, len = name.length; j < len; j++) {\n item = name[j];\n lastChild = this.element(item);\n }\n } else if (isFunction(name)) {\n lastChild = this.element(name.apply());\n } else if (isObject(name)) {\n for (key in name) {\n if (!hasProp.call(name, key)) continue;\n val = name[key];\n if (isFunction(val)) {\n val = val.apply();\n }\n if ((isObject(val)) && (isEmpty(val))) {\n val = null;\n }\n if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {\n lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);\n } else if (!this.options.separateArrayItems && Array.isArray(val)) {\n for (k = 0, len1 = val.length; k < len1; k++) {\n item = val[k];\n childNode = {};\n childNode[key] = item;\n lastChild = this.element(childNode);\n }\n } else if (isObject(val)) {\n lastChild = this.element(key);\n lastChild.element(val);\n } else {\n lastChild = this.element(key, val);\n }\n }\n } else if (this.options.skipNullNodes && text === null) {\n lastChild = this.dummy();\n } else {\n if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {\n lastChild = this.text(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {\n lastChild = this.cdata(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {\n lastChild = this.comment(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {\n lastChild = this.raw(text);\n } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && name.indexOf(this.stringify.convertPIKey) === 0) {\n lastChild = this.instruction(name.substr(this.stringify.convertPIKey.length), text);\n } else {\n lastChild = this.node(name, attributes, text);\n }\n }\n if (lastChild == null) {\n throw new Error(\"Could not create any elements with: \" + name + \". \" + this.debugInfo());\n }\n return lastChild;\n };\n\n XMLNode.prototype.insertBefore = function(name, attributes, text) {\n var child, i, removed;\n if (this.isRoot) {\n throw new Error(\"Cannot insert elements at root level. \" + this.debugInfo(name));\n }\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.element(name, attributes, text);\n Array.prototype.push.apply(this.parent.children, removed);\n return child;\n };\n\n XMLNode.prototype.insertAfter = function(name, attributes, text) {\n var child, i, removed;\n if (this.isRoot) {\n throw new Error(\"Cannot insert elements at root level. \" + this.debugInfo(name));\n }\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.element(name, attributes, text);\n Array.prototype.push.apply(this.parent.children, removed);\n return child;\n };\n\n XMLNode.prototype.remove = function() {\n var i, ref1;\n if (this.isRoot) {\n throw new Error(\"Cannot remove the root element. \" + this.debugInfo());\n }\n i = this.parent.children.indexOf(this);\n [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref1 = [])), ref1;\n return this.parent;\n };\n\n XMLNode.prototype.node = function(name, attributes, text) {\n var child, ref1;\n if (name != null) {\n name = getValue(name);\n }\n attributes || (attributes = {});\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];\n }\n child = new XMLElement(this, name, attributes);\n if (text != null) {\n child.text(text);\n }\n this.children.push(child);\n return child;\n };\n\n XMLNode.prototype.text = function(value) {\n var child;\n child = new XMLText(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.cdata = function(value) {\n var child;\n child = new XMLCData(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.comment = function(value) {\n var child;\n child = new XMLComment(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.commentBefore = function(value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.comment(value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.commentAfter = function(value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.comment(value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.raw = function(value) {\n var child;\n child = new XMLRaw(this, value);\n this.children.push(child);\n return this;\n };\n\n XMLNode.prototype.dummy = function() {\n var child;\n child = new XMLDummy(this);\n this.children.push(child);\n return child;\n };\n\n XMLNode.prototype.instruction = function(target, value) {\n var insTarget, insValue, instruction, j, len;\n if (target != null) {\n target = getValue(target);\n }\n if (value != null) {\n value = getValue(value);\n }\n if (Array.isArray(target)) {\n for (j = 0, len = target.length; j < len; j++) {\n insTarget = target[j];\n this.instruction(insTarget);\n }\n } else if (isObject(target)) {\n for (insTarget in target) {\n if (!hasProp.call(target, insTarget)) continue;\n insValue = target[insTarget];\n this.instruction(insTarget, insValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n instruction = new XMLProcessingInstruction(this, target, value);\n this.children.push(instruction);\n }\n return this;\n };\n\n XMLNode.prototype.instructionBefore = function(target, value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i);\n child = this.parent.instruction(target, value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.instructionAfter = function(target, value) {\n var child, i, removed;\n i = this.parent.children.indexOf(this);\n removed = this.parent.children.splice(i + 1);\n child = this.parent.instruction(target, value);\n Array.prototype.push.apply(this.parent.children, removed);\n return this;\n };\n\n XMLNode.prototype.declaration = function(version, encoding, standalone) {\n var doc, xmldec;\n doc = this.document();\n xmldec = new XMLDeclaration(doc, version, encoding, standalone);\n if (doc.children[0] instanceof XMLDeclaration) {\n doc.children[0] = xmldec;\n } else {\n doc.children.unshift(xmldec);\n }\n return doc.root() || doc;\n };\n\n XMLNode.prototype.doctype = function(pubID, sysID) {\n var child, doc, doctype, i, j, k, len, len1, ref1, ref2;\n doc = this.document();\n doctype = new XMLDocType(doc, pubID, sysID);\n ref1 = doc.children;\n for (i = j = 0, len = ref1.length; j < len; i = ++j) {\n child = ref1[i];\n if (child instanceof XMLDocType) {\n doc.children[i] = doctype;\n return doctype;\n }\n }\n ref2 = doc.children;\n for (i = k = 0, len1 = ref2.length; k < len1; i = ++k) {\n child = ref2[i];\n if (child.isRoot) {\n doc.children.splice(i, 0, doctype);\n return doctype;\n }\n }\n doc.children.push(doctype);\n return doctype;\n };\n\n XMLNode.prototype.up = function() {\n if (this.isRoot) {\n throw new Error(\"The root node has no parent. Use doc() if you need to get the document object.\");\n }\n return this.parent;\n };\n\n XMLNode.prototype.root = function() {\n var node;\n node = this;\n while (node) {\n if (node.isDocument) {\n return node.rootObject;\n } else if (node.isRoot) {\n return node;\n } else {\n node = node.parent;\n }\n }\n };\n\n XMLNode.prototype.document = function() {\n var node;\n node = this;\n while (node) {\n if (node.isDocument) {\n return node;\n } else {\n node = node.parent;\n }\n }\n };\n\n XMLNode.prototype.end = function(options) {\n return this.document().end(options);\n };\n\n XMLNode.prototype.prev = function() {\n var i;\n i = this.parent.children.indexOf(this);\n while (i > 0 && this.parent.children[i - 1].isDummy) {\n i = i - 1;\n }\n if (i < 1) {\n throw new Error(\"Already at the first node. \" + this.debugInfo());\n }\n return this.parent.children[i - 1];\n };\n\n XMLNode.prototype.next = function() {\n var i;\n i = this.parent.children.indexOf(this);\n while (i < this.parent.children.length - 1 && this.parent.children[i + 1].isDummy) {\n i = i + 1;\n }\n if (i === -1 || i === this.parent.children.length - 1) {\n throw new Error(\"Already at the last node. \" + this.debugInfo());\n }\n return this.parent.children[i + 1];\n };\n\n XMLNode.prototype.importDocument = function(doc) {\n var clonedRoot;\n clonedRoot = doc.root().clone();\n clonedRoot.parent = this;\n clonedRoot.isRoot = false;\n this.children.push(clonedRoot);\n return this;\n };\n\n XMLNode.prototype.debugInfo = function(name) {\n var ref1, ref2;\n name = name || this.name;\n if ((name == null) && !((ref1 = this.parent) != null ? ref1.name : void 0)) {\n return \"\";\n } else if (name == null) {\n return \"parent: <\" + this.parent.name + \">\";\n } else if (!((ref2 = this.parent) != null ? ref2.name : void 0)) {\n return \"node: <\" + name + \">\";\n } else {\n return \"node: <\" + name + \">, parent: <\" + this.parent.name + \">\";\n }\n };\n\n XMLNode.prototype.ele = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLNode.prototype.nod = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLNode.prototype.txt = function(value) {\n return this.text(value);\n };\n\n XMLNode.prototype.dat = function(value) {\n return this.cdata(value);\n };\n\n XMLNode.prototype.com = function(value) {\n return this.comment(value);\n };\n\n XMLNode.prototype.ins = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLNode.prototype.doc = function() {\n return this.document();\n };\n\n XMLNode.prototype.dec = function(version, encoding, standalone) {\n return this.declaration(version, encoding, standalone);\n };\n\n XMLNode.prototype.dtd = function(pubID, sysID) {\n return this.doctype(pubID, sysID);\n };\n\n XMLNode.prototype.e = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLNode.prototype.n = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLNode.prototype.t = function(value) {\n return this.text(value);\n };\n\n XMLNode.prototype.d = function(value) {\n return this.cdata(value);\n };\n\n XMLNode.prototype.c = function(value) {\n return this.comment(value);\n };\n\n XMLNode.prototype.r = function(value) {\n return this.raw(value);\n };\n\n XMLNode.prototype.i = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLNode.prototype.u = function() {\n return this.up();\n };\n\n XMLNode.prototype.importXMLBuilder = function(doc) {\n return this.importDocument(doc);\n };\n\n return XMLNode;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLStringifier,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n hasProp = {}.hasOwnProperty;\n\n module.exports = XMLStringifier = (function() {\n function XMLStringifier(options) {\n this.assertLegalChar = bind(this.assertLegalChar, this);\n var key, ref, value;\n options || (options = {});\n this.noDoubleEncoding = options.noDoubleEncoding;\n ref = options.stringify || {};\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this[key] = value;\n }\n }\n\n XMLStringifier.prototype.eleName = function(val) {\n val = '' + val || '';\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.eleText = function(val) {\n val = '' + val || '';\n return this.assertLegalChar(this.elEscape(val));\n };\n\n XMLStringifier.prototype.cdata = function(val) {\n val = '' + val || '';\n val = val.replace(']]>', ']]]]><![CDATA[>');\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.comment = function(val) {\n val = '' + val || '';\n if (val.match(/--/)) {\n throw new Error(\"Comment text cannot contain double-hypen: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.raw = function(val) {\n return '' + val || '';\n };\n\n XMLStringifier.prototype.attName = function(val) {\n return val = '' + val || '';\n };\n\n XMLStringifier.prototype.attValue = function(val) {\n val = '' + val || '';\n return this.attEscape(val);\n };\n\n XMLStringifier.prototype.insTarget = function(val) {\n return '' + val || '';\n };\n\n XMLStringifier.prototype.insValue = function(val) {\n val = '' + val || '';\n if (val.match(/\\?>/)) {\n throw new Error(\"Invalid processing instruction value: \" + val);\n }\n return val;\n };\n\n XMLStringifier.prototype.xmlVersion = function(val) {\n val = '' + val || '';\n if (!val.match(/1\\.[0-9]+/)) {\n throw new Error(\"Invalid version number: \" + val);\n }\n return val;\n };\n\n XMLStringifier.prototype.xmlEncoding = function(val) {\n val = '' + val || '';\n if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {\n throw new Error(\"Invalid encoding: \" + val);\n }\n return val;\n };\n\n XMLStringifier.prototype.xmlStandalone = function(val) {\n if (val) {\n return \"yes\";\n } else {\n return \"no\";\n }\n };\n\n XMLStringifier.prototype.dtdPubID = function(val) {\n return '' + val || '';\n };\n\n XMLStringifier.prototype.dtdSysID = function(val) {\n return '' + val || '';\n };\n\n XMLStringifier.prototype.dtdElementValue = function(val) {\n return '' + val || '';\n };\n\n XMLStringifier.prototype.dtdAttType = function(val) {\n return '' + val || '';\n };\n\n XMLStringifier.prototype.dtdAttDefault = function(val) {\n if (val != null) {\n return '' + val || '';\n } else {\n return val;\n }\n };\n\n XMLStringifier.prototype.dtdEntityValue = function(val) {\n return '' + val || '';\n };\n\n XMLStringifier.prototype.dtdNData = function(val) {\n return '' + val || '';\n };\n\n XMLStringifier.prototype.convertAttKey = '@';\n\n XMLStringifier.prototype.convertPIKey = '?';\n\n XMLStringifier.prototype.convertTextKey = '#text';\n\n XMLStringifier.prototype.convertCDataKey = '#cdata';\n\n XMLStringifier.prototype.convertCommentKey = '#comment';\n\n XMLStringifier.prototype.convertRawKey = '#raw';\n\n XMLStringifier.prototype.assertLegalChar = function(str) {\n var res;\n res = str.match(/[\\0\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/);\n if (res) {\n throw new Error(\"Invalid character in string: \" + str + \" at index \" + res.index);\n }\n return str;\n };\n\n XMLStringifier.prototype.elEscape = function(str) {\n var ampregex;\n ampregex = this.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n return str.replace(ampregex, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\\r/g, '
');\n };\n\n XMLStringifier.prototype.attEscape = function(str) {\n var ampregex;\n ampregex = this.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n return str.replace(ampregex, '&').replace(/</g, '<').replace(/\"/g, '"').replace(/\\t/g, '	').replace(/\\n/g, '
').replace(/\\r/g, '
');\n };\n\n return XMLStringifier;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLWriterBase,\n hasProp = {}.hasOwnProperty;\n\n module.exports = XMLWriterBase = (function() {\n function XMLWriterBase(options) {\n var key, ref, ref1, ref2, ref3, ref4, ref5, ref6, value;\n options || (options = {});\n this.pretty = options.pretty || false;\n this.allowEmpty = (ref = options.allowEmpty) != null ? ref : false;\n if (this.pretty) {\n this.indent = (ref1 = options.indent) != null ? ref1 : ' ';\n this.newline = (ref2 = options.newline) != null ? ref2 : '\\n';\n this.offset = (ref3 = options.offset) != null ? ref3 : 0;\n this.dontprettytextnodes = (ref4 = options.dontprettytextnodes) != null ? ref4 : 0;\n } else {\n this.indent = '';\n this.newline = '';\n this.offset = 0;\n this.dontprettytextnodes = 0;\n }\n this.spacebeforeslash = (ref5 = options.spacebeforeslash) != null ? ref5 : '';\n if (this.spacebeforeslash === true) {\n this.spacebeforeslash = ' ';\n }\n this.newlinedefault = this.newline;\n this.prettydefault = this.pretty;\n ref6 = options.writer || {};\n for (key in ref6) {\n if (!hasProp.call(ref6, key)) continue;\n value = ref6[key];\n this[key] = value;\n }\n }\n\n XMLWriterBase.prototype.set = function(options) {\n var key, ref, value;\n options || (options = {});\n if (\"pretty\" in options) {\n this.pretty = options.pretty;\n }\n if (\"allowEmpty\" in options) {\n this.allowEmpty = options.allowEmpty;\n }\n if (this.pretty) {\n this.indent = \"indent\" in options ? options.indent : ' ';\n this.newline = \"newline\" in options ? options.newline : '\\n';\n this.offset = \"offset\" in options ? options.offset : 0;\n this.dontprettytextnodes = \"dontprettytextnodes\" in options ? options.dontprettytextnodes : 0;\n } else {\n this.indent = '';\n this.newline = '';\n this.offset = 0;\n this.dontprettytextnodes = 0;\n }\n this.spacebeforeslash = \"spacebeforeslash\" in options ? options.spacebeforeslash : '';\n if (this.spacebeforeslash === true) {\n this.spacebeforeslash = ' ';\n }\n this.newlinedefault = this.newline;\n this.prettydefault = this.pretty;\n ref = options.writer || {};\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this[key] = value;\n }\n return this;\n };\n\n XMLWriterBase.prototype.space = function(level) {\n var indent;\n if (this.pretty) {\n indent = (level || 0) + this.offset + 1;\n if (indent > 0) {\n return new Array(indent).join(this.indent);\n } else {\n return '';\n }\n } else {\n return '';\n }\n };\n\n return XMLWriterBase;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLText, XMLWriterBase,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLDeclaration = require('./XMLDeclaration');\n\n XMLDocType = require('./XMLDocType');\n\n XMLCData = require('./XMLCData');\n\n XMLComment = require('./XMLComment');\n\n XMLElement = require('./XMLElement');\n\n XMLRaw = require('./XMLRaw');\n\n XMLText = require('./XMLText');\n\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n XMLDummy = require('./XMLDummy');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLWriterBase = require('./XMLWriterBase');\n\n module.exports = XMLStringWriter = (function(superClass) {\n extend(XMLStringWriter, superClass);\n\n function XMLStringWriter(options) {\n XMLStringWriter.__super__.constructor.call(this, options);\n }\n\n XMLStringWriter.prototype.document = function(doc) {\n var child, i, len, r, ref;\n this.textispresent = false;\n r = '';\n ref = doc.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child instanceof XMLDummy) {\n continue;\n }\n r += (function() {\n switch (false) {\n case !(child instanceof XMLDeclaration):\n return this.declaration(child);\n case !(child instanceof XMLDocType):\n return this.docType(child);\n case !(child instanceof XMLComment):\n return this.comment(child);\n case !(child instanceof XMLProcessingInstruction):\n return this.processingInstruction(child);\n default:\n return this.element(child, 0);\n }\n }).call(this);\n }\n if (this.pretty && r.slice(-this.newline.length) === this.newline) {\n r = r.slice(0, -this.newline.length);\n }\n return r;\n };\n\n XMLStringWriter.prototype.attribute = function(att) {\n return ' ' + att.name + '=\"' + att.value + '\"';\n };\n\n XMLStringWriter.prototype.cdata = function(node, level) {\n return this.space(level) + '<![CDATA[' + node.text + ']]>' + this.newline;\n };\n\n XMLStringWriter.prototype.comment = function(node, level) {\n return this.space(level) + '<!-- ' + node.text + ' -->' + this.newline;\n };\n\n XMLStringWriter.prototype.declaration = function(node, level) {\n var r;\n r = this.space(level);\n r += '<?xml version=\"' + node.version + '\"';\n if (node.encoding != null) {\n r += ' encoding=\"' + node.encoding + '\"';\n }\n if (node.standalone != null) {\n r += ' standalone=\"' + node.standalone + '\"';\n }\n r += this.spacebeforeslash + '?>';\n r += this.newline;\n return r;\n };\n\n XMLStringWriter.prototype.docType = function(node, level) {\n var child, i, len, r, ref;\n level || (level = 0);\n r = this.space(level);\n r += '<!DOCTYPE ' + node.root().name;\n if (node.pubID && node.sysID) {\n r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n } else if (node.sysID) {\n r += ' SYSTEM \"' + node.sysID + '\"';\n }\n if (node.children.length > 0) {\n r += ' [';\n r += this.newline;\n ref = node.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n r += (function() {\n switch (false) {\n case !(child instanceof XMLDTDAttList):\n return this.dtdAttList(child, level + 1);\n case !(child instanceof XMLDTDElement):\n return this.dtdElement(child, level + 1);\n case !(child instanceof XMLDTDEntity):\n return this.dtdEntity(child, level + 1);\n case !(child instanceof XMLDTDNotation):\n return this.dtdNotation(child, level + 1);\n case !(child instanceof XMLCData):\n return this.cdata(child, level + 1);\n case !(child instanceof XMLComment):\n return this.comment(child, level + 1);\n case !(child instanceof XMLProcessingInstruction):\n return this.processingInstruction(child, level + 1);\n default:\n throw new Error(\"Unknown DTD node type: \" + child.constructor.name);\n }\n }).call(this);\n }\n r += ']';\n }\n r += this.spacebeforeslash + '>';\n r += this.newline;\n return r;\n };\n\n XMLStringWriter.prototype.element = function(node, level) {\n var att, child, i, j, len, len1, name, r, ref, ref1, ref2, space, textispresentwasset;\n level || (level = 0);\n textispresentwasset = false;\n if (this.textispresent) {\n this.newline = '';\n this.pretty = false;\n } else {\n this.newline = this.newlinedefault;\n this.pretty = this.prettydefault;\n }\n space = this.space(level);\n r = '';\n r += space + '<' + node.name;\n ref = node.attributes;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n r += this.attribute(att);\n }\n if (node.children.length === 0 || node.children.every(function(e) {\n return e.value === '';\n })) {\n if (this.allowEmpty) {\n r += '></' + node.name + '>' + this.newline;\n } else {\n r += this.spacebeforeslash + '/>' + this.newline;\n }\n } else if (this.pretty && node.children.length === 1 && (node.children[0].value != null)) {\n r += '>';\n r += node.children[0].value;\n r += '</' + node.name + '>' + this.newline;\n } else {\n if (this.dontprettytextnodes) {\n ref1 = node.children;\n for (i = 0, len = ref1.length; i < len; i++) {\n child = ref1[i];\n if (child.value != null) {\n this.textispresent++;\n textispresentwasset = true;\n break;\n }\n }\n }\n if (this.textispresent) {\n this.newline = '';\n this.pretty = false;\n space = this.space(level);\n }\n r += '>' + this.newline;\n ref2 = node.children;\n for (j = 0, len1 = ref2.length; j < len1; j++) {\n child = ref2[j];\n r += (function() {\n switch (false) {\n case !(child instanceof XMLCData):\n return this.cdata(child, level + 1);\n case !(child instanceof XMLComment):\n return this.comment(child, level + 1);\n case !(child instanceof XMLElement):\n return this.element(child, level + 1);\n case !(child instanceof XMLRaw):\n return this.raw(child, level + 1);\n case !(child instanceof XMLText):\n return this.text(child, level + 1);\n case !(child instanceof XMLProcessingInstruction):\n return this.processingInstruction(child, level + 1);\n case !(child instanceof XMLDummy):\n return '';\n default:\n throw new Error(\"Unknown XML node type: \" + child.constructor.name);\n }\n }).call(this);\n }\n if (textispresentwasset) {\n this.textispresent--;\n }\n if (!this.textispresent) {\n this.newline = this.newlinedefault;\n this.pretty = this.prettydefault;\n }\n r += space + '</' + node.name + '>' + this.newline;\n }\n return r;\n };\n\n XMLStringWriter.prototype.processingInstruction = function(node, level) {\n var r;\n r = this.space(level) + '<?' + node.target;\n if (node.value) {\n r += ' ' + node.value;\n }\n r += this.spacebeforeslash + '?>' + this.newline;\n return r;\n };\n\n XMLStringWriter.prototype.raw = function(node, level) {\n return this.space(level) + node.value + this.newline;\n };\n\n XMLStringWriter.prototype.text = function(node, level) {\n return this.space(level) + node.value + this.newline;\n };\n\n XMLStringWriter.prototype.dtdAttList = function(node, level) {\n var r;\n r = this.space(level) + '<!ATTLIST ' + node.elementName + ' ' + node.attributeName + ' ' + node.attributeType;\n if (node.defaultValueType !== '#DEFAULT') {\n r += ' ' + node.defaultValueType;\n }\n if (node.defaultValue) {\n r += ' \"' + node.defaultValue + '\"';\n }\n r += this.spacebeforeslash + '>' + this.newline;\n return r;\n };\n\n XMLStringWriter.prototype.dtdElement = function(node, level) {\n return this.space(level) + '<!ELEMENT ' + node.name + ' ' + node.value + this.spacebeforeslash + '>' + this.newline;\n };\n\n XMLStringWriter.prototype.dtdEntity = function(node, level) {\n var r;\n r = this.space(level) + '<!ENTITY';\n if (node.pe) {\n r += ' %';\n }\n r += ' ' + node.name;\n if (node.value) {\n r += ' \"' + node.value + '\"';\n } else {\n if (node.pubID && node.sysID) {\n r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n } else if (node.sysID) {\n r += ' SYSTEM \"' + node.sysID + '\"';\n }\n if (node.nData) {\n r += ' NDATA ' + node.nData;\n }\n }\n r += this.spacebeforeslash + '>' + this.newline;\n return r;\n };\n\n XMLStringWriter.prototype.dtdNotation = function(node, level) {\n var r;\n r = this.space(level) + '<!NOTATION ' + node.name;\n if (node.pubID && node.sysID) {\n r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n } else if (node.pubID) {\n r += ' PUBLIC \"' + node.pubID + '\"';\n } else if (node.sysID) {\n r += ' SYSTEM \"' + node.sysID + '\"';\n }\n r += this.spacebeforeslash + '>' + this.newline;\n return r;\n };\n\n XMLStringWriter.prototype.openNode = function(node, level) {\n var att, name, r, ref;\n level || (level = 0);\n if (node instanceof XMLElement) {\n r = this.space(level) + '<' + node.name;\n ref = node.attributes;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n r += this.attribute(att);\n }\n r += (node.children ? '>' : '/>') + this.newline;\n return r;\n } else {\n r = this.space(level) + '<!DOCTYPE ' + node.rootNodeName;\n if (node.pubID && node.sysID) {\n r += ' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"';\n } else if (node.sysID) {\n r += ' SYSTEM \"' + node.sysID + '\"';\n }\n r += (node.children ? ' [' : '>') + this.newline;\n return r;\n }\n };\n\n XMLStringWriter.prototype.closeNode = function(node, level) {\n level || (level = 0);\n switch (false) {\n case !(node instanceof XMLElement):\n return this.space(level) + '</' + node.name + '>' + this.newline;\n case !(node instanceof XMLDocType):\n return this.space(level) + ']>' + this.newline;\n }\n };\n\n return XMLStringWriter;\n\n })(XMLWriterBase);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n isPlainObject = require('./Utility').isPlainObject;\n\n XMLNode = require('./XMLNode');\n\n XMLStringifier = require('./XMLStringifier');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n module.exports = XMLDocument = (function(superClass) {\n extend(XMLDocument, superClass);\n\n function XMLDocument(options) {\n XMLDocument.__super__.constructor.call(this, null);\n this.name = \"?xml\";\n options || (options = {});\n if (!options.writer) {\n options.writer = new XMLStringWriter();\n }\n this.options = options;\n this.stringify = new XMLStringifier(options);\n this.isDocument = true;\n }\n\n XMLDocument.prototype.end = function(writer) {\n var writerOptions;\n if (!writer) {\n writer = this.options.writer;\n } else if (isPlainObject(writer)) {\n writerOptions = writer;\n writer = this.options.writer.set(writerOptions);\n }\n return writer.document(this);\n };\n\n XMLDocument.prototype.toString = function(options) {\n return this.options.writer.set(options).document(this);\n };\n\n return XMLDocument;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref,\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue;\n\n XMLElement = require('./XMLElement');\n\n XMLCData = require('./XMLCData');\n\n XMLComment = require('./XMLComment');\n\n XMLRaw = require('./XMLRaw');\n\n XMLText = require('./XMLText');\n\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n XMLDeclaration = require('./XMLDeclaration');\n\n XMLDocType = require('./XMLDocType');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLAttribute = require('./XMLAttribute');\n\n XMLStringifier = require('./XMLStringifier');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n module.exports = XMLDocumentCB = (function() {\n function XMLDocumentCB(options, onData, onEnd) {\n var writerOptions;\n this.name = \"?xml\";\n options || (options = {});\n if (!options.writer) {\n options.writer = new XMLStringWriter(options);\n } else if (isPlainObject(options.writer)) {\n writerOptions = options.writer;\n options.writer = new XMLStringWriter(writerOptions);\n }\n this.options = options;\n this.writer = options.writer;\n this.stringify = new XMLStringifier(options);\n this.onDataCallback = onData || function() {};\n this.onEndCallback = onEnd || function() {};\n this.currentNode = null;\n this.currentLevel = -1;\n this.openTags = {};\n this.documentStarted = false;\n this.documentCompleted = false;\n this.root = null;\n }\n\n XMLDocumentCB.prototype.node = function(name, attributes, text) {\n var ref1, ref2;\n if (name == null) {\n throw new Error(\"Missing node name.\");\n }\n if (this.root && this.currentLevel === -1) {\n throw new Error(\"Document can only have one root node. \" + this.debugInfo(name));\n }\n this.openCurrent();\n name = getValue(name);\n if (attributes === null && (text == null)) {\n ref1 = [{}, null], attributes = ref1[0], text = ref1[1];\n }\n if (attributes == null) {\n attributes = {};\n }\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref2 = [attributes, text], text = ref2[0], attributes = ref2[1];\n }\n this.currentNode = new XMLElement(this, name, attributes);\n this.currentNode.children = false;\n this.currentLevel++;\n this.openTags[this.currentLevel] = this.currentNode;\n if (text != null) {\n this.text(text);\n }\n return this;\n };\n\n XMLDocumentCB.prototype.element = function(name, attributes, text) {\n if (this.currentNode && this.currentNode instanceof XMLDocType) {\n return this.dtdElement.apply(this, arguments);\n } else {\n return this.node(name, attributes, text);\n }\n };\n\n XMLDocumentCB.prototype.attribute = function(name, value) {\n var attName, attValue;\n if (!this.currentNode || this.currentNode.children) {\n throw new Error(\"att() can only be used immediately after an ele() call in callback mode. \" + this.debugInfo(name));\n }\n if (name != null) {\n name = getValue(name);\n }\n if (isObject(name)) {\n for (attName in name) {\n if (!hasProp.call(name, attName)) continue;\n attValue = name[attName];\n this.attribute(attName, attValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n if (!this.options.skipNullAttributes || (value != null)) {\n this.currentNode.attributes[name] = new XMLAttribute(this, name, value);\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.text = function(value) {\n var node;\n this.openCurrent();\n node = new XMLText(this, value);\n this.onData(this.writer.text(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.cdata = function(value) {\n var node;\n this.openCurrent();\n node = new XMLCData(this, value);\n this.onData(this.writer.cdata(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.comment = function(value) {\n var node;\n this.openCurrent();\n node = new XMLComment(this, value);\n this.onData(this.writer.comment(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.raw = function(value) {\n var node;\n this.openCurrent();\n node = new XMLRaw(this, value);\n this.onData(this.writer.raw(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.instruction = function(target, value) {\n var i, insTarget, insValue, len, node;\n this.openCurrent();\n if (target != null) {\n target = getValue(target);\n }\n if (value != null) {\n value = getValue(value);\n }\n if (Array.isArray(target)) {\n for (i = 0, len = target.length; i < len; i++) {\n insTarget = target[i];\n this.instruction(insTarget);\n }\n } else if (isObject(target)) {\n for (insTarget in target) {\n if (!hasProp.call(target, insTarget)) continue;\n insValue = target[insTarget];\n this.instruction(insTarget, insValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n node = new XMLProcessingInstruction(this, target, value);\n this.onData(this.writer.processingInstruction(node, this.currentLevel + 1), this.currentLevel + 1);\n }\n return this;\n };\n\n XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {\n var node;\n this.openCurrent();\n if (this.documentStarted) {\n throw new Error(\"declaration() must be the first node.\");\n }\n node = new XMLDeclaration(this, version, encoding, standalone);\n this.onData(this.writer.declaration(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {\n this.openCurrent();\n if (root == null) {\n throw new Error(\"Missing root node name.\");\n }\n if (this.root) {\n throw new Error(\"dtd() must come before the root node.\");\n }\n this.currentNode = new XMLDocType(this, pubID, sysID);\n this.currentNode.rootNodeName = root;\n this.currentNode.children = false;\n this.currentLevel++;\n this.openTags[this.currentLevel] = this.currentNode;\n return this;\n };\n\n XMLDocumentCB.prototype.dtdElement = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDElement(this, name, value);\n this.onData(this.writer.dtdElement(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n var node;\n this.openCurrent();\n node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n this.onData(this.writer.dtdAttList(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.entity = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDEntity(this, false, name, value);\n this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.pEntity = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDEntity(this, true, name, value);\n this.onData(this.writer.dtdEntity(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.notation = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDNotation(this, name, value);\n this.onData(this.writer.dtdNotation(node, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.up = function() {\n if (this.currentLevel < 0) {\n throw new Error(\"The document node has no parent.\");\n }\n if (this.currentNode) {\n if (this.currentNode.children) {\n this.closeNode(this.currentNode);\n } else {\n this.openNode(this.currentNode);\n }\n this.currentNode = null;\n } else {\n this.closeNode(this.openTags[this.currentLevel]);\n }\n delete this.openTags[this.currentLevel];\n this.currentLevel--;\n return this;\n };\n\n XMLDocumentCB.prototype.end = function() {\n while (this.currentLevel >= 0) {\n this.up();\n }\n return this.onEnd();\n };\n\n XMLDocumentCB.prototype.openCurrent = function() {\n if (this.currentNode) {\n this.currentNode.children = true;\n return this.openNode(this.currentNode);\n }\n };\n\n XMLDocumentCB.prototype.openNode = function(node) {\n if (!node.isOpen) {\n if (!this.root && this.currentLevel === 0 && node instanceof XMLElement) {\n this.root = node;\n }\n this.onData(this.writer.openNode(node, this.currentLevel), this.currentLevel);\n return node.isOpen = true;\n }\n };\n\n XMLDocumentCB.prototype.closeNode = function(node) {\n if (!node.isClosed) {\n this.onData(this.writer.closeNode(node, this.currentLevel), this.currentLevel);\n return node.isClosed = true;\n }\n };\n\n XMLDocumentCB.prototype.onData = function(chunk, level) {\n this.documentStarted = true;\n return this.onDataCallback(chunk, level + 1);\n };\n\n XMLDocumentCB.prototype.onEnd = function() {\n this.documentCompleted = true;\n return this.onEndCallback();\n };\n\n XMLDocumentCB.prototype.debugInfo = function(name) {\n if (name == null) {\n return \"\";\n } else {\n return \"node: <\" + name + \">\";\n }\n };\n\n XMLDocumentCB.prototype.ele = function() {\n return this.element.apply(this, arguments);\n };\n\n XMLDocumentCB.prototype.nod = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.txt = function(value) {\n return this.text(value);\n };\n\n XMLDocumentCB.prototype.dat = function(value) {\n return this.cdata(value);\n };\n\n XMLDocumentCB.prototype.com = function(value) {\n return this.comment(value);\n };\n\n XMLDocumentCB.prototype.ins = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {\n return this.declaration(version, encoding, standalone);\n };\n\n XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {\n return this.doctype(root, pubID, sysID);\n };\n\n XMLDocumentCB.prototype.e = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.n = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.t = function(value) {\n return this.text(value);\n };\n\n XMLDocumentCB.prototype.d = function(value) {\n return this.cdata(value);\n };\n\n XMLDocumentCB.prototype.c = function(value) {\n return this.comment(value);\n };\n\n XMLDocumentCB.prototype.r = function(value) {\n return this.raw(value);\n };\n\n XMLDocumentCB.prototype.i = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLDocumentCB.prototype.att = function() {\n if (this.currentNode && this.currentNode instanceof XMLDocType) {\n return this.attList.apply(this, arguments);\n } else {\n return this.attribute.apply(this, arguments);\n }\n };\n\n XMLDocumentCB.prototype.a = function() {\n if (this.currentNode && this.currentNode instanceof XMLDocType) {\n return this.attList.apply(this, arguments);\n } else {\n return this.attribute.apply(this, arguments);\n }\n };\n\n XMLDocumentCB.prototype.ent = function(name, value) {\n return this.entity(name, value);\n };\n\n XMLDocumentCB.prototype.pent = function(name, value) {\n return this.pEntity(name, value);\n };\n\n XMLDocumentCB.prototype.not = function(name, value) {\n return this.notation(name, value);\n };\n\n return XMLDocumentCB;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStreamWriter, XMLText, XMLWriterBase,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n XMLDeclaration = require('./XMLDeclaration');\n\n XMLDocType = require('./XMLDocType');\n\n XMLCData = require('./XMLCData');\n\n XMLComment = require('./XMLComment');\n\n XMLElement = require('./XMLElement');\n\n XMLRaw = require('./XMLRaw');\n\n XMLText = require('./XMLText');\n\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n XMLDummy = require('./XMLDummy');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLWriterBase = require('./XMLWriterBase');\n\n module.exports = XMLStreamWriter = (function(superClass) {\n extend(XMLStreamWriter, superClass);\n\n function XMLStreamWriter(stream, options) {\n XMLStreamWriter.__super__.constructor.call(this, options);\n this.stream = stream;\n }\n\n XMLStreamWriter.prototype.document = function(doc) {\n var child, i, j, len, len1, ref, ref1, results;\n ref = doc.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n child.isLastRootNode = false;\n }\n doc.children[doc.children.length - 1].isLastRootNode = true;\n ref1 = doc.children;\n results = [];\n for (j = 0, len1 = ref1.length; j < len1; j++) {\n child = ref1[j];\n if (child instanceof XMLDummy) {\n continue;\n }\n switch (false) {\n case !(child instanceof XMLDeclaration):\n results.push(this.declaration(child));\n break;\n case !(child instanceof XMLDocType):\n results.push(this.docType(child));\n break;\n case !(child instanceof XMLComment):\n results.push(this.comment(child));\n break;\n case !(child instanceof XMLProcessingInstruction):\n results.push(this.processingInstruction(child));\n break;\n default:\n results.push(this.element(child));\n }\n }\n return results;\n };\n\n XMLStreamWriter.prototype.attribute = function(att) {\n return this.stream.write(' ' + att.name + '=\"' + att.value + '\"');\n };\n\n XMLStreamWriter.prototype.cdata = function(node, level) {\n return this.stream.write(this.space(level) + '<![CDATA[' + node.text + ']]>' + this.endline(node));\n };\n\n XMLStreamWriter.prototype.comment = function(node, level) {\n return this.stream.write(this.space(level) + '<!-- ' + node.text + ' -->' + this.endline(node));\n };\n\n XMLStreamWriter.prototype.declaration = function(node, level) {\n this.stream.write(this.space(level));\n this.stream.write('<?xml version=\"' + node.version + '\"');\n if (node.encoding != null) {\n this.stream.write(' encoding=\"' + node.encoding + '\"');\n }\n if (node.standalone != null) {\n this.stream.write(' standalone=\"' + node.standalone + '\"');\n }\n this.stream.write(this.spacebeforeslash + '?>');\n return this.stream.write(this.endline(node));\n };\n\n XMLStreamWriter.prototype.docType = function(node, level) {\n var child, i, len, ref;\n level || (level = 0);\n this.stream.write(this.space(level));\n this.stream.write('<!DOCTYPE ' + node.root().name);\n if (node.pubID && node.sysID) {\n this.stream.write(' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"');\n } else if (node.sysID) {\n this.stream.write(' SYSTEM \"' + node.sysID + '\"');\n }\n if (node.children.length > 0) {\n this.stream.write(' [');\n this.stream.write(this.endline(node));\n ref = node.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n switch (false) {\n case !(child instanceof XMLDTDAttList):\n this.dtdAttList(child, level + 1);\n break;\n case !(child instanceof XMLDTDElement):\n this.dtdElement(child, level + 1);\n break;\n case !(child instanceof XMLDTDEntity):\n this.dtdEntity(child, level + 1);\n break;\n case !(child instanceof XMLDTDNotation):\n this.dtdNotation(child, level + 1);\n break;\n case !(child instanceof XMLCData):\n this.cdata(child, level + 1);\n break;\n case !(child instanceof XMLComment):\n this.comment(child, level + 1);\n break;\n case !(child instanceof XMLProcessingInstruction):\n this.processingInstruction(child, level + 1);\n break;\n default:\n throw new Error(\"Unknown DTD node type: \" + child.constructor.name);\n }\n }\n this.stream.write(']');\n }\n this.stream.write(this.spacebeforeslash + '>');\n return this.stream.write(this.endline(node));\n };\n\n XMLStreamWriter.prototype.element = function(node, level) {\n var att, child, i, len, name, ref, ref1, space;\n level || (level = 0);\n space = this.space(level);\n this.stream.write(space + '<' + node.name);\n ref = node.attributes;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n this.attribute(att);\n }\n if (node.children.length === 0 || node.children.every(function(e) {\n return e.value === '';\n })) {\n if (this.allowEmpty) {\n this.stream.write('></' + node.name + '>');\n } else {\n this.stream.write(this.spacebeforeslash + '/>');\n }\n } else if (this.pretty && node.children.length === 1 && (node.children[0].value != null)) {\n this.stream.write('>');\n this.stream.write(node.children[0].value);\n this.stream.write('</' + node.name + '>');\n } else {\n this.stream.write('>' + this.newline);\n ref1 = node.children;\n for (i = 0, len = ref1.length; i < len; i++) {\n child = ref1[i];\n switch (false) {\n case !(child instanceof XMLCData):\n this.cdata(child, level + 1);\n break;\n case !(child instanceof XMLComment):\n this.comment(child, level + 1);\n break;\n case !(child instanceof XMLElement):\n this.element(child, level + 1);\n break;\n case !(child instanceof XMLRaw):\n this.raw(child, level + 1);\n break;\n case !(child instanceof XMLText):\n this.text(child, level + 1);\n break;\n case !(child instanceof XMLProcessingInstruction):\n this.processingInstruction(child, level + 1);\n break;\n case !(child instanceof XMLDummy):\n '';\n break;\n default:\n throw new Error(\"Unknown XML node type: \" + child.constructor.name);\n }\n }\n this.stream.write(space + '</' + node.name + '>');\n }\n return this.stream.write(this.endline(node));\n };\n\n XMLStreamWriter.prototype.processingInstruction = function(node, level) {\n this.stream.write(this.space(level) + '<?' + node.target);\n if (node.value) {\n this.stream.write(' ' + node.value);\n }\n return this.stream.write(this.spacebeforeslash + '?>' + this.endline(node));\n };\n\n XMLStreamWriter.prototype.raw = function(node, level) {\n return this.stream.write(this.space(level) + node.value + this.endline(node));\n };\n\n XMLStreamWriter.prototype.text = function(node, level) {\n return this.stream.write(this.space(level) + node.value + this.endline(node));\n };\n\n XMLStreamWriter.prototype.dtdAttList = function(node, level) {\n this.stream.write(this.space(level) + '<!ATTLIST ' + node.elementName + ' ' + node.attributeName + ' ' + node.attributeType);\n if (node.defaultValueType !== '#DEFAULT') {\n this.stream.write(' ' + node.defaultValueType);\n }\n if (node.defaultValue) {\n this.stream.write(' \"' + node.defaultValue + '\"');\n }\n return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));\n };\n\n XMLStreamWriter.prototype.dtdElement = function(node, level) {\n this.stream.write(this.space(level) + '<!ELEMENT ' + node.name + ' ' + node.value);\n return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));\n };\n\n XMLStreamWriter.prototype.dtdEntity = function(node, level) {\n this.stream.write(this.space(level) + '<!ENTITY');\n if (node.pe) {\n this.stream.write(' %');\n }\n this.stream.write(' ' + node.name);\n if (node.value) {\n this.stream.write(' \"' + node.value + '\"');\n } else {\n if (node.pubID && node.sysID) {\n this.stream.write(' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"');\n } else if (node.sysID) {\n this.stream.write(' SYSTEM \"' + node.sysID + '\"');\n }\n if (node.nData) {\n this.stream.write(' NDATA ' + node.nData);\n }\n }\n return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));\n };\n\n XMLStreamWriter.prototype.dtdNotation = function(node, level) {\n this.stream.write(this.space(level) + '<!NOTATION ' + node.name);\n if (node.pubID && node.sysID) {\n this.stream.write(' PUBLIC \"' + node.pubID + '\" \"' + node.sysID + '\"');\n } else if (node.pubID) {\n this.stream.write(' PUBLIC \"' + node.pubID + '\"');\n } else if (node.sysID) {\n this.stream.write(' SYSTEM \"' + node.sysID + '\"');\n }\n return this.stream.write(this.spacebeforeslash + '>' + this.endline(node));\n };\n\n XMLStreamWriter.prototype.endline = function(node) {\n if (!node.isLastRootNode) {\n return this.newline;\n } else {\n return '';\n }\n };\n\n return XMLStreamWriter;\n\n })(XMLWriterBase);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref;\n\n ref = require('./Utility'), assign = ref.assign, isFunction = ref.isFunction;\n\n XMLDocument = require('./XMLDocument');\n\n XMLDocumentCB = require('./XMLDocumentCB');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n XMLStreamWriter = require('./XMLStreamWriter');\n\n module.exports.create = function(name, xmldec, doctype, options) {\n var doc, root;\n if (name == null) {\n throw new Error(\"Root element needs a name.\");\n }\n options = assign({}, xmldec, doctype, options);\n doc = new XMLDocument(options);\n root = doc.element(name);\n if (!options.headless) {\n doc.declaration(options);\n if ((options.pubID != null) || (options.sysID != null)) {\n doc.doctype(options);\n }\n }\n return root;\n };\n\n module.exports.begin = function(options, onData, onEnd) {\n var ref1;\n if (isFunction(options)) {\n ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1];\n options = {};\n }\n if (onData) {\n return new XMLDocumentCB(options, onData, onEnd);\n } else {\n return new XMLDocument(options);\n }\n };\n\n module.exports.stringWriter = function(options) {\n return new XMLStringWriter(options);\n };\n\n module.exports.streamWriter = function(stream, options) {\n return new XMLStreamWriter(stream, options);\n };\n\n}).call(this);\n","var _ = require(\"underscore\");\nvar xmlbuilder = require(\"xmlbuilder\");\n\n\nexports.writeString = writeString;\n\n\nfunction writeString(root, namespaces) {\n var uriToPrefix = _.invert(namespaces);\n \n var nodeWriters = {\n element: writeElement,\n text: writeTextNode\n };\n\n function writeNode(builder, node) {\n return nodeWriters[node.type](builder, node);\n }\n\n function writeElement(builder, element) {\n var elementBuilder = builder.element(mapElementName(element.name), element.attributes);\n element.children.forEach(function(child) {\n writeNode(elementBuilder, child);\n });\n }\n \n function mapElementName(name) {\n var longFormMatch = /^\\{(.*)\\}(.*)$/.exec(name);\n if (longFormMatch) {\n var prefix = uriToPrefix[longFormMatch[1]];\n return prefix + (prefix === \"\" ? \"\" : \":\") + longFormMatch[2];\n } else {\n return name;\n }\n }\n \n function writeDocument(root) {\n var builder = xmlbuilder\n .create(mapElementName(root.name), {\n version: '1.0',\n encoding: 'UTF-8',\n standalone: true\n });\n \n _.forEach(namespaces, function(uri, prefix) {\n var key = \"xmlns\" + (prefix === \"\" ? \"\" : \":\" + prefix);\n builder.attribute(key, uri);\n });\n \n root.children.forEach(function(child) {\n writeNode(builder, child);\n });\n return builder.end();\n }\n\n return writeDocument(root);\n}\n\nfunction writeTextNode(builder, node) {\n builder.text(node.value);\n}\n","var nodes = require(\"./nodes\");\n\nexports.Element = nodes.Element;\nexports.element = nodes.element;\nexports.emptyElement = nodes.emptyElement;\nexports.text = nodes.text;\nexports.readString = require(\"./reader\").readString;\nexports.writeString = require(\"./writer\").writeString;\n","var _ = require(\"underscore\");\n\nvar promises = require(\"../promises\");\nvar xml = require(\"../xml\");\n\n\nexports.read = read;\nexports.readXmlFromZipFile = readXmlFromZipFile;\n\nvar xmlNamespaceMap = {\n // Transitional format\n \"http://schemas.openxmlformats.org/wordprocessingml/2006/main\": \"w\",\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\": \"r\",\n \"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\": \"wp\",\n \"http://schemas.openxmlformats.org/drawingml/2006/main\": \"a\",\n \"http://schemas.openxmlformats.org/drawingml/2006/picture\": \"pic\",\n\n // Strict format\n \"http://purl.oclc.org/ooxml/wordprocessingml/main\": \"w\",\n \"http://purl.oclc.org/ooxml/officeDocument/relationships\": \"r\",\n \"http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing\": \"wp\",\n \"http://purl.oclc.org/ooxml/drawingml/main\": \"a\",\n \"http://purl.oclc.org/ooxml/drawingml/picture\": \"pic\",\n\n // Common\n \"http://schemas.openxmlformats.org/package/2006/content-types\": \"content-types\",\n \"http://schemas.openxmlformats.org/package/2006/relationships\": \"relationships\",\n \"http://schemas.openxmlformats.org/markup-compatibility/2006\": \"mc\",\n \"urn:schemas-microsoft-com:vml\": \"v\",\n \"urn:schemas-microsoft-com:office:word\": \"office-word\",\n\n // [MS-DOCX]: Word Extensions to the Office Open XML (.docx) File Format\n // https://learn.microsoft.com/en-us/openspecs/office_standards/ms-docx/b839fe1f-e1ca-4fa6-8c26-5954d0abbccd\n \"http://schemas.microsoft.com/office/word/2010/wordml\": \"wordml\"\n};\n\n\nfunction read(xmlString) {\n return xml.readString(xmlString, xmlNamespaceMap)\n .then(function(document) {\n return collapseAlternateContent(document)[0];\n });\n}\n\n\nfunction readXmlFromZipFile(docxFile, path) {\n if (docxFile.exists(path)) {\n return docxFile.read(path, \"utf-8\")\n .then(stripUtf8Bom)\n .then(read);\n } else {\n return promises.resolve(null);\n }\n}\n\n\nfunction stripUtf8Bom(xmlString) {\n return xmlString.replace(/^\\uFEFF/g, '');\n}\n\n\nfunction collapseAlternateContent(node) {\n if (node.type === \"element\") {\n if (node.name === \"mc:AlternateContent\") {\n return node.firstOrEmpty(\"mc:Fallback\").children;\n } else {\n node.children = _.flatten(node.children.map(collapseAlternateContent, true));\n return [node];\n }\n } else {\n return [node];\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dingbats = [\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"33\", \"Unicode hex\": \"21\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"8704\", \"Unicode hex\": \"2200\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"35\", \"Unicode hex\": \"23\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"8707\", \"Unicode hex\": \"2203\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"37\", \"Unicode hex\": \"25\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"38\", \"Unicode hex\": \"26\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"8717\", \"Unicode hex\": \"220D\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"40\", \"Unicode hex\": \"28\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"41\", \"Unicode hex\": \"29\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"42\", \"Unicode hex\": \"2A\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"43\", \"Unicode hex\": \"2B\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"44\", \"Unicode hex\": \"2C\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"8722\", \"Unicode hex\": \"2212\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"46\", \"Unicode hex\": \"2E\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"47\", \"Unicode hex\": \"2F\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"48\", \"Unicode hex\": \"30\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"49\", \"Unicode hex\": \"31\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"50\", \"Unicode hex\": \"32\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"51\", \"Unicode hex\": \"33\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"52\", \"Unicode hex\": \"34\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"53\", \"Unicode hex\": \"35\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"54\", \"Unicode hex\": \"36\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"55\", \"Unicode hex\": \"37\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"56\", \"Unicode hex\": \"38\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"57\", \"Unicode hex\": \"39\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"58\", \"Unicode hex\": \"3A\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"59\", \"Unicode hex\": \"3B\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"60\", \"Unicode hex\": \"3C\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"61\", \"Unicode hex\": \"3D\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"62\", \"Unicode hex\": \"3E\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"63\", \"Unicode hex\": \"3F\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"8773\", \"Unicode hex\": \"2245\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"913\", \"Unicode hex\": \"391\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"914\", \"Unicode hex\": \"392\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"935\", \"Unicode hex\": \"3A7\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"916\", \"Unicode hex\": \"394\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"917\", \"Unicode hex\": \"395\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"934\", \"Unicode hex\": \"3A6\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"915\", \"Unicode hex\": \"393\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"919\", \"Unicode hex\": \"397\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"921\", \"Unicode hex\": \"399\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"977\", \"Unicode hex\": \"3D1\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"922\", \"Unicode hex\": \"39A\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"923\", \"Unicode hex\": \"39B\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"924\", \"Unicode hex\": \"39C\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"925\", \"Unicode hex\": \"39D\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"927\", \"Unicode hex\": \"39F\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"928\", \"Unicode hex\": \"3A0\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"920\", \"Unicode hex\": \"398\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"929\", \"Unicode hex\": \"3A1\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"931\", \"Unicode hex\": \"3A3\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"932\", \"Unicode hex\": \"3A4\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"933\", \"Unicode hex\": \"3A5\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"962\", \"Unicode hex\": \"3C2\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"937\", \"Unicode hex\": \"3A9\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"926\", \"Unicode hex\": \"39E\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"936\", \"Unicode hex\": \"3A8\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"918\", \"Unicode hex\": \"396\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"91\", \"Unicode hex\": \"5B\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"8756\", \"Unicode hex\": \"2234\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"93\", \"Unicode hex\": \"5D\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"8869\", \"Unicode hex\": \"22A5\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"95\", \"Unicode hex\": \"5F\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"8254\", \"Unicode hex\": \"203E\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"945\", \"Unicode hex\": \"3B1\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"946\", \"Unicode hex\": \"3B2\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"967\", \"Unicode hex\": \"3C7\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"948\", \"Unicode hex\": \"3B4\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"949\", \"Unicode hex\": \"3B5\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"966\", \"Unicode hex\": \"3C6\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"947\", \"Unicode hex\": \"3B3\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"951\", \"Unicode hex\": \"3B7\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"953\", \"Unicode hex\": \"3B9\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"981\", \"Unicode hex\": \"3D5\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"954\", \"Unicode hex\": \"3BA\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"955\", \"Unicode hex\": \"3BB\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"956\", \"Unicode hex\": \"3BC\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"957\", \"Unicode hex\": \"3BD\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"959\", \"Unicode hex\": \"3BF\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"960\", \"Unicode hex\": \"3C0\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"952\", \"Unicode hex\": \"3B8\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"961\", \"Unicode hex\": \"3C1\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"963\", \"Unicode hex\": \"3C3\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"964\", \"Unicode hex\": \"3C4\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"965\", \"Unicode hex\": \"3C5\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"982\", \"Unicode hex\": \"3D6\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"969\", \"Unicode hex\": \"3C9\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"958\", \"Unicode hex\": \"3BE\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"968\", \"Unicode hex\": \"3C8\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"950\", \"Unicode hex\": \"3B6\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"123\", \"Unicode hex\": \"7B\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"124\", \"Unicode hex\": \"7C\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"125\", \"Unicode hex\": \"7D\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"126\", \"Unicode hex\": \"7E\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"8364\", \"Unicode hex\": \"20AC\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"978\", \"Unicode hex\": \"3D2\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"8242\", \"Unicode hex\": \"2032\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"8804\", \"Unicode hex\": \"2264\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"8260\", \"Unicode hex\": \"2044\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"8734\", \"Unicode hex\": \"221E\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"402\", \"Unicode hex\": \"192\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"9827\", \"Unicode hex\": \"2663\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"9830\", \"Unicode hex\": \"2666\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"9829\", \"Unicode hex\": \"2665\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"9824\", \"Unicode hex\": \"2660\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"8596\", \"Unicode hex\": \"2194\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"8592\", \"Unicode hex\": \"2190\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"8593\", \"Unicode hex\": \"2191\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"8594\", \"Unicode hex\": \"2192\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"8595\", \"Unicode hex\": \"2193\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"176\", \"Unicode hex\": \"B0\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"177\", \"Unicode hex\": \"B1\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"8243\", \"Unicode hex\": \"2033\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"8805\", \"Unicode hex\": \"2265\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"215\", \"Unicode hex\": \"D7\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"8733\", \"Unicode hex\": \"221D\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"8706\", \"Unicode hex\": \"2202\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"8226\", \"Unicode hex\": \"2022\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"247\", \"Unicode hex\": \"F7\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"8800\", \"Unicode hex\": \"2260\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"8801\", \"Unicode hex\": \"2261\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"8776\", \"Unicode hex\": \"2248\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"8230\", \"Unicode hex\": \"2026\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"9168\", \"Unicode hex\": \"23D0\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"9135\", \"Unicode hex\": \"23AF\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"8629\", \"Unicode hex\": \"21B5\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"8501\", \"Unicode hex\": \"2135\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"8465\", \"Unicode hex\": \"2111\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"8476\", \"Unicode hex\": \"211C\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"8472\", \"Unicode hex\": \"2118\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"8855\", \"Unicode hex\": \"2297\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"8853\", \"Unicode hex\": \"2295\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"8709\", \"Unicode hex\": \"2205\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"8745\", \"Unicode hex\": \"2229\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"8746\", \"Unicode hex\": \"222A\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"8835\", \"Unicode hex\": \"2283\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"8839\", \"Unicode hex\": \"2287\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"8836\", \"Unicode hex\": \"2284\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"8834\", \"Unicode hex\": \"2282\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"8838\", \"Unicode hex\": \"2286\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"8712\", \"Unicode hex\": \"2208\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"8713\", \"Unicode hex\": \"2209\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"8736\", \"Unicode hex\": \"2220\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"8711\", \"Unicode hex\": \"2207\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"174\", \"Unicode hex\": \"AE\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"169\", \"Unicode hex\": \"A9\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"8482\", \"Unicode hex\": \"2122\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"8719\", \"Unicode hex\": \"220F\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"8730\", \"Unicode hex\": \"221A\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"8901\", \"Unicode hex\": \"22C5\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"172\", \"Unicode hex\": \"AC\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"8743\", \"Unicode hex\": \"2227\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"8744\", \"Unicode hex\": \"2228\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"8660\", \"Unicode hex\": \"21D4\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"8656\", \"Unicode hex\": \"21D0\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"8657\", \"Unicode hex\": \"21D1\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"8658\", \"Unicode hex\": \"21D2\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"8659\", \"Unicode hex\": \"21D3\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"9674\", \"Unicode hex\": \"25CA\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"12296\", \"Unicode hex\": \"3008\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"174\", \"Unicode hex\": \"AE\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"169\", \"Unicode hex\": \"A9\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"8482\", \"Unicode hex\": \"2122\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"8721\", \"Unicode hex\": \"2211\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"9115\", \"Unicode hex\": \"239B\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"9116\", \"Unicode hex\": \"239C\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"9117\", \"Unicode hex\": \"239D\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"9121\", \"Unicode hex\": \"23A1\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"9122\", \"Unicode hex\": \"23A2\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"9123\", \"Unicode hex\": \"23A3\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"9127\", \"Unicode hex\": \"23A7\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"9128\", \"Unicode hex\": \"23A8\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"9129\", \"Unicode hex\": \"23A9\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"9130\", \"Unicode hex\": \"23AA\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"63743\", \"Unicode hex\": \"F8FF\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"241\", \"Dingbat hex\": \"F1\", \"Unicode dec\": \"12297\", \"Unicode hex\": \"3009\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"242\", \"Dingbat hex\": \"F2\", \"Unicode dec\": \"8747\", \"Unicode hex\": \"222B\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"243\", \"Dingbat hex\": \"F3\", \"Unicode dec\": \"8992\", \"Unicode hex\": \"2320\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"244\", \"Dingbat hex\": \"F4\", \"Unicode dec\": \"9134\", \"Unicode hex\": \"23AE\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"245\", \"Dingbat hex\": \"F5\", \"Unicode dec\": \"8993\", \"Unicode hex\": \"2321\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"246\", \"Dingbat hex\": \"F6\", \"Unicode dec\": \"9118\", \"Unicode hex\": \"239E\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"247\", \"Dingbat hex\": \"F7\", \"Unicode dec\": \"9119\", \"Unicode hex\": \"239F\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"248\", \"Dingbat hex\": \"F8\", \"Unicode dec\": \"9120\", \"Unicode hex\": \"23A0\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"249\", \"Dingbat hex\": \"F9\", \"Unicode dec\": \"9124\", \"Unicode hex\": \"23A4\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"250\", \"Dingbat hex\": \"FA\", \"Unicode dec\": \"9125\", \"Unicode hex\": \"23A5\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"251\", \"Dingbat hex\": \"FB\", \"Unicode dec\": \"9126\", \"Unicode hex\": \"23A6\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"252\", \"Dingbat hex\": \"FC\", \"Unicode dec\": \"9131\", \"Unicode hex\": \"23AB\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"253\", \"Dingbat hex\": \"FD\", \"Unicode dec\": \"9132\", \"Unicode hex\": \"23AC\" },\n { \"Typeface name\": \"Symbol\", \"Dingbat dec\": \"254\", \"Dingbat hex\": \"FE\", \"Unicode dec\": \"9133\", \"Unicode hex\": \"23AD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"128375\", \"Unicode hex\": \"1F577\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"128376\", \"Unicode hex\": \"1F578\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"128370\", \"Unicode hex\": \"1F572\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"128374\", \"Unicode hex\": \"1F576\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"127942\", \"Unicode hex\": \"1F3C6\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"127894\", \"Unicode hex\": \"1F396\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"128391\", \"Unicode hex\": \"1F587\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"128488\", \"Unicode hex\": \"1F5E8\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"128489\", \"Unicode hex\": \"1F5E9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"128496\", \"Unicode hex\": \"1F5F0\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"128497\", \"Unicode hex\": \"1F5F1\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"127798\", \"Unicode hex\": \"1F336\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"127895\", \"Unicode hex\": \"1F397\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"128638\", \"Unicode hex\": \"1F67E\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"128636\", \"Unicode hex\": \"1F67C\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"128469\", \"Unicode hex\": \"1F5D5\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"128470\", \"Unicode hex\": \"1F5D6\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"128471\", \"Unicode hex\": \"1F5D7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"9204\", \"Unicode hex\": \"23F4\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"9205\", \"Unicode hex\": \"23F5\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"9206\", \"Unicode hex\": \"23F6\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"9207\", \"Unicode hex\": \"23F7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"9194\", \"Unicode hex\": \"23EA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"9193\", \"Unicode hex\": \"23E9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"9198\", \"Unicode hex\": \"23EE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"9197\", \"Unicode hex\": \"23ED\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"9208\", \"Unicode hex\": \"23F8\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"9209\", \"Unicode hex\": \"23F9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"9210\", \"Unicode hex\": \"23FA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"128474\", \"Unicode hex\": \"1F5DA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"128499\", \"Unicode hex\": \"1F5F3\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"128736\", \"Unicode hex\": \"1F6E0\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"127959\", \"Unicode hex\": \"1F3D7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"127960\", \"Unicode hex\": \"1F3D8\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"127961\", \"Unicode hex\": \"1F3D9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"127962\", \"Unicode hex\": \"1F3DA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"127964\", \"Unicode hex\": \"1F3DC\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"127981\", \"Unicode hex\": \"1F3ED\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"127963\", \"Unicode hex\": \"1F3DB\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"127968\", \"Unicode hex\": \"1F3E0\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"127958\", \"Unicode hex\": \"1F3D6\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"127965\", \"Unicode hex\": \"1F3DD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"128739\", \"Unicode hex\": \"1F6E3\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"128269\", \"Unicode hex\": \"1F50D\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"127956\", \"Unicode hex\": \"1F3D4\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"128065\", \"Unicode hex\": \"1F441\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"128066\", \"Unicode hex\": \"1F442\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"127966\", \"Unicode hex\": \"1F3DE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"127957\", \"Unicode hex\": \"1F3D5\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"128740\", \"Unicode hex\": \"1F6E4\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"127967\", \"Unicode hex\": \"1F3DF\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"128755\", \"Unicode hex\": \"1F6F3\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"128364\", \"Unicode hex\": \"1F56C\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"128363\", \"Unicode hex\": \"1F56B\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"128360\", \"Unicode hex\": \"1F568\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"128264\", \"Unicode hex\": \"1F508\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"127892\", \"Unicode hex\": \"1F394\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"127893\", \"Unicode hex\": \"1F395\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"128492\", \"Unicode hex\": \"1F5EC\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"128637\", \"Unicode hex\": \"1F67D\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"128493\", \"Unicode hex\": \"1F5ED\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"128490\", \"Unicode hex\": \"1F5EA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"128491\", \"Unicode hex\": \"1F5EB\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"11156\", \"Unicode hex\": \"2B94\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"10004\", \"Unicode hex\": \"2714\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"128690\", \"Unicode hex\": \"1F6B2\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"11036\", \"Unicode hex\": \"2B1C\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"128737\", \"Unicode hex\": \"1F6E1\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"128230\", \"Unicode hex\": \"1F4E6\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"128753\", \"Unicode hex\": \"1F6F1\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"11035\", \"Unicode hex\": \"2B1B\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"128657\", \"Unicode hex\": \"1F691\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"128712\", \"Unicode hex\": \"1F6C8\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"128745\", \"Unicode hex\": \"1F6E9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"128752\", \"Unicode hex\": \"1F6F0\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"128968\", \"Unicode hex\": \"1F7C8\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"128372\", \"Unicode hex\": \"1F574\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"11044\", \"Unicode hex\": \"2B24\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"128741\", \"Unicode hex\": \"1F6E5\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"128660\", \"Unicode hex\": \"1F694\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"128472\", \"Unicode hex\": \"1F5D8\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"128473\", \"Unicode hex\": \"1F5D9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"10067\", \"Unicode hex\": \"2753\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"128754\", \"Unicode hex\": \"1F6F2\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"128647\", \"Unicode hex\": \"1F687\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"128653\", \"Unicode hex\": \"1F68D\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"9971\", \"Unicode hex\": \"26F3\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"10680\", \"Unicode hex\": \"29B8\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"8854\", \"Unicode hex\": \"2296\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"128685\", \"Unicode hex\": \"1F6AD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"128494\", \"Unicode hex\": \"1F5EE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"9168\", \"Unicode hex\": \"23D0\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"128495\", \"Unicode hex\": \"1F5EF\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"128498\", \"Unicode hex\": \"1F5F2\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"128\", \"Dingbat hex\": \"80\", \"Unicode dec\": \"128697\", \"Unicode hex\": \"1F6B9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"129\", \"Dingbat hex\": \"81\", \"Unicode dec\": \"128698\", \"Unicode hex\": \"1F6BA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"130\", \"Dingbat hex\": \"82\", \"Unicode dec\": \"128713\", \"Unicode hex\": \"1F6C9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"131\", \"Dingbat hex\": \"83\", \"Unicode dec\": \"128714\", \"Unicode hex\": \"1F6CA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"132\", \"Dingbat hex\": \"84\", \"Unicode dec\": \"128700\", \"Unicode hex\": \"1F6BC\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"133\", \"Dingbat hex\": \"85\", \"Unicode dec\": \"128125\", \"Unicode hex\": \"1F47D\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"134\", \"Dingbat hex\": \"86\", \"Unicode dec\": \"127947\", \"Unicode hex\": \"1F3CB\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"135\", \"Dingbat hex\": \"87\", \"Unicode dec\": \"9975\", \"Unicode hex\": \"26F7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"136\", \"Dingbat hex\": \"88\", \"Unicode dec\": \"127938\", \"Unicode hex\": \"1F3C2\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"137\", \"Dingbat hex\": \"89\", \"Unicode dec\": \"127948\", \"Unicode hex\": \"1F3CC\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"138\", \"Dingbat hex\": \"8A\", \"Unicode dec\": \"127946\", \"Unicode hex\": \"1F3CA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"139\", \"Dingbat hex\": \"8B\", \"Unicode dec\": \"127940\", \"Unicode hex\": \"1F3C4\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"140\", \"Dingbat hex\": \"8C\", \"Unicode dec\": \"127949\", \"Unicode hex\": \"1F3CD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"141\", \"Dingbat hex\": \"8D\", \"Unicode dec\": \"127950\", \"Unicode hex\": \"1F3CE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"142\", \"Dingbat hex\": \"8E\", \"Unicode dec\": \"128664\", \"Unicode hex\": \"1F698\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"143\", \"Dingbat hex\": \"8F\", \"Unicode dec\": \"128480\", \"Unicode hex\": \"1F5E0\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"144\", \"Dingbat hex\": \"90\", \"Unicode dec\": \"128738\", \"Unicode hex\": \"1F6E2\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"145\", \"Dingbat hex\": \"91\", \"Unicode dec\": \"128176\", \"Unicode hex\": \"1F4B0\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"146\", \"Dingbat hex\": \"92\", \"Unicode dec\": \"127991\", \"Unicode hex\": \"1F3F7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"147\", \"Dingbat hex\": \"93\", \"Unicode dec\": \"128179\", \"Unicode hex\": \"1F4B3\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"148\", \"Dingbat hex\": \"94\", \"Unicode dec\": \"128106\", \"Unicode hex\": \"1F46A\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"149\", \"Dingbat hex\": \"95\", \"Unicode dec\": \"128481\", \"Unicode hex\": \"1F5E1\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"150\", \"Dingbat hex\": \"96\", \"Unicode dec\": \"128482\", \"Unicode hex\": \"1F5E2\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"151\", \"Dingbat hex\": \"97\", \"Unicode dec\": \"128483\", \"Unicode hex\": \"1F5E3\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"152\", \"Dingbat hex\": \"98\", \"Unicode dec\": \"10031\", \"Unicode hex\": \"272F\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"153\", \"Dingbat hex\": \"99\", \"Unicode dec\": \"128388\", \"Unicode hex\": \"1F584\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"154\", \"Dingbat hex\": \"9A\", \"Unicode dec\": \"128389\", \"Unicode hex\": \"1F585\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"155\", \"Dingbat hex\": \"9B\", \"Unicode dec\": \"128387\", \"Unicode hex\": \"1F583\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"156\", \"Dingbat hex\": \"9C\", \"Unicode dec\": \"128390\", \"Unicode hex\": \"1F586\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"157\", \"Dingbat hex\": \"9D\", \"Unicode dec\": \"128441\", \"Unicode hex\": \"1F5B9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"158\", \"Dingbat hex\": \"9E\", \"Unicode dec\": \"128442\", \"Unicode hex\": \"1F5BA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"159\", \"Dingbat hex\": \"9F\", \"Unicode dec\": \"128443\", \"Unicode hex\": \"1F5BB\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"128373\", \"Unicode hex\": \"1F575\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"128368\", \"Unicode hex\": \"1F570\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"128445\", \"Unicode hex\": \"1F5BD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"128446\", \"Unicode hex\": \"1F5BE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"128203\", \"Unicode hex\": \"1F4CB\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"128466\", \"Unicode hex\": \"1F5D2\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"128467\", \"Unicode hex\": \"1F5D3\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"128366\", \"Unicode hex\": \"1F56E\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"128218\", \"Unicode hex\": \"1F4DA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"128478\", \"Unicode hex\": \"1F5DE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"128479\", \"Unicode hex\": \"1F5DF\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"128451\", \"Unicode hex\": \"1F5C3\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"128450\", \"Unicode hex\": \"1F5C2\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"128444\", \"Unicode hex\": \"1F5BC\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"127917\", \"Unicode hex\": \"1F3AD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"127900\", \"Unicode hex\": \"1F39C\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"127896\", \"Unicode hex\": \"1F398\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"127897\", \"Unicode hex\": \"1F399\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"127911\", \"Unicode hex\": \"1F3A7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"128191\", \"Unicode hex\": \"1F4BF\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"127902\", \"Unicode hex\": \"1F39E\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"128247\", \"Unicode hex\": \"1F4F7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"127903\", \"Unicode hex\": \"1F39F\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"127916\", \"Unicode hex\": \"1F3AC\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"128253\", \"Unicode hex\": \"1F4FD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"128249\", \"Unicode hex\": \"1F4F9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"128254\", \"Unicode hex\": \"1F4FE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"128251\", \"Unicode hex\": \"1F4FB\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"127898\", \"Unicode hex\": \"1F39A\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"127899\", \"Unicode hex\": \"1F39B\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"128250\", \"Unicode hex\": \"1F4FA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"128187\", \"Unicode hex\": \"1F4BB\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"128421\", \"Unicode hex\": \"1F5A5\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"128422\", \"Unicode hex\": \"1F5A6\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"128423\", \"Unicode hex\": \"1F5A7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"128377\", \"Unicode hex\": \"1F579\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"127918\", \"Unicode hex\": \"1F3AE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"128379\", \"Unicode hex\": \"1F57B\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"128380\", \"Unicode hex\": \"1F57C\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"128223\", \"Unicode hex\": \"1F4DF\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"128385\", \"Unicode hex\": \"1F581\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"128384\", \"Unicode hex\": \"1F580\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"128424\", \"Unicode hex\": \"1F5A8\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"128425\", \"Unicode hex\": \"1F5A9\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"128447\", \"Unicode hex\": \"1F5BF\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"128426\", \"Unicode hex\": \"1F5AA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"128476\", \"Unicode hex\": \"1F5DC\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"128274\", \"Unicode hex\": \"1F512\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"128275\", \"Unicode hex\": \"1F513\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"128477\", \"Unicode hex\": \"1F5DD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"128229\", \"Unicode hex\": \"1F4E5\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"128228\", \"Unicode hex\": \"1F4E4\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"128371\", \"Unicode hex\": \"1F573\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"127779\", \"Unicode hex\": \"1F323\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"127780\", \"Unicode hex\": \"1F324\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"127781\", \"Unicode hex\": \"1F325\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"127782\", \"Unicode hex\": \"1F326\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"9729\", \"Unicode hex\": \"2601\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"127784\", \"Unicode hex\": \"1F328\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"127783\", \"Unicode hex\": \"1F327\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"127785\", \"Unicode hex\": \"1F329\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"127786\", \"Unicode hex\": \"1F32A\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"127788\", \"Unicode hex\": \"1F32C\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"127787\", \"Unicode hex\": \"1F32B\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"127772\", \"Unicode hex\": \"1F31C\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"127777\", \"Unicode hex\": \"1F321\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"128715\", \"Unicode hex\": \"1F6CB\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"128719\", \"Unicode hex\": \"1F6CF\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"127869\", \"Unicode hex\": \"1F37D\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"127864\", \"Unicode hex\": \"1F378\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"128718\", \"Unicode hex\": \"1F6CE\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"128717\", \"Unicode hex\": \"1F6CD\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"9413\", \"Unicode hex\": \"24C5\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"9855\", \"Unicode hex\": \"267F\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"128710\", \"Unicode hex\": \"1F6C6\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"128392\", \"Unicode hex\": \"1F588\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"127891\", \"Unicode hex\": \"1F393\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"128484\", \"Unicode hex\": \"1F5E4\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"128485\", \"Unicode hex\": \"1F5E5\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"128486\", \"Unicode hex\": \"1F5E6\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"128487\", \"Unicode hex\": \"1F5E7\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"241\", \"Dingbat hex\": \"F1\", \"Unicode dec\": \"128746\", \"Unicode hex\": \"1F6EA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"242\", \"Dingbat hex\": \"F2\", \"Unicode dec\": \"128063\", \"Unicode hex\": \"1F43F\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"243\", \"Dingbat hex\": \"F3\", \"Unicode dec\": \"128038\", \"Unicode hex\": \"1F426\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"244\", \"Dingbat hex\": \"F4\", \"Unicode dec\": \"128031\", \"Unicode hex\": \"1F41F\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"245\", \"Dingbat hex\": \"F5\", \"Unicode dec\": \"128021\", \"Unicode hex\": \"1F415\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"246\", \"Dingbat hex\": \"F6\", \"Unicode dec\": \"128008\", \"Unicode hex\": \"1F408\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"247\", \"Dingbat hex\": \"F7\", \"Unicode dec\": \"128620\", \"Unicode hex\": \"1F66C\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"248\", \"Dingbat hex\": \"F8\", \"Unicode dec\": \"128622\", \"Unicode hex\": \"1F66E\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"249\", \"Dingbat hex\": \"F9\", \"Unicode dec\": \"128621\", \"Unicode hex\": \"1F66D\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"250\", \"Dingbat hex\": \"FA\", \"Unicode dec\": \"128623\", \"Unicode hex\": \"1F66F\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"251\", \"Dingbat hex\": \"FB\", \"Unicode dec\": \"128506\", \"Unicode hex\": \"1F5FA\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"252\", \"Dingbat hex\": \"FC\", \"Unicode dec\": \"127757\", \"Unicode hex\": \"1F30D\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"253\", \"Dingbat hex\": \"FD\", \"Unicode dec\": \"127759\", \"Unicode hex\": \"1F30F\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"254\", \"Dingbat hex\": \"FE\", \"Unicode dec\": \"127758\", \"Unicode hex\": \"1F30E\" },\n { \"Typeface name\": \"Webdings\", \"Dingbat dec\": \"255\", \"Dingbat hex\": \"FF\", \"Unicode dec\": \"128330\", \"Unicode hex\": \"1F54A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"128393\", \"Unicode hex\": \"1F589\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"9986\", \"Unicode hex\": \"2702\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"9985\", \"Unicode hex\": \"2701\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"128083\", \"Unicode hex\": \"1F453\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"128365\", \"Unicode hex\": \"1F56D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"128366\", \"Unicode hex\": \"1F56E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"128367\", \"Unicode hex\": \"1F56F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"128383\", \"Unicode hex\": \"1F57F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"9990\", \"Unicode hex\": \"2706\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"128386\", \"Unicode hex\": \"1F582\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"128387\", \"Unicode hex\": \"1F583\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"128234\", \"Unicode hex\": \"1F4EA\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"128235\", \"Unicode hex\": \"1F4EB\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"128236\", \"Unicode hex\": \"1F4EC\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"128237\", \"Unicode hex\": \"1F4ED\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"128448\", \"Unicode hex\": \"1F5C0\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"128449\", \"Unicode hex\": \"1F5C1\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"128462\", \"Unicode hex\": \"1F5CE\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"128463\", \"Unicode hex\": \"1F5CF\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"128464\", \"Unicode hex\": \"1F5D0\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"128452\", \"Unicode hex\": \"1F5C4\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"8987\", \"Unicode hex\": \"231B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"128430\", \"Unicode hex\": \"1F5AE\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"128432\", \"Unicode hex\": \"1F5B0\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"128434\", \"Unicode hex\": \"1F5B2\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"128435\", \"Unicode hex\": \"1F5B3\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"128436\", \"Unicode hex\": \"1F5B4\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"128427\", \"Unicode hex\": \"1F5AB\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"128428\", \"Unicode hex\": \"1F5AC\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"9991\", \"Unicode hex\": \"2707\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"9997\", \"Unicode hex\": \"270D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"128398\", \"Unicode hex\": \"1F58E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"9996\", \"Unicode hex\": \"270C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"128399\", \"Unicode hex\": \"1F58F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"128077\", \"Unicode hex\": \"1F44D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"128078\", \"Unicode hex\": \"1F44E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"9756\", \"Unicode hex\": \"261C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"9758\", \"Unicode hex\": \"261E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"9757\", \"Unicode hex\": \"261D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"9759\", \"Unicode hex\": \"261F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"128400\", \"Unicode hex\": \"1F590\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"9786\", \"Unicode hex\": \"263A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"128528\", \"Unicode hex\": \"1F610\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"9785\", \"Unicode hex\": \"2639\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"128163\", \"Unicode hex\": \"1F4A3\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"128369\", \"Unicode hex\": \"1F571\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"127987\", \"Unicode hex\": \"1F3F3\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"127985\", \"Unicode hex\": \"1F3F1\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"9992\", \"Unicode hex\": \"2708\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"9788\", \"Unicode hex\": \"263C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"127778\", \"Unicode hex\": \"1F322\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"10052\", \"Unicode hex\": \"2744\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"128326\", \"Unicode hex\": \"1F546\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"10014\", \"Unicode hex\": \"271E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"128328\", \"Unicode hex\": \"1F548\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"10016\", \"Unicode hex\": \"2720\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"10017\", \"Unicode hex\": \"2721\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"9770\", \"Unicode hex\": \"262A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"9775\", \"Unicode hex\": \"262F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"128329\", \"Unicode hex\": \"1F549\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"9784\", \"Unicode hex\": \"2638\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"9800\", \"Unicode hex\": \"2648\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"9801\", \"Unicode hex\": \"2649\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"9802\", \"Unicode hex\": \"264A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"9803\", \"Unicode hex\": \"264B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"9804\", \"Unicode hex\": \"264C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"9805\", \"Unicode hex\": \"264D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"9806\", \"Unicode hex\": \"264E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"9807\", \"Unicode hex\": \"264F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"9808\", \"Unicode hex\": \"2650\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"9809\", \"Unicode hex\": \"2651\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"9810\", \"Unicode hex\": \"2652\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"9811\", \"Unicode hex\": \"2653\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"128624\", \"Unicode hex\": \"1F670\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"128629\", \"Unicode hex\": \"1F675\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"9899\", \"Unicode hex\": \"26AB\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"128318\", \"Unicode hex\": \"1F53E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"9724\", \"Unicode hex\": \"25FC\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"128911\", \"Unicode hex\": \"1F78F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"128912\", \"Unicode hex\": \"1F790\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"10065\", \"Unicode hex\": \"2751\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"10066\", \"Unicode hex\": \"2752\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"128927\", \"Unicode hex\": \"1F79F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"10731\", \"Unicode hex\": \"29EB\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"9670\", \"Unicode hex\": \"25C6\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"10070\", \"Unicode hex\": \"2756\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"11049\", \"Unicode hex\": \"2B29\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"8999\", \"Unicode hex\": \"2327\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"11193\", \"Unicode hex\": \"2BB9\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"8984\", \"Unicode hex\": \"2318\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"127989\", \"Unicode hex\": \"1F3F5\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"127990\", \"Unicode hex\": \"1F3F6\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"128630\", \"Unicode hex\": \"1F676\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"128631\", \"Unicode hex\": \"1F677\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"127\", \"Dingbat hex\": \"7F\", \"Unicode dec\": \"9647\", \"Unicode hex\": \"25AF\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"128\", \"Dingbat hex\": \"80\", \"Unicode dec\": \"127243\", \"Unicode hex\": \"1F10B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"129\", \"Dingbat hex\": \"81\", \"Unicode dec\": \"10112\", \"Unicode hex\": \"2780\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"130\", \"Dingbat hex\": \"82\", \"Unicode dec\": \"10113\", \"Unicode hex\": \"2781\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"131\", \"Dingbat hex\": \"83\", \"Unicode dec\": \"10114\", \"Unicode hex\": \"2782\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"132\", \"Dingbat hex\": \"84\", \"Unicode dec\": \"10115\", \"Unicode hex\": \"2783\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"133\", \"Dingbat hex\": \"85\", \"Unicode dec\": \"10116\", \"Unicode hex\": \"2784\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"134\", \"Dingbat hex\": \"86\", \"Unicode dec\": \"10117\", \"Unicode hex\": \"2785\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"135\", \"Dingbat hex\": \"87\", \"Unicode dec\": \"10118\", \"Unicode hex\": \"2786\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"136\", \"Dingbat hex\": \"88\", \"Unicode dec\": \"10119\", \"Unicode hex\": \"2787\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"137\", \"Dingbat hex\": \"89\", \"Unicode dec\": \"10120\", \"Unicode hex\": \"2788\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"138\", \"Dingbat hex\": \"8A\", \"Unicode dec\": \"10121\", \"Unicode hex\": \"2789\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"139\", \"Dingbat hex\": \"8B\", \"Unicode dec\": \"127244\", \"Unicode hex\": \"1F10C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"140\", \"Dingbat hex\": \"8C\", \"Unicode dec\": \"10122\", \"Unicode hex\": \"278A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"141\", \"Dingbat hex\": \"8D\", \"Unicode dec\": \"10123\", \"Unicode hex\": \"278B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"142\", \"Dingbat hex\": \"8E\", \"Unicode dec\": \"10124\", \"Unicode hex\": \"278C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"143\", \"Dingbat hex\": \"8F\", \"Unicode dec\": \"10125\", \"Unicode hex\": \"278D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"144\", \"Dingbat hex\": \"90\", \"Unicode dec\": \"10126\", \"Unicode hex\": \"278E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"145\", \"Dingbat hex\": \"91\", \"Unicode dec\": \"10127\", \"Unicode hex\": \"278F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"146\", \"Dingbat hex\": \"92\", \"Unicode dec\": \"10128\", \"Unicode hex\": \"2790\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"147\", \"Dingbat hex\": \"93\", \"Unicode dec\": \"10129\", \"Unicode hex\": \"2791\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"148\", \"Dingbat hex\": \"94\", \"Unicode dec\": \"10130\", \"Unicode hex\": \"2792\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"149\", \"Dingbat hex\": \"95\", \"Unicode dec\": \"10131\", \"Unicode hex\": \"2793\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"150\", \"Dingbat hex\": \"96\", \"Unicode dec\": \"128610\", \"Unicode hex\": \"1F662\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"151\", \"Dingbat hex\": \"97\", \"Unicode dec\": \"128608\", \"Unicode hex\": \"1F660\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"152\", \"Dingbat hex\": \"98\", \"Unicode dec\": \"128609\", \"Unicode hex\": \"1F661\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"153\", \"Dingbat hex\": \"99\", \"Unicode dec\": \"128611\", \"Unicode hex\": \"1F663\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"154\", \"Dingbat hex\": \"9A\", \"Unicode dec\": \"128606\", \"Unicode hex\": \"1F65E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"155\", \"Dingbat hex\": \"9B\", \"Unicode dec\": \"128604\", \"Unicode hex\": \"1F65C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"156\", \"Dingbat hex\": \"9C\", \"Unicode dec\": \"128605\", \"Unicode hex\": \"1F65D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"157\", \"Dingbat hex\": \"9D\", \"Unicode dec\": \"128607\", \"Unicode hex\": \"1F65F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"158\", \"Dingbat hex\": \"9E\", \"Unicode dec\": \"8729\", \"Unicode hex\": \"2219\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"159\", \"Dingbat hex\": \"9F\", \"Unicode dec\": \"8226\", \"Unicode hex\": \"2022\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"11037\", \"Unicode hex\": \"2B1D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"11096\", \"Unicode hex\": \"2B58\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"128902\", \"Unicode hex\": \"1F786\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"128904\", \"Unicode hex\": \"1F788\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"128906\", \"Unicode hex\": \"1F78A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"128907\", \"Unicode hex\": \"1F78B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"128319\", \"Unicode hex\": \"1F53F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"9642\", \"Unicode hex\": \"25AA\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"128910\", \"Unicode hex\": \"1F78E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"128961\", \"Unicode hex\": \"1F7C1\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"128965\", \"Unicode hex\": \"1F7C5\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"9733\", \"Unicode hex\": \"2605\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"128971\", \"Unicode hex\": \"1F7CB\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"128975\", \"Unicode hex\": \"1F7CF\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"128979\", \"Unicode hex\": \"1F7D3\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"128977\", \"Unicode hex\": \"1F7D1\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"11216\", \"Unicode hex\": \"2BD0\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"8982\", \"Unicode hex\": \"2316\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"11214\", \"Unicode hex\": \"2BCE\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"11215\", \"Unicode hex\": \"2BCF\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"11217\", \"Unicode hex\": \"2BD1\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"10026\", \"Unicode hex\": \"272A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"10032\", \"Unicode hex\": \"2730\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"128336\", \"Unicode hex\": \"1F550\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"128337\", \"Unicode hex\": \"1F551\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"128338\", \"Unicode hex\": \"1F552\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"128339\", \"Unicode hex\": \"1F553\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"128340\", \"Unicode hex\": \"1F554\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"128341\", \"Unicode hex\": \"1F555\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"128342\", \"Unicode hex\": \"1F556\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"128343\", \"Unicode hex\": \"1F557\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"128344\", \"Unicode hex\": \"1F558\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"128345\", \"Unicode hex\": \"1F559\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"128346\", \"Unicode hex\": \"1F55A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"128347\", \"Unicode hex\": \"1F55B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"11184\", \"Unicode hex\": \"2BB0\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"11185\", \"Unicode hex\": \"2BB1\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"11186\", \"Unicode hex\": \"2BB2\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"11187\", \"Unicode hex\": \"2BB3\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"11188\", \"Unicode hex\": \"2BB4\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"11189\", \"Unicode hex\": \"2BB5\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"11190\", \"Unicode hex\": \"2BB6\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"11191\", \"Unicode hex\": \"2BB7\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"128618\", \"Unicode hex\": \"1F66A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"128619\", \"Unicode hex\": \"1F66B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"128597\", \"Unicode hex\": \"1F655\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"128596\", \"Unicode hex\": \"1F654\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"128599\", \"Unicode hex\": \"1F657\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"128598\", \"Unicode hex\": \"1F656\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"128592\", \"Unicode hex\": \"1F650\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"128593\", \"Unicode hex\": \"1F651\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"128594\", \"Unicode hex\": \"1F652\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"128595\", \"Unicode hex\": \"1F653\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"9003\", \"Unicode hex\": \"232B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"8998\", \"Unicode hex\": \"2326\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"11160\", \"Unicode hex\": \"2B98\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"11162\", \"Unicode hex\": \"2B9A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"11161\", \"Unicode hex\": \"2B99\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"11163\", \"Unicode hex\": \"2B9B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"11144\", \"Unicode hex\": \"2B88\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"11146\", \"Unicode hex\": \"2B8A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"11145\", \"Unicode hex\": \"2B89\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"11147\", \"Unicode hex\": \"2B8B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"129128\", \"Unicode hex\": \"1F868\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"129130\", \"Unicode hex\": \"1F86A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"129129\", \"Unicode hex\": \"1F869\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"129131\", \"Unicode hex\": \"1F86B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"129132\", \"Unicode hex\": \"1F86C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"129133\", \"Unicode hex\": \"1F86D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"129135\", \"Unicode hex\": \"1F86F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"129134\", \"Unicode hex\": \"1F86E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"129144\", \"Unicode hex\": \"1F878\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"129146\", \"Unicode hex\": \"1F87A\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"129145\", \"Unicode hex\": \"1F879\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"129147\", \"Unicode hex\": \"1F87B\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"129148\", \"Unicode hex\": \"1F87C\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"129149\", \"Unicode hex\": \"1F87D\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"129151\", \"Unicode hex\": \"1F87F\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"129150\", \"Unicode hex\": \"1F87E\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"8678\", \"Unicode hex\": \"21E6\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"8680\", \"Unicode hex\": \"21E8\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"241\", \"Dingbat hex\": \"F1\", \"Unicode dec\": \"8679\", \"Unicode hex\": \"21E7\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"242\", \"Dingbat hex\": \"F2\", \"Unicode dec\": \"8681\", \"Unicode hex\": \"21E9\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"243\", \"Dingbat hex\": \"F3\", \"Unicode dec\": \"11012\", \"Unicode hex\": \"2B04\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"244\", \"Dingbat hex\": \"F4\", \"Unicode dec\": \"8691\", \"Unicode hex\": \"21F3\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"245\", \"Dingbat hex\": \"F5\", \"Unicode dec\": \"11009\", \"Unicode hex\": \"2B01\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"246\", \"Dingbat hex\": \"F6\", \"Unicode dec\": \"11008\", \"Unicode hex\": \"2B00\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"247\", \"Dingbat hex\": \"F7\", \"Unicode dec\": \"11011\", \"Unicode hex\": \"2B03\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"248\", \"Dingbat hex\": \"F8\", \"Unicode dec\": \"11010\", \"Unicode hex\": \"2B02\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"249\", \"Dingbat hex\": \"F9\", \"Unicode dec\": \"129196\", \"Unicode hex\": \"1F8AC\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"250\", \"Dingbat hex\": \"FA\", \"Unicode dec\": \"129197\", \"Unicode hex\": \"1F8AD\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"251\", \"Dingbat hex\": \"FB\", \"Unicode dec\": \"128502\", \"Unicode hex\": \"1F5F6\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"252\", \"Dingbat hex\": \"FC\", \"Unicode dec\": \"10003\", \"Unicode hex\": \"2713\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"253\", \"Dingbat hex\": \"FD\", \"Unicode dec\": \"128503\", \"Unicode hex\": \"1F5F7\" },\n { \"Typeface name\": \"Wingdings\", \"Dingbat dec\": \"254\", \"Dingbat hex\": \"FE\", \"Unicode dec\": \"128505\", \"Unicode hex\": \"1F5F9\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"128394\", \"Unicode hex\": \"1F58A\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"128395\", \"Unicode hex\": \"1F58B\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"128396\", \"Unicode hex\": \"1F58C\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"128397\", \"Unicode hex\": \"1F58D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"9988\", \"Unicode hex\": \"2704\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"9984\", \"Unicode hex\": \"2700\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"128382\", \"Unicode hex\": \"1F57E\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"128381\", \"Unicode hex\": \"1F57D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"128453\", \"Unicode hex\": \"1F5C5\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"128454\", \"Unicode hex\": \"1F5C6\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"128455\", \"Unicode hex\": \"1F5C7\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"128456\", \"Unicode hex\": \"1F5C8\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"128457\", \"Unicode hex\": \"1F5C9\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"128458\", \"Unicode hex\": \"1F5CA\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"128459\", \"Unicode hex\": \"1F5CB\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"128460\", \"Unicode hex\": \"1F5CC\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"128461\", \"Unicode hex\": \"1F5CD\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"128203\", \"Unicode hex\": \"1F4CB\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"128465\", \"Unicode hex\": \"1F5D1\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"128468\", \"Unicode hex\": \"1F5D4\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"128437\", \"Unicode hex\": \"1F5B5\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"128438\", \"Unicode hex\": \"1F5B6\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"128439\", \"Unicode hex\": \"1F5B7\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"128440\", \"Unicode hex\": \"1F5B8\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"128429\", \"Unicode hex\": \"1F5AD\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"128431\", \"Unicode hex\": \"1F5AF\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"128433\", \"Unicode hex\": \"1F5B1\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"128402\", \"Unicode hex\": \"1F592\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"128403\", \"Unicode hex\": \"1F593\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"128408\", \"Unicode hex\": \"1F598\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"128409\", \"Unicode hex\": \"1F599\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"128410\", \"Unicode hex\": \"1F59A\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"128411\", \"Unicode hex\": \"1F59B\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"128072\", \"Unicode hex\": \"1F448\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"128073\", \"Unicode hex\": \"1F449\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"128412\", \"Unicode hex\": \"1F59C\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"128413\", \"Unicode hex\": \"1F59D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"128414\", \"Unicode hex\": \"1F59E\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"128415\", \"Unicode hex\": \"1F59F\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"128416\", \"Unicode hex\": \"1F5A0\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"128417\", \"Unicode hex\": \"1F5A1\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"128070\", \"Unicode hex\": \"1F446\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"128071\", \"Unicode hex\": \"1F447\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"128418\", \"Unicode hex\": \"1F5A2\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"128419\", \"Unicode hex\": \"1F5A3\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"128401\", \"Unicode hex\": \"1F591\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"128500\", \"Unicode hex\": \"1F5F4\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"128504\", \"Unicode hex\": \"1F5F8\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"128501\", \"Unicode hex\": \"1F5F5\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"9745\", \"Unicode hex\": \"2611\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"11197\", \"Unicode hex\": \"2BBD\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"9746\", \"Unicode hex\": \"2612\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"11198\", \"Unicode hex\": \"2BBE\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"11199\", \"Unicode hex\": \"2BBF\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"128711\", \"Unicode hex\": \"1F6C7\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"10680\", \"Unicode hex\": \"29B8\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"128625\", \"Unicode hex\": \"1F671\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"128628\", \"Unicode hex\": \"1F674\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"128626\", \"Unicode hex\": \"1F672\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"128627\", \"Unicode hex\": \"1F673\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"8253\", \"Unicode hex\": \"203D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"128633\", \"Unicode hex\": \"1F679\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"128634\", \"Unicode hex\": \"1F67A\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"128635\", \"Unicode hex\": \"1F67B\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"128614\", \"Unicode hex\": \"1F666\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"128612\", \"Unicode hex\": \"1F664\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"128613\", \"Unicode hex\": \"1F665\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"128615\", \"Unicode hex\": \"1F667\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"128602\", \"Unicode hex\": \"1F65A\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"128600\", \"Unicode hex\": \"1F658\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"128601\", \"Unicode hex\": \"1F659\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"128603\", \"Unicode hex\": \"1F65B\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"9450\", \"Unicode hex\": \"24EA\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"9312\", \"Unicode hex\": \"2460\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"9313\", \"Unicode hex\": \"2461\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"9314\", \"Unicode hex\": \"2462\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"9315\", \"Unicode hex\": \"2463\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"9316\", \"Unicode hex\": \"2464\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"9317\", \"Unicode hex\": \"2465\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"9318\", \"Unicode hex\": \"2466\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"9319\", \"Unicode hex\": \"2467\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"9320\", \"Unicode hex\": \"2468\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"9321\", \"Unicode hex\": \"2469\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"9471\", \"Unicode hex\": \"24FF\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"10102\", \"Unicode hex\": \"2776\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"10103\", \"Unicode hex\": \"2777\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"10104\", \"Unicode hex\": \"2778\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"10105\", \"Unicode hex\": \"2779\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"10106\", \"Unicode hex\": \"277A\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"10107\", \"Unicode hex\": \"277B\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"10108\", \"Unicode hex\": \"277C\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"10109\", \"Unicode hex\": \"277D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"10110\", \"Unicode hex\": \"277E\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"10111\", \"Unicode hex\": \"277F\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"128\", \"Dingbat hex\": \"80\", \"Unicode dec\": \"9737\", \"Unicode hex\": \"2609\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"129\", \"Dingbat hex\": \"81\", \"Unicode dec\": \"127765\", \"Unicode hex\": \"1F315\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"130\", \"Dingbat hex\": \"82\", \"Unicode dec\": \"9789\", \"Unicode hex\": \"263D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"131\", \"Dingbat hex\": \"83\", \"Unicode dec\": \"9790\", \"Unicode hex\": \"263E\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"132\", \"Dingbat hex\": \"84\", \"Unicode dec\": \"11839\", \"Unicode hex\": \"2E3F\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"133\", \"Dingbat hex\": \"85\", \"Unicode dec\": \"10013\", \"Unicode hex\": \"271D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"134\", \"Dingbat hex\": \"86\", \"Unicode dec\": \"128327\", \"Unicode hex\": \"1F547\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"135\", \"Dingbat hex\": \"87\", \"Unicode dec\": \"128348\", \"Unicode hex\": \"1F55C\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"136\", \"Dingbat hex\": \"88\", \"Unicode dec\": \"128349\", \"Unicode hex\": \"1F55D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"137\", \"Dingbat hex\": \"89\", \"Unicode dec\": \"128350\", \"Unicode hex\": \"1F55E\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"138\", \"Dingbat hex\": \"8A\", \"Unicode dec\": \"128351\", \"Unicode hex\": \"1F55F\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"139\", \"Dingbat hex\": \"8B\", \"Unicode dec\": \"128352\", \"Unicode hex\": \"1F560\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"140\", \"Dingbat hex\": \"8C\", \"Unicode dec\": \"128353\", \"Unicode hex\": \"1F561\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"141\", \"Dingbat hex\": \"8D\", \"Unicode dec\": \"128354\", \"Unicode hex\": \"1F562\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"142\", \"Dingbat hex\": \"8E\", \"Unicode dec\": \"128355\", \"Unicode hex\": \"1F563\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"143\", \"Dingbat hex\": \"8F\", \"Unicode dec\": \"128356\", \"Unicode hex\": \"1F564\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"144\", \"Dingbat hex\": \"90\", \"Unicode dec\": \"128357\", \"Unicode hex\": \"1F565\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"145\", \"Dingbat hex\": \"91\", \"Unicode dec\": \"128358\", \"Unicode hex\": \"1F566\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"146\", \"Dingbat hex\": \"92\", \"Unicode dec\": \"128359\", \"Unicode hex\": \"1F567\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"147\", \"Dingbat hex\": \"93\", \"Unicode dec\": \"128616\", \"Unicode hex\": \"1F668\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"148\", \"Dingbat hex\": \"94\", \"Unicode dec\": \"128617\", \"Unicode hex\": \"1F669\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"149\", \"Dingbat hex\": \"95\", \"Unicode dec\": \"8901\", \"Unicode hex\": \"22C5\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"150\", \"Dingbat hex\": \"96\", \"Unicode dec\": \"128900\", \"Unicode hex\": \"1F784\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"151\", \"Dingbat hex\": \"97\", \"Unicode dec\": \"10625\", \"Unicode hex\": \"2981\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"152\", \"Dingbat hex\": \"98\", \"Unicode dec\": \"9679\", \"Unicode hex\": \"25CF\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"153\", \"Dingbat hex\": \"99\", \"Unicode dec\": \"9675\", \"Unicode hex\": \"25CB\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"154\", \"Dingbat hex\": \"9A\", \"Unicode dec\": \"128901\", \"Unicode hex\": \"1F785\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"155\", \"Dingbat hex\": \"9B\", \"Unicode dec\": \"128903\", \"Unicode hex\": \"1F787\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"156\", \"Dingbat hex\": \"9C\", \"Unicode dec\": \"128905\", \"Unicode hex\": \"1F789\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"157\", \"Dingbat hex\": \"9D\", \"Unicode dec\": \"8857\", \"Unicode hex\": \"2299\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"158\", \"Dingbat hex\": \"9E\", \"Unicode dec\": \"10687\", \"Unicode hex\": \"29BF\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"159\", \"Dingbat hex\": \"9F\", \"Unicode dec\": \"128908\", \"Unicode hex\": \"1F78C\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"128909\", \"Unicode hex\": \"1F78D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"9726\", \"Unicode hex\": \"25FE\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"9632\", \"Unicode hex\": \"25A0\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"9633\", \"Unicode hex\": \"25A1\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"128913\", \"Unicode hex\": \"1F791\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"128914\", \"Unicode hex\": \"1F792\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"128915\", \"Unicode hex\": \"1F793\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"128916\", \"Unicode hex\": \"1F794\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"9635\", \"Unicode hex\": \"25A3\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"128917\", \"Unicode hex\": \"1F795\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"128918\", \"Unicode hex\": \"1F796\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"128919\", \"Unicode hex\": \"1F797\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"128920\", \"Unicode hex\": \"1F798\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"11049\", \"Unicode hex\": \"2B29\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"11045\", \"Unicode hex\": \"2B25\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"9671\", \"Unicode hex\": \"25C7\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"128922\", \"Unicode hex\": \"1F79A\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"9672\", \"Unicode hex\": \"25C8\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"128923\", \"Unicode hex\": \"1F79B\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"128924\", \"Unicode hex\": \"1F79C\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"128925\", \"Unicode hex\": \"1F79D\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"128926\", \"Unicode hex\": \"1F79E\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"11050\", \"Unicode hex\": \"2B2A\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"11047\", \"Unicode hex\": \"2B27\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"9674\", \"Unicode hex\": \"25CA\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"128928\", \"Unicode hex\": \"1F7A0\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"9686\", \"Unicode hex\": \"25D6\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"9687\", \"Unicode hex\": \"25D7\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"11210\", \"Unicode hex\": \"2BCA\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"11211\", \"Unicode hex\": \"2BCB\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"11200\", \"Unicode hex\": \"2BC0\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"11201\", \"Unicode hex\": \"2BC1\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"11039\", \"Unicode hex\": \"2B1F\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"11202\", \"Unicode hex\": \"2BC2\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"11043\", \"Unicode hex\": \"2B23\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"11042\", \"Unicode hex\": \"2B22\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"11203\", \"Unicode hex\": \"2BC3\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"11204\", \"Unicode hex\": \"2BC4\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"128929\", \"Unicode hex\": \"1F7A1\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"128930\", \"Unicode hex\": \"1F7A2\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"128931\", \"Unicode hex\": \"1F7A3\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"128932\", \"Unicode hex\": \"1F7A4\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"128933\", \"Unicode hex\": \"1F7A5\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"128934\", \"Unicode hex\": \"1F7A6\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"128935\", \"Unicode hex\": \"1F7A7\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"128936\", \"Unicode hex\": \"1F7A8\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"128937\", \"Unicode hex\": \"1F7A9\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"128938\", \"Unicode hex\": \"1F7AA\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"128939\", \"Unicode hex\": \"1F7AB\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"128940\", \"Unicode hex\": \"1F7AC\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"128941\", \"Unicode hex\": \"1F7AD\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"128942\", \"Unicode hex\": \"1F7AE\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"128943\", \"Unicode hex\": \"1F7AF\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"128944\", \"Unicode hex\": \"1F7B0\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"128945\", \"Unicode hex\": \"1F7B1\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"128946\", \"Unicode hex\": \"1F7B2\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"128947\", \"Unicode hex\": \"1F7B3\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"128948\", \"Unicode hex\": \"1F7B4\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"128949\", \"Unicode hex\": \"1F7B5\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"128950\", \"Unicode hex\": \"1F7B6\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"128951\", \"Unicode hex\": \"1F7B7\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"128952\", \"Unicode hex\": \"1F7B8\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"128953\", \"Unicode hex\": \"1F7B9\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"128954\", \"Unicode hex\": \"1F7BA\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"128955\", \"Unicode hex\": \"1F7BB\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"128956\", \"Unicode hex\": \"1F7BC\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"128957\", \"Unicode hex\": \"1F7BD\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"128958\", \"Unicode hex\": \"1F7BE\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"128959\", \"Unicode hex\": \"1F7BF\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"128960\", \"Unicode hex\": \"1F7C0\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"128962\", \"Unicode hex\": \"1F7C2\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"128964\", \"Unicode hex\": \"1F7C4\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"128966\", \"Unicode hex\": \"1F7C6\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"128969\", \"Unicode hex\": \"1F7C9\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"128970\", \"Unicode hex\": \"1F7CA\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"10038\", \"Unicode hex\": \"2736\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"128972\", \"Unicode hex\": \"1F7CC\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"128974\", \"Unicode hex\": \"1F7CE\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"128976\", \"Unicode hex\": \"1F7D0\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"128978\", \"Unicode hex\": \"1F7D2\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"10041\", \"Unicode hex\": \"2739\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"241\", \"Dingbat hex\": \"F1\", \"Unicode dec\": \"128963\", \"Unicode hex\": \"1F7C3\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"242\", \"Dingbat hex\": \"F2\", \"Unicode dec\": \"128967\", \"Unicode hex\": \"1F7C7\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"243\", \"Dingbat hex\": \"F3\", \"Unicode dec\": \"10031\", \"Unicode hex\": \"272F\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"244\", \"Dingbat hex\": \"F4\", \"Unicode dec\": \"128973\", \"Unicode hex\": \"1F7CD\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"245\", \"Dingbat hex\": \"F5\", \"Unicode dec\": \"128980\", \"Unicode hex\": \"1F7D4\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"246\", \"Dingbat hex\": \"F6\", \"Unicode dec\": \"11212\", \"Unicode hex\": \"2BCC\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"247\", \"Dingbat hex\": \"F7\", \"Unicode dec\": \"11213\", \"Unicode hex\": \"2BCD\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"248\", \"Dingbat hex\": \"F8\", \"Unicode dec\": \"8251\", \"Unicode hex\": \"203B\" },\n { \"Typeface name\": \"Wingdings 2\", \"Dingbat dec\": \"249\", \"Dingbat hex\": \"F9\", \"Unicode dec\": \"8258\", \"Unicode hex\": \"2042\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"32\", \"Dingbat hex\": \"20\", \"Unicode dec\": \"32\", \"Unicode hex\": \"20\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"33\", \"Dingbat hex\": \"21\", \"Unicode dec\": \"11104\", \"Unicode hex\": \"2B60\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"34\", \"Dingbat hex\": \"22\", \"Unicode dec\": \"11106\", \"Unicode hex\": \"2B62\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"35\", \"Dingbat hex\": \"23\", \"Unicode dec\": \"11105\", \"Unicode hex\": \"2B61\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"36\", \"Dingbat hex\": \"24\", \"Unicode dec\": \"11107\", \"Unicode hex\": \"2B63\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"37\", \"Dingbat hex\": \"25\", \"Unicode dec\": \"11110\", \"Unicode hex\": \"2B66\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"38\", \"Dingbat hex\": \"26\", \"Unicode dec\": \"11111\", \"Unicode hex\": \"2B67\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"39\", \"Dingbat hex\": \"27\", \"Unicode dec\": \"11113\", \"Unicode hex\": \"2B69\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"40\", \"Dingbat hex\": \"28\", \"Unicode dec\": \"11112\", \"Unicode hex\": \"2B68\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"41\", \"Dingbat hex\": \"29\", \"Unicode dec\": \"11120\", \"Unicode hex\": \"2B70\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"42\", \"Dingbat hex\": \"2A\", \"Unicode dec\": \"11122\", \"Unicode hex\": \"2B72\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"43\", \"Dingbat hex\": \"2B\", \"Unicode dec\": \"11121\", \"Unicode hex\": \"2B71\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"44\", \"Dingbat hex\": \"2C\", \"Unicode dec\": \"11123\", \"Unicode hex\": \"2B73\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"45\", \"Dingbat hex\": \"2D\", \"Unicode dec\": \"11126\", \"Unicode hex\": \"2B76\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"46\", \"Dingbat hex\": \"2E\", \"Unicode dec\": \"11128\", \"Unicode hex\": \"2B78\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"47\", \"Dingbat hex\": \"2F\", \"Unicode dec\": \"11131\", \"Unicode hex\": \"2B7B\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"48\", \"Dingbat hex\": \"30\", \"Unicode dec\": \"11133\", \"Unicode hex\": \"2B7D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"49\", \"Dingbat hex\": \"31\", \"Unicode dec\": \"11108\", \"Unicode hex\": \"2B64\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"50\", \"Dingbat hex\": \"32\", \"Unicode dec\": \"11109\", \"Unicode hex\": \"2B65\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"51\", \"Dingbat hex\": \"33\", \"Unicode dec\": \"11114\", \"Unicode hex\": \"2B6A\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"52\", \"Dingbat hex\": \"34\", \"Unicode dec\": \"11116\", \"Unicode hex\": \"2B6C\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"53\", \"Dingbat hex\": \"35\", \"Unicode dec\": \"11115\", \"Unicode hex\": \"2B6B\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"54\", \"Dingbat hex\": \"36\", \"Unicode dec\": \"11117\", \"Unicode hex\": \"2B6D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"55\", \"Dingbat hex\": \"37\", \"Unicode dec\": \"11085\", \"Unicode hex\": \"2B4D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"56\", \"Dingbat hex\": \"38\", \"Unicode dec\": \"11168\", \"Unicode hex\": \"2BA0\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"57\", \"Dingbat hex\": \"39\", \"Unicode dec\": \"11169\", \"Unicode hex\": \"2BA1\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"58\", \"Dingbat hex\": \"3A\", \"Unicode dec\": \"11170\", \"Unicode hex\": \"2BA2\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"59\", \"Dingbat hex\": \"3B\", \"Unicode dec\": \"11171\", \"Unicode hex\": \"2BA3\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"60\", \"Dingbat hex\": \"3C\", \"Unicode dec\": \"11172\", \"Unicode hex\": \"2BA4\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"61\", \"Dingbat hex\": \"3D\", \"Unicode dec\": \"11173\", \"Unicode hex\": \"2BA5\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"62\", \"Dingbat hex\": \"3E\", \"Unicode dec\": \"11174\", \"Unicode hex\": \"2BA6\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"63\", \"Dingbat hex\": \"3F\", \"Unicode dec\": \"11175\", \"Unicode hex\": \"2BA7\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"64\", \"Dingbat hex\": \"40\", \"Unicode dec\": \"11152\", \"Unicode hex\": \"2B90\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"65\", \"Dingbat hex\": \"41\", \"Unicode dec\": \"11153\", \"Unicode hex\": \"2B91\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"66\", \"Dingbat hex\": \"42\", \"Unicode dec\": \"11154\", \"Unicode hex\": \"2B92\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"67\", \"Dingbat hex\": \"43\", \"Unicode dec\": \"11155\", \"Unicode hex\": \"2B93\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"68\", \"Dingbat hex\": \"44\", \"Unicode dec\": \"11136\", \"Unicode hex\": \"2B80\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"69\", \"Dingbat hex\": \"45\", \"Unicode dec\": \"11139\", \"Unicode hex\": \"2B83\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"70\", \"Dingbat hex\": \"46\", \"Unicode dec\": \"11134\", \"Unicode hex\": \"2B7E\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"71\", \"Dingbat hex\": \"47\", \"Unicode dec\": \"11135\", \"Unicode hex\": \"2B7F\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"72\", \"Dingbat hex\": \"48\", \"Unicode dec\": \"11140\", \"Unicode hex\": \"2B84\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"73\", \"Dingbat hex\": \"49\", \"Unicode dec\": \"11142\", \"Unicode hex\": \"2B86\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"74\", \"Dingbat hex\": \"4A\", \"Unicode dec\": \"11141\", \"Unicode hex\": \"2B85\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"75\", \"Dingbat hex\": \"4B\", \"Unicode dec\": \"11143\", \"Unicode hex\": \"2B87\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"76\", \"Dingbat hex\": \"4C\", \"Unicode dec\": \"11151\", \"Unicode hex\": \"2B8F\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"77\", \"Dingbat hex\": \"4D\", \"Unicode dec\": \"11149\", \"Unicode hex\": \"2B8D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"78\", \"Dingbat hex\": \"4E\", \"Unicode dec\": \"11150\", \"Unicode hex\": \"2B8E\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"79\", \"Dingbat hex\": \"4F\", \"Unicode dec\": \"11148\", \"Unicode hex\": \"2B8C\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"80\", \"Dingbat hex\": \"50\", \"Unicode dec\": \"11118\", \"Unicode hex\": \"2B6E\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"81\", \"Dingbat hex\": \"51\", \"Unicode dec\": \"11119\", \"Unicode hex\": \"2B6F\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"82\", \"Dingbat hex\": \"52\", \"Unicode dec\": \"9099\", \"Unicode hex\": \"238B\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"83\", \"Dingbat hex\": \"53\", \"Unicode dec\": \"8996\", \"Unicode hex\": \"2324\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"84\", \"Dingbat hex\": \"54\", \"Unicode dec\": \"8963\", \"Unicode hex\": \"2303\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"85\", \"Dingbat hex\": \"55\", \"Unicode dec\": \"8997\", \"Unicode hex\": \"2325\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"86\", \"Dingbat hex\": \"56\", \"Unicode dec\": \"9251\", \"Unicode hex\": \"2423\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"87\", \"Dingbat hex\": \"57\", \"Unicode dec\": \"9085\", \"Unicode hex\": \"237D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"88\", \"Dingbat hex\": \"58\", \"Unicode dec\": \"8682\", \"Unicode hex\": \"21EA\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"89\", \"Dingbat hex\": \"59\", \"Unicode dec\": \"11192\", \"Unicode hex\": \"2BB8\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"90\", \"Dingbat hex\": \"5A\", \"Unicode dec\": \"129184\", \"Unicode hex\": \"1F8A0\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"91\", \"Dingbat hex\": \"5B\", \"Unicode dec\": \"129185\", \"Unicode hex\": \"1F8A1\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"92\", \"Dingbat hex\": \"5C\", \"Unicode dec\": \"129186\", \"Unicode hex\": \"1F8A2\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"93\", \"Dingbat hex\": \"5D\", \"Unicode dec\": \"129187\", \"Unicode hex\": \"1F8A3\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"94\", \"Dingbat hex\": \"5E\", \"Unicode dec\": \"129188\", \"Unicode hex\": \"1F8A4\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"95\", \"Dingbat hex\": \"5F\", \"Unicode dec\": \"129189\", \"Unicode hex\": \"1F8A5\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"96\", \"Dingbat hex\": \"60\", \"Unicode dec\": \"129190\", \"Unicode hex\": \"1F8A6\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"97\", \"Dingbat hex\": \"61\", \"Unicode dec\": \"129191\", \"Unicode hex\": \"1F8A7\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"98\", \"Dingbat hex\": \"62\", \"Unicode dec\": \"129192\", \"Unicode hex\": \"1F8A8\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"99\", \"Dingbat hex\": \"63\", \"Unicode dec\": \"129193\", \"Unicode hex\": \"1F8A9\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"100\", \"Dingbat hex\": \"64\", \"Unicode dec\": \"129194\", \"Unicode hex\": \"1F8AA\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"101\", \"Dingbat hex\": \"65\", \"Unicode dec\": \"129195\", \"Unicode hex\": \"1F8AB\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"102\", \"Dingbat hex\": \"66\", \"Unicode dec\": \"129104\", \"Unicode hex\": \"1F850\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"103\", \"Dingbat hex\": \"67\", \"Unicode dec\": \"129106\", \"Unicode hex\": \"1F852\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"104\", \"Dingbat hex\": \"68\", \"Unicode dec\": \"129105\", \"Unicode hex\": \"1F851\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"105\", \"Dingbat hex\": \"69\", \"Unicode dec\": \"129107\", \"Unicode hex\": \"1F853\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"106\", \"Dingbat hex\": \"6A\", \"Unicode dec\": \"129108\", \"Unicode hex\": \"1F854\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"107\", \"Dingbat hex\": \"6B\", \"Unicode dec\": \"129109\", \"Unicode hex\": \"1F855\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"108\", \"Dingbat hex\": \"6C\", \"Unicode dec\": \"129111\", \"Unicode hex\": \"1F857\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"109\", \"Dingbat hex\": \"6D\", \"Unicode dec\": \"129110\", \"Unicode hex\": \"1F856\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"110\", \"Dingbat hex\": \"6E\", \"Unicode dec\": \"129112\", \"Unicode hex\": \"1F858\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"111\", \"Dingbat hex\": \"6F\", \"Unicode dec\": \"129113\", \"Unicode hex\": \"1F859\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"112\", \"Dingbat hex\": \"70\", \"Unicode dec\": \"9650\", \"Unicode hex\": \"25B2\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"113\", \"Dingbat hex\": \"71\", \"Unicode dec\": \"9660\", \"Unicode hex\": \"25BC\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"114\", \"Dingbat hex\": \"72\", \"Unicode dec\": \"9651\", \"Unicode hex\": \"25B3\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"115\", \"Dingbat hex\": \"73\", \"Unicode dec\": \"9661\", \"Unicode hex\": \"25BD\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"116\", \"Dingbat hex\": \"74\", \"Unicode dec\": \"9664\", \"Unicode hex\": \"25C0\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"117\", \"Dingbat hex\": \"75\", \"Unicode dec\": \"9654\", \"Unicode hex\": \"25B6\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"118\", \"Dingbat hex\": \"76\", \"Unicode dec\": \"9665\", \"Unicode hex\": \"25C1\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"119\", \"Dingbat hex\": \"77\", \"Unicode dec\": \"9655\", \"Unicode hex\": \"25B7\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"120\", \"Dingbat hex\": \"78\", \"Unicode dec\": \"9699\", \"Unicode hex\": \"25E3\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"121\", \"Dingbat hex\": \"79\", \"Unicode dec\": \"9698\", \"Unicode hex\": \"25E2\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"122\", \"Dingbat hex\": \"7A\", \"Unicode dec\": \"9700\", \"Unicode hex\": \"25E4\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"123\", \"Dingbat hex\": \"7B\", \"Unicode dec\": \"9701\", \"Unicode hex\": \"25E5\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"124\", \"Dingbat hex\": \"7C\", \"Unicode dec\": \"128896\", \"Unicode hex\": \"1F780\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"125\", \"Dingbat hex\": \"7D\", \"Unicode dec\": \"128898\", \"Unicode hex\": \"1F782\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"126\", \"Dingbat hex\": \"7E\", \"Unicode dec\": \"128897\", \"Unicode hex\": \"1F781\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"128\", \"Dingbat hex\": \"80\", \"Unicode dec\": \"128899\", \"Unicode hex\": \"1F783\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"129\", \"Dingbat hex\": \"81\", \"Unicode dec\": \"11205\", \"Unicode hex\": \"2BC5\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"130\", \"Dingbat hex\": \"82\", \"Unicode dec\": \"11206\", \"Unicode hex\": \"2BC6\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"131\", \"Dingbat hex\": \"83\", \"Unicode dec\": \"11207\", \"Unicode hex\": \"2BC7\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"132\", \"Dingbat hex\": \"84\", \"Unicode dec\": \"11208\", \"Unicode hex\": \"2BC8\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"133\", \"Dingbat hex\": \"85\", \"Unicode dec\": \"11164\", \"Unicode hex\": \"2B9C\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"134\", \"Dingbat hex\": \"86\", \"Unicode dec\": \"11166\", \"Unicode hex\": \"2B9E\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"135\", \"Dingbat hex\": \"87\", \"Unicode dec\": \"11165\", \"Unicode hex\": \"2B9D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"136\", \"Dingbat hex\": \"88\", \"Unicode dec\": \"11167\", \"Unicode hex\": \"2B9F\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"137\", \"Dingbat hex\": \"89\", \"Unicode dec\": \"129040\", \"Unicode hex\": \"1F810\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"138\", \"Dingbat hex\": \"8A\", \"Unicode dec\": \"129042\", \"Unicode hex\": \"1F812\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"139\", \"Dingbat hex\": \"8B\", \"Unicode dec\": \"129041\", \"Unicode hex\": \"1F811\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"140\", \"Dingbat hex\": \"8C\", \"Unicode dec\": \"129043\", \"Unicode hex\": \"1F813\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"141\", \"Dingbat hex\": \"8D\", \"Unicode dec\": \"129044\", \"Unicode hex\": \"1F814\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"142\", \"Dingbat hex\": \"8E\", \"Unicode dec\": \"129046\", \"Unicode hex\": \"1F816\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"143\", \"Dingbat hex\": \"8F\", \"Unicode dec\": \"129045\", \"Unicode hex\": \"1F815\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"144\", \"Dingbat hex\": \"90\", \"Unicode dec\": \"129047\", \"Unicode hex\": \"1F817\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"145\", \"Dingbat hex\": \"91\", \"Unicode dec\": \"129048\", \"Unicode hex\": \"1F818\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"146\", \"Dingbat hex\": \"92\", \"Unicode dec\": \"129050\", \"Unicode hex\": \"1F81A\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"147\", \"Dingbat hex\": \"93\", \"Unicode dec\": \"129049\", \"Unicode hex\": \"1F819\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"148\", \"Dingbat hex\": \"94\", \"Unicode dec\": \"129051\", \"Unicode hex\": \"1F81B\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"149\", \"Dingbat hex\": \"95\", \"Unicode dec\": \"129052\", \"Unicode hex\": \"1F81C\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"150\", \"Dingbat hex\": \"96\", \"Unicode dec\": \"129054\", \"Unicode hex\": \"1F81E\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"151\", \"Dingbat hex\": \"97\", \"Unicode dec\": \"129053\", \"Unicode hex\": \"1F81D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"152\", \"Dingbat hex\": \"98\", \"Unicode dec\": \"129055\", \"Unicode hex\": \"1F81F\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"153\", \"Dingbat hex\": \"99\", \"Unicode dec\": \"129024\", \"Unicode hex\": \"1F800\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"154\", \"Dingbat hex\": \"9A\", \"Unicode dec\": \"129026\", \"Unicode hex\": \"1F802\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"155\", \"Dingbat hex\": \"9B\", \"Unicode dec\": \"129025\", \"Unicode hex\": \"1F801\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"156\", \"Dingbat hex\": \"9C\", \"Unicode dec\": \"129027\", \"Unicode hex\": \"1F803\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"157\", \"Dingbat hex\": \"9D\", \"Unicode dec\": \"129028\", \"Unicode hex\": \"1F804\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"158\", \"Dingbat hex\": \"9E\", \"Unicode dec\": \"129030\", \"Unicode hex\": \"1F806\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"159\", \"Dingbat hex\": \"9F\", \"Unicode dec\": \"129029\", \"Unicode hex\": \"1F805\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"160\", \"Dingbat hex\": \"A0\", \"Unicode dec\": \"129031\", \"Unicode hex\": \"1F807\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"161\", \"Dingbat hex\": \"A1\", \"Unicode dec\": \"129032\", \"Unicode hex\": \"1F808\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"162\", \"Dingbat hex\": \"A2\", \"Unicode dec\": \"129034\", \"Unicode hex\": \"1F80A\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"163\", \"Dingbat hex\": \"A3\", \"Unicode dec\": \"129033\", \"Unicode hex\": \"1F809\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"164\", \"Dingbat hex\": \"A4\", \"Unicode dec\": \"129035\", \"Unicode hex\": \"1F80B\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"165\", \"Dingbat hex\": \"A5\", \"Unicode dec\": \"129056\", \"Unicode hex\": \"1F820\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"166\", \"Dingbat hex\": \"A6\", \"Unicode dec\": \"129058\", \"Unicode hex\": \"1F822\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"167\", \"Dingbat hex\": \"A7\", \"Unicode dec\": \"129060\", \"Unicode hex\": \"1F824\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"168\", \"Dingbat hex\": \"A8\", \"Unicode dec\": \"129062\", \"Unicode hex\": \"1F826\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"169\", \"Dingbat hex\": \"A9\", \"Unicode dec\": \"129064\", \"Unicode hex\": \"1F828\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"170\", \"Dingbat hex\": \"AA\", \"Unicode dec\": \"129066\", \"Unicode hex\": \"1F82A\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"171\", \"Dingbat hex\": \"AB\", \"Unicode dec\": \"129068\", \"Unicode hex\": \"1F82C\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"172\", \"Dingbat hex\": \"AC\", \"Unicode dec\": \"129180\", \"Unicode hex\": \"1F89C\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"173\", \"Dingbat hex\": \"AD\", \"Unicode dec\": \"129181\", \"Unicode hex\": \"1F89D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"174\", \"Dingbat hex\": \"AE\", \"Unicode dec\": \"129182\", \"Unicode hex\": \"1F89E\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"175\", \"Dingbat hex\": \"AF\", \"Unicode dec\": \"129183\", \"Unicode hex\": \"1F89F\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"176\", \"Dingbat hex\": \"B0\", \"Unicode dec\": \"129070\", \"Unicode hex\": \"1F82E\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"177\", \"Dingbat hex\": \"B1\", \"Unicode dec\": \"129072\", \"Unicode hex\": \"1F830\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"178\", \"Dingbat hex\": \"B2\", \"Unicode dec\": \"129074\", \"Unicode hex\": \"1F832\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"179\", \"Dingbat hex\": \"B3\", \"Unicode dec\": \"129076\", \"Unicode hex\": \"1F834\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"180\", \"Dingbat hex\": \"B4\", \"Unicode dec\": \"129078\", \"Unicode hex\": \"1F836\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"181\", \"Dingbat hex\": \"B5\", \"Unicode dec\": \"129080\", \"Unicode hex\": \"1F838\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"182\", \"Dingbat hex\": \"B6\", \"Unicode dec\": \"129082\", \"Unicode hex\": \"1F83A\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"183\", \"Dingbat hex\": \"B7\", \"Unicode dec\": \"129081\", \"Unicode hex\": \"1F839\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"184\", \"Dingbat hex\": \"B8\", \"Unicode dec\": \"129083\", \"Unicode hex\": \"1F83B\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"185\", \"Dingbat hex\": \"B9\", \"Unicode dec\": \"129176\", \"Unicode hex\": \"1F898\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"186\", \"Dingbat hex\": \"BA\", \"Unicode dec\": \"129178\", \"Unicode hex\": \"1F89A\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"187\", \"Dingbat hex\": \"BB\", \"Unicode dec\": \"129177\", \"Unicode hex\": \"1F899\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"188\", \"Dingbat hex\": \"BC\", \"Unicode dec\": \"129179\", \"Unicode hex\": \"1F89B\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"189\", \"Dingbat hex\": \"BD\", \"Unicode dec\": \"129084\", \"Unicode hex\": \"1F83C\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"190\", \"Dingbat hex\": \"BE\", \"Unicode dec\": \"129086\", \"Unicode hex\": \"1F83E\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"191\", \"Dingbat hex\": \"BF\", \"Unicode dec\": \"129085\", \"Unicode hex\": \"1F83D\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"192\", \"Dingbat hex\": \"C0\", \"Unicode dec\": \"129087\", \"Unicode hex\": \"1F83F\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"193\", \"Dingbat hex\": \"C1\", \"Unicode dec\": \"129088\", \"Unicode hex\": \"1F840\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"194\", \"Dingbat hex\": \"C2\", \"Unicode dec\": \"129090\", \"Unicode hex\": \"1F842\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"195\", \"Dingbat hex\": \"C3\", \"Unicode dec\": \"129089\", \"Unicode hex\": \"1F841\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"196\", \"Dingbat hex\": \"C4\", \"Unicode dec\": \"129091\", \"Unicode hex\": \"1F843\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"197\", \"Dingbat hex\": \"C5\", \"Unicode dec\": \"129092\", \"Unicode hex\": \"1F844\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"198\", \"Dingbat hex\": \"C6\", \"Unicode dec\": \"129094\", \"Unicode hex\": \"1F846\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"199\", \"Dingbat hex\": \"C7\", \"Unicode dec\": \"129093\", \"Unicode hex\": \"1F845\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"200\", \"Dingbat hex\": \"C8\", \"Unicode dec\": \"129095\", \"Unicode hex\": \"1F847\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"201\", \"Dingbat hex\": \"C9\", \"Unicode dec\": \"11176\", \"Unicode hex\": \"2BA8\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"202\", \"Dingbat hex\": \"CA\", \"Unicode dec\": \"11177\", \"Unicode hex\": \"2BA9\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"203\", \"Dingbat hex\": \"CB\", \"Unicode dec\": \"11178\", \"Unicode hex\": \"2BAA\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"204\", \"Dingbat hex\": \"CC\", \"Unicode dec\": \"11179\", \"Unicode hex\": \"2BAB\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"205\", \"Dingbat hex\": \"CD\", \"Unicode dec\": \"11180\", \"Unicode hex\": \"2BAC\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"206\", \"Dingbat hex\": \"CE\", \"Unicode dec\": \"11181\", \"Unicode hex\": \"2BAD\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"207\", \"Dingbat hex\": \"CF\", \"Unicode dec\": \"11182\", \"Unicode hex\": \"2BAE\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"208\", \"Dingbat hex\": \"D0\", \"Unicode dec\": \"11183\", \"Unicode hex\": \"2BAF\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"209\", \"Dingbat hex\": \"D1\", \"Unicode dec\": \"129120\", \"Unicode hex\": \"1F860\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"210\", \"Dingbat hex\": \"D2\", \"Unicode dec\": \"129122\", \"Unicode hex\": \"1F862\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"211\", \"Dingbat hex\": \"D3\", \"Unicode dec\": \"129121\", \"Unicode hex\": \"1F861\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"212\", \"Dingbat hex\": \"D4\", \"Unicode dec\": \"129123\", \"Unicode hex\": \"1F863\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"213\", \"Dingbat hex\": \"D5\", \"Unicode dec\": \"129124\", \"Unicode hex\": \"1F864\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"214\", \"Dingbat hex\": \"D6\", \"Unicode dec\": \"129125\", \"Unicode hex\": \"1F865\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"215\", \"Dingbat hex\": \"D7\", \"Unicode dec\": \"129127\", \"Unicode hex\": \"1F867\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"216\", \"Dingbat hex\": \"D8\", \"Unicode dec\": \"129126\", \"Unicode hex\": \"1F866\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"217\", \"Dingbat hex\": \"D9\", \"Unicode dec\": \"129136\", \"Unicode hex\": \"1F870\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"218\", \"Dingbat hex\": \"DA\", \"Unicode dec\": \"129138\", \"Unicode hex\": \"1F872\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"219\", \"Dingbat hex\": \"DB\", \"Unicode dec\": \"129137\", \"Unicode hex\": \"1F871\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"220\", \"Dingbat hex\": \"DC\", \"Unicode dec\": \"129139\", \"Unicode hex\": \"1F873\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"221\", \"Dingbat hex\": \"DD\", \"Unicode dec\": \"129140\", \"Unicode hex\": \"1F874\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"222\", \"Dingbat hex\": \"DE\", \"Unicode dec\": \"129141\", \"Unicode hex\": \"1F875\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"223\", \"Dingbat hex\": \"DF\", \"Unicode dec\": \"129143\", \"Unicode hex\": \"1F877\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"224\", \"Dingbat hex\": \"E0\", \"Unicode dec\": \"129142\", \"Unicode hex\": \"1F876\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"225\", \"Dingbat hex\": \"E1\", \"Unicode dec\": \"129152\", \"Unicode hex\": \"1F880\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"226\", \"Dingbat hex\": \"E2\", \"Unicode dec\": \"129154\", \"Unicode hex\": \"1F882\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"227\", \"Dingbat hex\": \"E3\", \"Unicode dec\": \"129153\", \"Unicode hex\": \"1F881\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"228\", \"Dingbat hex\": \"E4\", \"Unicode dec\": \"129155\", \"Unicode hex\": \"1F883\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"229\", \"Dingbat hex\": \"E5\", \"Unicode dec\": \"129156\", \"Unicode hex\": \"1F884\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"230\", \"Dingbat hex\": \"E6\", \"Unicode dec\": \"129157\", \"Unicode hex\": \"1F885\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"231\", \"Dingbat hex\": \"E7\", \"Unicode dec\": \"129159\", \"Unicode hex\": \"1F887\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"232\", \"Dingbat hex\": \"E8\", \"Unicode dec\": \"129158\", \"Unicode hex\": \"1F886\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"233\", \"Dingbat hex\": \"E9\", \"Unicode dec\": \"129168\", \"Unicode hex\": \"1F890\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"234\", \"Dingbat hex\": \"EA\", \"Unicode dec\": \"129170\", \"Unicode hex\": \"1F892\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"235\", \"Dingbat hex\": \"EB\", \"Unicode dec\": \"129169\", \"Unicode hex\": \"1F891\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"236\", \"Dingbat hex\": \"EC\", \"Unicode dec\": \"129171\", \"Unicode hex\": \"1F893\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"237\", \"Dingbat hex\": \"ED\", \"Unicode dec\": \"129172\", \"Unicode hex\": \"1F894\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"238\", \"Dingbat hex\": \"EE\", \"Unicode dec\": \"129174\", \"Unicode hex\": \"1F896\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"239\", \"Dingbat hex\": \"EF\", \"Unicode dec\": \"129173\", \"Unicode hex\": \"1F895\" },\n { \"Typeface name\": \"Wingdings 3\", \"Dingbat dec\": \"240\", \"Dingbat hex\": \"F0\", \"Unicode dec\": \"129175\", \"Unicode hex\": \"1F897\" },\n];\nexports.default = dingbats;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hex = exports.dec = exports.codePoint = void 0;\nvar dingbats_1 = __importDefault(require(\"./dingbats\"));\nvar dingbatsByCodePoint = {};\nvar fromCodePoint = String.fromCodePoint ? String.fromCodePoint : fromCodePointPolyfill;\nfor (var _i = 0, dingbats_2 = dingbats_1.default; _i < dingbats_2.length; _i++) {\n var dingbat = dingbats_2[_i];\n var codePoint_1 = parseInt(dingbat[\"Unicode dec\"], 10);\n var scalarValue = {\n codePoint: codePoint_1,\n string: fromCodePoint(codePoint_1),\n };\n dingbatsByCodePoint[dingbat[\"Typeface name\"].toUpperCase() + \"_\" + dingbat[\"Dingbat dec\"]] = scalarValue;\n}\nfunction codePoint(typeface, codePoint) {\n return dingbatsByCodePoint[typeface.toUpperCase() + \"_\" + codePoint];\n}\nexports.codePoint = codePoint;\nfunction dec(typeface, dec) {\n return codePoint(typeface, parseInt(dec, 10));\n}\nexports.dec = dec;\nfunction hex(typeface, hex) {\n return codePoint(typeface, parseInt(hex, 16));\n}\nexports.hex = hex;\nfunction fromCodePointPolyfill(codePoint) {\n if (codePoint <= 0xFFFF) {\n // BMP\n return String.fromCharCode(codePoint);\n }\n else {\n // Astral\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n var highSurrogate = Math.floor((codePoint - 0x10000) / 0x400) + 0xD800;\n var lowSurrogate = (codePoint - 0x10000) % 0x400 + 0xDC00;\n return String.fromCharCode(highSurrogate, lowSurrogate);\n }\n}\n;\n","var _ = require(\"underscore\");\n\nexports.paragraph = paragraph;\nexports.run = run;\nexports._elements = elements;\nexports._elementsOfType = elementsOfType;\nexports.getDescendantsOfType = getDescendantsOfType;\nexports.getDescendants = getDescendants;\n\nfunction paragraph(transform) {\n return elementsOfType(\"paragraph\", transform);\n}\n\nfunction run(transform) {\n return elementsOfType(\"run\", transform);\n}\n\nfunction elementsOfType(elementType, transform) {\n return elements(function(element) {\n if (element.type === elementType) {\n return transform(element);\n } else {\n return element;\n }\n });\n}\n\nfunction elements(transform) {\n return function transformElement(element) {\n if (element.children) {\n var children = _.map(element.children, transformElement);\n element = _.extend(element, {children: children});\n }\n return transform(element);\n };\n}\n\n\nfunction getDescendantsOfType(element, type) {\n return getDescendants(element).filter(function(descendant) {\n return descendant.type === type;\n });\n}\n\nfunction getDescendants(element) {\n var descendants = [];\n\n visitDescendants(element, function(descendant) {\n descendants.push(descendant);\n });\n\n return descendants;\n}\n\nfunction visitDescendants(element, visit) {\n if (element.children) {\n element.children.forEach(function(child) {\n visitDescendants(child, visit);\n visit(child);\n });\n }\n}\n","exports.uriToZipEntryName = uriToZipEntryName;\nexports.replaceFragment = replaceFragment;\n\nfunction uriToZipEntryName(base, uri) {\n if (uri.charAt(0) === \"/\") {\n return uri.substr(1);\n } else {\n // In general, we should check first and second for trailing and leading slashes,\n // but in our specific case this seems to be sufficient\n return base + \"/\" + uri;\n }\n}\n\n\nfunction replaceFragment(uri, fragment) {\n var hashIndex = uri.indexOf(\"#\");\n if (hashIndex !== -1) {\n uri = uri.substring(0, hashIndex);\n }\n return uri + \"#\" + fragment;\n}\n","exports.createBodyReader = createBodyReader;\nexports._readNumberingProperties = readNumberingProperties;\n\nvar dingbatToUnicode = require(\"dingbat-to-unicode\");\nvar _ = require(\"underscore\");\n\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\nvar warning = require(\"../results\").warning;\nvar xml = require(\"../xml\");\nvar transforms = require(\"../transforms\");\nvar uris = require(\"./uris\");\n\nfunction createBodyReader(options) {\n return {\n readXmlElement: function(element) {\n return new BodyReader(options).readXmlElement(element);\n },\n readXmlElements: function(elements) {\n return new BodyReader(options).readXmlElements(elements);\n }\n };\n}\n\nfunction BodyReader(options) {\n var complexFieldStack = [];\n var currentInstrText = [];\n\n // When a paragraph is marked as deleted, its contents should be combined\n // with the following paragraph. See 17.13.5.15 del (Deleted Paragraph) of\n // ECMA-376 4th edition Part 1.\n var deletedParagraphContents = [];\n\n var relationships = options.relationships;\n var contentTypes = options.contentTypes;\n var docxFile = options.docxFile;\n var files = options.files;\n var numbering = options.numbering;\n var styles = options.styles;\n\n function readXmlElements(elements) {\n var results = elements.map(readXmlElement);\n return combineResults(results);\n }\n\n function readXmlElement(element) {\n if (element.type === \"element\") {\n var handler = xmlElementReaders[element.name];\n if (handler) {\n return handler(element);\n } else if (!Object.prototype.hasOwnProperty.call(ignoreElements, element.name)) {\n var message = warning(\"An unrecognised element was ignored: \" + element.name);\n return emptyResultWithMessages([message]);\n }\n }\n return emptyResult();\n }\n\n function readParagraphProperties(element) {\n return readParagraphStyle(element).map(function(style) {\n return {\n type: \"paragraphProperties\",\n styleId: style.styleId,\n styleName: style.name,\n alignment: element.firstOrEmpty(\"w:jc\").attributes[\"w:val\"],\n numbering: readNumberingProperties(style.styleId, element.firstOrEmpty(\"w:numPr\"), numbering),\n indent: readParagraphIndent(element.firstOrEmpty(\"w:ind\"))\n };\n });\n }\n\n function readParagraphIndent(element) {\n return {\n start: element.attributes[\"w:start\"] || element.attributes[\"w:left\"],\n end: element.attributes[\"w:end\"] || element.attributes[\"w:right\"],\n firstLine: element.attributes[\"w:firstLine\"],\n hanging: element.attributes[\"w:hanging\"]\n };\n }\n\n function readRunProperties(element) {\n return readRunStyle(element).map(function(style) {\n var fontSizeString = element.firstOrEmpty(\"w:sz\").attributes[\"w:val\"];\n // w:sz gives the font size in half points, so halve the value to get the size in points\n var fontSize = /^[0-9]+$/.test(fontSizeString) ? parseInt(fontSizeString, 10) / 2 : null;\n\n return {\n type: \"runProperties\",\n styleId: style.styleId,\n styleName: style.name,\n verticalAlignment: element.firstOrEmpty(\"w:vertAlign\").attributes[\"w:val\"],\n font: element.firstOrEmpty(\"w:rFonts\").attributes[\"w:ascii\"],\n fontSize: fontSize,\n isBold: readBooleanElement(element.first(\"w:b\")),\n isUnderline: readUnderline(element.first(\"w:u\")),\n isItalic: readBooleanElement(element.first(\"w:i\")),\n isStrikethrough: readBooleanElement(element.first(\"w:strike\")),\n isAllCaps: readBooleanElement(element.first(\"w:caps\")),\n isSmallCaps: readBooleanElement(element.first(\"w:smallCaps\")),\n highlight: readHighlightValue(element.firstOrEmpty(\"w:highlight\").attributes[\"w:val\"])\n };\n });\n }\n\n function readUnderline(element) {\n if (element) {\n var value = element.attributes[\"w:val\"];\n return value !== undefined && value !== \"false\" && value !== \"0\" && value !== \"none\";\n } else {\n return false;\n }\n }\n\n function readBooleanElement(element) {\n if (element) {\n var value = element.attributes[\"w:val\"];\n return value !== \"false\" && value !== \"0\";\n } else {\n return false;\n }\n }\n\n function readBooleanAttributeValue(value) {\n return value !== \"false\" && value !== \"0\";\n }\n\n function readHighlightValue(value) {\n if (!value || value === \"none\") {\n return null;\n } else {\n return value;\n }\n }\n\n function readParagraphStyle(element) {\n return readStyle(element, \"w:pStyle\", \"Paragraph\", styles.findParagraphStyleById);\n }\n\n function readRunStyle(element) {\n return readStyle(element, \"w:rStyle\", \"Run\", styles.findCharacterStyleById);\n }\n\n function readTableStyle(element) {\n return readStyle(element, \"w:tblStyle\", \"Table\", styles.findTableStyleById);\n }\n\n function readStyle(element, styleTagName, styleType, findStyleById) {\n var messages = [];\n var styleElement = element.first(styleTagName);\n var styleId = null;\n var name = null;\n if (styleElement) {\n styleId = styleElement.attributes[\"w:val\"];\n if (styleId) {\n var style = findStyleById(styleId);\n if (style) {\n name = style.name;\n } else {\n messages.push(undefinedStyleWarning(styleType, styleId));\n }\n }\n }\n return elementResultWithMessages({styleId: styleId, name: name}, messages);\n }\n\n function readFldChar(element) {\n var type = element.attributes[\"w:fldCharType\"];\n if (type === \"begin\") {\n complexFieldStack.push({type: \"begin\", fldChar: element});\n currentInstrText = [];\n } else if (type === \"end\") {\n var complexFieldEnd = complexFieldStack.pop();\n if (complexFieldEnd.type === \"begin\") {\n complexFieldEnd = parseCurrentInstrText(complexFieldEnd);\n }\n if (complexFieldEnd.type === \"checkbox\") {\n return elementResult(documents.checkbox({\n checked: complexFieldEnd.checked\n }));\n }\n } else if (type === \"separate\") {\n var complexFieldSeparate = complexFieldStack.pop();\n var complexField = parseCurrentInstrText(complexFieldSeparate);\n complexFieldStack.push(complexField);\n }\n return emptyResult();\n }\n\n function currentHyperlinkOptions() {\n var topHyperlink = _.last(complexFieldStack.filter(function(complexField) {\n return complexField.type === \"hyperlink\";\n }));\n return topHyperlink ? topHyperlink.options : null;\n }\n\n function parseCurrentInstrText(complexField) {\n return parseInstrText(\n currentInstrText.join(''),\n complexField.type === \"begin\"\n ? complexField.fldChar\n : xml.emptyElement\n );\n }\n\n function parseInstrText(instrText, fldChar) {\n var linkResult = /^\\s*HYPERLINK\\s+(\\\\l\\s+)?(?:\"(.*)\"|([^\\\\]\\S*))/.exec(instrText);\n if (linkResult) {\n var location = linkResult[2] === undefined ? linkResult[3] : linkResult[2];\n var options = linkResult[1] === undefined ? {href: location} : {anchor: location};\n return {type: \"hyperlink\", options: options};\n }\n\n var checkboxResult = /\\s*FORMCHECKBOX\\s*/.exec(instrText);\n if (checkboxResult) {\n var checkboxElement = fldChar\n .firstOrEmpty(\"w:ffData\")\n .firstOrEmpty(\"w:checkBox\");\n var checkedElement = checkboxElement.first(\"w:checked\");\n var checked = checkedElement == null\n ? readBooleanElement(checkboxElement.first(\"w:default\"))\n : readBooleanElement(checkedElement);\n return {type: \"checkbox\", checked: checked};\n }\n\n return {type: \"unknown\"};\n }\n\n function readInstrText(element) {\n currentInstrText.push(element.text());\n return emptyResult();\n }\n\n function readSymbol(element) {\n // See 17.3.3.30 sym (Symbol Character) of ECMA-376 4th edition Part 1\n var font = element.attributes[\"w:font\"];\n var char = element.attributes[\"w:char\"];\n var unicodeCharacter = dingbatToUnicode.hex(font, char);\n if (unicodeCharacter == null && /^F0..$/.test(char)) {\n unicodeCharacter = dingbatToUnicode.hex(font, char.substring(2));\n }\n\n if (unicodeCharacter == null) {\n return emptyResultWithMessages([warning(\n \"A w:sym element with an unsupported character was ignored: char \" + char + \" in font \" + font\n )]);\n } else {\n return elementResult(new documents.Text(unicodeCharacter.string));\n }\n }\n\n function noteReferenceReader(noteType) {\n return function(element) {\n var noteId = element.attributes[\"w:id\"];\n return elementResult(new documents.NoteReference({\n noteType: noteType,\n noteId: noteId\n }));\n };\n }\n\n function readCommentReference(element) {\n return elementResult(documents.commentReference({\n commentId: element.attributes[\"w:id\"]\n }));\n }\n\n function readChildElements(element) {\n return readXmlElements(element.children);\n }\n\n var xmlElementReaders = {\n \"w:p\": function(element) {\n var paragraphPropertiesElement = element.firstOrEmpty(\"w:pPr\");\n\n var isDeleted = !!paragraphPropertiesElement\n .firstOrEmpty(\"w:rPr\")\n .first(\"w:del\");\n\n if (isDeleted) {\n element.children.forEach(function(child) {\n deletedParagraphContents.push(child);\n });\n return emptyResult();\n } else {\n var childrenXml = element.children;\n if (deletedParagraphContents.length > 0) {\n childrenXml = deletedParagraphContents.concat(childrenXml);\n deletedParagraphContents = [];\n }\n return ReadResult.map(\n readParagraphProperties(paragraphPropertiesElement),\n readXmlElements(childrenXml),\n function(properties, children) {\n return new documents.Paragraph(children, properties);\n }\n ).insertExtra();\n }\n },\n \"w:r\": function(element) {\n return ReadResult.map(\n readRunProperties(element.firstOrEmpty(\"w:rPr\")),\n readXmlElements(element.children),\n function(properties, children) {\n var hyperlinkOptions = currentHyperlinkOptions();\n if (hyperlinkOptions !== null) {\n children = [new documents.Hyperlink(children, hyperlinkOptions)];\n }\n\n return new documents.Run(children, properties);\n }\n );\n },\n \"w:fldChar\": readFldChar,\n \"w:instrText\": readInstrText,\n \"w:t\": function(element) {\n return elementResult(new documents.Text(element.text()));\n },\n \"w:tab\": function(element) {\n return elementResult(new documents.Tab());\n },\n \"w:noBreakHyphen\": function() {\n return elementResult(new documents.Text(\"\\u2011\"));\n },\n \"w:softHyphen\": function(element) {\n return elementResult(new documents.Text(\"\\u00AD\"));\n },\n \"w:sym\": readSymbol,\n \"w:hyperlink\": function(element) {\n var relationshipId = element.attributes[\"r:id\"];\n var anchor = element.attributes[\"w:anchor\"];\n return readXmlElements(element.children).map(function(children) {\n function create(options) {\n var targetFrame = element.attributes[\"w:tgtFrame\"] || null;\n\n return new documents.Hyperlink(\n children,\n _.extend({targetFrame: targetFrame}, options)\n );\n }\n\n if (relationshipId) {\n var href = relationships.findTargetByRelationshipId(relationshipId);\n if (anchor) {\n href = uris.replaceFragment(href, anchor);\n }\n return create({href: href});\n } else if (anchor) {\n return create({anchor: anchor});\n } else {\n return children;\n }\n });\n },\n \"w:tbl\": readTable,\n \"w:tr\": readTableRow,\n \"w:tc\": readTableCell,\n \"w:footnoteReference\": noteReferenceReader(\"footnote\"),\n \"w:endnoteReference\": noteReferenceReader(\"endnote\"),\n \"w:commentReference\": readCommentReference,\n \"w:br\": function(element) {\n var breakType = element.attributes[\"w:type\"];\n if (breakType == null || breakType === \"textWrapping\") {\n return elementResult(documents.lineBreak);\n } else if (breakType === \"page\") {\n return elementResult(documents.pageBreak);\n } else if (breakType === \"column\") {\n return elementResult(documents.columnBreak);\n } else {\n return emptyResultWithMessages([warning(\"Unsupported break type: \" + breakType)]);\n }\n },\n \"w:bookmarkStart\": function(element){\n var name = element.attributes[\"w:name\"];\n if (name === \"_GoBack\") {\n return emptyResult();\n } else {\n return elementResult(new documents.BookmarkStart({name: name}));\n }\n },\n\n \"mc:AlternateContent\": function(element) {\n return readChildElements(element.firstOrEmpty(\"mc:Fallback\"));\n },\n\n \"w:sdt\": function(element) {\n var contentResult = readXmlElements(element.firstOrEmpty(\"w:sdtContent\").children);\n return contentResult.map(function(content) {\n // From the WordML standard: https://learn.microsoft.com/en-us/openspecs/office_standards/ms-docx/3350cb64-931f-41f7-8824-f18b2568ce66\n //\n // > A CT_SdtCheckbox element that specifies that the parent\n // > structured document tag is a checkbox when displayed in the\n // > document. The parent structured document tag contents MUST\n // > contain a single character and optionally an additional\n // > character in a deleted run.\n\n var checkbox = element\n .firstOrEmpty(\"w:sdtPr\")\n .first(\"wordml:checkbox\");\n\n if (checkbox) {\n var checkedElement = checkbox.first(\"wordml:checked\");\n var isChecked = !!checkedElement && readBooleanAttributeValue(\n checkedElement.attributes[\"wordml:val\"]\n );\n var documentCheckbox = documents.checkbox({\n checked: isChecked\n });\n\n var hasCheckbox = false;\n var replacedContent = content.map(transforms._elementsOfType(\n documents.types.text,\n function(text) {\n if (text.value.length > 0 && !hasCheckbox) {\n hasCheckbox = true;\n return documentCheckbox;\n } else {\n return text;\n }\n }\n ));\n\n if (hasCheckbox) {\n return replacedContent;\n } else {\n return documentCheckbox;\n }\n\n } else {\n return content;\n }\n });\n },\n\n \"w:ins\": readChildElements,\n \"w:object\": readChildElements,\n \"w:smartTag\": readChildElements,\n \"w:drawing\": readChildElements,\n \"w:pict\": function(element) {\n return readChildElements(element).toExtra();\n },\n \"v:roundrect\": readChildElements,\n \"v:shape\": readChildElements,\n \"v:textbox\": readChildElements,\n \"w:txbxContent\": readChildElements,\n \"wp:inline\": readDrawingElement,\n \"wp:anchor\": readDrawingElement,\n \"v:imagedata\": readImageData,\n \"v:group\": readChildElements,\n \"v:rect\": readChildElements\n };\n\n return {\n readXmlElement: readXmlElement,\n readXmlElements: readXmlElements\n };\n\n\n function readTable(element) {\n var propertiesResult = readTableProperties(element.firstOrEmpty(\"w:tblPr\"));\n return readXmlElements(element.children)\n .flatMap(calculateRowSpans)\n .flatMap(function(children) {\n return propertiesResult.map(function(properties) {\n return documents.Table(children, properties);\n });\n });\n }\n\n function readTableProperties(element) {\n return readTableStyle(element).map(function(style) {\n return {\n styleId: style.styleId,\n styleName: style.name\n };\n });\n }\n\n function readTableRow(element) {\n var properties = element.firstOrEmpty(\"w:trPr\");\n\n // See 17.13.5.12 del (Deleted Table Row) of ECMA-376 4th edition Part 1\n var isDeleted = !!properties.first(\"w:del\");\n if (isDeleted) {\n return emptyResult();\n }\n\n var isHeader = !!properties.first(\"w:tblHeader\");\n return readXmlElements(element.children).map(function(children) {\n return documents.TableRow(children, {isHeader: isHeader});\n });\n }\n\n function readTableCell(element) {\n return readXmlElements(element.children).map(function(children) {\n var properties = element.firstOrEmpty(\"w:tcPr\");\n\n var gridSpan = properties.firstOrEmpty(\"w:gridSpan\").attributes[\"w:val\"];\n var colSpan = gridSpan ? parseInt(gridSpan, 10) : 1;\n\n var cell = documents.TableCell(children, {colSpan: colSpan});\n cell._vMerge = readVMerge(properties);\n return cell;\n });\n }\n\n function readVMerge(properties) {\n var element = properties.first(\"w:vMerge\");\n if (element) {\n var val = element.attributes[\"w:val\"];\n return val === \"continue\" || !val;\n } else {\n return null;\n }\n }\n\n function calculateRowSpans(rows) {\n var unexpectedNonRows = _.any(rows, function(row) {\n return row.type !== documents.types.tableRow;\n });\n if (unexpectedNonRows) {\n removeVMergeProperties(rows);\n return elementResultWithMessages(rows, [warning(\n \"unexpected non-row element in table, cell merging may be incorrect\"\n )]);\n }\n var unexpectedNonCells = _.any(rows, function(row) {\n return _.any(row.children, function(cell) {\n return cell.type !== documents.types.tableCell;\n });\n });\n if (unexpectedNonCells) {\n removeVMergeProperties(rows);\n return elementResultWithMessages(rows, [warning(\n \"unexpected non-cell element in table row, cell merging may be incorrect\"\n )]);\n }\n\n var columns = {};\n\n rows.forEach(function(row) {\n var cellIndex = 0;\n row.children.forEach(function(cell) {\n if (cell._vMerge && columns[cellIndex]) {\n columns[cellIndex].rowSpan++;\n } else {\n columns[cellIndex] = cell;\n cell._vMerge = false;\n }\n cellIndex += cell.colSpan;\n });\n });\n\n rows.forEach(function(row) {\n row.children = row.children.filter(function(cell) {\n return !cell._vMerge;\n });\n row.children.forEach(function(cell) {\n delete cell._vMerge;\n });\n });\n\n return elementResult(rows);\n }\n\n function removeVMergeProperties(rows) {\n rows.forEach(function(row) {\n var cells = transforms.getDescendantsOfType(row, documents.types.tableCell);\n cells.forEach(function(cell) {\n delete cell._vMerge;\n });\n });\n }\n\n function readDrawingElement(element) {\n var blips = element\n .getElementsByTagName(\"a:graphic\")\n .getElementsByTagName(\"a:graphicData\")\n .getElementsByTagName(\"pic:pic\")\n .getElementsByTagName(\"pic:blipFill\")\n .getElementsByTagName(\"a:blip\");\n\n return combineResults(blips.map(readBlip.bind(null, element)));\n }\n\n function readBlip(element, blip) {\n var propertiesElement = element.firstOrEmpty(\"wp:docPr\");\n var properties = propertiesElement.attributes;\n\n var altText = isBlank(properties.descr) ? properties.title : properties.descr;\n\n var blipImageFile = findBlipImageFile(blip);\n if (blipImageFile === null) {\n return emptyResultWithMessages([warning(\"Could not find image file for a:blip element\")]);\n }\n\n return readImage(blipImageFile, altText).map(function(imageElement) {\n var hlinkClickElement = propertiesElement.firstOrEmpty(\"a:hlinkClick\");\n var relationshipId = hlinkClickElement.attributes[\"r:id\"];\n if (relationshipId) {\n var href = relationships.findTargetByRelationshipId(relationshipId);\n return new documents.Hyperlink([imageElement], {href: href});\n } else {\n return imageElement;\n }\n });\n }\n\n function isBlank(value) {\n return value == null || /^\\s*$/.test(value);\n }\n\n function findBlipImageFile(blip) {\n var embedRelationshipId = blip.attributes[\"r:embed\"];\n var linkRelationshipId = blip.attributes[\"r:link\"];\n if (embedRelationshipId) {\n return findEmbeddedImageFile(embedRelationshipId);\n } else if (linkRelationshipId) {\n var imagePath = relationships.findTargetByRelationshipId(linkRelationshipId);\n return {\n path: imagePath,\n read: files.read.bind(files, imagePath)\n };\n } else {\n return null;\n }\n }\n\n function readImageData(element) {\n var relationshipId = element.attributes['r:id'];\n\n if (relationshipId) {\n return readImage(\n findEmbeddedImageFile(relationshipId),\n element.attributes[\"o:title\"]);\n } else {\n return emptyResultWithMessages([warning(\"A v:imagedata element without a relationship ID was ignored\")]);\n }\n }\n\n function findEmbeddedImageFile(relationshipId) {\n var path = uris.uriToZipEntryName(\"word\", relationships.findTargetByRelationshipId(relationshipId));\n return {\n path: path,\n read: docxFile.read.bind(docxFile, path)\n };\n }\n\n function readImage(imageFile, altText) {\n var contentType = contentTypes.findContentType(imageFile.path);\n\n var image = documents.Image({\n readImage: imageFile.read,\n altText: altText,\n contentType: contentType\n });\n var warnings = supportedImageTypes[contentType] ?\n [] : warning(\"Image of type \" + contentType + \" is unlikely to display in web browsers\");\n return elementResultWithMessages(image, warnings);\n }\n\n function undefinedStyleWarning(type, styleId) {\n return warning(\n type + \" style with ID \" + styleId + \" was referenced but not defined in the document\");\n }\n}\n\n\nfunction readNumberingProperties(styleId, element, numbering) {\n var level = element.firstOrEmpty(\"w:ilvl\").attributes[\"w:val\"];\n var numId = element.firstOrEmpty(\"w:numId\").attributes[\"w:val\"];\n if (level !== undefined && numId !== undefined) {\n return numbering.findLevel(numId, level);\n }\n\n if (styleId != null) {\n var levelByStyleId = numbering.findLevelByParagraphStyleId(styleId);\n if (levelByStyleId != null) {\n return levelByStyleId;\n }\n }\n\n // Some malformed documents define numbering levels without an index, and\n // reference the numbering using a w:numPr element without a w:ilvl child.\n // To handle such cases, we assume a level of 0 as a fallback.\n if (numId !== undefined) {\n return numbering.findLevel(numId, \"0\");\n }\n\n return null;\n}\n\nvar supportedImageTypes = {\n \"image/png\": true,\n \"image/gif\": true,\n \"image/jpeg\": true,\n \"image/svg+xml\": true,\n \"image/tiff\": true\n};\n\nvar ignoreElements = {\n \"office-word:wrap\": true,\n \"v:shadow\": true,\n \"v:shapetype\": true,\n \"w:annotationRef\": true,\n \"w:bookmarkEnd\": true,\n \"w:sectPr\": true,\n \"w:proofErr\": true,\n \"w:lastRenderedPageBreak\": true,\n \"w:commentRangeStart\": true,\n \"w:commentRangeEnd\": true,\n \"w:del\": true,\n \"w:footnoteRef\": true,\n \"w:endnoteRef\": true,\n \"w:pPr\": true,\n \"w:rPr\": true,\n \"w:tblPr\": true,\n \"w:tblGrid\": true,\n \"w:trPr\": true,\n \"w:tcPr\": true\n};\n\nfunction emptyResultWithMessages(messages) {\n return new ReadResult(null, null, messages);\n}\n\nfunction emptyResult() {\n return new ReadResult(null);\n}\n\nfunction elementResult(element) {\n return new ReadResult(element);\n}\n\nfunction elementResultWithMessages(element, messages) {\n return new ReadResult(element, null, messages);\n}\n\nfunction ReadResult(element, extra, messages) {\n this.value = element || [];\n this.extra = extra || [];\n this._result = new Result({\n element: this.value,\n extra: extra\n }, messages);\n this.messages = this._result.messages;\n}\n\nReadResult.prototype.toExtra = function() {\n return new ReadResult(null, joinElements(this.extra, this.value), this.messages);\n};\n\nReadResult.prototype.insertExtra = function() {\n var extra = this.extra;\n if (extra && extra.length) {\n return new ReadResult(joinElements(this.value, extra), null, this.messages);\n } else {\n return this;\n }\n};\n\nReadResult.prototype.map = function(func) {\n var result = this._result.map(function(value) {\n return func(value.element);\n });\n return new ReadResult(result.value, this.extra, result.messages);\n};\n\nReadResult.prototype.flatMap = function(func) {\n var result = this._result.flatMap(function(value) {\n return func(value.element)._result;\n });\n return new ReadResult(result.value.element, joinElements(this.extra, result.value.extra), result.messages);\n};\n\nReadResult.map = function(first, second, func) {\n return new ReadResult(\n func(first.value, second.value),\n joinElements(first.extra, second.extra),\n first.messages.concat(second.messages)\n );\n};\n\nfunction combineResults(results) {\n var result = Result.combine(_.pluck(results, \"_result\"));\n return new ReadResult(\n _.flatten(_.pluck(result.value, \"element\")),\n _.filter(_.flatten(_.pluck(result.value, \"extra\")), identity),\n result.messages\n );\n}\n\nfunction joinElements(first, second) {\n return _.flatten([first, second]);\n}\n\nfunction identity(value) {\n return value;\n}\n","exports.DocumentXmlReader = DocumentXmlReader;\n\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\n\nfunction DocumentXmlReader(options) {\n var bodyReader = options.bodyReader;\n\n function convertXmlToDocument(element) {\n var body = element.first(\"w:body\");\n\n if (body == null) {\n throw new Error(\"Could not find the body element: are you sure this is a docx file?\");\n }\n\n var result = bodyReader.readXmlElements(body.children)\n .map(function(children) {\n return new documents.Document(children, {\n notes: options.notes,\n comments: options.comments\n });\n });\n return new Result(result.value, result.messages);\n }\n\n return {\n convertXmlToDocument: convertXmlToDocument\n };\n}\n","exports.readRelationships = readRelationships;\nexports.defaultValue = new Relationships([]);\nexports.Relationships = Relationships;\n\n\nfunction readRelationships(element) {\n var relationships = [];\n element.children.forEach(function(child) {\n if (child.name === \"relationships:Relationship\") {\n var relationship = {\n relationshipId: child.attributes.Id,\n target: child.attributes.Target,\n type: child.attributes.Type\n };\n relationships.push(relationship);\n }\n });\n return new Relationships(relationships);\n}\n\nfunction Relationships(relationships) {\n var targetsByRelationshipId = {};\n relationships.forEach(function(relationship) {\n targetsByRelationshipId[relationship.relationshipId] = relationship.target;\n });\n\n var targetsByType = {};\n relationships.forEach(function(relationship) {\n if (!targetsByType[relationship.type]) {\n targetsByType[relationship.type] = [];\n }\n targetsByType[relationship.type].push(relationship.target);\n });\n\n return {\n findTargetByRelationshipId: function(relationshipId) {\n return targetsByRelationshipId[relationshipId];\n },\n findTargetsByType: function(type) {\n return targetsByType[type] || [];\n }\n };\n}\n","exports.readContentTypesFromXml = readContentTypesFromXml;\n\nvar fallbackContentTypes = {\n \"png\": \"png\",\n \"gif\": \"gif\",\n \"jpeg\": \"jpeg\",\n \"jpg\": \"jpeg\",\n \"tif\": \"tiff\",\n \"tiff\": \"tiff\",\n \"bmp\": \"bmp\"\n};\n\nexports.defaultContentTypes = contentTypes({}, {});\n\n\nfunction readContentTypesFromXml(element) {\n var extensionDefaults = {};\n var overrides = {};\n \n element.children.forEach(function(child) {\n if (child.name === \"content-types:Default\") {\n extensionDefaults[child.attributes.Extension] = child.attributes.ContentType;\n }\n if (child.name === \"content-types:Override\") {\n var name = child.attributes.PartName;\n if (name.charAt(0) === \"/\") {\n name = name.substring(1);\n }\n overrides[name] = child.attributes.ContentType;\n }\n });\n return contentTypes(overrides, extensionDefaults);\n}\n\nfunction contentTypes(overrides, extensionDefaults) {\n return {\n findContentType: function(path) {\n var overrideContentType = overrides[path];\n if (overrideContentType) {\n return overrideContentType;\n } else {\n var pathParts = path.split(\".\");\n var extension = pathParts[pathParts.length - 1];\n if (extensionDefaults.hasOwnProperty(extension)) {\n return extensionDefaults[extension];\n } else {\n var fallback = fallbackContentTypes[extension.toLowerCase()];\n if (fallback) {\n return \"image/\" + fallback;\n } else {\n return null;\n }\n }\n }\n }\n };\n \n}\n","var _ = require(\"underscore\");\n\nexports.readNumberingXml = readNumberingXml;\nexports.Numbering = Numbering;\nexports.defaultNumbering = new Numbering({}, {});\n\nfunction Numbering(nums, abstractNums, styles) {\n var allLevels = _.flatten(_.values(abstractNums).map(function(abstractNum) {\n return _.values(abstractNum.levels);\n }));\n\n var levelsByParagraphStyleId = _.indexBy(\n allLevels.filter(function(level) {\n return level.paragraphStyleId != null;\n }),\n \"paragraphStyleId\"\n );\n\n function findLevel(numId, level) {\n return findLevelWithSeenNumIds(numId, level, {});\n }\n\n function findLevelWithSeenNumIds(numId, level, seenNumIds) {\n if (seenNumIds[numId]) {\n return null;\n }\n seenNumIds[numId] = true;\n\n var num = nums[numId];\n if (!num) {\n return null;\n }\n\n var abstractNum = abstractNums[num.abstractNumId];\n if (!abstractNum) {\n return null;\n } else if (abstractNum.numStyleLink == null) {\n return abstractNums[num.abstractNumId].levels[level];\n } else {\n var style = styles.findNumberingStyleById(abstractNum.numStyleLink);\n return findLevelWithSeenNumIds(style.numId, level, seenNumIds);\n }\n }\n\n function findLevelByParagraphStyleId(styleId) {\n return levelsByParagraphStyleId[styleId] || null;\n }\n\n return {\n findLevel: findLevel,\n findLevelByParagraphStyleId: findLevelByParagraphStyleId\n };\n}\n\nfunction readNumberingXml(root, options) {\n if (!options || !options.styles) {\n throw new Error(\"styles is missing\");\n }\n\n var abstractNums = readAbstractNums(root);\n var nums = readNums(root, abstractNums);\n return new Numbering(nums, abstractNums, options.styles);\n}\n\nfunction readAbstractNums(root) {\n var abstractNums = {};\n root.getElementsByTagName(\"w:abstractNum\").forEach(function(element) {\n var id = element.attributes[\"w:abstractNumId\"];\n abstractNums[id] = readAbstractNum(element);\n });\n return abstractNums;\n}\n\nfunction readAbstractNum(element) {\n var levels = {};\n\n // Some malformed documents define numbering levels without an index, and\n // reference the numbering using a w:numPr element without a w:ilvl child.\n // To handle such cases, we assume a level of 0 as a fallback.\n var levelWithoutIndex = null;\n\n element.getElementsByTagName(\"w:lvl\").forEach(function(levelElement) {\n var levelIndex = levelElement.attributes[\"w:ilvl\"];\n var numFmt = levelElement.firstOrEmpty(\"w:numFmt\").attributes[\"w:val\"];\n var isOrdered = numFmt !== \"bullet\";\n var paragraphStyleId = levelElement.firstOrEmpty(\"w:pStyle\").attributes[\"w:val\"];\n\n if (levelIndex === undefined) {\n levelWithoutIndex = {\n isOrdered: isOrdered,\n level: \"0\",\n paragraphStyleId: paragraphStyleId\n };\n } else {\n levels[levelIndex] = {\n isOrdered: isOrdered,\n level: levelIndex,\n paragraphStyleId: paragraphStyleId\n };\n }\n });\n\n if (levelWithoutIndex !== null && levels[levelWithoutIndex.level] === undefined) {\n levels[levelWithoutIndex.level] = levelWithoutIndex;\n }\n\n var numStyleLink = element.firstOrEmpty(\"w:numStyleLink\").attributes[\"w:val\"];\n\n return {levels: levels, numStyleLink: numStyleLink};\n}\n\nfunction readNums(root) {\n var nums = {};\n root.getElementsByTagName(\"w:num\").forEach(function(element) {\n var numId = element.attributes[\"w:numId\"];\n var abstractNumId = element.first(\"w:abstractNumId\").attributes[\"w:val\"];\n nums[numId] = {abstractNumId: abstractNumId};\n });\n return nums;\n}\n","exports.readStylesXml = readStylesXml;\nexports.Styles = Styles;\nexports.defaultStyles = new Styles({}, {});\n\nfunction Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) {\n return {\n findParagraphStyleById: function(styleId) {\n return paragraphStyles[styleId];\n },\n findCharacterStyleById: function(styleId) {\n return characterStyles[styleId];\n },\n findTableStyleById: function(styleId) {\n return tableStyles[styleId];\n },\n findNumberingStyleById: function(styleId) {\n return numberingStyles[styleId];\n }\n };\n}\n\nStyles.EMPTY = new Styles({}, {}, {}, {});\n\nfunction readStylesXml(root) {\n var paragraphStyles = {};\n var characterStyles = {};\n var tableStyles = {};\n var numberingStyles = {};\n\n var styles = {\n \"paragraph\": paragraphStyles,\n \"character\": characterStyles,\n \"table\": tableStyles,\n \"numbering\": numberingStyles\n };\n\n root.getElementsByTagName(\"w:style\").forEach(function(styleElement) {\n var style = readStyleElement(styleElement);\n var styleSet = styles[style.type];\n\n // Per 17.7.4.17 style (Style Definition) of ECMA-376 4th edition Part 1:\n //\n // > If multiple style definitions each declare the same value for their\n // > styleId, then the first such instance shall keep its current\n // > identifier with all other instances being reassigned in any manner\n // > desired.\n //\n // For the purpose of conversion, there's no point holding onto styles\n // with reassigned style IDs, so we ignore such style definitions.\n\n if (styleSet && styleSet[style.styleId] === undefined) {\n styleSet[style.styleId] = style;\n }\n });\n\n return new Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles);\n}\n\nfunction readStyleElement(styleElement) {\n var type = styleElement.attributes[\"w:type\"];\n\n if (type === \"numbering\") {\n return readNumberingStyleElement(type, styleElement);\n } else {\n var styleId = readStyleId(styleElement);\n var name = styleName(styleElement);\n return {type: type, styleId: styleId, name: name};\n }\n}\n\nfunction styleName(styleElement) {\n var nameElement = styleElement.first(\"w:name\");\n return nameElement ? nameElement.attributes[\"w:val\"] : null;\n}\n\nfunction readNumberingStyleElement(type, styleElement) {\n var styleId = readStyleId(styleElement);\n\n var numId = styleElement\n .firstOrEmpty(\"w:pPr\")\n .firstOrEmpty(\"w:numPr\")\n .firstOrEmpty(\"w:numId\")\n .attributes[\"w:val\"];\n\n return {type: type, numId: numId, styleId: styleId};\n}\n\nfunction readStyleId(styleElement) {\n return styleElement.attributes[\"w:styleId\"];\n}\n","var documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\nexports.createFootnotesReader = createReader.bind(this, \"footnote\");\nexports.createEndnotesReader = createReader.bind(this, \"endnote\");\n\nfunction createReader(noteType, bodyReader) {\n function readNotesXml(element) {\n return Result.combine(element.getElementsByTagName(\"w:\" + noteType)\n .filter(isFootnoteElement)\n .map(readFootnoteElement));\n }\n\n function isFootnoteElement(element) {\n var type = element.attributes[\"w:type\"];\n return type !== \"continuationSeparator\" && type !== \"separator\";\n }\n\n function readFootnoteElement(footnoteElement) {\n var id = footnoteElement.attributes[\"w:id\"];\n return bodyReader.readXmlElements(footnoteElement.children)\n .map(function(body) {\n return documents.Note({noteType: noteType, noteId: id, body: body});\n });\n }\n \n return readNotesXml;\n}\n","var documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\nfunction createCommentsReader(bodyReader) {\n function readCommentsXml(element) {\n return Result.combine(element.getElementsByTagName(\"w:comment\")\n .map(readCommentElement));\n }\n\n function readCommentElement(element) {\n var id = element.attributes[\"w:id\"];\n\n function readOptionalAttribute(name) {\n return (element.attributes[name] || \"\").trim() || null;\n }\n\n return bodyReader.readXmlElements(element.children)\n .map(function(body) {\n return documents.comment({\n commentId: id,\n body: body,\n authorName: readOptionalAttribute(\"w:author\"),\n authorInitials: readOptionalAttribute(\"w:initials\")\n });\n });\n }\n \n return readCommentsXml;\n}\n\nexports.createCommentsReader = createCommentsReader;\n","var promises = require(\"../../lib/promises\");\n\nexports.Files = Files;\n\n\nfunction Files() {\n function read(uri) {\n return promises.reject(new Error(\"could not open external image: '\" + uri + \"'\\ncannot open linked files from a web browser\"));\n }\n \n return {\n read: read\n };\n}\n","exports.read = read;\nexports._findPartPaths = findPartPaths;\n\nvar promises = require(\"../promises\");\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\nvar zipfile = require(\"../zipfile\");\n\nvar readXmlFromZipFile = require(\"./office-xml-reader\").readXmlFromZipFile;\nvar createBodyReader = require(\"./body-reader\").createBodyReader;\nvar DocumentXmlReader = require(\"./document-xml-reader\").DocumentXmlReader;\nvar relationshipsReader = require(\"./relationships-reader\");\nvar contentTypesReader = require(\"./content-types-reader\");\nvar numberingXml = require(\"./numbering-xml\");\nvar stylesReader = require(\"./styles-reader\");\nvar notesReader = require(\"./notes-reader\");\nvar commentsReader = require(\"./comments-reader\");\nvar Files = require(\"./files\").Files;\n\n\nfunction read(docxFile, input, options) {\n input = input || {};\n options = options || {};\n\n var files = new Files({\n externalFileAccess: options.externalFileAccess,\n relativeToFile: input.path\n });\n\n return promises.props({\n contentTypes: readContentTypesFromZipFile(docxFile),\n partPaths: findPartPaths(docxFile),\n docxFile: docxFile,\n files: files\n }).also(function(result) {\n return {\n styles: readStylesFromZipFile(docxFile, result.partPaths.styles)\n };\n }).also(function(result) {\n return {\n numbering: readNumberingFromZipFile(docxFile, result.partPaths.numbering, result.styles)\n };\n }).also(function(result) {\n return {\n footnotes: readXmlFileWithBody(result.partPaths.footnotes, result, function(bodyReader, xml) {\n if (xml) {\n return notesReader.createFootnotesReader(bodyReader)(xml);\n } else {\n return new Result([]);\n }\n }),\n endnotes: readXmlFileWithBody(result.partPaths.endnotes, result, function(bodyReader, xml) {\n if (xml) {\n return notesReader.createEndnotesReader(bodyReader)(xml);\n } else {\n return new Result([]);\n }\n }),\n comments: readXmlFileWithBody(result.partPaths.comments, result, function(bodyReader, xml) {\n if (xml) {\n return commentsReader.createCommentsReader(bodyReader)(xml);\n } else {\n return new Result([]);\n }\n })\n };\n }).also(function(result) {\n return {\n notes: result.footnotes.flatMap(function(footnotes) {\n return result.endnotes.map(function(endnotes) {\n return new documents.Notes(footnotes.concat(endnotes));\n });\n })\n };\n }).then(function(result) {\n return readXmlFileWithBody(result.partPaths.mainDocument, result, function(bodyReader, xml) {\n return result.notes.flatMap(function(notes) {\n return result.comments.flatMap(function(comments) {\n var reader = new DocumentXmlReader({\n bodyReader: bodyReader,\n notes: notes,\n comments: comments\n });\n return reader.convertXmlToDocument(xml);\n });\n });\n });\n });\n}\n\nfunction findPartPaths(docxFile) {\n return readPackageRelationships(docxFile).then(function(packageRelationships) {\n var mainDocumentPath = findPartPath({\n docxFile: docxFile,\n relationships: packageRelationships,\n relationshipType: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n basePath: \"\",\n fallbackPath: \"word/document.xml\"\n });\n\n if (!docxFile.exists(mainDocumentPath)) {\n throw new Error(\"Could not find main document part. Are you sure this is a valid .docx file?\");\n }\n\n return xmlFileReader({\n filename: relationshipsFilename(mainDocumentPath),\n readElement: relationshipsReader.readRelationships,\n defaultValue: relationshipsReader.defaultValue\n })(docxFile).then(function(documentRelationships) {\n function findPartRelatedToMainDocument(name) {\n return findPartPath({\n docxFile: docxFile,\n relationships: documentRelationships,\n relationshipType: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/\" + name,\n basePath: zipfile.splitPath(mainDocumentPath).dirname,\n fallbackPath: \"word/\" + name + \".xml\"\n });\n }\n\n return {\n mainDocument: mainDocumentPath,\n comments: findPartRelatedToMainDocument(\"comments\"),\n endnotes: findPartRelatedToMainDocument(\"endnotes\"),\n footnotes: findPartRelatedToMainDocument(\"footnotes\"),\n numbering: findPartRelatedToMainDocument(\"numbering\"),\n styles: findPartRelatedToMainDocument(\"styles\")\n };\n });\n });\n}\n\nfunction findPartPath(options) {\n var docxFile = options.docxFile;\n var relationships = options.relationships;\n var relationshipType = options.relationshipType;\n var basePath = options.basePath;\n var fallbackPath = options.fallbackPath;\n\n var targets = relationships.findTargetsByType(relationshipType);\n var normalisedTargets = targets.map(function(target) {\n return stripPrefix(zipfile.joinPath(basePath, target), \"/\");\n });\n var validTargets = normalisedTargets.filter(function(target) {\n return docxFile.exists(target);\n });\n if (validTargets.length === 0) {\n return fallbackPath;\n } else {\n return validTargets[0];\n }\n}\n\nfunction stripPrefix(value, prefix) {\n if (value.substring(0, prefix.length) === prefix) {\n return value.substring(prefix.length);\n } else {\n return value;\n }\n}\n\nfunction xmlFileReader(options) {\n return function(zipFile) {\n return readXmlFromZipFile(zipFile, options.filename)\n .then(function(element) {\n return element ? options.readElement(element) : options.defaultValue;\n });\n };\n}\n\nfunction readXmlFileWithBody(filename, options, func) {\n var readRelationshipsFromZipFile = xmlFileReader({\n filename: relationshipsFilename(filename),\n readElement: relationshipsReader.readRelationships,\n defaultValue: relationshipsReader.defaultValue\n });\n\n return readRelationshipsFromZipFile(options.docxFile).then(function(relationships) {\n var bodyReader = new createBodyReader({\n relationships: relationships,\n contentTypes: options.contentTypes,\n docxFile: options.docxFile,\n numbering: options.numbering,\n styles: options.styles,\n files: options.files\n });\n return readXmlFromZipFile(options.docxFile, filename)\n .then(function(xml) {\n return func(bodyReader, xml);\n });\n });\n}\n\nfunction relationshipsFilename(filename) {\n var split = zipfile.splitPath(filename);\n return zipfile.joinPath(split.dirname, \"_rels\", split.basename + \".rels\");\n}\n\nvar readContentTypesFromZipFile = xmlFileReader({\n filename: \"[Content_Types].xml\",\n readElement: contentTypesReader.readContentTypesFromXml,\n defaultValue: contentTypesReader.defaultContentTypes\n});\n\nfunction readNumberingFromZipFile(zipFile, path, styles) {\n return xmlFileReader({\n filename: path,\n readElement: function(element) {\n return numberingXml.readNumberingXml(element, {styles: styles});\n },\n defaultValue: numberingXml.defaultNumbering\n })(zipFile);\n}\n\nfunction readStylesFromZipFile(zipFile, path) {\n return xmlFileReader({\n filename: path,\n readElement: stylesReader.readStylesXml,\n defaultValue: stylesReader.defaultStyles\n })(zipFile);\n}\n\nvar readPackageRelationships = xmlFileReader({\n filename: \"_rels/.rels\",\n readElement: relationshipsReader.readRelationships,\n defaultValue: relationshipsReader.defaultValue\n});\n","var _ = require(\"underscore\");\n\nvar promises = require(\"../promises\");\nvar xml = require(\"../xml\");\n\nexports.writeStyleMap = writeStyleMap;\nexports.readStyleMap = readStyleMap;\n\n\nvar schema = \"http://schemas.zwobble.org/mammoth/style-map\";\nvar styleMapPath = \"mammoth/style-map\";\nvar styleMapAbsolutePath = \"/\" + styleMapPath;\n\nfunction writeStyleMap(docxFile, styleMap) {\n docxFile.write(styleMapPath, styleMap);\n return updateRelationships(docxFile).then(function() {\n return updateContentTypes(docxFile);\n });\n}\n\nfunction updateRelationships(docxFile) {\n var path = \"word/_rels/document.xml.rels\";\n var relationshipsUri = \"http://schemas.openxmlformats.org/package/2006/relationships\";\n var relationshipElementName = \"{\" + relationshipsUri + \"}Relationship\";\n return docxFile.read(path, \"utf8\")\n .then(xml.readString)\n .then(function(relationshipsContainer) {\n var relationships = relationshipsContainer.children;\n addOrUpdateElement(relationships, relationshipElementName, \"Id\", {\n \"Id\": \"rMammothStyleMap\",\n \"Type\": schema,\n \"Target\": styleMapAbsolutePath\n });\n \n var namespaces = {\"\": relationshipsUri};\n return docxFile.write(path, xml.writeString(relationshipsContainer, namespaces));\n });\n}\n\nfunction updateContentTypes(docxFile) {\n var path = \"[Content_Types].xml\";\n var contentTypesUri = \"http://schemas.openxmlformats.org/package/2006/content-types\";\n var overrideName = \"{\" + contentTypesUri + \"}Override\";\n return docxFile.read(path, \"utf8\")\n .then(xml.readString)\n .then(function(typesElement) {\n var children = typesElement.children;\n addOrUpdateElement(children, overrideName, \"PartName\", {\n \"PartName\": styleMapAbsolutePath,\n \"ContentType\": \"text/prs.mammoth.style-map\"\n });\n var namespaces = {\"\": contentTypesUri};\n return docxFile.write(path, xml.writeString(typesElement, namespaces));\n });\n}\n\nfunction addOrUpdateElement(elements, name, identifyingAttribute, attributes) {\n var existingElement = _.find(elements, function(element) {\n return element.name === name &&\n element.attributes[identifyingAttribute] === attributes[identifyingAttribute];\n });\n if (existingElement) {\n existingElement.attributes = attributes;\n } else {\n elements.push(xml.element(name, attributes));\n }\n}\n\nfunction readStyleMap(docxFile) {\n if (docxFile.exists(styleMapPath)) {\n return docxFile.read(styleMapPath, \"utf8\");\n } else {\n return promises.resolve(null);\n }\n}\n","var htmlPaths = require(\"../styles/html-paths\");\n\n\nfunction nonFreshElement(tagName, attributes, children) {\n return elementWithTag(\n htmlPaths.element(tagName, attributes, {fresh: false}),\n children);\n}\n\nfunction freshElement(tagName, attributes, children) {\n var tag = htmlPaths.element(tagName, attributes, {fresh: true});\n return elementWithTag(tag, children);\n}\n\nfunction elementWithTag(tag, children) {\n return {\n type: \"element\",\n tag: tag,\n children: children || []\n };\n}\n\nfunction text(value) {\n return {\n type: \"text\",\n value: value\n };\n}\n\nvar forceWrite = {\n type: \"forceWrite\"\n};\n\nexports.freshElement = freshElement;\nexports.nonFreshElement = nonFreshElement;\nexports.elementWithTag = elementWithTag;\nexports.text = text;\nexports.forceWrite = forceWrite;\n\nvar voidTagNames = {\n \"br\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true\n};\n\nfunction isVoidElement(node) {\n return (node.children.length === 0) && voidTagNames[node.tag.tagName];\n}\n\nexports.isVoidElement = isVoidElement;\n","var _ = require(\"underscore\");\n\nvar ast = require(\"./ast\");\n\nfunction simplify(nodes) {\n return collapse(removeEmpty(nodes));\n}\n\nfunction collapse(nodes) {\n var children = [];\n \n nodes.map(collapseNode).forEach(function(child) {\n appendChild(children, child);\n });\n return children;\n}\n\nfunction collapseNode(node) {\n return collapsers[node.type](node);\n}\n\nvar collapsers = {\n element: collapseElement,\n text: identity,\n forceWrite: identity\n};\n\nfunction collapseElement(node) {\n return ast.elementWithTag(node.tag, collapse(node.children));\n}\n\nfunction identity(value) {\n return value;\n}\n\nfunction appendChild(children, child) {\n var lastChild = children[children.length - 1];\n if (child.type === \"element\" && !child.tag.fresh && lastChild && lastChild.type === \"element\" && child.tag.matchesElement(lastChild.tag)) {\n if (child.tag.separator) {\n appendChild(lastChild.children, ast.text(child.tag.separator));\n }\n child.children.forEach(function(grandChild) {\n // Mutation is fine since simplifying elements create a copy of the children.\n appendChild(lastChild.children, grandChild);\n });\n } else {\n children.push(child);\n }\n}\n\nfunction removeEmpty(nodes) {\n return flatMap(nodes, function(node) {\n return emptiers[node.type](node);\n });\n}\n\nfunction flatMap(values, func) {\n return _.flatten(_.map(values, func), true);\n}\n\nvar emptiers = {\n element: elementEmptier,\n text: textEmptier,\n forceWrite: neverEmpty\n};\n\nfunction neverEmpty(node) {\n return [node];\n}\n\nfunction elementEmptier(element) {\n var children = removeEmpty(element.children);\n if (children.length === 0 && !ast.isVoidElement(element)) {\n return [];\n } else {\n return [ast.elementWithTag(element.tag, children)];\n }\n}\n\nfunction textEmptier(node) {\n if (node.value.length === 0) {\n return [];\n } else {\n return [node];\n }\n}\n\nmodule.exports = simplify;\n","var ast = require(\"./ast\");\n\nexports.freshElement = ast.freshElement;\nexports.nonFreshElement = ast.nonFreshElement;\nexports.elementWithTag = ast.elementWithTag;\nexports.text = ast.text;\nexports.forceWrite = ast.forceWrite;\n\nexports.simplify = require(\"./simplify\");\n\nfunction write(writer, nodes) {\n nodes.forEach(function(node) {\n writeNode(writer, node);\n });\n}\n\nfunction writeNode(writer, node) {\n toStrings[node.type](writer, node);\n}\n\nvar toStrings = {\n element: generateElementString,\n text: generateTextString,\n forceWrite: function() { }\n};\n\nfunction generateElementString(writer, node) {\n if (ast.isVoidElement(node)) {\n writer.selfClosing(node.tag.tagName, node.tag.attributes);\n } else {\n writer.open(node.tag.tagName, node.tag.attributes);\n write(writer, node.children);\n writer.close(node.tag.tagName);\n }\n}\n\nfunction generateTextString(writer, node) {\n writer.text(node.value);\n}\n\nexports.write = write;\n","var _ = require(\"underscore\");\n\nvar html = require(\"../html\");\n\nexports.topLevelElement = topLevelElement;\nexports.elements = elements;\nexports.element = element;\n\nfunction topLevelElement(tagName, attributes) {\n return elements([element(tagName, attributes, {fresh: true})]);\n}\n\nfunction elements(elementStyles) {\n return new HtmlPath(elementStyles.map(function(elementStyle) {\n if (_.isString(elementStyle)) {\n return element(elementStyle);\n } else {\n return elementStyle;\n }\n }));\n}\n\nfunction HtmlPath(elements) {\n this._elements = elements;\n}\n\nHtmlPath.prototype.wrap = function wrap(children) {\n var result = children();\n for (var index = this._elements.length - 1; index >= 0; index--) {\n result = this._elements[index].wrapNodes(result);\n }\n return result;\n};\n\nfunction element(tagName, attributes, options) {\n options = options || {};\n return new Element(tagName, attributes, options);\n}\n\nfunction Element(tagName, attributes, options) {\n var tagNames = {};\n if (_.isArray(tagName)) {\n tagName.forEach(function(tagName) {\n tagNames[tagName] = true;\n });\n tagName = tagName[0];\n } else {\n tagNames[tagName] = true;\n }\n \n this.tagName = tagName;\n this.tagNames = tagNames;\n this.attributes = attributes || {};\n this.fresh = options.fresh;\n this.separator = options.separator;\n}\n\nElement.prototype.matchesElement = function(element) {\n return this.tagNames[element.tagName] && _.isEqual(this.attributes || {}, element.attributes || {});\n};\n\nElement.prototype.wrap = function wrap(generateNodes) {\n return this.wrapNodes(generateNodes());\n};\n\nElement.prototype.wrapNodes = function wrapNodes(nodes) {\n return [html.elementWithTag(this, nodes)];\n};\n\nexports.empty = elements([]);\nexports.ignore = {\n wrap: function() {\n return [];\n }\n};\n","var _ = require(\"underscore\");\n\nvar promises = require(\"./promises\");\nvar Html = require(\"./html\");\n\nexports.imgElement = imgElement;\n\nfunction imgElement(func) {\n return function(element, messages) {\n return promises.when(func(element)).then(function(result) {\n var attributes = {};\n if (element.altText) {\n attributes.alt = element.altText;\n }\n _.extend(attributes, result);\n\n return [Html.freshElement(\"img\", attributes)];\n });\n };\n}\n\n// Undocumented, but retained for backwards-compatibility with 0.3.x\nexports.inline = exports.imgElement;\n\nexports.dataUri = imgElement(function(element) {\n return element.readAsBase64String().then(function(imageBuffer) {\n return {\n src: \"data:\" + element.contentType + \";base64,\" + imageBuffer\n };\n });\n});\n\nfunction imageFilenameExtension(image) {\n return image.contentType.split(/\\/|\\\\/)[1];\n}\n\nexports.imageFilenameExtension = imageFilenameExtension;\n","var _ = require(\"underscore\");\n\nexports.writer = writer;\n\nfunction writer(options) {\n options = options || {};\n if (options.prettyPrint) {\n return prettyWriter();\n } else {\n return simpleWriter();\n }\n}\n\n\nvar indentedElements = {\n div: true,\n p: true,\n ul: true,\n li: true\n};\n\n\nfunction prettyWriter() {\n var indentationLevel = 0;\n var indentation = \" \";\n var stack = [];\n var start = true;\n var inText = false;\n\n var writer = simpleWriter();\n\n function open(tagName, attributes) {\n if (indentedElements[tagName]) {\n indent();\n }\n stack.push(tagName);\n writer.open(tagName, attributes);\n if (indentedElements[tagName]) {\n indentationLevel++;\n }\n start = false;\n }\n\n function close(tagName) {\n if (indentedElements[tagName]) {\n indentationLevel--;\n indent();\n }\n stack.pop();\n writer.close(tagName);\n }\n\n function text(value) {\n startText();\n var text = isInPre() ? value : value.replace(\"\\n\", \"\\n\" + indentation);\n writer.text(text);\n }\n\n function selfClosing(tagName, attributes) {\n indent();\n writer.selfClosing(tagName, attributes);\n }\n\n function insideIndentedElement() {\n return stack.length === 0 || indentedElements[stack[stack.length - 1]];\n }\n\n function startText() {\n if (!inText) {\n indent();\n inText = true;\n }\n }\n\n function indent() {\n inText = false;\n if (!start && insideIndentedElement() && !isInPre()) {\n writer._append(\"\\n\");\n for (var i = 0; i < indentationLevel; i++) {\n writer._append(indentation);\n }\n }\n }\n\n function isInPre() {\n return _.some(stack, function(tagName) {\n return tagName === \"pre\";\n });\n }\n\n return {\n asString: writer.asString,\n open: open,\n close: close,\n text: text,\n selfClosing: selfClosing\n };\n}\n\n\nfunction simpleWriter() {\n var fragments = [];\n\n function open(tagName, attributes) {\n var attributeString = generateAttributeString(attributes);\n fragments.push(\"<\" + tagName + attributeString + \">\");\n }\n\n function close(tagName) {\n fragments.push(\"</\" + tagName + \">\");\n }\n\n function selfClosing(tagName, attributes) {\n var attributeString = generateAttributeString(attributes);\n fragments.push(\"<\" + tagName + attributeString + \" />\");\n }\n\n function generateAttributeString(attributes) {\n return _.map(attributes, function(value, key) {\n return \" \" + key + '=\"' + escapeHtmlAttribute(value) + '\"';\n }).join(\"\");\n }\n\n function text(value) {\n fragments.push(escapeHtmlText(value));\n }\n\n function append(html) {\n fragments.push(html);\n }\n\n function asString() {\n return fragments.join(\"\");\n }\n\n return {\n asString: asString,\n open: open,\n close: close,\n text: text,\n selfClosing: selfClosing,\n _append: append\n };\n}\n\nfunction escapeHtmlText(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\n\nfunction escapeHtmlAttribute(value) {\n return value\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\n","var _ = require(\"underscore\");\n\n\nfunction symmetricMarkdownElement(end) {\n return markdownElement(end, end);\n}\n\nfunction markdownElement(start, end) {\n return function() {\n return {start: start, end: end};\n };\n}\n\nfunction markdownLink(attributes) {\n var href = attributes.href || \"\";\n if (href) {\n return {\n start: \"[\",\n end: \"](\" + href + \")\",\n anchorPosition: \"before\"\n };\n } else {\n return {};\n }\n}\n\nfunction markdownImage(attributes) {\n var src = attributes.src || \"\";\n var altText = attributes.alt || \"\";\n if (src || altText) {\n return {start: \"\"};\n } else {\n return {};\n }\n}\n\nfunction markdownList(options) {\n return function(attributes, list) {\n return {\n start: list ? \"\\n\" : \"\",\n end: list ? \"\" : \"\\n\",\n list: {\n isOrdered: options.isOrdered,\n indent: list ? list.indent + 1 : 0,\n count: 0\n }\n };\n };\n}\n\nfunction markdownListItem(attributes, list, listItem) {\n list = list || {indent: 0, isOrdered: false, count: 0};\n list.count++;\n listItem.hasClosed = false;\n \n var bullet = list.isOrdered ? list.count + \".\" : \"-\";\n var start = repeatString(\"\\t\", list.indent) + bullet + \" \";\n \n return {\n start: start,\n end: function() {\n if (!listItem.hasClosed) {\n listItem.hasClosed = true;\n return \"\\n\";\n }\n }\n };\n}\n\nvar htmlToMarkdown = {\n \"p\": markdownElement(\"\", \"\\n\\n\"),\n \"br\": markdownElement(\"\", \" \\n\"),\n \"ul\": markdownList({isOrdered: false}),\n \"ol\": markdownList({isOrdered: true}),\n \"li\": markdownListItem,\n \"strong\": symmetricMarkdownElement(\"__\"),\n \"em\": symmetricMarkdownElement(\"*\"),\n \"a\": markdownLink,\n \"img\": markdownImage\n};\n\n(function() {\n for (var i = 1; i <= 6; i++) {\n htmlToMarkdown[\"h\" + i] = markdownElement(repeatString(\"#\", i) + \" \", \"\\n\\n\");\n }\n})();\n\nfunction repeatString(value, count) {\n return new Array(count + 1).join(value);\n}\n\nfunction markdownWriter() {\n var fragments = [];\n var elementStack = [];\n var list = null;\n var listItem = {};\n \n function open(tagName, attributes) {\n attributes = attributes || {};\n \n var createElement = htmlToMarkdown[tagName] || function() {\n return {};\n };\n var element = createElement(attributes, list, listItem);\n elementStack.push({end: element.end, list: list});\n \n if (element.list) {\n list = element.list;\n }\n \n var anchorBeforeStart = element.anchorPosition === \"before\";\n if (anchorBeforeStart) {\n writeAnchor(attributes);\n }\n\n fragments.push(element.start || \"\");\n if (!anchorBeforeStart) {\n writeAnchor(attributes);\n }\n }\n \n function writeAnchor(attributes) {\n if (attributes.id) {\n fragments.push('<a id=\"' + attributes.id + '\"></a>');\n }\n }\n \n function close(tagName) {\n var element = elementStack.pop();\n list = element.list;\n var end = _.isFunction(element.end) ? element.end() : element.end;\n fragments.push(end || \"\");\n }\n \n function selfClosing(tagName, attributes) {\n open(tagName, attributes);\n close(tagName);\n }\n \n function text(value) {\n fragments.push(escapeMarkdown(value));\n }\n \n function asString() {\n return fragments.join(\"\");\n }\n\n return {\n asString: asString,\n open: open,\n close: close,\n text: text,\n selfClosing: selfClosing\n };\n}\n\nexports.writer = markdownWriter;\n\nfunction escapeMarkdown(value) {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/([\\`\\*_\\{\\}\\[\\]\\(\\)\\#\\+\\-\\.\\!])/g, '\\\\$1');\n}\n","var htmlWriter = require(\"./html-writer\");\nvar markdownWriter = require(\"./markdown-writer\");\n\nexports.writer = writer;\n\n\nfunction writer(options) {\n options = options || {};\n if (options.outputFormat === \"markdown\") {\n return markdownWriter.writer();\n } else {\n return htmlWriter.writer(options);\n }\n}\n","var _ = require(\"underscore\");\n\nvar promises = require(\"./promises\");\nvar documents = require(\"./documents\");\nvar htmlPaths = require(\"./styles/html-paths\");\nvar results = require(\"./results\");\nvar images = require(\"./images\");\nvar Html = require(\"./html\");\nvar writers = require(\"./writers\");\n\nexports.DocumentConverter = DocumentConverter;\n\n\nfunction DocumentConverter(options) {\n return {\n convertToHtml: function(element) {\n var comments = _.indexBy(\n element.type === documents.types.document ? element.comments : [],\n \"commentId\"\n );\n var conversion = new DocumentConversion(options, comments);\n return conversion.convertToHtml(element);\n }\n };\n}\n\nfunction DocumentConversion(options, comments) {\n var noteNumber = 1;\n\n var noteReferences = [];\n\n var referencedComments = [];\n\n options = _.extend({ignoreEmptyParagraphs: true}, options);\n var idPrefix = options.idPrefix === undefined ? \"\" : options.idPrefix;\n var ignoreEmptyParagraphs = options.ignoreEmptyParagraphs;\n\n var defaultParagraphStyle = htmlPaths.topLevelElement(\"p\");\n\n var styleMap = options.styleMap || [];\n\n function convertToHtml(document) {\n var messages = [];\n\n var html = elementToHtml(document, messages, {});\n\n var deferredNodes = [];\n walkHtml(html, function(node) {\n if (node.type === \"deferred\") {\n deferredNodes.push(node);\n }\n });\n var deferredValues = {};\n return promises.mapSeries(deferredNodes, function(deferred) {\n return deferred.value().then(function(value) {\n deferredValues[deferred.id] = value;\n });\n }).then(function() {\n function replaceDeferred(nodes) {\n return flatMap(nodes, function(node) {\n if (node.type === \"deferred\") {\n return deferredValues[node.id];\n } else if (node.children) {\n return [\n _.extend({}, node, {\n children: replaceDeferred(node.children)\n })\n ];\n } else {\n return [node];\n }\n });\n }\n var writer = writers.writer({\n prettyPrint: options.prettyPrint,\n outputFormat: options.outputFormat\n });\n Html.write(writer, Html.simplify(replaceDeferred(html)));\n return new results.Result(writer.asString(), messages);\n });\n }\n\n function convertElements(elements, messages, options) {\n return flatMap(elements, function(element) {\n return elementToHtml(element, messages, options);\n });\n }\n\n function elementToHtml(element, messages, options) {\n if (!options) {\n throw new Error(\"options not set\");\n }\n var handler = elementConverters[element.type];\n if (handler) {\n return handler(element, messages, options);\n } else {\n return [];\n }\n }\n\n function convertParagraph(element, messages, options) {\n return htmlPathForParagraph(element, messages).wrap(function() {\n var content = convertElements(element.children, messages, options);\n if (ignoreEmptyParagraphs) {\n return content;\n } else {\n return [Html.forceWrite].concat(content);\n }\n });\n }\n\n function htmlPathForParagraph(element, messages) {\n var style = findStyle(element);\n\n if (style) {\n return style.to;\n } else {\n if (element.styleId) {\n messages.push(unrecognisedStyleWarning(\"paragraph\", element));\n }\n return defaultParagraphStyle;\n }\n }\n\n function convertRun(run, messages, options) {\n var nodes = function() {\n return convertElements(run.children, messages, options);\n };\n var paths = [];\n if (run.highlight !== null) {\n var path = findHtmlPath({type: \"highlight\", color: run.highlight});\n if (path) {\n paths.push(path);\n }\n }\n if (run.isSmallCaps) {\n paths.push(findHtmlPathForRunProperty(\"smallCaps\"));\n }\n if (run.isAllCaps) {\n paths.push(findHtmlPathForRunProperty(\"allCaps\"));\n }\n if (run.isStrikethrough) {\n paths.push(findHtmlPathForRunProperty(\"strikethrough\", \"s\"));\n }\n if (run.isUnderline) {\n paths.push(findHtmlPathForRunProperty(\"underline\"));\n }\n if (run.verticalAlignment === documents.verticalAlignment.subscript) {\n paths.push(htmlPaths.element(\"sub\", {}, {fresh: false}));\n }\n if (run.verticalAlignment === documents.verticalAlignment.superscript) {\n paths.push(htmlPaths.element(\"sup\", {}, {fresh: false}));\n }\n if (run.isItalic) {\n paths.push(findHtmlPathForRunProperty(\"italic\", \"em\"));\n }\n if (run.isBold) {\n paths.push(findHtmlPathForRunProperty(\"bold\", \"strong\"));\n }\n var stylePath = htmlPaths.empty;\n var style = findStyle(run);\n if (style) {\n stylePath = style.to;\n } else if (run.styleId) {\n messages.push(unrecognisedStyleWarning(\"run\", run));\n }\n paths.push(stylePath);\n\n paths.forEach(function(path) {\n nodes = path.wrap.bind(path, nodes);\n });\n\n return nodes();\n }\n\n function findHtmlPathForRunProperty(elementType, defaultTagName) {\n var path = findHtmlPath({type: elementType});\n if (path) {\n return path;\n } else if (defaultTagName) {\n return htmlPaths.element(defaultTagName, {}, {fresh: false});\n } else {\n return htmlPaths.empty;\n }\n }\n\n function findHtmlPath(element, defaultPath) {\n var style = findStyle(element);\n return style ? style.to : defaultPath;\n }\n\n function findStyle(element) {\n for (var i = 0; i < styleMap.length; i++) {\n if (styleMap[i].from.matches(element)) {\n return styleMap[i];\n }\n }\n }\n\n function recoveringConvertImage(convertImage) {\n return function(image, messages) {\n return promises.attempt(function() {\n return convertImage(image, messages);\n }).caught(function(error) {\n messages.push(results.error(error));\n return [];\n });\n };\n }\n\n function noteHtmlId(note) {\n return referentHtmlId(note.noteType, note.noteId);\n }\n\n function noteRefHtmlId(note) {\n return referenceHtmlId(note.noteType, note.noteId);\n }\n\n function referentHtmlId(referenceType, referenceId) {\n return htmlId(referenceType + \"-\" + referenceId);\n }\n\n function referenceHtmlId(referenceType, referenceId) {\n return htmlId(referenceType + \"-ref-\" + referenceId);\n }\n\n function htmlId(suffix) {\n return idPrefix + suffix;\n }\n\n var defaultTablePath = htmlPaths.elements([\n htmlPaths.element(\"table\", {}, {fresh: true})\n ]);\n\n function convertTable(element, messages, options) {\n return findHtmlPath(element, defaultTablePath).wrap(function() {\n return convertTableChildren(element, messages, options);\n });\n }\n\n function convertTableChildren(element, messages, options) {\n var bodyIndex = _.findIndex(element.children, function(child) {\n return !child.type === documents.types.tableRow || !child.isHeader;\n });\n if (bodyIndex === -1) {\n bodyIndex = element.children.length;\n }\n var children;\n if (bodyIndex === 0) {\n children = convertElements(\n element.children,\n messages,\n _.extend({}, options, {isTableHeader: false})\n );\n } else {\n var headRows = convertElements(\n element.children.slice(0, bodyIndex),\n messages,\n _.extend({}, options, {isTableHeader: true})\n );\n var bodyRows = convertElements(\n element.children.slice(bodyIndex),\n messages,\n _.extend({}, options, {isTableHeader: false})\n );\n children = [\n Html.freshElement(\"thead\", {}, headRows),\n Html.freshElement(\"tbody\", {}, bodyRows)\n ];\n }\n return [Html.forceWrite].concat(children);\n }\n\n function convertTableRow(element, messages, options) {\n var children = convertElements(element.children, messages, options);\n return [\n Html.freshElement(\"tr\", {}, [Html.forceWrite].concat(children))\n ];\n }\n\n function convertTableCell(element, messages, options) {\n var tagName = options.isTableHeader ? \"th\" : \"td\";\n var children = convertElements(element.children, messages, options);\n var attributes = {};\n if (element.colSpan !== 1) {\n attributes.colspan = element.colSpan.toString();\n }\n if (element.rowSpan !== 1) {\n attributes.rowspan = element.rowSpan.toString();\n }\n\n return [\n Html.freshElement(tagName, attributes, [Html.forceWrite].concat(children))\n ];\n }\n\n function convertCommentReference(reference, messages, options) {\n return findHtmlPath(reference, htmlPaths.ignore).wrap(function() {\n var comment = comments[reference.commentId];\n var count = referencedComments.length + 1;\n var label = \"[\" + commentAuthorLabel(comment) + count + \"]\";\n referencedComments.push({label: label, comment: comment});\n // TODO: remove duplication with note references\n return [\n Html.freshElement(\"a\", {\n href: \"#\" + referentHtmlId(\"comment\", reference.commentId),\n id: referenceHtmlId(\"comment\", reference.commentId)\n }, [Html.text(label)])\n ];\n });\n }\n\n function convertComment(referencedComment, messages, options) {\n // TODO: remove duplication with note references\n\n var label = referencedComment.label;\n var comment = referencedComment.comment;\n var body = convertElements(comment.body, messages, options).concat([\n Html.nonFreshElement(\"p\", {}, [\n Html.text(\" \"),\n Html.freshElement(\"a\", {\"href\": \"#\" + referenceHtmlId(\"comment\", comment.commentId)}, [\n Html.text(\"↑\")\n ])\n ])\n ]);\n\n return [\n Html.freshElement(\n \"dt\",\n {\"id\": referentHtmlId(\"comment\", comment.commentId)},\n [Html.text(\"Comment \" + label)]\n ),\n Html.freshElement(\"dd\", {}, body)\n ];\n }\n\n function convertBreak(element, messages, options) {\n return htmlPathForBreak(element).wrap(function() {\n return [];\n });\n }\n\n function htmlPathForBreak(element) {\n var style = findStyle(element);\n if (style) {\n return style.to;\n } else if (element.breakType === \"line\") {\n return htmlPaths.topLevelElement(\"br\");\n } else {\n return htmlPaths.empty;\n }\n }\n\n var elementConverters = {\n \"document\": function(document, messages, options) {\n var children = convertElements(document.children, messages, options);\n var notes = noteReferences.map(function(noteReference) {\n return document.notes.resolve(noteReference);\n });\n var notesNodes = convertElements(notes, messages, options);\n return children.concat([\n Html.freshElement(\"ol\", {}, notesNodes),\n Html.freshElement(\"dl\", {}, flatMap(referencedComments, function(referencedComment) {\n return convertComment(referencedComment, messages, options);\n }))\n ]);\n },\n \"paragraph\": convertParagraph,\n \"run\": convertRun,\n \"text\": function(element, messages, options) {\n return [Html.text(element.value)];\n },\n \"tab\": function(element, messages, options) {\n return [Html.text(\"\\t\")];\n },\n \"hyperlink\": function(element, messages, options) {\n var href = element.anchor ? \"#\" + htmlId(element.anchor) : element.href;\n var attributes = {href: href};\n if (element.targetFrame != null) {\n attributes.target = element.targetFrame;\n }\n\n var children = convertElements(element.children, messages, options);\n return [Html.nonFreshElement(\"a\", attributes, children)];\n },\n \"checkbox\": function(element) {\n var attributes = {type: \"checkbox\"};\n if (element.checked) {\n attributes[\"checked\"] = \"checked\";\n }\n return [Html.freshElement(\"input\", attributes)];\n },\n \"bookmarkStart\": function(element, messages, options) {\n var anchor = Html.freshElement(\"a\", {\n id: htmlId(element.name)\n }, [Html.forceWrite]);\n return [anchor];\n },\n \"noteReference\": function(element, messages, options) {\n noteReferences.push(element);\n var anchor = Html.freshElement(\"a\", {\n href: \"#\" + noteHtmlId(element),\n id: noteRefHtmlId(element)\n }, [Html.text(\"[\" + (noteNumber++) + \"]\")]);\n\n return [Html.freshElement(\"sup\", {}, [anchor])];\n },\n \"note\": function(element, messages, options) {\n var children = convertElements(element.body, messages, options);\n var backLink = Html.elementWithTag(htmlPaths.element(\"p\", {}, {fresh: false}), [\n Html.text(\" \"),\n Html.freshElement(\"a\", {href: \"#\" + noteRefHtmlId(element)}, [Html.text(\"↑\")])\n ]);\n var body = children.concat([backLink]);\n\n return Html.freshElement(\"li\", {id: noteHtmlId(element)}, body);\n },\n \"commentReference\": convertCommentReference,\n \"comment\": convertComment,\n \"image\": deferredConversion(recoveringConvertImage(options.convertImage || images.dataUri)),\n \"table\": convertTable,\n \"tableRow\": convertTableRow,\n \"tableCell\": convertTableCell,\n \"break\": convertBreak\n };\n return {\n convertToHtml: convertToHtml\n };\n}\n\nvar deferredId = 1;\n\nfunction deferredConversion(func) {\n return function(element, messages, options) {\n return [\n {\n type: \"deferred\",\n id: deferredId++,\n value: function() {\n return func(element, messages, options);\n }\n }\n ];\n };\n}\n\nfunction unrecognisedStyleWarning(type, element) {\n return results.warning(\n \"Unrecognised \" + type + \" style: '\" + element.styleName + \"'\" +\n \" (Style ID: \" + element.styleId + \")\"\n );\n}\n\nfunction flatMap(values, func) {\n return _.flatten(values.map(func), true);\n}\n\nfunction walkHtml(nodes, callback) {\n nodes.forEach(function(node) {\n callback(node);\n if (node.children) {\n walkHtml(node.children, callback);\n }\n });\n}\n\nvar commentAuthorLabel = exports.commentAuthorLabel = function commentAuthorLabel(comment) {\n return comment.authorInitials || \"\";\n};\n","var documents = require(\"./documents\");\n\nfunction convertElementToRawText(element) {\n if (element.type === \"text\") {\n return element.value;\n } else if (element.type === documents.types.tab) {\n return \"\\t\";\n } else {\n var tail = element.type === \"paragraph\" ? \"\\n\\n\" : \"\";\n return (element.children || []).map(convertElementToRawText).join(\"\") + tail;\n }\n}\n\nexports.convertElementToRawText = convertElementToRawText;\n","var TokenIterator = module.exports = function(tokens, startIndex) {\n this._tokens = tokens;\n this._startIndex = startIndex || 0;\n};\n\nTokenIterator.prototype.head = function() {\n return this._tokens[this._startIndex];\n};\n\nTokenIterator.prototype.tail = function(startIndex) {\n return new TokenIterator(this._tokens, this._startIndex + 1);\n};\n\nTokenIterator.prototype.toArray = function() {\n return this._tokens.slice(this._startIndex);\n};\n\nTokenIterator.prototype.end = function() {\n return this._tokens[this._tokens.length - 1];\n};\n\n// TODO: doesn't need to be a method, can be a separate function,\n// which simplifies implementation of the TokenIterator interface\nTokenIterator.prototype.to = function(end) {\n var start = this.head().source;\n var endToken = end.head() || end.end();\n return start.to(endToken.source);\n};\n","var TokenIterator = require(\"./TokenIterator\");\n\nexports.Parser = function(options) {\n var parseTokens = function(parser, tokens) {\n return parser(new TokenIterator(tokens));\n };\n \n return {\n parseTokens: parseTokens\n };\n};\n","exports.none = Object.create({\n value: function() {\n throw new Error('Called value on none');\n },\n isNone: function() {\n return true;\n },\n isSome: function() {\n return false;\n },\n map: function() {\n return exports.none;\n },\n flatMap: function() {\n return exports.none;\n },\n filter: function() {\n return exports.none;\n },\n toArray: function() {\n return [];\n },\n orElse: callOrReturn,\n valueOrElse: callOrReturn\n});\n\nfunction callOrReturn(value) {\n if (typeof(value) == \"function\") {\n return value();\n } else {\n return value;\n }\n}\n\nexports.some = function(value) {\n return new Some(value);\n};\n\nvar Some = function(value) {\n this._value = value;\n};\n\nSome.prototype.value = function() {\n return this._value;\n};\n\nSome.prototype.isNone = function() {\n return false;\n};\n\nSome.prototype.isSome = function() {\n return true;\n};\n\nSome.prototype.map = function(func) {\n return new Some(func(this._value));\n};\n\nSome.prototype.flatMap = function(func) {\n return func(this._value);\n};\n\nSome.prototype.filter = function(predicate) {\n return predicate(this._value) ? this : exports.none;\n};\n\nSome.prototype.toArray = function() {\n return [this._value];\n};\n\nSome.prototype.orElse = function(value) {\n return this;\n};\n\nSome.prototype.valueOrElse = function(value) {\n return this._value;\n};\n\nexports.isOption = function(value) {\n return value === exports.none || value instanceof Some;\n};\n\nexports.fromNullable = function(value) {\n if (value == null) {\n return exports.none;\n }\n return new Some(value);\n}\n","module.exports = {\n failure: function(errors, remaining) {\n if (errors.length < 1) {\n throw new Error(\"Failure must have errors\");\n }\n return new Result({\n status: \"failure\",\n remaining: remaining,\n errors: errors\n });\n },\n error: function(errors, remaining) {\n if (errors.length < 1) {\n throw new Error(\"Failure must have errors\");\n }\n return new Result({\n status: \"error\",\n remaining: remaining,\n errors: errors\n });\n },\n success: function(value, remaining, source) {\n return new Result({\n status: \"success\",\n value: value,\n source: source,\n remaining: remaining,\n errors: []\n });\n },\n cut: function(remaining) {\n return new Result({\n status: \"cut\",\n remaining: remaining,\n errors: []\n });\n }\n};\n\nvar Result = function(options) {\n this._value = options.value;\n this._status = options.status;\n this._hasValue = options.value !== undefined;\n this._remaining = options.remaining;\n this._source = options.source;\n this._errors = options.errors;\n};\n\nResult.prototype.map = function(func) {\n if (this._hasValue) {\n return new Result({\n value: func(this._value, this._source),\n status: this._status,\n remaining: this._remaining,\n source: this._source,\n errors: this._errors\n });\n } else {\n return this;\n }\n};\n\nResult.prototype.changeRemaining = function(remaining) {\n return new Result({\n value: this._value,\n status: this._status,\n remaining: remaining,\n source: this._source,\n errors: this._errors\n });\n};\n\nResult.prototype.isSuccess = function() {\n return this._status === \"success\" || this._status === \"cut\";\n};\n\nResult.prototype.isFailure = function() {\n return this._status === \"failure\";\n};\n\nResult.prototype.isError = function() {\n return this._status === \"error\";\n};\n\nResult.prototype.isCut = function() {\n return this._status === \"cut\";\n};\n\nResult.prototype.value = function() {\n return this._value;\n};\n\nResult.prototype.remaining = function() {\n return this._remaining;\n};\n\nResult.prototype.source = function() {\n return this._source;\n};\n\nResult.prototype.errors = function() {\n return this._errors;\n};\n","exports.error = function(options) {\n return new Error(options);\n};\n\nvar Error = function(options) {\n this.expected = options.expected;\n this.actual = options.actual;\n this._location = options.location;\n};\n\nError.prototype.describe = function() {\n var locationDescription = this._location ? this._location.describe() + \":\\n\" : \"\";\n return locationDescription + \"Expected \" + this.expected + \"\\nbut got \" + this.actual;\n};\n\nError.prototype.lineNumber = function() {\n return this._location.lineNumber();\n};\n\nError.prototype.characterNumber = function() {\n return this._location.characterNumber();\n};\n","var fromArray = exports.fromArray = function(array) {\n var index = 0;\n var hasNext = function() {\n return index < array.length;\n };\n return new LazyIterator({\n hasNext: hasNext,\n next: function() {\n if (!hasNext()) {\n throw new Error(\"No more elements\");\n } else {\n return array[index++];\n }\n }\n });\n};\n\nvar LazyIterator = function(iterator) {\n this._iterator = iterator;\n};\n\nLazyIterator.prototype.map = function(func) {\n var iterator = this._iterator;\n return new LazyIterator({\n hasNext: function() {\n return iterator.hasNext();\n },\n next: function() {\n return func(iterator.next());\n }\n });\n};\n\nLazyIterator.prototype.filter = function(condition) {\n var iterator = this._iterator;\n \n var moved = false;\n var hasNext = false;\n var next;\n var moveIfNecessary = function() {\n if (moved) {\n return;\n }\n moved = true;\n hasNext = false;\n while (iterator.hasNext() && !hasNext) {\n next = iterator.next();\n hasNext = condition(next);\n }\n };\n \n return new LazyIterator({\n hasNext: function() {\n moveIfNecessary();\n return hasNext;\n },\n next: function() {\n moveIfNecessary();\n var toReturn = next;\n moved = false;\n return toReturn;\n }\n });\n};\n\nLazyIterator.prototype.first = function() {\n var iterator = this._iterator;\n if (this._iterator.hasNext()) {\n return iterator.next();\n } else {\n return null;\n }\n};\n\nLazyIterator.prototype.toArray = function() {\n var result = [];\n while (this._iterator.hasNext()) {\n result.push(this._iterator.next());\n }\n return result;\n};\n","var _ = require(\"underscore\");\nvar options = require(\"option\");\nvar results = require(\"./parsing-results\");\nvar errors = require(\"./errors\");\nvar lazyIterators = require(\"./lazy-iterators\");\n\nexports.token = function(tokenType, value) {\n var matchValue = value !== undefined;\n return function(input) {\n var token = input.head();\n if (token && token.name === tokenType && (!matchValue || token.value === value)) {\n return results.success(token.value, input.tail(), token.source);\n } else {\n var expected = describeToken({name: tokenType, value: value});\n return describeTokenMismatch(input, expected);\n }\n };\n};\n\nexports.tokenOfType = function(tokenType) {\n return exports.token(tokenType);\n};\n\nexports.firstOf = function(name, parsers) {\n if (!_.isArray(parsers)) {\n parsers = Array.prototype.slice.call(arguments, 1);\n }\n return function(input) {\n return lazyIterators\n .fromArray(parsers)\n .map(function(parser) {\n return parser(input);\n })\n .filter(function(result) {\n return result.isSuccess() || result.isError();\n })\n .first() || describeTokenMismatch(input, name);\n };\n};\n\nexports.then = function(parser, func) {\n return function(input) {\n var result = parser(input);\n if (!result.map) {\n console.log(result);\n }\n return result.map(func);\n };\n};\n\nexports.sequence = function() {\n var parsers = Array.prototype.slice.call(arguments, 0);\n var rule = function(input) {\n var result = _.foldl(parsers, function(memo, parser) {\n var result = memo.result;\n var hasCut = memo.hasCut;\n if (!result.isSuccess()) {\n return {result: result, hasCut: hasCut};\n }\n var subResult = parser(result.remaining());\n if (subResult.isCut()) {\n return {result: result, hasCut: true};\n } else if (subResult.isSuccess()) {\n var values;\n if (parser.isCaptured) {\n values = result.value().withValue(parser, subResult.value());\n } else {\n values = result.value();\n }\n var remaining = subResult.remaining();\n var source = input.to(remaining);\n return {\n result: results.success(values, remaining, source),\n hasCut: hasCut\n };\n } else if (hasCut) {\n return {result: results.error(subResult.errors(), subResult.remaining()), hasCut: hasCut};\n } else {\n return {result: subResult, hasCut: hasCut};\n }\n }, {result: results.success(new SequenceValues(), input), hasCut: false}).result;\n var source = input.to(result.remaining());\n return result.map(function(values) {\n return values.withValue(exports.sequence.source, source);\n });\n };\n rule.head = function() {\n var firstCapture = _.find(parsers, isCapturedRule);\n return exports.then(\n rule,\n exports.sequence.extract(firstCapture)\n );\n };\n rule.map = function(func) {\n return exports.then(\n rule,\n function(result) {\n return func.apply(this, result.toArray());\n }\n );\n };\n \n function isCapturedRule(subRule) {\n return subRule.isCaptured;\n }\n \n return rule;\n};\n\nvar SequenceValues = function(values, valuesArray) {\n this._values = values || {};\n this._valuesArray = valuesArray || [];\n};\n\nSequenceValues.prototype.withValue = function(rule, value) {\n if (rule.captureName && rule.captureName in this._values) {\n throw new Error(\"Cannot add second value for capture \\\"\" + rule.captureName + \"\\\"\");\n } else {\n var newValues = _.clone(this._values);\n newValues[rule.captureName] = value;\n var newValuesArray = this._valuesArray.concat([value]);\n return new SequenceValues(newValues, newValuesArray);\n }\n};\n\nSequenceValues.prototype.get = function(rule) {\n if (rule.captureName in this._values) {\n return this._values[rule.captureName];\n } else {\n throw new Error(\"No value for capture \\\"\" + rule.captureName + \"\\\"\");\n }\n};\n\nSequenceValues.prototype.toArray = function() {\n return this._valuesArray;\n};\n\nexports.sequence.capture = function(rule, name) {\n var captureRule = function() {\n return rule.apply(this, arguments);\n };\n captureRule.captureName = name;\n captureRule.isCaptured = true;\n return captureRule;\n};\n\nexports.sequence.extract = function(rule) {\n return function(result) {\n return result.get(rule);\n };\n};\n\nexports.sequence.applyValues = function(func) {\n // TODO: check captureName doesn't conflict with source or other captures\n var rules = Array.prototype.slice.call(arguments, 1);\n return function(result) {\n var values = rules.map(function(rule) {\n return result.get(rule);\n });\n return func.apply(this, values);\n };\n};\n\nexports.sequence.source = {\n captureName: \"☃source☃\"\n};\n\nexports.sequence.cut = function() {\n return function(input) {\n return results.cut(input);\n };\n};\n\nexports.optional = function(rule) {\n return function(input) {\n var result = rule(input);\n if (result.isSuccess()) {\n return result.map(options.some);\n } else if (result.isFailure()) {\n return results.success(options.none, input);\n } else {\n return result;\n }\n };\n};\n\nexports.zeroOrMoreWithSeparator = function(rule, separator) {\n return repeatedWithSeparator(rule, separator, false);\n};\n\nexports.oneOrMoreWithSeparator = function(rule, separator) {\n return repeatedWithSeparator(rule, separator, true);\n};\n\nvar zeroOrMore = exports.zeroOrMore = function(rule) {\n return function(input) {\n var values = [];\n var result;\n while ((result = rule(input)) && result.isSuccess()) {\n input = result.remaining();\n values.push(result.value());\n }\n if (result.isError()) {\n return result;\n } else {\n return results.success(values, input);\n }\n };\n};\n\nexports.oneOrMore = function(rule) {\n return exports.oneOrMoreWithSeparator(rule, noOpRule);\n};\n\nfunction noOpRule(input) {\n return results.success(null, input);\n}\n\nvar repeatedWithSeparator = function(rule, separator, isOneOrMore) {\n return function(input) {\n var result = rule(input);\n if (result.isSuccess()) {\n var mainRule = exports.sequence.capture(rule, \"main\");\n var remainingRule = zeroOrMore(exports.then(\n exports.sequence(separator, mainRule),\n exports.sequence.extract(mainRule)\n ));\n var remainingResult = remainingRule(result.remaining());\n return results.success([result.value()].concat(remainingResult.value()), remainingResult.remaining());\n } else if (isOneOrMore || result.isError()) {\n return result;\n } else {\n return results.success([], input);\n }\n };\n};\n\nexports.leftAssociative = function(leftRule, rightRule, func) {\n var rights;\n if (func) {\n rights = [{func: func, rule: rightRule}];\n } else {\n rights = rightRule;\n }\n rights = rights.map(function(right) {\n return exports.then(right.rule, function(rightValue) {\n return function(leftValue, source) {\n return right.func(leftValue, rightValue, source);\n };\n });\n });\n var repeatedRule = exports.firstOf.apply(null, [\"rules\"].concat(rights));\n \n return function(input) {\n var start = input;\n var leftResult = leftRule(input);\n if (!leftResult.isSuccess()) {\n return leftResult;\n }\n var repeatedResult = repeatedRule(leftResult.remaining());\n while (repeatedResult.isSuccess()) {\n var remaining = repeatedResult.remaining();\n var source = start.to(repeatedResult.remaining());\n var right = repeatedResult.value();\n leftResult = results.success(\n right(leftResult.value(), source),\n remaining,\n source\n );\n repeatedResult = repeatedRule(leftResult.remaining());\n }\n if (repeatedResult.isError()) {\n return repeatedResult;\n }\n return leftResult;\n };\n};\n\nexports.leftAssociative.firstOf = function() {\n return Array.prototype.slice.call(arguments, 0);\n};\n\nexports.nonConsuming = function(rule) {\n return function(input) {\n return rule(input).changeRemaining(input);\n };\n};\n\nvar describeToken = function(token) {\n if (token.value) {\n return token.name + \" \\\"\" + token.value + \"\\\"\";\n } else {\n return token.name;\n }\n};\n\nfunction describeTokenMismatch(input, expected) {\n var error;\n var token = input.head();\n if (token) {\n error = errors.error({\n expected: expected,\n actual: describeToken(token),\n location: token.source\n });\n } else {\n error = errors.error({\n expected: expected,\n actual: \"end of tokens\"\n });\n }\n return results.failure([error], input);\n}\n","var StringSource = module.exports = function(string, description) {\n var self = {\n asString: function() {\n return string;\n },\n range: function(startIndex, endIndex) {\n return new StringSourceRange(string, description, startIndex, endIndex);\n }\n };\n return self;\n};\n\nvar StringSourceRange = function(string, description, startIndex, endIndex) {\n this._string = string;\n this._description = description;\n this._startIndex = startIndex;\n this._endIndex = endIndex;\n};\n\nStringSourceRange.prototype.to = function(otherRange) {\n // TODO: Assert that tokens are the same across both iterators\n return new StringSourceRange(this._string, this._description, this._startIndex, otherRange._endIndex);\n};\n\nStringSourceRange.prototype.describe = function() {\n var position = this._position();\n var description = this._description ? this._description + \"\\n\" : \"\";\n return description + \"Line number: \" + position.lineNumber + \"\\nCharacter number: \" + position.characterNumber;\n};\n\nStringSourceRange.prototype.lineNumber = function() {\n return this._position().lineNumber;\n};\n\nStringSourceRange.prototype.characterNumber = function() {\n return this._position().characterNumber;\n};\n\nStringSourceRange.prototype._position = function() {\n var self = this;\n var index = 0;\n var nextNewLine = function() {\n return self._string.indexOf(\"\\n\", index);\n };\n\n var lineNumber = 1;\n while (nextNewLine() !== -1 && nextNewLine() < this._startIndex) {\n index = nextNewLine() + 1;\n lineNumber += 1;\n }\n var characterNumber = this._startIndex - index + 1;\n return {lineNumber: lineNumber, characterNumber: characterNumber};\n};\n","module.exports = function(name, value, source) {\n this.name = name;\n this.value = value;\n if (source) {\n this.source = source;\n }\n};\n","var rules = require(\"./rules\");\nvar results = require(\"./parsing-results\");\n\nexports.parser = function(name, prefixRules, infixRuleBuilders) {\n var self = {\n rule: rule,\n leftAssociative: leftAssociative,\n rightAssociative: rightAssociative\n };\n \n var infixRules = new InfixRules(infixRuleBuilders.map(createInfixRule));\n var prefixRule = rules.firstOf(name, prefixRules);\n \n function createInfixRule(infixRuleBuilder) {\n return {\n name: infixRuleBuilder.name,\n rule: lazyRule(infixRuleBuilder.ruleBuilder.bind(null, self))\n };\n }\n \n function rule() {\n return createRule(infixRules);\n }\n \n function leftAssociative(name) {\n return createRule(infixRules.untilExclusive(name));\n }\n \n function rightAssociative(name) {\n return createRule(infixRules.untilInclusive(name));\n }\n \n function createRule(infixRules) {\n return apply.bind(null, infixRules);\n }\n \n function apply(infixRules, tokens) {\n var leftResult = prefixRule(tokens);\n if (leftResult.isSuccess()) {\n return infixRules.apply(leftResult);\n } else {\n return leftResult;\n }\n }\n \n return self;\n};\n\nfunction InfixRules(infixRules) {\n function untilExclusive(name) {\n return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name)));\n }\n \n function untilInclusive(name) {\n return new InfixRules(infixRules.slice(0, ruleNames().indexOf(name) + 1));\n }\n \n function ruleNames() {\n return infixRules.map(function(rule) {\n return rule.name;\n });\n }\n \n function apply(leftResult) {\n var currentResult;\n var source;\n while (true) {\n currentResult = applyToTokens(leftResult.remaining());\n if (currentResult.isSuccess()) {\n source = leftResult.source().to(currentResult.source());\n leftResult = results.success(\n currentResult.value()(leftResult.value(), source),\n currentResult.remaining(),\n source\n )\n } else if (currentResult.isFailure()) {\n return leftResult;\n } else {\n return currentResult;\n }\n }\n }\n \n function applyToTokens(tokens) {\n return rules.firstOf(\"infix\", infixRules.map(function(infix) {\n return infix.rule;\n }))(tokens);\n }\n \n return {\n apply: apply,\n untilExclusive: untilExclusive,\n untilInclusive: untilInclusive\n }\n}\n\nexports.infix = function(name, ruleBuilder) {\n function map(func) {\n return exports.infix(name, function(parser) {\n var rule = ruleBuilder(parser);\n return function(tokens) {\n var result = rule(tokens);\n return result.map(function(right) {\n return function(left, source) {\n return func(left, right, source);\n };\n });\n };\n });\n }\n \n return {\n name: name,\n ruleBuilder: ruleBuilder,\n map: map\n };\n}\n\n// TODO: move into a sensible place and remove duplication\nvar lazyRule = function(ruleBuilder) {\n var rule;\n return function(input) {\n if (!rule) {\n rule = ruleBuilder();\n }\n return rule(input);\n };\n};\n","var Token = require(\"./Token\");\nvar StringSource = require(\"./StringSource\");\n\nexports.RegexTokeniser = RegexTokeniser;\n\nfunction RegexTokeniser(rules) {\n rules = rules.map(function(rule) {\n return {\n name: rule.name,\n regex: new RegExp(rule.regex.source, \"g\")\n };\n });\n \n function tokenise(input, description) {\n var source = new StringSource(input, description);\n var index = 0;\n var tokens = [];\n \n while (index < input.length) {\n var result = readNextToken(input, index, source);\n index = result.endIndex;\n tokens.push(result.token);\n }\n \n tokens.push(endToken(input, source));\n return tokens;\n }\n\n function readNextToken(string, startIndex, source) {\n for (var i = 0; i < rules.length; i++) {\n var regex = rules[i].regex;\n regex.lastIndex = startIndex;\n var result = regex.exec(string);\n \n if (result) {\n var endIndex = startIndex + result[0].length;\n if (result.index === startIndex && endIndex > startIndex) {\n var value = result[1];\n var token = new Token(\n rules[i].name,\n value,\n source.range(startIndex, endIndex)\n );\n return {token: token, endIndex: endIndex};\n }\n }\n }\n var endIndex = startIndex + 1;\n var token = new Token(\n \"unrecognisedCharacter\",\n string.substring(startIndex, endIndex),\n source.range(startIndex, endIndex)\n );\n return {token: token, endIndex: endIndex};\n }\n \n function endToken(input, source) {\n return new Token(\n \"end\",\n null,\n source.range(input.length, input.length)\n );\n }\n \n return {\n tokenise: tokenise\n }\n}\n\n\n","exports.Parser = require(\"./lib/parser\").Parser;\nexports.rules = require(\"./lib/rules\");\nexports.errors = require(\"./lib/errors\");\nexports.results = require(\"./lib/parsing-results\");\nexports.StringSource = require(\"./lib/StringSource\");\nexports.Token = require(\"./lib/Token\");\nexports.bottomUp = require(\"./lib/bottom-up\");\nexports.RegexTokeniser = require(\"./lib/regex-tokeniser\").RegexTokeniser;\n\nexports.rule = function(ruleBuilder) {\n var rule;\n return function(input) {\n if (!rule) {\n rule = ruleBuilder();\n }\n return rule(input);\n };\n};\n","exports.paragraph = paragraph;\nexports.run = run;\nexports.table = table;\nexports.bold = new Matcher(\"bold\");\nexports.italic = new Matcher(\"italic\");\nexports.underline = new Matcher(\"underline\");\nexports.strikethrough = new Matcher(\"strikethrough\");\nexports.allCaps = new Matcher(\"allCaps\");\nexports.smallCaps = new Matcher(\"smallCaps\");\nexports.highlight = highlight;\nexports.commentReference = new Matcher(\"commentReference\");\nexports.lineBreak = new BreakMatcher({breakType: \"line\"});\nexports.pageBreak = new BreakMatcher({breakType: \"page\"});\nexports.columnBreak = new BreakMatcher({breakType: \"column\"});\nexports.equalTo = equalTo;\nexports.startsWith = startsWith;\n\n\nfunction paragraph(options) {\n return new Matcher(\"paragraph\", options);\n}\n\nfunction run(options) {\n return new Matcher(\"run\", options);\n}\n\nfunction table(options) {\n return new Matcher(\"table\", options);\n}\n\nfunction highlight(options) {\n return new HighlightMatcher(options);\n}\n\nfunction Matcher(elementType, options) {\n options = options || {};\n this._elementType = elementType;\n this._styleId = options.styleId;\n this._styleName = options.styleName;\n if (options.list) {\n this._listIndex = options.list.levelIndex;\n this._listIsOrdered = options.list.isOrdered;\n }\n}\n\nMatcher.prototype.matches = function(element) {\n return element.type === this._elementType &&\n (this._styleId === undefined || element.styleId === this._styleId) &&\n (this._styleName === undefined || (element.styleName && this._styleName.operator(this._styleName.operand, element.styleName))) &&\n (this._listIndex === undefined || isList(element, this._listIndex, this._listIsOrdered)) &&\n (this._breakType === undefined || this._breakType === element.breakType);\n};\n\nfunction HighlightMatcher(options) {\n options = options || {};\n this._color = options.color;\n}\n\nHighlightMatcher.prototype.matches = function(element) {\n return element.type === \"highlight\" &&\n (this._color === undefined || element.color === this._color);\n};\n\nfunction BreakMatcher(options) {\n options = options || {};\n this._breakType = options.breakType;\n}\n\nBreakMatcher.prototype.matches = function(element) {\n return element.type === \"break\" &&\n (this._breakType === undefined || element.breakType === this._breakType);\n};\n\nfunction isList(element, levelIndex, isOrdered) {\n return element.numbering &&\n element.numbering.level == levelIndex &&\n element.numbering.isOrdered == isOrdered;\n}\n\nfunction equalTo(value) {\n return {\n operator: operatorEqualTo,\n operand: value\n };\n}\n\nfunction startsWith(value) {\n return {\n operator: operatorStartsWith,\n operand: value\n };\n}\n\nfunction operatorEqualTo(first, second) {\n return first.toUpperCase() === second.toUpperCase();\n}\n\nfunction operatorStartsWith(first, second) {\n return second.toUpperCase().indexOf(first.toUpperCase()) === 0;\n}\n","var lop = require(\"lop\");\nvar RegexTokeniser = lop.RegexTokeniser;\n\nexports.tokenise = tokenise;\n\nvar stringPrefix = \"'((?:\\\\\\\\.|[^'])*)\";\n\nfunction tokenise(string) {\n var identifierCharacter = \"(?:[a-zA-Z\\\\-_]|\\\\\\\\.)\";\n var tokeniser = new RegexTokeniser([\n {name: \"identifier\", regex: new RegExp(\"(\" + identifierCharacter + \"(?:\" + identifierCharacter + \"|[0-9])*)\")},\n {name: \"dot\", regex: /\\./},\n {name: \"colon\", regex: /:/},\n {name: \"gt\", regex: />/},\n {name: \"whitespace\", regex: /\\s+/},\n {name: \"arrow\", regex: /=>/},\n {name: \"equals\", regex: /=/},\n {name: \"startsWith\", regex: /\\^=/},\n {name: \"open-paren\", regex: /\\(/},\n {name: \"close-paren\", regex: /\\)/},\n {name: \"open-square-bracket\", regex: /\\[/},\n {name: \"close-square-bracket\", regex: /\\]/},\n {name: \"string\", regex: new RegExp(stringPrefix + \"'\")},\n {name: \"unterminated-string\", regex: new RegExp(stringPrefix)},\n {name: \"integer\", regex: /([0-9]+)/},\n {name: \"choice\", regex: /\\|/},\n {name: \"bang\", regex: /(!)/}\n ]);\n return tokeniser.tokenise(string);\n}\n","var _ = require(\"underscore\");\nvar lop = require(\"lop\");\n\nvar documentMatchers = require(\"./styles/document-matchers\");\nvar htmlPaths = require(\"./styles/html-paths\");\nvar tokenise = require(\"./styles/parser/tokeniser\").tokenise;\nvar results = require(\"./results\");\n\nexports.readHtmlPath = readHtmlPath;\nexports.readDocumentMatcher = readDocumentMatcher;\nexports.readStyle = readStyle;\n\n\nfunction readStyle(string) {\n return parseString(styleRule, string);\n}\n\nfunction createStyleRule() {\n return lop.rules.sequence(\n lop.rules.sequence.capture(documentMatcherRule()),\n lop.rules.tokenOfType(\"whitespace\"),\n lop.rules.tokenOfType(\"arrow\"),\n lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(\n lop.rules.tokenOfType(\"whitespace\"),\n lop.rules.sequence.capture(htmlPathRule())\n ).head())),\n lop.rules.tokenOfType(\"end\")\n ).map(function(documentMatcher, htmlPath) {\n return {\n from: documentMatcher,\n to: htmlPath.valueOrElse(htmlPaths.empty)\n };\n });\n}\n\nfunction readDocumentMatcher(string) {\n return parseString(documentMatcherRule(), string);\n}\n\nfunction documentMatcherRule() {\n var sequence = lop.rules.sequence;\n\n var identifierToConstant = function(identifier, constant) {\n return lop.rules.then(\n lop.rules.token(\"identifier\", identifier),\n function() {\n return constant;\n }\n );\n };\n\n var paragraphRule = identifierToConstant(\"p\", documentMatchers.paragraph);\n var runRule = identifierToConstant(\"r\", documentMatchers.run);\n\n var elementTypeRule = lop.rules.firstOf(\"p or r or table\",\n paragraphRule,\n runRule\n );\n\n var styleIdRule = lop.rules.sequence(\n lop.rules.tokenOfType(\"dot\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(identifierRule)\n ).map(function(styleId) {\n return {styleId: styleId};\n });\n\n var styleNameMatcherRule = lop.rules.firstOf(\"style name matcher\",\n lop.rules.then(\n lop.rules.sequence(\n lop.rules.tokenOfType(\"equals\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(stringRule)\n ).head(),\n function(styleName) {\n return {styleName: documentMatchers.equalTo(styleName)};\n }\n ),\n lop.rules.then(\n lop.rules.sequence(\n lop.rules.tokenOfType(\"startsWith\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(stringRule)\n ).head(),\n function(styleName) {\n return {styleName: documentMatchers.startsWith(styleName)};\n }\n )\n );\n\n var styleNameRule = lop.rules.sequence(\n lop.rules.tokenOfType(\"open-square-bracket\"),\n lop.rules.sequence.cut(),\n lop.rules.token(\"identifier\", \"style-name\"),\n lop.rules.sequence.capture(styleNameMatcherRule),\n lop.rules.tokenOfType(\"close-square-bracket\")\n ).head();\n\n\n var listTypeRule = lop.rules.firstOf(\"list type\",\n identifierToConstant(\"ordered-list\", {isOrdered: true}),\n identifierToConstant(\"unordered-list\", {isOrdered: false})\n );\n var listRule = sequence(\n lop.rules.tokenOfType(\"colon\"),\n sequence.capture(listTypeRule),\n sequence.cut(),\n lop.rules.tokenOfType(\"open-paren\"),\n sequence.capture(integerRule),\n lop.rules.tokenOfType(\"close-paren\")\n ).map(function(listType, levelNumber) {\n return {\n list: {\n isOrdered: listType.isOrdered,\n levelIndex: levelNumber - 1\n }\n };\n });\n\n function createMatcherSuffixesRule(rules) {\n var matcherSuffix = lop.rules.firstOf.apply(\n lop.rules.firstOf,\n [\"matcher suffix\"].concat(rules)\n );\n var matcherSuffixes = lop.rules.zeroOrMore(matcherSuffix);\n return lop.rules.then(matcherSuffixes, function(suffixes) {\n var matcherOptions = {};\n suffixes.forEach(function(suffix) {\n _.extend(matcherOptions, suffix);\n });\n return matcherOptions;\n });\n }\n\n var paragraphOrRun = sequence(\n sequence.capture(elementTypeRule),\n sequence.capture(createMatcherSuffixesRule([\n styleIdRule,\n styleNameRule,\n listRule\n ]))\n ).map(function(createMatcher, matcherOptions) {\n return createMatcher(matcherOptions);\n });\n\n var table = sequence(\n lop.rules.token(\"identifier\", \"table\"),\n sequence.capture(createMatcherSuffixesRule([\n styleIdRule,\n styleNameRule\n ]))\n ).map(function(options) {\n return documentMatchers.table(options);\n });\n\n var bold = identifierToConstant(\"b\", documentMatchers.bold);\n var italic = identifierToConstant(\"i\", documentMatchers.italic);\n var underline = identifierToConstant(\"u\", documentMatchers.underline);\n var strikethrough = identifierToConstant(\"strike\", documentMatchers.strikethrough);\n var allCaps = identifierToConstant(\"all-caps\", documentMatchers.allCaps);\n var smallCaps = identifierToConstant(\"small-caps\", documentMatchers.smallCaps);\n\n var highlight = sequence(\n lop.rules.token(\"identifier\", \"highlight\"),\n lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(\n lop.rules.tokenOfType(\"open-square-bracket\"),\n lop.rules.sequence.cut(),\n lop.rules.token(\"identifier\", \"color\"),\n lop.rules.tokenOfType(\"equals\"),\n lop.rules.sequence.capture(stringRule),\n lop.rules.tokenOfType(\"close-square-bracket\")\n ).head()))\n ).map(function(color) {\n return documentMatchers.highlight({\n color: color.valueOrElse(undefined)\n });\n });\n\n var commentReference = identifierToConstant(\"comment-reference\", documentMatchers.commentReference);\n\n var breakMatcher = sequence(\n lop.rules.token(\"identifier\", \"br\"),\n sequence.cut(),\n lop.rules.tokenOfType(\"open-square-bracket\"),\n lop.rules.token(\"identifier\", \"type\"),\n lop.rules.tokenOfType(\"equals\"),\n sequence.capture(stringRule),\n lop.rules.tokenOfType(\"close-square-bracket\")\n ).map(function(breakType) {\n switch (breakType) {\n case \"line\":\n return documentMatchers.lineBreak;\n case \"page\":\n return documentMatchers.pageBreak;\n case \"column\":\n return documentMatchers.columnBreak;\n default:\n // TODO: handle unknown document matchers\n }\n });\n\n return lop.rules.firstOf(\"element type\",\n paragraphOrRun,\n table,\n bold,\n italic,\n underline,\n strikethrough,\n allCaps,\n smallCaps,\n highlight,\n commentReference,\n breakMatcher\n );\n}\n\nfunction readHtmlPath(string) {\n return parseString(htmlPathRule(), string);\n}\n\nfunction htmlPathRule() {\n var capture = lop.rules.sequence.capture;\n var whitespaceRule = lop.rules.tokenOfType(\"whitespace\");\n var freshRule = lop.rules.then(\n lop.rules.optional(lop.rules.sequence(\n lop.rules.tokenOfType(\"colon\"),\n lop.rules.token(\"identifier\", \"fresh\")\n )),\n function(option) {\n return option.map(function() {\n return true;\n }).valueOrElse(false);\n }\n );\n\n var separatorRule = lop.rules.then(\n lop.rules.optional(lop.rules.sequence(\n lop.rules.tokenOfType(\"colon\"),\n lop.rules.token(\"identifier\", \"separator\"),\n lop.rules.tokenOfType(\"open-paren\"),\n capture(stringRule),\n lop.rules.tokenOfType(\"close-paren\")\n ).head()),\n function(option) {\n return option.valueOrElse(\"\");\n }\n );\n\n var tagNamesRule = lop.rules.oneOrMoreWithSeparator(\n identifierRule,\n lop.rules.tokenOfType(\"choice\")\n );\n\n var styleElementRule = lop.rules.sequence(\n capture(tagNamesRule),\n capture(lop.rules.zeroOrMore(attributeOrClassRule)),\n capture(freshRule),\n capture(separatorRule)\n ).map(function(tagName, attributesList, fresh, separator) {\n var attributes = {};\n var options = {};\n attributesList.forEach(function(attribute) {\n if (attribute.append && attributes[attribute.name]) {\n attributes[attribute.name] += \" \" + attribute.value;\n } else {\n attributes[attribute.name] = attribute.value;\n }\n });\n if (fresh) {\n options.fresh = true;\n }\n if (separator) {\n options.separator = separator;\n }\n return htmlPaths.element(tagName, attributes, options);\n });\n\n return lop.rules.firstOf(\"html path\",\n lop.rules.then(lop.rules.tokenOfType(\"bang\"), function() {\n return htmlPaths.ignore;\n }),\n lop.rules.then(\n lop.rules.zeroOrMoreWithSeparator(\n styleElementRule,\n lop.rules.sequence(\n whitespaceRule,\n lop.rules.tokenOfType(\"gt\"),\n whitespaceRule\n )\n ),\n htmlPaths.elements\n )\n );\n}\n\nvar identifierRule = lop.rules.then(\n lop.rules.tokenOfType(\"identifier\"),\n decodeEscapeSequences\n);\nvar integerRule = lop.rules.tokenOfType(\"integer\");\n\nvar stringRule = lop.rules.then(\n lop.rules.tokenOfType(\"string\"),\n decodeEscapeSequences\n);\n\nvar escapeSequences = {\n \"n\": \"\\n\",\n \"r\": \"\\r\",\n \"t\": \"\\t\"\n};\n\nfunction decodeEscapeSequences(value) {\n return value.replace(/\\\\(.)/g, function(match, code) {\n return escapeSequences[code] || code;\n });\n}\n\nvar attributeRule = lop.rules.sequence(\n lop.rules.tokenOfType(\"open-square-bracket\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(identifierRule),\n lop.rules.tokenOfType(\"equals\"),\n lop.rules.sequence.capture(stringRule),\n lop.rules.tokenOfType(\"close-square-bracket\")\n).map(function(name, value) {\n return {name: name, value: value, append: false};\n});\n\nvar classRule = lop.rules.sequence(\n lop.rules.tokenOfType(\"dot\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(identifierRule)\n).map(function(className) {\n return {name: \"class\", value: className, append: true};\n});\n\nvar attributeOrClassRule = lop.rules.firstOf(\n \"attribute or class\",\n attributeRule,\n classRule\n);\n\nfunction parseString(rule, string) {\n var tokens = tokenise(string);\n var parser = lop.Parser();\n var parseResult = parser.parseTokens(rule, tokens);\n if (parseResult.isSuccess()) {\n return results.success(parseResult.value());\n } else {\n return new results.Result(null, [results.warning(describeFailure(string, parseResult))]);\n }\n}\n\nfunction describeFailure(input, parseResult) {\n return \"Did not understand this style mapping, so ignored it: \" + input + \"\\n\" +\n parseResult.errors().map(describeError).join(\"\\n\");\n}\n\nfunction describeError(error) {\n return \"Error was at character number \" + error.characterNumber() + \": \" +\n \"Expected \" + error.expected + \" but got \" + error.actual;\n}\n\nvar styleRule = createStyleRule();\n","exports.readOptions = readOptions;\n\n\nvar _ = require(\"underscore\");\n\nvar defaultStyleMap = exports._defaultStyleMap = [\n \"p.Heading1 => h1:fresh\",\n \"p.Heading2 => h2:fresh\",\n \"p.Heading3 => h3:fresh\",\n \"p.Heading4 => h4:fresh\",\n \"p.Heading5 => h5:fresh\",\n \"p.Heading6 => h6:fresh\",\n \"p[style-name='Heading 1'] => h1:fresh\",\n \"p[style-name='Heading 2'] => h2:fresh\",\n \"p[style-name='Heading 3'] => h3:fresh\",\n \"p[style-name='Heading 4'] => h4:fresh\",\n \"p[style-name='Heading 5'] => h5:fresh\",\n \"p[style-name='Heading 6'] => h6:fresh\",\n \"p[style-name='heading 1'] => h1:fresh\",\n \"p[style-name='heading 2'] => h2:fresh\",\n \"p[style-name='heading 3'] => h3:fresh\",\n \"p[style-name='heading 4'] => h4:fresh\",\n \"p[style-name='heading 5'] => h5:fresh\",\n \"p[style-name='heading 6'] => h6:fresh\",\n\n // Apple Pages\n \"p.Heading => h1:fresh\",\n \"p[style-name='Heading'] => h1:fresh\",\n\n \"r[style-name='Strong'] => strong\",\n\n \"p[style-name='footnote text'] => p:fresh\",\n \"r[style-name='footnote reference'] =>\",\n \"p[style-name='endnote text'] => p:fresh\",\n \"r[style-name='endnote reference'] =>\",\n \"p[style-name='annotation text'] => p:fresh\",\n \"r[style-name='annotation reference'] =>\",\n\n // LibreOffice\n \"p[style-name='Footnote'] => p:fresh\",\n \"r[style-name='Footnote anchor'] =>\",\n \"p[style-name='Endnote'] => p:fresh\",\n \"r[style-name='Endnote anchor'] =>\",\n\n \"p:unordered-list(1) => ul > li:fresh\",\n \"p:unordered-list(2) => ul|ol > li > ul > li:fresh\",\n \"p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh\",\n \"p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh\",\n \"p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh\",\n \"p:ordered-list(1) => ol > li:fresh\",\n \"p:ordered-list(2) => ul|ol > li > ol > li:fresh\",\n \"p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh\",\n \"p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh\",\n \"p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh\",\n\n \"r[style-name='Hyperlink'] =>\",\n\n \"p[style-name='Normal'] => p:fresh\",\n\n // Apple Pages\n \"p.Body => p:fresh\",\n \"p[style-name='Body'] => p:fresh\"\n];\n\nvar standardOptions = exports._standardOptions = {\n externalFileAccess: false,\n transformDocument: identity,\n includeDefaultStyleMap: true,\n includeEmbeddedStyleMap: true\n};\n\nfunction readOptions(options) {\n options = options || {};\n return _.extend({}, standardOptions, options, {\n customStyleMap: readStyleMap(options.styleMap),\n readStyleMap: function() {\n var styleMap = this.customStyleMap;\n if (this.includeEmbeddedStyleMap) {\n styleMap = styleMap.concat(readStyleMap(this.embeddedStyleMap));\n }\n if (this.includeDefaultStyleMap) {\n styleMap = styleMap.concat(defaultStyleMap);\n }\n return styleMap;\n }\n });\n}\n\nfunction readStyleMap(styleMap) {\n if (!styleMap) {\n return [];\n } else if (_.isString(styleMap)) {\n return styleMap.split(\"\\n\")\n .map(function(line) {\n return line.trim();\n })\n .filter(function(line) {\n return line !== \"\" && line.charAt(0) !== \"#\";\n });\n } else {\n return styleMap;\n }\n}\n\nfunction identity(value) {\n return value;\n}\n","var promises = require(\"../lib/promises\");\nvar zipfile = require(\"../lib/zipfile\");\n\nexports.openZip = openZip;\n\nfunction openZip(options) {\n if (options.arrayBuffer) {\n return promises.resolve(zipfile.openArrayBuffer(options.arrayBuffer));\n } else {\n return promises.reject(new Error(\"Could not find file in options\"));\n }\n}\n","var htmlPaths = require(\"./styles/html-paths\");\nvar Html = require(\"./html\");\n\n\nexports.element = element;\n\nfunction element(name) {\n return function(html) {\n return Html.elementWithTag(htmlPaths.element(name), [html]);\n };\n}\n","var _ = require(\"underscore\");\n\nvar docxReader = require(\"./docx/docx-reader\");\nvar docxStyleMap = require(\"./docx/style-map\");\nvar DocumentConverter = require(\"./document-to-html\").DocumentConverter;\nvar convertElementToRawText = require(\"./raw-text\").convertElementToRawText;\nvar readStyle = require(\"./style-reader\").readStyle;\nvar readOptions = require(\"./options-reader\").readOptions;\nvar unzip = require(\"./unzip\");\nvar Result = require(\"./results\").Result;\n\nexports.convertToHtml = convertToHtml;\nexports.convertToMarkdown = convertToMarkdown;\nexports.convert = convert;\nexports.extractRawText = extractRawText;\nexports.images = require(\"./images\");\nexports.transforms = require(\"./transforms\");\nexports.underline = require(\"./underline\");\nexports.embedStyleMap = embedStyleMap;\nexports.readEmbeddedStyleMap = readEmbeddedStyleMap;\n\nfunction convertToHtml(input, options) {\n return convert(input, options);\n}\n\nfunction convertToMarkdown(input, options) {\n var markdownOptions = Object.create(options || {});\n markdownOptions.outputFormat = \"markdown\";\n return convert(input, markdownOptions);\n}\n\nfunction convert(input, options) {\n options = readOptions(options);\n\n return unzip.openZip(input)\n .tap(function(docxFile) {\n return docxStyleMap.readStyleMap(docxFile).then(function(styleMap) {\n options.embeddedStyleMap = styleMap;\n });\n })\n .then(function(docxFile) {\n return docxReader.read(docxFile, input, options)\n .then(function(documentResult) {\n return documentResult.map(options.transformDocument);\n })\n .then(function(documentResult) {\n return convertDocumentToHtml(documentResult, options);\n });\n });\n}\n\nfunction readEmbeddedStyleMap(input) {\n return unzip.openZip(input)\n .then(docxStyleMap.readStyleMap);\n}\n\nfunction convertDocumentToHtml(documentResult, options) {\n var styleMapResult = parseStyleMap(options.readStyleMap());\n var parsedOptions = _.extend({}, options, {\n styleMap: styleMapResult.value\n });\n var documentConverter = new DocumentConverter(parsedOptions);\n\n return documentResult.flatMapThen(function(document) {\n return styleMapResult.flatMapThen(function(styleMap) {\n return documentConverter.convertToHtml(document);\n });\n });\n}\n\nfunction parseStyleMap(styleMap) {\n return Result.combine((styleMap || []).map(readStyle))\n .map(function(styleMap) {\n return styleMap.filter(function(styleMapping) {\n return !!styleMapping;\n });\n });\n}\n\n\nfunction extractRawText(input) {\n return unzip.openZip(input)\n .then(docxReader.read)\n .then(function(documentResult) {\n return documentResult.map(convertElementToRawText);\n });\n}\n\nfunction embedStyleMap(input, styleMap) {\n return unzip.openZip(input)\n .tap(function(docxFile) {\n return docxStyleMap.writeStyleMap(docxFile, styleMap);\n })\n .then(function(docxFile) {\n return docxFile.toArrayBuffer();\n })\n .then(function(arrayBuffer) {\n return {\n toArrayBuffer: function() {\n return arrayBuffer;\n },\n toBuffer: function() {\n return Buffer.from(arrayBuffer);\n }\n };\n });\n}\n\nexports.styleMapping = function() {\n 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\")');\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279],"mappings":"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cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAK,EAChH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACpH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAK,EAChH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACpH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAK,EAChH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACpH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EAClH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,KAAM,EACnH,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,IAAK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AY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EACzH,CAAE,gBAAiB,WAAY,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Ae,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAK,EACnH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC1H,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACvH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACxH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EACzH,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,YAAa,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC3H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAK,EACrH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,K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AU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,IAAK,EACrH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EACzH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC5H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,MAAO,EAC1H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,MAAO,EAC3H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,OAAQ,EAC7H,CAAE,gBAAiB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"}
|