@nlabs/lex 1.55.0 → 1.55.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/lex.js CHANGED
@@ -13,7 +13,7 @@ import { clean } from './commands/clean/clean.js';
13
13
  import { compile } from './commands/compile/compile.js';
14
14
  import { config } from './commands/config/config.js';
15
15
  import { create } from './commands/create/create.js';
16
- import { dev } from './commands/dev/dev.js';
16
+ import { dev, DEFAULT_DEV_PORT } from './commands/dev/dev.js';
17
17
  import { init } from './commands/init/init.js';
18
18
  import { linked } from './commands/link/link.js';
19
19
  import { lint } from './commands/lint/lint.js';
@@ -57,7 +57,7 @@ program.command('create <type>').option('--outputFile <path>', 'Output filename.
57
57
  program.command('dev').option('--bundleAnalyzer', 'Run bundle analyzer.').option('--config <path>', 'Custom Webpack configuration file path (ie. webpack.config.js).').addOption(new Option('--format <value>', 'This sets the output format for the generated JavaScript files. Default: "esm".').choices([
58
58
  'cjs',
59
59
  'esm'
60
- ]).default('esm')).option('--lexConfig <path>', 'Custom Lex configuration file path (ie. lex.config.js).').option('--open', 'Automatically open dev server in a new browser window.').option('--outputPath <path>', 'Output path').option('--port <number>', 'Port number for the development server (default: 3000).').option('--quiet', 'No Lex notifications printed in the console.').option('--remove', 'Removes all files from the output directory before compiling.').option('--sourcePath <path>', 'Source path').option('--translations', 'Process translation files and output flattened JSON.', false).option('--typescript', 'Transpile as Typescript.').option('--usePublicIp', 'Force refresh the cached public IP address.').option('--variables <n>', 'Environment variables to set in "process.env". (ie. "{NODE_ENV: \'development\'}").').option('--watch', 'Watch for changes.').action((cmd)=>dev(cmd, process.exit).then(()=>{}));
60
+ ]).default('esm')).option('--lexConfig <path>', 'Custom Lex configuration file path (ie. lex.config.js).').option('--open', 'Automatically open dev server in a new browser window.').option('--outputPath <path>', 'Output path').option('--port <number>', `Port number for the development server (default: ${DEFAULT_DEV_PORT}).`).option('--quiet', 'No Lex notifications printed in the console.').option('--remove', 'Removes all files from the output directory before compiling.').option('--sourcePath <path>', 'Source path').option('--translations', 'Process translation files and output flattened JSON.', false).option('--typescript', 'Transpile as Typescript.').option('--usePublicIp', 'Force refresh the cached public IP address.').option('--variables <n>', 'Environment variables to set in "process.env". (ie. "{NODE_ENV: \'development\'}").').option('--watch', 'Watch for changes.').action((cmd)=>dev(cmd, process.exit).then(()=>{}));
61
61
  program.command('init <appName> [packageName]').option('--install', 'Install dependencies.').addOption(new Option('--package-manager <manager>', 'Which package manager to use. Default: npm').choices([
62
62
  'npm',
63
63
  'yarn'
@@ -76,7 +76,7 @@ program.command('publish').addOption(new Option('--bump <type>', 'Increments the
76
76
  'npm',
77
77
  'yarn'
78
78
  ]).default('npm')).option('--private', 'Publishes the module as restricted.').option('--quiet', 'No Lex notifications printed in the console.').option('--tag <tag>', 'Registers the published package with the given tag.').action((cmd)=>publish(cmd, process.exit).then(()=>{}));
79
- program.command('serverless').option('--config <path>', 'Custom configuration file path (default: lex.config.mjs).').option('--host <host>', 'Host to bind the server to (default: localhost).').option('--httpPort <port>', 'HTTP server port (default: 3000).').option('--httpsPort <port>', 'HTTPS server port (default: 3001).').option('--wsPort <port>', 'WebSocket server port (default: 3002).').option('--quiet', 'No Lex notifications printed in the console.').option('--remove', 'Removes all files from the output directory before starting.').option('--usePublicIp', 'Force refresh the cached public IP address.').option('--variables <json>', 'Environment variables to set in process.env.').option('--debug', 'Enable GraphQL debug logging to see queries, variables, and operations.').option('--printOutput', 'Print GraphQL response output including status, headers, and body.').action((cmd)=>serverless(cmd, process.exit).then(()=>{}));
79
+ program.command('serverless').option('--config <path>', 'Custom configuration file path (default: lex.config.mjs).').option('--host <host>', 'Host to bind the server to (default: localhost).').option('--httpPort <port>', 'HTTP server port (default: 3100).').option('--httpsPort <port>', 'HTTPS server port (default: 3101).').option('--wsPort <port>', 'WebSocket server port (default: 3102).').option('--quiet', 'No Lex notifications printed in the console.').option('--remove', 'Removes all files from the output directory before starting.').option('--usePublicIp', 'Force refresh the cached public IP address.').option('--variables <json>', 'Environment variables to set in process.env.').option('--debug', 'Enable GraphQL debug logging to see queries, variables, and operations.').option('--printOutput', 'Print GraphQL response output including status, headers, and body.').action((cmd)=>serverless(cmd, process.exit).then(()=>{}));
80
80
  program.command('storybook').option('--config <path>', 'Custom Storybook configuration directory path (ie. .storybook).').option('--lexConfig <path>', 'Custom Lex configuration file path (ie. lex.config.js).').option('--open', 'Automatically open Storybook in a new browser window.').option('--port <number>', 'Port number for the Storybook server.').option('--quiet', 'No Lex notifications printed in the console.').option('--static', 'Build a static Storybook site instead of starting dev server.').option('--variables <n>', 'Environment variables to set in "process.env". (ie. "{STORYBOOK_THEME: \'dark\'}").').option('--verbose', 'Show detailed webpack progress output.').action((cmd)=>storybook(cmd, process.exit).then(()=>{}));
81
81
  program.command('test [files...]').option('--analyze', 'Use AI to analyze test coverage and suggest improvements.', false).option('--debugTests', 'Use AI to debug test failures and suggest fixes.', false).option('--generate', 'Use AI to generate test cases for untested code.', false).option('--bail', 'Exit the test suite immediately upon the first failing test suite.').option('--changedFilesWithAncestor', 'Runs tests related to the current changes and the changes made in the last commit.').option('--changedSince', 'Runs tests related the changes since the provided branch.').option('--ci', 'When this option is provided, Vitest will assume it is running in a CI environment.').option('--clearCache', 'Clear Vitest cache.').option('--collectCoverageFrom <glob>', 'A glob pattern relative to matching the files that coverage info needs to be collected from.').option('--colors', 'Forces test results output highlighting even if stdout is not a TTY.').option('--config <path>', 'Custom Vitest configuration file path (ie. vitest.config.mjs).').option('--debug', 'Print debugging info about your Vitest config.').option('--detectOpenHandles', 'Attempt to collect and print open handles preventing Vitest from exiting cleanly').option('--environment <n>', 'Target environment. "node" or "web". Default: "node".').option('--env', 'The test environment used for all tests. This can point to any file or node module. Examples: happy-dom, jsdom, node or path/to/my-environment.js.').option('--errorOnDeprecated', 'Make calling deprecated APIs throw helpful error messages.').option('--expand', 'Use this flag to show full diffs and errors instead of a patch.').option('--forceExit', 'Force Vitest to exit after all tests have completed running.').option('--json', 'Prints the test results in JSON.').option('--lastCommit', 'Run all tests affected by file changes in the last commit made.').option('--lexConfig <path>', 'Custom Lex configuration file path (ie. lex.config.js).').option('--listTests', 'Lists all tests as JSON that Vitest will run given the arguments, and exits.').option('--logHeapUsage', 'Logs the heap usage after every test.').option('--maxWorkers <num>', 'Specifies the maximum number of workers the worker-pool will spawn for running tests. ').option('--noStackTrace', 'Disables stack trace in test results output.').option('--notify', 'Activates notifications for test results.').option('--onlyChanged', 'un based on which files have changed in the current repository. ').option('--outputFile <filename>', 'Write test results to a file when the --json option is also specified.').option('--passWithNoTests', 'Allows the test suite to pass when no files are found.').option('--quiet', 'No Lex notifications printed in the console.').option('--runInBand', 'Run all tests serially in the current process, rather than creating a worker pool of child processes that run tests.').option('--setup <path>', 'Vitest setup file path.').option('--showConfig', 'Print your Vitest config and then exits.').option('--silent', 'Prevent tests from printing messages through the console.').option('--testLocationInResults', 'Adds a location field to test results.').option('--testNamePattern <regex>', 'Run only tests with a name that matches the regex. ').option('--testPathPattern <regex>', 'A regexp pattern string that is matched against all tests paths before executing the test.').option('--typescript', 'Transpile as Typescript.').option('--update', 'Update snapshots. Runs "vitest --update"').option('--useStderr', 'Divert all output to stderr.').option('--verbose', 'Display individual test results with the test suite hierarchy.').option('--watch <path>', 'Watch files for changes and rerun tests related to changed files.').option('--watchAll', 'Watch files for changes and rerun all tests when something changes.').action((files, options, cmd)=>test(options, cmd.args, files, process.exit).then(()=>{}));
82
82
  program.command('update').option('--interactive', 'Choose which packages to update.').addOption(new Option('--package-manager <manager>', 'Which package manager to use. Default: npm').choices([
@@ -97,4 +97,4 @@ program.command('ai').option('--context', 'Include project context in the AI pro
97
97
  program.command('versions').option('--json', 'Print the version as a JSON object.').action((cmd)=>versions(cmd, process.exit).then(()=>{}));
98
98
  program.version(packageJson.version).parse(process.argv);
99
99
 
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7T3B0aW9uLCBwcm9ncmFtfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCB7Y3JlYXRlUmVxdWlyZX0gZnJvbSAnbW9kdWxlJztcbmltcG9ydCB7ZGlybmFtZSwgcmVzb2x2ZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gJ3VybCc7XG5cbmltcG9ydCB7YWlGdW5jdGlvbn0gZnJvbSAnLi9jb21tYW5kcy9haS9haS5qcyc7XG5pbXBvcnQge2J1aWxkfSBmcm9tICcuL2NvbW1hbmRzL2J1aWxkL2J1aWxkLmpzJztcbmltcG9ydCB7Y2xlYW59IGZyb20gJy4vY29tbWFuZHMvY2xlYW4vY2xlYW4uanMnO1xuaW1wb3J0IHtjb21waWxlfSBmcm9tICcuL2NvbW1hbmRzL2NvbXBpbGUvY29tcGlsZS5qcyc7XG5pbXBvcnQge2NvbmZpZ30gZnJvbSAnLi9jb21tYW5kcy9jb25maWcvY29uZmlnLmpzJztcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL2NvbW1hbmRzL2NyZWF0ZS9jcmVhdGUuanMnO1xuaW1wb3J0IHtkZXZ9IGZyb20gJy4vY29tbWFuZHMvZGV2L2Rldi5qcyc7XG5pbXBvcnQge2luaXR9IGZyb20gJy4vY29tbWFuZHMvaW5pdC9pbml0LmpzJztcbmltcG9ydCB7bGlua2VkfSBmcm9tICcuL2NvbW1hbmRzL2xpbmsvbGluay5qcyc7XG5pbXBvcnQge2xpbnR9IGZyb20gJy4vY29tbWFuZHMvbGludC9saW50LmpzJztcbmltcG9ydCB7bWlncmF0ZX0gZnJvbSAnLi9jb21tYW5kcy9taWdyYXRlL21pZ3JhdGUuanMnO1xuaW1wb3J0IHtwdWJsaXNofSBmcm9tICcuL2NvbW1hbmRzL3B1Ymxpc2gvcHVibGlzaC5qcyc7XG5pbXBvcnQge3NlcnZlcmxlc3N9IGZyb20gJy4vY29tbWFuZHMvc2VydmVybGVzcy9zZXJ2ZXJsZXNzLmpzJztcbmltcG9ydCB7c3Rvcnlib29rfSBmcm9tICcuL2NvbW1hbmRzL3N0b3J5Ym9vay9zdG9yeWJvb2suanMnO1xuaW1wb3J0IHt0ZXN0fSBmcm9tICcuL2NvbW1hbmRzL3Rlc3QvdGVzdC5qcyc7XG5pbXBvcnQge3VwZGF0ZX0gZnJvbSAnLi9jb21tYW5kcy91cGRhdGUvdXBkYXRlLmpzJztcbmltcG9ydCB7dXBncmFkZX0gZnJvbSAnLi9jb21tYW5kcy91cGdyYWRlL3VwZ3JhZGUuanMnO1xuaW1wb3J0IHt2ZXJzaW9uc30gZnJvbSAnLi9jb21tYW5kcy92ZXJzaW9ucy92ZXJzaW9ucy5qcyc7XG5cbnByb2Nlc3MuZW52LkxFWF9ST09UID0gZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXG5jb25zdCBsZXhOb2RlTW9kdWxlcyA9IHJlc29sdmUoZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpLCAnLi4vbm9kZV9tb2R1bGVzJyk7XG5pZighcHJvY2Vzcy5lbnYuTk9ERV9QQVRIKSB7XG4gIHByb2Nlc3MuZW52Lk5PREVfUEFUSCA9IGxleE5vZGVNb2R1bGVzO1xufSBlbHNlIGlmKCFwcm9jZXNzLmVudi5OT0RFX1BBVEguc3BsaXQoJzonKS5pbmNsdWRlcyhsZXhOb2RlTW9kdWxlcykpIHtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9QQVRIICs9IGA6JHtsZXhOb2RlTW9kdWxlc31gO1xufVxuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG5yZXF1aXJlKCdtb2R1bGUnKS5Nb2R1bGUuX2luaXRQYXRocygpO1xuXG5jb25zdCBwYWNrYWdlUGF0aCA9IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi4vcGFja2FnZS5qc29uJywgaW1wb3J0Lm1ldGEudXJsKSk7XG5jb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhY2thZ2VQYXRoLCAndXRmOCcpKTtcblxucHJvZ3JhbS5jb21tYW5kKCdidWlsZCcpXG4gIC5vcHRpb24oJy0tYXNzaXN0JywgJ0VuYWJsZSBBSSBhc3Npc3RhbmNlIGZvciBmaXhpbmcgYnVpbGQgZXJyb3JzLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWFuYWx5emUnLCAnRW5hYmxlIEFJIGFuYWx5c2lzIGZvciBidWlsZCBvcHRpbWl6YXRpb24gc3VnZ2VzdGlvbnMgb3IgaW52b2tlIHdlYnBhY2stYnVuZGxlLWFuYWx5emVyIHBsdWdpbi4nLCBmYWxzZSlcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWJ1bmRsZXIgPG4+JywgJ0J1bmRsZXIgdG8gdXNlIChcIndlYnBhY2tcIiBvciBcInN3Y1wiKS4gRGVmYXVsdDogXCJzd2NcIi4nKS5jaG9pY2VzKFsnd2VicGFjaycsICdzd2MnXSkuZGVmYXVsdCgnc3djJykpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdDdXN0b20gV2VicGFjayBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIHdlYnBhY2suY29uZmlnLmpzKS4nKVxuICAub3B0aW9uKCctLWNvbmZpZ05hbWUgPHZhbHVlLi4uPicsICdOYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uIHRvIHVzZS4nKVxuICAub3B0aW9uKCctLWRlZmluZVByb2Nlc3NFbnZOb2RlRW52IDx2YWx1ZT4nLCAnU2V0cyBwcm9jZXNzLmVudi5OT0RFX0VOViB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLiAoQ3VycmVudGx5IGFuIGFsaWFzIGZvciBgLS1ub2RlLWVudmApJylcbiAgLm9wdGlvbignLS1kZXZ0b29sIDx2YWx1ZT4nLCAnQSBkZXZlbG9wZXIgdG9vbCB0byBlbmhhbmNlIGRlYnVnZ2luZyAoZmFsc2UgfCBldmFsIHwgW2lubGluZS18aGlkZGVuLXxldmFsLV1bbm9zb3VyY2VzLV1bY2hlYXAtW21vZHVsZS1dXXNvdXJjZS1tYXApLicpXG4gIC5vcHRpb24oJy0tZGlzYWJsZUludGVycHJldCcsICdEaXNhYmxlIGludGVycHJldCBmb3IgbG9hZGluZyB0aGUgY29uZmlnIGZpbGUuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tZW50cnkgPHZhbHVlLi4uPicsICdBIG1vZHVsZSB0aGF0IGlzIGxvYWRlZCB1cG9uIHN0YXJ0dXAuIE9ubHkgdGhlIGxhc3Qgb25lIGlzIGV4cG9ydGVkLicpXG4gIC5vcHRpb24oJy0tZW52IDx2YWx1ZT4nLCAnRW52aXJvbm1lbnQgcGFzc2VkIHRvIHRoZSBjb25maWd1cmF0aW9uIHdoZW4gaXQgaXMgYSBmdW5jdGlvbi4nKVxuICAub3B0aW9uKCctLWZhaWxPbldhcm5pbmdzJywgJ1N0b3Agd2VicGFjay1jbGkgcHJvY2VzcyB3aXRoIG5vbi16ZXJvIGV4aXQgY29kZSBvbiB3YXJuaW5ncyBmcm9tIHdlYnBhY2snLCBmYWxzZSlcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8dmFsdWU+JywgJ1RoaXMgc2V0cyB0aGUgb3V0cHV0IGZvcm1hdCBmb3IgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGZpbGVzLiBEZWZhdWx0OiBcImVzbVwiLicpLmNob2ljZXMoWydjanMnLCAnZXNtJ10pLmRlZmF1bHQoJ2VzbScpKVxuICAub3B0aW9uKCctLWpzb24gPHZhbHVlPicsICdQcmludHMgcmVzdWx0IGFzIEpTT04gb3Igc3RvcmUgaXQgaW4gYSBmaWxlLicpXG4gIC5vcHRpb24oJy0tbGV4Q29uZmlnIDxwYXRoPicsICdMZXggY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tbWVyZ2UnLCAnTWVyZ2UgdHdvIG9yIG1vcmUgY29uZmlndXJhdGlvbnMgdXNpbmcgXCJ3ZWJwYWNrLW1lcmdlXCIuJywgZmFsc2UpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1tb2RlIDx0eXBlPicsICdXZWJwYWNrIG1vZGUgKFwicHJvZHVjdGlvblwiIG9yIFwiZGV2ZWxvcG1lbnRcIikuIERlZmF1bHQ6IFwiZGV2ZWxvcG1lbnRcIi4nKS5jaG9pY2VzKFsnZGV2ZWxvcG1lbnQnLCAncHJvZHVjdGlvbiddKS5kZWZhdWx0KCdkZXZlbG9wbWVudCcpKVxuICAub3B0aW9uKCctLW5hbWUgPHZhbHVlPicsICdOYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uLiBVc2VkIHdoZW4gbG9hZGluZyBtdWx0aXBsZSBjb25maWd1cmF0aW9ucy4nKVxuICAub3B0aW9uKCctLW5vRGV2dG9vbCcsICdOZWdhdGl2ZSBcImRldnRvb2xcIiBvcHRpb24uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tbm9TdGF0cycsICdOZWdhdGl2ZSBcInN0YXRzXCIgb3B0aW9uLicsIGZhbHNlKVxuICAub3B0aW9uKCctLW5vVGFyZ2V0JywgJ05lZ2F0aXZlIFwidGFyZ2V0XCIgb3B0aW9uLicsIGZhbHNlKVxuICAub3B0aW9uKCctLW5vV2F0Y2gnLCAnTmVnYXRpdmUgXCJ3YXRjaFwiIG9wdGlvbi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub1dhdGNoT3B0aW9uc1N0ZGluJywgJ05lZ2F0aXZlIFwid2F0Y2gtb3B0aW9ucy1zdGRpblwiIG9wdGlvbi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub2RlRW52IDx2YWx1ZT4nLCAnU2V0cyBwcm9jZXNzLmVudi5OT0RFX0VOViB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLicpXG4gIC5vcHRpb24oJy0tb3V0cHV0UGF0aCA8dmFsdWU+JywgJ1RoZSBvdXRwdXQgZGlyZWN0b3J5IGFzICoqYWJzb2x1dGUgcGF0aCoqIChyZXF1aXJlZCkuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLXN0YXRzIDx2YWx1ZT4nLCAnU3RhdHMgb3B0aW9ucyBvYmplY3Qgb3IgcHJlc2V0IG5hbWUuJylcbiAgLm9wdGlvbignLS1zdGF0aWMnLCAnQ3JlYXRlcyBzdGF0aWMgSFRNTCBmaWxlcyB3aGVuIGJ1aWxkaW5nIGFwcC4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS10YXJnZXQgPHZhbHVlPicsICdFbnZpcm9ubWVudCB0byBidWlsZCBmb3IuIEVudmlyb25tZW50IHRvIGJ1aWxkIGZvci4gQW4gYXJyYXkgb2YgZW52aXJvbm1lbnRzIHRvIGJ1aWxkIGZvciBhbGwgb2YgdGhlbSB3aGVuIHBvc3NpYmxlLicpXG4gIC5vcHRpb24oJy0tdHJhbnNsYXRpb25zJywgJ1Byb2Nlc3MgdHJhbnNsYXRpb24gZmlsZXMgYW5kIG91dHB1dCBmbGF0dGVuZWQgSlNPTi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicsIGZhbHNlKVxuICAub3B0aW9uKCctLXZhcmlhYmxlcyA8bj4nLCAnRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiBcInByb2Nlc3MuZW52XCIuIChpZS4gXCJ7Tk9ERV9FTlY6IFxcJ3Byb2R1Y3Rpb25cXCd9XCIpLicpXG4gIC5vcHRpb24oJy0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0td2F0Y2hPcHRpb25zU3RkaW4nLCAnU3RvcCB3YXRjaGluZyB3aGVuIHN0ZGluIHN0cmVhbSBoYXMgZW5kZWQuJywgZmFsc2UpXG4gIC5hY3Rpb24oKGNtZCkgPT4gYnVpbGQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjbGVhbicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXNuYXBzaG90cycsICdSZW1vdmUgYWxsIFwiX19zbmFwc2hvdHNfX1wiIGRpcmVjdG9yaWVzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gY2xlYW4oY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjb25maWcgPHR5cGU+JylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tanNvbiA8cGF0aD4nLCAnU2F2ZSBvdXRwdXQgdG8ganNvbiBmaWxlLicpXG4gIC5hY3Rpb24oKHR5cGUsIGNtZCkgPT4gY29uZmlnKHR5cGUsIGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY29tcGlsZScpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdUcmFuc3BpbGVyIGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gdHNjb25maWcuanNvbikuJylcbiAgLm9wdGlvbignLS1lbnZpcm9ubWVudCA8bj4nLCAnVGFyZ2V0IGVudmlyb25tZW50LiBcIm5vZGVcIiBvciBcIndlYlwiLiBEZWZhdWx0OiBcIm5vZGVcIi4nKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDx2YWx1ZT4nLCAnVGhpcyBzZXRzIHRoZSBvdXRwdXQgZm9ybWF0IGZvciB0aGUgZ2VuZXJhdGVkIEphdmFTY3JpcHQgZmlsZXMuIERlZmF1bHQ6IFwiZXNtXCIuJykuY2hvaWNlcyhbJ2NqcycsICdlc20nXSkuZGVmYXVsdCgnZXNtJykpXG4gIC5vcHRpb24oJy0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLS1vdXRwdXRQYXRoIDxwYXRoPicsICdPdXRwdXQgcGF0aCcpXG4gIC5vcHRpb24oJy0tcmVtb3ZlJywgJ1JlbW92ZXMgYWxsIGZpbGVzIGZyb20gdGhlIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIGNvbXBpbGluZy4nKVxuICAub3B0aW9uKCctLXNvdXJjZVBhdGggPHBhdGg+JywgJ1NvdXJjZSBwYXRoJylcbiAgLm9wdGlvbignLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXdhdGNoJywgJ1dhdGNoZXMgZm9yIGNoYW5nZXMgYW5kIGNvbXBpbGVzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gY29tcGlsZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NyZWF0ZSA8dHlwZT4nKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPHBhdGg+JywgJ091dHB1dCBmaWxlbmFtZS4nKVxuICAub3B0aW9uKCctLW91dHB1dE5hbWUgPG4+JywgJ091dHB1dCBuYW1lLicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXR5cGVzY3JpcHQnLCAnQ3JlYXRlIFR5cGVzY3JpcHQgdmVyc2lvbi4nKVxuICAuYWN0aW9uKCh0eXBlLCBjbWQpID0+IGNyZWF0ZSh0eXBlLCBjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2RldicpXG4gIC5vcHRpb24oJy0tYnVuZGxlQW5hbHl6ZXInLCAnUnVuIGJ1bmRsZSBhbmFseXplci4nKVxuICAub3B0aW9uKCctLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8dmFsdWU+JywgJ1RoaXMgc2V0cyB0aGUgb3V0cHV0IGZvcm1hdCBmb3IgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGZpbGVzLiBEZWZhdWx0OiBcImVzbVwiLicpLmNob2ljZXMoWydjanMnLCAnZXNtJ10pLmRlZmF1bHQoJ2VzbScpKVxuICAub3B0aW9uKCctLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tb3BlbicsICdBdXRvbWF0aWNhbGx5IG9wZW4gZGV2IHNlcnZlciBpbiBhIG5ldyBicm93c2VyIHdpbmRvdy4nKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLm9wdGlvbignLS1wb3J0IDxudW1iZXI+JywgJ1BvcnQgbnVtYmVyIGZvciB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyIChkZWZhdWx0OiAzMDAwKS4nKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1yZW1vdmUnLCAnUmVtb3ZlcyBhbGwgZmlsZXMgZnJvbSB0aGUgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgY29tcGlsaW5nLicpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLXRyYW5zbGF0aW9ucycsICdQcm9jZXNzIHRyYW5zbGF0aW9uIGZpbGVzIGFuZCBvdXRwdXQgZmxhdHRlbmVkIEpTT04uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctLXVzZVB1YmxpY0lwJywgJ0ZvcmNlIHJlZnJlc2ggdGhlIGNhY2hlZCBwdWJsaWMgSVAgYWRkcmVzcy4nKVxuICAub3B0aW9uKCctLXZhcmlhYmxlcyA8bj4nLCAnRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiBcInByb2Nlc3MuZW52XCIuIChpZS4gXCJ7Tk9ERV9FTlY6IFxcJ2RldmVsb3BtZW50XFwnfVwiKS4nKVxuICAub3B0aW9uKCctLXdhdGNoJywgJ1dhdGNoIGZvciBjaGFuZ2VzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gZGV2KGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnaW5pdCA8YXBwTmFtZT4gW3BhY2thZ2VOYW1lXScpXG4gIC5vcHRpb24oJy0taW5zdGFsbCcsICdJbnN0YWxsIGRlcGVuZGVuY2llcy4nKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nKS5jaG9pY2VzKFsnbnBtJywgJ3lhcm4nXSkuZGVmYXVsdCgnbnBtJykpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXR5cGVzY3JpcHQnLCAnVXNlIGEgVHlwZXNjcmlwdCBiYXNlZCBhcHAuJylcbiAgLmFjdGlvbigoYXBwTmFtZSwgcGFja2FnZU5hbWUsIGNtZCkgPT4gaW5pdChhcHBOYW1lLCBwYWNrYWdlTmFtZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW5rZWQnKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFjdGlvbigoY21kKSA9PiBsaW5rZWQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW50JylcbiAgLm9wdGlvbignLS1jYWNoZScsICdPbmx5IGNoZWNrIGNoYW5nZWQgZmlsZXMuIERlZmF1bHQ6IGZhbHNlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWNhY2hlTG9jYXRpb24gPHBhdGg+JywgJ1BhdGggdG8gdGhlIGNhY2hlIGZpbGUgb3IgZGlyZWN0b3J5LicpXG4gIC5vcHRpb24oJy0tY29sb3InLCAnRm9yY2UgZW5hYmxpbmcgb2YgY29sb3IuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdVc2UgdGhpcyBjb25maWd1cmF0aW9uLCBvdmVycmlkaW5nIC5lc2xpbnRyYy4qIGNvbmZpZyBvcHRpb25zIGlmIHByZXNlbnQuIElmIG5vdCBzcGVjaWZpZWQgYW5kIG5vIGxvY2FsIGNvbmZpZyBleGlzdHMsIExleCB3aWxsIHVzZSBpdHMgZGVmYXVsdCBjb25maWcuJylcbiAgLm9wdGlvbignLS1kZWJ1ZycsICdPdXRwdXQgZGVidWdnaW5nIGluZm9ybWF0aW9uLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWVudkluZm8nLCAnT3V0cHV0IGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBpbmZvcm1hdGlvbi4gRGVmYXVsdDogZmFsc2UuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tZW52IDxuPicsICdTcGVjaWZ5IGVudmlyb25tZW50cy4nKVxuICAub3B0aW9uKCctLWZpeCcsICdBcHBseSBBSSBmaXhlcyBhZnRlciBidWlsdC1pbiBFU0xpbnQgZml4ZXMgKHNhbWUgYXMgLS1maXgpLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWZpeERyeVJ1bicsICdBdXRvbWF0aWNhbGx5IGZpeCBwcm9ibGVtcyB3aXRob3V0IHNhdmluZyB0aGUgY2hhbmdlcyB0byB0aGUgZmlsZSBzeXN0ZW0uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tZml4VHlwZSA8dHlwZT4nLCAnU3BlY2lmeSB0aGUgdHlwZXMgb2YgZml4ZXMgdG8gYXBwbHkgKHByb2JsZW0sIHN1Z2dlc3Rpb24sIGxheW91dCkuJylcbiAgLm9wdGlvbignLS1mb3JtYXQgPG4+JywgJ1VzZSBhIHNwZWNpZmljIG91dHB1dCBmb3JtYXQuIERlZmF1bHQ6IHN0eWxpc2guJylcbiAgLm9wdGlvbignLS1nbG9iYWwgPHZhcmlhYmxlcz4nLCAnRGVmaW5lIGdsb2JhbCB2YXJpYWJsZXMuJylcbiAgLm9wdGlvbignLS1pZ25vcmVQYXRoIDxwYXRoPicsICdTcGVjaWZ5IHBhdGggb2YgaWdub3JlIGZpbGUuJylcbiAgLm9wdGlvbignLS1pZ25vcmVQYXR0ZXJuIDxwYXR0ZXJuPicsICdQYXR0ZXJuIG9mIGZpbGVzIHRvIGlnbm9yZSAoaW4gYWRkaXRpb24gdG8gdGhvc2UgaW4gLmVzbGludGlnbm9yZSkuJylcbiAgLm9wdGlvbignLS1pbml0JywgJ1J1biBjb25maWcgaW5pdGlhbGl6YXRpb24gd2l6YXJkLiBEZWZhdWx0OiBmYWxzZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1tYXhXYXJuaW5ncyA8bnVtPicsICdOdW1iZXIgb2Ygd2FybmluZ3MgdG8gdHJpZ2dlciBub256ZXJvIGV4aXQgY29kZS4gRGVmYXVsdDogLTEuJylcbiAgLm9wdGlvbignLS1ub0NvbG9yJywgJ0ZvcmNlIGRpc2FibGluZyBvZiBjb2xvci4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub0VzbGludHJjJywgJ0Rpc2FibGUgdXNlIG9mIGNvbmZpZ3VyYXRpb24gZnJvbSAuZXNsaW50cmMuKi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub0lnbm9yZScsICdEaXNhYmxlIHVzZSBvZiBpZ25vcmUgZmlsZXMgYW5kIHBhdHRlcm5zLicsIGZhbHNlKVxuICAub3B0aW9uKCctLW5vSW5saW5lQ29uZmlnJywgJ1ByZXZlbnQgY29tbWVudHMgZnJvbSBjaGFuZ2luZyBjb25maWcgb3IgcnVsZXMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tb3V0cHV0RmlsZSA8cGF0aD4nLCAnU3BlY2lmeSBmaWxlIHRvIHdyaXRlIHJlcG9ydCB0by4nKVxuICAub3B0aW9uKCctLXBhcnNlciA8bj4nLCAnU3BlY2lmeSB0aGUgcGFyc2VyIHRvIGJlIHVzZWQuJylcbiAgLm9wdGlvbignLS1wYXJzZXJPcHRpb25zIDxvcHRpb25zPicsICdTcGVjaWZ5IHBhcnNlciBvcHRpb25zLicpXG4gIC5vcHRpb24oJy0tcGx1Z2luIDxwbHVnaW5zPicsICdTcGVjaWZ5IHBsdWdpbnMuJylcbiAgLm9wdGlvbignLS1wcmludENvbmZpZyA8cGF0aD4nLCAnUHJpbnQgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnaXZlbiBmaWxlLicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1yZW1vdmUtY29tbWVudHMnLCAnUmVtb3ZlIGFsbCBjb21tZW50cyBleGNlcHQgVE9ET3MgYW5kIGNvcHlyaWdodCBub3RpY2VzLicsIGZhbHNlKVxuICAub3B0aW9uKCctLXJlcG9ydFVudXNlZERpc2FibGVEaXJlY3RpdmVzJywgJ0FkZHMgcmVwb3J0ZWQgZXJyb3JzIGZvciB1bnVzZWQgZXNsaW50LWRpc2FibGUgZGlyZWN0aXZlcy4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1yZXNvbHZlUGx1Z2luc1JlbGF0aXZlVG8gPHBhdGg+JywgJ0EgZm9sZGVyIHdoZXJlIHBsdWdpbnMgc2hvdWxkIGJlIHJlc29sdmVkIGZyb20uJylcbiAgLm9wdGlvbignLS1ydWxlIDxwYXRoPicsICdTcGVjaWZ5IHJ1bGVzLicpXG4gIC5vcHRpb24oJy0tcnVsZXNkaXIgPHBhdGg+JywgJ1VzZSBhZGRpdGlvbmFsIHJ1bGVzIGZyb20gdGhpcyBkaXJlY3RvcnkuJylcbiAgLm9wdGlvbignLS1zdGRpbicsICdMaW50IGNvZGUgcHJvdmlkZWQgb24gPFNURElOPiAtIERlZmF1bHQ6IGZhbHNlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLXN0ZGluRmlsZW5hbWUgPG4+JywgJ1NwZWNpZnkgZmlsZW5hbWUgdG8gcHJvY2VzcyBTVERJTiBhcy4nKVxuICAuYWN0aW9uKChjbWQpID0+IGxpbnQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdtaWdyYXRlJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IG1pZ3JhdGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdwdWJsaXNoJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWJ1bXAgPHR5cGU+JywgJ0luY3JlbWVudHMgdGhlIHZlcnNpb24uIFR5cGVzIGluY2x1ZGU6IG1ham9yLCBtaW5vciwgcGF0Y2gsIGJldGEsIGFscGhhLCByYy4gRGVmYXVsdDogXCJwYXRjaFwiLicpLmNob2ljZXMoWydtYWpvcicsICdtaW5vcicsICdwYXRjaCcsICdiZXRhJywgJ2FscGhhJywgJ3JjJ10pLmRlZmF1bHQoJ3BhdGNoJykpXG4gIC5vcHRpb24oJy0tbmV3VmVyc2lvbiA8dmVyc2lvbk51bWJlcj4nLCAnUHVibGlzaCBhcyBhIHNwZWNpZmljIHZlcnNpb24uJylcbiAgLm9wdGlvbignLS1vdHAgPGNvZGU+JywgJ1Byb3ZpZGUgYSB0d28tZmFjdG9yIGNvZGUuJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXBhY2thZ2UtbWFuYWdlciA8bWFuYWdlcj4nLCAnV2hpY2ggcGFja2FnZSBtYW5hZ2VyIHRvIHVzZS4gRGVmYXVsdDogbnBtJykuY2hvaWNlcyhbJ25wbScsICd5YXJuJ10pLmRlZmF1bHQoJ25wbScpKVxuICAub3B0aW9uKCctLXByaXZhdGUnLCAnUHVibGlzaGVzIHRoZSBtb2R1bGUgYXMgcmVzdHJpY3RlZC4nKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS10YWcgPHRhZz4nLCAnUmVnaXN0ZXJzIHRoZSBwdWJsaXNoZWQgcGFja2FnZSB3aXRoIHRoZSBnaXZlbiB0YWcuJylcbiAgLmFjdGlvbigoY21kKSA9PiBwdWJsaXNoKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnc2VydmVybGVzcycpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdDdXN0b20gY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGRlZmF1bHQ6IGxleC5jb25maWcubWpzKS4nKVxuICAub3B0aW9uKCctLWhvc3QgPGhvc3Q+JywgJ0hvc3QgdG8gYmluZCB0aGUgc2VydmVyIHRvIChkZWZhdWx0OiBsb2NhbGhvc3QpLicpXG4gIC5vcHRpb24oJy0taHR0cFBvcnQgPHBvcnQ+JywgJ0hUVFAgc2VydmVyIHBvcnQgKGRlZmF1bHQ6IDMwMDApLicpXG4gIC5vcHRpb24oJy0taHR0cHNQb3J0IDxwb3J0PicsICdIVFRQUyBzZXJ2ZXIgcG9ydCAoZGVmYXVsdDogMzAwMSkuJylcbiAgLm9wdGlvbignLS13c1BvcnQgPHBvcnQ+JywgJ1dlYlNvY2tldCBzZXJ2ZXIgcG9ydCAoZGVmYXVsdDogMzAwMikuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tcmVtb3ZlJywgJ1JlbW92ZXMgYWxsIGZpbGVzIGZyb20gdGhlIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIHN0YXJ0aW5nLicpXG4gIC5vcHRpb24oJy0tdXNlUHVibGljSXAnLCAnRm9yY2UgcmVmcmVzaCB0aGUgY2FjaGVkIHB1YmxpYyBJUCBhZGRyZXNzLicpXG4gIC5vcHRpb24oJy0tdmFyaWFibGVzIDxqc29uPicsICdFbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IGluIHByb2Nlc3MuZW52LicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnRW5hYmxlIEdyYXBoUUwgZGVidWcgbG9nZ2luZyB0byBzZWUgcXVlcmllcywgdmFyaWFibGVzLCBhbmQgb3BlcmF0aW9ucy4nKVxuICAub3B0aW9uKCctLXByaW50T3V0cHV0JywgJ1ByaW50IEdyYXBoUUwgcmVzcG9uc2Ugb3V0cHV0IGluY2x1ZGluZyBzdGF0dXMsIGhlYWRlcnMsIGFuZCBib2R5LicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gc2VydmVybGVzcyhjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3N0b3J5Ym9vaycpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdDdXN0b20gU3Rvcnlib29rIGNvbmZpZ3VyYXRpb24gZGlyZWN0b3J5IHBhdGggKGllLiAuc3Rvcnlib29rKS4nKVxuICAub3B0aW9uKCctLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tb3BlbicsICdBdXRvbWF0aWNhbGx5IG9wZW4gU3Rvcnlib29rIGluIGEgbmV3IGJyb3dzZXIgd2luZG93LicpXG4gIC5vcHRpb24oJy0tcG9ydCA8bnVtYmVyPicsICdQb3J0IG51bWJlciBmb3IgdGhlIFN0b3J5Ym9vayBzZXJ2ZXIuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tc3RhdGljJywgJ0J1aWxkIGEgc3RhdGljIFN0b3J5Ym9vayBzaXRlIGluc3RlYWQgb2Ygc3RhcnRpbmcgZGV2IHNlcnZlci4nKVxuICAub3B0aW9uKCctLXZhcmlhYmxlcyA8bj4nLCAnRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiBcInByb2Nlc3MuZW52XCIuIChpZS4gXCJ7U1RPUllCT09LX1RIRU1FOiBcXCdkYXJrXFwnfVwiKS4nKVxuICAub3B0aW9uKCctLXZlcmJvc2UnLCAnU2hvdyBkZXRhaWxlZCB3ZWJwYWNrIHByb2dyZXNzIG91dHB1dC4nKVxuICAuYWN0aW9uKChjbWQpID0+IHN0b3J5Ym9vayhjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3Rlc3QgW2ZpbGVzLi4uXScpXG4gIC5vcHRpb24oJy0tYW5hbHl6ZScsICdVc2UgQUkgdG8gYW5hbHl6ZSB0ZXN0IGNvdmVyYWdlIGFuZCBzdWdnZXN0IGltcHJvdmVtZW50cy4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1kZWJ1Z1Rlc3RzJywgJ1VzZSBBSSB0byBkZWJ1ZyB0ZXN0IGZhaWx1cmVzIGFuZCBzdWdnZXN0IGZpeGVzLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWdlbmVyYXRlJywgJ1VzZSBBSSB0byBnZW5lcmF0ZSB0ZXN0IGNhc2VzIGZvciB1bnRlc3RlZCBjb2RlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWJhaWwnLCAnRXhpdCB0aGUgdGVzdCBzdWl0ZSBpbW1lZGlhdGVseSB1cG9uIHRoZSBmaXJzdCBmYWlsaW5nIHRlc3Qgc3VpdGUuJylcbiAgLm9wdGlvbignLS1jaGFuZ2VkRmlsZXNXaXRoQW5jZXN0b3InLCAnUnVucyB0ZXN0cyByZWxhdGVkIHRvIHRoZSBjdXJyZW50IGNoYW5nZXMgYW5kIHRoZSBjaGFuZ2VzIG1hZGUgaW4gdGhlIGxhc3QgY29tbWl0LicpXG4gIC5vcHRpb24oJy0tY2hhbmdlZFNpbmNlJywgJ1J1bnMgdGVzdHMgcmVsYXRlZCB0aGUgY2hhbmdlcyBzaW5jZSB0aGUgcHJvdmlkZWQgYnJhbmNoLicpXG4gIC5vcHRpb24oJy0tY2knLCAnV2hlbiB0aGlzIG9wdGlvbiBpcyBwcm92aWRlZCwgVml0ZXN0IHdpbGwgYXNzdW1lIGl0IGlzIHJ1bm5pbmcgaW4gYSBDSSBlbnZpcm9ubWVudC4nKVxuICAub3B0aW9uKCctLWNsZWFyQ2FjaGUnLCAnQ2xlYXIgVml0ZXN0IGNhY2hlLicpXG4gIC5vcHRpb24oJy0tY29sbGVjdENvdmVyYWdlRnJvbSA8Z2xvYj4nLCAnQSBnbG9iIHBhdHRlcm4gcmVsYXRpdmUgdG8gbWF0Y2hpbmcgdGhlIGZpbGVzIHRoYXQgY292ZXJhZ2UgaW5mbyBuZWVkcyB0byBiZSBjb2xsZWN0ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLWNvbG9ycycsICdGb3JjZXMgdGVzdCByZXN1bHRzIG91dHB1dCBoaWdobGlnaHRpbmcgZXZlbiBpZiBzdGRvdXQgaXMgbm90IGEgVFRZLicpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdDdXN0b20gVml0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gdml0ZXN0LmNvbmZpZy5tanMpLicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnUHJpbnQgZGVidWdnaW5nIGluZm8gYWJvdXQgeW91ciBWaXRlc3QgY29uZmlnLicpXG4gIC5vcHRpb24oJy0tZGV0ZWN0T3BlbkhhbmRsZXMnLCAnQXR0ZW1wdCB0byBjb2xsZWN0IGFuZCBwcmludCBvcGVuIGhhbmRsZXMgcHJldmVudGluZyBWaXRlc3QgZnJvbSBleGl0aW5nIGNsZWFubHknKVxuICAub3B0aW9uKCctLWVudmlyb25tZW50IDxuPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy0tZW52JywgJ1RoZSB0ZXN0IGVudmlyb25tZW50IHVzZWQgZm9yIGFsbCB0ZXN0cy4gVGhpcyBjYW4gcG9pbnQgdG8gYW55IGZpbGUgb3Igbm9kZSBtb2R1bGUuIEV4YW1wbGVzOiBoYXBweS1kb20sIGpzZG9tLCBub2RlIG9yIHBhdGgvdG8vbXktZW52aXJvbm1lbnQuanMuJylcbiAgLm9wdGlvbignLS1lcnJvck9uRGVwcmVjYXRlZCcsICdNYWtlIGNhbGxpbmcgZGVwcmVjYXRlZCBBUElzIHRocm93IGhlbHBmdWwgZXJyb3IgbWVzc2FnZXMuJylcbiAgLm9wdGlvbignLS1leHBhbmQnLCAnVXNlIHRoaXMgZmxhZyB0byBzaG93IGZ1bGwgZGlmZnMgYW5kIGVycm9ycyBpbnN0ZWFkIG9mIGEgcGF0Y2guJylcbiAgLm9wdGlvbignLS1mb3JjZUV4aXQnLCAnRm9yY2UgVml0ZXN0IHRvIGV4aXQgYWZ0ZXIgYWxsIHRlc3RzIGhhdmUgY29tcGxldGVkIHJ1bm5pbmcuJylcbiAgLm9wdGlvbignLS1qc29uJywgJ1ByaW50cyB0aGUgdGVzdCByZXN1bHRzIGluIEpTT04uJylcbiAgLm9wdGlvbignLS1sYXN0Q29tbWl0JywgJ1J1biBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgZmlsZSBjaGFuZ2VzIGluIHRoZSBsYXN0IGNvbW1pdCBtYWRlLicpXG4gIC5vcHRpb24oJy0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLS1saXN0VGVzdHMnLCAnTGlzdHMgYWxsIHRlc3RzIGFzIEpTT04gdGhhdCBWaXRlc3Qgd2lsbCBydW4gZ2l2ZW4gdGhlIGFyZ3VtZW50cywgYW5kIGV4aXRzLicpXG4gIC5vcHRpb24oJy0tbG9nSGVhcFVzYWdlJywgJ0xvZ3MgdGhlIGhlYXAgdXNhZ2UgYWZ0ZXIgZXZlcnkgdGVzdC4nKVxuICAub3B0aW9uKCctLW1heFdvcmtlcnMgPG51bT4nLCAnU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB3b3JrZXJzIHRoZSB3b3JrZXItcG9vbCB3aWxsIHNwYXduIGZvciBydW5uaW5nIHRlc3RzLiAnKVxuICAub3B0aW9uKCctLW5vU3RhY2tUcmFjZScsICdEaXNhYmxlcyBzdGFjayB0cmFjZSBpbiB0ZXN0IHJlc3VsdHMgb3V0cHV0LicpXG4gIC5vcHRpb24oJy0tbm90aWZ5JywgJ0FjdGl2YXRlcyBub3RpZmljYXRpb25zIGZvciB0ZXN0IHJlc3VsdHMuJylcbiAgLm9wdGlvbignLS1vbmx5Q2hhbmdlZCcsICd1biBiYXNlZCBvbiB3aGljaCBmaWxlcyBoYXZlIGNoYW5nZWQgaW4gdGhlIGN1cnJlbnQgcmVwb3NpdG9yeS4gJylcbiAgLm9wdGlvbignLS1vdXRwdXRGaWxlIDxmaWxlbmFtZT4nLCAnV3JpdGUgdGVzdCByZXN1bHRzIHRvIGEgZmlsZSB3aGVuIHRoZSAtLWpzb24gb3B0aW9uIGlzIGFsc28gc3BlY2lmaWVkLicpXG4gIC5vcHRpb24oJy0tcGFzc1dpdGhOb1Rlc3RzJywgJ0FsbG93cyB0aGUgdGVzdCBzdWl0ZSB0byBwYXNzIHdoZW4gbm8gZmlsZXMgYXJlIGZvdW5kLicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJ1bkluQmFuZCcsICdSdW4gYWxsIHRlc3RzIHNlcmlhbGx5IGluIHRoZSBjdXJyZW50IHByb2Nlc3MsIHJhdGhlciB0aGFuIGNyZWF0aW5nIGEgd29ya2VyIHBvb2wgb2YgY2hpbGQgcHJvY2Vzc2VzIHRoYXQgcnVuIHRlc3RzLicpXG4gIC5vcHRpb24oJy0tc2V0dXAgPHBhdGg+JywgJ1ZpdGVzdCBzZXR1cCBmaWxlIHBhdGguJylcbiAgLm9wdGlvbignLS1zaG93Q29uZmlnJywgJ1ByaW50IHlvdXIgVml0ZXN0IGNvbmZpZyBhbmQgdGhlbiBleGl0cy4nKVxuICAub3B0aW9uKCctLXNpbGVudCcsICdQcmV2ZW50IHRlc3RzIGZyb20gcHJpbnRpbmcgbWVzc2FnZXMgdGhyb3VnaCB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXRlc3RMb2NhdGlvbkluUmVzdWx0cycsICdBZGRzIGEgbG9jYXRpb24gZmllbGQgdG8gdGVzdCByZXN1bHRzLicpXG4gIC5vcHRpb24oJy0tdGVzdE5hbWVQYXR0ZXJuIDxyZWdleD4nLCAnUnVuIG9ubHkgdGVzdHMgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSByZWdleC4gJylcbiAgLm9wdGlvbignLS10ZXN0UGF0aFBhdHRlcm4gPHJlZ2V4PicsICdBIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZyB0aGF0IGlzIG1hdGNoZWQgYWdhaW5zdCBhbGwgdGVzdHMgcGF0aHMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgdGVzdC4nKVxuICAub3B0aW9uKCctLXR5cGVzY3JpcHQnLCAnVHJhbnNwaWxlIGFzIFR5cGVzY3JpcHQuJylcbiAgLm9wdGlvbignLS11cGRhdGUnLCAnVXBkYXRlIHNuYXBzaG90cy4gUnVucyBcInZpdGVzdCAtLXVwZGF0ZVwiJylcbiAgLm9wdGlvbignLS11c2VTdGRlcnInLCAnRGl2ZXJ0IGFsbCBvdXRwdXQgdG8gc3RkZXJyLicpXG4gIC5vcHRpb24oJy0tdmVyYm9zZScsICdEaXNwbGF5IGluZGl2aWR1YWwgdGVzdCByZXN1bHRzIHdpdGggdGhlIHRlc3Qgc3VpdGUgaGllcmFyY2h5LicpXG4gIC5vcHRpb24oJy0td2F0Y2ggPHBhdGg+JywgJ1dhdGNoIGZpbGVzIGZvciBjaGFuZ2VzIGFuZCByZXJ1biB0ZXN0cyByZWxhdGVkIHRvIGNoYW5nZWQgZmlsZXMuJylcbiAgLm9wdGlvbignLS13YXRjaEFsbCcsICdXYXRjaCBmaWxlcyBmb3IgY2hhbmdlcyBhbmQgcmVydW4gYWxsIHRlc3RzIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMuJylcbiAgLmFjdGlvbigoZmlsZXMsIG9wdGlvbnMsIGNtZCkgPT4gdGVzdChvcHRpb25zLCBjbWQuYXJncywgZmlsZXMsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3VwZGF0ZScpXG4gIC5vcHRpb24oJy0taW50ZXJhY3RpdmUnLCAnQ2hvb3NlIHdoaWNoIHBhY2thZ2VzIHRvIHVwZGF0ZS4nKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nKS5jaG9pY2VzKFsnbnBtJywgJ3lhcm4nXSkuZGVmYXVsdCgnbnBtJykpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJlZ2lzdHJ5JywgJ0FkZCBhIGN1c3RvbSByZWdpc3RyeSB1cmwuJylcbiAgLmFjdGlvbigoY21kKSA9PiB1cGRhdGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd1cGdyYWRlJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXBhY2thZ2UtbWFuYWdlciA8bWFuYWdlcj4nLCAnV2hpY2ggcGFja2FnZSBtYW5hZ2VyIHRvIHVzZS4gRGVmYXVsdDogbnBtJykuY2hvaWNlcyhbJ25wbScsICd5YXJuJ10pLmRlZmF1bHQoJ25wbScpKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFjdGlvbigoY21kKSA9PiB1cGdyYWRlKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnYWknKVxuICAub3B0aW9uKCctLWNvbnRleHQnLCAnSW5jbHVkZSBwcm9qZWN0IGNvbnRleHQgaW4gdGhlIEFJIHByb21wdC4nLCB0cnVlKVxuICAub3B0aW9uKCctLWZpbGUgPHBhdGg+JywgJ1NwZWNpZmljIGZpbGUgdG8gb3BlcmF0ZSBvbi4nKVxuICAub3B0aW9uKCctLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tbW9kZWwgPG1vZGVsPicsICdBSSBtb2RlbCB0byB1c2UuIERlZmF1bHQ6IGdwdC00by4nKVxuICAub3B0aW9uKCctLXByb21wdCA8dGV4dD4nLCAnVGhlIHByb21wdCB0byBzZW5kIHRvIHRoZSBBSS4nKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXRhc2sgPHRhc2s+JywgJ1R5cGUgb2YgQUkgdGFzayB0byBwZXJmb3JtLicpLmNob2ljZXMoWydnZW5lcmF0ZScsICdleHBsYWluJywgJ3Rlc3QnLCAnb3B0aW1pemUnLCAnaGVscCddKS5kZWZhdWx0KCdoZWxwJykpXG4gIC5hY3Rpb24oKGNtZCkgPT4gYWlGdW5jdGlvbihjbWQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd2ZXJzaW9ucycpXG4gIC5vcHRpb24oJy0tanNvbicsICdQcmludCB0aGUgdmVyc2lvbiBhcyBhIEpTT04gb2JqZWN0LicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gdmVyc2lvbnMoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbVxuICAudmVyc2lvbihwYWNrYWdlSnNvbi52ZXJzaW9uKVxuICAucGFyc2UocHJvY2Vzcy5hcmd2KTtcbiJdLCJuYW1lcyI6WyJPcHRpb24iLCJwcm9ncmFtIiwicmVhZEZpbGVTeW5jIiwiY3JlYXRlUmVxdWlyZSIsImRpcm5hbWUiLCJyZXNvbHZlIiwiZmlsZVVSTFRvUGF0aCIsImFpRnVuY3Rpb24iLCJidWlsZCIsImNsZWFuIiwiY29tcGlsZSIsImNvbmZpZyIsImNyZWF0ZSIsImRldiIsImluaXQiLCJsaW5rZWQiLCJsaW50IiwibWlncmF0ZSIsInB1Ymxpc2giLCJzZXJ2ZXJsZXNzIiwic3Rvcnlib29rIiwidGVzdCIsInVwZGF0ZSIsInVwZ3JhZGUiLCJ2ZXJzaW9ucyIsInByb2Nlc3MiLCJlbnYiLCJMRVhfUk9PVCIsInVybCIsImxleE5vZGVNb2R1bGVzIiwiTk9ERV9QQVRIIiwic3BsaXQiLCJpbmNsdWRlcyIsInJlcXVpcmUiLCJNb2R1bGUiLCJfaW5pdFBhdGhzIiwicGFja2FnZVBhdGgiLCJVUkwiLCJwYWNrYWdlSnNvbiIsIkpTT04iLCJwYXJzZSIsImNvbW1hbmQiLCJvcHRpb24iLCJhZGRPcHRpb24iLCJjaG9pY2VzIiwiZGVmYXVsdCIsImFjdGlvbiIsImNtZCIsImV4aXQiLCJ0aGVuIiwidHlwZSIsImFwcE5hbWUiLCJwYWNrYWdlTmFtZSIsImZpbGVzIiwib3B0aW9ucyIsImFyZ3MiLCJ2ZXJzaW9uIiwiYXJndiJdLCJtYXBwaW5ncyI6IjtBQUNBOzs7Q0FHQyxHQUNELFNBQVFBLE1BQU0sRUFBRUMsT0FBTyxRQUFPLFlBQVk7QUFDMUMsU0FBUUMsWUFBWSxRQUFPLEtBQUs7QUFDaEMsU0FBUUMsYUFBYSxRQUFPLFNBQVM7QUFDckMsU0FBUUMsT0FBTyxFQUFFQyxPQUFPLFFBQU8sT0FBTztBQUN0QyxTQUFRQyxhQUFhLFFBQU8sTUFBTTtBQUVsQyxTQUFRQyxVQUFVLFFBQU8sc0JBQXNCO0FBQy9DLFNBQVFDLEtBQUssUUFBTyw0QkFBNEI7QUFDaEQsU0FBUUMsS0FBSyxRQUFPLDRCQUE0QjtBQUNoRCxTQUFRQyxPQUFPLFFBQU8sZ0NBQWdDO0FBQ3RELFNBQVFDLE1BQU0sUUFBTyw4QkFBOEI7QUFDbkQsU0FBUUMsTUFBTSxRQUFPLDhCQUE4QjtBQUNuRCxTQUFRQyxHQUFHLFFBQU8sd0JBQXdCO0FBQzFDLFNBQVFDLElBQUksUUFBTywwQkFBMEI7QUFDN0MsU0FBUUMsTUFBTSxRQUFPLDBCQUEwQjtBQUMvQyxTQUFRQyxJQUFJLFFBQU8sMEJBQTBCO0FBQzdDLFNBQVFDLE9BQU8sUUFBTyxnQ0FBZ0M7QUFDdEQsU0FBUUMsT0FBTyxRQUFPLGdDQUFnQztBQUN0RCxTQUFRQyxVQUFVLFFBQU8sc0NBQXNDO0FBQy9ELFNBQVFDLFNBQVMsUUFBTyxvQ0FB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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7T3B0aW9uLCBwcm9ncmFtfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCB7Y3JlYXRlUmVxdWlyZX0gZnJvbSAnbW9kdWxlJztcbmltcG9ydCB7ZGlybmFtZSwgcmVzb2x2ZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gJ3VybCc7XG5cbmltcG9ydCB7YWlGdW5jdGlvbn0gZnJvbSAnLi9jb21tYW5kcy9haS9haS5qcyc7XG5pbXBvcnQge2J1aWxkfSBmcm9tICcuL2NvbW1hbmRzL2J1aWxkL2J1aWxkLmpzJztcbmltcG9ydCB7Y2xlYW59IGZyb20gJy4vY29tbWFuZHMvY2xlYW4vY2xlYW4uanMnO1xuaW1wb3J0IHtjb21waWxlfSBmcm9tICcuL2NvbW1hbmRzL2NvbXBpbGUvY29tcGlsZS5qcyc7XG5pbXBvcnQge2NvbmZpZ30gZnJvbSAnLi9jb21tYW5kcy9jb25maWcvY29uZmlnLmpzJztcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL2NvbW1hbmRzL2NyZWF0ZS9jcmVhdGUuanMnO1xuaW1wb3J0IHtkZXYsIERFRkFVTFRfREVWX1BPUlR9IGZyb20gJy4vY29tbWFuZHMvZGV2L2Rldi5qcyc7XG5pbXBvcnQge2luaXR9IGZyb20gJy4vY29tbWFuZHMvaW5pdC9pbml0LmpzJztcbmltcG9ydCB7bGlua2VkfSBmcm9tICcuL2NvbW1hbmRzL2xpbmsvbGluay5qcyc7XG5pbXBvcnQge2xpbnR9IGZyb20gJy4vY29tbWFuZHMvbGludC9saW50LmpzJztcbmltcG9ydCB7bWlncmF0ZX0gZnJvbSAnLi9jb21tYW5kcy9taWdyYXRlL21pZ3JhdGUuanMnO1xuaW1wb3J0IHtwdWJsaXNofSBmcm9tICcuL2NvbW1hbmRzL3B1Ymxpc2gvcHVibGlzaC5qcyc7XG5pbXBvcnQge3NlcnZlcmxlc3N9IGZyb20gJy4vY29tbWFuZHMvc2VydmVybGVzcy9zZXJ2ZXJsZXNzLmpzJztcbmltcG9ydCB7c3Rvcnlib29rfSBmcm9tICcuL2NvbW1hbmRzL3N0b3J5Ym9vay9zdG9yeWJvb2suanMnO1xuaW1wb3J0IHt0ZXN0fSBmcm9tICcuL2NvbW1hbmRzL3Rlc3QvdGVzdC5qcyc7XG5pbXBvcnQge3VwZGF0ZX0gZnJvbSAnLi9jb21tYW5kcy91cGRhdGUvdXBkYXRlLmpzJztcbmltcG9ydCB7dXBncmFkZX0gZnJvbSAnLi9jb21tYW5kcy91cGdyYWRlL3VwZ3JhZGUuanMnO1xuaW1wb3J0IHt2ZXJzaW9uc30gZnJvbSAnLi9jb21tYW5kcy92ZXJzaW9ucy92ZXJzaW9ucy5qcyc7XG5cbnByb2Nlc3MuZW52LkxFWF9ST09UID0gZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXG5jb25zdCBsZXhOb2RlTW9kdWxlcyA9IHJlc29sdmUoZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpLCAnLi4vbm9kZV9tb2R1bGVzJyk7XG5pZighcHJvY2Vzcy5lbnYuTk9ERV9QQVRIKSB7XG4gIHByb2Nlc3MuZW52Lk5PREVfUEFUSCA9IGxleE5vZGVNb2R1bGVzO1xufSBlbHNlIGlmKCFwcm9jZXNzLmVudi5OT0RFX1BBVEguc3BsaXQoJzonKS5pbmNsdWRlcyhsZXhOb2RlTW9kdWxlcykpIHtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9QQVRIICs9IGA6JHtsZXhOb2RlTW9kdWxlc31gO1xufVxuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG5yZXF1aXJlKCdtb2R1bGUnKS5Nb2R1bGUuX2luaXRQYXRocygpO1xuXG5jb25zdCBwYWNrYWdlUGF0aCA9IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi4vcGFja2FnZS5qc29uJywgaW1wb3J0Lm1ldGEudXJsKSk7XG5jb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhY2thZ2VQYXRoLCAndXRmOCcpKTtcblxucHJvZ3JhbS5jb21tYW5kKCdidWlsZCcpXG4gIC5vcHRpb24oJy0tYXNzaXN0JywgJ0VuYWJsZSBBSSBhc3Npc3RhbmNlIGZvciBmaXhpbmcgYnVpbGQgZXJyb3JzLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWFuYWx5emUnLCAnRW5hYmxlIEFJIGFuYWx5c2lzIGZvciBidWlsZCBvcHRpbWl6YXRpb24gc3VnZ2VzdGlvbnMgb3IgaW52b2tlIHdlYnBhY2stYnVuZGxlLWFuYWx5emVyIHBsdWdpbi4nLCBmYWxzZSlcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWJ1bmRsZXIgPG4+JywgJ0J1bmRsZXIgdG8gdXNlIChcIndlYnBhY2tcIiBvciBcInN3Y1wiKS4gRGVmYXVsdDogXCJzd2NcIi4nKS5jaG9pY2VzKFsnd2VicGFjaycsICdzd2MnXSkuZGVmYXVsdCgnc3djJykpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdDdXN0b20gV2VicGFjayBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIHdlYnBhY2suY29uZmlnLmpzKS4nKVxuICAub3B0aW9uKCctLWNvbmZpZ05hbWUgPHZhbHVlLi4uPicsICdOYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uIHRvIHVzZS4nKVxuICAub3B0aW9uKCctLWRlZmluZVByb2Nlc3NFbnZOb2RlRW52IDx2YWx1ZT4nLCAnU2V0cyBwcm9jZXNzLmVudi5OT0RFX0VOViB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLiAoQ3VycmVudGx5IGFuIGFsaWFzIGZvciBgLS1ub2RlLWVudmApJylcbiAgLm9wdGlvbignLS1kZXZ0b29sIDx2YWx1ZT4nLCAnQSBkZXZlbG9wZXIgdG9vbCB0byBlbmhhbmNlIGRlYnVnZ2luZyAoZmFsc2UgfCBldmFsIHwgW2lubGluZS18aGlkZGVuLXxldmFsLV1bbm9zb3VyY2VzLV1bY2hlYXAtW21vZHVsZS1dXXNvdXJjZS1tYXApLicpXG4gIC5vcHRpb24oJy0tZGlzYWJsZUludGVycHJldCcsICdEaXNhYmxlIGludGVycHJldCBmb3IgbG9hZGluZyB0aGUgY29uZmlnIGZpbGUuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tZW50cnkgPHZhbHVlLi4uPicsICdBIG1vZHVsZSB0aGF0IGlzIGxvYWRlZCB1cG9uIHN0YXJ0dXAuIE9ubHkgdGhlIGxhc3Qgb25lIGlzIGV4cG9ydGVkLicpXG4gIC5vcHRpb24oJy0tZW52IDx2YWx1ZT4nLCAnRW52aXJvbm1lbnQgcGFzc2VkIHRvIHRoZSBjb25maWd1cmF0aW9uIHdoZW4gaXQgaXMgYSBmdW5jdGlvbi4nKVxuICAub3B0aW9uKCctLWZhaWxPbldhcm5pbmdzJywgJ1N0b3Agd2VicGFjay1jbGkgcHJvY2VzcyB3aXRoIG5vbi16ZXJvIGV4aXQgY29kZSBvbiB3YXJuaW5ncyBmcm9tIHdlYnBhY2snLCBmYWxzZSlcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8dmFsdWU+JywgJ1RoaXMgc2V0cyB0aGUgb3V0cHV0IGZvcm1hdCBmb3IgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGZpbGVzLiBEZWZhdWx0OiBcImVzbVwiLicpLmNob2ljZXMoWydjanMnLCAnZXNtJ10pLmRlZmF1bHQoJ2VzbScpKVxuICAub3B0aW9uKCctLWpzb24gPHZhbHVlPicsICdQcmludHMgcmVzdWx0IGFzIEpTT04gb3Igc3RvcmUgaXQgaW4gYSBmaWxlLicpXG4gIC5vcHRpb24oJy0tbGV4Q29uZmlnIDxwYXRoPicsICdMZXggY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tbWVyZ2UnLCAnTWVyZ2UgdHdvIG9yIG1vcmUgY29uZmlndXJhdGlvbnMgdXNpbmcgXCJ3ZWJwYWNrLW1lcmdlXCIuJywgZmFsc2UpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1tb2RlIDx0eXBlPicsICdXZWJwYWNrIG1vZGUgKFwicHJvZHVjdGlvblwiIG9yIFwiZGV2ZWxvcG1lbnRcIikuIERlZmF1bHQ6IFwiZGV2ZWxvcG1lbnRcIi4nKS5jaG9pY2VzKFsnZGV2ZWxvcG1lbnQnLCAncHJvZHVjdGlvbiddKS5kZWZhdWx0KCdkZXZlbG9wbWVudCcpKVxuICAub3B0aW9uKCctLW5hbWUgPHZhbHVlPicsICdOYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uLiBVc2VkIHdoZW4gbG9hZGluZyBtdWx0aXBsZSBjb25maWd1cmF0aW9ucy4nKVxuICAub3B0aW9uKCctLW5vRGV2dG9vbCcsICdOZWdhdGl2ZSBcImRldnRvb2xcIiBvcHRpb24uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tbm9TdGF0cycsICdOZWdhdGl2ZSBcInN0YXRzXCIgb3B0aW9uLicsIGZhbHNlKVxuICAub3B0aW9uKCctLW5vVGFyZ2V0JywgJ05lZ2F0aXZlIFwidGFyZ2V0XCIgb3B0aW9uLicsIGZhbHNlKVxuICAub3B0aW9uKCctLW5vV2F0Y2gnLCAnTmVnYXRpdmUgXCJ3YXRjaFwiIG9wdGlvbi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub1dhdGNoT3B0aW9uc1N0ZGluJywgJ05lZ2F0aXZlIFwid2F0Y2gtb3B0aW9ucy1zdGRpblwiIG9wdGlvbi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub2RlRW52IDx2YWx1ZT4nLCAnU2V0cyBwcm9jZXNzLmVudi5OT0RFX0VOViB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLicpXG4gIC5vcHRpb24oJy0tb3V0cHV0UGF0aCA8dmFsdWU+JywgJ1RoZSBvdXRwdXQgZGlyZWN0b3J5IGFzICoqYWJzb2x1dGUgcGF0aCoqIChyZXF1aXJlZCkuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLXN0YXRzIDx2YWx1ZT4nLCAnU3RhdHMgb3B0aW9ucyBvYmplY3Qgb3IgcHJlc2V0IG5hbWUuJylcbiAgLm9wdGlvbignLS1zdGF0aWMnLCAnQ3JlYXRlcyBzdGF0aWMgSFRNTCBmaWxlcyB3aGVuIGJ1aWxkaW5nIGFwcC4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS10YXJnZXQgPHZhbHVlPicsICdFbnZpcm9ubWVudCB0byBidWlsZCBmb3IuIEVudmlyb25tZW50IHRvIGJ1aWxkIGZvci4gQW4gYXJyYXkgb2YgZW52aXJvbm1lbnRzIHRvIGJ1aWxkIGZvciBhbGwgb2YgdGhlbSB3aGVuIHBvc3NpYmxlLicpXG4gIC5vcHRpb24oJy0tdHJhbnNsYXRpb25zJywgJ1Byb2Nlc3MgdHJhbnNsYXRpb24gZmlsZXMgYW5kIG91dHB1dCBmbGF0dGVuZWQgSlNPTi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicsIGZhbHNlKVxuICAub3B0aW9uKCctLXZhcmlhYmxlcyA8bj4nLCAnRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiBcInByb2Nlc3MuZW52XCIuIChpZS4gXCJ7Tk9ERV9FTlY6IFxcJ3Byb2R1Y3Rpb25cXCd9XCIpLicpXG4gIC5vcHRpb24oJy0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0td2F0Y2hPcHRpb25zU3RkaW4nLCAnU3RvcCB3YXRjaGluZyB3aGVuIHN0ZGluIHN0cmVhbSBoYXMgZW5kZWQuJywgZmFsc2UpXG4gIC5hY3Rpb24oKGNtZCkgPT4gYnVpbGQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjbGVhbicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXNuYXBzaG90cycsICdSZW1vdmUgYWxsIFwiX19zbmFwc2hvdHNfX1wiIGRpcmVjdG9yaWVzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gY2xlYW4oY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjb25maWcgPHR5cGU+JylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tanNvbiA8cGF0aD4nLCAnU2F2ZSBvdXRwdXQgdG8ganNvbiBmaWxlLicpXG4gIC5hY3Rpb24oKHR5cGUsIGNtZCkgPT4gY29uZmlnKHR5cGUsIGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY29tcGlsZScpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdUcmFuc3BpbGVyIGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gdHNjb25maWcuanNvbikuJylcbiAgLm9wdGlvbignLS1lbnZpcm9ubWVudCA8bj4nLCAnVGFyZ2V0IGVudmlyb25tZW50LiBcIm5vZGVcIiBvciBcIndlYlwiLiBEZWZhdWx0OiBcIm5vZGVcIi4nKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDx2YWx1ZT4nLCAnVGhpcyBzZXRzIHRoZSBvdXRwdXQgZm9ybWF0IGZvciB0aGUgZ2VuZXJhdGVkIEphdmFTY3JpcHQgZmlsZXMuIERlZmF1bHQ6IFwiZXNtXCIuJykuY2hvaWNlcyhbJ2NqcycsICdlc20nXSkuZGVmYXVsdCgnZXNtJykpXG4gIC5vcHRpb24oJy0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLS1vdXRwdXRQYXRoIDxwYXRoPicsICdPdXRwdXQgcGF0aCcpXG4gIC5vcHRpb24oJy0tcmVtb3ZlJywgJ1JlbW92ZXMgYWxsIGZpbGVzIGZyb20gdGhlIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIGNvbXBpbGluZy4nKVxuICAub3B0aW9uKCctLXNvdXJjZVBhdGggPHBhdGg+JywgJ1NvdXJjZSBwYXRoJylcbiAgLm9wdGlvbignLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXdhdGNoJywgJ1dhdGNoZXMgZm9yIGNoYW5nZXMgYW5kIGNvbXBpbGVzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gY29tcGlsZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NyZWF0ZSA8dHlwZT4nKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPHBhdGg+JywgJ091dHB1dCBmaWxlbmFtZS4nKVxuICAub3B0aW9uKCctLW91dHB1dE5hbWUgPG4+JywgJ091dHB1dCBuYW1lLicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXR5cGVzY3JpcHQnLCAnQ3JlYXRlIFR5cGVzY3JpcHQgdmVyc2lvbi4nKVxuICAuYWN0aW9uKCh0eXBlLCBjbWQpID0+IGNyZWF0ZSh0eXBlLCBjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2RldicpXG4gIC5vcHRpb24oJy0tYnVuZGxlQW5hbHl6ZXInLCAnUnVuIGJ1bmRsZSBhbmFseXplci4nKVxuICAub3B0aW9uKCctLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8dmFsdWU+JywgJ1RoaXMgc2V0cyB0aGUgb3V0cHV0IGZvcm1hdCBmb3IgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGZpbGVzLiBEZWZhdWx0OiBcImVzbVwiLicpLmNob2ljZXMoWydjanMnLCAnZXNtJ10pLmRlZmF1bHQoJ2VzbScpKVxuICAub3B0aW9uKCctLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tb3BlbicsICdBdXRvbWF0aWNhbGx5IG9wZW4gZGV2IHNlcnZlciBpbiBhIG5ldyBicm93c2VyIHdpbmRvdy4nKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLm9wdGlvbignLS1wb3J0IDxudW1iZXI+JywgYFBvcnQgbnVtYmVyIGZvciB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyIChkZWZhdWx0OiAke0RFRkFVTFRfREVWX1BPUlR9KS5gKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1yZW1vdmUnLCAnUmVtb3ZlcyBhbGwgZmlsZXMgZnJvbSB0aGUgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgY29tcGlsaW5nLicpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLXRyYW5zbGF0aW9ucycsICdQcm9jZXNzIHRyYW5zbGF0aW9uIGZpbGVzIGFuZCBvdXRwdXQgZmxhdHRlbmVkIEpTT04uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctLXVzZVB1YmxpY0lwJywgJ0ZvcmNlIHJlZnJlc2ggdGhlIGNhY2hlZCBwdWJsaWMgSVAgYWRkcmVzcy4nKVxuICAub3B0aW9uKCctLXZhcmlhYmxlcyA8bj4nLCAnRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiBcInByb2Nlc3MuZW52XCIuIChpZS4gXCJ7Tk9ERV9FTlY6IFxcJ2RldmVsb3BtZW50XFwnfVwiKS4nKVxuICAub3B0aW9uKCctLXdhdGNoJywgJ1dhdGNoIGZvciBjaGFuZ2VzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gZGV2KGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnaW5pdCA8YXBwTmFtZT4gW3BhY2thZ2VOYW1lXScpXG4gIC5vcHRpb24oJy0taW5zdGFsbCcsICdJbnN0YWxsIGRlcGVuZGVuY2llcy4nKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nKS5jaG9pY2VzKFsnbnBtJywgJ3lhcm4nXSkuZGVmYXVsdCgnbnBtJykpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXR5cGVzY3JpcHQnLCAnVXNlIGEgVHlwZXNjcmlwdCBiYXNlZCBhcHAuJylcbiAgLmFjdGlvbigoYXBwTmFtZSwgcGFja2FnZU5hbWUsIGNtZCkgPT4gaW5pdChhcHBOYW1lLCBwYWNrYWdlTmFtZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW5rZWQnKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFjdGlvbigoY21kKSA9PiBsaW5rZWQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW50JylcbiAgLm9wdGlvbignLS1jYWNoZScsICdPbmx5IGNoZWNrIGNoYW5nZWQgZmlsZXMuIERlZmF1bHQ6IGZhbHNlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWNhY2hlTG9jYXRpb24gPHBhdGg+JywgJ1BhdGggdG8gdGhlIGNhY2hlIGZpbGUgb3IgZGlyZWN0b3J5LicpXG4gIC5vcHRpb24oJy0tY29sb3InLCAnRm9yY2UgZW5hYmxpbmcgb2YgY29sb3IuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdVc2UgdGhpcyBjb25maWd1cmF0aW9uLCBvdmVycmlkaW5nIC5lc2xpbnRyYy4qIGNvbmZpZyBvcHRpb25zIGlmIHByZXNlbnQuIElmIG5vdCBzcGVjaWZpZWQgYW5kIG5vIGxvY2FsIGNvbmZpZyBleGlzdHMsIExleCB3aWxsIHVzZSBpdHMgZGVmYXVsdCBjb25maWcuJylcbiAgLm9wdGlvbignLS1kZWJ1ZycsICdPdXRwdXQgZGVidWdnaW5nIGluZm9ybWF0aW9uLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWVudkluZm8nLCAnT3V0cHV0IGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBpbmZvcm1hdGlvbi4gRGVmYXVsdDogZmFsc2UuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tZW52IDxuPicsICdTcGVjaWZ5IGVudmlyb25tZW50cy4nKVxuICAub3B0aW9uKCctLWZpeCcsICdBcHBseSBBSSBmaXhlcyBhZnRlciBidWlsdC1pbiBFU0xpbnQgZml4ZXMgKHNhbWUgYXMgLS1maXgpLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWZpeERyeVJ1bicsICdBdXRvbWF0aWNhbGx5IGZpeCBwcm9ibGVtcyB3aXRob3V0IHNhdmluZyB0aGUgY2hhbmdlcyB0byB0aGUgZmlsZSBzeXN0ZW0uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tZml4VHlwZSA8dHlwZT4nLCAnU3BlY2lmeSB0aGUgdHlwZXMgb2YgZml4ZXMgdG8gYXBwbHkgKHByb2JsZW0sIHN1Z2dlc3Rpb24sIGxheW91dCkuJylcbiAgLm9wdGlvbignLS1mb3JtYXQgPG4+JywgJ1VzZSBhIHNwZWNpZmljIG91dHB1dCBmb3JtYXQuIERlZmF1bHQ6IHN0eWxpc2guJylcbiAgLm9wdGlvbignLS1nbG9iYWwgPHZhcmlhYmxlcz4nLCAnRGVmaW5lIGdsb2JhbCB2YXJpYWJsZXMuJylcbiAgLm9wdGlvbignLS1pZ25vcmVQYXRoIDxwYXRoPicsICdTcGVjaWZ5IHBhdGggb2YgaWdub3JlIGZpbGUuJylcbiAgLm9wdGlvbignLS1pZ25vcmVQYXR0ZXJuIDxwYXR0ZXJuPicsICdQYXR0ZXJuIG9mIGZpbGVzIHRvIGlnbm9yZSAoaW4gYWRkaXRpb24gdG8gdGhvc2UgaW4gLmVzbGludGlnbm9yZSkuJylcbiAgLm9wdGlvbignLS1pbml0JywgJ1J1biBjb25maWcgaW5pdGlhbGl6YXRpb24gd2l6YXJkLiBEZWZhdWx0OiBmYWxzZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1tYXhXYXJuaW5ncyA8bnVtPicsICdOdW1iZXIgb2Ygd2FybmluZ3MgdG8gdHJpZ2dlciBub256ZXJvIGV4aXQgY29kZS4gRGVmYXVsdDogLTEuJylcbiAgLm9wdGlvbignLS1ub0NvbG9yJywgJ0ZvcmNlIGRpc2FibGluZyBvZiBjb2xvci4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub0VzbGludHJjJywgJ0Rpc2FibGUgdXNlIG9mIGNvbmZpZ3VyYXRpb24gZnJvbSAuZXNsaW50cmMuKi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub0lnbm9yZScsICdEaXNhYmxlIHVzZSBvZiBpZ25vcmUgZmlsZXMgYW5kIHBhdHRlcm5zLicsIGZhbHNlKVxuICAub3B0aW9uKCctLW5vSW5saW5lQ29uZmlnJywgJ1ByZXZlbnQgY29tbWVudHMgZnJvbSBjaGFuZ2luZyBjb25maWcgb3IgcnVsZXMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tb3V0cHV0RmlsZSA8cGF0aD4nLCAnU3BlY2lmeSBmaWxlIHRvIHdyaXRlIHJlcG9ydCB0by4nKVxuICAub3B0aW9uKCctLXBhcnNlciA8bj4nLCAnU3BlY2lmeSB0aGUgcGFyc2VyIHRvIGJlIHVzZWQuJylcbiAgLm9wdGlvbignLS1wYXJzZXJPcHRpb25zIDxvcHRpb25zPicsICdTcGVjaWZ5IHBhcnNlciBvcHRpb25zLicpXG4gIC5vcHRpb24oJy0tcGx1Z2luIDxwbHVnaW5zPicsICdTcGVjaWZ5IHBsdWdpbnMuJylcbiAgLm9wdGlvbignLS1wcmludENvbmZpZyA8cGF0aD4nLCAnUHJpbnQgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnaXZlbiBmaWxlLicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1yZW1vdmUtY29tbWVudHMnLCAnUmVtb3ZlIGFsbCBjb21tZW50cyBleGNlcHQgVE9ET3MgYW5kIGNvcHlyaWdodCBub3RpY2VzLicsIGZhbHNlKVxuICAub3B0aW9uKCctLXJlcG9ydFVudXNlZERpc2FibGVEaXJlY3RpdmVzJywgJ0FkZHMgcmVwb3J0ZWQgZXJyb3JzIGZvciB1bnVzZWQgZXNsaW50LWRpc2FibGUgZGlyZWN0aXZlcy4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1yZXNvbHZlUGx1Z2luc1JlbGF0aXZlVG8gPHBhdGg+JywgJ0EgZm9sZGVyIHdoZXJlIHBsdWdpbnMgc2hvdWxkIGJlIHJlc29sdmVkIGZyb20uJylcbiAgLm9wdGlvbignLS1ydWxlIDxwYXRoPicsICdTcGVjaWZ5IHJ1bGVzLicpXG4gIC5vcHRpb24oJy0tcnVsZXNkaXIgPHBhdGg+JywgJ1VzZSBhZGRpdGlvbmFsIHJ1bGVzIGZyb20gdGhpcyBkaXJlY3RvcnkuJylcbiAgLm9wdGlvbignLS1zdGRpbicsICdMaW50IGNvZGUgcHJvdmlkZWQgb24gPFNURElOPiAtIERlZmF1bHQ6IGZhbHNlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLXN0ZGluRmlsZW5hbWUgPG4+JywgJ1NwZWNpZnkgZmlsZW5hbWUgdG8gcHJvY2VzcyBTVERJTiBhcy4nKVxuICAuYWN0aW9uKChjbWQpID0+IGxpbnQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdtaWdyYXRlJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IG1pZ3JhdGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdwdWJsaXNoJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWJ1bXAgPHR5cGU+JywgJ0luY3JlbWVudHMgdGhlIHZlcnNpb24uIFR5cGVzIGluY2x1ZGU6IG1ham9yLCBtaW5vciwgcGF0Y2gsIGJldGEsIGFscGhhLCByYy4gRGVmYXVsdDogXCJwYXRjaFwiLicpLmNob2ljZXMoWydtYWpvcicsICdtaW5vcicsICdwYXRjaCcsICdiZXRhJywgJ2FscGhhJywgJ3JjJ10pLmRlZmF1bHQoJ3BhdGNoJykpXG4gIC5vcHRpb24oJy0tbmV3VmVyc2lvbiA8dmVyc2lvbk51bWJlcj4nLCAnUHVibGlzaCBhcyBhIHNwZWNpZmljIHZlcnNpb24uJylcbiAgLm9wdGlvbignLS1vdHAgPGNvZGU+JywgJ1Byb3ZpZGUgYSB0d28tZmFjdG9yIGNvZGUuJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXBhY2thZ2UtbWFuYWdlciA8bWFuYWdlcj4nLCAnV2hpY2ggcGFja2FnZSBtYW5hZ2VyIHRvIHVzZS4gRGVmYXVsdDogbnBtJykuY2hvaWNlcyhbJ25wbScsICd5YXJuJ10pLmRlZmF1bHQoJ25wbScpKVxuICAub3B0aW9uKCctLXByaXZhdGUnLCAnUHVibGlzaGVzIHRoZSBtb2R1bGUgYXMgcmVzdHJpY3RlZC4nKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS10YWcgPHRhZz4nLCAnUmVnaXN0ZXJzIHRoZSBwdWJsaXNoZWQgcGFja2FnZSB3aXRoIHRoZSBnaXZlbiB0YWcuJylcbiAgLmFjdGlvbigoY21kKSA9PiBwdWJsaXNoKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnc2VydmVybGVzcycpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdDdXN0b20gY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGRlZmF1bHQ6IGxleC5jb25maWcubWpzKS4nKVxuICAub3B0aW9uKCctLWhvc3QgPGhvc3Q+JywgJ0hvc3QgdG8gYmluZCB0aGUgc2VydmVyIHRvIChkZWZhdWx0OiBsb2NhbGhvc3QpLicpXG4gIC5vcHRpb24oJy0taHR0cFBvcnQgPHBvcnQ+JywgJ0hUVFAgc2VydmVyIHBvcnQgKGRlZmF1bHQ6IDMxMDApLicpXG4gIC5vcHRpb24oJy0taHR0cHNQb3J0IDxwb3J0PicsICdIVFRQUyBzZXJ2ZXIgcG9ydCAoZGVmYXVsdDogMzEwMSkuJylcbiAgLm9wdGlvbignLS13c1BvcnQgPHBvcnQ+JywgJ1dlYlNvY2tldCBzZXJ2ZXIgcG9ydCAoZGVmYXVsdDogMzEwMikuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tcmVtb3ZlJywgJ1JlbW92ZXMgYWxsIGZpbGVzIGZyb20gdGhlIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIHN0YXJ0aW5nLicpXG4gIC5vcHRpb24oJy0tdXNlUHVibGljSXAnLCAnRm9yY2UgcmVmcmVzaCB0aGUgY2FjaGVkIHB1YmxpYyBJUCBhZGRyZXNzLicpXG4gIC5vcHRpb24oJy0tdmFyaWFibGVzIDxqc29uPicsICdFbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IGluIHByb2Nlc3MuZW52LicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnRW5hYmxlIEdyYXBoUUwgZGVidWcgbG9nZ2luZyB0byBzZWUgcXVlcmllcywgdmFyaWFibGVzLCBhbmQgb3BlcmF0aW9ucy4nKVxuICAub3B0aW9uKCctLXByaW50T3V0cHV0JywgJ1ByaW50IEdyYXBoUUwgcmVzcG9uc2Ugb3V0cHV0IGluY2x1ZGluZyBzdGF0dXMsIGhlYWRlcnMsIGFuZCBib2R5LicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gc2VydmVybGVzcyhjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3N0b3J5Ym9vaycpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdDdXN0b20gU3Rvcnlib29rIGNvbmZpZ3VyYXRpb24gZGlyZWN0b3J5IHBhdGggKGllLiAuc3Rvcnlib29rKS4nKVxuICAub3B0aW9uKCctLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tb3BlbicsICdBdXRvbWF0aWNhbGx5IG9wZW4gU3Rvcnlib29rIGluIGEgbmV3IGJyb3dzZXIgd2luZG93LicpXG4gIC5vcHRpb24oJy0tcG9ydCA8bnVtYmVyPicsICdQb3J0IG51bWJlciBmb3IgdGhlIFN0b3J5Ym9vayBzZXJ2ZXIuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tc3RhdGljJywgJ0J1aWxkIGEgc3RhdGljIFN0b3J5Ym9vayBzaXRlIGluc3RlYWQgb2Ygc3RhcnRpbmcgZGV2IHNlcnZlci4nKVxuICAub3B0aW9uKCctLXZhcmlhYmxlcyA8bj4nLCAnRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiBcInByb2Nlc3MuZW52XCIuIChpZS4gXCJ7U1RPUllCT09LX1RIRU1FOiBcXCdkYXJrXFwnfVwiKS4nKVxuICAub3B0aW9uKCctLXZlcmJvc2UnLCAnU2hvdyBkZXRhaWxlZCB3ZWJwYWNrIHByb2dyZXNzIG91dHB1dC4nKVxuICAuYWN0aW9uKChjbWQpID0+IHN0b3J5Ym9vayhjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3Rlc3QgW2ZpbGVzLi4uXScpXG4gIC5vcHRpb24oJy0tYW5hbHl6ZScsICdVc2UgQUkgdG8gYW5hbHl6ZSB0ZXN0IGNvdmVyYWdlIGFuZCBzdWdnZXN0IGltcHJvdmVtZW50cy4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1kZWJ1Z1Rlc3RzJywgJ1VzZSBBSSB0byBkZWJ1ZyB0ZXN0IGZhaWx1cmVzIGFuZCBzdWdnZXN0IGZpeGVzLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWdlbmVyYXRlJywgJ1VzZSBBSSB0byBnZW5lcmF0ZSB0ZXN0IGNhc2VzIGZvciB1bnRlc3RlZCBjb2RlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWJhaWwnLCAnRXhpdCB0aGUgdGVzdCBzdWl0ZSBpbW1lZGlhdGVseSB1cG9uIHRoZSBmaXJzdCBmYWlsaW5nIHRlc3Qgc3VpdGUuJylcbiAgLm9wdGlvbignLS1jaGFuZ2VkRmlsZXNXaXRoQW5jZXN0b3InLCAnUnVucyB0ZXN0cyByZWxhdGVkIHRvIHRoZSBjdXJyZW50IGNoYW5nZXMgYW5kIHRoZSBjaGFuZ2VzIG1hZGUgaW4gdGhlIGxhc3QgY29tbWl0LicpXG4gIC5vcHRpb24oJy0tY2hhbmdlZFNpbmNlJywgJ1J1bnMgdGVzdHMgcmVsYXRlZCB0aGUgY2hhbmdlcyBzaW5jZSB0aGUgcHJvdmlkZWQgYnJhbmNoLicpXG4gIC5vcHRpb24oJy0tY2knLCAnV2hlbiB0aGlzIG9wdGlvbiBpcyBwcm92aWRlZCwgVml0ZXN0IHdpbGwgYXNzdW1lIGl0IGlzIHJ1bm5pbmcgaW4gYSBDSSBlbnZpcm9ubWVudC4nKVxuICAub3B0aW9uKCctLWNsZWFyQ2FjaGUnLCAnQ2xlYXIgVml0ZXN0IGNhY2hlLicpXG4gIC5vcHRpb24oJy0tY29sbGVjdENvdmVyYWdlRnJvbSA8Z2xvYj4nLCAnQSBnbG9iIHBhdHRlcm4gcmVsYXRpdmUgdG8gbWF0Y2hpbmcgdGhlIGZpbGVzIHRoYXQgY292ZXJhZ2UgaW5mbyBuZWVkcyB0byBiZSBjb2xsZWN0ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLWNvbG9ycycsICdGb3JjZXMgdGVzdCByZXN1bHRzIG91dHB1dCBoaWdobGlnaHRpbmcgZXZlbiBpZiBzdGRvdXQgaXMgbm90IGEgVFRZLicpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdDdXN0b20gVml0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gdml0ZXN0LmNvbmZpZy5tanMpLicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnUHJpbnQgZGVidWdnaW5nIGluZm8gYWJvdXQgeW91ciBWaXRlc3QgY29uZmlnLicpXG4gIC5vcHRpb24oJy0tZGV0ZWN0T3BlbkhhbmRsZXMnLCAnQXR0ZW1wdCB0byBjb2xsZWN0IGFuZCBwcmludCBvcGVuIGhhbmRsZXMgcHJldmVudGluZyBWaXRlc3QgZnJvbSBleGl0aW5nIGNsZWFubHknKVxuICAub3B0aW9uKCctLWVudmlyb25tZW50IDxuPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy0tZW52JywgJ1RoZSB0ZXN0IGVudmlyb25tZW50IHVzZWQgZm9yIGFsbCB0ZXN0cy4gVGhpcyBjYW4gcG9pbnQgdG8gYW55IGZpbGUgb3Igbm9kZSBtb2R1bGUuIEV4YW1wbGVzOiBoYXBweS1kb20sIGpzZG9tLCBub2RlIG9yIHBhdGgvdG8vbXktZW52aXJvbm1lbnQuanMuJylcbiAgLm9wdGlvbignLS1lcnJvck9uRGVwcmVjYXRlZCcsICdNYWtlIGNhbGxpbmcgZGVwcmVjYXRlZCBBUElzIHRocm93IGhlbHBmdWwgZXJyb3IgbWVzc2FnZXMuJylcbiAgLm9wdGlvbignLS1leHBhbmQnLCAnVXNlIHRoaXMgZmxhZyB0byBzaG93IGZ1bGwgZGlmZnMgYW5kIGVycm9ycyBpbnN0ZWFkIG9mIGEgcGF0Y2guJylcbiAgLm9wdGlvbignLS1mb3JjZUV4aXQnLCAnRm9yY2UgVml0ZXN0IHRvIGV4aXQgYWZ0ZXIgYWxsIHRlc3RzIGhhdmUgY29tcGxldGVkIHJ1bm5pbmcuJylcbiAgLm9wdGlvbignLS1qc29uJywgJ1ByaW50cyB0aGUgdGVzdCByZXN1bHRzIGluIEpTT04uJylcbiAgLm9wdGlvbignLS1sYXN0Q29tbWl0JywgJ1J1biBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgZmlsZSBjaGFuZ2VzIGluIHRoZSBsYXN0IGNvbW1pdCBtYWRlLicpXG4gIC5vcHRpb24oJy0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLS1saXN0VGVzdHMnLCAnTGlzdHMgYWxsIHRlc3RzIGFzIEpTT04gdGhhdCBWaXRlc3Qgd2lsbCBydW4gZ2l2ZW4gdGhlIGFyZ3VtZW50cywgYW5kIGV4aXRzLicpXG4gIC5vcHRpb24oJy0tbG9nSGVhcFVzYWdlJywgJ0xvZ3MgdGhlIGhlYXAgdXNhZ2UgYWZ0ZXIgZXZlcnkgdGVzdC4nKVxuICAub3B0aW9uKCctLW1heFdvcmtlcnMgPG51bT4nLCAnU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB3b3JrZXJzIHRoZSB3b3JrZXItcG9vbCB3aWxsIHNwYXduIGZvciBydW5uaW5nIHRlc3RzLiAnKVxuICAub3B0aW9uKCctLW5vU3RhY2tUcmFjZScsICdEaXNhYmxlcyBzdGFjayB0cmFjZSBpbiB0ZXN0IHJlc3VsdHMgb3V0cHV0LicpXG4gIC5vcHRpb24oJy0tbm90aWZ5JywgJ0FjdGl2YXRlcyBub3RpZmljYXRpb25zIGZvciB0ZXN0IHJlc3VsdHMuJylcbiAgLm9wdGlvbignLS1vbmx5Q2hhbmdlZCcsICd1biBiYXNlZCBvbiB3aGljaCBmaWxlcyBoYXZlIGNoYW5nZWQgaW4gdGhlIGN1cnJlbnQgcmVwb3NpdG9yeS4gJylcbiAgLm9wdGlvbignLS1vdXRwdXRGaWxlIDxmaWxlbmFtZT4nLCAnV3JpdGUgdGVzdCByZXN1bHRzIHRvIGEgZmlsZSB3aGVuIHRoZSAtLWpzb24gb3B0aW9uIGlzIGFsc28gc3BlY2lmaWVkLicpXG4gIC5vcHRpb24oJy0tcGFzc1dpdGhOb1Rlc3RzJywgJ0FsbG93cyB0aGUgdGVzdCBzdWl0ZSB0byBwYXNzIHdoZW4gbm8gZmlsZXMgYXJlIGZvdW5kLicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJ1bkluQmFuZCcsICdSdW4gYWxsIHRlc3RzIHNlcmlhbGx5IGluIHRoZSBjdXJyZW50IHByb2Nlc3MsIHJhdGhlciB0aGFuIGNyZWF0aW5nIGEgd29ya2VyIHBvb2wgb2YgY2hpbGQgcHJvY2Vzc2VzIHRoYXQgcnVuIHRlc3RzLicpXG4gIC5vcHRpb24oJy0tc2V0dXAgPHBhdGg+JywgJ1ZpdGVzdCBzZXR1cCBmaWxlIHBhdGguJylcbiAgLm9wdGlvbignLS1zaG93Q29uZmlnJywgJ1ByaW50IHlvdXIgVml0ZXN0IGNvbmZpZyBhbmQgdGhlbiBleGl0cy4nKVxuICAub3B0aW9uKCctLXNpbGVudCcsICdQcmV2ZW50IHRlc3RzIGZyb20gcHJpbnRpbmcgbWVzc2FnZXMgdGhyb3VnaCB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXRlc3RMb2NhdGlvbkluUmVzdWx0cycsICdBZGRzIGEgbG9jYXRpb24gZmllbGQgdG8gdGVzdCByZXN1bHRzLicpXG4gIC5vcHRpb24oJy0tdGVzdE5hbWVQYXR0ZXJuIDxyZWdleD4nLCAnUnVuIG9ubHkgdGVzdHMgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSByZWdleC4gJylcbiAgLm9wdGlvbignLS10ZXN0UGF0aFBhdHRlcm4gPHJlZ2V4PicsICdBIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZyB0aGF0IGlzIG1hdGNoZWQgYWdhaW5zdCBhbGwgdGVzdHMgcGF0aHMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgdGVzdC4nKVxuICAub3B0aW9uKCctLXR5cGVzY3JpcHQnLCAnVHJhbnNwaWxlIGFzIFR5cGVzY3JpcHQuJylcbiAgLm9wdGlvbignLS11cGRhdGUnLCAnVXBkYXRlIHNuYXBzaG90cy4gUnVucyBcInZpdGVzdCAtLXVwZGF0ZVwiJylcbiAgLm9wdGlvbignLS11c2VTdGRlcnInLCAnRGl2ZXJ0IGFsbCBvdXRwdXQgdG8gc3RkZXJyLicpXG4gIC5vcHRpb24oJy0tdmVyYm9zZScsICdEaXNwbGF5IGluZGl2aWR1YWwgdGVzdCByZXN1bHRzIHdpdGggdGhlIHRlc3Qgc3VpdGUgaGllcmFyY2h5LicpXG4gIC5vcHRpb24oJy0td2F0Y2ggPHBhdGg+JywgJ1dhdGNoIGZpbGVzIGZvciBjaGFuZ2VzIGFuZCByZXJ1biB0ZXN0cyByZWxhdGVkIHRvIGNoYW5nZWQgZmlsZXMuJylcbiAgLm9wdGlvbignLS13YXRjaEFsbCcsICdXYXRjaCBmaWxlcyBmb3IgY2hhbmdlcyBhbmQgcmVydW4gYWxsIHRlc3RzIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMuJylcbiAgLmFjdGlvbigoZmlsZXMsIG9wdGlvbnMsIGNtZCkgPT4gdGVzdChvcHRpb25zLCBjbWQuYXJncywgZmlsZXMsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3VwZGF0ZScpXG4gIC5vcHRpb24oJy0taW50ZXJhY3RpdmUnLCAnQ2hvb3NlIHdoaWNoIHBhY2thZ2VzIHRvIHVwZGF0ZS4nKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nKS5jaG9pY2VzKFsnbnBtJywgJ3lhcm4nXSkuZGVmYXVsdCgnbnBtJykpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJlZ2lzdHJ5JywgJ0FkZCBhIGN1c3RvbSByZWdpc3RyeSB1cmwuJylcbiAgLmFjdGlvbigoY21kKSA9PiB1cGRhdGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd1cGdyYWRlJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXBhY2thZ2UtbWFuYWdlciA8bWFuYWdlcj4nLCAnV2hpY2ggcGFja2FnZSBtYW5hZ2VyIHRvIHVzZS4gRGVmYXVsdDogbnBtJykuY2hvaWNlcyhbJ25wbScsICd5YXJuJ10pLmRlZmF1bHQoJ25wbScpKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFjdGlvbigoY21kKSA9PiB1cGdyYWRlKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnYWknKVxuICAub3B0aW9uKCctLWNvbnRleHQnLCAnSW5jbHVkZSBwcm9qZWN0IGNvbnRleHQgaW4gdGhlIEFJIHByb21wdC4nLCB0cnVlKVxuICAub3B0aW9uKCctLWZpbGUgPHBhdGg+JywgJ1NwZWNpZmljIGZpbGUgdG8gb3BlcmF0ZSBvbi4nKVxuICAub3B0aW9uKCctLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tbW9kZWwgPG1vZGVsPicsICdBSSBtb2RlbCB0byB1c2UuIERlZmF1bHQ6IGdwdC00by4nKVxuICAub3B0aW9uKCctLXByb21wdCA8dGV4dD4nLCAnVGhlIHByb21wdCB0byBzZW5kIHRvIHRoZSBBSS4nKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXRhc2sgPHRhc2s+JywgJ1R5cGUgb2YgQUkgdGFzayB0byBwZXJmb3JtLicpLmNob2ljZXMoWydnZW5lcmF0ZScsICdleHBsYWluJywgJ3Rlc3QnLCAnb3B0aW1pemUnLCAnaGVscCddKS5kZWZhdWx0KCdoZWxwJykpXG4gIC5hY3Rpb24oKGNtZCkgPT4gYWlGdW5jdGlvbihjbWQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd2ZXJzaW9ucycpXG4gIC5vcHRpb24oJy0tanNvbicsICdQcmludCB0aGUgdmVyc2lvbiBhcyBhIEpTT04gb2JqZWN0LicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gdmVyc2lvbnMoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbVxuICAudmVyc2lvbihwYWNrYWdlSnNvbi52ZXJzaW9uKVxuICAucGFyc2UocHJvY2Vzcy5hcmd2KTtcbiJdLCJuYW1lcyI6WyJPcHRpb24iLCJwcm9ncmFtIiwicmVhZEZpbGVTeW5jIiwiY3JlYXRlUmVxdWlyZSIsImRpcm5hbWUiLCJyZXNvbHZlIiwiZmlsZVVSTFRvUGF0aCIsImFpRnVuY3Rpb24iLCJidWlsZCIsImNsZWFuIiwiY29tcGlsZSIsImNvbmZpZyIsImNyZWF0ZSIsImRldiIsIkRFRkFVTFRfREVWX1BPUlQiLCJpbml0IiwibGlua2VkIiwibGludCIsIm1pZ3JhdGUiLCJwdWJsaXNoIiwic2VydmVybGVzcyIsInN0b3J5Ym9vayIsInRlc3QiLCJ1cGRhdGUiLCJ1cGdyYWRlIiwidmVyc2lvbnMiLCJwcm9jZXNzIiwiZW52IiwiTEVYX1JPT1QiLCJ1cmwiLCJsZXhOb2RlTW9kdWxlcyIsIk5PREVfUEFUSCIsInNwbGl0IiwiaW5jbHVkZXMiLCJyZXF1aXJlIiwiTW9kdWxlIiwiX2luaXRQYXRocyIsInBhY2thZ2VQYXRoIiwiVVJMIiwicGFja2FnZUpzb24iLCJKU09OIiwicGFyc2UiLCJjb21tYW5kIiwib3B0aW9uIiwiYWRkT3B0aW9uIiwiY2hvaWNlcyIsImRlZmF1bHQiLCJhY3Rpb24iLCJjbWQiLCJleGl0IiwidGhlbiIsInR5cGUiLCJhcHBOYW1lIiwicGFja2FnZU5hbWUiLCJmaWxlcyIsIm9wdGlvbnMiLCJhcmdzIiwidmVyc2lvbiIsImFyZ3YiXSwibWFwcGluZ3MiOiI7QUFDQTs7O0NBR0MsR0FDRCxTQUFRQSxNQUFNLEVBQUVDLE9BQU8sUUFBTyxZQUFZO0FBQzFDLFNBQVFDLFlBQVksUUFBTyxLQUFLO0FBQ2hDLFNBQVFDLGFBQWEsUUFBTyxTQUFTO0FBQ3JDLFNBQVFDLE9BQU8sRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDdEMsU0FBUUMsYUFBYSxRQUFPLE1BQU07QUFFbEMsU0FBUUMsVUFBVSxRQUFPLHNCQUFzQjtBQUMvQyxTQUFRQyxLQUFLLFFBQU8sNEJBQTRCO0FBQ2hELFNBQVFDLEtBQUssUUFBTyw0QkFBNEI7QUFDaEQsU0FBUUMsT0FBTyxRQUFPLGdDQUFnQztBQUN0RCxTQUFRQyxNQUFNLFFBQU8sOEJBQThCO0FBQ25ELFNBQVFDLE1BQU0sUUFBTyw4QkFBOEI7QUFDbkQsU0FBUUMsR0FBRyxFQUFFQyxnQkFBZ0IsUUFBTyx3QkFBd0I7QUFDNUQsU0FBUUMsSUFBSSxRQUFPLDBCQUEwQjtBQUM3QyxTQUFRQyxNQUFNLFFBQU8sMEJBQTBCO0FBQy9DLFNBQVFDLElBQUksUUFBTywwQkFBMEI7QUFDN0MsU0FBUUMsT0FBTyxRQUFPLGdDQUFnQztBQUN0RCxTQUFRQyxPQUFPLFFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nlabs/lex",
3
- "version": "1.55.0",
3
+ "version": "1.55.2",
4
4
  "description": "Lex",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -83,16 +83,16 @@
83
83
  "dependencies": {
84
84
  "@mdx-js/loader": "^3.1.1",
85
85
  "@nlabs/webpack-plugin-static-site": "*",
86
- "@storybook/addon-docs": "^10.2.12",
87
- "@storybook/addon-links": "^10.2.12",
86
+ "@storybook/addon-docs": "^10.2.17",
87
+ "@storybook/addon-links": "^10.2.17",
88
88
  "@storybook/addon-postcss": "^2.0.0",
89
89
  "@storybook/addon-styling-webpack": "^3.0.0",
90
- "@storybook/addon-themes": "^10.2.12",
91
- "@storybook/cli": "^10.2.12",
92
- "@storybook/react": "^10.2.12",
93
- "@storybook/react-webpack5": "^10.2.12",
90
+ "@storybook/addon-themes": "^10.2.17",
91
+ "@storybook/cli": "^10.2.17",
92
+ "@storybook/react": "^10.2.17",
93
+ "@storybook/react-webpack5": "^10.2.17",
94
94
  "@swc/cli": "^0.8.0",
95
- "@swc/core": "^1.15.13",
95
+ "@swc/core": "^1.15.18",
96
96
  "@tailwindcss/forms": "^0.5.11",
97
97
  "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
98
98
  "@tailwindcss/postcss": "4.2.1",
@@ -103,29 +103,29 @@
103
103
  "autoprefixer": "^10.4.27",
104
104
  "boxen": "8.0.1",
105
105
  "buffer": "^6.0.3",
106
- "caniuse-lite": "1.0.30001774",
106
+ "caniuse-lite": "1.0.30001777",
107
107
  "chalk": "^5.6.2",
108
108
  "commander": "^14.0.3",
109
109
  "compare-versions": "^6.1.1",
110
- "compression-webpack-plugin": "^11.1.0",
111
- "copy-webpack-plugin": "^13.0.1",
110
+ "compression-webpack-plugin": "^12.0.0",
111
+ "copy-webpack-plugin": "^14.0.0",
112
112
  "core-js": "^3.48.0",
113
113
  "crypto-js": "^4.2.0",
114
114
  "css-loader": "^7.1.4",
115
- "css-minimizer-webpack-plugin": "^7.0.4",
116
- "cssnano": "^7.1.2",
117
- "dotenv-webpack": "^8.1.1",
115
+ "css-minimizer-webpack-plugin": "^8.0.0",
116
+ "cssnano": "^7.1.3",
117
+ "dotenv-webpack": "^9.0.0",
118
118
  "download-npm-package": "^3.1.12",
119
- "eslint": "^10.0.2",
120
- "eslint-config-styleguidejs": "^5.0.2",
119
+ "eslint": "^10.0.3",
120
+ "eslint-config-styleguidejs": "^5.0.4",
121
121
  "execa": "9.6.1",
122
- "expect": "^30.2.0",
122
+ "expect": "^30.3.0",
123
123
  "express": "^5.2.1",
124
124
  "favicons-webpack-plugin": "^6.0.1",
125
125
  "find-file-up": "^2.0.1",
126
126
  "glob": "^13.0.6",
127
127
  "global": "^4.4.0",
128
- "graphql": "^16.13.0",
128
+ "graphql": "^16.13.1",
129
129
  "graphql-tag": "^2.12.6",
130
130
  "html-loader": "^5.1.0",
131
131
  "html-webpack-plugin": "^5.6.6",
@@ -136,13 +136,13 @@
136
136
  "lodash": "^4.17.23",
137
137
  "luxon": "^3.7.2",
138
138
  "math-expression-evaluator": "^2.0.7",
139
- "mini-css-extract-plugin": "^2.10.0",
140
- "npm-check-updates": "^19.5.0",
141
- "openai": "^6.25.0",
139
+ "mini-css-extract-plugin": "^2.10.1",
140
+ "npm-check-updates": "^19.6.3",
141
+ "openai": "^6.27.0",
142
142
  "ora": "9.3.0",
143
143
  "os-browserify": "^0.3.0",
144
144
  "path-browserify": "^1.0.1",
145
- "postcss": "^8.5.6",
145
+ "postcss": "^8.5.8",
146
146
  "postcss-browser-reporter": "^0.7.0",
147
147
  "postcss-cli": "^11.0.1",
148
148
  "postcss-custom-properties": "^15.0.1",
@@ -155,7 +155,7 @@
155
155
  "postcss-percentage": "^0.0.0",
156
156
  "postcss-preset-env": "^11.2.0",
157
157
  "postcss-simple-vars": "^7.0.1",
158
- "postcss-svgo": "7.1.0",
158
+ "postcss-svgo": "7.1.1",
159
159
  "postcss-url": "10.1.3",
160
160
  "postcss-value-parser": "^4.2.0",
161
161
  "process": "^0.11.10",
@@ -167,12 +167,12 @@
167
167
  "rimraf": "^6.1.3",
168
168
  "semver": "^7.7.4",
169
169
  "source-map-loader": "^5.0.0",
170
- "storybook": "^10.2.12",
170
+ "storybook": "^10.2.17",
171
171
  "stream-browserify": "^3.0.0",
172
172
  "stream-http": "^3.2.0",
173
173
  "style-loader": "^4.0.0",
174
174
  "svg-spritemap-webpack-plugin": "^5.1.0",
175
- "svgo": "4.0.0",
175
+ "svgo": "4.0.1",
176
176
  "swc-loader": "^0.2.7",
177
177
  "tailwindcss": "^4.2.1",
178
178
  "ts-node": "^10.9.2",
@@ -181,7 +181,7 @@
181
181
  "util": "^0.12.5",
182
182
  "vitest": "^4.0.18",
183
183
  "vm-browserify": "^1.1.2",
184
- "webpack": "5.105.2",
184
+ "webpack": "5.105.4",
185
185
  "webpack-bundle-analyzer": "^5.2.0",
186
186
  "webpack-cli": "^6.0.1",
187
187
  "webpack-merge": "^6.0.1",
@@ -191,21 +191,20 @@
191
191
  "devDependencies": {
192
192
  "@types/express": "^5.0.6",
193
193
  "@types/luxon": "^3.7.1",
194
- "@types/node": "^25.3.1",
194
+ "@types/node": "^25.4.0",
195
195
  "@types/ora": "^3.2.0",
196
196
  "@types/react": "^19.2.14",
197
197
  "@types/webpack": "^5.28.5"
198
198
  },
199
199
  "overrides": {
200
200
  "cross-spawn": "^7.0.6",
201
- "fast-xml-parser": ">=5.4.1",
202
201
  "got": "^14.6.6",
203
- "http-cache-semantics": "^4.2.0",
204
202
  "http-proxy-middleware": "^3.0.5",
205
203
  "minimatch": ">=10.2.4",
206
- "postcss": "^8.5.6",
204
+ "postcss": "^8.5.8",
207
205
  "semver-regex": "^4.0.5",
208
- "tmp": "^0.2.5"
206
+ "tmp": "^0.2.5",
207
+ "file-type": "^21.3.1"
209
208
  },
210
209
  "gitHead": "0f5fb22fc0f0ab1abab5adf62afed24c7c87e4a8"
211
210
  }