From df5573191894093c16292138604169481f314b97 Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Wed, 13 Feb 2019 13:30:28 +0100 Subject: [PATCH 001/164] events: add once method to use promises with EventEmitter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change adds a EventEmitter.once() method that wraps ee.once in a promise. Co-authored-by: David Mark Clements PR-URL: https://github.com/nodejs/node/pull/26078 Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater Reviewed-By: Gus Caplan Reviewed-By: Anna Henningsen Reviewed-By: Michaël Zasso Reviewed-By: Anatoli Papirovski Reviewed-By: Benjamin Gruenbaum Reviewed-By: Сковорода Никита Андреевич --- doc/api/events.md | 41 ++++++++++++++ lib/events.js | 30 ++++++++++ test/parallel/test-events-once.js | 93 +++++++++++++++++++++++++++++++ 3 files changed, 164 insertions(+) create mode 100644 test/parallel/test-events-once.js diff --git a/doc/api/events.md b/doc/api/events.md index 612b5aa04ecdfb..8525bf5f2483f2 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -653,6 +653,47 @@ newListeners[0](); emitter.emit('log'); ``` +## events.once(emitter, name) + +* `emitter` {EventEmitter} +* `name` {string} +* Returns: {Promise} + +Creates a `Promise` that is resolved when the `EventEmitter` emits the given +event or that is rejected when the `EventEmitter` emits `'error'`. +The `Promise` will resolve with an array of all the arguments emitted to the +given event. + +```js +const { once, EventEmitter } = require('events'); + +async function run() { + const ee = new EventEmitter(); + + process.nextTick(() => { + ee.emit('myevent', 42); + }); + + const [value] = await once(ee, 'myevent'); + console.log(value); + + const err = new Error('kaboom'); + process.nextTick(() => { + ee.emit('error', err); + }); + + try { + await once(ee, 'myevent'); + } catch (err) { + console.log('error happened', err); + } +} + +run(); +``` + [`--trace-warnings`]: cli.html#cli_trace_warnings [`EventEmitter.defaultMaxListeners`]: #events_eventemitter_defaultmaxlisteners [`domain`]: domain.html diff --git a/lib/events.js b/lib/events.js index 5e899edbe909dd..1d253fdd33cea7 100644 --- a/lib/events.js +++ b/lib/events.js @@ -27,6 +27,7 @@ function EventEmitter() { EventEmitter.init.call(this); } module.exports = EventEmitter; +module.exports.once = once; // Backwards-compat with node 0.10.x EventEmitter.EventEmitter = EventEmitter; @@ -482,3 +483,32 @@ function unwrapListeners(arr) { } return ret; } + +function once(emitter, name) { + return new Promise((resolve, reject) => { + const eventListener = (...args) => { + if (errorListener !== undefined) { + emitter.removeListener('error', errorListener); + } + resolve(args); + }; + let errorListener; + + // Adding an error listener is not optional because + // if an error is thrown on an event emitter we cannot + // guarantee that the actual event we are waiting will + // be fired. The result could be a silent way to create + // memory or file descriptor leaks, which is something + // we should avoid. + if (name !== 'error') { + errorListener = (err) => { + emitter.removeListener(name, eventListener); + reject(err); + }; + + emitter.once('error', errorListener); + } + + emitter.once(name, eventListener); + }); +} diff --git a/test/parallel/test-events-once.js b/test/parallel/test-events-once.js new file mode 100644 index 00000000000000..f99604018ad0af --- /dev/null +++ b/test/parallel/test-events-once.js @@ -0,0 +1,93 @@ +'use strict'; + +const common = require('../common'); +const { once, EventEmitter } = require('events'); +const { strictEqual, deepStrictEqual } = require('assert'); + +async function onceAnEvent() { + const ee = new EventEmitter(); + + process.nextTick(() => { + ee.emit('myevent', 42); + }); + + const [value] = await once(ee, 'myevent'); + strictEqual(value, 42); + strictEqual(ee.listenerCount('error'), 0); + strictEqual(ee.listenerCount('myevent'), 0); +} + +async function onceAnEventWithTwoArgs() { + const ee = new EventEmitter(); + + process.nextTick(() => { + ee.emit('myevent', 42, 24); + }); + + const value = await once(ee, 'myevent'); + deepStrictEqual(value, [42, 24]); +} + +async function catchesErrors() { + const ee = new EventEmitter(); + + const expected = new Error('kaboom'); + let err; + process.nextTick(() => { + ee.emit('error', expected); + }); + + try { + await once(ee, 'myevent'); + } catch (_e) { + err = _e; + } + strictEqual(err, expected); + strictEqual(ee.listenerCount('error'), 0); + strictEqual(ee.listenerCount('myevent'), 0); +} + +async function stopListeningAfterCatchingError() { + const ee = new EventEmitter(); + + const expected = new Error('kaboom'); + let err; + process.nextTick(() => { + ee.emit('error', expected); + ee.emit('myevent', 42, 24); + }); + + process.on('multipleResolves', common.mustNotCall()); + + try { + await once(ee, 'myevent'); + } catch (_e) { + err = _e; + } + process.removeAllListeners('multipleResolves'); + strictEqual(err, expected); + strictEqual(ee.listenerCount('error'), 0); + strictEqual(ee.listenerCount('myevent'), 0); +} + +async function onceError() { + const ee = new EventEmitter(); + + const expected = new Error('kaboom'); + process.nextTick(() => { + ee.emit('error', expected); + }); + + const [err] = await once(ee, 'error'); + strictEqual(err, expected); + strictEqual(ee.listenerCount('error'), 0); + strictEqual(ee.listenerCount('myevent'), 0); +} + +Promise.all([ + onceAnEvent(), + onceAnEventWithTwoArgs(), + catchesErrors(), + stopListeningAfterCatchingError(), + onceError() +]); From 03dba720da6eb70b360feb4a224e7daa0ef70577 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 6 Mar 2019 12:02:04 +0100 Subject: [PATCH 002/164] process: call `prepareMainThreadExecution` in `node inspect` Since we should treat the node-inspect as third-party user code. Backport-PR-URL: https://github.com/nodejs/node/pull/26662 PR-URL: https://github.com/nodejs/node/pull/26466 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater --- lib/internal/main/inspect.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/internal/main/inspect.js b/lib/internal/main/inspect.js index 7376f8984b13e1..f6777fe852bcfc 100644 --- a/lib/internal/main/inspect.js +++ b/lib/internal/main/inspect.js @@ -2,6 +2,12 @@ // `node inspect ...` or `node debug ...` +const { + prepareMainThreadExecution +} = require('internal/bootstrap/pre_execution'); + +prepareMainThreadExecution(); + if (process.argv[1] === 'debug') { process.emitWarning( '`node debug` is deprecated. Please use `node inspect` instead.', From cc606e2dfc6b0aa034c7bf10f22815d9e0503027 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 6 Mar 2019 12:05:23 +0100 Subject: [PATCH 003/164] process: set up process warning handler in pre-execution Since it depends on environment variables. Backport-PR-URL: https://github.com/nodejs/node/pull/26662 PR-URL: https://github.com/nodejs/node/pull/26466 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater --- lib/internal/bootstrap/node.js | 5 +---- lib/internal/bootstrap/pre_execution.js | 12 ++++++++++++ lib/internal/main/worker_thread.js | 3 +++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index 0b0fd7c24acad1..81ae3d902bc9a7 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js @@ -115,12 +115,9 @@ if (isMainThread) { } const { - onWarning, emitWarning } = NativeModule.require('internal/process/warning'); -if (!process.noProcessWarnings && process.env.NODE_NO_WARNINGS !== '1') { - process.on('warning', onWarning); -} + process.emitWarning = emitWarning; const { diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index 02acf6b46f6338..eb486e08064c3c 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -8,6 +8,8 @@ let traceEventsAsyncHook; function prepareMainThreadExecution() { setupTraceCategoryState(); + setupWarningHandler(); + // Only main thread receives signals. setupSignalHandlers(); @@ -36,6 +38,15 @@ function prepareMainThreadExecution() { loadPreloadModules(); } +function setupWarningHandler() { + const { + onWarning + } = require('internal/process/warning'); + if (!process.noProcessWarnings && process.env.NODE_NO_WARNINGS !== '1') { + process.on('warning', onWarning); + } +} + function initializeReport() { if (!getOptionValue('--experimental-report')) { return; @@ -251,6 +262,7 @@ function loadPreloadModules() { } module.exports = { + setupWarningHandler, prepareMainThreadExecution, initializeDeprecations, initializeESMLoader, diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js index 0dc1b61ef94f45..4ecceff4e6ec41 100644 --- a/lib/internal/main/worker_thread.js +++ b/lib/internal/main/worker_thread.js @@ -4,6 +4,7 @@ // message port. const { + setupWarningHandler, initializeDeprecations, initializeESMLoader, initializeFrozenIntrinsics, @@ -39,6 +40,8 @@ const { const publicWorker = require('worker_threads'); const debug = require('util').debuglog('worker'); +setupWarningHandler(); + debug(`[${threadId}] is setting up worker child environment`); // Set up the message port and start listening From 4200fc30bdd7ec797033228c128d13adc28f1541 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 6 Mar 2019 12:10:45 +0100 Subject: [PATCH 004/164] process: handle process.env.NODE_V8_COVERAGE in pre-execution Since this depends on environment variable, and the worker threads do not need to persist the variable value because they cannot switch cwd. Backport-PR-URL: https://github.com/nodejs/node/pull/26662 PR-URL: https://github.com/nodejs/node/pull/26466 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater --- lib/internal/bootstrap/node.js | 23 -------------------- lib/internal/bootstrap/pre_execution.js | 29 +++++++++++++++++++++++++ lib/internal/main/worker_thread.js | 7 ++++++ 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index 81ae3d902bc9a7..2d71eec8053a05 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js @@ -317,29 +317,6 @@ Object.defineProperty(process, 'features', { hasUncaughtExceptionCaptureCallback; } -// User-facing NODE_V8_COVERAGE environment variable that writes -// ScriptCoverage to a specified file. -if (process.env.NODE_V8_COVERAGE) { - const originalReallyExit = process.reallyExit; - const cwd = NativeModule.require('internal/process/execution').tryGetCwd(); - const { resolve } = NativeModule.require('path'); - // Resolve the coverage directory to an absolute path, and - // overwrite process.env so that the original path gets passed - // to child processes even when they switch cwd. - const coverageDirectory = resolve(cwd, process.env.NODE_V8_COVERAGE); - process.env.NODE_V8_COVERAGE = coverageDirectory; - const { - writeCoverage, - setCoverageDirectory - } = NativeModule.require('internal/coverage-gen/with_profiler'); - setCoverageDirectory(coverageDirectory); - process.on('exit', writeCoverage); - process.reallyExit = (code) => { - writeCoverage(); - originalReallyExit(code); - }; -} - function setupProcessObject() { const EventEmitter = NativeModule.require('events'); const origProcProto = Object.getPrototypeOf(process); diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index eb486e08064c3c..74266d0be33fbd 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -10,6 +10,14 @@ function prepareMainThreadExecution() { setupWarningHandler(); + // Resolve the coverage directory to an absolute path, and + // overwrite process.env so that the original path gets passed + // to child processes even when they switch cwd. + if (process.env.NODE_V8_COVERAGE) { + process.env.NODE_V8_COVERAGE = + setupCoverageHooks(process.env.NODE_V8_COVERAGE); + } + // Only main thread receives signals. setupSignalHandlers(); @@ -47,6 +55,26 @@ function setupWarningHandler() { } } +// Setup User-facing NODE_V8_COVERAGE environment variable that writes +// ScriptCoverage to a specified file. +function setupCoverageHooks(dir) { + const originalReallyExit = process.reallyExit; + const cwd = require('internal/process/execution').tryGetCwd(); + const { resolve } = require('path'); + const coverageDirectory = resolve(cwd, dir); + const { + writeCoverage, + setCoverageDirectory + } = require('internal/coverage-gen/with_profiler'); + setCoverageDirectory(coverageDirectory); + process.on('exit', writeCoverage); + process.reallyExit = (code) => { + writeCoverage(); + originalReallyExit(code); + }; + return coverageDirectory; +} + function initializeReport() { if (!getOptionValue('--experimental-report')) { return; @@ -262,6 +290,7 @@ function loadPreloadModules() { } module.exports = { + setupCoverageHooks, setupWarningHandler, prepareMainThreadExecution, initializeDeprecations, diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js index 4ecceff4e6ec41..0289f97fb1c110 100644 --- a/lib/internal/main/worker_thread.js +++ b/lib/internal/main/worker_thread.js @@ -4,6 +4,7 @@ // message port. const { + setupCoverageHooks, setupWarningHandler, initializeDeprecations, initializeESMLoader, @@ -42,6 +43,12 @@ const debug = require('util').debuglog('worker'); setupWarningHandler(); +// Since worker threads cannot switch cwd, we do not need to +// overwrite the process.env.NODE_V8_COVERAGE variable. +if (process.env.NODE_V8_COVERAGE) { + setupCoverageHooks(process.env.NODE_V8_COVERAGE); +} + debug(`[${threadId}] is setting up worker child environment`); // Set up the message port and start listening From cf1117a818a2dfbbc1bdafc9ccc3973f84709572 Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Thu, 14 Mar 2019 11:29:58 -0400 Subject: [PATCH 005/164] process: move deprecation warning setup for --debug* args MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/26662 Reviewed-By: Michaël Zasso --- lib/internal/bootstrap/node.js | 14 -------------- lib/internal/bootstrap/pre_execution.js | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index 2d71eec8053a05..aff746f9716032 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js @@ -219,20 +219,6 @@ Object.defineProperty(process, 'argv0', { }); process.argv[0] = process.execPath; -// Handle `--debug*` deprecation and invalidation. -if (process._invalidDebug) { - process.emitWarning( - '`node --debug` and `node --debug-brk` are invalid. ' + - 'Please use `node --inspect` or `node --inspect-brk` instead.', - 'DeprecationWarning', 'DEP0062', undefined, true); - process.exit(9); -} else if (process._deprecatedDebugBrk) { - process.emitWarning( - '`node --inspect --debug-brk` is deprecated. ' + - 'Please use `node --inspect-brk` instead.', - 'DeprecationWarning', 'DEP0062', undefined, true); -} - // TODO(jasnell): The following have been globals since around 2012. // That's just silly. The underlying perfctr support has been removed // so these are now deprecated non-ops that can be removed after one diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index 74266d0be33fbd..87fad375053a15 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -18,6 +18,20 @@ function prepareMainThreadExecution() { setupCoverageHooks(process.env.NODE_V8_COVERAGE); } + // Handle `--debug*` deprecation and invalidation. + if (process._invalidDebug) { + process.emitWarning( + '`node --debug` and `node --debug-brk` are invalid. ' + + 'Please use `node --inspect` or `node --inspect-brk` instead.', + 'DeprecationWarning', 'DEP0062', undefined, true); + process.exit(9); + } else if (process._deprecatedDebugBrk) { + process.emitWarning( + '`node --inspect --debug-brk` is deprecated. ' + + 'Please use `node --inspect-brk` instead.', + 'DeprecationWarning', 'DEP0062', undefined, true); + } + // Only main thread receives signals. setupSignalHandlers(); From b75af1537dd30f81fd73ce7b1dda3d9f0129ab76 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 6 Mar 2019 12:33:09 +0100 Subject: [PATCH 006/164] lib: move format and formatWithOptions into internal/util/inspect.js So these can be required without requiring the whole `util.js`. PR-URL: https://github.com/nodejs/node/pull/26468 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater --- lib/internal/util/inspect.js | 133 +++++++++++++++++++++++++++++++++- lib/util.js | 135 ++--------------------------------- 2 files changed, 137 insertions(+), 131 deletions(-) diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 2ab596f1f83167..cb4beb040d6f97 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -1354,8 +1354,139 @@ function reduceToSingleString(ctx, output, base, braces, combine = false) { return `${braces[0]}${ln}${join(output, `,\n${indentation} `)} ${braces[1]}`; } +const emptyOptions = {}; +function format(...args) { + return formatWithOptions(emptyOptions, ...args); +} + +let CIRCULAR_ERROR_MESSAGE; +function tryStringify(arg) { + try { + return JSON.stringify(arg); + } catch (err) { + // Populate the circular error message lazily + if (!CIRCULAR_ERROR_MESSAGE) { + try { + const a = {}; a.a = a; JSON.stringify(a); + } catch (err) { + CIRCULAR_ERROR_MESSAGE = err.message; + } + } + if (err.name === 'TypeError' && err.message === CIRCULAR_ERROR_MESSAGE) + return '[Circular]'; + throw err; + } +} + +function formatWithOptions(inspectOptions, f) { + let i, tempStr; + if (typeof f !== 'string') { + if (arguments.length === 1) return ''; + let res = ''; + for (i = 1; i < arguments.length - 1; i++) { + res += inspect(arguments[i], inspectOptions); + res += ' '; + } + res += inspect(arguments[i], inspectOptions); + return res; + } + + if (arguments.length === 2) return f; + + let str = ''; + let a = 2; + let lastPos = 0; + for (i = 0; i < f.length - 1; i++) { + if (f.charCodeAt(i) === 37) { // '%' + const nextChar = f.charCodeAt(++i); + if (a !== arguments.length) { + switch (nextChar) { + case 115: // 's' + tempStr = String(arguments[a++]); + break; + case 106: // 'j' + tempStr = tryStringify(arguments[a++]); + break; + case 100: // 'd' + const tempNum = arguments[a++]; + // eslint-disable-next-line valid-typeof + if (typeof tempNum === 'bigint') { + tempStr = `${tempNum}n`; + } else if (typeof tempNum === 'symbol') { + tempStr = 'NaN'; + } else { + tempStr = `${Number(tempNum)}`; + } + break; + case 79: // 'O' + tempStr = inspect(arguments[a++], inspectOptions); + break; + case 111: // 'o' + { + const opts = { + showHidden: true, + showProxy: true, + depth: 4, + ...inspectOptions + }; + tempStr = inspect(arguments[a++], opts); + break; + } + case 105: // 'i' + const tempInteger = arguments[a++]; + // eslint-disable-next-line valid-typeof + if (typeof tempInteger === 'bigint') { + tempStr = `${tempInteger}n`; + } else if (typeof tempInteger === 'symbol') { + tempStr = 'NaN'; + } else { + tempStr = `${parseInt(tempInteger)}`; + } + break; + case 102: // 'f' + const tempFloat = arguments[a++]; + if (typeof tempFloat === 'symbol') { + tempStr = 'NaN'; + } else { + tempStr = `${parseFloat(tempFloat)}`; + } + break; + case 37: // '%' + str += f.slice(lastPos, i); + lastPos = i + 1; + continue; + default: // Any other character is not a correct placeholder + continue; + } + if (lastPos !== i - 1) + str += f.slice(lastPos, i - 1); + str += tempStr; + lastPos = i + 1; + } else if (nextChar === 37) { + str += f.slice(lastPos, i); + lastPos = i + 1; + } + } + } + if (lastPos === 0) + str = f; + else if (lastPos < f.length) + str += f.slice(lastPos); + while (a < arguments.length) { + const x = arguments[a++]; + if ((typeof x !== 'object' && typeof x !== 'symbol') || x === null) { + str += ` ${x}`; + } else { + str += ` ${inspect(x, inspectOptions)}`; + } + } + return str; +} + module.exports = { inspect, formatProperty, - kObjectType + kObjectType, + format, + formatWithOptions }; diff --git a/lib/util.js b/lib/util.js index 6bc255d694d0de..4467499978f0d9 100644 --- a/lib/util.js +++ b/lib/util.js @@ -22,7 +22,11 @@ 'use strict'; const errors = require('internal/errors'); -const { inspect } = require('internal/util/inspect'); +const { + format, + formatWithOptions, + inspect +} = require('internal/util/inspect'); const { ERR_FALSY_VALUE_REJECTION, ERR_INVALID_ARG_TYPE, @@ -46,137 +50,8 @@ function uncurryThis(func) { } const objectToString = uncurryThis(Object.prototype.toString); -let CIRCULAR_ERROR_MESSAGE; let internalDeepEqual; -function tryStringify(arg) { - try { - return JSON.stringify(arg); - } catch (err) { - // Populate the circular error message lazily - if (!CIRCULAR_ERROR_MESSAGE) { - try { - const a = {}; a.a = a; JSON.stringify(a); - } catch (err) { - CIRCULAR_ERROR_MESSAGE = err.message; - } - } - if (err.name === 'TypeError' && err.message === CIRCULAR_ERROR_MESSAGE) - return '[Circular]'; - throw err; - } -} - -const emptyOptions = {}; -function format(...args) { - return formatWithOptions(emptyOptions, ...args); -} - -function formatWithOptions(inspectOptions, f) { - let i, tempStr; - if (typeof f !== 'string') { - if (arguments.length === 1) return ''; - let res = ''; - for (i = 1; i < arguments.length - 1; i++) { - res += inspect(arguments[i], inspectOptions); - res += ' '; - } - res += inspect(arguments[i], inspectOptions); - return res; - } - - if (arguments.length === 2) return f; - - let str = ''; - let a = 2; - let lastPos = 0; - for (i = 0; i < f.length - 1; i++) { - if (f.charCodeAt(i) === 37) { // '%' - const nextChar = f.charCodeAt(++i); - if (a !== arguments.length) { - switch (nextChar) { - case 115: // 's' - tempStr = String(arguments[a++]); - break; - case 106: // 'j' - tempStr = tryStringify(arguments[a++]); - break; - case 100: // 'd' - const tempNum = arguments[a++]; - // eslint-disable-next-line valid-typeof - if (typeof tempNum === 'bigint') { - tempStr = `${tempNum}n`; - } else if (typeof tempNum === 'symbol') { - tempStr = 'NaN'; - } else { - tempStr = `${Number(tempNum)}`; - } - break; - case 79: // 'O' - tempStr = inspect(arguments[a++], inspectOptions); - break; - case 111: // 'o' - { - const opts = { - showHidden: true, - showProxy: true, - depth: 4, - ...inspectOptions - }; - tempStr = inspect(arguments[a++], opts); - break; - } - case 105: // 'i' - const tempInteger = arguments[a++]; - // eslint-disable-next-line valid-typeof - if (typeof tempInteger === 'bigint') { - tempStr = `${tempInteger}n`; - } else if (typeof tempInteger === 'symbol') { - tempStr = 'NaN'; - } else { - tempStr = `${parseInt(tempInteger)}`; - } - break; - case 102: // 'f' - const tempFloat = arguments[a++]; - if (typeof tempFloat === 'symbol') { - tempStr = 'NaN'; - } else { - tempStr = `${parseFloat(tempFloat)}`; - } - break; - case 37: // '%' - str += f.slice(lastPos, i); - lastPos = i + 1; - continue; - default: // Any other character is not a correct placeholder - continue; - } - if (lastPos !== i - 1) - str += f.slice(lastPos, i - 1); - str += tempStr; - lastPos = i + 1; - } else if (nextChar === 37) { - str += f.slice(lastPos, i); - lastPos = i + 1; - } - } - } - if (lastPos === 0) - str = f; - else if (lastPos < f.length) - str += f.slice(lastPos); - while (a < arguments.length) { - const x = arguments[a++]; - if ((typeof x !== 'object' && typeof x !== 'symbol') || x === null) { - str += ` ${x}`; - } else { - str += ` ${inspect(x, inspectOptions)}`; - } - } - return str; -} - const debugs = {}; let debugEnvRegex = /^$/; if (process.env.NODE_DEBUG) { From b0afac2833937563c73a0269998dd5e79b426a6d Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 6 Mar 2019 12:53:04 +0100 Subject: [PATCH 007/164] process: call prepareMainThreadExecution in all main thread scripts PR-URL: https://github.com/nodejs/node/pull/26468 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater --- lib/internal/main/print_bash_completion.js | 6 ++++++ lib/internal/main/print_help.js | 6 ++++++ lib/internal/main/prof_process.js | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/lib/internal/main/print_bash_completion.js b/lib/internal/main/print_bash_completion.js index 225ed3d2221c00..41ebf0c6063e5f 100644 --- a/lib/internal/main/print_bash_completion.js +++ b/lib/internal/main/print_bash_completion.js @@ -1,6 +1,10 @@ 'use strict'; const { options, aliases } = require('internal/options'); +const { + prepareMainThreadExecution +} = require('internal/bootstrap/pre_execution'); + function print(stream) { const all_opts = [...options.keys(), ...aliases.keys()]; @@ -18,6 +22,8 @@ function print(stream) { complete -F _node_complete node node_g`); } +prepareMainThreadExecution(); + markBootstrapComplete(); print(process.stdout); diff --git a/lib/internal/main/print_help.js b/lib/internal/main/print_help.js index ef1cb9ce4bb880..d34c412d1686b0 100644 --- a/lib/internal/main/print_help.js +++ b/lib/internal/main/print_help.js @@ -3,6 +3,10 @@ const { types } = internalBinding('options'); const hasCrypto = Boolean(process.versions.openssl); +const { + prepareMainThreadExecution +} = require('internal/bootstrap/pre_execution'); + const typeLookup = []; for (const key of Object.keys(types)) typeLookup[types[key]] = key; @@ -171,6 +175,8 @@ function print(stream) { stream.write('\nDocumentation can be found at https://nodejs.org/\n'); } +prepareMainThreadExecution(); + markBootstrapComplete(); print(process.stdout); diff --git a/lib/internal/main/prof_process.js b/lib/internal/main/prof_process.js index a1143cb201e79c..bd835bfe630fa4 100644 --- a/lib/internal/main/prof_process.js +++ b/lib/internal/main/prof_process.js @@ -1,4 +1,9 @@ 'use strict'; +const { + prepareMainThreadExecution +} = require('internal/bootstrap/pre_execution'); + +prepareMainThreadExecution(); markBootstrapComplete(); require('internal/v8_prof_processor'); From 9ce08c85e7997c9b7985562965a2e2457526b6a9 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 6 Mar 2019 12:54:12 +0100 Subject: [PATCH 008/164] lib: explicitly initialize debuglog during bootstrap This patch splits the implementation of util.debuglog into a separate file and explicitly initialize it during pre-execution since the initialization depends on environment variables. Also delays the call to `debuglog` in modules that are loaded during bootstrap to make sure we only access the environment variable during pre-execution. PR-URL: https://github.com/nodejs/node/pull/26468 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater --- lib/_stream_readable.js | 10 ++++- lib/internal/bootstrap/pre_execution.js | 7 ++++ lib/internal/main/worker_thread.js | 4 ++ lib/internal/modules/cjs/loader.js | 8 +++- lib/internal/util/debuglog.js | 54 +++++++++++++++++++++++++ lib/internal/worker.js | 10 ++++- lib/internal/worker/io.js | 9 ++++- lib/timers.js | 10 ++++- lib/util.js | 40 +----------------- node.gyp | 1 + 10 files changed, 108 insertions(+), 45 deletions(-) create mode 100644 lib/internal/util/debuglog.js diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 4e162b97f77f2b..2bfbf9a3ecca29 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -28,7 +28,15 @@ const EE = require('events'); const Stream = require('stream'); const { Buffer } = require('buffer'); const util = require('util'); -const debug = util.debuglog('stream'); + +let debuglog; +function debug(...args) { + if (!debuglog) { + debuglog = require('internal/util/debuglog').debuglog('stream'); + } + debuglog(...args); +} + const BufferList = require('internal/streams/buffer_list'); const destroyImpl = require('internal/streams/destroy'); const { getHighWaterMark } = require('internal/streams/state'); diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index 87fad375053a15..237fa183d5336d 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -32,6 +32,8 @@ function prepareMainThreadExecution() { 'DeprecationWarning', 'DEP0062', undefined, true); } + setupDebugEnv(); + // Only main thread receives signals. setupSignalHandlers(); @@ -105,6 +107,10 @@ function initializeReport() { }); } +function setupDebugEnv() { + require('internal/util/debuglog').initializeDebugEnv(process.env.NODE_DEBUG); +} + function setupSignalHandlers() { const { createSignalHandlers @@ -306,6 +312,7 @@ function loadPreloadModules() { module.exports = { setupCoverageHooks, setupWarningHandler, + setupDebugEnv, prepareMainThreadExecution, initializeDeprecations, initializeESMLoader, diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js index 0289f97fb1c110..885d6dfcb1be24 100644 --- a/lib/internal/main/worker_thread.js +++ b/lib/internal/main/worker_thread.js @@ -6,6 +6,7 @@ const { setupCoverageHooks, setupWarningHandler, + setupDebugEnv, initializeDeprecations, initializeESMLoader, initializeFrozenIntrinsics, @@ -39,6 +40,9 @@ const { } = require('internal/process/execution'); const publicWorker = require('worker_threads'); + +setupDebugEnv(); + const debug = require('util').debuglog('worker'); setupWarningHandler(); diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index f5dff9b5c11803..880575964b742b 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -174,7 +174,13 @@ Object.defineProperty(Module, 'wrapper', { } }); -const debug = util.debuglog('module'); +let debuglog; +function debug(...args) { + if (!debuglog) { + debuglog = require('internal/util/debuglog').debuglog('module'); + } + debuglog(...args); +} Module._debug = util.deprecate(debug, 'Module._debug is deprecated.', 'DEP0077'); diff --git a/lib/internal/util/debuglog.js b/lib/internal/util/debuglog.js new file mode 100644 index 00000000000000..769328ac9d8453 --- /dev/null +++ b/lib/internal/util/debuglog.js @@ -0,0 +1,54 @@ +'use strict'; + +const { format } = require('internal/util/inspect'); + +// `debugs` is deliberately initialized to undefined so any call to +// debuglog() before initializeDebugEnv() is called will throw. +let debugs; + +let debugEnvRegex = /^$/; + +// `debugEnv` is initial value of process.env.NODE_DEBUG +function initializeDebugEnv(debugEnv) { + debugs = {}; + if (debugEnv) { + debugEnv = debugEnv.replace(/[|\\{}()[\]^$+?.]/g, '\\$&') + .replace(/\*/g, '.*') + .replace(/,/g, '$|^') + .toUpperCase(); + debugEnvRegex = new RegExp(`^${debugEnv}$`, 'i'); + } +} + +// Emits warning when user sets +// NODE_DEBUG=http or NODE_DEBUG=http2. +function emitWarningIfNeeded(set) { + if ('HTTP' === set || 'HTTP2' === set) { + process.emitWarning('Setting the NODE_DEBUG environment variable ' + + 'to \'' + set.toLowerCase() + '\' can expose sensitive ' + + 'data (such as passwords, tokens and authentication headers) ' + + 'in the resulting log.'); + } +} + +function debuglog(set) { + set = set.toUpperCase(); + if (!debugs[set]) { + if (debugEnvRegex.test(set)) { + const pid = process.pid; + emitWarningIfNeeded(set); + debugs[set] = function debug(...args) { + const msg = format(...args); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function debug() {}; + } + } + return debugs[set]; +} + +module.exports = { + debuglog, + initializeDebugEnv +}; diff --git a/lib/internal/worker.js b/lib/internal/worker.js index c81e1a5cd72771..02f6661b548e5b 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js @@ -3,7 +3,7 @@ const EventEmitter = require('events'); const assert = require('internal/assert'); const path = require('path'); -const util = require('util'); + const { ERR_WORKER_PATH, ERR_WORKER_UNSERIALIZABLE_ERROR, @@ -45,7 +45,13 @@ const kOnCouldNotSerializeErr = Symbol('kOnCouldNotSerializeErr'); const kOnErrorMessage = Symbol('kOnErrorMessage'); const kParentSideStdio = Symbol('kParentSideStdio'); -const debug = util.debuglog('worker'); +let debuglog; +function debug(...args) { + if (!debuglog) { + debuglog = require('internal/util/debuglog').debuglog('worker'); + } + debuglog(...args); +} class Worker extends EventEmitter { constructor(filename, options = {}) { diff --git a/lib/internal/worker/io.js b/lib/internal/worker/io.js index e88991aaaba0f0..387dc9df74efed 100644 --- a/lib/internal/worker/io.js +++ b/lib/internal/worker/io.js @@ -15,7 +15,14 @@ const { threadId } = internalBinding('worker'); const { Readable, Writable } = require('stream'); const EventEmitter = require('events'); const util = require('util'); -const debug = util.debuglog('worker'); + +let debuglog; +function debug(...args) { + if (!debuglog) { + debuglog = require('internal/util/debuglog').debuglog('worker'); + } + debuglog(...args); +} const kIncrementsPortRef = Symbol('kIncrementsPortRef'); const kName = Symbol('kName'); diff --git a/lib/timers.js b/lib/timers.js index 52c3d13bda174b..657b39bb1f509f 100644 --- a/lib/timers.js +++ b/lib/timers.js @@ -42,7 +42,15 @@ const { const internalUtil = require('internal/util'); const util = require('util'); const { ERR_INVALID_CALLBACK } = require('internal/errors').codes; -const debug = util.debuglog('timer'); + +let debuglog; +function debug(...args) { + if (!debuglog) { + debuglog = require('internal/util/debuglog').debuglog('timer'); + } + debuglog(...args); +} + const { destroyHooksExist, // The needed emit*() functions. diff --git a/lib/util.js b/lib/util.js index 4467499978f0d9..6a3936856940ee 100644 --- a/lib/util.js +++ b/lib/util.js @@ -27,6 +27,7 @@ const { formatWithOptions, inspect } = require('internal/util/inspect'); +const { debuglog } = require('internal/util/debuglog'); const { ERR_FALSY_VALUE_REJECTION, ERR_INVALID_ARG_TYPE, @@ -52,45 +53,6 @@ const objectToString = uncurryThis(Object.prototype.toString); let internalDeepEqual; -const debugs = {}; -let debugEnvRegex = /^$/; -if (process.env.NODE_DEBUG) { - let debugEnv = process.env.NODE_DEBUG; - debugEnv = debugEnv.replace(/[|\\{}()[\]^$+?.]/g, '\\$&') - .replace(/\*/g, '.*') - .replace(/,/g, '$|^') - .toUpperCase(); - debugEnvRegex = new RegExp(`^${debugEnv}$`, 'i'); -} - -// Emits warning when user sets -// NODE_DEBUG=http or NODE_DEBUG=http2. -function emitWarningIfNeeded(set) { - if ('HTTP' === set || 'HTTP2' === set) { - process.emitWarning('Setting the NODE_DEBUG environment variable ' + - 'to \'' + set.toLowerCase() + '\' can expose sensitive ' + - 'data (such as passwords, tokens and authentication headers) ' + - 'in the resulting log.'); - } -} - -function debuglog(set) { - set = set.toUpperCase(); - if (!debugs[set]) { - if (debugEnvRegex.test(set)) { - const pid = process.pid; - emitWarningIfNeeded(set); - debugs[set] = function debug() { - const msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function debug() {}; - } - } - return debugs[set]; -} - function isBoolean(arg) { return typeof arg === 'boolean'; } diff --git a/node.gyp b/node.gyp index a6e884e15ce6fe..8f4bf844024b64 100644 --- a/node.gyp +++ b/node.gyp @@ -187,6 +187,7 @@ 'lib/internal/url.js', 'lib/internal/util.js', 'lib/internal/util/comparisons.js', + 'lib/internal/util/debuglog.js', 'lib/internal/util/inspect.js', 'lib/internal/util/inspector.js', 'lib/internal/util/types.js', From 070faf0bc14c658de4734a1d2924223fd92a05a8 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Sat, 19 Jan 2019 15:37:38 +0100 Subject: [PATCH 009/164] tty: add hasColors function This adds a small wrapper around the `getColorDepth` function to check if the stream supports at least a specific amount of colors. This is convenient as the other API is not as straight forward and most use cases likely only want to know if a specific amount of colors is supported or not. PR-URL: https://github.com/nodejs/node/pull/26247 Reviewed-By: Anna Henningsen Reviewed-By: Weijia Wang Reviewed-By: James M Snell Reviewed-By: Sakthipriyan Vairamani --- doc/api/tty.md | 30 +++++++++++++++++++ lib/internal/tty.js | 24 ++++++++++++++- lib/tty.js | 7 ++++- ...lor-depth.js => test-tty-color-support.js} | 22 ++++++++++++++ ...r-depth.out => test-tty-color-support.out} | 0 5 files changed, 81 insertions(+), 2 deletions(-) rename test/pseudo-tty/{test-tty-get-color-depth.js => test-tty-color-support.js} (77%) rename test/pseudo-tty/{test-tty-get-color-depth.out => test-tty-color-support.out} (100%) diff --git a/doc/api/tty.md b/doc/api/tty.md index 26761442a50865..12a34b14eb7cc0 100644 --- a/doc/api/tty.md +++ b/doc/api/tty.md @@ -176,6 +176,35 @@ corresponding to this `WriteStream`. The array is of the type `[numColumns, numRows]` where `numColumns` and `numRows` represent the number of columns and rows in the corresponding [TTY](tty.html). +### writeStream.hasColors([count][, env]) + + +* `count` {integer} The number of colors that are requested (minimum 2). + **Default:** 16. +* `env` {Object} An object containing the environment variables to check. This + enables simulating the usage of a specific terminal. **Default:** + `process.env`. +* Returns: {boolean} + +Returns `true` if the `writeStream` supports at least as many colors as provided +in `count`. Minimum support is 2 (black and white). + +This has the same false positives and negatives as described in +[`writeStream.getColorDepth()`][]. + +```js +process.stdout.hasColors(); +// Returns true or false depending on if `stdout` supports at least 16 colors. +process.stdout.hasColors(256); +// Returns true or false depending on if `stdout` supports at least 256 colors. +process.stdout.hasColors({ TMUX: '1' }); +// Returns true. +process.stdout.hasColors(2 ** 24, { TMUX: '1' }); +// Returns false (the environment setting pretends to support 2 ** 8 colors). +``` + ### writeStream.isTTY + +* Returns: {stream.Readable} A Readable Stream containing the V8 heap snapshot + +Generates a snapshot of the current V8 heap and returns a Readable +Stream that may be used to read the JSON serialized representation. +This JSON stream format is intended to be used with tools such as +Chrome DevTools. The JSON schema is undocumented and specific to the +V8 engine, and may change from one version of V8 to the next. + +```js +const stream = v8.getHeapSnapshot(); +stream.pipe(process.stdout); +``` + ## v8.getHeapStatistics() + +* `filename` {string} The file path where the V8 heap snapshot is to be + saved. If not specified, a file name with the pattern + `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be + generated, where `{pid}` will be the PID of the Node.js process, + `{thread_id}` will be `0` when `writeHeapSnapshot()` is called from + the main Node.js thread or the id of a worker thread. +* Returns: {string} The filename where the snapshot was saved. + +Generates a snapshot of the current V8 heap and writes it to a JSON +file. This file is intended to be used with tools such as Chrome +DevTools. The JSON schema is undocumented and specific to the V8 +engine, and may change from one version of V8 to the next. + +A heap snapshot is specific to a single V8 isolate. When using +[Worker Threads][], a heap snapshot generated from the main thread will +not contain any information about the workers, and vice versa. + +```js +const { writeHeapSnapshot } = require('v8'); +const { + Worker, + isMainThread, + parentPort +} = require('worker_threads'); + +if (isMainThread) { + const worker = new Worker(__filename); + + worker.once('message', (filename) => { + console.log(`worker heapdump: ${filename}`); + // Now get a heapdump for the main thread. + console.log(`main thread heapdump: ${writeHeapSnapshot()}`); + }); + + // Tell the worker to create a heapdump. + worker.postMessage('heapdump'); +} else { + parentPort.once('message', (message) => { + if (message === 'heapdump') { + // Generate a heapdump for the worker + // and return the filename to the parent. + parentPort.postMessage(writeHeapSnapshot()); + } + }); +} +``` + ## Serialization API > Stability: 1 - Experimental @@ -417,4 +487,5 @@ A subclass of [`Deserializer`][] corresponding to the format written by [`vm.Script`]: vm.html#vm_constructor_new_vm_script_code_options [HTML structured clone algorithm]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm [V8]: https://developers.google.com/v8/ +[Worker Threads]: worker_threads.html [here]: https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md diff --git a/lib/internal/test/heap.js b/lib/internal/test/heap.js index 52e00b9da5e136..6565e8fbd8ef13 100644 --- a/lib/internal/test/heap.js +++ b/lib/internal/test/heap.js @@ -4,14 +4,17 @@ process.emitWarning( 'These APIs are for internal testing only. Do not use them.', 'internal/test/heap'); -const { createHeapDump, buildEmbedderGraph } = internalBinding('heap_utils'); +const { + createHeapSnapshot, + buildEmbedderGraph +} = internalBinding('heap_utils'); const assert = require('internal/assert'); // This is not suitable for production code. It creates a full V8 heap dump, // parses it as JSON, and then creates complex objects from it, leading // to significantly increased memory usage. -function createJSHeapDump() { - const dump = createHeapDump(); +function createJSHeapSnapshot() { + const dump = createHeapSnapshot(); const meta = dump.snapshot.meta; const nodes = @@ -81,6 +84,6 @@ function readHeapInfo(raw, fields, types, strings) { } module.exports = { - createJSHeapDump, + createJSHeapSnapshot, buildEmbedderGraph }; diff --git a/lib/v8.js b/lib/v8.js index 1cf80adfb78233..eb46cd4cc64592 100644 --- a/lib/v8.js +++ b/lib/v8.js @@ -20,9 +20,65 @@ const { Serializer: _Serializer, Deserializer: _Deserializer } = internalBinding('serdes'); +const assert = require('internal/assert'); const { copy } = internalBinding('buffer'); const { objectToString } = require('internal/util'); const { FastBuffer } = require('internal/buffer'); +const { toPathIfFileURL } = require('internal/url'); +const { validatePath } = require('internal/fs/utils'); +const { toNamespacedPath } = require('path'); +const { + createHeapSnapshotStream, + triggerHeapSnapshot +} = internalBinding('heap_utils'); +const { Readable } = require('stream'); +const { owner_symbol } = require('internal/async_hooks').symbols; +const { + kUpdateTimer, + onStreamRead, +} = require('internal/stream_base_commons'); +const kHandle = Symbol('kHandle'); + + +function writeHeapSnapshot(filename) { + if (filename !== undefined) { + filename = toPathIfFileURL(filename); + validatePath(filename); + filename = toNamespacedPath(filename); + } + return triggerHeapSnapshot(filename); +} + +class HeapSnapshotStream extends Readable { + constructor(handle) { + super({ autoDestroy: true }); + this[kHandle] = handle; + handle[owner_symbol] = this; + handle.onread = onStreamRead; + } + + _read() { + if (this[kHandle]) + this[kHandle].readStart(); + } + + _destroy() { + // Release the references on the handle so that + // it can be garbage collected. + this[kHandle][owner_symbol] = undefined; + this[kHandle] = undefined; + } + + [kUpdateTimer]() { + // Does nothing + } +} + +function getHeapSnapshot() { + const handle = createHeapSnapshotStream(); + assert(handle); + return new HeapSnapshotStream(handle); +} // Calling exposed c++ functions directly throws exception as it expected to be // called with new operator and caused an assert to fire. @@ -210,6 +266,7 @@ function deserialize(buffer) { module.exports = { cachedDataVersionTag, + getHeapSnapshot, getHeapStatistics, getHeapSpaceStatistics, setFlagsFromString, @@ -218,5 +275,6 @@ module.exports = { DefaultSerializer, DefaultDeserializer, deserialize, - serialize + serialize, + writeHeapSnapshot }; diff --git a/src/async_wrap.h b/src/async_wrap.h index 09319c11bbac52..1f1d19201bd61e 100644 --- a/src/async_wrap.h +++ b/src/async_wrap.h @@ -41,6 +41,7 @@ namespace node { V(FSREQPROMISE) \ V(GETADDRINFOREQWRAP) \ V(GETNAMEINFOREQWRAP) \ + V(HEAPSNAPSHOT) \ V(HTTP2SESSION) \ V(HTTP2STREAM) \ V(HTTP2PING) \ diff --git a/src/env.h b/src/env.h index a43ca3034d31b8..9583586aac1163 100644 --- a/src/env.h +++ b/src/env.h @@ -379,6 +379,7 @@ constexpr size_t kFsStatsBufferLength = kFsStatsFieldsNumber * 2; V(script_data_constructor_function, v8::Function) \ V(secure_context_constructor_template, v8::FunctionTemplate) \ V(shutdown_wrap_template, v8::ObjectTemplate) \ + V(streambaseoutputstream_constructor_template, v8::ObjectTemplate) \ V(tcp_constructor_template, v8::FunctionTemplate) \ V(tick_callback_function, v8::Function) \ V(timers_callback_function, v8::Function) \ diff --git a/src/heap_utils.cc b/src/heap_utils.cc index e71a65e600631e..c54f0c41d7b09c 100644 --- a/src/heap_utils.cc +++ b/src/heap_utils.cc @@ -1,4 +1,5 @@ #include "env-inl.h" +#include "stream_base-inl.h" using v8::Array; using v8::Boolean; @@ -6,6 +7,7 @@ using v8::Context; using v8::EmbedderGraph; using v8::EscapableHandleScope; using v8::FunctionCallbackInfo; +using v8::FunctionTemplate; using v8::HandleScope; using v8::HeapSnapshot; using v8::Isolate; @@ -14,6 +16,7 @@ using v8::Local; using v8::MaybeLocal; using v8::Number; using v8::Object; +using v8::ObjectTemplate; using v8::String; using v8::Value; @@ -231,12 +234,146 @@ class BufferOutputStream : public v8::OutputStream { std::unique_ptr buffer_; }; -void CreateHeapDump(const FunctionCallbackInfo& args) { +namespace { +class FileOutputStream : public v8::OutputStream { + public: + explicit FileOutputStream(FILE* stream) : stream_(stream) {} + + int GetChunkSize() override { + return 65536; // big chunks == faster + } + + void EndOfStream() override {} + + WriteResult WriteAsciiChunk(char* data, int size) override { + const size_t len = static_cast(size); + size_t off = 0; + + while (off < len && !feof(stream_) && !ferror(stream_)) + off += fwrite(data + off, 1, len - off, stream_); + + return off == len ? kContinue : kAbort; + } + + private: + FILE* stream_; +}; + +class HeapSnapshotStream : public AsyncWrap, + public StreamBase, + public v8::OutputStream { + public: + HeapSnapshotStream( + Environment* env, + const HeapSnapshot* snapshot, + v8::Local obj) : + AsyncWrap(env, obj, AsyncWrap::PROVIDER_HEAPSNAPSHOT), + StreamBase(env), + snapshot_(snapshot) { + MakeWeak(); + StreamBase::AttachToObject(GetObject()); + } + + ~HeapSnapshotStream() override { + Cleanup(); + } + + int GetChunkSize() override { + return 65536; // big chunks == faster + } + + void EndOfStream() override { + EmitRead(UV_EOF); + Cleanup(); + } + + WriteResult WriteAsciiChunk(char* data, int size) override { + int len = size; + while (len != 0) { + uv_buf_t buf = EmitAlloc(size); + ssize_t avail = len; + if (static_cast(buf.len) < avail) + avail = buf.len; + memcpy(buf.base, data, avail); + data += avail; + len -= avail; + EmitRead(size, buf); + } + return kContinue; + } + + int ReadStart() override { + CHECK_NE(snapshot_, nullptr); + snapshot_->Serialize(this, HeapSnapshot::kJSON); + return 0; + } + + int ReadStop() override { + return 0; + } + + int DoShutdown(ShutdownWrap* req_wrap) override { + UNREACHABLE(); + return 0; + } + + int DoWrite(WriteWrap* w, + uv_buf_t* bufs, + size_t count, + uv_stream_t* send_handle) override { + UNREACHABLE(); + return 0; + } + + bool IsAlive() override { return snapshot_ != nullptr; } + bool IsClosing() override { return snapshot_ == nullptr; } + AsyncWrap* GetAsyncWrap() override { return this; } + + void MemoryInfo(MemoryTracker* tracker) const override { + if (snapshot_ != nullptr) { + tracker->TrackFieldWithSize( + "snapshot", sizeof(*snapshot_), "HeapSnapshot"); + } + } + + SET_MEMORY_INFO_NAME(HeapSnapshotStream) + SET_SELF_SIZE(HeapSnapshotStream) + + private: + void Cleanup() { + if (snapshot_ != nullptr) { + const_cast(snapshot_)->Delete(); + snapshot_ = nullptr; + } + } + + + const HeapSnapshot* snapshot_; +}; + +inline void TakeSnapshot(Isolate* isolate, v8::OutputStream* out) { + const HeapSnapshot* const snapshot = + isolate->GetHeapProfiler()->TakeHeapSnapshot(); + snapshot->Serialize(out, HeapSnapshot::kJSON); + const_cast(snapshot)->Delete(); +} + +inline bool WriteSnapshot(Isolate* isolate, const char* filename) { + FILE* fp = fopen(filename, "w"); + if (fp == nullptr) + return false; + FileOutputStream stream(fp); + TakeSnapshot(isolate, &stream); + fclose(fp); + return true; +} + +} // namespace + +void CreateHeapSnapshot(const FunctionCallbackInfo& args) { Isolate* isolate = args.GetIsolate(); - const HeapSnapshot* snapshot = isolate->GetHeapProfiler()->TakeHeapSnapshot(); BufferOutputStream out; - snapshot->Serialize(&out, HeapSnapshot::kJSON); - const_cast(snapshot)->Delete(); + TakeSnapshot(isolate, &out); Local ret; if (JSON::Parse(isolate->GetCurrentContext(), out.ToString(isolate)).ToLocal(&ret)) { @@ -244,14 +381,73 @@ void CreateHeapDump(const FunctionCallbackInfo& args) { } } +void CreateHeapSnapshotStream(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + HandleScope scope(env->isolate()); + const HeapSnapshot* const snapshot = + env->isolate()->GetHeapProfiler()->TakeHeapSnapshot(); + CHECK_NOT_NULL(snapshot); + Local obj; + if (!env->streambaseoutputstream_constructor_template() + ->NewInstance(env->context()) + .ToLocal(&obj)) { + return; + } + HeapSnapshotStream* out = new HeapSnapshotStream(env, snapshot, obj); + args.GetReturnValue().Set(out->object()); +} + +void TriggerHeapSnapshot(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + Isolate* isolate = args.GetIsolate(); + + Local filename_v = args[0]; + + if (filename_v->IsUndefined()) { + DiagnosticFilename name(env, "Heap", "heapsnapshot"); + if (!WriteSnapshot(isolate, *name)) + return; + if (String::NewFromUtf8(isolate, *name, v8::NewStringType::kNormal) + .ToLocal(&filename_v)) { + args.GetReturnValue().Set(filename_v); + } + return; + } + + BufferValue path(isolate, filename_v); + CHECK_NOT_NULL(*path); + if (!WriteSnapshot(isolate, *path)) + return; + return args.GetReturnValue().Set(filename_v); +} + void Initialize(Local target, Local unused, Local context, void* priv) { Environment* env = Environment::GetCurrent(context); - env->SetMethodNoSideEffect(target, "buildEmbedderGraph", BuildEmbedderGraph); - env->SetMethodNoSideEffect(target, "createHeapDump", CreateHeapDump); + env->SetMethodNoSideEffect(target, + "buildEmbedderGraph", + BuildEmbedderGraph); + env->SetMethodNoSideEffect(target, + "createHeapSnapshot", + CreateHeapSnapshot); + env->SetMethodNoSideEffect(target, + "triggerHeapSnapshot", + TriggerHeapSnapshot); + env->SetMethodNoSideEffect(target, + "createHeapSnapshotStream", + CreateHeapSnapshotStream); + + // Create FunctionTemplate for HeapSnapshotStream + Local os = FunctionTemplate::New(env->isolate()); + os->Inherit(AsyncWrap::GetConstructorTemplate(env)); + Local ost = os->InstanceTemplate(); + ost->SetInternalFieldCount(StreamBase::kStreamBaseField + 1); + os->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "HeapSnapshotStream")); + StreamBase::AddMethods(env, os); + env->set_streambaseoutputstream_constructor_template(ost); } } // namespace heap diff --git a/src/node_internals.h b/src/node_internals.h index 212da7af28107c..cd9b2590dffd91 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -297,6 +297,41 @@ v8::MaybeLocal StartExecution(Environment* env, namespace coverage { bool StartCoverageCollection(Environment* env); } + +#ifdef _WIN32 +typedef SYSTEMTIME TIME_TYPE; +#else // UNIX, OSX +typedef struct tm TIME_TYPE; +#endif + +class DiagnosticFilename { + public: + static void LocalTime(TIME_TYPE* tm_struct); + + DiagnosticFilename(Environment* env, + const char* prefix, + const char* ext, + int seq = -1) : + filename_(MakeFilename(env->thread_id(), prefix, ext, seq)) {} + + DiagnosticFilename(uint64_t thread_id, + const char* prefix, + const char* ext, + int seq = -1) : + filename_(MakeFilename(thread_id, prefix, ext, seq)) {} + + const char* operator*() const { return filename_.c_str(); } + + private: + static std::string MakeFilename( + uint64_t thread_id, + const char* prefix, + const char* ext, + int seq = -1); + + std::string filename_; +}; + } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS diff --git a/src/util.cc b/src/util.cc index d41163500344ca..099911cf25d38a 100644 --- a/src/util.cc +++ b/src/util.cc @@ -27,7 +27,15 @@ #include "string_bytes.h" #include "uv.h" +#ifdef _WIN32 +#include +#else +#include +#include +#endif + #include +#include #include namespace node { @@ -144,4 +152,61 @@ void ThrowErrStringTooLong(Isolate* isolate) { isolate->ThrowException(ERR_STRING_TOO_LONG(isolate)); } +void DiagnosticFilename::LocalTime(TIME_TYPE* tm_struct) { +#ifdef _WIN32 + GetLocalTime(tm_struct); +#else // UNIX, OSX + struct timeval time_val; + gettimeofday(&time_val, nullptr); + localtime_r(&time_val.tv_sec, tm_struct); +#endif +} + +// Defined in node_internals.h +std::string DiagnosticFilename::MakeFilename( + uint64_t thread_id, + const char* prefix, + const char* ext, + int seq) { + std::ostringstream oss; + TIME_TYPE tm_struct; + LocalTime(&tm_struct); + oss << prefix; +#ifdef _WIN32 + oss << "." << std::setfill('0') << std::setw(4) << tm_struct.wYear; + oss << std::setfill('0') << std::setw(2) << tm_struct.wMonth; + oss << std::setfill('0') << std::setw(2) << tm_struct.wDay; + oss << "." << std::setfill('0') << std::setw(2) << tm_struct.wHour; + oss << std::setfill('0') << std::setw(2) << tm_struct.wMinute; + oss << std::setfill('0') << std::setw(2) << tm_struct.wSecond; +#else // UNIX, OSX + oss << "." + << std::setfill('0') + << std::setw(4) + << tm_struct.tm_year + 1900; + oss << std::setfill('0') + << std::setw(2) + << tm_struct.tm_mon + 1; + oss << std::setfill('0') + << std::setw(2) + << tm_struct.tm_mday; + oss << "." + << std::setfill('0') + << std::setw(2) + << tm_struct.tm_hour; + oss << std::setfill('0') + << std::setw(2) + << tm_struct.tm_min; + oss << std::setfill('0') + << std::setw(2) + << tm_struct.tm_sec; +#endif + oss << "." << uv_os_getpid(); + oss << "." << thread_id; + if (seq >= 0) + oss << "." << std::setfill('0') << std::setw(3) << ++seq; + oss << "." << ext; + return oss.str(); +} + } // namespace node diff --git a/test/common/heap.js b/test/common/heap.js index e23670b64c8a2d..8bda1284bd7e57 100644 --- a/test/common/heap.js +++ b/test/common/heap.js @@ -10,7 +10,7 @@ try { console.log('using `test/common/heap.js` requires `--expose-internals`'); throw e; } -const { createJSHeapDump, buildEmbedderGraph } = internalTestHeap; +const { createJSHeapSnapshot, buildEmbedderGraph } = internalTestHeap; function inspectNode(snapshot) { return util.inspect(snapshot, { depth: 4 }); @@ -33,7 +33,7 @@ function isEdge(edge, { node_name, edge_name }) { class State { constructor() { - this.snapshot = createJSHeapDump(); + this.snapshot = createJSHeapSnapshot(); this.embedderGraph = buildEmbedderGraph(); } diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index c20648f1a43918..5f1d6103bd945e 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -10,7 +10,7 @@ const assert = require('assert'); const isMainThread = common.isMainThread; const kCoverageModuleCount = process.env.NODE_V8_COVERAGE ? 1 : 0; -const kMaxModuleCount = (isMainThread ? 65 : 87) + kCoverageModuleCount; +const kMaxModuleCount = (isMainThread ? 65 : 88) + kCoverageModuleCount; assert(list.length <= kMaxModuleCount, `Total length: ${list.length}\n` + list.join('\n') diff --git a/test/sequential/test-async-wrap-getasyncid.js b/test/sequential/test-async-wrap-getasyncid.js index 65f6f8e703131b..0818dec2db9c3f 100644 --- a/test/sequential/test-async-wrap-getasyncid.js +++ b/test/sequential/test-async-wrap-getasyncid.js @@ -5,6 +5,7 @@ const common = require('../common'); const { internalBinding } = require('internal/test/binding'); const assert = require('assert'); const fs = require('fs'); +const v8 = require('v8'); const fsPromises = fs.promises; const net = require('net'); const providers = Object.assign({}, internalBinding('async_wrap').Providers); @@ -294,3 +295,8 @@ if (process.features.inspector && common.isMainThread) { testInitialized(handle, 'Connection'); handle.disconnect(); } + +// PROVIDER_HEAPDUMP +{ + v8.getHeapSnapshot().destroy(); +} diff --git a/test/sequential/test-heapdump.js b/test/sequential/test-heapdump.js new file mode 100644 index 00000000000000..a65b33c3138a62 --- /dev/null +++ b/test/sequential/test-heapdump.js @@ -0,0 +1,46 @@ +'use strict'; + +const common = require('../common'); + +if (!common.isMainThread) + common.skip('process.chdir is not available in Workers'); + +const { writeHeapSnapshot, getHeapSnapshot } = require('v8'); +const assert = require('assert'); +const fs = require('fs'); +const tmpdir = require('../common/tmpdir'); + +tmpdir.refresh(); +process.chdir(tmpdir.path); + +{ + writeHeapSnapshot('my.heapdump'); + fs.accessSync('my.heapdump'); +} + +{ + const heapdump = writeHeapSnapshot(); + assert.strictEqual(typeof heapdump, 'string'); + fs.accessSync(heapdump); +} + +[1, true, {}, [], null, Infinity, NaN].forEach((i) => { + common.expectsError(() => writeHeapSnapshot(i), { + code: 'ERR_INVALID_ARG_TYPE', + type: TypeError, + message: 'The "path" argument must be one of type string, Buffer, or URL.' + + ` Received type ${typeof i}` + }); +}); + +{ + let data = ''; + const snapshot = getHeapSnapshot(); + snapshot.setEncoding('utf-8'); + snapshot.on('data', common.mustCallAtLeast((chunk) => { + data += chunk.toString(); + })); + snapshot.on('end', common.mustCall(() => { + JSON.parse(data); + })); +} diff --git a/tools/license-builder.sh b/tools/license-builder.sh index 55f630285eaceb..e0f039b45f8c26 100755 --- a/tools/license-builder.sh +++ b/tools/license-builder.sh @@ -102,4 +102,7 @@ addlicense "brotli" "deps/brotli" "$(cat ${rootdir}/deps/brotli/LICENSE)" addlicense "HdrHistogram" "deps/histogram" "$(cat ${rootdir}/deps/histogram/LICENSE.txt)" +addlicense "node-heapdump" "src/heap_utils.cc" \ + "$(curl -sL https://raw.githubusercontent.com/bnoordhuis/node-heapdump/0ca52441e46241ffbea56a389e2856ec01c48c97/LICENSE)" + mv $tmplicense $licensefile From 892282ddb368ef3a2b597bfd3a53803a7aaf5294 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Fri, 8 Mar 2019 12:17:34 -0500 Subject: [PATCH 014/164] test: whitelist the expected modules in test-bootstrap-modules.js Be explicit on the modules that are expected to be loaded and add an appropriate assertion failure message to help debug when the list changes. Fixes: https://github.com/nodejs/node/issues/23884 PR-URL: https://github.com/nodejs/node/pull/26531 Reviewed-By: Refael Ackermann Reviewed-By: Sam Roberts --- test/parallel/test-bootstrap-modules.js | 130 ++++++++++++++++++++++-- 1 file changed, 123 insertions(+), 7 deletions(-) diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index 5f1d6103bd945e..b3ccc14be8c53f 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -3,15 +3,131 @@ // This list must be computed before we require any modules to // to eliminate the noise. -const list = process.moduleLoadList.slice(); +const actualModules = new Set(process.moduleLoadList.slice()); const common = require('../common'); const assert = require('assert'); -const isMainThread = common.isMainThread; -const kCoverageModuleCount = process.env.NODE_V8_COVERAGE ? 1 : 0; -const kMaxModuleCount = (isMainThread ? 65 : 88) + kCoverageModuleCount; +const expectedModules = new Set([ + 'Internal Binding async_wrap', + 'Internal Binding buffer', + 'Internal Binding config', + 'Internal Binding constants', + 'Internal Binding contextify', + 'Internal Binding credentials', + 'Internal Binding fs', + 'Internal Binding inspector', + 'Internal Binding messaging', + 'Internal Binding module_wrap', + 'Internal Binding native_module', + 'Internal Binding options', + 'Internal Binding process_methods', + 'Internal Binding task_queue', + 'Internal Binding timers', + 'Internal Binding trace_events', + 'Internal Binding types', + 'Internal Binding url', + 'Internal Binding util', + 'NativeModule buffer', + 'NativeModule events', + 'NativeModule fs', + 'NativeModule internal/assert', + 'NativeModule internal/async_hooks', + 'NativeModule internal/bootstrap/pre_execution', + 'NativeModule internal/buffer', + 'NativeModule internal/console/constructor', + 'NativeModule internal/console/global', + 'NativeModule internal/constants', + 'NativeModule internal/domexception', + 'NativeModule internal/encoding', + 'NativeModule internal/errors', + 'NativeModule internal/fixed_queue', + 'NativeModule internal/fs/utils', + 'NativeModule internal/idna', + 'NativeModule internal/linkedlist', + 'NativeModule internal/modules/cjs/helpers', + 'NativeModule internal/modules/cjs/loader', + 'NativeModule internal/options', + 'NativeModule internal/priority_queue', + 'NativeModule internal/process/execution', + 'NativeModule internal/process/next_tick', + 'NativeModule internal/process/per_thread', + 'NativeModule internal/process/promises', + 'NativeModule internal/process/warning', + 'NativeModule internal/querystring', + 'NativeModule internal/timers', + 'NativeModule internal/url', + 'NativeModule internal/util', + 'NativeModule internal/util/debuglog', + 'NativeModule internal/util/inspect', + 'NativeModule internal/util/types', + 'NativeModule internal/validators', + 'NativeModule path', + 'NativeModule timers', + 'NativeModule url', + 'NativeModule util', + 'NativeModule vm', +]); -assert(list.length <= kMaxModuleCount, - `Total length: ${list.length}\n` + list.join('\n') -); +if (common.isMainThread) { + expectedModules.add('NativeModule internal/process/main_thread_only'); + expectedModules.add('NativeModule internal/process/stdio'); +} else { + expectedModules.add('Internal Binding heap_utils'); + expectedModules.add('Internal Binding serdes'); + expectedModules.add('Internal Binding stream_wrap'); + expectedModules.add('Internal Binding symbols'); + expectedModules.add('Internal Binding uv'); + expectedModules.add('Internal Binding v8'); + expectedModules.add('Internal Binding worker'); + expectedModules.add('NativeModule _stream_duplex'); + expectedModules.add('NativeModule _stream_passthrough'); + expectedModules.add('NativeModule _stream_readable'); + expectedModules.add('NativeModule _stream_transform'); + expectedModules.add('NativeModule _stream_writable'); + expectedModules.add('NativeModule internal/error-serdes'); + expectedModules.add('NativeModule internal/process/worker_thread_only'); + expectedModules.add('NativeModule internal/stream_base_commons'); + expectedModules.add('NativeModule internal/streams/buffer_list'); + expectedModules.add('NativeModule internal/streams/destroy'); + expectedModules.add('NativeModule internal/streams/end-of-stream'); + expectedModules.add('NativeModule internal/streams/legacy'); + expectedModules.add('NativeModule internal/streams/pipeline'); + expectedModules.add('NativeModule internal/streams/state'); + expectedModules.add('NativeModule internal/worker'); + expectedModules.add('NativeModule internal/worker/io'); + expectedModules.add('NativeModule module'); + expectedModules.add('NativeModule stream'); + expectedModules.add('NativeModule v8'); + expectedModules.add('NativeModule worker_threads'); +} + +if (common.hasIntl) { + expectedModules.add('Internal Binding icu'); +} else { + expectedModules.add('NativeModule punycode'); +} + +if (process.features.inspector) { + expectedModules.add('NativeModule internal/inspector_async_hook'); + expectedModules.add('NativeModule internal/util/inspector'); +} + +if (process.env.NODE_V8_COVERAGE) { + expectedModules.add('NativeModule internal/profiler'); +} + +const difference = (setA, setB) => { + return new Set([...setA].filter((x) => !setB.has(x))); +}; +const missingModules = difference(expectedModules, actualModules); +const extraModules = difference(actualModules, expectedModules); +const printSet = (s) => { return `${[...s].sort().join(',\n ')}\n`; }; + +assert.deepStrictEqual(actualModules, expectedModules, + (missingModules.size > 0 ? + 'These modules were not loaded:\n ' + + printSet(missingModules) : '') + + (extraModules.size > 0 ? + 'These modules were unexpectedly loaded:\n ' + + printSet(extraModules) : '')); From 058cf43a3c95d9def247b12672d19db86aa724a5 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 11 Mar 2019 14:12:12 -0700 Subject: [PATCH 015/164] doc: edit "Technical How-To" section of guide Edit the "Technical How-To" section of the Collaborator Guide. Keep wording simple and direct. PR-URL: https://github.com/nodejs/node/pull/26601 Reviewed-By: Richard Lau Reviewed-By: Beth Griggs --- COLLABORATOR_GUIDE.md | 71 ++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 38 deletions(-) diff --git a/COLLABORATOR_GUIDE.md b/COLLABORATOR_GUIDE.md index 48f6cfee29edf3..dd72b48582d849 100644 --- a/COLLABORATOR_GUIDE.md +++ b/COLLABORATOR_GUIDE.md @@ -464,18 +464,19 @@ Apply external patches: $ curl -L https://github.com/nodejs/node/pull/xxx.patch | git am --whitespace=fix ``` -If the merge fails even though recent CI runs were successful, then a 3-way -merge may be required. In this case try: +If the merge fails even though recent CI runs were successful, try a 3-way +merge: ```text $ git am --abort $ curl -L https://github.com/nodejs/node/pull/xxx.patch | git am -3 --whitespace=fix ``` -If the 3-way merge succeeds you can proceed, but make sure to check the changes -against the original PR carefully and build/test on at least one platform -before landing. If the 3-way merge fails, then it is most likely that a -conflicting PR has landed since the CI run and you will have to ask the author -to rebase. + +If the 3-way merge succeeds, check the results against the original pull +request. Build and test on at least one platform before landing. + +If the 3-way merge fails, then it is most likely that a conflicting pull request +has landed since the CI run. You will have to ask the author to rebase. Check and re-review the changes: @@ -541,52 +542,46 @@ reword 51759dc crypto: feature B fixup 7d6f433 test for feature B ``` -Save the file and close the editor. You'll be asked to enter a new -commit message for that commit. This is a good moment to fix incorrect -commit logs, ensure that they are properly formatted, and add -`Reviewed-By` lines. +Save the file and close the editor. When prompted, enter a new commit message +for that commit. This is an opportunity to fix commit messages. * The commit message text must conform to the [commit message guidelines][]. -* Modify the original commit message to include additional metadata regarding - the change process. (The [`git node metadata`][git-node-metadata] command - can generate the metadata for you.) - - * Required: A `PR-URL:` line that references the *full* GitHub URL of the - original pull request being merged so it's easy to trace a commit back to - the conversation that led up to that change. - * Optional: A `Fixes: X` line, where _X_ either includes the *full* GitHub URL - for an issue, and/or the hash and commit message if the commit fixes - a bug in a previous commit. Multiple `Fixes:` lines may be added if - appropriate. +* Change the original commit message to include metadata. (The + [`git node metadata`][git-node-metadata] command can generate the metadata + for you.) + + * Required: A `PR-URL:` line that references the full GitHub URL of the pull + request. This makes it easy to trace a commit back to the conversation that + led up to that change. + * Optional: A `Fixes: X` line, where _X_ is the full GitHub URL for an + issue. A commit message may include more than one `Fixes:` lines. * Optional: One or more `Refs:` lines referencing a URL for any relevant background. - * Required: A `Reviewed-By: Name ` line for yourself and any - other Collaborators who have reviewed the change. + * Required: A `Reviewed-By: Name ` line for each Collaborator who + reviewed the change. * Useful for @mentions / contact list if something goes wrong in the PR. * Protects against the assumption that GitHub will be around forever. -Run tests (`make -j4 test` or `vcbuild test`). Even though there was a -successful continuous integration run, other changes may have landed on master -since then, so running the tests one last time locally is a good practice. +Other changes may have landed on master since the successful CI run. As a +precaution, run tests (`make -j4 test` or `vcbuild test`). -Validate that the commit message is properly formatted using +Confirm that the commit message format is correct using [core-validate-commit](https://github.com/evanlucas/core-validate-commit). ```text $ git rev-list upstream/master...HEAD | xargs core-validate-commit ``` -Optional: When landing your own commits, force push the amended commit to the -branch you used to open the pull request. If your branch is called `bugfix`, -then the command would be `git push --force-with-lease origin master:bugfix`. -Don't manually close the PR, GitHub will close it automatically later after you -push it upstream, and will mark it with the purple merged status rather than the -red closed status. If you close the PR before GitHub adjusts its status, it will -show up as a 0 commit PR and the changed file history will be empty. Also if you -push upstream before you push to your branch, GitHub will close the issue with -red status so the order of operations is important. +Optional: For your own commits, force push the amended commit to the pull +request branch. If your branch name is `bugfix`, then: `git push +--force-with-lease origin master:bugfix`. Don't close the PR. It will close +after you push it upstream. It will have the purple merged status rather than +the red closed status. If you close the PR before GitHub adjusts its status, it +will show up as a 0 commit PR with no changed files. The order of operations is +important. If you push upstream before you push to your branch, GitHub will +close the issue with the red closed status. Time to push it: @@ -597,7 +592,7 @@ $ git push upstream master Close the pull request with a "Landed in ``" comment. If your pull request shows the purple merged status then you should still add the "Landed in .." comment if you added -multiple commits. +more than one commit. ### Troubleshooting From 3b471db14ad45f33af07bbf7ac08b4fc990c317f Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Wed, 13 Mar 2019 23:01:34 -0700 Subject: [PATCH 016/164] doc: add Gireesh to TSC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TSC voted in Gireesh today. Add him to the TSC list in the README. Closes: https://github.com/nodejs/node/issues/26186 PR-URL: https://github.com/nodejs/node/pull/26657 Fixes: https://github.com/nodejs/node/issues/26186 Reviewed-By: Richard Lau Reviewed-By: Michaël Zasso Reviewed-By: Beth Griggs Reviewed-By: Ruben Bridgewater Reviewed-By: Joyee Cheung Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Gireesh Punathil Reviewed-By: Michael Dawson Reviewed-By: Vse Mozhet Byt --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 91baaad51543fc..8b40bd516fcd78 100644 --- a/README.md +++ b/README.md @@ -184,6 +184,8 @@ For information about the governance of the Node.js project, see **Jeremiah Senkpiel** <fishrock123@rocketmail.com> * [gabrielschulhof](https://github.com/gabrielschulhof) - **Gabriel Schulhof** <gabriel.schulhof@intel.com> +* [gireeshpunathil](https://github.com/gireeshpunathil) - +**Gireesh Punathil** <gpunathi@in.ibm.com> (he/him) * [joyeecheung](https://github.com/joyeecheung) - **Joyee Cheung** <joyeec9h3@gmail.com> (she/her) * [mcollina](https://github.com/mcollina) - From 1b4553401c396b0963b656b5107c3edcae8ecdab Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Tue, 12 Mar 2019 11:09:48 -0700 Subject: [PATCH 017/164] report: remove unnecessary return in setters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Barring shenanigans like Object.getOwnPropertyDescriptor(), return values from a setter function will always be inaccessible. Remove the `return` statements as they can be misleading, suggesting that the return value is accessible and perhaps used somewhere. PR-URL: https://github.com/nodejs/node/pull/26614 Reviewed-By: Richard Lau Reviewed-By: Colin Ihrig Reviewed-By: Beth Griggs Reviewed-By: Luigi Pinca Reviewed-By: Ruben Bridgewater Reviewed-By: Michael Dawson Reviewed-By: Tobias Nießen Reviewed-By: James M Snell --- lib/internal/process/report.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/internal/process/report.js b/lib/internal/process/report.js index ff4e72f54c9978..19820efa93ba02 100644 --- a/lib/internal/process/report.js +++ b/lib/internal/process/report.js @@ -34,14 +34,14 @@ const report = { }, set directory(dir) { validateString(dir, 'directory'); - return nr.setDirectory(dir); + nr.setDirectory(dir); }, get filename() { return nr.getFilename(); }, set filename(name) { validateString(name, 'filename'); - return nr.setFilename(name); + nr.setFilename(name); }, get signal() { return nr.getSignal(); @@ -51,7 +51,7 @@ const report = { convertToValidSignal(sig); // Validate that the signal is recognized. removeSignalHandler(); addSignalHandler(sig); - return nr.setSignal(sig); + nr.setSignal(sig); }, get reportOnFatalError() { return nr.shouldReportOnFatalError(); @@ -60,7 +60,7 @@ const report = { if (typeof trigger !== 'boolean') throw new ERR_INVALID_ARG_TYPE('trigger', 'boolean', trigger); - return nr.setReportOnFatalError(trigger); + nr.setReportOnFatalError(trigger); }, get reportOnSignal() { return nr.shouldReportOnSignal(); @@ -80,7 +80,7 @@ const report = { if (typeof trigger !== 'boolean') throw new ERR_INVALID_ARG_TYPE('trigger', 'boolean', trigger); - return nr.setReportOnUncaughtException(trigger); + nr.setReportOnUncaughtException(trigger); } }; From 24e96b24cfe5b0d48577ec4537c152f49b5943b4 Mon Sep 17 00:00:00 2001 From: oyyd Date: Wed, 13 Mar 2019 21:10:54 +0800 Subject: [PATCH 018/164] net: some scattered cleanup This commit cleans up net module, including: 1. remove assigning `handle.readable` and `handle.writable` 2. documents `NODE_PENDING_PIPE_INSTANCES` enviroment variable 3. use constants for '0.0.0.0' and '::'. PR-URL: https://github.com/nodejs/node/pull/24128 Reviewed-By: Anna Henningsen Reviewed-By: Luigi Pinca Reviewed-By: Ruben Bridgewater --- doc/api/cli.md | 5 +++++ lib/internal/main/print_help.js | 2 ++ lib/net.js | 19 ++++++++++--------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/doc/api/cli.md b/doc/api/cli.md index 56d2d2e89d4992..59554b1c679327 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -752,6 +752,11 @@ unless either the `--pending-deprecation` command line flag, or the are used to provide a kind of selective "early warning" mechanism that developers may leverage to detect deprecated API usage. +### `NODE_PENDING_PIPE_INSTANCES=instances` + +Set the number of pending pipe instance handles when the pipe server is waiting +for connections. This setting applies to Windows only. + ### `NODE_PRESERVE_SYMLINKS=1` -Node.js uses an internal `KeyObject` class which should not be accessed -directly. Instead, factory functions exist to create instances of this class -in a secure manner, see [`crypto.createSecretKey()`][], -[`crypto.createPublicKey()`][] and [`crypto.createPrivateKey()`][]. A -`KeyObject` can represent a symmetric or asymmetric key, and each kind of key -exposes different functions. +Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key, +and each kind of key exposes different functions. The +[`crypto.createSecretKey()`][], [`crypto.createPublicKey()`][] and +[`crypto.createPrivateKey()`][] methods are used to create `KeyObject` +instances. `KeyObject` objects are not to be created directly using the `new` +keyword. Most applications should consider using the new `KeyObject` API instead of passing keys as strings or `Buffer`s due to improved security features. diff --git a/lib/crypto.js b/lib/crypto.js index 0c956ecd107b0a..626073ed5e3eb5 100644 --- a/lib/crypto.js +++ b/lib/crypto.js @@ -60,7 +60,8 @@ const { const { createSecretKey, createPublicKey, - createPrivateKey + createPrivateKey, + KeyObject, } = require('internal/crypto/keys'); const { DiffieHellman, @@ -192,6 +193,7 @@ module.exports = exports = { ECDH, Hash, Hmac, + KeyObject, Sign, Verify }; diff --git a/lib/internal/crypto/keys.js b/lib/internal/crypto/keys.js index ecd747d947516f..a7a94b222d1d3d 100644 --- a/lib/internal/crypto/keys.js +++ b/lib/internal/crypto/keys.js @@ -318,6 +318,7 @@ module.exports = { createSecretKey, createPublicKey, createPrivateKey, + KeyObject, // These are designed for internal use only and should not be exposed. parsePublicKeyEncoding, From 1f0a2835f4f3e39969876208d0f462ad19b5ed9f Mon Sep 17 00:00:00 2001 From: Thomas Hunter II Date: Fri, 15 Mar 2019 15:01:30 -0700 Subject: [PATCH 032/164] doc: note about DNS ANY queries / RFC 8482 PR-URL: https://github.com/nodejs/node/pull/26695 Reviewed-By: Gus Caplan Reviewed-By: Rich Trott Reviewed-By: Colin Ihrig Reviewed-By: Bryan English Reviewed-By: Ruben Bridgewater --- doc/api/dns.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/api/dns.md b/doc/api/dns.md index ca4ca4bad529a6..ecbd85160eb05b 100644 --- a/doc/api/dns.md +++ b/doc/api/dns.md @@ -367,6 +367,10 @@ Here is an example of the `ret` object passed to the callback: minttl: 60 } ] ``` +DNS server operators may choose not to respond to `ANY` +queries. It may be better to call individual methods like [`dns.resolve4()`][], +[`dns.resolveMx()`][], and so on. For more details, see [RFC 8482][]. + ## dns.resolveCname(hostname, callback) -* `servers` {string[]} array of [rfc5952][] formatted addresses +* `servers` {string[]} array of [RFC 5952][] formatted addresses Sets the IP address and port of servers to be used when performing DNS -resolution. The `servers` argument is an array of [rfc5952][] formatted +resolution. The `servers` argument is an array of [RFC 5952][] formatted addresses. If the port is the IANA default DNS port (53) it can be omitted. ```js @@ -647,7 +647,7 @@ added: v10.6.0 * Returns: {string[]} -Returns an array of IP address strings, formatted according to [rfc5952][], +Returns an array of IP address strings, formatted according to [RFC 5952][], that are currently configured for DNS resolution. A string will include a port section if a custom port is used. @@ -1008,10 +1008,10 @@ is one of the [DNS error codes](#dns_error_codes). -* `servers` {string[]} array of [rfc5952][] formatted addresses +* `servers` {string[]} array of [RFC 5952][] formatted addresses Sets the IP address and port of servers to be used when performing DNS -resolution. The `servers` argument is an array of [rfc5952][] formatted +resolution. The `servers` argument is an array of [RFC 5952][] formatted addresses. If the port is the IANA default DNS port (53) it can be omitted. ```js @@ -1147,5 +1147,5 @@ uses. For instance, _they do not use the configuration from `/etc/hosts`_. [DNS error codes]: #dns_error_codes [Implementation considerations section]: #dns_implementation_considerations [RFC 8482]: https://tools.ietf.org/html/rfc8482 -[rfc5952]: https://tools.ietf.org/html/rfc5952#section-6 +[RFC 5952]: https://tools.ietf.org/html/rfc5952#section-6 [supported `getaddrinfo` flags]: #dns_supported_getaddrinfo_flags diff --git a/doc/api/http.md b/doc/api/http.md index ebc00fdf3a832b..4dac8135f3ffb3 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -2082,7 +2082,7 @@ There are a few special headers that should be noted. * Sending an 'Expect' header will immediately send the request headers. Usually, when sending 'Expect: 100-continue', both a timeout and a listener - for the `'continue'` event should be set. See RFC2616 Section 8.2.3 for more + for the `'continue'` event should be set. See RFC 2616 Section 8.2.3 for more information. * Sending an Authorization header will override using the `auth` option diff --git a/doc/api/http2.md b/doc/api/http2.md index 2b4303ab0dccf7..0f28124881f4a3 100644 --- a/doc/api/http2.md +++ b/doc/api/http2.md @@ -3223,7 +3223,7 @@ added: v8.4.0 * {string} -Status message is not supported by HTTP/2 (RFC7540 8.1.2.4). It returns +Status message is not supported by HTTP/2 (RFC 7540 8.1.2.4). It returns an empty string. #### response.stream From 1385b290ef6db00f318537faf3dea85d77626931 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sun, 17 Mar 2019 21:33:06 -0700 Subject: [PATCH 040/164] tools: update lint-md.js to lint rfc name format Update lint-md.js to lint for "RFC1234" and similar variants that should be written as "RFC 1234". PR-URL: https://github.com/nodejs/node/pull/26727 Reviewed-By: Richard Lau Reviewed-By: Vse Mozhet Byt --- tools/lint-md.js | 2 +- tools/node-lint-md-cli-rollup/package-lock.json | 14 +++++++------- tools/node-lint-md-cli-rollup/package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/lint-md.js b/tools/lint-md.js index f42939c172a9aa..b8feabc18697b9 100644 --- a/tools/lint-md.js +++ b/tools/lint-md.js @@ -1 +1 @@ -module.exports=function(e,r){"use strict";var t={};function __webpack_require__(r){if(t[r]){return t[r].exports}var i=t[r]={i:r,l:false,exports:{}};e[r].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}function startup(){return __webpack_require__(21)}r(__webpack_require__);return startup()}([,,,,function(e){"use strict";e.exports=tableCell;function tableCell(e){return this.all(e).join("")}},,,function(e,r,t){var i=t(887);var n=t(589).join;var a=t(531);var u="/etc";var s=process.platform==="win32";var o=s?process.env.USERPROFILE:process.env.HOME;e.exports=function(e,r,f,l){if("string"!==typeof e)throw new Error("rc(name): name *must* be string");if(!f)f=t(20)(process.argv.slice(2));r=("string"===typeof r?i.json(r):r)||{};l=l||i.parse;var c=i.env(e+"_");var h=[r];var p=[];function addConfigFile(e){if(p.indexOf(e)>=0)return;var r=i.file(e);if(r){h.push(l(r));p.push(e)}}if(!s)[n(u,e,"config"),n(u,e+"rc")].forEach(addConfigFile);if(o)[n(o,".config",e,"config"),n(o,".config",e),n(o,"."+e,"config"),n(o,"."+e+"rc")].forEach(addConfigFile);addConfigFile(i.find("."+e+"rc"));if(c.config)addConfigFile(c.config);if(f.config)addConfigFile(f.config);return a.apply(null,h.concat([c,f,p.length?{configs:p,config:p[p.length-1]}:undefined]))}},function(e){"use strict";if(!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0){e.exports={nextTick:nextTick}}else{e.exports=process}function nextTick(e,r,t,i){if(typeof e!=="function"){throw new TypeError('"callback" argument must be a function')}var n=arguments.length;var a,u;switch(n){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function afterTickOne(){e.call(null,r)});case 3:return process.nextTick(function afterTickTwo(){e.call(null,r,t)});case 4:return process.nextTick(function afterTickThree(){e.call(null,r,t,i)});default:a=new Array(n-1);u=0;while(u{if(typeof r==="string"){t=r;r=null}try{try{return JSON.parse(e,r)}catch(t){n(e,r);throw t}}catch(e){e.message=e.message.replace(/\n/g,"");const r=new a(e);if(t){r.fileName=t}throw r}})},,,,,,function(e){e.exports=function(e,r){if(!r)r={};var t={bools:{},strings:{},unknownFn:null};if(typeof r["unknown"]==="function"){t.unknownFn=r["unknown"]}if(typeof r["boolean"]==="boolean"&&r["boolean"]){t.allBools=true}else{[].concat(r["boolean"]).filter(Boolean).forEach(function(e){t.bools[e]=true})}var i={};Object.keys(r.alias||{}).forEach(function(e){i[e]=[].concat(r.alias[e]);i[e].forEach(function(r){i[r]=[e].concat(i[e].filter(function(e){return r!==e}))})});[].concat(r.string).filter(Boolean).forEach(function(e){t.strings[e]=true;if(i[e]){t.strings[i[e]]=true}});var n=r["default"]||{};var a={_:[]};Object.keys(t.bools).forEach(function(e){setArg(e,n[e]===undefined?false:n[e])});var u=[];if(e.indexOf("--")!==-1){u=e.slice(e.indexOf("--")+1);e=e.slice(0,e.indexOf("--"))}function argDefined(e,r){return t.allBools&&/^--[^=]+$/.test(r)||t.strings[e]||t.bools[e]||i[e]}function setArg(e,r,n){if(n&&t.unknownFn&&!argDefined(e,n)){if(t.unknownFn(n)===false)return}var u=!t.strings[e]&&isNumber(r)?Number(r):r;setKey(a,e.split("."),u);(i[e]||[]).forEach(function(e){setKey(a,e.split("."),u)})}function setKey(e,r,i){var n=e;r.slice(0,-1).forEach(function(e){if(n[e]===undefined)n[e]={};n=n[e]});var a=r[r.length-1];if(n[a]===undefined||t.bools[a]||typeof n[a]==="boolean"){n[a]=i}else if(Array.isArray(n[a])){n[a].push(i)}else{n[a]=[n[a],i]}}function aliasIsBoolean(e){return i[e].some(function(e){return t.bools[e]})}for(var s=0;s{if(e)console.error(e);process.exit(r)})},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:definition-spacing",definitionSpacing);var s=/^\s*\[((?:\\[\s\S]|[^[\]])+)]/;var o="Do not use consecutive white-space in definition labels";function definitionSpacing(e,r){var t=String(r);n(e,["definition","footnoteDefinition"],validate);function validate(e){var i=a.start(e).offset;var n=a.end(e).offset;if(!u(e)&&/[ \t\n]{2,}/.test(t.slice(i,n).match(s)[1])){r.message(o,e)}}}},function(e,r,t){"use strict";function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError("Cannot call a class as a function")}}var i=t(757).Buffer;var n=t(64);function copyBuffer(e,r,t){e.copy(r,t)}e.exports=function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0}BufferList.prototype.push=function push(e){var r={data:e,next:null};if(this.length>0)this.tail.next=r;else this.head=r;this.tail=r;++this.length};BufferList.prototype.unshift=function unshift(e){var r={data:e,next:this.head};if(this.length===0)this.tail=r;this.head=r;++this.length};BufferList.prototype.shift=function shift(){if(this.length===0)return;var e=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return e};BufferList.prototype.clear=function clear(){this.head=this.tail=null;this.length=0};BufferList.prototype.join=function join(e){if(this.length===0)return"";var r=this.head;var t=""+r.data;while(r=r.next){t+=e+r.data}return t};BufferList.prototype.concat=function concat(e){if(this.length===0)return i.alloc(0);if(this.length===1)return this.head.data;var r=i.allocUnsafe(e>>>0);var t=this.head;var n=0;while(t){copyBuffer(t.data,r,n);n+=t.data.length;t=t.next}return r};return BufferList}();if(n&&n.inspect&&n.inspect.custom){e.exports.prototype[n.inspect.custom]=function(){var e=n.inspect({length:this.length});return this.constructor.name+" "+e}}},,,,,,,,,function(e){"use strict";e.exports=emphasis;var r="_";var t="*";function emphasis(e){var i=this.options.emphasis;var n=this.all(e).join("");if(this.options.pedantic&&i===r&&n.indexOf(i)!==-1){i=t}return i+n+i}},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(97);e.exports=i("remark-lint:first-heading-level",firstHeadingLevel);var u=/i){i=t}}else{t=1}n=a+1;a=e.indexOf(r,n)}return i}},,,function(e,r,t){"use strict";var i=t(400);var n=new RegExp("^([0-9][0-9][0-9][0-9])"+"-([0-9][0-9])"+"-([0-9][0-9])$");var a=new RegExp("^([0-9][0-9][0-9][0-9])"+"-([0-9][0-9]?)"+"-([0-9][0-9]?)"+"(?:[Tt]|[ \\t]+)"+"([0-9][0-9]?)"+":([0-9][0-9])"+":([0-9][0-9])"+"(?:\\.([0-9]*))?"+"(?:[ \\t]*(Z|([-+])([0-9][0-9]?)"+"(?::([0-9][0-9]))?))?$");function resolveYamlTimestamp(e){if(e===null)return false;if(n.exec(e)!==null)return true;if(a.exec(e)!==null)return true;return false}function constructYamlTimestamp(e){var r,t,i,u,s,o,f,l=0,c=null,h,p,v;r=n.exec(e);if(r===null)r=a.exec(e);if(r===null)throw new Error("Date resolve error");t=+r[1];i=+r[2]-1;u=+r[3];if(!r[4]){return new Date(Date.UTC(t,i,u))}s=+r[4];o=+r[5];f=+r[6];if(r[7]){l=r[7].slice(0,3);while(l.length<3){l+="0"}l=+l}if(r[9]){h=+r[10];p=+(r[11]||0);c=(h*60+p)*6e4;if(r[9]==="-")c=-c}v=new Date(Date.UTC(t,i,u,s,o,f,l));if(c)v.setTime(v.getTime()-c);return v}function representYamlTimestamp(e){return e.toISOString()}e.exports=new i("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp})},function(e,r,t){e.exports=minimatch;minimatch.Minimatch=Minimatch;var i={sep:"/"};try{i=t(589)}catch(e){}var n=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var a=t(918);var u={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var s="[^/]";var o=s+"*?";var f="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var l="(?:(?!(?:\\/|^)\\.).)*?";var c=charSet("().*{}+?[]^$\\!");function charSet(e){return e.split("").reduce(function(e,r){e[r]=true;return e},{})}var h=/\/+/;minimatch.filter=filter;function filter(e,r){r=r||{};return function(t,i,n){return minimatch(t,e,r)}}function ext(e,r){e=e||{};r=r||{};var t={};Object.keys(r).forEach(function(e){t[e]=r[e]});Object.keys(e).forEach(function(r){t[r]=e[r]});return t}minimatch.defaults=function(e){if(!e||!Object.keys(e).length)return minimatch;var r=minimatch;var t=function minimatch(t,i,n){return r.minimatch(t,i,ext(e,n))};t.Minimatch=function Minimatch(t,i){return new r.Minimatch(t,ext(e,i))};return t};Minimatch.defaults=function(e){if(!e||!Object.keys(e).length)return Minimatch;return minimatch.defaults(e).Minimatch};function minimatch(e,r,t){if(typeof r!=="string"){throw new TypeError("glob pattern string required")}if(!t)t={};if(!t.nocomment&&r.charAt(0)==="#"){return false}if(r.trim()==="")return e==="";return new Minimatch(r,t).match(e)}function Minimatch(e,r){if(!(this instanceof Minimatch)){return new Minimatch(e,r)}if(typeof e!=="string"){throw new TypeError("glob pattern string required")}if(!r)r={};e=e.trim();if(i.sep!=="/"){e=e.split(i.sep).join("/")}this.options=r;this.set=[];this.pattern=e;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){if(this._made)return;var e=this.pattern;var r=this.options;if(!r.nocomment&&e.charAt(0)==="#"){this.comment=true;return}if(!e){this.empty=true;return}this.parseNegate();var t=this.globSet=this.braceExpand();if(r.debug)this.debug=console.error;this.debug(this.pattern,t);t=this.globParts=t.map(function(e){return e.split(h)});this.debug(this.pattern,t);t=t.map(function(e,r,t){return e.map(this.parse,this)},this);this.debug(this.pattern,t);t=t.filter(function(e){return e.indexOf(false)===-1});this.debug(this.pattern,t);this.set=t}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var e=this.pattern;var r=false;var t=this.options;var i=0;if(t.nonegate)return;for(var n=0,a=e.length;n1024*64){throw new TypeError("pattern is too long")}var t=this.options;if(!t.noglobstar&&e==="**")return n;if(e==="")return"";var i="";var a=!!t.nocase;var f=false;var l=[];var h=[];var v;var d=false;var D=-1;var m=-1;var g=e.charAt(0)==="."?"":t.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var E=this;function clearStateChar(){if(v){switch(v){case"*":i+=o;a=true;break;case"?":i+=s;a=true;break;default:i+="\\"+v;break}E.debug("clearStateChar %j %j",v,i);v=false}}for(var A=0,C=e.length,y;A-1;k--){var O=h[k];var P=i.slice(0,O.reStart);var T=i.slice(O.reStart,O.reEnd-8);var I=i.slice(O.reEnd-8,O.reEnd);var M=i.slice(O.reEnd);I+=M;var L=P.split("(").length-1;var R=M;for(A=0;A=0;u--){a=e[u];if(a)break}for(u=0;u>> no match, partial?",e,c,r,h);if(c===s)return true}return false}var v;if(typeof f==="string"){if(i.nocase){v=l.toLowerCase()===f.toLowerCase()}else{v=l===f}this.debug("string match",f,l,v)}else{v=l.match(f);this.debug("pattern match",f,l,v)}if(!v)return false}if(a===s&&u===o){return true}else if(a===s){return t}else if(u===o){var d=a===s-1&&e[a]==="";return d}throw new Error("wtf?")};function globUnescape(e){return e.replace(/\\(.)/g,"$1")}function regExpEscape(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}},,,,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:table-cell-padding",tableCellPadding);var s=a.start;var o=a.end;var f={null:true,padded:true,compact:true};function tableCellPadding(e,r,t){var i=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(f[t]!==true){r.fail("Invalid table-cell-padding style `"+t+"`")}n(e,"table",visitor);function visitor(e){var r=e.children;var a=new Array(e.align.length);var f=u(e)?-1:r.length;var l=-1;var c=[];var h;var p;var v;var d;var D;var m;var g;var E;var A;var C;var y;while(++li){o+=" with 1 space, not "+u;if(size(a)-1?setImmediate:i.nextTick;var a;Writable.WritableState=WritableState;var u=t(554);u.inherits=t(9);var s={deprecate:t(800)};var o=t(443);var f=t(757).Buffer;var l=global.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return f.from(e)}function _isUint8Array(e){return f.isBuffer(e)||e instanceof l}var c=t(510);u.inherits(Writable,o);function nop(){}function WritableState(e,r){a=a||t(921);e=e||{};var i=r instanceof a;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.writableObjectMode;var n=e.highWaterMark;var u=e.writableHighWaterMark;var s=this.objectMode?16:16*1024;if(n||n===0)this.highWaterMark=n;else if(i&&(u||u===0))this.highWaterMark=u;else this.highWaterMark=s;this.highWaterMark=Math.floor(this.highWaterMark);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var o=e.decodeStrings===false;this.decodeStrings=!o;this.defaultEncoding=e.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(e){onwrite(r,e)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function getBuffer(){var e=this.bufferedRequest;var r=[];while(e){r.push(e);e=e.next}return r};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:s.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer "+"instead.","DEP0003")})}catch(e){}})();var h;if(typeof Symbol==="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==="function"){h=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function(e){if(h.call(this,e))return true;if(this!==Writable)return false;return e&&e._writableState instanceof WritableState}})}else{h=function(e){return e instanceof this}}function Writable(e){a=a||t(921);if(!h.call(Writable,this)&&!(this instanceof a)){return new Writable(e)}this._writableState=new WritableState(e,this);this.writable=true;if(e){if(typeof e.write==="function")this._write=e.write;if(typeof e.writev==="function")this._writev=e.writev;if(typeof e.destroy==="function")this._destroy=e.destroy;if(typeof e.final==="function")this._final=e.final}o.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function writeAfterEnd(e,r){var t=new Error("write after end");e.emit("error",t);i.nextTick(r,t)}function validChunk(e,r,t,n){var a=true;var u=false;if(t===null){u=new TypeError("May not write null values to stream")}else if(typeof t!=="string"&&t!==undefined&&!r.objectMode){u=new TypeError("Invalid non-string/buffer chunk")}if(u){e.emit("error",u);i.nextTick(n,u);a=false}return a}Writable.prototype.write=function(e,r,t){var i=this._writableState;var n=false;var a=!i.objectMode&&_isUint8Array(e);if(a&&!f.isBuffer(e)){e=_uint8ArrayToBuffer(e)}if(typeof r==="function"){t=r;r=null}if(a)r="buffer";else if(!r)r=i.defaultEncoding;if(typeof t!=="function")t=nop;if(i.ended)writeAfterEnd(this,t);else if(a||validChunk(this,i,e,t)){i.pendingcb++;n=writeOrBuffer(this,i,a,e,r,t)}return n};Writable.prototype.cork=function(){var e=this._writableState;e.corked++};Writable.prototype.uncork=function(){var e=this._writableState;if(e.corked){e.corked--;if(!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest)clearBuffer(this,e)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(e){if(typeof e==="string")e=e.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);this._writableState.defaultEncoding=e;return this};function decodeChunk(e,r,t){if(!e.objectMode&&e.decodeStrings!==false&&typeof r==="string"){r=f.from(r,t)}return r}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function(){return this._writableState.highWaterMark}});function writeOrBuffer(e,r,t,i,n,a){if(!t){var u=decodeChunk(r,i,n);if(i!==u){t=true;n="buffer";i=u}}var s=r.objectMode?1:i.length;r.length+=s;var o=r.length"){break}if(v!==" "&&v!=="\t"){r.message(o,d);break}}}}}},,,,function(e){function webpackEmptyContext(e){var r=new Error("Cannot find module '"+e+"'");r.code="MODULE_NOT_FOUND";throw r}webpackEmptyContext.keys=function(){return[]};webpackEmptyContext.resolve=webpackEmptyContext;e.exports=webpackEmptyContext;webpackEmptyContext.id=73},,,,,,function(e){"use strict";e.exports=is;function is(e,r,t,i,n){var a=i!==null&&i!==undefined;var u=t!==null&&t!==undefined;var s=convert(e);if(u&&(typeof t!=="number"||t<0||t===Infinity)){throw new Error("Expected positive finite index or child node")}if(a&&(!is(null,i)||!i.children)){throw new Error("Expected parent node")}if(!r||!r.type||typeof r.type!=="string"){return false}if(a!==u){throw new Error("Expected both parent and index")}return Boolean(s.call(n,r,t,i))}function convert(e){if(typeof e==="string"){return typeFactory(e)}if(e===null||e===undefined){return ok}if(typeof e==="object"){return("length"in e?anyFactory:matchesFactory)(e)}if(typeof e==="function"){return e}throw new Error("Expected function, string, or object as test")}function convertAll(e){var r=[];var t=e.length;var i=-1;while(++in){return false}}return check(e,i,t)&&check(e,m)}function isKnown(e,r,t){var i=o?o.indexOf(e)!==-1:true;if(!i){h.warn("Unknown rule: cannot "+r+" `'"+e+"'`",t)}return i}function getState(e){var r=e?D[e]:m;if(r&&r.length!==0){return r[r.length-1].state}if(!e){return!f}if(f){return l.indexOf(e)!==-1}return c.indexOf(e)===-1}function toggle(e,r,t){var i=t?D[t]:m;var n;var a;if(!i){i=[];D[t]=i}a=getState(t);n=r;if(n!==a){i.push({state:n,position:e})}if(!t){for(t in D){toggle(e,r,t)}}}function check(e,r,t){var i=r&&r.length;var n=-1;var a;while(--i>n){a=r[i];if(!a.position||!a.position.line||!a.position.column){continue}if(a.position.line=e){return}if(u){s.push({start:n,end:e});u=false}n=e}}},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:stdout");var n=t(356);e.exports=stdout;function stdout(e,r,t,a){if(!r.data.unifiedEngineGiven){i("Ignoring programmatically added file");a()}else if(n(r).fatal||e.output||!e.out){i("Ignoring writing to `streamOut`");a()}else{i("Writing document to `streamOut`");e.streamOut.write(r.toString(),a)}}},,,,,,,,,,,function(e,r,t){"use strict";var i=t(400);function resolveYamlBoolean(e){if(e===null)return false;var r=e.length;return r===4&&(e==="true"||e==="True"||e==="TRUE")||r===5&&(e==="false"||e==="False"||e==="FALSE")}function constructYamlBoolean(e){return e==="true"||e==="True"||e==="TRUE"}function isBoolean(e){return Object.prototype.toString.call(e)==="[object Boolean]"}e.exports=new i("tag:yaml.org,2002:bool",{kind:"scalar",resolve:resolveYamlBoolean,construct:constructYamlBoolean,predicate:isBoolean,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},,,,function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(506);var n=_interopRequireDefault(i);var a=t(379);var u=_interopRequireDefault(a);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}r.default={parse:n.default,stringify:u.default};e.exports=r["default"]},function(e){"use strict";e.exports=generated;function generated(e){var r=optional(optional(e).position);var t=optional(r.start);var i=optional(r.end);return!t.line||!t.column||!i.line||!i.column}function optional(e){return e&&typeof e==="object"?e:{}}},,,function(e,r,t){"use strict";var i=t(291);e.exports=factory;function factory(e,r){var t=e.split(":");var n=t[0];var a=t[1];var u=i(r);if(!a){a=n;n=null}attacher.displayName=e;return attacher;function attacher(e){var r=coerce(a,e);var t=r[0];var i=r[1];var s=t===2;return t?transformer:undefined;function transformer(e,r,t){var o=r.messages.length;u(e,r,i,done);function done(e){var i=r.messages;var u;if(e&&i.indexOf(e)===-1){try{r.fail(e)}catch(e){}}while(o2){throw new Error("Invalid severity `"+n+"` for `"+e+"`, "+"expected 0, 1, or 2")}i[0]=n;return i}},,,,,,,,function(e){"use strict";e.exports=interrupt;function interrupt(e,r,t,i){var n=e.length;var a=-1;var u;var s;while(++a/i;function inlineHTML(e,r,t){var n=this;var h=r.length;var p;var v;if(r.charAt(0)!==u||h<3){return}p=r.charAt(1);if(!i(p)&&p!==s&&p!==o&&p!==f){return}v=r.match(a);if(!v){return}if(t){return true}v=v[0];if(!n.inLink&&l.test(v)){n.inLink=true}else if(n.inLink&&c.test(v)){n.inLink=false}return e(v)({type:"html",value:v})}},,function(e){"use strict";e.exports=lineBreak;var r="\\";var t="\n";var i=" ";var n=r+t;var a=i+i+t;function lineBreak(){return this.options.commonmark?n:a}},,,function(e){e.exports=["cent","copy","divide","gt","lt","not","para","times"]},,function(e){e.exports=function(e,r,t){var i=[];var n=e.length;if(0===n)return i;var a=r<0?Math.max(0,r+n):r||0;if(t!==undefined){n=t<0?t+n:t}while(n-- >a){i[n-a]=e[n]}return i}},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(97);e.exports=i("remark-lint:no-shortcut-reference-image",noShortcutReferenceImage);var u="Use the trailing [] on reference images";function noShortcutReferenceImage(e,r){n(e,"imageReference",visitor);function visitor(e){if(!a(e)&&e.referenceType==="shortcut"){r.message(u,e)}}}},,function(e){"use strict";e.exports=hidden;function hidden(e){if(typeof e!=="string"){throw new Error("Expected string")}return e.charAt(0)==="."}},,function(e,r,t){"use strict";var i=t(757).Buffer;var n=i.isEncoding||function(e){e=""+e;switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(e){if(!e)return"utf8";var r;while(true){switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(r)return;e=(""+e).toLowerCase();r=true}}}function normalizeEncoding(e){var r=_normalizeEncoding(e);if(typeof r!=="string"&&(i.isEncoding===n||!n(e)))throw new Error("Unknown encoding: "+e);return r||e}r.StringDecoder=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var r;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;r=4;break;case"utf8":this.fillLast=utf8FillLast;r=4;break;case"base64":this.text=base64Text;this.end=base64End;r=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=i.allocUnsafe(r)}StringDecoder.prototype.write=function(e){if(e.length===0)return"";var r;var t;if(this.lastNeed){r=this.fillLast(e);if(r===undefined)return"";t=this.lastNeed;this.lastNeed=0}else{t=0}if(t>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,r,t){var i=r.length-1;if(i=0){if(n>0)e.lastNeed=n-1;return n}if(--i=0){if(n>0)e.lastNeed=n-2;return n}if(--i=0){if(n>0){if(n===2)n=0;else e.lastNeed=n-3}return n}return 0}function utf8CheckExtraBytes(e,r,t){if((r[0]&192)!==128){e.lastNeed=0;return"�"}if(e.lastNeed>1&&r.length>1){if((r[1]&192)!==128){e.lastNeed=1;return"�"}if(e.lastNeed>2&&r.length>2){if((r[2]&192)!==128){e.lastNeed=2;return"�"}}}}function utf8FillLast(e){var r=this.lastTotal-this.lastNeed;var t=utf8CheckExtraBytes(this,e,r);if(t!==undefined)return t;if(this.lastNeed<=e.length){e.copy(this.lastChar,r,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,r,0,e.length);this.lastNeed-=e.length}function utf8Text(e,r){var t=utf8CheckIncomplete(this,e,r);if(!this.lastNeed)return e.toString("utf8",r);this.lastTotal=t;var i=e.length-(t-this.lastNeed);e.copy(this.lastChar,0,i);return e.toString("utf8",r,i)}function utf8End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed)return r+"�";return r}function utf16Text(e,r){if((e.length-r)%2===0){var t=e.toString("utf16le",r);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return t.slice(0,-1)}}return t}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString("utf16le",r,e.length-1)}function utf16End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,t)}return r}function base64Text(e,r){var t=(e.length-r)%3;if(t===0)return e.toString("base64",r);this.lastNeed=3-t;this.lastTotal=3;if(t===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString("base64",r,e.length-t)}function base64End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):""}},,,,function(e,r,t){"use strict";var i=t(64);var n=t(936);var a=function errorEx(e,r){if(!e||e.constructor!==String){r=e||{};e=Error.name}var t=function ErrorEXError(i){if(!this){return new ErrorEXError(i)}i=i instanceof Error?i.message:i||this.message;Error.call(this,i);Error.captureStackTrace(this,t);this.name=e;Object.defineProperty(this,"message",{configurable:true,enumerable:false,get:function(){var e=i.split(/\r?\n/g);for(var t in r){if(!r.hasOwnProperty(t)){continue}var a=r[t];if("message"in a){e=a.message(this[t],e)||e;if(!n(e)){e=[e]}}}return e.join("\n")},set:function(e){i=e}});var a=null;var u=Object.getOwnPropertyDescriptor(this,"stack");var s=u.get;var o=u.value;delete u.value;delete u.writable;u.set=function(e){a=e};u.get=function(){var e=(a||(s?s.call(this):o)).split(/\r?\n+/g);if(!a){e[0]=this.name+": "+this.message}var t=1;for(var i in r){if(!r.hasOwnProperty(i)){continue}var n=r[i];if("line"in n){var u=n.line(this[i]);if(u){e.splice(t++,0," "+u)}}if("stack"in n){n.stack(this[i],e)}}return e.join("\n")};Object.defineProperty(this,"stack",u)};if(Object.setPrototypeOf){Object.setPrototypeOf(t.prototype,Error.prototype);Object.setPrototypeOf(t,Error)}else{i.inherits(t,Error)}return t};a.append=function(e,r){return{message:function(t,i){t=t||r;if(t){i[0]+=" "+e.replace("%s",t.toString())}return i}}};a.line=function(e,r){return{line:function(t){t=t||r;if(t){return e.replace("%s",t.toString())}return null}}};e.exports=a},,,,,,function(e,r,t){"use strict";var i=t(589);function replaceExt(e,r){if(typeof e!=="string"){return e}if(e.length===0){return e}var t=i.basename(e,i.extname(e))+r;return i.join(i.dirname(e),t)}e.exports=replaceExt},,,function(e,r,t){"use strict";if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=t(892)}else{e.exports=t(239)}},,function(e){"use strict";e.exports=paragraph;function paragraph(e){return this.all(e).join("")}},function(e,r,t){"use strict";var i=t(400);e.exports=new i("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})},,function(e){"use strict";e.exports=locate;function locate(e,r){return e.indexOf("\\",r)}},function(e){(function webpackUniversalModuleDefinition(r,t){if(true)e.exports=t();else{}})(this,function(){return function(e){var r={};function __webpack_require__(t){if(r[t])return r[t].exports;var i=r[t]={exports:{},id:t,loaded:false};e[t].call(i.exports,i,i.exports,__webpack_require__);i.loaded=true;return i.exports}__webpack_require__.m=e;__webpack_require__.c=r;__webpack_require__.p="";return __webpack_require__(0)}([function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(1);var n=t(3);var a=t(8);var u=t(15);function parse(e,r,t){var u=null;var s=function(e,r){if(t){t(e,r)}if(u){u.visit(e,r)}};var o=typeof t==="function"?s:null;var f=false;if(r){f=typeof r.comment==="boolean"&&r.comment;var l=typeof r.attachComment==="boolean"&&r.attachComment;if(f||l){u=new i.CommentHandler;u.attach=l;r.comment=true;o=s}}var c=false;if(r&&typeof r.sourceType==="string"){c=r.sourceType==="module"}var h;if(r&&typeof r.jsx==="boolean"&&r.jsx){h=new n.JSXParser(e,r,o)}else{h=new a.Parser(e,r,o)}var p=c?h.parseModule():h.parseScript();var v=p;if(f&&u){v.comments=u.comments}if(h.config.tokens){v.tokens=h.tokens}if(h.config.tolerant){v.errors=h.errorHandler.errors}return v}r.parse=parse;function parseModule(e,r,t){var i=r||{};i.sourceType="module";return parse(e,i,t)}r.parseModule=parseModule;function parseScript(e,r,t){var i=r||{};i.sourceType="script";return parse(e,i,t)}r.parseScript=parseScript;function tokenize(e,r,t){var i=new u.Tokenizer(e,r);var n;n=[];try{while(true){var a=i.getNextToken();if(!a){break}if(t){a=t(a)}n.push(a)}}catch(e){i.errorHandler.tolerate(e)}if(i.errorHandler.tolerant){n.errors=i.errors()}return n}r.tokenize=tokenize;var s=t(2);r.Syntax=s.Syntax;r.version="4.0.1"},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(2);var n=function(){function CommentHandler(){this.attach=false;this.comments=[];this.stack=[];this.leading=[];this.trailing=[]}CommentHandler.prototype.insertInnerComments=function(e,r){if(e.type===i.Syntax.BlockStatement&&e.body.length===0){var t=[];for(var n=this.leading.length-1;n>=0;--n){var a=this.leading[n];if(r.end.offset>=a.start){t.unshift(a.comment);this.leading.splice(n,1);this.trailing.splice(n,1)}}if(t.length){e.innerComments=t}}};CommentHandler.prototype.findTrailingComments=function(e){var r=[];if(this.trailing.length>0){for(var t=this.trailing.length-1;t>=0;--t){var i=this.trailing[t];if(i.start>=e.end.offset){r.unshift(i.comment)}}this.trailing.length=0;return r}var n=this.stack[this.stack.length-1];if(n&&n.node.trailingComments){var a=n.node.trailingComments[0];if(a&&a.range[0]>=e.end.offset){r=n.node.trailingComments;delete n.node.trailingComments}}return r};CommentHandler.prototype.findLeadingComments=function(e){var r=[];var t;while(this.stack.length>0){var i=this.stack[this.stack.length-1];if(i&&i.start>=e.start.offset){t=i.node;this.stack.pop()}else{break}}if(t){var n=t.leadingComments?t.leadingComments.length:0;for(var a=n-1;a>=0;--a){var u=t.leadingComments[a];if(u.range[1]<=e.start.offset){r.unshift(u);t.leadingComments.splice(a,1)}}if(t.leadingComments&&t.leadingComments.length===0){delete t.leadingComments}return r}for(var a=this.leading.length-1;a>=0;--a){var i=this.leading[a];if(i.start<=e.start.offset){r.unshift(i.comment);this.leading.splice(a,1)}}return r};CommentHandler.prototype.visitNode=function(e,r){if(e.type===i.Syntax.Program&&e.body.length>0){return}this.insertInnerComments(e,r);var t=this.findTrailingComments(r);var n=this.findLeadingComments(r);if(n.length>0){e.leadingComments=n}if(t.length>0){e.trailingComments=t}this.stack.push({node:e,start:r.start.offset})};CommentHandler.prototype.visitComment=function(e,r){var t=e.type[0]==="L"?"Line":"Block";var i={type:t,value:e.value};if(e.range){i.range=e.range}if(e.loc){i.loc=e.loc}this.comments.push(i);if(this.attach){var n={comment:{type:t,value:e.value,range:[r.start.offset,r.end.offset]},start:r.start.offset};if(e.loc){n.comment.loc=e.loc}e.type=t;this.leading.push(n);this.trailing.push(n)}};CommentHandler.prototype.visit=function(e,r){if(e.type==="LineComment"){this.visitComment(e,r)}else if(e.type==="BlockComment"){this.visitComment(e,r)}else if(this.attach){this.visitNode(e,r)}};return CommentHandler}();r.CommentHandler=n},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,r,t){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)if(r.hasOwnProperty(t))e[t]=r[t]};return function(r,t){e(r,t);function __(){this.constructor=r}r.prototype=t===null?Object.create(t):(__.prototype=t.prototype,new __)}}();Object.defineProperty(r,"__esModule",{value:true});var n=t(4);var a=t(5);var u=t(6);var s=t(7);var o=t(8);var f=t(13);var l=t(14);f.TokenName[100]="JSXIdentifier";f.TokenName[101]="JSXText";function getQualifiedElementName(e){var r;switch(e.type){case u.JSXSyntax.JSXIdentifier:var t=e;r=t.name;break;case u.JSXSyntax.JSXNamespacedName:var i=e;r=getQualifiedElementName(i.namespace)+":"+getQualifiedElementName(i.name);break;case u.JSXSyntax.JSXMemberExpression:var n=e;r=getQualifiedElementName(n.object)+"."+getQualifiedElementName(n.property);break;default:break}return r}var c=function(e){i(JSXParser,e);function JSXParser(r,t,i){return e.call(this,r,t,i)||this}JSXParser.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)};JSXParser.prototype.startJSX=function(){this.scanner.index=this.startMarker.index;this.scanner.lineNumber=this.startMarker.line;this.scanner.lineStart=this.startMarker.index-this.startMarker.column};JSXParser.prototype.finishJSX=function(){this.nextToken()};JSXParser.prototype.reenterJSX=function(){this.startJSX();this.expectJSX("}");if(this.config.tokens){this.tokens.pop()}};JSXParser.prototype.createJSXNode=function(){this.collectComments();return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}};JSXParser.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}};JSXParser.prototype.scanXHTMLEntity=function(e){var r="&";var t=true;var i=false;var a=false;var u=false;while(!this.scanner.eof()&&t&&!i){var s=this.scanner.source[this.scanner.index];if(s===e){break}i=s===";";r+=s;++this.scanner.index;if(!i){switch(r.length){case 2:a=s==="#";break;case 3:if(a){u=s==="x";t=u||n.Character.isDecimalDigit(s.charCodeAt(0));a=a&&!u}break;default:t=t&&!(a&&!n.Character.isDecimalDigit(s.charCodeAt(0)));t=t&&!(u&&!n.Character.isHexDigit(s.charCodeAt(0)));break}}}if(t&&i&&r.length>2){var o=r.substr(1,r.length-2);if(a&&o.length>1){r=String.fromCharCode(parseInt(o.substr(1),10))}else if(u&&o.length>2){r=String.fromCharCode(parseInt("0"+o.substr(1),16))}else if(!a&&!u&&l.XHTMLEntities[o]){r=l.XHTMLEntities[o]}}return r};JSXParser.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(e===60||e===62||e===47||e===58||e===61||e===123||e===125){var r=this.scanner.source[this.scanner.index++];return{type:7,value:r,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(e===34||e===39){var t=this.scanner.index;var i=this.scanner.source[this.scanner.index++];var a="";while(!this.scanner.eof()){var u=this.scanner.source[this.scanner.index++];if(u===i){break}else if(u==="&"){a+=this.scanXHTMLEntity(i)}else{a+=u}}return{type:8,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(e===46){var s=this.scanner.source.charCodeAt(this.scanner.index+1);var o=this.scanner.source.charCodeAt(this.scanner.index+2);var r=s===46&&o===46?"...":".";var t=this.scanner.index;this.scanner.index+=r.length;return{type:7,value:r,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(e===96){return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index}}if(n.Character.isIdentifierStart(e)&&e!==92){var t=this.scanner.index;++this.scanner.index;while(!this.scanner.eof()){var u=this.scanner.source.charCodeAt(this.scanner.index);if(n.Character.isIdentifierPart(u)&&u!==92){++this.scanner.index}else if(u===45){++this.scanner.index}else{break}}var f=this.scanner.source.slice(t,this.scanner.index);return{type:100,value:f,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()};JSXParser.prototype.nextJSXToken=function(){this.collectComments();this.startMarker.index=this.scanner.index;this.startMarker.line=this.scanner.lineNumber;this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;if(this.config.tokens){this.tokens.push(this.convertToken(e))}return e};JSXParser.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index;this.startMarker.line=this.scanner.lineNumber;this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.scanner.index;var r="";while(!this.scanner.eof()){var t=this.scanner.source[this.scanner.index];if(t==="{"||t==="<"){break}++this.scanner.index;r+=t;if(n.Character.isLineTerminator(t.charCodeAt(0))){++this.scanner.lineNumber;if(t==="\r"&&this.scanner.source[this.scanner.index]==="\n"){++this.scanner.index}this.scanner.lineStart=this.scanner.index}}this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var i={type:101,value:r,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};if(r.length>0&&this.config.tokens){this.tokens.push(this.convertToken(i))}return i};JSXParser.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var r=this.lexJSX();this.scanner.restoreState(e);return r};JSXParser.prototype.expectJSX=function(e){var r=this.nextJSXToken();if(r.type!==7||r.value!==e){this.throwUnexpectedToken(r)}};JSXParser.prototype.matchJSX=function(e){var r=this.peekJSXToken();return r.type===7&&r.value===e};JSXParser.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode();var r=this.nextJSXToken();if(r.type!==100){this.throwUnexpectedToken(r)}return this.finalize(e,new a.JSXIdentifier(r.value))};JSXParser.prototype.parseJSXElementName=function(){var e=this.createJSXNode();var r=this.parseJSXIdentifier();if(this.matchJSX(":")){var t=r;this.expectJSX(":");var i=this.parseJSXIdentifier();r=this.finalize(e,new a.JSXNamespacedName(t,i))}else if(this.matchJSX(".")){while(this.matchJSX(".")){var n=r;this.expectJSX(".");var u=this.parseJSXIdentifier();r=this.finalize(e,new a.JSXMemberExpression(n,u))}}return r};JSXParser.prototype.parseJSXAttributeName=function(){var e=this.createJSXNode();var r;var t=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=t;this.expectJSX(":");var n=this.parseJSXIdentifier();r=this.finalize(e,new a.JSXNamespacedName(i,n))}else{r=t}return r};JSXParser.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode();var r=this.nextJSXToken();if(r.type!==8){this.throwUnexpectedToken(r)}var t=this.getTokenRaw(r);return this.finalize(e,new s.Literal(r.value,t))};JSXParser.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{");this.finishJSX();if(this.match("}")){this.tolerateError("JSX attributes must only be assigned a non-empty expression")}var r=this.parseAssignmentExpression();this.reenterJSX();return this.finalize(e,new a.JSXExpressionContainer(r))};JSXParser.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()};JSXParser.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode();var r=this.parseJSXAttributeName();var t=null;if(this.matchJSX("=")){this.expectJSX("=");t=this.parseJSXAttributeValue()}return this.finalize(e,new a.JSXAttribute(r,t))};JSXParser.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{");this.expectJSX("...");this.finishJSX();var r=this.parseAssignmentExpression();this.reenterJSX();return this.finalize(e,new a.JSXSpreadAttribute(r))};JSXParser.prototype.parseJSXAttributes=function(){var e=[];while(!this.matchJSX("/")&&!this.matchJSX(">")){var r=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(r)}return e};JSXParser.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var r=this.parseJSXElementName();var t=this.parseJSXAttributes();var i=this.matchJSX("/");if(i){this.expectJSX("/")}this.expectJSX(">");return this.finalize(e,new a.JSXOpeningElement(r,i,t))};JSXParser.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();this.expectJSX("<");if(this.matchJSX("/")){this.expectJSX("/");var r=this.parseJSXElementName();this.expectJSX(">");return this.finalize(e,new a.JSXClosingElement(r))}var t=this.parseJSXElementName();var i=this.parseJSXAttributes();var n=this.matchJSX("/");if(n){this.expectJSX("/")}this.expectJSX(">");return this.finalize(e,new a.JSXOpeningElement(t,n,i))};JSXParser.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();this.collectComments();this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;return this.finalize(e,new a.JSXEmptyExpression)};JSXParser.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var r;if(this.matchJSX("}")){r=this.parseJSXEmptyExpression();this.expectJSX("}")}else{this.finishJSX();r=this.parseAssignmentExpression();this.reenterJSX()}return this.finalize(e,new a.JSXExpressionContainer(r))};JSXParser.prototype.parseJSXChildren=function(){var e=[];while(!this.scanner.eof()){var r=this.createJSXChildNode();var t=this.nextJSXText();if(t.start0){var s=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing));e=r[r.length-1];e.children.push(s);r.pop()}else{break}}}return e};JSXParser.prototype.parseJSXElement=function(){var e=this.createJSXNode();var r=this.parseJSXOpeningElement();var t=[];var i=null;if(!r.selfClosing){var n=this.parseComplexJSXElement({node:e,opening:r,closing:i,children:t});t=n.children;i=n.closing}return this.finalize(e,new a.JSXElement(r,t,i))};JSXParser.prototype.parseJSXRoot=function(){if(this.config.tokens){this.tokens.pop()}this.startJSX();var e=this.parseJSXElement();this.finishJSX();return e};JSXParser.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")};return JSXParser}(o.Parser);r.JSXParser=c},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});var t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};r.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return e===10||e===13||e===8232||e===8233},isIdentifierStart:function(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&t.NonAsciiIdentifierStart.test(r.Character.fromCodePoint(e))},isIdentifierPart:function(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&t.NonAsciiIdentifierPart.test(r.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(6);var n=function(){function JSXClosingElement(e){this.type=i.JSXSyntax.JSXClosingElement;this.name=e}return JSXClosingElement}();r.JSXClosingElement=n;var a=function(){function JSXElement(e,r,t){this.type=i.JSXSyntax.JSXElement;this.openingElement=e;this.children=r;this.closingElement=t}return JSXElement}();r.JSXElement=a;var u=function(){function JSXEmptyExpression(){this.type=i.JSXSyntax.JSXEmptyExpression}return JSXEmptyExpression}();r.JSXEmptyExpression=u;var s=function(){function JSXExpressionContainer(e){this.type=i.JSXSyntax.JSXExpressionContainer;this.expression=e}return JSXExpressionContainer}();r.JSXExpressionContainer=s;var o=function(){function JSXIdentifier(e){this.type=i.JSXSyntax.JSXIdentifier;this.name=e}return JSXIdentifier}();r.JSXIdentifier=o;var f=function(){function JSXMemberExpression(e,r){this.type=i.JSXSyntax.JSXMemberExpression;this.object=e;this.property=r}return JSXMemberExpression}();r.JSXMemberExpression=f;var l=function(){function JSXAttribute(e,r){this.type=i.JSXSyntax.JSXAttribute;this.name=e;this.value=r}return JSXAttribute}();r.JSXAttribute=l;var c=function(){function JSXNamespacedName(e,r){this.type=i.JSXSyntax.JSXNamespacedName;this.namespace=e;this.name=r}return JSXNamespacedName}();r.JSXNamespacedName=c;var h=function(){function JSXOpeningElement(e,r,t){this.type=i.JSXSyntax.JSXOpeningElement;this.name=e;this.selfClosing=r;this.attributes=t}return JSXOpeningElement}();r.JSXOpeningElement=h;var p=function(){function JSXSpreadAttribute(e){this.type=i.JSXSyntax.JSXSpreadAttribute;this.argument=e}return JSXSpreadAttribute}();r.JSXSpreadAttribute=p;var v=function(){function JSXText(e,r){this.type=i.JSXSyntax.JSXText;this.value=e;this.raw=r}return JSXText}();r.JSXText=v},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(2);var n=function(){function ArrayExpression(e){this.type=i.Syntax.ArrayExpression;this.elements=e}return ArrayExpression}();r.ArrayExpression=n;var a=function(){function ArrayPattern(e){this.type=i.Syntax.ArrayPattern;this.elements=e}return ArrayPattern}();r.ArrayPattern=a;var u=function(){function ArrowFunctionExpression(e,r,t){this.type=i.Syntax.ArrowFunctionExpression;this.id=null;this.params=e;this.body=r;this.generator=false;this.expression=t;this.async=false}return ArrowFunctionExpression}();r.ArrowFunctionExpression=u;var s=function(){function AssignmentExpression(e,r,t){this.type=i.Syntax.AssignmentExpression;this.operator=e;this.left=r;this.right=t}return AssignmentExpression}();r.AssignmentExpression=s;var o=function(){function AssignmentPattern(e,r){this.type=i.Syntax.AssignmentPattern;this.left=e;this.right=r}return AssignmentPattern}();r.AssignmentPattern=o;var f=function(){function AsyncArrowFunctionExpression(e,r,t){this.type=i.Syntax.ArrowFunctionExpression;this.id=null;this.params=e;this.body=r;this.generator=false;this.expression=t;this.async=true}return AsyncArrowFunctionExpression}();r.AsyncArrowFunctionExpression=f;var l=function(){function AsyncFunctionDeclaration(e,r,t){this.type=i.Syntax.FunctionDeclaration;this.id=e;this.params=r;this.body=t;this.generator=false;this.expression=false;this.async=true}return AsyncFunctionDeclaration}();r.AsyncFunctionDeclaration=l;var c=function(){function AsyncFunctionExpression(e,r,t){this.type=i.Syntax.FunctionExpression;this.id=e;this.params=r;this.body=t;this.generator=false;this.expression=false;this.async=true}return AsyncFunctionExpression}();r.AsyncFunctionExpression=c;var h=function(){function AwaitExpression(e){this.type=i.Syntax.AwaitExpression;this.argument=e}return AwaitExpression}();r.AwaitExpression=h;var p=function(){function BinaryExpression(e,r,t){var n=e==="||"||e==="&&";this.type=n?i.Syntax.LogicalExpression:i.Syntax.BinaryExpression;this.operator=e;this.left=r;this.right=t}return BinaryExpression}();r.BinaryExpression=p;var v=function(){function BlockStatement(e){this.type=i.Syntax.BlockStatement;this.body=e}return BlockStatement}();r.BlockStatement=v;var d=function(){function BreakStatement(e){this.type=i.Syntax.BreakStatement;this.label=e}return BreakStatement}();r.BreakStatement=d;var D=function(){function CallExpression(e,r){this.type=i.Syntax.CallExpression;this.callee=e;this.arguments=r}return CallExpression}();r.CallExpression=D;var m=function(){function CatchClause(e,r){this.type=i.Syntax.CatchClause;this.param=e;this.body=r}return CatchClause}();r.CatchClause=m;var g=function(){function ClassBody(e){this.type=i.Syntax.ClassBody;this.body=e}return ClassBody}();r.ClassBody=g;var E=function(){function ClassDeclaration(e,r,t){this.type=i.Syntax.ClassDeclaration;this.id=e;this.superClass=r;this.body=t}return ClassDeclaration}();r.ClassDeclaration=E;var A=function(){function ClassExpression(e,r,t){this.type=i.Syntax.ClassExpression;this.id=e;this.superClass=r;this.body=t}return ClassExpression}();r.ClassExpression=A;var C=function(){function ComputedMemberExpression(e,r){this.type=i.Syntax.MemberExpression;this.computed=true;this.object=e;this.property=r}return ComputedMemberExpression}();r.ComputedMemberExpression=C;var y=function(){function ConditionalExpression(e,r,t){this.type=i.Syntax.ConditionalExpression;this.test=e;this.consequent=r;this.alternate=t}return ConditionalExpression}();r.ConditionalExpression=y;var w=function(){function ContinueStatement(e){this.type=i.Syntax.ContinueStatement;this.label=e}return ContinueStatement}();r.ContinueStatement=w;var x=function(){function DebuggerStatement(){this.type=i.Syntax.DebuggerStatement}return DebuggerStatement}();r.DebuggerStatement=x;var b=function(){function Directive(e,r){this.type=i.Syntax.ExpressionStatement;this.expression=e;this.directive=r}return Directive}();r.Directive=b;var F=function(){function DoWhileStatement(e,r){this.type=i.Syntax.DoWhileStatement;this.body=e;this.test=r}return DoWhileStatement}();r.DoWhileStatement=F;var S=function(){function EmptyStatement(){this.type=i.Syntax.EmptyStatement}return EmptyStatement}();r.EmptyStatement=S;var B=function(){function ExportAllDeclaration(e){this.type=i.Syntax.ExportAllDeclaration;this.source=e}return ExportAllDeclaration}();r.ExportAllDeclaration=B;var k=function(){function ExportDefaultDeclaration(e){this.type=i.Syntax.ExportDefaultDeclaration;this.declaration=e}return ExportDefaultDeclaration}();r.ExportDefaultDeclaration=k;var O=function(){function ExportNamedDeclaration(e,r,t){this.type=i.Syntax.ExportNamedDeclaration;this.declaration=e;this.specifiers=r;this.source=t}return ExportNamedDeclaration}();r.ExportNamedDeclaration=O;var P=function(){function ExportSpecifier(e,r){this.type=i.Syntax.ExportSpecifier;this.exported=r;this.local=e}return ExportSpecifier}();r.ExportSpecifier=P;var T=function(){function ExpressionStatement(e){this.type=i.Syntax.ExpressionStatement;this.expression=e}return ExpressionStatement}();r.ExpressionStatement=T;var I=function(){function ForInStatement(e,r,t){this.type=i.Syntax.ForInStatement;this.left=e;this.right=r;this.body=t;this.each=false}return ForInStatement}();r.ForInStatement=I;var M=function(){function ForOfStatement(e,r,t){this.type=i.Syntax.ForOfStatement;this.left=e;this.right=r;this.body=t}return ForOfStatement}();r.ForOfStatement=M;var L=function(){function ForStatement(e,r,t,n){this.type=i.Syntax.ForStatement;this.init=e;this.test=r;this.update=t;this.body=n}return ForStatement}();r.ForStatement=L;var R=function(){function FunctionDeclaration(e,r,t,n){this.type=i.Syntax.FunctionDeclaration;this.id=e;this.params=r;this.body=t;this.generator=n;this.expression=false;this.async=false}return FunctionDeclaration}();r.FunctionDeclaration=R;var j=function(){function FunctionExpression(e,r,t,n){this.type=i.Syntax.FunctionExpression;this.id=e;this.params=r;this.body=t;this.generator=n;this.expression=false;this.async=false}return FunctionExpression}();r.FunctionExpression=j;var N=function(){function Identifier(e){this.type=i.Syntax.Identifier;this.name=e}return Identifier}();r.Identifier=N;var U=function(){function IfStatement(e,r,t){this.type=i.Syntax.IfStatement;this.test=e;this.consequent=r;this.alternate=t}return IfStatement}();r.IfStatement=U;var J=function(){function ImportDeclaration(e,r){this.type=i.Syntax.ImportDeclaration;this.specifiers=e;this.source=r}return ImportDeclaration}();r.ImportDeclaration=J;var z=function(){function ImportDefaultSpecifier(e){this.type=i.Syntax.ImportDefaultSpecifier;this.local=e}return ImportDefaultSpecifier}();r.ImportDefaultSpecifier=z;var X=function(){function ImportNamespaceSpecifier(e){this.type=i.Syntax.ImportNamespaceSpecifier;this.local=e}return ImportNamespaceSpecifier}();r.ImportNamespaceSpecifier=X;var q=function(){function ImportSpecifier(e,r){this.type=i.Syntax.ImportSpecifier;this.local=e;this.imported=r}return ImportSpecifier}();r.ImportSpecifier=q;var _=function(){function LabeledStatement(e,r){this.type=i.Syntax.LabeledStatement;this.label=e;this.body=r}return LabeledStatement}();r.LabeledStatement=_;var G=function(){function Literal(e,r){this.type=i.Syntax.Literal;this.value=e;this.raw=r}return Literal}();r.Literal=G;var W=function(){function MetaProperty(e,r){this.type=i.Syntax.MetaProperty;this.meta=e;this.property=r}return MetaProperty}();r.MetaProperty=W;var V=function(){function MethodDefinition(e,r,t,n,a){this.type=i.Syntax.MethodDefinition;this.key=e;this.computed=r;this.value=t;this.kind=n;this.static=a}return MethodDefinition}();r.MethodDefinition=V;var H=function(){function Module(e){this.type=i.Syntax.Program;this.body=e;this.sourceType="module"}return Module}();r.Module=H;var Y=function(){function NewExpression(e,r){this.type=i.Syntax.NewExpression;this.callee=e;this.arguments=r}return NewExpression}();r.NewExpression=Y;var $=function(){function ObjectExpression(e){this.type=i.Syntax.ObjectExpression;this.properties=e}return ObjectExpression}();r.ObjectExpression=$;var Z=function(){function ObjectPattern(e){this.type=i.Syntax.ObjectPattern;this.properties=e}return ObjectPattern}();r.ObjectPattern=Z;var Q=function(){function Property(e,r,t,n,a,u){this.type=i.Syntax.Property;this.key=r;this.computed=t;this.value=n;this.kind=e;this.method=a;this.shorthand=u}return Property}();r.Property=Q;var K=function(){function RegexLiteral(e,r,t,n){this.type=i.Syntax.Literal;this.value=e;this.raw=r;this.regex={pattern:t,flags:n}}return RegexLiteral}();r.RegexLiteral=K;var ee=function(){function RestElement(e){this.type=i.Syntax.RestElement;this.argument=e}return RestElement}();r.RestElement=ee;var re=function(){function ReturnStatement(e){this.type=i.Syntax.ReturnStatement;this.argument=e}return ReturnStatement}();r.ReturnStatement=re;var te=function(){function Script(e){this.type=i.Syntax.Program;this.body=e;this.sourceType="script"}return Script}();r.Script=te;var ie=function(){function SequenceExpression(e){this.type=i.Syntax.SequenceExpression;this.expressions=e}return SequenceExpression}();r.SequenceExpression=ie;var ne=function(){function SpreadElement(e){this.type=i.Syntax.SpreadElement;this.argument=e}return SpreadElement}();r.SpreadElement=ne;var ae=function(){function StaticMemberExpression(e,r){this.type=i.Syntax.MemberExpression;this.computed=false;this.object=e;this.property=r}return StaticMemberExpression}();r.StaticMemberExpression=ae;var ue=function(){function Super(){this.type=i.Syntax.Super}return Super}();r.Super=ue;var se=function(){function SwitchCase(e,r){this.type=i.Syntax.SwitchCase;this.test=e;this.consequent=r}return SwitchCase}();r.SwitchCase=se;var oe=function(){function SwitchStatement(e,r){this.type=i.Syntax.SwitchStatement;this.discriminant=e;this.cases=r}return SwitchStatement}();r.SwitchStatement=oe;var fe=function(){function TaggedTemplateExpression(e,r){this.type=i.Syntax.TaggedTemplateExpression;this.tag=e;this.quasi=r}return TaggedTemplateExpression}();r.TaggedTemplateExpression=fe;var le=function(){function TemplateElement(e,r){this.type=i.Syntax.TemplateElement;this.value=e;this.tail=r}return TemplateElement}();r.TemplateElement=le;var ce=function(){function TemplateLiteral(e,r){this.type=i.Syntax.TemplateLiteral;this.quasis=e;this.expressions=r}return TemplateLiteral}();r.TemplateLiteral=ce;var he=function(){function ThisExpression(){this.type=i.Syntax.ThisExpression}return ThisExpression}();r.ThisExpression=he;var pe=function(){function ThrowStatement(e){this.type=i.Syntax.ThrowStatement;this.argument=e}return ThrowStatement}();r.ThrowStatement=pe;var ve=function(){function TryStatement(e,r,t){this.type=i.Syntax.TryStatement;this.block=e;this.handler=r;this.finalizer=t}return TryStatement}();r.TryStatement=ve;var de=function(){function UnaryExpression(e,r){this.type=i.Syntax.UnaryExpression;this.operator=e;this.argument=r;this.prefix=true}return UnaryExpression}();r.UnaryExpression=de;var De=function(){function UpdateExpression(e,r,t){this.type=i.Syntax.UpdateExpression;this.operator=e;this.argument=r;this.prefix=t}return UpdateExpression}();r.UpdateExpression=De;var me=function(){function VariableDeclaration(e,r){this.type=i.Syntax.VariableDeclaration;this.declarations=e;this.kind=r}return VariableDeclaration}();r.VariableDeclaration=me;var ge=function(){function VariableDeclarator(e,r){this.type=i.Syntax.VariableDeclarator;this.id=e;this.init=r}return VariableDeclarator}();r.VariableDeclarator=ge;var Ee=function(){function WhileStatement(e,r){this.type=i.Syntax.WhileStatement;this.test=e;this.body=r}return WhileStatement}();r.WhileStatement=Ee;var Ae=function(){function WithStatement(e,r){this.type=i.Syntax.WithStatement;this.object=e;this.body=r}return WithStatement}();r.WithStatement=Ae;var Ce=function(){function YieldExpression(e,r){this.type=i.Syntax.YieldExpression;this.argument=e;this.delegate=r}return YieldExpression}();r.YieldExpression=Ce},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(9);var n=t(10);var a=t(11);var u=t(7);var s=t(12);var o=t(2);var f=t(13);var l="ArrowParameterPlaceHolder";var c=function(){function Parser(e,r,t){if(r===void 0){r={}}this.config={range:typeof r.range==="boolean"&&r.range,loc:typeof r.loc==="boolean"&&r.loc,source:null,tokens:typeof r.tokens==="boolean"&&r.tokens,comment:typeof r.comment==="boolean"&&r.comment,tolerant:typeof r.tolerant==="boolean"&&r.tolerant};if(this.config.loc&&r.source&&r.source!==null){this.config.source=String(r.source)}this.delegate=t;this.errorHandler=new n.ErrorHandler;this.errorHandler.tolerant=this.config.tolerant;this.scanner=new s.Scanner(e,this.errorHandler);this.scanner.trackComment=this.config.comment;this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11};this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0};this.hasLineTerminator=false;this.context={isModule:false,await:false,allowIn:true,allowStrictDirective:true,allowYield:true,firstCoverInitializedNameError:null,isAssignmentTarget:false,isBindingElement:false,inFunctionBody:false,inIteration:false,inSwitch:false,labelSet:{},strict:false};this.tokens=[];this.startMarker={index:0,line:this.scanner.lineNumber,column:0};this.lastMarker={index:0,line:this.scanner.lineNumber,column:0};this.nextToken();this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}Parser.prototype.throwError=function(e){var r=[];for(var t=1;t0&&this.delegate){for(var r=0;r>="||e===">>>="||e==="&="||e==="^="||e==="|="};Parser.prototype.isolateCoverGrammar=function(e){var r=this.context.isBindingElement;var t=this.context.isAssignmentTarget;var i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=true;this.context.isAssignmentTarget=true;this.context.firstCoverInitializedNameError=null;var n=e.call(this);if(this.context.firstCoverInitializedNameError!==null){this.throwUnexpectedToken(this.context.firstCoverInitializedNameError)}this.context.isBindingElement=r;this.context.isAssignmentTarget=t;this.context.firstCoverInitializedNameError=i;return n};Parser.prototype.inheritCoverGrammar=function(e){var r=this.context.isBindingElement;var t=this.context.isAssignmentTarget;var i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=true;this.context.isAssignmentTarget=true;this.context.firstCoverInitializedNameError=null;var n=e.call(this);this.context.isBindingElement=this.context.isBindingElement&&r;this.context.isAssignmentTarget=this.context.isAssignmentTarget&&t;this.context.firstCoverInitializedNameError=i||this.context.firstCoverInitializedNameError;return n};Parser.prototype.consumeSemicolon=function(){if(this.match(";")){this.nextToken()}else if(!this.hasLineTerminator){if(this.lookahead.type!==2&&!this.match("}")){this.throwUnexpectedToken(this.lookahead)}this.lastMarker.index=this.startMarker.index;this.lastMarker.line=this.startMarker.line;this.lastMarker.column=this.startMarker.column}};Parser.prototype.parsePrimaryExpression=function(){var e=this.createNode();var r;var t,i;switch(this.lookahead.type){case 3:if((this.context.isModule||this.context.await)&&this.lookahead.value==="await"){this.tolerateUnexpectedToken(this.lookahead)}r=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(e,new u.Identifier(this.nextToken().value));break;case 6:case 8:if(this.context.strict&&this.lookahead.octal){this.tolerateUnexpectedToken(this.lookahead,a.Messages.StrictOctalLiteral)}this.context.isAssignmentTarget=false;this.context.isBindingElement=false;t=this.nextToken();i=this.getTokenRaw(t);r=this.finalize(e,new u.Literal(t.value,i));break;case 1:this.context.isAssignmentTarget=false;this.context.isBindingElement=false;t=this.nextToken();i=this.getTokenRaw(t);r=this.finalize(e,new u.Literal(t.value==="true",i));break;case 5:this.context.isAssignmentTarget=false;this.context.isBindingElement=false;t=this.nextToken();i=this.getTokenRaw(t);r=this.finalize(e,new u.Literal(null,i));break;case 10:r=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=false;r=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":r=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":r=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=false;this.context.isBindingElement=false;this.scanner.index=this.startMarker.index;t=this.nextRegexToken();i=this.getTokenRaw(t);r=this.finalize(e,new u.RegexLiteral(t.regex,i,t.pattern,t.flags));break;default:r=this.throwUnexpectedToken(this.nextToken())}break;case 4:if(!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")){r=this.parseIdentifierName()}else if(!this.context.strict&&this.matchKeyword("let")){r=this.finalize(e,new u.Identifier(this.nextToken().value))}else{this.context.isAssignmentTarget=false;this.context.isBindingElement=false;if(this.matchKeyword("function")){r=this.parseFunctionExpression()}else if(this.matchKeyword("this")){this.nextToken();r=this.finalize(e,new u.ThisExpression)}else if(this.matchKeyword("class")){r=this.parseClassExpression()}else{r=this.throwUnexpectedToken(this.nextToken())}}break;default:r=this.throwUnexpectedToken(this.nextToken())}return r};Parser.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var r=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new u.SpreadElement(r))};Parser.prototype.parseArrayInitializer=function(){var e=this.createNode();var r=[];this.expect("[");while(!this.match("]")){if(this.match(",")){this.nextToken();r.push(null)}else if(this.match("...")){var t=this.parseSpreadElement();if(!this.match("]")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;this.expect(",")}r.push(t)}else{r.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(!this.match("]")){this.expect(",")}}}this.expect("]");return this.finalize(e,new u.ArrayExpression(r))};Parser.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var r=this.context.strict;var t=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var i=this.isolateCoverGrammar(this.parseFunctionSourceElements);if(this.context.strict&&e.firstRestricted){this.tolerateUnexpectedToken(e.firstRestricted,e.message)}if(this.context.strict&&e.stricted){this.tolerateUnexpectedToken(e.stricted,e.message)}this.context.strict=r;this.context.allowStrictDirective=t;return i};Parser.prototype.parsePropertyMethodFunction=function(){var e=false;var r=this.createNode();var t=this.context.allowYield;this.context.allowYield=true;var i=this.parseFormalParameters();var n=this.parsePropertyMethod(i);this.context.allowYield=t;return this.finalize(r,new u.FunctionExpression(null,i.params,n,e))};Parser.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode();var r=this.context.allowYield;var t=this.context.await;this.context.allowYield=false;this.context.await=true;var i=this.parseFormalParameters();var n=this.parsePropertyMethod(i);this.context.allowYield=r;this.context.await=t;return this.finalize(e,new u.AsyncFunctionExpression(null,i.params,n))};Parser.prototype.parseObjectPropertyKey=function(){var e=this.createNode();var r=this.nextToken();var t;switch(r.type){case 8:case 6:if(this.context.strict&&r.octal){this.tolerateUnexpectedToken(r,a.Messages.StrictOctalLiteral)}var i=this.getTokenRaw(r);t=this.finalize(e,new u.Literal(r.value,i));break;case 3:case 1:case 5:case 4:t=this.finalize(e,new u.Identifier(r.value));break;case 7:if(r.value==="["){t=this.isolateCoverGrammar(this.parseAssignmentExpression);this.expect("]")}else{t=this.throwUnexpectedToken(r)}break;default:t=this.throwUnexpectedToken(r)}return t};Parser.prototype.isPropertyKey=function(e,r){return e.type===o.Syntax.Identifier&&e.name===r||e.type===o.Syntax.Literal&&e.value===r};Parser.prototype.parseObjectProperty=function(e){var r=this.createNode();var t=this.lookahead;var i;var n=null;var s=null;var o=false;var f=false;var l=false;var c=false;if(t.type===3){var h=t.value;this.nextToken();o=this.match("[");c=!this.hasLineTerminator&&h==="async"&&!this.match(":")&&!this.match("(")&&!this.match("*")&&!this.match(",");n=c?this.parseObjectPropertyKey():this.finalize(r,new u.Identifier(h))}else if(this.match("*")){this.nextToken()}else{o=this.match("[");n=this.parseObjectPropertyKey()}var p=this.qualifiedPropertyName(this.lookahead);if(t.type===3&&!c&&t.value==="get"&&p){i="get";o=this.match("[");n=this.parseObjectPropertyKey();this.context.allowYield=false;s=this.parseGetterMethod()}else if(t.type===3&&!c&&t.value==="set"&&p){i="set";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseSetterMethod()}else if(t.type===7&&t.value==="*"&&p){i="init";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseGeneratorMethod();f=true}else{if(!n){this.throwUnexpectedToken(this.lookahead)}i="init";if(this.match(":")&&!c){if(!o&&this.isPropertyKey(n,"__proto__")){if(e.value){this.tolerateError(a.Messages.DuplicateProtoProperty)}e.value=true}this.nextToken();s=this.inheritCoverGrammar(this.parseAssignmentExpression)}else if(this.match("(")){s=c?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction();f=true}else if(t.type===3){var h=this.finalize(r,new u.Identifier(t.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead;this.nextToken();l=true;var v=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(r,new u.AssignmentPattern(h,v))}else{l=true;s=h}}else{this.throwUnexpectedToken(this.nextToken())}}return this.finalize(r,new u.Property(i,n,o,s,f,l))};Parser.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");var r=[];var t={value:false};while(!this.match("}")){r.push(this.parseObjectProperty(t));if(!this.match("}")){this.expectCommaSeparator()}}this.expect("}");return this.finalize(e,new u.ObjectExpression(r))};Parser.prototype.parseTemplateHead=function(){i.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode();var r=this.nextToken();var t=r.value;var n=r.cooked;return this.finalize(e,new u.TemplateElement({raw:t,cooked:n},r.tail))};Parser.prototype.parseTemplateElement=function(){if(this.lookahead.type!==10){this.throwUnexpectedToken()}var e=this.createNode();var r=this.nextToken();var t=r.value;var i=r.cooked;return this.finalize(e,new u.TemplateElement({raw:t,cooked:i},r.tail))};Parser.prototype.parseTemplateLiteral=function(){var e=this.createNode();var r=[];var t=[];var i=this.parseTemplateHead();t.push(i);while(!i.tail){r.push(this.parseExpression());i=this.parseTemplateElement();t.push(i)}return this.finalize(e,new u.TemplateLiteral(t,r))};Parser.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case o.Syntax.Identifier:case o.Syntax.MemberExpression:case o.Syntax.RestElement:case o.Syntax.AssignmentPattern:break;case o.Syntax.SpreadElement:e.type=o.Syntax.RestElement;this.reinterpretExpressionAsPattern(e.argument);break;case o.Syntax.ArrayExpression:e.type=o.Syntax.ArrayPattern;for(var r=0;r")){this.expect("=>")}e={type:l,params:[],async:false}}else{var r=this.lookahead;var t=[];if(this.match("...")){e=this.parseRestElement(t);this.expect(")");if(!this.match("=>")){this.expect("=>")}e={type:l,params:[e],async:false}}else{var i=false;this.context.isBindingElement=true;e=this.inheritCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];this.context.isAssignmentTarget=false;n.push(e);while(this.lookahead.type!==2){if(!this.match(",")){break}this.nextToken();if(this.match(")")){this.nextToken();for(var a=0;a")){this.expect("=>")}this.context.isBindingElement=false;for(var a=0;a")){if(e.type===o.Syntax.Identifier&&e.name==="yield"){i=true;e={type:l,params:[e],async:false}}if(!i){if(!this.context.isBindingElement){this.throwUnexpectedToken(this.lookahead)}if(e.type===o.Syntax.SequenceExpression){for(var a=0;a")){for(var o=0;o0){this.nextToken();this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var n=[e,this.lookahead];var a=r;var s=this.isolateCoverGrammar(this.parseExponentiationExpression);var o=[a,t.value,s];var f=[i];while(true){i=this.binaryPrecedence(this.lookahead);if(i<=0){break}while(o.length>2&&i<=f[f.length-1]){s=o.pop();var l=o.pop();f.pop();a=o.pop();n.pop();var c=this.startNode(n[n.length-1]);o.push(this.finalize(c,new u.BinaryExpression(l,a,s)))}o.push(this.nextToken().value);f.push(i);n.push(this.lookahead);o.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=o.length-1;r=o[h];var p=n.pop();while(h>1){var v=n.pop();var d=p&&p.lineStart;var c=this.startNode(v,d);var l=o[h-1];r=this.finalize(c,new u.BinaryExpression(l,o[h-2],r));h-=2;p=v}}return r};Parser.prototype.parseConditionalExpression=function(){var e=this.lookahead;var r=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var t=this.context.allowIn;this.context.allowIn=true;var i=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=t;this.expect(":");var n=this.isolateCoverGrammar(this.parseAssignmentExpression);r=this.finalize(this.startNode(e),new u.ConditionalExpression(r,i,n));this.context.isAssignmentTarget=false;this.context.isBindingElement=false}return r};Parser.prototype.checkPatternParam=function(e,r){switch(r.type){case o.Syntax.Identifier:this.validateParam(e,r,r.name);break;case o.Syntax.RestElement:this.checkPatternParam(e,r.argument);break;case o.Syntax.AssignmentPattern:this.checkPatternParam(e,r.left);break;case o.Syntax.ArrayPattern:for(var t=0;t")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var n=e.async;var s=this.reinterpretAsCoverFormalsList(e);if(s){if(this.hasLineTerminator){this.tolerateUnexpectedToken(this.lookahead)}this.context.firstCoverInitializedNameError=null;var f=this.context.strict;var c=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var h=this.context.allowYield;var p=this.context.await;this.context.allowYield=true;this.context.await=n;var v=this.startNode(r);this.expect("=>");var d=void 0;if(this.match("{")){var D=this.context.allowIn;this.context.allowIn=true;d=this.parseFunctionSourceElements();this.context.allowIn=D}else{d=this.isolateCoverGrammar(this.parseAssignmentExpression)}var m=d.type!==o.Syntax.BlockStatement;if(this.context.strict&&s.firstRestricted){this.throwUnexpectedToken(s.firstRestricted,s.message)}if(this.context.strict&&s.stricted){this.tolerateUnexpectedToken(s.stricted,s.message)}e=n?this.finalize(v,new u.AsyncArrowFunctionExpression(s.params,d,m)):this.finalize(v,new u.ArrowFunctionExpression(s.params,d,m));this.context.strict=f;this.context.allowStrictDirective=c;this.context.allowYield=h;this.context.await=p}}else{if(this.matchAssign()){if(!this.context.isAssignmentTarget){this.tolerateError(a.Messages.InvalidLHSInAssignment)}if(this.context.strict&&e.type===o.Syntax.Identifier){var g=e;if(this.scanner.isRestrictedWord(g.name)){this.tolerateUnexpectedToken(t,a.Messages.StrictLHSAssignment)}if(this.scanner.isStrictModeReservedWord(g.name)){this.tolerateUnexpectedToken(t,a.Messages.StrictReservedWord)}}if(!this.match("=")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false}else{this.reinterpretExpressionAsPattern(e)}t=this.nextToken();var E=t.value;var A=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(r),new u.AssignmentExpression(E,e,A));this.context.firstCoverInitializedNameError=null}}}return e};Parser.prototype.parseExpression=function(){var e=this.lookahead;var r=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var t=[];t.push(r);while(this.lookahead.type!==2){if(!this.match(",")){break}this.nextToken();t.push(this.isolateCoverGrammar(this.parseAssignmentExpression))}r=this.finalize(this.startNode(e),new u.SequenceExpression(t))}return r};Parser.prototype.parseStatementListItem=function(){var e;this.context.isAssignmentTarget=true;this.context.isBindingElement=true;if(this.lookahead.type===4){switch(this.lookahead.value){case"export":if(!this.context.isModule){this.tolerateUnexpectedToken(this.lookahead,a.Messages.IllegalExportDeclaration)}e=this.parseExportDeclaration();break;case"import":if(!this.context.isModule){this.tolerateUnexpectedToken(this.lookahead,a.Messages.IllegalImportDeclaration)}e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:false});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:false}):this.parseStatement();break;default:e=this.parseStatement();break}}else{e=this.parseStatement()}return e};Parser.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");var r=[];while(true){if(this.match("}")){break}r.push(this.parseStatementListItem())}this.expect("}");return this.finalize(e,new u.BlockStatement(r))};Parser.prototype.parseLexicalBinding=function(e,r){var t=this.createNode();var i=[];var n=this.parsePattern(i,e);if(this.context.strict&&n.type===o.Syntax.Identifier){if(this.scanner.isRestrictedWord(n.name)){this.tolerateError(a.Messages.StrictVarName)}}var s=null;if(e==="const"){if(!this.matchKeyword("in")&&!this.matchContextualKeyword("of")){if(this.match("=")){this.nextToken();s=this.isolateCoverGrammar(this.parseAssignmentExpression)}else{this.throwError(a.Messages.DeclarationMissingInitializer,"const")}}}else if(!r.inFor&&n.type!==o.Syntax.Identifier||this.match("=")){this.expect("=");s=this.isolateCoverGrammar(this.parseAssignmentExpression)}return this.finalize(t,new u.VariableDeclarator(n,s))};Parser.prototype.parseBindingList=function(e,r){var t=[this.parseLexicalBinding(e,r)];while(this.match(",")){this.nextToken();t.push(this.parseLexicalBinding(e,r))}return t};Parser.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var r=this.scanner.lex();this.scanner.restoreState(e);return r.type===3||r.type===7&&r.value==="["||r.type===7&&r.value==="{"||r.type===4&&r.value==="let"||r.type===4&&r.value==="yield"};Parser.prototype.parseLexicalDeclaration=function(e){var r=this.createNode();var t=this.nextToken().value;i.assert(t==="let"||t==="const","Lexical declaration must be either let or const");var n=this.parseBindingList(t,e);this.consumeSemicolon();return this.finalize(r,new u.VariableDeclaration(n,t))};Parser.prototype.parseBindingRestElement=function(e,r){var t=this.createNode();this.expect("...");var i=this.parsePattern(e,r);return this.finalize(t,new u.RestElement(i))};Parser.prototype.parseArrayPattern=function(e,r){var t=this.createNode();this.expect("[");var i=[];while(!this.match("]")){if(this.match(",")){this.nextToken();i.push(null)}else{if(this.match("...")){i.push(this.parseBindingRestElement(e,r));break}else{i.push(this.parsePatternWithDefault(e,r))}if(!this.match("]")){this.expect(",")}}}this.expect("]");return this.finalize(t,new u.ArrayPattern(i))};Parser.prototype.parsePropertyPattern=function(e,r){var t=this.createNode();var i=false;var n=false;var a=false;var s;var o;if(this.lookahead.type===3){var f=this.lookahead;s=this.parseVariableIdentifier();var l=this.finalize(t,new u.Identifier(f.value));if(this.match("=")){e.push(f);n=true;this.nextToken();var c=this.parseAssignmentExpression();o=this.finalize(this.startNode(f),new u.AssignmentPattern(l,c))}else if(!this.match(":")){e.push(f);n=true;o=l}else{this.expect(":");o=this.parsePatternWithDefault(e,r)}}else{i=this.match("[");s=this.parseObjectPropertyKey();this.expect(":");o=this.parsePatternWithDefault(e,r)}return this.finalize(t,new u.Property("init",s,i,o,a,n))};Parser.prototype.parseObjectPattern=function(e,r){var t=this.createNode();var i=[];this.expect("{");while(!this.match("}")){i.push(this.parsePropertyPattern(e,r));if(!this.match("}")){this.expect(",")}}this.expect("}");return this.finalize(t,new u.ObjectPattern(i))};Parser.prototype.parsePattern=function(e,r){var t;if(this.match("[")){t=this.parseArrayPattern(e,r)}else if(this.match("{")){t=this.parseObjectPattern(e,r)}else{if(this.matchKeyword("let")&&(r==="const"||r==="let")){this.tolerateUnexpectedToken(this.lookahead,a.Messages.LetInLexicalBinding)}e.push(this.lookahead);t=this.parseVariableIdentifier(r)}return t};Parser.prototype.parsePatternWithDefault=function(e,r){var t=this.lookahead;var i=this.parsePattern(e,r);if(this.match("=")){this.nextToken();var n=this.context.allowYield;this.context.allowYield=true;var a=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=n;i=this.finalize(this.startNode(t),new u.AssignmentPattern(i,a))}return i};Parser.prototype.parseVariableIdentifier=function(e){var r=this.createNode();var t=this.nextToken();if(t.type===4&&t.value==="yield"){if(this.context.strict){this.tolerateUnexpectedToken(t,a.Messages.StrictReservedWord)}else if(!this.context.allowYield){this.throwUnexpectedToken(t)}}else if(t.type!==3){if(this.context.strict&&t.type===4&&this.scanner.isStrictModeReservedWord(t.value)){this.tolerateUnexpectedToken(t,a.Messages.StrictReservedWord)}else{if(this.context.strict||t.value!=="let"||e!=="var"){this.throwUnexpectedToken(t)}}}else if((this.context.isModule||this.context.await)&&t.type===3&&t.value==="await"){this.tolerateUnexpectedToken(t)}return this.finalize(r,new u.Identifier(t.value))};Parser.prototype.parseVariableDeclaration=function(e){var r=this.createNode();var t=[];var i=this.parsePattern(t,"var");if(this.context.strict&&i.type===o.Syntax.Identifier){if(this.scanner.isRestrictedWord(i.name)){this.tolerateError(a.Messages.StrictVarName)}}var n=null;if(this.match("=")){this.nextToken();n=this.isolateCoverGrammar(this.parseAssignmentExpression)}else if(i.type!==o.Syntax.Identifier&&!e.inFor){this.expect("=")}return this.finalize(r,new u.VariableDeclarator(i,n))};Parser.prototype.parseVariableDeclarationList=function(e){var r={inFor:e.inFor};var t=[];t.push(this.parseVariableDeclaration(r));while(this.match(",")){this.nextToken();t.push(this.parseVariableDeclaration(r))}return t};Parser.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var r=this.parseVariableDeclarationList({inFor:false});this.consumeSemicolon();return this.finalize(e,new u.VariableDeclaration(r,"var"))};Parser.prototype.parseEmptyStatement=function(){var e=this.createNode();this.expect(";");return this.finalize(e,new u.EmptyStatement)};Parser.prototype.parseExpressionStatement=function(){var e=this.createNode();var r=this.parseExpression();this.consumeSemicolon();return this.finalize(e,new u.ExpressionStatement(r))};Parser.prototype.parseIfClause=function(){if(this.context.strict&&this.matchKeyword("function")){this.tolerateError(a.Messages.StrictFunction)}return this.parseStatement()};Parser.prototype.parseIfStatement=function(){var e=this.createNode();var r;var t=null;this.expectKeyword("if");this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());r=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");r=this.parseIfClause();if(this.matchKeyword("else")){this.nextToken();t=this.parseIfClause()}}return this.finalize(e,new u.IfStatement(i,r,t))};Parser.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var r=this.context.inIteration;this.context.inIteration=true;var t=this.parseStatement();this.context.inIteration=r;this.expectKeyword("while");this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken())}else{this.expect(")");if(this.match(";")){this.nextToken()}}return this.finalize(e,new u.DoWhileStatement(t,i))};Parser.prototype.parseWhileStatement=function(){var e=this.createNode();var r;this.expectKeyword("while");this.expect("(");var t=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());r=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");var i=this.context.inIteration;this.context.inIteration=true;r=this.parseStatement();this.context.inIteration=i}return this.finalize(e,new u.WhileStatement(t,r))};Parser.prototype.parseForStatement=function(){var e=null;var r=null;var t=null;var i=true;var n,s;var f=this.createNode();this.expectKeyword("for");this.expect("(");if(this.match(";")){this.nextToken()}else{if(this.matchKeyword("var")){e=this.createNode();this.nextToken();var l=this.context.allowIn;this.context.allowIn=false;var c=this.parseVariableDeclarationList({inFor:true});this.context.allowIn=l;if(c.length===1&&this.matchKeyword("in")){var h=c[0];if(h.init&&(h.id.type===o.Syntax.ArrayPattern||h.id.type===o.Syntax.ObjectPattern||this.context.strict)){this.tolerateError(a.Messages.ForInOfLoopInitializer,"for-in")}e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.nextToken();n=e;s=this.parseExpression();e=null}else if(c.length===1&&c[0].init===null&&this.matchContextualKeyword("of")){e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.nextToken();n=e;s=this.parseAssignmentExpression();e=null;i=false}else{e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.expect(";")}}else if(this.matchKeyword("const")||this.matchKeyword("let")){e=this.createNode();var p=this.nextToken().value;if(!this.context.strict&&this.lookahead.value==="in"){e=this.finalize(e,new u.Identifier(p));this.nextToken();n=e;s=this.parseExpression();e=null}else{var l=this.context.allowIn;this.context.allowIn=false;var c=this.parseBindingList(p,{inFor:true});this.context.allowIn=l;if(c.length===1&&c[0].init===null&&this.matchKeyword("in")){e=this.finalize(e,new u.VariableDeclaration(c,p));this.nextToken();n=e;s=this.parseExpression();e=null}else if(c.length===1&&c[0].init===null&&this.matchContextualKeyword("of")){e=this.finalize(e,new u.VariableDeclaration(c,p));this.nextToken();n=e;s=this.parseAssignmentExpression();e=null;i=false}else{this.consumeSemicolon();e=this.finalize(e,new u.VariableDeclaration(c,p))}}}else{var v=this.lookahead;var l=this.context.allowIn;this.context.allowIn=false;e=this.inheritCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=l;if(this.matchKeyword("in")){if(!this.context.isAssignmentTarget||e.type===o.Syntax.AssignmentExpression){this.tolerateError(a.Messages.InvalidLHSInForIn)}this.nextToken();this.reinterpretExpressionAsPattern(e);n=e;s=this.parseExpression();e=null}else if(this.matchContextualKeyword("of")){if(!this.context.isAssignmentTarget||e.type===o.Syntax.AssignmentExpression){this.tolerateError(a.Messages.InvalidLHSInForLoop)}this.nextToken();this.reinterpretExpressionAsPattern(e);n=e;s=this.parseAssignmentExpression();e=null;i=false}else{if(this.match(",")){var d=[e];while(this.match(",")){this.nextToken();d.push(this.isolateCoverGrammar(this.parseAssignmentExpression))}e=this.finalize(this.startNode(v),new u.SequenceExpression(d))}this.expect(";")}}}if(typeof n==="undefined"){if(!this.match(";")){r=this.parseExpression()}this.expect(";");if(!this.match(")")){t=this.parseExpression()}}var D;if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());D=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");var m=this.context.inIteration;this.context.inIteration=true;D=this.isolateCoverGrammar(this.parseStatement);this.context.inIteration=m}return typeof n==="undefined"?this.finalize(f,new u.ForStatement(e,r,t,D)):i?this.finalize(f,new u.ForInStatement(n,s,D)):this.finalize(f,new u.ForOfStatement(n,s,D))};Parser.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var r=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var t=this.parseVariableIdentifier();r=t;var i="$"+t.name;if(!Object.prototype.hasOwnProperty.call(this.context.labelSet,i)){this.throwError(a.Messages.UnknownLabel,t.name)}}this.consumeSemicolon();if(r===null&&!this.context.inIteration){this.throwError(a.Messages.IllegalContinue)}return this.finalize(e,new u.ContinueStatement(r))};Parser.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var r=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var t=this.parseVariableIdentifier();var i="$"+t.name;if(!Object.prototype.hasOwnProperty.call(this.context.labelSet,i)){this.throwError(a.Messages.UnknownLabel,t.name)}r=t}this.consumeSemicolon();if(r===null&&!this.context.inIteration&&!this.context.inSwitch){this.throwError(a.Messages.IllegalBreak)}return this.finalize(e,new u.BreakStatement(r))};Parser.prototype.parseReturnStatement=function(){if(!this.context.inFunctionBody){this.tolerateError(a.Messages.IllegalReturn)}var e=this.createNode();this.expectKeyword("return");var r=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==2||this.lookahead.type===8||this.lookahead.type===10;var t=r?this.parseExpression():null;this.consumeSemicolon();return this.finalize(e,new u.ReturnStatement(t))};Parser.prototype.parseWithStatement=function(){if(this.context.strict){this.tolerateError(a.Messages.StrictModeWith)}var e=this.createNode();var r;this.expectKeyword("with");this.expect("(");var t=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());r=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");r=this.parseStatement()}return this.finalize(e,new u.WithStatement(t,r))};Parser.prototype.parseSwitchCase=function(){var e=this.createNode();var r;if(this.matchKeyword("default")){this.nextToken();r=null}else{this.expectKeyword("case");r=this.parseExpression()}this.expect(":");var t=[];while(true){if(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case")){break}t.push(this.parseStatementListItem())}return this.finalize(e,new u.SwitchCase(r,t))};Parser.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch");this.expect("(");var r=this.parseExpression();this.expect(")");var t=this.context.inSwitch;this.context.inSwitch=true;var i=[];var n=false;this.expect("{");while(true){if(this.match("}")){break}var s=this.parseSwitchCase();if(s.test===null){if(n){this.throwError(a.Messages.MultipleDefaultsInSwitch)}n=true}i.push(s)}this.expect("}");this.context.inSwitch=t;return this.finalize(e,new u.SwitchStatement(r,i))};Parser.prototype.parseLabelledStatement=function(){var e=this.createNode();var r=this.parseExpression();var t;if(r.type===o.Syntax.Identifier&&this.match(":")){this.nextToken();var i=r;var n="$"+i.name;if(Object.prototype.hasOwnProperty.call(this.context.labelSet,n)){this.throwError(a.Messages.Redeclaration,"Label",i.name)}this.context.labelSet[n]=true;var s=void 0;if(this.matchKeyword("class")){this.tolerateUnexpectedToken(this.lookahead);s=this.parseClassDeclaration()}else if(this.matchKeyword("function")){var f=this.lookahead;var l=this.parseFunctionDeclaration();if(this.context.strict){this.tolerateUnexpectedToken(f,a.Messages.StrictFunction)}else if(l.generator){this.tolerateUnexpectedToken(f,a.Messages.GeneratorInLegacyContext)}s=l}else{s=this.parseStatement()}delete this.context.labelSet[n];t=new u.LabeledStatement(i,s)}else{this.consumeSemicolon();t=new u.ExpressionStatement(r)}return this.finalize(e,t)};Parser.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw");if(this.hasLineTerminator){this.throwError(a.Messages.NewlineAfterThrow)}var r=this.parseExpression();this.consumeSemicolon();return this.finalize(e,new u.ThrowStatement(r))};Parser.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch");this.expect("(");if(this.match(")")){this.throwUnexpectedToken(this.lookahead)}var r=[];var t=this.parsePattern(r);var i={};for(var n=0;n0){this.tolerateError(a.Messages.BadGetterArity)}var n=this.parsePropertyMethod(i);this.context.allowYield=t;return this.finalize(e,new u.FunctionExpression(null,i.params,n,r))};Parser.prototype.parseSetterMethod=function(){var e=this.createNode();var r=false;var t=this.context.allowYield;this.context.allowYield=!r;var i=this.parseFormalParameters();if(i.params.length!==1){this.tolerateError(a.Messages.BadSetterArity)}else if(i.params[0]instanceof u.RestElement){this.tolerateError(a.Messages.BadSetterRestParameter)}var n=this.parsePropertyMethod(i);this.context.allowYield=t;return this.finalize(e,new u.FunctionExpression(null,i.params,n,r))};Parser.prototype.parseGeneratorMethod=function(){var e=this.createNode();var r=true;var t=this.context.allowYield;this.context.allowYield=true;var i=this.parseFormalParameters();this.context.allowYield=false;var n=this.parsePropertyMethod(i);this.context.allowYield=t;return this.finalize(e,new u.FunctionExpression(null,i.params,n,r))};Parser.prototype.isStartOfExpression=function(){var e=true;var r=this.lookahead.value;switch(this.lookahead.type){case 7:e=r==="["||r==="("||r==="{"||r==="+"||r==="-"||r==="!"||r==="~"||r==="++"||r==="--"||r==="/"||r==="/=";break;case 4:e=r==="class"||r==="delete"||r==="function"||r==="let"||r==="new"||r==="super"||r==="this"||r==="typeof"||r==="void"||r==="yield";break;default:break}return e};Parser.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var r=null;var t=false;if(!this.hasLineTerminator){var i=this.context.allowYield;this.context.allowYield=false;t=this.match("*");if(t){this.nextToken();r=this.parseAssignmentExpression()}else if(this.isStartOfExpression()){r=this.parseAssignmentExpression()}this.context.allowYield=i}return this.finalize(e,new u.YieldExpression(r,t))};Parser.prototype.parseClassElement=function(e){var r=this.lookahead;var t=this.createNode();var i="";var n=null;var s=null;var o=false;var f=false;var l=false;var c=false;if(this.match("*")){this.nextToken()}else{o=this.match("[");n=this.parseObjectPropertyKey();var h=n;if(h.name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))){r=this.lookahead;l=true;o=this.match("[");if(this.match("*")){this.nextToken()}else{n=this.parseObjectPropertyKey()}}if(r.type===3&&!this.hasLineTerminator&&r.value==="async"){var p=this.lookahead.value;if(p!==":"&&p!=="("&&p!=="*"){c=true;r=this.lookahead;n=this.parseObjectPropertyKey();if(r.type===3&&r.value==="constructor"){this.tolerateUnexpectedToken(r,a.Messages.ConstructorIsAsync)}}}}var v=this.qualifiedPropertyName(this.lookahead);if(r.type===3){if(r.value==="get"&&v){i="get";o=this.match("[");n=this.parseObjectPropertyKey();this.context.allowYield=false;s=this.parseGetterMethod()}else if(r.value==="set"&&v){i="set";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseSetterMethod()}}else if(r.type===7&&r.value==="*"&&v){i="init";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseGeneratorMethod();f=true}if(!i&&n&&this.match("(")){i="init";s=c?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction();f=true}if(!i){this.throwUnexpectedToken(this.lookahead)}if(i==="init"){i="method"}if(!o){if(l&&this.isPropertyKey(n,"prototype")){this.throwUnexpectedToken(r,a.Messages.StaticPrototype)}if(!l&&this.isPropertyKey(n,"constructor")){if(i!=="method"||!f||s&&s.generator){this.throwUnexpectedToken(r,a.Messages.ConstructorSpecialMethod)}if(e.value){this.throwUnexpectedToken(r,a.Messages.DuplicateConstructor)}else{e.value=true}i="constructor"}}return this.finalize(t,new u.MethodDefinition(n,o,s,i,l))};Parser.prototype.parseClassElementList=function(){var e=[];var r={value:false};this.expect("{");while(!this.match("}")){if(this.match(";")){this.nextToken()}else{e.push(this.parseClassElement(r))}}this.expect("}");return e};Parser.prototype.parseClassBody=function(){var e=this.createNode();var r=this.parseClassElementList();return this.finalize(e,new u.ClassBody(r))};Parser.prototype.parseClassDeclaration=function(e){var r=this.createNode();var t=this.context.strict;this.context.strict=true;this.expectKeyword("class");var i=e&&this.lookahead.type!==3?null:this.parseVariableIdentifier();var n=null;if(this.matchKeyword("extends")){this.nextToken();n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall)}var a=this.parseClassBody();this.context.strict=t;return this.finalize(r,new u.ClassDeclaration(i,n,a))};Parser.prototype.parseClassExpression=function(){var e=this.createNode();var r=this.context.strict;this.context.strict=true;this.expectKeyword("class");var t=this.lookahead.type===3?this.parseVariableIdentifier():null;var i=null;if(this.matchKeyword("extends")){this.nextToken();i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall)}var n=this.parseClassBody();this.context.strict=r;return this.finalize(e,new u.ClassExpression(t,i,n))};Parser.prototype.parseModule=function(){this.context.strict=true;this.context.isModule=true;this.scanner.isModule=true;var e=this.createNode();var r=this.parseDirectivePrologues();while(this.lookahead.type!==2){r.push(this.parseStatementListItem())}return this.finalize(e,new u.Module(r))};Parser.prototype.parseScript=function(){var e=this.createNode();var r=this.parseDirectivePrologues();while(this.lookahead.type!==2){r.push(this.parseStatementListItem())}return this.finalize(e,new u.Script(r))};Parser.prototype.parseModuleSpecifier=function(){var e=this.createNode();if(this.lookahead.type!==8){this.throwError(a.Messages.InvalidModuleSpecifier)}var r=this.nextToken();var t=this.getTokenRaw(r);return this.finalize(e,new u.Literal(r.value,t))};Parser.prototype.parseImportSpecifier=function(){var e=this.createNode();var r;var t;if(this.lookahead.type===3){r=this.parseVariableIdentifier();t=r;if(this.matchContextualKeyword("as")){this.nextToken();t=this.parseVariableIdentifier()}}else{r=this.parseIdentifierName();t=r;if(this.matchContextualKeyword("as")){this.nextToken();t=this.parseVariableIdentifier()}else{this.throwUnexpectedToken(this.nextToken())}}return this.finalize(e,new u.ImportSpecifier(t,r))};Parser.prototype.parseNamedImports=function(){this.expect("{");var e=[];while(!this.match("}")){e.push(this.parseImportSpecifier());if(!this.match("}")){this.expect(",")}}this.expect("}");return e};Parser.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode();var r=this.parseIdentifierName();return this.finalize(e,new u.ImportDefaultSpecifier(r))};Parser.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*");if(!this.matchContextualKeyword("as")){this.throwError(a.Messages.NoAsAfterImportNamespace)}this.nextToken();var r=this.parseIdentifierName();return this.finalize(e,new u.ImportNamespaceSpecifier(r))};Parser.prototype.parseImportDeclaration=function(){if(this.context.inFunctionBody){this.throwError(a.Messages.IllegalImportDeclaration)}var e=this.createNode();this.expectKeyword("import");var r;var t=[];if(this.lookahead.type===8){r=this.parseModuleSpecifier()}else{if(this.match("{")){t=t.concat(this.parseNamedImports())}else if(this.match("*")){t.push(this.parseImportNamespaceSpecifier())}else if(this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")){t.push(this.parseImportDefaultSpecifier());if(this.match(",")){this.nextToken();if(this.match("*")){t.push(this.parseImportNamespaceSpecifier())}else if(this.match("{")){t=t.concat(this.parseNamedImports())}else{this.throwUnexpectedToken(this.lookahead)}}}else{this.throwUnexpectedToken(this.nextToken())}if(!this.matchContextualKeyword("from")){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();r=this.parseModuleSpecifier()}this.consumeSemicolon();return this.finalize(e,new u.ImportDeclaration(t,r))};Parser.prototype.parseExportSpecifier=function(){var e=this.createNode();var r=this.parseIdentifierName();var t=r;if(this.matchContextualKeyword("as")){this.nextToken();t=this.parseIdentifierName()}return this.finalize(e,new u.ExportSpecifier(r,t))};Parser.prototype.parseExportDeclaration=function(){if(this.context.inFunctionBody){this.throwError(a.Messages.IllegalExportDeclaration)}var e=this.createNode();this.expectKeyword("export");var r;if(this.matchKeyword("default")){this.nextToken();if(this.matchKeyword("function")){var t=this.parseFunctionDeclaration(true);r=this.finalize(e,new u.ExportDefaultDeclaration(t))}else if(this.matchKeyword("class")){var t=this.parseClassDeclaration(true);r=this.finalize(e,new u.ExportDefaultDeclaration(t))}else if(this.matchContextualKeyword("async")){var t=this.matchAsyncFunction()?this.parseFunctionDeclaration(true):this.parseAssignmentExpression();r=this.finalize(e,new u.ExportDefaultDeclaration(t))}else{if(this.matchContextualKeyword("from")){this.throwError(a.Messages.UnexpectedToken,this.lookahead.value)}var t=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon();r=this.finalize(e,new u.ExportDefaultDeclaration(t))}}else if(this.match("*")){this.nextToken();if(!this.matchContextualKeyword("from")){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();var n=this.parseModuleSpecifier();this.consumeSemicolon();r=this.finalize(e,new u.ExportAllDeclaration(n))}else if(this.lookahead.type===4){var t=void 0;switch(this.lookahead.value){case"let":case"const":t=this.parseLexicalDeclaration({inFor:false});break;case"var":case"class":case"function":t=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}r=this.finalize(e,new u.ExportNamedDeclaration(t,[],null))}else if(this.matchAsyncFunction()){var t=this.parseFunctionDeclaration();r=this.finalize(e,new u.ExportNamedDeclaration(t,[],null))}else{var s=[];var o=null;var f=false;this.expect("{");while(!this.match("}")){f=f||this.matchKeyword("default");s.push(this.parseExportSpecifier());if(!this.match("}")){this.expect(",")}}this.expect("}");if(this.matchContextualKeyword("from")){this.nextToken();o=this.parseModuleSpecifier();this.consumeSemicolon()}else if(f){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}else{this.consumeSemicolon()}r=this.finalize(e,new u.ExportNamedDeclaration(null,s,o))}return r};return Parser}();r.Parser=c},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});function assert(e,r){if(!e){throw new Error("ASSERT: "+r)}}r.assert=assert},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});var t=function(){function ErrorHandler(){this.errors=[];this.tolerant=false}ErrorHandler.prototype.recordError=function(e){this.errors.push(e)};ErrorHandler.prototype.tolerate=function(e){if(this.tolerant){this.recordError(e)}else{throw e}};ErrorHandler.prototype.constructError=function(e,r){var t=new Error(e);try{throw t}catch(e){if(Object.create&&Object.defineProperty){t=Object.create(e);Object.defineProperty(t,"column",{value:r})}}return t};ErrorHandler.prototype.createError=function(e,r,t,i){var n="Line "+r+": "+i;var a=this.constructError(n,t);a.index=e;a.lineNumber=r;a.description=i;return a};ErrorHandler.prototype.throwError=function(e,r,t,i){throw this.createError(e,r,t,i)};ErrorHandler.prototype.tolerateError=function(e,r,t,i){var n=this.createError(e,r,t,i);if(this.tolerant){this.recordError(n)}else{throw n}};return ErrorHandler}();r.ErrorHandler=t},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(9);var n=t(4);var a=t(11);function hexValue(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function octalValue(e){return"01234567".indexOf(e)}var u=function(){function Scanner(e,r){this.source=e;this.errorHandler=r;this.trackComment=false;this.isModule=false;this.length=e.length;this.index=0;this.lineNumber=e.length>0?1:0;this.lineStart=0;this.curlyStack=[]}Scanner.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}};Scanner.prototype.restoreState=function(e){this.index=e.index;this.lineNumber=e.lineNumber;this.lineStart=e.lineStart};Scanner.prototype.eof=function(){return this.index>=this.length};Scanner.prototype.throwUnexpectedToken=function(e){if(e===void 0){e=a.Messages.UnexpectedTokenIllegal}return this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)};Scanner.prototype.tolerateUnexpectedToken=function(e){if(e===void 0){e=a.Messages.UnexpectedTokenIllegal}this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)};Scanner.prototype.skipSingleLineComment=function(e){var r=[];var t,i;if(this.trackComment){r=[];t=this.index-e;i={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}}}while(!this.eof()){var a=this.source.charCodeAt(this.index);++this.index;if(n.Character.isLineTerminator(a)){if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart-1};var u={multiLine:false,slice:[t+e,this.index-1],range:[t,this.index-1],loc:i};r.push(u)}if(a===13&&this.source.charCodeAt(this.index)===10){++this.index}++this.lineNumber;this.lineStart=this.index;return r}}if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart};var u={multiLine:false,slice:[t+e,this.index],range:[t,this.index],loc:i};r.push(u)}return r};Scanner.prototype.skipMultiLineComment=function(){var e=[];var r,t;if(this.trackComment){e=[];r=this.index-2;t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}}}while(!this.eof()){var i=this.source.charCodeAt(this.index);if(n.Character.isLineTerminator(i)){if(i===13&&this.source.charCodeAt(this.index+1)===10){++this.index}++this.lineNumber;++this.index;this.lineStart=this.index}else if(i===42){if(this.source.charCodeAt(this.index+1)===47){this.index+=2;if(this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var a={multiLine:true,slice:[r+2,this.index-2],range:[r,this.index],loc:t};e.push(a)}return e}++this.index}else{++this.index}}if(this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var a={multiLine:true,slice:[r+2,this.index],range:[r,this.index],loc:t};e.push(a)}this.tolerateUnexpectedToken();return e};Scanner.prototype.scanComments=function(){var e;if(this.trackComment){e=[]}var r=this.index===0;while(!this.eof()){var t=this.source.charCodeAt(this.index);if(n.Character.isWhiteSpace(t)){++this.index}else if(n.Character.isLineTerminator(t)){++this.index;if(t===13&&this.source.charCodeAt(this.index)===10){++this.index}++this.lineNumber;this.lineStart=this.index;r=true}else if(t===47){t=this.source.charCodeAt(this.index+1);if(t===47){this.index+=2;var i=this.skipSingleLineComment(2);if(this.trackComment){e=e.concat(i)}r=true}else if(t===42){this.index+=2;var i=this.skipMultiLineComment();if(this.trackComment){e=e.concat(i)}}else{break}}else if(r&&t===45){if(this.source.charCodeAt(this.index+1)===45&&this.source.charCodeAt(this.index+2)===62){this.index+=3;var i=this.skipSingleLineComment(3);if(this.trackComment){e=e.concat(i)}}else{break}}else if(t===60&&!this.isModule){if(this.source.slice(this.index+1,this.index+4)==="!--"){this.index+=4;var i=this.skipSingleLineComment(4);if(this.trackComment){e=e.concat(i)}}else{break}}else{break}}return e};Scanner.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return true;default:return false}};Scanner.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return true;default:return false}};Scanner.prototype.isRestrictedWord=function(e){return e==="eval"||e==="arguments"};Scanner.prototype.isKeyword=function(e){switch(e.length){case 2:return e==="if"||e==="in"||e==="do";case 3:return e==="var"||e==="for"||e==="new"||e==="try"||e==="let";case 4:return e==="this"||e==="else"||e==="case"||e==="void"||e==="with"||e==="enum";case 5:return e==="while"||e==="break"||e==="catch"||e==="throw"||e==="const"||e==="yield"||e==="class"||e==="super";case 6:return e==="return"||e==="typeof"||e==="delete"||e==="switch"||e==="export"||e==="import";case 7:return e==="default"||e==="finally"||e==="extends";case 8:return e==="function"||e==="continue"||e==="debugger";case 10:return e==="instanceof";default:return false}};Scanner.prototype.codePointAt=function(e){var r=this.source.charCodeAt(e);if(r>=55296&&r<=56319){var t=this.source.charCodeAt(e+1);if(t>=56320&&t<=57343){var i=r;r=(i-55296)*1024+t-56320+65536}}return r};Scanner.prototype.scanHexEscape=function(e){var r=e==="u"?4:2;var t=0;for(var i=0;i1114111||e!=="}"){this.throwUnexpectedToken()}return n.Character.fromCodePoint(r)};Scanner.prototype.getIdentifier=function(){var e=this.index++;while(!this.eof()){var r=this.source.charCodeAt(this.index);if(r===92){this.index=e;return this.getComplexIdentifier()}else if(r>=55296&&r<57343){this.index=e;return this.getComplexIdentifier()}if(n.Character.isIdentifierPart(r)){++this.index}else{break}}return this.source.slice(e,this.index)};Scanner.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index);var r=n.Character.fromCodePoint(e);this.index+=r.length;var t;if(e===92){if(this.source.charCodeAt(this.index)!==117){this.throwUnexpectedToken()}++this.index;if(this.source[this.index]==="{"){++this.index;t=this.scanUnicodeCodePointEscape()}else{t=this.scanHexEscape("u");if(t===null||t==="\\"||!n.Character.isIdentifierStart(t.charCodeAt(0))){this.throwUnexpectedToken()}}r=t}while(!this.eof()){e=this.codePointAt(this.index);if(!n.Character.isIdentifierPart(e)){break}t=n.Character.fromCodePoint(e);r+=t;this.index+=t.length;if(e===92){r=r.substr(0,r.length-1);if(this.source.charCodeAt(this.index)!==117){this.throwUnexpectedToken()}++this.index;if(this.source[this.index]==="{"){++this.index;t=this.scanUnicodeCodePointEscape()}else{t=this.scanHexEscape("u");if(t===null||t==="\\"||!n.Character.isIdentifierPart(t.charCodeAt(0))){this.throwUnexpectedToken()}}r+=t}}return r};Scanner.prototype.octalToDecimal=function(e){var r=e!=="0";var t=octalValue(e);if(!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))){r=true;t=t*8+octalValue(this.source[this.index++]);if("0123".indexOf(e)>=0&&!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))){t=t*8+octalValue(this.source[this.index++])}}return{code:t,octal:r}};Scanner.prototype.scanIdentifier=function(){var e;var r=this.index;var t=this.source.charCodeAt(r)===92?this.getComplexIdentifier():this.getIdentifier();if(t.length===1){e=3}else if(this.isKeyword(t)){e=4}else if(t==="null"){e=5}else if(t==="true"||t==="false"){e=1}else{e=3}if(e!==3&&r+t.length!==this.index){var i=this.index;this.index=r;this.tolerateUnexpectedToken(a.Messages.InvalidEscapedReservedWord);this.index=i}return{type:e,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}};Scanner.prototype.scanPunctuator=function(){var e=this.index;var r=this.source[this.index];switch(r){case"(":case"{":if(r==="{"){this.curlyStack.push("{")}++this.index;break;case".":++this.index;if(this.source[this.index]==="."&&this.source[this.index+1]==="."){this.index+=2;r="..."}break;case"}":++this.index;this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:r=this.source.substr(this.index,4);if(r===">>>="){this.index+=4}else{r=r.substr(0,3);if(r==="==="||r==="!=="||r===">>>"||r==="<<="||r===">>="||r==="**="){this.index+=3}else{r=r.substr(0,2);if(r==="&&"||r==="||"||r==="=="||r==="!="||r==="+="||r==="-="||r==="*="||r==="/="||r==="++"||r==="--"||r==="<<"||r===">>"||r==="&="||r==="|="||r==="^="||r==="%="||r==="<="||r===">="||r==="=>"||r==="**"){this.index+=2}else{r=this.source[this.index];if("<>=!+-*%&|^/".indexOf(r)>=0){++this.index}}}}}if(this.index===e){this.throwUnexpectedToken()}return{type:7,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanHexLiteral=function(e){var r="";while(!this.eof()){if(!n.Character.isHexDigit(this.source.charCodeAt(this.index))){break}r+=this.source[this.index++]}if(r.length===0){this.throwUnexpectedToken()}if(n.Character.isIdentifierStart(this.source.charCodeAt(this.index))){this.throwUnexpectedToken()}return{type:6,value:parseInt("0x"+r,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanBinaryLiteral=function(e){var r="";var t;while(!this.eof()){t=this.source[this.index];if(t!=="0"&&t!=="1"){break}r+=this.source[this.index++]}if(r.length===0){this.throwUnexpectedToken()}if(!this.eof()){t=this.source.charCodeAt(this.index);if(n.Character.isIdentifierStart(t)||n.Character.isDecimalDigit(t)){this.throwUnexpectedToken()}}return{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanOctalLiteral=function(e,r){var t="";var i=false;if(n.Character.isOctalDigit(e.charCodeAt(0))){i=true;t="0"+this.source[this.index++]}else{++this.index}while(!this.eof()){if(!n.Character.isOctalDigit(this.source.charCodeAt(this.index))){break}t+=this.source[this.index++]}if(!i&&t.length===0){this.throwUnexpectedToken()}if(n.Character.isIdentifierStart(this.source.charCodeAt(this.index))||n.Character.isDecimalDigit(this.source.charCodeAt(this.index))){this.throwUnexpectedToken()}return{type:6,value:parseInt(t,8),octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}};Scanner.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0){i=i.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,r,i){var u=parseInt(r||i,16);if(u>1114111){n.throwUnexpectedToken(a.Messages.InvalidRegExp)}if(u<=65535){return String.fromCharCode(u)}return t}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,t)}try{RegExp(i)}catch(e){this.throwUnexpectedToken(a.Messages.InvalidRegExp)}try{return new RegExp(e,r)}catch(e){return null}};Scanner.prototype.scanRegExpBody=function(){var e=this.source[this.index];i.assert(e==="/","Regular expression literal must start with a slash");var r=this.source[this.index++];var t=false;var u=false;while(!this.eof()){e=this.source[this.index++];r+=e;if(e==="\\"){e=this.source[this.index++];if(n.Character.isLineTerminator(e.charCodeAt(0))){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}r+=e}else if(n.Character.isLineTerminator(e.charCodeAt(0))){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}else if(t){if(e==="]"){t=false}}else{if(e==="/"){u=true;break}else if(e==="["){t=true}}}if(!u){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}return r.substr(1,r.length-2)};Scanner.prototype.scanRegExpFlags=function(){var e="";var r="";while(!this.eof()){var t=this.source[this.index];if(!n.Character.isIdentifierPart(t.charCodeAt(0))){break}++this.index;if(t==="\\"&&!this.eof()){t=this.source[this.index];if(t==="u"){++this.index;var i=this.index;var a=this.scanHexEscape("u");if(a!==null){r+=a;for(e+="\\u";i=55296&&e<57343){if(n.Character.isIdentifierStart(this.codePointAt(this.index))){return this.scanIdentifier()}}return this.scanPunctuator()};return Scanner}();r.Scanner=u},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.TokenName={};r.TokenName[1]="Boolean";r.TokenName[2]="";r.TokenName[3]="Identifier";r.TokenName[4]="Keyword";r.TokenName[5]="Null";r.TokenName[6]="Numeric";r.TokenName[7]="Punctuator";r.TokenName[8]="String";r.TokenName[9]="RegularExpression";r.TokenName[10]="Template"},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(10);var n=t(12);var a=t(13);var u=function(){function Reader(){this.values=[];this.curly=this.paren=-1}Reader.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0};Reader.prototype.isRegexStart=function(){var e=this.values[this.values.length-1];var r=e!==null;switch(e){case"this":case"]":r=false;break;case")":var t=this.values[this.paren-1];r=t==="if"||t==="while"||t==="for"||t==="with";break;case"}":r=false;if(this.values[this.curly-3]==="function"){var i=this.values[this.curly-4];r=i?!this.beforeFunctionExpression(i):false}else if(this.values[this.curly-4]==="function"){var i=this.values[this.curly-5];r=i?!this.beforeFunctionExpression(i):true}break;default:break}return r};Reader.prototype.push=function(e){if(e.type===7||e.type===4){if(e.value==="{"){this.curly=this.values.length}else if(e.value==="("){this.paren=this.values.length}this.values.push(e.value)}else{this.values.push(null)}};return Reader}();var s=function(){function Tokenizer(e,r){this.errorHandler=new i.ErrorHandler;this.errorHandler.tolerant=r?typeof r.tolerant==="boolean"&&r.tolerant:false;this.scanner=new n.Scanner(e,this.errorHandler);this.scanner.trackComment=r?typeof r.comment==="boolean"&&r.comment:false;this.trackRange=r?typeof r.range==="boolean"&&r.range:false;this.trackLoc=r?typeof r.loc==="boolean"&&r.loc:false;this.buffer=[];this.reader=new u}Tokenizer.prototype.errors=function(){return this.errorHandler.errors};Tokenizer.prototype.getNextToken=function(){if(this.buffer.length===0){var e=this.scanner.scanComments();if(this.scanner.trackComment){for(var r=0;ri&&e[c+1]!==" ";c=a}}else if(!isPrintable(u)){return j}h=h&&isPlainSafe(u)}o=o||f&&(a-c-1>i&&e[c+1]!==" ")}if(!s&&!o){return h&&!n(e)?I:M}if(t>9&&needIndentIndicator(e)){return j}return o?R:L}function writeScalar(e,r,t,i){e.dump=function(){if(r.length===0){return"''"}if(!e.noCompatMode&&T.indexOf(r)!==-1){return"'"+r+"'"}var a=e.indent*Math.max(1,t);var u=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a);var s=i||e.flowLevel>-1&&t>=e.flowLevel;function testAmbiguity(r){return testImplicitResolving(e,r)}switch(chooseScalarStyle(r,s,e.indent,u,testAmbiguity)){case I:return r;case M:return"'"+r.replace(/'/g,"''")+"'";case L:return"|"+blockHeader(r,e.indent)+dropEndingNewline(indentString(r,a));case R:return">"+blockHeader(r,e.indent)+dropEndingNewline(indentString(foldString(r,u),a));case j:return'"'+escapeString(r,u)+'"';default:throw new n("impossible error: invalid scalar style")}}()}function blockHeader(e,r){var t=needIndentIndicator(e)?String(r):"";var i=e[e.length-1]==="\n";var n=i&&(e[e.length-2]==="\n"||e==="\n");var a=n?"+":i?"":"-";return t+a+"\n"}function dropEndingNewline(e){return e[e.length-1]==="\n"?e.slice(0,-1):e}function foldString(e,r){var t=/(\n+)([^\n]*)/g;var i=function(){var i=e.indexOf("\n");i=i!==-1?i:e.length;t.lastIndex=i;return foldLine(e.slice(0,i),r)}();var n=e[0]==="\n"||e[0]===" ";var a;var u;while(u=t.exec(e)){var s=u[1],o=u[2];a=o[0]===" ";i+=s+(!n&&!a&&o!==""?"\n":"")+foldLine(o,r);n=a}return i}function foldLine(e,r){if(e===""||e[0]===" ")return e;var t=/ [^ ]/g;var i;var n=0,a,u=0,s=0;var o="";while(i=t.exec(e)){s=i.index;if(s-n>r){a=u>n?u:s;o+="\n"+e.slice(n,a);n=a+1}u=s}o+="\n";if(e.length-n>r&&u>n){o+=e.slice(n,u)+"\n"+e.slice(u+1)}else{o+=e.slice(n)}return o.slice(1)}function escapeString(e){var r="";var t,i;var n;for(var a=0;a=55296&&t<=56319){i=e.charCodeAt(a+1);if(i>=56320&&i<=57343){r+=encodeHex((t-55296)*1024+i-56320+65536);a++;continue}}n=P[t];r+=!n&&isPrintable(t)?e[a]:n||encodeHex(t)}return r}function writeFlowSequence(e,r,t){var i="",n=e.tag,a,u;for(a=0,u=t.length;a1024)l+="? ";l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" ");if(!writeNode(e,r,f,false,false)){continue}l+=e.dump;i+=l}e.tag=n;e.dump="{"+i+"}"}function writeBlockMapping(e,r,t,i){var a="",u=e.tag,s=Object.keys(t),o,f,c,h,p,v;if(e.sortKeys===true){s.sort()}else if(typeof e.sortKeys==="function"){s.sort(e.sortKeys)}else if(e.sortKeys){throw new n("sortKeys must be a boolean or a function")}for(o=0,f=s.length;o1024;if(p){if(e.dump&&l===e.dump.charCodeAt(0)){v+="?"}else{v+="? "}}v+=e.dump;if(p){v+=generateNextLine(e,r)}if(!writeNode(e,r+1,h,true,p)){continue}if(e.dump&&l===e.dump.charCodeAt(0)){v+=":"}else{v+=": "}v+=e.dump;a+=v}e.tag=u;e.dump=a||"{}"}function detectType(e,r,t){var i,a,u,f,l,c;a=t?e.explicitTypes:e.implicitTypes;for(u=0,f=a.length;u tag resolver accepts not "'+c+'" style')}e.dump=i}return true}}return false}function writeNode(e,r,t,i,a,u){e.tag=null;e.dump=t;if(!detectType(e,t,false)){detectType(e,t,true)}var o=s.call(e.dump);if(i){i=e.flowLevel<0||e.flowLevel>r}var f=o==="[object Object]"||o==="[object Array]",l,c;if(f){l=e.duplicates.indexOf(t);c=l!==-1}if(e.tag!==null&&e.tag!=="?"||c||e.indent!==2&&r>0){a=false}if(c&&e.usedDuplicates[l]){e.dump="*ref_"+l}else{if(f&&c&&!e.usedDuplicates[l]){e.usedDuplicates[l]=true}if(o==="[object Object]"){if(i&&Object.keys(e.dump).length!==0){writeBlockMapping(e,r,e.dump,a);if(c){e.dump="&ref_"+l+e.dump}}else{writeFlowMapping(e,r,e.dump);if(c){e.dump="&ref_"+l+" "+e.dump}}}else if(o==="[object Array]"){var h=e.noArrayIndent&&r>0?r-1:r;if(i&&e.dump.length!==0){writeBlockSequence(e,h,e.dump,a);if(c){e.dump="&ref_"+l+e.dump}}else{writeFlowSequence(e,h,e.dump);if(c){e.dump="&ref_"+l+" "+e.dump}}}else if(o==="[object String]"){if(e.tag!=="?"){writeScalar(e,e.dump,r,u)}}else{if(e.skipInvalid)return false;throw new n("unacceptable kind of an object to dump "+o)}if(e.tag!==null&&e.tag!=="?"){e.dump="!<"+e.tag+"> "+e.dump}}return true}function getDuplicateReferences(e,r){var t=[],i=[],n,a;inspectNode(e,t,i);for(n=0,a=i.length;n{if(typeof e!=="string"){throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof e}\``)}if(typeof r!=="string"){throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof r}\``)}try{e=a.realpathSync(e)}catch(r){if(r.code==="ENOENT"){e=i.resolve(e)}else if(t){return null}else{throw r}}const u=i.join(e,"noop.js");const s=()=>n._resolveFilename(r,{id:u,filename:u,paths:n._nodeModulePaths(e)});if(t){try{return s()}catch(e){return null}}return s()};e.exports=((e,r)=>u(e,r));e.exports.silent=((e,r)=>u(e,r,true))},,,,,,,function(e,r,t){"use strict";var i=t(354);var n="\n";var a=" ";var u=":";var s="[";var o="]";var f="^";var l=4;var c=n+n;var h=i(a,l);e.exports=footnoteDefinition;function footnoteDefinition(e){var r=this.all(e).join(c+h);return s+f+(e.label||e.identifier)+o+u+a+r}},,,,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(389);var u=t(434);var s=t(220);var o=t(97);e.exports=i("remark-lint:no-heading-content-indent",noHeadingContentIndent);var f=s.start;var l=s.end;function noHeadingContentIndent(e,r){var t=String(r);n(e,"heading",visitor);function visitor(e){var i;var n;var s;var c;var h;var p;var v;var d;var D;var m;if(o(e)){return}i=e.depth;n=e.children;s=a(e,"atx");if(s==="atx"||s==="atx-closed"){h=f(e);d=h.offset;D=t.charAt(d);while(D&&D!=="#"){D=t.charAt(++d)}if(!D){return}d=i+(d-h.offset);c=f(n[0]).column;if(!c){return}v=c-h.column-1-d;if(v){m=(v>0?"Remove":"Add")+" "+Math.abs(v)+" "+u("space",v)+" before this heading’s content";r.message(m,f(n[0]))}}if(s==="atx-closed"){p=l(n[n.length-1]);v=l(e).column-p.column-1-i;if(v){m="Remove "+v+" "+u("space",v)+" after this heading’s content";r.message(m,p)}}}}},function(e){"use strict";e.exports=function(e){if(typeof e!=="function"){throw new TypeError("Expected a function")}return e.displayName||e.name||(/function ([^\(]+)?\(/.exec(e.toString())||[])[1]||null}},,,function(e,r,t){"use strict";var i=t(532);var n=t(234);e.exports=definition;var a=" ";var u=":";var s="[";var o="]";function definition(e){var r=i(e.url);if(e.title){r+=a+n(e.title)}return s+(e.label||e.identifier)+o+u+a+r}},,function(e){if(typeof Object.create==="function"){e.exports=function inherits(e,r){e.super_=r;e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}else{e.exports=function inherits(e,r){e.super_=r;var t=function(){};t.prototype=r.prototype;e.prototype=new t;e.prototype.constructor=e}}},,,,,function(e,r,t){"use strict";var i=t(720)();e.exports=function(e){return typeof e==="string"?e.replace(i,""):e}},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(97);var u=t(67);e.exports=i("remark-lint:no-inline-padding",noInlinePadding);function noInlinePadding(e,r){n(e,["emphasis","strong","delete","image","link"],visitor);function visitor(e){var t;if(!a(e)){t=u(e);if(t.charAt(0)===" "||t.charAt(t.length-1)===" "){r.message("Don’t pad `"+e.type+"` with inner spaces",e)}}}}},,,,,,,,,,,,,,function(e,r,t){"use strict";var i=t(775);var n=t(507);var a=t(288);var u=t(413);e.exports=log;var s="vfile-reporter";function log(e,r,t){var o=r.reporter||a;var f;if(u(o)){try{o=n(o,{cwd:r.cwd,prefix:s})}catch(e){t(new Error("Could not find reporter `"+o+"`"));return}}f=o(e.files.filter(given),i(r.reporterOptions,{quiet:r.quiet,silent:r.silent,color:r.color}));if(f){if(f.charAt(f.length-1)!=="\n"){f+="\n"}r.streamError.write(f,t)}else{t()}}function given(e){return e.data.unifiedEngineGiven}},,,,,function(e,r,t){"use strict";var i=t(308);var n=t(197);var a=t(981);var u=t(314);var s=t(116);e.exports=encode;encode.escape=escape;var o={}.hasOwnProperty;var f=['"',"'","<",">","&","`"];var l=construct();var c=toExpression(f);var h=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var p=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;function encode(e,r){var t=r||{};var i=t.subset;var n=i?toExpression(i):c;var a=t.escapeOnly;var u=t.omitOptionalSemicolons;e=e.replace(n,function(e,r,i){return one(e,i.charAt(r+1),t)});if(i||a){return e}return e.replace(h,replaceSurrogatePair).replace(p,replaceBmp);function replaceSurrogatePair(e,r,t){return toHexReference((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,t.charAt(r+2),u)}function replaceBmp(e,r,i){return one(e,i.charAt(r+1),t)}}function escape(e){return encode(e,{escapeOnly:true,useNamedReferences:true})}function one(e,r,t){var i=t.useShortestReferences;var n=t.omitOptionalSemicolons;var a;var u;if((i||t.useNamedReferences)&&o.call(l,e)){a=toNamed(l[e],r,n,t.attribute)}if(i||!a){u=toHexReference(e.charCodeAt(0),r,n)}if(a&&(!i||a.length",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"}},function(e,r,t){"use strict";var i=t(347);e.exports=normalize;function normalize(e){return i(e).toLowerCase()}},,,,function(e){"use strict";e.exports=trimTrailingLines;var r="\n";function trimTrailingLines(e){var t=String(e);var i=t.length;while(t.charAt(--i)===r){}return t.slice(0,i+1)}},,,,function(e,r){r.parse=r.decode=decode;r.stringify=r.encode=encode;r.safe=safe;r.unsafe=unsafe;var t=typeof process!=="undefined"&&process.platform==="win32"?"\r\n":"\n";function encode(e,r){var i=[];var n="";if(typeof r==="string"){r={section:r,whitespace:false}}else{r=r||{};r.whitespace=r.whitespace===true}var a=r.whitespace?" = ":"=";Object.keys(e).forEach(function(r,u,s){var o=e[r];if(o&&Array.isArray(o)){o.forEach(function(e){n+=safe(r+"[]")+a+safe(e)+"\n"})}else if(o&&typeof o==="object"){i.push(r)}else{n+=safe(r)+a+safe(o)+t}});if(r.section&&n.length){n="["+safe(r.section)+"]"+t+n}i.forEach(function(i,a,u){var s=dotSplit(i).join("\\.");var o=(r.section?r.section+".":"")+s;var f=encode(e[i],{section:o,whitespace:r.whitespace});if(n.length&&f.length){n+=t}n+=f});return n}function dotSplit(e){return e.replace(/\1/g,"LITERAL\\1LITERAL").replace(/\\\./g,"").split(/\./).map(function(e){return e.replace(/\1/g,"\\.").replace(/\2LITERAL\\1LITERAL\2/g,"")})}function decode(e){var r={};var t=r;var i=null;var n=/^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i;var a=e.split(/[\r\n]+/g);a.forEach(function(e,a,u){if(!e||e.match(/^\s*[;#]/))return;var s=e.match(n);if(!s)return;if(s[1]!==undefined){i=unsafe(s[1]);t=r[i]=r[i]||{};return}var o=unsafe(s[2]);var f=s[3]?unsafe(s[4]):true;switch(f){case"true":case"false":case"null":f=JSON.parse(f)}if(o.length>2&&o.slice(-2)==="[]"){o=o.substring(0,o.length-2);if(!t[o]){t[o]=[]}else if(!Array.isArray(t[o])){t[o]=[t[o]]}}if(Array.isArray(t[o])){t[o].push(f)}else{t[o]=f}});Object.keys(r).filter(function(e,t,i){if(!r[e]||typeof r[e]!=="object"||Array.isArray(r[e])){return false}var n=dotSplit(e);var a=r;var u=n.pop();var s=u.replace(/\\\./g,".");n.forEach(function(e,r,t){if(!a[e]||typeof a[e]!=="object")a[e]={};a=a[e]});if(a===r&&s===u){return false}a[s]=r[e];return true}).forEach(function(e,t,i){delete r[e]});return r}function isQuoted(e){return e.charAt(0)==='"'&&e.slice(-1)==='"'||e.charAt(0)==="'"&&e.slice(-1)==="'"}function safe(e){return typeof e!=="string"||e.match(/[=\r\n]/)||e.match(/^\[/)||e.length>1&&isQuoted(e)||e!==e.trim()?JSON.stringify(e):e.replace(/;/g,"\\;").replace(/#/g,"\\#")}function unsafe(e,r){e=(e||"").trim();if(isQuoted(e)){if(e.charAt(0)==="'"){e=e.substr(1,e.length-2)}try{e=JSON.parse(e)}catch(e){}}else{var t=false;var i="";for(var n=0,a=e.length;n=E){return}S=r.charAt(C);if(S===f||S===c||S===h){B=S;F=false}else{F=true;b="";while(C=E){V=true}if(J&&x>=J.indent){V=true}S=r.charAt(C);T=null;if(!V){if(S===f||S===c||S===h){T=S;C++;x++}else{b="";while(C=J.indent||x>E}P=false;C=O}M=r.slice(O,k);I=O===C?M:r.slice(C,k);if(T===f||T===l||T===h){if(g.thematicBreak.call(n,e,M,true)){break}}L=R;R=!P&&!i(I).length;if(V&&J){J.value=J.value.concat(U,M);N=N.concat(U,M);U=[]}else if(P){if(U.length!==0){q=true;J.value.push("");J.trail=U.concat()}J={value:[M],indent:x,trail:[]};j.push(J);N=N.concat(U,M);U=[]}else if(R){if(L&&!u){break}U.push(M)}else{if(L){break}if(o(A,g,n,[e,M,true])){break}J.value=J.value.concat(U,M);N=N.concat(U,M);U=[]}C=k+1}_=e(N.join(d)).reset({type:"list",ordered:F,start:w,spread:q,children:[]});z=n.enterList();X=n.enterBlock();C=-1;y=j.length;while(++C=2){r.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}r.inspectOpts=Object.keys(process.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,r){var t=r.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,r){return r.toUpperCase()});var i=process.env[r];if(/^(yes|on|true|enabled)$/i.test(i)){i=true}else if(/^(no|off|false|disabled)$/i.test(i)){i=false}else if(i==="null"){i=null}else{i=Number(i)}e[t]=i;return e},{});function useColors(){return"colors"in r.inspectOpts?Boolean(r.inspectOpts.colors):i.isatty(process.stderr.fd)}function formatArgs(r){var t=this.namespace,i=this.useColors;if(i){var n=this.color;var a="[3"+(n<8?n:"8;5;"+n);var u=" ".concat(a,";1m").concat(t," ");r[0]=u+r[0].split("\n").join("\n"+u);r.push(a+"m+"+e.exports.humanize(this.diff)+"")}else{r[0]=getDate()+t+" "+r[0]}}function getDate(){if(r.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(){return process.stderr.write(n.format.apply(n,arguments)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};var t=Object.keys(r.inspectOpts);for(var i=0;i0?"add":"remove")+" "+Math.abs(h)+" "+n("space",h);r.message(p,s)}}}}},,,,function(e,r,t){"use strict";var i=t(446);var n=t(407);e.exports=toVFile;function toVFile(e){if(typeof e==="string"||i(e)){e={path:String(e)}}return n(e)}},,function(e){"use strict";e.exports=atxHeading;var r="\n";var t="\t";var i=" ";var n="#";var a=6;function atxHeading(e,u,s){var o=this;var f=o.options.pedantic;var l=u.length+1;var c=-1;var h=e.now();var p="";var v="";var d;var D;var m;while(++ca){return}if(!m||!f&&u.charAt(c+1)===n){return}l=u.length+1;D="";while(++c="a"&&e<="z"||e>="A"&&e<="Z"||e==="$"||e==="_"||n.ID_Start.test(e)}function isIdContinueChar(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||e==="$"||e==="_"||e==="‌"||e==="‍"||n.ID_Continue.test(e)}function isDigit(e){return/[0-9]/.test(e)}function isHexDigit(e){return/[0-9A-Fa-f]/.test(e)}},function(e){"use strict";e.exports=factory;var r="\\";function factory(e,t){return unescape;function unescape(i){var n=0;var a=i.indexOf(r);var u=e[t];var s=[];var o;while(a!==-1){s.push(i.slice(n,a));n=a+1;o=i.charAt(n);if(!o||u.indexOf(o)===-1){s.push(r)}a=i.indexOf(r,n+1)}s.push(i.slice(n));return s.join("")}}},,function(e,r,t){"use strict";var i=t(400);e.exports=new i("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})},,,,,,,,,,,function(e,r,t){var i=t(688);if(process.env.READABLE_STREAM==="disable"&&i){e.exports=i;r=e.exports=i.Readable;r.Readable=i.Readable;r.Writable=i.Writable;r.Duplex=i.Duplex;r.Transform=i.Transform;r.PassThrough=i.PassThrough;r.Stream=i}else{r=e.exports=t(454);r.Stream=i||r;r.Readable=r;r.Writable=t(57);r.Duplex=t(921);r.Transform=t(843);r.PassThrough=t(218)}},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:stringify");var n=t(356);var a=t(301);e.exports=stringify;function stringify(e,r){var t=e.processor;var u=e.tree;var s;if(n(r).fatal){i("Not compiling failed document");return}if(!e.output&&!e.out&&!e.alwaysStringify){i("Not compiling document without output settings");return}i("Compiling `%s`",r.path);if(e.inspect){if(r.path){r.extname=".txt"}s=a[e.color?"color":"noColor"](u)+"\n"}else if(e.treeOut){if(r.path){r.extname=".json"}s=JSON.stringify(u,null,2)+"\n"}else{s=t.stringify(u,r)}r.contents=s;i("Compiled document")}},,,function(e){"use strict";e.exports=text;function text(e,r){return this.encode(this.escape(e.value,e,r),e)}},,,function(e,r,t){"use strict";var i=t(646).hasBasic;var n=t(579);var a=t(475);var u=t(354);var s=t(356);e.exports=reporter;var o=process.platform==="win32";var f=o?{error:"×",warning:"‼"}:{error:"✖",warning:"⚠"};var l=/\s*$/;var c="";var h={open:"",close:""};var p={underline:{open:"",close:""},red:{open:"",close:""},yellow:{open:"",close:""},green:{open:"",close:""}};var v={underline:h,red:h,yellow:h,green:h};var d={true:"error",false:"warning",null:"info",undefined:"info"};function reporter(e,r){var t=r||{};var i;if(!e){return""}if("name"in e&&"message"in e){return String(e.stack||e)}if(!("length"in e)){i=true;e=[e]}return compile(parse(filter(e,t),t),i,t)}function filter(e,r){var t=[];var i=e.length;var n=-1;var a;if(!r.quiet&&!r.silent){return e.concat()}while(++n "+h.destination:""}if(!h.stats.total){D+=D?": ":"";if(h.stored){D+=m.yellow.open+"written"+m.yellow.close}else{D+="no issues found"}}if(D){c.push(D)}}else{g=m[h.label==="error"?"red":"yellow"];c.push(["",padLeft(h.location,e.location),padRight(g.open+h.label+g.close,e.label),padRight(h.reason,e.reason),padRight(h.ruleId,e.ruleId),h.source||""].join(" ").replace(l,""))}}if(a.fatal||a.warn){D=[];if(a.fatal){D.push([m.red.open+f.error+m.red.close,a.fatal,plural(d.true,a.fatal)].join(" "))}if(a.warn){D.push([m.yellow.open+f.warning+m.yellow.close,a.warn,plural(d.false,a.warn)].join(" "))}D=D.join(", ");if(a.total!==a.fatal&&a.total!==a.warn){D=a.total+" messages ("+D+")"}c.push("",D)}return c.join("\n")}function applicable(e,r){var t=e.messages;var i=t.length;var n=-1;var a=[];if(r.silent){while(++nr.length){try{return e.apply(u,r.concat(s))}catch(e){return s(e)}}return sync(e,s).apply(u,r)}return wrap}function sync(e,r){return function(){var t;try{t=e.apply(this,arguments)}catch(e){return r(e)}if(promise(t)){t.then(function(e){r(null,e)},r)}else{t instanceof Error?r(t):r(null,t)}}}function generator(e){return e&&e.constructor&&"GeneratorFunction"==e.constructor.name}function promise(e){return e&&"function"==typeof e.then}},,function(e,r,t){"use strict";var i=t(907);e.exports=imageReference;var n="[";var a="]";var u="!";function imageReference(e){return u+n+(this.encode(e.alt,e)||"")+a+i(e)}},,,function(e,r,t){"use strict";var i=t(398);var n=t(907);e.exports=linkReference;var a="[";var u="]";var s="shortcut";var o="collapsed";function linkReference(e){var r=this;var t=e.referenceType;var f=r.enterLinkReference(r,e);var l=r.all(e).join("");f();if(t===s||t===o){l=i(l,e.label||e.identifier)}return a+l+u+n(e)}},,,,,function(e,r,t){"use strict";var i=t(890);var n=true;try{n="inspect"in t(64)}catch(e){n=false}e.exports=n?inspect:noColor;inspect.color=inspect;noColor.color=inspect;inspect.noColor=noColor;noColor.noColor=noColor;var a=ansiColor(2,22);var u=ansiColor(33,39);var s=ansiColor(32,39);var o=new RegExp("(?:"+"(?:\\u001b\\[)|"+"\\u009b"+")"+"(?:"+"(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m]"+")|"+"\\u001b[A-M]","g");var f=["type","value","children","position"];function noColor(e,r){return stripColor(inspect(e,r))}function inspect(e,r){var t;var i;var n;var a;if(e&&Boolean(e.length)&&typeof e!=="string"){a=e.length;n=-1;t=[];while(++ni){r.message("Line must be at most "+i+" characters",{line:c+1,column:h+1})}}function inline(e,r,t){var n=t.children[r+1];var a;var f;if(u(e)){return}a=s(e);f=o(e);if(a.column>i||f.column",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"}},,,function(e){"use strict";e.exports=markdownTable;var r=/\./;var t=/\.[^.]*$/;var i="l";var n="r";var a="c";var u=".";var s="";var o=[i,n,a,u,s];var f=3;var l=":";var c="-";var h="|";var p=" ";var v="\n";function markdownTable(e,t){var d=t||{};var D=d.delimiter;var m=d.start;var g=d.end;var E=d.align;var A=d.stringLength||lengthNoop;var C=0;var y=-1;var w=e.length;var x=[];var b;var F;var S;var B;var k;var O;var P;var T;var I;var M;var L;var R;E=E?E.concat():[];if(D===null||D===undefined){D=p+h+p}if(m===null||m===undefined){m=h+p}if(g===null||g===undefined){g=p+h}while(++yC){C=B.length}while(++Ox[O]){x[O]=P}}}if(typeof E==="string"){E=pad(C,E).split("")}O=-1;while(++Ox[O]){x[O]=T}}}y=-1;while(++yf?M:f}else{M=x[O]}b=E[O];I=b===n||b===s?c:l;I+=pad(M-2,c);I+=b!==i&&b!==s?l:c;F[O]=I}S.splice(1,0,F.join(D))}return m+S.join(g+v+m)+g}function stringify(e){return e===null||e===undefined?"":String(e)}function lengthNoop(e){return String(e).length}function pad(e,r){return new Array(e+1).join(r||p)}function dotindex(e){var r=t.exec(e);return r?r.index+1:e.length}},,,function(e,r,t){"use strict";var i=t(638);var n=t(770);e.exports=alphanumerical;function alphanumerical(e){return i(e)||n(e)}},function(e){"use strict";e.exports=identity;function identity(e){return e}},,,,function(e){"use strict";e.exports=html;function html(e){return e.value}},,,,function(e){"use strict";e.exports=locate;var r=["https://","http://","mailto:"];function locate(e,t){var i=r.length;var n=-1;var a=-1;var u;if(!this.options.gfm){return-1}while(++n=0){r=r.slice(1)}if(r===".inf"){return t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY}else if(r===".nan"){return NaN}else if(r.indexOf(":")>=0){r.split(":").forEach(function(e){n.unshift(parseFloat(e,10))});r=0;i=1;n.forEach(function(e){r+=e*i;i*=60});return t*r}return t*parseFloat(r,10)}var u=/^[-+]?[0-9]+e/;function representYamlFloat(e,r){var t;if(isNaN(e)){switch(r){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}}else if(Number.POSITIVE_INFINITY===e){switch(r){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}}else if(Number.NEGATIVE_INFINITY===e){switch(r){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}}else if(i.isNegativeZero(e)){return"-0.0"}t=e.toString(10);return u.test(t)?t.replace("e",".e"):t}function isFloat(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||i.isNegativeZero(e))}e.exports=new n("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"})},,,,,,function(e,r,t){var i=t(792);var n=Object.create(null);var a=t(795);e.exports=i(inflight);function inflight(e,r){if(n[e]){n[e].push(r);return null}else{n[e]=[r];return makeres(e)}}function makeres(e){return a(function RES(){var r=n[e];var t=r.length;var i=slice(arguments);try{for(var a=0;at){r.splice(0,t);process.nextTick(function(){RES.apply(null,i)})}else{delete n[e]}}})}function slice(e){var r=e.length;var t=[];for(var i=0;i=e.length){if(r)r[u]=e;return t(null,e)}o.lastIndex=c;var i=o.exec(e);v=h;h+=i[0];p=v+i[1];c=o.lastIndex;if(l[p]||r&&r[p]===p){return process.nextTick(LOOP)}if(r&&Object.prototype.hasOwnProperty.call(r,p)){return gotResolvedLink(r[p])}return a.lstat(p,gotStat)}function gotStat(e,i){if(e)return t(e);if(!i.isSymbolicLink()){l[p]=true;if(r)r[p]=p;return process.nextTick(LOOP)}if(!n){var u=i.dev.toString(32)+":"+i.ino.toString(32);if(s.hasOwnProperty(u)){return gotTarget(null,s[u],p)}}a.stat(p,function(e){if(e)return t(e);a.readlink(p,function(e,r){if(!n)s[u]=r;gotTarget(e,r)})})}function gotTarget(e,n,a){if(e)return t(e);var u=i.resolve(v,n);if(r)r[a]=u;gotResolvedLink(u)}function gotResolvedLink(r){e=i.resolve(r,e.slice(c));start()}}},,,function(e,r,t){"use strict";var i=t(100);var n=t(903);var a=t(998);var u=t(220);var s=t(97);e.exports=i("remark-lint:checkbox-character-style",checkboxCharacterStyle);var o=u.start;var f=u.end;var l={x:true,X:true};var c={" ":true,"\t":true};var h={true:"checked",false:"unchecked"};function checkboxCharacterStyle(e,r,t){var i=String(r);var u=n(r);t=typeof t==="object"?t:{};if(t.unchecked&&c[t.unchecked]!==true){r.fail("Invalid unchecked checkbox marker `"+t.unchecked+"`: use either `'\\t'`, or `' '`")}if(t.checked&&l[t.checked]!==true){r.fail("Invalid checked checkbox marker `"+t.checked+"`: use either `'x'`, or `'X'`")}a(e,"listItem",visitor);function visitor(e){var n;var a;var l;var c;var p;var v;var d;if(typeof e.checked!=="boolean"||s(e)){return}n=h[e.checked];a=o(e).offset;l=(e.children.length?o(e.children[0]):f(e)).offset;c=i.slice(a,l).trimRight().slice(0,-1);v=c.charAt(c.length-1);p=t[n];if(p){if(v!==p){d=n.charAt(0).toUpperCase()+n.slice(1)+" checkboxes should use `"+p+"` as a marker";r.message(d,{start:u.toPosition(a+c.length-1),end:u.toPosition(a+c.length)})}}else{t[n]=v}}}},function(e,r,t){"use strict";var i=t(475);e.exports=VMessage;function VMessagePrototype(){}VMessagePrototype.prototype=Error.prototype;VMessage.prototype=new VMessagePrototype;var n=VMessage.prototype;n.file="";n.name="";n.reason="";n.message="";n.stack="";n.fatal=null;n.column=null;n.line=null;function VMessage(e,r,t){var n;var a;var u;if(typeof r==="string"){t=r;r=null}n=parseOrigin(t);a=i(r)||"1:1";u={start:{line:null,column:null},end:{line:null,column:null}};if(r&&r.position){r=r.position}if(r){if(r.start){u=r;r=r.start}else{u.start=r}}if(e.stack){this.stack=e.stack;e=e.message}this.message=e;this.name=a;this.reason=e;this.line=r?r.line:null;this.column=r?r.column:null;this.location=u;this.source=n[0];this.ruleId=n[1]}function parseOrigin(e){var r=[null,null];var t;if(typeof e==="string"){t=e.indexOf(":");if(t===-1){r[1]=e}else{r[0]=e.slice(0,t);r[1]=e.slice(t+1)}}return r}},function(e){"use strict";var r="";var t;e.exports=repeat;function repeat(e,i){if(typeof e!=="string"){throw new TypeError("expected a string")}if(i===1)return e;if(i===2)return e+e;var n=e.length*i;if(t!==e||typeof t==="undefined"){t=e;r=""}else if(r.length>=n){return r.substr(0,n)}while(n>r.length&&i>1){if(i&1){r+=e}i>>=1;e+=e}r+=e;r=r.substr(0,n);return r}},,function(e){"use strict";e.exports=statistics;function statistics(e){var r={true:0,false:0,null:0};count(e);return{fatal:r.true,nonfatal:r.false+r.null,warn:r.false,info:r.null,total:r.true+r.false+r.null};function count(e){if(e){if(e[0]&&e[0].messages){countInAll(e)}else{countAll(e.messages||e)}}}function countInAll(e){var r=e.length;var t=-1;while(++tthis.maxLength)return false;if(!this.stat&&D(this.cache,r)){var n=this.cache[r];if(Array.isArray(n))n="DIR";if(!t||n==="DIR")return n;if(t&&n==="FILE")return false}var a;var u=this.statCache[r];if(!u){var s;try{s=i.lstatSync(r)}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR")){this.statCache[r]=false;return false}}if(s&&s.isSymbolicLink()){try{u=i.statSync(r)}catch(e){u=s}}else{u=s}}this.statCache[r]=u;var n=true;if(u)n=u.isDirectory()?"DIR":"FILE";this.cache[r]=this.cache[r]||n;if(t&&n==="FILE")return false;return n};GlobSync.prototype._mark=function(e){return h.mark(this,e)};GlobSync.prototype._makeAbs=function(e){return h.makeAbs(this,e)}},,function(e){"use strict";var r=1;var t=2;function stripWithoutWhitespace(){return""}function stripWithWhitespace(e,r,t){return e.slice(r,t).replace(/\S/g," ")}e.exports=function(e,i){i=i||{};var n;var a;var u=false;var s=false;var o=0;var f="";var l=i.whitespace===false?stripWithoutWhitespace:stripWithWhitespace;for(var c=0;c>0},ToUint32:function(e){return e>>>0}}}();var u=Math.LN2,s=Math.abs,o=Math.floor,f=Math.log,l=Math.min,c=Math.pow,h=Math.round;function configureProperties(e){if(v&&p){var r=v(e),t;for(t=0;tn)throw new RangeError("Array too large for polyfill");function makeArrayAccessor(r){p(e,r,{get:function(){return e._getter(r)},set:function(t){e._setter(r,t)},enumerable:true,configurable:false})}var r;for(r=0;r>t}function as_unsigned(e,r){var t=32-r;return e<>>t}function packI8(e){return[e&255]}function unpackI8(e){return as_signed(e[0],8)}function packU8(e){return[e&255]}function unpackU8(e){return as_unsigned(e[0],8)}function packU8Clamped(e){e=h(Number(e));return[e<0?0:e>255?255:e&255]}function packI16(e){return[e>>8&255,e&255]}function unpackI16(e){return as_signed(e[0]<<8|e[1],16)}function packU16(e){return[e>>8&255,e&255]}function unpackU16(e){return as_unsigned(e[0]<<8|e[1],16)}function packI32(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}function unpackI32(e){return as_signed(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function packU32(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}function unpackU32(e){return as_unsigned(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function packIEEE754(e,r,t){var i=(1<.5)return r+1;return r%2?r+1:r}if(e!==e){a=(1<=c(2,1-i)){a=l(o(f(e)/u),1023);h=roundToEven(e/c(2,a)*c(2,t));if(h/c(2,t)>=2){a=a+1;h=1}if(a>i){a=(1<>1}}i.reverse();s=i.join("");o=(1<0){return f*c(2,l-o)*(1+h/c(2,t))}else if(h!==0){return f*c(2,-(o-1))*(h/c(2,t))}else{return f<0?-0:0}}function unpackF64(e){return unpackIEEE754(e,11,52)}function packF64(e){return packIEEE754(e,11,52)}function unpackF32(e){return unpackIEEE754(e,8,23)}function packF32(e){return packIEEE754(e,8,23)}(function(){var e=function ArrayBuffer(e){e=a.ToInt32(e);if(e<0)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=e;this._bytes=[];this._bytes.length=e;var r;for(r=0;rthis.buffer.byteLength){throw new RangeError("byteOffset out of range")}if(this.byteOffset%this.BYTES_PER_ELEMENT){throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.")}if(arguments.length<3){this.byteLength=this.buffer.byteLength-this.byteOffset;if(this.byteLength%this.BYTES_PER_ELEMENT){throw new RangeError("length of buffer minus byteOffset not a multiple of the element size")}this.length=this.byteLength/this.BYTES_PER_ELEMENT}else{this.length=a.ToUint32(i);this.byteLength=this.length*this.BYTES_PER_ELEMENT}if(this.byteOffset+this.byteLength>this.buffer.byteLength){throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}}else{throw new TypeError("Unexpected argument type(s)")}this.constructor=s;configureProperties(this);makeArrayAccessors(this)};s.prototype=new r;s.prototype.BYTES_PER_ELEMENT=t;s.prototype._pack=n;s.prototype._unpack=u;s.BYTES_PER_ELEMENT=t;s.prototype._getter=function(e){if(arguments.length<1)throw new SyntaxError("Not enough arguments");e=a.ToUint32(e);if(e>=this.length){return i}var r=[],t,n;for(t=0,n=this.byteOffset+e*this.BYTES_PER_ELEMENT;t=this.length){return i}var t=this._pack(r),n,u;for(n=0,u=this.byteOffset+e*this.BYTES_PER_ELEMENT;nthis.length){throw new RangeError("Offset plus length of array is out of range")}l=this.byteOffset+n*this.BYTES_PER_ELEMENT;c=t.length*this.BYTES_PER_ELEMENT;if(t.buffer===this.buffer){h=[];for(s=0,o=t.byteOffset;sthis.length){throw new RangeError("Offset plus length of array is out of range")}for(s=0;st?t:e}e=a.ToInt32(e);r=a.ToInt32(r);if(arguments.length<1){e=0}if(arguments.length<2){r=this.length}if(e<0){e=this.length+e}if(r<0){r=this.length+r}e=clamp(e,0,this.length);r=clamp(r,0,this.length);var t=r-e;if(t<0){t=0}return new this.constructor(this.buffer,this.byteOffset+e*this.BYTES_PER_ELEMENT,t)};return s}var n=makeConstructor(1,packI8,unpackI8);var u=makeConstructor(1,packU8,unpackU8);var s=makeConstructor(1,packU8Clamped,unpackU8);var o=makeConstructor(2,packI16,unpackI16);var f=makeConstructor(2,packU16,unpackU16);var l=makeConstructor(4,packI32,unpackI32);var c=makeConstructor(4,packU32,unpackU32);var h=makeConstructor(4,packF32,unpackF32);var p=makeConstructor(8,packF64,unpackF64);t.Int8Array=t.Int8Array||n;t.Uint8Array=t.Uint8Array||u;t.Uint8ClampedArray=t.Uint8ClampedArray||s;t.Int16Array=t.Int16Array||o;t.Uint16Array=t.Uint16Array||f;t.Int32Array=t.Int32Array||l;t.Uint32Array=t.Uint32Array||c;t.Float32Array=t.Float32Array||h;t.Float64Array=t.Float64Array||p})();(function(){function r(e,r){return a.IsCallable(e.get)?e.get(r):e[r]}var e=function(){var e=new t.Uint16Array([4660]),i=new t.Uint8Array(e.buffer);return r(i,0)===18}();var i=function DataView(e,r,i){if(arguments.length===0){e=new t.ArrayBuffer(0)}else if(!(e instanceof t.ArrayBuffer||a.Class(e)==="ArrayBuffer")){throw new TypeError("TypeError")}this.buffer=e||new t.ArrayBuffer(0);this.byteOffset=a.ToUint32(r);if(this.byteOffset>this.buffer.byteLength){throw new RangeError("byteOffset out of range")}if(arguments.length<3){this.byteLength=this.buffer.byteLength-this.byteOffset}else{this.byteLength=a.ToUint32(i)}if(this.byteOffset+this.byteLength>this.buffer.byteLength){throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}configureProperties(this)};function makeGetter(i){return function(n,u){n=a.ToUint32(n);if(n+i.BYTES_PER_ELEMENT>this.byteLength){throw new RangeError("Array index out of range")}n+=this.byteOffset;var s=new t.Uint8Array(this.buffer,n,i.BYTES_PER_ELEMENT),o=[],f;for(f=0;fthis.byteLength){throw new RangeError("Array index out of range")}var o=new i([u]),f=new t.Uint8Array(o.buffer),l=[],c,h;for(c=0;c0){t=Math.min(10,Math.floor(t));f=" ".substr(0,t)}}else if(typeof t==="string"){f=t.substr(0,10)}return serializeProperty("",{"":e});function serializeProperty(e,r){var t=r[e];if(t!=null){if(typeof t.toJSON5==="function"){t=t.toJSON5(e)}else if(typeof t.toJSON==="function"){t=t.toJSON(e)}}if(o){t=o.call(r,e,t)}if(t instanceof Number){t=Number(t)}else if(t instanceof String){t=String(t)}else if(t instanceof Boolean){t=t.valueOf()}switch(t){case null:return"null";case true:return"true";case false:return"false"}if(typeof t==="string"){return quoteString(t,false)}if(typeof t==="number"){return String(t)}if((typeof t==="undefined"?"undefined":i(t))==="object"){return Array.isArray(t)?serializeArray(t):serializeObject(t)}return undefined}function quoteString(e){var r={"'":.1,'"':.2};var t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};var i="";var n=true;var a=false;var u=undefined;try{for(var s=e[Symbol.iterator](),o;!(n=(o=s.next()).done);n=true){var f=o.value;switch(f){case"'":case'"':r[f]++;i+=f;continue}if(t[f]){i+=t[f];continue}if(f<" "){var c=f.charCodeAt(0).toString(16);i+="\\x"+("00"+c).substring(c.length);continue}i+=f}}catch(e){a=true;u=e}finally{try{if(!n&&s.return){s.return()}}finally{if(a){throw u}}}var h=l||Object.keys(r).reduce(function(e,t){return r[e]=0){throw TypeError("Converting circular structure to JSON5")}n.push(e);var r=u;u=u+f;var t=s||Object.keys(e);var i=[];var a=true;var o=false;var l=undefined;try{for(var c=t[Symbol.iterator](),h;!(a=(h=c.next()).done);a=true){var p=h.value;var v=serializeProperty(p,e);if(v!==undefined){var d=serializeKey(p)+":";if(f!==""){d+=" "}d+=v;i.push(d)}}}catch(e){o=true;l=e}finally{try{if(!a&&c.return){c.return()}}finally{if(o){throw l}}}var D=void 0;if(i.length===0){D="{}"}else{var m=void 0;if(f===""){m=i.join(",");D="{"+m+"}"}else{var g=",\n"+u;m=i.join(g);D="{\n"+u+m+",\n"+r+"}"}}n.pop();u=r;return D}function serializeKey(e){if(e.length===0){return quoteString(e,true)}var r=String.fromCodePoint(e.codePointAt(0));if(!a.isIdStartChar(r)){return quoteString(e,true)}for(var t=r.length;t=0){throw TypeError("Converting circular structure to JSON5")}n.push(e);var r=u;u=u+f;var t=[];for(var i=0;i=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},,,,function(e,r,t){"use strict";var i=t(136)("unified-engine:file-set-pipeline:stdin");var n=t(333);var a=t(992);e.exports=stdin;function stdin(e,r,t){var u=r.streamIn;var s;if(r.files&&r.files.length!==0){i("Ignoring `streamIn`");if(r.filePath){s=new Error("Do not pass both `--file-path` and real files.\n"+"Did you mean to pass stdin instead of files?")}t(s);return}if(u.isTTY){i("Cannot read from `tty` stream");t(new Error("No input"));return}i("Reading from `streamIn`");u.pipe(a({encoding:"string"},read));function read(a){var u=n(r.filePath||undefined);i("Read from `streamIn`");u.cwd=r.cwd;u.contents=a;u.data.unifiedEngineGiven=true;u.data.unifiedEngineStreamIn=true;e.files=[u];r.out=r.out===null||r.out===undefined?true:r.out;t()}}},,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:strong-marker",strongMarker);var s={"*":true,_:true,null:true};function strongMarker(e,r,t){var i=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(s[t]!==true){r.fail("Invalid strong marker `"+t+"`: use either `'consistent'`, `'*'`, or `'_'`")}n(e,"strong",visitor);function visitor(e){var n=i.charAt(a.start(e).offset);if(!u(e)){if(t){if(n!==t){r.message("Strong should use `"+t+"` as a marker",e)}}else{t=n}}}}},,function(e){"use strict";e.exports=style;function style(e,r){var t=e.children[e.children.length-1];var i=e.depth;var n=e&&e.position&&e.position.end;var a=t&&t.position&&t.position.end;if(!n){return null}if(!t){if(n.column-1<=i*2){return consolidate(i,r)}return"atx-closed"}if(a.line+1===n.line){return"setext"}if(a.column+i64)continue;if(r<0)return false;i+=6}return i%8===0}function constructYamlBinary(e){var r,t,i=e.replace(/[\r\n=]/g,""),a=i.length,u=s,o=0,f=[];for(r=0;r>16&255);f.push(o>>8&255);f.push(o&255)}o=o<<6|u.indexOf(i.charAt(r))}t=a%4*6;if(t===0){f.push(o>>16&255);f.push(o>>8&255);f.push(o&255)}else if(t===18){f.push(o>>10&255);f.push(o>>2&255)}else if(t===12){f.push(o>>4&255)}if(n){return n.from?n.from(f):new n(f)}return f}function representYamlBinary(e){var r="",t=0,i,n,a=e.length,u=s;for(i=0;i>18&63];r+=u[t>>12&63];r+=u[t>>6&63];r+=u[t&63]}t=(t<<8)+e[i]}n=a%3;if(n===0){r+=u[t>>18&63];r+=u[t>>12&63];r+=u[t>>6&63];r+=u[t&63]}else if(n===2){r+=u[t>>10&63];r+=u[t>>4&63];r+=u[t<<2&63];r+=u[64]}else if(n===1){r+=u[t>>2&63];r+=u[t<<4&63];r+=u[64];r+=u[64]}return r}function isBinary(e){return n&&n.isBuffer(e)}e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary})},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:code-block-style",codeBlockStyle);var s=a.start;var o=a.end;var f={null:true,fenced:true,indented:true};function codeBlockStyle(e,r,t){var i=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(f[t]!==true){r.fail("Invalid code block style `"+t+"`: use either `'consistent'`, `'fenced'`, or `'indented'`")}n(e,"code",visitor);function visitor(e){var i=check(e);if(i){if(!t){t=i}else if(t!==i){r.message("Code blocks should be "+t,e)}}}function check(e){var r=s(e).offset;var t=o(e).offset;if(u(e)){return null}return e.lang||/^\s*([~`])\1{2,}/.test(i.slice(r,t))?"fenced":"indented"}}},function(e){e.exports=require("assert")},,,function(e,r,t){"use strict";var i=t(688).PassThrough;var n=t(356);var a=t(145);e.exports=run;function run(e,r){var t={};var u=new i;var s;var o;var f;var l;var c;try{u=process.stdin}catch(e){}if(!r){throw new Error("Missing `callback`")}if(!e||!e.processor){return next(new Error("Missing `processor`"))}t.processor=e.processor;t.cwd=e.cwd||process.cwd();t.files=e.files||[];t.extensions=(e.extensions||[]).map(function(e){return e.charAt(0)==="."?e:"."+e});t.filePath=e.filePath||null;t.streamIn=e.streamIn||u;t.streamOut=e.streamOut||process.stdout;t.streamError=e.streamError||process.stderr;t.alwaysStringify=e.alwaysStringify;t.output=e.output;t.out=e.out;if(t.output===null||t.output===undefined){t.output=undefined}if(t.output&&t.out){return next(new Error("Cannot accept both `output` and `out`"))}s=e.tree||false;t.treeIn=e.treeIn;t.treeOut=e.treeOut;t.inspect=e.inspect;if(t.treeIn===null||t.treeIn===undefined){t.treeIn=s}if(t.treeOut===null||t.treeOut===undefined){t.treeOut=s}o=e.detectConfig;f=Boolean(e.rcName||e.packageField);if(o&&!f){return next(new Error("Missing `rcName` or `packageField` with `detectConfig`"))}t.detectConfig=o===null||o===undefined?f:o;t.rcName=e.rcName||null;t.rcPath=e.rcPath||null;t.packageField=e.packageField||null;t.settings=e.settings||{};t.configTransform=e.configTransform;t.defaultConfig=e.defaultConfig;l=e.detectIgnore;c=Boolean(e.ignoreName);t.detectIgnore=l===null||l===undefined?c:l;t.ignoreName=e.ignoreName||null;t.ignorePath=e.ignorePath||null;t.silentlyIgnore=Boolean(e.silentlyIgnore);if(l&&!c){return next(new Error("Missing `ignoreName` with `detectIgnore`"))}t.pluginPrefix=e.pluginPrefix||null;t.plugins=e.plugins||{};t.reporter=e.reporter||null;t.reporterOptions=e.reporterOptions||null;t.color=e.color||false;t.silent=e.silent||false;t.quiet=e.quiet||false;t.frail=e.frail||false;a.run({files:e.files||[]},t,next);function next(e,i){var a=n((i||{}).files);var u=Boolean(t.frail?a.fatal||a.warn:a.fatal);if(e){r(e)}else{r(null,u?1:0,i)}}}},function(e,r,t){"use strict";var i=t(100);e.exports=i("remark-lint:no-file-name-articles",noFileNameArticles);function noFileNameArticles(e,r){var t=r.stem&&r.stem.match(/^(the|teh|an?)\b/i);if(t){r.message("Do not start file names with `"+t[0]+"`")}}},function(e,r,t){"use strict";var i=t(980);e.exports=copy;var n="&";var a=/[-!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~_]/;function copy(e,r){var t=e.length;var u=r.length;var s=[];var o=0;var f=0;var l;while(f|$))/i;var f=/<\/(script|pre|style)>/i;var l=/^/;var h=/^<\?/;var p=/\?>/;var v=/^/;var D=/^/;var g=/^$/;var E=new RegExp(i.source+"\\s*$");function blockHtml(e,r,t){var i=this;var A=i.options.blocks.join("|");var C=new RegExp("^|$))","i");var y=r.length;var w=0;var x;var b;var F;var S;var B;var k;var O;var P=[[o,f,true],[l,c,true],[h,p,true],[v,d,true],[D,m,true],[C,g,true],[E,g,false]];while(w=b){b=0}}else if(E===v){g++;B+=r.charAt(g)}else if((!b||y)&&E===p){L++}else if((!b||y)&&E===d){if(L){L--}else{if(!A){while(g=s&&(!p||p===t)){h+=D;if(f){return true}return e(h)({type:"thematicBreak"})}else{return}}}},,,,,,function(e){e.exports=require("os")},,function(e,r,t){"use strict";var i=t(353);var n=t(844);e.exports=n;var a=n.prototype;a.message=message;a.info=info;a.fail=fail;a.warn=message;function message(e,r,t){var n=this.path;var a=new i(e,r,t);if(n){a.name=n+":"+a.name;a.file=n}a.fatal=false;this.messages.push(a);return a}function fail(){var e=this.message.apply(this,arguments);e.fatal=true;throw e}function info(){var e=this.message.apply(this,arguments);e.fatal=null;return e}},function(e,r,t){"use strict";const i=t(368);e.exports=((e,r,t)=>{if(typeof r==="number"){t=r}if(i.has(e.toLowerCase())){r=i.get(e.toLowerCase());const t=e.charAt(0);const n=t===t.toUpperCase();if(n){r=t.toUpperCase()+r.slice(1)}const a=e===e.toUpperCase();if(a){r=r.toUpperCase()}}else if(typeof r!=="string"){r=(e.replace(/(?:s|x|z|ch|sh)$/i,"$&e").replace(/([^aeiou])y$/i,"$1ie")+"s").replace(/i?e?s$/i,r=>{const t=e.slice(-1)===e.slice(-1).toLowerCase();return t?r.toLowerCase():r.toUpperCase()})}return Math.abs(t)===1?e:r})},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:parse");var n=t(356);var a=t(14);e.exports=parse;function parse(e,r){var t;if(n(r).fatal){return}if(e.treeIn){i("Not parsing already parsed document");try{e.tree=a(r.toString())}catch(e){t=r.message(new Error("Cannot read file as JSON\n"+e.message));t.fatal=true}if(r.path){r.extname=e.extensions[0]}r.contents="";return}i("Parsing `%s`",r.path);e.tree=e.processor.parse(r);i("Parsed document")}},,,,,function(e,r,t){"use strict";var i=t(315);e.exports=enter;function enter(e,r){var t=e.encode;var n=e.escape;var a=e.enterLink();if(r.referenceType!=="shortcut"&&r.referenceType!=="collapsed"){return a}e.escape=i;e.encode=i;return exit;function exit(){e.encode=t;e.escape=n;a()}}},,,function(e,r,t){e.exports=t(688)},,function(e,r,t){"use strict";var i=t(666);var n=t(775);var a=t(521);e.exports=parse;parse.Parser=a;function parse(e){var r=this.data("settings");var t=i(a);t.prototype.options=n(t.prototype.options,r,e);this.Parser=t}},function(e){e.exports=function(e){return e!=null&&(isBuffer(e)||isSlowBuffer(e)||!!e._isBuffer)};function isBuffer(e){return!!e.constructor&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)}function isSlowBuffer(e){return typeof e.readFloatLE==="function"&&typeof e.slice==="function"&&isBuffer(e.slice(0,0))}},function(e){e.exports=["md","markdown","mdown","mkdn","mkd","mdwn","mkdown","ron"]},,,,,,,function(e,r,t){"use strict";var i=t(8);e.exports=Readable;var n=t(479);var a;Readable.ReadableState=ReadableState;var u=t(485).EventEmitter;var s=function(e,r){return e.listeners(r).length};var o=t(443);var f=t(757).Buffer;var l=global.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return f.from(e)}function _isUint8Array(e){return f.isBuffer(e)||e instanceof l}var c=t(554);c.inherits=t(9);var h=t(64);var p=void 0;if(h&&h.debuglog){p=h.debuglog("stream")}else{p=function(){}}var v=t(23);var d=t(510);var D;c.inherits(Readable,o);var m=["error","close","destroy","pause","resume"];function prependListener(e,r,t){if(typeof e.prependListener==="function")return e.prependListener(r,t);if(!e._events||!e._events[r])e.on(r,t);else if(n(e._events[r]))e._events[r].unshift(t);else e._events[r]=[t,e._events[r]]}function ReadableState(e,r){a=a||t(921);e=e||{};var i=r instanceof a;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.readableObjectMode;var n=e.highWaterMark;var u=e.readableHighWaterMark;var s=this.objectMode?16:16*1024;if(n||n===0)this.highWaterMark=n;else if(i&&(u||u===0))this.highWaterMark=u;else this.highWaterMark=s;this.highWaterMark=Math.floor(this.highWaterMark);this.buffer=new v;this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.destroyed=false;this.defaultEncoding=e.defaultEncoding||"utf8";this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(e.encoding){if(!D)D=t(123).StringDecoder;this.decoder=new D(e.encoding);this.encoding=e.encoding}}function Readable(e){a=a||t(921);if(!(this instanceof Readable))return new Readable(e);this._readableState=new ReadableState(e,this);this.readable=true;if(e){if(typeof e.read==="function")this._read=e.read;if(typeof e.destroy==="function")this._destroy=e.destroy}o.call(this)}Object.defineProperty(Readable.prototype,"destroyed",{get:function(){if(this._readableState===undefined){return false}return this._readableState.destroyed},set:function(e){if(!this._readableState){return}this._readableState.destroyed=e}});Readable.prototype.destroy=d.destroy;Readable.prototype._undestroy=d.undestroy;Readable.prototype._destroy=function(e,r){this.push(null);r(e)};Readable.prototype.push=function(e,r){var t=this._readableState;var i;if(!t.objectMode){if(typeof e==="string"){r=r||t.defaultEncoding;if(r!==t.encoding){e=f.from(e,r);r=""}i=true}}else{i=true}return readableAddChunk(this,e,r,false,i)};Readable.prototype.unshift=function(e){return readableAddChunk(this,e,null,true,false)};function readableAddChunk(e,r,t,i,n){var a=e._readableState;if(r===null){a.reading=false;onEofChunk(e,a)}else{var u;if(!n)u=chunkInvalid(a,r);if(u){e.emit("error",u)}else if(a.objectMode||r&&r.length>0){if(typeof r!=="string"&&!a.objectMode&&Object.getPrototypeOf(r)!==f.prototype){r=_uint8ArrayToBuffer(r)}if(i){if(a.endEmitted)e.emit("error",new Error("stream.unshift() after end event"));else addChunk(e,a,r,true)}else if(a.ended){e.emit("error",new Error("stream.push() after EOF"))}else{a.reading=false;if(a.decoder&&!t){r=a.decoder.write(r);if(a.objectMode||r.length!==0)addChunk(e,a,r,false);else maybeReadMore(e,a)}else{addChunk(e,a,r,false)}}}else if(!i){a.reading=false}}return needMoreData(a)}function addChunk(e,r,t,i){if(r.flowing&&r.length===0&&!r.sync){e.emit("data",t);e.read(0)}else{r.length+=r.objectMode?1:t.length;if(i)r.buffer.unshift(t);else r.buffer.push(t);if(r.needReadable)emitReadable(e)}maybeReadMore(e,r)}function chunkInvalid(e,r){var t;if(!_isUint8Array(r)&&typeof r!=="string"&&r!==undefined&&!e.objectMode){t=new TypeError("Invalid non-string/buffer chunk")}return t}function needMoreData(e){return!e.ended&&(e.needReadable||e.length=g){e=g}else{e--;e|=e>>>1;e|=e>>>2;e|=e>>>4;e|=e>>>8;e|=e>>>16;e++}return e}function howMuchToRead(e,r){if(e<=0||r.length===0&&r.ended)return 0;if(r.objectMode)return 1;if(e!==e){if(r.flowing&&r.length)return r.buffer.head.data.length;else return r.length}if(e>r.highWaterMark)r.highWaterMark=computeNewHighWaterMark(e);if(e<=r.length)return e;if(!r.ended){r.needReadable=true;return 0}return r.length}Readable.prototype.read=function(e){p("read",e);e=parseInt(e,10);var r=this._readableState;var t=e;if(e!==0)r.emittedReadable=false;if(e===0&&r.needReadable&&(r.length>=r.highWaterMark||r.ended)){p("read: emitReadable",r.length,r.ended);if(r.length===0&&r.ended)endReadable(this);else emitReadable(this);return null}e=howMuchToRead(e,r);if(e===0&&r.ended){if(r.length===0)endReadable(this);return null}var i=r.needReadable;p("need readable",i);if(r.length===0||r.length-e0)n=fromList(e,r);else n=null;if(n===null){r.needReadable=true;e=0}else{r.length-=e}if(r.length===0){if(!r.ended)r.needReadable=true;if(t!==e&&r.ended)endReadable(this)}if(n!==null)this.emit("data",n);return n};function onEofChunk(e,r){if(r.ended)return;if(r.decoder){var t=r.decoder.end();if(t&&t.length){r.buffer.push(t);r.length+=r.objectMode?1:t.length}}r.ended=true;emitReadable(e)}function emitReadable(e){var r=e._readableState;r.needReadable=false;if(!r.emittedReadable){p("emitReadable",r.flowing);r.emittedReadable=true;if(r.sync)i.nextTick(emitReadable_,e);else emitReadable_(e)}}function emitReadable_(e){p("emit readable");e.emit("readable");flow(e)}function maybeReadMore(e,r){if(!r.readingMore){r.readingMore=true;i.nextTick(maybeReadMore_,e,r)}}function maybeReadMore_(e,r){var t=r.length;while(!r.reading&&!r.flowing&&!r.ended&&r.length1&&indexOf(n.pipes,e)!==-1)&&!f){p("false write response, pause",t._readableState.awaitDrain);t._readableState.awaitDrain++;l=true}t.pause()}}function onerror(r){p("onerror",r);unpipe();e.removeListener("error",onerror);if(s(e,"error")===0)e.emit("error",r)}prependListener(e,"error",onerror);function onclose(){e.removeListener("finish",onfinish);unpipe()}e.once("close",onclose);function onfinish(){p("onfinish");e.removeListener("close",onclose);unpipe()}e.once("finish",onfinish);function unpipe(){p("unpipe");t.unpipe(e)}e.emit("pipe",t);if(!n.flowing){p("pipe resume");t.resume()}return e};function pipeOnDrain(e){return function(){var r=e._readableState;p("pipeOnDrain",r.awaitDrain);if(r.awaitDrain)r.awaitDrain--;if(r.awaitDrain===0&&s(e,"data")){r.flowing=true;flow(e)}}}Readable.prototype.unpipe=function(e){var r=this._readableState;var t={hasUnpiped:false};if(r.pipesCount===0)return this;if(r.pipesCount===1){if(e&&e!==r.pipes)return this;if(!e)e=r.pipes;r.pipes=null;r.pipesCount=0;r.flowing=false;if(e)e.emit("unpipe",this,t);return this}if(!e){var i=r.pipes;var n=r.pipesCount;r.pipes=null;r.pipesCount=0;r.flowing=false;for(var a=0;a=r.length){if(r.decoder)t=r.buffer.join("");else if(r.buffer.length===1)t=r.buffer.head.data;else t=r.buffer.concat(r.length);r.buffer.clear()}else{t=fromListPartial(e,r.buffer,r.decoder)}return t}function fromListPartial(e,r,t){var i;if(ea.length?a.length:e;if(u===a.length)n+=a;else n+=a.slice(0,e);e-=u;if(e===0){if(u===a.length){++i;if(t.next)r.head=t.next;else r.head=r.tail=null}else{r.head=t;t.data=a.slice(u)}break}++i}r.length-=i;return n}function copyFromBuffer(e,r){var t=f.allocUnsafe(e);var i=r.head;var n=1;i.data.copy(t);e-=i.data.length;while(i=i.next){var a=i.data;var u=e>a.length?a.length:e;a.copy(t,t.length-e,0,u);e-=u;if(e===0){if(u===a.length){++n;if(i.next)r.head=i.next;else r.head=r.tail=null}else{r.head=i;i.data=a.slice(u)}break}++n}r.length-=n;return t}function endReadable(e){var r=e._readableState;if(r.length>0)throw new Error('"endReadable()" called on non-empty stream');if(!r.endEmitted){r.ended=true;i.nextTick(endReadableNT,r,e)}}function endReadableNT(e,r){if(!e.endEmitted&&e.length===0){e.endEmitted=true;r.readable=false;r.emit("end")}}function indexOf(e,r){for(var t=0,i=e.length;t=l){continue}y="";while(vi){r.message("Move definitions to the end of the file (after the node at line `"+t+"`)",e)}}else if(t===null){t=i}}}},,function(e){"use strict";var r={}.hasOwnProperty;e.exports=stringify;function stringify(e){if(!e||typeof e!=="object"){return null}if(r.call(e,"position")||r.call(e,"type")){return position(e.position)}if(r.call(e,"start")||r.call(e,"end")){return position(e)}if(r.call(e,"line")||r.call(e,"column")){return point(e)}return null}function point(e){if(!e||typeof e!=="object"){e={}}return index(e.line)+":"+index(e.column)}function position(e){if(!e||typeof e!=="object"){e={}}return point(e.start)+"-"+point(e.end)}function index(e){return e&&typeof e==="number"?e:1}},,,function(e,r,t){"use strict";var i=t(197);var n=t(520);var a=t(770);var u=t(981);var s=t(314);var o=t(787);e.exports=parseEntities;var f={}.hasOwnProperty;var l=String.fromCharCode;var c=Function.prototype;var h={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:false,nonTerminated:true};var p="named";var v="hexadecimal";var d="decimal";var D={};D[v]=16;D[d]=10;var m={};m[p]=s;m[d]=a;m[v]=u;var g=1;var E=2;var A=3;var C=4;var y=5;var w=6;var x=7;var b={};b[g]="Named character references must be terminated by a semicolon";b[E]="Numeric character references must be terminated by a semicolon";b[A]="Named character references cannot be empty";b[C]="Numeric character references cannot be empty";b[y]="Named character references must be known";b[w]="Numeric character references cannot be disallowed";b[x]="Numeric character references cannot be outside the permissible Unicode range";function parseEntities(e,r){var t={};var i;var n;if(!r){r={}}for(n in h){i=r[n];t[n]=i===null||i===undefined?h[n]:i}if(t.position.indent||t.position.start){t.indent=t.position.indent||[];t.position=t.position.start}return parse(e,t)}function parse(e,r){var t=r.additional;var a=r.nonTerminated;var u=r.text;var h=r.reference;var F=r.warning;var S=r.textContext;var B=r.referenceContext;var k=r.warningContext;var O=r.position;var P=r.indent||[];var T=e.length;var I=0;var M=-1;var L=O.column||1;var R=O.line||1;var j="";var N=[];var U;var J;var z;var X;var q;var _;var G;var W;var V;var H;var Y;var $;var Z;var Q;var K;var ee;var re;var te;var ie;ee=now();W=F?parseError:c;I--;T++;while(++I65535){_-=65536;H+=l(_>>>(10&1023)|55296);_=56320|_&1023}_=H+l(_)}}if(!_){X=e.slice(Z-1,ie);j+=X;L+=X.length;I=ie-1}else{flush();ee=now();I=ie-1;L+=ie-Z+1;N.push(_);re=now();re.offset++;if(h){h.call(B,_,{start:ee,end:re},e.slice(Z-1,ie))}ee=re}}}return N.join("");function now(){return{line:R,column:L,offset:I+(O.offset||0)}}function parseError(e,r){var t=now();t.column+=r;t.offset+=r;F.call(k,b[e],t,e)}function at(r){return e.charAt(r)}function flush(){if(j){N.push(j);if(u){u.call(S,j,{start:ee,end:now()})}j=""}}}function prohibited(e){return e>=55296&&e<=57343||e>1114111}function disallowed(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}},function(e){var r={}.toString;e.exports=Array.isArray||function(e){return r.call(e)=="[object Array]"}},,function(e,r,t){"use strict";var i=t(758);var n=t(198);e.exports=definition;definition.notInList=true;definition.notInBlock=true;var a='"';var u="'";var s="\\";var o="\n";var f="\t";var l=" ";var c="[";var h="]";var p="(";var v=")";var d=":";var D="<";var m=">";function definition(e,r,t){var i=this;var m=i.options.commonmark;var g=0;var E=r.length;var A="";var C;var y;var w;var x;var b;var F;var S;var B;while(g0?"Add":"Remove")+" "+Math.abs(i)+" "+n("space",i)+" between blockquote and content";r.message(a,u.start(e.children[0]))}}else{t=check(e)}}}function check(e){var r=e.children[0];var t=u.start(r).column-u.start(e).column;var i=o(r).match(/^ +/);if(i){t+=i[0].length}return t}},function(e,r,t){"use strict";var i=t(758);var n=t(478);var a=t(773);e.exports=autoLink;autoLink.locator=a;autoLink.notInLink=true;var u="<";var s=">";var o="@";var f="/";var l="mailto:";var c=l.length;function autoLink(e,r,t){var a=this;var h="";var p=r.length;var v=0;var d="";var D=false;var m="";var g;var E;var A;var C;var y;if(r.charAt(0)!==u){return}v++;h=u;while(v0){var t=peek();if(!a.isHexDigit(t)){throw invalidChar(read())}e+=read()}return String.fromCodePoint(parseInt(e,16))}var C={start:function start(){if(h.type==="eof"){throw invalidEOF()}push()},beforePropertyName:function beforePropertyName(){switch(h.type){case"identifier":case"string":p=h.value;s="afterPropertyName";return;case"punctuator":pop();return;case"eof":throw invalidEOF()}},afterPropertyName:function afterPropertyName(){if(h.type==="eof"){throw invalidEOF()}s="beforePropertyValue"},beforePropertyValue:function beforePropertyValue(){if(h.type==="eof"){throw invalidEOF()}push()},beforeArrayValue:function beforeArrayValue(){if(h.type==="eof"){throw invalidEOF()}if(h.type==="punctuator"&&h.value==="]"){pop();return}push()},afterPropertyValue:function afterPropertyValue(){if(h.type==="eof"){throw invalidEOF()}switch(h.value){case",":s="beforePropertyName";return;case"}":pop()}},afterArrayValue:function afterArrayValue(){if(h.type==="eof"){throw invalidEOF()}switch(h.value){case",":s="beforeArrayValue";return;case"]":pop()}},end:function end(){}};function push(){var e=void 0;switch(h.type){case"punctuator":switch(h.value){case"{":e={};break;case"[":e=[];break}break;case"null":case"boolean":case"numeric":case"string":e=h.value;break}if(v===undefined){v=e}else{var r=o[o.length-1];if(Array.isArray(r)){r.push(e)}else{r[p]=e}}if(e!==null&&(typeof e==="undefined"?"undefined":i(e))==="object"){o.push(e);if(Array.isArray(e)){s="beforeArrayValue"}else{s="beforePropertyName"}}else{var t=o[o.length-1];if(t==null){s="end"}else if(Array.isArray(t)){s="afterArrayValue"}else{s="afterPropertyValue"}}}function pop(){o.pop();var e=o[o.length-1];if(e==null){s="end"}else if(Array.isArray(e)){s="afterArrayValue"}else{s="afterPropertyValue"}}function invalidChar(e){if(e===undefined){return syntaxError("JSON5: invalid end of input at "+l+":"+c)}return syntaxError("JSON5: invalid character '"+formatChar(e)+"' at "+l+":"+c)}function invalidEOF(){return syntaxError("JSON5: invalid end of input at "+l+":"+c)}function invalidIdentifier(){c-=5;return syntaxError("JSON5: invalid identifier character at "+l+":"+c)}function separatorChar(e){console.warn("JSON5: '"+e+"' is not valid ECMAScript; consider escaping")}function formatChar(e){var r={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(r[e]){return r[e]}if(e<" "){var t=e.charCodeAt(0).toString(16);return"\\x"+("00"+t).substring(t.length)}return e}function syntaxError(e){var r=new SyntaxError(e);r.lineNumber=l;r.columnNumber=c;return r}e.exports=r["default"]},function(e,r,t){"use strict";var i=t(66);var n=t(589);var a=t(151).silent;var u=t(342)();e.exports=loadPlugin;loadPlugin.resolve=resolvePlugin;var s=process.versions.electron!==undefined;var o=process.argv[1]||"";var f=process.env.NVM_BIN;var l=s||o.indexOf(u)===0;var c=process.platform==="win32";var h=c?"":"lib";var p=n.resolve(u,h,"node_modules");if(s&&f&&!i.existsSync(p)){p=n.resolve(f,"..",h,"node_modules")}function loadPlugin(e,r){return t(73)(resolvePlugin(e,r)||e)}function resolvePlugin(e,r){var t=r||{};var i=t.prefix;var n=t.cwd;var u;var s;var o;var f;var c;var h;var v="";if(n&&typeof n==="object"){s=n.concat()}else{s=[n||process.cwd()]}if(e.charAt(0)!=="."){if(t.global==null?l:t.global){s.push(p)}if(i){i=i.charAt(i.length-1)==="-"?i:i+"-";if(e.charAt(0)==="@"){h=e.indexOf("/");if(h!==-1){v=e.slice(0,h+1);e=e.slice(h+1)}}if(e.slice(0,i.length)!==i){c=v+i+e}e=v+e}}o=s.length;f=-1;while(++f2)t=r.call(arguments,1);if(e){try{i=a.throw(e)}catch(e){return exit(e)}}if(!e){try{i=a.next(t)}catch(e){return exit(e)}}if(i.done)return exit(null,i.value);i.value=toThunk(i.value,n);if("function"==typeof i.value){var u=false;try{i.value.call(n,function(){if(u)return;u=true;next.apply(n,arguments)})}catch(e){setImmediate(function(){if(u)return;u=true;next(e)})}return}next(new TypeError("You may only yield a function, promise, generator, array, or object, "+'but the following was passed: "'+String(i.value)+'"'))}}}function toThunk(e,r){if(isGeneratorFunction(e)){return co(e.call(r))}if(isGenerator(e)){return co(e)}if(isPromise(e)){return promiseToThunk(e)}if("function"==typeof e){return e}if(isObject(e)||Array.isArray(e)){return objectToThunk.call(r,e)}return e}function objectToThunk(e){var r=this;var t=Array.isArray(e);return function(i){var n=Object.keys(e);var a=n.length;var u=t?new Array(a):new e.constructor;var s;if(!a){setImmediate(function(){i(null,u)});return}if(!t){for(var o=0;o-1&&t.charAt(i)!=="\n"){r.message("Missing newline character at end of file")}}},,function(e,r,t){"use strict";var i=t(775);var n=t(194);var a=t(508);var u=t(649);var s=t(315);e.exports=setOptions;var o={entities:{true:true,false:true,numbers:true,escape:true},bullet:{"*":true,"-":true,"+":true},rule:{"-":true,_:true,"*":true},listItemIndent:{tab:true,mixed:true,1:true},emphasis:{_:true,"*":true},strong:{_:true,"*":true},fence:{"`":true,"~":true}};var f={boolean:validateBoolean,string:validateString,number:validateNumber,function:validateFunction};function setOptions(e){var r=this;var t=r.options;var n;var s;if(e==null){e={}}else if(typeof e==="object"){e=i(e)}else{throw new Error("Invalid value `"+e+"` for setting `options`")}for(s in a){f[typeof a[s]](e,s,t[s],o[s])}n=e.ruleRepetition;if(n&&n<3){raise(n,"options.ruleRepetition")}r.encode=encodeFactory(String(e.entities));r.escape=u(e);r.options=e;return r}function validateBoolean(e,r,t){var i=e[r];if(i==null){i=t}if(typeof i!=="boolean"){raise(i,"options."+r)}e[r]=i}function validateNumber(e,r,t){var i=e[r];if(i==null){i=t}if(isNaN(i)){raise(i,"options."+r)}e[r]=i}function validateString(e,r,t,i){var n=e[r];if(n==null){n=t}n=String(n);if(!(n in i)){raise(n,"options."+r)}e[r]=n}function validateFunction(e,r,t){var i=e[r];if(i==null){i=t}if(typeof i!=="function"){raise(i,"options."+r)}e[r]=i}function encodeFactory(e){var r={};if(e==="false"){return s}if(e==="true"){r.useNamedReferences=true}if(e==="escape"){r.escapeOnly=true;r.useNamedReferences=true}return wrapped;function wrapped(e){return n(e,r)}}function raise(e,r){throw new Error("Invalid value `"+e+"` for setting `"+r+"`")}},,,,,,,,,function(e){"use strict";function isNothing(e){return typeof e==="undefined"||e===null}function isObject(e){return typeof e==="object"&&e!==null}function toArray(e){if(Array.isArray(e))return e;else if(isNothing(e))return[];return[e]}function extend(e,r){var t,i,n,a;if(r){a=Object.keys(r);for(t=0,i=a.length;t"},{long:"ignore-path",description:"specify ignore file",short:"i",type:"string",value:""},{long:"setting",description:"specify settings",short:"s",type:"string",value:""},{long:"ext",description:"specify extensions",short:"e",type:"string",value:""},{long:"use",description:"use plugins",short:"u",type:"string",value:""},{long:"watch",description:"watch for changes and reprocess",short:"w",type:"boolean",default:false},{long:"quiet",description:"output only warnings and errors",short:"q",type:"boolean",default:false},{long:"silent",description:"output only errors",short:"S",type:"boolean",default:false},{long:"frail",description:"exit with 1 on warnings",short:"f",type:"boolean",default:false},{long:"tree",description:"specify input and output as syntax tree",short:"t",type:"boolean",default:false},{long:"report",description:"specify reporter",type:"string",value:""},{long:"file-path",description:"specify path to process as",type:"string",value:""},{long:"tree-in",description:"specify input as syntax tree",type:"boolean"},{long:"tree-out",description:"output syntax tree",type:"boolean"},{long:"inspect",description:"output formatted syntax tree",type:"boolean"},{long:"stdout",description:"specify writing to stdout",type:"boolean",truelike:true},{long:"color",description:"specify color in report",type:"boolean",default:true},{long:"config",description:"search for configuration files",type:"boolean",default:true},{long:"ignore",description:"search for ignore files",type:"boolean",default:true}]},,function(e){"use strict";function YAMLException(e,r){Error.call(this);this.name="YAMLException";this.reason=e;this.mark=r;this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"");if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}else{this.stack=(new Error).stack||""}}YAMLException.prototype=Object.create(Error.prototype);YAMLException.prototype.constructor=YAMLException;YAMLException.prototype.toString=function toString(e){var r=this.name+": ";r+=this.reason||"(unknown reason)";if(!e&&this.mark){r+=" "+this.mark.toString()}return r};e.exports=YAMLException},,,,,,function(e,r){function isArray(e){if(Array.isArray){return Array.isArray(e)}return objectToString(e)==="[object Array]"}r.isArray=isArray;function isBoolean(e){return typeof e==="boolean"}r.isBoolean=isBoolean;function isNull(e){return e===null}r.isNull=isNull;function isNullOrUndefined(e){return e==null}r.isNullOrUndefined=isNullOrUndefined;function isNumber(e){return typeof e==="number"}r.isNumber=isNumber;function isString(e){return typeof e==="string"}r.isString=isString;function isSymbol(e){return typeof e==="symbol"}r.isSymbol=isSymbol;function isUndefined(e){return e===void 0}r.isUndefined=isUndefined;function isRegExp(e){return objectToString(e)==="[object RegExp]"}r.isRegExp=isRegExp;function isObject(e){return typeof e==="object"&&e!==null}r.isObject=isObject;function isDate(e){return objectToString(e)==="[object Date]"}r.isDate=isDate;function isError(e){return objectToString(e)==="[object Error]"||e instanceof Error}r.isError=isError;function isFunction(e){return typeof e==="function"}r.isFunction=isFunction;function isPrimitive(e){return e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"||typeof e==="symbol"||typeof e==="undefined"}r.isPrimitive=isPrimitive;r.isBuffer=Buffer.isBuffer;function objectToString(e){return Object.prototype.toString.call(e)}},function(e){"use strict";e.exports=function isObject(e){return typeof e==="object"&&e!==null}},,,,,,,,,,function(e,r,t){"use strict";var i=t(855);e.exports=compile;function compile(){return this.visit(i(this.tree,this.options.commonmark))}},,function(e,r,t){"use strict";var i=t(100);var n=t(97);var a=t(998);e.exports=i("remark-lint:no-unused-definitions",noUnusedDefinitions);var u="Found unused definition";function noUnusedDefinitions(e,r){var t={};var i;var s;a(e,["definition","footnoteDefinition"],find);a(e,["imageReference","linkReference","footnoteReference"],mark);for(i in t){s=t[i];if(!s.used){r.message(u,s.node)}}function find(e){if(!n(e)){t[e.identifier.toUpperCase()]={node:e,used:false}}}function mark(e){var r=t[e.identifier.toUpperCase()];if(!n(e)&&r){r.used=true}}}},,,function(e,r,t){"use strict";var i=t(544);var n=t(548);var a=t(908);var u=t(617);var s=t(501);var o=Object.prototype.hasOwnProperty;var f=1;var l=2;var c=3;var h=4;var p=1;var v=2;var d=3;var D=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;var m=/[\x85\u2028\u2029]/;var g=/[,\[\]\{\}]/;var E=/^(?:!|!!|![a-z\-]+!)$/i;var A=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function is_EOL(e){return e===10||e===13}function is_WHITE_SPACE(e){return e===9||e===32}function is_WS_OR_EOL(e){return e===9||e===32||e===10||e===13}function is_FLOW_INDICATOR(e){return e===44||e===91||e===93||e===123||e===125}function fromHexCode(e){var r;if(48<=e&&e<=57){return e-48}r=e|32;if(97<=r&&r<=102){return r-97+10}return-1}function escapedHexLen(e){if(e===120){return 2}if(e===117){return 4}if(e===85){return 8}return 0}function fromDecimalCode(e){if(48<=e&&e<=57){return e-48}return-1}function simpleEscapeSequence(e){return e===48?"\0":e===97?"":e===98?"\b":e===116?"\t":e===9?"\t":e===110?"\n":e===118?"\v":e===102?"\f":e===114?"\r":e===101?"":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"…":e===95?" ":e===76?"\u2028":e===80?"\u2029":""}function charFromCodepoint(e){if(e<=65535){return String.fromCharCode(e)}return String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var C=new Array(256);var y=new Array(256);for(var w=0;w<256;w++){C[w]=simpleEscapeSequence(w)?1:0;y[w]=simpleEscapeSequence(w)}function State(e,r){this.input=e;this.filename=r["filename"]||null;this.schema=r["schema"]||s;this.onWarning=r["onWarning"]||null;this.legacy=r["legacy"]||false;this.json=r["json"]||false;this.listener=r["listener"]||null;this.implicitTypes=this.schema.compiledImplicit;this.typeMap=this.schema.compiledTypeMap;this.length=e.length;this.position=0;this.line=0;this.lineStart=0;this.lineIndent=0;this.documents=[]}function generateError(e,r){return new n(r,new a(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function throwError(e,r){throw generateError(e,r)}function throwWarning(e,r){if(e.onWarning){e.onWarning.call(null,generateError(e,r))}}var x={YAML:function handleYamlDirective(e,r,t){var i,n,a;if(e.version!==null){throwError(e,"duplication of %YAML directive")}if(t.length!==1){throwError(e,"YAML directive accepts exactly one argument")}i=/^([0-9]+)\.([0-9]+)$/.exec(t[0]);if(i===null){throwError(e,"ill-formed argument of the YAML directive")}n=parseInt(i[1],10);a=parseInt(i[2],10);if(n!==1){throwError(e,"unacceptable YAML version of the document")}e.version=t[0];e.checkLineBreaks=a<2;if(a!==1&&a!==2){throwWarning(e,"unsupported YAML version of the document")}},TAG:function handleTagDirective(e,r,t){var i,n;if(t.length!==2){throwError(e,"TAG directive accepts exactly two arguments")}i=t[0];n=t[1];if(!E.test(i)){throwError(e,"ill-formed tag handle (first argument) of the TAG directive")}if(o.call(e.tagMap,i)){throwError(e,'there is a previously declared suffix for "'+i+'" tag handle')}if(!A.test(n)){throwError(e,"ill-formed tag prefix (second argument) of the TAG directive")}e.tagMap[i]=n}};function captureSegment(e,r,t,i){var n,a,u,s;if(r1){e.result+=i.repeat("\n",r-1)}}function readPlainScalar(e,r,t){var i,n,a,u,s,o,f,l,c=e.kind,h=e.result,p;p=e.input.charCodeAt(e.position);if(is_WS_OR_EOL(p)||is_FLOW_INDICATOR(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96){return false}if(p===63||p===45){n=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(n)||t&&is_FLOW_INDICATOR(n)){return false}}e.kind="scalar";e.result="";a=u=e.position;s=false;while(p!==0){if(p===58){n=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(n)||t&&is_FLOW_INDICATOR(n)){break}}else if(p===35){i=e.input.charCodeAt(e.position-1);if(is_WS_OR_EOL(i)){break}}else if(e.position===e.lineStart&&testDocumentSeparator(e)||t&&is_FLOW_INDICATOR(p)){break}else if(is_EOL(p)){o=e.line;f=e.lineStart;l=e.lineIndent;skipSeparationSpace(e,false,-1);if(e.lineIndent>=r){s=true;p=e.input.charCodeAt(e.position);continue}else{e.position=u;e.line=o;e.lineStart=f;e.lineIndent=l;break}}if(s){captureSegment(e,a,u,false);writeFoldedLines(e,e.line-o);a=u=e.position;s=false}if(!is_WHITE_SPACE(p)){u=e.position+1}p=e.input.charCodeAt(++e.position)}captureSegment(e,a,u,false);if(e.result){return true}e.kind=c;e.result=h;return false}function readSingleQuotedScalar(e,r){var t,i,n;t=e.input.charCodeAt(e.position);if(t!==39){return false}e.kind="scalar";e.result="";e.position++;i=n=e.position;while((t=e.input.charCodeAt(e.position))!==0){if(t===39){captureSegment(e,i,e.position,true);t=e.input.charCodeAt(++e.position);if(t===39){i=e.position;e.position++;n=e.position}else{return true}}else if(is_EOL(t)){captureSegment(e,i,n,true);writeFoldedLines(e,skipSeparationSpace(e,false,r));i=n=e.position}else if(e.position===e.lineStart&&testDocumentSeparator(e)){throwError(e,"unexpected end of the document within a single quoted scalar")}else{e.position++;n=e.position}}throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,r){var t,i,n,a,u,s;s=e.input.charCodeAt(e.position);if(s!==34){return false}e.kind="scalar";e.result="";e.position++;t=i=e.position;while((s=e.input.charCodeAt(e.position))!==0){if(s===34){captureSegment(e,t,e.position,true);e.position++;return true}else if(s===92){captureSegment(e,t,e.position,true);s=e.input.charCodeAt(++e.position);if(is_EOL(s)){skipSeparationSpace(e,false,r)}else if(s<256&&C[s]){e.result+=y[s];e.position++}else if((u=escapedHexLen(s))>0){n=u;a=0;for(;n>0;n--){s=e.input.charCodeAt(++e.position);if((u=fromHexCode(s))>=0){a=(a<<4)+u}else{throwError(e,"expected hexadecimal character")}}e.result+=charFromCodepoint(a);e.position++}else{throwError(e,"unknown escape sequence")}t=i=e.position}else if(is_EOL(s)){captureSegment(e,t,i,true);writeFoldedLines(e,skipSeparationSpace(e,false,r));t=i=e.position}else if(e.position===e.lineStart&&testDocumentSeparator(e)){throwError(e,"unexpected end of the document within a double quoted scalar")}else{e.position++;i=e.position}}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,r){var t=true,i,n=e.tag,a,u=e.anchor,s,o,l,c,h,p={},v,d,D,m;m=e.input.charCodeAt(e.position);if(m===91){o=93;h=false;a=[]}else if(m===123){o=125;h=true;a={}}else{return false}if(e.anchor!==null){e.anchorMap[e.anchor]=a}m=e.input.charCodeAt(++e.position);while(m!==0){skipSeparationSpace(e,true,r);m=e.input.charCodeAt(e.position);if(m===o){e.position++;e.tag=n;e.anchor=u;e.kind=h?"mapping":"sequence";e.result=a;return true}else if(!t){throwError(e,"missed comma between flow collection entries")}d=v=D=null;l=c=false;if(m===63){s=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(s)){l=c=true;e.position++;skipSeparationSpace(e,true,r)}}i=e.line;composeNode(e,r,f,false,true);d=e.tag;v=e.result;skipSeparationSpace(e,true,r);m=e.input.charCodeAt(e.position);if((c||e.line===i)&&m===58){l=true;m=e.input.charCodeAt(++e.position);skipSeparationSpace(e,true,r);composeNode(e,r,f,false,true);D=e.result}if(h){storeMappingPair(e,a,p,d,v,D)}else if(l){a.push(storeMappingPair(e,null,p,d,v,D))}else{a.push(v)}skipSeparationSpace(e,true,r);m=e.input.charCodeAt(e.position);if(m===44){t=true;m=e.input.charCodeAt(++e.position)}else{t=false}}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,r){var t,n,a=p,u=false,s=false,o=r,f=0,l=false,c,h;h=e.input.charCodeAt(e.position);if(h===124){n=false}else if(h===62){n=true}else{return false}e.kind="scalar";e.result="";while(h!==0){h=e.input.charCodeAt(++e.position);if(h===43||h===45){if(p===a){a=h===43?d:v}else{throwError(e,"repeat of a chomping mode identifier")}}else if((c=fromDecimalCode(h))>=0){if(c===0){throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one")}else if(!s){o=r+c-1;s=true}else{throwError(e,"repeat of an indentation width identifier")}}else{break}}if(is_WHITE_SPACE(h)){do{h=e.input.charCodeAt(++e.position)}while(is_WHITE_SPACE(h));if(h===35){do{h=e.input.charCodeAt(++e.position)}while(!is_EOL(h)&&h!==0)}}while(h!==0){readLineBreak(e);e.lineIndent=0;h=e.input.charCodeAt(e.position);while((!s||e.lineIndento){o=e.lineIndent}if(is_EOL(h)){f++;continue}if(e.lineIndentr)&&o!==0){throwError(e,"bad indentation of a sequence entry")}else if(e.lineIndentr){if(composeNode(e,r,h,true,n)){if(D){v=e.result}else{d=e.result}}if(!D){storeMappingPair(e,f,c,p,v,d,a,u);p=v=d=null}skipSeparationSpace(e,true,-1);g=e.input.charCodeAt(e.position)}if(e.lineIndent>r&&g!==0){throwError(e,"bad indentation of a mapping entry")}else if(e.lineIndentr){p=1}else if(e.lineIndent===r){p=0}else if(e.lineIndentr){p=1}else if(e.lineIndent===r){p=0}else if(e.lineIndent tag; it should be "'+g.kind+'", not "'+e.kind+'"')}if(!g.resolve(e.result)){throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}else{e.result=g.construct(e.result);if(e.anchor!==null){e.anchorMap[e.anchor]=e.result}}}else{throwError(e,"unknown tag !<"+e.tag+">")}}if(e.listener!==null){e.listener("close",e)}return e.tag!==null||e.anchor!==null||d}function readDocument(e){var r=e.position,t,i,n,a=false,u;e.version=null;e.checkLineBreaks=e.legacy;e.tagMap={};e.anchorMap={};while((u=e.input.charCodeAt(e.position))!==0){skipSeparationSpace(e,true,-1);u=e.input.charCodeAt(e.position);if(e.lineIndent>0||u!==37){break}a=true;u=e.input.charCodeAt(++e.position);t=e.position;while(u!==0&&!is_WS_OR_EOL(u)){u=e.input.charCodeAt(++e.position)}i=e.input.slice(t,e.position);n=[];if(i.length<1){throwError(e,"directive name must not be less than one character in length")}while(u!==0){while(is_WHITE_SPACE(u)){u=e.input.charCodeAt(++e.position)}if(u===35){do{u=e.input.charCodeAt(++e.position)}while(u!==0&&!is_EOL(u));break}if(is_EOL(u))break;t=e.position;while(u!==0&&!is_WS_OR_EOL(u)){u=e.input.charCodeAt(++e.position)}n.push(e.input.slice(t,e.position))}if(u!==0)readLineBreak(e);if(o.call(x,i)){x[i](e,i,n)}else{throwWarning(e,'unknown document directive "'+i+'"')}}skipSeparationSpace(e,true,-1);if(e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45){e.position+=3;skipSeparationSpace(e,true,-1)}else if(a){throwError(e,"directives end mark is expected")}composeNode(e,e.lineIndent-1,h,false,true);skipSeparationSpace(e,true,-1);if(e.checkLineBreaks&&m.test(e.input.slice(r,e.position))){throwWarning(e,"non-ASCII line breaks are interpreted as content")}e.documents.push(e.result);if(e.position===e.lineStart&&testDocumentSeparator(e)){if(e.input.charCodeAt(e.position)===46){e.position+=3;skipSeparationSpace(e,true,-1)}return}if(e.position=e.expected){e.emit("done")}}},function(e){"use strict";e.exports=function(e,r){if(e===null||e===undefined){throw TypeError()}e=String(e);var t=e.length;var i=r?Number(r):0;if(Number.isNaN(i)){i=0}if(i<0||i>=t){return undefined}var n=e.charCodeAt(i);if(n>=55296&&n<=56319&&t>i+1){var a=e.charCodeAt(i+1);if(a>=56320&&a<=57343){return(n-55296)*1024+a-56320+65536}}return n}},function(e,r,t){"use strict";var i=t(80);var n=t(712);var a=t(775);e.exports=messageControl;function messageControl(e){return i(a({marker:n,test:"html"},e))}},,function(e,r,t){"use strict";var i=t(174);var n=t(576);var a=t(991);e.exports=function(e){if(typeof e!=="string"||e.length===0){return 0}var r=0;e=i(e);for(var t=0;t=127&&u<=159){continue}if(u>=65536){t++}if(a(u)){r+=2}else{r++}}return r}},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:table-pipes",tablePipes);var s=a.start;var o=a.end;var f="Missing initial pipe in table fence";var l="Missing final pipe in table fence";function tablePipes(e,r){var t=String(r);n(e,"table",visitor);function visitor(e){var i=e.children;var n=i.length;var a=-1;var c;var h;var p;var v;var d;var D;while(++a{if(testProhibited(t,i)){r.message(`Use "${t.yes}" instead of "${t.no}"`,e)}})}}},,function(e,r,t){"use strict";var i=t(758);e.exports=newline;var n="\n";function newline(e,r,t){var a=r.charAt(0);var u;var s;var o;var f;if(a!==n){return}if(t){return true}f=1;u=r.length;s=a;o="";while(f{let r=false;let t=false;let i=false;for(let n=0;n{t=Object.assign({pascalCase:false},t);const i=e=>t.pascalCase?e.charAt(0).toUpperCase()+e.slice(1):e;if(Array.isArray(e)){e=e.map(e=>e.trim()).filter(e=>e.length).join("-")}else{e=e.trim()}if(e.length===0){return""}if(e.length===1){return t.pascalCase?e.toUpperCase():e.toLowerCase()}if(/^[a-z\d]+$/.test(e)){return i(e)}const n=e!==e.toLowerCase();if(n){e=r(e)}e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(e,r)=>r.toUpperCase());return i(e)})},,,,,,,,,,function(e,r,t){"use strict";var i=t(875);e.exports=new i({include:[t(12)],implicit:[t(46),t(815)],explicit:[t(391),t(684),t(211),t(781)]})},,function(e,r,t){"use strict";var i=t(765);var n=t(758);var a=t(419);e.exports=strong;strong.locator=a;var u="\\";var s="*";var o="_";function strong(e,r,t){var a=this;var f=0;var l=r.charAt(f);var c;var h;var p;var v;var d;var D;var m;if(l!==s&&l!==o||r.charAt(++f)!==l){return}h=a.options.pedantic;p=l;d=p+p;D=r.length;f++;v="";l="";if(h&&n(r.charAt(f))){return}while(f>>=0;var n=e.byteLength-r;if(n<0){throw new RangeError("'offset' is out of bounds")}if(i===undefined){i=n}else{i>>>=0;if(i>n){throw new RangeError("'length' is out of bounds")}}return t?Buffer.from(e.slice(r,r+i)):new Buffer(new Uint8Array(e.slice(r,r+i)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return t?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,i){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,i)}if(typeof e==="string"){return fromString(e,r)}return t?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},,,function(e){"use strict";e.exports=locate;function locate(e,r){var t=e.indexOf("[",r);var i=e.indexOf("![",r);if(i===-1){return t}return t=e.length?e.length:n+t;r.message+=` while parsing near '${i===0?"":"..."}${e.slice(i,a)}${a===e.length?"":"..."}'`}else{r.message+=` while parsing '${e.slice(0,t*2)}'`}throw r}}},,,,,,,function(e){"use strict";e.exports=locate;function locate(e,r){var t=e.indexOf("\n",r);while(t>r){if(e.charAt(t-1)!==" "){break}t--}return t}},function(e,r,t){"use strict";var i=t(400);function resolveYamlNull(e){if(e===null)return true;var r=e.length;return r===1&&e==="~"||r===4&&(e==="null"||e==="Null"||e==="NULL")}function constructYamlNull(){return null}function isNull(e){return e===null}e.exports=new i("tag:yaml.org,2002:null",{kind:"scalar",resolve:resolveYamlNull,construct:constructYamlNull,predicate:isNull,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},,,,function(e){"use strict";e.exports=alphabetical;function alphabetical(e){var r=typeof e==="string"?e.charCodeAt(0):e;return r>=97&&r<=122||r>=65&&r<=90}},,,,,,,,function(e,r,t){"use strict";const i=t(431);const n=t(832);const a=process.env;const u=e=>{if(e===0){return false}return{level:e,hasBasic:true,has256:e>=2,has16m:e>=3}};let s=(()=>{if(n("no-color")||n("no-colors")||n("color=false")){return 0}if(n("color=16m")||n("color=full")||n("color=truecolor")){return 3}if(n("color=256")){return 2}if(n("color")||n("colors")||n("color=true")||n("color=always")){return 1}if(process.stdout&&!process.stdout.isTTY){return 0}if(process.platform==="win32"){const e=i.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586){return 2}return 1}if("CI"in a){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in a)||a.CI_NAME==="codeship"){return 1}return 0}if("TEAMCITY_VERSION"in a){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(a.TEAMCITY_VERSION)?1:0}if("TERM_PROGRAM"in a){const e=parseInt((a.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(a.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(a.TERM)){return 2}if(/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(a.TERM)){return 1}if("COLORTERM"in a){return 1}if(a.TERM==="dumb"){return 0}return 0})();if("FORCE_COLOR"in a){s=parseInt(a.FORCE_COLOR,10)===0?0:s||1}e.exports=process&&u(s)},,function(e){"use strict";e.exports=factory;function factory(e,r,t){return enter;function enter(){var i=t||this;var n=i[e];i[e]=!r;return exit;function exit(){i[e]=n}}}},function(e,r,t){"use strict";var i=t(770);var n=t(694);var a=t(758);var u=t(943);var s=t(980);e.exports=factory;var o="\t";var f="\n";var l=" ";var c="#";var h="&";var p="(";var v=")";var d="*";var D="+";var m="-";var g=".";var E=":";var A="<";var C=">";var y="[";var w="\\";var x="]";var b="_";var F="`";var S="|";var B="~";var k="!";var O={"<":"<",":":":","&":"&","|":"|","~":"~"};var P="shortcut";var T="mailto";var I="https";var M="http";var L=/\n\s*$/;function factory(e){return escape;function escape(r,t,T){var I=this;var M=e.gfm;var R=e.commonmark;var j=e.pedantic;var N=R?[g,v]:[g];var U=T&&T.children;var J=U&&U.indexOf(t);var z=U&&U[J-1];var X=U&&U[J+1];var q=r.length;var _=u(e);var G=-1;var W=[];var V=W;var H;var Y;var $;var Z;var Q;var K;if(z){H=text(z)&&L.test(z.value)}else{H=!T||T.type==="root"||T.type==="paragraph"}while(++G0||Y===x&&I.inLink||M&&Y===B&&r.charAt(G+1)===B||M&&Y===S&&(I.inTable||alignment(r,G))||Y===b&&G>0&&Gt.length;var a;if(n){t.push(done)}try{a=e.apply(null,t)}catch(e){if(n&&i){throw e}return done(e)}if(!n){if(a&&typeof a.then==="function"){a.then(then,done)}else if(a instanceof Error){done(a)}else{then(a)}}}function done(){if(!i){i=true;t.apply(null,arguments)}}function then(e){done(null,e)}}},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:configure");var n=t(356);var a=t(164);var u=t(555);var s=t(890);e.exports=configure;function configure(e,r,t,o){var f=e.configuration;var l=e.processor;if(n(r).fatal){return o()}f.load(r.path,handleConfiguration);function handleConfiguration(e,r){var n;var f;var c;var h;var p;var v;if(e){return o(e)}i("Using settings `%j`",r.settings);l.data("settings",r.settings);n=r.plugins;h=n.length;p=-1;i("Using `%d` plugins",h);while(++p output."+t,""," # Rewrite all applicable files"," $ "+i+" . -o"].join("\n");return{helpMessage:u,cwd:r.cwd,processor:r.processor,help:n.help,version:n.version,files:n._,watch:n.watch,extensions:l.length?l:r.extensions,output:n.output,out:n.stdout,tree:n.tree,treeIn:n.treeIn,treeOut:n.treeOut,inspect:n.inspect,rcName:r.rcName,packageField:r.packageField,rcPath:n.rcPath,detectConfig:n.config,settings:settings(n.setting),ignoreName:r.ignoreName,ignorePath:n.ignorePath,detectIgnore:n.ignore,pluginPrefix:r.pluginPrefix,plugins:plugins(n.use),reporter:c[0],reporterOptions:c[1],color:n.color,silent:n.silent,quiet:n.quiet,frail:n.frail}}function addEach(e){var r=e.default;f.default[e.long]=r===undefined?null:r;if(e.type in f){f[e.type].push(e.long)}if(e.short){f.alias[e.short]=e.long}}function extensions(e){return flatten(normalize(e).map(splitList))}function plugins(e){var r={};normalize(e).map(splitOptions).forEach(function(e){r[e[0]]=e[1]?parseConfig(e[1],{}):null});return r}function reporter(e){var r=normalize(e).map(splitOptions).map(function(e){return[e[0],e[1]?parseConfig(e[1],{}):null]});return r[r.length-1]||[]}function settings(e){var r={};normalize(e).forEach(function(e){parseConfig(e,r)});return r}function parseConfig(e,r){var t;var i;try{e=toCamelCase(parseJSON(e))}catch(r){i=r.message.replace(/at(?= position)/,"around");throw s("Cannot parse `%s` as JSON: %s",e,i)}for(t in e){r[t]=e[t]}return r}function handleUnknownArgument(e){if(e.charAt(0)!=="-"){return}if(e.charAt(1)==="-"){throw s("Unknown option `%s`, expected:\n%s",e,inspectAll(o))}e.slice(1).split("").forEach(each);function each(e){var r=o.length;var t=-1;var i;while(++t=u){v--;break}d+=g}D="";m="";while(++v=l&&C!==o){m=r.indexOf(o,m+1);continue}}A=r.slice(m+1);if(u(D,d,c,[e,A,true])){break}if(d.list.call(c,e,A,true)&&(c.inList||p||v&&!n(i.left(A).charAt(0)))){break}E=m;m=r.indexOf(o,m+1);if(m!==-1&&i(r.slice(E,m))===""){m=E;break}}A=r.slice(0,m);if(i(A)===""){e(A);return null}if(t){return true}w=e.now();A=a(A);return e(A)({type:"paragraph",children:c.tokenizeInline(A,w)})}},function(e,r,t){"use strict";var i=t(775);var n=t(9);e.exports=unherit;function unherit(e){var r;var t;var a;n(Of,e);n(From,Of);r=Of.prototype;for(t in r){a=r[t];if(a&&typeof a==="object"){r[t]="concat"in a?a.concat():i(a)}}return Of;function From(r){return e.apply(this,r)}function Of(){if(!(this instanceof Of)){return new From(arguments)}return e.apply(this,arguments)}}},function(e,r,t){"use strict";var i=t(775);var n=t(260);e.exports=parse;var a="\n";var u=/\r\n|\r/g;function parse(){var e=this;var r=String(e.file);var t={line:1,column:1,offset:0};var s=i(t);var o;r=r.replace(u,a);if(r.charCodeAt(0)===65279){r=r.slice(1);s.column++;s.offset++}o={type:"root",children:e.tokenizeBlock(r,s),position:{start:t,end:e.eof||i(t)}};if(!e.options.position){n(o,true)}return o}},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:queue");var n=t(356);var a=t(817);e.exports=queue;function queue(e,r,t,u){var s=r.history[0];var o=t.complete;var f=true;if(!o){o={};t.complete=o}i("Queueing `%s`",s);o[s]=u;t.valueOf().forEach(each);if(!f){i("Not flushing: some files cannot be flushed");return}t.complete={};t.pipeline.run(t,done);function each(e){var r=e.history[0];if(n(e).fatal){return}if(a(o[r])){i("`%s` can be flushed",r)}else{i("Interupting flush: `%s` is not finished",r);f=false}}function done(e){i("Flushing: all files can be flushed");for(s in o){o[s](e)}}}},function(e,r,t){"use strict";var i=t(100);var n=t(434);var a=t(998);var u=t(220);var s=t(97);e.exports=i("remark-lint:no-heading-indent",noHeadingIndent);var o=u.start;function noHeadingIndent(e,r){var t=String(r);var i=t.length;a(e,"heading",visitor);function visitor(e){var a;var u;var f;var l;var c;if(s(e)){return}a=o(e);u=a.offset;f=u-1;while(++f1;var p=c;var v=r.path;if(!u(p)){a("Not copying");return i()}p=f(e.cwd,p);a("Copying `%s`",v);s(p,onstatfile);function onstatfile(e,r){if(e){if(e.code!=="ENOENT"||c.charAt(c.length-1)===n.sep){return i(new Error("Cannot read output directory. Error:\n"+e.message))}s(o(p),onstatparent)}else{done(r.isDirectory())}}function onstatparent(e){if(e){i(new Error("Cannot read parent directory. Error:\n"+e.message))}else{done(false)}}function done(e){if(!e&&h){return i(new Error("Cannot write multiple files to single output: "+p))}r[e?"dirname":"path"]=l(r.cwd,p);a("Copying document from %s to %s",v,r.path);i()}}},,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(97);e.exports=i("remark-lint:no-shell-dollars",noShellDollars);var u="Do not use dollar signs before shell-commands";var s=["sh","bash","bats","cgi","command","fcgi","ksh","tmux","tool","zsh"];function noShellDollars(e,r){n(e,"code",visitor);function visitor(e){var t;var i;var n;var o;if(!a(e)&&e.lang&&s.indexOf(e.lang)!==-1){t=e.value.split("\n");n=t.length;o=-1;if(n<=1){return}while(++o1){r.message(s,e)}}}},,,function(e,r,t){"use strict";var i=t(43);var n=t(354);var a=t(975);e.exports=code;var u="\n";var s=" ";function code(e,r){var t=this;var o=e.value;var f=t.options;var l=f.fence;var c=e.lang||"";var h;if(c&&e.meta){c+=s+e.meta}c=t.encode(t.escape(c,e));if(!c&&!f.fences&&o){if(r&&r.type==="listItem"&&f.listItemIndent!=="tab"&&f.pedantic){t.file.fail("Cannot indent code properly. See https://git.io/fxKR8",e.position)}return a(o,1)}h=n(l,Math.max(i(o,l)+1,3));return h+c+u+o+u+h}},,function(e,r,t){"use strict";var i=t(400);var n=Object.prototype.hasOwnProperty;var a=Object.prototype.toString;function resolveYamlOmap(e){if(e===null)return true;var r=[],t,i,u,s,o,f=e;for(t=0,i=f.length;t<]/g}},function(e){e.exports={AEli:"Æ",AElig:"Æ",AM:"&",AMP:"&",Aacut:"Á",Aacute:"Á",Abreve:"Ă",Acir:"Â",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrav:"À",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Arin:"Å",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atild:"Ã",Atilde:"Ã",Aum:"Ä",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COP:"©",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedi:"Ç",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ET:"Ð",ETH:"Ð",Eacut:"É",Eacute:"É",Ecaron:"Ě",Ecir:"Ê",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrav:"È",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Eum:"Ë",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",G:">",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacut:"Í",Iacute:"Í",Icir:"Î",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrav:"Ì",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Ium:"Ï",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",L:"<",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntild:"Ñ",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacut:"Ó",Oacute:"Ó",Ocir:"Ô",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograv:"Ò",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslas:"Ø",Oslash:"Ø",Otild:"Õ",Otilde:"Õ",Otimes:"⨷",Oum:"Ö",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUO:'"',QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",RE:"®",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THOR:"Þ",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacut:"Ú",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucir:"Û",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrav:"Ù",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uum:"Ü",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacut:"Ý",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacut:"á",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acir:"â",acirc:"â",acut:"´",acute:"´",acy:"а",aeli:"æ",aelig:"æ",af:"⁡",afr:"𝔞",agrav:"à",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",am:"&",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",arin:"å",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atild:"ã",atilde:"ã",aum:"ä",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvba:"¦",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedi:"ç",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedi:"¸",cedil:"¸",cemptyv:"⦲",cen:"¢",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",cop:"©",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curre:"¤",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",de:"°",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divid:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacut:"é",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"ê",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrav:"è",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",et:"ð",eth:"ð",eum:"ë",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac1:"¼",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac3:"¾",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",g:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacut:"í",iacute:"í",ic:"⁣",icir:"î",icirc:"î",icy:"и",iecy:"е",iexc:"¡",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrav:"ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iques:"¿",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",ium:"ï",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laqu:"«",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",l:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",mac:"¯",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micr:"µ",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middo:"·",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbs:" ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",no:"¬",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntild:"ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacut:"ó",oacute:"ó",oast:"⊛",ocir:"ô",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograv:"ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"º",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslas:"ø",oslash:"ø",osol:"⊘",otild:"õ",otilde:"õ",otimes:"⊗",otimesas:"⨶",oum:"ö",ouml:"ö",ovbar:"⌽",par:"¶",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusm:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",poun:"£",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quo:'"',quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raqu:"»",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",re:"®",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sec:"§",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",sh:"­",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szli:"ß",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thor:"þ",thorn:"þ",tilde:"˜",time:"×",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacut:"ú",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucir:"û",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrav:"ù",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",um:"¨",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uum:"ü",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacut:"ý",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",ye:"¥",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yum:"ÿ",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},,,function(e,r,t){"use strict";var i=t(100);var n=t(903);e.exports=i("remark-lint:no-tabs",noTabs);var a="Use spaces instead of hard-tabs";function noTabs(e,r){var t=String(r);var i=n(r).toPosition;var u=t.indexOf("\t");while(u!==-1){r.message(a,i(u));u=t.indexOf("\t",u+1)}}},,,,,function(e,r,t){"use strict";var i=t(570);var n=t(143);function deprecated(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=t(400);e.exports.Schema=t(875);e.exports.FAILSAFE_SCHEMA=t(976);e.exports.JSON_SCHEMA=t(790);e.exports.CORE_SCHEMA=t(12);e.exports.DEFAULT_SAFE_SCHEMA=t(617);e.exports.DEFAULT_FULL_SCHEMA=t(501);e.exports.load=i.load;e.exports.loadAll=i.loadAll;e.exports.safeLoad=i.safeLoad;e.exports.safeLoadAll=i.safeLoadAll;e.exports.dump=n.dump;e.exports.safeDump=n.safeDump;e.exports.YAMLException=t(548);e.exports.MINIMAL_SCHEMA=t(976);e.exports.SAFE_SCHEMA=t(617);e.exports.DEFAULT_SCHEMA=t(501);e.exports.scan=deprecated("scan");e.exports.parse=deprecated("parse");e.exports.compose=deprecated("compose");e.exports.addConstructor=deprecated("addConstructor")},function(e,r,t){"use strict";var i=t(775);var n=t(478);e.exports=factory;function factory(e){decoder.raw=decodeRaw;return decoder;function normalize(r){var t=e.offset;var i=r.line;var n=[];while(++i){if(!(i in t)){break}n.push((t[i]||0)+1)}return{start:r,indent:n}}function decoder(r,t,i){n(r,{position:normalize(t),warning:handleWarning,text:i,reference:i,textContext:e,referenceContext:e})}function decodeRaw(e,r,t){return n(e,i(t,{position:normalize(r),warning:handleWarning}))}function handleWarning(r,t,i){if(i!==3){e.file.message(r,t)}}}},function(e){(function(){var r;if(true){r=e.exports=format}else{}r.format=format;r.vsprintf=vsprintf;if(typeof console!=="undefined"&&typeof console.log==="function"){r.printf=printf}function printf(){console.log(format.apply(null,arguments))}function vsprintf(e,r){return format.apply(null,[e].concat(r))}function format(e){var r=1,t=[].slice.call(arguments),i=0,n=e.length,a="",u,s=false,o,f,l=false,c,h=function(){return t[r++]},p=function(){var r="";while(/\d/.test(e[i])){r+=e[i++];u=e[i]}return r.length>0?parseInt(r):null};for(;i1)return true;for(var a=0;athis.maxLength)return r();if(!this.stat&&m(this.cache,t)){var a=this.cache[t];if(Array.isArray(a))a="DIR";if(!n||a==="DIR")return r(null,a);if(n&&a==="FILE")return r()}var u;var s=this.statCache[t];if(s!==undefined){if(s===false)return r(null,s);else{var o=s.isDirectory()?"DIR":"FILE";if(n&&o==="FILE")return r();else return r(null,o,s)}}var f=this;var l=g("stat\0"+t,lstatcb_);if(l)i.lstat(t,l);function lstatcb_(n,a){if(a&&a.isSymbolicLink()){return i.stat(t,function(i,n){if(i)f._stat2(e,t,null,a,r);else f._stat2(e,t,i,n,r)})}else{f._stat2(e,t,n,a,r)}}};Glob.prototype._stat2=function(e,r,t,i,n){if(t&&(t.code==="ENOENT"||t.code==="ENOTDIR")){this.statCache[r]=false;return n()}var a=e.slice(-1)==="/";this.statCache[r]=i;if(r.slice(-1)==="/"&&i&&!i.isDirectory())return n(null,false,i);var u=true;if(i)u=i.isDirectory()?"DIR":"FILE";this.cache[r]=this.cache[r]||u;if(a&&u==="FILE")return n();return n(null,u,i)}},,,,function(e,r){r=e.exports=trim;function trim(e){return e.replace(/^\s*|\s*$/g,"")}r.left=function(e){return e.replace(/^\s*/,"")};r.right=function(e){return e.replace(/\s*$/,"")}},,,,,function(e){"use strict";e.exports=decimal;function decimal(e){var r=typeof e==="string"?e.charCodeAt(0):e;return r>=48&&r<=57}},function(e,r,t){"use strict";var i=t(765);var n=t(354);var a=t(816);e.exports=indentation;var u="\t";var s="\n";var o=" ";var f="!";function indentation(e,r){var t=e.split(s);var l=t.length+1;var c=Infinity;var h=[];var p;var v;var d;var D;t.unshift(n(o,r)+f);while(l--){v=a(t[l]);h[l]=v.stops;if(i(t[l]).length===0){continue}if(v.indent){if(v.indent>0&&v.indent0){return parse(e)}else if(t==="number"&&isNaN(e)===false){return r.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var s=/^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!s){return}var o=parseFloat(s[1]);var f=(s[2]||"ms").toLowerCase();switch(f){case"years":case"year":case"yrs":case"yr":case"y":return o*u;case"weeks":case"week":case"w":return o*a;case"days":case"day":case"d":return o*n;case"hours":case"hour":case"hrs":case"hr":case"h":return o*i;case"minutes":case"minute":case"mins":case"min":case"m":return o*t;case"seconds":case"second":case"secs":case"sec":case"s":return o*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return undefined}}function fmtShort(e){var a=Math.abs(e);if(a>=n){return Math.round(e/n)+"d"}if(a>=i){return Math.round(e/i)+"h"}if(a>=t){return Math.round(e/t)+"m"}if(a>=r){return Math.round(e/r)+"s"}return e+"ms"}function fmtLong(e){var a=Math.abs(e);if(a>=n){return plural(e,a,n,"day")}if(a>=i){return plural(e,a,i,"hour")}if(a>=t){return plural(e,a,t,"minute")}if(a>=r){return plural(e,a,r,"second")}return e+" ms"}function plural(e,r,t,i){var n=r>=t*1.5;return Math.round(e/t)+" "+i+(n?"s":"")}},function(e){"use strict";e.exports=locate;function locate(e,r){return e.indexOf("<",r)}},function(e,r,t){"use strict";var i=t(758);var n=t(68);e.exports=inlineCode;inlineCode.locator=n;var a="`";function inlineCode(e,r,t){var n=r.length;var u=0;var s="";var o="";var f;var l;var c;var h;var p;var v;var d;var D;while(ut&&a3)return false;if(r[r.length-i.length-1]!=="/")return false}return true}function constructJavascriptRegExp(e){var r=e,t=/\/([gim]*)$/.exec(e),i="";if(r[0]==="/"){if(t)i=t[1];r=r.slice(1,r.length-i.length-1)}return new RegExp(r,i)}function representJavascriptRegExp(e){var r="/"+e.source+"/";if(e.global)r+="g";if(e.multiline)r+="m";if(e.ignoreCase)r+="i";return r}function isRegExp(e){return Object.prototype.toString.call(e)==="[object RegExp]"}e.exports=new i("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:resolveJavascriptRegExp,construct:constructJavascriptRegExp,predicate:isRegExp,represent:representJavascriptRegExp})},function(e,r,t){"use strict";var i=t(400);function resolveYamlMerge(e){return e==="<<"||e===null}e.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge})},function(e){"use strict";e.exports=indentation;var r="\t";var t=" ";var i=1;var n=4;function indentation(e){var a=0;var u=0;var s=e.charAt(a);var o={};var f;while(s===r||s===t){f=s===r?n:i;u+=f;if(f>1){u=Math.floor(u/f)*f}o[u]=a;s=e.charAt(++a)}return{indent:u,stops:o}}},function(e){e.exports=function isFunction(e){return Object.prototype.toString.call(e)==="[object Function]"}},function(e){e.exports={name:"node-lint-md-cli-rollup",description:"remark packaged for node markdown linting",version:"2.0.0",devDependencies:{"@zeit/ncc":"^0.15.2"},dependencies:{"markdown-extensions":"^1.1.1",remark:"^10.0.1","remark-lint":"^6.0.4","remark-preset-lint-node":"^1.4.0","unified-args":"^6.0.0","unified-engine":"^5.1.0"},main:"src/cli-entry.js",scripts:{build:"ncc build -m","build-node":"npm run build && cp dist/index.js ../lint-md.js"}}},function(e,r,t){"use strict";var i=t(532);var n=t(234);e.exports=image;var a=" ";var u="(";var s=")";var o="[";var f="]";var l="!";function image(e){var r=this;var t=i(r.encode(e.url||"",e));var c=r.enterLink();var h=r.encode(r.escape(e.alt||"",e));c();if(e.title){t+=a+n(r.encode(e.title,e))}return l+o+h+f+u+t+s}},function(e){e.exports=function(e,r){if(!r)r={};var t=r.hsep===undefined?" ":r.hsep;var i=r.align||[];var n=r.stringLength||function(e){return String(e).length};var a=reduce(e,function(e,r){forEach(r,function(r,t){var i=dotindex(r);if(!e[t]||i>e[t])e[t]=i});return e},[]);var u=map(e,function(e){return map(e,function(e,r){var t=String(e);if(i[r]==="."){var u=dotindex(t);var s=a[r]+(/\./.test(t)?1:2)-(n(t)-u);return t+Array(s).join(" ")}else return t})});var s=reduce(u,function(e,r){forEach(r,function(r,t){var i=n(r);if(!e[t]||i>e[t])e[t]=i});return e},[]);return map(u,function(e){return map(e,function(e,r){var t=s[r]-n(e)||0;var a=Array(Math.max(t+1,1)).join(" ");if(i[r]==="r"||i[r]==="."){return a+e}if(i[r]==="c"){return Array(Math.ceil(t/2+1)).join(" ")+e+Array(Math.floor(t/2+1)).join(" ")}return e+a}).join(t).replace(/\s+$/,"")}).join("\n")};function dotindex(e){var r=/\.[^.]*$/.exec(e);return r?r.index+1:e.length}function reduce(e,r,t){if(e.reduce)return e.reduce(r,t);var i=0;var n=arguments.length>=3?t:e[i++];for(;i2){r.message(s,e)}}}}},,function(e){"use strict";e.exports=function(e,r){r=r||process.argv;var t=r.indexOf("--");var i=/^-{1,2}/.test(e)?"":"--";var n=r.indexOf(i+e);return n!==-1&&(t===-1?true:n`\\u0000-\\u0020]+";var n="'[^']*'";var a='"[^"]*"';var u="(?:"+i+"|"+n+"|"+a+")";var s="(?:\\s+"+t+"(?:\\s*=\\s*"+u+")?)";var o="<[A-Za-z][A-Za-z0-9\\-]*"+s+"*\\s*\\/?>";var f="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>";var l="\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e";var c="<[?].*?[?]>";var h="]*>";var p="";r.openCloseTag=new RegExp("^(?:"+o+"|"+f+")");r.tag=new RegExp("^(?:"+o+"|"+f+"|"+l+"|"+c+"|"+h+"|"+p+")")},function(e,r,t){"use strict";var i=t(544);var n=t(548);var a=t(400);function compileList(e,r,t){var i=[];e.include.forEach(function(e){t=compileList(e,r,t)});e[r].forEach(function(e){t.forEach(function(r,t){if(r.tag===e.tag&&r.kind===e.kind){i.push(t)}});t.push(e)});return t.filter(function(e,r){return i.indexOf(r)===-1})}function compileMap(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},r,t;function collectType(r){e[r.kind][r.tag]=e["fallback"][r.tag]=r}for(r=0,t=arguments.length;r-1){a.splice(u,1)}var s=t;a.forEach(function _buildSubObj(e,t){if(!e||typeof s!=="object")return;if(t===a.length-1)s[e]=r[n];if(s[e]===undefined)s[e]={};s=s[e]})}}return t};var c=r.find=function(){var e=a.join.apply(null,[].slice.call(arguments));function find(e,r){var t=a.join(e,r);try{i.statSync(t);return t}catch(t){if(a.dirname(e)!==e)return find(a.dirname(e),r)}}return find(process.cwd(),e)}},function(e,r,t){"use strict";var i=t(43);var n=t(354);e.exports=inlineCode;var a=" ";var u="`";function inlineCode(e){var r=e.value;var t=n(u,i(r,u)+1);var s=t;var o=t;if(r.charAt(0)===u){s+=a}if(r.charAt(r.length-1)===u){o=a+o}return s+r+o}},,function(e){var r=Object.prototype.hasOwnProperty;var t=Object.prototype.toString;function isEmpty(e){if(e==null)return true;if("boolean"==typeof e)return false;if("number"==typeof e)return e===0;if("string"==typeof e)return e.length===0;if("function"==typeof e)return e.length===0;if(Array.isArray(e))return e.length===0;if(e instanceof Error)return e.message==="";if(e.toString==t){switch(e.toString()){case"[object File]":case"[object Map]":case"[object Set]":{return e.size===0}case"[object Object]":{for(var i in e){if(r.call(e,i))return false}return true}}}return false}e.exports=isEmpty},,function(e,r,t){"use strict";function _typeof(e){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(e){return typeof e}}else{_typeof=function _typeof(e){return e&&typeof Symbol==="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}}return _typeof(e)}r.log=log;r.formatArgs=formatArgs;r.save=save;r.load=load;r.useColors=useColors;r.storage=localstorage();r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(r){r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}var t="color: "+this.color;r.splice(1,0,t,"color: inherit");var i=0;var n=0;r[0].replace(/%[a-zA-Z%]/g,function(e){if(e==="%%"){return}i++;if(e==="%c"){n=i}});r.splice(n,0,t)}function log(){var e;return(typeof console==="undefined"?"undefined":_typeof(console))==="object"&&console.log&&(e=console).log.apply(e,arguments)}function save(e){try{if(e){r.storage.setItem("debug",e)}else{r.storage.removeItem("debug")}}catch(e){}}function load(){var e;try{e=r.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=t(519)(r);var i=e.exports.formatters;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},,,,function(e,r,t){"use strict";var i=t(575);var n=t(601);e.exports=transform;function transform(e,r,t){var a=new i;e.fileSet=a;a.on("add",add).on("done",t);if(e.files.length===0){t()}else{e.files.forEach(a.add,a)}function add(t){n.run({configuration:e.configuration,processor:r.processor(),cwd:r.cwd,extensions:r.extensions,pluginPrefix:r.pluginPrefix,treeIn:r.treeIn,treeOut:r.treeOut,inspect:r.inspect,color:r.color,out:r.out,output:r.output,streamOut:r.streamOut,alwaysStringify:r.alwaysStringify},t,a,done);function done(e){if(e){e=t.message(e);e.fatal=true}a.emit("one",t)}}}},,,,,function(e,r,t){"use strict";e.exports=t(447)},function(e){"use strict";e.exports=locate;function locate(e,r){return e.indexOf("~~",r)}},function(e){"use strict";e.exports=factory;function factory(e){var r=indices(String(e));return{toPosition:offsetToPositionFactory(r),toOffset:positionToOffsetFactory(r)}}function offsetToPositionFactory(e){return offsetToPosition;function offsetToPosition(r){var t=-1;var i=e.length;if(r<0){return{}}while(++tr){return{line:t+1,column:r-(e[t-1]||0)+1,offset:r}}}return{}}}function positionToOffsetFactory(e){return positionToOffset;function positionToOffset(r){var t=r&&r.line;var i=r&&r.column;if(!isNaN(t)&&!isNaN(i)&&t-1 in e){return(e[t-2]||0)+i-1||0}return-1}}function indices(e){var r=[];var t=e.indexOf("\n");while(t!==-1){r.push(t+1);t=e.indexOf("\n",t+1)}r.push(e.length+1);return r}},,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);var s=t(67);e.exports=i("remark-lint:no-auto-link-without-protocol",noAutoLinkWithoutProtocol);var o=a.start;var f=a.end;var l=/^[a-z][a-z+.-]+:\/?/i;var c="All automatic links must start with a protocol";function noAutoLinkWithoutProtocol(e,r){n(e,"link",visitor);function visitor(e){var t;if(!u(e)){t=e.children;if(o(e).column===o(t[0]).column-1&&f(e).column===f(t[t.length-1]).column+1&&!l.test(s(e))){r.message(c,e)}}}}},,function(e){"use strict";e.exports=label;var r="[";var t="]";var i="shortcut";var n="collapsed";function label(e){var a=e.referenceType;if(a===i){return""}return r+(a===n?"":e.label||e.identifier)+t}},function(e,r,t){"use strict";var i=t(544);function Mark(e,r,t,i,n){this.name=e;this.buffer=r;this.position=t;this.line=i;this.column=n}Mark.prototype.getSnippet=function getSnippet(e,r){var t,n,a,u,s;if(!this.buffer)return null;e=e||4;r=r||75;t="";n=this.position;while(n>0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(n-1))===-1){n-=1;if(this.position-n>r/2-1){t=" ... ";n+=5;break}}a="";u=this.position;while(ur/2-1){a=" ... ";u-=5;break}}s=this.buffer.slice(n,u);return i.repeat(" ",e)+t+s+a+"\n"+i.repeat(" ",e+this.position-n+t.length)+"^"};Mark.prototype.toString=function toString(e){var r,t="";if(this.name){t+='in "'+this.name+'" '}t+="at line "+(this.line+1)+", column "+(this.column+1);if(!e){r=this.getSnippet();if(r){t+=":\n"+r}}return t};e.exports=Mark},,function(e){"use strict";e.exports=balanced;function balanced(e,r,t){if(e instanceof RegExp)e=maybeMatch(e,t);if(r instanceof RegExp)r=maybeMatch(r,t);var i=range(e,r,t);return i&&{start:i[0],end:i[1],pre:t.slice(0,i[0]),body:t.slice(i[0]+e.length,i[1]),post:t.slice(i[1]+r.length)}}function maybeMatch(e,r){var t=r.match(e);return t?t[0]:null}balanced.range=range;function range(e,r,t){var i,n,a,u,s;var o=t.indexOf(e);var f=t.indexOf(r,o+1);var l=o;if(o>=0&&f>0){i=[];a=t.length;while(l>=0&&!s){if(l==o){i.push(l);o=t.indexOf(e,l+1)}else if(i.length==1){s=[i.pop(),f]}else{n=i.pop();if(n=0?o:f}if(i.length){s=[a,u]}}return s}},,,,,,,,function(e,r,t){var i=t(706);var n=t(910);e.exports=expandTop;var a="\0SLASH"+Math.random()+"\0";var u="\0OPEN"+Math.random()+"\0";var s="\0CLOSE"+Math.random()+"\0";var o="\0COMMA"+Math.random()+"\0";var f="\0PERIOD"+Math.random()+"\0";function numeric(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function escapeBraces(e){return e.split("\\\\").join(a).split("\\{").join(u).split("\\}").join(s).split("\\,").join(o).split("\\.").join(f)}function unescapeBraces(e){return e.split(a).join("\\").split(u).join("{").split(s).join("}").split(o).join(",").split(f).join(".")}function parseCommaParts(e){if(!e)return[""];var r=[];var t=n("{","}",e);if(!t)return e.split(",");var i=t.pre;var a=t.body;var u=t.post;var s=i.split(",");s[s.length-1]+="{"+a+"}";var o=parseCommaParts(u);if(u.length){s[s.length-1]+=o.shift();s.push.apply(s,o)}r.push.apply(r,s);return r}function expandTop(e){if(!e)return[];if(e.substr(0,2)==="{}"){e="\\{\\}"+e.substr(2)}return expand(escapeBraces(e),true).map(unescapeBraces)}function identity(e){return e}function embrace(e){return"{"+e+"}"}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,r){return e<=r}function gte(e,r){return e>=r}function expand(e,r){var t=[];var a=n("{","}",e);if(!a||/\$$/.test(a.pre))return[e];var u=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(a.body);var o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(a.body);var f=u||o;var l=a.body.indexOf(",")>=0;if(!f&&!l){if(a.post.match(/,.*\}/)){e=a.pre+"{"+a.body+s+a.post;return expand(e)}return[e]}var c;if(f){c=a.body.split(/\.\./)}else{c=parseCommaParts(a.body);if(c.length===1){c=expand(c[0],false).map(embrace);if(c.length===1){var h=a.post.length?expand(a.post,false):[""];return h.map(function(e){return a.pre+c[0]+e})}}}var p=a.pre;var h=a.post.length?expand(a.post,false):[""];var v;if(f){var d=numeric(c[0]);var D=numeric(c[1]);var m=Math.max(c[0].length,c[1].length);var g=c.length==3?Math.abs(numeric(c[2])):1;var E=lte;var A=D0){var b=new Array(x+1).join("0");if(y<0)w="-"+b+w.slice(1);else w=b+w}}}v.push(w)}}else{v=i(c,function(e){return expand(e,false)})}for(var F=0;F=0&&e.splice instanceof Function}},,,,function(e,r,t){"use strict";var i=t(758);e.exports=table;var n="\t";var a="\n";var u=" ";var s="-";var o=":";var f="\\";var l="`";var c="|";var h=1;var p=2;var v="left";var d="center";var D="right";function table(e,r,t){var m=this;var g;var E;var A;var C;var y;var w;var x;var b;var F;var S;var B;var k;var O;var P;var T;var I;var M;var L;var R;var j;var N;var U;var J;var z;if(!m.options.gfm){return}g=0;L=0;w=r.length+1;x=[];while(gU){if(L1){if(F){C+=b.slice(0,b.length-1);b=b.charAt(b.length-1)}else{C+=b;b=""}}I=e.now();e(C)({type:"tableCell",children:m.tokenizeInline(k,I)},y)}e(b+F);b="";k=""}}else{if(b){k+=b;b=""}k+=F;if(F===f&&g!==w-2){k+=R.charAt(g+1);g++}if(F===l){P=1;while(R.charAt(g+1)===F){k+=F;g++;P++}if(!T){T=P}else if(P>=T){T=0}}}O=false;g++}if(!M){e(a+E)}}return N}},,function(e){e.exports=require("buffer")},function(e){"use strict";e.exports=escapes;var r=["\\","`","*","{","}","[","]","(",")","#","+","-",".","!","_",">"];var t=r.concat(["~","|"]);var i=t.concat(["\n",'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);escapes.default=r;escapes.gfm=t;escapes.commonmark=i;function escapes(e){var n=e||{};if(n.commonmark){return i}return n.gfm?t:r}},,,,,function(e){e.exports=function isBuffer(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)}},,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:rule-style",ruleStyle);var s=a.start;var o=a.end;function ruleStyle(e,r,t){var i=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(t!==null&&/[^-_* ]/.test(t)){r.fail("Invalid preferred rule-style: provide a valid markdown rule, or `'consistent'`")}n(e,"thematicBreak",visitor);function visitor(e){var n=s(e).offset;var a=o(e).offset;var f;if(!u(e)){f=i.slice(n,a);if(t){if(f!==t){r.message("Rules should use `"+t+"`",e)}}else{t=f}}}}},,,,function(e){"use strict";e.exports=footnoteReference;var r="[";var t="]";var i="^";function footnoteReference(e){return r+i+(e.label||e.identifier)+t}},,,,,,function(e,r,t){"use strict";var i=t(589);var n=t(471);var a=t(329);e.exports=Ignore;Ignore.prototype.check=check;var u=i.dirname;var s=i.relative;var o=i.resolve;function Ignore(e){this.cwd=e.cwd;this.findUp=new a({filePath:e.ignorePath,cwd:e.cwd,detect:e.detectIgnore,names:e.ignoreName?[e.ignoreName]:[],create:create})}function check(e,r){var t=this;t.findUp.load(e,done);function done(i,n){var a;if(i){r(i)}else if(n){a=s(n.filePath,o(t.cwd,e));r(null,a?n.ignores(a):false)}else{r(null,false)}}}function create(e,r){var t=n().add(String(e));t.filePath=u(r);return t}},,,,,function(e){"use strict";e.exports=text;function text(e,r,t){var i=this;var n;var a;var u;var s;var o;var f;var l;var c;var h;var p;if(t){return true}n=i.inlineMethods;s=n.length;a=i.inlineTokenizers;u=-1;h=r.length;while(++u=97&&r<=102||r>=65&&r<=70||r>=48&&r<=57}},,,,function(e){"use strict";var r=Object.prototype.toString;e.exports=function(e){var t;return r.call(e)==="[object Object]"&&(t=Object.getPrototypeOf(e),t===null||t===Object.getPrototypeOf({}))}},,,,,,function(e,r,t){"use strict";var i=t(973);e.exports=function(e){if(i(e)){return false}if(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)){return true}return false}},function(e,r,t){var i=t(281).Writable;var n=t(9);var a=t(621);if(typeof Uint8Array==="undefined"){var u=t(372).Uint8Array}else{var u=Uint8Array}function ConcatStream(e,r){if(!(this instanceof ConcatStream))return new ConcatStream(e,r);if(typeof e==="function"){r=e;e={}}if(!e)e={};var t=e.encoding;var n=false;if(!t){n=true}else{t=String(t).toLowerCase();if(t==="u8"||t==="uint8"){t="uint8array"}}i.call(this,{objectMode:true});this.encoding=t;this.shouldInferEncoding=n;if(r)this.on("finish",function(){r(this.getBody())});this.body=[]}e.exports=ConcatStream;n(ConcatStream,i);ConcatStream.prototype._write=function(e,r,t){this.body.push(e);t()};ConcatStream.prototype.inferEncoding=function(e){var r=e===undefined?this.body[0]:e;if(Buffer.isBuffer(r))return"buffer";if(typeof Uint8Array!=="undefined"&&r instanceof Uint8Array)return"uint8array";if(Array.isArray(r))return"array";if(typeof r==="string")return"string";if(Object.prototype.toString.call(r)==="[object Object]")return"object";return"buffer"};ConcatStream.prototype.getBody=function(){if(!this.encoding&&this.body.length===0)return[];if(this.shouldInferEncoding)this.encoding=this.inferEncoding();if(this.encoding==="array")return arrayConcat(this.body);if(this.encoding==="string")return stringConcat(this.body);if(this.encoding==="buffer")return bufferConcat(this.body);if(this.encoding==="uint8array")return u8Concat(this.body);return this.body};var s=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"};function isArrayish(e){return/Array\]$/.test(Object.prototype.toString.call(e))}function isBufferish(e){return typeof e==="string"||isArrayish(e)||e&&typeof e.subarray==="function"}function stringConcat(e){var r=[];var t=false;for(var i=0;i=0)return;var r=i.file(e);if(r){h.push(l(r));p.push(e)}}if(!s)[n(u,e,"config"),n(u,e+"rc")].forEach(addConfigFile);if(o)[n(o,".config",e,"config"),n(o,".config",e),n(o,"."+e,"config"),n(o,"."+e+"rc")].forEach(addConfigFile);addConfigFile(i.find("."+e+"rc"));if(c.config)addConfigFile(c.config);if(f.config)addConfigFile(f.config);return a.apply(null,h.concat([c,f,p.length?{configs:p,config:p[p.length-1]}:undefined]))}},function(e){"use strict";if(!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0){e.exports={nextTick:nextTick}}else{e.exports=process}function nextTick(e,r,t,i){if(typeof e!=="function"){throw new TypeError('"callback" argument must be a function')}var n=arguments.length;var a,u;switch(n){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function afterTickOne(){e.call(null,r)});case 3:return process.nextTick(function afterTickTwo(){e.call(null,r,t)});case 4:return process.nextTick(function afterTickThree(){e.call(null,r,t,i)});default:a=new Array(n-1);u=0;while(u{if(typeof r==="string"){t=r;r=null}try{try{return JSON.parse(e,r)}catch(t){n(e,r);throw t}}catch(e){e.message=e.message.replace(/\n/g,"");const r=new a(e);if(t){r.fileName=t}throw r}})},,,,,,function(e){e.exports=function(e,r){if(!r)r={};var t={bools:{},strings:{},unknownFn:null};if(typeof r["unknown"]==="function"){t.unknownFn=r["unknown"]}if(typeof r["boolean"]==="boolean"&&r["boolean"]){t.allBools=true}else{[].concat(r["boolean"]).filter(Boolean).forEach(function(e){t.bools[e]=true})}var i={};Object.keys(r.alias||{}).forEach(function(e){i[e]=[].concat(r.alias[e]);i[e].forEach(function(r){i[r]=[e].concat(i[e].filter(function(e){return r!==e}))})});[].concat(r.string).filter(Boolean).forEach(function(e){t.strings[e]=true;if(i[e]){t.strings[i[e]]=true}});var n=r["default"]||{};var a={_:[]};Object.keys(t.bools).forEach(function(e){setArg(e,n[e]===undefined?false:n[e])});var u=[];if(e.indexOf("--")!==-1){u=e.slice(e.indexOf("--")+1);e=e.slice(0,e.indexOf("--"))}function argDefined(e,r){return t.allBools&&/^--[^=]+$/.test(r)||t.strings[e]||t.bools[e]||i[e]}function setArg(e,r,n){if(n&&t.unknownFn&&!argDefined(e,n)){if(t.unknownFn(n)===false)return}var u=!t.strings[e]&&isNumber(r)?Number(r):r;setKey(a,e.split("."),u);(i[e]||[]).forEach(function(e){setKey(a,e.split("."),u)})}function setKey(e,r,i){var n=e;r.slice(0,-1).forEach(function(e){if(n[e]===undefined)n[e]={};n=n[e]});var a=r[r.length-1];if(n[a]===undefined||t.bools[a]||typeof n[a]==="boolean"){n[a]=i}else if(Array.isArray(n[a])){n[a].push(i)}else{n[a]=[n[a],i]}}function aliasIsBoolean(e){return i[e].some(function(e){return t.bools[e]})}for(var s=0;s{if(e)console.error(e);process.exit(r)})},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:definition-spacing",definitionSpacing);var s=/^\s*\[((?:\\[\s\S]|[^[\]])+)]/;var o="Do not use consecutive white-space in definition labels";function definitionSpacing(e,r){var t=String(r);n(e,["definition","footnoteDefinition"],validate);function validate(e){var i=a.start(e).offset;var n=a.end(e).offset;if(!u(e)&&/[ \t\n]{2,}/.test(t.slice(i,n).match(s)[1])){r.message(o,e)}}}},function(e,r,t){"use strict";function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError("Cannot call a class as a function")}}var i=t(757).Buffer;var n=t(64);function copyBuffer(e,r,t){e.copy(r,t)}e.exports=function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0}BufferList.prototype.push=function push(e){var r={data:e,next:null};if(this.length>0)this.tail.next=r;else this.head=r;this.tail=r;++this.length};BufferList.prototype.unshift=function unshift(e){var r={data:e,next:this.head};if(this.length===0)this.tail=r;this.head=r;++this.length};BufferList.prototype.shift=function shift(){if(this.length===0)return;var e=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return e};BufferList.prototype.clear=function clear(){this.head=this.tail=null;this.length=0};BufferList.prototype.join=function join(e){if(this.length===0)return"";var r=this.head;var t=""+r.data;while(r=r.next){t+=e+r.data}return t};BufferList.prototype.concat=function concat(e){if(this.length===0)return i.alloc(0);if(this.length===1)return this.head.data;var r=i.allocUnsafe(e>>>0);var t=this.head;var n=0;while(t){copyBuffer(t.data,r,n);n+=t.data.length;t=t.next}return r};return BufferList}();if(n&&n.inspect&&n.inspect.custom){e.exports.prototype[n.inspect.custom]=function(){var e=n.inspect({length:this.length});return this.constructor.name+" "+e}}},,,,,,,,,function(e){"use strict";e.exports=emphasis;var r="_";var t="*";function emphasis(e){var i=this.options.emphasis;var n=this.all(e).join("");if(this.options.pedantic&&i===r&&n.indexOf(i)!==-1){i=t}return i+n+i}},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(97);e.exports=i("remark-lint:first-heading-level",firstHeadingLevel);var u=/i){i=t}}else{t=1}n=a+1;a=e.indexOf(r,n)}return i}},,,function(e,r,t){"use strict";var i=t(400);var n=new RegExp("^([0-9][0-9][0-9][0-9])"+"-([0-9][0-9])"+"-([0-9][0-9])$");var a=new RegExp("^([0-9][0-9][0-9][0-9])"+"-([0-9][0-9]?)"+"-([0-9][0-9]?)"+"(?:[Tt]|[ \\t]+)"+"([0-9][0-9]?)"+":([0-9][0-9])"+":([0-9][0-9])"+"(?:\\.([0-9]*))?"+"(?:[ \\t]*(Z|([-+])([0-9][0-9]?)"+"(?::([0-9][0-9]))?))?$");function resolveYamlTimestamp(e){if(e===null)return false;if(n.exec(e)!==null)return true;if(a.exec(e)!==null)return true;return false}function constructYamlTimestamp(e){var r,t,i,u,s,o,f,l=0,c=null,h,p,v;r=n.exec(e);if(r===null)r=a.exec(e);if(r===null)throw new Error("Date resolve error");t=+r[1];i=+r[2]-1;u=+r[3];if(!r[4]){return new Date(Date.UTC(t,i,u))}s=+r[4];o=+r[5];f=+r[6];if(r[7]){l=r[7].slice(0,3);while(l.length<3){l+="0"}l=+l}if(r[9]){h=+r[10];p=+(r[11]||0);c=(h*60+p)*6e4;if(r[9]==="-")c=-c}v=new Date(Date.UTC(t,i,u,s,o,f,l));if(c)v.setTime(v.getTime()-c);return v}function representYamlTimestamp(e){return e.toISOString()}e.exports=new i("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp})},function(e,r,t){e.exports=minimatch;minimatch.Minimatch=Minimatch;var i={sep:"/"};try{i=t(589)}catch(e){}var n=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var a=t(918);var u={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var s="[^/]";var o=s+"*?";var f="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var l="(?:(?!(?:\\/|^)\\.).)*?";var c=charSet("().*{}+?[]^$\\!");function charSet(e){return e.split("").reduce(function(e,r){e[r]=true;return e},{})}var h=/\/+/;minimatch.filter=filter;function filter(e,r){r=r||{};return function(t,i,n){return minimatch(t,e,r)}}function ext(e,r){e=e||{};r=r||{};var t={};Object.keys(r).forEach(function(e){t[e]=r[e]});Object.keys(e).forEach(function(r){t[r]=e[r]});return t}minimatch.defaults=function(e){if(!e||!Object.keys(e).length)return minimatch;var r=minimatch;var t=function minimatch(t,i,n){return r.minimatch(t,i,ext(e,n))};t.Minimatch=function Minimatch(t,i){return new r.Minimatch(t,ext(e,i))};return t};Minimatch.defaults=function(e){if(!e||!Object.keys(e).length)return Minimatch;return minimatch.defaults(e).Minimatch};function minimatch(e,r,t){if(typeof r!=="string"){throw new TypeError("glob pattern string required")}if(!t)t={};if(!t.nocomment&&r.charAt(0)==="#"){return false}if(r.trim()==="")return e==="";return new Minimatch(r,t).match(e)}function Minimatch(e,r){if(!(this instanceof Minimatch)){return new Minimatch(e,r)}if(typeof e!=="string"){throw new TypeError("glob pattern string required")}if(!r)r={};e=e.trim();if(i.sep!=="/"){e=e.split(i.sep).join("/")}this.options=r;this.set=[];this.pattern=e;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){if(this._made)return;var e=this.pattern;var r=this.options;if(!r.nocomment&&e.charAt(0)==="#"){this.comment=true;return}if(!e){this.empty=true;return}this.parseNegate();var t=this.globSet=this.braceExpand();if(r.debug)this.debug=console.error;this.debug(this.pattern,t);t=this.globParts=t.map(function(e){return e.split(h)});this.debug(this.pattern,t);t=t.map(function(e,r,t){return e.map(this.parse,this)},this);this.debug(this.pattern,t);t=t.filter(function(e){return e.indexOf(false)===-1});this.debug(this.pattern,t);this.set=t}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var e=this.pattern;var r=false;var t=this.options;var i=0;if(t.nonegate)return;for(var n=0,a=e.length;n1024*64){throw new TypeError("pattern is too long")}var t=this.options;if(!t.noglobstar&&e==="**")return n;if(e==="")return"";var i="";var a=!!t.nocase;var f=false;var l=[];var h=[];var v;var d=false;var D=-1;var m=-1;var g=e.charAt(0)==="."?"":t.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var E=this;function clearStateChar(){if(v){switch(v){case"*":i+=o;a=true;break;case"?":i+=s;a=true;break;default:i+="\\"+v;break}E.debug("clearStateChar %j %j",v,i);v=false}}for(var A=0,C=e.length,y;A-1;k--){var O=h[k];var P=i.slice(0,O.reStart);var T=i.slice(O.reStart,O.reEnd-8);var I=i.slice(O.reEnd-8,O.reEnd);var M=i.slice(O.reEnd);I+=M;var L=P.split("(").length-1;var R=M;for(A=0;A=0;u--){a=e[u];if(a)break}for(u=0;u>> no match, partial?",e,c,r,h);if(c===s)return true}return false}var v;if(typeof f==="string"){if(i.nocase){v=l.toLowerCase()===f.toLowerCase()}else{v=l===f}this.debug("string match",f,l,v)}else{v=l.match(f);this.debug("pattern match",f,l,v)}if(!v)return false}if(a===s&&u===o){return true}else if(a===s){return t}else if(u===o){var d=a===s-1&&e[a]==="";return d}throw new Error("wtf?")};function globUnescape(e){return e.replace(/\\(.)/g,"$1")}function regExpEscape(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}},,,,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:table-cell-padding",tableCellPadding);var s=a.start;var o=a.end;var f={null:true,padded:true,compact:true};function tableCellPadding(e,r,t){var i=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(f[t]!==true){r.fail("Invalid table-cell-padding style `"+t+"`")}n(e,"table",visitor);function visitor(e){var r=e.children;var a=new Array(e.align.length);var f=u(e)?-1:r.length;var l=-1;var c=[];var h;var p;var v;var d;var D;var m;var g;var E;var A;var C;var y;while(++li){o+=" with 1 space, not "+u;if(size(a)-1?setImmediate:i.nextTick;var a;Writable.WritableState=WritableState;var u=t(554);u.inherits=t(9);var s={deprecate:t(800)};var o=t(443);var f=t(757).Buffer;var l=global.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return f.from(e)}function _isUint8Array(e){return f.isBuffer(e)||e instanceof l}var c=t(510);u.inherits(Writable,o);function nop(){}function WritableState(e,r){a=a||t(921);e=e||{};var i=r instanceof a;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.writableObjectMode;var n=e.highWaterMark;var u=e.writableHighWaterMark;var s=this.objectMode?16:16*1024;if(n||n===0)this.highWaterMark=n;else if(i&&(u||u===0))this.highWaterMark=u;else this.highWaterMark=s;this.highWaterMark=Math.floor(this.highWaterMark);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var o=e.decodeStrings===false;this.decodeStrings=!o;this.defaultEncoding=e.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(e){onwrite(r,e)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function getBuffer(){var e=this.bufferedRequest;var r=[];while(e){r.push(e);e=e.next}return r};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:s.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer "+"instead.","DEP0003")})}catch(e){}})();var h;if(typeof Symbol==="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==="function"){h=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function(e){if(h.call(this,e))return true;if(this!==Writable)return false;return e&&e._writableState instanceof WritableState}})}else{h=function(e){return e instanceof this}}function Writable(e){a=a||t(921);if(!h.call(Writable,this)&&!(this instanceof a)){return new Writable(e)}this._writableState=new WritableState(e,this);this.writable=true;if(e){if(typeof e.write==="function")this._write=e.write;if(typeof e.writev==="function")this._writev=e.writev;if(typeof e.destroy==="function")this._destroy=e.destroy;if(typeof e.final==="function")this._final=e.final}o.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function writeAfterEnd(e,r){var t=new Error("write after end");e.emit("error",t);i.nextTick(r,t)}function validChunk(e,r,t,n){var a=true;var u=false;if(t===null){u=new TypeError("May not write null values to stream")}else if(typeof t!=="string"&&t!==undefined&&!r.objectMode){u=new TypeError("Invalid non-string/buffer chunk")}if(u){e.emit("error",u);i.nextTick(n,u);a=false}return a}Writable.prototype.write=function(e,r,t){var i=this._writableState;var n=false;var a=!i.objectMode&&_isUint8Array(e);if(a&&!f.isBuffer(e)){e=_uint8ArrayToBuffer(e)}if(typeof r==="function"){t=r;r=null}if(a)r="buffer";else if(!r)r=i.defaultEncoding;if(typeof t!=="function")t=nop;if(i.ended)writeAfterEnd(this,t);else if(a||validChunk(this,i,e,t)){i.pendingcb++;n=writeOrBuffer(this,i,a,e,r,t)}return n};Writable.prototype.cork=function(){var e=this._writableState;e.corked++};Writable.prototype.uncork=function(){var e=this._writableState;if(e.corked){e.corked--;if(!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest)clearBuffer(this,e)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(e){if(typeof e==="string")e=e.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);this._writableState.defaultEncoding=e;return this};function decodeChunk(e,r,t){if(!e.objectMode&&e.decodeStrings!==false&&typeof r==="string"){r=f.from(r,t)}return r}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function(){return this._writableState.highWaterMark}});function writeOrBuffer(e,r,t,i,n,a){if(!t){var u=decodeChunk(r,i,n);if(i!==u){t=true;n="buffer";i=u}}var s=r.objectMode?1:i.length;r.length+=s;var o=r.length"){break}if(v!==" "&&v!=="\t"){r.message(o,d);break}}}}}},,,,function(e){function webpackEmptyContext(e){var r=new Error("Cannot find module '"+e+"'");r.code="MODULE_NOT_FOUND";throw r}webpackEmptyContext.keys=function(){return[]};webpackEmptyContext.resolve=webpackEmptyContext;e.exports=webpackEmptyContext;webpackEmptyContext.id=73},,,,,,function(e){"use strict";e.exports=is;function is(e,r,t,i,n){var a=i!==null&&i!==undefined;var u=t!==null&&t!==undefined;var s=convert(e);if(u&&(typeof t!=="number"||t<0||t===Infinity)){throw new Error("Expected positive finite index or child node")}if(a&&(!is(null,i)||!i.children)){throw new Error("Expected parent node")}if(!r||!r.type||typeof r.type!=="string"){return false}if(a!==u){throw new Error("Expected both parent and index")}return Boolean(s.call(n,r,t,i))}function convert(e){if(typeof e==="string"){return typeFactory(e)}if(e===null||e===undefined){return ok}if(typeof e==="object"){return("length"in e?anyFactory:matchesFactory)(e)}if(typeof e==="function"){return e}throw new Error("Expected function, string, or object as test")}function convertAll(e){var r=[];var t=e.length;var i=-1;while(++in){return false}}return check(e,i,t)&&check(e,m)}function isKnown(e,r,t){var i=o?o.indexOf(e)!==-1:true;if(!i){h.warn("Unknown rule: cannot "+r+" `'"+e+"'`",t)}return i}function getState(e){var r=e?D[e]:m;if(r&&r.length!==0){return r[r.length-1].state}if(!e){return!f}if(f){return l.indexOf(e)!==-1}return c.indexOf(e)===-1}function toggle(e,r,t){var i=t?D[t]:m;var n;var a;if(!i){i=[];D[t]=i}a=getState(t);n=r;if(n!==a){i.push({state:n,position:e})}if(!t){for(t in D){toggle(e,r,t)}}}function check(e,r,t){var i=r&&r.length;var n=-1;var a;while(--i>n){a=r[i];if(!a.position||!a.position.line||!a.position.column){continue}if(a.position.line=e){return}if(u){s.push({start:n,end:e});u=false}n=e}}},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:stdout");var n=t(356);e.exports=stdout;function stdout(e,r,t,a){if(!r.data.unifiedEngineGiven){i("Ignoring programmatically added file");a()}else if(n(r).fatal||e.output||!e.out){i("Ignoring writing to `streamOut`");a()}else{i("Writing document to `streamOut`");e.streamOut.write(r.toString(),a)}}},,,,,,,,,,,function(e,r,t){"use strict";var i=t(400);function resolveYamlBoolean(e){if(e===null)return false;var r=e.length;return r===4&&(e==="true"||e==="True"||e==="TRUE")||r===5&&(e==="false"||e==="False"||e==="FALSE")}function constructYamlBoolean(e){return e==="true"||e==="True"||e==="TRUE"}function isBoolean(e){return Object.prototype.toString.call(e)==="[object Boolean]"}e.exports=new i("tag:yaml.org,2002:bool",{kind:"scalar",resolve:resolveYamlBoolean,construct:constructYamlBoolean,predicate:isBoolean,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},,,,function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(506);var n=_interopRequireDefault(i);var a=t(379);var u=_interopRequireDefault(a);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}r.default={parse:n.default,stringify:u.default};e.exports=r["default"]},function(e){"use strict";e.exports=generated;function generated(e){var r=optional(optional(e).position);var t=optional(r.start);var i=optional(r.end);return!t.line||!t.column||!i.line||!i.column}function optional(e){return e&&typeof e==="object"?e:{}}},,,function(e,r,t){"use strict";var i=t(291);e.exports=factory;function factory(e,r){var t=e.split(":");var n=t[0];var a=t[1];var u=i(r);if(!a){a=n;n=null}attacher.displayName=e;return attacher;function attacher(e){var r=coerce(a,e);var t=r[0];var i=r[1];var s=t===2;return t?transformer:undefined;function transformer(e,r,t){var o=r.messages.length;u(e,r,i,done);function done(e){var i=r.messages;var u;if(e&&i.indexOf(e)===-1){try{r.fail(e)}catch(e){}}while(o2){throw new Error("Invalid severity `"+n+"` for `"+e+"`, "+"expected 0, 1, or 2")}i[0]=n;return i}},,,,,,,,function(e){"use strict";e.exports=interrupt;function interrupt(e,r,t,i){var n=e.length;var a=-1;var u;var s;while(++a/i;function inlineHTML(e,r,t){var n=this;var h=r.length;var p;var v;if(r.charAt(0)!==u||h<3){return}p=r.charAt(1);if(!i(p)&&p!==s&&p!==o&&p!==f){return}v=r.match(a);if(!v){return}if(t){return true}v=v[0];if(!n.inLink&&l.test(v)){n.inLink=true}else if(n.inLink&&c.test(v)){n.inLink=false}return e(v)({type:"html",value:v})}},,function(e){"use strict";e.exports=lineBreak;var r="\\";var t="\n";var i=" ";var n=r+t;var a=i+i+t;function lineBreak(){return this.options.commonmark?n:a}},,,function(e){e.exports=["cent","copy","divide","gt","lt","not","para","times"]},,function(e){e.exports=function(e,r,t){var i=[];var n=e.length;if(0===n)return i;var a=r<0?Math.max(0,r+n):r||0;if(t!==undefined){n=t<0?t+n:t}while(n-- >a){i[n-a]=e[n]}return i}},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(97);e.exports=i("remark-lint:no-shortcut-reference-image",noShortcutReferenceImage);var u="Use the trailing [] on reference images";function noShortcutReferenceImage(e,r){n(e,"imageReference",visitor);function visitor(e){if(!a(e)&&e.referenceType==="shortcut"){r.message(u,e)}}}},,function(e){"use strict";e.exports=hidden;function hidden(e){if(typeof e!=="string"){throw new Error("Expected string")}return e.charAt(0)==="."}},,function(e,r,t){"use strict";var i=t(757).Buffer;var n=i.isEncoding||function(e){e=""+e;switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(e){if(!e)return"utf8";var r;while(true){switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(r)return;e=(""+e).toLowerCase();r=true}}}function normalizeEncoding(e){var r=_normalizeEncoding(e);if(typeof r!=="string"&&(i.isEncoding===n||!n(e)))throw new Error("Unknown encoding: "+e);return r||e}r.StringDecoder=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var r;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;r=4;break;case"utf8":this.fillLast=utf8FillLast;r=4;break;case"base64":this.text=base64Text;this.end=base64End;r=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=i.allocUnsafe(r)}StringDecoder.prototype.write=function(e){if(e.length===0)return"";var r;var t;if(this.lastNeed){r=this.fillLast(e);if(r===undefined)return"";t=this.lastNeed;this.lastNeed=0}else{t=0}if(t>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,r,t){var i=r.length-1;if(i=0){if(n>0)e.lastNeed=n-1;return n}if(--i=0){if(n>0)e.lastNeed=n-2;return n}if(--i=0){if(n>0){if(n===2)n=0;else e.lastNeed=n-3}return n}return 0}function utf8CheckExtraBytes(e,r,t){if((r[0]&192)!==128){e.lastNeed=0;return"�"}if(e.lastNeed>1&&r.length>1){if((r[1]&192)!==128){e.lastNeed=1;return"�"}if(e.lastNeed>2&&r.length>2){if((r[2]&192)!==128){e.lastNeed=2;return"�"}}}}function utf8FillLast(e){var r=this.lastTotal-this.lastNeed;var t=utf8CheckExtraBytes(this,e,r);if(t!==undefined)return t;if(this.lastNeed<=e.length){e.copy(this.lastChar,r,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,r,0,e.length);this.lastNeed-=e.length}function utf8Text(e,r){var t=utf8CheckIncomplete(this,e,r);if(!this.lastNeed)return e.toString("utf8",r);this.lastTotal=t;var i=e.length-(t-this.lastNeed);e.copy(this.lastChar,0,i);return e.toString("utf8",r,i)}function utf8End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed)return r+"�";return r}function utf16Text(e,r){if((e.length-r)%2===0){var t=e.toString("utf16le",r);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return t.slice(0,-1)}}return t}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString("utf16le",r,e.length-1)}function utf16End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,t)}return r}function base64Text(e,r){var t=(e.length-r)%3;if(t===0)return e.toString("base64",r);this.lastNeed=3-t;this.lastTotal=3;if(t===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString("base64",r,e.length-t)}function base64End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):""}},,,,function(e,r,t){"use strict";var i=t(64);var n=t(936);var a=function errorEx(e,r){if(!e||e.constructor!==String){r=e||{};e=Error.name}var t=function ErrorEXError(i){if(!this){return new ErrorEXError(i)}i=i instanceof Error?i.message:i||this.message;Error.call(this,i);Error.captureStackTrace(this,t);this.name=e;Object.defineProperty(this,"message",{configurable:true,enumerable:false,get:function(){var e=i.split(/\r?\n/g);for(var t in r){if(!r.hasOwnProperty(t)){continue}var a=r[t];if("message"in a){e=a.message(this[t],e)||e;if(!n(e)){e=[e]}}}return e.join("\n")},set:function(e){i=e}});var a=null;var u=Object.getOwnPropertyDescriptor(this,"stack");var s=u.get;var o=u.value;delete u.value;delete u.writable;u.set=function(e){a=e};u.get=function(){var e=(a||(s?s.call(this):o)).split(/\r?\n+/g);if(!a){e[0]=this.name+": "+this.message}var t=1;for(var i in r){if(!r.hasOwnProperty(i)){continue}var n=r[i];if("line"in n){var u=n.line(this[i]);if(u){e.splice(t++,0," "+u)}}if("stack"in n){n.stack(this[i],e)}}return e.join("\n")};Object.defineProperty(this,"stack",u)};if(Object.setPrototypeOf){Object.setPrototypeOf(t.prototype,Error.prototype);Object.setPrototypeOf(t,Error)}else{i.inherits(t,Error)}return t};a.append=function(e,r){return{message:function(t,i){t=t||r;if(t){i[0]+=" "+e.replace("%s",t.toString())}return i}}};a.line=function(e,r){return{line:function(t){t=t||r;if(t){return e.replace("%s",t.toString())}return null}}};e.exports=a},,,,,,function(e,r,t){"use strict";var i=t(589);function replaceExt(e,r){if(typeof e!=="string"){return e}if(e.length===0){return e}var t=i.basename(e,i.extname(e))+r;return i.join(i.dirname(e),t)}e.exports=replaceExt},,,function(e,r,t){"use strict";if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=t(892)}else{e.exports=t(239)}},,function(e){"use strict";e.exports=paragraph;function paragraph(e){return this.all(e).join("")}},function(e,r,t){"use strict";var i=t(400);e.exports=new i("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})},,function(e){"use strict";e.exports=locate;function locate(e,r){return e.indexOf("\\",r)}},function(e){(function webpackUniversalModuleDefinition(r,t){if(true)e.exports=t();else{}})(this,function(){return function(e){var r={};function __webpack_require__(t){if(r[t])return r[t].exports;var i=r[t]={exports:{},id:t,loaded:false};e[t].call(i.exports,i,i.exports,__webpack_require__);i.loaded=true;return i.exports}__webpack_require__.m=e;__webpack_require__.c=r;__webpack_require__.p="";return __webpack_require__(0)}([function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(1);var n=t(3);var a=t(8);var u=t(15);function parse(e,r,t){var u=null;var s=function(e,r){if(t){t(e,r)}if(u){u.visit(e,r)}};var o=typeof t==="function"?s:null;var f=false;if(r){f=typeof r.comment==="boolean"&&r.comment;var l=typeof r.attachComment==="boolean"&&r.attachComment;if(f||l){u=new i.CommentHandler;u.attach=l;r.comment=true;o=s}}var c=false;if(r&&typeof r.sourceType==="string"){c=r.sourceType==="module"}var h;if(r&&typeof r.jsx==="boolean"&&r.jsx){h=new n.JSXParser(e,r,o)}else{h=new a.Parser(e,r,o)}var p=c?h.parseModule():h.parseScript();var v=p;if(f&&u){v.comments=u.comments}if(h.config.tokens){v.tokens=h.tokens}if(h.config.tolerant){v.errors=h.errorHandler.errors}return v}r.parse=parse;function parseModule(e,r,t){var i=r||{};i.sourceType="module";return parse(e,i,t)}r.parseModule=parseModule;function parseScript(e,r,t){var i=r||{};i.sourceType="script";return parse(e,i,t)}r.parseScript=parseScript;function tokenize(e,r,t){var i=new u.Tokenizer(e,r);var n;n=[];try{while(true){var a=i.getNextToken();if(!a){break}if(t){a=t(a)}n.push(a)}}catch(e){i.errorHandler.tolerate(e)}if(i.errorHandler.tolerant){n.errors=i.errors()}return n}r.tokenize=tokenize;var s=t(2);r.Syntax=s.Syntax;r.version="4.0.1"},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(2);var n=function(){function CommentHandler(){this.attach=false;this.comments=[];this.stack=[];this.leading=[];this.trailing=[]}CommentHandler.prototype.insertInnerComments=function(e,r){if(e.type===i.Syntax.BlockStatement&&e.body.length===0){var t=[];for(var n=this.leading.length-1;n>=0;--n){var a=this.leading[n];if(r.end.offset>=a.start){t.unshift(a.comment);this.leading.splice(n,1);this.trailing.splice(n,1)}}if(t.length){e.innerComments=t}}};CommentHandler.prototype.findTrailingComments=function(e){var r=[];if(this.trailing.length>0){for(var t=this.trailing.length-1;t>=0;--t){var i=this.trailing[t];if(i.start>=e.end.offset){r.unshift(i.comment)}}this.trailing.length=0;return r}var n=this.stack[this.stack.length-1];if(n&&n.node.trailingComments){var a=n.node.trailingComments[0];if(a&&a.range[0]>=e.end.offset){r=n.node.trailingComments;delete n.node.trailingComments}}return r};CommentHandler.prototype.findLeadingComments=function(e){var r=[];var t;while(this.stack.length>0){var i=this.stack[this.stack.length-1];if(i&&i.start>=e.start.offset){t=i.node;this.stack.pop()}else{break}}if(t){var n=t.leadingComments?t.leadingComments.length:0;for(var a=n-1;a>=0;--a){var u=t.leadingComments[a];if(u.range[1]<=e.start.offset){r.unshift(u);t.leadingComments.splice(a,1)}}if(t.leadingComments&&t.leadingComments.length===0){delete t.leadingComments}return r}for(var a=this.leading.length-1;a>=0;--a){var i=this.leading[a];if(i.start<=e.start.offset){r.unshift(i.comment);this.leading.splice(a,1)}}return r};CommentHandler.prototype.visitNode=function(e,r){if(e.type===i.Syntax.Program&&e.body.length>0){return}this.insertInnerComments(e,r);var t=this.findTrailingComments(r);var n=this.findLeadingComments(r);if(n.length>0){e.leadingComments=n}if(t.length>0){e.trailingComments=t}this.stack.push({node:e,start:r.start.offset})};CommentHandler.prototype.visitComment=function(e,r){var t=e.type[0]==="L"?"Line":"Block";var i={type:t,value:e.value};if(e.range){i.range=e.range}if(e.loc){i.loc=e.loc}this.comments.push(i);if(this.attach){var n={comment:{type:t,value:e.value,range:[r.start.offset,r.end.offset]},start:r.start.offset};if(e.loc){n.comment.loc=e.loc}e.type=t;this.leading.push(n);this.trailing.push(n)}};CommentHandler.prototype.visit=function(e,r){if(e.type==="LineComment"){this.visitComment(e,r)}else if(e.type==="BlockComment"){this.visitComment(e,r)}else if(this.attach){this.visitNode(e,r)}};return CommentHandler}();r.CommentHandler=n},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,r,t){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)if(r.hasOwnProperty(t))e[t]=r[t]};return function(r,t){e(r,t);function __(){this.constructor=r}r.prototype=t===null?Object.create(t):(__.prototype=t.prototype,new __)}}();Object.defineProperty(r,"__esModule",{value:true});var n=t(4);var a=t(5);var u=t(6);var s=t(7);var o=t(8);var f=t(13);var l=t(14);f.TokenName[100]="JSXIdentifier";f.TokenName[101]="JSXText";function getQualifiedElementName(e){var r;switch(e.type){case u.JSXSyntax.JSXIdentifier:var t=e;r=t.name;break;case u.JSXSyntax.JSXNamespacedName:var i=e;r=getQualifiedElementName(i.namespace)+":"+getQualifiedElementName(i.name);break;case u.JSXSyntax.JSXMemberExpression:var n=e;r=getQualifiedElementName(n.object)+"."+getQualifiedElementName(n.property);break;default:break}return r}var c=function(e){i(JSXParser,e);function JSXParser(r,t,i){return e.call(this,r,t,i)||this}JSXParser.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)};JSXParser.prototype.startJSX=function(){this.scanner.index=this.startMarker.index;this.scanner.lineNumber=this.startMarker.line;this.scanner.lineStart=this.startMarker.index-this.startMarker.column};JSXParser.prototype.finishJSX=function(){this.nextToken()};JSXParser.prototype.reenterJSX=function(){this.startJSX();this.expectJSX("}");if(this.config.tokens){this.tokens.pop()}};JSXParser.prototype.createJSXNode=function(){this.collectComments();return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}};JSXParser.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}};JSXParser.prototype.scanXHTMLEntity=function(e){var r="&";var t=true;var i=false;var a=false;var u=false;while(!this.scanner.eof()&&t&&!i){var s=this.scanner.source[this.scanner.index];if(s===e){break}i=s===";";r+=s;++this.scanner.index;if(!i){switch(r.length){case 2:a=s==="#";break;case 3:if(a){u=s==="x";t=u||n.Character.isDecimalDigit(s.charCodeAt(0));a=a&&!u}break;default:t=t&&!(a&&!n.Character.isDecimalDigit(s.charCodeAt(0)));t=t&&!(u&&!n.Character.isHexDigit(s.charCodeAt(0)));break}}}if(t&&i&&r.length>2){var o=r.substr(1,r.length-2);if(a&&o.length>1){r=String.fromCharCode(parseInt(o.substr(1),10))}else if(u&&o.length>2){r=String.fromCharCode(parseInt("0"+o.substr(1),16))}else if(!a&&!u&&l.XHTMLEntities[o]){r=l.XHTMLEntities[o]}}return r};JSXParser.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(e===60||e===62||e===47||e===58||e===61||e===123||e===125){var r=this.scanner.source[this.scanner.index++];return{type:7,value:r,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(e===34||e===39){var t=this.scanner.index;var i=this.scanner.source[this.scanner.index++];var a="";while(!this.scanner.eof()){var u=this.scanner.source[this.scanner.index++];if(u===i){break}else if(u==="&"){a+=this.scanXHTMLEntity(i)}else{a+=u}}return{type:8,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(e===46){var s=this.scanner.source.charCodeAt(this.scanner.index+1);var o=this.scanner.source.charCodeAt(this.scanner.index+2);var r=s===46&&o===46?"...":".";var t=this.scanner.index;this.scanner.index+=r.length;return{type:7,value:r,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(e===96){return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index}}if(n.Character.isIdentifierStart(e)&&e!==92){var t=this.scanner.index;++this.scanner.index;while(!this.scanner.eof()){var u=this.scanner.source.charCodeAt(this.scanner.index);if(n.Character.isIdentifierPart(u)&&u!==92){++this.scanner.index}else if(u===45){++this.scanner.index}else{break}}var f=this.scanner.source.slice(t,this.scanner.index);return{type:100,value:f,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()};JSXParser.prototype.nextJSXToken=function(){this.collectComments();this.startMarker.index=this.scanner.index;this.startMarker.line=this.scanner.lineNumber;this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;if(this.config.tokens){this.tokens.push(this.convertToken(e))}return e};JSXParser.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index;this.startMarker.line=this.scanner.lineNumber;this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.scanner.index;var r="";while(!this.scanner.eof()){var t=this.scanner.source[this.scanner.index];if(t==="{"||t==="<"){break}++this.scanner.index;r+=t;if(n.Character.isLineTerminator(t.charCodeAt(0))){++this.scanner.lineNumber;if(t==="\r"&&this.scanner.source[this.scanner.index]==="\n"){++this.scanner.index}this.scanner.lineStart=this.scanner.index}}this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var i={type:101,value:r,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};if(r.length>0&&this.config.tokens){this.tokens.push(this.convertToken(i))}return i};JSXParser.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var r=this.lexJSX();this.scanner.restoreState(e);return r};JSXParser.prototype.expectJSX=function(e){var r=this.nextJSXToken();if(r.type!==7||r.value!==e){this.throwUnexpectedToken(r)}};JSXParser.prototype.matchJSX=function(e){var r=this.peekJSXToken();return r.type===7&&r.value===e};JSXParser.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode();var r=this.nextJSXToken();if(r.type!==100){this.throwUnexpectedToken(r)}return this.finalize(e,new a.JSXIdentifier(r.value))};JSXParser.prototype.parseJSXElementName=function(){var e=this.createJSXNode();var r=this.parseJSXIdentifier();if(this.matchJSX(":")){var t=r;this.expectJSX(":");var i=this.parseJSXIdentifier();r=this.finalize(e,new a.JSXNamespacedName(t,i))}else if(this.matchJSX(".")){while(this.matchJSX(".")){var n=r;this.expectJSX(".");var u=this.parseJSXIdentifier();r=this.finalize(e,new a.JSXMemberExpression(n,u))}}return r};JSXParser.prototype.parseJSXAttributeName=function(){var e=this.createJSXNode();var r;var t=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=t;this.expectJSX(":");var n=this.parseJSXIdentifier();r=this.finalize(e,new a.JSXNamespacedName(i,n))}else{r=t}return r};JSXParser.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode();var r=this.nextJSXToken();if(r.type!==8){this.throwUnexpectedToken(r)}var t=this.getTokenRaw(r);return this.finalize(e,new s.Literal(r.value,t))};JSXParser.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{");this.finishJSX();if(this.match("}")){this.tolerateError("JSX attributes must only be assigned a non-empty expression")}var r=this.parseAssignmentExpression();this.reenterJSX();return this.finalize(e,new a.JSXExpressionContainer(r))};JSXParser.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()};JSXParser.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode();var r=this.parseJSXAttributeName();var t=null;if(this.matchJSX("=")){this.expectJSX("=");t=this.parseJSXAttributeValue()}return this.finalize(e,new a.JSXAttribute(r,t))};JSXParser.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{");this.expectJSX("...");this.finishJSX();var r=this.parseAssignmentExpression();this.reenterJSX();return this.finalize(e,new a.JSXSpreadAttribute(r))};JSXParser.prototype.parseJSXAttributes=function(){var e=[];while(!this.matchJSX("/")&&!this.matchJSX(">")){var r=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(r)}return e};JSXParser.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var r=this.parseJSXElementName();var t=this.parseJSXAttributes();var i=this.matchJSX("/");if(i){this.expectJSX("/")}this.expectJSX(">");return this.finalize(e,new a.JSXOpeningElement(r,i,t))};JSXParser.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();this.expectJSX("<");if(this.matchJSX("/")){this.expectJSX("/");var r=this.parseJSXElementName();this.expectJSX(">");return this.finalize(e,new a.JSXClosingElement(r))}var t=this.parseJSXElementName();var i=this.parseJSXAttributes();var n=this.matchJSX("/");if(n){this.expectJSX("/")}this.expectJSX(">");return this.finalize(e,new a.JSXOpeningElement(t,n,i))};JSXParser.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();this.collectComments();this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;return this.finalize(e,new a.JSXEmptyExpression)};JSXParser.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var r;if(this.matchJSX("}")){r=this.parseJSXEmptyExpression();this.expectJSX("}")}else{this.finishJSX();r=this.parseAssignmentExpression();this.reenterJSX()}return this.finalize(e,new a.JSXExpressionContainer(r))};JSXParser.prototype.parseJSXChildren=function(){var e=[];while(!this.scanner.eof()){var r=this.createJSXChildNode();var t=this.nextJSXText();if(t.start0){var s=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing));e=r[r.length-1];e.children.push(s);r.pop()}else{break}}}return e};JSXParser.prototype.parseJSXElement=function(){var e=this.createJSXNode();var r=this.parseJSXOpeningElement();var t=[];var i=null;if(!r.selfClosing){var n=this.parseComplexJSXElement({node:e,opening:r,closing:i,children:t});t=n.children;i=n.closing}return this.finalize(e,new a.JSXElement(r,t,i))};JSXParser.prototype.parseJSXRoot=function(){if(this.config.tokens){this.tokens.pop()}this.startJSX();var e=this.parseJSXElement();this.finishJSX();return e};JSXParser.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")};return JSXParser}(o.Parser);r.JSXParser=c},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});var t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};r.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return e===10||e===13||e===8232||e===8233},isIdentifierStart:function(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&t.NonAsciiIdentifierStart.test(r.Character.fromCodePoint(e))},isIdentifierPart:function(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&t.NonAsciiIdentifierPart.test(r.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(6);var n=function(){function JSXClosingElement(e){this.type=i.JSXSyntax.JSXClosingElement;this.name=e}return JSXClosingElement}();r.JSXClosingElement=n;var a=function(){function JSXElement(e,r,t){this.type=i.JSXSyntax.JSXElement;this.openingElement=e;this.children=r;this.closingElement=t}return JSXElement}();r.JSXElement=a;var u=function(){function JSXEmptyExpression(){this.type=i.JSXSyntax.JSXEmptyExpression}return JSXEmptyExpression}();r.JSXEmptyExpression=u;var s=function(){function JSXExpressionContainer(e){this.type=i.JSXSyntax.JSXExpressionContainer;this.expression=e}return JSXExpressionContainer}();r.JSXExpressionContainer=s;var o=function(){function JSXIdentifier(e){this.type=i.JSXSyntax.JSXIdentifier;this.name=e}return JSXIdentifier}();r.JSXIdentifier=o;var f=function(){function JSXMemberExpression(e,r){this.type=i.JSXSyntax.JSXMemberExpression;this.object=e;this.property=r}return JSXMemberExpression}();r.JSXMemberExpression=f;var l=function(){function JSXAttribute(e,r){this.type=i.JSXSyntax.JSXAttribute;this.name=e;this.value=r}return JSXAttribute}();r.JSXAttribute=l;var c=function(){function JSXNamespacedName(e,r){this.type=i.JSXSyntax.JSXNamespacedName;this.namespace=e;this.name=r}return JSXNamespacedName}();r.JSXNamespacedName=c;var h=function(){function JSXOpeningElement(e,r,t){this.type=i.JSXSyntax.JSXOpeningElement;this.name=e;this.selfClosing=r;this.attributes=t}return JSXOpeningElement}();r.JSXOpeningElement=h;var p=function(){function JSXSpreadAttribute(e){this.type=i.JSXSyntax.JSXSpreadAttribute;this.argument=e}return JSXSpreadAttribute}();r.JSXSpreadAttribute=p;var v=function(){function JSXText(e,r){this.type=i.JSXSyntax.JSXText;this.value=e;this.raw=r}return JSXText}();r.JSXText=v},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(2);var n=function(){function ArrayExpression(e){this.type=i.Syntax.ArrayExpression;this.elements=e}return ArrayExpression}();r.ArrayExpression=n;var a=function(){function ArrayPattern(e){this.type=i.Syntax.ArrayPattern;this.elements=e}return ArrayPattern}();r.ArrayPattern=a;var u=function(){function ArrowFunctionExpression(e,r,t){this.type=i.Syntax.ArrowFunctionExpression;this.id=null;this.params=e;this.body=r;this.generator=false;this.expression=t;this.async=false}return ArrowFunctionExpression}();r.ArrowFunctionExpression=u;var s=function(){function AssignmentExpression(e,r,t){this.type=i.Syntax.AssignmentExpression;this.operator=e;this.left=r;this.right=t}return AssignmentExpression}();r.AssignmentExpression=s;var o=function(){function AssignmentPattern(e,r){this.type=i.Syntax.AssignmentPattern;this.left=e;this.right=r}return AssignmentPattern}();r.AssignmentPattern=o;var f=function(){function AsyncArrowFunctionExpression(e,r,t){this.type=i.Syntax.ArrowFunctionExpression;this.id=null;this.params=e;this.body=r;this.generator=false;this.expression=t;this.async=true}return AsyncArrowFunctionExpression}();r.AsyncArrowFunctionExpression=f;var l=function(){function AsyncFunctionDeclaration(e,r,t){this.type=i.Syntax.FunctionDeclaration;this.id=e;this.params=r;this.body=t;this.generator=false;this.expression=false;this.async=true}return AsyncFunctionDeclaration}();r.AsyncFunctionDeclaration=l;var c=function(){function AsyncFunctionExpression(e,r,t){this.type=i.Syntax.FunctionExpression;this.id=e;this.params=r;this.body=t;this.generator=false;this.expression=false;this.async=true}return AsyncFunctionExpression}();r.AsyncFunctionExpression=c;var h=function(){function AwaitExpression(e){this.type=i.Syntax.AwaitExpression;this.argument=e}return AwaitExpression}();r.AwaitExpression=h;var p=function(){function BinaryExpression(e,r,t){var n=e==="||"||e==="&&";this.type=n?i.Syntax.LogicalExpression:i.Syntax.BinaryExpression;this.operator=e;this.left=r;this.right=t}return BinaryExpression}();r.BinaryExpression=p;var v=function(){function BlockStatement(e){this.type=i.Syntax.BlockStatement;this.body=e}return BlockStatement}();r.BlockStatement=v;var d=function(){function BreakStatement(e){this.type=i.Syntax.BreakStatement;this.label=e}return BreakStatement}();r.BreakStatement=d;var D=function(){function CallExpression(e,r){this.type=i.Syntax.CallExpression;this.callee=e;this.arguments=r}return CallExpression}();r.CallExpression=D;var m=function(){function CatchClause(e,r){this.type=i.Syntax.CatchClause;this.param=e;this.body=r}return CatchClause}();r.CatchClause=m;var g=function(){function ClassBody(e){this.type=i.Syntax.ClassBody;this.body=e}return ClassBody}();r.ClassBody=g;var E=function(){function ClassDeclaration(e,r,t){this.type=i.Syntax.ClassDeclaration;this.id=e;this.superClass=r;this.body=t}return ClassDeclaration}();r.ClassDeclaration=E;var A=function(){function ClassExpression(e,r,t){this.type=i.Syntax.ClassExpression;this.id=e;this.superClass=r;this.body=t}return ClassExpression}();r.ClassExpression=A;var C=function(){function ComputedMemberExpression(e,r){this.type=i.Syntax.MemberExpression;this.computed=true;this.object=e;this.property=r}return ComputedMemberExpression}();r.ComputedMemberExpression=C;var y=function(){function ConditionalExpression(e,r,t){this.type=i.Syntax.ConditionalExpression;this.test=e;this.consequent=r;this.alternate=t}return ConditionalExpression}();r.ConditionalExpression=y;var w=function(){function ContinueStatement(e){this.type=i.Syntax.ContinueStatement;this.label=e}return ContinueStatement}();r.ContinueStatement=w;var x=function(){function DebuggerStatement(){this.type=i.Syntax.DebuggerStatement}return DebuggerStatement}();r.DebuggerStatement=x;var b=function(){function Directive(e,r){this.type=i.Syntax.ExpressionStatement;this.expression=e;this.directive=r}return Directive}();r.Directive=b;var F=function(){function DoWhileStatement(e,r){this.type=i.Syntax.DoWhileStatement;this.body=e;this.test=r}return DoWhileStatement}();r.DoWhileStatement=F;var S=function(){function EmptyStatement(){this.type=i.Syntax.EmptyStatement}return EmptyStatement}();r.EmptyStatement=S;var B=function(){function ExportAllDeclaration(e){this.type=i.Syntax.ExportAllDeclaration;this.source=e}return ExportAllDeclaration}();r.ExportAllDeclaration=B;var k=function(){function ExportDefaultDeclaration(e){this.type=i.Syntax.ExportDefaultDeclaration;this.declaration=e}return ExportDefaultDeclaration}();r.ExportDefaultDeclaration=k;var O=function(){function ExportNamedDeclaration(e,r,t){this.type=i.Syntax.ExportNamedDeclaration;this.declaration=e;this.specifiers=r;this.source=t}return ExportNamedDeclaration}();r.ExportNamedDeclaration=O;var P=function(){function ExportSpecifier(e,r){this.type=i.Syntax.ExportSpecifier;this.exported=r;this.local=e}return ExportSpecifier}();r.ExportSpecifier=P;var T=function(){function ExpressionStatement(e){this.type=i.Syntax.ExpressionStatement;this.expression=e}return ExpressionStatement}();r.ExpressionStatement=T;var I=function(){function ForInStatement(e,r,t){this.type=i.Syntax.ForInStatement;this.left=e;this.right=r;this.body=t;this.each=false}return ForInStatement}();r.ForInStatement=I;var M=function(){function ForOfStatement(e,r,t){this.type=i.Syntax.ForOfStatement;this.left=e;this.right=r;this.body=t}return ForOfStatement}();r.ForOfStatement=M;var L=function(){function ForStatement(e,r,t,n){this.type=i.Syntax.ForStatement;this.init=e;this.test=r;this.update=t;this.body=n}return ForStatement}();r.ForStatement=L;var R=function(){function FunctionDeclaration(e,r,t,n){this.type=i.Syntax.FunctionDeclaration;this.id=e;this.params=r;this.body=t;this.generator=n;this.expression=false;this.async=false}return FunctionDeclaration}();r.FunctionDeclaration=R;var j=function(){function FunctionExpression(e,r,t,n){this.type=i.Syntax.FunctionExpression;this.id=e;this.params=r;this.body=t;this.generator=n;this.expression=false;this.async=false}return FunctionExpression}();r.FunctionExpression=j;var N=function(){function Identifier(e){this.type=i.Syntax.Identifier;this.name=e}return Identifier}();r.Identifier=N;var U=function(){function IfStatement(e,r,t){this.type=i.Syntax.IfStatement;this.test=e;this.consequent=r;this.alternate=t}return IfStatement}();r.IfStatement=U;var J=function(){function ImportDeclaration(e,r){this.type=i.Syntax.ImportDeclaration;this.specifiers=e;this.source=r}return ImportDeclaration}();r.ImportDeclaration=J;var z=function(){function ImportDefaultSpecifier(e){this.type=i.Syntax.ImportDefaultSpecifier;this.local=e}return ImportDefaultSpecifier}();r.ImportDefaultSpecifier=z;var X=function(){function ImportNamespaceSpecifier(e){this.type=i.Syntax.ImportNamespaceSpecifier;this.local=e}return ImportNamespaceSpecifier}();r.ImportNamespaceSpecifier=X;var q=function(){function ImportSpecifier(e,r){this.type=i.Syntax.ImportSpecifier;this.local=e;this.imported=r}return ImportSpecifier}();r.ImportSpecifier=q;var G=function(){function LabeledStatement(e,r){this.type=i.Syntax.LabeledStatement;this.label=e;this.body=r}return LabeledStatement}();r.LabeledStatement=G;var _=function(){function Literal(e,r){this.type=i.Syntax.Literal;this.value=e;this.raw=r}return Literal}();r.Literal=_;var W=function(){function MetaProperty(e,r){this.type=i.Syntax.MetaProperty;this.meta=e;this.property=r}return MetaProperty}();r.MetaProperty=W;var V=function(){function MethodDefinition(e,r,t,n,a){this.type=i.Syntax.MethodDefinition;this.key=e;this.computed=r;this.value=t;this.kind=n;this.static=a}return MethodDefinition}();r.MethodDefinition=V;var H=function(){function Module(e){this.type=i.Syntax.Program;this.body=e;this.sourceType="module"}return Module}();r.Module=H;var Y=function(){function NewExpression(e,r){this.type=i.Syntax.NewExpression;this.callee=e;this.arguments=r}return NewExpression}();r.NewExpression=Y;var $=function(){function ObjectExpression(e){this.type=i.Syntax.ObjectExpression;this.properties=e}return ObjectExpression}();r.ObjectExpression=$;var Z=function(){function ObjectPattern(e){this.type=i.Syntax.ObjectPattern;this.properties=e}return ObjectPattern}();r.ObjectPattern=Z;var Q=function(){function Property(e,r,t,n,a,u){this.type=i.Syntax.Property;this.key=r;this.computed=t;this.value=n;this.kind=e;this.method=a;this.shorthand=u}return Property}();r.Property=Q;var K=function(){function RegexLiteral(e,r,t,n){this.type=i.Syntax.Literal;this.value=e;this.raw=r;this.regex={pattern:t,flags:n}}return RegexLiteral}();r.RegexLiteral=K;var ee=function(){function RestElement(e){this.type=i.Syntax.RestElement;this.argument=e}return RestElement}();r.RestElement=ee;var re=function(){function ReturnStatement(e){this.type=i.Syntax.ReturnStatement;this.argument=e}return ReturnStatement}();r.ReturnStatement=re;var te=function(){function Script(e){this.type=i.Syntax.Program;this.body=e;this.sourceType="script"}return Script}();r.Script=te;var ie=function(){function SequenceExpression(e){this.type=i.Syntax.SequenceExpression;this.expressions=e}return SequenceExpression}();r.SequenceExpression=ie;var ne=function(){function SpreadElement(e){this.type=i.Syntax.SpreadElement;this.argument=e}return SpreadElement}();r.SpreadElement=ne;var ae=function(){function StaticMemberExpression(e,r){this.type=i.Syntax.MemberExpression;this.computed=false;this.object=e;this.property=r}return StaticMemberExpression}();r.StaticMemberExpression=ae;var ue=function(){function Super(){this.type=i.Syntax.Super}return Super}();r.Super=ue;var se=function(){function SwitchCase(e,r){this.type=i.Syntax.SwitchCase;this.test=e;this.consequent=r}return SwitchCase}();r.SwitchCase=se;var oe=function(){function SwitchStatement(e,r){this.type=i.Syntax.SwitchStatement;this.discriminant=e;this.cases=r}return SwitchStatement}();r.SwitchStatement=oe;var fe=function(){function TaggedTemplateExpression(e,r){this.type=i.Syntax.TaggedTemplateExpression;this.tag=e;this.quasi=r}return TaggedTemplateExpression}();r.TaggedTemplateExpression=fe;var le=function(){function TemplateElement(e,r){this.type=i.Syntax.TemplateElement;this.value=e;this.tail=r}return TemplateElement}();r.TemplateElement=le;var ce=function(){function TemplateLiteral(e,r){this.type=i.Syntax.TemplateLiteral;this.quasis=e;this.expressions=r}return TemplateLiteral}();r.TemplateLiteral=ce;var he=function(){function ThisExpression(){this.type=i.Syntax.ThisExpression}return ThisExpression}();r.ThisExpression=he;var pe=function(){function ThrowStatement(e){this.type=i.Syntax.ThrowStatement;this.argument=e}return ThrowStatement}();r.ThrowStatement=pe;var ve=function(){function TryStatement(e,r,t){this.type=i.Syntax.TryStatement;this.block=e;this.handler=r;this.finalizer=t}return TryStatement}();r.TryStatement=ve;var de=function(){function UnaryExpression(e,r){this.type=i.Syntax.UnaryExpression;this.operator=e;this.argument=r;this.prefix=true}return UnaryExpression}();r.UnaryExpression=de;var De=function(){function UpdateExpression(e,r,t){this.type=i.Syntax.UpdateExpression;this.operator=e;this.argument=r;this.prefix=t}return UpdateExpression}();r.UpdateExpression=De;var me=function(){function VariableDeclaration(e,r){this.type=i.Syntax.VariableDeclaration;this.declarations=e;this.kind=r}return VariableDeclaration}();r.VariableDeclaration=me;var ge=function(){function VariableDeclarator(e,r){this.type=i.Syntax.VariableDeclarator;this.id=e;this.init=r}return VariableDeclarator}();r.VariableDeclarator=ge;var Ee=function(){function WhileStatement(e,r){this.type=i.Syntax.WhileStatement;this.test=e;this.body=r}return WhileStatement}();r.WhileStatement=Ee;var Ae=function(){function WithStatement(e,r){this.type=i.Syntax.WithStatement;this.object=e;this.body=r}return WithStatement}();r.WithStatement=Ae;var Ce=function(){function YieldExpression(e,r){this.type=i.Syntax.YieldExpression;this.argument=e;this.delegate=r}return YieldExpression}();r.YieldExpression=Ce},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(9);var n=t(10);var a=t(11);var u=t(7);var s=t(12);var o=t(2);var f=t(13);var l="ArrowParameterPlaceHolder";var c=function(){function Parser(e,r,t){if(r===void 0){r={}}this.config={range:typeof r.range==="boolean"&&r.range,loc:typeof r.loc==="boolean"&&r.loc,source:null,tokens:typeof r.tokens==="boolean"&&r.tokens,comment:typeof r.comment==="boolean"&&r.comment,tolerant:typeof r.tolerant==="boolean"&&r.tolerant};if(this.config.loc&&r.source&&r.source!==null){this.config.source=String(r.source)}this.delegate=t;this.errorHandler=new n.ErrorHandler;this.errorHandler.tolerant=this.config.tolerant;this.scanner=new s.Scanner(e,this.errorHandler);this.scanner.trackComment=this.config.comment;this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11};this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0};this.hasLineTerminator=false;this.context={isModule:false,await:false,allowIn:true,allowStrictDirective:true,allowYield:true,firstCoverInitializedNameError:null,isAssignmentTarget:false,isBindingElement:false,inFunctionBody:false,inIteration:false,inSwitch:false,labelSet:{},strict:false};this.tokens=[];this.startMarker={index:0,line:this.scanner.lineNumber,column:0};this.lastMarker={index:0,line:this.scanner.lineNumber,column:0};this.nextToken();this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}Parser.prototype.throwError=function(e){var r=[];for(var t=1;t0&&this.delegate){for(var r=0;r>="||e===">>>="||e==="&="||e==="^="||e==="|="};Parser.prototype.isolateCoverGrammar=function(e){var r=this.context.isBindingElement;var t=this.context.isAssignmentTarget;var i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=true;this.context.isAssignmentTarget=true;this.context.firstCoverInitializedNameError=null;var n=e.call(this);if(this.context.firstCoverInitializedNameError!==null){this.throwUnexpectedToken(this.context.firstCoverInitializedNameError)}this.context.isBindingElement=r;this.context.isAssignmentTarget=t;this.context.firstCoverInitializedNameError=i;return n};Parser.prototype.inheritCoverGrammar=function(e){var r=this.context.isBindingElement;var t=this.context.isAssignmentTarget;var i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=true;this.context.isAssignmentTarget=true;this.context.firstCoverInitializedNameError=null;var n=e.call(this);this.context.isBindingElement=this.context.isBindingElement&&r;this.context.isAssignmentTarget=this.context.isAssignmentTarget&&t;this.context.firstCoverInitializedNameError=i||this.context.firstCoverInitializedNameError;return n};Parser.prototype.consumeSemicolon=function(){if(this.match(";")){this.nextToken()}else if(!this.hasLineTerminator){if(this.lookahead.type!==2&&!this.match("}")){this.throwUnexpectedToken(this.lookahead)}this.lastMarker.index=this.startMarker.index;this.lastMarker.line=this.startMarker.line;this.lastMarker.column=this.startMarker.column}};Parser.prototype.parsePrimaryExpression=function(){var e=this.createNode();var r;var t,i;switch(this.lookahead.type){case 3:if((this.context.isModule||this.context.await)&&this.lookahead.value==="await"){this.tolerateUnexpectedToken(this.lookahead)}r=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(e,new u.Identifier(this.nextToken().value));break;case 6:case 8:if(this.context.strict&&this.lookahead.octal){this.tolerateUnexpectedToken(this.lookahead,a.Messages.StrictOctalLiteral)}this.context.isAssignmentTarget=false;this.context.isBindingElement=false;t=this.nextToken();i=this.getTokenRaw(t);r=this.finalize(e,new u.Literal(t.value,i));break;case 1:this.context.isAssignmentTarget=false;this.context.isBindingElement=false;t=this.nextToken();i=this.getTokenRaw(t);r=this.finalize(e,new u.Literal(t.value==="true",i));break;case 5:this.context.isAssignmentTarget=false;this.context.isBindingElement=false;t=this.nextToken();i=this.getTokenRaw(t);r=this.finalize(e,new u.Literal(null,i));break;case 10:r=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=false;r=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":r=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":r=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=false;this.context.isBindingElement=false;this.scanner.index=this.startMarker.index;t=this.nextRegexToken();i=this.getTokenRaw(t);r=this.finalize(e,new u.RegexLiteral(t.regex,i,t.pattern,t.flags));break;default:r=this.throwUnexpectedToken(this.nextToken())}break;case 4:if(!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")){r=this.parseIdentifierName()}else if(!this.context.strict&&this.matchKeyword("let")){r=this.finalize(e,new u.Identifier(this.nextToken().value))}else{this.context.isAssignmentTarget=false;this.context.isBindingElement=false;if(this.matchKeyword("function")){r=this.parseFunctionExpression()}else if(this.matchKeyword("this")){this.nextToken();r=this.finalize(e,new u.ThisExpression)}else if(this.matchKeyword("class")){r=this.parseClassExpression()}else{r=this.throwUnexpectedToken(this.nextToken())}}break;default:r=this.throwUnexpectedToken(this.nextToken())}return r};Parser.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var r=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new u.SpreadElement(r))};Parser.prototype.parseArrayInitializer=function(){var e=this.createNode();var r=[];this.expect("[");while(!this.match("]")){if(this.match(",")){this.nextToken();r.push(null)}else if(this.match("...")){var t=this.parseSpreadElement();if(!this.match("]")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;this.expect(",")}r.push(t)}else{r.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(!this.match("]")){this.expect(",")}}}this.expect("]");return this.finalize(e,new u.ArrayExpression(r))};Parser.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var r=this.context.strict;var t=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var i=this.isolateCoverGrammar(this.parseFunctionSourceElements);if(this.context.strict&&e.firstRestricted){this.tolerateUnexpectedToken(e.firstRestricted,e.message)}if(this.context.strict&&e.stricted){this.tolerateUnexpectedToken(e.stricted,e.message)}this.context.strict=r;this.context.allowStrictDirective=t;return i};Parser.prototype.parsePropertyMethodFunction=function(){var e=false;var r=this.createNode();var t=this.context.allowYield;this.context.allowYield=true;var i=this.parseFormalParameters();var n=this.parsePropertyMethod(i);this.context.allowYield=t;return this.finalize(r,new u.FunctionExpression(null,i.params,n,e))};Parser.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode();var r=this.context.allowYield;var t=this.context.await;this.context.allowYield=false;this.context.await=true;var i=this.parseFormalParameters();var n=this.parsePropertyMethod(i);this.context.allowYield=r;this.context.await=t;return this.finalize(e,new u.AsyncFunctionExpression(null,i.params,n))};Parser.prototype.parseObjectPropertyKey=function(){var e=this.createNode();var r=this.nextToken();var t;switch(r.type){case 8:case 6:if(this.context.strict&&r.octal){this.tolerateUnexpectedToken(r,a.Messages.StrictOctalLiteral)}var i=this.getTokenRaw(r);t=this.finalize(e,new u.Literal(r.value,i));break;case 3:case 1:case 5:case 4:t=this.finalize(e,new u.Identifier(r.value));break;case 7:if(r.value==="["){t=this.isolateCoverGrammar(this.parseAssignmentExpression);this.expect("]")}else{t=this.throwUnexpectedToken(r)}break;default:t=this.throwUnexpectedToken(r)}return t};Parser.prototype.isPropertyKey=function(e,r){return e.type===o.Syntax.Identifier&&e.name===r||e.type===o.Syntax.Literal&&e.value===r};Parser.prototype.parseObjectProperty=function(e){var r=this.createNode();var t=this.lookahead;var i;var n=null;var s=null;var o=false;var f=false;var l=false;var c=false;if(t.type===3){var h=t.value;this.nextToken();o=this.match("[");c=!this.hasLineTerminator&&h==="async"&&!this.match(":")&&!this.match("(")&&!this.match("*")&&!this.match(",");n=c?this.parseObjectPropertyKey():this.finalize(r,new u.Identifier(h))}else if(this.match("*")){this.nextToken()}else{o=this.match("[");n=this.parseObjectPropertyKey()}var p=this.qualifiedPropertyName(this.lookahead);if(t.type===3&&!c&&t.value==="get"&&p){i="get";o=this.match("[");n=this.parseObjectPropertyKey();this.context.allowYield=false;s=this.parseGetterMethod()}else if(t.type===3&&!c&&t.value==="set"&&p){i="set";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseSetterMethod()}else if(t.type===7&&t.value==="*"&&p){i="init";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseGeneratorMethod();f=true}else{if(!n){this.throwUnexpectedToken(this.lookahead)}i="init";if(this.match(":")&&!c){if(!o&&this.isPropertyKey(n,"__proto__")){if(e.value){this.tolerateError(a.Messages.DuplicateProtoProperty)}e.value=true}this.nextToken();s=this.inheritCoverGrammar(this.parseAssignmentExpression)}else if(this.match("(")){s=c?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction();f=true}else if(t.type===3){var h=this.finalize(r,new u.Identifier(t.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead;this.nextToken();l=true;var v=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(r,new u.AssignmentPattern(h,v))}else{l=true;s=h}}else{this.throwUnexpectedToken(this.nextToken())}}return this.finalize(r,new u.Property(i,n,o,s,f,l))};Parser.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");var r=[];var t={value:false};while(!this.match("}")){r.push(this.parseObjectProperty(t));if(!this.match("}")){this.expectCommaSeparator()}}this.expect("}");return this.finalize(e,new u.ObjectExpression(r))};Parser.prototype.parseTemplateHead=function(){i.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode();var r=this.nextToken();var t=r.value;var n=r.cooked;return this.finalize(e,new u.TemplateElement({raw:t,cooked:n},r.tail))};Parser.prototype.parseTemplateElement=function(){if(this.lookahead.type!==10){this.throwUnexpectedToken()}var e=this.createNode();var r=this.nextToken();var t=r.value;var i=r.cooked;return this.finalize(e,new u.TemplateElement({raw:t,cooked:i},r.tail))};Parser.prototype.parseTemplateLiteral=function(){var e=this.createNode();var r=[];var t=[];var i=this.parseTemplateHead();t.push(i);while(!i.tail){r.push(this.parseExpression());i=this.parseTemplateElement();t.push(i)}return this.finalize(e,new u.TemplateLiteral(t,r))};Parser.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case o.Syntax.Identifier:case o.Syntax.MemberExpression:case o.Syntax.RestElement:case o.Syntax.AssignmentPattern:break;case o.Syntax.SpreadElement:e.type=o.Syntax.RestElement;this.reinterpretExpressionAsPattern(e.argument);break;case o.Syntax.ArrayExpression:e.type=o.Syntax.ArrayPattern;for(var r=0;r")){this.expect("=>")}e={type:l,params:[],async:false}}else{var r=this.lookahead;var t=[];if(this.match("...")){e=this.parseRestElement(t);this.expect(")");if(!this.match("=>")){this.expect("=>")}e={type:l,params:[e],async:false}}else{var i=false;this.context.isBindingElement=true;e=this.inheritCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];this.context.isAssignmentTarget=false;n.push(e);while(this.lookahead.type!==2){if(!this.match(",")){break}this.nextToken();if(this.match(")")){this.nextToken();for(var a=0;a")){this.expect("=>")}this.context.isBindingElement=false;for(var a=0;a")){if(e.type===o.Syntax.Identifier&&e.name==="yield"){i=true;e={type:l,params:[e],async:false}}if(!i){if(!this.context.isBindingElement){this.throwUnexpectedToken(this.lookahead)}if(e.type===o.Syntax.SequenceExpression){for(var a=0;a")){for(var o=0;o0){this.nextToken();this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var n=[e,this.lookahead];var a=r;var s=this.isolateCoverGrammar(this.parseExponentiationExpression);var o=[a,t.value,s];var f=[i];while(true){i=this.binaryPrecedence(this.lookahead);if(i<=0){break}while(o.length>2&&i<=f[f.length-1]){s=o.pop();var l=o.pop();f.pop();a=o.pop();n.pop();var c=this.startNode(n[n.length-1]);o.push(this.finalize(c,new u.BinaryExpression(l,a,s)))}o.push(this.nextToken().value);f.push(i);n.push(this.lookahead);o.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=o.length-1;r=o[h];var p=n.pop();while(h>1){var v=n.pop();var d=p&&p.lineStart;var c=this.startNode(v,d);var l=o[h-1];r=this.finalize(c,new u.BinaryExpression(l,o[h-2],r));h-=2;p=v}}return r};Parser.prototype.parseConditionalExpression=function(){var e=this.lookahead;var r=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var t=this.context.allowIn;this.context.allowIn=true;var i=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=t;this.expect(":");var n=this.isolateCoverGrammar(this.parseAssignmentExpression);r=this.finalize(this.startNode(e),new u.ConditionalExpression(r,i,n));this.context.isAssignmentTarget=false;this.context.isBindingElement=false}return r};Parser.prototype.checkPatternParam=function(e,r){switch(r.type){case o.Syntax.Identifier:this.validateParam(e,r,r.name);break;case o.Syntax.RestElement:this.checkPatternParam(e,r.argument);break;case o.Syntax.AssignmentPattern:this.checkPatternParam(e,r.left);break;case o.Syntax.ArrayPattern:for(var t=0;t")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var n=e.async;var s=this.reinterpretAsCoverFormalsList(e);if(s){if(this.hasLineTerminator){this.tolerateUnexpectedToken(this.lookahead)}this.context.firstCoverInitializedNameError=null;var f=this.context.strict;var c=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var h=this.context.allowYield;var p=this.context.await;this.context.allowYield=true;this.context.await=n;var v=this.startNode(r);this.expect("=>");var d=void 0;if(this.match("{")){var D=this.context.allowIn;this.context.allowIn=true;d=this.parseFunctionSourceElements();this.context.allowIn=D}else{d=this.isolateCoverGrammar(this.parseAssignmentExpression)}var m=d.type!==o.Syntax.BlockStatement;if(this.context.strict&&s.firstRestricted){this.throwUnexpectedToken(s.firstRestricted,s.message)}if(this.context.strict&&s.stricted){this.tolerateUnexpectedToken(s.stricted,s.message)}e=n?this.finalize(v,new u.AsyncArrowFunctionExpression(s.params,d,m)):this.finalize(v,new u.ArrowFunctionExpression(s.params,d,m));this.context.strict=f;this.context.allowStrictDirective=c;this.context.allowYield=h;this.context.await=p}}else{if(this.matchAssign()){if(!this.context.isAssignmentTarget){this.tolerateError(a.Messages.InvalidLHSInAssignment)}if(this.context.strict&&e.type===o.Syntax.Identifier){var g=e;if(this.scanner.isRestrictedWord(g.name)){this.tolerateUnexpectedToken(t,a.Messages.StrictLHSAssignment)}if(this.scanner.isStrictModeReservedWord(g.name)){this.tolerateUnexpectedToken(t,a.Messages.StrictReservedWord)}}if(!this.match("=")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false}else{this.reinterpretExpressionAsPattern(e)}t=this.nextToken();var E=t.value;var A=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(r),new u.AssignmentExpression(E,e,A));this.context.firstCoverInitializedNameError=null}}}return e};Parser.prototype.parseExpression=function(){var e=this.lookahead;var r=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var t=[];t.push(r);while(this.lookahead.type!==2){if(!this.match(",")){break}this.nextToken();t.push(this.isolateCoverGrammar(this.parseAssignmentExpression))}r=this.finalize(this.startNode(e),new u.SequenceExpression(t))}return r};Parser.prototype.parseStatementListItem=function(){var e;this.context.isAssignmentTarget=true;this.context.isBindingElement=true;if(this.lookahead.type===4){switch(this.lookahead.value){case"export":if(!this.context.isModule){this.tolerateUnexpectedToken(this.lookahead,a.Messages.IllegalExportDeclaration)}e=this.parseExportDeclaration();break;case"import":if(!this.context.isModule){this.tolerateUnexpectedToken(this.lookahead,a.Messages.IllegalImportDeclaration)}e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:false});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:false}):this.parseStatement();break;default:e=this.parseStatement();break}}else{e=this.parseStatement()}return e};Parser.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");var r=[];while(true){if(this.match("}")){break}r.push(this.parseStatementListItem())}this.expect("}");return this.finalize(e,new u.BlockStatement(r))};Parser.prototype.parseLexicalBinding=function(e,r){var t=this.createNode();var i=[];var n=this.parsePattern(i,e);if(this.context.strict&&n.type===o.Syntax.Identifier){if(this.scanner.isRestrictedWord(n.name)){this.tolerateError(a.Messages.StrictVarName)}}var s=null;if(e==="const"){if(!this.matchKeyword("in")&&!this.matchContextualKeyword("of")){if(this.match("=")){this.nextToken();s=this.isolateCoverGrammar(this.parseAssignmentExpression)}else{this.throwError(a.Messages.DeclarationMissingInitializer,"const")}}}else if(!r.inFor&&n.type!==o.Syntax.Identifier||this.match("=")){this.expect("=");s=this.isolateCoverGrammar(this.parseAssignmentExpression)}return this.finalize(t,new u.VariableDeclarator(n,s))};Parser.prototype.parseBindingList=function(e,r){var t=[this.parseLexicalBinding(e,r)];while(this.match(",")){this.nextToken();t.push(this.parseLexicalBinding(e,r))}return t};Parser.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var r=this.scanner.lex();this.scanner.restoreState(e);return r.type===3||r.type===7&&r.value==="["||r.type===7&&r.value==="{"||r.type===4&&r.value==="let"||r.type===4&&r.value==="yield"};Parser.prototype.parseLexicalDeclaration=function(e){var r=this.createNode();var t=this.nextToken().value;i.assert(t==="let"||t==="const","Lexical declaration must be either let or const");var n=this.parseBindingList(t,e);this.consumeSemicolon();return this.finalize(r,new u.VariableDeclaration(n,t))};Parser.prototype.parseBindingRestElement=function(e,r){var t=this.createNode();this.expect("...");var i=this.parsePattern(e,r);return this.finalize(t,new u.RestElement(i))};Parser.prototype.parseArrayPattern=function(e,r){var t=this.createNode();this.expect("[");var i=[];while(!this.match("]")){if(this.match(",")){this.nextToken();i.push(null)}else{if(this.match("...")){i.push(this.parseBindingRestElement(e,r));break}else{i.push(this.parsePatternWithDefault(e,r))}if(!this.match("]")){this.expect(",")}}}this.expect("]");return this.finalize(t,new u.ArrayPattern(i))};Parser.prototype.parsePropertyPattern=function(e,r){var t=this.createNode();var i=false;var n=false;var a=false;var s;var o;if(this.lookahead.type===3){var f=this.lookahead;s=this.parseVariableIdentifier();var l=this.finalize(t,new u.Identifier(f.value));if(this.match("=")){e.push(f);n=true;this.nextToken();var c=this.parseAssignmentExpression();o=this.finalize(this.startNode(f),new u.AssignmentPattern(l,c))}else if(!this.match(":")){e.push(f);n=true;o=l}else{this.expect(":");o=this.parsePatternWithDefault(e,r)}}else{i=this.match("[");s=this.parseObjectPropertyKey();this.expect(":");o=this.parsePatternWithDefault(e,r)}return this.finalize(t,new u.Property("init",s,i,o,a,n))};Parser.prototype.parseObjectPattern=function(e,r){var t=this.createNode();var i=[];this.expect("{");while(!this.match("}")){i.push(this.parsePropertyPattern(e,r));if(!this.match("}")){this.expect(",")}}this.expect("}");return this.finalize(t,new u.ObjectPattern(i))};Parser.prototype.parsePattern=function(e,r){var t;if(this.match("[")){t=this.parseArrayPattern(e,r)}else if(this.match("{")){t=this.parseObjectPattern(e,r)}else{if(this.matchKeyword("let")&&(r==="const"||r==="let")){this.tolerateUnexpectedToken(this.lookahead,a.Messages.LetInLexicalBinding)}e.push(this.lookahead);t=this.parseVariableIdentifier(r)}return t};Parser.prototype.parsePatternWithDefault=function(e,r){var t=this.lookahead;var i=this.parsePattern(e,r);if(this.match("=")){this.nextToken();var n=this.context.allowYield;this.context.allowYield=true;var a=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=n;i=this.finalize(this.startNode(t),new u.AssignmentPattern(i,a))}return i};Parser.prototype.parseVariableIdentifier=function(e){var r=this.createNode();var t=this.nextToken();if(t.type===4&&t.value==="yield"){if(this.context.strict){this.tolerateUnexpectedToken(t,a.Messages.StrictReservedWord)}else if(!this.context.allowYield){this.throwUnexpectedToken(t)}}else if(t.type!==3){if(this.context.strict&&t.type===4&&this.scanner.isStrictModeReservedWord(t.value)){this.tolerateUnexpectedToken(t,a.Messages.StrictReservedWord)}else{if(this.context.strict||t.value!=="let"||e!=="var"){this.throwUnexpectedToken(t)}}}else if((this.context.isModule||this.context.await)&&t.type===3&&t.value==="await"){this.tolerateUnexpectedToken(t)}return this.finalize(r,new u.Identifier(t.value))};Parser.prototype.parseVariableDeclaration=function(e){var r=this.createNode();var t=[];var i=this.parsePattern(t,"var");if(this.context.strict&&i.type===o.Syntax.Identifier){if(this.scanner.isRestrictedWord(i.name)){this.tolerateError(a.Messages.StrictVarName)}}var n=null;if(this.match("=")){this.nextToken();n=this.isolateCoverGrammar(this.parseAssignmentExpression)}else if(i.type!==o.Syntax.Identifier&&!e.inFor){this.expect("=")}return this.finalize(r,new u.VariableDeclarator(i,n))};Parser.prototype.parseVariableDeclarationList=function(e){var r={inFor:e.inFor};var t=[];t.push(this.parseVariableDeclaration(r));while(this.match(",")){this.nextToken();t.push(this.parseVariableDeclaration(r))}return t};Parser.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var r=this.parseVariableDeclarationList({inFor:false});this.consumeSemicolon();return this.finalize(e,new u.VariableDeclaration(r,"var"))};Parser.prototype.parseEmptyStatement=function(){var e=this.createNode();this.expect(";");return this.finalize(e,new u.EmptyStatement)};Parser.prototype.parseExpressionStatement=function(){var e=this.createNode();var r=this.parseExpression();this.consumeSemicolon();return this.finalize(e,new u.ExpressionStatement(r))};Parser.prototype.parseIfClause=function(){if(this.context.strict&&this.matchKeyword("function")){this.tolerateError(a.Messages.StrictFunction)}return this.parseStatement()};Parser.prototype.parseIfStatement=function(){var e=this.createNode();var r;var t=null;this.expectKeyword("if");this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());r=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");r=this.parseIfClause();if(this.matchKeyword("else")){this.nextToken();t=this.parseIfClause()}}return this.finalize(e,new u.IfStatement(i,r,t))};Parser.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var r=this.context.inIteration;this.context.inIteration=true;var t=this.parseStatement();this.context.inIteration=r;this.expectKeyword("while");this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken())}else{this.expect(")");if(this.match(";")){this.nextToken()}}return this.finalize(e,new u.DoWhileStatement(t,i))};Parser.prototype.parseWhileStatement=function(){var e=this.createNode();var r;this.expectKeyword("while");this.expect("(");var t=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());r=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");var i=this.context.inIteration;this.context.inIteration=true;r=this.parseStatement();this.context.inIteration=i}return this.finalize(e,new u.WhileStatement(t,r))};Parser.prototype.parseForStatement=function(){var e=null;var r=null;var t=null;var i=true;var n,s;var f=this.createNode();this.expectKeyword("for");this.expect("(");if(this.match(";")){this.nextToken()}else{if(this.matchKeyword("var")){e=this.createNode();this.nextToken();var l=this.context.allowIn;this.context.allowIn=false;var c=this.parseVariableDeclarationList({inFor:true});this.context.allowIn=l;if(c.length===1&&this.matchKeyword("in")){var h=c[0];if(h.init&&(h.id.type===o.Syntax.ArrayPattern||h.id.type===o.Syntax.ObjectPattern||this.context.strict)){this.tolerateError(a.Messages.ForInOfLoopInitializer,"for-in")}e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.nextToken();n=e;s=this.parseExpression();e=null}else if(c.length===1&&c[0].init===null&&this.matchContextualKeyword("of")){e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.nextToken();n=e;s=this.parseAssignmentExpression();e=null;i=false}else{e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.expect(";")}}else if(this.matchKeyword("const")||this.matchKeyword("let")){e=this.createNode();var p=this.nextToken().value;if(!this.context.strict&&this.lookahead.value==="in"){e=this.finalize(e,new u.Identifier(p));this.nextToken();n=e;s=this.parseExpression();e=null}else{var l=this.context.allowIn;this.context.allowIn=false;var c=this.parseBindingList(p,{inFor:true});this.context.allowIn=l;if(c.length===1&&c[0].init===null&&this.matchKeyword("in")){e=this.finalize(e,new u.VariableDeclaration(c,p));this.nextToken();n=e;s=this.parseExpression();e=null}else if(c.length===1&&c[0].init===null&&this.matchContextualKeyword("of")){e=this.finalize(e,new u.VariableDeclaration(c,p));this.nextToken();n=e;s=this.parseAssignmentExpression();e=null;i=false}else{this.consumeSemicolon();e=this.finalize(e,new u.VariableDeclaration(c,p))}}}else{var v=this.lookahead;var l=this.context.allowIn;this.context.allowIn=false;e=this.inheritCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=l;if(this.matchKeyword("in")){if(!this.context.isAssignmentTarget||e.type===o.Syntax.AssignmentExpression){this.tolerateError(a.Messages.InvalidLHSInForIn)}this.nextToken();this.reinterpretExpressionAsPattern(e);n=e;s=this.parseExpression();e=null}else if(this.matchContextualKeyword("of")){if(!this.context.isAssignmentTarget||e.type===o.Syntax.AssignmentExpression){this.tolerateError(a.Messages.InvalidLHSInForLoop)}this.nextToken();this.reinterpretExpressionAsPattern(e);n=e;s=this.parseAssignmentExpression();e=null;i=false}else{if(this.match(",")){var d=[e];while(this.match(",")){this.nextToken();d.push(this.isolateCoverGrammar(this.parseAssignmentExpression))}e=this.finalize(this.startNode(v),new u.SequenceExpression(d))}this.expect(";")}}}if(typeof n==="undefined"){if(!this.match(";")){r=this.parseExpression()}this.expect(";");if(!this.match(")")){t=this.parseExpression()}}var D;if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());D=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");var m=this.context.inIteration;this.context.inIteration=true;D=this.isolateCoverGrammar(this.parseStatement);this.context.inIteration=m}return typeof n==="undefined"?this.finalize(f,new u.ForStatement(e,r,t,D)):i?this.finalize(f,new u.ForInStatement(n,s,D)):this.finalize(f,new u.ForOfStatement(n,s,D))};Parser.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var r=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var t=this.parseVariableIdentifier();r=t;var i="$"+t.name;if(!Object.prototype.hasOwnProperty.call(this.context.labelSet,i)){this.throwError(a.Messages.UnknownLabel,t.name)}}this.consumeSemicolon();if(r===null&&!this.context.inIteration){this.throwError(a.Messages.IllegalContinue)}return this.finalize(e,new u.ContinueStatement(r))};Parser.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var r=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var t=this.parseVariableIdentifier();var i="$"+t.name;if(!Object.prototype.hasOwnProperty.call(this.context.labelSet,i)){this.throwError(a.Messages.UnknownLabel,t.name)}r=t}this.consumeSemicolon();if(r===null&&!this.context.inIteration&&!this.context.inSwitch){this.throwError(a.Messages.IllegalBreak)}return this.finalize(e,new u.BreakStatement(r))};Parser.prototype.parseReturnStatement=function(){if(!this.context.inFunctionBody){this.tolerateError(a.Messages.IllegalReturn)}var e=this.createNode();this.expectKeyword("return");var r=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==2||this.lookahead.type===8||this.lookahead.type===10;var t=r?this.parseExpression():null;this.consumeSemicolon();return this.finalize(e,new u.ReturnStatement(t))};Parser.prototype.parseWithStatement=function(){if(this.context.strict){this.tolerateError(a.Messages.StrictModeWith)}var e=this.createNode();var r;this.expectKeyword("with");this.expect("(");var t=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());r=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");r=this.parseStatement()}return this.finalize(e,new u.WithStatement(t,r))};Parser.prototype.parseSwitchCase=function(){var e=this.createNode();var r;if(this.matchKeyword("default")){this.nextToken();r=null}else{this.expectKeyword("case");r=this.parseExpression()}this.expect(":");var t=[];while(true){if(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case")){break}t.push(this.parseStatementListItem())}return this.finalize(e,new u.SwitchCase(r,t))};Parser.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch");this.expect("(");var r=this.parseExpression();this.expect(")");var t=this.context.inSwitch;this.context.inSwitch=true;var i=[];var n=false;this.expect("{");while(true){if(this.match("}")){break}var s=this.parseSwitchCase();if(s.test===null){if(n){this.throwError(a.Messages.MultipleDefaultsInSwitch)}n=true}i.push(s)}this.expect("}");this.context.inSwitch=t;return this.finalize(e,new u.SwitchStatement(r,i))};Parser.prototype.parseLabelledStatement=function(){var e=this.createNode();var r=this.parseExpression();var t;if(r.type===o.Syntax.Identifier&&this.match(":")){this.nextToken();var i=r;var n="$"+i.name;if(Object.prototype.hasOwnProperty.call(this.context.labelSet,n)){this.throwError(a.Messages.Redeclaration,"Label",i.name)}this.context.labelSet[n]=true;var s=void 0;if(this.matchKeyword("class")){this.tolerateUnexpectedToken(this.lookahead);s=this.parseClassDeclaration()}else if(this.matchKeyword("function")){var f=this.lookahead;var l=this.parseFunctionDeclaration();if(this.context.strict){this.tolerateUnexpectedToken(f,a.Messages.StrictFunction)}else if(l.generator){this.tolerateUnexpectedToken(f,a.Messages.GeneratorInLegacyContext)}s=l}else{s=this.parseStatement()}delete this.context.labelSet[n];t=new u.LabeledStatement(i,s)}else{this.consumeSemicolon();t=new u.ExpressionStatement(r)}return this.finalize(e,t)};Parser.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw");if(this.hasLineTerminator){this.throwError(a.Messages.NewlineAfterThrow)}var r=this.parseExpression();this.consumeSemicolon();return this.finalize(e,new u.ThrowStatement(r))};Parser.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch");this.expect("(");if(this.match(")")){this.throwUnexpectedToken(this.lookahead)}var r=[];var t=this.parsePattern(r);var i={};for(var n=0;n0){this.tolerateError(a.Messages.BadGetterArity)}var n=this.parsePropertyMethod(i);this.context.allowYield=t;return this.finalize(e,new u.FunctionExpression(null,i.params,n,r))};Parser.prototype.parseSetterMethod=function(){var e=this.createNode();var r=false;var t=this.context.allowYield;this.context.allowYield=!r;var i=this.parseFormalParameters();if(i.params.length!==1){this.tolerateError(a.Messages.BadSetterArity)}else if(i.params[0]instanceof u.RestElement){this.tolerateError(a.Messages.BadSetterRestParameter)}var n=this.parsePropertyMethod(i);this.context.allowYield=t;return this.finalize(e,new u.FunctionExpression(null,i.params,n,r))};Parser.prototype.parseGeneratorMethod=function(){var e=this.createNode();var r=true;var t=this.context.allowYield;this.context.allowYield=true;var i=this.parseFormalParameters();this.context.allowYield=false;var n=this.parsePropertyMethod(i);this.context.allowYield=t;return this.finalize(e,new u.FunctionExpression(null,i.params,n,r))};Parser.prototype.isStartOfExpression=function(){var e=true;var r=this.lookahead.value;switch(this.lookahead.type){case 7:e=r==="["||r==="("||r==="{"||r==="+"||r==="-"||r==="!"||r==="~"||r==="++"||r==="--"||r==="/"||r==="/=";break;case 4:e=r==="class"||r==="delete"||r==="function"||r==="let"||r==="new"||r==="super"||r==="this"||r==="typeof"||r==="void"||r==="yield";break;default:break}return e};Parser.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var r=null;var t=false;if(!this.hasLineTerminator){var i=this.context.allowYield;this.context.allowYield=false;t=this.match("*");if(t){this.nextToken();r=this.parseAssignmentExpression()}else if(this.isStartOfExpression()){r=this.parseAssignmentExpression()}this.context.allowYield=i}return this.finalize(e,new u.YieldExpression(r,t))};Parser.prototype.parseClassElement=function(e){var r=this.lookahead;var t=this.createNode();var i="";var n=null;var s=null;var o=false;var f=false;var l=false;var c=false;if(this.match("*")){this.nextToken()}else{o=this.match("[");n=this.parseObjectPropertyKey();var h=n;if(h.name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))){r=this.lookahead;l=true;o=this.match("[");if(this.match("*")){this.nextToken()}else{n=this.parseObjectPropertyKey()}}if(r.type===3&&!this.hasLineTerminator&&r.value==="async"){var p=this.lookahead.value;if(p!==":"&&p!=="("&&p!=="*"){c=true;r=this.lookahead;n=this.parseObjectPropertyKey();if(r.type===3&&r.value==="constructor"){this.tolerateUnexpectedToken(r,a.Messages.ConstructorIsAsync)}}}}var v=this.qualifiedPropertyName(this.lookahead);if(r.type===3){if(r.value==="get"&&v){i="get";o=this.match("[");n=this.parseObjectPropertyKey();this.context.allowYield=false;s=this.parseGetterMethod()}else if(r.value==="set"&&v){i="set";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseSetterMethod()}}else if(r.type===7&&r.value==="*"&&v){i="init";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseGeneratorMethod();f=true}if(!i&&n&&this.match("(")){i="init";s=c?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction();f=true}if(!i){this.throwUnexpectedToken(this.lookahead)}if(i==="init"){i="method"}if(!o){if(l&&this.isPropertyKey(n,"prototype")){this.throwUnexpectedToken(r,a.Messages.StaticPrototype)}if(!l&&this.isPropertyKey(n,"constructor")){if(i!=="method"||!f||s&&s.generator){this.throwUnexpectedToken(r,a.Messages.ConstructorSpecialMethod)}if(e.value){this.throwUnexpectedToken(r,a.Messages.DuplicateConstructor)}else{e.value=true}i="constructor"}}return this.finalize(t,new u.MethodDefinition(n,o,s,i,l))};Parser.prototype.parseClassElementList=function(){var e=[];var r={value:false};this.expect("{");while(!this.match("}")){if(this.match(";")){this.nextToken()}else{e.push(this.parseClassElement(r))}}this.expect("}");return e};Parser.prototype.parseClassBody=function(){var e=this.createNode();var r=this.parseClassElementList();return this.finalize(e,new u.ClassBody(r))};Parser.prototype.parseClassDeclaration=function(e){var r=this.createNode();var t=this.context.strict;this.context.strict=true;this.expectKeyword("class");var i=e&&this.lookahead.type!==3?null:this.parseVariableIdentifier();var n=null;if(this.matchKeyword("extends")){this.nextToken();n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall)}var a=this.parseClassBody();this.context.strict=t;return this.finalize(r,new u.ClassDeclaration(i,n,a))};Parser.prototype.parseClassExpression=function(){var e=this.createNode();var r=this.context.strict;this.context.strict=true;this.expectKeyword("class");var t=this.lookahead.type===3?this.parseVariableIdentifier():null;var i=null;if(this.matchKeyword("extends")){this.nextToken();i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall)}var n=this.parseClassBody();this.context.strict=r;return this.finalize(e,new u.ClassExpression(t,i,n))};Parser.prototype.parseModule=function(){this.context.strict=true;this.context.isModule=true;this.scanner.isModule=true;var e=this.createNode();var r=this.parseDirectivePrologues();while(this.lookahead.type!==2){r.push(this.parseStatementListItem())}return this.finalize(e,new u.Module(r))};Parser.prototype.parseScript=function(){var e=this.createNode();var r=this.parseDirectivePrologues();while(this.lookahead.type!==2){r.push(this.parseStatementListItem())}return this.finalize(e,new u.Script(r))};Parser.prototype.parseModuleSpecifier=function(){var e=this.createNode();if(this.lookahead.type!==8){this.throwError(a.Messages.InvalidModuleSpecifier)}var r=this.nextToken();var t=this.getTokenRaw(r);return this.finalize(e,new u.Literal(r.value,t))};Parser.prototype.parseImportSpecifier=function(){var e=this.createNode();var r;var t;if(this.lookahead.type===3){r=this.parseVariableIdentifier();t=r;if(this.matchContextualKeyword("as")){this.nextToken();t=this.parseVariableIdentifier()}}else{r=this.parseIdentifierName();t=r;if(this.matchContextualKeyword("as")){this.nextToken();t=this.parseVariableIdentifier()}else{this.throwUnexpectedToken(this.nextToken())}}return this.finalize(e,new u.ImportSpecifier(t,r))};Parser.prototype.parseNamedImports=function(){this.expect("{");var e=[];while(!this.match("}")){e.push(this.parseImportSpecifier());if(!this.match("}")){this.expect(",")}}this.expect("}");return e};Parser.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode();var r=this.parseIdentifierName();return this.finalize(e,new u.ImportDefaultSpecifier(r))};Parser.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*");if(!this.matchContextualKeyword("as")){this.throwError(a.Messages.NoAsAfterImportNamespace)}this.nextToken();var r=this.parseIdentifierName();return this.finalize(e,new u.ImportNamespaceSpecifier(r))};Parser.prototype.parseImportDeclaration=function(){if(this.context.inFunctionBody){this.throwError(a.Messages.IllegalImportDeclaration)}var e=this.createNode();this.expectKeyword("import");var r;var t=[];if(this.lookahead.type===8){r=this.parseModuleSpecifier()}else{if(this.match("{")){t=t.concat(this.parseNamedImports())}else if(this.match("*")){t.push(this.parseImportNamespaceSpecifier())}else if(this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")){t.push(this.parseImportDefaultSpecifier());if(this.match(",")){this.nextToken();if(this.match("*")){t.push(this.parseImportNamespaceSpecifier())}else if(this.match("{")){t=t.concat(this.parseNamedImports())}else{this.throwUnexpectedToken(this.lookahead)}}}else{this.throwUnexpectedToken(this.nextToken())}if(!this.matchContextualKeyword("from")){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();r=this.parseModuleSpecifier()}this.consumeSemicolon();return this.finalize(e,new u.ImportDeclaration(t,r))};Parser.prototype.parseExportSpecifier=function(){var e=this.createNode();var r=this.parseIdentifierName();var t=r;if(this.matchContextualKeyword("as")){this.nextToken();t=this.parseIdentifierName()}return this.finalize(e,new u.ExportSpecifier(r,t))};Parser.prototype.parseExportDeclaration=function(){if(this.context.inFunctionBody){this.throwError(a.Messages.IllegalExportDeclaration)}var e=this.createNode();this.expectKeyword("export");var r;if(this.matchKeyword("default")){this.nextToken();if(this.matchKeyword("function")){var t=this.parseFunctionDeclaration(true);r=this.finalize(e,new u.ExportDefaultDeclaration(t))}else if(this.matchKeyword("class")){var t=this.parseClassDeclaration(true);r=this.finalize(e,new u.ExportDefaultDeclaration(t))}else if(this.matchContextualKeyword("async")){var t=this.matchAsyncFunction()?this.parseFunctionDeclaration(true):this.parseAssignmentExpression();r=this.finalize(e,new u.ExportDefaultDeclaration(t))}else{if(this.matchContextualKeyword("from")){this.throwError(a.Messages.UnexpectedToken,this.lookahead.value)}var t=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon();r=this.finalize(e,new u.ExportDefaultDeclaration(t))}}else if(this.match("*")){this.nextToken();if(!this.matchContextualKeyword("from")){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();var n=this.parseModuleSpecifier();this.consumeSemicolon();r=this.finalize(e,new u.ExportAllDeclaration(n))}else if(this.lookahead.type===4){var t=void 0;switch(this.lookahead.value){case"let":case"const":t=this.parseLexicalDeclaration({inFor:false});break;case"var":case"class":case"function":t=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}r=this.finalize(e,new u.ExportNamedDeclaration(t,[],null))}else if(this.matchAsyncFunction()){var t=this.parseFunctionDeclaration();r=this.finalize(e,new u.ExportNamedDeclaration(t,[],null))}else{var s=[];var o=null;var f=false;this.expect("{");while(!this.match("}")){f=f||this.matchKeyword("default");s.push(this.parseExportSpecifier());if(!this.match("}")){this.expect(",")}}this.expect("}");if(this.matchContextualKeyword("from")){this.nextToken();o=this.parseModuleSpecifier();this.consumeSemicolon()}else if(f){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}else{this.consumeSemicolon()}r=this.finalize(e,new u.ExportNamedDeclaration(null,s,o))}return r};return Parser}();r.Parser=c},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});function assert(e,r){if(!e){throw new Error("ASSERT: "+r)}}r.assert=assert},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});var t=function(){function ErrorHandler(){this.errors=[];this.tolerant=false}ErrorHandler.prototype.recordError=function(e){this.errors.push(e)};ErrorHandler.prototype.tolerate=function(e){if(this.tolerant){this.recordError(e)}else{throw e}};ErrorHandler.prototype.constructError=function(e,r){var t=new Error(e);try{throw t}catch(e){if(Object.create&&Object.defineProperty){t=Object.create(e);Object.defineProperty(t,"column",{value:r})}}return t};ErrorHandler.prototype.createError=function(e,r,t,i){var n="Line "+r+": "+i;var a=this.constructError(n,t);a.index=e;a.lineNumber=r;a.description=i;return a};ErrorHandler.prototype.throwError=function(e,r,t,i){throw this.createError(e,r,t,i)};ErrorHandler.prototype.tolerateError=function(e,r,t,i){var n=this.createError(e,r,t,i);if(this.tolerant){this.recordError(n)}else{throw n}};return ErrorHandler}();r.ErrorHandler=t},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(9);var n=t(4);var a=t(11);function hexValue(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function octalValue(e){return"01234567".indexOf(e)}var u=function(){function Scanner(e,r){this.source=e;this.errorHandler=r;this.trackComment=false;this.isModule=false;this.length=e.length;this.index=0;this.lineNumber=e.length>0?1:0;this.lineStart=0;this.curlyStack=[]}Scanner.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}};Scanner.prototype.restoreState=function(e){this.index=e.index;this.lineNumber=e.lineNumber;this.lineStart=e.lineStart};Scanner.prototype.eof=function(){return this.index>=this.length};Scanner.prototype.throwUnexpectedToken=function(e){if(e===void 0){e=a.Messages.UnexpectedTokenIllegal}return this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)};Scanner.prototype.tolerateUnexpectedToken=function(e){if(e===void 0){e=a.Messages.UnexpectedTokenIllegal}this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)};Scanner.prototype.skipSingleLineComment=function(e){var r=[];var t,i;if(this.trackComment){r=[];t=this.index-e;i={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}}}while(!this.eof()){var a=this.source.charCodeAt(this.index);++this.index;if(n.Character.isLineTerminator(a)){if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart-1};var u={multiLine:false,slice:[t+e,this.index-1],range:[t,this.index-1],loc:i};r.push(u)}if(a===13&&this.source.charCodeAt(this.index)===10){++this.index}++this.lineNumber;this.lineStart=this.index;return r}}if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart};var u={multiLine:false,slice:[t+e,this.index],range:[t,this.index],loc:i};r.push(u)}return r};Scanner.prototype.skipMultiLineComment=function(){var e=[];var r,t;if(this.trackComment){e=[];r=this.index-2;t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}}}while(!this.eof()){var i=this.source.charCodeAt(this.index);if(n.Character.isLineTerminator(i)){if(i===13&&this.source.charCodeAt(this.index+1)===10){++this.index}++this.lineNumber;++this.index;this.lineStart=this.index}else if(i===42){if(this.source.charCodeAt(this.index+1)===47){this.index+=2;if(this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var a={multiLine:true,slice:[r+2,this.index-2],range:[r,this.index],loc:t};e.push(a)}return e}++this.index}else{++this.index}}if(this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var a={multiLine:true,slice:[r+2,this.index],range:[r,this.index],loc:t};e.push(a)}this.tolerateUnexpectedToken();return e};Scanner.prototype.scanComments=function(){var e;if(this.trackComment){e=[]}var r=this.index===0;while(!this.eof()){var t=this.source.charCodeAt(this.index);if(n.Character.isWhiteSpace(t)){++this.index}else if(n.Character.isLineTerminator(t)){++this.index;if(t===13&&this.source.charCodeAt(this.index)===10){++this.index}++this.lineNumber;this.lineStart=this.index;r=true}else if(t===47){t=this.source.charCodeAt(this.index+1);if(t===47){this.index+=2;var i=this.skipSingleLineComment(2);if(this.trackComment){e=e.concat(i)}r=true}else if(t===42){this.index+=2;var i=this.skipMultiLineComment();if(this.trackComment){e=e.concat(i)}}else{break}}else if(r&&t===45){if(this.source.charCodeAt(this.index+1)===45&&this.source.charCodeAt(this.index+2)===62){this.index+=3;var i=this.skipSingleLineComment(3);if(this.trackComment){e=e.concat(i)}}else{break}}else if(t===60&&!this.isModule){if(this.source.slice(this.index+1,this.index+4)==="!--"){this.index+=4;var i=this.skipSingleLineComment(4);if(this.trackComment){e=e.concat(i)}}else{break}}else{break}}return e};Scanner.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return true;default:return false}};Scanner.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return true;default:return false}};Scanner.prototype.isRestrictedWord=function(e){return e==="eval"||e==="arguments"};Scanner.prototype.isKeyword=function(e){switch(e.length){case 2:return e==="if"||e==="in"||e==="do";case 3:return e==="var"||e==="for"||e==="new"||e==="try"||e==="let";case 4:return e==="this"||e==="else"||e==="case"||e==="void"||e==="with"||e==="enum";case 5:return e==="while"||e==="break"||e==="catch"||e==="throw"||e==="const"||e==="yield"||e==="class"||e==="super";case 6:return e==="return"||e==="typeof"||e==="delete"||e==="switch"||e==="export"||e==="import";case 7:return e==="default"||e==="finally"||e==="extends";case 8:return e==="function"||e==="continue"||e==="debugger";case 10:return e==="instanceof";default:return false}};Scanner.prototype.codePointAt=function(e){var r=this.source.charCodeAt(e);if(r>=55296&&r<=56319){var t=this.source.charCodeAt(e+1);if(t>=56320&&t<=57343){var i=r;r=(i-55296)*1024+t-56320+65536}}return r};Scanner.prototype.scanHexEscape=function(e){var r=e==="u"?4:2;var t=0;for(var i=0;i1114111||e!=="}"){this.throwUnexpectedToken()}return n.Character.fromCodePoint(r)};Scanner.prototype.getIdentifier=function(){var e=this.index++;while(!this.eof()){var r=this.source.charCodeAt(this.index);if(r===92){this.index=e;return this.getComplexIdentifier()}else if(r>=55296&&r<57343){this.index=e;return this.getComplexIdentifier()}if(n.Character.isIdentifierPart(r)){++this.index}else{break}}return this.source.slice(e,this.index)};Scanner.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index);var r=n.Character.fromCodePoint(e);this.index+=r.length;var t;if(e===92){if(this.source.charCodeAt(this.index)!==117){this.throwUnexpectedToken()}++this.index;if(this.source[this.index]==="{"){++this.index;t=this.scanUnicodeCodePointEscape()}else{t=this.scanHexEscape("u");if(t===null||t==="\\"||!n.Character.isIdentifierStart(t.charCodeAt(0))){this.throwUnexpectedToken()}}r=t}while(!this.eof()){e=this.codePointAt(this.index);if(!n.Character.isIdentifierPart(e)){break}t=n.Character.fromCodePoint(e);r+=t;this.index+=t.length;if(e===92){r=r.substr(0,r.length-1);if(this.source.charCodeAt(this.index)!==117){this.throwUnexpectedToken()}++this.index;if(this.source[this.index]==="{"){++this.index;t=this.scanUnicodeCodePointEscape()}else{t=this.scanHexEscape("u");if(t===null||t==="\\"||!n.Character.isIdentifierPart(t.charCodeAt(0))){this.throwUnexpectedToken()}}r+=t}}return r};Scanner.prototype.octalToDecimal=function(e){var r=e!=="0";var t=octalValue(e);if(!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))){r=true;t=t*8+octalValue(this.source[this.index++]);if("0123".indexOf(e)>=0&&!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))){t=t*8+octalValue(this.source[this.index++])}}return{code:t,octal:r}};Scanner.prototype.scanIdentifier=function(){var e;var r=this.index;var t=this.source.charCodeAt(r)===92?this.getComplexIdentifier():this.getIdentifier();if(t.length===1){e=3}else if(this.isKeyword(t)){e=4}else if(t==="null"){e=5}else if(t==="true"||t==="false"){e=1}else{e=3}if(e!==3&&r+t.length!==this.index){var i=this.index;this.index=r;this.tolerateUnexpectedToken(a.Messages.InvalidEscapedReservedWord);this.index=i}return{type:e,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}};Scanner.prototype.scanPunctuator=function(){var e=this.index;var r=this.source[this.index];switch(r){case"(":case"{":if(r==="{"){this.curlyStack.push("{")}++this.index;break;case".":++this.index;if(this.source[this.index]==="."&&this.source[this.index+1]==="."){this.index+=2;r="..."}break;case"}":++this.index;this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:r=this.source.substr(this.index,4);if(r===">>>="){this.index+=4}else{r=r.substr(0,3);if(r==="==="||r==="!=="||r===">>>"||r==="<<="||r===">>="||r==="**="){this.index+=3}else{r=r.substr(0,2);if(r==="&&"||r==="||"||r==="=="||r==="!="||r==="+="||r==="-="||r==="*="||r==="/="||r==="++"||r==="--"||r==="<<"||r===">>"||r==="&="||r==="|="||r==="^="||r==="%="||r==="<="||r===">="||r==="=>"||r==="**"){this.index+=2}else{r=this.source[this.index];if("<>=!+-*%&|^/".indexOf(r)>=0){++this.index}}}}}if(this.index===e){this.throwUnexpectedToken()}return{type:7,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanHexLiteral=function(e){var r="";while(!this.eof()){if(!n.Character.isHexDigit(this.source.charCodeAt(this.index))){break}r+=this.source[this.index++]}if(r.length===0){this.throwUnexpectedToken()}if(n.Character.isIdentifierStart(this.source.charCodeAt(this.index))){this.throwUnexpectedToken()}return{type:6,value:parseInt("0x"+r,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanBinaryLiteral=function(e){var r="";var t;while(!this.eof()){t=this.source[this.index];if(t!=="0"&&t!=="1"){break}r+=this.source[this.index++]}if(r.length===0){this.throwUnexpectedToken()}if(!this.eof()){t=this.source.charCodeAt(this.index);if(n.Character.isIdentifierStart(t)||n.Character.isDecimalDigit(t)){this.throwUnexpectedToken()}}return{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanOctalLiteral=function(e,r){var t="";var i=false;if(n.Character.isOctalDigit(e.charCodeAt(0))){i=true;t="0"+this.source[this.index++]}else{++this.index}while(!this.eof()){if(!n.Character.isOctalDigit(this.source.charCodeAt(this.index))){break}t+=this.source[this.index++]}if(!i&&t.length===0){this.throwUnexpectedToken()}if(n.Character.isIdentifierStart(this.source.charCodeAt(this.index))||n.Character.isDecimalDigit(this.source.charCodeAt(this.index))){this.throwUnexpectedToken()}return{type:6,value:parseInt(t,8),octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}};Scanner.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0){i=i.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,r,i){var u=parseInt(r||i,16);if(u>1114111){n.throwUnexpectedToken(a.Messages.InvalidRegExp)}if(u<=65535){return String.fromCharCode(u)}return t}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,t)}try{RegExp(i)}catch(e){this.throwUnexpectedToken(a.Messages.InvalidRegExp)}try{return new RegExp(e,r)}catch(e){return null}};Scanner.prototype.scanRegExpBody=function(){var e=this.source[this.index];i.assert(e==="/","Regular expression literal must start with a slash");var r=this.source[this.index++];var t=false;var u=false;while(!this.eof()){e=this.source[this.index++];r+=e;if(e==="\\"){e=this.source[this.index++];if(n.Character.isLineTerminator(e.charCodeAt(0))){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}r+=e}else if(n.Character.isLineTerminator(e.charCodeAt(0))){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}else if(t){if(e==="]"){t=false}}else{if(e==="/"){u=true;break}else if(e==="["){t=true}}}if(!u){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}return r.substr(1,r.length-2)};Scanner.prototype.scanRegExpFlags=function(){var e="";var r="";while(!this.eof()){var t=this.source[this.index];if(!n.Character.isIdentifierPart(t.charCodeAt(0))){break}++this.index;if(t==="\\"&&!this.eof()){t=this.source[this.index];if(t==="u"){++this.index;var i=this.index;var a=this.scanHexEscape("u");if(a!==null){r+=a;for(e+="\\u";i=55296&&e<57343){if(n.Character.isIdentifierStart(this.codePointAt(this.index))){return this.scanIdentifier()}}return this.scanPunctuator()};return Scanner}();r.Scanner=u},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.TokenName={};r.TokenName[1]="Boolean";r.TokenName[2]="";r.TokenName[3]="Identifier";r.TokenName[4]="Keyword";r.TokenName[5]="Null";r.TokenName[6]="Numeric";r.TokenName[7]="Punctuator";r.TokenName[8]="String";r.TokenName[9]="RegularExpression";r.TokenName[10]="Template"},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var i=t(10);var n=t(12);var a=t(13);var u=function(){function Reader(){this.values=[];this.curly=this.paren=-1}Reader.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0};Reader.prototype.isRegexStart=function(){var e=this.values[this.values.length-1];var r=e!==null;switch(e){case"this":case"]":r=false;break;case")":var t=this.values[this.paren-1];r=t==="if"||t==="while"||t==="for"||t==="with";break;case"}":r=false;if(this.values[this.curly-3]==="function"){var i=this.values[this.curly-4];r=i?!this.beforeFunctionExpression(i):false}else if(this.values[this.curly-4]==="function"){var i=this.values[this.curly-5];r=i?!this.beforeFunctionExpression(i):true}break;default:break}return r};Reader.prototype.push=function(e){if(e.type===7||e.type===4){if(e.value==="{"){this.curly=this.values.length}else if(e.value==="("){this.paren=this.values.length}this.values.push(e.value)}else{this.values.push(null)}};return Reader}();var s=function(){function Tokenizer(e,r){this.errorHandler=new i.ErrorHandler;this.errorHandler.tolerant=r?typeof r.tolerant==="boolean"&&r.tolerant:false;this.scanner=new n.Scanner(e,this.errorHandler);this.scanner.trackComment=r?typeof r.comment==="boolean"&&r.comment:false;this.trackRange=r?typeof r.range==="boolean"&&r.range:false;this.trackLoc=r?typeof r.loc==="boolean"&&r.loc:false;this.buffer=[];this.reader=new u}Tokenizer.prototype.errors=function(){return this.errorHandler.errors};Tokenizer.prototype.getNextToken=function(){if(this.buffer.length===0){var e=this.scanner.scanComments();if(this.scanner.trackComment){for(var r=0;ri&&e[c+1]!==" ";c=a}}else if(!isPrintable(u)){return j}h=h&&isPlainSafe(u)}o=o||f&&(a-c-1>i&&e[c+1]!==" ")}if(!s&&!o){return h&&!n(e)?I:M}if(t>9&&needIndentIndicator(e)){return j}return o?R:L}function writeScalar(e,r,t,i){e.dump=function(){if(r.length===0){return"''"}if(!e.noCompatMode&&T.indexOf(r)!==-1){return"'"+r+"'"}var a=e.indent*Math.max(1,t);var u=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a);var s=i||e.flowLevel>-1&&t>=e.flowLevel;function testAmbiguity(r){return testImplicitResolving(e,r)}switch(chooseScalarStyle(r,s,e.indent,u,testAmbiguity)){case I:return r;case M:return"'"+r.replace(/'/g,"''")+"'";case L:return"|"+blockHeader(r,e.indent)+dropEndingNewline(indentString(r,a));case R:return">"+blockHeader(r,e.indent)+dropEndingNewline(indentString(foldString(r,u),a));case j:return'"'+escapeString(r,u)+'"';default:throw new n("impossible error: invalid scalar style")}}()}function blockHeader(e,r){var t=needIndentIndicator(e)?String(r):"";var i=e[e.length-1]==="\n";var n=i&&(e[e.length-2]==="\n"||e==="\n");var a=n?"+":i?"":"-";return t+a+"\n"}function dropEndingNewline(e){return e[e.length-1]==="\n"?e.slice(0,-1):e}function foldString(e,r){var t=/(\n+)([^\n]*)/g;var i=function(){var i=e.indexOf("\n");i=i!==-1?i:e.length;t.lastIndex=i;return foldLine(e.slice(0,i),r)}();var n=e[0]==="\n"||e[0]===" ";var a;var u;while(u=t.exec(e)){var s=u[1],o=u[2];a=o[0]===" ";i+=s+(!n&&!a&&o!==""?"\n":"")+foldLine(o,r);n=a}return i}function foldLine(e,r){if(e===""||e[0]===" ")return e;var t=/ [^ ]/g;var i;var n=0,a,u=0,s=0;var o="";while(i=t.exec(e)){s=i.index;if(s-n>r){a=u>n?u:s;o+="\n"+e.slice(n,a);n=a+1}u=s}o+="\n";if(e.length-n>r&&u>n){o+=e.slice(n,u)+"\n"+e.slice(u+1)}else{o+=e.slice(n)}return o.slice(1)}function escapeString(e){var r="";var t,i;var n;for(var a=0;a=55296&&t<=56319){i=e.charCodeAt(a+1);if(i>=56320&&i<=57343){r+=encodeHex((t-55296)*1024+i-56320+65536);a++;continue}}n=P[t];r+=!n&&isPrintable(t)?e[a]:n||encodeHex(t)}return r}function writeFlowSequence(e,r,t){var i="",n=e.tag,a,u;for(a=0,u=t.length;a1024)l+="? ";l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" ");if(!writeNode(e,r,f,false,false)){continue}l+=e.dump;i+=l}e.tag=n;e.dump="{"+i+"}"}function writeBlockMapping(e,r,t,i){var a="",u=e.tag,s=Object.keys(t),o,f,c,h,p,v;if(e.sortKeys===true){s.sort()}else if(typeof e.sortKeys==="function"){s.sort(e.sortKeys)}else if(e.sortKeys){throw new n("sortKeys must be a boolean or a function")}for(o=0,f=s.length;o1024;if(p){if(e.dump&&l===e.dump.charCodeAt(0)){v+="?"}else{v+="? "}}v+=e.dump;if(p){v+=generateNextLine(e,r)}if(!writeNode(e,r+1,h,true,p)){continue}if(e.dump&&l===e.dump.charCodeAt(0)){v+=":"}else{v+=": "}v+=e.dump;a+=v}e.tag=u;e.dump=a||"{}"}function detectType(e,r,t){var i,a,u,f,l,c;a=t?e.explicitTypes:e.implicitTypes;for(u=0,f=a.length;u tag resolver accepts not "'+c+'" style')}e.dump=i}return true}}return false}function writeNode(e,r,t,i,a,u){e.tag=null;e.dump=t;if(!detectType(e,t,false)){detectType(e,t,true)}var o=s.call(e.dump);if(i){i=e.flowLevel<0||e.flowLevel>r}var f=o==="[object Object]"||o==="[object Array]",l,c;if(f){l=e.duplicates.indexOf(t);c=l!==-1}if(e.tag!==null&&e.tag!=="?"||c||e.indent!==2&&r>0){a=false}if(c&&e.usedDuplicates[l]){e.dump="*ref_"+l}else{if(f&&c&&!e.usedDuplicates[l]){e.usedDuplicates[l]=true}if(o==="[object Object]"){if(i&&Object.keys(e.dump).length!==0){writeBlockMapping(e,r,e.dump,a);if(c){e.dump="&ref_"+l+e.dump}}else{writeFlowMapping(e,r,e.dump);if(c){e.dump="&ref_"+l+" "+e.dump}}}else if(o==="[object Array]"){var h=e.noArrayIndent&&r>0?r-1:r;if(i&&e.dump.length!==0){writeBlockSequence(e,h,e.dump,a);if(c){e.dump="&ref_"+l+e.dump}}else{writeFlowSequence(e,h,e.dump);if(c){e.dump="&ref_"+l+" "+e.dump}}}else if(o==="[object String]"){if(e.tag!=="?"){writeScalar(e,e.dump,r,u)}}else{if(e.skipInvalid)return false;throw new n("unacceptable kind of an object to dump "+o)}if(e.tag!==null&&e.tag!=="?"){e.dump="!<"+e.tag+"> "+e.dump}}return true}function getDuplicateReferences(e,r){var t=[],i=[],n,a;inspectNode(e,t,i);for(n=0,a=i.length;n{if(typeof e!=="string"){throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof e}\``)}if(typeof r!=="string"){throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof r}\``)}try{e=a.realpathSync(e)}catch(r){if(r.code==="ENOENT"){e=i.resolve(e)}else if(t){return null}else{throw r}}const u=i.join(e,"noop.js");const s=()=>n._resolveFilename(r,{id:u,filename:u,paths:n._nodeModulePaths(e)});if(t){try{return s()}catch(e){return null}}return s()};e.exports=((e,r)=>u(e,r));e.exports.silent=((e,r)=>u(e,r,true))},,,,,,,function(e,r,t){"use strict";var i=t(354);var n="\n";var a=" ";var u=":";var s="[";var o="]";var f="^";var l=4;var c=n+n;var h=i(a,l);e.exports=footnoteDefinition;function footnoteDefinition(e){var r=this.all(e).join(c+h);return s+f+(e.label||e.identifier)+o+u+a+r}},,,,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(389);var u=t(434);var s=t(220);var o=t(97);e.exports=i("remark-lint:no-heading-content-indent",noHeadingContentIndent);var f=s.start;var l=s.end;function noHeadingContentIndent(e,r){var t=String(r);n(e,"heading",visitor);function visitor(e){var i;var n;var s;var c;var h;var p;var v;var d;var D;var m;if(o(e)){return}i=e.depth;n=e.children;s=a(e,"atx");if(s==="atx"||s==="atx-closed"){h=f(e);d=h.offset;D=t.charAt(d);while(D&&D!=="#"){D=t.charAt(++d)}if(!D){return}d=i+(d-h.offset);c=f(n[0]).column;if(!c){return}v=c-h.column-1-d;if(v){m=(v>0?"Remove":"Add")+" "+Math.abs(v)+" "+u("space",v)+" before this heading’s content";r.message(m,f(n[0]))}}if(s==="atx-closed"){p=l(n[n.length-1]);v=l(e).column-p.column-1-i;if(v){m="Remove "+v+" "+u("space",v)+" after this heading’s content";r.message(m,p)}}}}},function(e){"use strict";e.exports=function(e){if(typeof e!=="function"){throw new TypeError("Expected a function")}return e.displayName||e.name||(/function ([^\(]+)?\(/.exec(e.toString())||[])[1]||null}},,,function(e,r,t){"use strict";var i=t(532);var n=t(234);e.exports=definition;var a=" ";var u=":";var s="[";var o="]";function definition(e){var r=i(e.url);if(e.title){r+=a+n(e.title)}return s+(e.label||e.identifier)+o+u+a+r}},,function(e){if(typeof Object.create==="function"){e.exports=function inherits(e,r){e.super_=r;e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}else{e.exports=function inherits(e,r){e.super_=r;var t=function(){};t.prototype=r.prototype;e.prototype=new t;e.prototype.constructor=e}}},,,,,function(e,r,t){"use strict";var i=t(720)();e.exports=function(e){return typeof e==="string"?e.replace(i,""):e}},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(97);var u=t(67);e.exports=i("remark-lint:no-inline-padding",noInlinePadding);function noInlinePadding(e,r){n(e,["emphasis","strong","delete","image","link"],visitor);function visitor(e){var t;if(!a(e)){t=u(e);if(t.charAt(0)===" "||t.charAt(t.length-1)===" "){r.message("Don’t pad `"+e.type+"` with inner spaces",e)}}}}},,,,,,,,,,,,,,function(e,r,t){"use strict";var i=t(775);var n=t(507);var a=t(288);var u=t(413);e.exports=log;var s="vfile-reporter";function log(e,r,t){var o=r.reporter||a;var f;if(u(o)){try{o=n(o,{cwd:r.cwd,prefix:s})}catch(e){t(new Error("Could not find reporter `"+o+"`"));return}}f=o(e.files.filter(given),i(r.reporterOptions,{quiet:r.quiet,silent:r.silent,color:r.color}));if(f){if(f.charAt(f.length-1)!=="\n"){f+="\n"}r.streamError.write(f,t)}else{t()}}function given(e){return e.data.unifiedEngineGiven}},,,,,function(e,r,t){"use strict";var i=t(308);var n=t(197);var a=t(981);var u=t(314);var s=t(116);e.exports=encode;encode.escape=escape;var o={}.hasOwnProperty;var f=['"',"'","<",">","&","`"];var l=construct();var c=toExpression(f);var h=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var p=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;function encode(e,r){var t=r||{};var i=t.subset;var n=i?toExpression(i):c;var a=t.escapeOnly;var u=t.omitOptionalSemicolons;e=e.replace(n,function(e,r,i){return one(e,i.charAt(r+1),t)});if(i||a){return e}return e.replace(h,replaceSurrogatePair).replace(p,replaceBmp);function replaceSurrogatePair(e,r,t){return toHexReference((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,t.charAt(r+2),u)}function replaceBmp(e,r,i){return one(e,i.charAt(r+1),t)}}function escape(e){return encode(e,{escapeOnly:true,useNamedReferences:true})}function one(e,r,t){var i=t.useShortestReferences;var n=t.omitOptionalSemicolons;var a;var u;if((i||t.useNamedReferences)&&o.call(l,e)){a=toNamed(l[e],r,n,t.attribute)}if(i||!a){u=toHexReference(e.charCodeAt(0),r,n)}if(a&&(!i||a.length",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"}},function(e,r,t){"use strict";var i=t(347);e.exports=normalize;function normalize(e){return i(e).toLowerCase()}},,,,function(e){"use strict";e.exports=trimTrailingLines;var r="\n";function trimTrailingLines(e){var t=String(e);var i=t.length;while(t.charAt(--i)===r){}return t.slice(0,i+1)}},,,,function(e,r){r.parse=r.decode=decode;r.stringify=r.encode=encode;r.safe=safe;r.unsafe=unsafe;var t=typeof process!=="undefined"&&process.platform==="win32"?"\r\n":"\n";function encode(e,r){var i=[];var n="";if(typeof r==="string"){r={section:r,whitespace:false}}else{r=r||{};r.whitespace=r.whitespace===true}var a=r.whitespace?" = ":"=";Object.keys(e).forEach(function(r,u,s){var o=e[r];if(o&&Array.isArray(o)){o.forEach(function(e){n+=safe(r+"[]")+a+safe(e)+"\n"})}else if(o&&typeof o==="object"){i.push(r)}else{n+=safe(r)+a+safe(o)+t}});if(r.section&&n.length){n="["+safe(r.section)+"]"+t+n}i.forEach(function(i,a,u){var s=dotSplit(i).join("\\.");var o=(r.section?r.section+".":"")+s;var f=encode(e[i],{section:o,whitespace:r.whitespace});if(n.length&&f.length){n+=t}n+=f});return n}function dotSplit(e){return e.replace(/\1/g,"LITERAL\\1LITERAL").replace(/\\\./g,"").split(/\./).map(function(e){return e.replace(/\1/g,"\\.").replace(/\2LITERAL\\1LITERAL\2/g,"")})}function decode(e){var r={};var t=r;var i=null;var n=/^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i;var a=e.split(/[\r\n]+/g);a.forEach(function(e,a,u){if(!e||e.match(/^\s*[;#]/))return;var s=e.match(n);if(!s)return;if(s[1]!==undefined){i=unsafe(s[1]);t=r[i]=r[i]||{};return}var o=unsafe(s[2]);var f=s[3]?unsafe(s[4]):true;switch(f){case"true":case"false":case"null":f=JSON.parse(f)}if(o.length>2&&o.slice(-2)==="[]"){o=o.substring(0,o.length-2);if(!t[o]){t[o]=[]}else if(!Array.isArray(t[o])){t[o]=[t[o]]}}if(Array.isArray(t[o])){t[o].push(f)}else{t[o]=f}});Object.keys(r).filter(function(e,t,i){if(!r[e]||typeof r[e]!=="object"||Array.isArray(r[e])){return false}var n=dotSplit(e);var a=r;var u=n.pop();var s=u.replace(/\\\./g,".");n.forEach(function(e,r,t){if(!a[e]||typeof a[e]!=="object")a[e]={};a=a[e]});if(a===r&&s===u){return false}a[s]=r[e];return true}).forEach(function(e,t,i){delete r[e]});return r}function isQuoted(e){return e.charAt(0)==='"'&&e.slice(-1)==='"'||e.charAt(0)==="'"&&e.slice(-1)==="'"}function safe(e){return typeof e!=="string"||e.match(/[=\r\n]/)||e.match(/^\[/)||e.length>1&&isQuoted(e)||e!==e.trim()?JSON.stringify(e):e.replace(/;/g,"\\;").replace(/#/g,"\\#")}function unsafe(e,r){e=(e||"").trim();if(isQuoted(e)){if(e.charAt(0)==="'"){e=e.substr(1,e.length-2)}try{e=JSON.parse(e)}catch(e){}}else{var t=false;var i="";for(var n=0,a=e.length;n=E){return}S=r.charAt(C);if(S===f||S===c||S===h){B=S;F=false}else{F=true;b="";while(C=E){V=true}if(J&&x>=J.indent){V=true}S=r.charAt(C);T=null;if(!V){if(S===f||S===c||S===h){T=S;C++;x++}else{b="";while(C=J.indent||x>E}P=false;C=O}M=r.slice(O,k);I=O===C?M:r.slice(C,k);if(T===f||T===l||T===h){if(g.thematicBreak.call(n,e,M,true)){break}}L=R;R=!P&&!i(I).length;if(V&&J){J.value=J.value.concat(U,M);N=N.concat(U,M);U=[]}else if(P){if(U.length!==0){q=true;J.value.push("");J.trail=U.concat()}J={value:[M],indent:x,trail:[]};j.push(J);N=N.concat(U,M);U=[]}else if(R){if(L&&!u){break}U.push(M)}else{if(L){break}if(o(A,g,n,[e,M,true])){break}J.value=J.value.concat(U,M);N=N.concat(U,M);U=[]}C=k+1}G=e(N.join(d)).reset({type:"list",ordered:F,start:w,spread:q,children:[]});z=n.enterList();X=n.enterBlock();C=-1;y=j.length;while(++C"},{no:"rfc",yes:"RFC"},{no:"v8",yes:"V8"}]],[t(387),"*"],[t(52),"padded"]]},function(e,r,t){"use strict";var i;var n;try{var a=i;n=t(142)}catch(e){if(typeof window!=="undefined")n=window.esprima}var u=t(400);function resolveJavascriptFunction(e){if(e===null)return false;try{var r="("+e+")",t=n.parse(r,{range:true});if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression"){return false}return true}catch(e){return false}}function constructJavascriptFunction(e){var r="("+e+")",t=n.parse(r,{range:true}),i=[],a;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression"){throw new Error("Failed to resolve function")}t.body[0].expression.params.forEach(function(e){i.push(e.name)});a=t.body[0].expression.body.range;if(t.body[0].expression.body.type==="BlockStatement"){return new Function(i,r.slice(a[0]+1,a[1]-1))}return new Function(i,"return "+r.slice(a[0],a[1]))}function representJavascriptFunction(e){return e.toString()}function isFunction(e){return Object.prototype.toString.call(e)==="[object Function]"}e.exports=new u("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:resolveJavascriptFunction,construct:constructJavascriptFunction,predicate:isFunction,represent:representJavascriptFunction})},function(e,r,t){r.alphasort=alphasort;r.alphasorti=alphasorti;r.setopts=setopts;r.ownProp=ownProp;r.makeAbs=makeAbs;r.finish=finish;r.mark=mark;r.isIgnored=isIgnored;r.childrenIgnored=childrenIgnored;function ownProp(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var i=t(589);var n=t(47);var a=t(877);var u=n.Minimatch;function alphasorti(e,r){return e.toLowerCase().localeCompare(r.toLowerCase())}function alphasort(e,r){return e.localeCompare(r)}function setupIgnores(e,r){e.ignore=r.ignore||[];if(!Array.isArray(e.ignore))e.ignore=[e.ignore];if(e.ignore.length){e.ignore=e.ignore.map(ignoreMap)}}function ignoreMap(e){var r=null;if(e.slice(-3)==="/**"){var t=e.replace(/(\/\*\*)+$/,"");r=new u(t,{dot:true})}return{matcher:new u(e,{dot:true}),gmatcher:r}}function setopts(e,r,t){if(!t)t={};if(t.matchBase&&-1===r.indexOf("/")){if(t.noglobstar){throw new Error("base matching requires globstar")}r="**/"+r}e.silent=!!t.silent;e.pattern=r;e.strict=t.strict!==false;e.realpath=!!t.realpath;e.realpathCache=t.realpathCache||Object.create(null);e.follow=!!t.follow;e.dot=!!t.dot;e.mark=!!t.mark;e.nodir=!!t.nodir;if(e.nodir)e.mark=true;e.sync=!!t.sync;e.nounique=!!t.nounique;e.nonull=!!t.nonull;e.nosort=!!t.nosort;e.nocase=!!t.nocase;e.stat=!!t.stat;e.noprocess=!!t.noprocess;e.absolute=!!t.absolute;e.maxLength=t.maxLength||Infinity;e.cache=t.cache||Object.create(null);e.statCache=t.statCache||Object.create(null);e.symlinks=t.symlinks||Object.create(null);setupIgnores(e,t);e.changedCwd=false;var n=process.cwd();if(!ownProp(t,"cwd"))e.cwd=n;else{e.cwd=i.resolve(t.cwd);e.changedCwd=e.cwd!==n}e.root=t.root||i.resolve(e.cwd,"/");e.root=i.resolve(e.root);if(process.platform==="win32")e.root=e.root.replace(/\\/g,"/");e.cwdAbs=a(e.cwd)?e.cwd:makeAbs(e,e.cwd);if(process.platform==="win32")e.cwdAbs=e.cwdAbs.replace(/\\/g,"/");e.nomount=!!t.nomount;t.nonegate=true;t.nocomment=true;e.minimatch=new u(r,t);e.options=e.minimatch.options}function finish(e){var r=e.nounique;var t=r?[]:Object.create(null);for(var i=0,n=e.matches.length;i=2){r.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}r.inspectOpts=Object.keys(process.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,r){var t=r.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,r){return r.toUpperCase()});var i=process.env[r];if(/^(yes|on|true|enabled)$/i.test(i)){i=true}else if(/^(no|off|false|disabled)$/i.test(i)){i=false}else if(i==="null"){i=null}else{i=Number(i)}e[t]=i;return e},{});function useColors(){return"colors"in r.inspectOpts?Boolean(r.inspectOpts.colors):i.isatty(process.stderr.fd)}function formatArgs(r){var t=this.namespace,i=this.useColors;if(i){var n=this.color;var a="[3"+(n<8?n:"8;5;"+n);var u=" ".concat(a,";1m").concat(t," ");r[0]=u+r[0].split("\n").join("\n"+u);r.push(a+"m+"+e.exports.humanize(this.diff)+"")}else{r[0]=getDate()+t+" "+r[0]}}function getDate(){if(r.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(){return process.stderr.write(n.format.apply(n,arguments)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};var t=Object.keys(r.inspectOpts);for(var i=0;i0?"add":"remove")+" "+Math.abs(h)+" "+n("space",h);r.message(p,s)}}}}},,,,function(e,r,t){"use strict";var i=t(446);var n=t(407);e.exports=toVFile;function toVFile(e){if(typeof e==="string"||i(e)){e={path:String(e)}}return n(e)}},,function(e){"use strict";e.exports=atxHeading;var r="\n";var t="\t";var i=" ";var n="#";var a=6;function atxHeading(e,u,s){var o=this;var f=o.options.pedantic;var l=u.length+1;var c=-1;var h=e.now();var p="";var v="";var d;var D;var m;while(++ca){return}if(!m||!f&&u.charAt(c+1)===n){return}l=u.length+1;D="";while(++c="a"&&e<="z"||e>="A"&&e<="Z"||e==="$"||e==="_"||n.ID_Start.test(e)}function isIdContinueChar(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||e==="$"||e==="_"||e==="‌"||e==="‍"||n.ID_Continue.test(e)}function isDigit(e){return/[0-9]/.test(e)}function isHexDigit(e){return/[0-9A-Fa-f]/.test(e)}},function(e){"use strict";e.exports=factory;var r="\\";function factory(e,t){return unescape;function unescape(i){var n=0;var a=i.indexOf(r);var u=e[t];var s=[];var o;while(a!==-1){s.push(i.slice(n,a));n=a+1;o=i.charAt(n);if(!o||u.indexOf(o)===-1){s.push(r)}a=i.indexOf(r,n+1)}s.push(i.slice(n));return s.join("")}}},,function(e,r,t){"use strict";var i=t(400);e.exports=new i("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})},,,,,,,,,,,function(e,r,t){var i=t(688);if(process.env.READABLE_STREAM==="disable"&&i){e.exports=i;r=e.exports=i.Readable;r.Readable=i.Readable;r.Writable=i.Writable;r.Duplex=i.Duplex;r.Transform=i.Transform;r.PassThrough=i.PassThrough;r.Stream=i}else{r=e.exports=t(454);r.Stream=i||r;r.Readable=r;r.Writable=t(57);r.Duplex=t(921);r.Transform=t(843);r.PassThrough=t(218)}},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:stringify");var n=t(356);var a=t(301);e.exports=stringify;function stringify(e,r){var t=e.processor;var u=e.tree;var s;if(n(r).fatal){i("Not compiling failed document");return}if(!e.output&&!e.out&&!e.alwaysStringify){i("Not compiling document without output settings");return}i("Compiling `%s`",r.path);if(e.inspect){if(r.path){r.extname=".txt"}s=a[e.color?"color":"noColor"](u)+"\n"}else if(e.treeOut){if(r.path){r.extname=".json"}s=JSON.stringify(u,null,2)+"\n"}else{s=t.stringify(u,r)}r.contents=s;i("Compiled document")}},,,function(e){"use strict";e.exports=text;function text(e,r){return this.encode(this.escape(e.value,e,r),e)}},,,function(e,r,t){"use strict";var i=t(646).hasBasic;var n=t(579);var a=t(475);var u=t(354);var s=t(356);e.exports=reporter;var o=process.platform==="win32";var f=o?{error:"×",warning:"‼"}:{error:"✖",warning:"⚠"};var l=/\s*$/;var c="";var h={open:"",close:""};var p={underline:{open:"",close:""},red:{open:"",close:""},yellow:{open:"",close:""},green:{open:"",close:""}};var v={underline:h,red:h,yellow:h,green:h};var d={true:"error",false:"warning",null:"info",undefined:"info"};function reporter(e,r){var t=r||{};var i;if(!e){return""}if("name"in e&&"message"in e){return String(e.stack||e)}if(!("length"in e)){i=true;e=[e]}return compile(parse(filter(e,t),t),i,t)}function filter(e,r){var t=[];var i=e.length;var n=-1;var a;if(!r.quiet&&!r.silent){return e.concat()}while(++n "+h.destination:""}if(!h.stats.total){D+=D?": ":"";if(h.stored){D+=m.yellow.open+"written"+m.yellow.close}else{D+="no issues found"}}if(D){c.push(D)}}else{g=m[h.label==="error"?"red":"yellow"];c.push(["",padLeft(h.location,e.location),padRight(g.open+h.label+g.close,e.label),padRight(h.reason,e.reason),padRight(h.ruleId,e.ruleId),h.source||""].join(" ").replace(l,""))}}if(a.fatal||a.warn){D=[];if(a.fatal){D.push([m.red.open+f.error+m.red.close,a.fatal,plural(d.true,a.fatal)].join(" "))}if(a.warn){D.push([m.yellow.open+f.warning+m.yellow.close,a.warn,plural(d.false,a.warn)].join(" "))}D=D.join(", ");if(a.total!==a.fatal&&a.total!==a.warn){D=a.total+" messages ("+D+")"}c.push("",D)}return c.join("\n")}function applicable(e,r){var t=e.messages;var i=t.length;var n=-1;var a=[];if(r.silent){while(++nr.length){try{return e.apply(u,r.concat(s))}catch(e){return s(e)}}return sync(e,s).apply(u,r)}return wrap}function sync(e,r){return function(){var t;try{t=e.apply(this,arguments)}catch(e){return r(e)}if(promise(t)){t.then(function(e){r(null,e)},r)}else{t instanceof Error?r(t):r(null,t)}}}function generator(e){return e&&e.constructor&&"GeneratorFunction"==e.constructor.name}function promise(e){return e&&"function"==typeof e.then}},,function(e,r,t){"use strict";var i=t(907);e.exports=imageReference;var n="[";var a="]";var u="!";function imageReference(e){return u+n+(this.encode(e.alt,e)||"")+a+i(e)}},,,function(e,r,t){"use strict";var i=t(398);var n=t(907);e.exports=linkReference;var a="[";var u="]";var s="shortcut";var o="collapsed";function linkReference(e){var r=this;var t=e.referenceType;var f=r.enterLinkReference(r,e);var l=r.all(e).join("");f();if(t===s||t===o){l=i(l,e.label||e.identifier)}return a+l+u+n(e)}},,,,,function(e,r,t){"use strict";var i=t(890);var n=true;try{n="inspect"in t(64)}catch(e){n=false}e.exports=n?inspect:noColor;inspect.color=inspect;noColor.color=inspect;inspect.noColor=noColor;noColor.noColor=noColor;var a=ansiColor(2,22);var u=ansiColor(33,39);var s=ansiColor(32,39);var o=new RegExp("(?:"+"(?:\\u001b\\[)|"+"\\u009b"+")"+"(?:"+"(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m]"+")|"+"\\u001b[A-M]","g");var f=["type","value","children","position"];function noColor(e,r){return stripColor(inspect(e,r))}function inspect(e,r){var t;var i;var n;var a;if(e&&Boolean(e.length)&&typeof e!=="string"){a=e.length;n=-1;t=[];while(++ni){r.message("Line must be at most "+i+" characters",{line:c+1,column:h+1})}}function inline(e,r,t){var n=t.children[r+1];var a;var f;if(u(e)){return}a=s(e);f=o(e);if(a.column>i||f.column",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"}},,,function(e){"use strict";e.exports=markdownTable;var r=/\./;var t=/\.[^.]*$/;var i="l";var n="r";var a="c";var u=".";var s="";var o=[i,n,a,u,s];var f=3;var l=":";var c="-";var h="|";var p=" ";var v="\n";function markdownTable(e,t){var d=t||{};var D=d.delimiter;var m=d.start;var g=d.end;var E=d.align;var A=d.stringLength||lengthNoop;var C=0;var y=-1;var w=e.length;var x=[];var b;var F;var S;var B;var k;var O;var P;var T;var I;var M;var L;var R;E=E?E.concat():[];if(D===null||D===undefined){D=p+h+p}if(m===null||m===undefined){m=h+p}if(g===null||g===undefined){g=p+h}while(++yC){C=B.length}while(++Ox[O]){x[O]=P}}}if(typeof E==="string"){E=pad(C,E).split("")}O=-1;while(++Ox[O]){x[O]=T}}}y=-1;while(++yf?M:f}else{M=x[O]}b=E[O];I=b===n||b===s?c:l;I+=pad(M-2,c);I+=b!==i&&b!==s?l:c;F[O]=I}S.splice(1,0,F.join(D))}return m+S.join(g+v+m)+g}function stringify(e){return e===null||e===undefined?"":String(e)}function lengthNoop(e){return String(e).length}function pad(e,r){return new Array(e+1).join(r||p)}function dotindex(e){var r=t.exec(e);return r?r.index+1:e.length}},,,function(e,r,t){"use strict";var i=t(638);var n=t(770);e.exports=alphanumerical;function alphanumerical(e){return i(e)||n(e)}},function(e){"use strict";e.exports=identity;function identity(e){return e}},,,,function(e){"use strict";e.exports=html;function html(e){return e.value}},,,,function(e){"use strict";e.exports=locate;var r=["https://","http://","mailto:"];function locate(e,t){var i=r.length;var n=-1;var a=-1;var u;if(!this.options.gfm){return-1}while(++n=0){r=r.slice(1)}if(r===".inf"){return t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY}else if(r===".nan"){return NaN}else if(r.indexOf(":")>=0){r.split(":").forEach(function(e){n.unshift(parseFloat(e,10))});r=0;i=1;n.forEach(function(e){r+=e*i;i*=60});return t*r}return t*parseFloat(r,10)}var u=/^[-+]?[0-9]+e/;function representYamlFloat(e,r){var t;if(isNaN(e)){switch(r){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}}else if(Number.POSITIVE_INFINITY===e){switch(r){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}}else if(Number.NEGATIVE_INFINITY===e){switch(r){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}}else if(i.isNegativeZero(e)){return"-0.0"}t=e.toString(10);return u.test(t)?t.replace("e",".e"):t}function isFloat(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||i.isNegativeZero(e))}e.exports=new n("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"})},,,,,,function(e,r,t){var i=t(792);var n=Object.create(null);var a=t(795);e.exports=i(inflight);function inflight(e,r){if(n[e]){n[e].push(r);return null}else{n[e]=[r];return makeres(e)}}function makeres(e){return a(function RES(){var r=n[e];var t=r.length;var i=slice(arguments);try{for(var a=0;at){r.splice(0,t);process.nextTick(function(){RES.apply(null,i)})}else{delete n[e]}}})}function slice(e){var r=e.length;var t=[];for(var i=0;i=e.length){if(r)r[u]=e;return t(null,e)}o.lastIndex=c;var i=o.exec(e);v=h;h+=i[0];p=v+i[1];c=o.lastIndex;if(l[p]||r&&r[p]===p){return process.nextTick(LOOP)}if(r&&Object.prototype.hasOwnProperty.call(r,p)){return gotResolvedLink(r[p])}return a.lstat(p,gotStat)}function gotStat(e,i){if(e)return t(e);if(!i.isSymbolicLink()){l[p]=true;if(r)r[p]=p;return process.nextTick(LOOP)}if(!n){var u=i.dev.toString(32)+":"+i.ino.toString(32);if(s.hasOwnProperty(u)){return gotTarget(null,s[u],p)}}a.stat(p,function(e){if(e)return t(e);a.readlink(p,function(e,r){if(!n)s[u]=r;gotTarget(e,r)})})}function gotTarget(e,n,a){if(e)return t(e);var u=i.resolve(v,n);if(r)r[a]=u;gotResolvedLink(u)}function gotResolvedLink(r){e=i.resolve(r,e.slice(c));start()}}},,,function(e,r,t){"use strict";var i=t(100);var n=t(903);var a=t(998);var u=t(220);var s=t(97);e.exports=i("remark-lint:checkbox-character-style",checkboxCharacterStyle);var o=u.start;var f=u.end;var l={x:true,X:true};var c={" ":true,"\t":true};var h={true:"checked",false:"unchecked"};function checkboxCharacterStyle(e,r,t){var i=String(r);var u=n(r);t=typeof t==="object"?t:{};if(t.unchecked&&c[t.unchecked]!==true){r.fail("Invalid unchecked checkbox marker `"+t.unchecked+"`: use either `'\\t'`, or `' '`")}if(t.checked&&l[t.checked]!==true){r.fail("Invalid checked checkbox marker `"+t.checked+"`: use either `'x'`, or `'X'`")}a(e,"listItem",visitor);function visitor(e){var n;var a;var l;var c;var p;var v;var d;if(typeof e.checked!=="boolean"||s(e)){return}n=h[e.checked];a=o(e).offset;l=(e.children.length?o(e.children[0]):f(e)).offset;c=i.slice(a,l).trimRight().slice(0,-1);v=c.charAt(c.length-1);p=t[n];if(p){if(v!==p){d=n.charAt(0).toUpperCase()+n.slice(1)+" checkboxes should use `"+p+"` as a marker";r.message(d,{start:u.toPosition(a+c.length-1),end:u.toPosition(a+c.length)})}}else{t[n]=v}}}},function(e,r,t){"use strict";var i=t(475);e.exports=VMessage;function VMessagePrototype(){}VMessagePrototype.prototype=Error.prototype;VMessage.prototype=new VMessagePrototype;var n=VMessage.prototype;n.file="";n.name="";n.reason="";n.message="";n.stack="";n.fatal=null;n.column=null;n.line=null;function VMessage(e,r,t){var n;var a;var u;if(typeof r==="string"){t=r;r=null}n=parseOrigin(t);a=i(r)||"1:1";u={start:{line:null,column:null},end:{line:null,column:null}};if(r&&r.position){r=r.position}if(r){if(r.start){u=r;r=r.start}else{u.start=r}}if(e.stack){this.stack=e.stack;e=e.message}this.message=e;this.name=a;this.reason=e;this.line=r?r.line:null;this.column=r?r.column:null;this.location=u;this.source=n[0];this.ruleId=n[1]}function parseOrigin(e){var r=[null,null];var t;if(typeof e==="string"){t=e.indexOf(":");if(t===-1){r[1]=e}else{r[0]=e.slice(0,t);r[1]=e.slice(t+1)}}return r}},function(e){"use strict";var r="";var t;e.exports=repeat;function repeat(e,i){if(typeof e!=="string"){throw new TypeError("expected a string")}if(i===1)return e;if(i===2)return e+e;var n=e.length*i;if(t!==e||typeof t==="undefined"){t=e;r=""}else if(r.length>=n){return r.substr(0,n)}while(n>r.length&&i>1){if(i&1){r+=e}i>>=1;e+=e}r+=e;r=r.substr(0,n);return r}},,function(e){"use strict";e.exports=statistics;function statistics(e){var r={true:0,false:0,null:0};count(e);return{fatal:r.true,nonfatal:r.false+r.null,warn:r.false,info:r.null,total:r.true+r.false+r.null};function count(e){if(e){if(e[0]&&e[0].messages){countInAll(e)}else{countAll(e.messages||e)}}}function countInAll(e){var r=e.length;var t=-1;while(++tthis.maxLength)return false;if(!this.stat&&D(this.cache,r)){var n=this.cache[r];if(Array.isArray(n))n="DIR";if(!t||n==="DIR")return n;if(t&&n==="FILE")return false}var a;var u=this.statCache[r];if(!u){var s;try{s=i.lstatSync(r)}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR")){this.statCache[r]=false;return false}}if(s&&s.isSymbolicLink()){try{u=i.statSync(r)}catch(e){u=s}}else{u=s}}this.statCache[r]=u;var n=true;if(u)n=u.isDirectory()?"DIR":"FILE";this.cache[r]=this.cache[r]||n;if(t&&n==="FILE")return false;return n};GlobSync.prototype._mark=function(e){return h.mark(this,e)};GlobSync.prototype._makeAbs=function(e){return h.makeAbs(this,e)}},,function(e){"use strict";var r=1;var t=2;function stripWithoutWhitespace(){return""}function stripWithWhitespace(e,r,t){return e.slice(r,t).replace(/\S/g," ")}e.exports=function(e,i){i=i||{};var n;var a;var u=false;var s=false;var o=0;var f="";var l=i.whitespace===false?stripWithoutWhitespace:stripWithWhitespace;for(var c=0;c>0},ToUint32:function(e){return e>>>0}}}();var u=Math.LN2,s=Math.abs,o=Math.floor,f=Math.log,l=Math.min,c=Math.pow,h=Math.round;function configureProperties(e){if(v&&p){var r=v(e),t;for(t=0;tn)throw new RangeError("Array too large for polyfill");function makeArrayAccessor(r){p(e,r,{get:function(){return e._getter(r)},set:function(t){e._setter(r,t)},enumerable:true,configurable:false})}var r;for(r=0;r>t}function as_unsigned(e,r){var t=32-r;return e<>>t}function packI8(e){return[e&255]}function unpackI8(e){return as_signed(e[0],8)}function packU8(e){return[e&255]}function unpackU8(e){return as_unsigned(e[0],8)}function packU8Clamped(e){e=h(Number(e));return[e<0?0:e>255?255:e&255]}function packI16(e){return[e>>8&255,e&255]}function unpackI16(e){return as_signed(e[0]<<8|e[1],16)}function packU16(e){return[e>>8&255,e&255]}function unpackU16(e){return as_unsigned(e[0]<<8|e[1],16)}function packI32(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}function unpackI32(e){return as_signed(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function packU32(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}function unpackU32(e){return as_unsigned(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function packIEEE754(e,r,t){var i=(1<.5)return r+1;return r%2?r+1:r}if(e!==e){a=(1<=c(2,1-i)){a=l(o(f(e)/u),1023);h=roundToEven(e/c(2,a)*c(2,t));if(h/c(2,t)>=2){a=a+1;h=1}if(a>i){a=(1<>1}}i.reverse();s=i.join("");o=(1<0){return f*c(2,l-o)*(1+h/c(2,t))}else if(h!==0){return f*c(2,-(o-1))*(h/c(2,t))}else{return f<0?-0:0}}function unpackF64(e){return unpackIEEE754(e,11,52)}function packF64(e){return packIEEE754(e,11,52)}function unpackF32(e){return unpackIEEE754(e,8,23)}function packF32(e){return packIEEE754(e,8,23)}(function(){var e=function ArrayBuffer(e){e=a.ToInt32(e);if(e<0)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=e;this._bytes=[];this._bytes.length=e;var r;for(r=0;rthis.buffer.byteLength){throw new RangeError("byteOffset out of range")}if(this.byteOffset%this.BYTES_PER_ELEMENT){throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.")}if(arguments.length<3){this.byteLength=this.buffer.byteLength-this.byteOffset;if(this.byteLength%this.BYTES_PER_ELEMENT){throw new RangeError("length of buffer minus byteOffset not a multiple of the element size")}this.length=this.byteLength/this.BYTES_PER_ELEMENT}else{this.length=a.ToUint32(i);this.byteLength=this.length*this.BYTES_PER_ELEMENT}if(this.byteOffset+this.byteLength>this.buffer.byteLength){throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}}else{throw new TypeError("Unexpected argument type(s)")}this.constructor=s;configureProperties(this);makeArrayAccessors(this)};s.prototype=new r;s.prototype.BYTES_PER_ELEMENT=t;s.prototype._pack=n;s.prototype._unpack=u;s.BYTES_PER_ELEMENT=t;s.prototype._getter=function(e){if(arguments.length<1)throw new SyntaxError("Not enough arguments");e=a.ToUint32(e);if(e>=this.length){return i}var r=[],t,n;for(t=0,n=this.byteOffset+e*this.BYTES_PER_ELEMENT;t=this.length){return i}var t=this._pack(r),n,u;for(n=0,u=this.byteOffset+e*this.BYTES_PER_ELEMENT;nthis.length){throw new RangeError("Offset plus length of array is out of range")}l=this.byteOffset+n*this.BYTES_PER_ELEMENT;c=t.length*this.BYTES_PER_ELEMENT;if(t.buffer===this.buffer){h=[];for(s=0,o=t.byteOffset;sthis.length){throw new RangeError("Offset plus length of array is out of range")}for(s=0;st?t:e}e=a.ToInt32(e);r=a.ToInt32(r);if(arguments.length<1){e=0}if(arguments.length<2){r=this.length}if(e<0){e=this.length+e}if(r<0){r=this.length+r}e=clamp(e,0,this.length);r=clamp(r,0,this.length);var t=r-e;if(t<0){t=0}return new this.constructor(this.buffer,this.byteOffset+e*this.BYTES_PER_ELEMENT,t)};return s}var n=makeConstructor(1,packI8,unpackI8);var u=makeConstructor(1,packU8,unpackU8);var s=makeConstructor(1,packU8Clamped,unpackU8);var o=makeConstructor(2,packI16,unpackI16);var f=makeConstructor(2,packU16,unpackU16);var l=makeConstructor(4,packI32,unpackI32);var c=makeConstructor(4,packU32,unpackU32);var h=makeConstructor(4,packF32,unpackF32);var p=makeConstructor(8,packF64,unpackF64);t.Int8Array=t.Int8Array||n;t.Uint8Array=t.Uint8Array||u;t.Uint8ClampedArray=t.Uint8ClampedArray||s;t.Int16Array=t.Int16Array||o;t.Uint16Array=t.Uint16Array||f;t.Int32Array=t.Int32Array||l;t.Uint32Array=t.Uint32Array||c;t.Float32Array=t.Float32Array||h;t.Float64Array=t.Float64Array||p})();(function(){function r(e,r){return a.IsCallable(e.get)?e.get(r):e[r]}var e=function(){var e=new t.Uint16Array([4660]),i=new t.Uint8Array(e.buffer);return r(i,0)===18}();var i=function DataView(e,r,i){if(arguments.length===0){e=new t.ArrayBuffer(0)}else if(!(e instanceof t.ArrayBuffer||a.Class(e)==="ArrayBuffer")){throw new TypeError("TypeError")}this.buffer=e||new t.ArrayBuffer(0);this.byteOffset=a.ToUint32(r);if(this.byteOffset>this.buffer.byteLength){throw new RangeError("byteOffset out of range")}if(arguments.length<3){this.byteLength=this.buffer.byteLength-this.byteOffset}else{this.byteLength=a.ToUint32(i)}if(this.byteOffset+this.byteLength>this.buffer.byteLength){throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}configureProperties(this)};function makeGetter(i){return function(n,u){n=a.ToUint32(n);if(n+i.BYTES_PER_ELEMENT>this.byteLength){throw new RangeError("Array index out of range")}n+=this.byteOffset;var s=new t.Uint8Array(this.buffer,n,i.BYTES_PER_ELEMENT),o=[],f;for(f=0;fthis.byteLength){throw new RangeError("Array index out of range")}var o=new i([u]),f=new t.Uint8Array(o.buffer),l=[],c,h;for(c=0;c0){t=Math.min(10,Math.floor(t));f=" ".substr(0,t)}}else if(typeof t==="string"){f=t.substr(0,10)}return serializeProperty("",{"":e});function serializeProperty(e,r){var t=r[e];if(t!=null){if(typeof t.toJSON5==="function"){t=t.toJSON5(e)}else if(typeof t.toJSON==="function"){t=t.toJSON(e)}}if(o){t=o.call(r,e,t)}if(t instanceof Number){t=Number(t)}else if(t instanceof String){t=String(t)}else if(t instanceof Boolean){t=t.valueOf()}switch(t){case null:return"null";case true:return"true";case false:return"false"}if(typeof t==="string"){return quoteString(t,false)}if(typeof t==="number"){return String(t)}if((typeof t==="undefined"?"undefined":i(t))==="object"){return Array.isArray(t)?serializeArray(t):serializeObject(t)}return undefined}function quoteString(e){var r={"'":.1,'"':.2};var t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};var i="";var n=true;var a=false;var u=undefined;try{for(var s=e[Symbol.iterator](),o;!(n=(o=s.next()).done);n=true){var f=o.value;switch(f){case"'":case'"':r[f]++;i+=f;continue}if(t[f]){i+=t[f];continue}if(f<" "){var c=f.charCodeAt(0).toString(16);i+="\\x"+("00"+c).substring(c.length);continue}i+=f}}catch(e){a=true;u=e}finally{try{if(!n&&s.return){s.return()}}finally{if(a){throw u}}}var h=l||Object.keys(r).reduce(function(e,t){return r[e]=0){throw TypeError("Converting circular structure to JSON5")}n.push(e);var r=u;u=u+f;var t=s||Object.keys(e);var i=[];var a=true;var o=false;var l=undefined;try{for(var c=t[Symbol.iterator](),h;!(a=(h=c.next()).done);a=true){var p=h.value;var v=serializeProperty(p,e);if(v!==undefined){var d=serializeKey(p)+":";if(f!==""){d+=" "}d+=v;i.push(d)}}}catch(e){o=true;l=e}finally{try{if(!a&&c.return){c.return()}}finally{if(o){throw l}}}var D=void 0;if(i.length===0){D="{}"}else{var m=void 0;if(f===""){m=i.join(",");D="{"+m+"}"}else{var g=",\n"+u;m=i.join(g);D="{\n"+u+m+",\n"+r+"}"}}n.pop();u=r;return D}function serializeKey(e){if(e.length===0){return quoteString(e,true)}var r=String.fromCodePoint(e.codePointAt(0));if(!a.isIdStartChar(r)){return quoteString(e,true)}for(var t=r.length;t=0){throw TypeError("Converting circular structure to JSON5")}n.push(e);var r=u;u=u+f;var t=[];for(var i=0;i=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},,,,function(e,r,t){"use strict";var i=t(136)("unified-engine:file-set-pipeline:stdin");var n=t(333);var a=t(992);e.exports=stdin;function stdin(e,r,t){var u=r.streamIn;var s;if(r.files&&r.files.length!==0){i("Ignoring `streamIn`");if(r.filePath){s=new Error("Do not pass both `--file-path` and real files.\n"+"Did you mean to pass stdin instead of files?")}t(s);return}if(u.isTTY){i("Cannot read from `tty` stream");t(new Error("No input"));return}i("Reading from `streamIn`");u.pipe(a({encoding:"string"},read));function read(a){var u=n(r.filePath||undefined);i("Read from `streamIn`");u.cwd=r.cwd;u.contents=a;u.data.unifiedEngineGiven=true;u.data.unifiedEngineStreamIn=true;e.files=[u];r.out=r.out===null||r.out===undefined?true:r.out;t()}}},,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:strong-marker",strongMarker);var s={"*":true,_:true,null:true};function strongMarker(e,r,t){var i=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(s[t]!==true){r.fail("Invalid strong marker `"+t+"`: use either `'consistent'`, `'*'`, or `'_'`")}n(e,"strong",visitor);function visitor(e){var n=i.charAt(a.start(e).offset);if(!u(e)){if(t){if(n!==t){r.message("Strong should use `"+t+"` as a marker",e)}}else{t=n}}}}},,function(e){"use strict";e.exports=style;function style(e,r){var t=e.children[e.children.length-1];var i=e.depth;var n=e&&e.position&&e.position.end;var a=t&&t.position&&t.position.end;if(!n){return null}if(!t){if(n.column-1<=i*2){return consolidate(i,r)}return"atx-closed"}if(a.line+1===n.line){return"setext"}if(a.column+i64)continue;if(r<0)return false;i+=6}return i%8===0}function constructYamlBinary(e){var r,t,i=e.replace(/[\r\n=]/g,""),a=i.length,u=s,o=0,f=[];for(r=0;r>16&255);f.push(o>>8&255);f.push(o&255)}o=o<<6|u.indexOf(i.charAt(r))}t=a%4*6;if(t===0){f.push(o>>16&255);f.push(o>>8&255);f.push(o&255)}else if(t===18){f.push(o>>10&255);f.push(o>>2&255)}else if(t===12){f.push(o>>4&255)}if(n){return n.from?n.from(f):new n(f)}return f}function representYamlBinary(e){var r="",t=0,i,n,a=e.length,u=s;for(i=0;i>18&63];r+=u[t>>12&63];r+=u[t>>6&63];r+=u[t&63]}t=(t<<8)+e[i]}n=a%3;if(n===0){r+=u[t>>18&63];r+=u[t>>12&63];r+=u[t>>6&63];r+=u[t&63]}else if(n===2){r+=u[t>>10&63];r+=u[t>>4&63];r+=u[t<<2&63];r+=u[64]}else if(n===1){r+=u[t>>2&63];r+=u[t<<4&63];r+=u[64];r+=u[64]}return r}function isBinary(e){return n&&n.isBuffer(e)}e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary})},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:code-block-style",codeBlockStyle);var s=a.start;var o=a.end;var f={null:true,fenced:true,indented:true};function codeBlockStyle(e,r,t){var i=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(f[t]!==true){r.fail("Invalid code block style `"+t+"`: use either `'consistent'`, `'fenced'`, or `'indented'`")}n(e,"code",visitor);function visitor(e){var i=check(e);if(i){if(!t){t=i}else if(t!==i){r.message("Code blocks should be "+t,e)}}}function check(e){var r=s(e).offset;var t=o(e).offset;if(u(e)){return null}return e.lang||/^\s*([~`])\1{2,}/.test(i.slice(r,t))?"fenced":"indented"}}},function(e){e.exports=require("assert")},,,function(e,r,t){"use strict";var i=t(688).PassThrough;var n=t(356);var a=t(145);e.exports=run;function run(e,r){var t={};var u=new i;var s;var o;var f;var l;var c;try{u=process.stdin}catch(e){}if(!r){throw new Error("Missing `callback`")}if(!e||!e.processor){return next(new Error("Missing `processor`"))}t.processor=e.processor;t.cwd=e.cwd||process.cwd();t.files=e.files||[];t.extensions=(e.extensions||[]).map(function(e){return e.charAt(0)==="."?e:"."+e});t.filePath=e.filePath||null;t.streamIn=e.streamIn||u;t.streamOut=e.streamOut||process.stdout;t.streamError=e.streamError||process.stderr;t.alwaysStringify=e.alwaysStringify;t.output=e.output;t.out=e.out;if(t.output===null||t.output===undefined){t.output=undefined}if(t.output&&t.out){return next(new Error("Cannot accept both `output` and `out`"))}s=e.tree||false;t.treeIn=e.treeIn;t.treeOut=e.treeOut;t.inspect=e.inspect;if(t.treeIn===null||t.treeIn===undefined){t.treeIn=s}if(t.treeOut===null||t.treeOut===undefined){t.treeOut=s}o=e.detectConfig;f=Boolean(e.rcName||e.packageField);if(o&&!f){return next(new Error("Missing `rcName` or `packageField` with `detectConfig`"))}t.detectConfig=o===null||o===undefined?f:o;t.rcName=e.rcName||null;t.rcPath=e.rcPath||null;t.packageField=e.packageField||null;t.settings=e.settings||{};t.configTransform=e.configTransform;t.defaultConfig=e.defaultConfig;l=e.detectIgnore;c=Boolean(e.ignoreName);t.detectIgnore=l===null||l===undefined?c:l;t.ignoreName=e.ignoreName||null;t.ignorePath=e.ignorePath||null;t.silentlyIgnore=Boolean(e.silentlyIgnore);if(l&&!c){return next(new Error("Missing `ignoreName` with `detectIgnore`"))}t.pluginPrefix=e.pluginPrefix||null;t.plugins=e.plugins||{};t.reporter=e.reporter||null;t.reporterOptions=e.reporterOptions||null;t.color=e.color||false;t.silent=e.silent||false;t.quiet=e.quiet||false;t.frail=e.frail||false;a.run({files:e.files||[]},t,next);function next(e,i){var a=n((i||{}).files);var u=Boolean(t.frail?a.fatal||a.warn:a.fatal);if(e){r(e)}else{r(null,u?1:0,i)}}}},function(e,r,t){"use strict";var i=t(100);e.exports=i("remark-lint:no-file-name-articles",noFileNameArticles);function noFileNameArticles(e,r){var t=r.stem&&r.stem.match(/^(the|teh|an?)\b/i);if(t){r.message("Do not start file names with `"+t[0]+"`")}}},function(e,r,t){"use strict";var i=t(980);e.exports=copy;var n="&";var a=/[-!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~_]/;function copy(e,r){var t=e.length;var u=r.length;var s=[];var o=0;var f=0;var l;while(f|$))/i;var f=/<\/(script|pre|style)>/i;var l=/^/;var h=/^<\?/;var p=/\?>/;var v=/^/;var D=/^/;var g=/^$/;var E=new RegExp(i.source+"\\s*$");function blockHtml(e,r,t){var i=this;var A=i.options.blocks.join("|");var C=new RegExp("^|$))","i");var y=r.length;var w=0;var x;var b;var F;var S;var B;var k;var O;var P=[[o,f,true],[l,c,true],[h,p,true],[v,d,true],[D,m,true],[C,g,true],[E,g,false]];while(w=b){b=0}}else if(E===v){g++;B+=r.charAt(g)}else if((!b||y)&&E===p){L++}else if((!b||y)&&E===d){if(L){L--}else{if(!A){while(g=s&&(!p||p===t)){h+=D;if(f){return true}return e(h)({type:"thematicBreak"})}else{return}}}},,,,,,function(e){e.exports=require("os")},,function(e,r,t){"use strict";var i=t(353);var n=t(844);e.exports=n;var a=n.prototype;a.message=message;a.info=info;a.fail=fail;a.warn=message;function message(e,r,t){var n=this.path;var a=new i(e,r,t);if(n){a.name=n+":"+a.name;a.file=n}a.fatal=false;this.messages.push(a);return a}function fail(){var e=this.message.apply(this,arguments);e.fatal=true;throw e}function info(){var e=this.message.apply(this,arguments);e.fatal=null;return e}},function(e,r,t){"use strict";const i=t(368);e.exports=((e,r,t)=>{if(typeof r==="number"){t=r}if(i.has(e.toLowerCase())){r=i.get(e.toLowerCase());const t=e.charAt(0);const n=t===t.toUpperCase();if(n){r=t.toUpperCase()+r.slice(1)}const a=e===e.toUpperCase();if(a){r=r.toUpperCase()}}else if(typeof r!=="string"){r=(e.replace(/(?:s|x|z|ch|sh)$/i,"$&e").replace(/([^aeiou])y$/i,"$1ie")+"s").replace(/i?e?s$/i,r=>{const t=e.slice(-1)===e.slice(-1).toLowerCase();return t?r.toLowerCase():r.toUpperCase()})}return Math.abs(t)===1?e:r})},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:parse");var n=t(356);var a=t(14);e.exports=parse;function parse(e,r){var t;if(n(r).fatal){return}if(e.treeIn){i("Not parsing already parsed document");try{e.tree=a(r.toString())}catch(e){t=r.message(new Error("Cannot read file as JSON\n"+e.message));t.fatal=true}if(r.path){r.extname=e.extensions[0]}r.contents="";return}i("Parsing `%s`",r.path);e.tree=e.processor.parse(r);i("Parsed document")}},,,,,function(e,r,t){"use strict";var i=t(315);e.exports=enter;function enter(e,r){var t=e.encode;var n=e.escape;var a=e.enterLink();if(r.referenceType!=="shortcut"&&r.referenceType!=="collapsed"){return a}e.escape=i;e.encode=i;return exit;function exit(){e.encode=t;e.escape=n;a()}}},,,function(e,r,t){e.exports=t(688)},,function(e,r,t){"use strict";var i=t(666);var n=t(775);var a=t(521);e.exports=parse;parse.Parser=a;function parse(e){var r=this.data("settings");var t=i(a);t.prototype.options=n(t.prototype.options,r,e);this.Parser=t}},function(e){e.exports=function(e){return e!=null&&(isBuffer(e)||isSlowBuffer(e)||!!e._isBuffer)};function isBuffer(e){return!!e.constructor&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)}function isSlowBuffer(e){return typeof e.readFloatLE==="function"&&typeof e.slice==="function"&&isBuffer(e.slice(0,0))}},function(e){e.exports=["md","markdown","mdown","mkdn","mkd","mdwn","mkdown","ron"]},,,,,,,function(e,r,t){"use strict";var i=t(8);e.exports=Readable;var n=t(479);var a;Readable.ReadableState=ReadableState;var u=t(485).EventEmitter;var s=function(e,r){return e.listeners(r).length};var o=t(443);var f=t(757).Buffer;var l=global.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return f.from(e)}function _isUint8Array(e){return f.isBuffer(e)||e instanceof l}var c=t(554);c.inherits=t(9);var h=t(64);var p=void 0;if(h&&h.debuglog){p=h.debuglog("stream")}else{p=function(){}}var v=t(23);var d=t(510);var D;c.inherits(Readable,o);var m=["error","close","destroy","pause","resume"];function prependListener(e,r,t){if(typeof e.prependListener==="function")return e.prependListener(r,t);if(!e._events||!e._events[r])e.on(r,t);else if(n(e._events[r]))e._events[r].unshift(t);else e._events[r]=[t,e._events[r]]}function ReadableState(e,r){a=a||t(921);e=e||{};var i=r instanceof a;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.readableObjectMode;var n=e.highWaterMark;var u=e.readableHighWaterMark;var s=this.objectMode?16:16*1024;if(n||n===0)this.highWaterMark=n;else if(i&&(u||u===0))this.highWaterMark=u;else this.highWaterMark=s;this.highWaterMark=Math.floor(this.highWaterMark);this.buffer=new v;this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.destroyed=false;this.defaultEncoding=e.defaultEncoding||"utf8";this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(e.encoding){if(!D)D=t(123).StringDecoder;this.decoder=new D(e.encoding);this.encoding=e.encoding}}function Readable(e){a=a||t(921);if(!(this instanceof Readable))return new Readable(e);this._readableState=new ReadableState(e,this);this.readable=true;if(e){if(typeof e.read==="function")this._read=e.read;if(typeof e.destroy==="function")this._destroy=e.destroy}o.call(this)}Object.defineProperty(Readable.prototype,"destroyed",{get:function(){if(this._readableState===undefined){return false}return this._readableState.destroyed},set:function(e){if(!this._readableState){return}this._readableState.destroyed=e}});Readable.prototype.destroy=d.destroy;Readable.prototype._undestroy=d.undestroy;Readable.prototype._destroy=function(e,r){this.push(null);r(e)};Readable.prototype.push=function(e,r){var t=this._readableState;var i;if(!t.objectMode){if(typeof e==="string"){r=r||t.defaultEncoding;if(r!==t.encoding){e=f.from(e,r);r=""}i=true}}else{i=true}return readableAddChunk(this,e,r,false,i)};Readable.prototype.unshift=function(e){return readableAddChunk(this,e,null,true,false)};function readableAddChunk(e,r,t,i,n){var a=e._readableState;if(r===null){a.reading=false;onEofChunk(e,a)}else{var u;if(!n)u=chunkInvalid(a,r);if(u){e.emit("error",u)}else if(a.objectMode||r&&r.length>0){if(typeof r!=="string"&&!a.objectMode&&Object.getPrototypeOf(r)!==f.prototype){r=_uint8ArrayToBuffer(r)}if(i){if(a.endEmitted)e.emit("error",new Error("stream.unshift() after end event"));else addChunk(e,a,r,true)}else if(a.ended){e.emit("error",new Error("stream.push() after EOF"))}else{a.reading=false;if(a.decoder&&!t){r=a.decoder.write(r);if(a.objectMode||r.length!==0)addChunk(e,a,r,false);else maybeReadMore(e,a)}else{addChunk(e,a,r,false)}}}else if(!i){a.reading=false}}return needMoreData(a)}function addChunk(e,r,t,i){if(r.flowing&&r.length===0&&!r.sync){e.emit("data",t);e.read(0)}else{r.length+=r.objectMode?1:t.length;if(i)r.buffer.unshift(t);else r.buffer.push(t);if(r.needReadable)emitReadable(e)}maybeReadMore(e,r)}function chunkInvalid(e,r){var t;if(!_isUint8Array(r)&&typeof r!=="string"&&r!==undefined&&!e.objectMode){t=new TypeError("Invalid non-string/buffer chunk")}return t}function needMoreData(e){return!e.ended&&(e.needReadable||e.length=g){e=g}else{e--;e|=e>>>1;e|=e>>>2;e|=e>>>4;e|=e>>>8;e|=e>>>16;e++}return e}function howMuchToRead(e,r){if(e<=0||r.length===0&&r.ended)return 0;if(r.objectMode)return 1;if(e!==e){if(r.flowing&&r.length)return r.buffer.head.data.length;else return r.length}if(e>r.highWaterMark)r.highWaterMark=computeNewHighWaterMark(e);if(e<=r.length)return e;if(!r.ended){r.needReadable=true;return 0}return r.length}Readable.prototype.read=function(e){p("read",e);e=parseInt(e,10);var r=this._readableState;var t=e;if(e!==0)r.emittedReadable=false;if(e===0&&r.needReadable&&(r.length>=r.highWaterMark||r.ended)){p("read: emitReadable",r.length,r.ended);if(r.length===0&&r.ended)endReadable(this);else emitReadable(this);return null}e=howMuchToRead(e,r);if(e===0&&r.ended){if(r.length===0)endReadable(this);return null}var i=r.needReadable;p("need readable",i);if(r.length===0||r.length-e0)n=fromList(e,r);else n=null;if(n===null){r.needReadable=true;e=0}else{r.length-=e}if(r.length===0){if(!r.ended)r.needReadable=true;if(t!==e&&r.ended)endReadable(this)}if(n!==null)this.emit("data",n);return n};function onEofChunk(e,r){if(r.ended)return;if(r.decoder){var t=r.decoder.end();if(t&&t.length){r.buffer.push(t);r.length+=r.objectMode?1:t.length}}r.ended=true;emitReadable(e)}function emitReadable(e){var r=e._readableState;r.needReadable=false;if(!r.emittedReadable){p("emitReadable",r.flowing);r.emittedReadable=true;if(r.sync)i.nextTick(emitReadable_,e);else emitReadable_(e)}}function emitReadable_(e){p("emit readable");e.emit("readable");flow(e)}function maybeReadMore(e,r){if(!r.readingMore){r.readingMore=true;i.nextTick(maybeReadMore_,e,r)}}function maybeReadMore_(e,r){var t=r.length;while(!r.reading&&!r.flowing&&!r.ended&&r.length1&&indexOf(n.pipes,e)!==-1)&&!f){p("false write response, pause",t._readableState.awaitDrain);t._readableState.awaitDrain++;l=true}t.pause()}}function onerror(r){p("onerror",r);unpipe();e.removeListener("error",onerror);if(s(e,"error")===0)e.emit("error",r)}prependListener(e,"error",onerror);function onclose(){e.removeListener("finish",onfinish);unpipe()}e.once("close",onclose);function onfinish(){p("onfinish");e.removeListener("close",onclose);unpipe()}e.once("finish",onfinish);function unpipe(){p("unpipe");t.unpipe(e)}e.emit("pipe",t);if(!n.flowing){p("pipe resume");t.resume()}return e};function pipeOnDrain(e){return function(){var r=e._readableState;p("pipeOnDrain",r.awaitDrain);if(r.awaitDrain)r.awaitDrain--;if(r.awaitDrain===0&&s(e,"data")){r.flowing=true;flow(e)}}}Readable.prototype.unpipe=function(e){var r=this._readableState;var t={hasUnpiped:false};if(r.pipesCount===0)return this;if(r.pipesCount===1){if(e&&e!==r.pipes)return this;if(!e)e=r.pipes;r.pipes=null;r.pipesCount=0;r.flowing=false;if(e)e.emit("unpipe",this,t);return this}if(!e){var i=r.pipes;var n=r.pipesCount;r.pipes=null;r.pipesCount=0;r.flowing=false;for(var a=0;a=r.length){if(r.decoder)t=r.buffer.join("");else if(r.buffer.length===1)t=r.buffer.head.data;else t=r.buffer.concat(r.length);r.buffer.clear()}else{t=fromListPartial(e,r.buffer,r.decoder)}return t}function fromListPartial(e,r,t){var i;if(ea.length?a.length:e;if(u===a.length)n+=a;else n+=a.slice(0,e);e-=u;if(e===0){if(u===a.length){++i;if(t.next)r.head=t.next;else r.head=r.tail=null}else{r.head=t;t.data=a.slice(u)}break}++i}r.length-=i;return n}function copyFromBuffer(e,r){var t=f.allocUnsafe(e);var i=r.head;var n=1;i.data.copy(t);e-=i.data.length;while(i=i.next){var a=i.data;var u=e>a.length?a.length:e;a.copy(t,t.length-e,0,u);e-=u;if(e===0){if(u===a.length){++n;if(i.next)r.head=i.next;else r.head=r.tail=null}else{r.head=i;i.data=a.slice(u)}break}++n}r.length-=n;return t}function endReadable(e){var r=e._readableState;if(r.length>0)throw new Error('"endReadable()" called on non-empty stream');if(!r.endEmitted){r.ended=true;i.nextTick(endReadableNT,r,e)}}function endReadableNT(e,r){if(!e.endEmitted&&e.length===0){e.endEmitted=true;r.readable=false;r.emit("end")}}function indexOf(e,r){for(var t=0,i=e.length;t=l){continue}y="";while(vi){r.message("Move definitions to the end of the file (after the node at line `"+t+"`)",e)}}else if(t===null){t=i}}}},,function(e){"use strict";var r={}.hasOwnProperty;e.exports=stringify;function stringify(e){if(!e||typeof e!=="object"){return null}if(r.call(e,"position")||r.call(e,"type")){return position(e.position)}if(r.call(e,"start")||r.call(e,"end")){return position(e)}if(r.call(e,"line")||r.call(e,"column")){return point(e)}return null}function point(e){if(!e||typeof e!=="object"){e={}}return index(e.line)+":"+index(e.column)}function position(e){if(!e||typeof e!=="object"){e={}}return point(e.start)+"-"+point(e.end)}function index(e){return e&&typeof e==="number"?e:1}},,,function(e,r,t){"use strict";var i=t(197);var n=t(520);var a=t(770);var u=t(981);var s=t(314);var o=t(787);e.exports=parseEntities;var f={}.hasOwnProperty;var l=String.fromCharCode;var c=Function.prototype;var h={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:false,nonTerminated:true};var p="named";var v="hexadecimal";var d="decimal";var D={};D[v]=16;D[d]=10;var m={};m[p]=s;m[d]=a;m[v]=u;var g=1;var E=2;var A=3;var C=4;var y=5;var w=6;var x=7;var b={};b[g]="Named character references must be terminated by a semicolon";b[E]="Numeric character references must be terminated by a semicolon";b[A]="Named character references cannot be empty";b[C]="Numeric character references cannot be empty";b[y]="Named character references must be known";b[w]="Numeric character references cannot be disallowed";b[x]="Numeric character references cannot be outside the permissible Unicode range";function parseEntities(e,r){var t={};var i;var n;if(!r){r={}}for(n in h){i=r[n];t[n]=i===null||i===undefined?h[n]:i}if(t.position.indent||t.position.start){t.indent=t.position.indent||[];t.position=t.position.start}return parse(e,t)}function parse(e,r){var t=r.additional;var a=r.nonTerminated;var u=r.text;var h=r.reference;var F=r.warning;var S=r.textContext;var B=r.referenceContext;var k=r.warningContext;var O=r.position;var P=r.indent||[];var T=e.length;var I=0;var M=-1;var L=O.column||1;var R=O.line||1;var j="";var N=[];var U;var J;var z;var X;var q;var G;var _;var W;var V;var H;var Y;var $;var Z;var Q;var K;var ee;var re;var te;var ie;ee=now();W=F?parseError:c;I--;T++;while(++I65535){G-=65536;H+=l(G>>>(10&1023)|55296);G=56320|G&1023}G=H+l(G)}}if(!G){X=e.slice(Z-1,ie);j+=X;L+=X.length;I=ie-1}else{flush();ee=now();I=ie-1;L+=ie-Z+1;N.push(G);re=now();re.offset++;if(h){h.call(B,G,{start:ee,end:re},e.slice(Z-1,ie))}ee=re}}}return N.join("");function now(){return{line:R,column:L,offset:I+(O.offset||0)}}function parseError(e,r){var t=now();t.column+=r;t.offset+=r;F.call(k,b[e],t,e)}function at(r){return e.charAt(r)}function flush(){if(j){N.push(j);if(u){u.call(S,j,{start:ee,end:now()})}j=""}}}function prohibited(e){return e>=55296&&e<=57343||e>1114111}function disallowed(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}},function(e){var r={}.toString;e.exports=Array.isArray||function(e){return r.call(e)=="[object Array]"}},,function(e,r,t){"use strict";var i=t(758);var n=t(198);e.exports=definition;definition.notInList=true;definition.notInBlock=true;var a='"';var u="'";var s="\\";var o="\n";var f="\t";var l=" ";var c="[";var h="]";var p="(";var v=")";var d=":";var D="<";var m=">";function definition(e,r,t){var i=this;var m=i.options.commonmark;var g=0;var E=r.length;var A="";var C;var y;var w;var x;var b;var F;var S;var B;while(g (https://wooorm.com)",contributors:["Titus Wormer (https://wooorm.com)"],files:["index.js"],dependencies:{"remark-parse":"^6.0.0","remark-stringify":"^6.0.0",unified:"^7.0.0"},devDependencies:{tape:"^4.9.1"},scripts:{test:"tape test.js"},xo:false,_resolved:"https://registry.npmjs.org/remark/-/remark-10.0.1.tgz",_integrity:"sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==",_from:"remark@10.0.1"}},function(e){e.exports=require("events")},function(e,r,t){"use strict";e=t.nmd(e);var i=t(589);var n=t(778);var a=t(934);var u=t(14);var s=t(136)("unified-engine:configuration");var o=t(507).resolve;var f=t(693);var l=t(775);var c=t(555);var h=t(413);var p=t(817);var v=t(329);e.exports=Config;var d={}.hasOwnProperty;var D=i.extname;var m=i.basename;var g=i.dirname;var E=i.relative;var A={".json":loadJSON,".js":loadScript,".yaml":loadYAML,".yml":loadYAML};var C=loadJSON;Config.prototype.load=load;function Config(e){var r=e.rcName;var t=e.packageField;var i=[];this.cwd=e.cwd;this.packageField=e.packageField;this.pluginPrefix=e.pluginPrefix;this.configTransform=e.configTransform;this.defaultConfig=e.defaultConfig;if(r){i.push(r,r+".js",r+".yml",r+".yaml");s("Looking for `%s` configuration files",i)}if(t){i.push("package.json");s("Looking for `%s` fields in `package.json` files",t)}this.given={settings:e.settings,plugins:e.plugins};this.create=create.bind(this);this.findUp=new v({filePath:e.rcPath,cwd:e.cwd,detect:e.detectConfig,names:i,create:this.create})}function load(e,r){var t=e||i.resolve(this.cwd,"stdin.js");var n=this;n.findUp.load(t,done);function done(e,t){if(e||t){return r(e,t)}r(null,n.create())}}function create(e,r){var t=this;var i=t.configTransform;var n=t.defaultConfig;var a=r&&A[D(r)]||C;var u={prefix:t.pluginPrefix,cwd:t.cwd};var s={settings:{},plugins:[]};var o=e?a.apply(t,arguments):undefined;if(i&&o!==undefined){o=i(o,r)}if(e&&o===undefined&&m(r)==="package.json"){return}if(o===undefined){if(n){merge(s,n,null,l(u,{root:t.cwd}))}}else{merge(s,o,null,l(u,{root:g(r)}))}merge(s,t.given,null,l(u,{root:t.cwd}));return s}function loadScript(r,t){var i=n._cache[t];if(!i){i=new n(t,e);i.filename=t;i.paths=n._nodeModulePaths(g(t));i._compile(String(r),t);i.loaded=true;n._cache[t]=i}return i.exports}function loadYAML(e,r){return a.safeLoad(e,{filename:m(r)})}function loadJSON(e,r){var t=u(e,r);if(m(r)==="package.json"){t=t[this.packageField]}return t}function merge(e,r,t,n){var a=n.root;var u=n.cwd;var s=n.prefix;if(c(r)){addPreset(r)}else{throw new Error("Expected preset, not `"+r+"`")}return e;function addPreset(r){var t=r.plugins;if(t===null||t===undefined){}else if(c(t)){if("length"in t){addEach(t)}else{addIn(t)}}else{throw new Error("Expected a list or object of plugins, not `"+t+"`")}e.settings=l(e.settings,r.settings)}function addEach(e){var r=e.length;var t=-1;var i;while(++t0?"Add":"Remove")+" "+Math.abs(i)+" "+n("space",i)+" between blockquote and content";r.message(a,u.start(e.children[0]))}}else{t=check(e)}}}function check(e){var r=e.children[0];var t=u.start(r).column-u.start(e).column;var i=o(r).match(/^ +/);if(i){t+=i[0].length}return t}},function(e,r,t){"use strict";var i=t(758);var n=t(478);var a=t(773);e.exports=autoLink;autoLink.locator=a;autoLink.notInLink=true;var u="<";var s=">";var o="@";var f="/";var l="mailto:";var c=l.length;function autoLink(e,r,t){var a=this;var h="";var p=r.length;var v=0;var d="";var D=false;var m="";var g;var E;var A;var C;var y;if(r.charAt(0)!==u){return}v++;h=u;while(v0){var t=peek();if(!a.isHexDigit(t)){throw invalidChar(read())}e+=read()}return String.fromCodePoint(parseInt(e,16))}var C={start:function start(){if(h.type==="eof"){throw invalidEOF()}push()},beforePropertyName:function beforePropertyName(){switch(h.type){case"identifier":case"string":p=h.value;s="afterPropertyName";return;case"punctuator":pop();return;case"eof":throw invalidEOF()}},afterPropertyName:function afterPropertyName(){if(h.type==="eof"){throw invalidEOF()}s="beforePropertyValue"},beforePropertyValue:function beforePropertyValue(){if(h.type==="eof"){throw invalidEOF()}push()},beforeArrayValue:function beforeArrayValue(){if(h.type==="eof"){throw invalidEOF()}if(h.type==="punctuator"&&h.value==="]"){pop();return}push()},afterPropertyValue:function afterPropertyValue(){if(h.type==="eof"){throw invalidEOF()}switch(h.value){case",":s="beforePropertyName";return;case"}":pop()}},afterArrayValue:function afterArrayValue(){if(h.type==="eof"){throw invalidEOF()}switch(h.value){case",":s="beforeArrayValue";return;case"]":pop()}},end:function end(){}};function push(){var e=void 0;switch(h.type){case"punctuator":switch(h.value){case"{":e={};break;case"[":e=[];break}break;case"null":case"boolean":case"numeric":case"string":e=h.value;break}if(v===undefined){v=e}else{var r=o[o.length-1];if(Array.isArray(r)){r.push(e)}else{r[p]=e}}if(e!==null&&(typeof e==="undefined"?"undefined":i(e))==="object"){o.push(e);if(Array.isArray(e)){s="beforeArrayValue"}else{s="beforePropertyName"}}else{var t=o[o.length-1];if(t==null){s="end"}else if(Array.isArray(t)){s="afterArrayValue"}else{s="afterPropertyValue"}}}function pop(){o.pop();var e=o[o.length-1];if(e==null){s="end"}else if(Array.isArray(e)){s="afterArrayValue"}else{s="afterPropertyValue"}}function invalidChar(e){if(e===undefined){return syntaxError("JSON5: invalid end of input at "+l+":"+c)}return syntaxError("JSON5: invalid character '"+formatChar(e)+"' at "+l+":"+c)}function invalidEOF(){return syntaxError("JSON5: invalid end of input at "+l+":"+c)}function invalidIdentifier(){c-=5;return syntaxError("JSON5: invalid identifier character at "+l+":"+c)}function separatorChar(e){console.warn("JSON5: '"+e+"' is not valid ECMAScript; consider escaping")}function formatChar(e){var r={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(r[e]){return r[e]}if(e<" "){var t=e.charCodeAt(0).toString(16);return"\\x"+("00"+t).substring(t.length)}return e}function syntaxError(e){var r=new SyntaxError(e);r.lineNumber=l;r.columnNumber=c;return r}e.exports=r["default"]},function(e,r,t){"use strict";var i=t(66);var n=t(589);var a=t(151).silent;var u=t(342)();e.exports=loadPlugin;loadPlugin.resolve=resolvePlugin;var s=process.versions.electron!==undefined;var o=process.argv[1]||"";var f=process.env.NVM_BIN;var l=s||o.indexOf(u)===0;var c=process.platform==="win32";var h=c?"":"lib";var p=n.resolve(u,h,"node_modules");if(s&&f&&!i.existsSync(p)){p=n.resolve(f,"..",h,"node_modules")}function loadPlugin(e,r){return t(73)(resolvePlugin(e,r)||e)}function resolvePlugin(e,r){var t=r||{};var i=t.prefix;var n=t.cwd;var u;var s;var o;var f;var c;var h;var v="";if(n&&typeof n==="object"){s=n.concat()}else{s=[n||process.cwd()]}if(e.charAt(0)!=="."){if(t.global==null?l:t.global){s.push(p)}if(i){i=i.charAt(i.length-1)==="-"?i:i+"-";if(e.charAt(0)==="@"){h=e.indexOf("/");if(h!==-1){v=e.slice(0,h+1);e=e.slice(h+1)}}if(e.slice(0,i.length)!==i){c=v+i+e}e=v+e}}o=s.length;f=-1;while(++f2)t=r.call(arguments,1);if(e){try{i=a.throw(e)}catch(e){return exit(e)}}if(!e){try{i=a.next(t)}catch(e){return exit(e)}}if(i.done)return exit(null,i.value);i.value=toThunk(i.value,n);if("function"==typeof i.value){var u=false;try{i.value.call(n,function(){if(u)return;u=true;next.apply(n,arguments)})}catch(e){setImmediate(function(){if(u)return;u=true;next(e)})}return}next(new TypeError("You may only yield a function, promise, generator, array, or object, "+'but the following was passed: "'+String(i.value)+'"'))}}}function toThunk(e,r){if(isGeneratorFunction(e)){return co(e.call(r))}if(isGenerator(e)){return co(e)}if(isPromise(e)){return promiseToThunk(e)}if("function"==typeof e){return e}if(isObject(e)||Array.isArray(e)){return objectToThunk.call(r,e)}return e}function objectToThunk(e){var r=this;var t=Array.isArray(e);return function(i){var n=Object.keys(e);var a=n.length;var u=t?new Array(a):new e.constructor;var s;if(!a){setImmediate(function(){i(null,u)});return}if(!t){for(var o=0;o-1&&t.charAt(i)!=="\n"){r.message("Missing newline character at end of file")}}},,function(e,r,t){"use strict";var i=t(775);var n=t(194);var a=t(508);var u=t(649);var s=t(315);e.exports=setOptions;var o={entities:{true:true,false:true,numbers:true,escape:true},bullet:{"*":true,"-":true,"+":true},rule:{"-":true,_:true,"*":true},listItemIndent:{tab:true,mixed:true,1:true},emphasis:{_:true,"*":true},strong:{_:true,"*":true},fence:{"`":true,"~":true}};var f={boolean:validateBoolean,string:validateString,number:validateNumber,function:validateFunction};function setOptions(e){var r=this;var t=r.options;var n;var s;if(e==null){e={}}else if(typeof e==="object"){e=i(e)}else{throw new Error("Invalid value `"+e+"` for setting `options`")}for(s in a){f[typeof a[s]](e,s,t[s],o[s])}n=e.ruleRepetition;if(n&&n<3){raise(n,"options.ruleRepetition")}r.encode=encodeFactory(String(e.entities));r.escape=u(e);r.options=e;return r}function validateBoolean(e,r,t){var i=e[r];if(i==null){i=t}if(typeof i!=="boolean"){raise(i,"options."+r)}e[r]=i}function validateNumber(e,r,t){var i=e[r];if(i==null){i=t}if(isNaN(i)){raise(i,"options."+r)}e[r]=i}function validateString(e,r,t,i){var n=e[r];if(n==null){n=t}n=String(n);if(!(n in i)){raise(n,"options."+r)}e[r]=n}function validateFunction(e,r,t){var i=e[r];if(i==null){i=t}if(typeof i!=="function"){raise(i,"options."+r)}e[r]=i}function encodeFactory(e){var r={};if(e==="false"){return s}if(e==="true"){r.useNamedReferences=true}if(e==="escape"){r.escapeOnly=true;r.useNamedReferences=true}return wrapped;function wrapped(e){return n(e,r)}}function raise(e,r){throw new Error("Invalid value `"+e+"` for setting `"+r+"`")}},,,,,,,,,function(e){"use strict";function isNothing(e){return typeof e==="undefined"||e===null}function isObject(e){return typeof e==="object"&&e!==null}function toArray(e){if(Array.isArray(e))return e;else if(isNothing(e))return[];return[e]}function extend(e,r){var t,i,n,a;if(r){a=Object.keys(r);for(t=0,i=a.length;t"},{long:"ignore-path",description:"specify ignore file",short:"i",type:"string",value:""},{long:"setting",description:"specify settings",short:"s",type:"string",value:""},{long:"ext",description:"specify extensions",short:"e",type:"string",value:""},{long:"use",description:"use plugins",short:"u",type:"string",value:""},{long:"watch",description:"watch for changes and reprocess",short:"w",type:"boolean",default:false},{long:"quiet",description:"output only warnings and errors",short:"q",type:"boolean",default:false},{long:"silent",description:"output only errors",short:"S",type:"boolean",default:false},{long:"frail",description:"exit with 1 on warnings",short:"f",type:"boolean",default:false},{long:"tree",description:"specify input and output as syntax tree",short:"t",type:"boolean",default:false},{long:"report",description:"specify reporter",type:"string",value:""},{long:"file-path",description:"specify path to process as",type:"string",value:""},{long:"tree-in",description:"specify input as syntax tree",type:"boolean"},{long:"tree-out",description:"output syntax tree",type:"boolean"},{long:"inspect",description:"output formatted syntax tree",type:"boolean"},{long:"stdout",description:"specify writing to stdout",type:"boolean",truelike:true},{long:"color",description:"specify color in report",type:"boolean",default:true},{long:"config",description:"search for configuration files",type:"boolean",default:true},{long:"ignore",description:"search for ignore files",type:"boolean",default:true}]},,function(e){"use strict";function YAMLException(e,r){Error.call(this);this.name="YAMLException";this.reason=e;this.mark=r;this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"");if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}else{this.stack=(new Error).stack||""}}YAMLException.prototype=Object.create(Error.prototype);YAMLException.prototype.constructor=YAMLException;YAMLException.prototype.toString=function toString(e){var r=this.name+": ";r+=this.reason||"(unknown reason)";if(!e&&this.mark){r+=" "+this.mark.toString()}return r};e.exports=YAMLException},,,,,,function(e,r){function isArray(e){if(Array.isArray){return Array.isArray(e)}return objectToString(e)==="[object Array]"}r.isArray=isArray;function isBoolean(e){return typeof e==="boolean"}r.isBoolean=isBoolean;function isNull(e){return e===null}r.isNull=isNull;function isNullOrUndefined(e){return e==null}r.isNullOrUndefined=isNullOrUndefined;function isNumber(e){return typeof e==="number"}r.isNumber=isNumber;function isString(e){return typeof e==="string"}r.isString=isString;function isSymbol(e){return typeof e==="symbol"}r.isSymbol=isSymbol;function isUndefined(e){return e===void 0}r.isUndefined=isUndefined;function isRegExp(e){return objectToString(e)==="[object RegExp]"}r.isRegExp=isRegExp;function isObject(e){return typeof e==="object"&&e!==null}r.isObject=isObject;function isDate(e){return objectToString(e)==="[object Date]"}r.isDate=isDate;function isError(e){return objectToString(e)==="[object Error]"||e instanceof Error}r.isError=isError;function isFunction(e){return typeof e==="function"}r.isFunction=isFunction;function isPrimitive(e){return e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"||typeof e==="symbol"||typeof e==="undefined"}r.isPrimitive=isPrimitive;r.isBuffer=Buffer.isBuffer;function objectToString(e){return Object.prototype.toString.call(e)}},function(e){"use strict";e.exports=function isObject(e){return typeof e==="object"&&e!==null}},,,,,,,,,,function(e,r,t){"use strict";var i=t(855);e.exports=compile;function compile(){return this.visit(i(this.tree,this.options.commonmark))}},,function(e,r,t){"use strict";var i=t(100);var n=t(97);var a=t(998);e.exports=i("remark-lint:no-unused-definitions",noUnusedDefinitions);var u="Found unused definition";function noUnusedDefinitions(e,r){var t={};var i;var s;a(e,["definition","footnoteDefinition"],find);a(e,["imageReference","linkReference","footnoteReference"],mark);for(i in t){s=t[i];if(!s.used){r.message(u,s.node)}}function find(e){if(!n(e)){t[e.identifier.toUpperCase()]={node:e,used:false}}}function mark(e){var r=t[e.identifier.toUpperCase()];if(!n(e)&&r){r.used=true}}}},,,function(e,r,t){"use strict";var i=t(544);var n=t(548);var a=t(908);var u=t(617);var s=t(501);var o=Object.prototype.hasOwnProperty;var f=1;var l=2;var c=3;var h=4;var p=1;var v=2;var d=3;var D=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;var m=/[\x85\u2028\u2029]/;var g=/[,\[\]\{\}]/;var E=/^(?:!|!!|![a-z\-]+!)$/i;var A=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function is_EOL(e){return e===10||e===13}function is_WHITE_SPACE(e){return e===9||e===32}function is_WS_OR_EOL(e){return e===9||e===32||e===10||e===13}function is_FLOW_INDICATOR(e){return e===44||e===91||e===93||e===123||e===125}function fromHexCode(e){var r;if(48<=e&&e<=57){return e-48}r=e|32;if(97<=r&&r<=102){return r-97+10}return-1}function escapedHexLen(e){if(e===120){return 2}if(e===117){return 4}if(e===85){return 8}return 0}function fromDecimalCode(e){if(48<=e&&e<=57){return e-48}return-1}function simpleEscapeSequence(e){return e===48?"\0":e===97?"":e===98?"\b":e===116?"\t":e===9?"\t":e===110?"\n":e===118?"\v":e===102?"\f":e===114?"\r":e===101?"":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"…":e===95?" ":e===76?"\u2028":e===80?"\u2029":""}function charFromCodepoint(e){if(e<=65535){return String.fromCharCode(e)}return String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var C=new Array(256);var y=new Array(256);for(var w=0;w<256;w++){C[w]=simpleEscapeSequence(w)?1:0;y[w]=simpleEscapeSequence(w)}function State(e,r){this.input=e;this.filename=r["filename"]||null;this.schema=r["schema"]||s;this.onWarning=r["onWarning"]||null;this.legacy=r["legacy"]||false;this.json=r["json"]||false;this.listener=r["listener"]||null;this.implicitTypes=this.schema.compiledImplicit;this.typeMap=this.schema.compiledTypeMap;this.length=e.length;this.position=0;this.line=0;this.lineStart=0;this.lineIndent=0;this.documents=[]}function generateError(e,r){return new n(r,new a(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function throwError(e,r){throw generateError(e,r)}function throwWarning(e,r){if(e.onWarning){e.onWarning.call(null,generateError(e,r))}}var x={YAML:function handleYamlDirective(e,r,t){var i,n,a;if(e.version!==null){throwError(e,"duplication of %YAML directive")}if(t.length!==1){throwError(e,"YAML directive accepts exactly one argument")}i=/^([0-9]+)\.([0-9]+)$/.exec(t[0]);if(i===null){throwError(e,"ill-formed argument of the YAML directive")}n=parseInt(i[1],10);a=parseInt(i[2],10);if(n!==1){throwError(e,"unacceptable YAML version of the document")}e.version=t[0];e.checkLineBreaks=a<2;if(a!==1&&a!==2){throwWarning(e,"unsupported YAML version of the document")}},TAG:function handleTagDirective(e,r,t){var i,n;if(t.length!==2){throwError(e,"TAG directive accepts exactly two arguments")}i=t[0];n=t[1];if(!E.test(i)){throwError(e,"ill-formed tag handle (first argument) of the TAG directive")}if(o.call(e.tagMap,i)){throwError(e,'there is a previously declared suffix for "'+i+'" tag handle')}if(!A.test(n)){throwError(e,"ill-formed tag prefix (second argument) of the TAG directive")}e.tagMap[i]=n}};function captureSegment(e,r,t,i){var n,a,u,s;if(r1){e.result+=i.repeat("\n",r-1)}}function readPlainScalar(e,r,t){var i,n,a,u,s,o,f,l,c=e.kind,h=e.result,p;p=e.input.charCodeAt(e.position);if(is_WS_OR_EOL(p)||is_FLOW_INDICATOR(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96){return false}if(p===63||p===45){n=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(n)||t&&is_FLOW_INDICATOR(n)){return false}}e.kind="scalar";e.result="";a=u=e.position;s=false;while(p!==0){if(p===58){n=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(n)||t&&is_FLOW_INDICATOR(n)){break}}else if(p===35){i=e.input.charCodeAt(e.position-1);if(is_WS_OR_EOL(i)){break}}else if(e.position===e.lineStart&&testDocumentSeparator(e)||t&&is_FLOW_INDICATOR(p)){break}else if(is_EOL(p)){o=e.line;f=e.lineStart;l=e.lineIndent;skipSeparationSpace(e,false,-1);if(e.lineIndent>=r){s=true;p=e.input.charCodeAt(e.position);continue}else{e.position=u;e.line=o;e.lineStart=f;e.lineIndent=l;break}}if(s){captureSegment(e,a,u,false);writeFoldedLines(e,e.line-o);a=u=e.position;s=false}if(!is_WHITE_SPACE(p)){u=e.position+1}p=e.input.charCodeAt(++e.position)}captureSegment(e,a,u,false);if(e.result){return true}e.kind=c;e.result=h;return false}function readSingleQuotedScalar(e,r){var t,i,n;t=e.input.charCodeAt(e.position);if(t!==39){return false}e.kind="scalar";e.result="";e.position++;i=n=e.position;while((t=e.input.charCodeAt(e.position))!==0){if(t===39){captureSegment(e,i,e.position,true);t=e.input.charCodeAt(++e.position);if(t===39){i=e.position;e.position++;n=e.position}else{return true}}else if(is_EOL(t)){captureSegment(e,i,n,true);writeFoldedLines(e,skipSeparationSpace(e,false,r));i=n=e.position}else if(e.position===e.lineStart&&testDocumentSeparator(e)){throwError(e,"unexpected end of the document within a single quoted scalar")}else{e.position++;n=e.position}}throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,r){var t,i,n,a,u,s;s=e.input.charCodeAt(e.position);if(s!==34){return false}e.kind="scalar";e.result="";e.position++;t=i=e.position;while((s=e.input.charCodeAt(e.position))!==0){if(s===34){captureSegment(e,t,e.position,true);e.position++;return true}else if(s===92){captureSegment(e,t,e.position,true);s=e.input.charCodeAt(++e.position);if(is_EOL(s)){skipSeparationSpace(e,false,r)}else if(s<256&&C[s]){e.result+=y[s];e.position++}else if((u=escapedHexLen(s))>0){n=u;a=0;for(;n>0;n--){s=e.input.charCodeAt(++e.position);if((u=fromHexCode(s))>=0){a=(a<<4)+u}else{throwError(e,"expected hexadecimal character")}}e.result+=charFromCodepoint(a);e.position++}else{throwError(e,"unknown escape sequence")}t=i=e.position}else if(is_EOL(s)){captureSegment(e,t,i,true);writeFoldedLines(e,skipSeparationSpace(e,false,r));t=i=e.position}else if(e.position===e.lineStart&&testDocumentSeparator(e)){throwError(e,"unexpected end of the document within a double quoted scalar")}else{e.position++;i=e.position}}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,r){var t=true,i,n=e.tag,a,u=e.anchor,s,o,l,c,h,p={},v,d,D,m;m=e.input.charCodeAt(e.position);if(m===91){o=93;h=false;a=[]}else if(m===123){o=125;h=true;a={}}else{return false}if(e.anchor!==null){e.anchorMap[e.anchor]=a}m=e.input.charCodeAt(++e.position);while(m!==0){skipSeparationSpace(e,true,r);m=e.input.charCodeAt(e.position);if(m===o){e.position++;e.tag=n;e.anchor=u;e.kind=h?"mapping":"sequence";e.result=a;return true}else if(!t){throwError(e,"missed comma between flow collection entries")}d=v=D=null;l=c=false;if(m===63){s=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(s)){l=c=true;e.position++;skipSeparationSpace(e,true,r)}}i=e.line;composeNode(e,r,f,false,true);d=e.tag;v=e.result;skipSeparationSpace(e,true,r);m=e.input.charCodeAt(e.position);if((c||e.line===i)&&m===58){l=true;m=e.input.charCodeAt(++e.position);skipSeparationSpace(e,true,r);composeNode(e,r,f,false,true);D=e.result}if(h){storeMappingPair(e,a,p,d,v,D)}else if(l){a.push(storeMappingPair(e,null,p,d,v,D))}else{a.push(v)}skipSeparationSpace(e,true,r);m=e.input.charCodeAt(e.position);if(m===44){t=true;m=e.input.charCodeAt(++e.position)}else{t=false}}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,r){var t,n,a=p,u=false,s=false,o=r,f=0,l=false,c,h;h=e.input.charCodeAt(e.position);if(h===124){n=false}else if(h===62){n=true}else{return false}e.kind="scalar";e.result="";while(h!==0){h=e.input.charCodeAt(++e.position);if(h===43||h===45){if(p===a){a=h===43?d:v}else{throwError(e,"repeat of a chomping mode identifier")}}else if((c=fromDecimalCode(h))>=0){if(c===0){throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one")}else if(!s){o=r+c-1;s=true}else{throwError(e,"repeat of an indentation width identifier")}}else{break}}if(is_WHITE_SPACE(h)){do{h=e.input.charCodeAt(++e.position)}while(is_WHITE_SPACE(h));if(h===35){do{h=e.input.charCodeAt(++e.position)}while(!is_EOL(h)&&h!==0)}}while(h!==0){readLineBreak(e);e.lineIndent=0;h=e.input.charCodeAt(e.position);while((!s||e.lineIndento){o=e.lineIndent}if(is_EOL(h)){f++;continue}if(e.lineIndentr)&&o!==0){throwError(e,"bad indentation of a sequence entry")}else if(e.lineIndentr){if(composeNode(e,r,h,true,n)){if(D){v=e.result}else{d=e.result}}if(!D){storeMappingPair(e,f,c,p,v,d,a,u);p=v=d=null}skipSeparationSpace(e,true,-1);g=e.input.charCodeAt(e.position)}if(e.lineIndent>r&&g!==0){throwError(e,"bad indentation of a mapping entry")}else if(e.lineIndentr){p=1}else if(e.lineIndent===r){p=0}else if(e.lineIndentr){p=1}else if(e.lineIndent===r){p=0}else if(e.lineIndent tag; it should be "'+g.kind+'", not "'+e.kind+'"')}if(!g.resolve(e.result)){throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}else{e.result=g.construct(e.result);if(e.anchor!==null){e.anchorMap[e.anchor]=e.result}}}else{throwError(e,"unknown tag !<"+e.tag+">")}}if(e.listener!==null){e.listener("close",e)}return e.tag!==null||e.anchor!==null||d}function readDocument(e){var r=e.position,t,i,n,a=false,u;e.version=null;e.checkLineBreaks=e.legacy;e.tagMap={};e.anchorMap={};while((u=e.input.charCodeAt(e.position))!==0){skipSeparationSpace(e,true,-1);u=e.input.charCodeAt(e.position);if(e.lineIndent>0||u!==37){break}a=true;u=e.input.charCodeAt(++e.position);t=e.position;while(u!==0&&!is_WS_OR_EOL(u)){u=e.input.charCodeAt(++e.position)}i=e.input.slice(t,e.position);n=[];if(i.length<1){throwError(e,"directive name must not be less than one character in length")}while(u!==0){while(is_WHITE_SPACE(u)){u=e.input.charCodeAt(++e.position)}if(u===35){do{u=e.input.charCodeAt(++e.position)}while(u!==0&&!is_EOL(u));break}if(is_EOL(u))break;t=e.position;while(u!==0&&!is_WS_OR_EOL(u)){u=e.input.charCodeAt(++e.position)}n.push(e.input.slice(t,e.position))}if(u!==0)readLineBreak(e);if(o.call(x,i)){x[i](e,i,n)}else{throwWarning(e,'unknown document directive "'+i+'"')}}skipSeparationSpace(e,true,-1);if(e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45){e.position+=3;skipSeparationSpace(e,true,-1)}else if(a){throwError(e,"directives end mark is expected")}composeNode(e,e.lineIndent-1,h,false,true);skipSeparationSpace(e,true,-1);if(e.checkLineBreaks&&m.test(e.input.slice(r,e.position))){throwWarning(e,"non-ASCII line breaks are interpreted as content")}e.documents.push(e.result);if(e.position===e.lineStart&&testDocumentSeparator(e)){if(e.input.charCodeAt(e.position)===46){e.position+=3;skipSeparationSpace(e,true,-1)}return}if(e.position=e.expected){e.emit("done")}}},function(e){"use strict";e.exports=function(e,r){if(e===null||e===undefined){throw TypeError()}e=String(e);var t=e.length;var i=r?Number(r):0;if(Number.isNaN(i)){i=0}if(i<0||i>=t){return undefined}var n=e.charCodeAt(i);if(n>=55296&&n<=56319&&t>i+1){var a=e.charCodeAt(i+1);if(a>=56320&&a<=57343){return(n-55296)*1024+a-56320+65536}}return n}},function(e,r,t){"use strict";var i=t(80);var n=t(712);var a=t(775);e.exports=messageControl;function messageControl(e){return i(a({marker:n,test:"html"},e))}},,function(e,r,t){"use strict";var i=t(174);var n=t(576);var a=t(991);e.exports=function(e){if(typeof e!=="string"||e.length===0){return 0}var r=0;e=i(e);for(var t=0;t=127&&u<=159){continue}if(u>=65536){t++}if(a(u)){r+=2}else{r++}}return r}},function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:table-pipes",tablePipes);var s=a.start;var o=a.end;var f="Missing initial pipe in table fence";var l="Missing final pipe in table fence";function tablePipes(e,r){var t=String(r);n(e,"table",visitor);function visitor(e){var i=e.children;var n=i.length;var a=-1;var c;var h;var p;var v;var d;var D;while(++a{const n=testProhibited(t,i);if(n){r.message(`Use "${t.yes}" instead of "${n}"`,e)}})}}},,function(e,r,t){"use strict";var i=t(758);e.exports=newline;var n="\n";function newline(e,r,t){var a=r.charAt(0);var u;var s;var o;var f;if(a!==n){return}if(t){return true}f=1;u=r.length;s=a;o="";while(f{let r=false;let t=false;let i=false;for(let n=0;n{if(!(typeof e==="string"||Array.isArray(e))){throw new TypeError("Expected the input to be `string | string[]`")}t=Object.assign({pascalCase:false},t);const i=e=>t.pascalCase?e.charAt(0).toUpperCase()+e.slice(1):e;if(Array.isArray(e)){e=e.map(e=>e.trim()).filter(e=>e.length).join("-")}else{e=e.trim()}if(e.length===0){return""}if(e.length===1){return t.pascalCase?e.toUpperCase():e.toLowerCase()}if(/^[a-z\d]+$/.test(e)){return i(e)}const n=e!==e.toLowerCase();if(n){e=r(e)}e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(e,r)=>r.toUpperCase());return i(e)})},,,,,,,,,,function(e,r,t){"use strict";var i=t(875);e.exports=new i({include:[t(12)],implicit:[t(46),t(815)],explicit:[t(391),t(684),t(211),t(781)]})},,function(e,r,t){"use strict";var i=t(765);var n=t(758);var a=t(419);e.exports=strong;strong.locator=a;var u="\\";var s="*";var o="_";function strong(e,r,t){var a=this;var f=0;var l=r.charAt(f);var c;var h;var p;var v;var d;var D;var m;if(l!==s&&l!==o||r.charAt(++f)!==l){return}h=a.options.pedantic;p=l;d=p+p;D=r.length;f++;v="";l="";if(h&&n(r.charAt(f))){return}while(f>>=0;var n=e.byteLength-r;if(n<0){throw new RangeError("'offset' is out of bounds")}if(i===undefined){i=n}else{i>>>=0;if(i>n){throw new RangeError("'length' is out of bounds")}}return t?Buffer.from(e.slice(r,r+i)):new Buffer(new Uint8Array(e.slice(r,r+i)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return t?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,i){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,i)}if(typeof e==="string"){return fromString(e,r)}return t?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},,,function(e){"use strict";e.exports=locate;function locate(e,r){var t=e.indexOf("[",r);var i=e.indexOf("![",r);if(i===-1){return t}return t=e.length?e.length:n+t;r.message+=` while parsing near '${i===0?"":"..."}${e.slice(i,a)}${a===e.length?"":"..."}'`}else{r.message+=` while parsing '${e.slice(0,t*2)}'`}throw r}}},,,,,,,function(e){"use strict";e.exports=locate;function locate(e,r){var t=e.indexOf("\n",r);while(t>r){if(e.charAt(t-1)!==" "){break}t--}return t}},function(e,r,t){"use strict";var i=t(400);function resolveYamlNull(e){if(e===null)return true;var r=e.length;return r===1&&e==="~"||r===4&&(e==="null"||e==="Null"||e==="NULL")}function constructYamlNull(){return null}function isNull(e){return e===null}e.exports=new i("tag:yaml.org,2002:null",{kind:"scalar",resolve:resolveYamlNull,construct:constructYamlNull,predicate:isNull,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},,,,function(e){"use strict";e.exports=alphabetical;function alphabetical(e){var r=typeof e==="string"?e.charCodeAt(0):e;return r>=97&&r<=122||r>=65&&r<=90}},,,,,,,,function(e,r,t){"use strict";const i=t(431);const n=t(832);const a=process.env;const u=e=>{if(e===0){return false}return{level:e,hasBasic:true,has256:e>=2,has16m:e>=3}};let s=(()=>{if(n("no-color")||n("no-colors")||n("color=false")){return 0}if(n("color=16m")||n("color=full")||n("color=truecolor")){return 3}if(n("color=256")){return 2}if(n("color")||n("colors")||n("color=true")||n("color=always")){return 1}if(process.stdout&&!process.stdout.isTTY){return 0}if(process.platform==="win32"){const e=i.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586){return 2}return 1}if("CI"in a){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in a)||a.CI_NAME==="codeship"){return 1}return 0}if("TEAMCITY_VERSION"in a){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(a.TEAMCITY_VERSION)?1:0}if("TERM_PROGRAM"in a){const e=parseInt((a.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(a.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(a.TERM)){return 2}if(/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(a.TERM)){return 1}if("COLORTERM"in a){return 1}if(a.TERM==="dumb"){return 0}return 0})();if("FORCE_COLOR"in a){s=parseInt(a.FORCE_COLOR,10)===0?0:s||1}e.exports=process&&u(s)},,function(e){"use strict";e.exports=factory;function factory(e,r,t){return enter;function enter(){var i=t||this;var n=i[e];i[e]=!r;return exit;function exit(){i[e]=n}}}},function(e,r,t){"use strict";var i=t(770);var n=t(694);var a=t(758);var u=t(943);var s=t(980);e.exports=factory;var o="\t";var f="\n";var l=" ";var c="#";var h="&";var p="(";var v=")";var d="*";var D="+";var m="-";var g=".";var E=":";var A="<";var C=">";var y="[";var w="\\";var x="]";var b="_";var F="`";var S="|";var B="~";var k="!";var O={"<":"<",":":":","&":"&","|":"|","~":"~"};var P="shortcut";var T="mailto";var I="https";var M="http";var L=/\n\s*$/;function factory(e){return escape;function escape(r,t,T){var I=this;var M=e.gfm;var R=e.commonmark;var j=e.pedantic;var N=R?[g,v]:[g];var U=T&&T.children;var J=U&&U.indexOf(t);var z=U&&U[J-1];var X=U&&U[J+1];var q=r.length;var G=u(e);var _=-1;var W=[];var V=W;var H;var Y;var $;var Z;var Q;var K;if(z){H=text(z)&&L.test(z.value)}else{H=!T||T.type==="root"||T.type==="paragraph"}while(++_0||Y===x&&I.inLink||M&&Y===B&&r.charAt(_+1)===B||M&&Y===S&&(I.inTable||alignment(r,_))||Y===b&&_>0&&_t.length;var a;if(n){t.push(done)}try{a=e.apply(null,t)}catch(e){if(n&&i){throw e}return done(e)}if(!n){if(a&&typeof a.then==="function"){a.then(then,done)}else if(a instanceof Error){done(a)}else{then(a)}}}function done(){if(!i){i=true;t.apply(null,arguments)}}function then(e){done(null,e)}}},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:configure");var n=t(356);var a=t(164);var u=t(555);var s=t(890);e.exports=configure;function configure(e,r,t,o){var f=e.configuration;var l=e.processor;if(n(r).fatal){return o()}f.load(r.path,handleConfiguration);function handleConfiguration(e,r){var n;var f;var c;var h;var p;var v;if(e){return o(e)}i("Using settings `%j`",r.settings);l.data("settings",r.settings);n=r.plugins;h=n.length;p=-1;i("Using `%d` plugins",h);while(++p output."+t,""," # Rewrite all applicable files"," $ "+i+" . -o"].join("\n");return{helpMessage:u,cwd:r.cwd,processor:r.processor,help:n.help,version:n.version,files:n._,watch:n.watch,extensions:l.length?l:r.extensions,output:n.output,out:n.stdout,tree:n.tree,treeIn:n.treeIn,treeOut:n.treeOut,inspect:n.inspect,rcName:r.rcName,packageField:r.packageField,rcPath:n.rcPath,detectConfig:n.config,settings:settings(n.setting),ignoreName:r.ignoreName,ignorePath:n.ignorePath,detectIgnore:n.ignore,pluginPrefix:r.pluginPrefix,plugins:plugins(n.use),reporter:c[0],reporterOptions:c[1],color:n.color,silent:n.silent,quiet:n.quiet,frail:n.frail}}function addEach(e){var r=e.default;f.default[e.long]=r===undefined?null:r;if(e.type in f){f[e.type].push(e.long)}if(e.short){f.alias[e.short]=e.long}}function extensions(e){return flatten(normalize(e).map(splitList))}function plugins(e){var r={};normalize(e).map(splitOptions).forEach(function(e){r[e[0]]=e[1]?parseConfig(e[1],{}):null});return r}function reporter(e){var r=normalize(e).map(splitOptions).map(function(e){return[e[0],e[1]?parseConfig(e[1],{}):null]});return r[r.length-1]||[]}function settings(e){var r={};normalize(e).forEach(function(e){parseConfig(e,r)});return r}function parseConfig(e,r){var t;var i;try{e=toCamelCase(parseJSON(e))}catch(r){i=r.message.replace(/at(?= position)/,"around");throw s("Cannot parse `%s` as JSON: %s",e,i)}for(t in e){r[t]=e[t]}return r}function handleUnknownArgument(e){if(e.charAt(0)!=="-"){return}if(e.charAt(1)==="-"){throw s("Unknown option `%s`, expected:\n%s",e,inspectAll(o))}e.slice(1).split("").forEach(each);function each(e){var r=o.length;var t=-1;var i;while(++t=u){v--;break}d+=g}D="";m="";while(++v=l&&C!==o){m=r.indexOf(o,m+1);continue}}A=r.slice(m+1);if(u(D,d,c,[e,A,true])){break}if(d.list.call(c,e,A,true)&&(c.inList||p||v&&!n(i.left(A).charAt(0)))){break}E=m;m=r.indexOf(o,m+1);if(m!==-1&&i(r.slice(E,m))===""){m=E;break}}A=r.slice(0,m);if(i(A)===""){e(A);return null}if(t){return true}w=e.now();A=a(A);return e(A)({type:"paragraph",children:c.tokenizeInline(A,w)})}},function(e,r,t){"use strict";var i=t(775);var n=t(9);e.exports=unherit;function unherit(e){var r;var t;var a;n(Of,e);n(From,Of);r=Of.prototype;for(t in r){a=r[t];if(a&&typeof a==="object"){r[t]="concat"in a?a.concat():i(a)}}return Of;function From(r){return e.apply(this,r)}function Of(){if(!(this instanceof Of)){return new From(arguments)}return e.apply(this,arguments)}}},function(e,r,t){"use strict";var i=t(775);var n=t(260);e.exports=parse;var a="\n";var u=/\r\n|\r/g;function parse(){var e=this;var r=String(e.file);var t={line:1,column:1,offset:0};var s=i(t);var o;r=r.replace(u,a);if(r.charCodeAt(0)===65279){r=r.slice(1);s.column++;s.offset++}o={type:"root",children:e.tokenizeBlock(r,s),position:{start:t,end:e.eof||i(t)}};if(!e.options.position){n(o,true)}return o}},function(e,r,t){"use strict";var i=t(136)("unified-engine:file-pipeline:queue");var n=t(356);var a=t(817);e.exports=queue;function queue(e,r,t,u){var s=r.history[0];var o=t.complete;var f=true;if(!o){o={};t.complete=o}i("Queueing `%s`",s);o[s]=u;t.valueOf().forEach(each);if(!f){i("Not flushing: some files cannot be flushed");return}t.complete={};t.pipeline.run(t,done);function each(e){var r=e.history[0];if(n(e).fatal){return}if(a(o[r])){i("`%s` can be flushed",r)}else{i("Interupting flush: `%s` is not finished",r);f=false}}function done(e){i("Flushing: all files can be flushed");for(s in o){o[s](e)}}}},function(e,r,t){"use strict";var i=t(100);var n=t(434);var a=t(998);var u=t(220);var s=t(97);e.exports=i("remark-lint:no-heading-indent",noHeadingIndent);var o=u.start;function noHeadingIndent(e,r){var t=String(r);var i=t.length;a(e,"heading",visitor);function visitor(e){var a;var u;var f;var l;var c;if(s(e)){return}a=o(e);u=a.offset;f=u-1;while(++f1;var p=c;var v=r.path;if(!u(p)){a("Not copying");return i()}p=f(e.cwd,p);a("Copying `%s`",v);s(p,onstatfile);function onstatfile(e,r){if(e){if(e.code!=="ENOENT"||c.charAt(c.length-1)===n.sep){return i(new Error("Cannot read output directory. Error:\n"+e.message))}s(o(p),onstatparent)}else{done(r.isDirectory())}}function onstatparent(e){if(e){i(new Error("Cannot read parent directory. Error:\n"+e.message))}else{done(false)}}function done(e){if(!e&&h){return i(new Error("Cannot write multiple files to single output: "+p))}r[e?"dirname":"path"]=l(r.cwd,p);a("Copying document from %s to %s",v,r.path);i()}}},,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(97);e.exports=i("remark-lint:no-shell-dollars",noShellDollars);var u="Do not use dollar signs before shell-commands";var s=["sh","bash","bats","cgi","command","fcgi","ksh","tmux","tool","zsh"];function noShellDollars(e,r){n(e,"code",visitor);function visitor(e){var t;var i;var n;var o;if(!a(e)&&e.lang&&s.indexOf(e.lang)!==-1){t=e.value.split("\n");n=t.length;o=-1;if(n<=1){return}while(++o1){r.message(s,e)}}}},,,function(e,r,t){"use strict";var i=t(43);var n=t(354);var a=t(975);e.exports=code;var u="\n";var s=" ";function code(e,r){var t=this;var o=e.value;var f=t.options;var l=f.fence;var c=e.lang||"";var h;if(c&&e.meta){c+=s+e.meta}c=t.encode(t.escape(c,e));if(!c&&!f.fences&&o){if(r&&r.type==="listItem"&&f.listItemIndent!=="tab"&&f.pedantic){t.file.fail("Cannot indent code properly. See https://git.io/fxKR8",e.position)}return a(o,1)}h=n(l,Math.max(i(o,l)+1,3));return h+c+u+o+u+h}},,function(e,r,t){"use strict";var i=t(400);var n=Object.prototype.hasOwnProperty;var a=Object.prototype.toString;function resolveYamlOmap(e){if(e===null)return true;var r=[],t,i,u,s,o,f=e;for(t=0,i=f.length;t<]/g}},function(e){e.exports={AEli:"Æ",AElig:"Æ",AM:"&",AMP:"&",Aacut:"Á",Aacute:"Á",Abreve:"Ă",Acir:"Â",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrav:"À",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Arin:"Å",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atild:"Ã",Atilde:"Ã",Aum:"Ä",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COP:"©",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedi:"Ç",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ET:"Ð",ETH:"Ð",Eacut:"É",Eacute:"É",Ecaron:"Ě",Ecir:"Ê",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrav:"È",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Eum:"Ë",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",G:">",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacut:"Í",Iacute:"Í",Icir:"Î",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrav:"Ì",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Ium:"Ï",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",L:"<",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntild:"Ñ",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacut:"Ó",Oacute:"Ó",Ocir:"Ô",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograv:"Ò",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslas:"Ø",Oslash:"Ø",Otild:"Õ",Otilde:"Õ",Otimes:"⨷",Oum:"Ö",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUO:'"',QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",RE:"®",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THOR:"Þ",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacut:"Ú",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucir:"Û",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrav:"Ù",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uum:"Ü",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacut:"Ý",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacut:"á",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acir:"â",acirc:"â",acut:"´",acute:"´",acy:"а",aeli:"æ",aelig:"æ",af:"⁡",afr:"𝔞",agrav:"à",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",am:"&",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",arin:"å",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atild:"ã",atilde:"ã",aum:"ä",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvba:"¦",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedi:"ç",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedi:"¸",cedil:"¸",cemptyv:"⦲",cen:"¢",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",cop:"©",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curre:"¤",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",de:"°",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divid:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacut:"é",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"ê",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrav:"è",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",et:"ð",eth:"ð",eum:"ë",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac1:"¼",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac3:"¾",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",g:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacut:"í",iacute:"í",ic:"⁣",icir:"î",icirc:"î",icy:"и",iecy:"е",iexc:"¡",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrav:"ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iques:"¿",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",ium:"ï",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laqu:"«",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",l:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",mac:"¯",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micr:"µ",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middo:"·",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbs:" ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",no:"¬",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntild:"ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacut:"ó",oacute:"ó",oast:"⊛",ocir:"ô",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograv:"ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"º",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslas:"ø",oslash:"ø",osol:"⊘",otild:"õ",otilde:"õ",otimes:"⊗",otimesas:"⨶",oum:"ö",ouml:"ö",ovbar:"⌽",par:"¶",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusm:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",poun:"£",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quo:'"',quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raqu:"»",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",re:"®",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sec:"§",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",sh:"­",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szli:"ß",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thor:"þ",thorn:"þ",tilde:"˜",time:"×",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacut:"ú",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucir:"û",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrav:"ù",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",um:"¨",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uum:"ü",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacut:"ý",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",ye:"¥",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yum:"ÿ",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},,,function(e,r,t){"use strict";var i=t(100);var n=t(903);e.exports=i("remark-lint:no-tabs",noTabs);var a="Use spaces instead of hard-tabs";function noTabs(e,r){var t=String(r);var i=n(r).toPosition;var u=t.indexOf("\t");while(u!==-1){r.message(a,i(u));u=t.indexOf("\t",u+1)}}},,,,,function(e,r,t){"use strict";var i=t(570);var n=t(143);function deprecated(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=t(400);e.exports.Schema=t(875);e.exports.FAILSAFE_SCHEMA=t(976);e.exports.JSON_SCHEMA=t(790);e.exports.CORE_SCHEMA=t(12);e.exports.DEFAULT_SAFE_SCHEMA=t(617);e.exports.DEFAULT_FULL_SCHEMA=t(501);e.exports.load=i.load;e.exports.loadAll=i.loadAll;e.exports.safeLoad=i.safeLoad;e.exports.safeLoadAll=i.safeLoadAll;e.exports.dump=n.dump;e.exports.safeDump=n.safeDump;e.exports.YAMLException=t(548);e.exports.MINIMAL_SCHEMA=t(976);e.exports.SAFE_SCHEMA=t(617);e.exports.DEFAULT_SCHEMA=t(501);e.exports.scan=deprecated("scan");e.exports.parse=deprecated("parse");e.exports.compose=deprecated("compose");e.exports.addConstructor=deprecated("addConstructor")},function(e,r,t){"use strict";var i=t(775);var n=t(478);e.exports=factory;function factory(e){decoder.raw=decodeRaw;return decoder;function normalize(r){var t=e.offset;var i=r.line;var n=[];while(++i){if(!(i in t)){break}n.push((t[i]||0)+1)}return{start:r,indent:n}}function decoder(r,t,i){n(r,{position:normalize(t),warning:handleWarning,text:i,reference:i,textContext:e,referenceContext:e})}function decodeRaw(e,r,t){return n(e,i(t,{position:normalize(r),warning:handleWarning}))}function handleWarning(r,t,i){if(i!==3){e.file.message(r,t)}}}},function(e){(function(){var r;if(true){r=e.exports=format}else{}r.format=format;r.vsprintf=vsprintf;if(typeof console!=="undefined"&&typeof console.log==="function"){r.printf=printf}function printf(){console.log(format.apply(null,arguments))}function vsprintf(e,r){return format.apply(null,[e].concat(r))}function format(e){var r=1,t=[].slice.call(arguments),i=0,n=e.length,a="",u,s=false,o,f,l=false,c,h=function(){return t[r++]},p=function(){var r="";while(/\d/.test(e[i])){r+=e[i++];u=e[i]}return r.length>0?parseInt(r):null};for(;i1)return true;for(var a=0;athis.maxLength)return r();if(!this.stat&&m(this.cache,t)){var a=this.cache[t];if(Array.isArray(a))a="DIR";if(!n||a==="DIR")return r(null,a);if(n&&a==="FILE")return r()}var u;var s=this.statCache[t];if(s!==undefined){if(s===false)return r(null,s);else{var o=s.isDirectory()?"DIR":"FILE";if(n&&o==="FILE")return r();else return r(null,o,s)}}var f=this;var l=g("stat\0"+t,lstatcb_);if(l)i.lstat(t,l);function lstatcb_(n,a){if(a&&a.isSymbolicLink()){return i.stat(t,function(i,n){if(i)f._stat2(e,t,null,a,r);else f._stat2(e,t,i,n,r)})}else{f._stat2(e,t,n,a,r)}}};Glob.prototype._stat2=function(e,r,t,i,n){if(t&&(t.code==="ENOENT"||t.code==="ENOTDIR")){this.statCache[r]=false;return n()}var a=e.slice(-1)==="/";this.statCache[r]=i;if(r.slice(-1)==="/"&&i&&!i.isDirectory())return n(null,false,i);var u=true;if(i)u=i.isDirectory()?"DIR":"FILE";this.cache[r]=this.cache[r]||u;if(a&&u==="FILE")return n();return n(null,u,i)}},,,,function(e,r){r=e.exports=trim;function trim(e){return e.replace(/^\s*|\s*$/g,"")}r.left=function(e){return e.replace(/^\s*/,"")};r.right=function(e){return e.replace(/\s*$/,"")}},,,,,function(e){"use strict";e.exports=decimal;function decimal(e){var r=typeof e==="string"?e.charCodeAt(0):e;return r>=48&&r<=57}},function(e,r,t){"use strict";var i=t(765);var n=t(354);var a=t(816);e.exports=indentation;var u="\t";var s="\n";var o=" ";var f="!";function indentation(e,r){var t=e.split(s);var l=t.length+1;var c=Infinity;var h=[];var p;var v;var d;var D;t.unshift(n(o,r)+f);while(l--){v=a(t[l]);h[l]=v.stops;if(i(t[l]).length===0){continue}if(v.indent){if(v.indent>0&&v.indent0){return parse(e)}else if(t==="number"&&isNaN(e)===false){return r.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var s=/^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!s){return}var o=parseFloat(s[1]);var f=(s[2]||"ms").toLowerCase();switch(f){case"years":case"year":case"yrs":case"yr":case"y":return o*u;case"weeks":case"week":case"w":return o*a;case"days":case"day":case"d":return o*n;case"hours":case"hour":case"hrs":case"hr":case"h":return o*i;case"minutes":case"minute":case"mins":case"min":case"m":return o*t;case"seconds":case"second":case"secs":case"sec":case"s":return o*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return undefined}}function fmtShort(e){var a=Math.abs(e);if(a>=n){return Math.round(e/n)+"d"}if(a>=i){return Math.round(e/i)+"h"}if(a>=t){return Math.round(e/t)+"m"}if(a>=r){return Math.round(e/r)+"s"}return e+"ms"}function fmtLong(e){var a=Math.abs(e);if(a>=n){return plural(e,a,n,"day")}if(a>=i){return plural(e,a,i,"hour")}if(a>=t){return plural(e,a,t,"minute")}if(a>=r){return plural(e,a,r,"second")}return e+" ms"}function plural(e,r,t,i){var n=r>=t*1.5;return Math.round(e/t)+" "+i+(n?"s":"")}},function(e){"use strict";e.exports=locate;function locate(e,r){return e.indexOf("<",r)}},function(e,r,t){"use strict";var i=t(758);var n=t(68);e.exports=inlineCode;inlineCode.locator=n;var a="`";function inlineCode(e,r,t){var n=r.length;var u=0;var s="";var o="";var f;var l;var c;var h;var p;var v;var d;var D;while(ut&&a3)return false;if(r[r.length-i.length-1]!=="/")return false}return true}function constructJavascriptRegExp(e){var r=e,t=/\/([gim]*)$/.exec(e),i="";if(r[0]==="/"){if(t)i=t[1];r=r.slice(1,r.length-i.length-1)}return new RegExp(r,i)}function representJavascriptRegExp(e){var r="/"+e.source+"/";if(e.global)r+="g";if(e.multiline)r+="m";if(e.ignoreCase)r+="i";return r}function isRegExp(e){return Object.prototype.toString.call(e)==="[object RegExp]"}e.exports=new i("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:resolveJavascriptRegExp,construct:constructJavascriptRegExp,predicate:isRegExp,represent:representJavascriptRegExp})},function(e,r,t){"use strict";var i=t(400);function resolveYamlMerge(e){return e==="<<"||e===null}e.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge})},function(e){"use strict";e.exports=indentation;var r="\t";var t=" ";var i=1;var n=4;function indentation(e){var a=0;var u=0;var s=e.charAt(a);var o={};var f;while(s===r||s===t){f=s===r?n:i;u+=f;if(f>1){u=Math.floor(u/f)*f}o[u]=a;s=e.charAt(++a)}return{indent:u,stops:o}}},function(e){e.exports=function isFunction(e){return Object.prototype.toString.call(e)==="[object Function]"}},function(e){e.exports={name:"node-lint-md-cli-rollup",description:"remark packaged for node markdown linting",version:"2.0.0",devDependencies:{"@zeit/ncc":"^0.15.2"},dependencies:{"markdown-extensions":"^1.1.1",remark:"^10.0.1","remark-lint":"^6.0.4","remark-preset-lint-node":"^1.6.0","unified-args":"^6.0.0","unified-engine":"^5.1.0"},main:"src/cli-entry.js",scripts:{build:"ncc build -m","build-node":"npm run build && cp dist/index.js ../lint-md.js"}}},function(e,r,t){"use strict";var i=t(532);var n=t(234);e.exports=image;var a=" ";var u="(";var s=")";var o="[";var f="]";var l="!";function image(e){var r=this;var t=i(r.encode(e.url||"",e));var c=r.enterLink();var h=r.encode(r.escape(e.alt||"",e));c();if(e.title){t+=a+n(r.encode(e.title,e))}return l+o+h+f+u+t+s}},function(e){e.exports=function(e,r){if(!r)r={};var t=r.hsep===undefined?" ":r.hsep;var i=r.align||[];var n=r.stringLength||function(e){return String(e).length};var a=reduce(e,function(e,r){forEach(r,function(r,t){var i=dotindex(r);if(!e[t]||i>e[t])e[t]=i});return e},[]);var u=map(e,function(e){return map(e,function(e,r){var t=String(e);if(i[r]==="."){var u=dotindex(t);var s=a[r]+(/\./.test(t)?1:2)-(n(t)-u);return t+Array(s).join(" ")}else return t})});var s=reduce(u,function(e,r){forEach(r,function(r,t){var i=n(r);if(!e[t]||i>e[t])e[t]=i});return e},[]);return map(u,function(e){return map(e,function(e,r){var t=s[r]-n(e)||0;var a=Array(Math.max(t+1,1)).join(" ");if(i[r]==="r"||i[r]==="."){return a+e}if(i[r]==="c"){return Array(Math.ceil(t/2+1)).join(" ")+e+Array(Math.floor(t/2+1)).join(" ")}return e+a}).join(t).replace(/\s+$/,"")}).join("\n")};function dotindex(e){var r=/\.[^.]*$/.exec(e);return r?r.index+1:e.length}function reduce(e,r,t){if(e.reduce)return e.reduce(r,t);var i=0;var n=arguments.length>=3?t:e[i++];for(;i2){r.message(s,e)}}}}},,function(e){"use strict";e.exports=function(e,r){r=r||process.argv;var t=r.indexOf("--");var i=/^-{1,2}/.test(e)?"":"--";var n=r.indexOf(i+e);return n!==-1&&(t===-1?true:n`\\u0000-\\u0020]+";var n="'[^']*'";var a='"[^"]*"';var u="(?:"+i+"|"+n+"|"+a+")";var s="(?:\\s+"+t+"(?:\\s*=\\s*"+u+")?)";var o="<[A-Za-z][A-Za-z0-9\\-]*"+s+"*\\s*\\/?>";var f="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>";var l="\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e";var c="<[?].*?[?]>";var h="]*>";var p="";r.openCloseTag=new RegExp("^(?:"+o+"|"+f+")");r.tag=new RegExp("^(?:"+o+"|"+f+"|"+l+"|"+c+"|"+h+"|"+p+")")},function(e,r,t){"use strict";var i=t(544);var n=t(548);var a=t(400);function compileList(e,r,t){var i=[];e.include.forEach(function(e){t=compileList(e,r,t)});e[r].forEach(function(e){t.forEach(function(r,t){if(r.tag===e.tag&&r.kind===e.kind){i.push(t)}});t.push(e)});return t.filter(function(e,r){return i.indexOf(r)===-1})}function compileMap(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},r,t;function collectType(r){e[r.kind][r.tag]=e["fallback"][r.tag]=r}for(r=0,t=arguments.length;r-1){a.splice(u,1)}var s=t;a.forEach(function _buildSubObj(e,t){if(!e||typeof s!=="object")return;if(t===a.length-1)s[e]=r[n];if(s[e]===undefined)s[e]={};s=s[e]})}}return t};var c=r.find=function(){var e=a.join.apply(null,[].slice.call(arguments));function find(e,r){var t=a.join(e,r);try{i.statSync(t);return t}catch(t){if(a.dirname(e)!==e)return find(a.dirname(e),r)}}return find(process.cwd(),e)}},function(e,r,t){"use strict";var i=t(43);var n=t(354);e.exports=inlineCode;var a=" ";var u="`";function inlineCode(e){var r=e.value;var t=n(u,i(r,u)+1);var s=t;var o=t;if(r.charAt(0)===u){s+=a}if(r.charAt(r.length-1)===u){o=a+o}return s+r+o}},,function(e){var r=Object.prototype.hasOwnProperty;var t=Object.prototype.toString;function isEmpty(e){if(e==null)return true;if("boolean"==typeof e)return false;if("number"==typeof e)return e===0;if("string"==typeof e)return e.length===0;if("function"==typeof e)return e.length===0;if(Array.isArray(e))return e.length===0;if(e instanceof Error)return e.message==="";if(e.toString==t){switch(e.toString()){case"[object File]":case"[object Map]":case"[object Set]":{return e.size===0}case"[object Object]":{for(var i in e){if(r.call(e,i))return false}return true}}}return false}e.exports=isEmpty},,function(e,r,t){"use strict";function _typeof(e){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(e){return typeof e}}else{_typeof=function _typeof(e){return e&&typeof Symbol==="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}}return _typeof(e)}r.log=log;r.formatArgs=formatArgs;r.save=save;r.load=load;r.useColors=useColors;r.storage=localstorage();r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(r){r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}var t="color: "+this.color;r.splice(1,0,t,"color: inherit");var i=0;var n=0;r[0].replace(/%[a-zA-Z%]/g,function(e){if(e==="%%"){return}i++;if(e==="%c"){n=i}});r.splice(n,0,t)}function log(){var e;return(typeof console==="undefined"?"undefined":_typeof(console))==="object"&&console.log&&(e=console).log.apply(e,arguments)}function save(e){try{if(e){r.storage.setItem("debug",e)}else{r.storage.removeItem("debug")}}catch(e){}}function load(){var e;try{e=r.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=t(519)(r);var i=e.exports.formatters;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},,,,function(e,r,t){"use strict";var i=t(575);var n=t(601);e.exports=transform;function transform(e,r,t){var a=new i;e.fileSet=a;a.on("add",add).on("done",t);if(e.files.length===0){t()}else{e.files.forEach(a.add,a)}function add(t){n.run({configuration:e.configuration,processor:r.processor(),cwd:r.cwd,extensions:r.extensions,pluginPrefix:r.pluginPrefix,treeIn:r.treeIn,treeOut:r.treeOut,inspect:r.inspect,color:r.color,out:r.out,output:r.output,streamOut:r.streamOut,alwaysStringify:r.alwaysStringify},t,a,done);function done(e){if(e){e=t.message(e);e.fatal=true}a.emit("one",t)}}}},,,,,function(e,r,t){"use strict";e.exports=t(447)},function(e){"use strict";e.exports=locate;function locate(e,r){return e.indexOf("~~",r)}},function(e){"use strict";e.exports=factory;function factory(e){var r=indices(String(e));return{toPosition:offsetToPositionFactory(r),toOffset:positionToOffsetFactory(r)}}function offsetToPositionFactory(e){return offsetToPosition;function offsetToPosition(r){var t=-1;var i=e.length;if(r<0){return{}}while(++tr){return{line:t+1,column:r-(e[t-1]||0)+1,offset:r}}}return{}}}function positionToOffsetFactory(e){return positionToOffset;function positionToOffset(r){var t=r&&r.line;var i=r&&r.column;if(!isNaN(t)&&!isNaN(i)&&t-1 in e){return(e[t-2]||0)+i-1||0}return-1}}function indices(e){var r=[];var t=e.indexOf("\n");while(t!==-1){r.push(t+1);t=e.indexOf("\n",t+1)}r.push(e.length+1);return r}},,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);var s=t(67);e.exports=i("remark-lint:no-auto-link-without-protocol",noAutoLinkWithoutProtocol);var o=a.start;var f=a.end;var l=/^[a-z][a-z+.-]+:\/?/i;var c="All automatic links must start with a protocol";function noAutoLinkWithoutProtocol(e,r){n(e,"link",visitor);function visitor(e){var t;if(!u(e)){t=e.children;if(o(e).column===o(t[0]).column-1&&f(e).column===f(t[t.length-1]).column+1&&!l.test(s(e))){r.message(c,e)}}}}},,function(e){"use strict";e.exports=label;var r="[";var t="]";var i="shortcut";var n="collapsed";function label(e){var a=e.referenceType;if(a===i){return""}return r+(a===n?"":e.label||e.identifier)+t}},function(e,r,t){"use strict";var i=t(544);function Mark(e,r,t,i,n){this.name=e;this.buffer=r;this.position=t;this.line=i;this.column=n}Mark.prototype.getSnippet=function getSnippet(e,r){var t,n,a,u,s;if(!this.buffer)return null;e=e||4;r=r||75;t="";n=this.position;while(n>0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(n-1))===-1){n-=1;if(this.position-n>r/2-1){t=" ... ";n+=5;break}}a="";u=this.position;while(ur/2-1){a=" ... ";u-=5;break}}s=this.buffer.slice(n,u);return i.repeat(" ",e)+t+s+a+"\n"+i.repeat(" ",e+this.position-n+t.length)+"^"};Mark.prototype.toString=function toString(e){var r,t="";if(this.name){t+='in "'+this.name+'" '}t+="at line "+(this.line+1)+", column "+(this.column+1);if(!e){r=this.getSnippet();if(r){t+=":\n"+r}}return t};e.exports=Mark},,function(e){"use strict";e.exports=balanced;function balanced(e,r,t){if(e instanceof RegExp)e=maybeMatch(e,t);if(r instanceof RegExp)r=maybeMatch(r,t);var i=range(e,r,t);return i&&{start:i[0],end:i[1],pre:t.slice(0,i[0]),body:t.slice(i[0]+e.length,i[1]),post:t.slice(i[1]+r.length)}}function maybeMatch(e,r){var t=r.match(e);return t?t[0]:null}balanced.range=range;function range(e,r,t){var i,n,a,u,s;var o=t.indexOf(e);var f=t.indexOf(r,o+1);var l=o;if(o>=0&&f>0){i=[];a=t.length;while(l>=0&&!s){if(l==o){i.push(l);o=t.indexOf(e,l+1)}else if(i.length==1){s=[i.pop(),f]}else{n=i.pop();if(n=0?o:f}if(i.length){s=[a,u]}}return s}},,,,,,,,function(e,r,t){var i=t(706);var n=t(910);e.exports=expandTop;var a="\0SLASH"+Math.random()+"\0";var u="\0OPEN"+Math.random()+"\0";var s="\0CLOSE"+Math.random()+"\0";var o="\0COMMA"+Math.random()+"\0";var f="\0PERIOD"+Math.random()+"\0";function numeric(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function escapeBraces(e){return e.split("\\\\").join(a).split("\\{").join(u).split("\\}").join(s).split("\\,").join(o).split("\\.").join(f)}function unescapeBraces(e){return e.split(a).join("\\").split(u).join("{").split(s).join("}").split(o).join(",").split(f).join(".")}function parseCommaParts(e){if(!e)return[""];var r=[];var t=n("{","}",e);if(!t)return e.split(",");var i=t.pre;var a=t.body;var u=t.post;var s=i.split(",");s[s.length-1]+="{"+a+"}";var o=parseCommaParts(u);if(u.length){s[s.length-1]+=o.shift();s.push.apply(s,o)}r.push.apply(r,s);return r}function expandTop(e){if(!e)return[];if(e.substr(0,2)==="{}"){e="\\{\\}"+e.substr(2)}return expand(escapeBraces(e),true).map(unescapeBraces)}function identity(e){return e}function embrace(e){return"{"+e+"}"}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,r){return e<=r}function gte(e,r){return e>=r}function expand(e,r){var t=[];var a=n("{","}",e);if(!a||/\$$/.test(a.pre))return[e];var u=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(a.body);var o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(a.body);var f=u||o;var l=a.body.indexOf(",")>=0;if(!f&&!l){if(a.post.match(/,.*\}/)){e=a.pre+"{"+a.body+s+a.post;return expand(e)}return[e]}var c;if(f){c=a.body.split(/\.\./)}else{c=parseCommaParts(a.body);if(c.length===1){c=expand(c[0],false).map(embrace);if(c.length===1){var h=a.post.length?expand(a.post,false):[""];return h.map(function(e){return a.pre+c[0]+e})}}}var p=a.pre;var h=a.post.length?expand(a.post,false):[""];var v;if(f){var d=numeric(c[0]);var D=numeric(c[1]);var m=Math.max(c[0].length,c[1].length);var g=c.length==3?Math.abs(numeric(c[2])):1;var E=lte;var A=D0){var b=new Array(x+1).join("0");if(y<0)w="-"+b+w.slice(1);else w=b+w}}}v.push(w)}}else{v=i(c,function(e){return expand(e,false)})}for(var F=0;F=0&&e.splice instanceof Function}},,,,function(e,r,t){"use strict";var i=t(758);e.exports=table;var n="\t";var a="\n";var u=" ";var s="-";var o=":";var f="\\";var l="`";var c="|";var h=1;var p=2;var v="left";var d="center";var D="right";function table(e,r,t){var m=this;var g;var E;var A;var C;var y;var w;var x;var b;var F;var S;var B;var k;var O;var P;var T;var I;var M;var L;var R;var j;var N;var U;var J;var z;if(!m.options.gfm){return}g=0;L=0;w=r.length+1;x=[];while(gU){if(L1){if(F){C+=b.slice(0,b.length-1);b=b.charAt(b.length-1)}else{C+=b;b=""}}I=e.now();e(C)({type:"tableCell",children:m.tokenizeInline(k,I)},y)}e(b+F);b="";k=""}}else{if(b){k+=b;b=""}k+=F;if(F===f&&g!==w-2){k+=R.charAt(g+1);g++}if(F===l){P=1;while(R.charAt(g+1)===F){k+=F;g++;P++}if(!T){T=P}else if(P>=T){T=0}}}O=false;g++}if(!M){e(a+E)}}return N}},,function(e){e.exports=require("buffer")},function(e){"use strict";e.exports=escapes;var r=["\\","`","*","{","}","[","]","(",")","#","+","-",".","!","_",">"];var t=r.concat(["~","|"]);var i=t.concat(["\n",'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);escapes.default=r;escapes.gfm=t;escapes.commonmark=i;function escapes(e){var n=e||{};if(n.commonmark){return i}return n.gfm?t:r}},,,,,function(e){e.exports=function isBuffer(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)}},,,function(e,r,t){"use strict";var i=t(100);var n=t(998);var a=t(220);var u=t(97);e.exports=i("remark-lint:rule-style",ruleStyle);var s=a.start;var o=a.end;function ruleStyle(e,r,t){var i=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(t!==null&&/[^-_* ]/.test(t)){r.fail("Invalid preferred rule-style: provide a valid markdown rule, or `'consistent'`")}n(e,"thematicBreak",visitor);function visitor(e){var n=s(e).offset;var a=o(e).offset;var f;if(!u(e)){f=i.slice(n,a);if(t){if(f!==t){r.message("Rules should use `"+t+"`",e)}}else{t=f}}}}},,,,function(e){"use strict";e.exports=footnoteReference;var r="[";var t="]";var i="^";function footnoteReference(e){return r+i+(e.label||e.identifier)+t}},,,,,,function(e,r,t){"use strict";var i=t(589);var n=t(471);var a=t(329);e.exports=Ignore;Ignore.prototype.check=check;var u=i.dirname;var s=i.relative;var o=i.resolve;function Ignore(e){this.cwd=e.cwd;this.findUp=new a({filePath:e.ignorePath,cwd:e.cwd,detect:e.detectIgnore,names:e.ignoreName?[e.ignoreName]:[],create:create})}function check(e,r){var t=this;t.findUp.load(e,done);function done(i,n){var a;if(i){r(i)}else if(n){a=s(n.filePath,o(t.cwd,e));r(null,a?n.ignores(a):false)}else{r(null,false)}}}function create(e,r){var t=n().add(String(e));t.filePath=u(r);return t}},,,,,function(e){"use strict";e.exports=text;function text(e,r,t){var i=this;var n;var a;var u;var s;var o;var f;var l;var c;var h;var p;if(t){return true}n=i.inlineMethods;s=n.length;a=i.inlineTokenizers;u=-1;h=r.length;while(++u=97&&r<=102||r>=65&&r<=70||r>=48&&r<=57}},,,,function(e){"use strict";var r=Object.prototype.toString;e.exports=function(e){var t;return r.call(e)==="[object Object]"&&(t=Object.getPrototypeOf(e),t===null||t===Object.getPrototypeOf({}))}},,,,,,function(e,r,t){"use strict";var i=t(973);e.exports=function(e){if(i(e)){return false}if(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)){return true}return false}},function(e,r,t){var i=t(281).Writable;var n=t(9);var a=t(621);if(typeof Uint8Array==="undefined"){var u=t(372).Uint8Array}else{var u=Uint8Array}function ConcatStream(e,r){if(!(this instanceof ConcatStream))return new ConcatStream(e,r);if(typeof e==="function"){r=e;e={}}if(!e)e={};var t=e.encoding;var n=false;if(!t){n=true}else{t=String(t).toLowerCase();if(t==="u8"||t==="uint8"){t="uint8array"}}i.call(this,{objectMode:true});this.encoding=t;this.shouldInferEncoding=n;if(r)this.on("finish",function(){r(this.getBody())});this.body=[]}e.exports=ConcatStream;n(ConcatStream,i);ConcatStream.prototype._write=function(e,r,t){this.body.push(e);t()};ConcatStream.prototype.inferEncoding=function(e){var r=e===undefined?this.body[0]:e;if(Buffer.isBuffer(r))return"buffer";if(typeof Uint8Array!=="undefined"&&r instanceof Uint8Array)return"uint8array";if(Array.isArray(r))return"array";if(typeof r==="string")return"string";if(Object.prototype.toString.call(r)==="[object Object]")return"object";return"buffer"};ConcatStream.prototype.getBody=function(){if(!this.encoding&&this.body.length===0)return[];if(this.shouldInferEncoding)this.encoding=this.inferEncoding();if(this.encoding==="array")return arrayConcat(this.body);if(this.encoding==="string")return stringConcat(this.body);if(this.encoding==="buffer")return bufferConcat(this.body);if(this.encoding==="uint8array")return u8Concat(this.body);return this.body};var s=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"};function isArrayish(e){return/Array\]$/.test(Object.prototype.toString.call(e))}function isBufferish(e){return typeof e==="string"||isArrayish(e)||e&&typeof e.subarray==="function"}function stringConcat(e){var r=[];var t=false;for(var i=0;i Date: Fri, 15 Mar 2019 22:23:24 -0700 Subject: [PATCH 041/164] doc: simplify force-push guidelines Edit the guildelines for force-pushing in Collaborator Guide. There are no policy changes, but the material is simplified a bit and the sentences are now shorter. PR-URL: https://github.com/nodejs/node/pull/26699 Reviewed-By: Vse Mozhet Byt Reviewed-By: Daijiro Wachi Reviewed-By: Colin Ihrig Reviewed-By: Ruben Bridgewater --- COLLABORATOR_GUIDE.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/COLLABORATOR_GUIDE.md b/COLLABORATOR_GUIDE.md index f8d3629eaf6721..0290f14156ef33 100644 --- a/COLLABORATOR_GUIDE.md +++ b/COLLABORATOR_GUIDE.md @@ -624,13 +624,11 @@ git push upstream master * Ping a TSC member. * `#node-dev` on freenode * With `git`, there's a way to override remote trees by force pushing -(`git push -f`). This should generally be seen as forbidden (since -you're rewriting history on a repository other people are working -against) but is allowed for simpler slip-ups such as typos in commit -messages. However, you are only allowed to force push to any Node.js -branch within 10 minutes from your original push. If someone else -pushes to the branch or the 10 minute period passes, consider the -commit final. + (`git push -f`). This is generally forbidden as it creates conflicts in other + people's forks. It is permissible for simpler slip-ups such as typos in commit + messages. You are only allowed to force push to any Node.js branch within 10 + minutes from your original push. If someone else pushes to the branch or the + 10-minute period passes, consider the commit final. * Use `--force-with-lease` to minimize the chance of overwriting someone else's change. * Post to `#node-dev` (IRC) if you force push. From 30d7f67e0f84456e689fe88597886cac6984e8b1 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Fri, 15 Mar 2019 13:40:34 -0400 Subject: [PATCH 042/164] tools: update ESLint to 5.15.2 Update ESLint to 5.15.2 PR-URL: https://github.com/nodejs/node/pull/26687 Reviewed-By: Richard Lau Reviewed-By: Ruben Bridgewater Reviewed-By: Rich Trott --- tools/node_modules/eslint/README.md | 2 +- .../eslint/lib/config/config-file.js | 2 +- .../eslint/lib/config/config-validator.js | 24 +++++------ tools/node_modules/eslint/lib/linter.js | 20 ++++++++-- .../lib/rules/implicit-arrow-linebreak.js | 40 +++++++------------ .../eslint/lib/testers/rule-tester.js | 2 +- .../eslint/lib/util/glob-utils.js | 13 +++++- .../node_modules/eslint-scope/lib/scope.js | 9 ++--- .../node_modules/eslint-scope/package.json | 2 +- tools/node_modules/eslint/package.json | 8 ++-- 10 files changed, 66 insertions(+), 56 deletions(-) diff --git a/tools/node_modules/eslint/README.md b/tools/node_modules/eslint/README.md index 8ac9fbe4d5cb05..437794dc650483 100644 --- a/tools/node_modules/eslint/README.md +++ b/tools/node_modules/eslint/README.md @@ -268,7 +268,7 @@ The following companies, organizations, and individuals support ESLint's ongoing

Gold Sponsors

Airbnb Facebook Open Source Badoo

Silver Sponsors

AMP Project

Bronze Sponsors

-

Faithlife

+

Faithlife JSHeroes

## Technology Sponsors diff --git a/tools/node_modules/eslint/lib/config/config-file.js b/tools/node_modules/eslint/lib/config/config-file.js index 492800b7a3cf6a..80344f50973df2 100644 --- a/tools/node_modules/eslint/lib/config/config-file.js +++ b/tools/node_modules/eslint/lib/config/config-file.js @@ -541,7 +541,7 @@ function loadFromDisk(resolvedPath, configContext) { const ruleMap = configContext.linterContext.getRules(); // validate the configuration before continuing - validator.validate(config, resolvedPath.configFullName, ruleMap.get.bind(ruleMap), configContext.linterContext.environments); + validator.validate(config, ruleMap.get.bind(ruleMap), configContext.linterContext.environments, resolvedPath.configFullName); /* * If an `extends` property is defined, it represents a configuration file to use as diff --git a/tools/node_modules/eslint/lib/config/config-validator.js b/tools/node_modules/eslint/lib/config/config-validator.js index 2345b28893c6e4..386db77750238d 100644 --- a/tools/node_modules/eslint/lib/config/config-validator.js +++ b/tools/node_modules/eslint/lib/config/config-validator.js @@ -116,7 +116,7 @@ function validateRuleSchema(rule, localOptions) { * no source is prepended to the message. * @returns {void} */ -function validateRuleOptions(rule, ruleId, options, source) { +function validateRuleOptions(rule, ruleId, options, source = null) { if (!rule) { return; } @@ -140,11 +140,11 @@ function validateRuleOptions(rule, ruleId, options, source) { /** * Validates an environment object * @param {Object} environment The environment config object to validate. - * @param {string} source The name of the configuration source to report in any errors. * @param {Environments} envContext Env context + * @param {string} source The name of the configuration source to report in any errors. * @returns {void} */ -function validateEnvironment(environment, source, envContext) { +function validateEnvironment(environment, envContext, source = null) { // not having an environment is ok if (!environment) { @@ -163,11 +163,11 @@ function validateEnvironment(environment, source, envContext) { /** * Validates a rules config object * @param {Object} rulesConfig The rules config object to validate. - * @param {string} source The name of the configuration source to report in any errors. * @param {function(string): {create: Function}} ruleMapper A mapper function from strings to loaded rules + * @param {string} source The name of the configuration source to report in any errors. * @returns {void} */ -function validateRules(rulesConfig, source, ruleMapper) { +function validateRules(rulesConfig, ruleMapper, source = null) { if (!rulesConfig) { return; } @@ -228,7 +228,7 @@ const emitDeprecationWarning = lodash.memoize((source, errorCode) => { * @param {string} source The name of the configuration source to report in any errors. * @returns {void} */ -function validateConfigSchema(config, source) { +function validateConfigSchema(config, source = null) { validateSchema = validateSchema || ajv.compile(configSchema); if (!validateSchema(config)) { @@ -252,19 +252,19 @@ function validateConfigSchema(config, source) { /** * Validates an entire config object. * @param {Object} config The config object to validate. - * @param {string} source The name of the configuration source to report in any errors. * @param {function(string): {create: Function}} ruleMapper A mapper function from rule IDs to defined rules * @param {Environments} envContext The env context + * @param {string} source The name of the configuration source to report in any errors. * @returns {void} */ -function validate(config, source, ruleMapper, envContext) { +function validate(config, ruleMapper, envContext, source = null) { validateConfigSchema(config, source); - validateRules(config.rules, source, ruleMapper); - validateEnvironment(config.env, source, envContext); + validateRules(config.rules, ruleMapper, source); + validateEnvironment(config.env, envContext, source); for (const override of config.overrides || []) { - validateRules(override.rules, source, ruleMapper); - validateEnvironment(override.env, source, envContext); + validateRules(override.rules, ruleMapper, source); + validateEnvironment(override.env, envContext, source); } } diff --git a/tools/node_modules/eslint/lib/linter.js b/tools/node_modules/eslint/lib/linter.js index 88448d90f8aa5f..be38b99087de74 100644 --- a/tools/node_modules/eslint/lib/linter.js +++ b/tools/node_modules/eslint/lib/linter.js @@ -747,10 +747,15 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parser nodeQueue.forEach(traversalInfo => { currentNode = traversalInfo.node; - if (traversalInfo.isEntering) { - eventGenerator.enterNode(currentNode); - } else { - eventGenerator.leaveNode(currentNode); + try { + if (traversalInfo.isEntering) { + eventGenerator.enterNode(currentNode); + } else { + eventGenerator.leaveNode(currentNode); + } + } catch (err) { + err.currentNode = currentNode; + throw err; } }); @@ -901,8 +906,15 @@ module.exports = class Linter { options.filename ); } catch (err) { + err.message += `\nOccurred while linting ${options.filename}`; debug("An error occurred while traversing"); debug("Filename:", options.filename); + if (err.currentNode) { + const { line } = err.currentNode.loc.start; + + debug("Line:", line); + err.message += `:${line}`; + } debug("Parser Options:", parserOptions); debug("Parser Path:", parserName); debug("Settings:", settings); diff --git a/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js b/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js index ad0d70da66cc76..50f64561847b9f 100644 --- a/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js +++ b/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js @@ -6,8 +6,7 @@ const { isArrowToken, - isParenthesised, - isOpeningParenToken + isParenthesised } = require("../util/ast-utils"); //------------------------------------------------------------------------------ @@ -57,8 +56,7 @@ module.exports = { * @param {Integer} column The column number of the first token * @returns {string} A string of comment text joined by line breaks */ - function formatComments(comments, column) { - const whiteSpaces = " ".repeat(column); + function formatComments(comments) { return `${comments.map(comment => { @@ -67,12 +65,12 @@ module.exports = { } return `/*${comment.value}*/`; - }).join(`\n${whiteSpaces}`)}\n${whiteSpaces}`; + }).join("\n")}\n`; } /** * Finds the first token to prepend comments to depending on the parent type - * @param {Node} node The validated node + * @param {ASTNode} node The validated node * @returns {Token|Node} The node to prepend comments to */ function findFirstToken(node) { @@ -109,24 +107,19 @@ module.exports = { let followingBody = arrowBody; let currentArrow = arrow; - while (currentArrow) { + while (currentArrow && followingBody.type !== "BlockStatement") { if (!isParenthesised(sourceCode, followingBody)) { parenthesesFixes.push( fixer.insertTextAfter(currentArrow, " (") ); - const paramsToken = sourceCode.getTokenBefore(currentArrow, token => - isOpeningParenToken(token) || token.type === "Identifier"); - - const whiteSpaces = " ".repeat(paramsToken.loc.start.column); - - closingParentheses = `\n${whiteSpaces})${closingParentheses}`; + closingParentheses = `\n)${closingParentheses}`; } currentArrow = sourceCode.getTokenAfter(currentArrow, isArrowToken); if (currentArrow) { - followingBody = sourceCode.getTokenAfter(currentArrow, token => !isOpeningParenToken(token)); + followingBody = followingBody.body; } } @@ -137,10 +130,10 @@ module.exports = { /** * Autofixes the function body to collapse onto the same line as the arrow. - * If comments exist, prepends the comments before the arrow function. - * If the function body contains arrow functions, appends the function bodies with parentheses. + * If comments exist, checks if the function body contains arrow functions, and appends the body with parentheses. + * Otherwise, prepends the comments before the arrow function. * @param {Token} arrowToken The arrow token. - * @param {ASTNode} arrowBody the function body + * @param {ASTNode|Token} arrowBody the function body * @param {ASTNode} node The evaluated node * @returns {Function} autofixer -- validates the node to adhere to besides */ @@ -161,23 +154,18 @@ module.exports = { ) { // If any arrow functions follow, return the necessary parens fixes. - if (sourceCode.getTokenAfter(arrowToken, isArrowToken) && arrowBody.parent.parent.type !== "VariableDeclarator") { + if (node.body.type === "ArrowFunctionExpression" && + arrowBody.parent.parent.type !== "VariableDeclarator" + ) { return addParentheses(fixer, arrowToken, arrowBody); } - - // If any arrow functions precede, the necessary fixes have already been returned, so return null. - if (sourceCode.getTokenBefore(arrowToken, isArrowToken) && arrowBody.parent.parent.type !== "VariableDeclarator") { - return null; - } } const firstToken = findFirstToken(node); - const commentText = formatComments(comments, firstToken.loc.start.column); - const commentBeforeExpression = fixer.insertTextBeforeRange( firstToken.range, - commentText + formatComments(comments) ); return [placeBesides, commentBeforeExpression]; diff --git a/tools/node_modules/eslint/lib/testers/rule-tester.js b/tools/node_modules/eslint/lib/testers/rule-tester.js index 6d1bba989fdeea..f1d915531323a0 100644 --- a/tools/node_modules/eslint/lib/testers/rule-tester.js +++ b/tools/node_modules/eslint/lib/testers/rule-tester.js @@ -379,7 +379,7 @@ class RuleTester { } } - validator.validate(config, "rule-tester", ruleMap.get.bind(ruleMap), new Environments()); + validator.validate(config, ruleMap.get.bind(ruleMap), new Environments(), "rule-tester"); return { messages: linter.verify(code, config, filename, true), diff --git a/tools/node_modules/eslint/lib/util/glob-utils.js b/tools/node_modules/eslint/lib/util/glob-utils.js index b05c354439dc42..33cb8e7c885a17 100644 --- a/tools/node_modules/eslint/lib/util/glob-utils.js +++ b/tools/node_modules/eslint/lib/util/glob-utils.js @@ -70,6 +70,10 @@ function processPath(options) { * @private */ return function(pathname) { + if (pathname === "") { + return ""; + } + let newPath = pathname; const resolvedPath = path.resolve(cwd, pathname); @@ -201,6 +205,13 @@ function listFilesToProcess(globPatterns, providedOptions) { debug("Creating list of files to process."); const resolvedPathsByGlobPattern = resolvedGlobPatterns.map(pattern => { + if (pattern === "") { + return [{ + filename: "", + behavior: SILENTLY_IGNORE + }]; + } + const file = path.resolve(cwd, pattern); if (options.globInputPaths === false || (fs.existsSync(file) && fs.statSync(file).isFile())) { @@ -240,7 +251,7 @@ function listFilesToProcess(globPatterns, providedOptions) { }); const allPathDescriptors = resolvedPathsByGlobPattern.reduce((pathsForAllGlobs, pathsForCurrentGlob, index) => { - if (pathsForCurrentGlob.every(pathDescriptor => pathDescriptor.behavior === SILENTLY_IGNORE)) { + if (pathsForCurrentGlob.every(pathDescriptor => pathDescriptor.behavior === SILENTLY_IGNORE && pathDescriptor.filename !== "")) { throw new (pathsForCurrentGlob.length ? AllFilesIgnoredError : NoFilesFoundError)(globPatterns[index]); } diff --git a/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope.js b/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope.js index b3c5040bb1ae1c..f0c3006c601f62 100644 --- a/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope.js +++ b/tools/node_modules/eslint/node_modules/eslint-scope/lib/scope.js @@ -49,11 +49,6 @@ function isStrictScope(scope, block, isMethodDefinition, useDirective) { return true; } - // ArrowFunctionExpression's scope is always strict scope. - if (block.type === Syntax.ArrowFunctionExpression) { - return true; - } - if (isMethodDefinition) { return true; } @@ -67,6 +62,10 @@ function isStrictScope(scope, block, isMethodDefinition, useDirective) { } if (scope.type === "function") { + if (block.type === Syntax.ArrowFunctionExpression && block.body.type !== Syntax.BlockStatement) { + return false; + } + if (block.type === Syntax.Program) { body = block; } else { diff --git a/tools/node_modules/eslint/node_modules/eslint-scope/package.json b/tools/node_modules/eslint/node_modules/eslint-scope/package.json index 1d38e549770ca7..f3239af383b050 100644 --- a/tools/node_modules/eslint/node_modules/eslint-scope/package.json +++ b/tools/node_modules/eslint/node_modules/eslint-scope/package.json @@ -47,5 +47,5 @@ "publish-release": "eslint-publish-release", "test": "node Makefile.js test" }, - "version": "4.0.2" + "version": "4.0.3" } \ No newline at end of file diff --git a/tools/node_modules/eslint/package.json b/tools/node_modules/eslint/package.json index c07c99868f1a43..885af12a72ba4d 100644 --- a/tools/node_modules/eslint/package.json +++ b/tools/node_modules/eslint/package.json @@ -18,7 +18,7 @@ "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-plugin-markdown": "^1.0.0", - "eslint-scope": "^4.0.2", + "eslint-scope": "^4.0.3", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", "espree": "^5.0.1", @@ -64,11 +64,11 @@ "coveralls": "^3.0.1", "dateformat": "^3.0.3", "ejs": "^2.6.1", + "eslint-config-eslint": "file:packages/eslint-config-eslint", "eslint-plugin-eslint-plugin": "^2.0.1", + "eslint-plugin-internal-rules": "file:tools/internal-rules", "eslint-plugin-node": "^8.0.0", - "eslint-plugin-rulesdir": "^0.1.0", "eslint-release": "^1.2.0", - "eslint-rule-composer": "^0.3.0", "eslump": "^2.0.0", "esprima": "^4.0.1", "istanbul": "^0.4.5", @@ -135,5 +135,5 @@ "test": "node Makefile.js test", "webpack": "node Makefile.js webpack" }, - "version": "5.15.1" + "version": "5.15.2" } \ No newline at end of file From 15ec3819440f266e7d548709ce2c097f8dfd68d8 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Wed, 13 Mar 2019 11:46:47 +0100 Subject: [PATCH 043/164] src: use EVPKeyPointer in more places MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rejoice, the code base is now free of manual EVP_PKEY_free() calls! PR-URL: https://github.com/nodejs/node/pull/26632 Reviewed-By: Colin Ihrig Reviewed-By: Tobias Nießen Reviewed-By: Minwoo Jung Reviewed-By: James M Snell --- src/node_crypto.cc | 71 ++++++++++++++++++---------------------------- src/node_crypto.h | 14 ++++----- 2 files changed, 33 insertions(+), 52 deletions(-) diff --git a/src/node_crypto.cc b/src/node_crypto.cc index c6de29693ffc53..885f02b8436cbd 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -2206,16 +2206,17 @@ void SSLWrap::GetEphemeralKeyInfo( Local info = Object::New(env->isolate()); - EVP_PKEY* key; - - if (SSL_get_server_tmp_key(w->ssl_.get(), &key)) { - int kid = EVP_PKEY_id(key); + EVP_PKEY* raw_key; + if (SSL_get_server_tmp_key(w->ssl_.get(), &raw_key)) { + EVPKeyPointer key(raw_key); + int kid = EVP_PKEY_id(key.get()); switch (kid) { case EVP_PKEY_DH: info->Set(context, env->type_string(), FIXED_ONE_BYTE_STRING(env->isolate(), "DH")).FromJust(); info->Set(context, env->size_string(), - Integer::New(env->isolate(), EVP_PKEY_bits(key))).FromJust(); + Integer::New(env->isolate(), EVP_PKEY_bits(key.get()))) + .FromJust(); break; case EVP_PKEY_EC: // TODO(shigeki) Change this to EVP_PKEY_X25519 and add EVP_PKEY_X448 @@ -2224,7 +2225,7 @@ void SSLWrap::GetEphemeralKeyInfo( { const char* curve_name; if (kid == EVP_PKEY_EC) { - EC_KEY* ec = EVP_PKEY_get1_EC_KEY(key); + EC_KEY* ec = EVP_PKEY_get1_EC_KEY(key.get()); int nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(ec)); curve_name = OBJ_nid2sn(nid); EC_KEY_free(ec); @@ -2238,11 +2239,10 @@ void SSLWrap::GetEphemeralKeyInfo( curve_name)).FromJust(); info->Set(context, env->size_string(), Integer::New(env->isolate(), - EVP_PKEY_bits(key))).FromJust(); + EVP_PKEY_bits(key.get()))).FromJust(); } break; } - EVP_PKEY_free(key); } return args.GetReturnValue().Set(info); @@ -3110,7 +3110,7 @@ static ManagedEVPPKey GetPrivateKeyFromJs( ParsePrivateKey(config.Release(), key.get(), key.size()); if (!pkey) ThrowCryptoError(env, ERR_get_error(), "Failed to read private key"); - return ManagedEVPPKey(pkey.release()); + return ManagedEVPPKey(std::move(pkey)); } else { CHECK(args[*offset]->IsObject() && allow_key_object); KeyObject* key; @@ -3169,7 +3169,7 @@ static ManagedEVPPKey GetPublicOrPrivateKeyFromJs( } if (!pkey) ThrowCryptoError(env, ERR_get_error(), "Failed to read asymmetric key"); - return ManagedEVPPKey(pkey.release()); + return ManagedEVPPKey(std::move(pkey)); } else { CHECK(args[*offset]->IsObject()); KeyObject* key = Unwrap(args[*offset].As()); @@ -3259,42 +3259,27 @@ static MaybeLocal WritePrivateKey( return BIOToStringOrBuffer(env, bio.get(), config.format_); } -ManagedEVPPKey::ManagedEVPPKey() : pkey_(nullptr) {} - -ManagedEVPPKey::ManagedEVPPKey(EVP_PKEY* pkey) : pkey_(pkey) {} +ManagedEVPPKey::ManagedEVPPKey(EVPKeyPointer&& pkey) : pkey_(std::move(pkey)) {} -ManagedEVPPKey::ManagedEVPPKey(const ManagedEVPPKey& key) : pkey_(nullptr) { - *this = key; +ManagedEVPPKey::ManagedEVPPKey(const ManagedEVPPKey& that) { + *this = that; } -ManagedEVPPKey::ManagedEVPPKey(ManagedEVPPKey&& key) { - *this = key; -} +ManagedEVPPKey& ManagedEVPPKey::operator=(const ManagedEVPPKey& that) { + pkey_.reset(that.get()); -ManagedEVPPKey::~ManagedEVPPKey() { - EVP_PKEY_free(pkey_); -} - -ManagedEVPPKey& ManagedEVPPKey::operator=(const ManagedEVPPKey& key) { - EVP_PKEY_free(pkey_); - pkey_ = key.pkey_; - EVP_PKEY_up_ref(pkey_); - return *this; -} + if (pkey_) + EVP_PKEY_up_ref(pkey_.get()); -ManagedEVPPKey& ManagedEVPPKey::operator=(ManagedEVPPKey&& key) { - EVP_PKEY_free(pkey_); - pkey_ = key.pkey_; - key.pkey_ = nullptr; return *this; } ManagedEVPPKey::operator bool() const { - return pkey_ != nullptr; + return !!pkey_; } EVP_PKEY* ManagedEVPPKey::get() const { - return pkey_; + return pkey_.get(); } Local KeyObject::Initialize(Environment* env, Local target) { @@ -5672,13 +5657,13 @@ class DSAKeyPairGenerationConfig : public KeyPairGenerationConfig { } } - EVP_PKEY* params = nullptr; - if (EVP_PKEY_paramgen(param_ctx.get(), ¶ms) <= 0) + EVP_PKEY* raw_params = nullptr; + if (EVP_PKEY_paramgen(param_ctx.get(), &raw_params) <= 0) return nullptr; + EVPKeyPointer params(raw_params); param_ctx.reset(); - EVPKeyCtxPointer key_ctx(EVP_PKEY_CTX_new(params, nullptr)); - EVP_PKEY_free(params); + EVPKeyCtxPointer key_ctx(EVP_PKEY_CTX_new(params.get(), nullptr)); return key_ctx; } @@ -5707,13 +5692,13 @@ class ECKeyPairGenerationConfig : public KeyPairGenerationConfig { if (EVP_PKEY_CTX_set_ec_param_enc(param_ctx.get(), param_encoding_) <= 0) return nullptr; - EVP_PKEY* params = nullptr; - if (EVP_PKEY_paramgen(param_ctx.get(), ¶ms) <= 0) + EVP_PKEY* raw_params = nullptr; + if (EVP_PKEY_paramgen(param_ctx.get(), &raw_params) <= 0) return nullptr; + EVPKeyPointer params(raw_params); param_ctx.reset(); - EVPKeyCtxPointer key_ctx(EVP_PKEY_CTX_new(params, nullptr)); - EVP_PKEY_free(params); + EVPKeyCtxPointer key_ctx(EVP_PKEY_CTX_new(params.get(), nullptr)); return key_ctx; } @@ -5761,7 +5746,7 @@ class GenerateKeyPairJob : public CryptoJob { EVP_PKEY* pkey = nullptr; if (EVP_PKEY_keygen(ctx.get(), &pkey) != 1) return false; - pkey_ = ManagedEVPPKey(pkey); + pkey_ = ManagedEVPPKey(EVPKeyPointer(pkey)); return true; } diff --git a/src/node_crypto.h b/src/node_crypto.h index 1c66b318a2e97d..a85b0cdeb98b82 100644 --- a/src/node_crypto.h +++ b/src/node_crypto.h @@ -421,20 +421,16 @@ enum KeyType { // use. class ManagedEVPPKey { public: - ManagedEVPPKey(); - explicit ManagedEVPPKey(EVP_PKEY* pkey); - ManagedEVPPKey(const ManagedEVPPKey& key); - ManagedEVPPKey(ManagedEVPPKey&& key); - ~ManagedEVPPKey(); - - ManagedEVPPKey& operator=(const ManagedEVPPKey& key); - ManagedEVPPKey& operator=(ManagedEVPPKey&& key); + ManagedEVPPKey() = default; + explicit ManagedEVPPKey(EVPKeyPointer&& pkey); + ManagedEVPPKey(const ManagedEVPPKey& that); + ManagedEVPPKey& operator=(const ManagedEVPPKey& that); operator bool() const; EVP_PKEY* get() const; private: - EVP_PKEY* pkey_; + EVPKeyPointer pkey_; }; class KeyObject : public BaseObject { From 6744b8cb435f37042f9bd41d32c0a274afd5815f Mon Sep 17 00:00:00 2001 From: ZYSzys Date: Mon, 18 Mar 2019 19:04:46 +0800 Subject: [PATCH 044/164] doc: add ZYSzys to collaborators Fixes: https://github.com/nodejs/node/issues/26440 PR-URL: https://github.com/nodejs/node/pull/26730 Fixes: https://github.com/nodejs/node/issues/26440 Reviewed-By: Joyee Cheung Reviewed-By: Anna Henningsen --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8b40bd516fcd78..d31f4dac48a6e0 100644 --- a/README.md +++ b/README.md @@ -488,6 +488,8 @@ For information about the governance of the Node.js project, see **Yorkie Liu** <yorkiefixer@gmail.com> * [yosuke-furukawa](https://github.com/yosuke-furukawa) - **Yosuke Furukawa** <yosuke.furukawa@gmail.com> +* [ZYSzys](https://github.com/ZYSzys) - +**Yongsheng Zhang** <zyszys98@gmail.com> (he/him) ### Collaborator Emeriti From eafbfadec35748430fee051b604d80037a573308 Mon Sep 17 00:00:00 2001 From: gengjiawen Date: Fri, 15 Mar 2019 20:53:22 +0800 Subject: [PATCH 045/164] src: elevate v8 namespaces for PropertyAttribute MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/26681 Reviewed-By: James M Snell Reviewed-By: Michaël Zasso Reviewed-By: Beth Griggs Reviewed-By: Colin Ihrig Reviewed-By: Ruben Bridgewater Reviewed-By: Yongsheng Zhang --- src/fs_event_wrap.cc | 2 +- src/node_file.cc | 7 +++++-- src/stream_base.cc | 7 +++++-- src/udp_wrap.cc | 4 +++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc index 8009be6a10ad03..acdaff586cec50 100644 --- a/src/fs_event_wrap.cc +++ b/src/fs_event_wrap.cc @@ -118,7 +118,7 @@ void FSEventWrap::Initialize(Local target, FIXED_ONE_BYTE_STRING(env->isolate(), "initialized"), get_initialized_templ, Local(), - static_cast(ReadOnly | DontDelete | v8::DontEnum)); + static_cast(ReadOnly | DontDelete | DontEnum)); target->Set(env->context(), fsevent_string, diff --git a/src/node_file.cc b/src/node_file.cc index 79ba2c21cf1700..dbaa089ef21689 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -53,6 +53,7 @@ namespace fs { using v8::Array; using v8::BigUint64Array; using v8::Context; +using v8::DontDelete; using v8::EscapableHandleScope; using v8::Float64Array; using v8::Function; @@ -68,6 +69,8 @@ using v8::Number; using v8::Object; using v8::ObjectTemplate; using v8::Promise; +using v8::PropertyAttribute; +using v8::ReadOnly; using v8::String; using v8::Symbol; using v8::Uint32; @@ -120,8 +123,8 @@ FileHandle* FileHandle::New(Environment* env, int fd, Local obj) { .ToLocal(&obj)) { return nullptr; } - v8::PropertyAttribute attr = - static_cast(v8::ReadOnly | v8::DontDelete); + PropertyAttribute attr = + static_cast(ReadOnly | DontDelete); if (obj->DefineOwnProperty(env->context(), env->fd_string(), Integer::New(env->isolate(), fd), diff --git a/src/stream_base.cc b/src/stream_base.cc index 7aef9ba96d14a0..3874d2d9af0456 100644 --- a/src/stream_base.cc +++ b/src/stream_base.cc @@ -18,12 +18,15 @@ namespace node { using v8::Array; using v8::ArrayBuffer; using v8::Context; +using v8::DontDelete; +using v8::DontEnum; using v8::External; using v8::FunctionCallbackInfo; using v8::HandleScope; using v8::Integer; using v8::Local; using v8::Object; +using v8::ReadOnly; using v8::String; using v8::Value; @@ -347,8 +350,8 @@ void StreamBase::AddMethod(Environment* env, void StreamBase::AddMethods(Environment* env, Local t) { HandleScope scope(env->isolate()); - enum PropertyAttribute attributes = static_cast( - v8::ReadOnly | v8::DontDelete | v8::DontEnum); + enum PropertyAttribute attributes = + static_cast(ReadOnly | DontDelete | DontEnum); Local sig = Signature::New(env->isolate(), t); AddMethod(env, sig, attributes, t, GetFD, env->fd_string()); diff --git a/src/udp_wrap.cc b/src/udp_wrap.cc index 82b1dfb54c69d1..f1693aa39b9735 100644 --- a/src/udp_wrap.cc +++ b/src/udp_wrap.cc @@ -30,6 +30,7 @@ namespace node { using v8::Array; using v8::Context; +using v8::DontDelete; using v8::FunctionCallbackInfo; using v8::FunctionTemplate; using v8::HandleScope; @@ -38,6 +39,7 @@ using v8::Local; using v8::MaybeLocal; using v8::Object; using v8::PropertyAttribute; +using v8::ReadOnly; using v8::Signature; using v8::String; using v8::Uint32; @@ -98,7 +100,7 @@ void UDPWrap::Initialize(Local target, t->SetClassName(udpString); enum PropertyAttribute attributes = - static_cast(v8::ReadOnly | v8::DontDelete); + static_cast(ReadOnly | DontDelete); Local signature = Signature::New(env->isolate(), t); From 8ba0da57a4c486ba5b4058d1ab5657d87ba5d60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Mon, 18 Mar 2019 13:50:26 +0100 Subject: [PATCH 046/164] src,win: fix usage of deprecated v8::Object::Set PR-URL: https://github.com/nodejs/node/pull/26735 Refs: https://github.com/nodejs/node/issues/26733 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann Reviewed-By: Richard Lau --- src/api/exceptions.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/api/exceptions.cc b/src/api/exceptions.cc index ceac9374082ad8..74987c2673bd33 100644 --- a/src/api/exceptions.cc +++ b/src/api/exceptions.cc @@ -213,16 +213,22 @@ Local WinapiErrnoException(Isolate* isolate, } Local obj = e.As(); - obj->Set(env->errno_string(), Integer::New(isolate, errorno)); + obj->Set(env->context(), env->errno_string(), Integer::New(isolate, errorno)) + .FromJust(); if (path != nullptr) { - obj->Set(env->path_string(), + obj->Set(env->context(), + env->path_string(), String::NewFromUtf8(isolate, path, NewStringType::kNormal) - .ToLocalChecked()); + .ToLocalChecked()) + .FromJust(); } if (syscall != nullptr) { - obj->Set(env->syscall_string(), OneByteString(isolate, syscall)); + obj->Set(env->context(), + env->syscall_string(), + OneByteString(isolate, syscall)) + .FromJust(); } if (must_free) From 31995e4cd291de045fd1bf0b5e3a831b6645353a Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Thu, 14 Mar 2019 12:36:59 +0100 Subject: [PATCH 047/164] test: fix intrinsics test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So far this test did not verify that the call did indeed fail since the error case was not checked. This makes sure the error is indeed thrown as expected. PR-URL: https://github.com/nodejs/node/pull/26660 Reviewed-By: Michaël Zasso Reviewed-By: Richard Lau Reviewed-By: Denys Otrishko Reviewed-By: Luigi Pinca Reviewed-By: Rich Trott --- test/parallel/test-freeze-intrinsics.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/parallel/test-freeze-intrinsics.js b/test/parallel/test-freeze-intrinsics.js index bb94946d2d0f3c..19e5319286371f 100644 --- a/test/parallel/test-freeze-intrinsics.js +++ b/test/parallel/test-freeze-intrinsics.js @@ -3,8 +3,7 @@ require('../common'); const assert = require('assert'); -try { - Object.defineProperty = 'asdf'; - assert(false); -} catch { -} +assert.throws( + () => Object.defineProperty = 'asdf', + TypeError +); From d075814149edd5ab33d076c580089d5bb532c9b8 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Fri, 15 Mar 2019 08:37:59 +0800 Subject: [PATCH 048/164] src: replace heap_utils.createHeapSnapshot with v8.getHeapSnapshot Remove the internal testing utility and use the public API instead. PR-URL: https://github.com/nodejs/node/pull/26671 Reviewed-By: Richard Lau Reviewed-By: James M Snell Reviewed-By: Ben Noordhuis Reviewed-By: Anna Henningsen Reviewed-By: Minwoo Jung Reviewed-By: Colin Ihrig Reviewed-By: Ruben Bridgewater --- lib/internal/test/heap.js | 89 --------------------------------------- node.gyp | 1 - src/heap_utils.cc | 48 --------------------- test/common/heap.js | 80 +++++++++++++++++++++++++++++++++-- 4 files changed, 77 insertions(+), 141 deletions(-) delete mode 100644 lib/internal/test/heap.js diff --git a/lib/internal/test/heap.js b/lib/internal/test/heap.js deleted file mode 100644 index 6565e8fbd8ef13..00000000000000 --- a/lib/internal/test/heap.js +++ /dev/null @@ -1,89 +0,0 @@ -'use strict'; - -process.emitWarning( - 'These APIs are for internal testing only. Do not use them.', - 'internal/test/heap'); - -const { - createHeapSnapshot, - buildEmbedderGraph -} = internalBinding('heap_utils'); -const assert = require('internal/assert'); - -// This is not suitable for production code. It creates a full V8 heap dump, -// parses it as JSON, and then creates complex objects from it, leading -// to significantly increased memory usage. -function createJSHeapSnapshot() { - const dump = createHeapSnapshot(); - const meta = dump.snapshot.meta; - - const nodes = - readHeapInfo(dump.nodes, meta.node_fields, meta.node_types, dump.strings); - const edges = - readHeapInfo(dump.edges, meta.edge_fields, meta.edge_types, dump.strings); - - for (const node of nodes) { - node.incomingEdges = []; - node.outgoingEdges = []; - } - - let fromNodeIndex = 0; - let edgeIndex = 0; - for (const { type, name_or_index, to_node } of edges) { - while (edgeIndex === nodes[fromNodeIndex].edge_count) { - edgeIndex = 0; - fromNodeIndex++; - } - const toNode = nodes[to_node / meta.node_fields.length]; - const fromNode = nodes[fromNodeIndex]; - const edge = { - type, - to: toNode, - from: fromNode, - name: typeof name_or_index === 'string' ? name_or_index : null - }; - toNode.incomingEdges.push(edge); - fromNode.outgoingEdges.push(edge); - edgeIndex++; - } - - for (const node of nodes) { - assert(node.edge_count === node.outgoingEdges.length, - `${node.edge_count} !== ${node.outgoingEdges.length}`); - } - return nodes; -} - -function readHeapInfo(raw, fields, types, strings) { - const items = []; - - for (var i = 0; i < raw.length; i += fields.length) { - const item = {}; - for (var j = 0; j < fields.length; j++) { - const name = fields[j]; - let type = types[j]; - if (Array.isArray(type)) { - item[name] = type[raw[i + j]]; - } else if (name === 'name_or_index') { // type === 'string_or_number' - if (item.type === 'element' || item.type === 'hidden') - type = 'number'; - else - type = 'string'; - } - - if (type === 'string') { - item[name] = strings[raw[i + j]]; - } else if (type === 'number' || type === 'node') { - item[name] = raw[i + j]; - } - } - items.push(item); - } - - return items; -} - -module.exports = { - createJSHeapSnapshot, - buildEmbedderGraph -}; diff --git a/node.gyp b/node.gyp index d079b20676e346..804da3941c3cc2 100644 --- a/node.gyp +++ b/node.gyp @@ -179,7 +179,6 @@ 'lib/internal/repl/utils.js', 'lib/internal/socket_list.js', 'lib/internal/test/binding.js', - 'lib/internal/test/heap.js', 'lib/internal/timers.js', 'lib/internal/tls.js', 'lib/internal/trace_events_async_hooks.js', diff --git a/src/heap_utils.cc b/src/heap_utils.cc index c54f0c41d7b09c..6690abc78d6c67 100644 --- a/src/heap_utils.cc +++ b/src/heap_utils.cc @@ -200,40 +200,6 @@ void BuildEmbedderGraph(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(ret); } - -class BufferOutputStream : public v8::OutputStream { - public: - BufferOutputStream() : buffer_(new JSString()) {} - - void EndOfStream() override {} - int GetChunkSize() override { return 1024 * 1024; } - WriteResult WriteAsciiChunk(char* data, int size) override { - buffer_->Append(data, size); - return kContinue; - } - - Local ToString(Isolate* isolate) { - return String::NewExternalOneByte(isolate, - buffer_.release()).ToLocalChecked(); - } - - private: - class JSString : public String::ExternalOneByteStringResource { - public: - void Append(char* data, size_t count) { - store_.append(data, count); - } - - const char* data() const override { return store_.data(); } - size_t length() const override { return store_.size(); } - - private: - std::string store_; - }; - - std::unique_ptr buffer_; -}; - namespace { class FileOutputStream : public v8::OutputStream { public: @@ -370,17 +336,6 @@ inline bool WriteSnapshot(Isolate* isolate, const char* filename) { } // namespace -void CreateHeapSnapshot(const FunctionCallbackInfo& args) { - Isolate* isolate = args.GetIsolate(); - BufferOutputStream out; - TakeSnapshot(isolate, &out); - Local ret; - if (JSON::Parse(isolate->GetCurrentContext(), - out.ToString(isolate)).ToLocal(&ret)) { - args.GetReturnValue().Set(ret); - } -} - void CreateHeapSnapshotStream(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); HandleScope scope(env->isolate()); @@ -430,9 +385,6 @@ void Initialize(Local target, env->SetMethodNoSideEffect(target, "buildEmbedderGraph", BuildEmbedderGraph); - env->SetMethodNoSideEffect(target, - "createHeapSnapshot", - CreateHeapSnapshot); env->SetMethodNoSideEffect(target, "triggerHeapSnapshot", TriggerHeapSnapshot); diff --git a/test/common/heap.js b/test/common/heap.js index 8bda1284bd7e57..97686e05a7fccf 100644 --- a/test/common/heap.js +++ b/test/common/heap.js @@ -3,14 +3,88 @@ const assert = require('assert'); const util = require('util'); -let internalTestHeap; +let internalBinding; try { - internalTestHeap = require('internal/test/heap'); + internalBinding = require('internal/test/binding').internalBinding; } catch (e) { console.log('using `test/common/heap.js` requires `--expose-internals`'); throw e; } -const { createJSHeapSnapshot, buildEmbedderGraph } = internalTestHeap; + +const { buildEmbedderGraph } = internalBinding('heap_utils'); +const { getHeapSnapshot } = require('v8'); + +function createJSHeapSnapshot() { + const stream = getHeapSnapshot(); + stream.pause(); + const dump = JSON.parse(stream.read()); + const meta = dump.snapshot.meta; + + const nodes = + readHeapInfo(dump.nodes, meta.node_fields, meta.node_types, dump.strings); + const edges = + readHeapInfo(dump.edges, meta.edge_fields, meta.edge_types, dump.strings); + + for (const node of nodes) { + node.incomingEdges = []; + node.outgoingEdges = []; + } + + let fromNodeIndex = 0; + let edgeIndex = 0; + for (const { type, name_or_index, to_node } of edges) { + while (edgeIndex === nodes[fromNodeIndex].edge_count) { + edgeIndex = 0; + fromNodeIndex++; + } + const toNode = nodes[to_node / meta.node_fields.length]; + const fromNode = nodes[fromNodeIndex]; + const edge = { + type, + to: toNode, + from: fromNode, + name: typeof name_or_index === 'string' ? name_or_index : null + }; + toNode.incomingEdges.push(edge); + fromNode.outgoingEdges.push(edge); + edgeIndex++; + } + + for (const node of nodes) { + assert.strictEqual(node.edge_count, node.outgoingEdges.length, + `${node.edge_count} !== ${node.outgoingEdges.length}`); + } + return nodes; +} + +function readHeapInfo(raw, fields, types, strings) { + const items = []; + + for (let i = 0; i < raw.length; i += fields.length) { + const item = {}; + for (let j = 0; j < fields.length; j++) { + const name = fields[j]; + let type = types[j]; + if (Array.isArray(type)) { + item[name] = type[raw[i + j]]; + } else if (name === 'name_or_index') { // type === 'string_or_number' + if (item.type === 'element' || item.type === 'hidden') + type = 'number'; + else + type = 'string'; + } + + if (type === 'string') { + item[name] = strings[raw[i + j]]; + } else if (type === 'number' || type === 'node') { + item[name] = raw[i + j]; + } + } + items.push(item); + } + + return items; +} function inspectNode(snapshot) { return util.inspect(snapshot, { depth: 4 }); From 2d689888b80d4009c71d02515a58cd618d37e17f Mon Sep 17 00:00:00 2001 From: cjihrig Date: Sat, 16 Mar 2019 13:45:54 -0400 Subject: [PATCH 049/164] test: update test for libuv update Starting in libuv 1.27.0, test-dgram-address.js should expect EBADF instead of EINVAL. PR-URL: https://github.com/nodejs/node/pull/26707 Reviewed-By: Santiago Gimeno Reviewed-By: Anna Henningsen Reviewed-By: Richard Lau Reviewed-By: Refael Ackermann Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- test/parallel/test-dgram-address.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/parallel/test-dgram-address.js b/test/parallel/test-dgram-address.js index f14b910fc27a2b..2a41755e1c2ea6 100644 --- a/test/parallel/test-dgram-address.js +++ b/test/parallel/test-dgram-address.js @@ -77,5 +77,5 @@ if (common.hasIPv6) { assert.throws(() => { socket.address(); - }, /^Error: getsockname EINVAL$/); + }, /^Error: getsockname EBADF$/); } From 54ffe61c56129cca2e2064c2688c303f1c1606d9 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Sat, 16 Mar 2019 14:38:18 -0400 Subject: [PATCH 050/164] deps: upgrade to libuv 1.27.0 Notable changes: - `statx()` is used to retrieve file birth times on supported platforms. - Improved support of running under Windows safe mode. - Add support for UDP connected sockets. Several functions can now return `UV_EBADF` instead of `UV_EINVAL`. - SunOS support is improved. PR-URL: https://github.com/nodejs/node/pull/26707 Reviewed-By: Santiago Gimeno Reviewed-By: Anna Henningsen Reviewed-By: Richard Lau Reviewed-By: Refael Ackermann Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- deps/uv/AUTHORS | 2 + deps/uv/CMakeLists.txt | 6 +- deps/uv/ChangeLog | 59 +++++++++ deps/uv/Makefile.am | 24 +++- deps/uv/README.md | 2 +- deps/uv/configure.ac | 21 ++-- deps/uv/docs/src/loop.rst | 2 + deps/uv/docs/src/signal.rst | 24 +++- deps/uv/docs/src/threading.rst | 4 +- deps/uv/docs/src/udp.rst | 54 ++++++++ deps/uv/include/uv.h | 4 + deps/uv/include/uv/version.h | 2 +- deps/uv/src/fs-poll.c | 63 +++++++--- deps/uv/src/unix/atomic-ops.h | 4 +- deps/uv/src/unix/core.c | 26 +++- deps/uv/src/unix/fs.c | 82 +++++++++++- deps/uv/src/unix/getaddrinfo.c | 2 + deps/uv/src/unix/internal.h | 10 +- deps/uv/src/unix/kqueue.c | 5 +- deps/uv/src/unix/linux-syscalls.c | 28 +++++ deps/uv/src/unix/linux-syscalls.h | 35 ++++++ deps/uv/src/unix/pipe.c | 10 +- deps/uv/src/unix/sunos.c | 18 ++- deps/uv/src/unix/tcp.c | 34 ++--- deps/uv/src/unix/thread.c | 2 + deps/uv/src/unix/udp.c | 115 +++++++++++++---- deps/uv/src/uv-common.c | 92 +++++++++++--- deps/uv/src/uv-common.h | 9 ++ deps/uv/src/uv-data-getter-setters.c | 2 +- deps/uv/src/win/core.c | 27 ++++ deps/uv/src/win/handle.c | 1 - deps/uv/src/win/internal.h | 8 ++ deps/uv/src/win/tcp.c | 40 ++---- deps/uv/src/win/udp.c | 103 ++++++++++++--- deps/uv/src/win/winsock.c | 15 ++- deps/uv/test/run-tests.c | 7 +- deps/uv/test/task.h | 3 +- deps/uv/test/test-fs-copyfile.c | 3 +- deps/uv/test/test-fs-poll.c | 74 +++++++++++ deps/uv/test/test-fs.c | 13 +- deps/uv/test/test-hrtime.c | 8 +- deps/uv/test/test-ipc.c | 2 +- deps/uv/test/test-list.h | 13 ++ deps/uv/test/test-loop-handles.c | 2 +- deps/uv/test/test-poll.c | 12 +- deps/uv/test/test-spawn.c | 10 +- deps/uv/test/test-udp-connect.c | 182 +++++++++++++++++++++++++++ deps/uv/test/test-udp-open.c | 81 ++++++++++++ deps/uv/test/test.gyp | 1 + 49 files changed, 1146 insertions(+), 200 deletions(-) create mode 100644 deps/uv/test/test-udp-connect.c diff --git a/deps/uv/AUTHORS b/deps/uv/AUTHORS index 25447eb0e6e834..2c1d8ae68568d3 100644 --- a/deps/uv/AUTHORS +++ b/deps/uv/AUTHORS @@ -369,3 +369,5 @@ Kevin Adler Stephen Belanger yeyuanfeng erw7 +Thomas Karl Pietrowski +evgley diff --git a/deps/uv/CMakeLists.txt b/deps/uv/CMakeLists.txt index 5dc61eb825a2c5..01a7c47e578452 100644 --- a/deps/uv/CMakeLists.txt +++ b/deps/uv/CMakeLists.txt @@ -153,6 +153,7 @@ set(uv_test_sources test/test-tty.c test/test-udp-alloc-cb-fail.c test/test-udp-bind.c + test/test-udp-connect.c test/test-udp-create-socket-early.c test/test-udp-dgram-too-big.c test/test-udp-ipv6.c @@ -351,7 +352,8 @@ target_link_libraries(uv_a ${uv_libraries}) if(BUILD_TESTING) include(CTest) add_executable(uv_run_tests ${uv_test_sources}) - target_compile_definitions(uv_run_tests PRIVATE ${uv_defines}) + target_compile_definitions(uv_run_tests + PRIVATE ${uv_defines} USING_UV_SHARED=1) target_compile_options(uv_run_tests PRIVATE ${uv_cflags}) target_include_directories(uv_run_tests PRIVATE include) target_link_libraries(uv_run_tests uv ${uv_test_libraries}) @@ -383,7 +385,7 @@ if(UNIX) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) - install(FILES LICENSE ${CMAKE_CURRENT_BINARY_DIR}/libuv.pc + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libuv.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(TARGETS uv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(TARGETS uv_a ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/deps/uv/ChangeLog b/deps/uv/ChangeLog index 7f02045e03ef7b..62d6073d7d4340 100644 --- a/deps/uv/ChangeLog +++ b/deps/uv/ChangeLog @@ -1,3 +1,62 @@ +2019.03.17, Version 1.27.0 (Stable), a4fc9a66cc35256dbc4dcd67c910174f05b6daa6 + +Changes since version 1.26.0: + +* doc: describe unix signal handling better (Vladimír Čunát) + +* linux: use statx() to obtain file birth time (Ben Noordhuis) + +* src: fill sockaddr_in6.sin6_len when it's defined (Santiago Gimeno) + +* test: relax uv_hrtime() test assumptions (Ben Noordhuis) + +* build: make cmake install LICENSE only once (Thomas Karl Pietrowski) + +* bsd: plug uv_fs_event_start() error path fd leak (Ben Noordhuis) + +* unix: fix __FreeBSD_kernel__ typo (cjihrig) + +* doc: add note about uv_run() not being reentrant (Ben Noordhuis) + +* unix, win: make fs-poll close wait for resource cleanup (Anna Henningsen) + +* doc: fix typo in uv_thread_options_t definition (Ryan Liptak) + +* win: skip winsock initialization in safe mode (evgley) + +* unix: refactor getsockname/getpeername methods (Santiago Gimeno) + +* win,udp: allow to use uv_udp_open on bound sockets (Santiago Gimeno) + +* udp: add support for UDP connected sockets (Santiago Gimeno) + +* build: fix uv_test shared uv Windows cmake build (ptlomholt) + +* build: add android-configure scripts to EXTRA_DIST (Ben Noordhuis) + +* build: add missing header (cjihrig) + +* sunos: add perror() output prior to abort() (Andrew Paprocki) + +* test,sunos: disable UV_DISCONNECT handling (Andrew Paprocki) + +* sunos: disable __attribute__((unused)) (Andrew Paprocki) + +* test,sunos: use unistd.h code branch (Andrew Paprocki) + +* build,sunos: better handling of non-GCC compiler (Andrew Paprocki) + +* test,sunos: fix statement not reached warnings (Andrew Paprocki) + +* sunos: fix argument/prototype mismatch in atomics (Andrew Paprocki) + +* test,sunos: test-ipc.c lacks newline at EOF (Andrew Paprocki) + +* test: change spawn_stdin_stdout return to void (Andrew Paprocki) + +* test: remove call to floor() in test driver (Andrew Paprocki) + + 2019.02.11, Version 1.26.0 (Stable), 8669d8d3e93cddb62611b267ef62a3ddb5ba3ca0 Changes since version 1.25.0: diff --git a/deps/uv/Makefile.am b/deps/uv/Makefile.am index 7e49d8ad0bee16..595a5aea03913d 100644 --- a/deps/uv/Makefile.am +++ b/deps/uv/Makefile.am @@ -32,6 +32,7 @@ libuv_la_LDFLAGS = -no-undefined -version-info 1:0:0 libuv_la_SOURCES = src/fs-poll.c \ src/heap-inl.h \ src/idna.c \ + src/idna.h \ src/inet.c \ src/queue.h \ src/strscpy.c \ @@ -44,10 +45,12 @@ libuv_la_SOURCES = src/fs-poll.c \ src/version.c if SUNOS +if GCC # Can't be turned into a CC_CHECK_CFLAGS in configure.ac, it makes compilers # on other platforms complain that the argument is unused during compilation. libuv_la_CFLAGS += -pthreads endif +endif if WINNT @@ -121,11 +124,13 @@ EXTRA_DIST = test/fixtures/empty_file \ docs \ img \ samples \ - android-configure \ + android-configure-arm \ + android-configure-arm64 \ + android-configure-x86 \ + android-configure-x86_64 \ CONTRIBUTING.md \ LICENSE \ README.md \ - checksparse.sh \ vcbuild.bat \ common.gypi \ gyp_uv.py \ @@ -138,14 +143,20 @@ check_PROGRAMS = test/run-tests if OS390 test_run_tests_CFLAGS = else +if GCC test_run_tests_CFLAGS = -Wno-long-long +else +test_run_tests_CFLAGS = +endif endif if SUNOS +if GCC # Can't be turned into a CC_CHECK_CFLAGS in configure.ac, it makes compilers # on other platforms complain that the argument is unused during compilation. test_run_tests_CFLAGS += -pthreads endif +endif test_run_tests_LDFLAGS = test_run_tests_SOURCES = test/blackhole-server.c \ @@ -281,6 +292,7 @@ test_run_tests_SOURCES = test/blackhole-server.c \ test/test-tty.c \ test/test-udp-alloc-cb-fail.c \ test/test-udp-bind.c \ + test/test-udp-connect.c \ test/test-udp-create-socket-early.c \ test/test-udp-dgram-too-big.c \ test/test-udp-ipv6.c \ @@ -320,7 +332,9 @@ test_run_tests_CFLAGS += -D_GNU_SOURCE endif if SUNOS -test_run_tests_CFLAGS += -D__EXTENSIONS__ -D_XOPEN_SOURCE=500 +test_run_tests_CFLAGS += -D__EXTENSIONS__ \ + -D_XOPEN_SOURCE=500 \ + -D_REENTRANT endif if OS390 @@ -458,7 +472,9 @@ endif if SUNOS uvinclude_HEADERS += include/uv/sunos.h -libuv_la_CFLAGS += -D__EXTENSIONS__ -D_XOPEN_SOURCE=500 +libuv_la_CFLAGS += -D__EXTENSIONS__ \ + -D_XOPEN_SOURCE=500 \ + -D_REENTRANT libuv_la_SOURCES += src/unix/no-proctitle.c \ src/unix/sunos.c endif diff --git a/deps/uv/README.md b/deps/uv/README.md index fb5971d3e35425..4e92a8174af681 100644 --- a/deps/uv/README.md +++ b/deps/uv/README.md @@ -312,7 +312,7 @@ $ make -C out The default API level is 24, but a different one can be selected as follows: ```bash -$ source ./android-configure ~/android-ndk-r15b gyp 21 +$ source ./android-configure-arm ~/android-ndk-r15b gyp 21 $ make -C out ``` diff --git a/deps/uv/configure.ac b/deps/uv/configure.ac index 931ac3e3615e33..336e55b15f92d6 100644 --- a/deps/uv/configure.ac +++ b/deps/uv/configure.ac @@ -13,7 +13,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_PREREQ(2.57) -AC_INIT([libuv], [1.26.0], [https://github.com/libuv/libuv/issues]) +AC_INIT([libuv], [1.27.0], [https://github.com/libuv/libuv/issues]) AC_CONFIG_MACRO_DIR([m4]) m4_include([m4/libuv-extra-automake-flags.m4]) m4_include([m4/as_case.m4]) @@ -24,16 +24,18 @@ AC_ENABLE_SHARED AC_ENABLE_STATIC AC_PROG_CC AM_PROG_CC_C_O -AS_IF([AS_CASE([$host_os],[openedition*], [false], [true])], [ - CC_CHECK_CFLAGS_APPEND([-pedantic]) -]) CC_FLAG_VISIBILITY #[-fvisibility=hidden] CC_CHECK_CFLAGS_APPEND([-g]) -CC_CHECK_CFLAGS_APPEND([-std=gnu89]) -CC_CHECK_CFLAGS_APPEND([-Wall]) -CC_CHECK_CFLAGS_APPEND([-Wextra]) -CC_CHECK_CFLAGS_APPEND([-Wno-unused-parameter]) -CC_CHECK_CFLAGS_APPEND([-Wstrict-prototypes]) +AS_IF([test "x$GCC" = xyes], [ + AS_IF([AS_CASE([$host_os], [openedition*], [false], [true])], [ + CC_CHECK_CFLAGS_APPEND([-pedantic]) + ]) + CC_CHECK_CFLAGS_APPEND([-std=gnu89]) + CC_CHECK_CFLAGS_APPEND([-Wall]) + CC_CHECK_CFLAGS_APPEND([-Wextra]) + CC_CHECK_CFLAGS_APPEND([-Wno-unused-parameter]) + CC_CHECK_CFLAGS_APPEND([-Wstrict-prototypes]) +]) # AM_PROG_AR is not available in automake v0.11 but it's essential in v0.12. m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) # autoconf complains if AC_PROG_LIBTOOL precedes AM_PROG_AR. @@ -50,6 +52,7 @@ AC_CHECK_LIB([rt], [clock_gettime]) AC_CHECK_LIB([sendfile], [sendfile]) AC_CHECK_LIB([socket], [socket]) AC_SYS_LARGEFILE +AM_CONDITIONAL([GCC], [AS_IF([test "x$GCC" = xyes], [true], [false])]) AM_CONDITIONAL([AIX], [AS_CASE([$host_os],[aix*], [true], [false])]) AM_CONDITIONAL([ANDROID], [AS_CASE([$host_os],[linux-android*],[true], [false])]) AM_CONDITIONAL([CYGWIN], [AS_CASE([$host_os],[cygwin*], [true], [false])]) diff --git a/deps/uv/docs/src/loop.rst b/deps/uv/docs/src/loop.rst index 86a99adf5d669c..d642ac1d2f6ee8 100644 --- a/deps/uv/docs/src/loop.rst +++ b/deps/uv/docs/src/loop.rst @@ -107,6 +107,8 @@ API or requests left), or non-zero if more callbacks are expected (meaning you should run the event loop again sometime in the future). + :c:func:`uv_run` is not reentrant. It must not be called from a callback. + .. c:function:: int uv_loop_alive(const uv_loop_t* loop) Returns non-zero if there are referenced active handles, active diff --git a/deps/uv/docs/src/signal.rst b/deps/uv/docs/src/signal.rst index f52b64706ab890..f5a809ab0bb73d 100644 --- a/deps/uv/docs/src/signal.rst +++ b/deps/uv/docs/src/signal.rst @@ -6,7 +6,10 @@ Signal handles implement Unix style signal handling on a per-event loop bases. -Reception of some signals is emulated on Windows: +Windows notes +------------- + +Reception of some signals is emulated: * SIGINT is normally delivered when the user presses CTRL+C. However, like on Unix, it is not generated when terminal raw mode is enabled. @@ -24,13 +27,22 @@ Reception of some signals is emulated on Windows: * Calls to raise() or abort() to programmatically raise a signal are not detected by libuv; these will not trigger a signal watcher. -.. note:: - On Linux SIGRT0 and SIGRT1 (signals 32 and 33) are used by the NPTL pthreads library to - manage threads. Installing watchers for those signals will lead to unpredictable behavior - and is strongly discouraged. Future versions of libuv may simply reject them. - .. versionchanged:: 1.15.0 SIGWINCH support on Windows was improved. +Unix notes +---------- + +* SIGKILL and SIGSTOP are impossible to catch. + +* Handling SIGBUS, SIGFPE, SIGILL or SIGSEGV via libuv results into undefined behavior. + +* SIGABRT will not be caught by libuv if generated by `abort()`, e.g. through `assert()`. + +* On Linux SIGRT0 and SIGRT1 (signals 32 and 33) are used by the NPTL pthreads library to + manage threads. Installing watchers for those signals will lead to unpredictable behavior + and is strongly discouraged. Future versions of libuv may simply reject them. + + Data types ---------- diff --git a/deps/uv/docs/src/threading.rst b/deps/uv/docs/src/threading.rst index a5759a38a67f06..7ca1d4b7a58b96 100644 --- a/deps/uv/docs/src/threading.rst +++ b/deps/uv/docs/src/threading.rst @@ -61,13 +61,13 @@ Threads :: - typedef struct uv_process_options_s { + typedef struct uv_thread_options_s { enum { UV_THREAD_NO_FLAGS = 0x00, UV_THREAD_HAS_STACK_SIZE = 0x01 } flags; size_t stack_size; - } uv_process_options_t; + } uv_thread_options_t; More fields may be added to this struct at any time, so its exact layout and size should not be relied upon. diff --git a/deps/uv/docs/src/udp.rst b/deps/uv/docs/src/udp.rst index 8148828522ee2e..f3de53fbab0568 100644 --- a/deps/uv/docs/src/udp.rst +++ b/deps/uv/docs/src/udp.rst @@ -150,6 +150,44 @@ API :returns: 0 on success, or an error code < 0 on failure. +.. c:function:: int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr) + + Associate the UDP handle to a remote address and port, so every + message sent by this handle is automatically sent to that destination. + Calling this function with a `NULL` `addr` disconnects the handle. + Trying to call `uv_udp_connect()` on an already connected handle will result + in an `UV_EISCONN` error. Trying to disconnect a handle that is not + connected will return an `UV_ENOTCONN` error. + + :param handle: UDP handle. Should have been initialized with + :c:func:`uv_udp_init`. + + :param addr: `struct sockaddr_in` or `struct sockaddr_in6` + with the address and port to associate to. + + :returns: 0 on success, or an error code < 0 on failure. + + .. versionadded:: 1.27.0 + +.. c:function:: int uv_udp_getpeername(const uv_udp_t* handle, struct sockaddr* name, int* namelen) + + Get the remote IP and port of the UDP handle on connected UDP handles. + On unconnected handles, it returns `UV_ENOTCONN`. + + :param handle: UDP handle. Should have been initialized with + :c:func:`uv_udp_init` and bound. + + :param name: Pointer to the structure to be filled with the address data. + In order to support IPv4 and IPv6 `struct sockaddr_storage` should be + used. + + :param namelen: On input it indicates the data of the `name` field. On + output it indicates how much of it was filled. + + :returns: 0 on success, or an error code < 0 on failure + + .. versionadded:: 1.27.0 + .. c:function:: int uv_udp_getsockname(const uv_udp_t* handle, struct sockaddr* name, int* namelen) Get the local IP and port of the UDP handle. @@ -247,6 +285,12 @@ API (``0.0.0.0`` or ``::``) it will be changed to point to ``localhost``. This is done to match the behavior of Linux systems. + For connected UDP handles, `addr` must be set to `NULL`, otherwise it will + return `UV_EISCONN` error. + + For connectionless UDP handles, `addr` cannot be `NULL`, otherwise it will + return `UV_EDESTADDRREQ` error. + :param req: UDP request handle. Need not be initialized. :param handle: UDP handle. Should have been initialized with @@ -266,15 +310,25 @@ API .. versionchanged:: 1.19.0 added ``0.0.0.0`` and ``::`` to ``localhost`` mapping + .. versionchanged:: 1.27.0 added support for connected sockets + .. c:function:: int uv_udp_try_send(uv_udp_t* handle, const uv_buf_t bufs[], unsigned int nbufs, const struct sockaddr* addr) Same as :c:func:`uv_udp_send`, but won't queue a send request if it can't be completed immediately. + For connected UDP handles, `addr` must be set to `NULL`, otherwise it will + return `UV_EISCONN` error. + + For connectionless UDP handles, `addr` cannot be `NULL`, otherwise it will + return `UV_EDESTADDRREQ` error. + :returns: >= 0: number of bytes sent (it matches the given buffer size). < 0: negative error code (``UV_EAGAIN`` is returned when the message can't be sent immediately). + .. versionchanged:: 1.27.0 added support for connected sockets + .. c:function:: int uv_udp_recv_start(uv_udp_t* handle, uv_alloc_cb alloc_cb, uv_udp_recv_cb recv_cb) Prepare for receiving data. If the socket has not previously been bound diff --git a/deps/uv/include/uv.h b/deps/uv/include/uv.h index 1578bbd5682e40..43895ac80dd670 100644 --- a/deps/uv/include/uv.h +++ b/deps/uv/include/uv.h @@ -630,7 +630,11 @@ UV_EXTERN int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock); UV_EXTERN int uv_udp_bind(uv_udp_t* handle, const struct sockaddr* addr, unsigned int flags); +UV_EXTERN int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr); +UV_EXTERN int uv_udp_getpeername(const uv_udp_t* handle, + struct sockaddr* name, + int* namelen); UV_EXTERN int uv_udp_getsockname(const uv_udp_t* handle, struct sockaddr* name, int* namelen); diff --git a/deps/uv/include/uv/version.h b/deps/uv/include/uv/version.h index fa7320cf4d4a11..4f653983075150 100644 --- a/deps/uv/include/uv/version.h +++ b/deps/uv/include/uv/version.h @@ -31,7 +31,7 @@ */ #define UV_VERSION_MAJOR 1 -#define UV_VERSION_MINOR 26 +#define UV_VERSION_MINOR 27 #define UV_VERSION_PATCH 0 #define UV_VERSION_IS_RELEASE 1 #define UV_VERSION_SUFFIX "" diff --git a/deps/uv/src/fs-poll.c b/deps/uv/src/fs-poll.c index 6c82dfc1d76302..40cb147e8de504 100644 --- a/deps/uv/src/fs-poll.c +++ b/deps/uv/src/fs-poll.c @@ -22,12 +22,20 @@ #include "uv.h" #include "uv-common.h" +#ifdef _WIN32 +#include "win/internal.h" +#include "win/handle-inl.h" +#define uv__make_close_pending(h) uv_want_endgame((h)->loop, (h)) +#else +#include "unix/internal.h" +#endif + #include #include #include struct poll_ctx { - uv_fs_poll_t* parent_handle; /* NULL if parent has been stopped or closed */ + uv_fs_poll_t* parent_handle; int busy_polling; unsigned int interval; uint64_t start_time; @@ -36,6 +44,7 @@ struct poll_ctx { uv_timer_t timer_handle; uv_fs_t fs_req; /* TODO(bnoordhuis) mark fs_req internal */ uv_stat_t statbuf; + struct poll_ctx* previous; /* context from previous start()..stop() period */ char path[1]; /* variable length */ }; @@ -49,6 +58,7 @@ static uv_stat_t zero_statbuf; int uv_fs_poll_init(uv_loop_t* loop, uv_fs_poll_t* handle) { uv__handle_init(loop, (uv_handle_t*)handle, UV_FS_POLL); + handle->poll_ctx = NULL; return 0; } @@ -62,7 +72,7 @@ int uv_fs_poll_start(uv_fs_poll_t* handle, size_t len; int err; - if (uv__is_active(handle)) + if (uv_is_active((uv_handle_t*)handle)) return 0; loop = handle->loop; @@ -90,6 +100,8 @@ int uv_fs_poll_start(uv_fs_poll_t* handle, if (err < 0) goto error; + if (handle->poll_ctx != NULL) + ctx->previous = handle->poll_ctx; handle->poll_ctx = ctx; uv__handle_start(handle); @@ -104,19 +116,17 @@ int uv_fs_poll_start(uv_fs_poll_t* handle, int uv_fs_poll_stop(uv_fs_poll_t* handle) { struct poll_ctx* ctx; - if (!uv__is_active(handle)) + if (!uv_is_active((uv_handle_t*)handle)) return 0; ctx = handle->poll_ctx; assert(ctx != NULL); - assert(ctx->parent_handle != NULL); - ctx->parent_handle = NULL; - handle->poll_ctx = NULL; + assert(ctx->parent_handle == handle); /* Close the timer if it's active. If it's inactive, there's a stat request * in progress and poll_cb will take care of the cleanup. */ - if (uv__is_active(&ctx->timer_handle)) + if (uv_is_active((uv_handle_t*)&ctx->timer_handle)) uv_close((uv_handle_t*)&ctx->timer_handle, timer_close_cb); uv__handle_stop(handle); @@ -129,7 +139,7 @@ int uv_fs_poll_getpath(uv_fs_poll_t* handle, char* buffer, size_t* size) { struct poll_ctx* ctx; size_t required_len; - if (!uv__is_active(handle)) { + if (!uv_is_active((uv_handle_t*)handle)) { *size = 0; return UV_EINVAL; } @@ -153,6 +163,9 @@ int uv_fs_poll_getpath(uv_fs_poll_t* handle, char* buffer, size_t* size) { void uv__fs_poll_close(uv_fs_poll_t* handle) { uv_fs_poll_stop(handle); + + if (handle->poll_ctx == NULL) + uv__make_close_pending((uv_handle_t*)handle); } @@ -173,14 +186,13 @@ static void poll_cb(uv_fs_t* req) { uv_stat_t* statbuf; struct poll_ctx* ctx; uint64_t interval; + uv_fs_poll_t* handle; ctx = container_of(req, struct poll_ctx, fs_req); + handle = ctx->parent_handle; - if (ctx->parent_handle == NULL) { /* handle has been stopped or closed */ - uv_close((uv_handle_t*)&ctx->timer_handle, timer_close_cb); - uv_fs_req_cleanup(req); - return; - } + if (!uv_is_active((uv_handle_t*)handle) || uv__is_closing(handle)) + goto out; if (req->result != 0) { if (ctx->busy_polling != req->result) { @@ -205,7 +217,7 @@ static void poll_cb(uv_fs_t* req) { out: uv_fs_req_cleanup(req); - if (ctx->parent_handle == NULL) { /* handle has been stopped by callback */ + if (!uv_is_active((uv_handle_t*)handle) || uv__is_closing(handle)) { uv_close((uv_handle_t*)&ctx->timer_handle, timer_close_cb); return; } @@ -219,8 +231,27 @@ static void poll_cb(uv_fs_t* req) { } -static void timer_close_cb(uv_handle_t* handle) { - uv__free(container_of(handle, struct poll_ctx, timer_handle)); +static void timer_close_cb(uv_handle_t* timer) { + struct poll_ctx* ctx; + struct poll_ctx* it; + struct poll_ctx* last; + uv_fs_poll_t* handle; + + ctx = container_of(timer, struct poll_ctx, timer_handle); + handle = ctx->parent_handle; + if (ctx == handle->poll_ctx) { + handle->poll_ctx = ctx->previous; + if (handle->poll_ctx == NULL) + uv__make_close_pending((uv_handle_t*)handle); + } else { + for (last = handle->poll_ctx, it = last->previous; + it != ctx; + last = it, it = it->previous) { + assert(last->previous != NULL); + } + last->previous = ctx->previous; + } + uv__free(ctx); } diff --git a/deps/uv/src/unix/atomic-ops.h b/deps/uv/src/unix/atomic-ops.h index 7cac1f98890d77..fb46978859813d 100644 --- a/deps/uv/src/unix/atomic-ops.h +++ b/deps/uv/src/unix/atomic-ops.h @@ -49,7 +49,7 @@ UV_UNUSED(static int cmpxchgi(int* ptr, int oldval, int newval)) { else return op4; #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) - return atomic_cas_uint(ptr, oldval, newval); + return atomic_cas_uint((uint_t *)ptr, (uint_t)oldval, (uint_t)newval); #else return __sync_val_compare_and_swap(ptr, oldval, newval); #endif @@ -85,7 +85,7 @@ UV_UNUSED(static long cmpxchgl(long* ptr, long oldval, long newval)) { else return op4; #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) - return atomic_cas_ulong(ptr, oldval, newval); + return atomic_cas_ulong((ulong_t *)ptr, (ulong_t)oldval, (ulong_t)newval); #else return __sync_val_compare_and_swap(ptr, oldval, newval); #endif diff --git a/deps/uv/src/unix/core.c b/deps/uv/src/unix/core.c index 7e42337b9aae05..ca0e345da05bc1 100644 --- a/deps/uv/src/unix/core.c +++ b/deps/uv/src/unix/core.c @@ -161,7 +161,9 @@ void uv_close(uv_handle_t* handle, uv_close_cb close_cb) { case UV_FS_POLL: uv__fs_poll_close((uv_fs_poll_t*)handle); - break; + /* Poll handles use file system requests, and one of them may still be + * running. The poll code will call uv__make_close_pending() for us. */ + return; case UV_SIGNAL: uv__signal_close((uv_signal_t*) handle); @@ -1405,3 +1407,25 @@ int uv_os_uname(uv_utsname_t* buffer) { buffer->machine[0] = '\0'; return r; } + +int uv__getsockpeername(const uv_handle_t* handle, + uv__peersockfunc func, + struct sockaddr* name, + int* namelen) { + socklen_t socklen; + uv_os_fd_t fd; + int r; + + r = uv_fileno(handle, &fd); + if (r < 0) + return r; + + /* sizeof(socklen_t) != sizeof(int) on some systems. */ + socklen = (socklen_t) *namelen; + + if (func(fd, name, &socklen)) + return UV__ERR(errno); + + *namelen = (int) socklen; + return 0; +} diff --git a/deps/uv/src/unix/fs.c b/deps/uv/src/unix/fs.c index 91bb82f725e884..f4b4280ca0c420 100644 --- a/deps/uv/src/unix/fs.c +++ b/deps/uv/src/unix/fs.c @@ -47,7 +47,7 @@ #if defined(__DragonFly__) || \ defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel_) || \ + defined(__FreeBSD_kernel__) || \ defined(__OpenBSD__) || \ defined(__NetBSD__) # define HAVE_PREADV 1 @@ -1053,10 +1053,82 @@ static void uv__to_stat(struct stat* src, uv_stat_t* dst) { } +static int uv__fs_statx(int fd, + const char* path, + int is_fstat, + int is_lstat, + uv_stat_t* buf) { + STATIC_ASSERT(UV_ENOSYS != -1); +#ifdef __linux__ + static int no_statx; + struct uv__statx statxbuf; + int dirfd; + int flags; + int mode; + int rc; + + if (no_statx) + return UV_ENOSYS; + + dirfd = AT_FDCWD; + flags = 0; /* AT_STATX_SYNC_AS_STAT */ + mode = 0xFFF; /* STATX_BASIC_STATS + STATX_BTIME */ + + if (is_fstat) { + dirfd = fd; + flags |= 0x1000; /* AT_EMPTY_PATH */ + } + + if (is_lstat) + flags |= AT_SYMLINK_NOFOLLOW; + + rc = uv__statx(dirfd, path, flags, mode, &statxbuf); + + if (rc == -1) { + /* EPERM happens when a seccomp filter rejects the system call. + * Has been observed with libseccomp < 2.3.3 and docker < 18.04. + */ + if (errno != EINVAL && errno != EPERM && errno != ENOSYS) + return -1; + + no_statx = 1; + return UV_ENOSYS; + } + + buf->st_dev = 256 * statxbuf.stx_dev_major + statxbuf.stx_dev_minor; + buf->st_mode = statxbuf.stx_mode; + buf->st_nlink = statxbuf.stx_nlink; + buf->st_uid = statxbuf.stx_uid; + buf->st_gid = statxbuf.stx_gid; + buf->st_rdev = statxbuf.stx_rdev_major; + buf->st_ino = statxbuf.stx_ino; + buf->st_size = statxbuf.stx_size; + buf->st_blksize = statxbuf.stx_blksize; + buf->st_blocks = statxbuf.stx_blocks; + buf->st_atim.tv_sec = statxbuf.stx_atime.tv_sec; + buf->st_atim.tv_nsec = statxbuf.stx_atime.tv_nsec; + buf->st_mtim.tv_sec = statxbuf.stx_mtime.tv_sec; + buf->st_mtim.tv_nsec = statxbuf.stx_mtime.tv_nsec; + buf->st_ctim.tv_sec = statxbuf.stx_ctime.tv_sec; + buf->st_ctim.tv_nsec = statxbuf.stx_ctime.tv_nsec; + buf->st_birthtim.tv_sec = statxbuf.stx_btime.tv_sec; + buf->st_birthtim.tv_nsec = statxbuf.stx_btime.tv_nsec; + + return 0; +#else + return UV_ENOSYS; +#endif /* __linux__ */ +} + + static int uv__fs_stat(const char *path, uv_stat_t *buf) { struct stat pbuf; int ret; + ret = uv__fs_statx(-1, path, /* is_fstat */ 0, /* is_lstat */ 0, buf); + if (ret != UV_ENOSYS) + return ret; + ret = stat(path, &pbuf); if (ret == 0) uv__to_stat(&pbuf, buf); @@ -1069,6 +1141,10 @@ static int uv__fs_lstat(const char *path, uv_stat_t *buf) { struct stat pbuf; int ret; + ret = uv__fs_statx(-1, path, /* is_fstat */ 0, /* is_lstat */ 1, buf); + if (ret != UV_ENOSYS) + return ret; + ret = lstat(path, &pbuf); if (ret == 0) uv__to_stat(&pbuf, buf); @@ -1081,6 +1157,10 @@ static int uv__fs_fstat(int fd, uv_stat_t *buf) { struct stat pbuf; int ret; + ret = uv__fs_statx(fd, "", /* is_fstat */ 1, /* is_lstat */ 0, buf); + if (ret != UV_ENOSYS) + return ret; + ret = fstat(fd, &pbuf); if (ret == 0) uv__to_stat(&pbuf, buf); diff --git a/deps/uv/src/unix/getaddrinfo.c b/deps/uv/src/unix/getaddrinfo.c index 6d23fbe02a8df3..d7ca7d1a446838 100644 --- a/deps/uv/src/unix/getaddrinfo.c +++ b/deps/uv/src/unix/getaddrinfo.c @@ -92,7 +92,9 @@ int uv__getaddrinfo_translate_error(int sys_err) { } assert(!"unknown EAI_* error code"); abort(); +#ifndef __SUNPRO_C return 0; /* Pacify compiler. */ +#endif } diff --git a/deps/uv/src/unix/internal.h b/deps/uv/src/unix/internal.h index c059893a46e992..a0846970320da5 100644 --- a/deps/uv/src/unix/internal.h +++ b/deps/uv/src/unix/internal.h @@ -95,8 +95,7 @@ int uv__pthread_sigmask(int how, const sigset_t* set, sigset_t* oset); */ #if defined(__clang__) || \ defined(__GNUC__) || \ - defined(__INTEL_COMPILER) || \ - defined(__SUNPRO_C) + defined(__INTEL_COMPILER) # define UV_DESTRUCTOR(declaration) __attribute__((destructor)) declaration # define UV_UNUSED(declaration) __attribute__((unused)) declaration #else @@ -306,4 +305,11 @@ UV_UNUSED(static char* uv__basename_r(const char* path)) { int uv__inotify_fork(uv_loop_t* loop, void* old_watchers); #endif +typedef int (*uv__peersockfunc)(int, struct sockaddr*, socklen_t*); + +int uv__getsockpeername(const uv_handle_t* handle, + uv__peersockfunc func, + struct sockaddr* name, + int* namelen); + #endif /* UV_UNIX_INTERNAL_H_ */ diff --git a/deps/uv/src/unix/kqueue.c b/deps/uv/src/unix/kqueue.c index 38c88d7da732af..092005161f4546 100644 --- a/deps/uv/src/unix/kqueue.c +++ b/deps/uv/src/unix/kqueue.c @@ -490,8 +490,11 @@ int uv_fs_event_start(uv_fs_event_t* handle, return UV__ERR(errno); handle->path = uv__strdup(path); - if (handle->path == NULL) + if (handle->path == NULL) { + uv__close_nocheckstdio(fd); return UV_ENOMEM; + } + handle->cb = cb; uv__handle_start(handle); uv__io_init(&handle->event_watcher, uv__fs_event, fd); diff --git a/deps/uv/src/unix/linux-syscalls.c b/deps/uv/src/unix/linux-syscalls.c index bfd75448793388..beaba4ed9afd32 100644 --- a/deps/uv/src/unix/linux-syscalls.c +++ b/deps/uv/src/unix/linux-syscalls.c @@ -187,6 +187,21 @@ # endif #endif /* __NR_pwritev */ +#ifndef __NR_statx +# if defined(__x86_64__) +# define __NR_statx 332 +# elif defined(__i386__) +# define __NR_statx 383 +# elif defined(__aarch64__) +# define __NR_statx 397 +# elif defined(__arm__) +# define __NR_statx (UV_SYSCALL_BASE + 397) +# elif defined(__ppc__) +# define __NR_statx 383 +# elif defined(__s390__) +# define __NR_statx 379 +# endif +#endif /* __NR_statx */ int uv__accept4(int fd, struct sockaddr* addr, socklen_t* addrlen, int flags) { #if defined(__i386__) @@ -336,3 +351,16 @@ int uv__dup3(int oldfd, int newfd, int flags) { return errno = ENOSYS, -1; #endif } + + +int uv__statx(int dirfd, + const char* path, + int flags, + unsigned int mask, + struct uv__statx* statxbuf) { +#if defined(__NR_statx) + return syscall(__NR_statx, dirfd, path, flags, mask, statxbuf); +#else + return errno = ENOSYS, -1; +#endif +} diff --git a/deps/uv/src/unix/linux-syscalls.h b/deps/uv/src/unix/linux-syscalls.h index 3dfd329d6c84b5..7e58bfa2189692 100644 --- a/deps/uv/src/unix/linux-syscalls.h +++ b/deps/uv/src/unix/linux-syscalls.h @@ -80,6 +80,36 @@ #define UV__IN_DELETE_SELF 0x400 #define UV__IN_MOVE_SELF 0x800 +struct uv__statx_timestamp { + int64_t tv_sec; + uint32_t tv_nsec; + int32_t unused0; +}; + +struct uv__statx { + uint32_t stx_mask; + uint32_t stx_blksize; + uint64_t stx_attributes; + uint32_t stx_nlink; + uint32_t stx_uid; + uint32_t stx_gid; + uint16_t stx_mode; + uint16_t unused0; + uint64_t stx_ino; + uint64_t stx_size; + uint64_t stx_blocks; + uint64_t stx_attributes_mask; + struct uv__statx_timestamp stx_atime; + struct uv__statx_timestamp stx_btime; + struct uv__statx_timestamp stx_ctime; + struct uv__statx_timestamp stx_mtime; + uint32_t stx_rdev_major; + uint32_t stx_rdev_minor; + uint32_t stx_dev_major; + uint32_t stx_dev_minor; + uint64_t unused1[14]; +}; + struct uv__inotify_event { int32_t wd; uint32_t mask; @@ -113,5 +143,10 @@ int uv__sendmmsg(int fd, ssize_t uv__preadv(int fd, const struct iovec *iov, int iovcnt, int64_t offset); ssize_t uv__pwritev(int fd, const struct iovec *iov, int iovcnt, int64_t offset); int uv__dup3(int oldfd, int newfd, int flags); +int uv__statx(int dirfd, + const char* path, + int flags, + unsigned int mask, + struct uv__statx* statxbuf); #endif /* UV_LINUX_SYSCALL_H_ */ diff --git a/deps/uv/src/unix/pipe.c b/deps/uv/src/unix/pipe.c index 228d158800acdc..834766863220fe 100644 --- a/deps/uv/src/unix/pipe.c +++ b/deps/uv/src/unix/pipe.c @@ -233,9 +233,6 @@ void uv_pipe_connect(uv_connect_t* req, } -typedef int (*uv__peersockfunc)(int, struct sockaddr*, socklen_t*); - - static int uv__pipe_getsockpeername(const uv_pipe_t* handle, uv__peersockfunc func, char* buffer, @@ -246,10 +243,13 @@ static int uv__pipe_getsockpeername(const uv_pipe_t* handle, addrlen = sizeof(sa); memset(&sa, 0, addrlen); - err = func(uv__stream_fd(handle), (struct sockaddr*) &sa, &addrlen); + err = uv__getsockpeername((const uv_handle_t*) handle, + func, + (struct sockaddr*) &sa, + (int*) &addrlen); if (err < 0) { *size = 0; - return UV__ERR(errno); + return err; } #if defined(__linux__) diff --git a/deps/uv/src/unix/sunos.c b/deps/uv/src/unix/sunos.c index 75501f7a0a79b6..fb6b070fd18f2e 100644 --- a/deps/uv/src/unix/sunos.c +++ b/deps/uv/src/unix/sunos.c @@ -135,8 +135,10 @@ int uv__io_check_fd(uv_loop_t* loop, int fd) { if (port_associate(loop->backend_fd, PORT_SOURCE_FD, fd, POLLIN, 0)) return UV__ERR(errno); - if (port_dissociate(loop->backend_fd, PORT_SOURCE_FD, fd)) + if (port_dissociate(loop->backend_fd, PORT_SOURCE_FD, fd)) { + perror("(libuv) port_dissociate()"); abort(); + } return 0; } @@ -174,8 +176,14 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { w = QUEUE_DATA(q, uv__io_t, watcher_queue); assert(w->pevents != 0); - if (port_associate(loop->backend_fd, PORT_SOURCE_FD, w->fd, w->pevents, 0)) + if (port_associate(loop->backend_fd, + PORT_SOURCE_FD, + w->fd, + w->pevents, + 0)) { + perror("(libuv) port_associate()"); abort(); + } w->events = w->pevents; } @@ -219,10 +227,12 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { /* Work around another kernel bug: port_getn() may return events even * on error. */ - if (errno == EINTR || errno == ETIME) + if (errno == EINTR || errno == ETIME) { saved_errno = errno; - else + } else { + perror("(libuv) port_getn()"); abort(); + } } /* Update loop->time unconditionally. It's tempting to skip the update when diff --git a/deps/uv/src/unix/tcp.c b/deps/uv/src/unix/tcp.c index 900839a99dfccc..8cedcd6027be52 100644 --- a/deps/uv/src/unix/tcp.c +++ b/deps/uv/src/unix/tcp.c @@ -82,7 +82,7 @@ static int maybe_new_socket(uv_tcp_t* handle, int domain, unsigned long flags) { handle->flags |= flags; return 0; } - + /* Query to see if tcp socket is bound. */ slen = sizeof(saddr); memset(&saddr, 0, sizeof(saddr)); @@ -283,44 +283,28 @@ int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock) { int uv_tcp_getsockname(const uv_tcp_t* handle, struct sockaddr* name, int* namelen) { - socklen_t socklen; if (handle->delayed_error) return handle->delayed_error; - if (uv__stream_fd(handle) < 0) - return UV_EINVAL; /* FIXME(bnoordhuis) UV_EBADF */ - - /* sizeof(socklen_t) != sizeof(int) on some systems. */ - socklen = (socklen_t) *namelen; - - if (getsockname(uv__stream_fd(handle), name, &socklen)) - return UV__ERR(errno); - - *namelen = (int) socklen; - return 0; + return uv__getsockpeername((const uv_handle_t*) handle, + getsockname, + name, + namelen); } int uv_tcp_getpeername(const uv_tcp_t* handle, struct sockaddr* name, int* namelen) { - socklen_t socklen; if (handle->delayed_error) return handle->delayed_error; - if (uv__stream_fd(handle) < 0) - return UV_EINVAL; /* FIXME(bnoordhuis) UV_EBADF */ - - /* sizeof(socklen_t) != sizeof(int) on some systems. */ - socklen = (socklen_t) *namelen; - - if (getpeername(uv__stream_fd(handle), name, &socklen)) - return UV__ERR(errno); - - *namelen = (int) socklen; - return 0; + return uv__getsockpeername((const uv_handle_t*) handle, + getpeername, + name, + namelen); } diff --git a/deps/uv/src/unix/thread.c b/deps/uv/src/unix/thread.c index c17a51fed23efe..6088c77f712a95 100644 --- a/deps/uv/src/unix/thread.c +++ b/deps/uv/src/unix/thread.c @@ -801,7 +801,9 @@ int uv_cond_timedwait(uv_cond_t* cond, uv_mutex_t* mutex, uint64_t timeout) { return UV_ETIMEDOUT; abort(); +#ifndef __SUNPRO_C return UV_EINVAL; /* Satisfy the compiler. */ +#endif } diff --git a/deps/uv/src/unix/udp.c b/deps/uv/src/unix/udp.c index ec337ec8b8dfc2..15fa5937b3e712 100644 --- a/deps/uv/src/unix/udp.c +++ b/deps/uv/src/unix/udp.c @@ -227,9 +227,14 @@ static void uv__udp_sendmsg(uv_udp_t* handle) { assert(req != NULL); memset(&h, 0, sizeof h); - h.msg_name = &req->addr; - h.msg_namelen = (req->addr.ss_family == AF_INET6 ? - sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)); + if (req->addr.ss_family == AF_UNSPEC) { + h.msg_name = NULL; + h.msg_namelen = 0; + } else { + h.msg_name = &req->addr; + h.msg_namelen = req->addr.ss_family == AF_INET6 ? + sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in); + } h.msg_iov = (struct iovec*) req->bufs; h.msg_iovlen = req->nbufs; @@ -383,6 +388,50 @@ static int uv__udp_maybe_deferred_bind(uv_udp_t* handle, } +int uv__udp_connect(uv_udp_t* handle, + const struct sockaddr* addr, + unsigned int addrlen) { + int err; + + err = uv__udp_maybe_deferred_bind(handle, addr->sa_family, 0); + if (err) + return err; + + do { + errno = 0; + err = connect(handle->io_watcher.fd, addr, addrlen); + } while (err == -1 && errno == EINTR); + + if (err) + return UV__ERR(errno); + + handle->flags |= UV_HANDLE_UDP_CONNECTED; + + return 0; +} + + +int uv__udp_disconnect(uv_udp_t* handle) { + int r; + struct sockaddr addr; + + memset(&addr, 0, sizeof(addr)); + + addr.sa_family = AF_UNSPEC; + + do { + errno = 0; + r = connect(handle->io_watcher.fd, &addr, sizeof(addr)); + } while (r == -1 && errno == EINTR); + + if (r == -1 && errno != EAFNOSUPPORT) + return UV__ERR(errno); + + handle->flags &= ~UV_HANDLE_UDP_CONNECTED; + return 0; +} + + int uv__udp_send(uv_udp_send_t* req, uv_udp_t* handle, const uv_buf_t bufs[], @@ -395,9 +444,11 @@ int uv__udp_send(uv_udp_send_t* req, assert(nbufs > 0); - err = uv__udp_maybe_deferred_bind(handle, addr->sa_family, 0); - if (err) - return err; + if (addr) { + err = uv__udp_maybe_deferred_bind(handle, addr->sa_family, 0); + if (err) + return err; + } /* It's legal for send_queue_count > 0 even when the write_queue is empty; * it means there are error-state requests in the write_completed_queue that @@ -407,7 +458,10 @@ int uv__udp_send(uv_udp_send_t* req, uv__req_init(handle->loop, req, UV_UDP_SEND); assert(addrlen <= sizeof(req->addr)); - memcpy(&req->addr, addr, addrlen); + if (addr == NULL) + req->addr.ss_family = AF_UNSPEC; + else + memcpy(&req->addr, addr, addrlen); req->send_cb = send_cb; req->handle = handle; req->nbufs = nbufs; @@ -459,9 +513,13 @@ int uv__udp_try_send(uv_udp_t* handle, if (handle->send_queue_count != 0) return UV_EAGAIN; - err = uv__udp_maybe_deferred_bind(handle, addr->sa_family, 0); - if (err) - return err; + if (addr) { + err = uv__udp_maybe_deferred_bind(handle, addr->sa_family, 0); + if (err) + return err; + } else { + assert(handle->flags & UV_HANDLE_UDP_CONNECTED); + } memset(&h, 0, sizeof h); h.msg_name = (struct sockaddr*) addr; @@ -608,6 +666,7 @@ int uv_udp_init_ex(uv_loop_t* loop, uv_udp_t* handle, unsigned int flags) { uv__io_init(&handle->io_watcher, uv__udp_io, fd); QUEUE_INIT(&handle->write_queue); QUEUE_INIT(&handle->write_completed_queue); + return 0; } @@ -636,6 +695,9 @@ int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock) { return err; handle->io_watcher.fd = sock; + if (uv__udp_is_connected(handle)) + handle->flags |= UV_HANDLE_UDP_CONNECTED; + return 0; } @@ -743,13 +805,17 @@ int uv_udp_set_ttl(uv_udp_t* handle, int ttl) { IPV6_UNICAST_HOPS, &ttl, sizeof(ttl)); -#endif /* defined(__sun) || defined(_AIX) || defined (__OpenBSD__) || - defined(__MVS__) */ + +#else /* !(defined(__sun) || defined(_AIX) || defined (__OpenBSD__) || + defined(__MVS__)) */ return uv__setsockopt_maybe_char(handle, IP_TTL, IPV6_UNICAST_HOPS, ttl); + +#endif /* defined(__sun) || defined(_AIX) || defined (__OpenBSD__) || + defined(__MVS__) */ } @@ -851,23 +917,24 @@ int uv_udp_set_multicast_interface(uv_udp_t* handle, const char* interface_addr) return 0; } - -int uv_udp_getsockname(const uv_udp_t* handle, +int uv_udp_getpeername(const uv_udp_t* handle, struct sockaddr* name, int* namelen) { - socklen_t socklen; - if (handle->io_watcher.fd == -1) - return UV_EINVAL; /* FIXME(bnoordhuis) UV_EBADF */ - - /* sizeof(socklen_t) != sizeof(int) on some systems. */ - socklen = (socklen_t) *namelen; + return uv__getsockpeername((const uv_handle_t*) handle, + getpeername, + name, + namelen); +} - if (getsockname(handle->io_watcher.fd, name, &socklen)) - return UV__ERR(errno); +int uv_udp_getsockname(const uv_udp_t* handle, + struct sockaddr* name, + int* namelen) { - *namelen = (int) socklen; - return 0; + return uv__getsockpeername((const uv_handle_t*) handle, + getsockname, + name, + namelen); } diff --git a/deps/uv/src/uv-common.c b/deps/uv/src/uv-common.c index 952bde080c2864..94dd59fb071ca0 100644 --- a/deps/uv/src/uv-common.c +++ b/deps/uv/src/uv-common.c @@ -222,6 +222,9 @@ int uv_ip6_addr(const char* ip, int port, struct sockaddr_in6* addr) { memset(addr, 0, sizeof(*addr)); addr->sin6_family = AF_INET6; addr->sin6_port = htons(port); +#ifdef SIN6_LEN + addr->sin6_len = sizeof(*addr); +#endif zone_index = strchr(ip, '%'); if (zone_index != NULL) { @@ -314,17 +317,20 @@ int uv_tcp_connect(uv_connect_t* req, } -int uv_udp_send(uv_udp_send_t* req, - uv_udp_t* handle, - const uv_buf_t bufs[], - unsigned int nbufs, - const struct sockaddr* addr, - uv_udp_send_cb send_cb) { +int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr) { unsigned int addrlen; if (handle->type != UV_UDP) return UV_EINVAL; + /* Disconnect the handle */ + if (addr == NULL) { + if (!(handle->flags & UV_HANDLE_UDP_CONNECTED)) + return UV_ENOTCONN; + + return uv__udp_disconnect(handle); + } + if (addr->sa_family == AF_INET) addrlen = sizeof(struct sockaddr_in); else if (addr->sa_family == AF_INET6) @@ -332,6 +338,66 @@ int uv_udp_send(uv_udp_send_t* req, else return UV_EINVAL; + if (handle->flags & UV_HANDLE_UDP_CONNECTED) + return UV_EISCONN; + + return uv__udp_connect(handle, addr, addrlen); +} + + +int uv__udp_is_connected(uv_udp_t* handle) { + struct sockaddr_storage addr; + int addrlen; + if (handle->type != UV_UDP) + return 0; + + addrlen = sizeof(addr); + if (uv_udp_getpeername(handle, (struct sockaddr*) &addr, &addrlen) != 0) + return 0; + + return addrlen > 0; +} + + +int uv__udp_check_before_send(uv_udp_t* handle, const struct sockaddr* addr) { + unsigned int addrlen; + + if (handle->type != UV_UDP) + return UV_EINVAL; + + if (addr != NULL && (handle->flags & UV_HANDLE_UDP_CONNECTED)) + return UV_EISCONN; + + if (addr == NULL && !(handle->flags & UV_HANDLE_UDP_CONNECTED)) + return UV_EDESTADDRREQ; + + if (addr != NULL) { + if (addr->sa_family == AF_INET) + addrlen = sizeof(struct sockaddr_in); + else if (addr->sa_family == AF_INET6) + addrlen = sizeof(struct sockaddr_in6); + else + return UV_EINVAL; + } else { + addrlen = 0; + } + + return addrlen; +} + + +int uv_udp_send(uv_udp_send_t* req, + uv_udp_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, + const struct sockaddr* addr, + uv_udp_send_cb send_cb) { + int addrlen; + + addrlen = uv__udp_check_before_send(handle, addr); + if (addrlen < 0) + return addrlen; + return uv__udp_send(req, handle, bufs, nbufs, addr, addrlen, send_cb); } @@ -340,17 +406,11 @@ int uv_udp_try_send(uv_udp_t* handle, const uv_buf_t bufs[], unsigned int nbufs, const struct sockaddr* addr) { - unsigned int addrlen; - - if (handle->type != UV_UDP) - return UV_EINVAL; + int addrlen; - if (addr->sa_family == AF_INET) - addrlen = sizeof(struct sockaddr_in); - else if (addr->sa_family == AF_INET6) - addrlen = sizeof(struct sockaddr_in6); - else - return UV_EINVAL; + addrlen = uv__udp_check_before_send(handle, addr); + if (addrlen < 0) + return addrlen; return uv__udp_try_send(handle, bufs, nbufs, addr, addrlen); } diff --git a/deps/uv/src/uv-common.h b/deps/uv/src/uv-common.h index 15ac4d02c1332b..e09a57b2c24b41 100644 --- a/deps/uv/src/uv-common.h +++ b/deps/uv/src/uv-common.h @@ -103,6 +103,7 @@ enum { /* Only used by uv_udp_t handles. */ UV_HANDLE_UDP_PROCESSING = 0x01000000, + UV_HANDLE_UDP_CONNECTED = 0x02000000, /* Only used by uv_pipe_t handles. */ UV_HANDLE_NON_OVERLAPPED_PIPE = 0x01000000, @@ -142,6 +143,14 @@ int uv__udp_bind(uv_udp_t* handle, unsigned int addrlen, unsigned int flags); +int uv__udp_connect(uv_udp_t* handle, + const struct sockaddr* addr, + unsigned int addrlen); + +int uv__udp_disconnect(uv_udp_t* handle); + +int uv__udp_is_connected(uv_udp_t* handle); + int uv__udp_send(uv_udp_send_t* req, uv_udp_t* handle, const uv_buf_t bufs[], diff --git a/deps/uv/src/uv-data-getter-setters.c b/deps/uv/src/uv-data-getter-setters.c index b7fcd4a7fd0ae4..c3025662fa108b 100644 --- a/deps/uv/src/uv-data-getter-setters.c +++ b/deps/uv/src/uv-data-getter-setters.c @@ -36,7 +36,7 @@ const char* uv_req_type_name(uv_req_type type) { case UV_REQ_TYPE_MAX: case UV_UNKNOWN_REQ: default: /* UV_REQ_TYPE_PRIVATE */ - return NULL; + break; } return NULL; } diff --git a/deps/uv/src/win/core.c b/deps/uv/src/win/core.c index bf80d77e273920..e9d0a581537dcd 100644 --- a/deps/uv/src/win/core.c +++ b/deps/uv/src/win/core.c @@ -623,3 +623,30 @@ int uv__socket_sockopt(uv_handle_t* handle, int optname, int* value) { return 0; } + +int uv_cpumask_size(void) { + return (int)(sizeof(DWORD_PTR) * 8); +} + +int uv__getsockpeername(const uv_handle_t* handle, + uv__peersockfunc func, + struct sockaddr* name, + int* namelen, + int delayed_error) { + + int result; + uv_os_fd_t fd; + + result = uv_fileno(handle, &fd); + if (result != 0) + return result; + + if (delayed_error) + return uv_translate_sys_error(delayed_error); + + result = func((SOCKET) fd, name, namelen); + if (result != 0) + return uv_translate_sys_error(WSAGetLastError()); + + return 0; +} diff --git a/deps/uv/src/win/handle.c b/deps/uv/src/win/handle.c index 9d76c3f5420997..61e4df61b327f1 100644 --- a/deps/uv/src/win/handle.c +++ b/deps/uv/src/win/handle.c @@ -139,7 +139,6 @@ void uv_close(uv_handle_t* handle, uv_close_cb cb) { case UV_FS_POLL: uv__fs_poll_close((uv_fs_poll_t*) handle); uv__handle_closing(handle); - uv_want_endgame(loop, handle); return; default: diff --git a/deps/uv/src/win/internal.h b/deps/uv/src/win/internal.h index 634b9f776ccc67..70ddaa533244e2 100644 --- a/deps/uv/src/win/internal.h +++ b/deps/uv/src/win/internal.h @@ -272,6 +272,14 @@ int uv__getpwuid_r(uv_passwd_t* pwd); int uv__convert_utf16_to_utf8(const WCHAR* utf16, int utf16len, char** utf8); int uv__convert_utf8_to_utf16(const char* utf8, int utf8len, WCHAR** utf16); +typedef int (WINAPI *uv__peersockfunc)(SOCKET, struct sockaddr*, int*); + +int uv__getsockpeername(const uv_handle_t* handle, + uv__peersockfunc func, + struct sockaddr* name, + int* namelen, + int delayed_error); + /* * Process stdio handles. diff --git a/deps/uv/src/win/tcp.c b/deps/uv/src/win/tcp.c index 3ce5548c0a4d4a..f2cb5271b8d77d 100644 --- a/deps/uv/src/win/tcp.c +++ b/deps/uv/src/win/tcp.c @@ -809,44 +809,24 @@ static int uv_tcp_try_connect(uv_connect_t* req, int uv_tcp_getsockname(const uv_tcp_t* handle, struct sockaddr* name, int* namelen) { - int result; - - if (handle->socket == INVALID_SOCKET) { - return UV_EINVAL; - } - - if (handle->delayed_error) { - return uv_translate_sys_error(handle->delayed_error); - } - - result = getsockname(handle->socket, name, namelen); - if (result != 0) { - return uv_translate_sys_error(WSAGetLastError()); - } - return 0; + return uv__getsockpeername((const uv_handle_t*) handle, + getsockname, + name, + namelen, + handle->delayed_error); } int uv_tcp_getpeername(const uv_tcp_t* handle, struct sockaddr* name, int* namelen) { - int result; - - if (handle->socket == INVALID_SOCKET) { - return UV_EINVAL; - } - - if (handle->delayed_error) { - return uv_translate_sys_error(handle->delayed_error); - } - - result = getpeername(handle->socket, name, namelen); - if (result != 0) { - return uv_translate_sys_error(WSAGetLastError()); - } - return 0; + return uv__getsockpeername((const uv_handle_t*) handle, + getpeername, + name, + namelen, + handle->delayed_error); } diff --git a/deps/uv/src/win/udp.c b/deps/uv/src/win/udp.c index 37df849f8faf20..8aeeab3b4628c3 100644 --- a/deps/uv/src/win/udp.c +++ b/deps/uv/src/win/udp.c @@ -36,22 +36,27 @@ const unsigned int uv_active_udp_streams_threshold = 0; /* A zero-size buffer for use by uv_udp_read */ static char uv_zero_[] = ""; - -int uv_udp_getsockname(const uv_udp_t* handle, +int uv_udp_getpeername(const uv_udp_t* handle, struct sockaddr* name, int* namelen) { - int result; - if (handle->socket == INVALID_SOCKET) { - return UV_EINVAL; - } + return uv__getsockpeername((const uv_handle_t*) handle, + getpeername, + name, + namelen, + 0); +} - result = getsockname(handle->socket, name, namelen); - if (result != 0) { - return uv_translate_sys_error(WSAGetLastError()); - } - return 0; +int uv_udp_getsockname(const uv_udp_t* handle, + struct sockaddr* name, + int* namelen) { + + return uv__getsockpeername((const uv_handle_t*) handle, + getsockname, + name, + namelen, + 0); } @@ -784,6 +789,18 @@ int uv_udp_set_broadcast(uv_udp_t* handle, int value) { } +int uv__udp_is_bound(uv_udp_t* handle) { + struct sockaddr_storage addr; + int addrlen; + + addrlen = sizeof(addr); + if (uv_udp_getsockname(handle, (struct sockaddr*) &addr, &addrlen) != 0) + return 0; + + return addrlen > 0; +} + + int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock) { WSAPROTOCOL_INFOW protocol_info; int opt_len; @@ -803,7 +820,16 @@ int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock) { handle, sock, protocol_info.iAddressFamily); - return uv_translate_sys_error(err); + if (err) + return uv_translate_sys_error(err); + + if (uv__udp_is_bound(handle)) + handle->flags |= UV_HANDLE_BOUND; + + if (uv__udp_is_connected(handle)) + handle->flags |= UV_HANDLE_UDP_CONNECTED; + + return 0; } @@ -880,6 +906,50 @@ int uv__udp_bind(uv_udp_t* handle, } +int uv__udp_connect(uv_udp_t* handle, + const struct sockaddr* addr, + unsigned int addrlen) { + const struct sockaddr* bind_addr; + int err; + + if (!(handle->flags & UV_HANDLE_BOUND)) { + if (addrlen == sizeof(uv_addr_ip4_any_)) + bind_addr = (const struct sockaddr*) &uv_addr_ip4_any_; + else if (addrlen == sizeof(uv_addr_ip6_any_)) + bind_addr = (const struct sockaddr*) &uv_addr_ip6_any_; + else + return UV_EINVAL; + + err = uv_udp_maybe_bind(handle, bind_addr, addrlen, 0); + if (err) + return uv_translate_sys_error(err); + } + + err = connect(handle->socket, addr, addrlen); + if (err) + return uv_translate_sys_error(err); + + handle->flags |= UV_HANDLE_UDP_CONNECTED; + + return 0; +} + + +int uv__udp_disconnect(uv_udp_t* handle) { + int err; + struct sockaddr addr; + + memset(&addr, 0, sizeof(addr)); + + err = connect(handle->socket, &addr, sizeof(addr)); + if (err) + return uv_translate_sys_error(err); + + handle->flags &= ~UV_HANDLE_UDP_CONNECTED; + return 0; +} + + /* This function is an egress point, i.e. it returns libuv errors rather than * system errors. */ @@ -900,6 +970,7 @@ int uv__udp_send(uv_udp_send_t* req, bind_addr = (const struct sockaddr*) &uv_addr_ip6_any_; else return UV_EINVAL; + err = uv_udp_maybe_bind(handle, bind_addr, addrlen, 0); if (err) return uv_translate_sys_error(err); @@ -925,9 +996,11 @@ int uv__udp_try_send(uv_udp_t* handle, assert(nbufs > 0); - err = uv__convert_to_localhost_if_unspecified(addr, &converted); - if (err) - return err; + if (addr != NULL) { + err = uv__convert_to_localhost_if_unspecified(addr, &converted); + if (err) + return err; + } /* Already sending a message.*/ if (handle->send_queue_count != 0) diff --git a/deps/uv/src/win/winsock.c b/deps/uv/src/win/winsock.c index 5e7da2a8f25293..5820ba9c66da8d 100644 --- a/deps/uv/src/win/winsock.c +++ b/deps/uv/src/win/winsock.c @@ -87,12 +87,6 @@ void uv_winsock_init(void) { WSAPROTOCOL_INFOW protocol_info; int opt_len; - /* Initialize winsock */ - errorno = WSAStartup(MAKEWORD(2, 2), &wsa_data); - if (errorno != 0) { - uv_fatal_error(errorno, "WSAStartup"); - } - /* Set implicit binding address used by connectEx */ if (uv_ip4_addr("0.0.0.0", 0, &uv_addr_ip4_any_)) { abort(); @@ -102,6 +96,15 @@ void uv_winsock_init(void) { abort(); } + /* Skip initialization in safe mode without network support */ + if (1 == GetSystemMetrics(SM_CLEANBOOT)) return; + + /* Initialize winsock */ + errorno = WSAStartup(MAKEWORD(2, 2), &wsa_data); + if (errorno != 0) { + uv_fatal_error(errorno, "WSAStartup"); + } + /* Detect non-IFS LSPs */ dummy = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); diff --git a/deps/uv/test/run-tests.c b/deps/uv/test/run-tests.c index eba28ecb9aa0a5..55cf412827d51d 100644 --- a/deps/uv/test/run-tests.c +++ b/deps/uv/test/run-tests.c @@ -44,7 +44,7 @@ int ipc_send_recv_helper(void); int ipc_helper_bind_twice(void); int ipc_helper_send_zero(void); int stdio_over_pipes_helper(void); -int spawn_stdin_stdout(void); +void spawn_stdin_stdout(void); int spawn_tcp_server_helper(void); static int maybe_run_test(int argc, char **argv); @@ -67,7 +67,9 @@ int main(int argc, char **argv) { return EXIT_FAILURE; } +#ifndef __SUNPRO_C return EXIT_SUCCESS; +#endif } @@ -209,7 +211,8 @@ static int maybe_run_test(int argc, char **argv) { if (strcmp(argv[1], "spawn_helper9") == 0) { notify_parent_process(); - return spawn_stdin_stdout(); + spawn_stdin_stdout(); + return 1; } #ifndef _WIN32 diff --git a/deps/uv/test/task.h b/deps/uv/test/task.h index 282c02d50ce42d..8462e0ddbd0a9c 100644 --- a/deps/uv/test/task.h +++ b/deps/uv/test/task.h @@ -174,8 +174,7 @@ extern int snprintf(char*, size_t, const char*, ...); #if defined(__clang__) || \ defined(__GNUC__) || \ - defined(__INTEL_COMPILER) || \ - defined(__SUNPRO_C) + defined(__INTEL_COMPILER) # define UNUSED __attribute__((unused)) #else # define UNUSED diff --git a/deps/uv/test/test-fs-copyfile.c b/deps/uv/test/test-fs-copyfile.c index eadff542bcb43c..7b6511c93c9787 100644 --- a/deps/uv/test/test-fs-copyfile.c +++ b/deps/uv/test/test-fs-copyfile.c @@ -23,7 +23,8 @@ #include "task.h" #if defined(__unix__) || defined(__POSIX__) || \ - defined(__APPLE__) || defined(_AIX) || defined(__MVS__) + defined(__APPLE__) || defined(__sun) || \ + defined(_AIX) || defined(__MVS__) #include /* unlink, etc. */ #else # include diff --git a/deps/uv/test/test-fs-poll.c b/deps/uv/test/test-fs-poll.c index 737d50dfd26937..e19a68780fa706 100644 --- a/deps/uv/test/test-fs-poll.c +++ b/deps/uv/test/test-fs-poll.c @@ -185,3 +185,77 @@ TEST_IMPL(fs_poll_getpath) { MAKE_VALGRIND_HAPPY(); return 0; } + + +TEST_IMPL(fs_poll_close_request) { + uv_loop_t loop; + uv_fs_poll_t poll_handle; + + remove(FIXTURE); + + ASSERT(0 == uv_loop_init(&loop)); + + ASSERT(0 == uv_fs_poll_init(&loop, &poll_handle)); + ASSERT(0 == uv_fs_poll_start(&poll_handle, poll_cb_fail, FIXTURE, 100)); + uv_close((uv_handle_t*) &poll_handle, close_cb); + while (close_cb_called == 0) + uv_run(&loop, UV_RUN_ONCE); + ASSERT(close_cb_called == 1); + + ASSERT(0 == uv_loop_close(&loop)); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + +TEST_IMPL(fs_poll_close_request_multi_start_stop) { + uv_loop_t loop; + uv_fs_poll_t poll_handle; + int i; + + remove(FIXTURE); + + ASSERT(0 == uv_loop_init(&loop)); + + ASSERT(0 == uv_fs_poll_init(&loop, &poll_handle)); + + for (i = 0; i < 10; ++i) { + ASSERT(0 == uv_fs_poll_start(&poll_handle, poll_cb_fail, FIXTURE, 100)); + ASSERT(0 == uv_fs_poll_stop(&poll_handle)); + } + uv_close((uv_handle_t*) &poll_handle, close_cb); + while (close_cb_called == 0) + uv_run(&loop, UV_RUN_ONCE); + ASSERT(close_cb_called == 1); + + ASSERT(0 == uv_loop_close(&loop)); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + +TEST_IMPL(fs_poll_close_request_multi_stop_start) { + uv_loop_t loop; + uv_fs_poll_t poll_handle; + int i; + + remove(FIXTURE); + + ASSERT(0 == uv_loop_init(&loop)); + + ASSERT(0 == uv_fs_poll_init(&loop, &poll_handle)); + + for (i = 0; i < 10; ++i) { + ASSERT(0 == uv_fs_poll_stop(&poll_handle)); + ASSERT(0 == uv_fs_poll_start(&poll_handle, poll_cb_fail, FIXTURE, 100)); + } + uv_close((uv_handle_t*) &poll_handle, close_cb); + while (close_cb_called == 0) + uv_run(&loop, UV_RUN_ONCE); + ASSERT(close_cb_called == 1); + + ASSERT(0 == uv_loop_close(&loop)); + + MAKE_VALGRIND_HAPPY(); + return 0; +} diff --git a/deps/uv/test/test-fs.c b/deps/uv/test/test-fs.c index 5eed160de2e64b..35f7d0c3f165df 100644 --- a/deps/uv/test/test-fs.c +++ b/deps/uv/test/test-fs.c @@ -30,7 +30,8 @@ /* FIXME we shouldn't need to branch in this file */ #if defined(__unix__) || defined(__POSIX__) || \ - defined(__APPLE__) || defined(_AIX) || defined(__MVS__) + defined(__APPLE__) || defined(__sun) || \ + defined(_AIX) || defined(__MVS__) #include /* unlink, rmdir, etc. */ #else # include @@ -1248,6 +1249,16 @@ TEST_IMPL(fs_fstat) { #endif #endif +#if defined(__linux__) + /* If statx() is supported, the birth time should be equal to the change time + * because we just created the file. On older kernels, it's set to zero. + */ + ASSERT(s->st_birthtim.tv_sec == 0 || + s->st_birthtim.tv_sec == t.st_ctim.tv_sec); + ASSERT(s->st_birthtim.tv_nsec == 0 || + s->st_birthtim.tv_nsec == t.st_ctim.tv_nsec); +#endif + uv_fs_req_cleanup(&req); /* Now do the uv_fs_fstat call asynchronously */ diff --git a/deps/uv/test/test-hrtime.c b/deps/uv/test/test-hrtime.c index fbe9a68bfc70d2..9d461d9623d660 100644 --- a/deps/uv/test/test-hrtime.c +++ b/deps/uv/test/test-hrtime.c @@ -41,13 +41,11 @@ TEST_IMPL(hrtime) { diff = b - a; - /* printf("i= %d diff = %llu\n", i, (unsigned long long int) diff); */ - /* The windows Sleep() function has only a resolution of 10-20 ms. Check - * that the difference between the two hrtime values is somewhat in the - * range we expect it to be. */ + * that the difference between the two hrtime values has a reasonable + * lower bound. + */ ASSERT(diff > (uint64_t) 25 * NANOSEC / MILLISEC); - ASSERT(diff < (uint64_t) 80 * NANOSEC / MILLISEC); --i; } return 0; diff --git a/deps/uv/test/test-ipc.c b/deps/uv/test/test-ipc.c index 88d04ba143cff4..24c067e0a4b9de 100644 --- a/deps/uv/test/test-ipc.c +++ b/deps/uv/test/test-ipc.c @@ -971,4 +971,4 @@ int ipc_helper_send_zero(void) { MAKE_VALGRIND_HAPPY(); return 0; -} \ No newline at end of file +} diff --git a/deps/uv/test/test-list.h b/deps/uv/test/test-list.h index d81416fad22b54..f498c7dc81f1e5 100644 --- a/deps/uv/test/test-list.h +++ b/deps/uv/test/test-list.h @@ -132,6 +132,7 @@ TEST_DECLARE (tcp_write_ready) TEST_DECLARE (udp_alloc_cb_fail) TEST_DECLARE (udp_bind) TEST_DECLARE (udp_bind_reuseaddr) +TEST_DECLARE (udp_connect) TEST_DECLARE (udp_create_early) TEST_DECLARE (udp_create_early_bad_bind) TEST_DECLARE (udp_create_early_bad_domain) @@ -152,6 +153,8 @@ TEST_DECLARE (udp_options6) TEST_DECLARE (udp_no_autobind) TEST_DECLARE (udp_open) TEST_DECLARE (udp_open_twice) +TEST_DECLARE (udp_open_bound) +TEST_DECLARE (udp_open_connect) TEST_DECLARE (udp_try_send) TEST_DECLARE (pipe_bind_error_addrinuse) TEST_DECLARE (pipe_bind_error_addrnotavail) @@ -280,6 +283,9 @@ TEST_DECLARE (spawn_quoted_path) TEST_DECLARE (spawn_tcp_server) TEST_DECLARE (fs_poll) TEST_DECLARE (fs_poll_getpath) +TEST_DECLARE (fs_poll_close_request) +TEST_DECLARE (fs_poll_close_request_multi_start_stop) +TEST_DECLARE (fs_poll_close_request_multi_stop_start) TEST_DECLARE (kill) TEST_DECLARE (kill_invalid_signum) TEST_DECLARE (fs_file_noent) @@ -619,6 +625,7 @@ TASK_LIST_START TEST_ENTRY (udp_alloc_cb_fail) TEST_ENTRY (udp_bind) TEST_ENTRY (udp_bind_reuseaddr) + TEST_ENTRY (udp_connect) TEST_ENTRY (udp_create_early) TEST_ENTRY (udp_create_early_bad_bind) TEST_ENTRY (udp_create_early_bad_domain) @@ -642,6 +649,9 @@ TASK_LIST_START TEST_ENTRY (udp_open) TEST_HELPER (udp_open, udp4_echo_server) TEST_ENTRY (udp_open_twice) + TEST_ENTRY (udp_open_bound) + TEST_ENTRY (udp_open_connect) + TEST_HELPER (udp_open_connect, udp4_echo_server) TEST_ENTRY (pipe_bind_error_addrinuse) TEST_ENTRY (pipe_bind_error_addrnotavail) @@ -817,6 +827,9 @@ TASK_LIST_START TEST_ENTRY (spawn_tcp_server) TEST_ENTRY (fs_poll) TEST_ENTRY (fs_poll_getpath) + TEST_ENTRY (fs_poll_close_request) + TEST_ENTRY (fs_poll_close_request_multi_start_stop) + TEST_ENTRY (fs_poll_close_request_multi_stop_start) TEST_ENTRY (kill) TEST_ENTRY (kill_invalid_signum) diff --git a/deps/uv/test/test-loop-handles.c b/deps/uv/test/test-loop-handles.c index 6471cd08b32fc4..131098801ae126 100644 --- a/deps/uv/test/test-loop-handles.c +++ b/deps/uv/test/test-loop-handles.c @@ -320,7 +320,7 @@ TEST_IMPL(loop_handles) { ASSERT(prepare_1_cb_called == ITERATIONS); ASSERT(prepare_1_close_cb_called == 1); - ASSERT(prepare_2_cb_called == floor(ITERATIONS / 2.0)); + ASSERT(prepare_2_cb_called == ITERATIONS / 2); ASSERT(prepare_2_close_cb_called == 1); ASSERT(check_cb_called == ITERATIONS); diff --git a/deps/uv/test/test-poll.c b/deps/uv/test/test-poll.c index 0d1b1d7ec9540c..cc2b5fbe59de8c 100644 --- a/deps/uv/test/test-poll.c +++ b/deps/uv/test/test-poll.c @@ -82,9 +82,9 @@ static int closed_connections = 0; static int valid_writable_wakeups = 0; static int spurious_writable_wakeups = 0; -#if !defined(_AIX) && !defined(__MVS__) +#if !defined(__sun) && !defined(_AIX) && !defined(__MVS__) static int disconnects = 0; -#endif /* !_AIX && !__MVS__ */ +#endif /* !__sun && !_AIX && !__MVS__ */ static int got_eagain(void) { #ifdef _WIN32 @@ -391,7 +391,7 @@ static void connection_poll_cb(uv_poll_t* handle, int status, int events) { new_events &= ~UV_WRITABLE; } } -#if !defined(_AIX) && !defined(__MVS__) +#if !defined(__sun) && !defined(_AIX) && !defined(__MVS__) if (events & UV_DISCONNECT) { context->got_disconnect = 1; ++disconnects; @@ -399,9 +399,9 @@ static void connection_poll_cb(uv_poll_t* handle, int status, int events) { } if (context->got_fin && context->sent_fin && context->got_disconnect) { -#else /* _AIX && __MVS__ */ +#else /* __sun && _AIX && __MVS__ */ if (context->got_fin && context->sent_fin) { -#endif /* !_AIX && !__MVS__ */ +#endif /* !__sun && !_AIX && !__MVS__ */ /* Sent and received FIN. Close and destroy context. */ close_socket(context->sock); destroy_connection_context(context); @@ -569,7 +569,7 @@ static void start_poll_test(void) { spurious_writable_wakeups > 20); ASSERT(closed_connections == NUM_CLIENTS * 2); -#if !defined(_AIX) && !defined(__MVS__) +#if !defined(__sun) && !defined(_AIX) && !defined(__MVS__) ASSERT(disconnects == NUM_CLIENTS * 2); #endif MAKE_VALGRIND_HAPPY(); diff --git a/deps/uv/test/test-spawn.c b/deps/uv/test/test-spawn.c index 05c76f61452400..e5fc308a0e4345 100644 --- a/deps/uv/test/test-spawn.c +++ b/deps/uv/test/test-spawn.c @@ -1838,7 +1838,7 @@ TEST_IMPL(spawn_quoted_path) { /* Helper for child process of spawn_inherit_streams */ #ifndef _WIN32 -int spawn_stdin_stdout(void) { +void spawn_stdin_stdout(void) { char buf[1024]; char* pbuf; for (;;) { @@ -1847,7 +1847,7 @@ int spawn_stdin_stdout(void) { r = read(0, buf, sizeof buf); } while (r == -1 && errno == EINTR); if (r == 0) { - return 1; + return; } ASSERT(r > 0); c = r; @@ -1861,10 +1861,9 @@ int spawn_stdin_stdout(void) { c = c - w; } } - return 2; } #else -int spawn_stdin_stdout(void) { +void spawn_stdin_stdout(void) { char buf[1024]; char* pbuf; HANDLE h_stdin = GetStdHandle(STD_INPUT_HANDLE); @@ -1877,7 +1876,7 @@ int spawn_stdin_stdout(void) { DWORD to_write; if (!ReadFile(h_stdin, buf, sizeof buf, &n_read, NULL)) { ASSERT(GetLastError() == ERROR_BROKEN_PIPE); - return 1; + return; } to_write = n_read; pbuf = buf; @@ -1887,6 +1886,5 @@ int spawn_stdin_stdout(void) { pbuf += n_written; } } - return 2; } #endif /* !_WIN32 */ diff --git a/deps/uv/test/test-udp-connect.c b/deps/uv/test/test-udp-connect.c new file mode 100644 index 00000000000000..f44634248f7e31 --- /dev/null +++ b/deps/uv/test/test-udp-connect.c @@ -0,0 +1,182 @@ +/* Copyright libuv project and contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "uv.h" +#include "task.h" + +#include +#include +#include + +#define CHECK_HANDLE(handle) \ + ASSERT((uv_udp_t*)(handle) == &server || (uv_udp_t*)(handle) == &client) + +static uv_udp_t server; +static uv_udp_t client; +static uv_buf_t buf; +static struct sockaddr_in lo_addr; + +static int cl_send_cb_called; +static int sv_recv_cb_called; + +static int close_cb_called; + + +static void alloc_cb(uv_handle_t* handle, + size_t suggested_size, + uv_buf_t* buf) { + static char slab[65536]; + CHECK_HANDLE(handle); + ASSERT(suggested_size <= sizeof(slab)); + buf->base = slab; + buf->len = sizeof(slab); +} + + +static void close_cb(uv_handle_t* handle) { + CHECK_HANDLE(handle); + ASSERT(uv_is_closing(handle)); + close_cb_called++; +} + + +static void cl_send_cb(uv_udp_send_t* req, int status) { + int r; + + ASSERT(req != NULL); + ASSERT(status == 0); + CHECK_HANDLE(req->handle); + if (++cl_send_cb_called == 1) { + uv_udp_connect(&client, NULL); + r = uv_udp_send(req, &client, &buf, 1, NULL, cl_send_cb); + ASSERT(r == UV_EDESTADDRREQ); + r = uv_udp_send(req, + &client, + &buf, + 1, + (const struct sockaddr*) &lo_addr, + cl_send_cb); + ASSERT(r == 0); + } + +} + + +static void sv_recv_cb(uv_udp_t* handle, + ssize_t nread, + const uv_buf_t* rcvbuf, + const struct sockaddr* addr, + unsigned flags) { + if (nread > 0) { + ASSERT(nread == 4); + ASSERT(addr != NULL); + ASSERT(memcmp("EXIT", rcvbuf->base, nread) == 0); + if (++sv_recv_cb_called == 4) { + uv_close((uv_handle_t*) &server, close_cb); + uv_close((uv_handle_t*) &client, close_cb); + } + } +} + + +TEST_IMPL(udp_connect) { + uv_udp_send_t req; + struct sockaddr_in ext_addr; + struct sockaddr_in tmp_addr; + int r; + int addrlen; + + ASSERT(0 == uv_ip4_addr("0.0.0.0", TEST_PORT, &lo_addr)); + + r = uv_udp_init(uv_default_loop(), &server); + ASSERT(r == 0); + + r = uv_udp_bind(&server, (const struct sockaddr*) &lo_addr, 0); + ASSERT(r == 0); + + r = uv_udp_recv_start(&server, alloc_cb, sv_recv_cb); + ASSERT(r == 0); + + r = uv_udp_init(uv_default_loop(), &client); + ASSERT(r == 0); + + buf = uv_buf_init("EXIT", 4); + + ASSERT(0 == uv_ip4_addr("8.8.8.8", TEST_PORT, &ext_addr)); + ASSERT(0 == uv_ip4_addr("127.0.0.1", TEST_PORT, &lo_addr)); + + r = uv_udp_connect(&client, (const struct sockaddr*) &lo_addr); + ASSERT(r == 0); + r = uv_udp_connect(&client, (const struct sockaddr*) &ext_addr); + ASSERT(r == UV_EISCONN); + + addrlen = sizeof(tmp_addr); + r = uv_udp_getpeername(&client, (struct sockaddr*) &tmp_addr, &addrlen); + ASSERT(r == 0); + + /* To send messages in connected UDP sockets addr must be NULL */ + r = uv_udp_try_send(&client, &buf, 1, (const struct sockaddr*) &lo_addr); + ASSERT(r == UV_EISCONN); + r = uv_udp_try_send(&client, &buf, 1, NULL); + ASSERT(r == 4); + r = uv_udp_try_send(&client, &buf, 1, (const struct sockaddr*) &ext_addr); + ASSERT(r == UV_EISCONN); + + r = uv_udp_connect(&client, NULL); + ASSERT(r == 0); + r = uv_udp_connect(&client, NULL); + ASSERT(r == UV_ENOTCONN); + + addrlen = sizeof(tmp_addr); + r = uv_udp_getpeername(&client, (struct sockaddr*) &tmp_addr, &addrlen); + ASSERT(r == UV_ENOTCONN); + + /* To send messages in disconnected UDP sockets addr must be set */ + r = uv_udp_try_send(&client, &buf, 1, (const struct sockaddr*) &lo_addr); + ASSERT(r == 4); + r = uv_udp_try_send(&client, &buf, 1, NULL); + ASSERT(r == UV_EDESTADDRREQ); + + + r = uv_udp_connect(&client, (const struct sockaddr*) &lo_addr); + ASSERT(r == 0); + r = uv_udp_send(&req, + &client, + &buf, + 1, + (const struct sockaddr*) &lo_addr, + cl_send_cb); + ASSERT(r == UV_EISCONN); + r = uv_udp_send(&req, &client, &buf, 1, NULL, cl_send_cb); + ASSERT(r == 0); + + uv_run(uv_default_loop(), UV_RUN_DEFAULT); + + ASSERT(close_cb_called == 2); + ASSERT(sv_recv_cb_called == 4); + ASSERT(cl_send_cb_called == 2); + + ASSERT(client.send_queue_size == 0); + ASSERT(server.send_queue_size == 0); + + MAKE_VALGRIND_HAPPY(); + return 0; +} diff --git a/deps/uv/test/test-udp-open.c b/deps/uv/test/test-udp-open.c index ee04c99f61bae2..0390bae2e5d282 100644 --- a/deps/uv/test/test-udp-open.c +++ b/deps/uv/test/test-udp-open.c @@ -129,6 +129,7 @@ static void send_cb(uv_udp_send_t* req, int status) { ASSERT(status == 0); send_cb_called++; + uv_close((uv_handle_t*)req->handle, close_cb); } @@ -215,3 +216,83 @@ TEST_IMPL(udp_open_twice) { MAKE_VALGRIND_HAPPY(); return 0; } + +TEST_IMPL(udp_open_bound) { + struct sockaddr_in addr; + uv_udp_t client; + uv_os_sock_t sock; + int r; + + ASSERT(0 == uv_ip4_addr("127.0.0.1", TEST_PORT, &addr)); + + startup(); + sock = create_udp_socket(); + + r = bind(sock, (struct sockaddr*) &addr, sizeof(addr)); + ASSERT(r == 0); + + r = uv_udp_init(uv_default_loop(), &client); + ASSERT(r == 0); + + r = uv_udp_open(&client, sock); + ASSERT(r == 0); + + r = uv_udp_recv_start(&client, alloc_cb, recv_cb); + ASSERT(r == 0); + + uv_close((uv_handle_t*) &client, NULL); + uv_run(uv_default_loop(), UV_RUN_DEFAULT); + + MAKE_VALGRIND_HAPPY(); + return 0; +} + +TEST_IMPL(udp_open_connect) { + struct sockaddr_in addr; + uv_buf_t buf = uv_buf_init("PING", 4); + uv_udp_t client; + uv_udp_t server; + uv_os_sock_t sock; + int r; + + ASSERT(0 == uv_ip4_addr("127.0.0.1", TEST_PORT, &addr)); + + startup(); + sock = create_udp_socket(); + + r = uv_udp_init(uv_default_loop(), &client); + ASSERT(r == 0); + + r = connect(sock, (const struct sockaddr*) &addr, sizeof(addr)); + ASSERT(r == 0); + + r = uv_udp_open(&client, sock); + ASSERT(r == 0); + + r = uv_udp_init(uv_default_loop(), &server); + ASSERT(r == 0); + + r = uv_udp_bind(&server, (const struct sockaddr*) &addr, 0); + ASSERT(r == 0); + + r = uv_udp_recv_start(&server, alloc_cb, recv_cb); + ASSERT(r == 0); + + r = uv_udp_send(&send_req, + &client, + &buf, + 1, + NULL, + send_cb); + ASSERT(r == 0); + + uv_run(uv_default_loop(), UV_RUN_DEFAULT); + + ASSERT(send_cb_called == 1); + ASSERT(close_cb_called == 2); + + ASSERT(client.send_queue_size == 0); + + MAKE_VALGRIND_HAPPY(); + return 0; +} diff --git a/deps/uv/test/test.gyp b/deps/uv/test/test.gyp index 8fc6cca140dc7e..9c13e25dde0ef0 100644 --- a/deps/uv/test/test.gyp +++ b/deps/uv/test/test.gyp @@ -137,6 +137,7 @@ 'test-tty.c', 'test-udp-alloc-cb-fail.c', 'test-udp-bind.c', + 'test-udp-connect.c', 'test-udp-create-socket-early.c', 'test-udp-dgram-too-big.c', 'test-udp-ipv6.c', From 0303aba162016d2898bd57f14b57235e43d280a0 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 15 Mar 2019 05:10:28 -0700 Subject: [PATCH 051/164] doc: update spawnSync() status value possibilities MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The object returned by `child_process.spawnSync()` can have the `status` property set to `null` if the process terminated due to a signal. We even test for this in test/parallel/test-child-process-spawnsync-kill-signal.js. Update the documentation to reflect this. PR-URL: https://github.com/nodejs/node/pull/26680 Reviewed-By: Richard Lau Reviewed-By: Colin Ihrig Reviewed-By: Gireesh Punathil Reviewed-By: Michaël Zasso Reviewed-By: James M Snell Reviewed-By: Sakthipriyan Vairamani --- doc/api/child_process.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/api/child_process.md b/doc/api/child_process.md index a6064ee3c7545f..a3bdfc15c385e7 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -868,8 +868,10 @@ changes: * `output` {Array} Array of results from stdio output. * `stdout` {Buffer|string} The contents of `output[1]`. * `stderr` {Buffer|string} The contents of `output[2]`. - * `status` {number} The exit code of the child process. - * `signal` {string} The signal used to kill the child process. + * `status` {number|null} The exit code of the subprocess, or `null` if the + subprocess terminated due to a signal. + * `signal` {string|null} The signal used to kill the subprocess, or `null` if + the subprocess did not terminate due to a signal. * `error` {Error} The error object if the child process failed or timed out. The `child_process.spawnSync()` method is generally identical to From ea425140a18aa8906b40cae6f5c57afc2e7d72ab Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 6 Jun 2018 23:22:50 +0200 Subject: [PATCH 052/164] test: add fs.watchFile() + worker.terminate() test Refs: https://github.com/nodejs/node/pull/21093#discussion_r193563156 PR-URL: https://github.com/nodejs/node/pull/21179 Reviewed-By: Anatoli Papirovski Reviewed-By: Jeremiah Senkpiel Reviewed-By: Yuta Hiroto Reviewed-By: Benjamin Gruenbaum Reviewed-By: Colin Ihrig Reviewed-By: Trivikram Kamat Reviewed-By: Minwoo Jung Reviewed-By: James M Snell --- test/parallel/test-worker-fs-stat-watcher.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 test/parallel/test-worker-fs-stat-watcher.js diff --git a/test/parallel/test-worker-fs-stat-watcher.js b/test/parallel/test-worker-fs-stat-watcher.js new file mode 100644 index 00000000000000..b58d43d0cfa8ea --- /dev/null +++ b/test/parallel/test-worker-fs-stat-watcher.js @@ -0,0 +1,18 @@ +// Flags: --experimental-worker +'use strict'; +const common = require('../common'); +const { Worker, parentPort } = require('worker_threads'); +const fs = require('fs'); + +// Checks that terminating Workers does not crash the process if fs.watchFile() +// has active handles. + +// Do not use isMainThread so that this test itself can be run inside a Worker. +if (!process.env.HAS_STARTED_WORKER) { + process.env.HAS_STARTED_WORKER = 1; + const worker = new Worker(__filename); + worker.on('message', common.mustCall(() => worker.terminate())); +} else { + fs.watchFile(__filename, () => {}); + parentPort.postMessage('running'); +} From 9c83002274860e341b7d17ad7d76d3fc34ce29a3 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Mon, 11 Mar 2019 13:26:44 -0700 Subject: [PATCH 053/164] test: use EC cert property now that it exists Remove XXX, there has been an EC specific cert property since https://github.com/nodejs/node/pull/24358 PR-URL: https://github.com/nodejs/node/pull/26598 Reviewed-By: Daniel Bevenius Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Reviewed-By: Daijiro Wachi --- test/parallel/test-tls-multi-key.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/parallel/test-tls-multi-key.js b/test/parallel/test-tls-multi-key.js index 8ccc0d32d93757..de213f57e2d65d 100644 --- a/test/parallel/test-tls-multi-key.js +++ b/test/parallel/test-tls-multi-key.js @@ -160,9 +160,7 @@ function test(options) { version: 'TLSv1/SSLv3' }); assert.strictEqual(ecdsa.getPeerCertificate().subject.CN, eccCN); - // XXX(sam) certs don't currently include EC key info, so depend on - // absence of RSA key info to indicate key is EC. - assert(!ecdsa.getPeerCertificate().exponent, 'not cert for an RSA key'); + assert.strictEqual(ecdsa.getPeerCertificate().asn1Curve, 'prime256v1'); ecdsa.end(); connectWithRsa(); })); From a44f98e3336989aeb469a7dec6ae15729508ac60 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Fri, 15 Mar 2019 12:12:26 +0100 Subject: [PATCH 054/164] lib: run prepareMainThreadExecution for third_party_main Treat `_third_party_main` like any other CJS entry point, as it was done before 6967f91368cbb9cad3877ee59874cc83ccef4653. PR-URL: https://github.com/nodejs/node/pull/26677 Reviewed-By: Colin Ihrig Reviewed-By: Gus Caplan Reviewed-By: Joyee Cheung Reviewed-By: James M Snell Reviewed-By: Richard Lau Reviewed-By: Ruben Bridgewater --- lib/internal/main/run_third_party_main.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/internal/main/run_third_party_main.js b/lib/internal/main/run_third_party_main.js index c26c1f25f380c8..5fb1d39bc6d072 100644 --- a/lib/internal/main/run_third_party_main.js +++ b/lib/internal/main/run_third_party_main.js @@ -1,9 +1,13 @@ 'use strict'; -// Legacy _third_party_main.js support +const { + prepareMainThreadExecution +} = require('internal/bootstrap/pre_execution'); +prepareMainThreadExecution(); markBootstrapComplete(); +// Legacy _third_party_main.js support process.nextTick(() => { require('_third_party_main'); }); From 148c2ca33d96e4a1dd599e85cb9f2b2ab8a1e1f9 Mon Sep 17 00:00:00 2001 From: kohta ito Date: Tue, 12 Mar 2019 19:31:27 +0900 Subject: [PATCH 055/164] doc: add Note of options.stdio into child_process PR-URL: https://github.com/nodejs/node/pull/26604 Refs: https://github.com/nodejs/node/pull/22892#issuecomment-469173273 Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Bartosz Sosnowski --- doc/api/child_process.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/api/child_process.md b/doc/api/child_process.md index a3bdfc15c385e7..b2208c006ccaeb 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -637,7 +637,8 @@ pipes between the parent and child. The value is one of the following: occurred). 6. Positive integer - The integer value is interpreted as a file descriptor that is currently open in the parent process. It is shared with the child - process, similar to how {Stream} objects can be shared. + process, similar to how {Stream} objects can be shared. Passing sockets + is not supported on Windows. 7. `null`, `undefined` - Use default value. For stdio fds 0, 1, and 2 (in other words, stdin, stdout, and stderr) a pipe is created. For fd 3 and up, the default is `'ignore'`. From 1073e54ad608d0b8bd7e8f0c509be6547a1b32ad Mon Sep 17 00:00:00 2001 From: gengjiawen Date: Sun, 17 Mar 2019 00:12:52 +0800 Subject: [PATCH 056/164] http2: delete unused enum in node_http2.h PR-URL: https://github.com/nodejs/node/pull/26704 Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell Reviewed-By: Yongsheng Zhang --- src/node_http2.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/node_http2.h b/src/node_http2.h index c5c0ebcc2b0c66..06adfd55cd8ec2 100644 --- a/src/node_http2.h +++ b/src/node_http2.h @@ -55,10 +55,6 @@ enum nghttp2_session_type { NGHTTP2_SESSION_CLIENT }; -enum nghttp2_shutdown_flags { - NGHTTP2_SHUTDOWN_FLAG_GRACEFUL -}; - enum nghttp2_stream_flags { NGHTTP2_STREAM_FLAG_NONE = 0x0, // Writable side has ended From 8cafd83ba7dee3dd43a41e74f03082818c8fe99d Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Thu, 7 Mar 2019 01:48:02 +0100 Subject: [PATCH 057/164] tty: add NO_COLOR and FORCE_COLOR support This adds support to enforce a specific color depth by checking the `FORCE_COLOR` environment variable similar to `chalk`. On top of that we also add support for the `NO_COLOR` environment variable as suggested by https://no-color.org/. PR-URL: https://github.com/nodejs/node/pull/26485 Refs: https://github.com/nodejs/node/pull/26248 Reviewed-By: Roman Reiss Reviewed-By: Jeremiah Senkpiel --- doc/api/tty.md | 20 +++++++---- lib/internal/tty.js | 40 +++++++++++++++++++++- test/pseudo-tty/test-tty-color-support.js | 11 ++++-- test/pseudo-tty/test-tty-color-support.out | 8 +++++ 4 files changed, 70 insertions(+), 9 deletions(-) diff --git a/doc/api/tty.md b/doc/api/tty.md index 12a34b14eb7cc0..4edc3ad86e11d5 100644 --- a/doc/api/tty.md +++ b/doc/api/tty.md @@ -144,8 +144,9 @@ position. added: v9.9.0 --> -* `env` {Object} An object containing the environment variables to check. - **Default:** `process.env`. +* `env` {Object} An object containing the environment variables to check. This + enables simulating the usage of a specific terminal. **Default:** + `process.env`. * Returns: {number} Returns: @@ -159,11 +160,18 @@ Use this to determine what colors the terminal supports. Due to the nature of colors in terminals it is possible to either have false positives or false negatives. It depends on process information and the environment variables that may lie about what terminal is used. -To enforce a specific behavior without relying on `process.env` it is possible -to pass in an object with different settings. +It is possible to pass in an `env` object to simulate the usage of a specific +terminal. This can be useful to check how specific environment settings behave. + +To enforce a specific color support, use one of the below environment settings. + +* 2 colors: `FORCE_COLOR = 0` (Disables colors) +* 16 colors: `FORCE_COLOR = 1` +* 256 colors: `FORCE_COLOR = 2` +* 16,777,216 colors: `FORCE_COLOR = 3` -Use the `NODE_DISABLE_COLORS` environment variable to enforce this function to -always return 1. +Disabling color support is also possible by using the `NO_COLOR` and +`NODE_DISABLE_COLORS` environment variables. ### writeStream.getWindowSize() * `error` {Error} -Destroy the stream, and emit `'error'`. After this call, the +Destroy the stream, and optionally emit an `'error'` event. After this call, the transform stream would release any internal resources. Implementors should not override this method, but instead implement [`readable._destroy()`][readable-_destroy]. -The default implementation of `_destroy()` for `Transform` also emit `'close'`. +The default implementation of `_destroy()` for `Transform` also emit `'close'` +unless `emitClose` is set in false. ### stream.finished(stream[, options], callback) * `settings` {HTTP/2 Settings Object} +* `callback` {Function} Callback that is called once the session is connected or + right away if the session is already connected. + * `err` {Error|null} + * `settings` {HTTP/2 Settings Object} The updated `settings` object. + * `duration` {integer} Updates the current local settings for this `Http2Session` and sends a new `SETTINGS` frame to the connected HTTP/2 peer. @@ -2232,7 +2237,7 @@ Returns an object containing the default settings for an `Http2Session` instance. This method returns a new object instance every time it is called so instances returned may be safely modified for use. -### http2.getPackedSettings(settings) +### http2.getPackedSettings([settings]) From 0b2f900c9ab5d230eed453bd3541789b0eb5106a Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Mon, 11 Feb 2019 13:20:26 +0100 Subject: [PATCH 143/164] stream: make sure 'readable' is emitted before ending the stream Fixes: https://github.com/nodejs/node/issues/25810 PR-URL: https://github.com/nodejs/node/pull/26059 Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- lib/_stream_readable.js | 18 +-- lib/_stream_transform.js | 3 - .../parallel/test-http-readable-data-event.js | 4 +- ...eam-readable-emit-readable-short-stream.js | 146 ++++++++++++++++++ .../test-stream-readable-emittedReadable.js | 13 +- .../test-stream-readable-needReadable.js | 10 +- ...est-stream-readable-reading-readingMore.js | 10 +- .../test-stream2-httpclient-response-end.js | 7 +- test/parallel/test-stream2-transform.js | 13 +- 9 files changed, 191 insertions(+), 33 deletions(-) create mode 100644 test/parallel/test-stream-readable-emit-readable-short-stream.js diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 1c1bce6cf2c376..d3228340b4bca9 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -510,20 +510,12 @@ function onEofChunk(stream, state) { } } state.ended = true; + state.needReadable = false; - if (state.sync) { - // If we are sync, wait until next tick to emit the data. - // Otherwise we risk emitting data in the flow() - // the readable code triggers during a read() call - emitReadable(stream); - } else { - // Emit 'readable' now to make sure it gets picked up. - state.needReadable = false; - if (!state.emittedReadable) { - state.emittedReadable = true; - emitReadable_(stream); - } - } + // We are not protecting if emittedReadable = true, + // so 'readable' gets scheduled anyway. + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); } // Don't emit readable right away in sync mode, because this can trigger diff --git a/lib/_stream_transform.js b/lib/_stream_transform.js index 0b4f845e4c1503..7393dddbabc329 100644 --- a/lib/_stream_transform.js +++ b/lib/_stream_transform.js @@ -116,9 +116,6 @@ function Transform(options) { writeencoding: null }; - // Start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - // We have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. diff --git a/test/parallel/test-http-readable-data-event.js b/test/parallel/test-http-readable-data-event.js index ddaeca5fe7103c..21b1fa65c661c8 100644 --- a/test/parallel/test-http-readable-data-event.js +++ b/test/parallel/test-http-readable-data-event.js @@ -29,7 +29,7 @@ const server = http.createServer((req, res) => { }; const expectedData = [helloWorld, helloAgainLater]; - const expectedRead = [helloWorld, null, helloAgainLater, null]; + const expectedRead = [helloWorld, null, helloAgainLater, null, null]; const req = http.request(opts, (res) => { res.on('error', common.mustNotCall()); @@ -42,7 +42,7 @@ const server = http.createServer((req, res) => { assert.strictEqual(data, expectedRead.shift()); next(); } while (data !== null); - }, 2)); + }, 3)); res.setEncoding('utf8'); res.on('data', common.mustCall((data) => { diff --git a/test/parallel/test-stream-readable-emit-readable-short-stream.js b/test/parallel/test-stream-readable-emit-readable-short-stream.js new file mode 100644 index 00000000000000..2f4f43baf5a848 --- /dev/null +++ b/test/parallel/test-stream-readable-emit-readable-short-stream.js @@ -0,0 +1,146 @@ +'use strict'; + +const common = require('../common'); +const stream = require('stream'); +const assert = require('assert'); + +{ + const r = new stream.Readable({ + read: common.mustCall(function() { + this.push('content'); + this.push(null); + }) + }); + + const t = new stream.Transform({ + transform: common.mustCall(function(chunk, encoding, callback) { + this.push(chunk); + return callback(); + }), + flush: common.mustCall(function(callback) { + return callback(); + }) + }); + + r.pipe(t); + t.on('readable', common.mustCall(function() { + while (true) { + const chunk = t.read(); + if (!chunk) + break; + + assert.strictEqual(chunk.toString(), 'content'); + } + }, 2)); +} + +{ + const t = new stream.Transform({ + transform: common.mustCall(function(chunk, encoding, callback) { + this.push(chunk); + return callback(); + }), + flush: common.mustCall(function(callback) { + return callback(); + }) + }); + + t.end('content'); + + t.on('readable', common.mustCall(function() { + while (true) { + const chunk = t.read(); + if (!chunk) + break; + assert.strictEqual(chunk.toString(), 'content'); + } + }, 2)); +} + +{ + const t = new stream.Transform({ + transform: common.mustCall(function(chunk, encoding, callback) { + this.push(chunk); + return callback(); + }), + flush: common.mustCall(function(callback) { + return callback(); + }) + }); + + t.write('content'); + t.end(); + + t.on('readable', common.mustCall(function() { + while (true) { + const chunk = t.read(); + if (!chunk) + break; + assert.strictEqual(chunk.toString(), 'content'); + } + }, 2)); +} + +{ + const t = new stream.Readable({ + read() { + } + }); + + t.on('readable', common.mustCall(function() { + while (true) { + const chunk = t.read(); + if (!chunk) + break; + assert.strictEqual(chunk.toString(), 'content'); + } + }, 2)); + + t.push('content'); + t.push(null); +} + +{ + const t = new stream.Readable({ + read() { + } + }); + + t.on('readable', common.mustCall(function() { + while (true) { + const chunk = t.read(); + if (!chunk) + break; + assert.strictEqual(chunk.toString(), 'content'); + } + }, 2)); + + process.nextTick(() => { + t.push('content'); + t.push(null); + }); +} + +{ + const t = new stream.Transform({ + transform: common.mustCall(function(chunk, encoding, callback) { + this.push(chunk); + return callback(); + }), + flush: common.mustCall(function(callback) { + return callback(); + }) + }); + + t.on('readable', common.mustCall(function() { + while (true) { + const chunk = t.read(); + if (!chunk) + break; + assert.strictEqual(chunk.toString(), 'content'); + } + }, 2)); + + t.write('content'); + t.end(); +} diff --git a/test/parallel/test-stream-readable-emittedReadable.js b/test/parallel/test-stream-readable-emittedReadable.js index ba613f9e9ff19d..6580c36303e11e 100644 --- a/test/parallel/test-stream-readable-emittedReadable.js +++ b/test/parallel/test-stream-readable-emittedReadable.js @@ -43,12 +43,23 @@ const noRead = new Readable({ read: () => {} }); -noRead.on('readable', common.mustCall(() => { +noRead.once('readable', common.mustCall(() => { // emittedReadable should be true when the readable event is emitted assert.strictEqual(noRead._readableState.emittedReadable, true); noRead.read(0); // emittedReadable is not reset during read(0) assert.strictEqual(noRead._readableState.emittedReadable, true); + + noRead.on('readable', common.mustCall(() => { + // The second 'readable' is emitted because we are ending + + // emittedReadable should be true when the readable event is emitted + assert.strictEqual(noRead._readableState.emittedReadable, false); + noRead.read(0); + // emittedReadable is not reset during read(0) + assert.strictEqual(noRead._readableState.emittedReadable, false); + + })); })); noRead.push('foo'); diff --git a/test/parallel/test-stream-readable-needReadable.js b/test/parallel/test-stream-readable-needReadable.js index 7058e123f07823..54618b5e8ab14c 100644 --- a/test/parallel/test-stream-readable-needReadable.js +++ b/test/parallel/test-stream-readable-needReadable.js @@ -14,7 +14,7 @@ readable.on('readable', common.mustCall(() => { // When the readable event fires, needReadable is reset. assert.strictEqual(readable._readableState.needReadable, false); readable.read(); -})); +}, 2)); // If a readable listener is attached, then a readable event is needed. assert.strictEqual(readable._readableState.needReadable, true); @@ -74,12 +74,14 @@ const slowProducer = new Readable({ }); slowProducer.on('readable', common.mustCall(() => { - if (slowProducer.read(8) === null) { + const chunk = slowProducer.read(8); + const state = slowProducer._readableState; + if (chunk === null) { // The buffer doesn't have enough data, and the stream is not need, // we need to notify the reader when data arrives. - assert.strictEqual(slowProducer._readableState.needReadable, true); + assert.strictEqual(state.needReadable, true); } else { - assert.strictEqual(slowProducer._readableState.needReadable, false); + assert.strictEqual(state.needReadable, false); } }, 4)); diff --git a/test/parallel/test-stream-readable-reading-readingMore.js b/test/parallel/test-stream-readable-reading-readingMore.js index f5643205da0596..e72159d1c9be94 100644 --- a/test/parallel/test-stream-readable-reading-readingMore.js +++ b/test/parallel/test-stream-readable-reading-readingMore.js @@ -31,7 +31,7 @@ const Readable = require('stream').Readable; assert.strictEqual(state.reading, false); } - const expectedReadingMore = [true, false]; + const expectedReadingMore = [true, false, false]; readable.on('readable', common.mustCall(() => { // There is only one readingMore scheduled from on('data'), // after which everything is governed by the .read() call @@ -40,10 +40,12 @@ const Readable = require('stream').Readable; // If the stream has ended, we shouldn't be reading assert.strictEqual(state.ended, !state.reading); - const data = readable.read(); - if (data === null) // reached end of stream + // consume all the data + while (readable.read() !== null) {} + + if (expectedReadingMore.length === 0) // reached end of stream process.nextTick(common.mustCall(onStreamEnd, 1)); - }, 2)); + }, 3)); readable.on('end', common.mustCall(onStreamEnd)); readable.push('pushed'); diff --git a/test/parallel/test-stream2-httpclient-response-end.js b/test/parallel/test-stream2-httpclient-response-end.js index 27d31e50a96a7e..8b2920668cd703 100644 --- a/test/parallel/test-stream2-httpclient-response-end.js +++ b/test/parallel/test-stream2-httpclient-response-end.js @@ -11,8 +11,11 @@ const server = http.createServer(function(req, res) { let data = ''; res.on('readable', common.mustCall(function() { console.log('readable event'); - data += res.read(); - })); + let chunk; + while ((chunk = res.read()) !== null) { + data += chunk; + } + }, 2)); res.on('end', common.mustCall(function() { console.log('end event'); assert.strictEqual(msg, data); diff --git a/test/parallel/test-stream2-transform.js b/test/parallel/test-stream2-transform.js index cd6deaabf1147e..2590d5192fe103 100644 --- a/test/parallel/test-stream2-transform.js +++ b/test/parallel/test-stream2-transform.js @@ -321,11 +321,16 @@ const Transform = require('_stream_transform'); pt.end(); - assert.strictEqual(emits, 1); - assert.strictEqual(pt.read(5).toString(), 'l'); - assert.strictEqual(pt.read(5), null); + // The next readable is emitted on the next tick. + assert.strictEqual(emits, 0); - assert.strictEqual(emits, 1); + process.on('nextTick', function() { + assert.strictEqual(emits, 1); + assert.strictEqual(pt.read(5).toString(), 'l'); + assert.strictEqual(pt.read(5), null); + + assert.strictEqual(emits, 1); + }); } { From 249bf509a3c2785f1637af721ac38432d3e89ad9 Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Wed, 13 Mar 2019 22:26:18 +0100 Subject: [PATCH 144/164] stream: fix regression introduced in #26059 In #26059, we introduced a bug that caused 'readable' to be nextTicked on EOF of a ReadableStream. This breaks the dicer module on CITGM. That change was partially reverted to still fix the bug in #25810 and not break dicer. See: https://github.com/nodejs/node/pull/26059 Fixes: https://github.com/nodejs/node/issues/25810 PR-URL: https://github.com/nodejs/node/pull/26643 Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- lib/_stream_readable.js | 22 ++++++++++++++----- ...eam-readable-emit-readable-short-stream.js | 6 ++--- .../test-stream-readable-emittedReadable.js | 13 +---------- .../test-stream-readable-needReadable.js | 2 +- ...est-stream-readable-reading-readingMore.js | 2 +- .../test-stream2-httpclient-response-end.js | 2 +- test/parallel/test-stream2-transform.js | 14 ++++-------- 7 files changed, 28 insertions(+), 33 deletions(-) diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index d3228340b4bca9..d0bc95496a2b12 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -510,12 +510,24 @@ function onEofChunk(stream, state) { } } state.ended = true; - state.needReadable = false; - // We are not protecting if emittedReadable = true, - // so 'readable' gets scheduled anyway. - state.emittedReadable = true; - process.nextTick(emitReadable_, stream); + if (state.sync) { + // If we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); + } else { + // Emit 'readable' now to make sure it gets picked up. + state.needReadable = false; + state.emittedReadable = true; + // We have to emit readable now that we are EOF. Modules + // in the ecosystem (e.g. dicer) rely on this event being sync. + if (state.ended) { + emitReadable_(stream); + } else { + process.nextTick(emitReadable_, stream); + } + } } // Don't emit readable right away in sync mode, because this can trigger diff --git a/test/parallel/test-stream-readable-emit-readable-short-stream.js b/test/parallel/test-stream-readable-emit-readable-short-stream.js index 2f4f43baf5a848..d8b84bfbe71d6e 100644 --- a/test/parallel/test-stream-readable-emit-readable-short-stream.js +++ b/test/parallel/test-stream-readable-emit-readable-short-stream.js @@ -54,7 +54,7 @@ const assert = require('assert'); break; assert.strictEqual(chunk.toString(), 'content'); } - }, 2)); + })); } { @@ -78,7 +78,7 @@ const assert = require('assert'); break; assert.strictEqual(chunk.toString(), 'content'); } - }, 2)); + })); } { @@ -94,7 +94,7 @@ const assert = require('assert'); break; assert.strictEqual(chunk.toString(), 'content'); } - }, 2)); + })); t.push('content'); t.push(null); diff --git a/test/parallel/test-stream-readable-emittedReadable.js b/test/parallel/test-stream-readable-emittedReadable.js index 6580c36303e11e..ba613f9e9ff19d 100644 --- a/test/parallel/test-stream-readable-emittedReadable.js +++ b/test/parallel/test-stream-readable-emittedReadable.js @@ -43,23 +43,12 @@ const noRead = new Readable({ read: () => {} }); -noRead.once('readable', common.mustCall(() => { +noRead.on('readable', common.mustCall(() => { // emittedReadable should be true when the readable event is emitted assert.strictEqual(noRead._readableState.emittedReadable, true); noRead.read(0); // emittedReadable is not reset during read(0) assert.strictEqual(noRead._readableState.emittedReadable, true); - - noRead.on('readable', common.mustCall(() => { - // The second 'readable' is emitted because we are ending - - // emittedReadable should be true when the readable event is emitted - assert.strictEqual(noRead._readableState.emittedReadable, false); - noRead.read(0); - // emittedReadable is not reset during read(0) - assert.strictEqual(noRead._readableState.emittedReadable, false); - - })); })); noRead.push('foo'); diff --git a/test/parallel/test-stream-readable-needReadable.js b/test/parallel/test-stream-readable-needReadable.js index 54618b5e8ab14c..c4bc90bb19d3e2 100644 --- a/test/parallel/test-stream-readable-needReadable.js +++ b/test/parallel/test-stream-readable-needReadable.js @@ -14,7 +14,7 @@ readable.on('readable', common.mustCall(() => { // When the readable event fires, needReadable is reset. assert.strictEqual(readable._readableState.needReadable, false); readable.read(); -}, 2)); +})); // If a readable listener is attached, then a readable event is needed. assert.strictEqual(readable._readableState.needReadable, true); diff --git a/test/parallel/test-stream-readable-reading-readingMore.js b/test/parallel/test-stream-readable-reading-readingMore.js index e72159d1c9be94..e57a808286619d 100644 --- a/test/parallel/test-stream-readable-reading-readingMore.js +++ b/test/parallel/test-stream-readable-reading-readingMore.js @@ -31,7 +31,7 @@ const Readable = require('stream').Readable; assert.strictEqual(state.reading, false); } - const expectedReadingMore = [true, false, false]; + const expectedReadingMore = [true, true, false]; readable.on('readable', common.mustCall(() => { // There is only one readingMore scheduled from on('data'), // after which everything is governed by the .read() call diff --git a/test/parallel/test-stream2-httpclient-response-end.js b/test/parallel/test-stream2-httpclient-response-end.js index 8b2920668cd703..73667eb3dd2e92 100644 --- a/test/parallel/test-stream2-httpclient-response-end.js +++ b/test/parallel/test-stream2-httpclient-response-end.js @@ -15,7 +15,7 @@ const server = http.createServer(function(req, res) { while ((chunk = res.read()) !== null) { data += chunk; } - }, 2)); + })); res.on('end', common.mustCall(function() { console.log('end event'); assert.strictEqual(msg, data); diff --git a/test/parallel/test-stream2-transform.js b/test/parallel/test-stream2-transform.js index 2590d5192fe103..b27b4116f3c84e 100644 --- a/test/parallel/test-stream2-transform.js +++ b/test/parallel/test-stream2-transform.js @@ -321,16 +321,10 @@ const Transform = require('_stream_transform'); pt.end(); - // The next readable is emitted on the next tick. - assert.strictEqual(emits, 0); - - process.on('nextTick', function() { - assert.strictEqual(emits, 1); - assert.strictEqual(pt.read(5).toString(), 'l'); - assert.strictEqual(pt.read(5), null); - - assert.strictEqual(emits, 1); - }); + assert.strictEqual(emits, 1); + assert.strictEqual(pt.read(5).toString(), 'l'); + assert.strictEqual(pt.read(5), null); + assert.strictEqual(emits, 1); } { From be3ea2a1eb315ff086d11f0e6d7006b6e55d296c Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 14 Mar 2019 00:58:16 +0800 Subject: [PATCH 145/164] process: handle node --debug deprecation in pre-execution In addition, shim `process._deprecatedDebugBrk` in pre-execution. This is a non-semver-major v11.x backport for https://github.com/nodejs/node/pull/25828. PR-URL: https://github.com/nodejs/node/pull/26670 Refs: https://github.com/nodejs/node/pull/25828 --- lib/internal/bootstrap/pre_execution.js | 17 +++++++++++++++++ src/node_process_object.cc | 12 ------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index 237fa183d5336d..52a6be6dee63c3 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -165,6 +165,23 @@ function initializeDeprecations() { const { deprecate } = require('internal/util'); const pendingDeprecation = getOptionValue('--pending-deprecation'); + // Handle `--debug*` deprecation and invalidation. + if (getOptionValue('--debug')) { + if (!getOptionValue('--inspect')) { + process.emitWarning( + '`node --debug` and `node --debug-brk` are invalid. ' + + 'Please use `node --inspect` or `node --inspect-brk` instead.', + 'DeprecationWarning', 'DEP0062', undefined, true); + process.exit(9); + } else if (getOptionValue('--inspect-brk')) { + process._deprecatedDebugBrk = true; + process.emitWarning( + '`node --inspect --debug-brk` is deprecated. ' + + 'Please use `node --inspect-brk` instead.', + 'DeprecationWarning', 'DEP0062', undefined, true); + } + } + // DEP0103: access to `process.binding('util').isX` type checkers // TODO(addaleax): Turn into a full runtime deprecation. const utilBinding = internalBinding('util'); diff --git a/src/node_process_object.cc b/src/node_process_object.cc index e4d9d97c681bdd..e3b8eb8d54b7ba 100644 --- a/src/node_process_object.cc +++ b/src/node_process_object.cc @@ -256,18 +256,6 @@ MaybeLocal CreateProcessObject( "_breakNodeFirstLine", True(env->isolate())); } - // --inspect --debug-brk - if (env->options()->debug_options().deprecated_invocation()) { - READONLY_DONT_ENUM_PROPERTY(process, - "_deprecatedDebugBrk", True(env->isolate())); - } - - // --debug or, --debug-brk without --inspect - if (env->options()->debug_options().invalid_invocation()) { - READONLY_DONT_ENUM_PROPERTY(process, - "_invalidDebug", True(env->isolate())); - } - // --security-revert flags #define V(code, _, __) \ do { \ From ed7599bf36fcbce0eec188567f099afbdadfec6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Sat, 26 Jan 2019 13:28:55 +0100 Subject: [PATCH 146/164] crypto: allow deriving public from private keys This change allows passing private key objects to crypto.createPublicKey, resulting in a key object that represents a valid public key for the given private key. The returned public key object can be used and exported safely without revealing information about the private key. Backport-PR-URL: https://github.com/nodejs/node/pull/26688 PR-URL: https://github.com/nodejs/node/pull/26278 Reviewed-By: James M Snell Reviewed-By: Ben Noordhuis Reviewed-By: Sam Roberts --- doc/api/crypto.md | 17 +++++--- lib/internal/crypto/keys.js | 50 +++++++++++++++--------- test/parallel/test-crypto-key-objects.js | 36 ++++++++++++++++- 3 files changed, 78 insertions(+), 25 deletions(-) diff --git a/doc/api/crypto.md b/doc/api/crypto.md index 85c4336f78906a..04cc2a9b91c07f 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -1817,11 +1817,15 @@ must be an object with the properties described above. -* `key` {Object | string | Buffer} +* `key` {Object | string | Buffer | KeyObject} - `key`: {string | Buffer} - `format`: {string} Must be `'pem'` or `'der'`. **Default:** `'pem'`. - `type`: {string} Must be `'pkcs1'` or `'spki'`. This option is required @@ -1829,16 +1833,19 @@ changes: * Returns: {KeyObject} Creates and returns a new key object containing a public key. If `key` is a -string or `Buffer`, `format` is assumed to be `'pem'`; otherwise, `key` -must be an object with the properties described above. +string or `Buffer`, `format` is assumed to be `'pem'`; if `key` is a `KeyObject` +with type `'private'`, the public key is derived from the given private key; +otherwise, `key` must be an object with the properties described above. If the format is `'pem'`, the `'key'` may also be an X.509 certificate. Because public keys can be derived from private keys, a private key may be passed instead of a public key. In that case, this function behaves as if [`crypto.createPrivateKey()`][] had been called, except that the type of the -returned `KeyObject` will be `public` and that the private key cannot be -extracted from the returned `KeyObject`. +returned `KeyObject` will be `'public'` and that the private key cannot be +extracted from the returned `KeyObject`. Similarly, if a `KeyObject` with type +`'private'` is given, a new `KeyObject` with type `'public'` will be returned +and it will be impossible to extract the private key from the returned object. ### crypto.createSecretKey(key) + +* `port` {MessagePort} The message port which will be transferred. +* `contextifiedSandbox` {Object} A [contextified][] object as returned by the + `vm.createContext()` method. + +* Returns: {MessagePort} + +Transfer a `MessagePort` to a different [`vm`][] Context. The original `port` +object will be rendered unusable, and the returned `MessagePort` instance will +take its place. + +The returned `MessagePort` will be an object in the target context, and will +inherit from its global `Object` class. Objects passed to the +[`port.onmessage()`][] listener will also be created in the target context +and inherit from its global `Object` class. + +However, the created `MessagePort` will no longer inherit from +[`EventEmitter`][], and only [`port.onmessage()`][] can be used to receive +events using it. + ## worker.parentPort @@ -1817,7 +1817,7 @@ must be an object with the properties described above. * `emitter` {EventEmitter} * `name` {string} diff --git a/doc/api/tty.md b/doc/api/tty.md index 4edc3ad86e11d5..5d15addf39bec4 100644 --- a/doc/api/tty.md +++ b/doc/api/tty.md @@ -186,7 +186,7 @@ of columns and rows in the corresponding [TTY](tty.html). ### writeStream.hasColors([count][, env]) * `count` {integer} The number of colors that are requested (minimum 2). diff --git a/doc/api/v8.md b/doc/api/v8.md index 56e89a6cac0f4d..b072109a7d7e55 100644 --- a/doc/api/v8.md +++ b/doc/api/v8.md @@ -89,7 +89,7 @@ The value returned is an array of objects containing the following properties: ## v8.getHeapSnapshot() * Returns: {stream.Readable} A Readable Stream containing the V8 heap snapshot @@ -179,7 +179,7 @@ setTimeout(() => { v8.setFlagsFromString('--notrace_gc'); }, 60e3); ## v8.writeHeapSnapshot([filename]) * `filename` {string} The file path where the V8 heap snapshot is to be diff --git a/doc/api/worker_threads.md b/doc/api/worker_threads.md index 08b2e3c5d50166..e19181760eaefc 100644 --- a/doc/api/worker_threads.md +++ b/doc/api/worker_threads.md @@ -72,7 +72,7 @@ if (isMainThread) { ## worker.moveMessagePortToContext(port, contextifiedSandbox) * `port` {MessagePort} The message port which will be transferred. diff --git a/doc/changelogs/CHANGELOG_V11.md b/doc/changelogs/CHANGELOG_V11.md index 8018f3008ba018..93915b4a5c3c27 100644 --- a/doc/changelogs/CHANGELOG_V11.md +++ b/doc/changelogs/CHANGELOG_V11.md @@ -9,6 +9,7 @@ +11.13.0
11.12.0
11.11.0
11.10.1
@@ -40,6 +41,195 @@ * [io.js](CHANGELOG_IOJS.md) * [Archive](CHANGELOG_ARCHIVE.md) + +## 2019-03-28, Version 11.13.0 (Current), @targos + +### Notable Changes + +* **crypto** + * Allow deriving public from private keys (Tobias Nießen) [#26278](https://github.com/nodejs/node/pull/26278). +* **events** + * Added a `once` function to use `EventEmitter` with promises (Matteo Collina) [#26078](https://github.com/nodejs/node/pull/26078). +* **tty** + * Added a `hasColors` method to `WriteStream` (Ruben Bridgewater) [#26247](https://github.com/nodejs/node/pull/26247). + * Added NO\_COLOR and FORCE\_COLOR support (Ruben Bridgewater) [#26485](https://github.com/nodejs/node/pull/26485). +* **v8** + * Added `v8.getHeapSnapshot` and `v8.writeHeapSnapshot` to generate snapshots in the format used by tools such as Chrome DevTools (James M Snell) [#26501](https://github.com/nodejs/node/pull/26501). +* **worker** + * Added `worker.moveMessagePortToContext`. This enables using MessagePorts in different vm.Contexts, aiding with the isolation that the vm module seeks to provide (Anna Henningsen) [#26497](https://github.com/nodejs/node/pull/26497). +* **C++ API** + * `AddPromiseHook` is now deprecated. This API was added to fill an use case that is served by `async_hooks`, since that has `Promise` support (Anna Henningsen) [#26529](https://github.com/nodejs/node/pull/26529). + * Added a `Stop` API to shut down Node.js while it is running (Gireesh Punathil) [#21283](https://github.com/nodejs/node/pull/21283). +* **meta** + * [Gireesh Punathil](https://github.com/gireeshpunathil) is now a member of the Technical Steering Committee [#26657](https://github.com/nodejs/node/pull/26657). + * Added [Yongsheng Zhang](https://github.com/ZYSzys) to collaborators [#26730](https://github.com/nodejs/node/pull/26730). + +### Commits + +* [[`a2d2756792`](https://github.com/nodejs/node/commit/a2d2756792)] - **assert**: reduce internal usage of public require of util (toshi1127) [#26750](https://github.com/nodejs/node/pull/26750) +* [[`db7c4ac40b`](https://github.com/nodejs/node/commit/db7c4ac40b)] - **assert**: reduce internal usage of public require of util (Daiki Ihara) [#26762](https://github.com/nodejs/node/pull/26762) +* [[`3ab438aa17`](https://github.com/nodejs/node/commit/3ab438aa17)] - **benchmark**: replace deprecated and eliminate var in buffer-from.js (gengjiawen) [#26585](https://github.com/nodejs/node/pull/26585) +* [[`0e4ae00676`](https://github.com/nodejs/node/commit/0e4ae00676)] - **benchmark**: use gfm for clarity (gengjiawen) [#26710](https://github.com/nodejs/node/pull/26710) +* [[`509ad40348`](https://github.com/nodejs/node/commit/509ad40348)] - **build**: restore running tests on Travis (Richard Lau) [#26720](https://github.com/nodejs/node/pull/26720) +* [[`b480c792be`](https://github.com/nodejs/node/commit/b480c792be)] - **build**: temporarily don't run tests on Travis (Richard Lau) [#26720](https://github.com/nodejs/node/pull/26720) +* [[`4163864be5`](https://github.com/nodejs/node/commit/4163864be5)] - **build**: use Xenial and gcc 6 on Travis (Richard Lau) [#26720](https://github.com/nodejs/node/pull/26720) +* [[`e39a468cdc`](https://github.com/nodejs/node/commit/e39a468cdc)] - **child_process**: ensure message sanity at source (Gireesh Punathil) [#24787](https://github.com/nodejs/node/pull/24787) +* [[`f263f98d5a`](https://github.com/nodejs/node/commit/f263f98d5a)] - **console**: remove unreachable code (Rich Trott) [#26863](https://github.com/nodejs/node/pull/26863) +* [[`e49cd40789`](https://github.com/nodejs/node/commit/e49cd40789)] - **console**: fix trace function (Ruben Bridgewater) [#26764](https://github.com/nodejs/node/pull/26764) +* [[`f2a07df27f`](https://github.com/nodejs/node/commit/f2a07df27f)] - **crypto**: improve error handling in parseKeyEncoding (Tobias Nießen) [#26455](https://github.com/nodejs/node/pull/26455) +* [[`ed7599bf36`](https://github.com/nodejs/node/commit/ed7599bf36)] - **(SEMVER-MINOR)** **crypto**: allow deriving public from private keys (Tobias Nießen) [#26278](https://github.com/nodejs/node/pull/26278) +* [[`74c6f57aed`](https://github.com/nodejs/node/commit/74c6f57aed)] - **(SEMVER-MINOR)** **crypto**: expose KeyObject class (Filip Skokan) [#26438](https://github.com/nodejs/node/pull/26438) +* [[`54ffe61c56`](https://github.com/nodejs/node/commit/54ffe61c56)] - **deps**: upgrade to libuv 1.27.0 (cjihrig) [#26707](https://github.com/nodejs/node/pull/26707) +* [[`dae1e301c6`](https://github.com/nodejs/node/commit/dae1e301c6)] - **dgram**: remove usage of public require('util') (dnlup) [#26770](https://github.com/nodejs/node/pull/26770) +* [[`119f83bb44`](https://github.com/nodejs/node/commit/119f83bb44)] - **doc**: mark settings as optional and add callback (Ruben Bridgewater) [#26894](https://github.com/nodejs/node/pull/26894) +* [[`a545cfe293`](https://github.com/nodejs/node/commit/a545cfe293)] - **doc**: edit "How Can I Help?" in Collaborator Guide (Rich Trott) [#26895](https://github.com/nodejs/node/pull/26895) +* [[`14cc4f220c`](https://github.com/nodejs/node/commit/14cc4f220c)] - **doc**: add option to require 'process' to api docs (dkundel) [#26792](https://github.com/nodejs/node/pull/26792) +* [[`977f5acd04`](https://github.com/nodejs/node/commit/977f5acd04)] - **doc**: minor edit to worker\_threads.md (Rich Trott) [#26870](https://github.com/nodejs/node/pull/26870) +* [[`78e6ec7dd5`](https://github.com/nodejs/node/commit/78e6ec7dd5)] - **doc**: edit LTS material in Collaborator Guide (Rich Trott) [#26845](https://github.com/nodejs/node/pull/26845) +* [[`7e072c816c`](https://github.com/nodejs/node/commit/7e072c816c)] - **doc**: change error message to 'not defined' (Mohammed Essehemy) [#26857](https://github.com/nodejs/node/pull/26857) +* [[`c7b34cd8ee`](https://github.com/nodejs/node/commit/c7b34cd8ee)] - **doc**: fix comma of the list in worker\_threads.md (Hang Jiang) [#26838](https://github.com/nodejs/node/pull/26838) +* [[`560ff919b2`](https://github.com/nodejs/node/commit/560ff919b2)] - **doc**: remove discord community (Aymen Naghmouchi) [#26830](https://github.com/nodejs/node/pull/26830) +* [[`fc0aa50c3d`](https://github.com/nodejs/node/commit/fc0aa50c3d)] - **doc**: remove How Does LTS Work section from Collaborator Guide (Rich Trott) [#26723](https://github.com/nodejs/node/pull/26723) +* [[`bc9f6d877a`](https://github.com/nodejs/node/commit/bc9f6d877a)] - **doc**: condense LTS material in Collaborator Guide (Rich Trott) [#26722](https://github.com/nodejs/node/pull/26722) +* [[`8de9fe94a0`](https://github.com/nodejs/node/commit/8de9fe94a0)] - **doc**: document `error` event is optionally emitted after `.destroy()` (Sergey Zelenov) [#26589](https://github.com/nodejs/node/pull/26589) +* [[`148c2ca33d`](https://github.com/nodejs/node/commit/148c2ca33d)] - **doc**: add Note of options.stdio into child\_process (kohta ito) [#26604](https://github.com/nodejs/node/pull/26604) +* [[`0303aba162`](https://github.com/nodejs/node/commit/0303aba162)] - **doc**: update spawnSync() status value possibilities (Rich Trott) [#26680](https://github.com/nodejs/node/pull/26680) +* [[`6744b8cb43`](https://github.com/nodejs/node/commit/6744b8cb43)] - **doc**: add ZYSzys to collaborators (ZYSzys) [#26730](https://github.com/nodejs/node/pull/26730) +* [[`0c06631a71`](https://github.com/nodejs/node/commit/0c06631a71)] - **doc**: simplify force-push guidelines (Rich Trott) [#26699](https://github.com/nodejs/node/pull/26699) +* [[`b38cf49094`](https://github.com/nodejs/node/commit/b38cf49094)] - **doc**: make RFC references consistent (Rich Trott) [#26727](https://github.com/nodejs/node/pull/26727) +* [[`1f0a2835f4`](https://github.com/nodejs/node/commit/1f0a2835f4)] - **doc**: note about DNS ANY queries / RFC 8482 (Thomas Hunter II) [#26695](https://github.com/nodejs/node/pull/26695) +* [[`cfa152b589`](https://github.com/nodejs/node/commit/cfa152b589)] - **doc**: simplify Troubleshooting text (Rich Trott) [#26652](https://github.com/nodejs/node/pull/26652) +* [[`e8e8eac96c`](https://github.com/nodejs/node/commit/e8e8eac96c)] - **doc**: update copy/paste error message in Troubleshooting (Rich Trott) [#26652](https://github.com/nodejs/node/pull/26652) +* [[`3b471db14a`](https://github.com/nodejs/node/commit/3b471db14a)] - **doc**: add Gireesh to TSC (Rich Trott) [#26657](https://github.com/nodejs/node/pull/26657) +* [[`058cf43a3c`](https://github.com/nodejs/node/commit/058cf43a3c)] - **doc**: edit "Technical How-To" section of guide (Rich Trott) [#26601](https://github.com/nodejs/node/pull/26601) +* [[`9a5c1495b1`](https://github.com/nodejs/node/commit/9a5c1495b1)] - **errors**: remove usage of require('util') (dnlup) [#26781](https://github.com/nodejs/node/pull/26781) +* [[`7022609dcc`](https://github.com/nodejs/node/commit/7022609dcc)] - **events**: load internal/errors eagerly (Joyee Cheung) [#26771](https://github.com/nodejs/node/pull/26771) +* [[`df55731918`](https://github.com/nodejs/node/commit/df55731918)] - **(SEMVER-MINOR)** **events**: add once method to use promises with EventEmitter (Matteo Collina) [#26078](https://github.com/nodejs/node/pull/26078) +* [[`c96946d5f3`](https://github.com/nodejs/node/commit/c96946d5f3)] - **http**: delay ret declaration in method \_flushOutput (gengjiawen) [#26562](https://github.com/nodejs/node/pull/26562) +* [[`15af5193af`](https://github.com/nodejs/node/commit/15af5193af)] - **http2**: reduce usage of require('util') (toshi1127) [#26784](https://github.com/nodejs/node/pull/26784) +* [[`1073e54ad6`](https://github.com/nodejs/node/commit/1073e54ad6)] - **http2**: delete unused enum in node\_http2.h (gengjiawen) [#26704](https://github.com/nodejs/node/pull/26704) +* [[`3574b62717`](https://github.com/nodejs/node/commit/3574b62717)] - **inspector**: always set process.binding('inspector').callAndPauseOnStart (Joyee Cheung) [#26793](https://github.com/nodejs/node/pull/26793) +* [[`cc4a25a1a9`](https://github.com/nodejs/node/commit/cc4a25a1a9)] - **lib**: lazy load `v8` in error-serdes (Richard Lau) [#26689](https://github.com/nodejs/node/pull/26689) +* [[`5f3b850da5`](https://github.com/nodejs/node/commit/5f3b850da5)] - **lib**: reduce usage of require('util') (dnlup) [#26782](https://github.com/nodejs/node/pull/26782) +* [[`bf2b57e46f`](https://github.com/nodejs/node/commit/bf2b57e46f)] - **lib**: remove usage of require('util') (dnlup) [#26779](https://github.com/nodejs/node/pull/26779) +* [[`64a92290c0`](https://github.com/nodejs/node/commit/64a92290c0)] - **lib**: remove usage of require('util') (dnlup) [#26777](https://github.com/nodejs/node/pull/26777) +* [[`bff5d301bf`](https://github.com/nodejs/node/commit/bff5d301bf)] - **lib**: move extra properties into error creation (Ruben Bridgewater) [#26752](https://github.com/nodejs/node/pull/26752) +* [[`e916a2ad54`](https://github.com/nodejs/node/commit/e916a2ad54)] - **lib**: remove usage of require('util') (dnlup) [#26773](https://github.com/nodejs/node/pull/26773) +* [[`cc76f3f152`](https://github.com/nodejs/node/commit/cc76f3f152)] - **lib**: use Array#includes instead of Array#indexOf (Weijia Wang) [#26732](https://github.com/nodejs/node/pull/26732) +* [[`a44f98e333`](https://github.com/nodejs/node/commit/a44f98e333)] - **lib**: run prepareMainThreadExecution for third\_party\_main (Anna Henningsen) [#26677](https://github.com/nodejs/node/pull/26677) +* [[`1c1305dbc1`](https://github.com/nodejs/node/commit/1c1305dbc1)] - **lib**: make lowerProto scope more clear (gengjiawen) [#26562](https://github.com/nodejs/node/pull/26562) +* [[`9ce08c85e7`](https://github.com/nodejs/node/commit/9ce08c85e7)] - **lib**: explicitly initialize debuglog during bootstrap (Joyee Cheung) [#26468](https://github.com/nodejs/node/pull/26468) +* [[`b75af1537d`](https://github.com/nodejs/node/commit/b75af1537d)] - **lib**: move format and formatWithOptions into internal/util/inspect.js (Joyee Cheung) [#26468](https://github.com/nodejs/node/pull/26468) +* [[`235bb733a6`](https://github.com/nodejs/node/commit/235bb733a6)] - **module**: do not share the internal require function with public loaders (Joyee Cheung) [#26549](https://github.com/nodejs/node/pull/26549) +* [[`4cafd7419d`](https://github.com/nodejs/node/commit/4cafd7419d)] - **module**: remove usage of require('util') in `esm/translators.js` (dnlup) [#26806](https://github.com/nodejs/node/pull/26806) +* [[`037e3fddfa`](https://github.com/nodejs/node/commit/037e3fddfa)] - **module**: remove usage of require('util') in `esm/loader.js` (dnlup) [#26804](https://github.com/nodejs/node/pull/26804) +* [[`414d6f5e04`](https://github.com/nodejs/node/commit/414d6f5e04)] - **module**: remove usage of require('util') in `cjs/loader.js` (dnlup) [#26802](https://github.com/nodejs/node/pull/26802) +* [[`fbe6d30bcf`](https://github.com/nodejs/node/commit/fbe6d30bcf)] - **module**: remove usage of require('util') (dnlup) [#26805](https://github.com/nodejs/node/pull/26805) +* [[`a20bf75e06`](https://github.com/nodejs/node/commit/a20bf75e06)] - ***Revert*** "**net**: remove usage of require('util')" (Rich Trott) [#26896](https://github.com/nodejs/node/pull/26896) +* [[`5e06c3bc0b`](https://github.com/nodejs/node/commit/5e06c3bc0b)] - **net**: remove usage of require('util') (dnlup) [#26807](https://github.com/nodejs/node/pull/26807) +* [[`24e96b24cf`](https://github.com/nodejs/node/commit/24e96b24cf)] - **net**: some scattered cleanup (oyyd) [#24128](https://github.com/nodejs/node/pull/24128) +* [[`de353b75d5`](https://github.com/nodejs/node/commit/de353b75d5)] - **perf_hooks**: load internal/errors eagerly (Joyee Cheung) [#26771](https://github.com/nodejs/node/pull/26771) +* [[`0bd82c93c6`](https://github.com/nodejs/node/commit/0bd82c93c6)] - **perf_hooks**: reset prev\_ before starting ELD timer (Gerhard Stoebich) [#26693](https://github.com/nodejs/node/pull/26693) +* [[`c127bec4ab`](https://github.com/nodejs/node/commit/c127bec4ab)] - **policy**: reduce internal usage of public util for manifest.js (Jesse Katsumata) [#26833](https://github.com/nodejs/node/pull/26833) +* [[`899de0a7c7`](https://github.com/nodejs/node/commit/899de0a7c7)] - **process**: check no handle or request is active after bootstrap (Joyee Cheung) [#26593](https://github.com/nodejs/node/pull/26593) +* [[`57d302b563`](https://github.com/nodejs/node/commit/57d302b563)] - **process**: delay creation of process.env after bootstrap/node.js (Joyee Cheung) [#26515](https://github.com/nodejs/node/pull/26515) +* [[`255de69596`](https://github.com/nodejs/node/commit/255de69596)] - **process**: refactor global.queueMicrotask() (Joyee Cheung) [#26523](https://github.com/nodejs/node/pull/26523) +* [[`1481e5b5c1`](https://github.com/nodejs/node/commit/1481e5b5c1)] - **process**: set the trace category update handler during bootstrap (Joyee Cheung) [#26605](https://github.com/nodejs/node/pull/26605) +* [[`be3ea2a1eb`](https://github.com/nodejs/node/commit/be3ea2a1eb)] - **process**: handle node --debug deprecation in pre-execution (Joyee Cheung) [#26670](https://github.com/nodejs/node/pull/26670) +* [[`8b65aa73f6`](https://github.com/nodejs/node/commit/8b65aa73f6)] - **process**: make stdout and stderr emit 'close' on destroy (Matteo Collina) [#26691](https://github.com/nodejs/node/pull/26691) +* [[`dd2f2cca00`](https://github.com/nodejs/node/commit/dd2f2cca00)] - **process**: remove usage of require('util') in `per\_thread.js` (dnlup) [#26817](https://github.com/nodejs/node/pull/26817) +* [[`41761cc4a6`](https://github.com/nodejs/node/commit/41761cc4a6)] - **process**: load internal/async\_hooks before inspector hooks registration (Joyee Cheung) [#26866](https://github.com/nodejs/node/pull/26866) +* [[`b0afac2833`](https://github.com/nodejs/node/commit/b0afac2833)] - **process**: call prepareMainThreadExecution in all main thread scripts (Joyee Cheung) [#26468](https://github.com/nodejs/node/pull/26468) +* [[`cf1117a818`](https://github.com/nodejs/node/commit/cf1117a818)] - **process**: move deprecation warning setup for --debug\* args (Refael Ackermann) [#26662](https://github.com/nodejs/node/pull/26662) +* [[`4200fc30bd`](https://github.com/nodejs/node/commit/4200fc30bd)] - **process**: handle process.env.NODE\_V8\_COVERAGE in pre-execution (Joyee Cheung) [#26466](https://github.com/nodejs/node/pull/26466) +* [[`cc606e2dfc`](https://github.com/nodejs/node/commit/cc606e2dfc)] - **process**: set up process warning handler in pre-execution (Joyee Cheung) [#26466](https://github.com/nodejs/node/pull/26466) +* [[`03dba720da`](https://github.com/nodejs/node/commit/03dba720da)] - **process**: call `prepareMainThreadExecution` in `node inspect` (Joyee Cheung) [#26466](https://github.com/nodejs/node/pull/26466) +* [[`04e9d5a448`](https://github.com/nodejs/node/commit/04e9d5a448)] - **repl**: remove usage of require('util') in `repl/history` (dnlup) [#26819](https://github.com/nodejs/node/pull/26819) +* [[`e8412bc213`](https://github.com/nodejs/node/commit/e8412bc213)] - **repl**: remove redundant initialization (gengjiawen) [#26562](https://github.com/nodejs/node/pull/26562) +* [[`5b8eae4ea7`](https://github.com/nodejs/node/commit/5b8eae4ea7)] - **report**: remove duplicate TIME\_TYPE (cjihrig) [#26708](https://github.com/nodejs/node/pull/26708) +* [[`01778f525b`](https://github.com/nodejs/node/commit/01778f525b)] - **report**: tidy up included headers (Richard Lau) [#26697](https://github.com/nodejs/node/pull/26697) +* [[`5c4187638c`](https://github.com/nodejs/node/commit/5c4187638c)] - **report**: use LocalTime from DiagnosticFilename (Richard Lau) [#26647](https://github.com/nodejs/node/pull/26647) +* [[`e3bae20941`](https://github.com/nodejs/node/commit/e3bae20941)] - **report**: use DiagnosticFilename for default filename (Richard Lau) [#26647](https://github.com/nodejs/node/pull/26647) +* [[`1b4553401c`](https://github.com/nodejs/node/commit/1b4553401c)] - **report**: remove unnecessary return in setters (Rich Trott) [#26614](https://github.com/nodejs/node/pull/26614) +* [[`f50c9c6ae2`](https://github.com/nodejs/node/commit/f50c9c6ae2)] - **src**: move ShouldNotAbortOnUncaughtScope out of Environment (Joyee Cheung) [#26824](https://github.com/nodejs/node/pull/26824) +* [[`7e7f07755c`](https://github.com/nodejs/node/commit/7e7f07755c)] - **src**: move TrackingTraceStateObserver out of Environment (Joyee Cheung) [#26824](https://github.com/nodejs/node/pull/26824) +* [[`bc69a81276`](https://github.com/nodejs/node/commit/bc69a81276)] - **src**: move TickInfo out of Environment (Joyee Cheung) [#26824](https://github.com/nodejs/node/pull/26824) +* [[`495e5e9e75`](https://github.com/nodejs/node/commit/495e5e9e75)] - **src**: move ImmediateInfo out of Environment (Joyee Cheung) [#26824](https://github.com/nodejs/node/pull/26824) +* [[`6de1220cc4`](https://github.com/nodejs/node/commit/6de1220cc4)] - **src**: move AsyncCallbackScope out of Environment (Joyee Cheung) [#26824](https://github.com/nodejs/node/pull/26824) +* [[`4af9ff00ff`](https://github.com/nodejs/node/commit/4af9ff00ff)] - **src**: move AsyncHooks out of Environment (Joyee Cheung) [#26824](https://github.com/nodejs/node/pull/26824) +* [[`3d9839ba3f`](https://github.com/nodejs/node/commit/3d9839ba3f)] - **src**: add include guard for trace\_event\_common.h (gengjiawen) [#26883](https://github.com/nodejs/node/pull/26883) +* [[`13eb1d8f8a`](https://github.com/nodejs/node/commit/13eb1d8f8a)] - **src**: store onread callback in internal field (Anna Henningsen) [#26837](https://github.com/nodejs/node/pull/26837) +* [[`220f67c6ce`](https://github.com/nodejs/node/commit/220f67c6ce)] - **src**: guard exit label when inspector disabled (Daniel Bevenius) [#26801](https://github.com/nodejs/node/pull/26801) +* [[`54753f2446`](https://github.com/nodejs/node/commit/54753f2446)] - **src**: micro-optimize ALPN negotiation (Ben Noordhuis) [#26836](https://github.com/nodejs/node/pull/26836) +* [[`6de2437c0f`](https://github.com/nodejs/node/commit/6de2437c0f)] - **src**: apply clang-tidy readability-delete-null-pointer (gengjiawen) [#26813](https://github.com/nodejs/node/pull/26813) +* [[`de5034643f`](https://github.com/nodejs/node/commit/de5034643f)] - **src**: apply clang-tidy performance-faster-string-find (gengjiawen) [#26812](https://github.com/nodejs/node/pull/26812) +* [[`79d6895484`](https://github.com/nodejs/node/commit/79d6895484)] - **src**: initialize worker's stack\_base\_ field (cjihrig) [#26739](https://github.com/nodejs/node/pull/26739) +* [[`6911678f9e`](https://github.com/nodejs/node/commit/6911678f9e)] - **src**: use explicit casts to silence conversion warnings (Zach Bjornson) [#26766](https://github.com/nodejs/node/pull/26766) +* [[`26361d1a5f`](https://github.com/nodejs/node/commit/26361d1a5f)] - **src**: add fast path for equal size to `Reallocate()` (Anna Henningsen) [#26573](https://github.com/nodejs/node/pull/26573) +* [[`f597b37efb`](https://github.com/nodejs/node/commit/f597b37efb)] - **src**: do not make `Resize(0)`’d buffers base `nullptr` (Anna Henningsen) [#26731](https://github.com/nodejs/node/pull/26731) +* [[`14c3af7f3e`](https://github.com/nodejs/node/commit/14c3af7f3e)] - **src**: only open HandleScope when necessary (Anna Henningsen) [#26734](https://github.com/nodejs/node/pull/26734) +* [[`ad5d8e308c`](https://github.com/nodejs/node/commit/ad5d8e308c)] - **src**: refactor thread stopping mechanism (Anna Henningsen) [#26757](https://github.com/nodejs/node/pull/26757) +* [[`d075814149`](https://github.com/nodejs/node/commit/d075814149)] - **src**: replace heap\_utils.createHeapSnapshot with v8.getHeapSnapshot (Joyee Cheung) [#26671](https://github.com/nodejs/node/pull/26671) +* [[`eafbfadec3`](https://github.com/nodejs/node/commit/eafbfadec3)] - **src**: elevate v8 namespaces for PropertyAttribute (gengjiawen) [#26681](https://github.com/nodejs/node/pull/26681) +* [[`15ec381944`](https://github.com/nodejs/node/commit/15ec381944)] - **src**: use EVPKeyPointer in more places (Ben Noordhuis) [#26632](https://github.com/nodejs/node/pull/26632) +* [[`2d2b6a8c23`](https://github.com/nodejs/node/commit/2d2b6a8c23)] - **src**: remove unused variable in class InspectorSocketServer (gengjiawen) [#26633](https://github.com/nodejs/node/pull/26633) +* [[`3637e71328`](https://github.com/nodejs/node/commit/3637e71328)] - **src**: use deleted function instead of private function in class AsyncWrap (gengjiawen) [#26634](https://github.com/nodejs/node/pull/26634) +* [[`51b8a891d8`](https://github.com/nodejs/node/commit/51b8a891d8)] - **src**: inline macro DISALLOW\_COPY\_AND\_ASSIGN (gengjiawen) [#26634](https://github.com/nodejs/node/pull/26634) +* [[`6c90b7f259`](https://github.com/nodejs/node/commit/6c90b7f259)] - **(SEMVER-MINOR)** **src**: shutdown node in-flight (Gireesh Punathil) [#21283](https://github.com/nodejs/node/pull/21283) +* [[`925b645d60`](https://github.com/nodejs/node/commit/925b645d60)] - **src**: remove usage of deprecated IsNearDeath (Michaël Zasso) [#26630](https://github.com/nodejs/node/pull/26630) +* [[`d0801a1c4a`](https://github.com/nodejs/node/commit/d0801a1c4a)] - **(SEMVER-MINOR)** **src**: deprecate AddPromiseHook() (Anna Henningsen) [#26529](https://github.com/nodejs/node/pull/26529) +* [[`a13f0a6362`](https://github.com/nodejs/node/commit/a13f0a6362)] - **(SEMVER-MINOR)** **src**: add public API for linked bindings (Anna Henningsen) [#26457](https://github.com/nodejs/node/pull/26457) +* [[`1e669b2e2e`](https://github.com/nodejs/node/commit/1e669b2e2e)] - **(SEMVER-MINOR)** **src,lib**: make DOMException available in all Contexts (Anna Henningsen) [#26497](https://github.com/nodejs/node/pull/26497) +* [[`e044563bb0`](https://github.com/nodejs/node/commit/e044563bb0)] - **(SEMVER-MINOR)** **src,lib**: allow running multiple per-context files (Anna Henningsen) [#26497](https://github.com/nodejs/node/pull/26497) +* [[`8ba0da57a4`](https://github.com/nodejs/node/commit/8ba0da57a4)] - **src,win**: fix usage of deprecated v8::Object::Set (Michaël Zasso) [#26735](https://github.com/nodejs/node/pull/26735) +* [[`249bf509a3`](https://github.com/nodejs/node/commit/249bf509a3)] - **stream**: fix regression introduced in #26059 (Matteo Collina) [#26643](https://github.com/nodejs/node/pull/26643) +* [[`0b2f900c9a`](https://github.com/nodejs/node/commit/0b2f900c9a)] - **stream**: make sure 'readable' is emitted before ending the stream (Matteo Collina) [#26059](https://github.com/nodejs/node/pull/26059) +* [[`b552139554`](https://github.com/nodejs/node/commit/b552139554)] - **stream**: reduce internal usage of public require of util (Beni von Cheni) [#26698](https://github.com/nodejs/node/pull/26698) +* [[`9ef0a295cf`](https://github.com/nodejs/node/commit/9ef0a295cf)] - **test**: refactor trace event category tests (Joyee Cheung) [#26605](https://github.com/nodejs/node/pull/26605) +* [[`5d992f5ef7`](https://github.com/nodejs/node/commit/5d992f5ef7)] - **test**: delete pummel/test-dtrace-jsstack (Rich Trott) [#26869](https://github.com/nodejs/node/pull/26869) +* [[`3cae010ea0`](https://github.com/nodejs/node/commit/3cae010ea0)] - **test**: refactor test-https-connect-localport (Rich Trott) [#26881](https://github.com/nodejs/node/pull/26881) +* [[`838fb95059`](https://github.com/nodejs/node/commit/838fb95059)] - **test**: replace localhost IP with 'localhost' for TLS conformity (Rich Trott) [#26881](https://github.com/nodejs/node/pull/26881) +* [[`011c205787`](https://github.com/nodejs/node/commit/011c205787)] - **test**: use common.PORT instead of hardcoded number (Rich Trott) [#26881](https://github.com/nodejs/node/pull/26881) +* [[`4919e4b751`](https://github.com/nodejs/node/commit/4919e4b751)] - **test**: move test-https-connect-localport to sequential (Rich Trot) [#26881](https://github.com/nodejs/node/pull/26881) +* [[`57d3ba134a`](https://github.com/nodejs/node/commit/57d3ba134a)] - **test**: refactor test-dgram-broadcast-multi-process (Rich Trott) [#26846](https://github.com/nodejs/node/pull/26846) +* [[`352c31cd7e`](https://github.com/nodejs/node/commit/352c31cd7e)] - **test**: strengthen test-worker-prof (Gireesh Punathil) [#26608](https://github.com/nodejs/node/pull/26608) +* [[`963d7d1f4d`](https://github.com/nodejs/node/commit/963d7d1f4d)] - **test**: move pummel tls test to sequential (Rich Trott) [#26865](https://github.com/nodejs/node/pull/26865) +* [[`8ca7d56b2c`](https://github.com/nodejs/node/commit/8ca7d56b2c)] - **test**: fix pummel/test-tls-session-timeout (Rich Trott) [#26865](https://github.com/nodejs/node/pull/26865) +* [[`41bd7a62e9`](https://github.com/nodejs/node/commit/41bd7a62e9)] - **test**: complete console.assert() coverage (Rich Trott) [#26827](https://github.com/nodejs/node/pull/26827) +* [[`6874288f6e`](https://github.com/nodejs/node/commit/6874288f6e)] - **test**: fix test-console-stdio-setters to test setters (Rich Trott) [#26796](https://github.com/nodejs/node/pull/26796) +* [[`1458711846`](https://github.com/nodejs/node/commit/1458711846)] - **test**: remove internal error tests (Ruben Bridgewater) [#26752](https://github.com/nodejs/node/pull/26752) +* [[`c535e487d6`](https://github.com/nodejs/node/commit/c535e487d6)] - **test**: refresh tmpdir in child-process-server-close (Luigi Pinca) [#26729](https://github.com/nodejs/node/pull/26729) +* [[`7ebd6bdf87`](https://github.com/nodejs/node/commit/7ebd6bdf87)] - **test**: optimize test-http2-large-file (Rich Trott) [#26737](https://github.com/nodejs/node/pull/26737) +* [[`9c83002274`](https://github.com/nodejs/node/commit/9c83002274)] - **test**: use EC cert property now that it exists (Sam Roberts) [#26598](https://github.com/nodejs/node/pull/26598) +* [[`ea425140a1`](https://github.com/nodejs/node/commit/ea425140a1)] - **test**: add fs.watchFile() + worker.terminate() test (Anna Henningsen) [#21179](https://github.com/nodejs/node/pull/21179) +* [[`2d689888b8`](https://github.com/nodejs/node/commit/2d689888b8)] - **test**: update test for libuv update (cjihrig) [#26707](https://github.com/nodejs/node/pull/26707) +* [[`31995e4cd2`](https://github.com/nodejs/node/commit/31995e4cd2)] - **test**: fix intrinsics test (Ruben Bridgewater) [#26660](https://github.com/nodejs/node/pull/26660) +* [[`c65ff3df6d`](https://github.com/nodejs/node/commit/c65ff3df6d)] - **test**: fix test-heapdump-worker (Anna Henningsen) [#26713](https://github.com/nodejs/node/pull/26713) +* [[`875ddcbf10`](https://github.com/nodejs/node/commit/875ddcbf10)] - **test**: remove unnecessary semicolon after macro (Yang Guo) [#26618](https://github.com/nodejs/node/pull/26618) +* [[`892282ddb3`](https://github.com/nodejs/node/commit/892282ddb3)] - **test**: whitelist the expected modules in test-bootstrap-modules.js (Richard Lau) [#26531](https://github.com/nodejs/node/pull/26531) +* [[`e5312585c1`](https://github.com/nodejs/node/commit/e5312585c1)] - **(SEMVER-MINOR)** **test**: make cctest full Node.js environment (Anna Henningsen) [#26457](https://github.com/nodejs/node/pull/26457) +* [[`00a6f7686e`](https://github.com/nodejs/node/commit/00a6f7686e)] - **test,console**: add testing for monkeypatching of console stdio (Rich Trott) [#26561](https://github.com/nodejs/node/pull/26561) +* [[`a640834039`](https://github.com/nodejs/node/commit/a640834039)] - **timers**: move big impl comment to /internal/ (Jeremiah Senkpiel) [#26761](https://github.com/odejs/node/pull/26761) +* [[`3ec652ad38`](https://github.com/nodejs/node/commit/3ec652ad38)] - **timers**: fix refresh inside callback (Anatoli Papirovski) [#26721](https://github.com/nodejs/node/pull/26721) +* [[`1f4a5bcc98`](https://github.com/nodejs/node/commit/1f4a5bcc98)] - **timers**: refactor timer callback initialization (Joyee Cheung) [#26583](https://github.com/nodejs/node/pull/26583) +* [[`ebb0c2a44e`](https://github.com/nodejs/node/commit/ebb0c2a44e)] - **timers**: reduce usage of public util (Joyee Cheung) [#26583](https://github.com/nodejs/node/pull/26583) +* [[`e6367c2da5`](https://github.com/nodejs/node/commit/e6367c2da5)] - **timers**: refactor to use module.exports (Joyee Cheung) [#26583](https://github.com/nodejs/node/pull/26583) +* [[`92b666a6b7`](https://github.com/nodejs/node/commit/92b666a6b7)] - **tools**: windows\_boxstarter "choco install python -y" for Python 3 (cclauss) [#26424](https://github.com/nodejs/node/pull/26424) +* [[`d80cd50dbc`](https://github.com/nodejs/node/commit/d80cd50dbc)] - **tools**: remove eslint rule no-let-in-for-declaration (gengjiawen) [#26715](https://github.com/nodejs/node/pull/26715) +* [[`fef2a54a4e`](https://github.com/nodejs/node/commit/fef2a54a4e)] - **tools**: enable getter-return lint rule (cjihrig) [#26615](https://github.com/nodejs/node/pull/26615) +* [[`08383a7bb6`](https://github.com/nodejs/node/commit/08383a7bb6)] - **tools**: update ESLint to 5.15.3 (cjihrig) [#26746](https://github.com/nodejs/node/pull/26746) +* [[`30d7f67e0f`](https://github.com/nodejs/node/commit/30d7f67e0f)] - **tools**: update ESLint to 5.15.2 (cjihrig) [#26687](https://github.com/nodejs/node/pull/26687) +* [[`1385b290ef`](https://github.com/nodejs/node/commit/1385b290ef)] - **tools**: update lint-md.js to lint rfc name format (Rich Trott) [#26727](https://github.com/nodejs/node/pull/26727) +* [[`72cda51440`](https://github.com/nodejs/node/commit/72cda51440)] - **tools**: tidy function arguments in eslint rules (Rich Trott) [#26668](https://github.com/nodejs/node/pull/26668) +* [[`0f9a779da8`](https://github.com/nodejs/node/commit/0f9a779da8)] - **trace_events**: remove usage of require('util') (dnlup) [#26822](https://github.com/nodejs/node/pull/26822) +* [[`83f6ec8876`](https://github.com/nodejs/node/commit/83f6ec8876)] - **tty**: remove util.inherits usage (nd-02110114) [#26797](https://github.com/nodejs/node/pull/26797) +* [[`8cafd83ba7`](https://github.com/nodejs/node/commit/8cafd83ba7)] - **(SEMVER-MINOR)** **tty**: add NO\_COLOR and FORCE\_COLOR support (Ruben Bridgewater) [#26485](https://github.com/nodejs/node/pull/26485) +* [[`070faf0bc1`](https://github.com/nodejs/node/commit/070faf0bc1)] - **(SEMVER-MINOR)** **tty**: add hasColors function (Ruben Bridgewater) [#26247](https://github.com/nodejs/node/pull/26247) +* [[`04c7db3638`](https://github.com/nodejs/node/commit/04c7db3638)] - **url**: remove usage of require('util') (toshi1127) [#26808](https://github.com/nodejs/node/pull/26808) +* [[`9092e12b82`](https://github.com/nodejs/node/commit/9092e12b82)] - **(SEMVER-MINOR)** **v8**: integrate node-heapdump into core (James M Snell) [#26501](https://github.com/nodejs/node/pull/26501) +* [[`4314dbfce9`](https://github.com/nodejs/node/commit/4314dbfce9)] - **worker**: create per-Environment message port after bootstrap (Joyee Cheung) [#26593](https://github.com/nodejs/node/pull/26593) +* [[`3c6f12c965`](https://github.com/nodejs/node/commit/3c6f12c965)] - **(SEMVER-MINOR)** **worker**: implement worker.moveMessagePortToContext() (Anna Henningsen) [#26497](https://github.com/nodejs/node/pull/26497) + ## 2019-03-15, Version 11.12.0 (Current), @BridgeAR diff --git a/src/node_version.h b/src/node_version.h index a305a86ce86102..cf34694e0e242c 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -23,13 +23,13 @@ #define SRC_NODE_VERSION_H_ #define NODE_MAJOR_VERSION 11 -#define NODE_MINOR_VERSION 12 -#define NODE_PATCH_VERSION 1 +#define NODE_MINOR_VERSION 13 +#define NODE_PATCH_VERSION 0 #define NODE_VERSION_IS_LTS 0 #define NODE_VERSION_LTS_CODENAME "" -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)