@studiokloek/vite-config 0.8.7 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +31 -1
- package/package.json +15 -15
package/dist/index.js
CHANGED
|
@@ -450,6 +450,36 @@ async function defineKloekViteConfig(environment) {
|
|
|
450
450
|
'@meta': path.resolve(cwd, 'source', 'static', 'meta'),
|
|
451
451
|
'@fonts': path.resolve(cwd, 'source', 'static', 'fonts'),
|
|
452
452
|
},
|
|
453
|
+
dedupe: [
|
|
454
|
+
'@capacitor/app',
|
|
455
|
+
'@capacitor/core',
|
|
456
|
+
'@capacitor/device',
|
|
457
|
+
'@capacitor/network',
|
|
458
|
+
'@capacitor/preferences',
|
|
459
|
+
'@capacitor/splash-screen',
|
|
460
|
+
'@capacitor/status-bar',
|
|
461
|
+
'bowser',
|
|
462
|
+
'date-fns-tz',
|
|
463
|
+
'date-fns',
|
|
464
|
+
'error-stack-parser-es',
|
|
465
|
+
'firebase',
|
|
466
|
+
'fontfaceobserver',
|
|
467
|
+
'gsap',
|
|
468
|
+
'howler',
|
|
469
|
+
'lodash-decorators-esm',
|
|
470
|
+
'lodash-es',
|
|
471
|
+
'overmind',
|
|
472
|
+
'pixi-spine',
|
|
473
|
+
'pixi.js',
|
|
474
|
+
'pubsub-js',
|
|
475
|
+
'random-js',
|
|
476
|
+
'ress',
|
|
477
|
+
'slugify',
|
|
478
|
+
'superagent',
|
|
479
|
+
'ts-events',
|
|
480
|
+
'ts-mixer',
|
|
481
|
+
'tslib',
|
|
482
|
+
],
|
|
453
483
|
},
|
|
454
484
|
css: {
|
|
455
485
|
preprocessorOptions: {
|
|
@@ -528,4 +558,4 @@ async function kloekBuild(flags) {
|
|
|
528
558
|
}
|
|
529
559
|
|
|
530
560
|
export { kloekBuild, kloekDevelopment };
|
|
531
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy9nYW1lLnRzIiwiLi4vc3JjL3V0aWxzL2J1aWxkLnRzIiwiLi4vc3JjL3V0aWxzL2luZGV4LnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2hhbmRsZWJhcnMtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2h0bWwtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYmFzZS50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvcGx1Z2lucy9zZXJ2ZS50cyIsIi4uL3NyYy9jb25maWcudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHtcbiAgR2FtZVNldHRpbmdzLFxuICBHYW1lU2V0dGluZ3NQcm9wZXJ0eSxcbiAgR2FtZXNTZXR0aW5ncyxcbiAgR2FtZXNTZXR0aW5nc0RhdGEsXG4gIEtsb2VrVml0ZUNvbmZpZyxcbiAgUGFja2FnZUdhbWVzU2V0dGluZ3MsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmZ1bmN0aW9uIG1lcmdlR2FtZVNldHRpbmdzKFxuICBnZW5lcmljOiBHYW1lU2V0dGluZ3MsXG4gIGdhbWU6IEdhbWVTZXR0aW5ncyxcbiAgaW5mb1R5cGVzOiBHYW1lU2V0dGluZ3NQcm9wZXJ0eVtdLFxuKTogR2FtZVNldHRpbmdzIHtcbiAgY29uc3Qgc2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgLy8gQWxsZSBwcm9wcyBvcCDDqcOpbiBsZXZlbCBkaWVwIG1lcmdlblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGluZm9UeXBlcykge1xuICAgIHNldHRpbmdzW3Byb3BlcnR5XSA9IHtcbiAgICAgIC4uLmdlbmVyaWNbcHJvcGVydHldLFxuICAgICAgLi4uZ2FtZVtwcm9wZXJ0eV0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5ncyBhcyB1bmtub3duIGFzIEdhbWVTZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MoXG4gIHBhY2thZ2VTZXR0aW5nczogUGFja2FnZUdhbWVzU2V0dGluZ3MsXG4pOiBHYW1lc1NldHRpbmdzRGF0YSB7XG4gIC8vIE1lcmdlIHNldHRpbmdzXG4gIGNvbnN0IGluZm9UeXBlcyA9IE9iamVjdC5rZXlzKFxuICAgIHBhY2thZ2VTZXR0aW5ncy5nZW5lcmljLFxuICApIGFzIEdhbWVTZXR0aW5nc1Byb3BlcnR5W107XG4gIGNvbnN0IHtnZW5lcmljfSA9IHBhY2thZ2VTZXR0aW5ncztcbiAgY29uc3QgYWxsU2V0dGluZ3M6IEdhbWVzU2V0dGluZ3NEYXRhID0ge1xuICAgIGRldmVsb3BtZW50OiBnZW5lcmljLFxuICAgIGdhbWVzOiB7fSxcbiAgfTtcblxuICBmb3IgKGNvbnN0IGdhbWUgb2YgcGFja2FnZVNldHRpbmdzLmdhbWVzID8/IFtdKSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBtZXJnZUdhbWVTZXR0aW5ncyhnZW5lcmljLCBnYW1lLCBpbmZvVHlwZXMpO1xuXG4gICAgLy8gWm9yZyBlciB2b29yIGRhdCBwYWdlIGFsdGlqZCBnZXpldCBpc1xuICAgIGNvbnN0IHBhZ2VJZCA9IHNldHRpbmdzLmluZm8ucGFnZSA/PyBzZXR0aW5ncy5pbmZvLmlkID8/ICd1bmtub3duJztcbiAgICBzZXR0aW5ncy5pbmZvLnBhZ2UgPSBwYWdlSWQ7XG5cbiAgICAvLyBTbGEgc2V0dGluZ3Mgb3Agb25kZXIgcGFnZSBpZFxuICAgIGFsbFNldHRpbmdzLmdhbWVzW3BhZ2VJZF0gPSBzZXR0aW5ncztcbiAgfVxuXG4gIHJldHVybiBhbGxTZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhUb0dhbWVEYXRhKFxuICBmdWxsRmlsZVBhdGg6IHN0cmluZyxcbiAgc2V0dGluZ3M6IEdhbWVzU2V0dGluZ3MsXG4pOiBHYW1lU2V0dGluZ3MgfCB1bmRlZmluZWQge1xuICAvLyBEZXRlcm1pbmUgZmlsZW5hbWUgd2l0aG91dCBleHRlbnNpb25cbiAgbGV0IGZpbGVQYXRoID0gcGF0aC5iYXNlbmFtZShmdWxsRmlsZVBhdGgsIHBhdGguZXh0bmFtZShmdWxsRmlsZVBhdGgpKTtcblxuICAvLyBEZXRlcm1pbmUgZGlyICYgcmVtb3ZlIGxlYWRpbmcgc2xhc2hcbiAgbGV0IGZpbGVEaXJlY3RvcnkgPSBwYXRoLmRpcm5hbWUoZnVsbEZpbGVQYXRoKTtcbiAgZmlsZURpcmVjdG9yeSA9IGZpbGVEaXJlY3RvcnkucmVwbGFjZSgvXlxcLysvZywgJycpO1xuXG4gIGlmIChmaWxlRGlyZWN0b3J5KSB7XG4gICAgZmlsZVBhdGggPSBgJHtmaWxlRGlyZWN0b3J5fS8ke2ZpbGVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gc2V0dGluZ3NbZmlsZVBhdGhdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFnZVRvU2VydmUoXG4gIGNvbmZpZzogS2xvZWtWaXRlQ29uZmlnLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IHN0cmluZyB7XG4gIC8vIEhvZXZlZWwgcGFnZXMgemlqbiBlcj9cbiAgY29uc3QgcGFnZUlkcyA9IE9iamVjdC5rZXlzKHNldHRpbmdzKTtcbiAgY29uc3QgcGFnZSA9IHBhZ2VJZHMubGVuZ3RoID09PSAxID8gcGFnZUlkc1swXSA6ICdkZXZlbG9wbWVudCc7XG5cbiAgcmV0dXJuIHBhdGgucG9zaXguam9pbihcbiAgICBjb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgYCR7cGFnZX0uaHRtbCR7Y29uZmlnLmRldi5zZXJ2ZVBhcmFtcyA/PyAnJ31gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFnZUlkRnJvbVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbGV0IHBhdGhuYW1lOiBzdHJpbmc7XG5cbiAgdHJ5IHtcbiAgICBwYXRobmFtZSA9IG5ldyBVUkwodXJsLCAnaHR0cHM6Ly9zdHVkaW9rbG9lay5ubCcpLnBhdGhuYW1lO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBJZiByZXF1ZXN0IGlzIG5vdCBodG1sICwgZGlyZWN0bHkgcmV0dXJuIG5leHQoKVxuICBpZiAoIXBhdGhuYW1lLmVuZHNXaXRoKCcuaHRtbCcpICYmIHBhdGhuYW1lICE9PSAnLycpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBQYWdpbmEgaWQgb3B2cmFnZW5cbiAgY29uc3QgaW5kZXggPSBwYXRobmFtZS5sYXN0SW5kZXhPZignLycpO1xuICBjb25zdCBmaWxlTmFtZSA9IGluZGV4ID09PSAtMSA/IHBhdGhuYW1lIDogcGF0aG5hbWUuc2xpY2UoaW5kZXggKyAxKTtcblxuICByZXR1cm4gZmlsZU5hbWUucmVwbGFjZSgnLmh0bWwnLCAnJyk7XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHlwZSB7Vml0ZU9wdGlvbnN9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCdWlsZENvbmZpZyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IEJ1aWxkT3B0aW9ucyB7XG4gIGNvbnN0IGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgZm9yIChjb25zdCBnYW1lSWQgb2YgT2JqZWN0LmtleXMob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpIHtcbiAgICBpbnB1dFtnYW1lSWRdID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMucm9vdCwgYCR7Z2FtZUlkfS5odG1sYCk7XG4gIH1cblxuICAvLyBMaWJzIGRpZSBhcGFydGUganMga3JpamdlbjpcbiAgY29uc3QgdmVuZG9yQ2h1bmtzID0gWydwaXhpJywgJ2NhcGFjaXRvcicsICdmaXJlYmFzZScsICdsb2Rhc2gnLCAnZ3NhcCcsICdzdHVkaW9rbG9layddO1xuXG4gIHJldHVybiB7XG4gICAgcmVwb3J0Q29tcHJlc3NlZFNpemU6IHRydWUsXG4gICAgY2h1bmtTaXplV2FybmluZ0xpbWl0OiAxMDAwLFxuICAgIG91dERpcjogJy4uL3B1YmxpYycsXG4gICAgYXNzZXRzRGlyOiAnZ2VuZXJhdGVkJyxcbiAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICBpbnB1dCxcbiAgICAgIG91dHB1dDoge1xuICAgICAgICBtYW51YWxDaHVua3MoaWQpIHtcbiAgICAgICAgICBpZiAoaWQuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gaWRcbiAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgLnNwbGl0KCdub2RlX21vZHVsZXMvJylbMV1cbiAgICAgICAgICAgICAgLnNwbGl0KCcvJylbMF1cbiAgICAgICAgICAgICAgLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmVuZG9yQ2h1bmtzKSB7XG4gICAgICAgICAgICAgIGlmIChuYW1lLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJ3ZlbmRvcic7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhwYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIHtcbiAgICAvL1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgY3dkID0gbm9ybWFsaXplUGF0aChwcm9jZXNzLmN3ZCgpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9nYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuIiwiaW1wb3J0IG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHtQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHZpdGVIYW5kbGViYXJzUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWhhbmRsZWJhcnMnO1xuaW1wb3J0IHR5cGUge1ZpdGVPcHRpb25zfSBmcm9tICcuLi8uLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Z2V0UGFnZUlkRnJvbVVybH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG4vLyBIZWxwZXJzIHZvb3IgaGFuZGxlYmFyc1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZWJhcnNQbHVnaW4oXG4gIHBhcnRpYWxEaXJlY3Rvcnk6IHN0cmluZyB8IHN0cmluZ1tdLFxuICBvcHRpb25zOiBWaXRlT3B0aW9ucyxcbik6IFBsdWdpbiB7XG4gIHJldHVybiB2aXRlSGFuZGxlYmFyc1BsdWdpbih7XG4gICAgcGFydGlhbERpcmVjdG9yeSxcblxuICAgIGhlbHBlcnM6IHtcbiAgICAgIGpzb246IChvYmplY3Q6IGFueSwgaW5kZW50ID0gMCkgPT5cbiAgICAgICAgSlNPTi5zdHJpbmdpZnkob2JqZWN0LCB1bmRlZmluZWQsIGluZGVudCksXG4gICAgICBjb25jYXQ6ICguLi5hcmd1bWVudHNfOiBhbnlbXSkgPT4gYXJndW1lbnRzXy5zbGljZSgwLCAtMSkuam9pbignJyksXG4gICAgICBlcTogKGE6IGFueSwgYjogYW55KSA9PiBhID09PSBiLFxuICAgICAgbmVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgIT09IGIsXG4gICAgICBpc2RlZmluZWQ6ICh2YWx1ZTogdW5kZWZpbmVkKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkLFxuICAgICAgJ3Jlc29sdmUtcm9vdCcocDogc3RyaW5nKSB7XG4gICAgICAgIC8vIFRpamRlbGlqa2UgaGFjayB2b29yIGJ1ZyBpbiBoYW5kbGViYXJzIHBsdWdpblxuICAgICAgICAvLyB6aWUgb29rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4bGFmcm9zY2lhL3ZpdGUtcGx1Z2luLWhhbmRsZWJhcnMvcHVsbC8xMjlcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMucm9vdCwgcCk7XG4gICAgICAgIHJldHVybiBvcy5wbGF0Zm9ybSgpID09PSAnd2luMzInID8gYC8ke3Jlc29sdmVkUGF0aH1gIDogcmVzb2x2ZWRQYXRoO1xuICAgICAgfSxcbiAgICB9LFxuXG4gICAgY29udGV4dChwYWdlUGF0aDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgICAgY29uc3QgZ2FtZUlkID0gZ2V0UGFnZUlkRnJvbVVybChwYWdlUGF0aCk7XG5cbiAgICAgIGlmICghZ2FtZUlkKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cblxuICAgICAgaWYgKGdhbWVJZCA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBQYWdpbmEgc2V0dGluZ3MgdGVydWdnZXZlblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgICBkYXRhOiBvcHRpb25zLnNldHRpbmdzLmRldmVsb3BtZW50LFxuICAgICAgICAgIGdhbWVzOiBvcHRpb25zLnNldHRpbmdzLmdhbWVzLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBPcCBiYXNpcyB2YW4gcGFkIGRhdGEgYmVwYWxlblxuICAgICAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zLnNldHRpbmdzLmdhbWVzW2dhbWVJZF07XG5cbiAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbnY6IG9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICAgIGRhdGE6IHNldHRpbmdzID8/IHt9LFxuICAgICAgfTtcbiAgICB9LFxuICB9KTtcbn1cbiIsImltcG9ydCB7ZXhpc3RzU3luYywgcHJvbWlzZXN9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHtDb25maWdFbnYsIFBsdWdpbiwgVXNlckNvbmZpZywgVml0ZURldlNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHlwZSB7R2FtZXNTZXR0aW5nc30gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2N3ZCwgZ2V0UGFnZUlkRnJvbVVybH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBQQUdFX1RFTVBMQVRFID0gJ3t7PiBnYW1lIGRhdGE9ZGF0YX19JztcbmNvbnN0IERFVkVMT1BNRU5UX1RFTVBMQVRFID0gJ3t7PiBkZXZlbG9wbWVudCBkYXRhPWRhdGF9fSc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclRlbXBvcmFyeUZpbGUoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAvLyBCZXN0YWF0IGRpZSBmaWxlIG5vZyBuaWV0P1xuICBpZiAoIWV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgLy8gQWFubWFrZW5cbiAgICBhd2FpdCBwcm9taXNlcy53cml0ZUZpbGUoZmlsZVBhdGgsIFBBR0VfVEVNUExBVEUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodG1sUGx1Z2luKGdhbWVzOiBHYW1lc1NldHRpbmdzKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstaHRtbCcsXG4gICAgZW5mb3JjZTogJ3ByZScsXG5cbiAgICBhc3luYyBjb25maWcoX2NvbmZpZzogVXNlckNvbmZpZywgZW52aXJvbm1lbnQ6IENvbmZpZ0Vudikge1xuICAgICAgLy8gQmlqIGVlbiBidWlsZCBtYWtlbiB3ZSB0aWpkZWxpamsgZmlsZXMgYWFuXG4gICAgICBpZiAoZW52aXJvbm1lbnQuY29tbWFuZCA9PT0gJ2J1aWxkJykge1xuICAgICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgcGFnZUlkIG9mIE9iamVjdC5rZXlzKGdhbWVzKSkge1xuICAgICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnLCBgJHtwYWdlSWR9Lmh0bWxgKTtcbiAgICAgICAgICBhY3Rpb25zLnB1c2gocmVuZGVyVGVtcG9yYXJ5RmlsZShmaWxlUGF0aCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoYWN0aW9ucyk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGNvbmZpZ3VyZVNlcnZlcihzZXJ2ZXI6IFZpdGVEZXZTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIC8vIFpvcmcgZXIgdm9vciBkYXQgdGlqZGVucyBkZXZlbG9wbWVudCBkZSBwYWdpbmEgZ2UtcmVuZGVyZWQgdGVydWcgZ2VnZXZlbiB3b3JkdCB3b3JkdFxuICAgICAgICBzZXJ2ZXIubWlkZGxld2FyZXMudXNlKCcvJywgYXN5bmMgKHJlcXVlc3QsIHJlc3BvbnNlLCBuZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgdXJsID0gcmVxdWVzdD8udXJsID8/ICcnO1xuICAgICAgICAgIGNvbnN0IHBhZ2VJZCA9IGdldFBhZ2VJZEZyb21VcmwodXJsKTtcblxuICAgICAgICAgIGlmICghcGFnZUlkKSB7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhZ2VJZCA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgLy8gRGV2ZWxvcG1lbnQ/IGdlZWYgdGVydWcuLi5cbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChcbiAgICAgICAgICAgICAgYXdhaXQgc2VydmVyLnRyYW5zZm9ybUluZGV4SHRtbChcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgREVWRUxPUE1FTlRfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5vcmlnaW5hbFVybCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIGlmIChPYmplY3Qua2V5cyhnYW1lcykuaW5jbHVkZXMocGFnZUlkKSkge1xuICAgICAgICAgICAgLy8gQmVzdGFhbmRlIGdhbWU/IHpvcmcgZXIgdm9vciBkYXQgZGUgdGVtcGxhdGUgZ2UtcmVuZGVyZWQgd29yZHRcbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChcbiAgICAgICAgICAgICAgYXdhaXQgc2VydmVyLnRyYW5zZm9ybUluZGV4SHRtbChcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgUEFHRV9URU1QTEFURSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0Lm9yaWdpbmFsVXJsLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTmlrcyBnZXZvbmRlblxuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgIGlmIChleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtzdmVsdGUsIHZpdGVQcmVwcm9jZXNzfSBmcm9tICdAc3ZlbHRlanMvdml0ZS1wbHVnaW4tc3ZlbHRlJztcbmltcG9ydCB7dHlwZSBQbHVnaW4sIHR5cGUgUGx1Z2luT3B0aW9ufSBmcm9tICd2aXRlJztcbmltcG9ydCB0c2NvbmZpZ1BhdGhzUGx1Z2luIGZyb20gJ3ZpdGUtdHNjb25maWctcGF0aHMnO1xuaW1wb3J0IHt0eXBlIFZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Y3dkfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2hhbmRsZWJhcnNQbHVnaW59IGZyb20gJy4vbGliL2hhbmRsZWJhcnMtcGx1Z2luJztcbmltcG9ydCB7aHRtbFBsdWdpbn0gZnJvbSAnLi9saWIvaHRtbC1wbHVnaW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gYmFzZVBsdWdpbnMoXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogQXJyYXk8UGx1Z2luIHwgUGx1Z2luT3B0aW9uPiB7XG4gIHJldHVybiBbXG4gICAgaHRtbFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcblxuICAgIC4uLnN2ZWx0ZSh7XG4gICAgICBwcmVwcm9jZXNzOnZpdGVQcmVwcm9jZXNzKCksXG5cbiAgICAgIG9ud2Fybih3YXJuaW5nLCB3YXJuKSB7XG4gICAgICAgIGlmICghd2Fybikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vIGExMXkgd2FybmluZ3MuLi5cbiAgICAgICAgaWYgKHdhcm5pbmcuY29kZS5zdGFydHNXaXRoKCdhMTF5LScpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgd2Fybih3YXJuaW5nKTtcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICB0c2NvbmZpZ1BhdGhzUGx1Z2luKHtcbiAgICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QpLFxuICAgICAgLy8gZXh0ZW5zaW9uczogWycudHMnLCAnLmpzb24nXSxcbiAgICAgIGxvb3NlOiB0cnVlLFxuICAgIH0pLFxuICBcbiAgICBoYW5kbGViYXJzUGx1Z2luKG9wdGlvbnMuY29uZmlnLnNlcnZlLnBhcnRpYWxzLCBvcHRpb25zKSxcbiAgXTtcbn1cbiIsIlxuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7Y3dkfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7Q29uZmlnRW52LCBQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHR5cGUge0ltYWdlUXVhbGl0eUNvbmZpZ30gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJmYWNlcyc7IFxuXG5pbXBvcnQgdml0ZUltYWdlbWluIGZyb20gJ0B2aGVlbXN0cmEvdml0ZS1wbHVnaW4taW1hZ2VtaW4nXG5cbi8vIFRoZSBtaW5pZmllcnMgeW91IHdhbnQgdG8gdXNlOlxuaW1wb3J0IGltYWdlbWluTW96anBlZyBmcm9tICdpbWFnZW1pbi1tb3pqcGVnJ1xuaW1wb3J0IGltYWdlbWluUG5nUXVhbnQgZnJvbSAnaW1hZ2VtaW4tcG5ncXVhbnQnXG5pbXBvcnQgaW1hZ2VtaW5PcHRpUG5nIGZyb20gJ2ltYWdlbWluLW9wdGlwbmcnXG5cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZW1pblBsdWdpbihcbiAgZW52aXJvbm1lbnQ6IENvbmZpZ0VudixcbiAgb3B0aW9uczogSW1hZ2VRdWFsaXR5Q29uZmlnLFxuKTogUGx1Z2luIHwgdW5kZWZpbmVkIHtcblxuICBpZiAoZW52aXJvbm1lbnQubW9kZSAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHZpdGVJbWFnZW1pbih7XG4gICAgc2tpcElmTGFyZ2VyOiB0cnVlLFxuICAgIHZlcmJvc2U6IHRydWUsXG4gICAgcm9vdDogcGF0aC5qb2luKHBhdGgucmVzb2x2ZShjd2QpLCAncHVibGljJyksXG4gICAgcGx1Z2luczoge1xuICAgICAganBnOiBbXG4gICAgICAgIGltYWdlbWluTW96anBlZyh7XG4gICAgICAgICAgcXVhbGl0eTogb3B0aW9ucz8uanBlZyA/PyA4MCxcbiAgICAgICAgfSlcbiAgICAgIF0sXG4gICAgICBwbmc6IFtcbiAgICAgICAgaW1hZ2VtaW5QbmdRdWFudCh7XG4gICAgICAgICAgc3RyaXA6IHRydWUsXG4gICAgICAgICAgc3BlZWQ6IDIsXG4gICAgICAgICAgZGl0aGVyaW5nOiAwLjI1LFxuICAgICAgICAgIHF1YWxpdHk6IG9wdGlvbnM/LnBuZyA/PyBbMC41LCAwLjddLFxuICAgICAgICB9KSwgXG4gICAgICAgIGltYWdlbWluT3B0aVBuZygpXG4gICAgICBdXG4gICAgfVxuICB9KSBhcyBQbHVnaW47XG59O1xuIiwiaW1wb3J0IHR5cGUge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHR5cGUge0dhbWVTZXR0aW5ncywgR2FtZXNTZXR0aW5nc30gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5cbmZ1bmN0aW9uIHJlbmRlckdhbWVNYW5pZmVzdChcbiAgcGFnZUlkOiBzdHJpbmcsXG4gIHNldHRpbmdzOiBHYW1lU2V0dGluZ3MsXG4gIGNvbmZpZzogUmVzb2x2ZWRDb25maWcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBtYW5pZmVzdCA9IHtcbiAgICBzaG9ydF9uYW1lOiBgJHtzZXR0aW5ncy5tZXRhLmFwcHRpdGxlfWAsXG4gICAgbmFtZTogYCR7c2V0dGluZ3MubWV0YS50aXRsZX1gLFxuICAgIGRlc2NyaXB0aW9uOiBgJHtzZXR0aW5ncy5tZXRhLmRlc2NyaXB0aW9ufWAsXG4gICAgc2NvcGU6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICBzdGFydF91cmw6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICBkaXNwbGF5OiAnZnVsbHNjcmVlbicsXG4gICAgb3JpZW50YXRpb246IGAke3NldHRpbmdzLm9wdGlvbnMub3JpZW50YXRpb24gPz8gJ2xhbmRzY2FwZSd9YCxcbiAgICBpY29uczogW1xuICAgICAge1xuICAgICAgICBzcmM6IGAke2NvbmZpZy5iYXNlfW1ldGEvJHtzZXR0aW5ncy5pbmZvLmlkfS9pY29ucy9jaHJvbWUtdG91Y2gtaWNvbi0xOTJ4MTkyLnBuZ2AsXG4gICAgICAgIHR5cGU6ICdpbWFnZS9wbmcnLFxuICAgICAgICBzaXplczogJzE5MngxOTInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvaWNvbi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxMDI0eDEwMjQnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGJhY2tncm91bmRfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gICAgdGhlbWVfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gIH07XG5cbiAgcmV0dXJuIGAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0LCBudWxsLCAyKX1cXG5gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFuaWZlc3RQbHVnaW4oZ2FtZXM6IEdhbWVzU2V0dGluZ3MpOiBQbHVnaW4ge1xuICBsZXQgY29uZmlnOiBSZXNvbHZlZENvbmZpZztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1rbG9lay1tYW5pZmVzdCcsXG4gICAgZW5mb3JjZTogJ3Bvc3QnLFxuICAgIGFwcGx5OiAnYnVpbGQnLFxuICAgIGFzeW5jIGNvbmZpZ1Jlc29sdmVkKHJlc29sdmVkQ29uZmlnOiBSZXNvbHZlZENvbmZpZykge1xuICAgICAgY29uZmlnID0gcmVzb2x2ZWRDb25maWc7XG4gICAgfSxcbiAgICBnZW5lcmF0ZUJ1bmRsZShfLCBidW5kbGUpIHtcbiAgICAgIC8vIFZvb3IgaWVkZXJlIGFwcCBlZW4gbWFuaWZlc3QgbWFrZW46XG4gICAgICBmb3IgKGNvbnN0IFtwYWdlSWQsIHNldHRpbmdzXSBvZiBPYmplY3QuZW50cmllcyhnYW1lcykpIHtcbiAgICAgICAgYnVuZGxlW2Ake3BhZ2VJZH0ud2VibWFuaWZlc3RgXSA9IHtcbiAgICAgICAgICBuZWVkc0NvZGVSZWZlcmVuY2U6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHNvdXJjZTogcmVuZGVyR2FtZU1hbmlmZXN0KHBhZ2VJZCwgc2V0dGluZ3MsIGNvbmZpZyksXG4gICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0ud2VibWFuaWZlc3RgLFxuICAgICAgICB9O1xuXG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgXSA9IHtcbiAgICAgICAgICBuZWVkc0NvZGVSZWZlcmVuY2U6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHNvdXJjZTogXCJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oKSB7IHJldHVybjsgfSk7XCIsXG4gICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0tc2VydmljZXdvcmtlci5qc2AsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCBsZWdhY3lQbHVnaW4gZnJvbSAnQHZpdGVqcy9wbHVnaW4tbGVnYWN5JztcbmltcG9ydCB0eXBlIHtQbHVnaW4sIFBsdWdpbk9wdGlvbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHR5cGUge1ZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7aW1hZ2VtaW5QbHVnaW59IGZyb20gJy4vbGliL2ltYWdlLXBsdWdpbic7XG5pbXBvcnQge21hbmlmZXN0UGx1Z2lufSBmcm9tICcuL2xpYi9tYW5pZmVzdC1wbHVnaW4nO1xuaW1wb3J0IHt2aXN1YWxpemVyfSBmcm9tICdyb2xsdXAtcGx1Z2luLXZpc3VhbGl6ZXInO1xuXG4vLyBCdWlsZCBwbHVnaW5zXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQbHVnaW5zKFxuICBvcHRpb25zOiBWaXRlT3B0aW9ucyxcbik6IEFycmF5PFBsdWdpbiB8IFBsdWdpbk9wdGlvbj4ge1xuICAvLyBObyBidWlsZD8gbm8gcGx1Z2lucy4uXG4gIGlmIChvcHRpb25zLmVudmlyb25tZW50LmNvbW1hbmQgIT09ICdidWlsZCcpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwbHVnaW5zOiBBcnJheTxQbHVnaW4gfCBQbHVnaW5PcHRpb24gfCB1bmRlZmluZWQ+ID0gW107XG5cbiAgaWYgKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmxlZ2FjeSkge1xuICAgIC8vIE1ha2Ugc3VyZSB0aGUgcGFnZSB3b3JrcyBpbiBvbGRlciBicm93c2Vyc1xuICAgIHBsdWdpbnMucHVzaChcbiAgICAgIC4uLmxlZ2FjeVBsdWdpbih7XG4gICAgICAgIHRhcmdldHM6IChvcHRpb25zLmNvbmZpZy5idWlsZC5icm93c2Vyc2xpc3QgYXMgc3RyaW5nW10pID8/ICdkZWZhdWx0cycsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgcGFnZXMgPSBPYmplY3Qua2V5cyhvcHRpb25zLnNldHRpbmdzLmdhbWVzKS5tYXAoKGdhbWVJZCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBmaWxlbmFtZTogYCR7Z2FtZUlkfS5odG1sYCxcbiAgICAgIHRlbXBsYXRlOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgIH07XG4gIH0pO1xuXG4gIHBsdWdpbnMucHVzaChcbiAgICAvLyBNaW5pZnkgaW1hZ2UgYXNzZXRzXG4gICAgaW1hZ2VtaW5QbHVnaW4ob3B0aW9ucy5lbnZpcm9ubWVudCwgb3B0aW9ucy5jb25maWcuYnVpbGQuaW1hZ2VRdWFsaXR5KSxcblxuICAgIC8vIE1ha2UgdGhlIGh0bWwgb3V0cHV0IHNtYWxsZXJcbiAgICAuLi4oY3JlYXRlSHRtbFBsdWdpbih7bWluaWZ5OiB0cnVlLCBwYWdlc30pIGFzIFBsdWdpbltdKSxcblxuICAgIC8vIEFkZCBhIGJhbm5lciB0byBnZW5lcmF0ZWQganMvY3NzXG4gICAgYmFubmVyUGx1Z2luKFxuICAgICAgYFxuICAgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC5cblxuICAgICAgICAgX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAgICBfICAgICAgICAgICAgX1xuICAgICAgICAvICApICAgICAgICAgICAgICB8ICBvICAgICAgICAgL3wgICAvIHwgfCAgICAgICAgICB8IHxcbiAgICAgICAgXFxcXF9fIF98XyAgICAgICAgIF9ffCAgICAgIF9fICAgICB8X18vICB8IHwgIF9fICAgXyAgfCB8XG4gICAgICAgICAgIFxcXFwgfCAgfCAgIHwgIC8gIHwgIHwgIC8gIFxcXFxfICAgfCBcXFxcICAgfC8gIC8gIFxcXFxffC8gIHwvXylcbiAgICAgICAoX19fLyB8Xy8gXFxcXF8vfF8vXFxcXF8vfF8vfF8vXFxcXF9fLyAgICB8ICBcXFxcXy98X18vXFxcXF9fLyB8X18vfCBcXFxcXy9cblxuICAgICAgICBDb25jZXB0LCBvbnR3ZXJwICYgb250d2lra2VsaW5nXG4gICAgICAgIGh0dHBzOi8vc3R1ZGlva2xvZWsubmxcblxuICAgICAgICBTdHVkaW8gS2xvZWsg4p2kIFBpeGlKUywgR1NBUCAmIGhvd2xlci5qc1xuXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgYCxcbiAgICApLFxuICApO1xuXG4gIC8vIENyZWF0ZSBhIG1hbmlmZXN0IGFuZCBtaW5pbWFsIHdlYndvcmtlciBmb3IgZXZlcnkgZ2FtZVxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubWFuaWZlc3QpIHtcbiAgICBwbHVnaW5zLnB1c2gobWFuaWZlc3RQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmFuYWx5emVCdW5kbGUpIHtcbiAgICBwbHVnaW5zLnB1c2godmlzdWFsaXplcih7XG4gICAgICB0ZW1wbGF0ZTogXCJ0cmVlbWFwXCIsIC8vIG9yIHN1bmJ1cnN0XG4gICAgICBvcGVuOiB0cnVlLFxuICAgICAgZ3ppcFNpemU6IHRydWUsXG4gICAgICBmaWxlbmFtZTogXCJidW5kbGUtYW5hbHlzZS5odG1sXCIsIC8vIHdpbGwgYmUgc2F2ZWQgaW4gcHJvamVjdCdzIHJvb3RcbiAgICB9KSBhcyBQbHVnaW5PcHRpb24pO1xuICB9XG5cbiAgcmV0dXJuIHBsdWdpbnMuZmlsdGVyKHBsdWdpbiA9PiBwbHVnaW4gIT09IHVuZGVmaW5lZCk7XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHt0eXBlIFBsdWdpbiwgdHlwZSBQbHVnaW5PcHRpb259IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IG1rY2VydCBmcm9tICd2aXRlLXBsdWdpbi1ta2NlcnQnO1xuaW1wb3J0IGNoZWNrZXIgZnJvbSAndml0ZS1wbHVnaW4tY2hlY2tlcic7XG5pbXBvcnQge2N3ZH0gZnJvbSAnLi4vdXRpbHMnO1xuZXhwb3J0IGZ1bmN0aW9uIHNlcnZlUGx1Z2lucygpOiBBcnJheTxQbHVnaW4gfCBQbHVnaW5PcHRpb24+IHtcbiAgcmV0dXJuIFtcbiAgICBmdWxsUmVsb2FkKFsnc2NyaXB0LyoqLyoudHMnLCAnc3ZlbHRlLyoqLyouc3ZlbHRlJ10sIHtcbiAgICAgIHJvb3Q6IHBhdGguam9pbihwYXRoLnJlc29sdmUoY3dkKSwgJ3NvdXJjZScpLFxuICAgICAgbG9nOiB0cnVlLFxuICAgICAgYWx3YXlzOiB0cnVlLFxuICAgIH0pIGFzIFBsdWdpbixcblxuICAgIG1rY2VydCgpLFxuXG4gICAgY2hlY2tlcih7XG4gICAgICB0eXBlc2NyaXB0OiB0cnVlLFxuICAgIH0pLFxuICBdO1xufVxuIiwiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7ZmlsZVVSTFRvUGF0aH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHR5cGUge0NvbmZpZ0VudiwgVXNlckNvbmZpZ30gZnJvbSAndml0ZSc7XG5pbXBvcnQge2Jhc2VQbHVnaW5zfSBmcm9tICcuL3BsdWdpbnMvYmFzZSc7XG5pbXBvcnQge2J1aWxkUGx1Z2luc30gZnJvbSAnLi9wbHVnaW5zL2J1aWxkJztcbmltcG9ydCB7c2VydmVQbHVnaW5zfSBmcm9tICcuL3BsdWdpbnMvc2VydmUnO1xuaW1wb3J0IHtcbiAgY3dkLFxuICBkZWZpbmVCdWlsZENvbmZpZyxcbiAgZ2V0UGFnZVRvU2VydmUsXG4gIHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MsXG4gIHJlYWRKU09OLFxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB0eXBlIHtcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbiAgVml0ZU9wdGlvbnMsXG59IGZyb20gJy4vdXRpbHMvaW50ZXJmYWNlcyc7XG5cbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVmaW5lS2xvZWtWaXRlQ29uZmlnKFxuICBlbnZpcm9ubWVudDogQ29uZmlnRW52LFxuKTogUHJvbWlzZTxVc2VyQ29uZmlnPiB7XG4gIGNvbnN0IHBrZyA9IHJlYWRKU09OKHBhdGgucmVzb2x2ZShjd2QsICdwYWNrYWdlLmpzb24nKSkgYXMgUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB1bmtub3duXG4gID47XG4gIGNvbnN0IGtsb2VrQ29uZmlnID0gcGtnLnZpdGUgYXMgS2xvZWtWaXRlQ29uZmlnO1xuICBjb25zdCBicm93c2Vyc2xpc3QgPSBwa2cuYnJvd3NlcnNsaXN0IGFzIHN0cmluZyB8IHN0cmluZ1tdO1xuICBjb25zdCBvcHRpb25zOiBWaXRlT3B0aW9ucyA9IHtcbiAgICByb290OiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJyksXG4gICAgZW52aXJvbm1lbnQsXG4gICAgc2V0dGluZ3M6IHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MocGtnLnNldHRpbmdzIGFzIFBhY2thZ2VHYW1lc1NldHRpbmdzKSxcbiAgICBjb25maWc6IHtcbiAgICAgIC4uLmtsb2VrQ29uZmlnLFxuICAgICAgYnVpbGQ6IHsuLi5rbG9la0NvbmZpZy5idWlsZCwgYnJvd3NlcnNsaXN0fSxcbiAgICAgIHNlcnZlOiB7XG4gICAgICAgIHBhcnRpYWxzOiBbXG4gICAgICAgICAgcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3BhcnRpYWxzJyksXG4gICAgICAgICAgcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdwYXJ0aWFscycpLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGNvbmZpZzogVXNlckNvbmZpZyA9IHtcbiAgICBsb2dMZXZlbDogJ2luZm8nLFxuICAgIGJhc2U6IGtsb2VrQ29uZmlnLmJ1aWxkLmJhc2VQYXRoLFxuICAgIHJvb3Q6IG9wdGlvbnMucm9vdCxcbiAgICBlbnZEaXI6IHBhdGgucmVzb2x2ZShjd2QsICdlbnYnKSxcbiAgICBlbnZQcmVmaXg6IFsnS0xPRUtfJywgJ1ZJVEVfJ10sXG4gICAgcHVibGljRGlyOiAnc3RhdGljJyxcbiAgICBkZWZpbmU6IHt9LFxuXG4gICAgZXNidWlsZDoge1xuICAgICAgbGVnYWxDb21tZW50czogJ25vbmUnLFxuICAgIH0sXG5cbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczoge1xuICAgICAgICBsb2Rhc2g6ICdsb2Rhc2gtZXMnLFxuICAgICAgICAnQG1ldGEnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdtZXRhJyksXG4gICAgICAgICdAZm9udHMnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdmb250cycpLFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgY3NzOiB7XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBjaGFyc2V0OiBmYWxzZSxcbiAgICAgICAgICAvLyBBZGRpdGlvbmFsRGF0YTogYEBjaGFyc2V0IFwiVVRGLThcImAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBwbHVnaW5zOiBbLi4uYmFzZVBsdWdpbnMob3B0aW9ucyldLFxuICB9O1xuXG4gIHN3aXRjaCAoZW52aXJvbm1lbnQuY29tbWFuZCkge1xuICAgIGNhc2UgJ3NlcnZlJzpcbiAgICAgIGNvbmZpZy5zZXJ2ZXIgPSB7XG4gICAgICAgIGhvc3Q6IHRydWUsXG4gICAgICAgIGNvcnM6IG9wdGlvbnMuY29uZmlnLmRldi5jb3JzID8/IHRydWUsXG4gICAgICAgIGh0dHBzOiBvcHRpb25zLmNvbmZpZy5kZXYuaHR0cHMgPz8gdHJ1ZSxcbiAgICAgICAgb3BlbjogZ2V0UGFnZVRvU2VydmUob3B0aW9ucy5jb25maWcsIG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLFxuICAgICAgfTtcbiAgICAgIGNvbmZpZy5wbHVnaW5zID0gW1xuICAgICAgICAuLi4oY29uZmlnLnBsdWdpbnMgPyBjb25maWcucGx1Z2lucyA6IFtdKSxcbiAgICAgICAgLi4uc2VydmVQbHVnaW5zKCksXG4gICAgICBdO1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2J1aWxkJzpcbiAgICAgIGNvbmZpZy5idWlsZCA9IGRlZmluZUJ1aWxkQ29uZmlnKG9wdGlvbnMpO1xuICAgICAgY29uZmlnLnBsdWdpbnMgPSBbXG4gICAgICAgIC4uLihjb25maWcucGx1Z2lucyA/IGNvbmZpZy5wbHVnaW5zIDogW10pLFxuICAgICAgICAuLi5idWlsZFBsdWdpbnMob3B0aW9ucyksXG4gICAgICBdO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiIsImltcG9ydCB7dHlwZSBUeXBlZEZsYWdzfSBmcm9tICdtZW93JzsgXG5pbXBvcnQge2J1aWxkLCBjcmVhdGVTZXJ2ZXJ9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtkZWZpbmVLbG9la1ZpdGVDb25maWd9IGZyb20gJy4vY29uZmlnJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrRGV2ZWxvcG1lbnQoXG4gIGZsYWdzOiBUeXBlZEZsYWdzPHtcbiAgICBtb2RlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJztcbiAgICAgIHNob3J0RmxhZzogc3RyaW5nO1xuICAgICAgZGVmYXVsdD86IHN0cmluZztcbiAgICB9O1xuICB9Pixcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb25maWcgPSBhd2FpdCBkZWZpbmVLbG9la1ZpdGVDb25maWcoe1xuICAgIGNvbW1hbmQ6ICdzZXJ2ZScsXG4gICAgbW9kZTogJ2RldmVsb3BtZW50JyxcbiAgfSk7XG5cbiAgLy8gRGlmZmVyZW50IG1vZGVcbiAgaWYgKHR5cGVvZiBmbGFncy5tb2RlID09PSAnc3RyaW5nJykge1xuICAgIGNvbmZpZy5tb2RlID0gZmxhZ3MubW9kZTtcbiAgfVxuXG4gIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlcih7XG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgLi4uY29uZmlnLFxuICB9KTtcblxuICBhd2FpdCBzZXJ2ZXIubGlzdGVuKCk7XG4gIHNlcnZlci5wcmludFVybHMoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrQnVpbGQoXG4gIGZsYWdzOiBUeXBlZEZsYWdzPHtcbiAgICBlbXB0eU91dERpcjoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nO1xuICAgICAgc2hvcnRGbGFnOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0OiB0cnVlO1xuICAgIH07XG4gICAgYmFzZToge1xuICAgICAgdHlwZTogJ3N0cmluZyc7XG4gICAgICBzaG9ydEZsYWc6IHN0cmluZztcbiAgICAgIGRlZmF1bHQ6IHN0cmluZztcbiAgICB9O1xuICAgIG1vZGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnO1xuICAgICAgc2hvcnRGbGFnOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0Pzogc3RyaW5nO1xuICAgIH07XG4gIH0+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ2J1aWxkJyxcbiAgICBtb2RlOiAncHJvZHVjdGlvbicsXG4gIH0pO1xuXG4gIC8vIEVtcHR5IG91dCB0aGUgT3V0cHV0IGRpciBiZWZvcmUgYnVpbGRpbmc/XG4gIGlmIChmbGFncy5lbXB0eU91dERpciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uZmlnLmJ1aWxkID0ge1xuICAgICAgLi4uY29uZmlnLmJ1aWxkLFxuICAgICAgZW1wdHlPdXREaXI6IGZsYWdzLmVtcHR5T3V0RGlyLFxuICAgIH07XG4gIH1cblxuICAvLyBEaWZmZXJlbnQgYmFzZSBwYXRoXG4gIGlmICh0eXBlb2YgZmxhZ3MuYmFzZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcuYmFzZSA9IGZsYWdzLmJhc2U7XG4gIH1cblxuICAvLyBEaWZmZXJlbnQgbW9kZVxuICBpZiAodHlwZW9mIGZsYWdzLm1vZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uZmlnLm1vZGUgPSBmbGFncy5tb2RlO1xuICB9XG5cbiAgYXdhaXQgYnVpbGQoe1xuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIC4uLmNvbmZpZyxcbiAgfSk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsU0FBUyxpQkFBaUIsQ0FDeEIsT0FBcUIsRUFDckIsSUFBa0IsRUFDbEIsU0FBaUMsRUFBQTtJQUVqQyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFDOztBQUc3QyxJQUFBLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1FBQ2hDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUNuQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDcEIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xCLENBQUM7QUFDSCxLQUFBO0FBRUQsSUFBQSxPQUFPLFFBQW1DLENBQUM7QUFDN0MsQ0FBQztBQUVLLFNBQVUseUJBQXlCLENBQ3ZDLGVBQXFDLEVBQUE7O0lBR3JDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzNCLGVBQWUsQ0FB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
|
|
561
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy9nYW1lLnRzIiwiLi4vc3JjL3V0aWxzL2J1aWxkLnRzIiwiLi4vc3JjL3V0aWxzL2luZGV4LnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2hhbmRsZWJhcnMtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2h0bWwtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYmFzZS50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvcGx1Z2lucy9zZXJ2ZS50cyIsIi4uL3NyYy9jb25maWcudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHtcbiAgR2FtZVNldHRpbmdzLFxuICBHYW1lU2V0dGluZ3NQcm9wZXJ0eSxcbiAgR2FtZXNTZXR0aW5ncyxcbiAgR2FtZXNTZXR0aW5nc0RhdGEsXG4gIEtsb2VrVml0ZUNvbmZpZyxcbiAgUGFja2FnZUdhbWVzU2V0dGluZ3MsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmZ1bmN0aW9uIG1lcmdlR2FtZVNldHRpbmdzKFxuICBnZW5lcmljOiBHYW1lU2V0dGluZ3MsXG4gIGdhbWU6IEdhbWVTZXR0aW5ncyxcbiAgaW5mb1R5cGVzOiBHYW1lU2V0dGluZ3NQcm9wZXJ0eVtdLFxuKTogR2FtZVNldHRpbmdzIHtcbiAgY29uc3Qgc2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgLy8gQWxsZSBwcm9wcyBvcCDDqcOpbiBsZXZlbCBkaWVwIG1lcmdlblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGluZm9UeXBlcykge1xuICAgIHNldHRpbmdzW3Byb3BlcnR5XSA9IHtcbiAgICAgIC4uLmdlbmVyaWNbcHJvcGVydHldLFxuICAgICAgLi4uZ2FtZVtwcm9wZXJ0eV0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5ncyBhcyB1bmtub3duIGFzIEdhbWVTZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MoXG4gIHBhY2thZ2VTZXR0aW5nczogUGFja2FnZUdhbWVzU2V0dGluZ3MsXG4pOiBHYW1lc1NldHRpbmdzRGF0YSB7XG4gIC8vIE1lcmdlIHNldHRpbmdzXG4gIGNvbnN0IGluZm9UeXBlcyA9IE9iamVjdC5rZXlzKFxuICAgIHBhY2thZ2VTZXR0aW5ncy5nZW5lcmljLFxuICApIGFzIEdhbWVTZXR0aW5nc1Byb3BlcnR5W107XG4gIGNvbnN0IHtnZW5lcmljfSA9IHBhY2thZ2VTZXR0aW5ncztcbiAgY29uc3QgYWxsU2V0dGluZ3M6IEdhbWVzU2V0dGluZ3NEYXRhID0ge1xuICAgIGRldmVsb3BtZW50OiBnZW5lcmljLFxuICAgIGdhbWVzOiB7fSxcbiAgfTtcblxuICBmb3IgKGNvbnN0IGdhbWUgb2YgcGFja2FnZVNldHRpbmdzLmdhbWVzID8/IFtdKSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBtZXJnZUdhbWVTZXR0aW5ncyhnZW5lcmljLCBnYW1lLCBpbmZvVHlwZXMpO1xuXG4gICAgLy8gWm9yZyBlciB2b29yIGRhdCBwYWdlIGFsdGlqZCBnZXpldCBpc1xuICAgIGNvbnN0IHBhZ2VJZCA9IHNldHRpbmdzLmluZm8ucGFnZSA/PyBzZXR0aW5ncy5pbmZvLmlkID8/ICd1bmtub3duJztcbiAgICBzZXR0aW5ncy5pbmZvLnBhZ2UgPSBwYWdlSWQ7XG5cbiAgICAvLyBTbGEgc2V0dGluZ3Mgb3Agb25kZXIgcGFnZSBpZFxuICAgIGFsbFNldHRpbmdzLmdhbWVzW3BhZ2VJZF0gPSBzZXR0aW5ncztcbiAgfVxuXG4gIHJldHVybiBhbGxTZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhUb0dhbWVEYXRhKFxuICBmdWxsRmlsZVBhdGg6IHN0cmluZyxcbiAgc2V0dGluZ3M6IEdhbWVzU2V0dGluZ3MsXG4pOiBHYW1lU2V0dGluZ3MgfCB1bmRlZmluZWQge1xuICAvLyBEZXRlcm1pbmUgZmlsZW5hbWUgd2l0aG91dCBleHRlbnNpb25cbiAgbGV0IGZpbGVQYXRoID0gcGF0aC5iYXNlbmFtZShmdWxsRmlsZVBhdGgsIHBhdGguZXh0bmFtZShmdWxsRmlsZVBhdGgpKTtcblxuICAvLyBEZXRlcm1pbmUgZGlyICYgcmVtb3ZlIGxlYWRpbmcgc2xhc2hcbiAgbGV0IGZpbGVEaXJlY3RvcnkgPSBwYXRoLmRpcm5hbWUoZnVsbEZpbGVQYXRoKTtcbiAgZmlsZURpcmVjdG9yeSA9IGZpbGVEaXJlY3RvcnkucmVwbGFjZSgvXlxcLysvZywgJycpO1xuXG4gIGlmIChmaWxlRGlyZWN0b3J5KSB7XG4gICAgZmlsZVBhdGggPSBgJHtmaWxlRGlyZWN0b3J5fS8ke2ZpbGVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gc2V0dGluZ3NbZmlsZVBhdGhdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFnZVRvU2VydmUoXG4gIGNvbmZpZzogS2xvZWtWaXRlQ29uZmlnLFxuICBzZXR0aW5nczogR2FtZXNTZXR0aW5ncyxcbik6IHN0cmluZyB7XG4gIC8vIEhvZXZlZWwgcGFnZXMgemlqbiBlcj9cbiAgY29uc3QgcGFnZUlkcyA9IE9iamVjdC5rZXlzKHNldHRpbmdzKTtcbiAgY29uc3QgcGFnZSA9IHBhZ2VJZHMubGVuZ3RoID09PSAxID8gcGFnZUlkc1swXSA6ICdkZXZlbG9wbWVudCc7XG5cbiAgcmV0dXJuIHBhdGgucG9zaXguam9pbihcbiAgICBjb25maWcuYnVpbGQuYmFzZVBhdGgsXG4gICAgYCR7cGFnZX0uaHRtbCR7Y29uZmlnLmRldi5zZXJ2ZVBhcmFtcyA/PyAnJ31gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFnZUlkRnJvbVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbGV0IHBhdGhuYW1lOiBzdHJpbmc7XG5cbiAgdHJ5IHtcbiAgICBwYXRobmFtZSA9IG5ldyBVUkwodXJsLCAnaHR0cHM6Ly9zdHVkaW9rbG9lay5ubCcpLnBhdGhuYW1lO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBJZiByZXF1ZXN0IGlzIG5vdCBodG1sICwgZGlyZWN0bHkgcmV0dXJuIG5leHQoKVxuICBpZiAoIXBhdGhuYW1lLmVuZHNXaXRoKCcuaHRtbCcpICYmIHBhdGhuYW1lICE9PSAnLycpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBQYWdpbmEgaWQgb3B2cmFnZW5cbiAgY29uc3QgaW5kZXggPSBwYXRobmFtZS5sYXN0SW5kZXhPZignLycpO1xuICBjb25zdCBmaWxlTmFtZSA9IGluZGV4ID09PSAtMSA/IHBhdGhuYW1lIDogcGF0aG5hbWUuc2xpY2UoaW5kZXggKyAxKTtcblxuICByZXR1cm4gZmlsZU5hbWUucmVwbGFjZSgnLmh0bWwnLCAnJyk7XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUge0J1aWxkT3B0aW9uc30gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHlwZSB7Vml0ZU9wdGlvbnN9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCdWlsZENvbmZpZyhvcHRpb25zOiBWaXRlT3B0aW9ucyk6IEJ1aWxkT3B0aW9ucyB7XG4gIGNvbnN0IGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgZm9yIChjb25zdCBnYW1lSWQgb2YgT2JqZWN0LmtleXMob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpIHtcbiAgICBpbnB1dFtnYW1lSWRdID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMucm9vdCwgYCR7Z2FtZUlkfS5odG1sYCk7XG4gIH1cblxuICAvLyBMaWJzIGRpZSBhcGFydGUganMga3JpamdlbjpcbiAgY29uc3QgdmVuZG9yQ2h1bmtzID0gWydwaXhpJywgJ2NhcGFjaXRvcicsICdmaXJlYmFzZScsICdsb2Rhc2gnLCAnZ3NhcCcsICdzdHVkaW9rbG9layddO1xuXG4gIHJldHVybiB7XG4gICAgcmVwb3J0Q29tcHJlc3NlZFNpemU6IHRydWUsXG4gICAgY2h1bmtTaXplV2FybmluZ0xpbWl0OiAxMDAwLFxuICAgIG91dERpcjogJy4uL3B1YmxpYycsXG4gICAgYXNzZXRzRGlyOiAnZ2VuZXJhdGVkJyxcbiAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICBpbnB1dCxcbiAgICAgIG91dHB1dDoge1xuICAgICAgICBtYW51YWxDaHVua3MoaWQpIHtcbiAgICAgICAgICBpZiAoaWQuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gaWRcbiAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgLnNwbGl0KCdub2RlX21vZHVsZXMvJylbMV1cbiAgICAgICAgICAgICAgLnNwbGl0KCcvJylbMF1cbiAgICAgICAgICAgICAgLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmVuZG9yQ2h1bmtzKSB7XG4gICAgICAgICAgICAgIGlmIChuYW1lLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJ3ZlbmRvcic7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aDogc3RyaW5nKTogdW5rbm93biB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IHJlYWRGaWxlU3luYyhwYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIHtcbiAgICAvL1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgY3dkID0gbm9ybWFsaXplUGF0aChwcm9jZXNzLmN3ZCgpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9nYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuIiwiaW1wb3J0IG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHtQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHZpdGVIYW5kbGViYXJzUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWhhbmRsZWJhcnMnO1xuaW1wb3J0IHR5cGUge1ZpdGVPcHRpb25zfSBmcm9tICcuLi8uLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Z2V0UGFnZUlkRnJvbVVybH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG4vLyBIZWxwZXJzIHZvb3IgaGFuZGxlYmFyc1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZWJhcnNQbHVnaW4oXG4gIHBhcnRpYWxEaXJlY3Rvcnk6IHN0cmluZyB8IHN0cmluZ1tdLFxuICBvcHRpb25zOiBWaXRlT3B0aW9ucyxcbik6IFBsdWdpbiB7XG4gIHJldHVybiB2aXRlSGFuZGxlYmFyc1BsdWdpbih7XG4gICAgcGFydGlhbERpcmVjdG9yeSxcblxuICAgIGhlbHBlcnM6IHtcbiAgICAgIGpzb246IChvYmplY3Q6IGFueSwgaW5kZW50ID0gMCkgPT5cbiAgICAgICAgSlNPTi5zdHJpbmdpZnkob2JqZWN0LCB1bmRlZmluZWQsIGluZGVudCksXG4gICAgICBjb25jYXQ6ICguLi5hcmd1bWVudHNfOiBhbnlbXSkgPT4gYXJndW1lbnRzXy5zbGljZSgwLCAtMSkuam9pbignJyksXG4gICAgICBlcTogKGE6IGFueSwgYjogYW55KSA9PiBhID09PSBiLFxuICAgICAgbmVxOiAoYTogYW55LCBiOiBhbnkpID0+IGEgIT09IGIsXG4gICAgICBpc2RlZmluZWQ6ICh2YWx1ZTogdW5kZWZpbmVkKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkLFxuICAgICAgJ3Jlc29sdmUtcm9vdCcocDogc3RyaW5nKSB7XG4gICAgICAgIC8vIFRpamRlbGlqa2UgaGFjayB2b29yIGJ1ZyBpbiBoYW5kbGViYXJzIHBsdWdpblxuICAgICAgICAvLyB6aWUgb29rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4bGFmcm9zY2lhL3ZpdGUtcGx1Z2luLWhhbmRsZWJhcnMvcHVsbC8xMjlcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMucm9vdCwgcCk7XG4gICAgICAgIHJldHVybiBvcy5wbGF0Zm9ybSgpID09PSAnd2luMzInID8gYC8ke3Jlc29sdmVkUGF0aH1gIDogcmVzb2x2ZWRQYXRoO1xuICAgICAgfSxcbiAgICB9LFxuXG4gICAgY29udGV4dChwYWdlUGF0aDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgICAgY29uc3QgZ2FtZUlkID0gZ2V0UGFnZUlkRnJvbVVybChwYWdlUGF0aCk7XG5cbiAgICAgIGlmICghZ2FtZUlkKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cblxuICAgICAgaWYgKGdhbWVJZCA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBQYWdpbmEgc2V0dGluZ3MgdGVydWdnZXZlblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVudjogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgICBkYXRhOiBvcHRpb25zLnNldHRpbmdzLmRldmVsb3BtZW50LFxuICAgICAgICAgIGdhbWVzOiBvcHRpb25zLnNldHRpbmdzLmdhbWVzLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBPcCBiYXNpcyB2YW4gcGFkIGRhdGEgYmVwYWxlblxuICAgICAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zLnNldHRpbmdzLmdhbWVzW2dhbWVJZF07XG5cbiAgICAgIC8vIFBhZ2luYSBzZXR0aW5ncyB0ZXJ1Z2dldmVuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbnY6IG9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICAgIGRhdGE6IHNldHRpbmdzID8/IHt9LFxuICAgICAgfTtcbiAgICB9LFxuICB9KTtcbn1cbiIsImltcG9ydCB7ZXhpc3RzU3luYywgcHJvbWlzZXN9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB0eXBlIHtDb25maWdFbnYsIFBsdWdpbiwgVXNlckNvbmZpZywgVml0ZURldlNlcnZlcn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgdHlwZSB7R2FtZXNTZXR0aW5nc30gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2N3ZCwgZ2V0UGFnZUlkRnJvbVVybH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBQQUdFX1RFTVBMQVRFID0gJ3t7PiBnYW1lIGRhdGE9ZGF0YX19JztcbmNvbnN0IERFVkVMT1BNRU5UX1RFTVBMQVRFID0gJ3t7PiBkZXZlbG9wbWVudCBkYXRhPWRhdGF9fSc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclRlbXBvcmFyeUZpbGUoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAvLyBCZXN0YWF0IGRpZSBmaWxlIG5vZyBuaWV0P1xuICBpZiAoIWV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgLy8gQWFubWFrZW5cbiAgICBhd2FpdCBwcm9taXNlcy53cml0ZUZpbGUoZmlsZVBhdGgsIFBBR0VfVEVNUExBVEUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodG1sUGx1Z2luKGdhbWVzOiBHYW1lc1NldHRpbmdzKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstaHRtbCcsXG4gICAgZW5mb3JjZTogJ3ByZScsXG5cbiAgICBhc3luYyBjb25maWcoX2NvbmZpZzogVXNlckNvbmZpZywgZW52aXJvbm1lbnQ6IENvbmZpZ0Vudikge1xuICAgICAgLy8gQmlqIGVlbiBidWlsZCBtYWtlbiB3ZSB0aWpkZWxpamsgZmlsZXMgYWFuXG4gICAgICBpZiAoZW52aXJvbm1lbnQuY29tbWFuZCA9PT0gJ2J1aWxkJykge1xuICAgICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgcGFnZUlkIG9mIE9iamVjdC5rZXlzKGdhbWVzKSkge1xuICAgICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnLCBgJHtwYWdlSWR9Lmh0bWxgKTtcbiAgICAgICAgICBhY3Rpb25zLnB1c2gocmVuZGVyVGVtcG9yYXJ5RmlsZShmaWxlUGF0aCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoYWN0aW9ucyk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGNvbmZpZ3VyZVNlcnZlcihzZXJ2ZXI6IFZpdGVEZXZTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIC8vIFpvcmcgZXIgdm9vciBkYXQgdGlqZGVucyBkZXZlbG9wbWVudCBkZSBwYWdpbmEgZ2UtcmVuZGVyZWQgdGVydWcgZ2VnZXZlbiB3b3JkdCB3b3JkdFxuICAgICAgICBzZXJ2ZXIubWlkZGxld2FyZXMudXNlKCcvJywgYXN5bmMgKHJlcXVlc3QsIHJlc3BvbnNlLCBuZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgdXJsID0gcmVxdWVzdD8udXJsID8/ICcnO1xuICAgICAgICAgIGNvbnN0IHBhZ2VJZCA9IGdldFBhZ2VJZEZyb21VcmwodXJsKTtcblxuICAgICAgICAgIGlmICghcGFnZUlkKSB7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhZ2VJZCA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgLy8gRGV2ZWxvcG1lbnQ/IGdlZWYgdGVydWcuLi5cbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChcbiAgICAgICAgICAgICAgYXdhaXQgc2VydmVyLnRyYW5zZm9ybUluZGV4SHRtbChcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgREVWRUxPUE1FTlRfVEVNUExBVEUsXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5vcmlnaW5hbFVybCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIGlmIChPYmplY3Qua2V5cyhnYW1lcykuaW5jbHVkZXMocGFnZUlkKSkge1xuICAgICAgICAgICAgLy8gQmVzdGFhbmRlIGdhbWU/IHpvcmcgZXIgdm9vciBkYXQgZGUgdGVtcGxhdGUgZ2UtcmVuZGVyZWQgd29yZHRcbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChcbiAgICAgICAgICAgICAgYXdhaXQgc2VydmVyLnRyYW5zZm9ybUluZGV4SHRtbChcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgUEFHRV9URU1QTEFURSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0Lm9yaWdpbmFsVXJsLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTmlrcyBnZXZvbmRlblxuICAgICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxQcm9taXNlPHZvaWQ+PiA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgIGlmIChleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtzdmVsdGUsIHZpdGVQcmVwcm9jZXNzfSBmcm9tICdAc3ZlbHRlanMvdml0ZS1wbHVnaW4tc3ZlbHRlJztcbmltcG9ydCB7dHlwZSBQbHVnaW4sIHR5cGUgUGx1Z2luT3B0aW9ufSBmcm9tICd2aXRlJztcbmltcG9ydCB0c2NvbmZpZ1BhdGhzUGx1Z2luIGZyb20gJ3ZpdGUtdHNjb25maWctcGF0aHMnO1xuaW1wb3J0IHt0eXBlIFZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7Y3dkfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2hhbmRsZWJhcnNQbHVnaW59IGZyb20gJy4vbGliL2hhbmRsZWJhcnMtcGx1Z2luJztcbmltcG9ydCB7aHRtbFBsdWdpbn0gZnJvbSAnLi9saWIvaHRtbC1wbHVnaW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gYmFzZVBsdWdpbnMoXG4gIG9wdGlvbnM6IFZpdGVPcHRpb25zLFxuKTogQXJyYXk8UGx1Z2luIHwgUGx1Z2luT3B0aW9uPiB7XG4gIHJldHVybiBbXG4gICAgaHRtbFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcblxuICAgIC4uLnN2ZWx0ZSh7XG4gICAgICBwcmVwcm9jZXNzOnZpdGVQcmVwcm9jZXNzKCksXG5cbiAgICAgIG9ud2Fybih3YXJuaW5nLCB3YXJuKSB7XG4gICAgICAgIGlmICghd2Fybikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vIGExMXkgd2FybmluZ3MuLi5cbiAgICAgICAgaWYgKHdhcm5pbmcuY29kZS5zdGFydHNXaXRoKCdhMTF5LScpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgd2Fybih3YXJuaW5nKTtcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICB0c2NvbmZpZ1BhdGhzUGx1Z2luKHtcbiAgICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QpLFxuICAgICAgLy8gZXh0ZW5zaW9uczogWycudHMnLCAnLmpzb24nXSxcbiAgICAgIGxvb3NlOiB0cnVlLFxuICAgIH0pLFxuICBcbiAgICBoYW5kbGViYXJzUGx1Z2luKG9wdGlvbnMuY29uZmlnLnNlcnZlLnBhcnRpYWxzLCBvcHRpb25zKSxcbiAgXTtcbn1cbiIsIlxuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7Y3dkfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7Q29uZmlnRW52LCBQbHVnaW59IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHR5cGUge0ltYWdlUXVhbGl0eUNvbmZpZ30gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJmYWNlcyc7IFxuXG5pbXBvcnQgdml0ZUltYWdlbWluIGZyb20gJ0B2aGVlbXN0cmEvdml0ZS1wbHVnaW4taW1hZ2VtaW4nXG5cbi8vIFRoZSBtaW5pZmllcnMgeW91IHdhbnQgdG8gdXNlOlxuaW1wb3J0IGltYWdlbWluTW96anBlZyBmcm9tICdpbWFnZW1pbi1tb3pqcGVnJ1xuaW1wb3J0IGltYWdlbWluUG5nUXVhbnQgZnJvbSAnaW1hZ2VtaW4tcG5ncXVhbnQnXG5pbXBvcnQgaW1hZ2VtaW5PcHRpUG5nIGZyb20gJ2ltYWdlbWluLW9wdGlwbmcnXG5cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZW1pblBsdWdpbihcbiAgZW52aXJvbm1lbnQ6IENvbmZpZ0VudixcbiAgb3B0aW9uczogSW1hZ2VRdWFsaXR5Q29uZmlnLFxuKTogUGx1Z2luIHwgdW5kZWZpbmVkIHtcblxuICBpZiAoZW52aXJvbm1lbnQubW9kZSAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHZpdGVJbWFnZW1pbih7XG4gICAgc2tpcElmTGFyZ2VyOiB0cnVlLFxuICAgIHZlcmJvc2U6IHRydWUsXG4gICAgcm9vdDogcGF0aC5qb2luKHBhdGgucmVzb2x2ZShjd2QpLCAncHVibGljJyksXG4gICAgcGx1Z2luczoge1xuICAgICAganBnOiBbXG4gICAgICAgIGltYWdlbWluTW96anBlZyh7XG4gICAgICAgICAgcXVhbGl0eTogb3B0aW9ucz8uanBlZyA/PyA4MCxcbiAgICAgICAgfSlcbiAgICAgIF0sXG4gICAgICBwbmc6IFtcbiAgICAgICAgaW1hZ2VtaW5QbmdRdWFudCh7XG4gICAgICAgICAgc3RyaXA6IHRydWUsXG4gICAgICAgICAgc3BlZWQ6IDIsXG4gICAgICAgICAgZGl0aGVyaW5nOiAwLjI1LFxuICAgICAgICAgIHF1YWxpdHk6IG9wdGlvbnM/LnBuZyA/PyBbMC41LCAwLjddLFxuICAgICAgICB9KSwgXG4gICAgICAgIGltYWdlbWluT3B0aVBuZygpXG4gICAgICBdXG4gICAgfVxuICB9KSBhcyBQbHVnaW47XG59O1xuIiwiaW1wb3J0IHR5cGUge1BsdWdpbiwgUmVzb2x2ZWRDb25maWd9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHR5cGUge0dhbWVTZXR0aW5ncywgR2FtZXNTZXR0aW5nc30gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJmYWNlcyc7XG5cbmZ1bmN0aW9uIHJlbmRlckdhbWVNYW5pZmVzdChcbiAgcGFnZUlkOiBzdHJpbmcsXG4gIHNldHRpbmdzOiBHYW1lU2V0dGluZ3MsXG4gIGNvbmZpZzogUmVzb2x2ZWRDb25maWcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBtYW5pZmVzdCA9IHtcbiAgICBzaG9ydF9uYW1lOiBgJHtzZXR0aW5ncy5tZXRhLmFwcHRpdGxlfWAsXG4gICAgbmFtZTogYCR7c2V0dGluZ3MubWV0YS50aXRsZX1gLFxuICAgIGRlc2NyaXB0aW9uOiBgJHtzZXR0aW5ncy5tZXRhLmRlc2NyaXB0aW9ufWAsXG4gICAgc2NvcGU6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICBzdGFydF91cmw6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICBkaXNwbGF5OiAnZnVsbHNjcmVlbicsXG4gICAgb3JpZW50YXRpb246IGAke3NldHRpbmdzLm9wdGlvbnMub3JpZW50YXRpb24gPz8gJ2xhbmRzY2FwZSd9YCxcbiAgICBpY29uczogW1xuICAgICAge1xuICAgICAgICBzcmM6IGAke2NvbmZpZy5iYXNlfW1ldGEvJHtzZXR0aW5ncy5pbmZvLmlkfS9pY29ucy9jaHJvbWUtdG91Y2gtaWNvbi0xOTJ4MTkyLnBuZ2AsXG4gICAgICAgIHR5cGU6ICdpbWFnZS9wbmcnLFxuICAgICAgICBzaXplczogJzE5MngxOTInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvaWNvbi5wbmdgLFxuICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc2l6ZXM6ICcxMDI0eDEwMjQnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGJhY2tncm91bmRfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gICAgdGhlbWVfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gIH07XG5cbiAgcmV0dXJuIGAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0LCBudWxsLCAyKX1cXG5gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFuaWZlc3RQbHVnaW4oZ2FtZXM6IEdhbWVzU2V0dGluZ3MpOiBQbHVnaW4ge1xuICBsZXQgY29uZmlnOiBSZXNvbHZlZENvbmZpZztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1rbG9lay1tYW5pZmVzdCcsXG4gICAgZW5mb3JjZTogJ3Bvc3QnLFxuICAgIGFwcGx5OiAnYnVpbGQnLFxuICAgIGFzeW5jIGNvbmZpZ1Jlc29sdmVkKHJlc29sdmVkQ29uZmlnOiBSZXNvbHZlZENvbmZpZykge1xuICAgICAgY29uZmlnID0gcmVzb2x2ZWRDb25maWc7XG4gICAgfSxcbiAgICBnZW5lcmF0ZUJ1bmRsZShfLCBidW5kbGUpIHtcbiAgICAgIC8vIFZvb3IgaWVkZXJlIGFwcCBlZW4gbWFuaWZlc3QgbWFrZW46XG4gICAgICBmb3IgKGNvbnN0IFtwYWdlSWQsIHNldHRpbmdzXSBvZiBPYmplY3QuZW50cmllcyhnYW1lcykpIHtcbiAgICAgICAgYnVuZGxlW2Ake3BhZ2VJZH0ud2VibWFuaWZlc3RgXSA9IHtcbiAgICAgICAgICBuZWVkc0NvZGVSZWZlcmVuY2U6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHNvdXJjZTogcmVuZGVyR2FtZU1hbmlmZXN0KHBhZ2VJZCwgc2V0dGluZ3MsIGNvbmZpZyksXG4gICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0ud2VibWFuaWZlc3RgLFxuICAgICAgICB9O1xuXG4gICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgXSA9IHtcbiAgICAgICAgICBuZWVkc0NvZGVSZWZlcmVuY2U6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHNvdXJjZTogXCJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oKSB7IHJldHVybjsgfSk7XCIsXG4gICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0tc2VydmljZXdvcmtlci5qc2AsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCBsZWdhY3lQbHVnaW4gZnJvbSAnQHZpdGVqcy9wbHVnaW4tbGVnYWN5JztcbmltcG9ydCB0eXBlIHtQbHVnaW4sIFBsdWdpbk9wdGlvbn0gZnJvbSAndml0ZSc7XG5pbXBvcnQgYmFubmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWJhbm5lcic7XG5pbXBvcnQge2NyZWF0ZUh0bWxQbHVnaW59IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHR5cGUge1ZpdGVPcHRpb25zfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7aW1hZ2VtaW5QbHVnaW59IGZyb20gJy4vbGliL2ltYWdlLXBsdWdpbic7XG5pbXBvcnQge21hbmlmZXN0UGx1Z2lufSBmcm9tICcuL2xpYi9tYW5pZmVzdC1wbHVnaW4nO1xuaW1wb3J0IHt2aXN1YWxpemVyfSBmcm9tICdyb2xsdXAtcGx1Z2luLXZpc3VhbGl6ZXInO1xuXG4vLyBCdWlsZCBwbHVnaW5zXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQbHVnaW5zKFxuICBvcHRpb25zOiBWaXRlT3B0aW9ucyxcbik6IEFycmF5PFBsdWdpbiB8IFBsdWdpbk9wdGlvbj4ge1xuICAvLyBObyBidWlsZD8gbm8gcGx1Z2lucy4uXG4gIGlmIChvcHRpb25zLmVudmlyb25tZW50LmNvbW1hbmQgIT09ICdidWlsZCcpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwbHVnaW5zOiBBcnJheTxQbHVnaW4gfCBQbHVnaW5PcHRpb24gfCB1bmRlZmluZWQ+ID0gW107XG5cbiAgaWYgKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmxlZ2FjeSkge1xuICAgIC8vIE1ha2Ugc3VyZSB0aGUgcGFnZSB3b3JrcyBpbiBvbGRlciBicm93c2Vyc1xuICAgIHBsdWdpbnMucHVzaChcbiAgICAgIC4uLmxlZ2FjeVBsdWdpbih7XG4gICAgICAgIHRhcmdldHM6IChvcHRpb25zLmNvbmZpZy5idWlsZC5icm93c2Vyc2xpc3QgYXMgc3RyaW5nW10pID8/ICdkZWZhdWx0cycsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgcGFnZXMgPSBPYmplY3Qua2V5cyhvcHRpb25zLnNldHRpbmdzLmdhbWVzKS5tYXAoKGdhbWVJZCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBmaWxlbmFtZTogYCR7Z2FtZUlkfS5odG1sYCxcbiAgICAgIHRlbXBsYXRlOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgIH07XG4gIH0pO1xuXG4gIHBsdWdpbnMucHVzaChcbiAgICAvLyBNaW5pZnkgaW1hZ2UgYXNzZXRzXG4gICAgaW1hZ2VtaW5QbHVnaW4ob3B0aW9ucy5lbnZpcm9ubWVudCwgb3B0aW9ucy5jb25maWcuYnVpbGQuaW1hZ2VRdWFsaXR5KSxcblxuICAgIC8vIE1ha2UgdGhlIGh0bWwgb3V0cHV0IHNtYWxsZXJcbiAgICAuLi4oY3JlYXRlSHRtbFBsdWdpbih7bWluaWZ5OiB0cnVlLCBwYWdlc30pIGFzIFBsdWdpbltdKSxcblxuICAgIC8vIEFkZCBhIGJhbm5lciB0byBnZW5lcmF0ZWQganMvY3NzXG4gICAgYmFubmVyUGx1Z2luKFxuICAgICAgYFxuICAgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC5cblxuICAgICAgICAgX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAgICBfICAgICAgICAgICAgX1xuICAgICAgICAvICApICAgICAgICAgICAgICB8ICBvICAgICAgICAgL3wgICAvIHwgfCAgICAgICAgICB8IHxcbiAgICAgICAgXFxcXF9fIF98XyAgICAgICAgIF9ffCAgICAgIF9fICAgICB8X18vICB8IHwgIF9fICAgXyAgfCB8XG4gICAgICAgICAgIFxcXFwgfCAgfCAgIHwgIC8gIHwgIHwgIC8gIFxcXFxfICAgfCBcXFxcICAgfC8gIC8gIFxcXFxffC8gIHwvXylcbiAgICAgICAoX19fLyB8Xy8gXFxcXF8vfF8vXFxcXF8vfF8vfF8vXFxcXF9fLyAgICB8ICBcXFxcXy98X18vXFxcXF9fLyB8X18vfCBcXFxcXy9cblxuICAgICAgICBDb25jZXB0LCBvbnR3ZXJwICYgb250d2lra2VsaW5nXG4gICAgICAgIGh0dHBzOi8vc3R1ZGlva2xvZWsubmxcblxuICAgICAgICBTdHVkaW8gS2xvZWsg4p2kIFBpeGlKUywgR1NBUCAmIGhvd2xlci5qc1xuXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgYCxcbiAgICApLFxuICApO1xuXG4gIC8vIENyZWF0ZSBhIG1hbmlmZXN0IGFuZCBtaW5pbWFsIHdlYndvcmtlciBmb3IgZXZlcnkgZ2FtZVxuICBpZiAob3B0aW9ucy5jb25maWcuYnVpbGQubWFuaWZlc3QpIHtcbiAgICBwbHVnaW5zLnB1c2gobWFuaWZlc3RQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmFuYWx5emVCdW5kbGUpIHtcbiAgICBwbHVnaW5zLnB1c2godmlzdWFsaXplcih7XG4gICAgICB0ZW1wbGF0ZTogXCJ0cmVlbWFwXCIsIC8vIG9yIHN1bmJ1cnN0XG4gICAgICBvcGVuOiB0cnVlLFxuICAgICAgZ3ppcFNpemU6IHRydWUsXG4gICAgICBmaWxlbmFtZTogXCJidW5kbGUtYW5hbHlzZS5odG1sXCIsIC8vIHdpbGwgYmUgc2F2ZWQgaW4gcHJvamVjdCdzIHJvb3RcbiAgICB9KSBhcyBQbHVnaW5PcHRpb24pO1xuICB9XG5cbiAgcmV0dXJuIHBsdWdpbnMuZmlsdGVyKHBsdWdpbiA9PiBwbHVnaW4gIT09IHVuZGVmaW5lZCk7XG59XG4iLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHt0eXBlIFBsdWdpbiwgdHlwZSBQbHVnaW5PcHRpb259IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGZ1bGxSZWxvYWQgZnJvbSAndml0ZS1wbHVnaW4tZnVsbC1yZWxvYWQnO1xuaW1wb3J0IG1rY2VydCBmcm9tICd2aXRlLXBsdWdpbi1ta2NlcnQnO1xuaW1wb3J0IGNoZWNrZXIgZnJvbSAndml0ZS1wbHVnaW4tY2hlY2tlcic7XG5pbXBvcnQge2N3ZH0gZnJvbSAnLi4vdXRpbHMnO1xuZXhwb3J0IGZ1bmN0aW9uIHNlcnZlUGx1Z2lucygpOiBBcnJheTxQbHVnaW4gfCBQbHVnaW5PcHRpb24+IHtcbiAgcmV0dXJuIFtcbiAgICBmdWxsUmVsb2FkKFsnc2NyaXB0LyoqLyoudHMnLCAnc3ZlbHRlLyoqLyouc3ZlbHRlJ10sIHtcbiAgICAgIHJvb3Q6IHBhdGguam9pbihwYXRoLnJlc29sdmUoY3dkKSwgJ3NvdXJjZScpLFxuICAgICAgbG9nOiB0cnVlLFxuICAgICAgYWx3YXlzOiB0cnVlLFxuICAgIH0pIGFzIFBsdWdpbixcblxuICAgIG1rY2VydCgpLFxuXG4gICAgY2hlY2tlcih7XG4gICAgICB0eXBlc2NyaXB0OiB0cnVlLFxuICAgIH0pLFxuICBdO1xufVxuIiwiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7ZmlsZVVSTFRvUGF0aH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHR5cGUge0NvbmZpZ0VudiwgVXNlckNvbmZpZ30gZnJvbSAndml0ZSc7XG5pbXBvcnQge2Jhc2VQbHVnaW5zfSBmcm9tICcuL3BsdWdpbnMvYmFzZSc7XG5pbXBvcnQge2J1aWxkUGx1Z2luc30gZnJvbSAnLi9wbHVnaW5zL2J1aWxkJztcbmltcG9ydCB7c2VydmVQbHVnaW5zfSBmcm9tICcuL3BsdWdpbnMvc2VydmUnO1xuaW1wb3J0IHtcbiAgY3dkLFxuICBkZWZpbmVCdWlsZENvbmZpZyxcbiAgZ2V0UGFnZVRvU2VydmUsXG4gIHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MsXG4gIHJlYWRKU09OLFxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB0eXBlIHtcbiAgS2xvZWtWaXRlQ29uZmlnLFxuICBQYWNrYWdlR2FtZXNTZXR0aW5ncyxcbiAgVml0ZU9wdGlvbnMsXG59IGZyb20gJy4vdXRpbHMvaW50ZXJmYWNlcyc7XG5cbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVmaW5lS2xvZWtWaXRlQ29uZmlnKFxuICBlbnZpcm9ubWVudDogQ29uZmlnRW52LFxuKTogUHJvbWlzZTxVc2VyQ29uZmlnPiB7XG4gIGNvbnN0IHBrZyA9IHJlYWRKU09OKHBhdGgucmVzb2x2ZShjd2QsICdwYWNrYWdlLmpzb24nKSkgYXMgUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB1bmtub3duXG4gID47XG4gIGNvbnN0IGtsb2VrQ29uZmlnID0gcGtnLnZpdGUgYXMgS2xvZWtWaXRlQ29uZmlnO1xuICBjb25zdCBicm93c2Vyc2xpc3QgPSBwa2cuYnJvd3NlcnNsaXN0IGFzIHN0cmluZyB8IHN0cmluZ1tdO1xuICBjb25zdCBvcHRpb25zOiBWaXRlT3B0aW9ucyA9IHtcbiAgICByb290OiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJyksXG4gICAgZW52aXJvbm1lbnQsXG4gICAgc2V0dGluZ3M6IHBhcnNlUGFja2FnZUdhbWVzU2V0dGluZ3MocGtnLnNldHRpbmdzIGFzIFBhY2thZ2VHYW1lc1NldHRpbmdzKSxcbiAgICBjb25maWc6IHtcbiAgICAgIC4uLmtsb2VrQ29uZmlnLFxuICAgICAgYnVpbGQ6IHsuLi5rbG9la0NvbmZpZy5idWlsZCwgYnJvd3NlcnNsaXN0fSxcbiAgICAgIHNlcnZlOiB7XG4gICAgICAgIHBhcnRpYWxzOiBbXG4gICAgICAgICAgcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3BhcnRpYWxzJyksXG4gICAgICAgICAgcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdwYXJ0aWFscycpLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGNvbmZpZzogVXNlckNvbmZpZyA9IHtcbiAgICBsb2dMZXZlbDogJ2luZm8nLFxuICAgIGJhc2U6IGtsb2VrQ29uZmlnLmJ1aWxkLmJhc2VQYXRoLFxuICAgIHJvb3Q6IG9wdGlvbnMucm9vdCxcbiAgICBlbnZEaXI6IHBhdGgucmVzb2x2ZShjd2QsICdlbnYnKSxcbiAgICBlbnZQcmVmaXg6IFsnS0xPRUtfJywgJ1ZJVEVfJ10sXG4gICAgcHVibGljRGlyOiAnc3RhdGljJyxcbiAgICBkZWZpbmU6IHt9LFxuXG4gICAgZXNidWlsZDoge1xuICAgICAgbGVnYWxDb21tZW50czogJ25vbmUnLFxuICAgIH0sXG5cbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczoge1xuICAgICAgICBsb2Rhc2g6ICdsb2Rhc2gtZXMnLFxuICAgICAgICAnQG1ldGEnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdtZXRhJyksXG4gICAgICAgICdAZm9udHMnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdmb250cycpLFxuICAgICAgfSxcbiAgICAgIGRlZHVwZTogWyAgICAgICAgICAgIFxuICAgICAgICAnQGNhcGFjaXRvci9hcHAnLFxuICAgICAgICAnQGNhcGFjaXRvci9jb3JlJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvZGV2aWNlJyxcbiAgICAgICAgJ0BjYXBhY2l0b3IvbmV0d29yaycsXG4gICAgICAgICdAY2FwYWNpdG9yL3ByZWZlcmVuY2VzJyxcbiAgICAgICAgJ0BjYXBhY2l0b3Ivc3BsYXNoLXNjcmVlbicsXG4gICAgICAgICdAY2FwYWNpdG9yL3N0YXR1cy1iYXInLFxuICAgICAgICAnYm93c2VyJyxcbiAgICAgICAgJ2RhdGUtZm5zLXR6JyxcbiAgICAgICAgJ2RhdGUtZm5zJyxcbiAgICAgICAgJ2Vycm9yLXN0YWNrLXBhcnNlci1lcycsXG4gICAgICAgICdmaXJlYmFzZScsXG4gICAgICAgICdmb250ZmFjZW9ic2VydmVyJyxcbiAgICAgICAgJ2dzYXAnLFxuICAgICAgICAnaG93bGVyJyxcbiAgICAgICAgJ2xvZGFzaC1kZWNvcmF0b3JzLWVzbScsXG4gICAgICAgICdsb2Rhc2gtZXMnLFxuICAgICAgICAnb3Zlcm1pbmQnLFxuICAgICAgICAncGl4aS1zcGluZScsXG4gICAgICAgICdwaXhpLmpzJyxcbiAgICAgICAgJ3B1YnN1Yi1qcycsXG4gICAgICAgICdyYW5kb20tanMnLFxuICAgICAgICAncmVzcycsXG4gICAgICAgICdzbHVnaWZ5JyxcbiAgICAgICAgJ3N1cGVyYWdlbnQnLFxuICAgICAgICAndHMtZXZlbnRzJyxcbiAgICAgICAgJ3RzLW1peGVyJyxcbiAgICAgICAgJ3RzbGliJyxcbiAgICAgIF0sXG4gICAgfSxcblxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgY2hhcnNldDogZmFsc2UsXG4gICAgICAgICAgLy8gQWRkaXRpb25hbERhdGE6IGBAY2hhcnNldCBcIlVURi04XCJgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgcGx1Z2luczogWy4uLmJhc2VQbHVnaW5zKG9wdGlvbnMpXSxcbiAgfTtcblxuICBzd2l0Y2ggKGVudmlyb25tZW50LmNvbW1hbmQpIHtcbiAgICBjYXNlICdzZXJ2ZSc6XG4gICAgICBjb25maWcuc2VydmVyID0ge1xuICAgICAgICBob3N0OiB0cnVlLFxuICAgICAgICBjb3JzOiBvcHRpb25zLmNvbmZpZy5kZXYuY29ycyA/PyB0cnVlLFxuICAgICAgICBodHRwczogb3B0aW9ucy5jb25maWcuZGV2Lmh0dHBzID8/IHRydWUsXG4gICAgICAgIG9wZW46IGdldFBhZ2VUb1NlcnZlKG9wdGlvbnMuY29uZmlnLCBvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcbiAgICAgIH07XG4gICAgICBjb25maWcucGx1Z2lucyA9IFtcbiAgICAgICAgLi4uKGNvbmZpZy5wbHVnaW5zID8gY29uZmlnLnBsdWdpbnMgOiBbXSksXG4gICAgICAgIC4uLnNlcnZlUGx1Z2lucygpLFxuICAgICAgXTtcblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdidWlsZCc6XG4gICAgICBjb25maWcuYnVpbGQgPSBkZWZpbmVCdWlsZENvbmZpZyhvcHRpb25zKTtcbiAgICAgIGNvbmZpZy5wbHVnaW5zID0gW1xuICAgICAgICAuLi4oY29uZmlnLnBsdWdpbnMgPyBjb25maWcucGx1Z2lucyA6IFtdKSxcbiAgICAgICAgLi4uYnVpbGRQbHVnaW5zKG9wdGlvbnMpLFxuICAgICAgXTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG4iLCJpbXBvcnQge3R5cGUgVHlwZWRGbGFnc30gZnJvbSAnbWVvdyc7XG5pbXBvcnQge2J1aWxkLCBjcmVhdGVTZXJ2ZXJ9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHtkZWZpbmVLbG9la1ZpdGVDb25maWd9IGZyb20gJy4vY29uZmlnJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrRGV2ZWxvcG1lbnQoXG4gIGZsYWdzOiBUeXBlZEZsYWdzPHtcbiAgICBtb2RlOiB7XG4gICAgICB0eXBlOiAnc3RyaW5nJztcbiAgICAgIHNob3J0RmxhZzogc3RyaW5nO1xuICAgICAgZGVmYXVsdD86IHN0cmluZztcbiAgICB9O1xuICB9Pixcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb25maWcgPSBhd2FpdCBkZWZpbmVLbG9la1ZpdGVDb25maWcoe1xuICAgIGNvbW1hbmQ6ICdzZXJ2ZScsXG4gICAgbW9kZTogJ2RldmVsb3BtZW50JyxcbiAgfSk7XG5cbiAgLy8gRGlmZmVyZW50IG1vZGVcbiAgaWYgKHR5cGVvZiBmbGFncy5tb2RlID09PSAnc3RyaW5nJykge1xuICAgIGNvbmZpZy5tb2RlID0gZmxhZ3MubW9kZTtcbiAgfVxuXG4gIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlcih7XG4gICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgLi4uY29uZmlnLFxuICB9KTtcblxuICBhd2FpdCBzZXJ2ZXIubGlzdGVuKCk7XG4gIHNlcnZlci5wcmludFVybHMoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrQnVpbGQoXG4gIGZsYWdzOiBUeXBlZEZsYWdzPHtcbiAgICBlbXB0eU91dERpcjoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nO1xuICAgICAgc2hvcnRGbGFnOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0OiB0cnVlO1xuICAgIH07XG4gICAgYmFzZToge1xuICAgICAgdHlwZTogJ3N0cmluZyc7XG4gICAgICBzaG9ydEZsYWc6IHN0cmluZztcbiAgICAgIGRlZmF1bHQ6IHN0cmluZztcbiAgICB9O1xuICAgIG1vZGU6IHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnO1xuICAgICAgc2hvcnRGbGFnOiBzdHJpbmc7XG4gICAgICBkZWZhdWx0Pzogc3RyaW5nO1xuICAgIH07XG4gIH0+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgY29tbWFuZDogJ2J1aWxkJyxcbiAgICBtb2RlOiAncHJvZHVjdGlvbicsXG4gIH0pO1xuXG4gIC8vIEVtcHR5IG91dCB0aGUgT3V0cHV0IGRpciBiZWZvcmUgYnVpbGRpbmc/XG4gIGlmIChmbGFncy5lbXB0eU91dERpciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uZmlnLmJ1aWxkID0ge1xuICAgICAgLi4uY29uZmlnLmJ1aWxkLFxuICAgICAgZW1wdHlPdXREaXI6IGZsYWdzLmVtcHR5T3V0RGlyLFxuICAgIH07XG4gIH1cblxuICAvLyBEaWZmZXJlbnQgYmFzZSBwYXRoXG4gIGlmICh0eXBlb2YgZmxhZ3MuYmFzZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25maWcuYmFzZSA9IGZsYWdzLmJhc2U7XG4gIH1cblxuICAvLyBEaWZmZXJlbnQgbW9kZVxuICBpZiAodHlwZW9mIGZsYWdzLm1vZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uZmlnLm1vZGUgPSBmbGFncy5tb2RlO1xuICB9XG5cbiAgYXdhaXQgYnVpbGQoe1xuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIC4uLmNvbmZpZyxcbiAgfSk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsU0FBUyxpQkFBaUIsQ0FDeEIsT0FBcUIsRUFDckIsSUFBa0IsRUFDbEIsU0FBaUMsRUFBQTtJQUVqQyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFDOztBQUc3QyxJQUFBLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1FBQ2hDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUNuQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDcEIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xCLENBQUM7QUFDSCxLQUFBO0FBRUQsSUFBQSxPQUFPLFFBQW1DLENBQUM7QUFDN0MsQ0FBQztBQUVLLFNBQVUseUJBQXlCLENBQ3ZDLGVBQXFDLEVBQUE7O0lBR3JDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzNCLGVBQWUsQ0FBQyxPQUFPLENBQ0UsQ0FBQztBQUM1QixJQUFBLE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxlQUFlLENBQUM7QUFDbEMsSUFBQSxNQUFNLFdBQVcsR0FBc0I7QUFDckMsUUFBQSxXQUFXLEVBQUUsT0FBTztBQUNwQixRQUFBLEtBQUssRUFBRSxFQUFFO0tBQ1YsQ0FBQztJQUVGLEtBQUssTUFBTSxJQUFJLElBQUksZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUU7UUFDOUMsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQzs7QUFHN0QsUUFBQSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxTQUFTLENBQUM7QUFDbkUsUUFBQSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7O0FBRzVCLFFBQUEsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDdEMsS0FBQTtBQUVELElBQUEsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQW9CZSxTQUFBLGNBQWMsQ0FDNUIsTUFBdUIsRUFDdkIsUUFBdUIsRUFBQTs7SUFHdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN0QyxJQUFBLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUM7SUFFL0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQ3JCLEdBQUcsSUFBSSxDQUFBLEtBQUEsRUFBUSxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUUsQ0FBQSxDQUM5QyxDQUFDO0FBQ0osQ0FBQztBQUVLLFNBQVUsZ0JBQWdCLENBQUMsR0FBVyxFQUFBO0lBQzFDLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDUixRQUFBLE9BQU8sRUFBRSxDQUFDO0FBQ1gsS0FBQTtBQUVELElBQUEsSUFBSSxRQUFnQixDQUFDO0lBRXJCLElBQUk7UUFDRixRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDLENBQUMsUUFBUSxDQUFDO0FBQzVELEtBQUE7SUFBQyxNQUFNO0FBQ04sUUFBQSxPQUFPLEVBQUUsQ0FBQztBQUNYLEtBQUE7O0lBR0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksUUFBUSxLQUFLLEdBQUcsRUFBRTtBQUNuRCxRQUFBLE9BQU8sRUFBRSxDQUFDO0FBQ1gsS0FBQTs7SUFHRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFckUsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN2Qzs7QUMxR00sU0FBVSxpQkFBaUIsQ0FBQyxPQUFvQixFQUFBO0lBQ3BELE1BQU0sS0FBSyxHQUEyQixFQUFFLENBQUM7QUFFekMsSUFBQSxLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUN4RCxRQUFBLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQSxFQUFHLE1BQU0sQ0FBQSxLQUFBLENBQU8sQ0FBQyxDQUFDO0FBQzlELEtBQUE7O0FBR0QsSUFBQSxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFeEYsT0FBTztBQUNMLFFBQUEsb0JBQW9CLEVBQUUsSUFBSTtBQUMxQixRQUFBLHFCQUFxQixFQUFFLElBQUk7QUFDM0IsUUFBQSxNQUFNLEVBQUUsV0FBVztBQUNuQixRQUFBLFNBQVMsRUFBRSxXQUFXO0FBQ3RCLFFBQUEsYUFBYSxFQUFFO1lBQ2IsS0FBSztBQUNMLFlBQUEsTUFBTSxFQUFFO0FBQ04sZ0JBQUEsWUFBWSxDQUFDLEVBQUUsRUFBQTtBQUNiLG9CQUFBLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTt3QkFDL0IsTUFBTSxJQUFJLEdBQUcsRUFBRTtBQUNaLDZCQUFBLFFBQVEsRUFBRTtBQUNWLDZCQUFBLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekIsNkJBQUEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNiLDZCQUFBLFFBQVEsRUFBRSxDQUFDO0FBRWQsd0JBQUEsS0FBSyxNQUFNLEtBQUssSUFBSSxZQUFZLEVBQUU7QUFDaEMsNEJBQUEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ3hCLGdDQUFBLE9BQU8sS0FBSyxDQUFDO0FBQ2QsNkJBQUE7QUFDRix5QkFBQTtBQUVELHdCQUFBLE9BQU8sUUFBUSxDQUFDO0FBQ2pCLHFCQUFBO0FBRUQsb0JBQUEsT0FBTyxTQUFTLENBQUM7aUJBQ2xCO0FBQ0YsYUFBQTtBQUNGLFNBQUE7S0FDRixDQUFDO0FBQ0o7O0FDeENNLFNBQVUsUUFBUSxDQUFDLElBQVksRUFBQTtJQUNuQyxJQUFJO0FBQ0YsUUFBQSxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ3BDLEtBQUE7SUFBQyxNQUFNOztBQUVQLEtBQUE7QUFFRCxJQUFBLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVNLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7O0FDUi9DO0FBQ2dCLFNBQUEsZ0JBQWdCLENBQzlCLGdCQUFtQyxFQUNuQyxPQUFvQixFQUFBO0FBRXBCLElBQUEsT0FBTyxvQkFBb0IsQ0FBQztRQUMxQixnQkFBZ0I7QUFFaEIsUUFBQSxPQUFPLEVBQUU7QUFDUCxZQUFBLElBQUksRUFBRSxDQUFDLE1BQVcsRUFBRSxNQUFNLEdBQUcsQ0FBQyxLQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO1lBQzNDLE1BQU0sRUFBRSxDQUFDLEdBQUcsVUFBaUIsS0FBSyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEUsRUFBRSxFQUFFLENBQUMsQ0FBTSxFQUFFLENBQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMvQixHQUFHLEVBQUUsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2hDLFNBQVMsRUFBRSxDQUFDLEtBQWdCLEtBQUssS0FBSyxLQUFLLFNBQVM7QUFDcEQsWUFBQSxjQUFjLENBQUMsQ0FBUyxFQUFBOzs7QUFHdEIsZ0JBQUEsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25ELGdCQUFBLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLE9BQU8sR0FBRyxDQUFBLENBQUEsRUFBSSxZQUFZLENBQUUsQ0FBQSxHQUFHLFlBQVksQ0FBQzthQUN0RTtBQUNGLFNBQUE7QUFFRCxRQUFBLE9BQU8sQ0FBQyxRQUFnQixFQUFBO0FBQ3RCLFlBQUEsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFMUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNYLGdCQUFBLE9BQU8sRUFBRSxDQUFDO0FBQ1gsYUFBQTtZQUVELElBQUksTUFBTSxLQUFLLGFBQWEsRUFBRTs7Z0JBRTVCLE9BQU87b0JBQ0wsR0FBRyxFQUFFLE9BQU8sQ0FBQyxXQUFXO0FBQ3hCLG9CQUFBLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVc7QUFDbEMsb0JBQUEsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSztpQkFDOUIsQ0FBQztBQUNILGFBQUE7O1lBR0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7O1lBR2hELE9BQU87Z0JBQ0wsR0FBRyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUN4QixJQUFJLEVBQUUsUUFBUSxJQUFJLEVBQUU7YUFDckIsQ0FBQztTQUNIO0FBQ0YsS0FBQSxDQUFDLENBQUM7QUFDTDs7QUNsREEsTUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQUM7QUFDN0MsTUFBTSxvQkFBb0IsR0FBRyw2QkFBNkIsQ0FBQztBQUUzRCxlQUFlLG1CQUFtQixDQUFDLFFBQWdCLEVBQUE7O0FBRWpELElBQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTs7UUFFekIsTUFBTSxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNuRCxLQUFBO0FBQ0gsQ0FBQztBQUVLLFNBQVUsVUFBVSxDQUFDLEtBQW9CLEVBQUE7SUFDN0MsT0FBTztBQUNMLFFBQUEsSUFBSSxFQUFFLHdCQUF3QjtBQUM5QixRQUFBLE9BQU8sRUFBRSxLQUFLO0FBRWQsUUFBQSxNQUFNLE1BQU0sQ0FBQyxPQUFtQixFQUFFLFdBQXNCLEVBQUE7O0FBRXRELFlBQUEsSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRTtnQkFDbkMsTUFBTSxPQUFPLEdBQXlCLEVBQUUsQ0FBQztnQkFFekMsS0FBSyxNQUFNLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFOztBQUV2QyxvQkFBQSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQSxFQUFHLE1BQU0sQ0FBQSxLQUFBLENBQU8sQ0FBQyxDQUFDO29CQUMvRCxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDN0MsaUJBQUE7QUFFRCxnQkFBQSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUIsYUFBQTtTQUNGO0FBRUQsUUFBQSxlQUFlLENBQUMsTUFBcUIsRUFBQTtBQUNuQyxZQUFBLE9BQU8sTUFBSzs7QUFFVixnQkFBQSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksS0FBSTtBQUM1RCxvQkFBQSxNQUFNLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztBQUMvQixvQkFBQSxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFFckMsSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNYLHdCQUFBLElBQUksRUFBRSxDQUFDO0FBQ1IscUJBQUE7b0JBRUQsSUFBSSxNQUFNLEtBQUssYUFBYSxFQUFFOztBQUU1Qix3QkFBQSxRQUFRLENBQUMsR0FBRyxDQUNWLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUM3QixHQUFHLEVBQ0gsb0JBQW9CLEVBQ3BCLE9BQU8sQ0FBQyxXQUFXLENBQ3BCLENBQ0YsQ0FBQztBQUNILHFCQUFBO3lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7O0FBRTlDLHdCQUFBLFFBQVEsQ0FBQyxHQUFHLENBQ1YsTUFBTSxNQUFNLENBQUMsa0JBQWtCLENBQzdCLEdBQUcsRUFDSCxhQUFhLEVBQ2IsT0FBTyxDQUFDLFdBQVcsQ0FDcEIsQ0FDRixDQUFDO0FBQ0gscUJBQUE7QUFBTSx5QkFBQTs7d0JBRUwsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLHFCQUFBO0FBQ0gsaUJBQUMsQ0FBQyxDQUFDO0FBQ0wsYUFBQyxDQUFDO1NBQ0g7QUFFRCxRQUFBLE1BQU0sV0FBVyxHQUFBOztZQUVmLE1BQU0sT0FBTyxHQUF5QixFQUFFLENBQUM7WUFDekMsS0FBSyxNQUFNLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFOztBQUV2QyxnQkFBQSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQSxFQUFHLE1BQU0sQ0FBQSxLQUFBLENBQU8sQ0FBQyxDQUFDO0FBQy9ELGdCQUFBLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN4QixJQUFJO3dCQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLHFCQUFBO29CQUFDLE1BQU07O0FBRVAscUJBQUE7QUFDRixpQkFBQTtBQUNGLGFBQUE7QUFFRCxZQUFBLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM1QjtLQUNGLENBQUM7QUFDSjs7QUNuRk0sU0FBVSxXQUFXLENBQ3pCLE9BQW9CLEVBQUE7SUFFcEIsT0FBTztBQUNMLFFBQUEsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBRWxDLFFBQUEsR0FBRyxNQUFNLENBQUM7WUFDUixVQUFVLEVBQUMsY0FBYyxFQUFFO1lBRTNCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFBO2dCQUNsQixJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNULE9BQU87QUFDUixpQkFBQTs7Z0JBR0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDcEMsT0FBTztBQUNSLGlCQUFBO2dCQUVELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNmO1NBQ0YsQ0FBQztBQUVGLFFBQUEsbUJBQW1CLENBQUM7QUFDbEIsWUFBQSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7O0FBRXZCLFlBQUEsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDO1FBRUYsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQztLQUN6RCxDQUFDO0FBQ0o7O0FDM0JnQixTQUFBLGNBQWMsQ0FDNUIsV0FBc0IsRUFDdEIsT0FBMkIsRUFBQTtBQUczQixJQUFBLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUU7UUFDckMsT0FBTztBQUNSLEtBQUE7QUFFRCxJQUFBLE9BQU8sWUFBWSxDQUFDO0FBQ2xCLFFBQUEsWUFBWSxFQUFFLElBQUk7QUFDbEIsUUFBQSxPQUFPLEVBQUUsSUFBSTtBQUNiLFFBQUEsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUM7QUFDNUMsUUFBQSxPQUFPLEVBQUU7QUFDUCxZQUFBLEdBQUcsRUFBRTtBQUNILGdCQUFBLGVBQWUsQ0FBQztBQUNkLG9CQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUU7aUJBQzdCLENBQUM7QUFDSCxhQUFBO0FBQ0QsWUFBQSxHQUFHLEVBQUU7QUFDSCxnQkFBQSxnQkFBZ0IsQ0FBQztBQUNmLG9CQUFBLEtBQUssRUFBRSxJQUFJO0FBQ1gsb0JBQUEsS0FBSyxFQUFFLENBQUM7QUFDUixvQkFBQSxTQUFTLEVBQUUsSUFBSTtvQkFDZixPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7aUJBQ3BDLENBQUM7QUFDRixnQkFBQSxlQUFlLEVBQUU7QUFDbEIsYUFBQTtBQUNGLFNBQUE7QUFDRixLQUFBLENBQVcsQ0FBQztBQUNmOztBQ3hDQSxTQUFTLGtCQUFrQixDQUN6QixNQUFjLEVBQ2QsUUFBc0IsRUFDdEIsTUFBc0IsRUFBQTtBQUV0QixJQUFBLE1BQU0sUUFBUSxHQUFHO0FBQ2YsUUFBQSxVQUFVLEVBQUUsQ0FBRyxFQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUE7QUFDdkMsUUFBQSxJQUFJLEVBQUUsQ0FBRyxFQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFFLENBQUE7QUFDOUIsUUFBQSxXQUFXLEVBQUUsQ0FBRyxFQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFFLENBQUE7QUFDM0MsUUFBQSxLQUFLLEVBQUUsQ0FBRyxFQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUEsRUFBRyxNQUFNLENBQU8sS0FBQSxDQUFBO0FBQ3JDLFFBQUEsU0FBUyxFQUFFLENBQUcsRUFBQSxNQUFNLENBQUMsSUFBSSxDQUFBLEVBQUcsTUFBTSxDQUFPLEtBQUEsQ0FBQTtBQUN6QyxRQUFBLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBRSxDQUFBO0FBQzdELFFBQUEsS0FBSyxFQUFFO0FBQ0wsWUFBQTtnQkFDRSxHQUFHLEVBQUUsQ0FBRyxFQUFBLE1BQU0sQ0FBQyxJQUFJLENBQVEsS0FBQSxFQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFzQyxvQ0FBQSxDQUFBO0FBQ2pGLGdCQUFBLElBQUksRUFBRSxXQUFXO0FBQ2pCLGdCQUFBLEtBQUssRUFBRSxTQUFTO0FBQ2pCLGFBQUE7QUFDRCxZQUFBO2dCQUNFLEdBQUcsRUFBRSxDQUFHLEVBQUEsTUFBTSxDQUFDLElBQUksQ0FBUSxLQUFBLEVBQUEsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQWlCLGVBQUEsQ0FBQTtBQUM1RCxnQkFBQSxJQUFJLEVBQUUsV0FBVztBQUNqQixnQkFBQSxLQUFLLEVBQUUsV0FBVztBQUNuQixhQUFBO0FBQ0YsU0FBQTtBQUNELFFBQUEsZ0JBQWdCLEVBQUUsQ0FBRyxFQUFBLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFFLENBQUE7QUFDdkQsUUFBQSxXQUFXLEVBQUUsQ0FBRyxFQUFBLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFFLENBQUE7S0FDbkQsQ0FBQztBQUVGLElBQUEsT0FBTyxDQUFHLEVBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBLEVBQUEsQ0FBSSxDQUFDO0FBQ2xELENBQUM7QUFFSyxTQUFVLGNBQWMsQ0FBQyxLQUFvQixFQUFBO0FBQ2pELElBQUEsSUFBSSxNQUFzQixDQUFDO0lBRTNCLE9BQU87QUFDTCxRQUFBLElBQUksRUFBRSw0QkFBNEI7QUFDbEMsUUFBQSxPQUFPLEVBQUUsTUFBTTtBQUNmLFFBQUEsS0FBSyxFQUFFLE9BQU87UUFDZCxNQUFNLGNBQWMsQ0FBQyxjQUE4QixFQUFBO1lBQ2pELE1BQU0sR0FBRyxjQUFjLENBQUM7U0FDekI7UUFDRCxjQUFjLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBQTs7QUFFdEIsWUFBQSxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUN0RCxnQkFBQSxNQUFNLENBQUMsQ0FBQSxFQUFHLE1BQU0sQ0FBQSxZQUFBLENBQWMsQ0FBQyxHQUFHO0FBQ2hDLG9CQUFBLGtCQUFrQixFQUFFLEtBQUs7QUFDekIsb0JBQUEsSUFBSSxFQUFFLE9BQU87QUFDYixvQkFBQSxJQUFJLEVBQUUsU0FBUztvQkFDZixNQUFNLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUM7b0JBQ3BELFFBQVEsRUFBRSxDQUFHLEVBQUEsTUFBTSxDQUFjLFlBQUEsQ0FBQTtpQkFDbEMsQ0FBQztBQUVGLGdCQUFBLE1BQU0sQ0FBQyxDQUFBLEVBQUcsTUFBTSxDQUFBLGlCQUFBLENBQW1CLENBQUMsR0FBRztBQUNyQyxvQkFBQSxrQkFBa0IsRUFBRSxLQUFLO0FBQ3pCLG9CQUFBLElBQUksRUFBRSxPQUFPO0FBQ2Isb0JBQUEsSUFBSSxFQUFFLFNBQVM7QUFDZixvQkFBQSxNQUFNLEVBQUUseURBQXlEO29CQUNqRSxRQUFRLEVBQUUsQ0FBRyxFQUFBLE1BQU0sQ0FBbUIsaUJBQUEsQ0FBQTtpQkFDdkMsQ0FBQztBQUNILGFBQUE7U0FDRjtLQUNGLENBQUM7QUFDSjs7QUN6REE7QUFDTSxTQUFVLFlBQVksQ0FDMUIsT0FBb0IsRUFBQTs7QUFHcEIsSUFBQSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRTtBQUMzQyxRQUFBLE9BQU8sRUFBRSxDQUFDO0FBQ1gsS0FBQTtJQUVELE1BQU0sT0FBTyxHQUE2QyxFQUFFLENBQUM7QUFFN0QsSUFBQSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTs7QUFFL0IsUUFBQSxPQUFPLENBQUMsSUFBSSxDQUNWLEdBQUcsWUFBWSxDQUFDO1lBQ2QsT0FBTyxFQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQXlCLElBQUksVUFBVTtBQUN2RSxTQUFBLENBQUMsQ0FDSCxDQUFDO0FBQ0gsS0FBQTtBQUVELElBQUEsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSTtRQUMvRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLENBQUcsRUFBQSxNQUFNLENBQU8sS0FBQSxDQUFBO1lBQzFCLFFBQVEsRUFBRSxDQUFHLEVBQUEsTUFBTSxDQUFPLEtBQUEsQ0FBQTtTQUMzQixDQUFDO0FBQ0osS0FBQyxDQUFDLENBQUM7QUFFSCxJQUFBLE9BQU8sQ0FBQyxJQUFJOztBQUVWLElBQUEsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDOztJQUd0RSxHQUFJLGdCQUFnQixDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBYzs7QUFHeEQsSUFBQSxZQUFZLENBQ1YsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7OztBQWdCRCxJQUFBLENBQUEsQ0FDQSxDQUNGLENBQUM7O0FBR0YsSUFBQSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtBQUNqQyxRQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN0RCxLQUFBO0FBRUQsSUFBQSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtBQUN0QyxRQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQ3RCLFlBQUEsUUFBUSxFQUFFLFNBQVM7QUFDbkIsWUFBQSxJQUFJLEVBQUUsSUFBSTtBQUNWLFlBQUEsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUscUJBQXFCO0FBQ2hDLFNBQUEsQ0FBaUIsQ0FBQyxDQUFDO0FBQ3JCLEtBQUE7QUFFRCxJQUFBLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQ3hEOztTQzFFZ0IsWUFBWSxHQUFBO0lBQzFCLE9BQU87QUFDTCxRQUFBLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDLEVBQUU7QUFDbkQsWUFBQSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQztBQUM1QyxZQUFBLEdBQUcsRUFBRSxJQUFJO0FBQ1QsWUFBQSxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQVc7QUFFWixRQUFBLE1BQU0sRUFBRTtBQUVSLFFBQUEsT0FBTyxDQUFDO0FBQ04sWUFBQSxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDO0tBQ0gsQ0FBQztBQUNKOztBQ0RBLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUV4RCxlQUFlLHFCQUFxQixDQUN6QyxXQUFzQixFQUFBO0FBRXRCLElBQUEsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUdyRCxDQUFDO0FBQ0YsSUFBQSxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBdUIsQ0FBQztBQUNoRCxJQUFBLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFpQyxDQUFDO0FBQzNELElBQUEsTUFBTSxPQUFPLEdBQWdCO1FBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7UUFDakMsV0FBVztBQUNYLFFBQUEsUUFBUSxFQUFFLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxRQUFnQyxDQUFDO0FBQ3pFLFFBQUEsTUFBTSxFQUFFO0FBQ04sWUFBQSxHQUFHLFdBQVc7WUFDZCxLQUFLLEVBQUUsRUFBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFDO0FBQzNDLFlBQUEsS0FBSyxFQUFFO0FBQ0wsZ0JBQUEsUUFBUSxFQUFFO0FBQ1Isb0JBQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDO29CQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDO0FBQ3hDLGlCQUFBO0FBQ0YsYUFBQTtBQUNGLFNBQUE7S0FDRixDQUFDO0FBRUYsSUFBQSxNQUFNLE1BQU0sR0FBZTtBQUN6QixRQUFBLFFBQVEsRUFBRSxNQUFNO0FBQ2hCLFFBQUEsSUFBSSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUTtRQUNoQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQztBQUNoQyxRQUFBLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7QUFDOUIsUUFBQSxTQUFTLEVBQUUsUUFBUTtBQUNuQixRQUFBLE1BQU0sRUFBRSxFQUFFO0FBRVYsUUFBQSxPQUFPLEVBQUU7QUFDUCxZQUFBLGFBQWEsRUFBRSxNQUFNO0FBQ3RCLFNBQUE7QUFFRCxRQUFBLE9BQU8sRUFBRTtBQUNQLFlBQUEsS0FBSyxFQUFFO0FBQ0wsZ0JBQUEsTUFBTSxFQUFFLFdBQVc7QUFDbkIsZ0JBQUEsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO0FBQ3RELGdCQUFBLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQztBQUN6RCxhQUFBO0FBQ0QsWUFBQSxNQUFNLEVBQUU7Z0JBQ04sZ0JBQWdCO2dCQUNoQixpQkFBaUI7Z0JBQ2pCLG1CQUFtQjtnQkFDbkIsb0JBQW9CO2dCQUNwQix3QkFBd0I7Z0JBQ3hCLDBCQUEwQjtnQkFDMUIsdUJBQXVCO2dCQUN2QixRQUFRO2dCQUNSLGFBQWE7Z0JBQ2IsVUFBVTtnQkFDVix1QkFBdUI7Z0JBQ3ZCLFVBQVU7Z0JBQ1Ysa0JBQWtCO2dCQUNsQixNQUFNO2dCQUNOLFFBQVE7Z0JBQ1IsdUJBQXVCO2dCQUN2QixXQUFXO2dCQUNYLFVBQVU7Z0JBQ1YsWUFBWTtnQkFDWixTQUFTO2dCQUNULFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsWUFBWTtnQkFDWixXQUFXO2dCQUNYLFVBQVU7Z0JBQ1YsT0FBTztBQUNSLGFBQUE7QUFDRixTQUFBO0FBRUQsUUFBQSxHQUFHLEVBQUU7QUFDSCxZQUFBLG1CQUFtQixFQUFFO0FBQ25CLGdCQUFBLElBQUksRUFBRTtBQUNKLG9CQUFBLE9BQU8sRUFBRSxLQUFLOztBQUVmLGlCQUFBO0FBQ0YsYUFBQTtBQUNGLFNBQUE7QUFFRCxRQUFBLE9BQU8sRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ25DLENBQUM7SUFFRixRQUFRLFdBQVcsQ0FBQyxPQUFPO0FBQ3pCLFFBQUEsS0FBSyxPQUFPO1lBQ1YsTUFBTSxDQUFDLE1BQU0sR0FBRztBQUNkLGdCQUFBLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSTtnQkFDckMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJO0FBQ3ZDLGdCQUFBLElBQUksRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUM3RCxDQUFDO1lBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRztBQUNmLGdCQUFBLElBQUksTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUN6QyxnQkFBQSxHQUFHLFlBQVksRUFBRTthQUNsQixDQUFDO1lBRUYsTUFBTTtBQUVSLFFBQUEsS0FBSyxPQUFPO0FBQ1YsWUFBQSxNQUFNLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLE1BQU0sQ0FBQyxPQUFPLEdBQUc7QUFDZixnQkFBQSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ3pDLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQzthQUN6QixDQUFDO1lBQ0YsTUFBTTtBQUdULEtBQUE7QUFFRCxJQUFBLE9BQU8sTUFBTSxDQUFDO0FBQ2hCOztBQ3BJTyxlQUFlLGdCQUFnQixDQUNwQyxLQU1FLEVBQUE7QUFFRixJQUFBLE1BQU0sTUFBTSxHQUFHLE1BQU0scUJBQXFCLENBQUM7QUFDekMsUUFBQSxPQUFPLEVBQUUsT0FBTztBQUNoQixRQUFBLElBQUksRUFBRSxhQUFhO0FBQ3BCLEtBQUEsQ0FBQyxDQUFDOztBQUdILElBQUEsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO0FBQ2xDLFFBQUEsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQzFCLEtBQUE7QUFFRCxJQUFBLE1BQU0sTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLFFBQUEsVUFBVSxFQUFFLEtBQUs7QUFDakIsUUFBQSxHQUFHLE1BQU07QUFDVixLQUFBLENBQUMsQ0FBQztBQUVILElBQUEsTUFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdEIsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFTSxlQUFlLFVBQVUsQ0FDOUIsS0FnQkUsRUFBQTtBQUVGLElBQUEsTUFBTSxNQUFNLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQztBQUN6QyxRQUFBLE9BQU8sRUFBRSxPQUFPO0FBQ2hCLFFBQUEsSUFBSSxFQUFFLFlBQVk7QUFDbkIsS0FBQSxDQUFDLENBQUM7O0FBR0gsSUFBQSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEdBQUc7WUFDYixHQUFHLE1BQU0sQ0FBQyxLQUFLO1lBQ2YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUM7QUFDSCxLQUFBOztBQUdELElBQUEsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO0FBQ2xDLFFBQUEsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQzFCLEtBQUE7O0FBR0QsSUFBQSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7QUFDbEMsUUFBQSxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDMUIsS0FBQTtBQUVELElBQUEsTUFBTSxLQUFLLENBQUM7QUFDVixRQUFBLFVBQVUsRUFBRSxLQUFLO0FBQ2pCLFFBQUEsR0FBRyxNQUFNO0FBQ1YsS0FBQSxDQUFDLENBQUM7QUFDTDs7OzsifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@studiokloek/vite-config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Martijn Swart <opensource@studiokloek.nl> (https://studiokloek.nl)",
|
|
6
6
|
"description": "Base Vite config for usage in our projects.",
|
|
@@ -66,19 +66,19 @@
|
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@sveltejs/vite-plugin-svelte": "^2.4.6",
|
|
69
|
-
"@typescript-eslint/eslint-plugin": "^6.7.
|
|
70
|
-
"@typescript-eslint/parser": "^6.7.
|
|
69
|
+
"@typescript-eslint/eslint-plugin": "^6.7.5",
|
|
70
|
+
"@typescript-eslint/parser": "^6.7.5",
|
|
71
71
|
"@vheemstra/vite-plugin-imagemin": "^1.0.11",
|
|
72
72
|
"@vitejs/plugin-legacy": "^4.1.1",
|
|
73
|
-
"eslint": "^8.
|
|
73
|
+
"eslint": "^8.51.0",
|
|
74
74
|
"eslint-config-prettier": "^9.0.0",
|
|
75
75
|
"eslint-formatter-pretty": "^5.0.0",
|
|
76
76
|
"eslint-import-resolver-typescript": "^3.6.1",
|
|
77
77
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
78
78
|
"eslint-plugin-import": "^2.28.1",
|
|
79
|
-
"eslint-plugin-prettier": "^5.0.
|
|
79
|
+
"eslint-plugin-prettier": "^5.0.1",
|
|
80
80
|
"eslint-plugin-promise": "^6.1.1",
|
|
81
|
-
"eslint-plugin-svelte": "^2.
|
|
81
|
+
"eslint-plugin-svelte": "^2.34.0",
|
|
82
82
|
"eslint-plugin-unicorn": "^48.0.1",
|
|
83
83
|
"imagemin-mozjpeg": "^10.0.0",
|
|
84
84
|
"imagemin-optipng": "^8.0.0",
|
|
@@ -91,11 +91,11 @@
|
|
|
91
91
|
"prettier-package-json": "^2.8.0",
|
|
92
92
|
"prettier-plugin-svelte": "^3.0.3",
|
|
93
93
|
"rollup-plugin-visualizer": "^5.9.2",
|
|
94
|
-
"sass": "^1.
|
|
94
|
+
"sass": "^1.69.3",
|
|
95
95
|
"stylelint": "^15.10.3",
|
|
96
96
|
"svelte": "^3.59.2",
|
|
97
97
|
"terser": "^5.21.0",
|
|
98
|
-
"vite": "v4.4.
|
|
98
|
+
"vite": "v4.4.11",
|
|
99
99
|
"vite-plugin-banner": "^0.7.1",
|
|
100
100
|
"vite-plugin-checker": "^0.6.2",
|
|
101
101
|
"vite-plugin-full-reload": "^1.0.5",
|
|
@@ -107,16 +107,16 @@
|
|
|
107
107
|
},
|
|
108
108
|
"devDependencies": {
|
|
109
109
|
"@microsoft/api-extractor": "7.38.0",
|
|
110
|
-
"@rollup/plugin-node-resolve": "^15.2.
|
|
111
|
-
"@rollup/plugin-typescript": "^11.1.
|
|
112
|
-
"@sveltejs/kit": "^1.25.
|
|
110
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
111
|
+
"@rollup/plugin-typescript": "^11.1.5",
|
|
112
|
+
"@sveltejs/kit": "^1.25.2",
|
|
113
113
|
"@types/ejs": "^3.1.3",
|
|
114
114
|
"@types/estree": "^1.0.2",
|
|
115
115
|
"@types/html-minifier-terser": "^7.0.0",
|
|
116
|
-
"@types/imagemin": "^8.0.
|
|
116
|
+
"@types/imagemin": "^8.0.2",
|
|
117
117
|
"@types/imagemin-mozjpeg": "^8.0.2",
|
|
118
118
|
"@types/imagemin-optipng": "^5.2.2",
|
|
119
|
-
"@types/node": "^20.8.
|
|
119
|
+
"@types/node": "^20.8.5",
|
|
120
120
|
"rimraf": "^5.0.5",
|
|
121
121
|
"rollup": "^3.29.4",
|
|
122
122
|
"typescript": "4.9.5",
|
|
@@ -124,8 +124,8 @@
|
|
|
124
124
|
},
|
|
125
125
|
"resolutions": {
|
|
126
126
|
"@types/estree": "^1.0.2",
|
|
127
|
-
"@types/node": "^20.8.
|
|
128
|
-
"vite": "v4.4.
|
|
127
|
+
"@types/node": "^20.8.5",
|
|
128
|
+
"vite": "v4.4.11"
|
|
129
129
|
},
|
|
130
130
|
"volta": {
|
|
131
131
|
"node": "16.20.0",
|