@dotglitch/ngx-common 1.0.27 → 1.0.28

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.
@@ -65,7 +65,7 @@ export type NgxFileManagerConfiguration = Partial<{
65
65
  * Defaults to '/'.
66
66
  *
67
67
  * User cannot view outside of this path.
68
- * (Not to be used as a security measure)
68
+ * (Not to be used as a security measure!)
69
69
  */
70
70
  chrootPath: string;
71
71
  /**
@@ -291,7 +291,7 @@ export class FileGridComponent {
291
291
  const url = this.config.apiSettings.deleteEntryUrlTemplate
292
292
  ? this.config.apiSettings.deleteEntryUrlTemplate(path)
293
293
  : this.config.apiSettings.deleteEntryUrl;
294
- this.fetch.delete(url)
294
+ this.fetch.post(url, { path: evt.path + evt.name })
295
295
  .then(() => this.loadFolder());
296
296
  },
297
297
  },
@@ -669,4 +669,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
669
669
  }], sortOrder: [{
670
670
  type: Input
671
671
  }] } });
672
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlLWdyaWQvZmlsZS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlLWdyaWQvZmlsZS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFnQyxXQUFXLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBeUMsYUFBYSxFQUFZLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFD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SSxXQUFXO3NCQUFwQixNQUFNO2dCQWNFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9wdGlvbmFsLCBJbmplY3QsIFRlbXBsYXRlUmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgU2VjdXJpdHlDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSwgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IERhdGVQaXBlLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ2VsbENvbXBvbmVudCwgRW1wdHlDYWxsYmFjayB9IGZyb20gJ3RhYnVsYXRvci10YWJsZXMnO1xuaW1wb3J0IHsgTmdTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICduZ3gtc2Nyb2xsYmFyJztcbmltcG9ydCB7IERpcmVjdG9yeURlc2NyaXB0b3IsIEZpbGVEZXNjcmlwdG9yLCBGaWxlbWFuYWdlckNvbXBvbmVudCwgRmlsZVZpZXdUYWIsIEZTRGVzY3JpcHRvciwgTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vZmlsZW1hbmFnZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVTb3J0aW5nIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSWNvblJlc29sdmVyIH0gZnJvbSAnLi4vaWNvbi1yZXNvbHZlcic7XG5pbXBvcnQgeyBUYWJ1bGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi90YWJ1bGF0b3IvdGFidWxhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyB1cGxvYWRGaWxlIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBGZXRjaCwgS2V5Ym9hcmRTZXJ2aWNlLCBNZW51RGlyZWN0aXZlLCBNZW51SXRlbSwgb3Blbk1lbnUgfSBmcm9tICcuLi8uLi8uLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5jb25zdCBpdGVtV2lkdGggPSAoODAgKyAyMCk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWZpbGUtZ3JpZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBEYXRlUGlwZSxcbiAgICAgICAgTWF0VGFic01vZHVsZSxcbiAgICAgICAgTmdTY3JvbGxiYXJNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgIFRhYnVsYXRvckNvbXBvbmVudCxcbiAgICAgICAgTWVudURpcmVjdGl2ZSxcbiAgICAgICAgU2Nyb2xsaW5nTW9kdWxlXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKFwiZmlsZVZpZXdwb3J0XCIpIGZpbGVzUmVmOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoVGFidWxhdG9yQ29tcG9uZW50KSB0YWJ1bGF0b3I6IFRhYnVsYXRvckNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ3JlbmFtZVRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSByZW5hbWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuXG4gICAgcHJpdmF0ZSBfcGF0aDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNldCBwYXRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0aGlzLl9wYXRoICYmIHRoaXMuY29uZmlnLm5hdmlnYXRlT25seVRvRGVzY2VuZGFudHMpIHtcbiAgICAgICAgICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aCgnLycpKVxuICAgICAgICAgICAgICAgIHZhbHVlID0gJy8nICsgdmFsdWU7XG4gICAgICAgICAgICBpZiAoIXZhbHVlLnN0YXJ0c1dpdGgodGhpcy5jb25maWcucGF0aCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByZXYgPSB0aGlzLl9wYXRoO1xuXG4gICAgICAgIHRoaXMuX3BhdGggPSB2YWx1ZTtcblxuICAgICAgICBpZiAocHJldiAhPSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5wYXRoQ2hhbmdlLm5leHQodGhpcy5wYXRoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncylcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRGb2xkZXIoKVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBwYXRoKCkge3JldHVybiB0aGlzLl9wYXRofVxuICAgIEBPdXRwdXQoKSBwYXRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBASW5wdXQoKSBjb25maWc6IE5neEZpbGVNYW5hZ2VyQ29uZmlndXJhdGlvbiA9IHt9O1xuICAgIEBJbnB1dCgpIHNob3dIaWRkZW5GaWxlcyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHZpZXdNb2RlOiBcImxpc3RcIiB8IFwiZ3JpZFwiID0gXCJncmlkXCI7XG4gICAgQElucHV0KCkgZ3JpZFNpemU6IFwic21hbGxcIiB8IFwibm9ybWFsXCIgfCBcImxhcmdlXCIgPSBcIm5vcm1hbFwiO1xuICAgIEBJbnB1dCgpIHRhYjogRmlsZVZpZXdUYWI7XG5cbiAgICBAT3V0cHV0KCkgZmlsZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIGZpbGVEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIGZvbGRlclNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGlyZWN0b3J5RGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZm9sZGVyRGJsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPERpcmVjdG9yeURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIG5ld1RhYiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBwYXRoOiBzdHJpbmc7IH0+KCk7XG4gICAgQE91dHB1dCgpIGxvYWRGaWxlcyA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBkaXJlY3RvcnlDb250ZW50czogRlNEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBASW5wdXQoKSBzZWxlY3Rpb246IEZTRGVzY3JpcHRvcltdID0gW107XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBASW5wdXQoKSB2YWx1ZTogRlNEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuXG4gICAgc2VsZWN0aW9uVGV4dDogc3RyaW5nO1xuXG4gICAgc29ydGVkRm9sZGVyczogYW55W11bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3J0ZXJzID0ge1xuICAgICAgICBcImEtelwiOiAoYTogRmlsZURlc2NyaXB0b3IsIGI6IEZpbGVEZXNjcmlwdG9yKSA9PiBhLm5hbWUgPiBiLm5hbWUgPyAxIDogLTEsXG4gICAgICAgIFwiei1hXCI6IChhOiBGaWxlRGVzY3JpcHRvciwgYjogRmlsZURlc2NyaXB0b3IpID0+IGIubmFtZSA+IGEubmFtZSA/IDEgOiAtMSxcbiAgICAgICAgXCJsYXN0bW9kXCI6IChhOiBGaWxlRGVzY3JpcHRvciwgYjogRmlsZURlc2NyaXB0b3IpID0+IGIuc3RhdHMubXRpbWVNcyAtIGEuc3RhdHMubXRpbWVNcyxcbiAgICAgICAgXCJmaXJzdG1vZFwiOiAoYTogRmlsZURlc2NyaXB0b3IsIGI6IEZpbGVEZXNjcmlwdG9yKSA9PiBhLnN0YXRzLm10aW1lTXMgLSBiLnN0YXRzLm10aW1lTXMsXG4gICAgICAgIFwic2l6ZVwiOiAoYTogRmlsZURlc2NyaXB0b3IsIGI6IEZpbGVEZXNjcmlwdG9yKSA9PiBiLnN0YXRzLnNpemUgLSBhLnN0YXRzLnNpemUsXG4gICAgICAgIFwidHlwZVwiOiAoYTogRmlsZURlc2NyaXB0b3IsIGI6IEZpbGVEZXNjcmlwdG9yKSA9PiBhLnBhdGguc3BsaXQoJy4nKS5zcGxpY2UoLTEsIDEpWzBdID4gYi5wYXRoLnNwbGl0KCcuJykuc3BsaWNlKC0xLCAxKVswXSA/IDEgOiAtMVxuICAgIH07XG4gICAgQElucHV0KCkgc29ydE9yZGVyOiBGaWxlU29ydGluZyA9IFwiYS16XCI7XG5cbiAgICBpdGVtc1BlclJvdyA9IDY7XG5cbiAgICAvLyBJZiB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMgaW5zaWRlIG9mIGFuIGFyY2hpdmVcbiAgICBpc0FyY2hpdmUgPSB0cnVlO1xuXG4gICAgdXNlcklzRHJhZ2dpbmdGaWxlID0gZmFsc2U7XG4gICAgZHJhZ2dpbmdPdmVyID0gZmFsc2U7XG5cbiAgICBzaG93TG9hZGVyID0gZmFsc2U7XG4gICAgaGlkZUxvYWRlciA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgY29sdW1ucyA9IFtcbiAgICAgICAgeyBpZDogXCJuYW1lXCIsIGxhYmVsOiBcIk5hbWVcIiB9LFxuICAgICAgICB7IGlkOiBcInNpemVcIiwgbGFiZWw6IFwiU2l6ZVwifSxcbiAgICAgICAgeyBpZDogXCJ0eXBlXCIsIGxhYmVsOiBcIlR5cGVcIn0sXG4gICAgICAgIHsgaWQ6IFwib3duZXJcIiwgbGFiZWw6IFwiT3duZXJcIn0sXG4gICAgICAgIHsgaWQ6IFwiZ3JvdXBcIiwgbGFiZWw6IFwiR3JvdXBcIn0sXG4gICAgICAgIHsgaWQ6IFwicGVybWlzc2lvbnNcIiwgbGFiZWw6IFwiUGVybWlzc2lvbnNcIn0sXG4gICAgICAgIHsgaWQ6IFwibG9jYXRpb25cIiwgbGFiZWw6IFwiTG9jYXRpb25cIn0sXG4gICAgICAgIHsgaWQ6IFwibW9kaWZpZWRcIiwgbGFiZWw6IFwiTW9kaWZpZWRcIn0sXG4gICAgICAgIHsgaWQ6IFwibW9kaWZpZWQtLXRpbWVcIiwgbGFiZWw6IFwiTW9kaWZpZWQgLSBUaW1lXCJ9LFxuICAgICAgICB7IGlkOiBcImFjY2Vzc2VkXCIsIGxhYmVsOiBcIkFjY2Vzc2VkXCJ9LFxuICAgICAgICB7IGlkOiBcImNyZWF0ZWRcIiwgbGFiZWw6IFwiQ3JlYXRlZFwifSxcbiAgICAgICAgeyBpZDogXCJyZWNlbmN5XCIsIGxhYmVsOiBcIlJlY2VuY3lcIn0sXG4gICAgICAgIHsgaWQ6IFwic3RhclwiLCBsYWJlbDogXCJTdGFyXCJ9LFxuICAgICAgICB7IGlkOiBcImRldGFpbGVkLXR5cGVcIiwgbGFiZWw6IFwiRGV0YWlsZWQgVHlwZVwifSxcbiAgICBdO1xuXG4gICAgY29scyA9IFtcbiAgICAgICAgeyBpZDogXCJuYW1lXCIsIGxhYmVsOiBcIk5hbWVcIiB9LFxuICAgICAgICB7IGlkOiBcInNpemVcIiwgbGFiZWw6IFwiU2l6ZVwiIH0sXG4gICAgICAgIHsgaWQ6IFwibW9kaWZpZWRcIiwgbGFiZWw6IFwiTW9kaWZpZWRcIiB9LFxuICAgICAgICB7IGlkOiBcInN0YXJcIiwgbGFiZWw6IFwiU3RhclwiIH1cbiAgICBdO1xuXG4gICAgZm9sZGVyQ29udGV4dE1lbnU6IE1lbnVJdGVtPEZTRGVzY3JpcHRvcj5bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IFwiTmV3IEZvbGRlclwiLFxuICAgICAgICAgICAgLy8gc2hvcnRjdXRMYWJlbDogXCJTaGlmdCtDdHJsK05cIixcbiAgICAgICAgICAgIGljb246IFwiY3JlYXRlX25ld19mb2xkZXJcIixcbiAgICAgICAgICAgIGFjdGlvbjogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIk5ldyBmb2xkZXIgZ29vZG5lc3NcIik7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2cub3BlbihcImZvbGRlci1yZW5hbWVcIiwgXCJAZG90Z2xpdGNoL25neC13ZWItY29tcG9uZW50c1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBwYXRoOiBkYXRhPy5wYXRoIHx8IHRoaXMucGF0aCwgbmFtZTogZGF0YT8ubmFtZSB8fCAnJywgY29uZmlnOiB0aGlzLmNvbmZpZyB9XG4gICAgICAgICAgICAgICAgfSkudGhlbihyID0+IHRoaXMubG9hZEZvbGRlcigpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJVcGxvYWQgZmlsZVwiLFxuICAgICAgICAgICAgLy8gc2hvcnRjdXRMYWJlbDogXCJDdHJsK0RcIixcbiAgICAgICAgICAgIGljb246IFwiZmlsZV91cGxvYWRcIixcbiAgICAgICAgICAgIGFjdGlvbjogKGV2dCkgPT4gdXBsb2FkRmlsZSh0aGlzLmZldGNoLCB0aGlzLmNvbmZpZywgdGhpcy5fcGF0aCwgZXZ0ID8gKGV2dC5wYXRoICsgZXZ0Lm5hbWUpIDogbnVsbCwgdGhpcy5maWxlTWFuYWdlci5jb250ZXh0VGFncykudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZEZvbGRlcigpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXBhcmF0b3JcIixcbiAgICAgICAgLy8ge1xuICAgICAgICAvLyAgICAgaXNEaXNhYmxlZDogKGRhdGEpID0+IHRydWUsXG4gICAgICAgIC8vICAgICBsYWJlbDogXCJfUF9hc3RlXCIsXG4gICAgICAgIC8vICAgICBpY29uOiBcImNvbnRlbnRfcGFzdGVcIixcbiAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJTZWxlY3QgX0FfbGxcIixcbiAgICAgICAgICAgIHNob3J0Y3V0TGFiZWw6IFwiQ3RybCtBXCIsXG4gICAgICAgICAgICBpY29uOiBcInNlbGVjdF9hbGxcIixcbiAgICAgICAgICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5fc29ydEZpbHRlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uVGV4dCA9IHRoaXMuZ2V0U2VsZWN0aW9uVGV4dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLm5leHQodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAvLyBcInNlcGFyYXRvclwiLFxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBsYWJlbDogXCJQX3Jfb3BlcnRpZXNcIixcbiAgICAgICAgLy8gICAgIGljb246IFwiZmluZF9pbl9wYWdlXCIsXG4gICAgICAgIC8vICAgICBhY3Rpb246IChldnQpID0+IHtcblxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgXTtcblxuICAgIGZpbGVDb250ZXh0TWVudTogTWVudUl0ZW08RlNEZXNjcmlwdG9yPltdID0gW107XG5cbiAgICBwZXJmb3JtQ2hlY2tzdW0ocGF0aCwgZGlnZXN0KSB7XG4gICAgICAgIC8vIHRoaXMud2luZG93TWFuYWdlci5vcGVuV2luZG93KHtcbiAgICAgICAgLy8gICAgIGFwcElkOiBcImNoZWNrc3VtXCIsXG4gICAgICAgIC8vICAgICBkYXRhOiB7IGRpZ2VzdCwgcGF0aCB9LFxuICAgICAgICAvLyAgICAgd29ya3NwYWNlOiB0aGlzLndpbmRvd1JlZi53b3Jrc3BhY2UsXG4gICAgICAgIC8vICAgICB3aWR0aDogNjAwLFxuICAgICAgICAvLyAgICAgaGVpZ2h0OiAyNTBcbiAgICAgICAgLy8gfSk7XG4gICAgfVxuXG4gICAgaWNvblJlc29sdmVyOiBJY29uUmVzb2x2ZXI7XG5cbiAgICBnZXQgbGliQ29uZmlnKCkgeyByZXR1cm4gdGhpcy5maWxlTWFuYWdlci5saWJDb25maWcgfVxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZldGNoOiBGZXRjaCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBrZXlib2FyZDogS2V5Ym9hcmRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmaWxlTWFuYWdlcjogRmlsZW1hbmFnZXJDb21wb25lbnQsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICAgKSB7XG5cblxuICAgICAgICB0aGlzLmljb25SZXNvbHZlciA9IG5ldyBJY29uUmVzb2x2ZXIodGhpcy5saWJDb25maWcuYXNzZXRQYXRoKTtcblxuICAgICAgICAvLyBjdHJsICsgYSA9PiBzZWxlY3QgYWxsXG4gICAgICAgIGtleWJvYXJkLm9uS2V5Q29tbWFuZCh7XG4gICAgICAgICAgICBrZXk6IFwiYVwiLFxuICAgICAgICAgICAgY3RybDogdHJ1ZSxcbiAgICAgICAgfSkuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMuX3NvcnRGaWx0ZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uVGV4dCA9IHRoaXMuZ2V0U2VsZWN0aW9uVGV4dCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UubmV4dCh0aGlzLnNlbGVjdGlvbik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGN0cmwgKyBjID0+IGNvcHkgZmlsZSBuYW1lcyB0byBjbGlwYm9hcmRcbiAgICAgICAga2V5Ym9hcmQub25LZXlDb21tYW5kKHtcbiAgICAgICAgICAgIGtleTogXCJjXCIsXG4gICAgICAgICAgICBjdHJsOiB0cnVlLFxuICAgICAgICB9KS5zdWJzY3JpYmUoZXZ0ID0+IHtcblxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBjdHJsICsgaCA9PiB0b2dnbGUgaGlkZGVuIGZpbGVzXG4gICAgICAgIGtleWJvYXJkLm9uS2V5Q29tbWFuZCh7XG4gICAgICAgICAgICBrZXk6IFwiaFwiLFxuICAgICAgICAgICAgY3RybDogdHJ1ZSxcbiAgICAgICAgICAgIGludGVycnVwdDogdHJ1ZVxuICAgICAgICB9KS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0hpZGRlbkZpbGVzID0gIXRoaXMuc2hvd0hpZGRlbkZpbGVzO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBGMiA9PiBSZW5hbWUgc2VsZWN0ZWQgZmlsZXNcbiAgICAgICAga2V5Ym9hcmQub25LZXlDb21tYW5kKHtcbiAgICAgICAgICAgIGtleTogXCJmMlwiLFxuICAgICAgICB9KS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgICAgIC8vIFJlbmFtZSBzZWxlY3RlZCBmaWxlKHMpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEVudGVyID0+IE9wZW4gc2VsZWN0ZWQgZmlsZXNcbiAgICAgICAga2V5Ym9hcmQub25LZXlDb21tYW5kKHtcbiAgICAgICAgICAgIGtleTogXCJFbnRlclwiLFxuICAgICAgICB9KS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gdGhpcy5kaXJlY3RvcnlDb250ZW50cy5maWx0ZXIoZGMgPT4gdGhpcy5zZWxlY3Rpb24uZmluZChpID0+IGkubmFtZSA9PSBkYy5uYW1lKSk7XG4gICAgICAgICAgICAvLyB0aGlzLndpbmRvd01hbmFnZXIub3BlbkZpbGVzKGZpbGVzIGFzIGFueSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIERlbGV0ZSA9PiBkZWxldGUgc2VsZWN0ZWQgZmlsZXNcbiAgICAgICAga2V5Ym9hcmQub25LZXlDb21tYW5kKHtcbiAgICAgICAgICAgIGtleTogXCJkZWxldGVcIixcbiAgICAgICAgfSkuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IHRoaXMuZGlyZWN0b3J5Q29udGVudHMuZmlsdGVyKGRjID0+IHRoaXMuc2VsZWN0aW9uLmZpbmQoaSA9PiBpLm5hbWUgPT0gZGMubmFtZSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gdGhpcy5sb2FkRm9sZGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmZpbGVDb250ZXh0TWVudSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJEb3dubG9hZFwiLFxuICAgICAgICAgICAgICAgIGljb246IFwiZG93bmxvYWRcIixcbiAgICAgICAgICAgICAgICBhY3Rpb246IChmaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBgJHt3aW5kb3cub3JpZ2lufSR7dGhpcy5jb25maWcuYXBpU2V0dGluZ3MuZG93bmxvYWRFbnRyeVVybH1gO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGF0aCA9IGZpbGUucGF0aCArIGZpbGUubmFtZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZS5raW5kID09IFwiZGlyZWN0b3J5XCIgJiYgIXBhdGguZW5kc1dpdGgoJy8nKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggKz0gXCIvXCI7XG5cbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ICs9IGAke3RhcmdldC5pbmNsdWRlcygnPycpID8gJyYnIDogJz8nfXBhdGg9JHtwYXRofSZuZ3N3LWJ5cGFzcz10cnVlYDtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2luZG93Lm9wZW4odGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IGZpbGUubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5ocmVmID0gdGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICBsaW5rLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmsucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZU1hbmFnZXIuZmlsZURvd25sb2FkLm5leHQoZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJPcGVuIGluIG5ldyBUYWJcIixcbiAgICAgICAgICAgICAgICBpY29uOiBcIm9wZW5faW5fbmV3XCIsXG4gICAgICAgICAgICAgICAgaXNWaXNpYmxlOiAoZGF0YSkgPT4gZGF0YS5raW5kID09IFwiZGlyZWN0b3J5XCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyLmluaXRUYWIoZGF0YS5wYXRoICsgZGF0YS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIk9wZW4gd2l0aCBBcHBsaWNhdGlvbi4uLlwiLFxuICAgICAgICAgICAgLy8gICAgIGlzVmlzaWJsZTogKGRhdGEpID0+IGRhdGEua2luZCA9PSBcImZpbGVcIixcbiAgICAgICAgICAgIC8vICAgICBzaG9ydGN1dExhYmVsOiBcIkN0cmwrRFwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICBcInNlcGFyYXRvclwiLFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIkN1dFwiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiY29udGVudF9jdXRcIixcbiAgICAgICAgICAgIC8vICAgICBpc0Rpc2FibGVkOiBkYXRhID0+IHRydWUsXG4gICAgICAgICAgICAvLyAgICAgYWN0aW9uOiAoZXZ0KSA9PiB7XG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAvLyAgICAgbGFiZWw6IFwiQ29weVwiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiZmlsZV9jb3B5XCIsXG4gICAgICAgICAgICAvLyAgICAgaXNEaXNhYmxlZDogZGF0YSA9PiB0cnVlLFxuICAgICAgICAgICAgLy8gICAgIGNoaWxkcmVuUmVzb2x2ZXI6ICgpID0+IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCA1MDAwMDApKVxuICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgIC8vICAgICBsYWJlbDogXCJNb3ZlIFRvLi4uXCIsXG4gICAgICAgICAgICAvLyAgICAgaWNvbjogXCJkcml2ZV9maWxlX21vdmVcIixcbiAgICAgICAgICAgIC8vICAgICBzaG9ydGN1dExhYmVsOiBcIkN0cmwrQVwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAvLyAgICAgbGFiZWw6IFwiQ29weSBUby4uLlwiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiZm9sZGVyX2NvcHlcIixcbiAgICAgICAgICAgIC8vICAgICBzaG9ydGN1dExhYmVsOiBcIkN0cmwrQVwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiRGVsZXRlXCIsXG4gICAgICAgICAgICAgICAgaWNvbjogXCJkZWxldGVcIixcbiAgICAgICAgICAgICAgICAvLyBzaG9ydGN1dExhYmVsOiBcIkRlbFwiLFxuICAgICAgICAgICAgICAgIGlzVmlzaWJsZTogZGF0YSA9PiAhZGF0YS5wYXRoLmluY2x1ZGVzKFwiIy9cIiksIC8vIG9taXQgZmlsZXMgaW4gY29tcHJlc3NlZCBkaXJzXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBldnQucGF0aCArIGV2dC5uYW1lO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmRlbGV0ZUVudHJ5VXJsVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MuZGVsZXRlRW50cnlVcmxUZW1wbGF0ZShwYXRoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5kZWxldGVFbnRyeVVybFxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2guZGVsZXRlKHVybClcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMubG9hZEZvbGRlcigpKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIlNocmVkIGZpbGVcIixcbiAgICAgICAgICAgIC8vICAgICBpY29uOiBcImRlbGV0ZV9mb3JldmVyXCIsXG4gICAgICAgICAgICAvLyAgICAgaXNWaXNpYmxlOiBkYXRhID0+ICFkYXRhLnBhdGguaW5jbHVkZXMoXCIjL1wiKSwgLy8gb21pdCBmaWxlcyBpbiBjb21wcmVzc2VkIGRpcnNcbiAgICAgICAgICAgIC8vICAgICBhY3Rpb246IChldnQpID0+IHtcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5mZXRjaC5wb3N0KGAvYXBpL2ZpbGVzeXN0ZW0vZGVsZXRlP3dpcGU9dHJ1ZWAsIHsgZmlsZXM6IFtldnQucGF0aCArIGV2dC5uYW1lXX0pXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLmxvYWRGb2xkZXIoKSlcbiAgICAgICAgICAgIC8vICAgICB9LFxuICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJSZW5hbWVcIixcbiAgICAgICAgICAgICAgICBpY29uOiBcImRyaXZlX2ZpbGVfcmVuYW1lX291dGxpbmVcIixcbiAgICAgICAgICAgICAgICBpc1Zpc2libGU6IGRhdGEgPT4gIWRhdGEucGF0aC5pbmNsdWRlcyhcIiMvXCIpLCAvLyBvbWl0IGZpbGVzIGluIGNvbXByZXNzZWQgZGlyc1xuICAgICAgICAgICAgICAgIC8vIHNob3J0Y3V0TGFiZWw6IFwiRjJcIixcbiAgICAgICAgICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oXCJmb2xkZXItcmVuYW1lXCIsIFwiQGRvdGdsaXRjaC9uZ3gtd2ViLWNvbXBvbmVudHNcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IHBhdGg6IGRhdGE/LnBhdGggfHwgdGhpcy5wYXRoLCBuYW1lOiBkYXRhPy5uYW1lIHx8ICcnLCBjb25maWc6IHRoaXMuY29uZmlnIH1cbiAgICAgICAgICAgICAgICAgICAgfSkudGhlbihyID0+IHRoaXMubG9hZEZvbGRlcigpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIEV4dHJhY3QgSGVyZVxuICAgICAgICAgICAgLy8gRXh0cmFjdCBUby4uLlxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIkV4dHJhY3QgSGVyZVwiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiZm9sZGVyX3ppcFwiLFxuICAgICAgICAgICAgLy8gICAgIHNob3J0Y3V0TGFiZWw6IFwiQ3RybCtBXCIsXG4gICAgICAgICAgICAvLyAgICAgaXNEaXNhYmxlZDogKGRhdGEpID0+ICEoZGF0YS5raW5kID09IFwiZmlsZVwiICYmIGRhdGEuZXh0ICE9IFwiLnppcFwiICYmIGlzQXJjaGl2ZShkYXRhKSksXG4gICAgICAgICAgICAvLyAgICAgYWN0aW9uOiAoZXZ0KSA9PiB7XG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIC8vICAgICB9LFxuICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgIC8vICAgICBsYWJlbDogXCJFeHRyYWN0IHRvLi4uXCIsXG4gICAgICAgICAgICAvLyAgICAgaWNvbjogXCJmb2xkZXJfemlwXCIsXG4gICAgICAgICAgICAvLyAgICAgc2hvcnRjdXRMYWJlbDogXCJDdHJsK0FcIixcbiAgICAgICAgICAgIC8vICAgICBpc0Rpc2FibGVkOiAoZGF0YSkgPT4gIShkYXRhLmtpbmQgPT0gXCJmaWxlXCIgJiYgZGF0YS5leHQgIT0gXCIuemlwXCIgJiYgaXNBcmNoaXZlKGRhdGEpKSxcbiAgICAgICAgICAgIC8vICAgICBhY3Rpb246IChldnQpID0+IHtcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIkNvbXByZXNzLi4uXCIsXG4gICAgICAgICAgICAvLyAgICAgaWNvbjogXCJmb2xkZXJfemlwXCIsXG4gICAgICAgICAgICAvLyAgICAgc2hvcnRjdXRMYWJlbDogXCJDdHJsK0FcIixcbiAgICAgICAgICAgIC8vICAgICBpc0Rpc2FibGVkOiAoZGF0YSkgPT4gZGF0YS5raW5kID09IFwiZmlsZVwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuICAgICAgICAgICAgLy8gICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiQ2hlY2tzdW1cIixcbiAgICAgICAgICAgICAgICBpY29uOiBcIm1hbmFnZV9zZWFyY2hcIixcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiAoZGF0YSkgPT4gZGF0YS5raW5kICE9IFwiZmlsZVwiLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk1ENVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAoZXZ0KSA9PiB0aGlzLnBlcmZvcm1DaGVja3N1bShldnQucGF0aCArIGV2dC5uYW1lLCBcIm1kNVwiKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiU0hBMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAoZXZ0KSA9PiB0aGlzLnBlcmZvcm1DaGVja3N1bShldnQucGF0aCArIGV2dC5uYW1lLCBcInNoYTFcIiksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlNIQTI1NlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAoZXZ0KSA9PiB0aGlzLnBlcmZvcm1DaGVja3N1bShldnQucGF0aCArIGV2dC5uYW1lLCBcInNoYTI1NlwiKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiU0hBNTEyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IChldnQpID0+IHRoaXMucGVyZm9ybUNoZWNrc3VtKGV2dC5wYXRoICsgZXZ0Lm5hbWUsIFwic2hhNTEyXCIpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgaXNWaXNpYmxlOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc0FyY2hpdmUgfHwgZGF0YS5raW5kID09IFwiZmlsZVwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIlN0YXJcIixcbiAgICAgICAgICAgIC8vICAgICBpY29uOiBcInN0YXJcIixcbiAgICAgICAgICAgIC8vICAgICBzaG9ydGN1dExhYmVsOiBcIkN0cmwrQVwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAvLyBcInNlcGFyYXRvclwiLFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIlBfcl9vcGVydGllc1wiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiZmluZF9pbl9wYWdlXCIsXG4gICAgICAgICAgICAvLyAgICAgYWN0aW9uOiAoZXZ0KSA9PiB7XG5cbiAgICAgICAgICAgIC8vICAgICB9LFxuICAgICAgICAgICAgLy8gfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGFzeW5jIGxvYWRGb2xkZXIoKSB7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuaGlkZUxvYWRlciA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsVGVtcGxhdGVcbiAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MubGlzdEVudHJpZXNVcmxUZW1wbGF0ZSh0aGlzLnBhdGgpXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsXG5cbiAgICAgICAgdGhpcy5mZXRjaC5wb3N0KHVybCwgeyBwYXRoOiB0aGlzLnBhdGgsIHNob3dIaWRkZW46IHRoaXMuc2hvd0hpZGRlbkZpbGVzIH0pXG4gICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVEZXNjcmlwdG9yW10gPSBkYXRhPy5maWxlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXJzOiBEaXJlY3RvcnlEZXNjcmlwdG9yW10gPSBkYXRhPy5kaXJzIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3JzID0gZmlsZXMuY29uY2F0KGRpcnMgYXMgYW55KSBhcyBGU0Rlc2NyaXB0b3JbXTtcblxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JzLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZbJ19pY29uJ10gPSB0aGlzLmljb25SZXNvbHZlci5yZXNvbHZlSWNvbihmKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGYua2luZCA9PSBcImZpbGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZlsnX2N0aW1lJ10gPSBuZXcgRGF0ZShmLnN0YXRzPy5jdGltZU1zKT8udG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZbJ19tdGltZSddID0gbmV3IERhdGUoZi5zdGF0cz8ubXRpbWVNcyk/LnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmWydfc2l6ZSddID0gdGhpcy5ieXRlc1RvU3RyaW5nKGYuc3RhdHM/LnNpemUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdG9yeUNvbnRlbnRzID0gZGVzY3JpcHRvcnM7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9zb3J0RmlsdGVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRGaWxlcy5uZXh0KGRlc2NyaXB0b3JzKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNvcnRlZEZvbGRlcnMubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbG93Um93cygpO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2l6ZSgpLCAyNTApO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNpemUoKSwgNTAwKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzaXplKCksIDEwMDApO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNpemUoKSwgMjUwMCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2l6ZSgpLCA1MDAwKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZSA9PiBjb25zb2xlLmVycm9yKGUpKVxuICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZUxvYWRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIGZsb3dSb3dzKCkge1xuICAgICAgICBsZXQgZmlsdGVyZWQgPSB0aGlzLl9zb3J0RmlsdGVyKCk7XG5cbiAgICAgICAgdGhpcy5zb3J0ZWRGb2xkZXJzID0gW107XG4gICAgICAgIGNvbnN0IG51bSA9IE1hdGguY2VpbChmaWx0ZXJlZC5sZW5ndGggLyB0aGlzLml0ZW1zUGVyUm93KTtcbiAgICAgICAgY29uc3QgaXRlcmF0aW9ucyA9IE1hdGgubWluKG51bSwgMTAwKTtcblxuICAgICAgICBmb3IgKGxldCByb3cgPSAwOyByb3cgPCBpdGVyYXRpb25zOyByb3crKykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnNvcnRlZEZvbGRlcnNbcm93XSlcbiAgICAgICAgICAgICAgICB0aGlzLnNvcnRlZEZvbGRlcnNbcm93XSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gcm93ICogdGhpcy5pdGVtc1BlclJvdzsgaSA8IChyb3cgKyAxKSAqIHRoaXMuaXRlbXNQZXJSb3cgJiYgaSA8IGZpbHRlcmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3J0ZWRGb2xkZXJzW3Jvd10ucHVzaChmaWx0ZXJlZFtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlbGVjdChpdGVtOiBGU0Rlc2NyaXB0b3IsIGV2dCkge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKHRoaXMua2V5Ym9hcmQuaXNTaGlmdFByZXNzZWQpIHtcbiAgICAgICAgICAgIGxldCBzdGFydCA9IHRoaXMuZGlyZWN0b3J5Q29udGVudHMuZmluZEluZGV4KGkgPT4gaS5uYW1lID09IHRoaXMuc2VsZWN0aW9uLnNsaWNlKC0xLCAxKVswXS5uYW1lKTtcbiAgICAgICAgICAgIGxldCBlbmQgPSB0aGlzLmRpcmVjdG9yeUNvbnRlbnRzLmluZGV4T2YoaXRlbSk7XG5cbiAgICAgICAgICAgIGlmIChzdGFydCA9PSAtMSlcbiAgICAgICAgICAgICAgICBzdGFydCA9IGVuZDtcblxuICAgICAgICAgICAgbGV0IGl0ZW1zID0gc3RhcnQgPiBlbmRcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGlyZWN0b3J5Q29udGVudHMuc2xpY2UoZW5kLCBzdGFydCArIDEpXG4gICAgICAgICAgICAgICAgOiB0aGlzLmRpcmVjdG9yeUNvbnRlbnRzLnNsaWNlKHN0YXJ0LCBlbmQgKyAxKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBpdGVtcztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmtleWJvYXJkLmlzQ3RybFByZXNzZWQpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3Rpb24uaW5jbHVkZXMoaXRlbSkpXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24ucHVzaChpdGVtKTtcbiAgICAgICAgICAgIGVsc2UgLy8gQ2FzZSB0aGF0IHdlIHNlbGVjdGVkIHRoZSBzYW1lIGl0ZW0gdHdpY2VcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zcGxpY2UodGhpcy5zZWxlY3Rpb24uaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbaXRlbV07XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25bMF0ua2luZCA9PSBcImRpcmVjdG9yeVwiKVxuICAgICAgICAgICAgICAgIHRoaXMuZm9sZGVyU2VsZWN0Lm5leHQodGhpcy5zZWxlY3Rpb25bMF0pO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZVNlbGVjdC5uZXh0KHRoaXMuc2VsZWN0aW9uWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLm5leHQodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgICB0aGlzLnNlbGVjdGlvblRleHQgPSB0aGlzLmdldFNlbGVjdGlvblRleHQoKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhmaWxlOiBGU0Rlc2NyaXB0b3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZmlsZSwgdGhpcyk7XG4gICAgICAgIGlmIChmaWxlLmtpbmQgPT0gXCJkaXJlY3RvcnlcIikge1xuICAgICAgICAgICAgdGhpcy5mb2xkZXJEYmxDbGljay5uZXh0KGZpbGUpO1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gZmlsZS5wYXRoICsgZmlsZS5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVsc2UgaWYgKGZpbGUuZXh0ID09IFwiemlwXCIpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuZmlsZURibENsaWNrLm5leHQoZmlsZSk7XG4gICAgICAgIC8vICAgICB0aGlzLnBhdGggPSBmaWxlLnBhdGggKyBmaWxlLm5hbWU7XG4gICAgICAgIC8vIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVEYmxDbGljay5uZXh0KGZpbGUpO1xuICAgICAgICAgICAgdGhpcy5maWxlU2VsZWN0Lm5leHQoZmlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvZ2dsZShpdGVtLCBzdGF0ZTogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICAgICAgaXRlbVsnX3ZhbHVlJ10gPSBzdGF0ZS5jaGVja2VkO1xuXG4gICAgICAgIC8vIFRPRE86IFdoYXQgY2F1c2VzIHRoaXMgdG8gYmUgbnVsbCB3aGVuIGluaXRpYWxpemVkIHdpdGggYW4gYXJyYXk/XG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLnZhbHVlLmZpbmRJbmRleCh2ID0+IHYgPT0gaXRlbSk7XG4gICAgICAgICAgICBpZiAoaSA+PSAwKVxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUuc3BsaWNlKGksIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBhc3luYyBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XG5cbiAgICAgICAgdGhpcy50YWJ1bGF0b3I/LnRhYmxlPy5nZXRSb3dzKCkuZm9yRWFjaChyID0+IHIuZ2V0RWxlbWVudCgpLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NvcnRGaWx0ZXIoKTogRmlsZURlc2NyaXB0b3JbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpcmVjdG9yeUNvbnRlbnRzID0gdGhpcy5kaXJlY3RvcnlDb250ZW50cz8uZmlsdGVyKGQgPT4gZC5raW5kID09ICdkaXJlY3RvcnknKVxuICAgICAgICAgICAgLmNvbmNhdCh0aGlzLmRpcmVjdG9yeUNvbnRlbnRzPy5maWx0ZXIoZCA9PiBkLmtpbmQgPT0gJ2ZpbGUnKVxuICAgICAgICAgICAgICAgIC5zb3J0KHRoaXMuc29ydGVyc1t0aGlzLnNvcnRPcmRlcl0pXG4gICAgICAgICAgICApIGFzIEZpbGVEZXNjcmlwdG9yW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3Rpb25UZXh0KCkge1xuICAgICAgICBjb25zdCBkaXJDb3VudCA9IHRoaXMuc2VsZWN0aW9uLmZpbHRlcihzID0+IHMua2luZCA9PSBcImRpcmVjdG9yeVwiKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGZpbGVDb3VudCA9IHRoaXMuc2VsZWN0aW9uLmZpbHRlcihzID0+IHMua2luZCA9PSBcImZpbGVcIikubGVuZ3RoO1xuXG4gICAgICAgIGlmIChkaXJDb3VudCArIGZpbGVDb3VudCA9PSAwKSByZXR1cm4gXCJcIjtcblxuICAgICAgICBjb25zdCB0b3RhbFNpemUgPVxuICAgICAgICAgICAgdGhpcy5kaXJlY3RvcnlDb250ZW50c1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoZCA9PiBkLmtpbmQgPT0gXCJmaWxlXCIpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihkID0+IHRoaXMuc2VsZWN0aW9uPy5maW5kKGkgPT4gaS5uYW1lID09IGQubmFtZSkpXG4gICAgICAgICAgICAgICAgLm1hcChkID0+IGRbJ3N0YXRzJ10uc2l6ZSkucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCk7XG5cbiAgICAgICAgaWYgKGRpckNvdW50ICsgZmlsZUNvdW50ID09IDEpXG4gICAgICAgICAgICByZXR1cm4gYFwiJHt0aGlzLnNlbGVjdGlvblswXS5uYW1lfVwiIHNlbGVjdGVkICgke3RoaXMuYnl0ZXNUb1N0cmluZyh0b3RhbFNpemUpfSlgO1xuXG4gICAgICAgIGlmIChkaXJDb3VudCA+IDAgJiYgZmlsZUNvdW50ID09IDApXG4gICAgICAgICAgICByZXR1cm4gYFwiJHtkaXJDb3VudH1cIiBmb2xkZXJzIHNlbGVjdGVkYDtcbiAgICAgICAgaWYgKGZpbGVDb3VudCA+IDAgJiYgZGlyQ291bnQgPT0gMClcbiAgICAgICAgICAgIHJldHVybiBgJHtmaWxlQ291bnR9IGl0ZW1zIHNlbGVjdGVkICgke3RoaXMuYnl0ZXNUb1N0cmluZyh0b3RhbFNpemUpfSlgO1xuXG4gICAgICAgIHJldHVybiBgJHtkaXJDb3VudH0gZm9sZGVyJHtkaXJDb3VudCA9PSAxID8gXCJcIiA6IFwic1wifSBzZWxlY3RlZCwgJHtmaWxlQ291bnR9IG90aGVyIGl0ZW0ke2ZpbGVDb3VudCA9PSAxID8gXCJcIiA6IFwic1wifSBzZWxlY3RlZCAoJHt0aGlzLmJ5dGVzVG9TdHJpbmcodG90YWxTaXplKX0pYDtcbiAgICB9XG5cbiAgICBieXRlc1RvU3RyaW5nKGJ5dGVzOiBudW1iZXIsIGRlY2ltYWxzID0gMikge1xuICAgICAgICBpZiAoIStieXRlcykgcmV0dXJuICcwIEJ5dGVzJztcblxuICAgICAgICBjb25zdCBrID0gMTAyNDtcbiAgICAgICAgY29uc3QgZG0gPSBkZWNpbWFscyA8IDAgPyAwIDogZGVjaW1hbHM7XG4gICAgICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xuXG4gICAgICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcblxuICAgICAgICByZXR1cm4gYCR7cGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpfSAke3NpemVzW2ldfWA7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2l6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVzUmVmKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzaXplKCksIDI1KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBib3VuZHMgPSAodGhpcy5maWxlc1JlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBuZXdDb2xDb3VudCA9IE1hdGguZmxvb3IoYm91bmRzLndpZHRoIC8gaXRlbVdpZHRoKTtcbiAgICAgICAgaWYgKG5ld0NvbENvdW50ICE9IHRoaXMuaXRlbXNQZXJSb3cpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNQZXJSb3cgPSBNYXRoLmZsb29yKGJvdW5kcy53aWR0aCAvIGl0ZW1XaWR0aCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtc1BlclJvdyA+IDEwMClcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zUGVyUm93ID0gMTtcblxuICAgICAgICAgICAgdGhpcy5mbG93Um93cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc29ydGVkRm9sZGVycz8ubGVuZ3RoID09IDApXG4gICAgICAgICAgICB0aGlzLmZsb3dSb3dzKCk7XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZ0OiBEcmFnRXZlbnQsIGl0ZW06IEZTRGVzY3JpcHRvcikge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBgJHt3aW5kb3cub3JpZ2lufS9hcGkvZmlsZXN5c3RlbS9kb3dubG9hZD9kaXI9JHtpdGVtLnBhdGh9JmZpbGU9JHtpdGVtLm5hbWV9YDtcblxuICAgICAgICBldnQuZGF0YVRyYW5zZmVyLmNsZWFyRGF0YSgpO1xuICAgICAgICAvLyBldnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvdXJpLWxpc3QnLCB0YXJnZXQpO1xuICAgICAgICAvLyBldnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ0Rvd25sb2FkVVJMJywgYHRleHQvdXJpLWxpc3Q6JHt0YXJnZXR9YCk7XG4gICAgICAgIGV2dC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIGl0ZW0ubmFtZSk7XG4gICAgfVxuXG4gICAgb25Ecm9wKGV2KSB7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKGV2LmRhdGFUcmFuc2Zlci5pdGVtcykge1xuICAgICAgICAgICAgLy8gVXNlIERhdGFUcmFuc2Zlckl0ZW1MaXN0IGludGVyZmFjZSB0byBhY2Nlc3MgdGhlIGZpbGUocylcbiAgICAgICAgICAgIFsuLi5ldi5kYXRhVHJhbnNmZXIuaXRlbXNdLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICAgIC8vIElmIGRyb3BwZWQgaXRlbXMgYXJlbid0IGZpbGVzLCByZWplY3QgdGhlbVxuICAgICAgICAgICAgaWYgKGl0ZW0ua2luZCA9PT0gXCJmaWxlXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gaXRlbS5nZXRBc0ZpbGUoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhg4oCmIGZpbGVbJHtpfV0ubmFtZSA9ICR7ZmlsZS5uYW1lfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc2UgRGF0YVRyYW5zZmVyIGludGVyZmFjZSB0byBhY2Nlc3MgdGhlIGZpbGUocylcbiAgICAgICAgICAgIFsuLi5ldi5kYXRhVHJhbnNmZXIuZmlsZXNdLmZvckVhY2goKGZpbGUsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGDigKYgZmlsZVske2l9XS5uYW1lID0gJHtmaWxlLm5hbWV9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hbWVDZWxsRm9ybWF0dGVyID0gKChjZWxsOiBDZWxsQ29tcG9uZW50LCBmb3JtYXR0ZXJQYXJhbXM6IHt9LCBvblJlbmRlcmVkOiBFbXB0eUNhbGxiYWNrKSA9PiB7XG4gICAgICAgIC8vIFRPRE86IFNhbml0aXplP1xuICAgICAgICBjb25zdCBpdGVtID0gY2VsbC5nZXREYXRhKCkgYXMgRlNEZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gYFxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGltZyBzdHlsZT1cImhlaWdodDogMjRweDsgbWFyZ2luLXJpZ2h0OiA2cHhcIiBzcmM9XCIke2l0ZW1bJ19pY29uJ10ucGF0aH1cIi8+XG4gICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW46IDBcIj4ke3RoaXMuc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBpdGVtWyd2YW5pdHlOYW1lJ10gfHwgaXRlbS5uYW1lKX08L3A+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIGA7XG4gICAgfSkuYmluZCh0aGlzKVxuXG4gICAgb25Sb3dDdHgoe2V2ZW50LCByb3d9KSB7XG4gICAgICAgIG9wZW5NZW51KHRoaXMubWF0RGlhbG9nLCB0aGlzLmZpbGVDb250ZXh0TWVudSwgcm93LmdldERhdGEoKSwgZXZlbnQpO1xuICAgIH1cblxuICAgIG9uUm93Q2xpY2soe2V2ZW50LCByb3csIGRhdGF9KSB7XG4gICAgICAgIC8vICRldmVudC5kYXRhWydfdmFsdWUnXSA9ICRldmVudC5kYXRhWydfdmFsdWUnXSA9PSB0cnVlID8gZmFsc2UgOiB0cnVlXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGV2ZW50LCByb3csIGRhdGEsIHRoaXMudmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IHJvd0VsID0gcm93LmdldEVsZW1lbnQoKTtcbiAgICAgICAgbGV0IHN0YXRlID0gcm93RWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWxlY3RlZCcpO1xuICAgICAgICBkYXRhWydfdmFsdWUnXSA9ICFzdGF0ZTtcblxuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgIHJvd0VsLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlLnB1c2goZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByb3dFbC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMudmFsdWUuZmluZEluZGV4KHYgPT4gdiA9PSBkYXRhKTtcbiAgICAgICAgICAgIGlmIChpID49IDApXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgc29ydCgpIHtcbiAgICAgICAgdGhpcy5fc29ydEZpbHRlcigpO1xuICAgIH1cbn1cblxuXG5cblxuXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0xvYWRlclwiPlxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIFtjbGFzcy5oaWRlXT1cImhpZGVMb2FkZXJcIiBtb2RlPVwicXVlcnlcIi8+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdlxuICAgIHN0eWxlPVwiZGlzcGxheTogY29udGVudHNcIlxuICAgIFtzdHlsZS4tLWZpbGVtYW5hZ2VyLWZpbGVpY29uLWJhY2tkcm9wXT1cIid1cmwoJyArIGljb25SZXNvbHZlci5wYXRoICsgJy9wb3AvZ2VuZXJpYy5zdmcpJ1wiXG4gICAgKGRyYWdzdGFydCk9XCJ1c2VySXNEcmFnZ2luZ0ZpbGUgPSB0cnVlXCJcbiAgICAoZHJhZ2VuZCk9XCJ1c2VySXNEcmFnZ2luZ0ZpbGUgPSBmYWxzZVwiXG4gICAgKGRyYWdvdmVyKT1cImRyYWdnaW5nT3ZlciA9IHRydWVcIlxuICAgIChkcmFnbGVhdmUpPVwiZHJhZ2dpbmdPdmVyID0gZmFsc2VcIlxuICAgIChvbmRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuPlxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImRyYWdnaW5nT3ZlclwiPjwvbmctY29udGFpbmVyPiAtLT5cbiAgICA8IS0tIEdyaWQgbW9kZSAtLT5cbiAgICA8bmctc2Nyb2xsYmFyXG4gICAgICAgICpuZ0lmPVwidmlld01vZGUgPT0gJ2dyaWQnXCJcbiAgICAgICAgY2xhc3M9XCJncmlkIHt7Z3JpZFNpemV9fSB7e2NvbmZpZy5pbWFnZVNpemUgfHwgJ25vcm1hbCd9fVwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3Rpb25Nb2RlXT1cImNvbmZpZy5tb2RlID09ICdmb2N1c0ZpbGVzJ1wiXG4gICAgICAgIFtjbGFzcy5zaG93RHJvcEFyZWFdPVwiZHJhZ2dpbmdPdmVyXCJcbiAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlXCJcbiAgICAgICAgdHJhY2s9XCJ2ZXJ0aWNhbFwiXG4gICAgICAgIHBvaW50ZXJFdmVudHNNZXRob2Q9XCJzY3JvbGxiYXJcIlxuICAgICAgICBbbmd4LWNvbnRleHRtZW51XT1cImZvbGRlckNvbnRleHRNZW51XCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXNpemUtb2JzZXJ2ZXJcIiAjZmlsZVZpZXdwb3J0PjwvZGl2PlxuICAgICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgICAgICBpdGVtU2l6ZT1cIjEzNFwiXG4gICAgICAgICAgICBzY3JvbGxWaWV3cG9ydFxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGlvbiA9IFtdOyBzZWxlY3Rpb25UZXh0ID0gJydcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgcm93IG9mIHNvcnRlZEZvbGRlcnNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3Rpb24uaW5jbHVkZXMoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZ2VuZXJpY109XCJpdGVtWydfaWNvbiddLm5lZWRzQmFja2Ryb3BcIlxuICAgICAgICAgICAgICAgICAgICBbbmd4LWNvbnRleHRtZW51XT1cImZpbGVDb250ZXh0TWVudVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ3gtbWVudS1jb250ZXh0XT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgI2NoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5tb2RlID09ICdmb2N1c0ZpbGVzJyAmJiBpdGVtLmtpbmQgPT0gJ2ZpbGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIml0ZW1bJ192YWx1ZSddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Ub2dnbGUoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogY29udGVudHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cIm9uSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwib25EcmFnU3RhcnQoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtWydfaWNvbiddLnBhdGhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD57e2l0ZW1bJ3Zhbml0eU5hbWUnXSB8fCBpdGVtLm5hbWV9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgPC9uZy1zY3JvbGxiYXI+XG5cbiAgICA8IS0tIExpc3QgbW9kZSAtLT5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwidmlld01vZGUgPT0gJ2xpc3QnXCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlXCJcbiAgICAgICAgW2NsYXNzLnNob3dEcm9wQXJlYV09XCJkcmFnZ2luZ092ZXJcIlxuICAgICAgICBbbmd4LWNvbnRleHRtZW51XT1cImZvbGRlckNvbnRleHRNZW51XCJcbiAgICA+XG4gICAgICAgIDxhcHAtdGFidWxhdG9yXG4gICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkaXJlY3RvcnlDb250ZW50c1wiXG4gICAgICAgICAgICBbY29sdW1uc109XCJbXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ25hbWUnLCB0aXRsZTogJ05hbWUnLCBmb3JtYXR0ZXI6IG5hbWVDZWxsRm9ybWF0dGVyIH0sXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ19zaXplJywgdGl0bGU6ICdTaXplJyB9LFxuICAgICAgICAgICAgICAgIHsgZmllbGQ6ICdfY3RpbWUnLCB0aXRsZTogJ0NyZWF0ZWQnIH0sXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ19tdGltZScsIHRpdGxlOiAnTW9kaWZpZWQnIH0sXG4gICAgICAgICAgICBdXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIntcbiAgICAgICAgICAgICAgICByb3dIZWlnaHQ6IDMyXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKHJvd0RibENsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudC5kYXRhKVwiXG4gICAgICAgICAgICAocm93Q29udGV4dCk9XCJvblJvd0N0eCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2VsZWN0LWhpbnRcIiAqbmdJZj1cInNlbGVjdGlvblRleHRcIj5cbiAgICB7e3NlbGVjdGlvblRleHR9fVxuPC9kaXY+XG5cbiJdfQ==
672
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlLWdyaWQvZmlsZS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlLWdyaWQvZmlsZS1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFnQyxXQUFXLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBeUMsYUFBYSxFQUFZLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFD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QkFBakIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUVFLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQWNFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9wdGlvbmFsLCBJbmplY3QsIFRlbXBsYXRlUmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgU2VjdXJpdHlDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSwgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IERhdGVQaXBlLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ2VsbENvbXBvbmVudCwgRW1wdHlDYWxsYmFjayB9IGZyb20gJ3RhYnVsYXRvci10YWJsZXMnO1xuaW1wb3J0IHsgTmdTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICduZ3gtc2Nyb2xsYmFyJztcbmltcG9ydCB7IERpcmVjdG9yeURlc2NyaXB0b3IsIEZpbGVEZXNjcmlwdG9yLCBGaWxlbWFuYWdlckNvbXBvbmVudCwgRmlsZVZpZXdUYWIsIEZTRGVzY3JpcHRvciwgTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vZmlsZW1hbmFnZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVTb3J0aW5nIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSWNvblJlc29sdmVyIH0gZnJvbSAnLi4vaWNvbi1yZXNvbHZlcic7XG5pbXBvcnQgeyBUYWJ1bGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi90YWJ1bGF0b3IvdGFidWxhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyB1cGxvYWRGaWxlIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBGZXRjaCwgS2V5Ym9hcmRTZXJ2aWNlLCBNZW51RGlyZWN0aXZlLCBNZW51SXRlbSwgb3Blbk1lbnUgfSBmcm9tICcuLi8uLi8uLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5jb25zdCBpdGVtV2lkdGggPSAoODAgKyAyMCk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWZpbGUtZ3JpZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBEYXRlUGlwZSxcbiAgICAgICAgTWF0VGFic01vZHVsZSxcbiAgICAgICAgTmdTY3JvbGxiYXJNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgIFRhYnVsYXRvckNvbXBvbmVudCxcbiAgICAgICAgTWVudURpcmVjdGl2ZSxcbiAgICAgICAgU2Nyb2xsaW5nTW9kdWxlXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKFwiZmlsZVZpZXdwb3J0XCIpIGZpbGVzUmVmOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoVGFidWxhdG9yQ29tcG9uZW50KSB0YWJ1bGF0b3I6IFRhYnVsYXRvckNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ3JlbmFtZVRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSByZW5hbWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuXG4gICAgcHJpdmF0ZSBfcGF0aDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNldCBwYXRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0aGlzLl9wYXRoICYmIHRoaXMuY29uZmlnLm5hdmlnYXRlT25seVRvRGVzY2VuZGFudHMpIHtcbiAgICAgICAgICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aCgnLycpKVxuICAgICAgICAgICAgICAgIHZhbHVlID0gJy8nICsgdmFsdWU7XG4gICAgICAgICAgICBpZiAoIXZhbHVlLnN0YXJ0c1dpdGgodGhpcy5jb25maWcucGF0aCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByZXYgPSB0aGlzLl9wYXRoO1xuXG4gICAgICAgIHRoaXMuX3BhdGggPSB2YWx1ZTtcblxuICAgICAgICBpZiAocHJldiAhPSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5wYXRoQ2hhbmdlLm5leHQodGhpcy5wYXRoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncylcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRGb2xkZXIoKVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBwYXRoKCkge3JldHVybiB0aGlzLl9wYXRofVxuICAgIEBPdXRwdXQoKSBwYXRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBASW5wdXQoKSBjb25maWc6IE5neEZpbGVNYW5hZ2VyQ29uZmlndXJhdGlvbiA9IHt9O1xuICAgIEBJbnB1dCgpIHNob3dIaWRkZW5GaWxlcyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHZpZXdNb2RlOiBcImxpc3RcIiB8IFwiZ3JpZFwiID0gXCJncmlkXCI7XG4gICAgQElucHV0KCkgZ3JpZFNpemU6IFwic21hbGxcIiB8IFwibm9ybWFsXCIgfCBcImxhcmdlXCIgPSBcIm5vcm1hbFwiO1xuICAgIEBJbnB1dCgpIHRhYjogRmlsZVZpZXdUYWI7XG5cbiAgICBAT3V0cHV0KCkgZmlsZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIGZpbGVEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIGZvbGRlclNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGlyZWN0b3J5RGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZm9sZGVyRGJsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPERpcmVjdG9yeURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIG5ld1RhYiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBwYXRoOiBzdHJpbmc7IH0+KCk7XG4gICAgQE91dHB1dCgpIGxvYWRGaWxlcyA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBkaXJlY3RvcnlDb250ZW50czogRlNEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBASW5wdXQoKSBzZWxlY3Rpb246IEZTRGVzY3JpcHRvcltdID0gW107XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBASW5wdXQoKSB2YWx1ZTogRlNEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuXG4gICAgc2VsZWN0aW9uVGV4dDogc3RyaW5nO1xuXG4gICAgc29ydGVkRm9sZGVyczogYW55W11bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3J0ZXJzID0ge1xuICAgICAgICBcImEtelwiOiAoYTogRmlsZURlc2NyaXB0b3IsIGI6IEZpbGVEZXNjcmlwdG9yKSA9PiBhLm5hbWUgPiBiLm5hbWUgPyAxIDogLTEsXG4gICAgICAgIFwiei1hXCI6IChhOiBGaWxlRGVzY3JpcHRvciwgYjogRmlsZURlc2NyaXB0b3IpID0+IGIubmFtZSA+IGEubmFtZSA/IDEgOiAtMSxcbiAgICAgICAgXCJsYXN0bW9kXCI6IChhOiBGaWxlRGVzY3JpcHRvciwgYjogRmlsZURlc2NyaXB0b3IpID0+IGIuc3RhdHMubXRpbWVNcyAtIGEuc3RhdHMubXRpbWVNcyxcbiAgICAgICAgXCJmaXJzdG1vZFwiOiAoYTogRmlsZURlc2NyaXB0b3IsIGI6IEZpbGVEZXNjcmlwdG9yKSA9PiBhLnN0YXRzLm10aW1lTXMgLSBiLnN0YXRzLm10aW1lTXMsXG4gICAgICAgIFwic2l6ZVwiOiAoYTogRmlsZURlc2NyaXB0b3IsIGI6IEZpbGVEZXNjcmlwdG9yKSA9PiBiLnN0YXRzLnNpemUgLSBhLnN0YXRzLnNpemUsXG4gICAgICAgIFwidHlwZVwiOiAoYTogRmlsZURlc2NyaXB0b3IsIGI6IEZpbGVEZXNjcmlwdG9yKSA9PiBhLnBhdGguc3BsaXQoJy4nKS5zcGxpY2UoLTEsIDEpWzBdID4gYi5wYXRoLnNwbGl0KCcuJykuc3BsaWNlKC0xLCAxKVswXSA/IDEgOiAtMVxuICAgIH07XG4gICAgQElucHV0KCkgc29ydE9yZGVyOiBGaWxlU29ydGluZyA9IFwiYS16XCI7XG5cbiAgICBpdGVtc1BlclJvdyA9IDY7XG5cbiAgICAvLyBJZiB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMgaW5zaWRlIG9mIGFuIGFyY2hpdmVcbiAgICBpc0FyY2hpdmUgPSB0cnVlO1xuXG4gICAgdXNlcklzRHJhZ2dpbmdGaWxlID0gZmFsc2U7XG4gICAgZHJhZ2dpbmdPdmVyID0gZmFsc2U7XG5cbiAgICBzaG93TG9hZGVyID0gZmFsc2U7XG4gICAgaGlkZUxvYWRlciA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgY29sdW1ucyA9IFtcbiAgICAgICAgeyBpZDogXCJuYW1lXCIsIGxhYmVsOiBcIk5hbWVcIiB9LFxuICAgICAgICB7IGlkOiBcInNpemVcIiwgbGFiZWw6IFwiU2l6ZVwifSxcbiAgICAgICAgeyBpZDogXCJ0eXBlXCIsIGxhYmVsOiBcIlR5cGVcIn0sXG4gICAgICAgIHsgaWQ6IFwib3duZXJcIiwgbGFiZWw6IFwiT3duZXJcIn0sXG4gICAgICAgIHsgaWQ6IFwiZ3JvdXBcIiwgbGFiZWw6IFwiR3JvdXBcIn0sXG4gICAgICAgIHsgaWQ6IFwicGVybWlzc2lvbnNcIiwgbGFiZWw6IFwiUGVybWlzc2lvbnNcIn0sXG4gICAgICAgIHsgaWQ6IFwibG9jYXRpb25cIiwgbGFiZWw6IFwiTG9jYXRpb25cIn0sXG4gICAgICAgIHsgaWQ6IFwibW9kaWZpZWRcIiwgbGFiZWw6IFwiTW9kaWZpZWRcIn0sXG4gICAgICAgIHsgaWQ6IFwibW9kaWZpZWQtLXRpbWVcIiwgbGFiZWw6IFwiTW9kaWZpZWQgLSBUaW1lXCJ9LFxuICAgICAgICB7IGlkOiBcImFjY2Vzc2VkXCIsIGxhYmVsOiBcIkFjY2Vzc2VkXCJ9LFxuICAgICAgICB7IGlkOiBcImNyZWF0ZWRcIiwgbGFiZWw6IFwiQ3JlYXRlZFwifSxcbiAgICAgICAgeyBpZDogXCJyZWNlbmN5XCIsIGxhYmVsOiBcIlJlY2VuY3lcIn0sXG4gICAgICAgIHsgaWQ6IFwic3RhclwiLCBsYWJlbDogXCJTdGFyXCJ9LFxuICAgICAgICB7IGlkOiBcImRldGFpbGVkLXR5cGVcIiwgbGFiZWw6IFwiRGV0YWlsZWQgVHlwZVwifSxcbiAgICBdO1xuXG4gICAgY29scyA9IFtcbiAgICAgICAgeyBpZDogXCJuYW1lXCIsIGxhYmVsOiBcIk5hbWVcIiB9LFxuICAgICAgICB7IGlkOiBcInNpemVcIiwgbGFiZWw6IFwiU2l6ZVwiIH0sXG4gICAgICAgIHsgaWQ6IFwibW9kaWZpZWRcIiwgbGFiZWw6IFwiTW9kaWZpZWRcIiB9LFxuICAgICAgICB7IGlkOiBcInN0YXJcIiwgbGFiZWw6IFwiU3RhclwiIH1cbiAgICBdO1xuXG4gICAgZm9sZGVyQ29udGV4dE1lbnU6IE1lbnVJdGVtPEZTRGVzY3JpcHRvcj5bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IFwiTmV3IEZvbGRlclwiLFxuICAgICAgICAgICAgLy8gc2hvcnRjdXRMYWJlbDogXCJTaGlmdCtDdHJsK05cIixcbiAgICAgICAgICAgIGljb246IFwiY3JlYXRlX25ld19mb2xkZXJcIixcbiAgICAgICAgICAgIGFjdGlvbjogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIk5ldyBmb2xkZXIgZ29vZG5lc3NcIik7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2cub3BlbihcImZvbGRlci1yZW5hbWVcIiwgXCJAZG90Z2xpdGNoL25neC13ZWItY29tcG9uZW50c1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBwYXRoOiBkYXRhPy5wYXRoIHx8IHRoaXMucGF0aCwgbmFtZTogZGF0YT8ubmFtZSB8fCAnJywgY29uZmlnOiB0aGlzLmNvbmZpZyB9XG4gICAgICAgICAgICAgICAgfSkudGhlbihyID0+IHRoaXMubG9hZEZvbGRlcigpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJVcGxvYWQgZmlsZVwiLFxuICAgICAgICAgICAgLy8gc2hvcnRjdXRMYWJlbDogXCJDdHJsK0RcIixcbiAgICAgICAgICAgIGljb246IFwiZmlsZV91cGxvYWRcIixcbiAgICAgICAgICAgIGFjdGlvbjogKGV2dCkgPT4gdXBsb2FkRmlsZSh0aGlzLmZldGNoLCB0aGlzLmNvbmZpZywgdGhpcy5fcGF0aCwgZXZ0ID8gKGV2dC5wYXRoICsgZXZ0Lm5hbWUpIDogbnVsbCwgdGhpcy5maWxlTWFuYWdlci5jb250ZXh0VGFncykudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZEZvbGRlcigpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXBhcmF0b3JcIixcbiAgICAgICAgLy8ge1xuICAgICAgICAvLyAgICAgaXNEaXNhYmxlZDogKGRhdGEpID0+IHRydWUsXG4gICAgICAgIC8vICAgICBsYWJlbDogXCJfUF9hc3RlXCIsXG4gICAgICAgIC8vICAgICBpY29uOiBcImNvbnRlbnRfcGFzdGVcIixcbiAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJTZWxlY3QgX0FfbGxcIixcbiAgICAgICAgICAgIHNob3J0Y3V0TGFiZWw6IFwiQ3RybCtBXCIsXG4gICAgICAgICAgICBpY29uOiBcInNlbGVjdF9hbGxcIixcbiAgICAgICAgICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5fc29ydEZpbHRlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uVGV4dCA9IHRoaXMuZ2V0U2VsZWN0aW9uVGV4dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLm5leHQodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAvLyBcInNlcGFyYXRvclwiLFxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBsYWJlbDogXCJQX3Jfb3BlcnRpZXNcIixcbiAgICAgICAgLy8gICAgIGljb246IFwiZmluZF9pbl9wYWdlXCIsXG4gICAgICAgIC8vICAgICBhY3Rpb246IChldnQpID0+IHtcblxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgXTtcblxuICAgIGZpbGVDb250ZXh0TWVudTogTWVudUl0ZW08RlNEZXNjcmlwdG9yPltdID0gW107XG5cbiAgICBwZXJmb3JtQ2hlY2tzdW0ocGF0aCwgZGlnZXN0KSB7XG4gICAgICAgIC8vIHRoaXMud2luZG93TWFuYWdlci5vcGVuV2luZG93KHtcbiAgICAgICAgLy8gICAgIGFwcElkOiBcImNoZWNrc3VtXCIsXG4gICAgICAgIC8vICAgICBkYXRhOiB7IGRpZ2VzdCwgcGF0aCB9LFxuICAgICAgICAvLyAgICAgd29ya3NwYWNlOiB0aGlzLndpbmRvd1JlZi53b3Jrc3BhY2UsXG4gICAgICAgIC8vICAgICB3aWR0aDogNjAwLFxuICAgICAgICAvLyAgICAgaGVpZ2h0OiAyNTBcbiAgICAgICAgLy8gfSk7XG4gICAgfVxuXG4gICAgaWNvblJlc29sdmVyOiBJY29uUmVzb2x2ZXI7XG5cbiAgICBnZXQgbGliQ29uZmlnKCkgeyByZXR1cm4gdGhpcy5maWxlTWFuYWdlci5saWJDb25maWcgfVxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZldGNoOiBGZXRjaCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBrZXlib2FyZDogS2V5Ym9hcmRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmaWxlTWFuYWdlcjogRmlsZW1hbmFnZXJDb21wb25lbnQsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICAgKSB7XG5cblxuICAgICAgICB0aGlzLmljb25SZXNvbHZlciA9IG5ldyBJY29uUmVzb2x2ZXIodGhpcy5saWJDb25maWcuYXNzZXRQYXRoKTtcblxuICAgICAgICAvLyBjdHJsICsgYSA9PiBzZWxlY3QgYWxsXG4gICAgICAgIGtleWJvYXJkLm9uS2V5Q29tbWFuZCh7XG4gICAgICAgICAgICBrZXk6IFwiYVwiLFxuICAgICAgICAgICAgY3RybDogdHJ1ZSxcbiAgICAgICAgfSkuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMuX3NvcnRGaWx0ZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uVGV4dCA9IHRoaXMuZ2V0U2VsZWN0aW9uVGV4dCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UubmV4dCh0aGlzLnNlbGVjdGlvbik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGN0cmwgKyBjID0+IGNvcHkgZmlsZSBuYW1lcyB0byBjbGlwYm9hcmRcbiAgICAgICAga2V5Ym9hcmQub25LZXlDb21tYW5kKHtcbiAgICAgICAgICAgIGtleTogXCJjXCIsXG4gICAgICAgICAgICBjdHJsOiB0cnVlLFxuICAgICAgICB9KS5zdWJzY3JpYmUoZXZ0ID0+IHtcblxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBjdHJsICsgaCA9PiB0b2dnbGUgaGlkZGVuIGZpbGVzXG4gICAgICAgIGtleWJvYXJkLm9uS2V5Q29tbWFuZCh7XG4gICAgICAgICAgICBrZXk6IFwiaFwiLFxuICAgICAgICAgICAgY3RybDogdHJ1ZSxcbiAgICAgICAgICAgIGludGVycnVwdDogdHJ1ZVxuICAgICAgICB9KS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0hpZGRlbkZpbGVzID0gIXRoaXMuc2hvd0hpZGRlbkZpbGVzO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBGMiA9PiBSZW5hbWUgc2VsZWN0ZWQgZmlsZXNcbiAgICAgICAga2V5Ym9hcmQub25LZXlDb21tYW5kKHtcbiAgICAgICAgICAgIGtleTogXCJmMlwiLFxuICAgICAgICB9KS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgICAgIC8vIFJlbmFtZSBzZWxlY3RlZCBmaWxlKHMpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEVudGVyID0+IE9wZW4gc2VsZWN0ZWQgZmlsZXNcbiAgICAgICAga2V5Ym9hcmQub25LZXlDb21tYW5kKHtcbiAgICAgICAgICAgIGtleTogXCJFbnRlclwiLFxuICAgICAgICB9KS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gdGhpcy5kaXJlY3RvcnlDb250ZW50cy5maWx0ZXIoZGMgPT4gdGhpcy5zZWxlY3Rpb24uZmluZChpID0+IGkubmFtZSA9PSBkYy5uYW1lKSk7XG4gICAgICAgICAgICAvLyB0aGlzLndpbmRvd01hbmFnZXIub3BlbkZpbGVzKGZpbGVzIGFzIGFueSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIERlbGV0ZSA9PiBkZWxldGUgc2VsZWN0ZWQgZmlsZXNcbiAgICAgICAga2V5Ym9hcmQub25LZXlDb21tYW5kKHtcbiAgICAgICAgICAgIGtleTogXCJkZWxldGVcIixcbiAgICAgICAgfSkuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IHRoaXMuZGlyZWN0b3J5Q29udGVudHMuZmlsdGVyKGRjID0+IHRoaXMuc2VsZWN0aW9uLmZpbmQoaSA9PiBpLm5hbWUgPT0gZGMubmFtZSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gdGhpcy5sb2FkRm9sZGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmZpbGVDb250ZXh0TWVudSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJEb3dubG9hZFwiLFxuICAgICAgICAgICAgICAgIGljb246IFwiZG93bmxvYWRcIixcbiAgICAgICAgICAgICAgICBhY3Rpb246IChmaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBgJHt3aW5kb3cub3JpZ2lufSR7dGhpcy5jb25maWcuYXBpU2V0dGluZ3MuZG93bmxvYWRFbnRyeVVybH1gO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGF0aCA9IGZpbGUucGF0aCArIGZpbGUubmFtZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZS5raW5kID09IFwiZGlyZWN0b3J5XCIgJiYgIXBhdGguZW5kc1dpdGgoJy8nKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggKz0gXCIvXCI7XG5cbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ICs9IGAke3RhcmdldC5pbmNsdWRlcygnPycpID8gJyYnIDogJz8nfXBhdGg9JHtwYXRofSZuZ3N3LWJ5cGFzcz10cnVlYDtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2luZG93Lm9wZW4odGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IGZpbGUubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgbGluay5ocmVmID0gdGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICBsaW5rLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmsucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZU1hbmFnZXIuZmlsZURvd25sb2FkLm5leHQoZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJPcGVuIGluIG5ldyBUYWJcIixcbiAgICAgICAgICAgICAgICBpY29uOiBcIm9wZW5faW5fbmV3XCIsXG4gICAgICAgICAgICAgICAgaXNWaXNpYmxlOiAoZGF0YSkgPT4gZGF0YS5raW5kID09IFwiZGlyZWN0b3J5XCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyLmluaXRUYWIoZGF0YS5wYXRoICsgZGF0YS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIk9wZW4gd2l0aCBBcHBsaWNhdGlvbi4uLlwiLFxuICAgICAgICAgICAgLy8gICAgIGlzVmlzaWJsZTogKGRhdGEpID0+IGRhdGEua2luZCA9PSBcImZpbGVcIixcbiAgICAgICAgICAgIC8vICAgICBzaG9ydGN1dExhYmVsOiBcIkN0cmwrRFwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICBcInNlcGFyYXRvclwiLFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIkN1dFwiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiY29udGVudF9jdXRcIixcbiAgICAgICAgICAgIC8vICAgICBpc0Rpc2FibGVkOiBkYXRhID0+IHRydWUsXG4gICAgICAgICAgICAvLyAgICAgYWN0aW9uOiAoZXZ0KSA9PiB7XG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAvLyAgICAgbGFiZWw6IFwiQ29weVwiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiZmlsZV9jb3B5XCIsXG4gICAgICAgICAgICAvLyAgICAgaXNEaXNhYmxlZDogZGF0YSA9PiB0cnVlLFxuICAgICAgICAgICAgLy8gICAgIGNoaWxkcmVuUmVzb2x2ZXI6ICgpID0+IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCA1MDAwMDApKVxuICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgIC8vICAgICBsYWJlbDogXCJNb3ZlIFRvLi4uXCIsXG4gICAgICAgICAgICAvLyAgICAgaWNvbjogXCJkcml2ZV9maWxlX21vdmVcIixcbiAgICAgICAgICAgIC8vICAgICBzaG9ydGN1dExhYmVsOiBcIkN0cmwrQVwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAvLyAgICAgbGFiZWw6IFwiQ29weSBUby4uLlwiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiZm9sZGVyX2NvcHlcIixcbiAgICAgICAgICAgIC8vICAgICBzaG9ydGN1dExhYmVsOiBcIkN0cmwrQVwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiRGVsZXRlXCIsXG4gICAgICAgICAgICAgICAgaWNvbjogXCJkZWxldGVcIixcbiAgICAgICAgICAgICAgICAvLyBzaG9ydGN1dExhYmVsOiBcIkRlbFwiLFxuICAgICAgICAgICAgICAgIGlzVmlzaWJsZTogZGF0YSA9PiAhZGF0YS5wYXRoLmluY2x1ZGVzKFwiIy9cIiksIC8vIG9taXQgZmlsZXMgaW4gY29tcHJlc3NlZCBkaXJzXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBldnQucGF0aCArIGV2dC5uYW1lO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmRlbGV0ZUVudHJ5VXJsVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MuZGVsZXRlRW50cnlVcmxUZW1wbGF0ZShwYXRoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5kZWxldGVFbnRyeVVybDtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoLnBvc3QodXJsLCB7IHBhdGg6IGV2dC5wYXRoICsgZXZ0Lm5hbWUgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMubG9hZEZvbGRlcigpKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIlNocmVkIGZpbGVcIixcbiAgICAgICAgICAgIC8vICAgICBpY29uOiBcImRlbGV0ZV9mb3JldmVyXCIsXG4gICAgICAgICAgICAvLyAgICAgaXNWaXNpYmxlOiBkYXRhID0+ICFkYXRhLnBhdGguaW5jbHVkZXMoXCIjL1wiKSwgLy8gb21pdCBmaWxlcyBpbiBjb21wcmVzc2VkIGRpcnNcbiAgICAgICAgICAgIC8vICAgICBhY3Rpb246IChldnQpID0+IHtcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5mZXRjaC5wb3N0KGAvYXBpL2ZpbGVzeXN0ZW0vZGVsZXRlP3dpcGU9dHJ1ZWAsIHsgZmlsZXM6IFtldnQucGF0aCArIGV2dC5uYW1lXX0pXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLmxvYWRGb2xkZXIoKSlcbiAgICAgICAgICAgIC8vICAgICB9LFxuICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJSZW5hbWVcIixcbiAgICAgICAgICAgICAgICBpY29uOiBcImRyaXZlX2ZpbGVfcmVuYW1lX291dGxpbmVcIixcbiAgICAgICAgICAgICAgICBpc1Zpc2libGU6IGRhdGEgPT4gIWRhdGEucGF0aC5pbmNsdWRlcyhcIiMvXCIpLCAvLyBvbWl0IGZpbGVzIGluIGNvbXByZXNzZWQgZGlyc1xuICAgICAgICAgICAgICAgIC8vIHNob3J0Y3V0TGFiZWw6IFwiRjJcIixcbiAgICAgICAgICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oXCJmb2xkZXItcmVuYW1lXCIsIFwiQGRvdGdsaXRjaC9uZ3gtd2ViLWNvbXBvbmVudHNcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IHBhdGg6IGRhdGE/LnBhdGggfHwgdGhpcy5wYXRoLCBuYW1lOiBkYXRhPy5uYW1lIHx8ICcnLCBjb25maWc6IHRoaXMuY29uZmlnIH1cbiAgICAgICAgICAgICAgICAgICAgfSkudGhlbihyID0+IHRoaXMubG9hZEZvbGRlcigpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIEV4dHJhY3QgSGVyZVxuICAgICAgICAgICAgLy8gRXh0cmFjdCBUby4uLlxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIkV4dHJhY3QgSGVyZVwiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiZm9sZGVyX3ppcFwiLFxuICAgICAgICAgICAgLy8gICAgIHNob3J0Y3V0TGFiZWw6IFwiQ3RybCtBXCIsXG4gICAgICAgICAgICAvLyAgICAgaXNEaXNhYmxlZDogKGRhdGEpID0+ICEoZGF0YS5raW5kID09IFwiZmlsZVwiICYmIGRhdGEuZXh0ICE9IFwiLnppcFwiICYmIGlzQXJjaGl2ZShkYXRhKSksXG4gICAgICAgICAgICAvLyAgICAgYWN0aW9uOiAoZXZ0KSA9PiB7XG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIC8vICAgICB9LFxuICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgIC8vICAgICBsYWJlbDogXCJFeHRyYWN0IHRvLi4uXCIsXG4gICAgICAgICAgICAvLyAgICAgaWNvbjogXCJmb2xkZXJfemlwXCIsXG4gICAgICAgICAgICAvLyAgICAgc2hvcnRjdXRMYWJlbDogXCJDdHJsK0FcIixcbiAgICAgICAgICAgIC8vICAgICBpc0Rpc2FibGVkOiAoZGF0YSkgPT4gIShkYXRhLmtpbmQgPT0gXCJmaWxlXCIgJiYgZGF0YS5leHQgIT0gXCIuemlwXCIgJiYgaXNBcmNoaXZlKGRhdGEpKSxcbiAgICAgICAgICAgIC8vICAgICBhY3Rpb246IChldnQpID0+IHtcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIkNvbXByZXNzLi4uXCIsXG4gICAgICAgICAgICAvLyAgICAgaWNvbjogXCJmb2xkZXJfemlwXCIsXG4gICAgICAgICAgICAvLyAgICAgc2hvcnRjdXRMYWJlbDogXCJDdHJsK0FcIixcbiAgICAgICAgICAgIC8vICAgICBpc0Rpc2FibGVkOiAoZGF0YSkgPT4gZGF0YS5raW5kID09IFwiZmlsZVwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuICAgICAgICAgICAgLy8gICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiQ2hlY2tzdW1cIixcbiAgICAgICAgICAgICAgICBpY29uOiBcIm1hbmFnZV9zZWFyY2hcIixcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiAoZGF0YSkgPT4gZGF0YS5raW5kICE9IFwiZmlsZVwiLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk1ENVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAoZXZ0KSA9PiB0aGlzLnBlcmZvcm1DaGVja3N1bShldnQucGF0aCArIGV2dC5uYW1lLCBcIm1kNVwiKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiU0hBMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAoZXZ0KSA9PiB0aGlzLnBlcmZvcm1DaGVja3N1bShldnQucGF0aCArIGV2dC5uYW1lLCBcInNoYTFcIiksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlNIQTI1NlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAoZXZ0KSA9PiB0aGlzLnBlcmZvcm1DaGVja3N1bShldnQucGF0aCArIGV2dC5uYW1lLCBcInNoYTI1NlwiKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiU0hBNTEyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IChldnQpID0+IHRoaXMucGVyZm9ybUNoZWNrc3VtKGV2dC5wYXRoICsgZXZ0Lm5hbWUsIFwic2hhNTEyXCIpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgaXNWaXNpYmxlOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc0FyY2hpdmUgfHwgZGF0YS5raW5kID09IFwiZmlsZVwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIlN0YXJcIixcbiAgICAgICAgICAgIC8vICAgICBpY29uOiBcInN0YXJcIixcbiAgICAgICAgICAgIC8vICAgICBzaG9ydGN1dExhYmVsOiBcIkN0cmwrQVwiLFxuICAgICAgICAgICAgLy8gICAgIGFjdGlvbjogKGV2dCkgPT4ge1xuXG4gICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAvLyBcInNlcGFyYXRvclwiLFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIGxhYmVsOiBcIlBfcl9vcGVydGllc1wiLFxuICAgICAgICAgICAgLy8gICAgIGljb246IFwiZmluZF9pbl9wYWdlXCIsXG4gICAgICAgICAgICAvLyAgICAgYWN0aW9uOiAoZXZ0KSA9PiB7XG5cbiAgICAgICAgICAgIC8vICAgICB9LFxuICAgICAgICAgICAgLy8gfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGFzeW5jIGxvYWRGb2xkZXIoKSB7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuaGlkZUxvYWRlciA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsVGVtcGxhdGVcbiAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MubGlzdEVudHJpZXNVcmxUZW1wbGF0ZSh0aGlzLnBhdGgpXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsXG5cbiAgICAgICAgdGhpcy5mZXRjaC5wb3N0KHVybCwgeyBwYXRoOiB0aGlzLnBhdGgsIHNob3dIaWRkZW46IHRoaXMuc2hvd0hpZGRlbkZpbGVzIH0pXG4gICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVEZXNjcmlwdG9yW10gPSBkYXRhPy5maWxlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXJzOiBEaXJlY3RvcnlEZXNjcmlwdG9yW10gPSBkYXRhPy5kaXJzIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3JzID0gZmlsZXMuY29uY2F0KGRpcnMgYXMgYW55KSBhcyBGU0Rlc2NyaXB0b3JbXTtcblxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JzLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZbJ19pY29uJ10gPSB0aGlzLmljb25SZXNvbHZlci5yZXNvbHZlSWNvbihmKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGYua2luZCA9PSBcImZpbGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZlsnX2N0aW1lJ10gPSBuZXcgRGF0ZShmLnN0YXRzPy5jdGltZU1zKT8udG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZbJ19tdGltZSddID0gbmV3IERhdGUoZi5zdGF0cz8ubXRpbWVNcyk/LnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmWydfc2l6ZSddID0gdGhpcy5ieXRlc1RvU3RyaW5nKGYuc3RhdHM/LnNpemUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdG9yeUNvbnRlbnRzID0gZGVzY3JpcHRvcnM7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9zb3J0RmlsdGVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRGaWxlcy5uZXh0KGRlc2NyaXB0b3JzKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNvcnRlZEZvbGRlcnMubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbG93Um93cygpO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2l6ZSgpLCAyNTApO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNpemUoKSwgNTAwKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzaXplKCksIDEwMDApO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNpemUoKSwgMjUwMCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2l6ZSgpLCA1MDAwKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZSA9PiBjb25zb2xlLmVycm9yKGUpKVxuICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZUxvYWRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIGZsb3dSb3dzKCkge1xuICAgICAgICBsZXQgZmlsdGVyZWQgPSB0aGlzLl9zb3J0RmlsdGVyKCk7XG5cbiAgICAgICAgdGhpcy5zb3J0ZWRGb2xkZXJzID0gW107XG4gICAgICAgIGNvbnN0IG51bSA9IE1hdGguY2VpbChmaWx0ZXJlZC5sZW5ndGggLyB0aGlzLml0ZW1zUGVyUm93KTtcbiAgICAgICAgY29uc3QgaXRlcmF0aW9ucyA9IE1hdGgubWluKG51bSwgMTAwKTtcblxuICAgICAgICBmb3IgKGxldCByb3cgPSAwOyByb3cgPCBpdGVyYXRpb25zOyByb3crKykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnNvcnRlZEZvbGRlcnNbcm93XSlcbiAgICAgICAgICAgICAgICB0aGlzLnNvcnRlZEZvbGRlcnNbcm93XSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gcm93ICogdGhpcy5pdGVtc1BlclJvdzsgaSA8IChyb3cgKyAxKSAqIHRoaXMuaXRlbXNQZXJSb3cgJiYgaSA8IGZpbHRlcmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3J0ZWRGb2xkZXJzW3Jvd10ucHVzaChmaWx0ZXJlZFtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlbGVjdChpdGVtOiBGU0Rlc2NyaXB0b3IsIGV2dCkge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKHRoaXMua2V5Ym9hcmQuaXNTaGlmdFByZXNzZWQpIHtcbiAgICAgICAgICAgIGxldCBzdGFydCA9IHRoaXMuZGlyZWN0b3J5Q29udGVudHMuZmluZEluZGV4KGkgPT4gaS5uYW1lID09IHRoaXMuc2VsZWN0aW9uLnNsaWNlKC0xLCAxKVswXS5uYW1lKTtcbiAgICAgICAgICAgIGxldCBlbmQgPSB0aGlzLmRpcmVjdG9yeUNvbnRlbnRzLmluZGV4T2YoaXRlbSk7XG5cbiAgICAgICAgICAgIGlmIChzdGFydCA9PSAtMSlcbiAgICAgICAgICAgICAgICBzdGFydCA9IGVuZDtcblxuICAgICAgICAgICAgbGV0IGl0ZW1zID0gc3RhcnQgPiBlbmRcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGlyZWN0b3J5Q29udGVudHMuc2xpY2UoZW5kLCBzdGFydCArIDEpXG4gICAgICAgICAgICAgICAgOiB0aGlzLmRpcmVjdG9yeUNvbnRlbnRzLnNsaWNlKHN0YXJ0LCBlbmQgKyAxKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBpdGVtcztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmtleWJvYXJkLmlzQ3RybFByZXNzZWQpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3Rpb24uaW5jbHVkZXMoaXRlbSkpXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24ucHVzaChpdGVtKTtcbiAgICAgICAgICAgIGVsc2UgLy8gQ2FzZSB0aGF0IHdlIHNlbGVjdGVkIHRoZSBzYW1lIGl0ZW0gdHdpY2VcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zcGxpY2UodGhpcy5zZWxlY3Rpb24uaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbaXRlbV07XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25bMF0ua2luZCA9PSBcImRpcmVjdG9yeVwiKVxuICAgICAgICAgICAgICAgIHRoaXMuZm9sZGVyU2VsZWN0Lm5leHQodGhpcy5zZWxlY3Rpb25bMF0pO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZVNlbGVjdC5uZXh0KHRoaXMuc2VsZWN0aW9uWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLm5leHQodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgICB0aGlzLnNlbGVjdGlvblRleHQgPSB0aGlzLmdldFNlbGVjdGlvblRleHQoKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhmaWxlOiBGU0Rlc2NyaXB0b3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZmlsZSwgdGhpcyk7XG4gICAgICAgIGlmIChmaWxlLmtpbmQgPT0gXCJkaXJlY3RvcnlcIikge1xuICAgICAgICAgICAgdGhpcy5mb2xkZXJEYmxDbGljay5uZXh0KGZpbGUpO1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gZmlsZS5wYXRoICsgZmlsZS5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVsc2UgaWYgKGZpbGUuZXh0ID09IFwiemlwXCIpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuZmlsZURibENsaWNrLm5leHQoZmlsZSk7XG4gICAgICAgIC8vICAgICB0aGlzLnBhdGggPSBmaWxlLnBhdGggKyBmaWxlLm5hbWU7XG4gICAgICAgIC8vIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVEYmxDbGljay5uZXh0KGZpbGUpO1xuICAgICAgICAgICAgdGhpcy5maWxlU2VsZWN0Lm5leHQoZmlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvZ2dsZShpdGVtLCBzdGF0ZTogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICAgICAgaXRlbVsnX3ZhbHVlJ10gPSBzdGF0ZS5jaGVja2VkO1xuXG4gICAgICAgIC8vIFRPRE86IFdoYXQgY2F1c2VzIHRoaXMgdG8gYmUgbnVsbCB3aGVuIGluaXRpYWxpemVkIHdpdGggYW4gYXJyYXk/XG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLnZhbHVlLmZpbmRJbmRleCh2ID0+IHYgPT0gaXRlbSk7XG4gICAgICAgICAgICBpZiAoaSA+PSAwKVxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUuc3BsaWNlKGksIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBhc3luYyBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XG5cbiAgICAgICAgdGhpcy50YWJ1bGF0b3I/LnRhYmxlPy5nZXRSb3dzKCkuZm9yRWFjaChyID0+IHIuZ2V0RWxlbWVudCgpLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NvcnRGaWx0ZXIoKTogRmlsZURlc2NyaXB0b3JbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpcmVjdG9yeUNvbnRlbnRzID0gdGhpcy5kaXJlY3RvcnlDb250ZW50cz8uZmlsdGVyKGQgPT4gZC5raW5kID09ICdkaXJlY3RvcnknKVxuICAgICAgICAgICAgLmNvbmNhdCh0aGlzLmRpcmVjdG9yeUNvbnRlbnRzPy5maWx0ZXIoZCA9PiBkLmtpbmQgPT0gJ2ZpbGUnKVxuICAgICAgICAgICAgICAgIC5zb3J0KHRoaXMuc29ydGVyc1t0aGlzLnNvcnRPcmRlcl0pXG4gICAgICAgICAgICApIGFzIEZpbGVEZXNjcmlwdG9yW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3Rpb25UZXh0KCkge1xuICAgICAgICBjb25zdCBkaXJDb3VudCA9IHRoaXMuc2VsZWN0aW9uLmZpbHRlcihzID0+IHMua2luZCA9PSBcImRpcmVjdG9yeVwiKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGZpbGVDb3VudCA9IHRoaXMuc2VsZWN0aW9uLmZpbHRlcihzID0+IHMua2luZCA9PSBcImZpbGVcIikubGVuZ3RoO1xuXG4gICAgICAgIGlmIChkaXJDb3VudCArIGZpbGVDb3VudCA9PSAwKSByZXR1cm4gXCJcIjtcblxuICAgICAgICBjb25zdCB0b3RhbFNpemUgPVxuICAgICAgICAgICAgdGhpcy5kaXJlY3RvcnlDb250ZW50c1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoZCA9PiBkLmtpbmQgPT0gXCJmaWxlXCIpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihkID0+IHRoaXMuc2VsZWN0aW9uPy5maW5kKGkgPT4gaS5uYW1lID09IGQubmFtZSkpXG4gICAgICAgICAgICAgICAgLm1hcChkID0+IGRbJ3N0YXRzJ10uc2l6ZSkucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCk7XG5cbiAgICAgICAgaWYgKGRpckNvdW50ICsgZmlsZUNvdW50ID09IDEpXG4gICAgICAgICAgICByZXR1cm4gYFwiJHt0aGlzLnNlbGVjdGlvblswXS5uYW1lfVwiIHNlbGVjdGVkICgke3RoaXMuYnl0ZXNUb1N0cmluZyh0b3RhbFNpemUpfSlgO1xuXG4gICAgICAgIGlmIChkaXJDb3VudCA+IDAgJiYgZmlsZUNvdW50ID09IDApXG4gICAgICAgICAgICByZXR1cm4gYFwiJHtkaXJDb3VudH1cIiBmb2xkZXJzIHNlbGVjdGVkYDtcbiAgICAgICAgaWYgKGZpbGVDb3VudCA+IDAgJiYgZGlyQ291bnQgPT0gMClcbiAgICAgICAgICAgIHJldHVybiBgJHtmaWxlQ291bnR9IGl0ZW1zIHNlbGVjdGVkICgke3RoaXMuYnl0ZXNUb1N0cmluZyh0b3RhbFNpemUpfSlgO1xuXG4gICAgICAgIHJldHVybiBgJHtkaXJDb3VudH0gZm9sZGVyJHtkaXJDb3VudCA9PSAxID8gXCJcIiA6IFwic1wifSBzZWxlY3RlZCwgJHtmaWxlQ291bnR9IG90aGVyIGl0ZW0ke2ZpbGVDb3VudCA9PSAxID8gXCJcIiA6IFwic1wifSBzZWxlY3RlZCAoJHt0aGlzLmJ5dGVzVG9TdHJpbmcodG90YWxTaXplKX0pYDtcbiAgICB9XG5cbiAgICBieXRlc1RvU3RyaW5nKGJ5dGVzOiBudW1iZXIsIGRlY2ltYWxzID0gMikge1xuICAgICAgICBpZiAoIStieXRlcykgcmV0dXJuICcwIEJ5dGVzJztcblxuICAgICAgICBjb25zdCBrID0gMTAyNDtcbiAgICAgICAgY29uc3QgZG0gPSBkZWNpbWFscyA8IDAgPyAwIDogZGVjaW1hbHM7XG4gICAgICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xuXG4gICAgICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcblxuICAgICAgICByZXR1cm4gYCR7cGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpfSAke3NpemVzW2ldfWA7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2l6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVzUmVmKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzaXplKCksIDI1KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBib3VuZHMgPSAodGhpcy5maWxlc1JlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBuZXdDb2xDb3VudCA9IE1hdGguZmxvb3IoYm91bmRzLndpZHRoIC8gaXRlbVdpZHRoKTtcbiAgICAgICAgaWYgKG5ld0NvbENvdW50ICE9IHRoaXMuaXRlbXNQZXJSb3cpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNQZXJSb3cgPSBNYXRoLmZsb29yKGJvdW5kcy53aWR0aCAvIGl0ZW1XaWR0aCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtc1BlclJvdyA+IDEwMClcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zUGVyUm93ID0gMTtcblxuICAgICAgICAgICAgdGhpcy5mbG93Um93cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc29ydGVkRm9sZGVycz8ubGVuZ3RoID09IDApXG4gICAgICAgICAgICB0aGlzLmZsb3dSb3dzKCk7XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZ0OiBEcmFnRXZlbnQsIGl0ZW06IEZTRGVzY3JpcHRvcikge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBgJHt3aW5kb3cub3JpZ2lufS9hcGkvZmlsZXN5c3RlbS9kb3dubG9hZD9kaXI9JHtpdGVtLnBhdGh9JmZpbGU9JHtpdGVtLm5hbWV9YDtcblxuICAgICAgICBldnQuZGF0YVRyYW5zZmVyLmNsZWFyRGF0YSgpO1xuICAgICAgICAvLyBldnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvdXJpLWxpc3QnLCB0YXJnZXQpO1xuICAgICAgICAvLyBldnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ0Rvd25sb2FkVVJMJywgYHRleHQvdXJpLWxpc3Q6JHt0YXJnZXR9YCk7XG4gICAgICAgIGV2dC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIGl0ZW0ubmFtZSk7XG4gICAgfVxuXG4gICAgb25Ecm9wKGV2KSB7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKGV2LmRhdGFUcmFuc2Zlci5pdGVtcykge1xuICAgICAgICAgICAgLy8gVXNlIERhdGFUcmFuc2Zlckl0ZW1MaXN0IGludGVyZmFjZSB0byBhY2Nlc3MgdGhlIGZpbGUocylcbiAgICAgICAgICAgIFsuLi5ldi5kYXRhVHJhbnNmZXIuaXRlbXNdLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICAgIC8vIElmIGRyb3BwZWQgaXRlbXMgYXJlbid0IGZpbGVzLCByZWplY3QgdGhlbVxuICAgICAgICAgICAgaWYgKGl0ZW0ua2luZCA9PT0gXCJmaWxlXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gaXRlbS5nZXRBc0ZpbGUoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhg4oCmIGZpbGVbJHtpfV0ubmFtZSA9ICR7ZmlsZS5uYW1lfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc2UgRGF0YVRyYW5zZmVyIGludGVyZmFjZSB0byBhY2Nlc3MgdGhlIGZpbGUocylcbiAgICAgICAgICAgIFsuLi5ldi5kYXRhVHJhbnNmZXIuZmlsZXNdLmZvckVhY2goKGZpbGUsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGDigKYgZmlsZVske2l9XS5uYW1lID0gJHtmaWxlLm5hbWV9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hbWVDZWxsRm9ybWF0dGVyID0gKChjZWxsOiBDZWxsQ29tcG9uZW50LCBmb3JtYXR0ZXJQYXJhbXM6IHt9LCBvblJlbmRlcmVkOiBFbXB0eUNhbGxiYWNrKSA9PiB7XG4gICAgICAgIC8vIFRPRE86IFNhbml0aXplP1xuICAgICAgICBjb25zdCBpdGVtID0gY2VsbC5nZXREYXRhKCkgYXMgRlNEZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gYFxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGltZyBzdHlsZT1cImhlaWdodDogMjRweDsgbWFyZ2luLXJpZ2h0OiA2cHhcIiBzcmM9XCIke2l0ZW1bJ19pY29uJ10ucGF0aH1cIi8+XG4gICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW46IDBcIj4ke3RoaXMuc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBpdGVtWyd2YW5pdHlOYW1lJ10gfHwgaXRlbS5uYW1lKX08L3A+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIGA7XG4gICAgfSkuYmluZCh0aGlzKVxuXG4gICAgb25Sb3dDdHgoe2V2ZW50LCByb3d9KSB7XG4gICAgICAgIG9wZW5NZW51KHRoaXMubWF0RGlhbG9nLCB0aGlzLmZpbGVDb250ZXh0TWVudSwgcm93LmdldERhdGEoKSwgZXZlbnQpO1xuICAgIH1cblxuICAgIG9uUm93Q2xpY2soe2V2ZW50LCByb3csIGRhdGF9KSB7XG4gICAgICAgIC8vICRldmVudC5kYXRhWydfdmFsdWUnXSA9ICRldmVudC5kYXRhWydfdmFsdWUnXSA9PSB0cnVlID8gZmFsc2UgOiB0cnVlXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGV2ZW50LCByb3csIGRhdGEsIHRoaXMudmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IHJvd0VsID0gcm93LmdldEVsZW1lbnQoKTtcbiAgICAgICAgbGV0IHN0YXRlID0gcm93RWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWxlY3RlZCcpO1xuICAgICAgICBkYXRhWydfdmFsdWUnXSA9ICFzdGF0ZTtcblxuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgIHJvd0VsLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlLnB1c2goZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByb3dFbC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMudmFsdWUuZmluZEluZGV4KHYgPT4gdiA9PSBkYXRhKTtcbiAgICAgICAgICAgIGlmIChpID49IDApXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgc29ydCgpIHtcbiAgICAgICAgdGhpcy5fc29ydEZpbHRlcigpO1xuICAgIH1cbn1cblxuXG5cblxuXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0xvYWRlclwiPlxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIFtjbGFzcy5oaWRlXT1cImhpZGVMb2FkZXJcIiBtb2RlPVwicXVlcnlcIi8+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdlxuICAgIHN0eWxlPVwiZGlzcGxheTogY29udGVudHNcIlxuICAgIFtzdHlsZS4tLWZpbGVtYW5hZ2VyLWZpbGVpY29uLWJhY2tkcm9wXT1cIid1cmwoJyArIGljb25SZXNvbHZlci5wYXRoICsgJy9wb3AvZ2VuZXJpYy5zdmcpJ1wiXG4gICAgKGRyYWdzdGFydCk9XCJ1c2VySXNEcmFnZ2luZ0ZpbGUgPSB0cnVlXCJcbiAgICAoZHJhZ2VuZCk9XCJ1c2VySXNEcmFnZ2luZ0ZpbGUgPSBmYWxzZVwiXG4gICAgKGRyYWdvdmVyKT1cImRyYWdnaW5nT3ZlciA9IHRydWVcIlxuICAgIChkcmFnbGVhdmUpPVwiZHJhZ2dpbmdPdmVyID0gZmFsc2VcIlxuICAgIChvbmRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuPlxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImRyYWdnaW5nT3ZlclwiPjwvbmctY29udGFpbmVyPiAtLT5cbiAgICA8IS0tIEdyaWQgbW9kZSAtLT5cbiAgICA8bmctc2Nyb2xsYmFyXG4gICAgICAgICpuZ0lmPVwidmlld01vZGUgPT0gJ2dyaWQnXCJcbiAgICAgICAgY2xhc3M9XCJncmlkIHt7Z3JpZFNpemV9fSB7e2NvbmZpZy5pbWFnZVNpemUgfHwgJ25vcm1hbCd9fVwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3Rpb25Nb2RlXT1cImNvbmZpZy5tb2RlID09ICdmb2N1c0ZpbGVzJ1wiXG4gICAgICAgIFtjbGFzcy5zaG93RHJvcEFyZWFdPVwiZHJhZ2dpbmdPdmVyXCJcbiAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlXCJcbiAgICAgICAgdHJhY2s9XCJ2ZXJ0aWNhbFwiXG4gICAgICAgIHBvaW50ZXJFdmVudHNNZXRob2Q9XCJzY3JvbGxiYXJcIlxuICAgICAgICBbbmd4LWNvbnRleHRtZW51XT1cImZvbGRlckNvbnRleHRNZW51XCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXNpemUtb2JzZXJ2ZXJcIiAjZmlsZVZpZXdwb3J0PjwvZGl2PlxuICAgICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgICAgICBpdGVtU2l6ZT1cIjEzNFwiXG4gICAgICAgICAgICBzY3JvbGxWaWV3cG9ydFxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGlvbiA9IFtdOyBzZWxlY3Rpb25UZXh0ID0gJydcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgcm93IG9mIHNvcnRlZEZvbGRlcnNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3Rpb24uaW5jbHVkZXMoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZ2VuZXJpY109XCJpdGVtWydfaWNvbiddLm5lZWRzQmFja2Ryb3BcIlxuICAgICAgICAgICAgICAgICAgICBbbmd4LWNvbnRleHRtZW51XT1cImZpbGVDb250ZXh0TWVudVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ3gtbWVudS1jb250ZXh0XT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgI2NoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5tb2RlID09ICdmb2N1c0ZpbGVzJyAmJiBpdGVtLmtpbmQgPT0gJ2ZpbGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIml0ZW1bJ192YWx1ZSddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Ub2dnbGUoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogY29udGVudHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cIm9uSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwib25EcmFnU3RhcnQoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtWydfaWNvbiddLnBhdGhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD57e2l0ZW1bJ3Zhbml0eU5hbWUnXSB8fCBpdGVtLm5hbWV9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgPC9uZy1zY3JvbGxiYXI+XG5cbiAgICA8IS0tIExpc3QgbW9kZSAtLT5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwidmlld01vZGUgPT0gJ2xpc3QnXCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlXCJcbiAgICAgICAgW2NsYXNzLnNob3dEcm9wQXJlYV09XCJkcmFnZ2luZ092ZXJcIlxuICAgICAgICBbbmd4LWNvbnRleHRtZW51XT1cImZvbGRlckNvbnRleHRNZW51XCJcbiAgICA+XG4gICAgICAgIDxhcHAtdGFidWxhdG9yXG4gICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkaXJlY3RvcnlDb250ZW50c1wiXG4gICAgICAgICAgICBbY29sdW1uc109XCJbXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ25hbWUnLCB0aXRsZTogJ05hbWUnLCBmb3JtYXR0ZXI6IG5hbWVDZWxsRm9ybWF0dGVyIH0sXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ19zaXplJywgdGl0bGU6ICdTaXplJyB9LFxuICAgICAgICAgICAgICAgIHsgZmllbGQ6ICdfY3RpbWUnLCB0aXRsZTogJ0NyZWF0ZWQnIH0sXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ19tdGltZScsIHRpdGxlOiAnTW9kaWZpZWQnIH0sXG4gICAgICAgICAgICBdXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIntcbiAgICAgICAgICAgICAgICByb3dIZWlnaHQ6IDMyXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKHJvd0RibENsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudC5kYXRhKVwiXG4gICAgICAgICAgICAocm93Q29udGV4dCk9XCJvblJvd0N0eCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2VsZWN0LWhpbnRcIiAqbmdJZj1cInNlbGVjdGlvblRleHRcIj5cbiAgICB7e3NlbGVjdGlvblRleHR9fVxuPC9kaXY+XG5cbiJdfQ==
@@ -298,4 +298,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
298
298
  }], filesSelect: [{
299
299
  type: Output
300
300
  }] } });
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb21wb25lbnRzL2ZpbGVtYW5hZ2VyL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQWUseUJBQXlCLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFxSi9DLE1BQU0sT0FBTyxvQkFBb0I7SUFvRTdCLElBQUksZUFBZSxLQUFLLE9BQU8s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O2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0VGFiR3JvdXAsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERyYXdlckNvbnRhaW5lciwgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgQW5ndWxhclNwbGl0TW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zcGxpdCc7XG5cbmltcG9ydCB7IEZpbGVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLWdyaWQvZmlsZS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlU29ydGluZywgTkdYX1dFQl9DT01QT05FTlRTX0NPTkZJRywgTmd4V2ViQ29tcG9uZW50c0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEljb25SZXNvbHZlciB9IGZyb20gJy4vaWNvbi1yZXNvbHZlcic7XG5pbXBvcnQgeyBMYXp5TG9hZGVyU2VydmljZSwgTkdYX0xBWllfTE9BREVSX0NPTkZJRyB9IGZyb20gJy4uL2xhenktbG9hZGVyL2xhenktbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmV0Y2ggfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcblxuLy8gVE9ETzpcbi8qKlxuICogTXVsdGlwbGUgbXVzaWMgLyB2aWRlbyAvIGltYWdlIGZpbGVzIHNlbGVjdGVkIHR1cm5zIGludG8gYSBwbGF5bGlzdFxuICogRHJhZ2dpbmcgbXVzaWMgLyB2aWRlbyAvIGltYWdlIHF1ZXVlcyB0aGUgZmlsZShzKVxuICogQ2FuIHNhdmUgYW5kIGVkaXQgYSBsaXN0IG9mIGZpbGVzIGFzIHBsYXlsaXN0XG4gKiBDYW4gXCJsb29wXCIgXCJyYW5kb21pemVcIlxuICovXG5cbmV4cG9ydCB0eXBlIERpcmVjdG9yeURlc2NyaXB0b3IgPSB7XG4gICAga2luZDogXCJkaXJlY3RvcnlcIixcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nXG4gICAgY29udGVudHM6IHtcbiAgICAgICAgZGlyczogRGlyZWN0b3J5RGVzY3JpcHRvcltdLFxuICAgICAgICBmaWxlczogRmlsZURlc2NyaXB0b3JbXVxuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRmlsZURlc2NyaXB0b3IgPSB7XG4gICAga2luZDogXCJmaWxlXCIsXG4gICAgc3RhdHM6IHtcbiAgICAgICAgc2l6ZTogbnVtYmVyO1xuICAgICAgICAvLyBTaXplIGZvciB6aXBwZWQgZmlsZVxuICAgICAgICBjb21wcmVzc2VkU2l6ZT86IG51bWJlcixcbiAgICAgICAgYXRpbWVNczogbnVtYmVyO1xuICAgICAgICBtdGltZU1zOiBudW1iZXI7XG4gICAgICAgIGN0aW1lTXM6IG51bWJlcjtcbiAgICAgICAgYmlydGh0aW1lTXM6IG51bWJlcjtcbiAgICB9LFxuICAgIHBhdGg6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICBleHQ6IHN0cmluZyxcbiAgICAvLyBDb21tZW50IGZvciBlbnRyaWVzIGluIGEgemlwIGZpbGUuXG4gICAgY29tbWVudD86IHN0cmluZ1xufTtcblxuZXhwb3J0IHR5cGUgRlNEZXNjcmlwdG9yID0gRGlyZWN0b3J5RGVzY3JpcHRvciB8IEZpbGVEZXNjcmlwdG9yO1xuXG5leHBvcnQgdHlwZSBGaWxlVmlld1RhYiA9IHtcbiAgICBpZDogc3RyaW5nLFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgYnJlYWRjcnVtYjoge1xuICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICBsYWJlbDogc3RyaW5nXG4gICAgfVtdLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBzZWxlY3Rpb246IEZTRGVzY3JpcHRvcltdLFxuICAgIHZpZXdNb2RlOiBcImdyaWRcIiB8IFwibGlzdFwiLFxuICAgIGhpc3RvcnlJbmRleDogbnVtYmVyLFxuICAgIGhpc3Rvcnk6IHN0cmluZ1tdLFxuICAgIHNpZGViYXJJdGVtczogRlNEZXNjcmlwdG9yW10sXG4gICAgc29ydE9yZGVyOiBGaWxlU29ydGluZ1xufVxuXG5leHBvcnQgdHlwZSBOZ3hGaWxlTWFuYWdlckNvbmZpZ3VyYXRpb24gPSBQYXJ0aWFsPHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHBhdGhcbiAgICAgKi9cbiAgICBwYXRoOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gcm9vdCBwYXRoICh3aWxsIGFwcGVhciBhcyAnLycpLlxuICAgICAqIERlZmF1bHRzIHRvICcvJy5cbiAgICAgKlxuICAgICAqIFVzZXIgY2Fubm90IHZpZXcgb3V0c2lkZSBvZiB0aGlzIHBhdGguXG4gICAgICogICAoTm90IHRvIGJlIHVzZWQgYXMgYSBzZWN1cml0eSBtZWFzdXJlKVxuICAgICAqL1xuICAgIGNocm9vdFBhdGg6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFJlc3RyaWN0IHVzZXJzIHRvIG9ubHkgbmF2aWdhdGUgYXJvdW5kIHRvIHN1YnBhdGhzIG9mIHRoZSBzcGVjaWZpZWQgYHBhdGhgXG4gICAgICovXG4gICAgbmF2aWdhdGVPbmx5VG9EZXNjZW5kYW50czogYm9vbGVhbixcbiAgICBzaG93QnJlYWRjcnVtYjogYm9vbGVhbixcbiAgICBzaG93VHJlZXZpZXc6IGJvb2xlYW4sXG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBcInJvb3RcIiBwYXRoIGAvYFxuICAgICAqIERlZmF1bHRzIHRvIFwiU3RvcmFnZVwiXG4gICAgICovXG4gICAgcm9vdE5hbWU6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGJlIHN0b3JlZCBpbiBoaXN0b3J5LlxuICAgICAqL1xuICAgIG1heEhpc3RvcnlMZW5ndGg6IG51bWJlcixcblxuICAgIGFwaVNldHRpbmdzOiB7XG4gICAgICAgIGxpc3RFbnRyaWVzVXJsPzogc3RyaW5nLFxuICAgICAgICBsaXN0RW50cmllc1VybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkb3dubG9hZEVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICBkb3dubG9hZEVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIHVwbG9hZEVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICB1cGxvYWRFbnRyeVVybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkZWxldGVFbnRyeVVybD86IHN0cmluZyxcbiAgICAgICAgZGVsZXRlRW50cnlVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgcmVuYW1lRW50cnlVcmw/OiBzdHJpbmcsXG4gICAgICAgIHJlbmFtZUVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIGNyZWF0ZURpcmVjdG9yeVVybD86IHN0cmluZyxcbiAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmdcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdGhhdCBpbWFnZXMgYXJlIGxvYWRlZCBmcm9tLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYC9hc3NldHMvZG90Z2xpdGNoL3dlYmNvbXBvbmVudHMvYFxuICAgICAqL1xuICAgIGFzc2V0UGF0aDogc3RyaW5nLFxuICAgIHNpZGViYXJMb2NhdGlvblN0cmF0ZWd5OiBcImtub3duXCIgfCBcImN1cnJlbnREaXJlY3RvcnlcIixcblxuICAgIGljb25SZXNvbHZlcjogKGZpbGU6IEZTRGVzY3JpcHRvcikgPT4gc3RyaW5nLFxuXG4gICAgaW1hZ2VTaXplOiBcIm5vcm1hbFwiIHwgXCJzbWFsbFwiIHwgXCJodWdlXCIsXG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIHNlbGVjdGlvbk1vZGU6IFwic2luZ2xlXCIgfCBcIm11bHRpcGxlXCIsXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGRldGVybWluZXMgaWYgdGhlIGZpbGVtYW5hZ2VyIHNob3dzIHNlbGVjdGVkIGVudHJpZXNcbiAgICAgKlxuICAgICAqIElmIHNldCB0byBgZm9jdXNGaWxlc2AsIGZpbGUgcGF0aHMgdGhhdCBtYXRjaCBmcm9tIHRoZSBwcm92aWRlZCBgZm9jdXNlZEZpbGVzYFxuICAgICAqIHdpbGwgYmUgaGlnaGxpZ2h0ZWQsIGFuZCBjYW4gYmUgc2VsZWN0ZWQgLyBkZXNlbGVjdGVkLlxuICAgICAqL1xuICAgIG1vZGU6IFwiZm9jdXNGaWxlc1wiIHwgXCJub3JtYWxcIixcbiAgICBmb2N1c2VkRmlsZXM6IHN0cmluZ1tdXG59PlxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1maWxlbWFuYWdlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlbWFuYWdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgQW5ndWxhclNwbGl0TW9kdWxlLFxuICAgICAgICBGaWxlR3JpZENvbXBvbmVudCxcbiAgICAgICAgTWF0VGFic01vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgVHJlZVZpZXdDb21wb25lbnRcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRmlsZW1hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJykgdGFiR3JvdXA6IE1hdFRhYkdyb3VwO1xuICAgIEBWaWV3Q2hpbGRyZW4oRmlsZUdyaWRDb21wb25lbnQpIGZpbGVHcmlkczogRmlsZUdyaWRDb21wb25lbnRbXTtcbiAgICBAVmlld0NoaWxkKFRyZWVWaWV3Q29tcG9uZW50KSB0cmVlVmlldzogVHJlZVZpZXdDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZChUb29sYmFyQ29tcG9uZW50KSB0b29sYmFyOiBUb29sYmFyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoTWF0RHJhd2VyQ29udGFpbmVyKSBkcmF3ZXI6IE1hdERyYXdlckNvbnRhaW5lcjtcblxuICAgIEBJbnB1dCgpIGNvbmZpZzogTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBhcGlTZXR0aW5nczoge1xuICAgICAgICAgICAgbGlzdEVudHJpZXNVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vYCxcbiAgICAgICAgICAgIHVwbG9hZEVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBkb3dubG9hZEVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBkZWxldGVFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9gLFxuICAgICAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2ZvbGRlcmAsXG4gICAgICAgICAgICByZW5hbWVFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9yZW5hbWVgXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQElucHV0KCkgZ3JpZFNpemU6IFwic21hbGxcIiB8IFwibm9ybWFsXCIgfCBcImxhcmdlXCIgPSBcIm5vcm1hbFwiO1xuICAgIEBJbnB1dCgpIG1vZGU6IFwiZ3JpZFwiIHwgXCJsaXN0XCI7XG4gICAgQElucHV0KCkgY29udGV4dFRhZ3M6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuXG5cbiAgICBASW5wdXQoKSB2YWx1ZTogRlNEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuXG4gICAgZ3JpZFZhbHVlczogRlNEZXNjcmlwdG9yW11bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBmb2N1c2VkIGZpbGVzIGNoYW5nZS5cbiAgICAgKiBPbmx5IGF2YWlsYWJsZSBpbiBgZm9jdXNGaWxlc2AgbW9kZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZm9jdXNlZEZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYSBmaWxlIGlzIHVwbG9hZGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmaWxlVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYSBmaWxlIGlzIGRvd25sb2FkZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIGZpbGVEb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZVJlbmFtZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZURlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZUNvcHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbGVQYXN0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBmaWxlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZmlsZURibENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZm9sZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEaXJlY3RvcnlEZXNjcmlwdG9yPigpO1xuICAgIEBPdXRwdXQoKSBmb2xkZXJEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RGlyZWN0b3J5RGVzY3JpcHRvcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb25zIGNoYW5nZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZmlsZXNTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYW55IHNlbGVjdGlvbiBjaGFuZ2VzLCBzaW5nbGUgb3IgbXVsdGlwbGUgZmlsZXMuXG4gICAgICovXG4gICAgLy8gQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBzaG93SGlkZGVuRmlsZXMgPSBmYWxzZTtcbiAgICBzaG93U2lkZWJhciA9IHRydWU7XG4gICAgc2lkZWJhck92ZXJsYXkgPSBmYWxzZTtcbiAgICB3aWR0aCA9IDA7XG5cbiAgICBpc0hvbWVBbmNlc3RvciA9IGZhbHNlO1xuXG4gICAgY3VycmVudFRhYjogRmlsZVZpZXdUYWIgPSB7fSBhcyBhbnk7XG4gICAgZ2V0IGN1cnJlbnRGaWxlR3JpZCgpIHsgcmV0dXJuIHRoaXMuZmlsZUdyaWRzW3RoaXMudGFiSW5kZXhdIH1cbiAgICB0YWJJbmRleCA9IDA7XG4gICAgdGFiczogRmlsZVZpZXdUYWJbXSA9IFtdO1xuXG4gICAgaWNvblJlc29sdmVyOiBJY29uUmVzb2x2ZXI7XG5cbiAgICBjb25zdHJ1Y3RvciAoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkdYX1dFQl9DT01QT05FTlRTX0NPTkZJRykgcmVhZG9ubHkgbGliQ29uZmlnOiBOZ3hXZWJDb21wb25lbnRzQ29uZmlnID0ge30sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbGF6eUxvYWRlcjogTGF6eUxvYWRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBmZXRjaDogRmV0Y2hcbiAgICApIHtcbiAgICAgICAgbGF6eUxvYWRlci5yZWdpc3RlckNvbXBvbmVudCh7XG4gICAgICAgICAgICBpZDogXCJmb2xkZXItcmVuYW1lXCIsXG4gICAgICAgICAgICBncm91cDogXCJAZG90Z2xpdGNoL25neC13ZWItY29tcG9uZW50c1wiLFxuICAgICAgICAgICAgbG9hZDogKCkgPT4gaW1wb3J0KCcuL2ZvbGRlci1yZW5hbWUvZm9sZGVyLXJlbmFtZS5jb21wb25lbnQnKVxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuaWNvblJlc29sdmVyID0gbmV3IEljb25SZXNvbHZlcihsaWJDb25maWcuYXNzZXRQYXRoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0VGFiKHRoaXMuY29uZmlnLnBhdGgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSB0aGlzLnRhYnNbMF07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld0xvYWRDaGlsZHJlbih7aXRlbSwgY2J9KSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MubGlzdEVudHJpZXNVcmxUZW1wbGF0ZShpdGVtLnBhdGggKyBpdGVtLm5hbWUpXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsXG5cbiAgICAgICAgdGhpcy5mZXRjaC5wb3N0KHVybCwgeyBwYXRoOiBpdGVtLnBhdGggKyBpdGVtLm5hbWUsIHNob3dIaWRkZW46IHRoaXMuc2hvd0hpZGRlbkZpbGVzIH0pXG4gICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlyczogRGlyZWN0b3J5RGVzY3JpcHRvcltdID0gZGF0YS5kaXJzO1xuICAgICAgICAgICAgICAgIGNiKGRpcnMpO1xuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICBpbml0VGFiKHBhdGg6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhYnMucHVzaCh0aGlzLmN1cnJlbnRUYWIgPSB7XG4gICAgICAgICAgICBpZDogY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFRhYkxhYmVsKHBhdGgpLFxuICAgICAgICAgICAgYnJlYWRjcnVtYjogdGhpcy5jYWxjQnJlYWRjcnVtYihwYXRoKSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBzZWxlY3Rpb246IFtdLFxuICAgICAgICAgICAgdmlld01vZGU6IHRoaXMubW9kZSB8fCAnZ3JpZCcsXG4gICAgICAgICAgICBoaXN0b3J5SW5kZXg6IDAsXG4gICAgICAgICAgICBoaXN0b3J5OiBbXSxcbiAgICAgICAgICAgIHNpZGViYXJJdGVtczogW10sXG4gICAgICAgICAgICBzb3J0T3JkZXI6ICdhLXonXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gdGhpcy50YWJzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjbG9zZVRhYih0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRoaXMudGFicy5zcGxpY2UodGhpcy50YWJzLmZpbmRJbmRleCh0ID0+IHQuaWQgPT0gdGFiLmlkKSwgMSk7XG4gICAgfVxuXG4gICAgY2FsY0JyZWFkY3J1bWIocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGlmICghcGF0aCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShcIiMvXCIsICcvJyk7XG5cbiAgICAgICAgLy8gSWYgd2UncmUgYWN0aW5nIGxpa2Ugd2UncmUgaW4gYSBjaGFuZ2VkIHJvb3QsIHdlIHdpcGUgb3V0XG4gICAgICAgIC8vIGJyZWFkY3J1bWJzIGJlbG93IHRoZSByb290XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5jaHJvb3RQYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKHRoaXMuY29uZmlnLmNocm9vdFBhdGgsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKC9eXFwvLywgdGhpcy5jb25maWcuY2hyb290UGF0aCk7XG4gICAgICAgICAgICByZXR1cm4gcGFydHMubWFwKChwLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHBhcnRzLnNsaWNlKDAsIGkgKyAxKS5qb2luKCcvJyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogKHRoaXMuY29uZmlnLmNocm9vdFBhdGggKyAocGF0aCB8fCAnLycpKS5yZXBsYWNlKC9cXC8rL2csICcvJyksXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwIHx8IFwiXCJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHBhcnRzLm1hcCgocCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBwYXJ0cy5zbGljZSgwLCBpICsgMSkuam9pbignLycpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHBhdGggfHwgJy8nLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcCB8fCBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CcmVhZGNydW1iQ2xpY2soY3J1bWIpIHtcbiAgICAgICAgaWYgKGNydW1iLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIucGF0aCA9IGNydW1iLmlkO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGFiLmJyZWFkY3J1bWIgPSB0aGlzLmNhbGNCcmVhZGNydW1iKGNydW1iLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVGFiUGF0aENoYW5nZSh0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRhYi5sYWJlbCA9IHRoaXMuZ2V0VGFiTGFiZWwodGFiLnBhdGgpO1xuICAgICAgICB0YWIuYnJlYWRjcnVtYiA9IHRoaXMuY2FsY0JyZWFkY3J1bWIodGFiLnBhdGgpO1xuXG4gICAgICAgIHRhYi5oaXN0b3J5SW5kZXgrKztcbiAgICAgICAgdGFiLmhpc3RvcnkucHVzaCh0YWIucGF0aCk7XG4gICAgICAgIHRhYi5oaXN0b3J5LnNwbGljZSh0eXBlb2YgdGhpcy5jb25maWcubWF4SGlzdG9yeUxlbmd0aCA9PSAnbnVtYmVyJyA/IHRoaXMuY29uZmlnLm1heEhpc3RvcnlMZW5ndGggOiA1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld1NlbGVjdChpdGVtOiBGU0Rlc2NyaXB0b3IpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiLnBhdGggPSBpdGVtLnBhdGggKyBpdGVtLm5hbWU7XG4gICAgfVxuXG4gICAgb25UYWJMb2FkRmlsZXModGFiOiBGaWxlVmlld1RhYiwgZmlsZXM6IEZTRGVzY3JpcHRvcltdKSB7XG4gICAgICAgIGlmICh0YWIuc2lkZWJhckl0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gZmlsZXMuZmlsdGVyKGYgPT4gZi5raW5kID09IFwiZGlyZWN0b3J5XCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW1zID0gdGFiLnNpZGViYXJJdGVtcztcbiAgICAgICAgY29uc3QgZGlySXRlbXMgPSBmaWxlcy5maWx0ZXIoZiA9PiBmLmtpbmQgPT0gXCJkaXJlY3RvcnlcIik7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVjdXJzZShpdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoaSA9PiB0YWIucGF0aD8uc3RhcnRzV2l0aChpLnBhdGgpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXQgPSByZWN1cnNlKGN1cnJlbnRJdGVtcyk7XG5cbiAgICAgICAgaWYgKHRhcmdldClcbiAgICAgICAgICAgIHRhcmdldFsnX2NoaWxkcmVuJ10gPSBkaXJJdGVtcztcblxuICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gY3VycmVudEl0ZW1zO1xuICAgIH1cblxuICAgIG9uR3JpZFZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5ncmlkVmFsdWVzLmZsYXQoMSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKVxuICAgIH1cblxuICAgIGdldFRhYkxhYmVsKHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gcGF0aD8uc3BsaXQoJy8nKS5maWx0ZXIocCA9PiBwKS5wb3AoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvblJlc2l6ZSgpIHtcbiAgICAgICAgLy8gVHJpZ2dlciByZS1jYWxjdWxhdGlvbiBvZiB0aGUgdmlld1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5yZXNpemUoKSk7XG5cbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBib3VuZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy53aWR0aCA9IGJvdW5kcy53aWR0aDtcblxuICAgICAgICAvLyBJZiB0aGUgdmlldyBhcmVhIGlzIGxlc3MgdGhhbiA2NTBweCB3aWRlLCB1c2Ugb3ZlcmxheSB0aGUgc2lkZWJhciBwYW5lbFxuICAgICAgICB0aGlzLnNpZGViYXJPdmVybGF5ID0gYm91bmRzLndpZHRoIDwgNjUwO1xuICAgICAgICBpZiAodGhpcy5zaWRlYmFyT3ZlcmxheSA9PSBmYWxzZSAmJiBbLi4udGhpcy5kcmF3ZXIuX2RyYXdlcnNdWzBdLm9wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIG9uUmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiLnZpZXdNb2RlID09IFwiZ3JpZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFiLnNlbGVjdGlvblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5maWxlR3JpZHMuZm9yRWFjaChnID0+IGcuY2xlYXJTZWxlY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgLy8gVGVsbCB0aGUgY2hpbGQgZ3JpZCB0byByZWZyZXNoIGl0J3Mgc29ydGluZ1xuICAgIHJlZnJlc2hTb3J0aW5nKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5zb3J0KCkpO1xuICAgIH1cblxuICAgIHJlZnJlc2hEYXRhKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5sb2FkRm9sZGVyKCkpO1xuICAgIH1cblxuICAgIGdldEZpbGVEYXRhKGZpbGU6IEZpbGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybFRlbXBsYXRlXG4gICAgICAgICAgICA/IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLnJlbmFtZUVudHJ5VXJsVGVtcGxhdGUoZmlsZS5wYXRoICsgZmlsZS5uYW1lKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybDtcblxuICAgICAgICB1cmwgPSAodXJsLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPycpICsgYGRpcj0ke2ZpbGUucGF0aH0mZmlsZT0ke2ZpbGUubmFtZX1gO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxufVxuIiwiPGFwcC10b29sYmFyXG4gICAgW2N1cnJlbnRUYWJdPVwiY3VycmVudFRhYlwiXG4gICAgWyhzaG93SGlkZGVuRmlsZXMpXT1cInNob3dIaWRkZW5GaWxlc1wiXG4gICAgWyhzaG93U2lkZWJhcildPVwic2hvd1NpZGViYXJcIlxuICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICBbc2hvd0JhcmVNaW5pbXVtXT1cIndpZHRoIDwgNTAwICYmIGNvbmZpZy5zaG93QnJlYWRjcnVtYiAhPSBmYWxzZVwiXG4gICAgKG9uQnJlYWRjcnVtYkNsaWNrKT1cIm9uQnJlYWRjcnVtYkNsaWNrKCRldmVudClcIlxuLz5cblxuPG1hdC1kcmF3ZXItY29udGFpbmVyPlxuICAgIDxtYXQtZHJhd2VyICNkcmF3ZXIgbW9kZT1cIm92ZXJcIj5cbiAgICAgICAgPGFwcC10b29sYmFyXG4gICAgICAgICAgICAqbmdJZj1cIndpZHRoIDwgNTAwICYmIGNvbmZpZy5zaG93QnJlYWRjcnVtYiAhPSBmYWxzZVwiXG4gICAgICAgICAgICBbY3VycmVudFRhYl09XCJjdXJyZW50VGFiXCJcbiAgICAgICAgICAgIFsoc2hvd0hpZGRlbkZpbGVzKV09XCJzaG93SGlkZGVuRmlsZXNcIlxuICAgICAgICAgICAgWyhzaG93U2lkZWJhcildPVwic2hvd1NpZGViYXJcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgW2RyYXdlck1vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25CcmVhZGNydW1iQ2xpY2spPVwib25CcmVhZGNydW1iQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxhcHAtdHJlZS12aWV3XG4gICAgICAgICAgICBbZGF0YV09XCJjdXJyZW50VGFiLnNpZGViYXJJdGVtc1wiXG4gICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25UcmVlVmlld1NlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L21hdC1kcmF3ZXI+XG4gICAgPG1hdC1kcmF3ZXItY29udGVudD5cbiAgICAgICAgPGFzLXNwbGl0IGRpcmVjdGlvbj1cImhvcml6b250YWxcIiBbZ3V0dGVyU2l6ZV09XCJzaWRlYmFyT3ZlcmxheSA/IDAgOiAyXCIgW3VuaXRdPVwiJ3BpeGVsJ1wiIChkcmFnRW5kKT1cIm9uUmVzaXplRW5kKClcIj5cbiAgICAgICAgICAgIDxhcy1zcGxpdC1hcmVhXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWxlbWFuYWdlci1zaWRlYmFyLWJhY2tncm91bmQtY29sb3IsICMyYzJjMmMpXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCIyMTVcIlxuICAgICAgICAgICAgICAgIFttaW5TaXplXT1cIjIxNVwiXG4gICAgICAgICAgICAgICAgW21heFNpemVdPVwid2lkdGgvNFwiXG4gICAgICAgICAgICAgICAgW3Zpc2libGVdPVwiIXNpZGViYXJPdmVybGF5ICYmIGNvbmZpZy5zaG93VHJlZXZpZXcgIT0gZmFsc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2lkZWJhck92ZXJsYXkgJiYgY29uZmlnLnNob3dUcmVldmlldyAhPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXJyZW50VGFiLnNlbGVjdGlvbiA9IFtdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtdHJlZS12aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJjdXJyZW50VGFiLnNpZGViYXJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UcmVlVmlld1NlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXMtc3BsaXQtYXJlYT5cbiAgICAgICAgICAgIDxhcy1zcGxpdC1hcmVhIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmlsZW1hbmFnZXItYmFja2dyb3VuZC1jb2xvciwgIzI3MjcyNyk7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS10YWItaGVpZ2h0XT1cInRhYnMubGVuZ3RoID4gMSA/ICczNnB4JyA6ICcwJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYi1ncm91cCAjdGFiR3JvdXAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cImN1cnJlbnRUYWIgPSB0YWJzWyRldmVudC5pbmRleF1cIiBbKHNlbGVjdGVkSW5kZXgpXT1cInRhYkluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWIubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiKHRhYilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWZpbGUtZ3JpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpZXdNb2RlXT1cInRhYi52aWV3TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiXT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZFNpemVdPVwiZ3JpZFNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRPcmRlcl09XCJ0YWIuc29ydE9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0aW9uKV09XCJ0YWIuc2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocGF0aCldPVwidGFiLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhdGhDaGFuZ2UpPVwib25UYWJQYXRoQ2hhbmdlKHRhYilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiZ3JpZFZhbHVlc1tpXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25HcmlkVmFsdWVDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9hZEZpbGVzKT1cIm9uVGFiTG9hZEZpbGVzKHRhYiwgJGV2ZW50KVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlU2VsZWN0KT1cImZpbGVTZWxlY3QubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlRGJsQ2xpY2spPVwiZmlsZURibENsaWNrLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9sZGVyU2VsZWN0KT1cImZvbGRlclNlbGVjdC5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvbGRlckRibENsaWNrKT1cImZvbGRlckRibENsaWNrLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hcy1zcGxpdC1hcmVhPlxuICAgICAgICA8L2FzLXNwbGl0PlxuICAgIDwvbWF0LWRyYXdlci1jb250ZW50PlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cblxuIl19
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb21wb25lbnRzL2ZpbGVtYW5hZ2VyL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQWUseUJBQXlCLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUE4Si9DLE1BQU0sT0FBTyxvQkFBb0I7SUFvRTdCLElBQUksZUFBZSxLQUFLLE9BQU8s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O2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0VGFiR3JvdXAsIE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERyYXdlckNvbnRhaW5lciwgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgQW5ndWxhclNwbGl0TW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zcGxpdCc7XG5cbmltcG9ydCB7IEZpbGVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLWdyaWQvZmlsZS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlU29ydGluZywgTkdYX1dFQl9DT01QT05FTlRTX0NPTkZJRywgTmd4V2ViQ29tcG9uZW50c0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEljb25SZXNvbHZlciB9IGZyb20gJy4vaWNvbi1yZXNvbHZlcic7XG5pbXBvcnQgeyBMYXp5TG9hZGVyU2VydmljZSwgTkdYX0xBWllfTE9BREVSX0NPTkZJRyB9IGZyb20gJy4uL2xhenktbG9hZGVyL2xhenktbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmV0Y2ggfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcblxuLy8gVE9ETzpcbi8qKlxuICogTXVsdGlwbGUgbXVzaWMgLyB2aWRlbyAvIGltYWdlIGZpbGVzIHNlbGVjdGVkIHR1cm5zIGludG8gYSBwbGF5bGlzdFxuICogRHJhZ2dpbmcgbXVzaWMgLyB2aWRlbyAvIGltYWdlIHF1ZXVlcyB0aGUgZmlsZShzKVxuICogQ2FuIHNhdmUgYW5kIGVkaXQgYSBsaXN0IG9mIGZpbGVzIGFzIHBsYXlsaXN0XG4gKiBDYW4gXCJsb29wXCIgXCJyYW5kb21pemVcIlxuICovXG5cbmV4cG9ydCB0eXBlIERpcmVjdG9yeURlc2NyaXB0b3IgPSB7XG4gICAga2luZDogXCJkaXJlY3RvcnlcIixcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nXG4gICAgY29udGVudHM6IHtcbiAgICAgICAgZGlyczogRGlyZWN0b3J5RGVzY3JpcHRvcltdLFxuICAgICAgICBmaWxlczogRmlsZURlc2NyaXB0b3JbXVxuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRmlsZURlc2NyaXB0b3IgPSB7XG4gICAga2luZDogXCJmaWxlXCIsXG4gICAgc3RhdHM6IHtcbiAgICAgICAgc2l6ZTogbnVtYmVyO1xuICAgICAgICAvLyBTaXplIGZvciB6aXBwZWQgZmlsZVxuICAgICAgICBjb21wcmVzc2VkU2l6ZT86IG51bWJlcixcbiAgICAgICAgYXRpbWVNczogbnVtYmVyO1xuICAgICAgICBtdGltZU1zOiBudW1iZXI7XG4gICAgICAgIGN0aW1lTXM6IG51bWJlcjtcbiAgICAgICAgYmlydGh0aW1lTXM6IG51bWJlcjtcbiAgICB9LFxuICAgIHBhdGg6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICBleHQ6IHN0cmluZyxcbiAgICAvLyBDb21tZW50IGZvciBlbnRyaWVzIGluIGEgemlwIGZpbGUuXG4gICAgY29tbWVudD86IHN0cmluZ1xufTtcblxuZXhwb3J0IHR5cGUgRlNEZXNjcmlwdG9yID0gRGlyZWN0b3J5RGVzY3JpcHRvciB8IEZpbGVEZXNjcmlwdG9yO1xuXG5leHBvcnQgdHlwZSBGaWxlVmlld1RhYiA9IHtcbiAgICBpZDogc3RyaW5nLFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgYnJlYWRjcnVtYjoge1xuICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICBsYWJlbDogc3RyaW5nXG4gICAgfVtdLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBzZWxlY3Rpb246IEZTRGVzY3JpcHRvcltdLFxuICAgIHZpZXdNb2RlOiBcImdyaWRcIiB8IFwibGlzdFwiLFxuICAgIGhpc3RvcnlJbmRleDogbnVtYmVyLFxuICAgIGhpc3Rvcnk6IHN0cmluZ1tdLFxuICAgIHNpZGViYXJJdGVtczogRlNEZXNjcmlwdG9yW10sXG4gICAgc29ydE9yZGVyOiBGaWxlU29ydGluZ1xufVxuXG4vLyBUT0RPOiByZXBsYWNlIGh0dHAgY29uZmlnc1xudHlwZSBIdHRwQ29uZmlndXJhdGlvbiA9IChcbiAgICB7IHVybDogc3RyaW5nIH0gfFxuICAgIHsgdXJsVGVtcGxhdGU6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyB9XG4pICYge1xuICAgIG1ldGhvZD86IFwiZ2V0XCIgfCBcInB1dFwiIHwgXCJwb3N0XCIgfCBcInBhdGNoXCIgfCBcImRlbGV0ZVwiLFxuICAgIGhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG59XG5cbmV4cG9ydCB0eXBlIE5neEZpbGVNYW5hZ2VyQ29uZmlndXJhdGlvbiA9IFBhcnRpYWw8e1xuICAgIC8qKlxuICAgICAqIEluaXRpYWwgcGF0aFxuICAgICAqL1xuICAgIHBhdGg6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSByb290IHBhdGggKHdpbGwgYXBwZWFyIGFzICcvJykuXG4gICAgICogRGVmYXVsdHMgdG8gJy8nLlxuICAgICAqXG4gICAgICogVXNlciBjYW5ub3QgdmlldyBvdXRzaWRlIG9mIHRoaXMgcGF0aC5cbiAgICAgKiAgIChOb3QgdG8gYmUgdXNlZCBhcyBhIHNlY3VyaXR5IG1lYXN1cmUhKVxuICAgICAqL1xuICAgIGNocm9vdFBhdGg6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFJlc3RyaWN0IHVzZXJzIHRvIG9ubHkgbmF2aWdhdGUgYXJvdW5kIHRvIHN1YnBhdGhzIG9mIHRoZSBzcGVjaWZpZWQgYHBhdGhgXG4gICAgICovXG4gICAgbmF2aWdhdGVPbmx5VG9EZXNjZW5kYW50czogYm9vbGVhbixcbiAgICBzaG93QnJlYWRjcnVtYjogYm9vbGVhbixcbiAgICBzaG93VHJlZXZpZXc6IGJvb2xlYW4sXG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBcInJvb3RcIiBwYXRoIGAvYFxuICAgICAqIERlZmF1bHRzIHRvIFwiU3RvcmFnZVwiXG4gICAgICovXG4gICAgcm9vdE5hbWU6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGJlIHN0b3JlZCBpbiBoaXN0b3J5LlxuICAgICAqL1xuICAgIG1heEhpc3RvcnlMZW5ndGg6IG51bWJlcixcblxuICAgIGFwaVNldHRpbmdzOiB7XG4gICAgICAgIGxpc3RFbnRyaWVzVXJsPzogc3RyaW5nLFxuICAgICAgICBsaXN0RW50cmllc1VybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkb3dubG9hZEVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICBkb3dubG9hZEVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIHVwbG9hZEVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICB1cGxvYWRFbnRyeVVybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkZWxldGVFbnRyeVVybD86IHN0cmluZyxcbiAgICAgICAgZGVsZXRlRW50cnlVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgcmVuYW1lRW50cnlVcmw/OiBzdHJpbmcsXG4gICAgICAgIHJlbmFtZUVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIGNyZWF0ZURpcmVjdG9yeVVybD86IHN0cmluZyxcbiAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmdcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdGhhdCBpbWFnZXMgYXJlIGxvYWRlZCBmcm9tLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYC9hc3NldHMvZG90Z2xpdGNoL3dlYmNvbXBvbmVudHMvYFxuICAgICAqL1xuICAgIGFzc2V0UGF0aDogc3RyaW5nLFxuICAgIHNpZGViYXJMb2NhdGlvblN0cmF0ZWd5OiBcImtub3duXCIgfCBcImN1cnJlbnREaXJlY3RvcnlcIixcblxuICAgIGljb25SZXNvbHZlcjogKGZpbGU6IEZTRGVzY3JpcHRvcikgPT4gc3RyaW5nLFxuXG4gICAgaW1hZ2VTaXplOiBcIm5vcm1hbFwiIHwgXCJzbWFsbFwiIHwgXCJodWdlXCIsXG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIHNlbGVjdGlvbk1vZGU6IFwic2luZ2xlXCIgfCBcIm11bHRpcGxlXCIsXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGRldGVybWluZXMgaWYgdGhlIGZpbGVtYW5hZ2VyIHNob3dzIHNlbGVjdGVkIGVudHJpZXNcbiAgICAgKlxuICAgICAqIElmIHNldCB0byBgZm9jdXNGaWxlc2AsIGZpbGUgcGF0aHMgdGhhdCBtYXRjaCBmcm9tIHRoZSBwcm92aWRlZCBgZm9jdXNlZEZpbGVzYFxuICAgICAqIHdpbGwgYmUgaGlnaGxpZ2h0ZWQsIGFuZCBjYW4gYmUgc2VsZWN0ZWQgLyBkZXNlbGVjdGVkLlxuICAgICAqL1xuICAgIG1vZGU6IFwiZm9jdXNGaWxlc1wiIHwgXCJub3JtYWxcIixcbiAgICBmb2N1c2VkRmlsZXM6IHN0cmluZ1tdXG59PlxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1maWxlbWFuYWdlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlbWFuYWdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgQW5ndWxhclNwbGl0TW9kdWxlLFxuICAgICAgICBGaWxlR3JpZENvbXBvbmVudCxcbiAgICAgICAgTWF0VGFic01vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgVHJlZVZpZXdDb21wb25lbnRcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRmlsZW1hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJykgdGFiR3JvdXA6IE1hdFRhYkdyb3VwO1xuICAgIEBWaWV3Q2hpbGRyZW4oRmlsZUdyaWRDb21wb25lbnQpIGZpbGVHcmlkczogRmlsZUdyaWRDb21wb25lbnRbXTtcbiAgICBAVmlld0NoaWxkKFRyZWVWaWV3Q29tcG9uZW50KSB0cmVlVmlldzogVHJlZVZpZXdDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZChUb29sYmFyQ29tcG9uZW50KSB0b29sYmFyOiBUb29sYmFyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoTWF0RHJhd2VyQ29udGFpbmVyKSBkcmF3ZXI6IE1hdERyYXdlckNvbnRhaW5lcjtcblxuICAgIEBJbnB1dCgpIGNvbmZpZzogTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBhcGlTZXR0aW5nczoge1xuICAgICAgICAgICAgbGlzdEVudHJpZXNVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vYCxcbiAgICAgICAgICAgIHVwbG9hZEVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBkb3dubG9hZEVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBkZWxldGVFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9gLFxuICAgICAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2ZvbGRlcmAsXG4gICAgICAgICAgICByZW5hbWVFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9yZW5hbWVgXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQElucHV0KCkgZ3JpZFNpemU6IFwic21hbGxcIiB8IFwibm9ybWFsXCIgfCBcImxhcmdlXCIgPSBcIm5vcm1hbFwiO1xuICAgIEBJbnB1dCgpIG1vZGU6IFwiZ3JpZFwiIHwgXCJsaXN0XCI7XG4gICAgQElucHV0KCkgY29udGV4dFRhZ3M6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuXG5cbiAgICBASW5wdXQoKSB2YWx1ZTogRlNEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuXG4gICAgZ3JpZFZhbHVlczogRlNEZXNjcmlwdG9yW11bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBmb2N1c2VkIGZpbGVzIGNoYW5nZS5cbiAgICAgKiBPbmx5IGF2YWlsYWJsZSBpbiBgZm9jdXNGaWxlc2AgbW9kZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZm9jdXNlZEZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYSBmaWxlIGlzIHVwbG9hZGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmaWxlVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYSBmaWxlIGlzIGRvd25sb2FkZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIGZpbGVEb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZVJlbmFtZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZURlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZUNvcHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbGVQYXN0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBmaWxlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZmlsZURibENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZm9sZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEaXJlY3RvcnlEZXNjcmlwdG9yPigpO1xuICAgIEBPdXRwdXQoKSBmb2xkZXJEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RGlyZWN0b3J5RGVzY3JpcHRvcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb25zIGNoYW5nZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZmlsZXNTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYW55IHNlbGVjdGlvbiBjaGFuZ2VzLCBzaW5nbGUgb3IgbXVsdGlwbGUgZmlsZXMuXG4gICAgICovXG4gICAgLy8gQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBzaG93SGlkZGVuRmlsZXMgPSBmYWxzZTtcbiAgICBzaG93U2lkZWJhciA9IHRydWU7XG4gICAgc2lkZWJhck92ZXJsYXkgPSBmYWxzZTtcbiAgICB3aWR0aCA9IDA7XG5cbiAgICBpc0hvbWVBbmNlc3RvciA9IGZhbHNlO1xuXG4gICAgY3VycmVudFRhYjogRmlsZVZpZXdUYWIgPSB7fSBhcyBhbnk7XG4gICAgZ2V0IGN1cnJlbnRGaWxlR3JpZCgpIHsgcmV0dXJuIHRoaXMuZmlsZUdyaWRzW3RoaXMudGFiSW5kZXhdIH1cbiAgICB0YWJJbmRleCA9IDA7XG4gICAgdGFiczogRmlsZVZpZXdUYWJbXSA9IFtdO1xuXG4gICAgaWNvblJlc29sdmVyOiBJY29uUmVzb2x2ZXI7XG5cbiAgICBjb25zdHJ1Y3RvciAoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkdYX1dFQl9DT01QT05FTlRTX0NPTkZJRykgcmVhZG9ubHkgbGliQ29uZmlnOiBOZ3hXZWJDb21wb25lbnRzQ29uZmlnID0ge30sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbGF6eUxvYWRlcjogTGF6eUxvYWRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBmZXRjaDogRmV0Y2hcbiAgICApIHtcbiAgICAgICAgbGF6eUxvYWRlci5yZWdpc3RlckNvbXBvbmVudCh7XG4gICAgICAgICAgICBpZDogXCJmb2xkZXItcmVuYW1lXCIsXG4gICAgICAgICAgICBncm91cDogXCJAZG90Z2xpdGNoL25neC13ZWItY29tcG9uZW50c1wiLFxuICAgICAgICAgICAgbG9hZDogKCkgPT4gaW1wb3J0KCcuL2ZvbGRlci1yZW5hbWUvZm9sZGVyLXJlbmFtZS5jb21wb25lbnQnKVxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuaWNvblJlc29sdmVyID0gbmV3IEljb25SZXNvbHZlcihsaWJDb25maWcuYXNzZXRQYXRoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0VGFiKHRoaXMuY29uZmlnLnBhdGgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSB0aGlzLnRhYnNbMF07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld0xvYWRDaGlsZHJlbih7aXRlbSwgY2J9KSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MubGlzdEVudHJpZXNVcmxUZW1wbGF0ZShpdGVtLnBhdGggKyBpdGVtLm5hbWUpXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsXG5cbiAgICAgICAgdGhpcy5mZXRjaC5wb3N0KHVybCwgeyBwYXRoOiBpdGVtLnBhdGggKyBpdGVtLm5hbWUsIHNob3dIaWRkZW46IHRoaXMuc2hvd0hpZGRlbkZpbGVzIH0pXG4gICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlyczogRGlyZWN0b3J5RGVzY3JpcHRvcltdID0gZGF0YS5kaXJzO1xuICAgICAgICAgICAgICAgIGNiKGRpcnMpO1xuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICBpbml0VGFiKHBhdGg6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhYnMucHVzaCh0aGlzLmN1cnJlbnRUYWIgPSB7XG4gICAgICAgICAgICBpZDogY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFRhYkxhYmVsKHBhdGgpLFxuICAgICAgICAgICAgYnJlYWRjcnVtYjogdGhpcy5jYWxjQnJlYWRjcnVtYihwYXRoKSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBzZWxlY3Rpb246IFtdLFxuICAgICAgICAgICAgdmlld01vZGU6IHRoaXMubW9kZSB8fCAnZ3JpZCcsXG4gICAgICAgICAgICBoaXN0b3J5SW5kZXg6IDAsXG4gICAgICAgICAgICBoaXN0b3J5OiBbXSxcbiAgICAgICAgICAgIHNpZGViYXJJdGVtczogW10sXG4gICAgICAgICAgICBzb3J0T3JkZXI6ICdhLXonXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gdGhpcy50YWJzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjbG9zZVRhYih0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRoaXMudGFicy5zcGxpY2UodGhpcy50YWJzLmZpbmRJbmRleCh0ID0+IHQuaWQgPT0gdGFiLmlkKSwgMSk7XG4gICAgfVxuXG4gICAgY2FsY0JyZWFkY3J1bWIocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGlmICghcGF0aCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShcIiMvXCIsICcvJyk7XG5cbiAgICAgICAgLy8gSWYgd2UncmUgYWN0aW5nIGxpa2Ugd2UncmUgaW4gYSBjaGFuZ2VkIHJvb3QsIHdlIHdpcGUgb3V0XG4gICAgICAgIC8vIGJyZWFkY3J1bWJzIGJlbG93IHRoZSByb290XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5jaHJvb3RQYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKHRoaXMuY29uZmlnLmNocm9vdFBhdGgsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKC9eXFwvLywgdGhpcy5jb25maWcuY2hyb290UGF0aCk7XG4gICAgICAgICAgICByZXR1cm4gcGFydHMubWFwKChwLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHBhcnRzLnNsaWNlKDAsIGkgKyAxKS5qb2luKCcvJyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogKHRoaXMuY29uZmlnLmNocm9vdFBhdGggKyAocGF0aCB8fCAnLycpKS5yZXBsYWNlKC9cXC8rL2csICcvJyksXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwIHx8IFwiXCJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHBhcnRzLm1hcCgocCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBwYXJ0cy5zbGljZSgwLCBpICsgMSkuam9pbignLycpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHBhdGggfHwgJy8nLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcCB8fCBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CcmVhZGNydW1iQ2xpY2soY3J1bWIpIHtcbiAgICAgICAgaWYgKGNydW1iLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIucGF0aCA9IGNydW1iLmlkO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGFiLmJyZWFkY3J1bWIgPSB0aGlzLmNhbGNCcmVhZGNydW1iKGNydW1iLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVGFiUGF0aENoYW5nZSh0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRhYi5sYWJlbCA9IHRoaXMuZ2V0VGFiTGFiZWwodGFiLnBhdGgpO1xuICAgICAgICB0YWIuYnJlYWRjcnVtYiA9IHRoaXMuY2FsY0JyZWFkY3J1bWIodGFiLnBhdGgpO1xuXG4gICAgICAgIHRhYi5oaXN0b3J5SW5kZXgrKztcbiAgICAgICAgdGFiLmhpc3RvcnkucHVzaCh0YWIucGF0aCk7XG4gICAgICAgIHRhYi5oaXN0b3J5LnNwbGljZSh0eXBlb2YgdGhpcy5jb25maWcubWF4SGlzdG9yeUxlbmd0aCA9PSAnbnVtYmVyJyA/IHRoaXMuY29uZmlnLm1heEhpc3RvcnlMZW5ndGggOiA1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld1NlbGVjdChpdGVtOiBGU0Rlc2NyaXB0b3IpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiLnBhdGggPSBpdGVtLnBhdGggKyBpdGVtLm5hbWU7XG4gICAgfVxuXG4gICAgb25UYWJMb2FkRmlsZXModGFiOiBGaWxlVmlld1RhYiwgZmlsZXM6IEZTRGVzY3JpcHRvcltdKSB7XG4gICAgICAgIGlmICh0YWIuc2lkZWJhckl0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gZmlsZXMuZmlsdGVyKGYgPT4gZi5raW5kID09IFwiZGlyZWN0b3J5XCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW1zID0gdGFiLnNpZGViYXJJdGVtcztcbiAgICAgICAgY29uc3QgZGlySXRlbXMgPSBmaWxlcy5maWx0ZXIoZiA9PiBmLmtpbmQgPT0gXCJkaXJlY3RvcnlcIik7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVjdXJzZShpdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoaSA9PiB0YWIucGF0aD8uc3RhcnRzV2l0aChpLnBhdGgpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXQgPSByZWN1cnNlKGN1cnJlbnRJdGVtcyk7XG5cbiAgICAgICAgaWYgKHRhcmdldClcbiAgICAgICAgICAgIHRhcmdldFsnX2NoaWxkcmVuJ10gPSBkaXJJdGVtcztcblxuICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gY3VycmVudEl0ZW1zO1xuICAgIH1cblxuICAgIG9uR3JpZFZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5ncmlkVmFsdWVzLmZsYXQoMSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKVxuICAgIH1cblxuICAgIGdldFRhYkxhYmVsKHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gcGF0aD8uc3BsaXQoJy8nKS5maWx0ZXIocCA9PiBwKS5wb3AoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvblJlc2l6ZSgpIHtcbiAgICAgICAgLy8gVHJpZ2dlciByZS1jYWxjdWxhdGlvbiBvZiB0aGUgdmlld1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5yZXNpemUoKSk7XG5cbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBib3VuZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy53aWR0aCA9IGJvdW5kcy53aWR0aDtcblxuICAgICAgICAvLyBJZiB0aGUgdmlldyBhcmVhIGlzIGxlc3MgdGhhbiA2NTBweCB3aWRlLCB1c2Ugb3ZlcmxheSB0aGUgc2lkZWJhciBwYW5lbFxuICAgICAgICB0aGlzLnNpZGViYXJPdmVybGF5ID0gYm91bmRzLndpZHRoIDwgNjUwO1xuICAgICAgICBpZiAodGhpcy5zaWRlYmFyT3ZlcmxheSA9PSBmYWxzZSAmJiBbLi4udGhpcy5kcmF3ZXIuX2RyYXdlcnNdWzBdLm9wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIG9uUmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiLnZpZXdNb2RlID09IFwiZ3JpZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFiLnNlbGVjdGlvblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5maWxlR3JpZHMuZm9yRWFjaChnID0+IGcuY2xlYXJTZWxlY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgLy8gVGVsbCB0aGUgY2hpbGQgZ3JpZCB0byByZWZyZXNoIGl0J3Mgc29ydGluZ1xuICAgIHJlZnJlc2hTb3J0aW5nKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5zb3J0KCkpO1xuICAgIH1cblxuICAgIHJlZnJlc2hEYXRhKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5sb2FkRm9sZGVyKCkpO1xuICAgIH1cblxuICAgIGdldEZpbGVEYXRhKGZpbGU6IEZpbGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybFRlbXBsYXRlXG4gICAgICAgICAgICA/IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLnJlbmFtZUVudHJ5VXJsVGVtcGxhdGUoZmlsZS5wYXRoICsgZmlsZS5uYW1lKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybDtcblxuICAgICAgICB1cmwgPSAodXJsLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPycpICsgYGRpcj0ke2ZpbGUucGF0aH0mZmlsZT0ke2ZpbGUubmFtZX1gO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxufVxuIiwiPGFwcC10b29sYmFyXG4gICAgW2N1cnJlbnRUYWJdPVwiY3VycmVudFRhYlwiXG4gICAgWyhzaG93SGlkZGVuRmlsZXMpXT1cInNob3dIaWRkZW5GaWxlc1wiXG4gICAgWyhzaG93U2lkZWJhcildPVwic2hvd1NpZGViYXJcIlxuICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICBbc2hvd0JhcmVNaW5pbXVtXT1cIndpZHRoIDwgNTAwICYmIGNvbmZpZy5zaG93QnJlYWRjcnVtYiAhPSBmYWxzZVwiXG4gICAgKG9uQnJlYWRjcnVtYkNsaWNrKT1cIm9uQnJlYWRjcnVtYkNsaWNrKCRldmVudClcIlxuLz5cblxuPG1hdC1kcmF3ZXItY29udGFpbmVyPlxuICAgIDxtYXQtZHJhd2VyICNkcmF3ZXIgbW9kZT1cIm92ZXJcIj5cbiAgICAgICAgPGFwcC10b29sYmFyXG4gICAgICAgICAgICAqbmdJZj1cIndpZHRoIDwgNTAwICYmIGNvbmZpZy5zaG93QnJlYWRjcnVtYiAhPSBmYWxzZVwiXG4gICAgICAgICAgICBbY3VycmVudFRhYl09XCJjdXJyZW50VGFiXCJcbiAgICAgICAgICAgIFsoc2hvd0hpZGRlbkZpbGVzKV09XCJzaG93SGlkZGVuRmlsZXNcIlxuICAgICAgICAgICAgWyhzaG93U2lkZWJhcildPVwic2hvd1NpZGViYXJcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgW2RyYXdlck1vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25CcmVhZGNydW1iQ2xpY2spPVwib25CcmVhZGNydW1iQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxhcHAtdHJlZS12aWV3XG4gICAgICAgICAgICBbZGF0YV09XCJjdXJyZW50VGFiLnNpZGViYXJJdGVtc1wiXG4gICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25UcmVlVmlld1NlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICA8L21hdC1kcmF3ZXI+XG4gICAgPG1hdC1kcmF3ZXItY29udGVudD5cbiAgICAgICAgPGFzLXNwbGl0IGRpcmVjdGlvbj1cImhvcml6b250YWxcIiBbZ3V0dGVyU2l6ZV09XCJzaWRlYmFyT3ZlcmxheSA/IDAgOiAyXCIgW3VuaXRdPVwiJ3BpeGVsJ1wiIChkcmFnRW5kKT1cIm9uUmVzaXplRW5kKClcIj5cbiAgICAgICAgICAgIDxhcy1zcGxpdC1hcmVhXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWxlbWFuYWdlci1zaWRlYmFyLWJhY2tncm91bmQtY29sb3IsICMyYzJjMmMpXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCIyMTVcIlxuICAgICAgICAgICAgICAgIFttaW5TaXplXT1cIjIxNVwiXG4gICAgICAgICAgICAgICAgW21heFNpemVdPVwid2lkdGgvNFwiXG4gICAgICAgICAgICAgICAgW3Zpc2libGVdPVwiIXNpZGViYXJPdmVybGF5ICYmIGNvbmZpZy5zaG93VHJlZXZpZXcgIT0gZmFsc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2lkZWJhck92ZXJsYXkgJiYgY29uZmlnLnNob3dUcmVldmlldyAhPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjdXJyZW50VGFiLnNlbGVjdGlvbiA9IFtdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtdHJlZS12aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJjdXJyZW50VGFiLnNpZGViYXJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UcmVlVmlld1NlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXMtc3BsaXQtYXJlYT5cbiAgICAgICAgICAgIDxhcy1zcGxpdC1hcmVhIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmlsZW1hbmFnZXItYmFja2dyb3VuZC1jb2xvciwgIzI3MjcyNyk7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS10YWItaGVpZ2h0XT1cInRhYnMubGVuZ3RoID4gMSA/ICczNnB4JyA6ICcwJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYi1ncm91cCAjdGFiR3JvdXAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cImN1cnJlbnRUYWIgPSB0YWJzWyRldmVudC5pbmRleF1cIiBbKHNlbGVjdGVkSW5kZXgpXT1cInRhYkluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWIubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiKHRhYilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWZpbGUtZ3JpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpZXdNb2RlXT1cInRhYi52aWV3TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiXT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZFNpemVdPVwiZ3JpZFNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRPcmRlcl09XCJ0YWIuc29ydE9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0aW9uKV09XCJ0YWIuc2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocGF0aCldPVwidGFiLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhdGhDaGFuZ2UpPVwib25UYWJQYXRoQ2hhbmdlKHRhYilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiZ3JpZFZhbHVlc1tpXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25HcmlkVmFsdWVDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9hZEZpbGVzKT1cIm9uVGFiTG9hZEZpbGVzKHRhYiwgJGV2ZW50KVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlU2VsZWN0KT1cImZpbGVTZWxlY3QubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlRGJsQ2xpY2spPVwiZmlsZURibENsaWNrLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9sZGVyU2VsZWN0KT1cImZvbGRlclNlbGVjdC5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvbGRlckRibENsaWNrKT1cImZvbGRlckRibENsaWNrLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hcy1zcGxpdC1hcmVhPlxuICAgICAgICA8L2FzLXNwbGl0PlxuICAgIDwvbWF0LWRyYXdlci1jb250ZW50PlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cblxuIl19
@@ -8711,7 +8711,7 @@ class FileGridComponent {
8711
8711
  const url = this.config.apiSettings.deleteEntryUrlTemplate
8712
8712
  ? this.config.apiSettings.deleteEntryUrlTemplate(path)
8713
8713
  : this.config.apiSettings.deleteEntryUrl;
8714
- this.fetch.delete(url)
8714
+ this.fetch.post(url, { path: evt.path + evt.name })
8715
8715
  .then(() => this.loadFolder());
8716
8716
  },
8717
8717
  },