vcomply-workflow-engine 3.4.66 → 3.4.67

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.
@@ -167,7 +167,6 @@ export class WorkflowEngineContainerComponent {
167
167
  }
168
168
  }
169
169
  closeWorkflowEngine(evt) {
170
- debugger;
171
170
  if (evt?.confirm === false) {
172
171
  this.checkRefresh();
173
172
  this.closeWorkflow.emit({
@@ -689,4 +688,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
689
688
  type: HostListener,
690
689
  args: ['window:resize', ['$event']]
691
690
  }] } });
692
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCdkIsTUFBTSxPQUFPLGdDQUFnQztJQVczQyxZQUNTLFlBQTBCLEVBQ3pCLFFBQXlCLEVBQzFCLElBQWlCO1FBRmpCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWE7UUFiMUIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQWEzQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ2hCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixlQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQWUsRUFBRSxDQUFDLENBQUMseUNBQXlDO1FB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QkFEVCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFRixVQUFVO3NCQUFyRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ25CLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDd0IsV0FBVztzQkFBdkQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN0QixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ00saUJBQWlCO3NCQUF6QyxTQUFTO3VCQUFDLFlBQVk7Z0JBRXZCLDJCQUEyQjtzQkFEMUIsU0FBUzt1QkFBQyxZQUFZO2dCQUd2QixrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVQLE9BQU87c0JBQS9DLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdkMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBU2hDLE9BQU87c0JBQWYsS0FBSztnQkFFK0MsZ0JBQWdCO3NCQUFwRSxZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXNPbkQsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtbXVsdGlwbGUtcmlzay9hZGQtbXVsdGlwbGUtcmlzay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25BbGVydCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlybWF0aW9uLWFsZXJ0JztcclxuaW1wb3J0IHsgSXNzdWVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pc3N1ZS1kYXRhJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWFzc2Vzc21lbnQvd29ya2Zsb3ctYXNzZXNzbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtmbG93Q29tcGxpYW5jZUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWNvbXBsaWFuY2Uvd29ya2Zsb3ctY29tcGxpYW5jZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd1BvbGljeUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXBvbGljeS93b3JrZmxvdy1wb2xpY3kuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya2Zsb3dSaXNrQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctcmlzay93b3JrZmxvdy1yaXNrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dBbklzc3VlQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9sb2ctYW4taXNzdWUvbG9nLWFuLWlzc3VlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vcmVPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLy4uL21vcmUtb3B0aW9uL21vcmUtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtmbG93UHJvZ3JhbUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXByb2dyYW0vd29ya2Zsb3ctcHJvZ3JhbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcmNPYmplY3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy9ncmMtb2JqZWN0L2dyYy1vYmplY3QtY29udGFpbmVyL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC12Y29tcGx5LXdvcmtmbG93LWVuZ2luZS1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93RW5naW5lQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBpc0hvc3RSZWZyZXNoQWN0aXZlID0gdHJ1ZTtcclxuICBpc1JDU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBmZWF0dXJlRmxhZ19ncm91cHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6YmVmb3JldW5sb2FkJywgWyckZXZlbnQnXSlcclxuICB1bmxvYWROb3RpZmljYXRpb24oJGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBpZiAodGhpcy5pc0hvc3RSZWZyZXNoQWN0aXZlICYmIHRva2VuKSB7XHJcbiAgICAgICRldmVudC5yZXR1cm5WYWx1ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVpS2l0U2VydmljZTogVWlLaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIGF1dGg6IEF1dGhTZXJ2aWNlXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIHdvcmtmbG93VHlwZSA9ICcnO1xyXG4gIEBJbnB1dCgpIG1vZGUgPSAnQ1JFQVRFJztcclxuICBASW5wdXQoKSBpZCA9ICcnO1xyXG4gIEBJbnB1dCgpIG9wZW5lZEZyb20gPSAnR0xPQkFMJztcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBhbGxvd2VkV29ya2Zsb3dzOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBmcmFtZXdvcmtEZXRhaWxzOiBBcnJheTxhbnk+ID0gW107IC8vIG9ubHkgZm9yIGNvbXBsaWFuY2UgcGFydCBmb3IgZnJhbWV3b3JrXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSQyA9ICcnO1xyXG4gIEBJbnB1dCgpIHNlY29uZGFyeU9wZW5Qb3J0YWwgPSAnJztcclxuICBASW5wdXQoKSBkZWZhdWx0Umlza1R5cGUgPSAnTk9STUFMJztcclxuICBASW5wdXQoKSBtb3ZlVG9SZWdpc3Rlck1vZGUgPSAnJztcclxuICBASW5wdXQoKSByZXBvbnNpYmlsaXR5RGF0YSA9IHtcclxuICAgIC8vIG9ubHkgdXNlZCBieSBsb2cgYW4gaXNzdWVcclxuICAgIHJlc3BvbnNpYmlsaXR5SWQ6IG51bGwsXHJcbiAgICByZXNwb25zaWJpbGl0eU5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICB9O1xyXG4gIEBJbnB1dCgpIHBpZCA9ICcnO1xyXG4gIEBJbnB1dCgpIHByb2dyYW1UeXBlOiBudW1iZXIgPSAxO1xyXG4gIEBJbnB1dCgpIGlzc3VlRGF0YSA9IHtcclxuICAgIGF1ZGl0UGxhbklkOiBudWxsLFxyXG4gICAgYXVkaXRQbGFuTmFtZTogJycsXHJcbiAgICByY0lkOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgZW50cnVzdEJ1dHRvbk5hbWUgPSAnRW50cnVzdCc7XHJcbiAgQElucHV0KCkgY29uZmlnITogSXNzdWVDb25maWd1cmF0aW9uO1xyXG4gIEBJbnB1dCgpIGNvbnZlcnRGaWxlRGF0YSA9IHt9O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcnkgPSAnJztcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRQcm9ncmFtOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGNhbkZyYW1ld29ya0NoYW5nZTogYm9vbGVhbiA9IHRydWU7IC8vIGlmIGZyYW1ld29yayBjYW4gRWRpdGVkIG9yIG5vdDsgRm9yIENyZWF0ZSBhIHByb2dyYW1cclxuICBASW5wdXQoKSAvKiAgKi9cclxuICAvKiAgKi9cclxuICBASW5wdXQoKVxyXG4gIGFkZFRvUHJvZ3JhbURldGFpbHM6IHtcclxuICAgIF9pZDogc3RyaW5nO1xyXG4gICAgZnJhbWV3b3JrX25hbWU6IHN0cmluZztcclxuICAgIGlkPzogbnVtYmVyO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgX2lkOiAnJyxcclxuICAgIGZyYW1ld29ya19uYW1lOiAnJyxcclxuICAgIGlkOiAwLFxyXG4gICAgdHlwZTogJycsXHJcbiAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgfTtcclxuICBASW5wdXQoKSBncmNUeXBlOiAwIHwgMSB8IDIgfCAzID0gMDtcclxuICBASW5wdXQoKSBpc1NlbmRGb3JBdHRlc3RhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFzc2Vzc21lbnREZXRhaWxzOiBhbnk7XHJcbiAgQElucHV0KCkgaXNXZWJWaWV3OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBwcm9ncmFtU2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG4gIHdvcmtmbG93TGlzdCA9IGZhbHNlO1xyXG4gIHNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcclxuICBpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcclxuICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UhOiBib29sZWFuO1xyXG4gIGNoZWNrcG9pbnRDb3VudDogbnVtYmVyID0gMDtcclxuICBjdXJyZW50QnVzaW5lc3NDeWNsZTogYW55ID0gJyc7XHJcbiAgQFZpZXdDaGlsZCgncmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KSByaXNrQ29tcG9uZW50ITogV29ya2Zsb3dSaXNrQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHJpc2tCdWxrVXBsb2FkITogQWRkTXVsdGlwbGVSaXNrQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmVzcG9uc2liaWxpdHknLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQhOiBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncmVzcG9uc2liaWxpdHknLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBjb21wbGlhbmNlITogV29ya2Zsb3dDb21wbGlhbmNlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ21vcmVPcHRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgbW9yZU9wdGlvbiE6IE1vcmVPcHRpb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93biE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25Sb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25Sb3chOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3BvbGljeScpIHBvbGljeSE6IFdvcmtmbG93UG9saWN5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2xvZ0FuSXNzdWUnKSBsb2dJc3N1ZUNvbXBvbmVudCE6IExvZ0FuSXNzdWVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYXNzZXNzbWVudCcpXHJcbiAgd29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50ITogV29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2ltcG9ydEFzc2Vzc21lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbXBvcnRBbkFzc2Vzc21lbnQhOiBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncHJvZ3JhbScsIHsgc3RhdGljOiBmYWxzZSB9KSBwcm9ncmFtITogV29ya2Zsb3dQcm9ncmFtQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2dyY09iamVjdCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGdyY09iamVjdCE6IEdyY09iamVjdENvbnRhaW5lckNvbXBvbmVudDtcclxuXHJcbiAgZHJvcGRvd25MZWZ0ITogYW55O1xyXG4gIGRyb3Bkb3duVG9wITogYW55O1xyXG4gIGRyb3Bkb3duV2lkdGghOiBhbnk7XHJcbiAgY2xvc2VPbkVzYzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBmZWF0dXJlIGZsYWdcclxuICBASW5wdXQoKSBmZWF0dXJlOiBhbnk7XHJcbiAgb3JnYW5pemF0aW9uRGV0YWlsczogYW55O1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihcclxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50XHJcbiAgKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcclxuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLmNvbXBsaWFuY2U/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5pbXBvcnRBbkFzc2Vzc21lbnQ/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSxcclxuICAgICAgXS5pbmNsdWRlcyh0cnVlKSB8fFxyXG4gICAgICB0aGlzLnByb2dyYW0/LmFjdGl2ZUxpc3QgfHxcclxuICAgICAgdGhpcy5jb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciB8fFxyXG4gICAgICB0aGlzLmdyY09iamVjdD8ub3BlbmVkUG9wdXBcclxuICAgICkge1xyXG4gICAgICAvL0RvIE5vdGhpbmdcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2VXb3JrZmxvd0VuZ2luZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3VycmVudFdvcmtmbG93ITogYW55O1xyXG4gIHdvcmtmbG93VHlwZUxpc3Q6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgUmVzcG9uc2liaWxpdHknLFxyXG4gICAgICBjb2RlOiAnQ0FSJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdSRVNQT05TSUJJTElUWScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgTXVsdGlwbGUgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgIGNvZGU6ICdDTVInLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ01VTFRJUExFX1JFU1BPTlNJQklMSVRZJyxcclxuICAgIH0sXHJcbiAgICB7IHdvcmtmbG93TmFtZTogJ0FkZCBhIFJpc2snLCBjb2RlOiAnQUFSJywgcGVybWlzc2lvbklkZW50aWZpZXI6ICdSSVNLJyB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdBZGQgTXVsdGlwbGUgUmlza3MnLFxyXG4gICAgICBjb2RlOiAnQU1SJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdNVUxUSVBMRV9SSVNLJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFBvbGljeScsXHJcbiAgICAgIGNvZGU6ICdDQVAnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1BPTElDWScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYSBTdXJ2ZXknLFxyXG4gICAgICBjb2RlOiAnQ0FTJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdTVVJWRVknLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgRm9ybScsXHJcbiAgICAgIGNvZGU6ICdDQUYnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0ZPUk0nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnTG9nIGFuIElzc3VlJyxcclxuICAgICAgY29kZTogJ0xBSScsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSVNTVUUnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGFuIEFzc2Vzc21lbnQnLFxyXG4gICAgICBjb2RlOiAnQUFBJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdBU1NFU1NNRU5UJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0ltcG9ydCBhbiBBc3Nlc3NtZW50JyxcclxuICAgICAgY29kZTogJ0lBQScsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSU1QT1JUX0FTU0VTU01FTlQnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUHJvZ3JhbScsXHJcbiAgICAgIGNvZGU6ICdDQVBSJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdQUk9HUkFNJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0FkZCBhIEdSQyBPYmplY3QnLFxyXG4gICAgICBjb2RlOiAnR1JDJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdHUkNfT0JKRUNUUycsXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgYWRkaXRpb25hbEluZm9ybWF0aW9uTGlzdCA9IFtcclxuICAgICdPYmplY3RpdmUnLFxyXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAnUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnknLFxyXG4gIF07XHJcbiAgY29uZmlybWF0aW9uQWxlcnRDb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0ID0geyBpc1Zpc2libGU6IGZhbHNlIH07XHJcbiAgaGFzUmVmcmVzaGVkOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBjbG9zZVdvcmtmbG93RW5naW5lKGV2dD86IGFueSkge1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICBpZiAoZXZ0Py5jb25maXJtID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLmNoZWNrUmVmcmVzaCgpO1xyXG4gICAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7XHJcbiAgICAgICAgY2xvc2U6IHRydWUsXHJcbiAgICAgICAgcmVmcmVzaDogdGhpcy5oYXNSZWZyZXNoZWQsXHJcbiAgICAgICAgbmF2aWdhdGVVUkw6IGV2dC51cmwgPz8gJycsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbG9zZUNvbmZpcm0oZXZ0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlQ29uZmlybShldnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOiAnSWYgeW91IG5hdmlnYXRlIGF3YXksIGFueSB1bnNhdmVkIGNoYW5nZXMgd2lsbCBiZSBsb3N0LicsXHJcbiAgICAgIGFjdGlvbjogJ1dPUktGTE9XX0NMT1NFJyxcclxuICAgICAgZGF0YTogZXZ0LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZXhlY3V0ZUNsb3NlKGV2dDogYW55KSB7XHJcbiAgICBpZiAoZXZ0LmFjdGlvbiA9PT0gJ1lFUycpIHtcclxuICAgICAgdGhpcy5jaGVja1JlZnJlc2goKTtcclxuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoe1xyXG4gICAgICAgIGNsb3NlOiB0cnVlLFxyXG4gICAgICAgIHJlZnJlc2g6IHRoaXMuaGFzUmVmcmVzaGVkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE5ldHdvcmtMaXN0bmVyKCk7XHJcbiAgICB0aGlzLnNldFdvcmtmbG93KHRoaXMud29ya2Zsb3dUeXBlLCB0aGlzLndvcmtmbG93VHlwZUxpc3QpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCA1MDApO1xyXG4gICAgdGhpcy5zZXRXb3JrZmxvdyh0aGlzLndvcmtmbG93VHlwZSwgdGhpcy53b3JrZmxvd1R5cGVMaXN0KTtcclxuICAgIHRoaXMuZGVjaWRlVmlld01vcmVPcHRpb24oKTtcclxuICAgIHRoaXMuZmV0Y2hPcmdhbml6YXRpb25EZXRhaWxzKCk7XHJcbiAgICB0aGlzLmdldFVzZXJEZXRhaWxzKCk7XHJcbiAgICB0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWcgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcclxuICAgICAgJ2ZmX3Byb2dyYW1fc2ltcGxpZnknXHJcbiAgICApO1xyXG4gICAgdGhpcy5mZWF0dXJlRmxhZ19ncm91cHMgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcclxuICAgICAgJ2ZmX3Jlc3BvbnNpYmlsaXR5X2dyb3VwcydcclxuICAgICk7XHJcbiAgICB0aGlzLmlzUmVzcG9uc2liaWxpdHlTaW1wbGlmeSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TmV0d29ya0xpc3RuZXIoKSB7XHJcbiAgICBhZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgKGUpID0+IHtcclxuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxyXG4gICAgICAgICdDb25uZWN0aW9uIGxvc3QhPGJyPkNoZWNrIHlvdXIgbmV0d29yayBjb25uZWN0aXZpdHkuJyxcclxuICAgICAgICAnYWxlcnQnXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsIChlKSA9PiB7XHJcbiAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcIllvdSdyZSBiYWNrIG9ubGluZSFcIiwgJ3N1Y2Nlc3MnKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLndvcmtmbG93VHlwZUxpc3QgPSB0aGlzLndvcmtmbG93VHlwZUxpc3QuZmlsdGVyKCh3b3JrZmxvdzogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmFsbG93ZWRXb3JrZmxvd3MuaW5jbHVkZXMod29ya2Zsb3cucGVybWlzc2lvbklkZW50aWZpZXIpKSB7XHJcbiAgICAgICAgcmV0dXJuIHdvcmtmbG93O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLm9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcpIHtcclxuICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaXNhYmxlV29ya2Zsb3dDaGFuZ2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVjaWRlVmlld01vcmVPcHRpb24odHlwZT86IGJvb2xlYW4pIHtcclxuICAgIGlmICh0eXBlKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VPbkVzYyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKFsnQ01SJywgJ0FNUicsICdBQUEnLCAnSUFBJ10uaW5jbHVkZXModGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpKSB7XHJcbiAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHR5cGUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodHlwZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodHlwZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XHJcbiAgICAgIGNhc2UgJ0FBUic6XHJcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50LnN1Ym1pdFJpc2soKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnTEFJJzpcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlQ29tcG9uZW50LmFkZElzc3VlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NBUic6XHJcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlLnN1Ym1pdFJlc3BvbnNpYmlsaXR5KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NBUCc6XHJcbiAgICAgICAgdGhpcy5wb2xpY3kuc3VibWl0UG9saWN5KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0FBQSc6XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0Fzc2Vzc21lbnRDb21wb25lbnQuc3VibWl0QXNzZXNzbWVudCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDQVBSJzoge1xyXG4gICAgICAgIHRoaXMucHJvZ3JhbS5zYXZlUHJvZ3JhbSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0dSQyc6IHtcclxuICAgICAgICB0aGlzLmdyY09iamVjdC5zYXZlR1JDT2JqZWN0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2FzZSAnSUFBJzpcclxuICAgICAgLy8gICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudC5zdWJtaXRBc3Nlc3NtZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlZGl0V29ya2Zsb3coKSB7XHJcbiAgICB0aGlzLndvcmtmbG93TGlzdCA9ICF0aGlzLndvcmtmbG93TGlzdDtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5kcm9wZG93bi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy5kcm9wZG93bkxlZnQgPSBkcm9wZG93bi5sZWZ0O1xyXG4gICAgdGhpcy5kcm9wZG93blRvcCA9IGRyb3Bkb3duLnRvcCArIGRyb3Bkb3duLmhlaWdodDtcclxuICAgIHRoaXMuZHJvcGRvd25XaWR0aCA9IGRyb3Bkb3duLndpZHRoO1xyXG4gIH1cclxuICBjbG9zZVdvcmtmbG93TGlzdCgpIHtcclxuICAgIHRoaXMud29ya2Zsb3dMaXN0ID0gZmFsc2U7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIHNpemVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSBmYWxzZTtcclxuICB9XHJcbiAgY2hhbmdlV29ya2Zsb3coZXZ0OiBhbnksIHNlbGVjdGVkV29ya2Zsb3c6IGFueSkge1xyXG4gICAgaWYgKHNlbGVjdGVkV29ya2Zsb3c/LmNvZGUgPT09IHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTogJ0lmIHlvdSBjaGFuZ2UgdGhlIHdvcmtmbG93LCBhbnkgdW5zYXZlZCBjaGFuZ2VzIHdvdWxkIGJlIGxvc3QuJyxcclxuICAgICAgYWN0aW9uOiAnV09SS0ZMT1dfQ0hBTkdFJyxcclxuICAgICAgZGF0YTogc2VsZWN0ZWRXb3JrZmxvdyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25maXJtV29ya2Zsb3dDaGFuZ2UoZXZ0OiBhbnkpIHtcclxuICAgIGlmIChldnQuYWN0aW9uID09PSAnWUVTJykge1xyXG4gICAgICB0aGlzLmNsb3NlT25Fc2MgPSB0cnVlO1xyXG4gICAgICBzd2l0Y2ggKGV2dC5wYXlsb2FkLmFjdGlvbikge1xyXG4gICAgICAgIGNhc2UgJ1dPUktGTE9XX0NIQU5HRSc6XHJcbiAgICAgICAgICB0aGlzLmNoZWNrUmVmcmVzaCgpO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50V29ya2Zsb3cgPSBldnQ/LnBheWxvYWQ/LmRhdGEgPz8gbnVsbDtcclxuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tb3JlT3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLnJlc2V0QWxsKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRlY2lkZVZpZXdNb3JlT3B0aW9uKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnRURJVF9SSVNLJzpcclxuICAgICAgICAgIHRoaXMucmlza0NvbXBvbmVudC5jcmVhdGVSaXNrKHRoaXMucmlza0NvbXBvbmVudC5yaXNrRm9ybSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdQT0xJQ1lfUE9SVEFMJzpcclxuICAgICAgICAgIHRoaXMucG9saWN5LmNvbmZpcm1Qb2xpY3lQb3J0YWwoZXZ0LmFjdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdXT1JLRkxPV19DTE9TRSc6XHJcbiAgICAgICAgICB0aGlzLmNoZWNrUmVmcmVzaCgpO1xyXG4gICAgICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoe1xyXG4gICAgICAgICAgICBkYXRhOiBldnQ/LnBheWxvYWQ/LmRhdGEsXHJcbiAgICAgICAgICAgIGNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgICByZWZyZXNoOiB0aGlzLmhhc1JlZnJlc2hlZCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ1JPTEUnOlxyXG4gICAgICAgICAgdGhpcy5wcm9ncmFtLnJlbW92ZShldnQucGF5bG9hZC5kYXRhLCAnUk9MRScpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYXNzaWduZWVUeXBlQ2hhbmdlJzpcclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0uYXNzaWduZWVzLndob0NhbkNvbXBsZXRlID0gJ0FMTCc7XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVzcG9uc2liaWxpdHlGb3JtLmFzc2lnbmVlcy5saXN0ID1cclxuICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnNldExpc3QoXHJcbiAgICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLmFzc2lnbmVlc0xpc3QsXHJcbiAgICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLm9yaWdpbmFsQXNzaWduZWUsXHJcbiAgICAgICAgICAgICAgJ2VtcGxveWVlX2lkJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZmVhdHVyZUZsYWdfZ3JvdXBzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ2Fzc2lnbmVlR3JvdXBzJ11bJ2xpc3QnXSA9XHJcbiAgICAgICAgICAgICAgW107XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc2VxdWVudGlhbCc6XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcclxuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcclxuICAgICAgICAgIF0gPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYW55UmV2aWV3ZXInOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXHJcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXHJcbiAgICAgICAgICBdID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3dpdGNoIChldnQucGF5bG9hZC5hY3Rpb24pIHtcclxuICAgICAgICBjYXNlICdQT0xJQ1lfUE9SVEFMJzpcclxuICAgICAgICAgIHRoaXMucG9saWN5LmNvbmZpcm1Qb2xpY3lQb3J0YWwoZXZ0LmFjdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhc3NpZ25lZVR5cGVDaGFuZ2UnOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMud2hvQ2FuQ29tcGxldGUgPVxyXG4gICAgICAgICAgICAnQU5ZX09ORSc7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnc2VxdWVudGlhbCc6XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcclxuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcclxuICAgICAgICAgIF0gPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2FueVJldmlld2VyJzpcclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xyXG4gICAgICAgICAgICAnc2VxdWVudGlhbFdvcmtmbG93J1xyXG4gICAgICAgICAgXSA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiBmYWxzZSxcclxuICAgICAgbWVzc2FnZTogJycsXHJcbiAgICAgIGFjdGlvbjogJycsXHJcbiAgICAgIGRhdGE6IG51bGwsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGV2dDtcclxuICB9XHJcblxyXG4gIHNldFdvcmtmbG93KHdvcmtGbG93Q29kZTogYW55LCB3b3JrRmxvd0xpc3Q6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRXb3JrZmxvdyA9IHdvcmtGbG93TGlzdC5maW5kKFxyXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Py5jb2RlID09PSB3b3JrRmxvd0NvZGVcclxuICAgICk7XHJcbiAgICBzZWxlY3RlZFdvcmtmbG93XHJcbiAgICAgID8gKHRoaXMuY3VycmVudFdvcmtmbG93ID0gc2VsZWN0ZWRXb3JrZmxvdylcclxuICAgICAgOiAodGhpcy5jdXJyZW50V29ya2Zsb3cgPSBudWxsKTtcclxuICAgIHJldHVybiBzZWxlY3RlZFdvcmtmbG93O1xyXG4gIH1cclxuXHJcbiAgYWRkTW9yZUluZm8oZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xyXG4gICAgICBjYXNlICdBQVInOlxyXG4gICAgICAgIHRoaXMucmlza0NvbXBvbmVudD8uYWRkTW9yZUluZm8oZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMQUknOlxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVDb21wb25lbnQ/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0NBUic6XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5hc3Nlc3NtZW50RGV0YWlscz8uYXNzZXNzbWVudF90eXBlPy50b0xvd2VyQ2FzZSgpID09PVxyXG4gICAgICAgICAgJ2NvbXBsaWFuY2VfYXVkaXQnXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubW9yZU9wdGlvbj8ubW9yZU9wdGlvbnNMaXN0Py5DQVI/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LmNvZGUgPT09ICdBU1NFU1NNRU5UJ1xyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF0uaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5jaGVja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZT8uYWRkTW9yZUluZm8oXHJcbiAgICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNvbXBsaWFuY2U/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQ0FQJzpcclxuICAgICAgICB0aGlzLnBvbGljeT8uYWRkTW9yZUluZm8oZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDQVBSJzpcclxuICAgICAgICB0aGlzLnByb2dyYW0/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnR1JDJzpcclxuICAgICAgICB0aGlzLmdyY09iamVjdD8uYWRkTW9yZUluZm8oZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVNb3JlT3B0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm1vcmVPcHRpb24pIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uLnBvcHVsYXRlKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMubW9yZU9wdGlvbj8uaGlkZUVsZW1lbnRzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHNob3dDb25maXJtYXRpb25Qb3B1cChjb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0KSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgYnVsa1VwbG9hZEJyb3dzZShldmVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50KSB7XHJcbiAgICAgIGNhc2UgJ0FNUic6XHJcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZC50cmlnZ2VyQnJvd3NlRmlsZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDTVInOlxyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLnRyaWdnZXJCcm93c2VGaWxlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0lBQSc6XHJcbiAgICAgICAgdGhpcy5pbXBvcnRBbkFzc2Vzc21lbnQudHJpZ2dlckJyb3dzZUZpbGUoKTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5lbnRydXN0QnV0dG9uTmFtZSA9ICdFbnRydXN0JztcclxuICB9XHJcblxyXG4gIG9uUmVzZXRHUkNGb3JtKCkge1xyXG4gICAgdGhpcy5tb2RlID0gJ0NSRUFURSc7XHJcbiAgfVxyXG4gIHNoaWZ0VG9FZGl0TW9kZSgpIHtcclxuICAgIHRoaXMubW9kZSA9ICdFRElUJztcclxuICB9XHJcbiAgc2Nyb2xsRm9ybSgpIHtcclxuICAgIGlmICh0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8udG9wIDwgMzgpIHtcclxuICAgICAgdGhpcy5kcm9wZG93blJvdz8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0Py5hZGQoJ2hpZGUnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Sb3c/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdD8ucmVtb3ZlKCdoaWRlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBldmVudCB3aGljaCBtb3JlIG9wdGlvbnMgd2UgYXJlIHJlbW92aW5nLlxyXG4gICAqIEBwYXJhbSBpc0NoZWNrcG9pbnRDaGVja2VkICBpcyB0cnVlIGlmIHZhbHVlIGNoZWNrcG9pbnRzIGlzIHJlbW92ZWQgYnkgY2xpY2tpbmcgb24gbW9yZSBvcHRpb25zXHJcbiAgICovXHJcbiAgb25SZW1vdmluZ0NoZWNrcG9pbnQoXHJcbiAgICBldmVudDogc3RyaW5nLFxyXG4gICAgaXNDaGVja3BvaW50Q2hlY2tlZD86IGJvb2xlYW4sXHJcbiAgICBpc0RhdGFSZW1vdmVkPzogYm9vbGVhblxyXG4gICk6IHZvaWQge1xyXG4gICAgbGV0IG1zZyA9ICcnO1xyXG4gICAgaWYgKGV2ZW50ID09PSAnbmV3LWNoZWNrcG9pbnRzJykge1xyXG4gICAgICBtc2cgPVxyXG4gICAgICAgICdJZiB5b3UgY2hvb3NlIHRvIHJlbW92ZSB0aGVzZSBDaGVja3BvaW50cywgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIGNhbm5vdCBiZSByZXN0b3JlZC4gSG93ZXZlciwgeW91IHdpbGwgc3RpbGwgYmUgYWJsZSB0byBjcmVhdGUgbmV3IENoZWNrcG9pbnRzIG9yIGxpbmsgYW4gQXNzZXNzbWVudC4nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbXNnID1cclxuICAgICAgICAnSWYgeW91IGNob29zZSB0byByZW1vdmUgdGhlc2UgY2hlY2twb2ludHMsIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCBjYW5ub3QgYmUgcmVzdG9yZWQuJztcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTogbXNnLFxyXG4gICAgICBhY3Rpb246IGV2ZW50LFxyXG4gICAgICBkYXRhOiB7IHR5cGU6ICdyZXNwb25zaWJpbGl0eUNoZWNrcG9pbnQnIH0sXHJcbiAgICAgIGlzQ2hlY2twb2ludENoZWNrZWQ6IGlzQ2hlY2twb2ludENoZWNrZWQgPz8gZmFsc2UsXHJcbiAgICAgIGlzRGF0YVJlbW92ZWQ6IGlzRGF0YVJlbW92ZWQgPz8gZmFsc2UsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25SZW1vdmluZ1JvbGUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IG1zZyA9ICcnO1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIG1zZyA9ICdJZiB5b3UgY2hhbmdlIHRoZSByb2xlcywgYW55IHVuc2F2ZWQgY2hhbmdlcyB3b3VsZCBiZSBsb3N0Lic7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xyXG4gICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgIG1lc3NhZ2U6IG1zZyxcclxuICAgICAgYWN0aW9uOiAnUk9MRScsXHJcbiAgICAgIGRhdGE6IGV2ZW50LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGlzQXNzZXNzbWVudERpc2FibGVkKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdBU1NFU1NNRU5UJyB8fCBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XHJcbiAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVNb3JlT3B0aW9ucyh3b3JrZmxvd0NvZGU6IGFueSwgZGlzYWJsZWRFbGVtZW50c0NvZGU6IGFueSkge1xyXG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QpLmluY2x1ZGVzKHdvcmtmbG93Q29kZSkpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd0NvZGVdLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRpc2FibGVkRWxlbWVudHNDb2RlLmluY2x1ZGVzKG9wdGlvbj8uY29kZSkpIHtcclxuICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGVja3BvaW50U2VsZWN0aW9uKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY2hlY2twb2ludENvdW50ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvblJjU2VsZWN0ZWQoaXNSY1NlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzUkNTZWxlY3RlZCA9IGlzUmNTZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIGZldGNoT3JnYW5pemF0aW9uRGV0YWlscygpIHtcclxuICAgIHRoaXMuYXV0aC5nZXRPcmdhbml6YXRpb25EZXRhaWxzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcmdEZXRhaWxzID0gcmVzO1xyXG4gICAgICAgIGlmIChyZXM/LmJ1c2luZXNzX2N5Y2xlc19hcnIgJiYgcmVzPy5idXNpbmVzc19jeWNsZXNfYXJyPy5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gcmVzPy5idXNpbmVzc19jeWNsZXNfYXJyLmZpbHRlcihcclxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LnNlbGVjdGVkXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgY29uc3Qgc3BsaXR0ZWQgPSBzZWxlY3RlZFswXS5idXNpbmVzc19jeWNsZT8uc3BsaXQoJy0nKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGUgPSBgJHtzcGxpdHRlZFswXT8uc2xpY2UoXHJcbiAgICAgICAgICAgIDJcclxuICAgICAgICAgICl9IC0gJHtzcGxpdHRlZFsxXT8uc2xpY2UoNCl9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0VXNlckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLmF1dGguZ2V0VXNlckluZm8oKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLmF1dGgudXNlckRldGFpbHMgPSByZXM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXNzaWduZWVUeXBlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOlxyXG4gICAgICAgICdUaGlzIGFjdGlvbiB3aWxsIHJlc2V0IHRoZSBjaGFuZ2VzIGFuZCBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGFzc2lnbmVlLicsXHJcbiAgICAgIGFjdGlvbjogJ2Fzc2lnbmVlVHlwZUNoYW5nZScsXHJcbiAgICAgIGRhdGE6IHt9LFxyXG4gICAgICBpc1JlZEFsZXJ0OiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIGV2ZW50ID0+ICdzZXF1ZW50aWFsJyB8fCAnYW55UmV2aWV3ZXInXHJcbiAgb25SZXZpZXdlckNoYW5nZShldmVudDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb21tb25UZXh0OiBzdHJpbmcgPVxyXG4gICAgICAnT25jZSBjb25maXJtZWQsIHRoZSBuZXcgcmV2aWV3IHdvcmtmbG93IHdpbGwgYmUgYXBwbGljYWJsZSBmb3IgYWxsIGN1cnJlbnQgYW5kIGZ1dHVyZSByZXZpZXcgZHVlIGRhdGVzLic7XHJcbiAgICBjb25zdCBtc2cgPVxyXG4gICAgICBjb21tb25UZXh0ICtcclxuICAgICAgKGV2ZW50ID09PSAnYW55UmV2aWV3ZXInXHJcbiAgICAgICAgPyBgSWYgYW55IHJldmlld2VyIGhhZCBjb21wbGV0ZWQgdGhlIHJldmlldywgdGhlIGN1cnJlbnQgcmV2aWV3IGR1ZSBkYXRlIHdpbGwgYmUgY2xvc2VkIGFuZCB0aGUgcmV2aWV3IHN0YXR1cyB3aWxsIGJlIHVwZGF0ZWQgdG8gJ0NvbXBsZXRlZCcuYFxyXG4gICAgICAgIDogJycpO1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOiBtc2csXHJcbiAgICAgIGFjdGlvbjogZXZlbnQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5KCkge1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yZXNwb25zaWJpbGl0eV9zaW1wbGlmaWNhdGlvbicpKSB7XHJcbiAgICAgIHRoaXMud29ya2Zsb3dUeXBlTGlzdFswXS53b3JrZmxvd05hbWUgPSAnQWRkIGEgUmVzcG9uc2liaWxpdHknO1xyXG4gICAgICB0aGlzLndvcmtmbG93VHlwZUxpc3RbMV0ud29ya2Zsb3dOYW1lID0gJ0FkZCBNdWx0aXBsZSBSZXNwb25zaWJpbGl0aWVzJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrUmVmcmVzaCgpIHtcclxuICAgIGNvbnN0IGlzRXhpc3RzID0gKGNvZGU6IHN0cmluZykgPT4gdGhpcy5oYXNSZWZyZXNoZWQuaW5jbHVkZXMoY29kZSk7XHJcbiAgICBpZiAodGhpcy5wcm9ncmFtPy5pc1NhdmVkICYmICFpc0V4aXN0cygnQ0FQUicpKVxyXG4gICAgICB0aGlzLmhhc1JlZnJlc2hlZC5wdXNoKCdDQVBSJyk7XHJcbiAgICBpZiAodGhpcy5jb21wbGlhbmNlPy5pc1NhdmVkICYmICFpc0V4aXN0cygnQ0FSJykpXHJcbiAgICAgIHRoaXMuaGFzUmVmcmVzaGVkLnB1c2goJ0NBUicpO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLXNuYWNrLWJhcj48L2FwcC1zbmFjay1iYXI+XHJcblxyXG48ZGl2IGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLW92ZXJsYXlcIj48L2Rpdj5cclxuPGRpdlxyXG4gIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lXCJcclxuICBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIlxyXG4gIFtjbGFzcy5iZ109XCJcclxuICAgICghaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCByaXNrQnVsa1VwbG9hZD8uc2hvd0NhdGVnb3J5TGlzdCkgJiZcclxuICAgICFwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcclxuICBcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyXCJcclxuICAgIFtuZ1N3aXRjaF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGVcIlxyXG4gICAgW2NsYXNzLndpdGgtcHJldmlldy1hc3Nlc3NtZW50XT1cIihhdXRoPy5wcmV2aWV3UGFuZWwgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgW2NsYXNzLndpdGgtZnJlcXVlbmN5XT1cIlxyXG4gICAgICBjb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciA9PT0gJ2ZyZXF1ZW5jeScgfHxcclxuICAgICAgY29tcGxpYW5jZT8uYWN0aXZlU2VsZWN0b3IgPT09ICdyZXZpZXdlckZyZXF1ZW5jeScgfHxcclxuICAgICAgcmlza0NvbXBvbmVudD8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XHJcbiAgICAgIHBvbGljeT8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XHJcbiAgICAgIHBvbGljeT8uYWN0aXZlU2VsZWN0b3IgPT09ICdyZXZpZXdlckZyZXF1ZW5jeSdcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgpXCJcclxuICAgICAgaWQ9XCJjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuXCJcclxuICAgICAgY2xhc3M9XCJjbG9zZVwiXHJcbiAgICAgIFthcHBUb29sdGlwXT1cIidbRXNjXSB0byBjbG9zZSdcIlxyXG4gICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcclxuICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgICBjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlIHx8ICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXHJcbiAgICAgIFwiXHJcbiAgICAgIFtjbGFzcy5zbWlsZXktb3BlbmVkXT1cIlxyXG4gICAgICAgIHJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICBsb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSB8fFxyXG4gICAgICAgIGNvbXBsaWFuY2U/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHMgfHxcclxuICAgICAgICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fFxyXG4gICAgICAgIHJpc2tCdWxrVXBsb2FkPy5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgcmlza0J1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fFxyXG4gICAgICAgIHByb2dyYW0/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICBpbXBvcnRBbkFzc2Vzc21lbnQ/LnNob3dTbWlsZXlcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5M2Y7PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiIXVpS2l0U2VydmljZS5pc1NtaWxleU9uXCJcclxuICAgICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtbW9yZVwiXHJcbiAgICAgIFtoaWRkZW5dPVwic2hvd01vcmVPcHRpb24gPT09IGZhbHNlIHx8IHBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50c1wiXHJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcclxuICAgICAgW2NsYXNzLnJlYWQtb25seV09XCJ1aUtpdFNlcnZpY2U/LmlzTG9hZGVyXCJcclxuICAgID5cclxuICAgICAgPGFwcC1tb3JlLW9wdGlvblxyXG4gICAgICAgICNtb3JlT3B0aW9uXHJcbiAgICAgICAgW2N1cnJlbnRXb3JrZmxvd109XCJjdXJyZW50V29ya2Zsb3c/LmNvZGVcIlxyXG4gICAgICAgIFtpc0VkaXRNb2RlXT1cIm1vZGUgPT09ICdFRElUJ1wiXHJcbiAgICAgICAgW2lzUkNTZWxlY3RlZF09XCJcclxuICAgICAgICAgIGlzUkNTZWxlY3RlZCB8fFxyXG4gICAgICAgICAgKGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0dSQycgJiZcclxuICAgICAgICAgICAgZ3JjT2JqZWN0Py5saXN0T2JqZWN0LlJDLnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMClcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxyXG4gICAgICAgIChzZWxlY3RlZE9wdGlvbik9XCJhZGRNb3JlSW5mbygkZXZlbnQpXCJcclxuICAgICAgICBbaXNQcm9ncmFtU2VsZWN0ZWRdPVwic2VsZWN0ZWRQcm9ncmFtXCJcclxuICAgICAgICBbYWxsb3dlZEZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgW29yZ0RldGFpbHNEYXRhXT1cIm9yZ0RldGFpbHNcIlxyXG4gICAgICAgIFtpc0F0dHJpYnV0ZXNBdmFpbGFibGVdPVwiXHJcbiAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdHUkMnICYmXHJcbiAgICAgICAgICBncmNPYmplY3Q/LnNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoID4gMFxyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgPC9hcHAtbW9yZS1vcHRpb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtZm9ybVwiXHJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcclxuICAgICAgW2NsYXNzLm5vLXNoYWRvd109XCJcclxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FNUicgfHxcclxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0NNUicgfHxcclxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FBQScgfHxcclxuICAgICAgICB1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiB8fFxyXG4gICAgICAgIHBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50c1xyXG4gICAgICBcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgKHNjcm9sbCk9XCJzY3JvbGxGb3JtKClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgIG9wZW5lZEZyb21cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiISh1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiB8fCBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHMpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAgICAgICAgICNkcm9wZG93blJvd1xyXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAgICAgbW9kZSA9PT0gJ0VESVQnIHx8XHJcbiAgICAgICAgICAgICAgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHxcclxuICAgICAgICAgICAgICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UgfHxcclxuICAgICAgICAgICAgICBzZWxlY3RlZFByb2dyYW1cclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3dcIj5cclxuICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGVcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGN4PVwiMjZcIlxyXG4gICAgICAgICAgICAgICAgICBjeT1cIjI2XCJcclxuICAgICAgICAgICAgICAgICAgcj1cIjI1XCJcclxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCIgI2Ryb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICAgICAgICAgID5TZWxlY3QgYSBXb3JrZmxvdzxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjdXJyZW50V29ya2Zsb3dcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIFdvcmtmbG93XCIgcmVhZG9ubHkgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkIGZpcnN0LWZpZWxkXCIgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3dcIj5cclxuICAgICAgICAgICAgICAgICAgPCEtLSB7e2N1cnJlbnRXb3JrZmxvdyB8IGpzb259fSAtLT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMiB2eC1tci0yXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCBuby13aWR0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJjdXJyZW50V29ya2Zsb3c/LndvcmtmbG93TmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgID57eyBjdXJyZW50V29ya2Zsb3c/LndvcmtmbG93TmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPnt7Y3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0V29ya2Zsb3coKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhd29ya2Zsb3dMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdFxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0NBUFInICYmXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEJ1c2luZXNzQ3ljbGUgJiZcclxuICAgICAgICAgICAgICAgICAgICAhcHJvZ3JhbVNpbXBsaWZ5RmxhZ1xyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyYW0tYnVzaW5lc3MtY3ljbGUgdngtZnMtMTEgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0xIHZ4LXBsLTIgdngtcHItMVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTIgdngtbXItMVwiPiYjeGU5NjM7PC9pPiBUaGlzIHByb2dyYW0gaXNcclxuICAgICAgICAgICAgICAgICAgYmVpbmcgc2V0LXVwIGZvciB0aGUgYnVzaW5lc3MgY3ljbGU6XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNjAwIHZ4LW1sLTFcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCdXNpbmVzc0N5Y2xlXHJcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSA8YXBwLWNyZWF0ZS1kb2N1bWVudHM+PC9hcHAtY3JlYXRlLWRvY3VtZW50cz4gLS0+XHJcbiAgICAgICAgPCEtLSA8YXBwLWJ1bGstdmlldz48L2FwcC1idWxrLXZpZXc+IC0tPlxyXG4gICAgICAgIDwhLS0gPGFwcC1idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXc+PC9hcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3PiAtLT5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LWNvbXBsaWFuY2VcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgIFtvcmdEZXRhaWxzXT1cIm9yZ0RldGFpbHNcIlxyXG4gICAgICAgICAgW2lzRW50cnVzdF09XCJlbnRydXN0QnV0dG9uTmFtZS50b0xvd2VyQ2FzZSgpID09ICdlbnRydXN0J1wiXHJcbiAgICAgICAgICBbcmVzcG9uc2liaWxpdHlJZF09XCJpZFwiXHJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgIFtmcmFtZXdvcmtEZXRhaWxzXT1cImZyYW1ld29ya0RldGFpbHNcIlxyXG4gICAgICAgICAgW2Fzc2Vzc21lbnREZXRhaWxzXT1cImFzc2Vzc21lbnREZXRhaWxzXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUidcIlxyXG4gICAgICAgICAgI3Jlc3BvbnNpYmlsaXR5XHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcclxuICAgICAgICAgIFtzZWxlY3RlZFJDXT1cInNlbGVjdGVkUkNcIlxyXG4gICAgICAgICAgW2Nsb3NlT25Fc2NdPVwiY2xvc2VPbkVzY1wiXHJcbiAgICAgICAgICAoYXNzaWduZWVUeXBlQ2hhbmdlKT1cImFzc2lnbmVlVHlwZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChvblJldmlld2VyVHlwZUNoYW5nZSk9XCJvblJldmlld2VyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAgIFtpc1dlYlZpZXddPVwiaXNXZWJWaWV3XCJcclxuICAgICAgICAgIChyY1NlbGVjdGVkKT1cIm9uUmNTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChyZXNldEZvcm0pPVwib25SZXNldEZvcm0oKVwiXHJcbiAgICAgICAgICAob25SZW1vdmluZ0NoZWNrcG9pbnQpPVwib25SZW1vdmluZ0NoZWNrcG9pbnQoJGV2ZW50LCBmYWxzZSwgdHJ1ZSlcIlxyXG4gICAgICAgICAgKGlzQXNzZXNzbWVudERpc2FibGVkKT1cImlzQXNzZXNzbWVudERpc2FibGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGNoZWNrcG9pbnRDb3VudFVwZGF0ZWQpPVwiY2hlY2twb2ludENvdW50ID0gJGV2ZW50XCJcclxuICAgICAgICAgIFtzZWxlY3RlZFByb2dyYW1dPVwic2VsZWN0ZWRQcm9ncmFtXCJcclxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctY29tcGxpYW5jZT5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LXJpc2tcclxuICAgICAgICAgIFtzZWNvbmRhcnlPcGVuUG9ydGFsXT1cInNlY29uZGFyeU9wZW5Qb3J0YWxcIlxyXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBUidcIlxyXG4gICAgICAgICAgI3Jpc2tcclxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxyXG4gICAgICAgICAgKGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxyXG4gICAgICAgICAgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbcmlza0lkXT1cImlkXCJcclxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1yaXNrPlxyXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctcG9saWN5XHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUCdcIlxyXG4gICAgICAgICAgI3BvbGljeVxyXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoc2hpZnRUb0VkaXRNb2RlKT1cInNoaWZ0VG9FZGl0TW9kZSgpXCJcclxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgICAgW3BvbGljeUlkXT1cImlkXCJcclxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgW2NvbnZlcnRGaWxlRGF0YV09XCJjb252ZXJ0RmlsZURhdGFcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkQ2F0ZWdvcnldPVwic2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgICAgICAgICBbaXNTZW5kRm9yQXR0ZXN0YXRpb25dPVwiaXNTZW5kRm9yQXR0ZXN0YXRpb25cIlxyXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1wb2xpY3k+XHJcbiAgICAgICAgPGFwcC13b3JrZmxvdy1zdXJ2ZXktZm9ybVxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVMnXCJcclxuICAgICAgICAgICNzdXJ2ZXlGb3JtXHJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LXN1cnZleS1mb3JtPlxyXG4gICAgICAgIDxhcHAtYWRkLW11bHRpcGxlLXJpc2tcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQU1SJ1wiXHJcbiAgICAgICAgICAjbXVsdGlwbGVSaXNrXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLWFkZC1tdWx0aXBsZS1yaXNrPlxyXG4gICAgICAgIDwhLS0gPGFwcC1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHkgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCIgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCIgI211bHRpcGxlUmVzcG9uc2liaWxpdHk+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHk+IC0tPlxyXG5cclxuICAgICAgICA8bGliLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS1jb250YWluZXJcclxuICAgICAgICAgIFtvcmdEZXRhaWxzXT1cIm9yZ0RldGFpbHNcIlxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiXHJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcclxuICAgICAgICAgICNtdWx0aXBsZVJlc3BvbnNpYmlsaXR5XHJcbiAgICAgICAgPjwvbGliLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSBOZXcgTG9nIGFuIElzc3VlIC0tPlxyXG4gICAgICAgIDxhcHAtbG9nLWFuLWlzc3VlXHJcbiAgICAgICAgICBbaXNzdWVEZXRhaWxzXT1cImlzc3VlRGF0YVwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIlxyXG4gICAgICAgICAgW3JlcG9uc2liaWxpdHlEYXRhXT1cInJlcG9uc2liaWxpdHlEYXRhXCJcclxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxyXG4gICAgICAgICAgW2lzc3VlSWRdPVwiaWRcIlxyXG4gICAgICAgICAgI2xvZ0FuSXNzdWVcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICBbKG1vZGUpXT1cIm1vZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+XHJcbiAgICAgICAgPCEtLSBPbGQgTG9nIGFuIGlzc3VlIC0tPlxyXG4gICAgICAgIDwhLS0gPGFwcC1sb2ctYW4taXNzdWUgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCIgW3Jlc3BvbnNpYmlsaXRpZXNEYXRhXT1cInJlcG9uc2liaWx0eURhdGFcIiBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAgICAgICAgICNsb2dBbklzc3VlIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWxvZy1hbi1pc3N1ZT4gLS0+XHJcblxyXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctYXNzZXNzbWVudFxyXG4gICAgICAgICAgW2Fzc2Vzc21lbnRJZF09XCJpZFwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQUEnXCJcclxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcclxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgI2Fzc2Vzc21lbnRcclxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctYXNzZXNzbWVudD5cclxuICAgICAgICA8YXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50XHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiXHJcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXHJcbiAgICAgICAgICAjaW1wb3J0QXNzZXNzbWVudFxyXG4gICAgICAgID48L2FwcC1pbXBvcnQtYW4tYXNzZXNzbWVudD5cclxuICAgICAgICA8IS0tIDxhcHAtd29ya2Zsb3ctcHJvZ3JhbSAjcHJvZ3JhbSAqbmdTd2l0Y2hDYXNlPVwiJ0NBUFInXCIgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCI+PC9hcHAtd29ya2Zsb3ctcHJvZ3JhbT4gLS0+XHJcbiAgICAgICAgPGFwcC13b3JrZmxvdy1wcm9ncmFtXHJcbiAgICAgICAgICAjcHJvZ3JhbVxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiXHJcbiAgICAgICAgICBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcclxuICAgICAgICAgIFthbGxvd2VkRmVhdHVyZV09XCJmZWF0dXJlXCJcclxuICAgICAgICAgIChkaXNhYmxlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiZGlzYWJsZU1vcmVPcHRpb25zKCdDQVBSJywgJGV2ZW50KVwiXHJcbiAgICAgICAgICBbcHJvZ3JhbVR5cGVdPVwicHJvZ3JhbVR5cGVcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXHJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgIFtwcm9ncmFtSWRdPVwiaWRcIlxyXG4gICAgICAgICAgW2lzV2ViVmlld109XCJpc1dlYlZpZXdcIlxyXG4gICAgICAgICAgKG9uUmVtb3ZpbmdSb2xlKT1cIm9uUmVtb3ZpbmdSb2xlKCRldmVudClcIlxyXG4gICAgICAgICAgW2NhbkZyYW1ld29ya0NoYW5nZV09XCJjYW5GcmFtZXdvcmtDaGFuZ2VcIlxyXG4gICAgICAgICAgW2FkZFRvUHJvZ3JhbURldGFpbHNdPVwiYWRkVG9Qcm9ncmFtRGV0YWlsc1wiXHJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LXByb2dyYW0+XHJcblxyXG4gICAgICAgIDwhLS0gR1JDIE9iamVjdCAtLT5cclxuICAgICAgICA8bGliLWdyYy1vYmplY3QtY29udGFpbmVyXHJcbiAgICAgICAgICAjZ3JjT2JqZWN0XHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0dSQydcIlxyXG4gICAgICAgICAgW2dyY1R5cGVdPVwiZ3JjVHlwZVwiXHJcbiAgICAgICAgICBbTU9ERV09XCJtb2RlXCJcclxuICAgICAgICAgIFtJRF09XCJpZFwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlc2V0Rm9ybSk9XCJvblJlc2V0R1JDRm9ybSgpXCJcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIlxyXG4gICAgICAgID48L2xpYi1ncmMtb2JqZWN0LWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBUidcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7e1xyXG4gICAgICAgICAgbW9kZSA9PT0gXCJFRElUXCIgJiYgb3BlbmVkRnJvbSAhPT0gXCJNT1ZFX1RPX1JFR0lTVEVSXCJcclxuICAgICAgICAgICAgPyBcIlVwZGF0ZVwiXHJcbiAgICAgICAgICAgIDogXCJBZGRcIlxyXG4gICAgICAgIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgICAgICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8XHJcbiAgICAgICAgICAhcmlza0J1bGtVcGxvYWQ/LmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5XHJcbiAgICAgICAgXCJcclxuICAgICAgICAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnQU1SJylcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQU1SJ1wiXHJcbiAgICAgID5cclxuICAgICAgICBCcm93c2VcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnQ01SJylcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiXHJcbiAgICAgID5cclxuICAgICAgICBCcm93c2VcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyMVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDQVInXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwic3VibWl0IHNhdmUtYnV0dG9uLWNvbG9yXCJcclxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbXBsaWFuY2Uuc2F2ZUZvckxhdGVyQnV0dG9uKClcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIG1vZGUgPT09ICdDUkVBVEUnIHx8IChtb2RlID09PSAnRURJVCcgJiYgY29tcGxpYW5jZT8uaXNEcmFmdClcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgU0FWRSBGT1IgTEFURVJcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFRoaXMgaGFzIHRlcm5hcnkgb3BlcmF0aW9uIHRvIGhhbmRsZSB0aGUgYm90aCBzY2VuYXJpb3Mgb2YgaG93IGl0IHdvcmtzIHdpdGggY29tcGxpYW5jZSBhbmQgcHJvZ3JhbSBtb2R1bGUsIHBsZWFzZSBkb24ndCBjaGFuZ2UgdGhpcy4gLS0+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJzdWJtaXQgZW50cnVzdC1idXR0b25cIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUidcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgIGVudHJ1c3RCdXR0b25OYW1lICE9PSBcIlwiICYmIG1vZGUgIT09IFwiRURJVFwiXHJcbiAgICAgICAgICAgICAgPyBlbnRydXN0QnV0dG9uTmFtZVxyXG4gICAgICAgICAgICAgIDogbW9kZSA9PT0gXCJFRElUXCIgJiYgY29tcGxpYW5jZT8uaXNEcmFmdFxyXG4gICAgICAgICAgICAgID8gXCJlbnRydXN0XCJcclxuICAgICAgICAgICAgICA6IFwidXBkYXRlXCJcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7XHJcbiAgICAgICAgICBtb2RlID09IFwiRURJVFwiXHJcbiAgICAgICAgICAgID8gaXNTZW5kRm9yQXR0ZXN0YXRpb25cclxuICAgICAgICAgICAgICA/IFwiU2VuZCBmb3IgYXR0ZXN0YXRpb25cIlxyXG4gICAgICAgICAgICAgIDogXCJVcGRhdGVcIlxyXG4gICAgICAgICAgICA6IFwiQ29udGludWUgdG8gZHJhZnRcIlxyXG4gICAgICAgIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVMnXCJcclxuICAgICAgPlxyXG4gICAgICAgIENvbnRpbnVlIHRvIGRyYWZ0XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCJcclxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgbW9kZSA9PT0gXCJFRElUXCIgPyBcIlVwZGF0ZVwiIDogXCJBZGRcIiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFBJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiQ29udGludWUgdG8gZHJhZnRcIiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJidWxrVXBsb2FkQnJvd3NlKCdJQUEnKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidJQUEnXCJcclxuICAgICAgPlxyXG4gICAgICAgIEJyb3dzZVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXByb2dyYW0/LnZhbGlkXCJcclxuICAgICAgICAoY2xpY2spPVwic3VibWl0KCdDQVBSJylcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgbW9kZSA9PT0gXCJFRElUXCIgPyBcIlVwZGF0ZVwiIDogXCJTYXZlXCIgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8ICFwcm9ncmFtPy52YWxpZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgnQ0FQUicpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUFInXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgKm5nU3dpdGNoQ2FzZT1cIidHUkMnXCI+XHJcbiAgICAgICAge3sgbW9kZSA9PT0gXCJFRElUXCIgPyBcIlVwZGF0ZVwiIDogXCJTYXZlXCIgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICAgICAgICAqbmdJZj1cIndvcmtmbG93TGlzdFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dMaXN0KClcIlxyXG4gICAgICAgIFtzdHlsZS50b3AucHhdPVwiZHJvcGRvd25Ub3BcIlxyXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImRyb3Bkb3duTGVmdFwiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImRyb3Bkb3duV2lkdGhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbGlzdFwiPlxyXG4gICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB3b3JrZmxvdyBvZiB3b3JrZmxvd1R5cGVMaXN0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVdvcmtmbG93KCRldmVudCwgd29ya2Zsb3cpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJ3b3JrZmxvdz8uY29kZVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY3VycmVudFdvcmtmbG93Py5jb2RlID09PSB3b3JrZmxvdz8uY29kZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyB3b3JrZmxvdz8ud29ya2Zsb3dOYW1lIH19PC9hcHAtY3MtcmFkaW9cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tb3ZlcmxheVwiXHJcbiAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd0xpc3RcIlxyXG4gICAgICAgIChjbGljayk9XCJjbG9zZVdvcmtmbG93TGlzdCgpXCJcclxuICAgICAgPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLWNvbmZpcm1hdGlvbi1hbGVydFxyXG4gICAgICBpZD1cImNvbmZpcm1hdGlvbi1kaWFsb2d1ZVwiXHJcbiAgICAgIChhY3Rpb24pPVwiY29uZmlybVdvcmtmbG93Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAqbmdJZj1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxyXG4gICAgICBbbWVzc2FnZV09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8ubWVzc2FnZVwiXHJcbiAgICAgIFtjb25maWddPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWdcIlxyXG4gICAgPjwvYXBwLWNvbmZpcm1hdGlvbi1hbGVydD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
691
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCdkIsTUFBTSxPQUFPLGdDQUFnQztJQVczQyxZQUNTLFlBQTBCLEVBQ3pCLFFBQXlCLEVBQzFCLElBQWlCO1FBRmpCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWE7UUFiMUIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQWEzQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ2hCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixlQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQWUsRUFBRSxDQUFDLENBQUMseUNBQXlDO1FBQzVFLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLG9CQUFlLEdBQUcsUUFBUSxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4QixzQkFBaUIsR0FBRztZQUMzQiw0QkFBNEI7WUFDNUIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUNPLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixjQUFTLEdBQUc7WUFDbkIsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ08sc0JBQWlCLEdBQUcsU0FBUyxDQUFDO1FBRTlCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixvQkFBZSxHQUFRLElBQUksQ0FBQztRQUM1Qix1QkFBa0IsR0FBWSxJQUFJLENBQUMsQ0FBQyx1REFBdUQ7UUFJcEcsd0JBQW1CLEdBTWY7WUFDRixHQUFHLEVBQUUsRUFBRTtZQUNQLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLEVBQUUsRUFBRSxDQUFDO1lBQ0wsSUFBSSxFQUFFLEVBQUU7WUFDUixXQUFXLEVBQUUsRUFBRTtTQUNoQixDQUFDO1FBQ08sWUFBTyxHQUFrQixDQUFDLENBQUM7UUFDM0IseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBRXRDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFHcEMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLGlDQUE0QixHQUFZLEtBQUssQ0FBQztRQUU5QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLDhCQUF5QixHQUFHLElBQUksQ0FBQztRQUVqQyxvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUM1Qix5QkFBb0IsR0FBUSxFQUFFLENBQUM7UUF3Qi9CLGVBQVUsR0FBWSxLQUFLLENBQUM7UUE0QjVCLHFCQUFnQixHQUFRO1lBQ3RCO2dCQUNFLFlBQVksRUFBRSx5QkFBeUI7Z0JBQ3ZDLElBQUksRUFBRSxLQUFLO2dCQUNYLG9CQUFvQixFQUFFLGdCQUFnQjthQUN2QztZQUNEO2dCQUNFLFlBQVksRUFBRSxrQ0FBa0M7Z0JBQ2hELElBQUksRUFBRSxLQUFLO2dCQUNYLG9CQUFvQixFQUFFLHlCQUF5QjthQUNoRDtZQUNELEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRTtZQUN6RTtnQkFDRSxZQUFZLEVBQUUsb0JBQW9CO2dCQUNsQyxJQUFJLEVBQUUsS0FBSztnQkFDWCxvQkFBb0IsRUFBRSxlQUFlO2FBQ3RDO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLGlCQUFpQjtnQkFDL0IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsb0JBQW9CLEVBQUUsUUFBUTthQUMvQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxpQkFBaUI7Z0JBQy9CLElBQUksRUFBRSxLQUFLO2dCQUNYLG9CQUFvQixFQUFFLFFBQVE7YUFDL0I7WUFDRDtnQkFDRSxZQUFZLEVBQUUsZUFBZTtnQkFDN0IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsb0JBQW9CLEVBQUUsTUFBTTthQUM3QjtZQUNEO2dCQUNFLFlBQVksRUFBRSxjQUFjO2dCQUM1QixJQUFJLEVBQUUsS0FBSztnQkFDWCxvQkFBb0IsRUFBRSxPQUFPO2FBQzlCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsb0JBQW9CLEVBQUUsWUFBWTthQUNuQztZQUNEO2dCQUNFLFlBQVksRUFBRSxzQkFBc0I7Z0JBQ3BDLElBQUksRUFBRSxLQUFLO2dCQUNYLG9CQUFvQixFQUFFLG1CQUFtQjthQUMxQztZQUNEO2dCQUNFLFlBQVksRUFBRSxlQUFlO2dCQUM3QixJQUFJLEVBQUUsTUFBTTtnQkFDWixvQkFBb0IsRUFBRSxTQUFTO2FBQ2hDO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLGtCQUFrQjtnQkFDaEMsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsb0JBQW9CLEVBQUUsYUFBYTthQUNwQztTQUNGLENBQUM7UUFDRiw4QkFBeUIsR0FBRztZQUMxQixXQUFXO1lBQ1gsdUJBQXVCO1lBQ3ZCLHlCQUF5QjtTQUMxQixDQUFDO1FBQ0YsNEJBQXVCLEdBQXNCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xFLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBbkx6QixDQUFDO0lBVkosa0JBQWtCLENBQUMsTUFBVztRQUM1QixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLEtBQUssRUFBRTtZQUNyQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUMzQjtJQUNILENBQUM7SUFpR29ELGdCQUFnQixDQUNuRSxLQUFvQjtRQUVwQixJQUNFO1lBQ0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVO1lBQzlCLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVTtZQUMvQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsVUFBVTtZQUN6QyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFVBQVU7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFVBQVU7U0FDbkMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVTtZQUN4QixJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQzNCO1lBQ0EsWUFBWTtTQUNiO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFxRUQsbUJBQW1CLENBQUMsR0FBUztRQUMzQixJQUFJLEdBQUcsRUFBRSxPQUFPLEtBQUssS0FBSyxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDdEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMxQixXQUFXLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFO2FBQzNCLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFRO1FBQ25CLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUM3QixTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSx5REFBeUQ7WUFDbEUsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixJQUFJLEVBQUUsR0FBRztTQUNWLENBQUM7SUFDSixDQUFDO0lBQ0QsWUFBWSxDQUFDLEdBQVE7UUFDbkIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJO2dCQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWTthQUMzQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUN0RCxxQkFBcUIsQ0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUNyRCwwQkFBMEIsQ0FDM0IsQ0FBQztRQUNGLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsc0RBQXNELEVBQ3RELE9BQU8sQ0FDUixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ2pFLE9BQU8sUUFBUSxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssZ0JBQWdCLEVBQUU7WUFDeEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztZQUN0QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQWM7UUFDakMsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNyRSxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM1QixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7YUFDeEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQzthQUN2QztTQUNGO2FBQU07WUFDTCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO2dCQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDM0IsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQzthQUN2QztZQUNELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzNCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7YUFDdkM7U0FDRjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osUUFBUSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRTtZQUNsQyxLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUN2QyxNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzNCLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3BELE1BQU07WUFDUixLQUFLLE1BQU0sQ0FBQyxDQUFDO2dCQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzNCLE1BQU07YUFDUDtZQUNELEtBQUssS0FBSyxDQUFDLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDL0IsTUFBTTthQUNQO1lBQ0QsY0FBYztZQUNkLGdEQUFnRDtTQUNqRDtJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUNELGNBQWMsQ0FBQyxHQUFRLEVBQUUsZ0JBQXFCO1FBQzVDLElBQUksZ0JBQWdCLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFO1lBQ3pELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUM3QixTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxnRUFBZ0U7WUFDekUsTUFBTSxFQUFFLGlCQUFpQjtZQUN6QixJQUFJLEVBQUUsZ0JBQWdCO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBUTtRQUM1QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQzFCLEtBQUssaUJBQWlCO29CQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO29CQUNsRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFO3dCQUM5QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7NEJBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7eUJBQ3REO3dCQUNELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO3FCQUM3QjtvQkFFRCxNQUFNO2dCQUNSLEtBQUssV0FBVztvQkFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMzRCxNQUFNO2dCQUNSLEtBQUssZUFBZTtvQkFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVDLE1BQU07Z0JBQ1IsS0FBSyxnQkFBZ0I7b0JBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7d0JBQ3RCLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUk7d0JBQ3hCLEtBQUssRUFBRSxJQUFJO3dCQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWTtxQkFDM0IsQ0FBQyxDQUFDO29CQUNILE1BQU07Z0JBRVIsS0FBSyxNQUFNO29CQUNULElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUM5QyxNQUFNO2dCQUNSLEtBQUssb0JBQW9CO29CQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO29CQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJO3dCQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQ2hDLGFBQWEsQ0FDZCxDQUFDO29CQUNKLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUM7NEJBQzdELEVBQUUsQ0FBQztxQkFDTjtvQkFFRCxNQUFNO2dCQUNSLEtBQUssWUFBWTtvQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQ2hELG9CQUFvQixDQUNyQixHQUFHLElBQUksQ0FBQztvQkFDVCxNQUFNO2dCQUNSLEtBQUssYUFBYTtvQkFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUNoRCxvQkFBb0IsQ0FDckIsR0FBRyxLQUFLLENBQUM7b0JBQ1YsTUFBTTthQUNUO1NBQ0Y7YUFBTTtZQUNMLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQzFCLEtBQUssZUFBZTtvQkFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVDLE1BQU07Z0JBQ1IsS0FBSyxvQkFBb0I7b0JBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGNBQWM7d0JBQ3pELFNBQVMsQ0FBQztvQkFDWixNQUFNO2dCQUVSLEtBQUssWUFBWTtvQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQ2hELG9CQUFvQixDQUNyQixHQUFHLEtBQUssQ0FBQztvQkFDVixNQUFNO2dCQUNSLEtBQUssYUFBYTtvQkFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUNoRCxvQkFBb0IsQ0FDckIsR0FBRyxJQUFJLENBQUM7b0JBQ1QsTUFBTTthQUNUO1NBQ0Y7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDN0IsU0FBUyxFQUFFLEtBQUs7WUFDaEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxNQUFNLEVBQUUsRUFBRTtZQUNWLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUNGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFdBQVcsQ0FBQyxZQUFpQixFQUFFLFlBQWlCO1FBQzlDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FDeEMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssWUFBWSxDQUNqRCxDQUFDO1FBQ0YsZ0JBQWdCO1lBQ2QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLFFBQVEsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUU7WUFDbEMsS0FBSyxLQUFLO2dCQUNSLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFFUixLQUFLLEtBQUs7Z0JBQ1IsSUFDRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRTtvQkFDdEQsa0JBQWtCLEVBQ2xCO29CQUNBLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQzVELENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxLQUFLLFlBQVksQ0FDekMsQ0FBQztvQkFFRixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTt3QkFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7d0JBRTFELElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQzNDLENBQUM7cUJBQ0g7aUJBQ0Y7Z0JBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFVO1FBQzNCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFDRCwyQkFBMkIsQ0FBQyxLQUFVO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxNQUF5QjtRQUM3QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxLQUFLO2dCQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDeEMsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDbEQsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFFNUMsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FDbEIsS0FBYSxFQUNiLG1CQUE2QixFQUM3QixhQUF1QjtRQUV2QixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLEtBQUssS0FBSyxpQkFBaUIsRUFBRTtZQUMvQixHQUFHO2dCQUNELDBLQUEwSyxDQUFDO1NBQzlLO2FBQU07WUFDTCxHQUFHO2dCQUNELHlGQUF5RixDQUFDO1NBQzdGO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzdCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEdBQUc7WUFDWixNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRTtZQUMxQyxtQkFBbUIsRUFBRSxtQkFBbUIsSUFBSSxLQUFLO1lBQ2pELGFBQWEsRUFBRSxhQUFhLElBQUksS0FBSztTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhO1FBQzFCLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksS0FBSyxFQUFFO1lBQ1QsR0FBRyxHQUFHLDZEQUE2RCxDQUFDO1NBQ3JFO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzdCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEdBQUc7WUFDWixNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxLQUFLO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxVQUFtQjtRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDMUQsSUFBSSxNQUFNLEVBQUUsSUFBSSxLQUFLLFlBQVksSUFBSSxNQUFNLEVBQUUsSUFBSSxLQUFLLGlCQUFpQixFQUFFO2dCQUN2RSxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUMxQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLFlBQWlCLEVBQUUsb0JBQXlCO1FBQzdELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDcEUsSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO29CQUMvQyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDMUI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQWE7UUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFxQjtRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDM0MsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2dCQUN0QixJQUFJLEdBQUcsRUFBRSxtQkFBbUIsSUFBSSxHQUFHLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFO29CQUNoRSxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUM5QyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FDNUIsQ0FBQztvQkFDRixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FDL0MsQ0FBQyxDQUNGLE1BQU0sUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNoQztZQUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDN0MsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUM3QixTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFDTCxpR0FBaUc7WUFDbkcsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixJQUFJLEVBQUUsRUFBRTtZQUNSLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsTUFBTSxVQUFVLEdBQ2QseUdBQXlHLENBQUM7UUFDNUcsTUFBTSxHQUFHLEdBQ1AsVUFBVTtZQUNWLENBQUMsS0FBSyxLQUFLLGFBQWE7Z0JBQ3RCLENBQUMsQ0FBQyw0SUFBNEk7Z0JBQzlJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNWLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUM3QixTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxHQUFHO1lBQ1osTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUMsRUFBRTtZQUNyRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUFDO1lBQy9ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsK0JBQStCLENBQUM7U0FDekU7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs2SEFocUJVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLGkwRUNoQzdDLHNtcEJBcWdCQTsyRkRyZWEsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLHVDQUF1QzsySkFTakQsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVl0QyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQU1HLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFJTixtQkFBbUI7c0JBSGxCLEtBQUs7O3NCQUVMLEtBQUs7Z0JBY0csT0FBTztzQkFBZixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFhZ0MsYUFBYTtzQkFBbEQsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVwQyxjQUFjO3NCQURiLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHNUMsd0JBQXdCO3NCQUR2QixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHdEQsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFRixVQUFVO3NCQUFyRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ25CLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDd0IsV0FBVztzQkFBdkQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN0QixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ00saUJBQWlCO3NCQUF6QyxTQUFTO3VCQUFDLFlBQVk7Z0JBRXZCLDJCQUEyQjtzQkFEMUIsU0FBUzt1QkFBQyxZQUFZO2dCQUd2QixrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVQLE9BQU87c0JBQS9DLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdkMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBU2hDLE9BQU87c0JBQWYsS0FBSztnQkFFK0MsZ0JBQWdCO3NCQUFwRSxZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXFPbkQsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtbXVsdGlwbGUtcmlzay9hZGQtbXVsdGlwbGUtcmlzay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25BbGVydCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlybWF0aW9uLWFsZXJ0JztcclxuaW1wb3J0IHsgSXNzdWVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pc3N1ZS1kYXRhJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWFzc2Vzc21lbnQvd29ya2Zsb3ctYXNzZXNzbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtmbG93Q29tcGxpYW5jZUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWNvbXBsaWFuY2Uvd29ya2Zsb3ctY29tcGxpYW5jZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd1BvbGljeUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXBvbGljeS93b3JrZmxvdy1wb2xpY3kuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya2Zsb3dSaXNrQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctcmlzay93b3JrZmxvdy1yaXNrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dBbklzc3VlQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9sb2ctYW4taXNzdWUvbG9nLWFuLWlzc3VlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vcmVPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLy4uL21vcmUtb3B0aW9uL21vcmUtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtmbG93UHJvZ3JhbUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXByb2dyYW0vd29ya2Zsb3ctcHJvZ3JhbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcmNPYmplY3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy9ncmMtb2JqZWN0L2dyYy1vYmplY3QtY29udGFpbmVyL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC12Y29tcGx5LXdvcmtmbG93LWVuZ2luZS1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93RW5naW5lQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBpc0hvc3RSZWZyZXNoQWN0aXZlID0gdHJ1ZTtcclxuICBpc1JDU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBmZWF0dXJlRmxhZ19ncm91cHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6YmVmb3JldW5sb2FkJywgWyckZXZlbnQnXSlcclxuICB1bmxvYWROb3RpZmljYXRpb24oJGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBpZiAodGhpcy5pc0hvc3RSZWZyZXNoQWN0aXZlICYmIHRva2VuKSB7XHJcbiAgICAgICRldmVudC5yZXR1cm5WYWx1ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVpS2l0U2VydmljZTogVWlLaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIGF1dGg6IEF1dGhTZXJ2aWNlXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIHdvcmtmbG93VHlwZSA9ICcnO1xyXG4gIEBJbnB1dCgpIG1vZGUgPSAnQ1JFQVRFJztcclxuICBASW5wdXQoKSBpZCA9ICcnO1xyXG4gIEBJbnB1dCgpIG9wZW5lZEZyb20gPSAnR0xPQkFMJztcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBhbGxvd2VkV29ya2Zsb3dzOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBmcmFtZXdvcmtEZXRhaWxzOiBBcnJheTxhbnk+ID0gW107IC8vIG9ubHkgZm9yIGNvbXBsaWFuY2UgcGFydCBmb3IgZnJhbWV3b3JrXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSQyA9ICcnO1xyXG4gIEBJbnB1dCgpIHNlY29uZGFyeU9wZW5Qb3J0YWwgPSAnJztcclxuICBASW5wdXQoKSBkZWZhdWx0Umlza1R5cGUgPSAnTk9STUFMJztcclxuICBASW5wdXQoKSBtb3ZlVG9SZWdpc3Rlck1vZGUgPSAnJztcclxuICBASW5wdXQoKSByZXBvbnNpYmlsaXR5RGF0YSA9IHtcclxuICAgIC8vIG9ubHkgdXNlZCBieSBsb2cgYW4gaXNzdWVcclxuICAgIHJlc3BvbnNpYmlsaXR5SWQ6IG51bGwsXHJcbiAgICByZXNwb25zaWJpbGl0eU5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICB9O1xyXG4gIEBJbnB1dCgpIHBpZCA9ICcnO1xyXG4gIEBJbnB1dCgpIHByb2dyYW1UeXBlOiBudW1iZXIgPSAxO1xyXG4gIEBJbnB1dCgpIGlzc3VlRGF0YSA9IHtcclxuICAgIGF1ZGl0UGxhbklkOiBudWxsLFxyXG4gICAgYXVkaXRQbGFuTmFtZTogJycsXHJcbiAgICByY0lkOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgZW50cnVzdEJ1dHRvbk5hbWUgPSAnRW50cnVzdCc7XHJcbiAgQElucHV0KCkgY29uZmlnITogSXNzdWVDb25maWd1cmF0aW9uO1xyXG4gIEBJbnB1dCgpIGNvbnZlcnRGaWxlRGF0YSA9IHt9O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcnkgPSAnJztcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRQcm9ncmFtOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGNhbkZyYW1ld29ya0NoYW5nZTogYm9vbGVhbiA9IHRydWU7IC8vIGlmIGZyYW1ld29yayBjYW4gRWRpdGVkIG9yIG5vdDsgRm9yIENyZWF0ZSBhIHByb2dyYW1cclxuICBASW5wdXQoKSAvKiAgKi9cclxuICAvKiAgKi9cclxuICBASW5wdXQoKVxyXG4gIGFkZFRvUHJvZ3JhbURldGFpbHM6IHtcclxuICAgIF9pZDogc3RyaW5nO1xyXG4gICAgZnJhbWV3b3JrX25hbWU6IHN0cmluZztcclxuICAgIGlkPzogbnVtYmVyO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgX2lkOiAnJyxcclxuICAgIGZyYW1ld29ya19uYW1lOiAnJyxcclxuICAgIGlkOiAwLFxyXG4gICAgdHlwZTogJycsXHJcbiAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgfTtcclxuICBASW5wdXQoKSBncmNUeXBlOiAwIHwgMSB8IDIgfCAzID0gMDtcclxuICBASW5wdXQoKSBpc1NlbmRGb3JBdHRlc3RhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFzc2Vzc21lbnREZXRhaWxzOiBhbnk7XHJcbiAgQElucHV0KCkgaXNXZWJWaWV3OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBwcm9ncmFtU2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG4gIHdvcmtmbG93TGlzdCA9IGZhbHNlO1xyXG4gIHNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcclxuICBpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcclxuICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UhOiBib29sZWFuO1xyXG4gIGNoZWNrcG9pbnRDb3VudDogbnVtYmVyID0gMDtcclxuICBjdXJyZW50QnVzaW5lc3NDeWNsZTogYW55ID0gJyc7XHJcbiAgQFZpZXdDaGlsZCgncmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KSByaXNrQ29tcG9uZW50ITogV29ya2Zsb3dSaXNrQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHJpc2tCdWxrVXBsb2FkITogQWRkTXVsdGlwbGVSaXNrQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmVzcG9uc2liaWxpdHknLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQhOiBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncmVzcG9uc2liaWxpdHknLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBjb21wbGlhbmNlITogV29ya2Zsb3dDb21wbGlhbmNlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ21vcmVPcHRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgbW9yZU9wdGlvbiE6IE1vcmVPcHRpb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93biE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25Sb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25Sb3chOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3BvbGljeScpIHBvbGljeSE6IFdvcmtmbG93UG9saWN5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2xvZ0FuSXNzdWUnKSBsb2dJc3N1ZUNvbXBvbmVudCE6IExvZ0FuSXNzdWVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYXNzZXNzbWVudCcpXHJcbiAgd29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50ITogV29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2ltcG9ydEFzc2Vzc21lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbXBvcnRBbkFzc2Vzc21lbnQhOiBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncHJvZ3JhbScsIHsgc3RhdGljOiBmYWxzZSB9KSBwcm9ncmFtITogV29ya2Zsb3dQcm9ncmFtQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2dyY09iamVjdCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGdyY09iamVjdCE6IEdyY09iamVjdENvbnRhaW5lckNvbXBvbmVudDtcclxuXHJcbiAgZHJvcGRvd25MZWZ0ITogYW55O1xyXG4gIGRyb3Bkb3duVG9wITogYW55O1xyXG4gIGRyb3Bkb3duV2lkdGghOiBhbnk7XHJcbiAgY2xvc2VPbkVzYzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBmZWF0dXJlIGZsYWdcclxuICBASW5wdXQoKSBmZWF0dXJlOiBhbnk7XHJcbiAgb3JnYW5pemF0aW9uRGV0YWlsczogYW55O1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihcclxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50XHJcbiAgKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcclxuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLmNvbXBsaWFuY2U/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5pbXBvcnRBbkFzc2Vzc21lbnQ/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSxcclxuICAgICAgXS5pbmNsdWRlcyh0cnVlKSB8fFxyXG4gICAgICB0aGlzLnByb2dyYW0/LmFjdGl2ZUxpc3QgfHxcclxuICAgICAgdGhpcy5jb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciB8fFxyXG4gICAgICB0aGlzLmdyY09iamVjdD8ub3BlbmVkUG9wdXBcclxuICAgICkge1xyXG4gICAgICAvL0RvIE5vdGhpbmdcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2VXb3JrZmxvd0VuZ2luZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3VycmVudFdvcmtmbG93ITogYW55O1xyXG4gIHdvcmtmbG93VHlwZUxpc3Q6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgUmVzcG9uc2liaWxpdHknLFxyXG4gICAgICBjb2RlOiAnQ0FSJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdSRVNQT05TSUJJTElUWScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgTXVsdGlwbGUgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgIGNvZGU6ICdDTVInLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ01VTFRJUExFX1JFU1BPTlNJQklMSVRZJyxcclxuICAgIH0sXHJcbiAgICB7IHdvcmtmbG93TmFtZTogJ0FkZCBhIFJpc2snLCBjb2RlOiAnQUFSJywgcGVybWlzc2lvbklkZW50aWZpZXI6ICdSSVNLJyB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdBZGQgTXVsdGlwbGUgUmlza3MnLFxyXG4gICAgICBjb2RlOiAnQU1SJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdNVUxUSVBMRV9SSVNLJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFBvbGljeScsXHJcbiAgICAgIGNvZGU6ICdDQVAnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1BPTElDWScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYSBTdXJ2ZXknLFxyXG4gICAgICBjb2RlOiAnQ0FTJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdTVVJWRVknLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgRm9ybScsXHJcbiAgICAgIGNvZGU6ICdDQUYnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0ZPUk0nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnTG9nIGFuIElzc3VlJyxcclxuICAgICAgY29kZTogJ0xBSScsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSVNTVUUnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGFuIEFzc2Vzc21lbnQnLFxyXG4gICAgICBjb2RlOiAnQUFBJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdBU1NFU1NNRU5UJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0ltcG9ydCBhbiBBc3Nlc3NtZW50JyxcclxuICAgICAgY29kZTogJ0lBQScsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSU1QT1JUX0FTU0VTU01FTlQnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUHJvZ3JhbScsXHJcbiAgICAgIGNvZGU6ICdDQVBSJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdQUk9HUkFNJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0FkZCBhIEdSQyBPYmplY3QnLFxyXG4gICAgICBjb2RlOiAnR1JDJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdHUkNfT0JKRUNUUycsXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgYWRkaXRpb25hbEluZm9ybWF0aW9uTGlzdCA9IFtcclxuICAgICdPYmplY3RpdmUnLFxyXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAnUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnknLFxyXG4gIF07XHJcbiAgY29uZmlybWF0aW9uQWxlcnRDb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0ID0geyBpc1Zpc2libGU6IGZhbHNlIH07XHJcbiAgaGFzUmVmcmVzaGVkOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBjbG9zZVdvcmtmbG93RW5naW5lKGV2dD86IGFueSkge1xyXG4gICAgaWYgKGV2dD8uY29uZmlybSA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5jaGVja1JlZnJlc2goKTtcclxuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoe1xyXG4gICAgICAgIGNsb3NlOiB0cnVlLFxyXG4gICAgICAgIHJlZnJlc2g6IHRoaXMuaGFzUmVmcmVzaGVkLFxyXG4gICAgICAgIG5hdmlnYXRlVVJMOiBldnQudXJsID8/ICcnLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2VDb25maXJtKGV2dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZUNvbmZpcm0oZXZ0OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTogJ0lmIHlvdSBuYXZpZ2F0ZSBhd2F5LCBhbnkgdW5zYXZlZCBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4nLFxyXG4gICAgICBhY3Rpb246ICdXT1JLRkxPV19DTE9TRScsXHJcbiAgICAgIGRhdGE6IGV2dCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGV4ZWN1dGVDbG9zZShldnQ6IGFueSkge1xyXG4gICAgaWYgKGV2dC5hY3Rpb24gPT09ICdZRVMnKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tSZWZyZXNoKCk7XHJcbiAgICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHtcclxuICAgICAgICBjbG9zZTogdHJ1ZSxcclxuICAgICAgICByZWZyZXNoOiB0aGlzLmhhc1JlZnJlc2hlZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXROZXR3b3JrTGlzdG5lcigpO1xyXG4gICAgdGhpcy5zZXRXb3JrZmxvdyh0aGlzLndvcmtmbG93VHlwZSwgdGhpcy53b3JrZmxvd1R5cGVMaXN0KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgNTAwKTtcclxuICAgIHRoaXMuc2V0V29ya2Zsb3codGhpcy53b3JrZmxvd1R5cGUsIHRoaXMud29ya2Zsb3dUeXBlTGlzdCk7XHJcbiAgICB0aGlzLmRlY2lkZVZpZXdNb3JlT3B0aW9uKCk7XHJcbiAgICB0aGlzLmZldGNoT3JnYW5pemF0aW9uRGV0YWlscygpO1xyXG4gICAgdGhpcy5nZXRVc2VyRGV0YWlscygpO1xyXG4gICAgdGhpcy5wcm9ncmFtU2ltcGxpZnlGbGFnID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXHJcbiAgICAgICdmZl9wcm9ncmFtX3NpbXBsaWZ5J1xyXG4gICAgKTtcclxuICAgIHRoaXMuZmVhdHVyZUZsYWdfZ3JvdXBzID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXHJcbiAgICAgICdmZl9yZXNwb25zaWJpbGl0eV9ncm91cHMnXHJcbiAgICApO1xyXG4gICAgdGhpcy5pc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZnkoKTtcclxuICB9XHJcblxyXG4gIHNldE5ldHdvcmtMaXN0bmVyKCkge1xyXG4gICAgYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIChlKSA9PiB7XHJcbiAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcclxuICAgICAgICAnQ29ubmVjdGlvbiBsb3N0ITxicj5DaGVjayB5b3VyIG5ldHdvcmsgY29ubmVjdGl2aXR5LicsXHJcbiAgICAgICAgJ2FsZXJ0J1xyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICBhZGRFdmVudExpc3RlbmVyKCdvbmxpbmUnLCAoZSkgPT4ge1xyXG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coXCJZb3UncmUgYmFjayBvbmxpbmUhXCIsICdzdWNjZXNzJyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy53b3JrZmxvd1R5cGVMaXN0ID0gdGhpcy53b3JrZmxvd1R5cGVMaXN0LmZpbHRlcigod29ya2Zsb3c6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5hbGxvd2VkV29ya2Zsb3dzLmluY2x1ZGVzKHdvcmtmbG93LnBlcm1pc3Npb25JZGVudGlmaWVyKSkge1xyXG4gICAgICAgIHJldHVybiB3b3JrZmxvdztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5vcGVuZWRGcm9tID09PSAnUklTS19UUkVBVE1FTlQnKSB7XHJcbiAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlzYWJsZVdvcmtmbG93Q2hhbmdlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlY2lkZVZpZXdNb3JlT3B0aW9uKHR5cGU/OiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZSkge1xyXG4gICAgICB0aGlzLmNsb3NlT25Fc2MgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChbJ0NNUicsICdBTVInLCAnQUFBJywgJ0lBQSddLmluY2x1ZGVzKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSkge1xyXG4gICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gZmFsc2U7XHJcbiAgICAgIGlmICh0eXBlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHR5cGUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGUgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3VibWl0KCkge1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xyXG4gICAgICBjYXNlICdBQVInOlxyXG4gICAgICAgIHRoaXMucmlza0NvbXBvbmVudC5zdWJtaXRSaXNrKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0xBSSc6XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudC5hZGRJc3N1ZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDQVInOlxyXG4gICAgICAgIHRoaXMuY29tcGxpYW5jZS5zdWJtaXRSZXNwb25zaWJpbGl0eSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDQVAnOlxyXG4gICAgICAgIHRoaXMucG9saWN5LnN1Ym1pdFBvbGljeSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBQUEnOlxyXG4gICAgICAgIHRoaXMud29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50LnN1Ym1pdEFzc2Vzc21lbnQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQ0FQUic6IHtcclxuICAgICAgICB0aGlzLnByb2dyYW0uc2F2ZVByb2dyYW0oKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdHUkMnOiB7XHJcbiAgICAgICAgdGhpcy5ncmNPYmplY3Quc2F2ZUdSQ09iamVjdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGNhc2UgJ0lBQSc6XHJcbiAgICAgIC8vICAgdGhpcy5pbXBvcnRBbkFzc2Vzc21lbnQuc3VibWl0QXNzZXNzbWVudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZWRpdFdvcmtmbG93KCkge1xyXG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSAhdGhpcy53b3JrZmxvd0xpc3Q7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMuZHJvcGRvd25MZWZ0ID0gZHJvcGRvd24ubGVmdDtcclxuICAgIHRoaXMuZHJvcGRvd25Ub3AgPSBkcm9wZG93bi50b3AgKyBkcm9wZG93bi5oZWlnaHQ7XHJcbiAgICB0aGlzLmRyb3Bkb3duV2lkdGggPSBkcm9wZG93bi53aWR0aDtcclxuICB9XHJcbiAgY2xvc2VXb3JrZmxvd0xpc3QoKSB7XHJcbiAgICB0aGlzLndvcmtmbG93TGlzdCA9IGZhbHNlO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBzaXplQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMud29ya2Zsb3dMaXN0ID0gZmFsc2U7XHJcbiAgfVxyXG4gIGNoYW5nZVdvcmtmbG93KGV2dDogYW55LCBzZWxlY3RlZFdvcmtmbG93OiBhbnkpIHtcclxuICAgIGlmIChzZWxlY3RlZFdvcmtmbG93Py5jb2RlID09PSB0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xyXG4gICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgIG1lc3NhZ2U6ICdJZiB5b3UgY2hhbmdlIHRoZSB3b3JrZmxvdywgYW55IHVuc2F2ZWQgY2hhbmdlcyB3b3VsZCBiZSBsb3N0LicsXHJcbiAgICAgIGFjdGlvbjogJ1dPUktGTE9XX0NIQU5HRScsXHJcbiAgICAgIGRhdGE6IHNlbGVjdGVkV29ya2Zsb3csXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uZmlybVdvcmtmbG93Q2hhbmdlKGV2dDogYW55KSB7XHJcbiAgICBpZiAoZXZ0LmFjdGlvbiA9PT0gJ1lFUycpIHtcclxuICAgICAgdGhpcy5jbG9zZU9uRXNjID0gdHJ1ZTtcclxuICAgICAgc3dpdGNoIChldnQucGF5bG9hZC5hY3Rpb24pIHtcclxuICAgICAgICBjYXNlICdXT1JLRkxPV19DSEFOR0UnOlxyXG4gICAgICAgICAgdGhpcy5jaGVja1JlZnJlc2goKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudFdvcmtmbG93ID0gZXZ0Py5wYXlsb2FkPy5kYXRhID8/IG51bGw7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubW9yZU9wdGlvbikge1xyXG4gICAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5yZXNldEFsbCh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kZWNpZGVWaWV3TW9yZU9wdGlvbigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0VESVRfUklTSyc6XHJcbiAgICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQuY3JlYXRlUmlzayh0aGlzLnJpc2tDb21wb25lbnQucmlza0Zvcm0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnUE9MSUNZX1BPUlRBTCc6XHJcbiAgICAgICAgICB0aGlzLnBvbGljeS5jb25maXJtUG9saWN5UG9ydGFsKGV2dC5hY3Rpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnV09SS0ZMT1dfQ0xPU0UnOlxyXG4gICAgICAgICAgdGhpcy5jaGVja1JlZnJlc2goKTtcclxuICAgICAgICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHtcclxuICAgICAgICAgICAgZGF0YTogZXZ0Py5wYXlsb2FkPy5kYXRhLFxyXG4gICAgICAgICAgICBjbG9zZTogdHJ1ZSxcclxuICAgICAgICAgICAgcmVmcmVzaDogdGhpcy5oYXNSZWZyZXNoZWQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdST0xFJzpcclxuICAgICAgICAgIHRoaXMucHJvZ3JhbS5yZW1vdmUoZXZ0LnBheWxvYWQuZGF0YSwgJ1JPTEUnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2Fzc2lnbmVlVHlwZUNoYW5nZSc6XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVzcG9uc2liaWxpdHlGb3JtLmFzc2lnbmVlcy53aG9DYW5Db21wbGV0ZSA9ICdBTEwnO1xyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMubGlzdCA9XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5zZXRMaXN0KFxyXG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5hc3NpZ25lZXNMaXN0LFxyXG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5vcmlnaW5hbEFzc2lnbmVlLFxyXG4gICAgICAgICAgICAgICdlbXBsb3llZV9pZCdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmVGbGFnX2dyb3Vwcykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydhc3NpZ25lZUdyb3VwcyddWydsaXN0J10gPVxyXG4gICAgICAgICAgICAgIFtdO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3NlcXVlbnRpYWwnOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXHJcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXHJcbiAgICAgICAgICBdID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2FueVJldmlld2VyJzpcclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xyXG4gICAgICAgICAgICAnc2VxdWVudGlhbFdvcmtmbG93J1xyXG4gICAgICAgICAgXSA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN3aXRjaCAoZXZ0LnBheWxvYWQuYWN0aW9uKSB7XHJcbiAgICAgICAgY2FzZSAnUE9MSUNZX1BPUlRBTCc6XHJcbiAgICAgICAgICB0aGlzLnBvbGljeS5jb25maXJtUG9saWN5UG9ydGFsKGV2dC5hY3Rpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYXNzaWduZWVUeXBlQ2hhbmdlJzpcclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0uYXNzaWduZWVzLndob0NhbkNvbXBsZXRlID1cclxuICAgICAgICAgICAgJ0FOWV9PTkUnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ3NlcXVlbnRpYWwnOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXHJcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXHJcbiAgICAgICAgICBdID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhbnlSZXZpZXdlcic6XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcclxuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcclxuICAgICAgICAgIF0gPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIG1lc3NhZ2U6ICcnLFxyXG4gICAgICBhY3Rpb246ICcnLFxyXG4gICAgICBkYXRhOiBudWxsLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBldnQ7XHJcbiAgfVxyXG5cclxuICBzZXRXb3JrZmxvdyh3b3JrRmxvd0NvZGU6IGFueSwgd29ya0Zsb3dMaXN0OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkV29ya2Zsb3cgPSB3b3JrRmxvd0xpc3QuZmluZChcclxuICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudD8uY29kZSA9PT0gd29ya0Zsb3dDb2RlXHJcbiAgICApO1xyXG4gICAgc2VsZWN0ZWRXb3JrZmxvd1xyXG4gICAgICA/ICh0aGlzLmN1cnJlbnRXb3JrZmxvdyA9IHNlbGVjdGVkV29ya2Zsb3cpXHJcbiAgICAgIDogKHRoaXMuY3VycmVudFdvcmtmbG93ID0gbnVsbCk7XHJcbiAgICByZXR1cm4gc2VsZWN0ZWRXb3JrZmxvdztcclxuICB9XHJcblxyXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcclxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcclxuICAgICAgY2FzZSAnQUFSJzpcclxuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQ/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnTEFJJzpcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlQ29tcG9uZW50Py5hZGRNb3JlSW5mbyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdDQVInOlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMuYXNzZXNzbWVudERldGFpbHM/LmFzc2Vzc21lbnRfdHlwZT8udG9Mb3dlckNhc2UoKSA9PT1cclxuICAgICAgICAgICdjb21wbGlhbmNlX2F1ZGl0J1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vcmVPcHRpb24/Lm1vcmVPcHRpb25zTGlzdD8uQ0FSPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5jb2RlID09PSAnQVNTRVNTTUVOVCdcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF0uY2hlY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2U/LmFkZE1vcmVJbmZvKFxyXG4gICAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlPy5hZGRNb3JlSW5mbyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NBUCc6XHJcbiAgICAgICAgdGhpcy5wb2xpY3k/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQ0FQUic6XHJcbiAgICAgICAgdGhpcy5wcm9ncmFtPy5hZGRNb3JlSW5mbyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0dSQyc6XHJcbiAgICAgICAgdGhpcy5ncmNPYmplY3Q/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvcHVsYXRlTW9yZU9wdGlvbihldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5tb3JlT3B0aW9uKSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbi5wb3B1bGF0ZShldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm1vcmVPcHRpb24/LmhpZGVFbGVtZW50cyhldmVudCk7XHJcbiAgfVxyXG5cclxuICBzaG93Q29uZmlybWF0aW9uUG9wdXAoY29uZmlnOiBDb25maXJtYXRpb25BbGVydCkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IGNvbmZpZztcclxuICB9XHJcblxyXG4gIGJ1bGtVcGxvYWRCcm93c2UoZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoIChldmVudCkge1xyXG4gICAgICBjYXNlICdBTVInOlxyXG4gICAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQudHJpZ2dlckJyb3dzZUZpbGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQ01SJzpcclxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZC50cmlnZ2VyQnJvd3NlRmlsZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdJQUEnOlxyXG4gICAgICAgIHRoaXMuaW1wb3J0QW5Bc3Nlc3NtZW50LnRyaWdnZXJCcm93c2VGaWxlKCk7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SZXNldEZvcm0oKSB7XHJcbiAgICB0aGlzLm1vZGUgPSAnQ1JFQVRFJztcclxuICAgIHRoaXMuZW50cnVzdEJ1dHRvbk5hbWUgPSAnRW50cnVzdCc7XHJcbiAgfVxyXG5cclxuICBvblJlc2V0R1JDRm9ybSgpIHtcclxuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xyXG4gIH1cclxuICBzaGlmdFRvRWRpdE1vZGUoKSB7XHJcbiAgICB0aGlzLm1vZGUgPSAnRURJVCc7XHJcbiAgfVxyXG4gIHNjcm9sbEZvcm0oKSB7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93blJvdz8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LnRvcCA8IDM4KSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Sb3c/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdD8uYWRkKCdoaWRlJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LnJlbW92ZSgnaGlkZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZXZlbnQgd2hpY2ggbW9yZSBvcHRpb25zIHdlIGFyZSByZW1vdmluZy5cclxuICAgKiBAcGFyYW0gaXNDaGVja3BvaW50Q2hlY2tlZCAgaXMgdHJ1ZSBpZiB2YWx1ZSBjaGVja3BvaW50cyBpcyByZW1vdmVkIGJ5IGNsaWNraW5nIG9uIG1vcmUgb3B0aW9uc1xyXG4gICAqL1xyXG4gIG9uUmVtb3ZpbmdDaGVja3BvaW50KFxyXG4gICAgZXZlbnQ6IHN0cmluZyxcclxuICAgIGlzQ2hlY2twb2ludENoZWNrZWQ/OiBib29sZWFuLFxyXG4gICAgaXNEYXRhUmVtb3ZlZD86IGJvb2xlYW5cclxuICApOiB2b2lkIHtcclxuICAgIGxldCBtc2cgPSAnJztcclxuICAgIGlmIChldmVudCA9PT0gJ25ldy1jaGVja3BvaW50cycpIHtcclxuICAgICAgbXNnID1cclxuICAgICAgICAnSWYgeW91IGNob29zZSB0byByZW1vdmUgdGhlc2UgQ2hlY2twb2ludHMsIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCBjYW5ub3QgYmUgcmVzdG9yZWQuIEhvd2V2ZXIsIHlvdSB3aWxsIHN0aWxsIGJlIGFibGUgdG8gY3JlYXRlIG5ldyBDaGVja3BvaW50cyBvciBsaW5rIGFuIEFzc2Vzc21lbnQuJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG1zZyA9XHJcbiAgICAgICAgJ0lmIHlvdSBjaG9vc2UgdG8gcmVtb3ZlIHRoZXNlIGNoZWNrcG9pbnRzLCB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgY2Fubm90IGJlIHJlc3RvcmVkLic7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xyXG4gICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgIG1lc3NhZ2U6IG1zZyxcclxuICAgICAgYWN0aW9uOiBldmVudCxcclxuICAgICAgZGF0YTogeyB0eXBlOiAncmVzcG9uc2liaWxpdHlDaGVja3BvaW50JyB9LFxyXG4gICAgICBpc0NoZWNrcG9pbnRDaGVja2VkOiBpc0NoZWNrcG9pbnRDaGVja2VkID8/IGZhbHNlLFxyXG4gICAgICBpc0RhdGFSZW1vdmVkOiBpc0RhdGFSZW1vdmVkID8/IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9uUmVtb3ZpbmdSb2xlKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBtc2cgPSAnJztcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICBtc2cgPSAnSWYgeW91IGNoYW5nZSB0aGUgcm9sZXMsIGFueSB1bnNhdmVkIGNoYW5nZXMgd291bGQgYmUgbG9zdC4nO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOiBtc2csXHJcbiAgICAgIGFjdGlvbjogJ1JPTEUnLFxyXG4gICAgICBkYXRhOiBldmVudCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBpc0Fzc2Vzc21lbnREaXNhYmxlZChpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQVNTRVNTTUVOVCcgfHwgb3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJykge1xyXG4gICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlTW9yZU9wdGlvbnMod29ya2Zsb3dDb2RlOiBhbnksIGRpc2FibGVkRWxlbWVudHNDb2RlOiBhbnkpIHtcclxuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0KS5pbmNsdWRlcyh3b3JrZmxvd0NvZGUpKSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3Rbd29ya2Zsb3dDb2RlXS5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkaXNhYmxlZEVsZW1lbnRzQ29kZS5pbmNsdWRlcyhvcHRpb24/LmNvZGUpKSB7XHJcbiAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hlY2twb2ludFNlbGVjdGlvbihldmVudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmNoZWNrcG9pbnRDb3VudCA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgb25SY1NlbGVjdGVkKGlzUmNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc1JDU2VsZWN0ZWQgPSBpc1JjU2VsZWN0ZWQ7XHJcbiAgfVxyXG5cclxuICBmZXRjaE9yZ2FuaXphdGlvbkRldGFpbHMoKSB7XHJcbiAgICB0aGlzLmF1dGguZ2V0T3JnYW5pemF0aW9uRGV0YWlscygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMub3JnRGV0YWlscyA9IHJlcztcclxuICAgICAgICBpZiAocmVzPy5idXNpbmVzc19jeWNsZXNfYXJyICYmIHJlcz8uYnVzaW5lc3NfY3ljbGVzX2Fycj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHJlcz8uYnVzaW5lc3NfY3ljbGVzX2Fyci5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5zZWxlY3RlZFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnN0IHNwbGl0dGVkID0gc2VsZWN0ZWRbMF0uYnVzaW5lc3NfY3ljbGU/LnNwbGl0KCctJyk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlID0gYCR7c3BsaXR0ZWRbMF0/LnNsaWNlKFxyXG4gICAgICAgICAgICAyXHJcbiAgICAgICAgICApfSAtICR7c3BsaXR0ZWRbMV0/LnNsaWNlKDQpfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFVzZXJEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5hdXRoLmdldFVzZXJJbmZvKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5hdXRoLnVzZXJEZXRhaWxzID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzc2lnbmVlVHlwZUNoYW5nZSgpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTpcclxuICAgICAgICAnVGhpcyBhY3Rpb24gd2lsbCByZXNldCB0aGUgY2hhbmdlcyBhbmQgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBhc3NpZ25lZS4nLFxyXG4gICAgICBhY3Rpb246ICdhc3NpZ25lZVR5cGVDaGFuZ2UnLFxyXG4gICAgICBkYXRhOiB7fSxcclxuICAgICAgaXNSZWRBbGVydDogdHJ1ZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBldmVudCA9PiAnc2VxdWVudGlhbCcgfHwgJ2FueVJldmlld2VyJ1xyXG4gIG9uUmV2aWV3ZXJDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29tbW9uVGV4dDogc3RyaW5nID1cclxuICAgICAgJ09uY2UgY29uZmlybWVkLCB0aGUgbmV3IHJldmlldyB3b3JrZmxvdyB3aWxsIGJlIGFwcGxpY2FibGUgZm9yIGFsbCBjdXJyZW50IGFuZCBmdXR1cmUgcmV2aWV3IGR1ZSBkYXRlcy4nO1xyXG4gICAgY29uc3QgbXNnID1cclxuICAgICAgY29tbW9uVGV4dCArXHJcbiAgICAgIChldmVudCA9PT0gJ2FueVJldmlld2VyJ1xyXG4gICAgICAgID8gYElmIGFueSByZXZpZXdlciBoYWQgY29tcGxldGVkIHRoZSByZXZpZXcsIHRoZSBjdXJyZW50IHJldmlldyBkdWUgZGF0ZSB3aWxsIGJlIGNsb3NlZCBhbmQgdGhlIHJldmlldyBzdGF0dXMgd2lsbCBiZSB1cGRhdGVkIHRvICdDb21wbGV0ZWQnLmBcclxuICAgICAgICA6ICcnKTtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTogbXNnLFxyXG4gICAgICBhY3Rpb246IGV2ZW50LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGlzUmVzcG9uc2liaWxpdHlTaW1wbGlmeSgpIHtcclxuICAgIGlmICh0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcmVzcG9uc2liaWxpdHlfc2ltcGxpZmljYXRpb24nKSkge1xyXG4gICAgICB0aGlzLndvcmtmbG93VHlwZUxpc3RbMF0ud29ya2Zsb3dOYW1lID0gJ0FkZCBhIFJlc3BvbnNpYmlsaXR5JztcclxuICAgICAgdGhpcy53b3JrZmxvd1R5cGVMaXN0WzFdLndvcmtmbG93TmFtZSA9ICdBZGQgTXVsdGlwbGUgUmVzcG9uc2liaWxpdGllcyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1JlZnJlc2goKSB7XHJcbiAgICBjb25zdCBpc0V4aXN0cyA9IChjb2RlOiBzdHJpbmcpID0+IHRoaXMuaGFzUmVmcmVzaGVkLmluY2x1ZGVzKGNvZGUpO1xyXG4gICAgaWYgKHRoaXMucHJvZ3JhbT8uaXNTYXZlZCAmJiAhaXNFeGlzdHMoJ0NBUFInKSlcclxuICAgICAgdGhpcy5oYXNSZWZyZXNoZWQucHVzaCgnQ0FQUicpO1xyXG4gICAgaWYgKHRoaXMuY29tcGxpYW5jZT8uaXNTYXZlZCAmJiAhaXNFeGlzdHMoJ0NBUicpKVxyXG4gICAgICB0aGlzLmhhc1JlZnJlc2hlZC5wdXNoKCdDQVInKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1zbmFjay1iYXI+PC9hcHAtc25hY2stYmFyPlxyXG5cclxuPGRpdiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1vdmVybGF5XCI+PC9kaXY+XHJcbjxkaXZcclxuICBjbGFzcz1cIndvcmtmbG93LWVuZ2luZVwiXHJcbiAgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCJcclxuICBbY2xhc3MuYmddPVwiXHJcbiAgICAoIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgcmlza0J1bGtVcGxvYWQ/LnNob3dDYXRlZ29yeUxpc3QpICYmXHJcbiAgICAhcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXHJcbiAgXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lclwiXHJcbiAgICBbbmdTd2l0Y2hdPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCJcclxuICAgIFtjbGFzcy53aXRoLXByZXZpZXctYXNzZXNzbWVudF09XCIoYXV0aD8ucHJldmlld1BhbmVsIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFtjbGFzcy53aXRoLWZyZXF1ZW5jeV09XCJcclxuICAgICAgY29tcGxpYW5jZT8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XHJcbiAgICAgIGNvbXBsaWFuY2U/LmFjdGl2ZVNlbGVjdG9yID09PSAncmV2aWV3ZXJGcmVxdWVuY3knIHx8XHJcbiAgICAgIHJpc2tDb21wb25lbnQ/LmFjdGl2ZVNlbGVjdG9yID09PSAnZnJlcXVlbmN5JyB8fFxyXG4gICAgICBwb2xpY3k/LmFjdGl2ZVNlbGVjdG9yID09PSAnZnJlcXVlbmN5JyB8fFxyXG4gICAgICBwb2xpY3k/LmFjdGl2ZVNlbGVjdG9yID09PSAncmV2aWV3ZXJGcmVxdWVuY3knXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxidXR0b25cclxuICAgICAgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoKVwiXHJcbiAgICAgIGlkPVwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiXHJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxyXG4gICAgICBbYXBwVG9vbHRpcF09XCInW0VzY10gdG8gY2xvc2UnXCJcclxuICAgICAgcGxhY2VtZW50PVwibGVmdFwiXHJcbiAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZSB8fCAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFxyXG4gICAgICBcIlxyXG4gICAgICBbY2xhc3Muc21pbGV5LW9wZW5lZF09XCJcclxuICAgICAgICByaXNrQ29tcG9uZW50Py5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgbG9nSXNzdWVDb21wb25lbnQ/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICBjb21wbGlhbmNlPy5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzIHx8XHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHxcclxuICAgICAgICByaXNrQnVsa1VwbG9hZD8uc2hvd1NtaWxleSB8fFxyXG4gICAgICAgIHJpc2tCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHxcclxuICAgICAgICBwcm9ncmFtPy5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgaW1wb3J0QW5Bc3Nlc3NtZW50Py5zaG93U21pbGV5XHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTNmOzwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIiF1aUtpdFNlcnZpY2UuaXNTbWlsZXlPblwiXHJcbiAgICAgIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLW1vcmVcIlxyXG4gICAgICBbaGlkZGVuXT1cInNob3dNb3JlT3B0aW9uID09PSBmYWxzZSB8fCBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZVwiXHJcbiAgICAgIFtjbGFzcy5yZWFkLW9ubHldPVwidWlLaXRTZXJ2aWNlPy5pc0xvYWRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxhcHAtbW9yZS1vcHRpb25cclxuICAgICAgICAjbW9yZU9wdGlvblxyXG4gICAgICAgIFtjdXJyZW50V29ya2Zsb3ddPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCJcclxuICAgICAgICBbaXNFZGl0TW9kZV09XCJtb2RlID09PSAnRURJVCdcIlxyXG4gICAgICAgIFtpc1JDU2VsZWN0ZWRdPVwiXHJcbiAgICAgICAgICBpc1JDU2VsZWN0ZWQgfHxcclxuICAgICAgICAgIChjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdHUkMnICYmXHJcbiAgICAgICAgICAgIGdyY09iamVjdD8ubGlzdE9iamVjdC5SQy5zZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgXCJcclxuICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAoc2VsZWN0ZWRPcHRpb24pPVwiYWRkTW9yZUluZm8oJGV2ZW50KVwiXHJcbiAgICAgICAgW2lzUHJvZ3JhbVNlbGVjdGVkXT1cInNlbGVjdGVkUHJvZ3JhbVwiXHJcbiAgICAgICAgW2FsbG93ZWRGZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgIFtvcmdEZXRhaWxzRGF0YV09XCJvcmdEZXRhaWxzXCJcclxuICAgICAgICBbaXNBdHRyaWJ1dGVzQXZhaWxhYmxlXT1cIlxyXG4gICAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09PSAnR1JDJyAmJlxyXG4gICAgICAgICAgZ3JjT2JqZWN0Py5zZWxlY3RlZEF0dHJpYnV0ZXM/LmF0dHJpYnV0ZXM/Lmxlbmd0aCA+IDBcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvYXBwLW1vcmUtb3B0aW9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLWZvcm1cIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZVwiXHJcbiAgICAgIFtjbGFzcy5uby1zaGFkb3ddPVwiXHJcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdBTVInIHx8XHJcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdDTVInIHx8XHJcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdBQUEnIHx8XHJcbiAgICAgICAgdWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHxcclxuICAgICAgICBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIChzY3JvbGwpPVwic2Nyb2xsRm9ybSgpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIVsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICBvcGVuZWRGcm9tXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cIiEodWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgICAgICAgICAjZHJvcGRvd25Sb3dcclxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICAgICAgICAgIG1vZGUgPT09ICdFRElUJyB8fFxyXG4gICAgICAgICAgICAgICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8XHJcbiAgICAgICAgICAgICAgZGlzYWJsZVdvcmtmbG93Q2hhbmdlIHx8XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRQcm9ncmFtXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiY3VycmVudFdvcmtmbG93XCI+XHJcbiAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICBjeD1cIjI2XCJcclxuICAgICAgICAgICAgICAgICAgY3k9XCIyNlwiXHJcbiAgICAgICAgICAgICAgICAgIHI9XCIyNVwiXHJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiICNkcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgICAgICAgICA+U2VsZWN0IGEgV29ya2Zsb3c8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhY3VycmVudFdvcmtmbG93XCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRXb3JrZmxvdygpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBXb3JrZmxvd1wiIHJlYWRvbmx5IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZCBmaXJzdC1maWVsZFwiICpuZ0lmPVwiY3VycmVudFdvcmtmbG93XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0ge3tjdXJyZW50V29ya2Zsb3cgfCBqc29ufX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMlwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgbm8td2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+e3sgY3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIj57e2N1cnJlbnRXb3JrZmxvdz8ud29ya2Zsb3dOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXdvcmtmbG93TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdDQVBSJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCdXNpbmVzc0N5Y2xlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgIXByb2dyYW1TaW1wbGlmeUZsYWdcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmFtLWJ1c2luZXNzLWN5Y2xlIHZ4LWZzLTExIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMSB2eC1wbC0yIHZ4LXByLTFcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LW1yLTFcIj4mI3hlOTYzOzwvaT4gVGhpcyBwcm9ncmFtIGlzXHJcbiAgICAgICAgICAgICAgICAgIGJlaW5nIHNldC11cCBmb3IgdGhlIGJ1c2luZXNzIGN5Y2xlOlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZ3LTYwMCB2eC1tbC0xXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnVzaW5lc3NDeWNsZVxyXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwhLS0gPGFwcC1jcmVhdGUtZG9jdW1lbnRzPjwvYXBwLWNyZWF0ZS1kb2N1bWVudHM+IC0tPlxyXG4gICAgICAgIDwhLS0gPGFwcC1idWxrLXZpZXc+PC9hcHAtYnVsay12aWV3PiAtLT5cclxuICAgICAgICA8IS0tIDxhcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3PjwvYXBwLWJ1bGstcmVzcG9uc2liaWxpdHktdmlldz4gLS0+XHJcbiAgICAgICAgPGFwcC13b3JrZmxvdy1jb21wbGlhbmNlXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcclxuICAgICAgICAgIFtpc0VudHJ1c3RdPVwiZW50cnVzdEJ1dHRvbk5hbWUudG9Mb3dlckNhc2UoKSA9PSAnZW50cnVzdCdcIlxyXG4gICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5SWRdPVwiaWRcIlxyXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbZnJhbWV3b3JrRGV0YWlsc109XCJmcmFtZXdvcmtEZXRhaWxzXCJcclxuICAgICAgICAgIFthc3Nlc3NtZW50RGV0YWlsc109XCJhc3Nlc3NtZW50RGV0YWlsc1wiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVInXCJcclxuICAgICAgICAgICNyZXNwb25zaWJpbGl0eVxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRSQ109XCJzZWxlY3RlZFJDXCJcclxuICAgICAgICAgIFtjbG9zZU9uRXNjXT1cImNsb3NlT25Fc2NcIlxyXG4gICAgICAgICAgKGFzc2lnbmVlVHlwZUNoYW5nZSk9XCJhc3NpZ25lZVR5cGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAob25SZXZpZXdlclR5cGVDaGFuZ2UpPVwib25SZXZpZXdlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICBbaXNXZWJWaWV3XT1cImlzV2ViVmlld1wiXHJcbiAgICAgICAgICAocmNTZWxlY3RlZCk9XCJvblJjU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVzZXRGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxyXG4gICAgICAgICAgKG9uUmVtb3ZpbmdDaGVja3BvaW50KT1cIm9uUmVtb3ZpbmdDaGVja3BvaW50KCRldmVudCwgZmFsc2UsIHRydWUpXCJcclxuICAgICAgICAgIChpc0Fzc2Vzc21lbnREaXNhYmxlZCk9XCJpc0Fzc2Vzc21lbnREaXNhYmxlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjaGVja3BvaW50Q291bnRVcGRhdGVkKT1cImNoZWNrcG9pbnRDb3VudCA9ICRldmVudFwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRQcm9ncmFtXT1cInNlbGVjdGVkUHJvZ3JhbVwiXHJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LWNvbXBsaWFuY2U+XHJcbiAgICAgICAgPGFwcC13b3JrZmxvdy1yaXNrXHJcbiAgICAgICAgICBbc2Vjb25kYXJ5T3BlblBvcnRhbF09XCJzZWNvbmRhcnlPcGVuUG9ydGFsXCJcclxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCJcclxuICAgICAgICAgICNyaXNrXHJcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcclxuICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcclxuICAgICAgICAgIChyY1NlbGVjdGVkKT1cIm9uUmNTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgW3Jpc2tJZF09XCJpZFwiXHJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcclxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcmlzaz5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LXBvbGljeVxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCJcclxuICAgICAgICAgICNwb2xpY3lcclxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxyXG4gICAgICAgICAgKHNoaWZ0VG9FZGl0TW9kZSk9XCJzaGlmdFRvRWRpdE1vZGUoKVwiXHJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcclxuICAgICAgICAgIFtwb2xpY3lJZF09XCJpZFwiXHJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgIFtjb252ZXJ0RmlsZURhdGFdPVwiY29udmVydEZpbGVEYXRhXCJcclxuICAgICAgICAgIFtzZWxlY3RlZENhdGVnb3J5XT1cInNlbGVjdGVkQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgW2lzU2VuZEZvckF0dGVzdGF0aW9uXT1cImlzU2VuZEZvckF0dGVzdGF0aW9uXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcG9saWN5PlxyXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctc3VydmV5LWZvcm1cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiXHJcbiAgICAgICAgICAjc3VydmV5Rm9ybVxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1zdXJ2ZXktZm9ybT5cclxuICAgICAgICA8YXBwLWFkZC1tdWx0aXBsZS1yaXNrXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FNUidcIlxyXG4gICAgICAgICAgI211bHRpcGxlUmlza1xyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgID48L2FwcC1hZGQtbXVsdGlwbGUtcmlzaz5cclxuICAgICAgICA8IS0tIDxhcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5ICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiICNtdWx0aXBsZVJlc3BvbnNpYmlsaXR5PlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5PiAtLT5cclxuXHJcbiAgICAgICAgPGxpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyXHJcbiAgICAgICAgICBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NNUidcIlxyXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgICAjbXVsdGlwbGVSZXNwb25zaWJpbGl0eVxyXG4gICAgICAgID48L2xpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyPlxyXG4gICAgICAgIDwhLS0gTmV3IExvZyBhbiBJc3N1ZSAtLT5cclxuICAgICAgICA8YXBwLWxvZy1hbi1pc3N1ZVxyXG4gICAgICAgICAgW2lzc3VlRGV0YWlsc109XCJpc3N1ZURhdGFcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCJcclxuICAgICAgICAgIFtyZXBvbnNpYmlsaXR5RGF0YV09XCJyZXBvbnNpYmlsaXR5RGF0YVwiXHJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAgIFtpc3N1ZUlkXT1cImlkXCJcclxuICAgICAgICAgICNsb2dBbklzc3VlXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgWyhtb2RlKV09XCJtb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtbG9nLWFuLWlzc3VlPlxyXG4gICAgICAgIDwhLS0gT2xkIExvZyBhbiBpc3N1ZSAtLT5cclxuICAgICAgICA8IS0tIDxhcHAtbG9nLWFuLWlzc3VlICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiIFtyZXNwb25zaWJpbGl0aWVzRGF0YV09XCJyZXBvbnNpYmlsdHlEYXRhXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAjbG9nQW5Jc3N1ZSAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+IC0tPlxyXG5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LWFzc2Vzc21lbnRcclxuICAgICAgICAgIFthc3Nlc3NtZW50SWRdPVwiaWRcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFBJ1wiXHJcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXHJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICNhc3Nlc3NtZW50XHJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LWFzc2Vzc21lbnQ+XHJcbiAgICAgICAgPGFwcC1pbXBvcnQtYW4tYXNzZXNzbWVudFxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0lBQSdcIlxyXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxyXG4gICAgICAgICAgI2ltcG9ydEFzc2Vzc21lbnRcclxuICAgICAgICA+PC9hcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnQ+XHJcbiAgICAgICAgPCEtLSA8YXBwLXdvcmtmbG93LXByb2dyYW0gI3Byb2dyYW0gKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiPjwvYXBwLXdvcmtmbG93LXByb2dyYW0+IC0tPlxyXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctcHJvZ3JhbVxyXG4gICAgICAgICAgI3Byb2dyYW1cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxyXG4gICAgICAgICAgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXHJcbiAgICAgICAgICBbYWxsb3dlZEZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgICAoZGlzYWJsZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImRpc2FibGVNb3JlT3B0aW9ucygnQ0FQUicsICRldmVudClcIlxyXG4gICAgICAgICAgW3Byb2dyYW1UeXBlXT1cInByb2dyYW1UeXBlXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxyXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbcHJvZ3JhbUlkXT1cImlkXCJcclxuICAgICAgICAgIFtpc1dlYlZpZXddPVwiaXNXZWJWaWV3XCJcclxuICAgICAgICAgIChvblJlbW92aW5nUm9sZSk9XCJvblJlbW92aW5nUm9sZSgkZXZlbnQpXCJcclxuICAgICAgICAgIFtjYW5GcmFtZXdvcmtDaGFuZ2VdPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCJcclxuICAgICAgICAgIFthZGRUb1Byb2dyYW1EZXRhaWxzXT1cImFkZFRvUHJvZ3JhbURldGFpbHNcIlxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1wcm9ncmFtPlxyXG5cclxuICAgICAgICA8IS0tIEdSQyBPYmplY3QgLS0+XHJcbiAgICAgICAgPGxpYi1ncmMtb2JqZWN0LWNvbnRhaW5lclxyXG4gICAgICAgICAgI2dyY09iamVjdFxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidHUkMnXCJcclxuICAgICAgICAgIFtncmNUeXBlXT1cImdyY1R5cGVcIlxyXG4gICAgICAgICAgW01PREVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbSURdPVwiaWRcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChyZXNldEZvcm0pPVwib25SZXNldEdSQ0Zvcm0oKVwiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcclxuICAgICAgICA+PC9saWItZ3JjLW9iamVjdC1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCJcclxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgIG1vZGUgPT09IFwiRURJVFwiICYmIG9wZW5lZEZyb20gIT09IFwiTU9WRV9UT19SRUdJU1RFUlwiXHJcbiAgICAgICAgICAgID8gXCJVcGRhdGVcIlxyXG4gICAgICAgICAgICA6IFwiQWRkXCJcclxuICAgICAgICB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fFxyXG4gICAgICAgICAgIXJpc2tCdWxrVXBsb2FkPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0FNUicpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FNUidcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQnJvd3NlXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0NNUicpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NNUidcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQnJvd3NlXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lcjFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInQ0FSJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cInN1Ym1pdCBzYXZlLWJ1dHRvbi1jb2xvclwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjb21wbGlhbmNlLnNhdmVGb3JMYXRlckJ1dHRvbigpXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICBtb2RlID09PSAnQ1JFQVRFJyB8fCAobW9kZSA9PT0gJ0VESVQnICYmIGNvbXBsaWFuY2U/LmlzRHJhZnQpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFNBVkUgRk9SIExBVEVSXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBUaGlzIGhhcyB0ZXJuYXJ5IG9wZXJhdGlvbiB0byBoYW5kbGUgdGhlIGJvdGggc2NlbmFyaW9zIG9mIGhvdyBpdCB3b3JrcyB3aXRoIGNvbXBsaWFuY2UgYW5kIHByb2dyYW0gbW9kdWxlLCBwbGVhc2UgZG9uJ3QgY2hhbmdlIHRoaXMuIC0tPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwic3VibWl0IGVudHJ1c3QtYnV0dG9uXCJcclxuICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVInXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7e1xyXG4gICAgICAgICAgICBlbnRydXN0QnV0dG9uTmFtZSAhPT0gXCJcIiAmJiBtb2RlICE9PSBcIkVESVRcIlxyXG4gICAgICAgICAgICAgID8gZW50cnVzdEJ1dHRvbk5hbWVcclxuICAgICAgICAgICAgICA6IG1vZGUgPT09IFwiRURJVFwiICYmIGNvbXBsaWFuY2U/LmlzRHJhZnRcclxuICAgICAgICAgICAgICA/IFwiZW50cnVzdFwiXHJcbiAgICAgICAgICAgICAgOiBcInVwZGF0ZVwiXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7e1xyXG4gICAgICAgICAgbW9kZSA9PSBcIkVESVRcIlxyXG4gICAgICAgICAgICA/IGlzU2VuZEZvckF0dGVzdGF0aW9uXHJcbiAgICAgICAgICAgICAgPyBcIlNlbmQgZm9yIGF0dGVzdGF0aW9uXCJcclxuICAgICAgICAgICAgICA6IFwiVXBkYXRlXCJcclxuICAgICAgICAgICAgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCJcclxuICAgICAgICB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiXHJcbiAgICAgID5cclxuICAgICAgICBDb250aW51ZSB0byBkcmFmdFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiQWRkXCIgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBQSdcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCIgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnSUFBJylcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiXHJcbiAgICAgID5cclxuICAgICAgICBCcm93c2VcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8ICFwcm9ncmFtPy52YWxpZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgnQ0FQUicpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUFInXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCAhcHJvZ3JhbT8udmFsaWRcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoJ0NBUFInKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIChjbGljayk9XCJzdWJtaXQoKVwiICpuZ1N3aXRjaENhc2U9XCInR1JDJ1wiPlxyXG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93blwiXHJcbiAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd0xpc3RcIlxyXG4gICAgICAgIChjbGljayk9XCJjbG9zZVdvcmtmbG93TGlzdCgpXCJcclxuICAgICAgICBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJkcm9wZG93bkxlZnRcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJkcm9wZG93bldpZHRoXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLWxpc3RcIj5cclxuICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgd29ya2Zsb3cgb2Ygd29ya2Zsb3dUeXBlTGlzdFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VXb3JrZmxvdygkZXZlbnQsIHdvcmtmbG93KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgICAgICBbdmFsdWVdPVwid29ya2Zsb3c/LmNvZGVcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gd29ya2Zsb3c/LmNvZGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgd29ya2Zsb3c/LndvcmtmbG93TmFtZSB9fTwvYXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW92ZXJsYXlcIlxyXG4gICAgICAgICpuZ0lmPVwid29ya2Zsb3dMaXN0XCJcclxuICAgICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0xpc3QoKVwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFwcC1jb25maXJtYXRpb24tYWxlcnRcclxuICAgICAgaWQ9XCJjb25maXJtYXRpb24tZGlhbG9ndWVcIlxyXG4gICAgICAoYWN0aW9uKT1cImNvbmZpcm1Xb3JrZmxvd0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKm5nSWY9XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcclxuICAgICAgW21lc3NhZ2VdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/Lm1lc3NhZ2VcIlxyXG4gICAgICBbY29uZmlnXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnXCJcclxuICAgID48L2FwcC1jb25maXJtYXRpb24tYWxlcnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=