ctt-babylon 0.22.112 → 0.22.114

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.
@@ -47,7 +47,7 @@ export class BabylonBlogDetailsComponent {
47
47
  this.removeJsonLd();
48
48
  }
49
49
  updateJsonLd() {
50
- if (!this.title)
50
+ if (!this.title || typeof window === 'undefined')
51
51
  return;
52
52
  let lang;
53
53
  this.route.url.subscribe((segments) => {
@@ -199,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
199
199
  }], share: [{
200
200
  type: Input
201
201
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1ibG9nLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWJsb2ctZGV0YWlscy9iYWJ5bG9uLWJsb2ctZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYmxvZy1kZXRhaWxzL2JhYnlsb24tYmxvZy1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBR0wsSUFBSSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBSTdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFHOUQsc0VBQXNFO0FBS3RFLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBRyxDQUFDO0lBQy9DLFNBQVMsQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQUpRLFlBQVk7NkdBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsVUFBVSxFQUFFLElB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SztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0LFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFieWxvblRhZ3NJLCBCYWJ5bG9uVGV4dHNDb2xvcnNJIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1idXR0b24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25JbWFnZUkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24taW1hZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IG9yZ2FuaXphdGlvbl9uYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvb3JnYW5pemF0aW9uLW5hbWUudG9rZW4nO1xuaW1wb3J0IHsgQmFieWxvbkR5bmFtaWNIZWFkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IEJhYnlsb25CbG9nQ2F0ZWdvcnlJLCBCYWJ5bG9uQmxvZ1Bvc3RJIH0gZnJvbSAnLi4vYmFieWxvbi1ibG9nLWxpc3QnO1xuXG4vLyAtLS0gUElQRSBwYXJhIGNvbmZpYXIgZW4gZW5sYWNlcyBwcm92ZW5pZW50ZXMgZGUgY29udGVuaWRvIEhUTUwgLS0tXG5AUGlwZSh7XG4gICAgbmFtZTogJ3NhZmVIdG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTYWZlSHRtbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuICAgIHRyYW5zZm9ybShodG1sOiBzdHJpbmcpOiBTYWZlSHRtbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcbiAgICB9XG59XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLWJsb2ctZGV0YWlscycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQmFieWxvbkR5bmFtaWNIZWFkaW5nQ29tcG9uZW50LFxuICAgICAgICBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUsXG4gICAgICAgIFNhZmVIdG1sUGlwZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWJsb2ctZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhYnlsb24tYmxvZy1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkJsb2dEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHByZXRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFkZGl0aW9uYWwxPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFkZGl0aW9uYWwyPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFkZGl0aW9uYWwzPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFkZGl0aW9uYWw0Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGltZz86IEJhYnlsb25JbWFnZUk7XG4gICAgQElucHV0KCkgbWlkZGxlSW1nPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHRvcEltZz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0YWdzPzogQmFieWxvblRhZ3NJO1xuICAgIEBJbnB1dCgpIHRleHRDb2xvcnM/OiBCYWJ5bG9uVGV4dHNDb2xvcnNJO1xuICAgIEBJbnB1dCgpIGJ1dHRvbj86IEJhYnlsb25CdXR0b25JO1xuICAgIEBJbnB1dCgpIGNhdGVnb3J5PzogYW55O1xuICAgIEBJbnB1dCgpIGRhdGU/OiBEYXRlO1xuICAgIEBJbnB1dCgpIGNhdGVnb3JpZXM/OiBCYWJ5bG9uQmxvZ0NhdGVnb3J5SVtdO1xuICAgIEBJbnB1dCgpIHJlbGF0ZWRQb3N0c1RpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNhdGVnb3JpZXNUaXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSByZWxhdGVkUG9zdHM/OiBCYWJ5bG9uQmxvZ1Bvc3RJW10gPSBbXTtcbiAgICBASW5wdXQoKSBzZWFyY2hQbGFjZUhvbGRlcj86IHN0cmluZztcbiAgICBASW5wdXQoKSBzaGFyZT86IHN0cmluZztcblxuICAgIHByaXZhdGUgb3JnYW5pemF0aW9uTmFtZSA9IGluamVjdChvcmdhbml6YXRpb25fbmFtZSk7XG4gICAgcHJpdmF0ZSBzY3JpcHRJZCA9ICdiYWJ5bG9uLWpzb24tbGQnO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNoYW5nZXNbJ3RpdGxlJ10gfHxcbiAgICAgICAgICAgIGNoYW5nZXNbJ2Rlc2NyaXB0aW9uJ10gfHxcbiAgICAgICAgICAgIGNoYW5nZXNbJ2RhdGUnXSB8fFxuICAgICAgICAgICAgY2hhbmdlc1snaW1nJ11cbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUpzb25MZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlSnNvbkxkKCk7XG4gICAgfVxuICAgIHByaXZhdGUgdXBkYXRlSnNvbkxkKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGl0bGUpIHJldHVybjtcbiAgICAgICAgbGV0IGxhbmc7XG4gICAgICAgIHRoaXMucm91dGUudXJsLnN1YnNjcmliZSgoc2VnbWVudHMpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWdtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgbGFuZyA9IHNlZ21lbnRzWzBdLnBhdGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxhbmcgPSAnZXMnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGRvbWFpbiA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnLycgKyBsYW5nO1xuICAgICAgICBjb25zdCBzY2hlbWEgPSB7XG4gICAgICAgICAgICAnQGNvbnRleHQnOiAnaHR0cHM6Ly9zY2hlbWEub3JnJyxcbiAgICAgICAgICAgICdAZ3JhcGgnOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAnQHR5cGUnOiAnQmxvZ1Bvc3RpbmcnLFxuICAgICAgICAgICAgICAgICAgICBoZWFkbGluZTogdGhpcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuaHRtbFRvVGV4dCh0aGlzLmFkZGl0aW9uYWwxKSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IHRoaXMuaW1nPy5zcmMgPyBbdGhpcy5pbWcuc3JjXSA6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkYXRlUHVibGlzaGVkOiB0aGlzLmRhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUodGhpcy5kYXRlKS50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgICAgICBkYXRlTW9kaWZpZWQ6IHRoaXMuZGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBuZXcgRGF0ZSh0aGlzLmRhdGUpLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJycsXG4gICAgICAgICAgICAgICAgICAgICdAYXV0aG9yJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0B0eXBlJzogJ09yZ2FuaXphdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLm9yZ2FuaXphdGlvbk5hbWUgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGRvbWFpbixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbWFpbkVudGl0eU9mUGFnZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0B0eXBlJzogJ1dlYlBhZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0BpZCc6IHRoaXMuY3VycmVudFVybCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgJ0B0eXBlJzogJ1dlYlBhZ2UnLFxuICAgICAgICAgICAgICAgICAgICAnQGlkJzogdGhpcy5jdXJyZW50VXJsLFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHRoaXMuY3VycmVudFVybCxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgaW5MYW5ndWFnZTogbGFuZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmluc2VydFNjcmlwdChzY2hlbWEpO1xuICAgIH1cbiAgICBwcml2YXRlIGluc2VydFNjcmlwdChzY2hlbWE6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUpzb25MZCgpO1xuXG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIHNjcmlwdC50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xuICAgICAgICBzY3JpcHQuaWQgPSB0aGlzLnNjcmlwdElkO1xuICAgICAgICBzY3JpcHQudGV4dCA9IEpTT04uc3RyaW5naWZ5KHNjaGVtYSk7XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfVxuICAgIHByaXZhdGUgcmVtb3ZlSnNvbkxkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2NyaXB0SWQpO1xuICAgICAgICBpZiAoc2NyaXB0KSB7XG4gICAgICAgICAgICBzY3JpcHQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGh0bWxUb1RleHQoY29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghY29udGVudCB8fCAhY29udGVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBjb250ZW50O1xuXG4gICAgICAgIHJldHVybiB0ZW1wRGl2LnRleHRDb250ZW50IHx8IHRlbXBEaXYuaW5uZXJUZXh0IHx8ICcnO1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50VXJsKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuICcnO1xuICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgfVxuXG4gICAgZ2V0IHNoYXJlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50aXRsZSA/PyAnJztcbiAgICB9XG5cbiAgICBnZXQgZmFjZWJvb2tTaGFyZVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB1cmwgPSBlbmNvZGVVUkkodGhpcy5jdXJyZW50VXJsKTtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT0ke3VybH1gO1xuICAgIH1cblxuICAgIGdldCB0d2l0dGVyU2hhcmVVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gZW5jb2RlVVJJKHRoaXMuY3VycmVudFVybCk7XG4gICAgICAgIGNvbnN0IHRleHQgPSBlbmNvZGVVUklDb21wb25lbnQodGhpcy5zaGFyZVRleHQpO1xuICAgICAgICByZXR1cm4gYGh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3VybD0ke3VybH0mdGV4dD0ke3RleHR9YDtcbiAgICB9XG5cbiAgICBnZXQgbGlua2VkaW5TaGFyZVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB1cmwgPSBlbmNvZGVVUkkodGhpcy5jdXJyZW50VXJsKTtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3d3dy5saW5rZWRpbi5jb20vc2hhcmluZy9zaGFyZS1vZmZzaXRlLz91cmw9JHt1cmx9YDtcbiAgICB9XG5cbiAgICBnZXQgaGFzU2lkZWJhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuY2F0ZWdvcmllc1RpdGxlIHx8IHRoaXMucmVsYXRlZFBvc3RzVGl0bGUpO1xuICAgIH1cbn1cbiIsIjxhcnRpY2xlIGNsYXNzPVwiYmFieWxvbl9fYmxvZy1kZXRhaWwgbWFyZ2luLW1haW5cIj5cbiAgICBAaWYgKGJ1dHRvbiAmJiBidXR0b24ubGFiZWwpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bnNfX2JveCBib3gtY29udGFpbmVyIGNvbC1sZy04IG9mZnNldC1sZy0yXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtocmVmXT1cImJ1dHRvbi51cmxcIlxuICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJidXR0b24ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWxpbmtcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uLmxhYmVsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhYnlsb24tYXJyb3ctbGVmdC1iaWdcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPGI+e3sgYnV0dG9uLmxhYmVsIH19PC9iPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGhlYWRlciBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBjc19wbHJfMTAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnRyb19pbmZvIHRpdGxlLWNvbnRhaW5lciBjb2wtbGctOCBvZmZzZXQtbGctMlwiPlxuICAgICAgICAgICAgQGlmICh0aXRsZSkge1xuICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cInRpdGxlIGNzX21iXzEzXCI+e3sgdGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX3Bvc3RfbWV0YV80IGNzX21iXzEzIHByZXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgQGlmIChjYXRlZ29yeT8ubmFtZUlkZW50aWZpZXIgfHwgY2F0ZWdvcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY2F0ZWdvcnk/Lm5hbWVJZGVudGlmaWVyIHx8IGNhdGVnb3J5IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZGF0ZSB8IGRhdGU6ICdkZC9NTS95eXl5JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBjc19wbHJfMTAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY3NfZ2FwX3lfbGdfODBcIj5cbiAgICAgICAgICAgIDxkaXYgbmdDbGFzcz1cImNvbC1sZy04IG9mZnNldC1sZy0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX2Jsb2dfZGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfaW1hZ2VfbGF5ZXIgY3NfYWJvdXRfaW1nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN1YnRpdGxlICYmIHRvcEltZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRpdGxlLS1zbWFsbCB0b3AtaW1nXCI+e3sgc3VidGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgoaW1nICYmICFtaWRkbGVJbWcpIHx8ICggaW1nICYmIHRvcEltZykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaW1nLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaW1nLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInY3MtLXJhZGl1cycgKyAodG9wSW1nID8gJyB0b3AtaW1nJyA6ICcnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaW1nLm5kVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaW1nLm5kVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW50cm9faW5mbyBuby1hbGlnblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJkZXNjcmlwdGlvbiB8IHNhZmVIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN1YnRpdGxlICYmICF0b3BJbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0aXRsZS0tc21hbGxcIj57eyBzdWJ0aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1BZGRpdGlvbmFsMSBpcyB1c2VkIG9uIGJsb2cgbGlzdCBmb3IgcmVzdW1lIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChhZGRpdGlvbmFsMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJhZGRpdGlvbmFsMiB8IHNhZmVIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGltZyAmJiBtaWRkbGVJbWcgJiYgIXRvcEltZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpbWcuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpbWcuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjcy0tcmFkaXVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpbWcubmRUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpbWcubmRUaXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWRkaXRpb25hbDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiYWRkaXRpb25hbDMgfCBzYWZlSHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChhZGRpdGlvbmFsNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJhZGRpdGlvbmFsNCB8IHNhZmVIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoIWhhc1NpZGViYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZvb3RlciBjbGFzcz1cImNzX3Bvc3Rfc2hhcmUgZC1sZy1ub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic2hhcmVCdXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9uICYmIGJ1dHRvbi5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuc19fYm94XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImJ1dHRvbi51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJidXR0b24ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJ2b2x2ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1hcnJvdy1sZWZ0LWJpZ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57eyBidXR0b24ubGFiZWwgfX08L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmICghaGFzU2lkZWJhcikge1xuICAgICAgICAgICAgICAgIDxhc2lkZSBjbGFzcz1cImNvbC1sZy0xIGQtbm9uZSBkLWxnLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFyZV9zaWRlYmFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic2hhcmVCdXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2hhcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNoYXJlX2xhYmVsXCI+e3sgc2hhcmUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYXNpZGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGhhc1NpZGViYXIpIHtcbiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9XCJjb2wtbGctNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Nfc2lkZWJhciBjc19yaWdodF9zaWRlYmFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Nfc2lkZWJhcl9pdGVtIHdpZGdldF9jYXRlZ29yaWVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjYXRlZ29yaWVzVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1iYWJ5bG9uLWR5bmFtaWMtaGVhZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhZ109XCJ0YWdzPy5jYXRlZ29yaWVzVGl0bGUgfHwgJ2g0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3NDbGFzcz1cInRpdGxlLS1zbWFsbCBtYi0tMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInRleHRDb2xvcnM/LmNhdGVnb3JpZXNUaXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudF09XCJjYXRlZ29yaWVzVGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9saWItYmFieWxvbi1keW5hbWljLWhlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY2F0ZWdvcmllcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5IG9mIGNhdGVnb3JpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJjYXQtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbj8udXJsICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnP2NhdGVnb3J5PScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5Py50aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBjYXRlZ29yeT8udGl0bGUgfX0gKHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk/LnBvc3RzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk8L2FcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Nfc2lkZWJhcl9pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZWxhdGVkUG9zdHNUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWJhYnlsb24tZHluYW1pYy1oZWFkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFnXT1cInRhZ3M/LmxhdGVzdFBvc3RzVGl0bGUgfHwgJ2g0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3NDbGFzcz1cInRpdGxlLS1zbWFsbCBtYi0tMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInRleHRDb2xvcnM/LmxhdGVzdFBvc3RzVGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwicmVsYXRlZFBvc3RzVGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9saWItYmFieWxvbi1keW5hbWljLWhlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocmVsYXRlZFBvc3RzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiY3NfcmVjZW50X3Bvc3RzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChwb3N0IG9mIHJlbGF0ZWRQb3N0czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfcmVjZW50X3Bvc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoM1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGl0bGUtLXNtYWxsZXIgbWItLTEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdC5wb3N0VXJsPy5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3QucG9zdFVybD8udXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3QucG9zdFVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ubGlua1R5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IHBvc3Q/LnRpdGxlIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocG9zdD8uZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbSBjbGFzcz1cInRleHQtLXNtYWxsXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdD8uZGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkYXRlOiAnbWVkaXVtRGF0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYXNpZGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NoYXJlQnV0dG9ucz5cbiAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPVwiY3Nfc29jaWFsX3NoYXJlX2J0bnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImZhY2Vib29rU2hhcmVVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDb21wYXJ0aXIgZW4gRmFjZWJvb2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGFyZS1mYWNlYm9va1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1mYWNlYm9va1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidHdpdHRlclNoYXJlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ29tcGFydGlyIGVuIFhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGFyZS10d2l0dGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWJ5bG9uLXR3aXR0ZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmtlZGluU2hhcmVVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDb21wYXJ0aXIgZW4gTGlua2VkSW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGFyZS1saW5rZWRpblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1saW5rZWRpblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2FydGljbGU+XG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1ibG9nLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWJsb2ctZGV0YWlscy9iYWJ5bG9uLWJsb2ctZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tYmxvZy1kZXRhaWxzL2JhYnlsb24tYmxvZy1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBR0wsSUFBSSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBSTdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFHOUQsc0VBQXNFO0FBS3RFLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBRyxDQUFDO0lBQy9DLFNBQVMsQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQUpRLFlBQVk7NkdBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQW9CRCxNQUFNLE9BQU8sMkJBQTJCO0lBMEJwQyxZQUM4QixRQUFrQixFQUNwQyxLQUFxQjtRQURILGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFsQnhCLGNBQVMsR0FBYSxLQUFLLENBQUM7UUFDNUIsV0FBTSxHQUFhLEtBQUssQ0FBQztRQVN6QixpQkFBWSxHQUF3QixFQUFFLENBQUM7UUFJeEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0MsYUFBUSxHQUFHLGlCQUFpQixDQUFDO0lBSWxDLENBQUM7SUFFSixXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFDSSxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDaEI7WUFDRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ08sWUFBWTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTztRQUN6RCxJQUFJLElBQUksQ0FBQztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2xDLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQzNCO2lCQUFNO2dCQUNILElBQUksR0FBRyxJQUFJLENBQUM7YUFDZjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUNqRCxNQUFNLE1BQU0sR0FBRztZQUNYLFVBQVUsRUFBRSxvQkFBb0I7WUFDaEMsUUFBUSxFQUFFO2dCQUNOO29CQUNJLE9BQU8sRUFBRSxhQUFhO29CQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ3BCLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO29CQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDMUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNwQixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTt3QkFDbkMsQ0FBQyxDQUFDLEVBQUU7b0JBQ1IsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNuQixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTt3QkFDbkMsQ0FBQyxDQUFDLEVBQUU7b0JBQ1IsU0FBUyxFQUFFO3dCQUNQLE9BQU8sRUFBRSxjQUFjO3dCQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUU7d0JBQ2pDLEdBQUcsRUFBRSxNQUFNO3FCQUNkO29CQUNELGdCQUFnQixFQUFFO3dCQUNkLE9BQU8sRUFBRSxTQUFTO3dCQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7cUJBQ3pCO2lCQUNKO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxTQUFTO29CQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7b0JBQ3RCLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVTtvQkFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNoQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7YUFDSjtTQUNKLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDTyxZQUFZLENBQUMsTUFBVztRQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQztRQUNwQyxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDMUIsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ08sWUFBWTtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxNQUFNLEVBQUU7WUFDUixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRU8sVUFBVSxDQUFDLE9BQTJCO1FBQzFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzdCLE9BQU87U0FDVjtRQUVELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFFNUIsT0FBTyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNoQixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sZ0RBQWdELEdBQUcsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxPQUFPLHdDQUF3QyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkMsT0FBTyx1REFBdUQsR0FBRyxFQUFFLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5RCxDQUFDOytHQW5KUSwyQkFBMkIsa0JBMkJ4QixRQUFRO21HQTNCWCwyQkFBMkIsNm9CQy9DeEMsK3RXQWlQQSxpczVCRDNNUSxZQUFZLHVWQUNaLDhCQUE4QixvSkFDOUIsd0JBQXdCLDhKQVpuQixZQUFZOzs0RkFtQlosMkJBQTJCO2tCQWJ2QyxTQUFTOytCQUNJLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWiw4QkFBOEI7d0JBQzlCLHdCQUF3Qjt3QkFDeEIsWUFBWTtxQkFDZixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBNkIxQyxNQUFNOzJCQUFDLFFBQVE7c0VBMUJYLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBQaXBlLFxuICAgIFBpcGVUcmFuc2Zvcm0sXG4gICAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhYnlsb25UYWdzSSwgQmFieWxvblRleHRzQ29sb3JzSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQmFieWxvbkJ1dHRvbkkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24tYnV0dG9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYWJ5bG9uSW1hZ2VJIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWltYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBvcmdhbml6YXRpb25fbmFtZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL29yZ2FuaXphdGlvbi1uYW1lLnRva2VuJztcbmltcG9ydCB7IEJhYnlsb25EeW5hbWljSGVhZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBCYWJ5bG9uQmxvZ0NhdGVnb3J5SSwgQmFieWxvbkJsb2dQb3N0SSB9IGZyb20gJy4uL2JhYnlsb24tYmxvZy1saXN0JztcblxuLy8gLS0tIFBJUEUgcGFyYSBjb25maWFyIGVuIGVubGFjZXMgcHJvdmVuaWVudGVzIGRlIGNvbnRlbmlkbyBIVE1MIC0tLVxuQFBpcGUoe1xuICAgIG5hbWU6ICdzYWZlSHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cbiAgICB0cmFuc2Zvcm0oaHRtbDogc3RyaW5nKTogU2FmZUh0bWwge1xuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaHRtbCk7XG4gICAgfVxufVxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItYmFieWxvbi1ibG9nLWRldGFpbHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhYnlsb25EeW5hbWljSGVhZGluZ0NvbXBvbmVudCxcbiAgICAgICAgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlLFxuICAgICAgICBTYWZlSHRtbFBpcGUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFieWxvbi1ibG9nLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9iYWJ5bG9uLWJsb2ctZGV0YWlscy5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJhYnlsb25CbG9nRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJ0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBwcmV0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsMT86IHN0cmluZztcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsMj86IHN0cmluZztcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsMz86IHN0cmluZztcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsND86IHN0cmluZztcbiAgICBASW5wdXQoKSBpbWc/OiBCYWJ5bG9uSW1hZ2VJO1xuICAgIEBJbnB1dCgpIG1pZGRsZUltZz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0b3BJbWc/OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgdGFncz86IEJhYnlsb25UYWdzSTtcbiAgICBASW5wdXQoKSB0ZXh0Q29sb3JzPzogQmFieWxvblRleHRzQ29sb3JzSTtcbiAgICBASW5wdXQoKSBidXR0b24/OiBCYWJ5bG9uQnV0dG9uSTtcbiAgICBASW5wdXQoKSBjYXRlZ29yeT86IGFueTtcbiAgICBASW5wdXQoKSBkYXRlPzogRGF0ZTtcbiAgICBASW5wdXQoKSBjYXRlZ29yaWVzPzogQmFieWxvbkJsb2dDYXRlZ29yeUlbXTtcbiAgICBASW5wdXQoKSByZWxhdGVkUG9zdHNUaXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBjYXRlZ29yaWVzVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcmVsYXRlZFBvc3RzPzogQmFieWxvbkJsb2dQb3N0SVtdID0gW107XG4gICAgQElucHV0KCkgc2VhcmNoUGxhY2VIb2xkZXI/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2hhcmU/OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIG9yZ2FuaXphdGlvbk5hbWUgPSBpbmplY3Qob3JnYW5pemF0aW9uX25hbWUpO1xuICAgIHByaXZhdGUgc2NyaXB0SWQgPSAnYmFieWxvbi1qc29uLWxkJztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjaGFuZ2VzWyd0aXRsZSddIHx8XG4gICAgICAgICAgICBjaGFuZ2VzWydkZXNjcmlwdGlvbiddIHx8XG4gICAgICAgICAgICBjaGFuZ2VzWydkYXRlJ10gfHxcbiAgICAgICAgICAgIGNoYW5nZXNbJ2ltZyddXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVKc29uTGQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUpzb25MZCgpO1xuICAgIH1cbiAgICBwcml2YXRlIHVwZGF0ZUpzb25MZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRpdGxlIHx8IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgIGxldCBsYW5nO1xuICAgICAgICB0aGlzLnJvdXRlLnVybC5zdWJzY3JpYmUoKHNlZ21lbnRzKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2VnbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxhbmcgPSBzZWdtZW50c1swXS5wYXRoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYW5nID0gJ2VzJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBkb21haW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy8nICsgbGFuZztcbiAgICAgICAgY29uc3Qgc2NoZW1hID0ge1xuICAgICAgICAgICAgJ0Bjb250ZXh0JzogJ2h0dHBzOi8vc2NoZW1hLm9yZycsXG4gICAgICAgICAgICAnQGdyYXBoJzogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgJ0B0eXBlJzogJ0Jsb2dQb3N0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGxpbmU6IHRoaXMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmh0bWxUb1RleHQodGhpcy5hZGRpdGlvbmFsMSkgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgIGltYWdlOiB0aGlzLmltZz8uc3JjID8gW3RoaXMuaW1nLnNyY10gOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVB1Ymxpc2hlZDogdGhpcy5kYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBEYXRlKHRoaXMuZGF0ZSkudG9JU09TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZU1vZGlmaWVkOiB0aGlzLmRhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUodGhpcy5kYXRlKS50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAnQGF1dGhvcic6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5vcmdhbml6YXRpb25OYW1lID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBkb21haW4sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG1haW5FbnRpdHlPZlBhZ2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdAdHlwZSc6ICdXZWJQYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdAaWQnOiB0aGlzLmN1cnJlbnRVcmwsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICdAdHlwZSc6ICdXZWJQYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgJ0BpZCc6IHRoaXMuY3VycmVudFVybCxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLmN1cnJlbnRVcmwsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGluTGFuZ3VhZ2U6IGxhbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5pbnNlcnRTY3JpcHQoc2NoZW1hKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBpbnNlcnRTY3JpcHQoc2NoZW1hOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVKc29uTGQoKTtcblxuICAgICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzY3JpcHQudHlwZSA9ICdhcHBsaWNhdGlvbi9sZCtqc29uJztcbiAgICAgICAgc2NyaXB0LmlkID0gdGhpcy5zY3JpcHRJZDtcbiAgICAgICAgc2NyaXB0LnRleHQgPSBKU09OLnN0cmluZ2lmeShzY2hlbWEpO1xuXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH1cbiAgICBwcml2YXRlIHJlbW92ZUpzb25MZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNjcmlwdElkKTtcbiAgICAgICAgaWYgKHNjcmlwdCkge1xuICAgICAgICAgICAgc2NyaXB0LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBodG1sVG9UZXh0KGNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIWNvbnRlbnQgfHwgIWNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gY29udGVudDtcblxuICAgICAgICByZXR1cm4gdGVtcERpdi50ZXh0Q29udGVudCB8fCB0ZW1wRGl2LmlubmVyVGV4dCB8fCAnJztcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudFVybCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIH1cblxuICAgIGdldCBzaGFyZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGUgPz8gJyc7XG4gICAgfVxuXG4gICAgZ2V0IGZhY2Vib29rU2hhcmVVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gZW5jb2RlVVJJKHRoaXMuY3VycmVudFVybCk7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci9zaGFyZXIucGhwP3U9JHt1cmx9YDtcbiAgICB9XG5cbiAgICBnZXQgdHdpdHRlclNoYXJlVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHVybCA9IGVuY29kZVVSSSh0aGlzLmN1cnJlbnRVcmwpO1xuICAgICAgICBjb25zdCB0ZXh0ID0gZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuc2hhcmVUZXh0KTtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD91cmw9JHt1cmx9JnRleHQ9JHt0ZXh0fWA7XG4gICAgfVxuXG4gICAgZ2V0IGxpbmtlZGluU2hhcmVVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gZW5jb2RlVVJJKHRoaXMuY3VycmVudFVybCk7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8/dXJsPSR7dXJsfWA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1NpZGViYXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmNhdGVnb3JpZXNUaXRsZSB8fCB0aGlzLnJlbGF0ZWRQb3N0c1RpdGxlKTtcbiAgICB9XG59XG4iLCI8YXJ0aWNsZSBjbGFzcz1cImJhYnlsb25fX2Jsb2ctZGV0YWlsIG1hcmdpbi1tYWluXCI+XG4gICAgQGlmIChidXR0b24gJiYgYnV0dG9uLmxhYmVsKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG5zX19ib3ggYm94LWNvbnRhaW5lciBjb2wtbGctOCBvZmZzZXQtbGctMlwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b24udXJsXCJcbiAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1saW5rXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWJ5bG9uLWFycm93LWxlZnQtYmlnXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxiPnt7IGJ1dHRvbi5sYWJlbCB9fTwvYj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxoZWFkZXIgY2xhc3M9XCJjb250YWluZXItZmx1aWQgY3NfcGxyXzEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW50cm9faW5mbyB0aXRsZS1jb250YWluZXIgY29sLWxnLTggb2Zmc2V0LWxnLTJcIj5cbiAgICAgICAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJ0aXRsZSBjc19tYl8xM1wiPnt7IHRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19wb3N0X21ldGFfNCBjc19tYl8xMyBwcmV0aXRsZVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoY2F0ZWdvcnk/Lm5hbWVJZGVudGlmaWVyIHx8IGNhdGVnb3J5KSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNhdGVnb3J5Py5uYW1lSWRlbnRpZmllciB8fCBjYXRlZ29yeSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGRhdGUgfCBkYXRlOiAnZGQvTU0veXl5eScgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgY3NfcGxyXzEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNzX2dhcF95X2xnXzgwXCI+XG4gICAgICAgICAgICA8ZGl2IG5nQ2xhc3M9XCJjb2wtbGctOCBvZmZzZXQtbGctMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19ibG9nX2RldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX2ltYWdlX2xheWVyIGNzX2Fib3V0X2ltZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdWJ0aXRsZSAmJiB0b3BJbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0aXRsZS0tc21hbGwgdG9wLWltZ1wiPnt7IHN1YnRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoKGltZyAmJiAhbWlkZGxlSW1nKSB8fCAoIGltZyAmJiB0b3BJbWcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImltZy5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltZy5hbHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2NzLS1yYWRpdXMnICsgKHRvcEltZyA/ICcgdG9wLWltZycgOiAnJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGltZy5uZFRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGltZy5uZFRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludHJvX2luZm8gbm8tYWxpZ25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZGVzY3JpcHRpb24gfCBzYWZlSHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdWJ0aXRsZSAmJiAhdG9wSW1nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGl0bGUtLXNtYWxsXCI+e3sgc3VidGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tQWRkaXRpb25hbDEgaXMgdXNlZCBvbiBibG9nIGxpc3QgZm9yIHJlc3VtZSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWRkaXRpb25hbDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiYWRkaXRpb25hbDIgfCBzYWZlSHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpbWcgJiYgbWlkZGxlSW1nICYmICF0b3BJbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaW1nLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaW1nLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3MtLXJhZGl1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaW1nLm5kVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaW1nLm5kVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFkZGl0aW9uYWwzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImFkZGl0aW9uYWwzIHwgc2FmZUh0bWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWRkaXRpb25hbDQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiYWRkaXRpb25hbDQgfCBzYWZlSHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKCFoYXNTaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmb290ZXIgY2xhc3M9XCJjc19wb3N0X3NoYXJlIGQtbGctbm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNoYXJlQnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGJ1dHRvbiAmJiBidXR0b24ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bnNfX2JveFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b24udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwidm9sdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhYnlsb24tYXJyb3ctbGVmdC1iaWdcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3sgYnV0dG9uLmxhYmVsIH19PC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoIWhhc1NpZGViYXIpIHtcbiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9XCJjb2wtbGctMSBkLW5vbmUgZC1sZy1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhcmVfc2lkZWJhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNoYXJlQnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNoYXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzaGFyZV9sYWJlbFwiPnt7IHNoYXJlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChoYXNTaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgPGFzaWRlIGNsYXNzPVwiY29sLWxnLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX3NpZGViYXIgY3NfcmlnaHRfc2lkZWJhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX3NpZGViYXJfaXRlbSB3aWRnZXRfY2F0ZWdvcmllc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY2F0ZWdvcmllc1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItYmFieWxvbi1keW5hbWljLWhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWddPVwidGFncz8uY2F0ZWdvcmllc1RpdGxlIHx8ICdoNCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzQ2xhc3M9XCJ0aXRsZS0tc21hbGwgbWItLTIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJ0ZXh0Q29sb3JzPy5jYXRlZ29yaWVzVGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwiY2F0ZWdvcmllc1RpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGliLWJhYnlsb24tZHluYW1pYy1oZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNhdGVnb3JpZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiY2F0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b24/LnVybCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJz9jYXRlZ29yeT0nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT8udGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgY2F0ZWdvcnk/LnRpdGxlIH19ICh7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5Py5wb3N0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pPC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX3NpZGViYXJfaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocmVsYXRlZFBvc3RzVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1iYWJ5bG9uLWR5bmFtaWMtaGVhZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhZ109XCJ0YWdzPy5sYXRlc3RQb3N0c1RpdGxlIHx8ICdoNCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzQ2xhc3M9XCJ0aXRsZS0tc21hbGwgbWItLTIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJ0ZXh0Q29sb3JzPy5sYXRlc3RQb3N0c1RpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cInJlbGF0ZWRQb3N0c1RpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGliLWJhYnlsb24tZHluYW1pYy1oZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHJlbGF0ZWRQb3N0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNzX3JlY2VudF9wb3N0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAocG9zdCBvZiByZWxhdGVkUG9zdHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX3JlY2VudF9wb3N0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpdGxlLS1zbWFsbGVyIG1iLS0xMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3QucG9zdFVybD8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0LnBvc3RVcmw/LnVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0LnBvc3RVcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmxpbmtUeXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBwb3N0Py50aXRsZSB9fTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHBvc3Q/LmRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0gY2xhc3M9XCJ0ZXh0LS1zbWFsbFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Q/LmRhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGF0ZTogJ21lZGl1bURhdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2VtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaGFyZUJ1dHRvbnM+XG4gICAgICAgICAgICAgICAgPG5hdiBjbGFzcz1cImNzX3NvY2lhbF9zaGFyZV9idG5zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJmYWNlYm9va1NoYXJlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ29tcGFydGlyIGVuIEZhY2Vib29rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2hhcmUtZmFjZWJvb2tcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhYnlsb24tZmFjZWJvb2tcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInR3aXR0ZXJTaGFyZVVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNvbXBhcnRpciBlbiBYXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2hhcmUtdHdpdHRlclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi10d2l0dGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rZWRpblNoYXJlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ29tcGFydGlyIGVuIExpbmtlZEluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2hhcmUtbGlua2VkaW5cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhYnlsb24tbGlua2VkaW5cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9hcnRpY2xlPlxuIl19