vcomply-workflow-engine 5.0.30 → 5.0.32

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.
@@ -282,11 +282,9 @@ export class WorkflowCaseComponent {
282
282
  }
283
283
  }
284
284
  reportCase() {
285
- if (this.openedFrom === 'ASSESSMENT') {
286
- this.filterAssessment(this.payload);
287
- }
288
- if (this.openedFrom === 'COMPLIANCE_WORKROOM') {
285
+ if (this.openedFrom === 'COMPLIANCE_WORKROOM' || this.openedFrom === 'ASSESSMENT') {
289
286
  this.filterResponsibilities(this.payload);
287
+ this.filterAssessment(this.payload);
290
288
  }
291
289
  const isValid = this.checkValidation(this.payload);
292
290
  if (!isValid)
@@ -554,7 +552,7 @@ export class WorkflowCaseComponent {
554
552
  this.openedFrom === 'COMPLIANCE_WORKROOM') {
555
553
  this.payload.source = this.source;
556
554
  payload.linked_assessment_issues.resp_id =
557
- this.responsibilityData?.responsibilityObjectId;
555
+ this.source ? this.responsibilityData?.responsibilityObjectId : '';
558
556
  payload.linked_assessment_issues.due_date_id =
559
557
  this.assessmentQuestion?.dueDateId;
560
558
  payload.linked_assessment_issues.assessment_id =
@@ -566,6 +564,7 @@ export class WorkflowCaseComponent {
566
564
  payload.responsibilities_Linked = [
567
565
  this.responsibilityData?.responsibilityObjectId,
568
566
  ];
567
+ payload.source = this.source;
569
568
  }
570
569
  }
571
570
  addToCase() {
@@ -792,4 +791,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
792
791
  }], disconnectRefresh: [{
793
792
  type: Output
794
793
  }] } });
795
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9yZXBvcnQtYS1jYXNlL3dvcmtmbG93LWNhc2Uvd29ya2Zsb3ctY2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9yZXBvcnQtYS1jYXNlL3dvcmtmbG93LWNhc2Uvd29ya2Zsb3ctY2FzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBSzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVE1RCxNQUFNLE9BQU8scUJBQXFCO0lBMERoQyxZQUNVLGtCQUFzQyxFQUN0QyxZQUEwQixFQUMxQix1QkFBZ0QsRUFDaEQscUJBQTRDO1FBSDVDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCwwQkFBcUIsR0FBckIscUJBQXFCLENB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S0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBRERfVE9fQ0FTRV9XT1JLRkxPVyxcbiAgQURESVRJT05BTF9PUFRJT05fU1RBVFVTLFxuICBFWENFUFRJT05fVFlQRSxcbiAgT1ZFUlNJR0hUX1NFTEVDVE9SX0NPTkZJRyxcbiAgUkVQT1JUX0NBU0UsXG4gIFJFUE9SVF9DQVNFX1BBWUxPQUQsXG4gIFJJU0tfQ0xBU1NJRklDQVRJT04sXG4gIFNJREVfU0VMRUNUT1JfRUxFTUVOVFMsXG4gIFZBTElEQVRJT05fRVJST1IsXG4gIFdPUktGTE9XX0RFVEFJTFNfUEFSQU1TLFxuICBBQ1RJT05fQlVUVE9OUyxcbiAgU01JTEVZX01FU1NBR0UsXG4gIEZJRUxEX1NFTEVDVE9SLFxufSBmcm9tICcuLi9jb25zdGFudHMvcmVwb3J0LWNhc2UuY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY2FzZS10eXBlLXNsaWRlci9jYXNlLXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydEFDYXNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlcG9ydC1hLWNhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XG5pbXBvcnQgeyBPcmdhbml6YXRpb25Vc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL29yZ2FuaXphdGlvbi11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcmVzcG9uc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXNzZXNzdHMuY29uc3RhbnRzJztcbmltcG9ydCB7IFJlcG9ydENhc2VQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlcG9ydC1jYXNlLXBlcm1pc3Npb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC13b3JrZmxvdy1jYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LWNhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrZmxvdy1jYXNlLmNvbXBvbmVudC5sZXNzJywgJy4uLy4uL2Zvcm1zLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dDYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZXBvcnRUZXh0cyA9IFJFUE9SVF9DQVNFO1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIGNhc2VUeXBlID0gcmVwb3J0O1xuICBjYXNlVHlwZVNlbGVjdGVkID0gcmVwb3J0LlJFUE9SVF9DQVNFO1xuICBwYXlsb2FkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShSRVBPUlRfQ0FTRV9QQVlMT0FEKSk7XG4gIHBhcmFtcyA9IFdPUktGTE9XX0RFVEFJTFNfUEFSQU1TO1xuICB2YWxpZGF0aW9uRXJyb3IgPSBWQUxJREFUSU9OX0VSUk9SO1xuICByaXNrQ2xhc3NpZmljYXRpb24gPSBSSVNLX0NMQVNTSUZJQ0FUSU9OO1xuICBhZGRUb0Nhc2VQYXlsb2FkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShBRERfVE9fQ0FTRV9XT1JLRkxPVykpO1xuICBleGNlcHRpb25UeXBlID0gRVhDRVBUSU9OX1RZUEU7XG4gIG92ZXJzaWdodF9jb25maWcgPSBPVkVSU0lHSFRfU0VMRUNUT1JfQ09ORklHO1xuICBzbWlsZXlNZXNzYWdlID0gU01JTEVZX01FU1NBR0U7XG4gIGFjdGlvbkJ1dHRvbnM6IGFueVtdID0gQUNUSU9OX0JVVFRPTlM7XG4gIHNpZGVTZWxlY3RvckVsZW1lbnRzOiBhbnkgPSBTSURFX1NFTEVDVE9SX0VMRU1FTlRTO1xuICBhZGRpdGlvbmFsT3B0aW9uU3RhdHVzOiBhbnkgPSBBRERJVElPTkFMX09QVElPTl9TVEFUVVM7XG4gIGZpZWxkU2VsZWN0b3IgPSBGSUVMRF9TRUxFQ1RPUjtcbiAgY2FzZURhdGE6IGFueTtcblxuICBmaWVsZENsaWNrZWQ6IHN0cmluZyA9ICcnO1xuICBhY3RpdmVGaWVsZDogc3RyaW5nID0gJyc7XG4gIGFjdGl2ZVNlbGVjdG9yOiBzdHJpbmcgPSAnJztcblxuICBzaG93U21pbGV5OiBib29sZWFuID0gZmFsc2U7XG4gIHNjcm9sbFRvQm90dG9tOiBib29sZWFuID0gZmFsc2U7XG5cbiAgd29ya2Zsb3dEZXRhaWxzRGF0YTogYW55O1xuICBncm91cExpc3Q6IGFueVtdID0gW107XG4gIHVzZXJMaXN0OiBhbnkgPSBbXTtcbiAgc2VsZWN0ZWRPdmVyc2lnaHRzOiBhbnkgPSB7XG4gICAgY2NfbGlzdDogW10sXG4gICAgY2NfZmFpbHVyZXNfbGlzdDogW10sXG4gIH07XG4gIGxvYWRlciA9IHtcbiAgICB1c2VyTGlzdExvYWRlcjogZmFsc2UsXG4gICAgdHlwZUxvYWRlcjogZmFsc2UsXG4gICAgcHJpb3JpdHlMb2FkZXI6IGZhbHNlLFxuICAgIGNhc2VMb2FkZXI6IGZhbHNlLFxuICAgIGdyb3VwTGlzdExvYWRlcjogZmFsc2UsXG4gICAgcmVwb3J0Q2FzZUxvYWRlcjogZmFsc2UsXG4gICAgcGVybWlzc2lvbkxvYWRlcjogZmFsc2UsXG4gIH07XG5cbiAgQElucHV0KCkgb3BlbmVkRnJvbTogYW55O1xuICBASW5wdXQoKSBzb3VyY2U6IGFueTtcbiAgQElucHV0KCkgY2FzZUlkOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGU6IGFueTtcbiAgQElucHV0KCkgd29ya2Zsb3dUeXBlOiBhbnk7XG4gIEBJbnB1dCgpIHJlc3BvbnNpYmlsaXR5RGF0YTogYW55O1xuICBASW5wdXQoKSBhc3Nlc3NtZW50UXVlc3Rpb246IGFueTtcbiAgQElucHV0KCkgY2FzZVR5cGVQZXJtaXNzaW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwb3B1bGF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNhc2VSZXBvcnRlZEJ5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgdXNlckxpc3RFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXBvcnRBQ2FzZVNlcnZpY2U6IFJlcG9ydEFDYXNlU2VydmljZSxcbiAgICBwcml2YXRlIHVpS2l0U2VydmljZTogVWlLaXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3JnYW5pemF0aW9uVXNlclNlcnZpY2U6IE9yZ2FuaXphdGlvblVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVzcG9uc2liaWxpdHlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9uTG9hZGVyKCk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgXG4gICAgdGhpcy5nZXRVc2VyTGlzdCgpO1xuICAgIHRoaXMuZ2V0R3JvdXBMaXN0KCk7XG5cbiAgICBpZiAodGhpcy53b3JrZmxvd1R5cGUgPT09ICdBQ1RXJykge1xuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzID0geyAuLi5BRERJVElPTkFMX09QVElPTl9TVEFUVVMgfTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICB0aGlzLmdldENhc2VEZXRhaWxzKCk7XG4gICAgfVxuICBcbiAgfVxuXG4gIHBlcm1pc3Npb25Mb2FkZXIoKSB7XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuY2FzZVR5cGVMb2FkZXIuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIHRoaXMubG9hZGVyLnBlcm1pc3Npb25Mb2FkZXIgPSByZXM7XG4gICAgfSk7XG4gIH1cblxuICBnZXRVc2VyTGlzdCgpIHtcbiAgICB0aGlzLmxvYWRlci51c2VyTGlzdExvYWRlciA9IHRydWU7XG4gICAgdGhpcy5vcmdhbml6YXRpb25Vc2VyU2VydmljZS5nZXRPcmdhbml6YXRpb25Vc2VycygpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzO1xuICAgICAgdGhpcy51c2VyTGlzdEVtaXR0ZXIuZW1pdChyZXMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLm1vZGUgPT09ICdFRElUJyAmJlxuICAgICAgICB0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPT09IHJlcG9ydC5BRERfQ0FTRV9UT19XT1JLRkxPV1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMucG9wdWxhdGVPdmVyc2lnaHRzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvYWRlci51c2VyTGlzdExvYWRlciA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0R3JvdXBMaXN0KCkge1xuICAgIHRoaXMubG9hZGVyLmdyb3VwTGlzdExvYWRlciA9IHRydWU7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uR3JvdXBzKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIHRoaXMuZ3JvdXBMaXN0ID0gcmVzO1xuICAgICAgdGhpcy5sb2FkZXIuZ3JvdXBMaXN0TG9hZGVyID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBnZXRDYXNlRGV0YWlscygpIHtcbiAgICB0aGlzLmxvYWRlci5jYXNlTG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZVxuICAgICAgLmdldENhc2VEZXRhaWxzKHRoaXMuY2FzZUlkKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jYXNlUmVwb3J0ZWRCeS5lbWl0KHJlcz8uZGF0YT8uY3JlYXRlZF9ieSk7XG4gICAgICAgIHRoaXMuc2V0Q2FzZURldGFpbHMocmVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0Q2FzZURldGFpbHMocmVzOiBhbnkpIHtcbiAgICBpZiAocmVzPy5kYXRhPy5hZGRlZF90b193b3JrZmxvdyB8fCB0aGlzLndvcmtmbG93VHlwZSA9PT0gJ0FDVFcnKSB7XG4gICAgICB0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPSByZXBvcnQuQUREX0NBU0VfVE9fV09SS0ZMT1c7XG4gICAgICB0aGlzLnBvcHVsYXRlQWRkQ2FzZVBheWxvYWQocmVzPy5kYXRhKTtcbiAgICAgIHRoaXMuZ2V0V29ya2Zsb3dEZXRhaWxzKHJlcz8uZGF0YSk7XG4gICAgXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9IHJlcG9ydC5SRVBPUlRfQ0FTRTtcbiAgICAgIHRoaXMucG9wdWxhdGVSZXBvcnRDYXNlUGF5bG9hZChyZXM/LmRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMubG9hZGVyLmNhc2VMb2FkZXIgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIGVkaXQgY2FzZVxuXG4gIGdldFdvcmtmbG93RGV0YWlscyhkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnBhcmFtcy5jYXNlX3R5cGUuaWQgPSBkYXRhPy5jYXNlX3R5cGU/LmlkO1xuICAgIHRoaXMucGFyYW1zLnByaW9yaXR5LmlkID0gZGF0YT8ucHJpb3JpdHk/LmlkO1xuICAgIHRoaXMucGFyYW1zLnJjX2RldGFpbHMuaWQgPVxuICAgICAgZGF0YT8ucmNfZGV0YWlscz8ubWFpbl9yY19pZCB8fCBkYXRhPy5yY19kZXRhaWxzPy5pZHM/LlswXTtcbiAgICB0aGlzLnBhcmFtcy5jYXRlZ29yeS5pZCA9IGRhdGE/LmNhdGVnb3J5Py5pZHNbMF07XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuZ2V0V29ya2Zsb3dEZXRhaWxzKHRoaXMucGFyYW1zKTtcbiAgfVxuXG4gIHBvcHVsYXRlUmVwb3J0Q2FzZVBheWxvYWQoZGF0YTogYW55KSB7XG4gICAgdGhpcy5wYXlsb2FkLm5hbWUgPSBkYXRhPy5uYW1lO1xuICAgIHRoaXMucGF5bG9hZC5kZXNjcmlwdGlvbiA9IGRhdGE/LmRlc2NyaXB0aW9uO1xuICAgIHRoaXMucGF5bG9hZC5yZXBvcnRlZF9kYXRlID0gbmV3IERhdGUoZGF0YS5yZXBvcnRlZF9kYXRlKTtcbiAgICB0aGlzLnBheWxvYWQucHJpb3JpdHkgPSBkYXRhPy5wcmlvcml0eTtcbiAgICB0aGlzLnBheWxvYWQuY2FzZV90eXBlID0gZGF0YT8uY2FzZV90eXBlO1xuICAgIHRoaXMucGF5bG9hZC5yY19kZXRhaWxzID0gZGF0YT8ucmNfZGV0YWlscztcbiAgICB0aGlzLnBheWxvYWQucmVjZWl2ZV91cGRhdGVzID0gZGF0YT8ucmVjZWl2ZV91cGRhdGVzO1xuICAgIHRoaXMucGF5bG9hZC5zdXBwb3J0aW5nX2RvY3VtZW50cyA9IGRhdGE/LnN1cHBvcnRpbmdfZG9jdW1lbnRzO1xuICAgIHRoaXMucGF5bG9hZC5jYXRlZ29yeSA9IGRhdGE/LmNhdGVnb3J5O1xuICB9XG5cbiAgcG9wdWxhdGVBZGRDYXNlUGF5bG9hZChkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS53b3JrZmxvd0NvZGUubmV4dCgnQUNXJyk7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLm5hbWUgPSBkYXRhPy5uYW1lO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5kZXNjcmlwdGlvbiA9IGRhdGE/LmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5wcmlvcml0eSA9IGRhdGE/LnByaW9yaXR5O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlX3R5cGUgPSBkYXRhPy5jYXNlX3R5cGU7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLnJjX2RldGFpbHMgPSBkYXRhPy5yY19kZXRhaWxzO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5yaXNrX2NsYXNzID0gZGF0YT8ucmlza19jbGFzcztcbiAgICBpZiAodGhpcy53b3JrZmxvd1R5cGUgPT09ICdBQ1RXJykge1xuICAgICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmFkZGl0aW9uYWxfY2F0ZWdvcnkgPSBkYXRhPy5jYXRlZ29yeTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhdGVnb3J5ID0gZGF0YT8uY2F0ZWdvcnk7XG4gICAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeSA9IGRhdGE/LmFkZGl0aW9uYWxfY2F0ZWdvcnk7XG4gICAgfVxuICAgIGlmIChkYXRhPy5jYXNlVG9Xb3JrZmxvdykge1xuICAgICAgdGhpcy5wb3B1bGF0ZUFkZGl0aW9uYWxGaWVsZHMoZGF0YT8uY2FzZVRvV29ya2Zsb3cpO1xuICAgICAgdGhpcy5wb3B1bGF0ZVJlc29sdXRpb25EZWFkbGluZShkYXRhPy5jYXNlVG9Xb3JrZmxvdyk7XG4gICAgICB0aGlzLnBvcHVsYXRlVXNlckRldGFpbHMoZGF0YT8uY2FzZVRvV29ya2Zsb3cpO1xuICAgICAgdGhpcy5zZXRPcHRpb25hbEZpZWxkKGRhdGE/LmNhc2VUb1dvcmtmbG93LCBkYXRhPy5yaXNrX2NsYXNzKTtcbiAgICB9XG4gIH1cblxuICBwb3B1bGF0ZVVzZXJEZXRhaWxzKGRhdGE6IGFueSkge1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5hc3NpZ25lZXNfZ3JvdXAgPVxuICAgICAgZGF0YT8uYXNzaWduZWVzX2dyb3VwO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5vd25lcnMgPSBkYXRhPy5vd25lcnM7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc2lnbmVlcyA9IGRhdGE/LmFzc2lnbmVlcztcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cud29ya2Zsb3dfaWQgPSBkYXRhPy53b3JrZmxvd19pZDtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cuYXNzaWduZWVzX2dyb3VwID1cbiAgICAgIGRhdGE/LmFzc2lnbmVlc19ncm91cDtcbiAgfVxuXG4gIHBvcHVsYXRlUmVzb2x1dGlvbkRlYWRsaW5lKGRhdGE6IGFueSkge1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZXNvbHV0aW9uX2RlYWRsaW5lID1cbiAgICAgIGRhdGE/LnJlc29sdXRpb25fZGVhZGxpbmU7XG4gIH1cblxuICBwb3B1bGF0ZUFkZGl0aW9uYWxGaWVsZHMoZGF0YTogYW55KSB7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmV4Y2VwdGlvbl90eXBlID0gZGF0YT8uZXhjZXB0aW9uX3R5cGU7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc29jaWF0ZWRfcmlza3MgPVxuICAgICAgZGF0YT8uYXNzb2NpYXRlZF9yaXNrcztcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cuZXZpZGVuY2VfZW5hYmxlZCA9XG4gICAgICBkYXRhPy5ldmlkZW5jZV9lbmFibGVkO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZWNvbW1lbmRhdGlvbnMgPVxuICAgICAgZGF0YT8ucmVjb21tZW5kYXRpb25zO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5vdmVyc2lnaHRzLmNjX2lkcyA9XG4gICAgICBkYXRhPy5vdmVyc2lnaHRzPy5jY19pZHM7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm92ZXJzaWdodHMuY2NfZmFpbHVyZXNfaWRzID1cbiAgICAgIGRhdGE/Lm92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2lkcztcbiAgICB0aGlzLnBvcHVsYXRlT3ZlcnNpZ2h0cygpO1xuICB9XG5cbiAgcG9wdWxhdGVPdmVyc2lnaHRzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2xpc3QgPSB0aGlzLnVzZXJMaXN0Py5maWx0ZXIoKHVzZXI6IGFueSkgPT5cbiAgICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5vdmVyc2lnaHRzLmNjX2lkcz8uaW5jbHVkZXMoXG4gICAgICAgIHVzZXI/Ll9pZCBhcyBuZXZlclxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfZmFpbHVyZXNfbGlzdCA9IHRoaXMudXNlckxpc3Q/LmZpbHRlcihcbiAgICAgICh1c2VyOiBhbnkpID0+XG4gICAgICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5vdmVyc2lnaHRzLmNjX2ZhaWx1cmVzX2lkcz8uaW5jbHVkZXMoXG4gICAgICAgICAgdXNlcj8uX2lkIGFzIG5ldmVyXG4gICAgICAgIClcbiAgICApO1xuICB9XG5cbiAgc2V0T3B0aW9uYWxGaWVsZChkYXRhOiBhbnksIHJpc2tDbGFzczogbnVtYmVyKSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzID0ge1xuICAgICAgRVhDRVBUSU9OX1RZUEU6IGRhdGE/LmV4Y2VwdGlvbl90eXBlID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgRVZJREVOQ0U6IGRhdGE/LmV2aWRlbmNlX2VuYWJsZWQgPyB0cnVlIDogZmFsc2UsXG4gICAgICBBU1NPQ0lBVEVEX1JJU0tTOiBkYXRhPy5hc3NvY2lhdGVkX3Jpc2tzPy50ZXh0Py5sZW5ndGggPyB0cnVlIDogZmFsc2UsXG4gICAgICBPVkVSU0lHSFQ6XG4gICAgICAgIGRhdGE/Lm92ZXJzaWdodHM/LmNjX2lkcz8ubGVuZ3RoID4gMCB8fFxuICAgICAgICBkYXRhPy5vdmVyc2lnaHRzPy5jY19mYWlsdXJlc19pZHM/Lmxlbmd0aCA+IDBcbiAgICAgICAgICA/IHRydWVcbiAgICAgICAgICA6IGZhbHNlLFxuICAgICAgUkVDT01NRU5ERURfQUNUSU9OUzpcbiAgICAgICAgZGF0YT8ucmVjb21tZW5kYXRpb25zPy50ZXh0Py5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgUklTS19DTEFTU0lGSUNBVElPTjogcmlza0NsYXNzID8gdHJ1ZSA6IGZhbHNlLFxuICAgIH07XG4gICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gIH1cblxuICBwb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCkge1xuICAgIGNvbnN0IGFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XG4gICAgICBpZiAodGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2tleV0gPT09IHRydWUpIHtcbiAgICAgICAgYWN0aXZhdGVkT3B0aW9ucy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucG9wdWxhdGVPcHRpb24uZW1pdChhY3RpdmF0ZWRPcHRpb25zKTtcbiAgfVxuXG4gIC8vIENoYW5nZSBpbiBjYXNlIHR5cGVcbiAgb25DYXNlVHlwZUNoYW5nZShjYXNlVHlwZTogcmVwb3J0KSB7XG4gICAgdGhpcy5jYXNlVHlwZVNlbGVjdGVkID0gY2FzZVR5cGU7XG4gICAgaWYgKGNhc2VUeXBlID09PSByZXBvcnQuUkVQT1JUX0NBU0UpIHtcbiAgICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS53b3JrZmxvd0NvZGUubmV4dCgnUkFDJyk7XG4gICAgfSBlbHNlIGlmIChjYXNlVHlwZSA9PT0gcmVwb3J0LkFERF9DQVNFX1RPX1dPUktGTE9XKSB7XG4gICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2Uud29ya2Zsb3dDb2RlLm5leHQoJ0FDVycpO1xuICAgIH1cbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMgPSB7IC4uLkFERElUSU9OQUxfT1BUSU9OX1NUQVRVUyB9O1xuICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLnJlc2V0TW9yZU9wdGlvbi5uZXh0KHRydWUpO1xuICB9XG5cbiAgc2F2ZVN1cHBvcnRpbmdEb2N1bWVudChldmVudDogYW55KSB7XG4gICAgY29uc3QgZG9jdW1lbnQgPSBldmVudD8uZmlsZXM7XG4gICAgdGhpcy5wYXlsb2FkLnN1cHBvcnRpbmdfZG9jdW1lbnRzID0gWy4uLmRvY3VtZW50XSBhcyBuZXZlcjtcbiAgfVxuXG4gIG9uQ2F0ZWdvcnlDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucGFyYW1zLmNhdGVnb3J5LmlkID0gZXZlbnRbMF07XG4gICAgaWYgKHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9PT0gcmVwb3J0LkFERF9DQVNFX1RPX1dPUktGTE9XKSB7XG4gICAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5nZXRXb3JrZmxvd0RldGFpbHModGhpcy5wYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIG9uUHJpb3JpdHlDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucGFyYW1zLnByaW9yaXR5LmlkID0gZXZlbnQ7XG4gICAgaWYgKHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9PT0gcmVwb3J0LkFERF9DQVNFX1RPX1dPUktGTE9XKSB7XG4gICAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5nZXRXb3JrZmxvd0RldGFpbHModGhpcy5wYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmNDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucGFyYW1zLnJjX2RldGFpbHMuaWQgPSBldmVudDtcbiAgICBpZiAodGhpcy5jYXNlVHlwZVNlbGVjdGVkID09PSByZXBvcnQuQUREX0NBU0VfVE9fV09SS0ZMT1cpIHtcbiAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLmdldFdvcmtmbG93RGV0YWlscyh0aGlzLnBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgb25DYXNlVHlwZURyb3Bkb3duQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnBhcmFtcy5jYXNlX3R5cGUuaWQgPSBldmVudDtcbiAgICBpZiAodGhpcy5jYXNlVHlwZVNlbGVjdGVkID09PSByZXBvcnQuQUREX0NBU0VfVE9fV09SS0ZMT1cpIHtcbiAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLmdldFdvcmtmbG93RGV0YWlscyh0aGlzLnBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgcmVwb3J0Q2FzZSgpIHtcbiAgICBpZiAodGhpcy5vcGVuZWRGcm9tID09PSAnQVNTRVNTTUVOVCcpIHtcbiAgICAgIHRoaXMuZmlsdGVyQXNzZXNzbWVudCh0aGlzLnBheWxvYWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcGVuZWRGcm9tID09PSAnQ09NUExJQU5DRV9XT1JLUk9PTScpIHtcbiAgICAgIHRoaXMuZmlsdGVyUmVzcG9uc2liaWxpdGllcyh0aGlzLnBheWxvYWQpO1xuICAgIH1cbiAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5jaGVja1ZhbGlkYXRpb24odGhpcy5wYXlsb2FkKTtcbiAgICBpZiAoIWlzVmFsaWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2FzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLnJlcG9ydEFDYXNlKHRoaXMucGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuY2FzZURhdGEgPSB7IC4uLnJlcz8uZGF0YSwgc291cmNlOiB0aGlzLnNvdXJjZSB9O1xuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVyciwgJ2VycicpO1xuICAgICAgICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNhc2UoKSB7XG4gICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IHRydWU7XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UudXBkYXRlQ2FzZSh0aGlzLnBheWxvYWQsIHRoaXMuY2FzZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2FzZURhdGEgPSB7IC4uLnJlcz8uZGF0YSwgc291cmNlOiB0aGlzLnNvdXJjZSB9O1xuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xuICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyBDaGVjayB2YWxpZGF0aW9uIGZvciByZXBvcnQgYSBjYXNlXG4gIGNoZWNrVmFsaWRhdGlvbihwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy52YWxpZGF0ZU5hbWUocGF5bG9hZC5uYW1lKSAmJlxuICAgICAgdGhpcy52YWxpZGF0ZURlc2NyaXB0aW9uKHBheWxvYWQuZGVzY3JpcHRpb24udGV4dCkgJiZcbiAgICAgIHRoaXMudmFsaWRhdGVDYXNlVHlwZShwYXlsb2FkLmNhc2VfdHlwZS5pZCkgJiZcbiAgICAgIHRoaXMudmFsaWRhdGVSZXBvcnREYXRlKHBheWxvYWQucmVwb3J0ZWRfZGF0ZSlcbiAgICApO1xuICB9XG5cbiAgY2hlY2tBZGRUb0Nhc2VWYWxpZGF0aW9uKHBheWxvYWQ6IGFueSkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnZhbGlkYXRlTmFtZShwYXlsb2FkPy5uYW1lKSAmJlxuICAgICAgdGhpcy52YWxpZGF0ZURlc2NyaXB0aW9uKHBheWxvYWQ/LmRlc2NyaXB0aW9uPy50ZXh0KSAmJlxuICAgICAgdGhpcy52YWxpZGF0ZVJjKHBheWxvYWQpICYmXG4gICAgICB0aGlzLnZhbGlkYXRlQ2FzZVR5cGUocGF5bG9hZD8uY2FzZV90eXBlPy5pZCkgJiZcbiAgICAgIHRoaXMudmFsaWRhdGVDYXNlUHJpb3JpdHkocGF5bG9hZD8ucHJpb3JpdHk/LmlkKSAmJlxuICAgICAgdGhpcy52YWxpZGF0ZUNhc2VPd25lcihwYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3duZXJzKSAmJlxuICAgICAgKHRoaXMudmFsaWRhdGVDYXNlQXNzaWduZWUocGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc2lnbmVlcykgfHxcbiAgICAgICAgdGhpcy52YWxpZGF0ZUNhc2VBc3NpZ25lZUdyb3VwKFxuICAgICAgICAgIHBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5hc3NpZ25lZXNfZ3JvdXBcbiAgICAgICAgKSkgJiZcbiAgICAgIHRoaXMudmFsaWRhdGVDYXNlUmVzb2x1dGlvbkRlYWRsaW5lKFxuICAgICAgICBwYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ucmVzb2x1dGlvbl9kZWFkbGluZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICB2YWxpZGF0ZU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5uYW1lLmlzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IubmFtZS5tZXNzYWdlID0gdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UubmFtZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIWRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5kZXNjcmlwdGlvbi5pc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLmRlc2NyaXB0aW9uLm1lc3NhZ2UgPVxuICAgICAgICB0aGlzLnJlcG9ydFRleHRzLmVycm9yTWVzc2FnZS5kZXNjcmlwdGlvbjtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZUNhc2VUeXBlKGNhc2VUeXBlOiBzdHJpbmcpIHtcbiAgICBpZiAoIWNhc2VUeXBlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlVHlwZS5pc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLmNhc2VUeXBlLm1lc3NhZ2UgPVxuICAgICAgICB0aGlzLnJlcG9ydFRleHRzLmVycm9yTWVzc2FnZS5jYXNlVHlwZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZVJlcG9ydERhdGUocmVwb3J0RGF0ZTogc3RyaW5nKSB7XG4gICAgaWYgKCFyZXBvcnREYXRlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5yZXBvcnREYXRlLmlzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IucmVwb3J0RGF0ZS5tZXNzYWdlID1cbiAgICAgICAgdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UucmVwb3J0RGF0ZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZUNhc2VQcmlvcml0eShwcmlvcml0eTogc3RyaW5nKSB7XG4gICAgaWYgKCFwcmlvcml0eSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IucHJpb3JpdHkuaXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5wcmlvcml0eS5tZXNzYWdlID1cbiAgICAgICAgdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UucHJpb3JpdHk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVSYyhwYXlsb2FkOiBhbnkpIHtcbiAgICBpZiAoIXBheWxvYWQ/LnJjX2RldGFpbHM/Lmlkcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5yYy5pc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnJjLm1lc3NhZ2UgPSB0aGlzLnJlcG9ydFRleHRzLmVycm9yTWVzc2FnZS5yYztcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcGF5bG9hZD8ucmNfZGV0YWlscz8uaWRzPy5sZW5ndGggPiAxICYmXG4gICAgICAhcGF5bG9hZD8ucmNfZGV0YWlscz8uc2VwYXJhdGVfcmNfY2FzZXMgJiZcbiAgICAgICFwYXlsb2FkPy5yY19kZXRhaWxzPy5tYWluX3JjX2lkXG4gICAgKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5tYWluUmMuaXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5tYWluUmMubWVzc2FnZSA9XG4gICAgICAgIHRoaXMucmVwb3J0VGV4dHMuZXJyb3JNZXNzYWdlLm1haW5SYztcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZUNhc2VPd25lcihvd25lcnM6IGFueSkge1xuICAgIGlmICghb3duZXJzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLmNhc2VPd25lci5pc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLmNhc2VPd25lci5tZXNzYWdlID1cbiAgICAgICAgdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UuY2FzZU93bmVyO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhbGlkYXRlQ2FzZUFzc2lnbmVlKGFzc2lnbmVlczogYW55KSB7XG4gICAgaWYgKCFhc3NpZ25lZXM/Lmxlbmd0aCkge1xuICAgICAgaWYgKCF0aGlzLmFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5hc3NpZ25lZXNfZ3JvdXA/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlQXNzaWduZWUuaXNFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLmNhc2VBc3NpZ25lZS5tZXNzYWdlID1cbiAgICAgICAgICB0aGlzLnJlcG9ydFRleHRzLmVycm9yTWVzc2FnZS5jYXNlQXNzaWduZWU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZUNhc2VBc3NpZ25lZUdyb3VwKGFzc2lnbmVlc19ncm91cDogYW55KSB7XG4gICAgaWYgKCFhc3NpZ25lZXNfZ3JvdXA/Lmxlbmd0aCkge1xuICAgICAgaWYgKCF0aGlzLmFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5hc3NpZ25lZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlQXNzaWduZWUuaXNFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLmNhc2VBc3NpZ25lZS5tZXNzYWdlID1cbiAgICAgICAgICB0aGlzLnJlcG9ydFRleHRzLmVycm9yTWVzc2FnZS5jYXNlQXNzaWduZWU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZUNhc2VSZXNvbHV0aW9uRGVhZGxpbmUocmVzb2x1dGlvbkRlYWRsaW5lOiBhbnkpIHtcbiAgICBpZiAoIXJlc29sdXRpb25EZWFkbGluZT8uZHVlX2RhdGUpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLmNhc2VSZXNvbHV0aW9uRGVhZGxpbmUuaXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlUmVzb2x1dGlvbkRlYWRsaW5lLm1lc3NhZ2UgPVxuICAgICAgICB0aGlzLnJlcG9ydFRleHRzLmVycm9yTWVzc2FnZS5jYXNlUmVzb2x1dGlvbkRlYWRsaW5lO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIGZpZWxkIHNlbGVjdG9yIGFuZCBkZS1zZWxlY3RvclxuICBvbkZpZWxkQ2xpY2tlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5maWVsZENsaWNrZWQgPSBldmVudDtcbiAgfVxuXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNbZXZlbnQuY29kZV0gPSBldmVudC5jaGVja2VkO1xuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSB0cnVlO1xuICB9XG5cbiAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcihmaWVsZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFjdGl2ZUZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy5hY3RpdmVTZWxlY3RvciA9IHR5cGU7XG4gICAgdGhpcy5maWVsZENsaWNrZWQgPSBmaWVsZDtcbiAgfVxuXG4gIGZpZWxkRGVzZWxlY3Rvcih0eXBlOiBhbnkpIHtcbiAgICB0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJyc7XG4gICAgdGhpcy5hY3RpdmVGaWVsZCA9ICcnO1xuICAgIHRoaXMuZmllbGRDbGlja2VkID0gJyc7XG4gIH1cblxuICAvLyBBZGQgQ2FzZSB0byB3b3JrZmxvd1xuICBzZXRFeGNlcHRpb24odHlwZTogYW55KSB7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmV4Y2VwdGlvbl90eXBlID0gdHlwZTtcbiAgfVxuXG4gIGNoZWNrRGVzY3JpcHRpb24oKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5hc3NvY2lhdGVkX3Jpc2tzPy50ZXh0LFxuICAgICAgJ3RleHQnXG4gICAgKTtcbiAgfVxuXG4gIHNlbGVjdEZpbGUodHlwZTogc3RyaW5nLCBmaWxlczogYW55KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xuICAgICAgICAgIC8vIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tzLmF0dGFjaG1lbnRzLnB1c2gobmFtZSk7XG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVwbG9hZEZpbGUoZmlsZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZyhmaWxlLCB0eXBlLCAnZmlsZScpO1xuICB9XG5cbiAgc2V0RXZpZGVuY2UodmFsdWU6IGFueSkge1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5ldmlkZW5jZV9lbmFibGVkID0gdmFsdWU7XG4gIH1cblxuICBkZWxldGVJdGVtKHR5cGU6IGFueSwgZWxlbWVudDogYW55KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdDQVNFX0NDJzoge1xuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLnNlbGVjdGVkT3ZlcnNpZ2h0cy5jY19saXN0Py5maW5kSW5kZXgoXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbT8uZW1wbG95ZWVfZW1haWwgPT09IGVsZW1lbnQ/LmVtcGxveWVlX2VtYWlsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfbGlzdD8uc3BsaWNlKGl0ZW1JbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDQVNFX0ZDQyc6IHtcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfZmFpbHVyZXNfbGlzdD8uZmluZEluZGV4KFxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0/LmVtcGxveWVlX2VtYWlsID09PSBlbGVtZW50Py5lbXBsb3llZV9lbWFpbFxuICAgICAgICApO1xuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2ZhaWx1cmVzX2xpc3Q/LnNwbGljZShpdGVtSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdG9yQWN0aW9uKGV2dDogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ0NBU0VfQ0MnOiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2xpc3QgPSBldnQ7XG4gICAgICAgIHRoaXMuZ2V0Q2NVc2VycyhldnQsICdjYycpO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDQVNFX0ZDQyc6IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfZmFpbHVyZXNfbGlzdCA9IGV2dDtcbiAgICAgICAgdGhpcy5nZXRDY1VzZXJzKGV2dCwgJ2ZjYycpO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJztcbiAgICB0aGlzLmZpZWxkQ2xpY2tlZCA9ICcnO1xuICB9XG5cbiAgZ2V0Q2NVc2VycyhldnQ6IGFueSwgdHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdXNlckxpc3QgPSB0aGlzLnVzZXJMaXN0Py5maWx0ZXIoKHVzZXI6IGFueSkgPT5cbiAgICAgIGV2dD8uaW5jbHVkZXModXNlcj8uZW1wbG95ZWVfZW1haWwpXG4gICAgKTtcbiAgICBpZiAodHlwZSA9PT0gJ2NjJykge1xuICAgICAgdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfbGlzdCA9IHVzZXJMaXN0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3ZlcnNpZ2h0cy5jY19mYWlsdXJlc19saXN0ID0gdXNlckxpc3Q7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyT3ZlcnNpZ2h0cygpIHtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cub3ZlcnNpZ2h0cy5jY19pZHMgPVxuICAgICAgdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfbGlzdFxuICAgICAgICA/Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtPy5faWQpXG4gICAgICAgID8uZmlsdGVyKEJvb2xlYW4pIGFzIGFueTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cub3ZlcnNpZ2h0cy5jY19mYWlsdXJlc19pZHMgPVxuICAgICAgdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfZmFpbHVyZXNfbGlzdFxuICAgICAgICA/Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtPy5faWQpXG4gICAgICAgID8uZmlsdGVyKEJvb2xlYW4pIGFzIGFueTtcbiAgfVxuXG4gIGZpbHRlclJlc3BvbnNpYmlsaXRpZXMocGF5bG9hZDogYW55KSB7XG4gICAgaWYgKHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nKSB7XG4gICAgICB0aGlzLnBheWxvYWQuc291cmNlID0gdGhpcy5zb3VyY2U7XG4gICAgICBwYXlsb2FkLnJlc3BvbnNpYmlsaXRpZXNfTGlua2VkID0gcGF5bG9hZD8ucmVzcG9uc2liaWxpdGllc19MaW5rZWQ/Lm1hcChcbiAgICAgICAgKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpdGVtPy5FbmNyeXB0ZWRSZXBvcnRJZDtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHBheWxvYWQucmVzcG9uc2liaWxpdGllc19MaW5rZWQucHVzaChcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5T2JqZWN0SWRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyQXNzZXNzbWVudChwYXlsb2FkOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLm9wZW5lZEZyb20gPT09ICdBU1NFU1NNRU5UJyB8fFxuICAgICAgdGhpcy5vcGVuZWRGcm9tID09PSAnQ09NUExJQU5DRV9XT1JLUk9PTSdcbiAgICApIHtcbiAgICAgIHRoaXMucGF5bG9hZC5zb3VyY2UgPSB0aGlzLnNvdXJjZTtcbiAgICAgIHBheWxvYWQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzLnJlc3BfaWQgPVxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlPYmplY3RJZDtcbiAgICAgIHBheWxvYWQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzLmR1ZV9kYXRlX2lkID1cbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb24/LmR1ZURhdGVJZDtcbiAgICAgIHBheWxvYWQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzLmFzc2Vzc21lbnRfaWQgPVxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbj8uYXNzZXNzbWVudElkO1xuICAgICAgcGF5bG9hZC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMucXVlc3Rpb25faWQgPVxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbj8ucXVlc3Rpb25JZDtcbiAgICAgIHBheWxvYWQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzLmF1ZGl0ZWVfaWQgPVxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbj8uYXVkaXRlZUlkO1xuICAgICAgcGF5bG9hZC5yZXNwb25zaWJpbGl0aWVzX0xpbmtlZCA9IFtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5T2JqZWN0SWQsXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIGFkZFRvQ2FzZSgpIHtcbiAgICB0aGlzLmZpbHRlck92ZXJzaWdodHMoKTtcbiAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5jaGVja0FkZFRvQ2FzZVZhbGlkYXRpb24odGhpcy5hZGRUb0Nhc2VQYXlsb2FkKTtcbiAgICBpZiAoIWlzVmFsaWQpIHJldHVybjtcbiAgICBpZiAodGhpcy53b3JrZmxvd1R5cGUgPT09ICdBQ1RXJykge1xuICAgICAgdGhpcy5hZGRDYXNlVG9Xb3JrZmxvdygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSAnRURJVCcgJiYgdGhpcy53b3JrZmxvd1R5cGUgIT09ICdBQ1RXJykge1xuICAgICAgdGhpcy5maWx0ZXJSZXNwb25zaWJpbGl0aWVzKHRoaXMuYWRkVG9DYXNlUGF5bG9hZCk7XG4gICAgICB0aGlzLmZpbHRlckFzc2Vzc21lbnQodGhpcy5hZGRUb0Nhc2VQYXlsb2FkKTtcbiAgICAgIHRoaXMudXBkYXRlQWRkVG9DYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyUmVzcG9uc2liaWxpdGllcyh0aGlzLmFkZFRvQ2FzZVBheWxvYWQpO1xuICAgICAgdGhpcy5maWx0ZXJBc3Nlc3NtZW50KHRoaXMuYWRkVG9DYXNlUGF5bG9hZCk7XG4gICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLnJlcG9ydEFDYXNlKHRoaXMuYWRkVG9DYXNlUGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jYXNlRGF0YSA9IHsgLi4ucmVzPy5kYXRhLCBzb3VyY2U6IHRoaXMuc291cmNlIH07XG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ2FzZVRvV29ya2Zsb3coKSB7XG4gICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IHRydWU7XG4gICAgbGV0IHBheWxvYWQgPSB7IC4uLnRoaXMuYWRkVG9DYXNlUGF5bG9hZCB9O1xuICAgIGNvbnN0IHdvcmtmbG93UGF5bG9hZCA9IHtcbiAgICAgIC4uLnBheWxvYWQsXG4gICAgICBjYXNlX2lkOiB0aGlzLmNhc2VJZCxcbiAgICB9O1xuXG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuYWRkQ2FzZVRvV29ya2Zsb3cod29ya2Zsb3dQYXlsb2FkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2FzZURhdGEgPSB7IC4uLnJlcz8uZGF0YSwgc291cmNlOiB0aGlzLnNvdXJjZSB9O1xuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xuICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVBZGRUb0Nhc2UoKSB7XG4gICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IHRydWU7XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2VcbiAgICAgIC51cGRhdGVDYXNlKHRoaXMuYWRkVG9DYXNlUGF5bG9hZCwgdGhpcy5jYXNlSWQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jYXNlRGF0YSA9IHsgLi4ucmVzPy5kYXRhLCBzb3VyY2U6IHRoaXMuc291cmNlIH07XG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICAvLyBTbWlsZXkgYWN0aW9uc1xuICBzbWlsZXlBY3Rpb25zKGV2dDogYW55KSB7XG4gICAgaWYgKGV2dCA9PT0gJ3JlcG9ydENhc2UnKSB7XG4gICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChldnQgPT09ICd2aWV3Q2FzZScpIHtcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xuICAgICAgdGhpcy52aWV3Q2FzZSgpO1xuICAgIH1cbiAgfVxuXG4gIHZpZXdDYXNlKCkge1xuICAgIGxldCB1cmw6IHN0cmluZztcbiAgICBsZXQgdXJsU3Vic3RyaW5nID0gJyc7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICBpZiAodGhpcy5jYXNlVHlwZVBlcm1pc3Npb24pIHtcbiAgICAgIHVybFN1YnN0cmluZyA9ICcvY2FzZS9yZXBvcnRlZC1jYXNlcyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybFN1YnN0cmluZyA9ICcvY2FzZS9yZXBvcnRlZC1jYXNlcy9yZXBvcnRlZC1ieS1tZSc7XG4gICAgfVxuICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArIHVybFN1YnN0cmluZztcblxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgdGhpcy5jbG9zZVNtaWxleSgpO1xuICB9XG5cbiAgcmVzZXRGb3JtKCkge1xuICAgIHRoaXMucmVwb3J0QUNhc2VSZXNldCgpO1xuICAgIHRoaXMuYWRkVG9DYXNlUmVzZXQoKTtcbiAgfVxuXG4gIHJlcG9ydEFDYXNlUmVzZXQoKSB7XG4gICAgdGhpcy5wYXlsb2FkLm5hbWUgPSAnJztcbiAgICB0aGlzLnBheWxvYWQuZGVzY3JpcHRpb24gPSB7IHRleHQ6ICcnLCBhdHRhY2htZW50czogW10gfTtcbiAgICB0aGlzLnBheWxvYWQucmVwb3J0ZWRfZGF0ZSA9ICcnO1xuICAgIHRoaXMucGF5bG9hZC5wcmlvcml0eSA9IHsgaWQ6ICcnLCBjdXN0b21fZmllbGRzOiBbXSB9O1xuICAgIHRoaXMucGF5bG9hZC5jYXNlX3R5cGUgPSB7IGlkOiAnJywgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLnBheWxvYWQucmNfZGV0YWlscyA9IHsgaWRzOiBbXSB9O1xuICAgIHRoaXMucGF5bG9hZC5zdXBwb3J0aW5nX2RvY3VtZW50cyA9IFtdO1xuICAgIHRoaXMucGF5bG9hZC5jYXRlZ29yeSA9IHsgaWRzOiBbXSwgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLnBheWxvYWQucmVjZWl2ZV91cGRhdGVzID0gZmFsc2U7XG4gIH1cblxuICBhZGRUb0Nhc2VSZXNldCgpIHtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQubmFtZSA9ICcnO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5kZXNjcmlwdGlvbiA9IHsgdGV4dDogJycsIGF0dGFjaG1lbnRzOiBbXSB9O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5wcmlvcml0eSA9IHsgaWQ6ICcnLCBjdXN0b21fZmllbGRzOiBbXSB9O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlX3R5cGUgPSB7IGlkOiAnJywgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQucmNfZGV0YWlscyA9IHtcbiAgICAgIGlkczogW10sXG4gICAgICBzZXBhcmF0ZV9yY19jYXNlczogZmFsc2UsXG4gICAgICBtYWluX3JjX2lkOiAnJyxcbiAgICB9O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXRlZ29yeSA9IHsgaWRzOiBbXSwgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeSA9IHsgaWRzOiBbXSwgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQucmlza19jbGFzcyA9IDA7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc2lnbmVlc19ncm91cCA9IFtdO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5vd25lcnMgPSBbXTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cuYXNzaWduZWVzID0gW107XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LndvcmtmbG93X2lkID0gJyc7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlc29sdXRpb25fZGVhZGxpbmUgPSB7XG4gICAgICBkdWVfZGF0ZTogJycsXG4gICAgICBzdGFnZXNfYXNzaWduZWVzOiBbXSxcbiAgICAgIGFzc2lnbmVlX3JlbWluZF9iZWZvcmU6IDAsXG4gICAgICBvd25lcl9yZW1pbmRfYmVmb3JlOiAwLFxuICAgIH07XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmV4Y2VwdGlvbl90eXBlID0gJyc7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc29jaWF0ZWRfcmlza3MgPSB7XG4gICAgICB0ZXh0OiAnJyxcbiAgICAgIGF0dGFjaG1lbnRzOiBbXSxcbiAgICB9O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5ldmlkZW5jZV9lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlY29tbWVuZGF0aW9ucyA9IHtcbiAgICAgIHRleHQ6ICcnLFxuICAgICAgYXR0YWNobWVudHM6IFtdLFxuICAgIH07XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm92ZXJzaWdodHMgPSB7XG4gICAgICBjY19pZHM6IFtdLFxuICAgICAgY2NfZmFpbHVyZXNfaWRzOiBbXSxcbiAgICB9O1xuICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2xpc3QgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkT3ZlcnNpZ2h0cy5jY19mYWlsdXJlc19saXN0ID0gW107XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzID0geyAuLi5BRERJVElPTkFMX09QVElPTl9TVEFUVVMgfTtcbiAgfVxuXG4gIGNsb3NlU21pbGV5KGV2dD86IGFueSkge1xuICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VXb3JrRmxvdyh0aGlzLmNhc2VEYXRhLCBmYWxzZSk7XG4gIH1cblxuICBjbG9zZVdvcmtGbG93KGV2dDogYW55LCBjb25maXJtOiBhbnkpIHtcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dCwgY29uZmlybSB9KTtcbiAgfVxuXG4gIG9uQ2FzZUxvYWRlcihldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3R5cGUnOiB7XG4gICAgICAgIHRoaXMubG9hZGVyLnR5cGVMb2FkZXIgPSBldmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdwcmlvcml0eSc6IHtcbiAgICAgICAgdGhpcy5sb2FkZXIucHJpb3JpdHlMb2FkZXIgPSBldmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc3BsYXlBZGRpdGlvbmFsT3B0aW9ucygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVYQ0VQVElPTl9UWVBFIHx8XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVZJREVOQ0UgfHxcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cy5QUklPUklUWSB8fFxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzLklTU1VFX1RZUEUgfHxcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTIHx8XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMuT1ZFUlNJR0hUIHx8XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMuUkVDT01NRU5ERURfQUNUSU9OU1xuICAgICk7XG4gIH1cblxuICBnZXQgY2hlY2tsb2FkZXIoKSB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLmxvYWRlci50eXBlTG9hZGVyICYmXG4gICAgICAgIHRoaXMubG9hZGVyLnByaW9yaXR5TG9hZGVyICYmXG4gICAgICAgIHRoaXMubG9hZGVyLmNhc2VMb2FkZXIgJiZcbiAgICAgICAgdGhpcy5sb2FkZXIuZ3JvdXBMaXN0TG9hZGVyICYmXG4gICAgICAgIHRoaXMubG9hZGVyLnVzZXJMaXN0TG9hZGVyXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubG9hZGVyLnR5cGVMb2FkZXIgJiYgdGhpcy5sb2FkZXIucHJpb3JpdHlMb2FkZXIpIHx8XG4gICAgICAodGhpcy5sb2FkZXIucGVybWlzc2lvbkxvYWRlcikgfHxcbiAgICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXJcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIXNob3dTbWlsZXlcIiBjbGFzcz1cIndvcmtmbG93LWNhc2VcIj5cbiAgPGFwcC1jYXNlLXR5cGVcbiAgICAqbmdJZj1cIm1vZGUgIT09ICdFRElUJyAmJiBjYXNlVHlwZVBlcm1pc3Npb25cIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgKGNhc2VUeXBlQ2hhbmdlKT1cIm9uQ2FzZVR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2FwcC1jYXNlLXR5cGU+XG4gIDxhcHAtbGlua2VkLXJlc3BvbnNpYmlsaXRpZXNcbiAgICAqbmdJZj1cIlsnQ09NUExJQU5DRV9XT1JLUk9PTScsICdBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSlcIlxuICAgIFtwYXlsb2FkXT1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLlJFUE9SVF9DQVNFID8gcGF5bG9hZCA6IGFkZFRvQ2FzZVBheWxvYWRcIlxuICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgW3Jlc3BvbnNpYmlsaXR5RGF0YV09XCJyZXNwb25zaWJpbGl0eURhdGFcIlxuICAgIChmaWVsZENsaWNrZWQpPVwib25GaWVsZENsaWNrZWQoJGV2ZW50KVwiXG4gID48L2FwcC1saW5rZWQtcmVzcG9uc2liaWxpdGllcz5cbiAgPGFwcC1saW5rZWQtYXNzZXNzbWVudFxuICAgICpuZ0lmPVwib3BlbmVkRnJvbSA9PT0gJ0FTU0VTU01FTlQnXCJcbiAgICBbcGF5bG9hZF09XCJwYXlsb2FkXCJcbiAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICBbZmllbGRTZWxlY3RlZF09XCJmaWVsZENsaWNrZWRcIlxuICAgIFtyZXNwb25zaWJpbGl0eURhdGFdPVwicmVzcG9uc2liaWxpdHlEYXRhXCJcbiAgICBbYXNzZXNzbWVudFF1ZXN0aW9uXT1cImFzc2Vzc21lbnRRdWVzdGlvblwiXG4gICAgKGZpZWxkQ2xpY2tlZCk9XCJvbkZpZWxkQ2xpY2tlZCgkZXZlbnQpXCJcbiAgPjwvYXBwLWxpbmtlZC1hc3Nlc3NtZW50PlxuICA8YXBwLWNhc2UtZGV0YWlsc1xuICAgIFtwYXlsb2FkXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyBwYXlsb2FkIDogYWRkVG9DYXNlUGF5bG9hZFxuICAgIFwiXG4gICAgW2ZpZWxkU2VsZWN0ZWRdPVwiZmllbGRDbGlja2VkXCJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cInZhbGlkYXRpb25FcnJvclwiXG4gICAgW2Nhc2VUeXBlU2VsZWN0ZWRdPVwiY2FzZVR5cGVTZWxlY3RlZFwiXG4gID48L2FwcC1jYXNlLWRldGFpbHM+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1wiXG4gICAgY2xhc3M9XCJoZWFkLWxhYmVsIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1saC00XCJcbiAgPlxuICAgIENBU0UgREVUQUlMU1xuICA8L3NwYW4+XG4gIDxhcHAtaW5mb3JtYXRpb24tYmxvY2tcbiAgICAqbmdJZj1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XXCJcbiAgPjwvYXBwLWluZm9ybWF0aW9uLWJsb2NrPiBcbiAgPGFwcC1yYy1kZXRhaWxzXG4gICAgW3BheWxvYWRdPVwiXG4gICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRSA/IHBheWxvYWQgOiBhZGRUb0Nhc2VQYXlsb2FkXG4gICAgXCJcbiAgICBbZmllbGRTZWxlY3RlZF09XCJmaWVsZENsaWNrZWRcIlxuICAgIFtjYXNlVHlwZVNlbGVjdGVkXT1cImNhc2VUeXBlU2VsZWN0ZWRcIlxuICAgIFt2YWxpZGF0aW9uRXJyb3JdPVwidmFsaWRhdGlvbkVycm9yXCJcbiAgICBbaW5pdGlhbFNlbGVjdGlvbl09XCJcbiAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLlJFUE9SVF9DQVNFXG4gICAgICAgID8gcGF5bG9hZD8ucmNfZGV0YWlsc1xuICAgICAgICA6IGFkZFRvQ2FzZVBheWxvYWQ/LnJjX2RldGFpbHNcbiAgICBcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgIFt3b3JrZmxvd1R5cGVdPVwid29ya2Zsb3dUeXBlXCJcbiAgICAoZmllbGRDbGlja2VkKT1cIm9uRmllbGRDbGlja2VkKCRldmVudClcIlxuICAgIChvblJjQ2hhbmdlKT1cIm9uUmNDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2FwcC1yYy1kZXRhaWxzPlxuICA8YXBwLWNhc2UtdHlwZS1kcm9wZG93blxuICAgIFtwYXlsb2FkXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyBwYXlsb2FkIDogYWRkVG9DYXNlUGF5bG9hZFxuICAgIFwiXG4gICAgW2ZpZWxkU2VsZWN0ZWRdPVwiZmllbGRDbGlja2VkXCJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cInZhbGlkYXRpb25FcnJvclwiXG4gICAgW2luaXRpYWxTZWxlY3Rpb25dPVwiXG4gICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRVxuICAgICAgICA/IHBheWxvYWQ/LmNhc2VfdHlwZVxuICAgICAgICA6IGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VfdHlwZVxuICAgIFwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gICAgW2Nhc2VUeXBlU2VsZWN0ZWRdPVwiY2FzZVR5cGVTZWxlY3RlZFwiXG4gICAgW3dvcmtmbG93VHlwZV09XCJ3b3JrZmxvd1R5cGVcIlxuICAgIChvbkNhc2VUeXBlQ2hhbmdlKT1cIm9uQ2FzZVR5cGVEcm9wZG93bkNoYW5nZSgkZXZlbnQpXCJcbiAgICAob25DYXNlVHlwZUxvYWRpbmcpPVwib25DYXNlTG9hZGVyKCRldmVudCwgJ3R5cGUnKVwiXG4gID48L2FwcC1jYXNlLXR5cGUtZHJvcGRvd24+XG4gIDxhcHAtY2FzZS1jYXRlZ29yeVxuICAgIFtwYXlsb2FkXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyBwYXlsb2FkIDogYWRkVG9DYXNlUGF5bG9hZFxuICAgIFwiXG4gICAgW2ZpZWxkU2VsZWN0ZWRdPVwiZmllbGRDbGlja2VkXCJcbiAgICBbY2FzZVR5cGVTZWxlY3RlZF09XCJjYXNlVHlwZVNlbGVjdGVkXCJcbiAgICBbaW5pdGlhbFNlbGVjdGlvbl09XCJcbiAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLlJFUE9SVF9DQVNFXG4gICAgICAgID8gcGF5bG9hZD8uY2F0ZWdvcnlcbiAgICAgICAgOiBhZGRUb0Nhc2VQYXlsb2FkPy5jYXRlZ29yeVxuICAgIFwiXG4gICAgW2luaXRpYWxBZGRpdGlvbmFsU2VsZWN0aW9uXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0VcbiAgICAgICAgPyBwYXlsb2FkPy5hZGRpdGlvbmFsX2NhdGVnb3J5XG4gICAgICAgIDogYWRkVG9DYXNlUGF5bG9hZD8uYWRkaXRpb25hbF9jYXRlZ29yeVxuICAgIFwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gICAgW3dvcmtmbG93VHlwZV09XCJ3b3JrZmxvd1R5cGVcIlxuICAgIChvbkNhdGVnb3J5Q2hhbmdlKT1cIm9uQ2F0ZWdvcnlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGZpZWxkQ2xpY2tlZCk9XCJvbkZpZWxkQ2xpY2tlZCgkZXZlbnQpXCJcbiAgPjwvYXBwLWNhc2UtY2F0ZWdvcnk+XG4gIDxhcHAtcmVwb3J0LWRhdGVcbiAgICAqbmdJZj1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLlJFUE9SVF9DQVNFXCJcbiAgICBbcGF5bG9hZF09XCJwYXlsb2FkXCJcbiAgICBbZmllbGRTZWxlY3RlZF09XCJmaWVsZENsaWNrZWRcIlxuICAgIFt2YWxpZGF0aW9uRXJyb3JdPVwidmFsaWRhdGlvbkVycm9yXCJcbiAgICAoZmllbGRDbGlja2VkKT1cIm9uRmllbGRDbGlja2VkKCRldmVudClcIlxuICA+PC9hcHAtcmVwb3J0LWRhdGU+XG4gIDxhcHAtY2FzZS1wcmlvcml0eVxuICAgIFtwYXlsb2FkXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyBwYXlsb2FkIDogYWRkVG9DYXNlUGF5bG9hZFxuICAgIFwiXG4gICAgW2ZpZWxkU2VsZWN0ZWRdPVwiZmllbGRDbGlja2VkXCJcbiAgICBbY2FzZVR5cGVTZWxlY3RlZF09XCJjYXNlVHlwZVNlbGVjdGVkXCJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cInZhbGlkYXRpb25FcnJvclwiXG4gICAgW2luaXRpYWxTZWxlY3Rpb25dPVwiXG4gICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRVxuICAgICAgICA/IHBheWxvYWQ/LnByaW9yaXR5XG4gICAgICAgIDogYWRkVG9DYXNlUGF5bG9hZD8ucHJpb3JpdHlcbiAgICBcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgIFt3b3JrZmxvd1R5cGVdPVwid29ya2Zsb3dUeXBlXCJcbiAgICAob25Qcmlvcml0eUNoYW5nZSk9XCJvblByaW9yaXR5Q2hhbmdlKCRldmVudClcIlxuICAgIChvblByaW9yaXR5TG9hZGVyKT1cIm9uQ2FzZUxvYWRlcigkZXZlbnQsICdwcmlvcml0eScpXCJcbiAgPjwvYXBwLWNhc2UtcHJpb3JpdHk+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1wiXG4gICAgY2xhc3M9XCJoZWFkLWxhYmVsIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1saC00XCJcbiAgPlxuICAgIFVTRVIgREVUQUlMU1xuICA8L3NwYW4+XG4gIDxhcHAtY2FzZS1vd25lcnNcbiAgICAqbmdJZj1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XXCJcbiAgICBbcGF5bG9hZF09XCJhZGRUb0Nhc2VQYXlsb2FkXCJcbiAgICBbaW5pdGlhbFNlbGVjdGlvbl09XCJhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3duZXJzXCJcbiAgICBbd29ya2Zsb3dJZF09XCJhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ud29ya2Zsb3dfaWRcIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgW3ZhbGlkYXRpb25FcnJvcl09XCJ2YWxpZGF0aW9uRXJyb3JcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgIChmaWVsZENsaWNrZWQpPVwib25GaWVsZENsaWNrZWQoJGV2ZW50KVwiXG4gID48L2FwcC1jYXNlLW93bmVycz5cbiAgPGFwcC1jYXNlLWFzc2lnbmVlc1xuICAgICpuZ0lmPVwiY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuQUREX0NBU0VfVE9fV09SS0ZMT1dcIlxuICAgIFtwYXlsb2FkXT1cImFkZFRvQ2FzZVBheWxvYWRcIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgW2luaXRpYWxTZWxlY3Rpb25dPVwiYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3dcIlxuICAgIFt1c2VyTGlzdF09XCJ1c2VyTGlzdFwiXG4gICAgW2dyb3VwTGlzdF09XCJncm91cExpc3RcIlxuICAgIFt2YWxpZGF0aW9uRXJyb3JdPVwidmFsaWRhdGlvbkVycm9yXCJcbiAgICAoZmllbGRDbGlja2VkKT1cIm9uRmllbGRDbGlja2VkKCRldmVudClcIlxuICA+PC9hcHAtY2FzZS1hc3NpZ25lZXM+XG4gIDxhcHAtZmllbGQtaG9sZGVyXG4gICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRVwiXG4gICAgW2ltYWdlXT1cIkFTU0VUUy5mb3JtYXRfZXZpZGVuY2VcIlxuICAgIFtkaXNhYmxlZF09XCJmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZENsaWNrZWQpXCJcbiAgICBbY2hlY2tlZF09XCJwYXlsb2FkPy5zdXBwb3J0aW5nX2RvY3VtZW50cz8ubGVuZ3RoXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgZmllbGQ+XG4gICAgICA8YXBwLXZjLWxhYmVsXG4gICAgICAgIGxhYmVsXG4gICAgICAgIFtsYWJlbFRleHRdPVwicmVwb3J0VGV4dHMuY2FzZV9kZXRhaWxzLmF0dGFjaG1lbnRzLnRpdGxlXCJcbiAgICAgID48L2FwcC12Yy1sYWJlbD5cbiAgICAgIDxhcHAtZm9ybWF0LWFuZC1ldmlkZW5jZVxuICAgICAgICAodXBkYXRlRmlsZXMpPVwic2F2ZVN1cHBvcnRpbmdEb2N1bWVudCgkZXZlbnQpXCJcbiAgICAgICAgW21vZGVdPVwiJ3JlcG9ydEFDYXNlJ1wiXG4gICAgICAgIFtmb3JtYXRFdmlkYW5jZURhdGFdPVwicGF5bG9hZD8uc3VwcG9ydGluZ19kb2N1bWVudHNcIlxuICAgICAgPjwvYXBwLWZvcm1hdC1hbmQtZXZpZGVuY2U+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYXBwLWZpZWxkLWhvbGRlcj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XXCJcbiAgICBjbGFzcz1cImhlYWQtbGFiZWwgdngtZnMtMTAgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbWItNFwiXG4gID5cbiAgICBDQVNFIFJFU09MVVRJT04gREVUQUlMU1xuICA8L3NwYW4+XG4gIDxhcHAtY2FzZS1yZXNvbHV0aW9uLWRlYWRsaW5lXG4gICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1wiXG4gICAgW3BheWxvYWRdPVwiYWRkVG9DYXNlUGF5bG9hZFwiXG4gICAgW3VzZXJMaXN0XT1cInVzZXJMaXN0XCJcbiAgICBbZ3JvdXBMaXN0XT1cImdyb3VwTGlzdFwiXG4gICAgW2luaXRpYWxTZWxlY3Rpb25dPVwiYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3dcIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgKGZpZWxkQ2xpY2tlZCk9XCJvbkZpZWxkQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cInZhbGlkYXRpb25FcnJvclwiXG4gID48L2FwcC1jYXNlLXJlc29sdXRpb24tZGVhZGxpbmU+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJcbiAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XICYmXG4gICAgICBkaXNwbGF5QWRkaXRpb25hbE9wdGlvbnNcbiAgICBcIlxuICAgIGNsYXNzPVwiaGVhZC1sYWJlbCB2eC1mcy0xMCB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtbGgtNFwiXG4gID5cbiAgICBBRERJVElPTkFMIE9QVElPTlNcbiAgPC9zcGFuPlxuICA8IS0tIEV4Y2VwdGlvbiBUeXBlIC0tPlxuICA8YXBwLWZpZWxkLWhvbGRlclxuICAgICpuZ0lmPVwiXG4gICAgICBhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVYQ0VQVElPTl9UWVBFICYmXG4gICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1xuICAgIFwiXG4gICAgW3Njcm9sbFRvQm90dG9tXT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgICBbZGlzYWJsZWRdPVwiZmllbGRTZWxlY3Rvcj8uaW5jbHVkZXMoZmllbGRDbGlja2VkKVwiXG4gICAgW2NoZWNrZWRdPVwiYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmV4Y2VwdGlvbl90eXBlXCJcbiAgICBbaW1hZ2VdPVwiXG4gICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJ1xuICAgIFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyIGZpZWxkPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkV4Y2VwdGlvbiBUeXBlPC9sYWJlbD5cbiAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcbiAgICAgICAgW3ZhbHVlXT1cImV4Y2VwdGlvblR5cGUuREVTSUdOX0VYQ0VQVElPTlwiXG4gICAgICAgIG5hbWU9XCJleGNlcHRpb24tdHlwZVwiXG4gICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5leGNlcHRpb25fdHlwZSA9PT1cbiAgICAgICAgICBleGNlcHRpb25UeXBlLkRFU0lHTl9FWENFUFRJT05cbiAgICAgICAgXCJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFeGNlcHRpb24oZXhjZXB0aW9uVHlwZS5ERVNJR05fRVhDRVBUSU9OKVwiXG4gICAgICAgID5EZXNpZ24gRXhjZXB0aW9uXG4gICAgICA8L2FwcC1jcy1yYWRpbz5cbiAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcbiAgICAgICAgW3ZhbHVlXT1cImV4Y2VwdGlvblR5cGUuRUZGRUNUSVZFTkVTU19FWENFUFRJT05cIlxuICAgICAgICBuYW1lPVwiZXhjZXB0aW9uLXR5cGVcIlxuICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8uZXhjZXB0aW9uX3R5cGUgPT09XG4gICAgICAgICAgZXhjZXB0aW9uVHlwZS5FRkZFQ1RJVkVORVNTX0VYQ0VQVElPTlxuICAgICAgICBcIlxuICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV4Y2VwdGlvbihleGNlcHRpb25UeXBlLkVGRkVDVElWRU5FU1NfRVhDRVBUSU9OKVwiXG4gICAgICAgID5FZmZlY3RpdmVuZXNzIEV4Y2VwdGlvblxuICAgICAgPC9hcHAtY3MtcmFkaW8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYXBwLWZpZWxkLWhvbGRlcj5cblxuICA8IS0tIEFzc29jaWF0ZWQgUmlza3MgLS0+XG4gIDxkaXZcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1wiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkQ2xpY2tlZClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsZWZ0XCJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cImFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5hc3NvY2lhdGVkX3Jpc2tzPy50ZXh0XCJcbiAgICA+XG4gICAgICA8aW1nXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3NvY2lhdGVkLXJpc2tzLnN2Z1wiXG4gICAgICAgIGFsdD1cImltXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAhYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3M/LnRleHQ/LnRyaW0oKVxuICAgICAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgXCJcbiAgICAgIC8+XG5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3M/LnRleHQ/LnRyaW0oKVxuICAgICAgICAgICAgLmxlbmd0aFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Bc3NvY2lhdGVkIFJpc2tzIDwvbGFiZWw+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3M/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICAgID8ubGVuZ3RoID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IHVwbG9hZGluZ0ZpbGUgb2YgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3dcbiAgICAgICAgICAgICAgICA/LmFzc29jaWF0ZWRfcmlza3M/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3M/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICAgID8ubGVuZ3RoID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IGZpbGUgb2YgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3NcbiAgICAgICAgICAgICAgICA/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGU/Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b24+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdBU1NPQ0lBVEVEX1JJU0tTJylcIlxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHZjb21wbHktZWRpdG9yXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc29jaWF0ZWRfcmlza3MudGV4dFwiXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxuICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxuICAgICAgICAgICAgbGluazogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGU6IGZhbHNlLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdBc3NvY2lhdGVkIFJpc2tzJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnQVNTT0NJQVRFRF9SSVNLUycsICRldmVudClcIlxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIE92ZXJzZWVyIC0tPlxuICA8ZGl2XG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLk9WRVJTSUdIVFwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkQ2xpY2tlZClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsZWZ0XCJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cIlxuICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3ZlcnNpZ2h0cz8uY2NfaWRzPy5sZW5ndGggfHxcbiAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/Lm92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2lkcz8ubGVuZ3RoXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxpbWdcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmdcIlxuICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICEoXG4gICAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3ZlcnNpZ2h0cz8uY2NfaWRzPy5sZW5ndGggfHxcbiAgICAgICAgICAgIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5vdmVyc2lnaHRzPy5jY19mYWlsdXJlc19pZHNcbiAgICAgICAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgICApXG4gICAgICAgIFwiXG4gICAgICAvPlxuXG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3ZlcnNpZ2h0cz8uY2NfaWRzPy5sZW5ndGggfHxcbiAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfaWRzPy5sZW5ndGhcbiAgICAgICAgXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5PdmVyc2lnaHQ8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCIhc2VsZWN0ZWRPdmVyc2lnaHRzPy5jY19saXN0Py5sZW5ndGhcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdDQVNFX0NDJywgJ0NBU0VfQ0MnKVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldobyBzaG91bGQgaGF2ZSBvdmVyc2lnaHQgb2YgdGhpcyBjYXNlP1wiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwic2VsZWN0ZWRPdmVyc2lnaHRzPy5jY19saXN0Py5sZW5ndGhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnQ0FTRV9DQycsIHNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfbGlzdFswXSlcIlxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwic2VsZWN0ZWRPdmVyc2lnaHRzPy5jY19saXN0WzBdPy5lbXBsb3llZV9uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2xpc3RbMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwiQ0MucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfbGlzdD8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2xpc3Q/LnNsaWNlKDEpLmxlbmd0aCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0NBU0VfQ0MnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdDQVNFX0NDJywgJ0NBU0VfQ0MnKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICFzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3QgfHxcbiAgICAgICAgICAgIHNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfbGlzdD8ubGVuZ3RoID09PSAwXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0NBU0VfRkNDJywgJ0NBU0VfRkNDJylcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaG8gc2hvdWxkIGJlIG5vdGlmaWVkIGlmIHRoZSBjYXNlIGlzIG5vdCByZXNvbHZlZD9cIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3Q/Lmxlbmd0aFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgZGVsZXRlSXRlbSgnQ0FTRV9GQ0MnLCBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3RbMF0pXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3RbMF0/LmVtcGxveWVlX25hbWVcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfbGlzdFswXT8uZW1wbG95ZWVfbmFtZVxuICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgIChjbGljayk9XCJGQ0MucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfbGlzdD8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3Q/LnNsaWNlKDEpPy5sZW5ndGggfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdDQVNFX0ZDQydcIlxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0NBU0VfRkNDJywgJ0NBU0VfRkNDJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLXBvcG92ZXIgI0NDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgY2Mgb2Ygc2VsZWN0ZWRPdmVyc2lnaHRzPy5jY19saXN0IHwgc2xpY2UgOiAxO1xuICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdDQVNFX0NDJywgY2MpXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjYz8uZW1wbG95ZWVfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDxhcHAtcG9wb3ZlciAjRkNDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZmNjIG9mIHNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfbGlzdCB8IHNsaWNlIDogMTtcbiAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnQ0FTRV9GQ0MnLCBmY2MpXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBmY2M/LmVtcGxveWVlX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRXZpZGVuY2UgLS0+XG4gIDxkaXZcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVZJREVOQ0VcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZENsaWNrZWQpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwidHJ1ZVwiPlxuICAgICAgPHN2Z1xuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgID5cbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXZpZGVuY2U8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWZvcm1hdFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiXG4gICAgICAgICAgICA+RG8geW91IHdhbnQgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgY2FzZSB0byBiZVxuICAgICAgICAgICAgdXBsb2FkZWQ/PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgICBbbmFtZV09XCInZmlsZS1ldmlkZW5jZSdcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMVwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5ldmlkZW5jZV9lbmFibGVkXCJcbiAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSh0cnVlKVwiXG4gICAgICAgICAgICAgID5ZZXNcbiAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgICBbbmFtZV09XCInZmlsZS1ldmlkZW5jZSdcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMFwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiFhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8uZXZpZGVuY2VfZW5hYmxlZFwiXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXZpZGVuY2UoZmFsc2UpXCJcbiAgICAgICAgICAgICAgPk5vXG4gICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gUmVjb21tZW5kZWQgQWN0aW9ucyAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5SRUNPTU1FTkRFRF9BQ1RJT05TXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZmllbGRTZWxlY3Rvcj8uaW5jbHVkZXMoZmllbGRDbGlja2VkKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxlZnRcIlxuICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LnJlY29tbWVuZGF0aW9ucz8udGV4dFwiXG4gICAgPlxuICAgICAgPGltZ1xuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjb21tZW5kZWQtYWN0aW9uLnN2Z1wiXG4gICAgICAgIGFsdD1cImltXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAhKFxuICAgICAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LnJlY29tbWVuZGF0aW9ucz8udGV4dFxuICAgICAgICAgICAgfCBzcGFjZUJyZWFrZXJcbiAgICAgICAgICApPy5sZW5ndGhcbiAgICAgICAgXCJcbiAgICAgIC8+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIChcbiAgICAgICAgICAgIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5yZWNvbW1lbmRhdGlvbnM/LnRleHRcbiAgICAgICAgICAgIHwgc3BhY2VCcmVha2VyXG4gICAgICAgICAgKT8ubGVuZ3RoID4gMFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SZWNvbW1lbmRlZCBBY3Rpb25zPC9sYWJlbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ucmVjb21tZW5kYXRpb25zPy5hdHRhY2htZW50c1xuICAgICAgICAgICAgICA/Lmxlbmd0aCA+IDBcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxuICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCB1cGxvYWRpbmdGaWxlIG9mIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93XG4gICAgICAgICAgICAgICAgPy5yZWNvbW1lbmRhdGlvbnM/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5yZWNvbW1lbmRhdGlvbnM/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICAgID8ubGVuZ3RoID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IGZpbGUgb2YgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LnJlY29tbWVuZGF0aW9uc1xuICAgICAgICAgICAgICAgID8uYXR0YWNobWVudHNcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCAnUkVDT01NRU5ERURfQUNUSU9OUycpXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx2Y29tcGx5LWVkaXRvclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZWNvbW1lbmRhdGlvbnMudGV4dFwiXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxuICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxuICAgICAgICAgICAgbGluazogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGU6IHRydWUsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1JlY29tbWVuZGVkIGFjdGlvbnMnXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiXG4gICAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ucmVjb21tZW5kYXRpb25zPy50ZXh0Py50cmltKClcbiAgICAgICAgICAgICAgPy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgID8gcmVtb3ZlRXJyb3IoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICBcIlxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnUkVDT01NRU5ERURfQUNUSU9OUycsICRldmVudClcIlxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBSaXNrIENsYXNzaWZpY2F0aW9uIC0tPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLlJJU0tfQ0xBU1NJRklDQVRJT05cIlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxuICAgIGlkPVwicmlza19jbGFzc2lmaWNhdGlvblwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkQ2xpY2tlZClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJhZGRUb0Nhc2VQYXlsb2FkLnJpc2tfY2xhc3NcIj5cbiAgICAgIDxpbWdcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2Z1wiXG4gICAgICAgIGFsdD1cImltXCJcbiAgICAgICAgKm5nSWY9XCIhYWRkVG9DYXNlUGF5bG9hZC5yaXNrX2NsYXNzXCJcbiAgICAgIC8+XG5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICpuZ0lmPVwiYWRkVG9DYXNlUGF5bG9hZC5yaXNrX2NsYXNzXCJcbiAgICAgID5cbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SaXNrIENsYXNzaWZpY2F0aW9uPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNsYXNzaWZpY2F0aW9uXCI+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBjbGFzcz1cImxvd1wiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2xhc3Mgb2Ygcmlza0NsYXNzaWZpY2F0aW9uXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltjbGFzcy5jbGFzc11cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwiY2xhc3NpZmljYXRpb25cIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiY2xhc3MudmFsdWVcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJhZGRUb0Nhc2VQYXlsb2FkLnJpc2tfY2xhc3MgPT09IGNsYXNzLnZhbHVlXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRUb0Nhc2VQYXlsb2FkLnJpc2tfY2xhc3NcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPnt7IGNsYXNzLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImNoZWNrbG9hZGVyXCIgPjwvYXBwLWxvYWRlci1pbmxpbmU+XG48YXBwLWNoZWNrYm94LWxpc3RcbiAgW2NvbmZpZ109XCJvdmVyc2lnaHRfY29uZmlnXCJcbiAgW3R3b0NvbHVtbl09XCJ0cnVlXCJcbiAgW2l0ZW1zTGlzdF09XCJ1c2VyTGlzdFwiXG4gIFtzZWxlY3RlZEl0ZW1zXT1cInNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfbGlzdFwiXG4gIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxuICBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIlxuICBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0NBU0VfQ0MnXCJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0NBU0VfQ0MnKVwiXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdDQVNFX0NDJylcIlxuICBbbG9hZGVkXT1cImxvYWRlci51c2VyTGlzdExvYWRlclwiXG4+PC9hcHAtY2hlY2tib3gtbGlzdD5cblxuPGFwcC1jaGVja2JveC1saXN0XG4gIFtjb25maWddPVwib3ZlcnNpZ2h0X2NvbmZpZ1wiXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXG4gIFtpdGVtc0xpc3RdPVwidXNlckxpc3RcIlxuICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3RcIlxuICBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfZW1haWwnXCJcbiAgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCJcbiAgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdDQVNFX0ZDQydcIlxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnQ0FTRV9GQ0MnKVwiXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdDQVNFX0ZDQycpXCJcbiAgW2xvYWRlZF09XCJsb2FkZXIudXNlckxpc3RMb2FkZXJcIlxuPjwvYXBwLWNoZWNrYm94LWxpc3Q+XG5cbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmVcbiAgKm5nSWY9XCJzaG93U21pbGV5XCJcbiAgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiXG4gIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxuICAoYWN0aW9uKT1cInNtaWxleUFjdGlvbnMoJGV2ZW50KVwiXG4gIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCJcbj48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cbiJdfQ==
794
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9yZXBvcnQtYS1jYXNlL3dvcmtmbG93LWNhc2Uvd29ya2Zsb3ctY2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9yZXBvcnQtYS1jYXNlL3dvcmtmbG93LWNhc2Uvd29ya2Zsb3ctY2FzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBSzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVE1RCxNQUFNLE9BQU8scUJBQXFCO0lBMERoQyxZQUNVLGtCQUFzQyxFQUN0QyxZQUEwQixFQUMxQix1QkFBZ0QsRUFDaEQscUJBQTRDO1FBSDVDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCwwQkFBcUIsR0FBckIscUJBQXFCLENB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QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFERF9UT19DQVNFX1dPUktGTE9XLFxuICBBRERJVElPTkFMX09QVElPTl9TVEFUVVMsXG4gIEVYQ0VQVElPTl9UWVBFLFxuICBPVkVSU0lHSFRfU0VMRUNUT1JfQ09ORklHLFxuICBSRVBPUlRfQ0FTRSxcbiAgUkVQT1JUX0NBU0VfUEFZTE9BRCxcbiAgUklTS19DTEFTU0lGSUNBVElPTixcbiAgU0lERV9TRUxFQ1RPUl9FTEVNRU5UUyxcbiAgVkFMSURBVElPTl9FUlJPUixcbiAgV09SS0ZMT1dfREVUQUlMU19QQVJBTVMsXG4gIEFDVElPTl9CVVRUT05TLFxuICBTTUlMRVlfTUVTU0FHRSxcbiAgRklFTERfU0VMRUNUT1IsXG59IGZyb20gJy4uL2NvbnN0YW50cy9yZXBvcnQtY2FzZS5jb25zdGFudHMnO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jYXNlLXR5cGUtc2xpZGVyL2Nhc2UtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0QUNhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVwb3J0LWEtY2FzZS5zZXJ2aWNlJztcbmltcG9ydCB7IFVpS2l0U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3VpLWtpdC5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvblVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvb3JnYW5pemF0aW9uLXVzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hc3Nlc3N0cy5jb25zdGFudHMnO1xuaW1wb3J0IHsgUmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVwb3J0LWNhc2UtcGVybWlzc2lvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXdvcmtmbG93LWNhc2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LWNhc2UuY29tcG9uZW50Lmxlc3MnLCAnLi4vLi4vZm9ybXMubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Nhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlcG9ydFRleHRzID0gUkVQT1JUX0NBU0U7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgY2FzZVR5cGUgPSByZXBvcnQ7XG4gIGNhc2VUeXBlU2VsZWN0ZWQgPSByZXBvcnQuUkVQT1JUX0NBU0U7XG4gIHBheWxvYWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFJFUE9SVF9DQVNFX1BBWUxPQUQpKTtcbiAgcGFyYW1zID0gV09SS0ZMT1dfREVUQUlMU19QQVJBTVM7XG4gIHZhbGlkYXRpb25FcnJvciA9IFZBTElEQVRJT05fRVJST1I7XG4gIHJpc2tDbGFzc2lmaWNhdGlvbiA9IFJJU0tfQ0xBU1NJRklDQVRJT047XG4gIGFkZFRvQ2FzZVBheWxvYWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEFERF9UT19DQVNFX1dPUktGTE9XKSk7XG4gIGV4Y2VwdGlvblR5cGUgPSBFWENFUFRJT05fVFlQRTtcbiAgb3ZlcnNpZ2h0X2NvbmZpZyA9IE9WRVJTSUdIVF9TRUxFQ1RPUl9DT05GSUc7XG4gIHNtaWxleU1lc3NhZ2UgPSBTTUlMRVlfTUVTU0FHRTtcbiAgYWN0aW9uQnV0dG9uczogYW55W10gPSBBQ1RJT05fQlVUVE9OUztcbiAgc2lkZVNlbGVjdG9yRWxlbWVudHM6IGFueSA9IFNJREVfU0VMRUNUT1JfRUxFTUVOVFM7XG4gIGFkZGl0aW9uYWxPcHRpb25TdGF0dXM6IGFueSA9IEFERElUSU9OQUxfT1BUSU9OX1NUQVRVUztcbiAgZmllbGRTZWxlY3RvciA9IEZJRUxEX1NFTEVDVE9SO1xuICBjYXNlRGF0YTogYW55O1xuXG4gIGZpZWxkQ2xpY2tlZDogc3RyaW5nID0gJyc7XG4gIGFjdGl2ZUZpZWxkOiBzdHJpbmcgPSAnJztcbiAgYWN0aXZlU2VsZWN0b3I6IHN0cmluZyA9ICcnO1xuXG4gIHNob3dTbWlsZXk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2Nyb2xsVG9Cb3R0b206IGJvb2xlYW4gPSBmYWxzZTtcblxuICB3b3JrZmxvd0RldGFpbHNEYXRhOiBhbnk7XG4gIGdyb3VwTGlzdDogYW55W10gPSBbXTtcbiAgdXNlckxpc3Q6IGFueSA9IFtdO1xuICBzZWxlY3RlZE92ZXJzaWdodHM6IGFueSA9IHtcbiAgICBjY19saXN0OiBbXSxcbiAgICBjY19mYWlsdXJlc19saXN0OiBbXSxcbiAgfTtcbiAgbG9hZGVyID0ge1xuICAgIHVzZXJMaXN0TG9hZGVyOiBmYWxzZSxcbiAgICB0eXBlTG9hZGVyOiBmYWxzZSxcbiAgICBwcmlvcml0eUxvYWRlcjogZmFsc2UsXG4gICAgY2FzZUxvYWRlcjogZmFsc2UsXG4gICAgZ3JvdXBMaXN0TG9hZGVyOiBmYWxzZSxcbiAgICByZXBvcnRDYXNlTG9hZGVyOiBmYWxzZSxcbiAgICBwZXJtaXNzaW9uTG9hZGVyOiBmYWxzZSxcbiAgfTtcblxuICBASW5wdXQoKSBvcGVuZWRGcm9tOiBhbnk7XG4gIEBJbnB1dCgpIHNvdXJjZTogYW55O1xuICBASW5wdXQoKSBjYXNlSWQ6IGFueTtcbiAgQElucHV0KCkgbW9kZTogYW55O1xuICBASW5wdXQoKSB3b3JrZmxvd1R5cGU6IGFueTtcbiAgQElucHV0KCkgcmVzcG9uc2liaWxpdHlEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGFzc2Vzc21lbnRRdWVzdGlvbjogYW55O1xuICBASW5wdXQoKSBjYXNlVHlwZVBlcm1pc3Npb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBvcHVsYXRlT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2FzZVJlcG9ydGVkQnkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB1c2VyTGlzdEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlcG9ydEFDYXNlU2VydmljZTogUmVwb3J0QUNhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25Vc2VyU2VydmljZTogT3JnYW5pemF0aW9uVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXNwb25zaWJpbGl0eVNlcnZpY2U6IFJlc3BvbnNpYmlsaXR5U2VydmljZVxuICApIHtcbiAgICB0aGlzLnBlcm1pc3Npb25Mb2FkZXIoKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICBcbiAgICB0aGlzLmdldFVzZXJMaXN0KCk7XG4gICAgdGhpcy5nZXRHcm91cExpc3QoKTtcblxuICAgIGlmICh0aGlzLndvcmtmbG93VHlwZSA9PT0gJ0FDVFcnKSB7XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMgPSB7IC4uLkFERElUSU9OQUxfT1BUSU9OX1NUQVRVUyB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgIHRoaXMuZ2V0Q2FzZURldGFpbHMoKTtcbiAgICB9XG4gIFxuICB9XG5cbiAgcGVybWlzc2lvbkxvYWRlcigpIHtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5jYXNlVHlwZUxvYWRlci5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgdGhpcy5sb2FkZXIucGVybWlzc2lvbkxvYWRlciA9IHJlcztcbiAgICB9KTtcbiAgfVxuXG4gIGdldFVzZXJMaXN0KCkge1xuICAgIHRoaXMubG9hZGVyLnVzZXJMaXN0TG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLm9yZ2FuaXphdGlvblVzZXJTZXJ2aWNlLmdldE9yZ2FuaXphdGlvblVzZXJzKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIHRoaXMudXNlckxpc3QgPSByZXM7XG4gICAgICB0aGlzLnVzZXJMaXN0RW1pdHRlci5lbWl0KHJlcyk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubW9kZSA9PT0gJ0VESVQnICYmXG4gICAgICAgIHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9PT0gcmVwb3J0LkFERF9DQVNFX1RPX1dPUktGTE9XXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZU92ZXJzaWdodHMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZGVyLnVzZXJMaXN0TG9hZGVyID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBnZXRHcm91cExpc3QoKSB7XG4gICAgdGhpcy5sb2FkZXIuZ3JvdXBMaXN0TG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5U2VydmljZS5nZXRPcmdhbml6YXRpb25Hcm91cHMoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgdGhpcy5ncm91cExpc3QgPSByZXM7XG4gICAgICB0aGlzLmxvYWRlci5ncm91cExpc3RMb2FkZXIgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldENhc2VEZXRhaWxzKCkge1xuICAgIHRoaXMubG9hZGVyLmNhc2VMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlXG4gICAgICAuZ2V0Q2FzZURldGFpbHModGhpcy5jYXNlSWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhc2VSZXBvcnRlZEJ5LmVtaXQocmVzPy5kYXRhPy5jcmVhdGVkX2J5KTtcbiAgICAgICAgdGhpcy5zZXRDYXNlRGV0YWlscyhyZXMpO1xuICAgICAgfSk7XG4gIH1cblxuICBzZXRDYXNlRGV0YWlscyhyZXM6IGFueSkge1xuICAgIGlmIChyZXM/LmRhdGE/LmFkZGVkX3RvX3dvcmtmbG93IHx8IHRoaXMud29ya2Zsb3dUeXBlID09PSAnQUNUVycpIHtcbiAgICAgIHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9IHJlcG9ydC5BRERfQ0FTRV9UT19XT1JLRkxPVztcbiAgICAgIHRoaXMucG9wdWxhdGVBZGRDYXNlUGF5bG9hZChyZXM/LmRhdGEpO1xuICAgICAgdGhpcy5nZXRXb3JrZmxvd0RldGFpbHMocmVzPy5kYXRhKTtcbiAgICBcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXNlVHlwZVNlbGVjdGVkID0gcmVwb3J0LlJFUE9SVF9DQVNFO1xuICAgICAgdGhpcy5wb3B1bGF0ZVJlcG9ydENhc2VQYXlsb2FkKHJlcz8uZGF0YSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkZXIuY2FzZUxvYWRlciA9IGZhbHNlO1xuICB9XG5cbiAgLy8gZWRpdCBjYXNlXG5cbiAgZ2V0V29ya2Zsb3dEZXRhaWxzKGRhdGE6IGFueSkge1xuICAgIHRoaXMucGFyYW1zLmNhc2VfdHlwZS5pZCA9IGRhdGE/LmNhc2VfdHlwZT8uaWQ7XG4gICAgdGhpcy5wYXJhbXMucHJpb3JpdHkuaWQgPSBkYXRhPy5wcmlvcml0eT8uaWQ7XG4gICAgdGhpcy5wYXJhbXMucmNfZGV0YWlscy5pZCA9XG4gICAgICBkYXRhPy5yY19kZXRhaWxzPy5tYWluX3JjX2lkIHx8IGRhdGE/LnJjX2RldGFpbHM/Lmlkcz8uWzBdO1xuICAgIHRoaXMucGFyYW1zLmNhdGVnb3J5LmlkID0gZGF0YT8uY2F0ZWdvcnk/Lmlkc1swXTtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5nZXRXb3JrZmxvd0RldGFpbHModGhpcy5wYXJhbXMpO1xuICB9XG5cbiAgcG9wdWxhdGVSZXBvcnRDYXNlUGF5bG9hZChkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnBheWxvYWQubmFtZSA9IGRhdGE/Lm5hbWU7XG4gICAgdGhpcy5wYXlsb2FkLmRlc2NyaXB0aW9uID0gZGF0YT8uZGVzY3JpcHRpb247XG4gICAgdGhpcy5wYXlsb2FkLnJlcG9ydGVkX2RhdGUgPSBuZXcgRGF0ZShkYXRhLnJlcG9ydGVkX2RhdGUpO1xuICAgIHRoaXMucGF5bG9hZC5wcmlvcml0eSA9IGRhdGE/LnByaW9yaXR5O1xuICAgIHRoaXMucGF5bG9hZC5jYXNlX3R5cGUgPSBkYXRhPy5jYXNlX3R5cGU7XG4gICAgdGhpcy5wYXlsb2FkLnJjX2RldGFpbHMgPSBkYXRhPy5yY19kZXRhaWxzO1xuICAgIHRoaXMucGF5bG9hZC5yZWNlaXZlX3VwZGF0ZXMgPSBkYXRhPy5yZWNlaXZlX3VwZGF0ZXM7XG4gICAgdGhpcy5wYXlsb2FkLnN1cHBvcnRpbmdfZG9jdW1lbnRzID0gZGF0YT8uc3VwcG9ydGluZ19kb2N1bWVudHM7XG4gICAgdGhpcy5wYXlsb2FkLmNhdGVnb3J5ID0gZGF0YT8uY2F0ZWdvcnk7XG4gIH1cblxuICBwb3B1bGF0ZUFkZENhc2VQYXlsb2FkKGRhdGE6IGFueSkge1xuICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLndvcmtmbG93Q29kZS5uZXh0KCdBQ1cnKTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQubmFtZSA9IGRhdGE/Lm5hbWU7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmRlc2NyaXB0aW9uID0gZGF0YT8uZGVzY3JpcHRpb247XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLnByaW9yaXR5ID0gZGF0YT8ucHJpb3JpdHk7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VfdHlwZSA9IGRhdGE/LmNhc2VfdHlwZTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQucmNfZGV0YWlscyA9IGRhdGE/LnJjX2RldGFpbHM7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLnJpc2tfY2xhc3MgPSBkYXRhPy5yaXNrX2NsYXNzO1xuICAgIGlmICh0aGlzLndvcmtmbG93VHlwZSA9PT0gJ0FDVFcnKSB7XG4gICAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeSA9IGRhdGE/LmNhdGVnb3J5O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2F0ZWdvcnkgPSBkYXRhPy5jYXRlZ29yeTtcbiAgICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5hZGRpdGlvbmFsX2NhdGVnb3J5ID0gZGF0YT8uYWRkaXRpb25hbF9jYXRlZ29yeTtcbiAgICB9XG4gICAgaWYgKGRhdGE/LmNhc2VUb1dvcmtmbG93KSB7XG4gICAgICB0aGlzLnBvcHVsYXRlQWRkaXRpb25hbEZpZWxkcyhkYXRhPy5jYXNlVG9Xb3JrZmxvdyk7XG4gICAgICB0aGlzLnBvcHVsYXRlUmVzb2x1dGlvbkRlYWRsaW5lKGRhdGE/LmNhc2VUb1dvcmtmbG93KTtcbiAgICAgIHRoaXMucG9wdWxhdGVVc2VyRGV0YWlscyhkYXRhPy5jYXNlVG9Xb3JrZmxvdyk7XG4gICAgICB0aGlzLnNldE9wdGlvbmFsRmllbGQoZGF0YT8uY2FzZVRvV29ya2Zsb3csIGRhdGE/LnJpc2tfY2xhc3MpO1xuICAgIH1cbiAgfVxuXG4gIHBvcHVsYXRlVXNlckRldGFpbHMoZGF0YTogYW55KSB7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc2lnbmVlc19ncm91cCA9XG4gICAgICBkYXRhPy5hc3NpZ25lZXNfZ3JvdXA7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm93bmVycyA9IGRhdGE/Lm93bmVycztcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cuYXNzaWduZWVzID0gZGF0YT8uYXNzaWduZWVzO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy53b3JrZmxvd19pZCA9IGRhdGE/LndvcmtmbG93X2lkO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5hc3NpZ25lZXNfZ3JvdXAgPVxuICAgICAgZGF0YT8uYXNzaWduZWVzX2dyb3VwO1xuICB9XG5cbiAgcG9wdWxhdGVSZXNvbHV0aW9uRGVhZGxpbmUoZGF0YTogYW55KSB7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlc29sdXRpb25fZGVhZGxpbmUgPVxuICAgICAgZGF0YT8ucmVzb2x1dGlvbl9kZWFkbGluZTtcbiAgfVxuXG4gIHBvcHVsYXRlQWRkaXRpb25hbEZpZWxkcyhkYXRhOiBhbnkpIHtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cuZXhjZXB0aW9uX3R5cGUgPSBkYXRhPy5leGNlcHRpb25fdHlwZTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cuYXNzb2NpYXRlZF9yaXNrcyA9XG4gICAgICBkYXRhPy5hc3NvY2lhdGVkX3Jpc2tzO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5ldmlkZW5jZV9lbmFibGVkID1cbiAgICAgIGRhdGE/LmV2aWRlbmNlX2VuYWJsZWQ7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlY29tbWVuZGF0aW9ucyA9XG4gICAgICBkYXRhPy5yZWNvbW1lbmRhdGlvbnM7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm92ZXJzaWdodHMuY2NfaWRzID1cbiAgICAgIGRhdGE/Lm92ZXJzaWdodHM/LmNjX2lkcztcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cub3ZlcnNpZ2h0cy5jY19mYWlsdXJlc19pZHMgPVxuICAgICAgZGF0YT8ub3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfaWRzO1xuICAgIHRoaXMucG9wdWxhdGVPdmVyc2lnaHRzKCk7XG4gIH1cblxuICBwb3B1bGF0ZU92ZXJzaWdodHMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfbGlzdCA9IHRoaXMudXNlckxpc3Q/LmZpbHRlcigodXNlcjogYW55KSA9PlxuICAgICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm92ZXJzaWdodHMuY2NfaWRzPy5pbmNsdWRlcyhcbiAgICAgICAgdXNlcj8uX2lkIGFzIG5ldmVyXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkT3ZlcnNpZ2h0cy5jY19mYWlsdXJlc19saXN0ID0gdGhpcy51c2VyTGlzdD8uZmlsdGVyKFxuICAgICAgKHVzZXI6IGFueSkgPT5cbiAgICAgICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm92ZXJzaWdodHMuY2NfZmFpbHVyZXNfaWRzPy5pbmNsdWRlcyhcbiAgICAgICAgICB1c2VyPy5faWQgYXMgbmV2ZXJcbiAgICAgICAgKVxuICAgICk7XG4gIH1cblxuICBzZXRPcHRpb25hbEZpZWxkKGRhdGE6IGFueSwgcmlza0NsYXNzOiBudW1iZXIpIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMgPSB7XG4gICAgICBFWENFUFRJT05fVFlQRTogZGF0YT8uZXhjZXB0aW9uX3R5cGUgPyB0cnVlIDogZmFsc2UsXG4gICAgICBFVklERU5DRTogZGF0YT8uZXZpZGVuY2VfZW5hYmxlZCA/IHRydWUgOiBmYWxzZSxcbiAgICAgIEFTU09DSUFURURfUklTS1M6IGRhdGE/LmFzc29jaWF0ZWRfcmlza3M/LnRleHQ/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSxcbiAgICAgIE9WRVJTSUdIVDpcbiAgICAgICAgZGF0YT8ub3ZlcnNpZ2h0cz8uY2NfaWRzPy5sZW5ndGggPiAwIHx8XG4gICAgICAgIGRhdGE/Lm92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2lkcz8ubGVuZ3RoID4gMFxuICAgICAgICAgID8gdHJ1ZVxuICAgICAgICAgIDogZmFsc2UsXG4gICAgICBSRUNPTU1FTkRFRF9BQ1RJT05TOlxuICAgICAgICBkYXRhPy5yZWNvbW1lbmRhdGlvbnM/LnRleHQ/Lmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2UsXG4gICAgICBSSVNLX0NMQVNTSUZJQ0FUSU9OOiByaXNrQ2xhc3MgPyB0cnVlIDogZmFsc2UsXG4gICAgfTtcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcbiAgfVxuXG4gIHBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKSB7XG4gICAgY29uc3QgYWN0aXZhdGVkT3B0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cykpIHtcbiAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNba2V5XSA9PT0gdHJ1ZSkge1xuICAgICAgICBhY3RpdmF0ZWRPcHRpb25zLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wb3B1bGF0ZU9wdGlvbi5lbWl0KGFjdGl2YXRlZE9wdGlvbnMpO1xuICB9XG5cbiAgLy8gQ2hhbmdlIGluIGNhc2UgdHlwZVxuICBvbkNhc2VUeXBlQ2hhbmdlKGNhc2VUeXBlOiByZXBvcnQpIHtcbiAgICB0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPSBjYXNlVHlwZTtcbiAgICBpZiAoY2FzZVR5cGUgPT09IHJlcG9ydC5SRVBPUlRfQ0FTRSkge1xuICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLndvcmtmbG93Q29kZS5uZXh0KCdSQUMnKTtcbiAgICB9IGVsc2UgaWYgKGNhc2VUeXBlID09PSByZXBvcnQuQUREX0NBU0VfVE9fV09SS0ZMT1cpIHtcbiAgICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS53b3JrZmxvd0NvZGUubmV4dCgnQUNXJyk7XG4gICAgfVxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cyA9IHsgLi4uQURESVRJT05BTF9PUFRJT05fU1RBVFVTIH07XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UucmVzZXRNb3JlT3B0aW9uLm5leHQodHJ1ZSk7XG4gIH1cblxuICBzYXZlU3VwcG9ydGluZ0RvY3VtZW50KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBkb2N1bWVudCA9IGV2ZW50Py5maWxlcztcbiAgICB0aGlzLnBheWxvYWQuc3VwcG9ydGluZ19kb2N1bWVudHMgPSBbLi4uZG9jdW1lbnRdIGFzIG5ldmVyO1xuICB9XG5cbiAgb25DYXRlZ29yeUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5wYXJhbXMuY2F0ZWdvcnkuaWQgPSBldmVudFswXTtcbiAgICBpZiAodGhpcy5jYXNlVHlwZVNlbGVjdGVkID09PSByZXBvcnQuQUREX0NBU0VfVE9fV09SS0ZMT1cpIHtcbiAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLmdldFdvcmtmbG93RGV0YWlscyh0aGlzLnBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgb25Qcmlvcml0eUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5wYXJhbXMucHJpb3JpdHkuaWQgPSBldmVudDtcbiAgICBpZiAodGhpcy5jYXNlVHlwZVNlbGVjdGVkID09PSByZXBvcnQuQUREX0NBU0VfVE9fV09SS0ZMT1cpIHtcbiAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLmdldFdvcmtmbG93RGV0YWlscyh0aGlzLnBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgb25SY0NoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5wYXJhbXMucmNfZGV0YWlscy5pZCA9IGV2ZW50O1xuICAgIGlmICh0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPT09IHJlcG9ydC5BRERfQ0FTRV9UT19XT1JLRkxPVykge1xuICAgICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuZ2V0V29ya2Zsb3dEZXRhaWxzKHRoaXMucGFyYW1zKTtcbiAgICB9XG4gIH1cblxuICBvbkNhc2VUeXBlRHJvcGRvd25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucGFyYW1zLmNhc2VfdHlwZS5pZCA9IGV2ZW50O1xuICAgIGlmICh0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPT09IHJlcG9ydC5BRERfQ0FTRV9UT19XT1JLRkxPVykge1xuICAgICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuZ2V0V29ya2Zsb3dEZXRhaWxzKHRoaXMucGFyYW1zKTtcbiAgICB9XG4gIH1cblxuICByZXBvcnRDYXNlKCkge1xuICAgIGlmICh0aGlzLm9wZW5lZEZyb20gPT09ICdDT01QTElBTkNFX1dPUktST09NJyB8fCB0aGlzLm9wZW5lZEZyb20gPT09ICdBU1NFU1NNRU5UJykge1xuICAgICAgdGhpcy5maWx0ZXJSZXNwb25zaWJpbGl0aWVzKHRoaXMucGF5bG9hZCk7XG4gICAgICB0aGlzLmZpbHRlckFzc2Vzc21lbnQodGhpcy5wYXlsb2FkKTtcbiAgICB9XG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuY2hlY2tWYWxpZGF0aW9uKHRoaXMucGF5bG9hZCk7XG4gICAgaWYgKCFpc1ZhbGlkKSByZXR1cm47XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNhc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IHRydWU7XG4gICAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5yZXBvcnRBQ2FzZSh0aGlzLnBheWxvYWQpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VEYXRhID0geyAuLi5yZXM/LmRhdGEsIHNvdXJjZTogdGhpcy5zb3VyY2UgfTtcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xuICAgICAgICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsICdlcnInKTtcbiAgICAgICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDYXNlKCkge1xuICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLnVwZGF0ZUNhc2UodGhpcy5wYXlsb2FkLCB0aGlzLmNhc2VJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhc2VEYXRhID0geyAuLi5yZXM/LmRhdGEsIHNvdXJjZTogdGhpcy5zb3VyY2UgfTtcbiAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2hlY2sgdmFsaWRhdGlvbiBmb3IgcmVwb3J0IGEgY2FzZVxuICBjaGVja1ZhbGlkYXRpb24ocGF5bG9hZDogYW55KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudmFsaWRhdGVOYW1lKHBheWxvYWQubmFtZSkgJiZcbiAgICAgIHRoaXMudmFsaWRhdGVEZXNjcmlwdGlvbihwYXlsb2FkLmRlc2NyaXB0aW9uLnRleHQpICYmXG4gICAgICB0aGlzLnZhbGlkYXRlQ2FzZVR5cGUocGF5bG9hZC5jYXNlX3R5cGUuaWQpICYmXG4gICAgICB0aGlzLnZhbGlkYXRlUmVwb3J0RGF0ZShwYXlsb2FkLnJlcG9ydGVkX2RhdGUpXG4gICAgKTtcbiAgfVxuXG4gIGNoZWNrQWRkVG9DYXNlVmFsaWRhdGlvbihwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy52YWxpZGF0ZU5hbWUocGF5bG9hZD8ubmFtZSkgJiZcbiAgICAgIHRoaXMudmFsaWRhdGVEZXNjcmlwdGlvbihwYXlsb2FkPy5kZXNjcmlwdGlvbj8udGV4dCkgJiZcbiAgICAgIHRoaXMudmFsaWRhdGVSYyhwYXlsb2FkKSAmJlxuICAgICAgdGhpcy52YWxpZGF0ZUNhc2VUeXBlKHBheWxvYWQ/LmNhc2VfdHlwZT8uaWQpICYmXG4gICAgICB0aGlzLnZhbGlkYXRlQ2FzZVByaW9yaXR5KHBheWxvYWQ/LnByaW9yaXR5Py5pZCkgJiZcbiAgICAgIHRoaXMudmFsaWRhdGVDYXNlT3duZXIocGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/Lm93bmVycykgJiZcbiAgICAgICh0aGlzLnZhbGlkYXRlQ2FzZUFzc2lnbmVlKHBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5hc3NpZ25lZXMpIHx8XG4gICAgICAgIHRoaXMudmFsaWRhdGVDYXNlQXNzaWduZWVHcm91cChcbiAgICAgICAgICBwYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8uYXNzaWduZWVzX2dyb3VwXG4gICAgICAgICkpICYmXG4gICAgICB0aGlzLnZhbGlkYXRlQ2FzZVJlc29sdXRpb25EZWFkbGluZShcbiAgICAgICAgcGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LnJlc29sdXRpb25fZGVhZGxpbmVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgdmFsaWRhdGVOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IubmFtZS5pc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLm5hbWUubWVzc2FnZSA9IHRoaXMucmVwb3J0VGV4dHMuZXJyb3JNZXNzYWdlLm5hbWU7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVEZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gICAgaWYgKCFkZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IuZGVzY3JpcHRpb24uaXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5kZXNjcmlwdGlvbi5tZXNzYWdlID1cbiAgICAgICAgdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UuZGVzY3JpcHRpb247XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVDYXNlVHlwZShjYXNlVHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKCFjYXNlVHlwZSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IuY2FzZVR5cGUuaXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlVHlwZS5tZXNzYWdlID1cbiAgICAgICAgdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UuY2FzZVR5cGU7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVSZXBvcnREYXRlKHJlcG9ydERhdGU6IHN0cmluZykge1xuICAgIGlmICghcmVwb3J0RGF0ZSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IucmVwb3J0RGF0ZS5pc0Vycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnJlcG9ydERhdGUubWVzc2FnZSA9XG4gICAgICAgIHRoaXMucmVwb3J0VGV4dHMuZXJyb3JNZXNzYWdlLnJlcG9ydERhdGU7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVDYXNlUHJpb3JpdHkocHJpb3JpdHk6IHN0cmluZykge1xuICAgIGlmICghcHJpb3JpdHkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnByaW9yaXR5LmlzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IucHJpb3JpdHkubWVzc2FnZSA9XG4gICAgICAgIHRoaXMucmVwb3J0VGV4dHMuZXJyb3JNZXNzYWdlLnByaW9yaXR5O1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhbGlkYXRlUmMocGF5bG9hZDogYW55KSB7XG4gICAgaWYgKCFwYXlsb2FkPy5yY19kZXRhaWxzPy5pZHM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IucmMuaXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5yYy5tZXNzYWdlID0gdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UucmM7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHBheWxvYWQ/LnJjX2RldGFpbHM/Lmlkcz8ubGVuZ3RoID4gMSAmJlxuICAgICAgIXBheWxvYWQ/LnJjX2RldGFpbHM/LnNlcGFyYXRlX3JjX2Nhc2VzICYmXG4gICAgICAhcGF5bG9hZD8ucmNfZGV0YWlscz8ubWFpbl9yY19pZFxuICAgICkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IubWFpblJjLmlzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IubWFpblJjLm1lc3NhZ2UgPVxuICAgICAgICB0aGlzLnJlcG9ydFRleHRzLmVycm9yTWVzc2FnZS5tYWluUmM7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVDYXNlT3duZXIob3duZXJzOiBhbnkpIHtcbiAgICBpZiAoIW93bmVycz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlT3duZXIuaXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlT3duZXIubWVzc2FnZSA9XG4gICAgICAgIHRoaXMucmVwb3J0VGV4dHMuZXJyb3JNZXNzYWdlLmNhc2VPd25lcjtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZUNhc2VBc3NpZ25lZShhc3NpZ25lZXM6IGFueSkge1xuICAgIGlmICghYXNzaWduZWVzPy5sZW5ndGgpIHtcbiAgICAgIGlmICghdGhpcy5hZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8uYXNzaWduZWVzX2dyb3VwPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IuY2FzZUFzc2lnbmVlLmlzRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlQXNzaWduZWUubWVzc2FnZSA9XG4gICAgICAgICAgdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UuY2FzZUFzc2lnbmVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVDYXNlQXNzaWduZWVHcm91cChhc3NpZ25lZXNfZ3JvdXA6IGFueSkge1xuICAgIGlmICghYXNzaWduZWVzX2dyb3VwPy5sZW5ndGgpIHtcbiAgICAgIGlmICghdGhpcy5hZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8uYXNzaWduZWVzPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IuY2FzZUFzc2lnbmVlLmlzRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlQXNzaWduZWUubWVzc2FnZSA9XG4gICAgICAgICAgdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UuY2FzZUFzc2lnbmVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVDYXNlUmVzb2x1dGlvbkRlYWRsaW5lKHJlc29sdXRpb25EZWFkbGluZTogYW55KSB7XG4gICAgaWYgKCFyZXNvbHV0aW9uRGVhZGxpbmU/LmR1ZV9kYXRlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5jYXNlUmVzb2x1dGlvbkRlYWRsaW5lLmlzRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3IuY2FzZVJlc29sdXRpb25EZWFkbGluZS5tZXNzYWdlID1cbiAgICAgICAgdGhpcy5yZXBvcnRUZXh0cy5lcnJvck1lc3NhZ2UuY2FzZVJlc29sdXRpb25EZWFkbGluZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBmaWVsZCBzZWxlY3RvciBhbmQgZGUtc2VsZWN0b3JcbiAgb25GaWVsZENsaWNrZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmllbGRDbGlja2VkID0gZXZlbnQ7XG4gIH1cblxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2V2ZW50LmNvZGVdID0gZXZlbnQuY2hlY2tlZDtcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcbiAgfVxuXG4gIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoZmllbGQ6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5hY3RpdmVGaWVsZCA9IGZpZWxkO1xuICAgIHRoaXMuYWN0aXZlU2VsZWN0b3IgPSB0eXBlO1xuICAgIHRoaXMuZmllbGRDbGlja2VkID0gZmllbGQ7XG4gIH1cblxuICBmaWVsZERlc2VsZWN0b3IodHlwZTogYW55KSB7XG4gICAgdGhpcy5hY3RpdmVTZWxlY3RvciA9ICcnO1xuICAgIHRoaXMuYWN0aXZlRmllbGQgPSAnJztcbiAgICB0aGlzLmZpZWxkQ2xpY2tlZCA9ICcnO1xuICB9XG5cbiAgLy8gQWRkIENhc2UgdG8gd29ya2Zsb3dcbiAgc2V0RXhjZXB0aW9uKHR5cGU6IGFueSkge1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5leGNlcHRpb25fdHlwZSA9IHR5cGU7XG4gIH1cblxuICBjaGVja0Rlc2NyaXB0aW9uKCkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8uYXNzb2NpYXRlZF9yaXNrcz8udGV4dCxcbiAgICAgICd0ZXh0J1xuICAgICk7XG4gIH1cblxuICBzZWxlY3RGaWxlKHR5cGU6IHN0cmluZywgZmlsZXM6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcbiAgICAgICAgICAvLyB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuYXNzb2NpYXRlZF9yaXNrcy5hdHRhY2htZW50cy5wdXNoKG5hbWUpO1xuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGxvYWRGaWxlKGZpbGU6IGFueSwgdHlwZTogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2coZmlsZSwgdHlwZSwgJ2ZpbGUnKTtcbiAgfVxuXG4gIHNldEV2aWRlbmNlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cuZXZpZGVuY2VfZW5hYmxlZCA9IHZhbHVlO1xuICB9XG5cbiAgZGVsZXRlSXRlbSh0eXBlOiBhbnksIGVsZW1lbnQ6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnQ0FTRV9DQyc6IHtcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfbGlzdD8uZmluZEluZGV4KFxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0/LmVtcGxveWVlX2VtYWlsID09PSBlbGVtZW50Py5lbXBsb3llZV9lbWFpbFxuICAgICAgICApO1xuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2xpc3Q/LnNwbGljZShpdGVtSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ0FTRV9GQ0MnOiB7XG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2ZhaWx1cmVzX2xpc3Q/LmZpbmRJbmRleChcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtPy5lbXBsb3llZV9lbWFpbCA9PT0gZWxlbWVudD8uZW1wbG95ZWVfZW1haWxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkT3ZlcnNpZ2h0cy5jY19mYWlsdXJlc19saXN0Py5zcGxpY2UoaXRlbUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWxlY3RvckFjdGlvbihldnQ6IGFueSwgdHlwZTogYW55KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdDQVNFX0NDJzoge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3ZlcnNpZ2h0cy5jY19saXN0ID0gZXZ0O1xuICAgICAgICB0aGlzLmdldENjVXNlcnMoZXZ0LCAnY2MnKTtcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ0FTRV9GQ0MnOiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2ZhaWx1cmVzX2xpc3QgPSBldnQ7XG4gICAgICAgIHRoaXMuZ2V0Q2NVc2VycyhldnQsICdmY2MnKTtcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJyc7XG4gICAgdGhpcy5maWVsZENsaWNrZWQgPSAnJztcbiAgfVxuXG4gIGdldENjVXNlcnMoZXZ0OiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IHVzZXJMaXN0ID0gdGhpcy51c2VyTGlzdD8uZmlsdGVyKCh1c2VyOiBhbnkpID0+XG4gICAgICBldnQ/LmluY2x1ZGVzKHVzZXI/LmVtcGxveWVlX2VtYWlsKVxuICAgICk7XG4gICAgaWYgKHR5cGUgPT09ICdjYycpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2xpc3QgPSB1c2VyTGlzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE92ZXJzaWdodHMuY2NfZmFpbHVyZXNfbGlzdCA9IHVzZXJMaXN0O1xuICAgIH1cbiAgfVxuXG4gIGZpbHRlck92ZXJzaWdodHMoKSB7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm92ZXJzaWdodHMuY2NfaWRzID1cbiAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2xpc3RcbiAgICAgICAgPy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbT8uX2lkKVxuICAgICAgICA/LmZpbHRlcihCb29sZWFuKSBhcyBhbnk7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm92ZXJzaWdodHMuY2NfZmFpbHVyZXNfaWRzID1cbiAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2ZhaWx1cmVzX2xpc3RcbiAgICAgICAgPy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbT8uX2lkKVxuICAgICAgICA/LmZpbHRlcihCb29sZWFuKSBhcyBhbnk7XG4gIH1cblxuICBmaWx0ZXJSZXNwb25zaWJpbGl0aWVzKHBheWxvYWQ6IGFueSkge1xuICAgIGlmICh0aGlzLm9wZW5lZEZyb20gPT09ICdDT01QTElBTkNFX1dPUktST09NJykge1xuICAgICAgdGhpcy5wYXlsb2FkLnNvdXJjZSA9IHRoaXMuc291cmNlO1xuICAgICAgcGF5bG9hZC5yZXNwb25zaWJpbGl0aWVzX0xpbmtlZCA9IHBheWxvYWQ/LnJlc3BvbnNpYmlsaXRpZXNfTGlua2VkPy5tYXAoXG4gICAgICAgIChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbT8uRW5jcnlwdGVkUmVwb3J0SWQ7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBwYXlsb2FkLnJlc3BvbnNpYmlsaXRpZXNfTGlua2VkLnB1c2goXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU9iamVjdElkXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGZpbHRlckFzc2Vzc21lbnQocGF5bG9hZDogYW55KSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5vcGVuZWRGcm9tID09PSAnQVNTRVNTTUVOVCcgfHxcbiAgICAgIHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nXG4gICAgKSB7XG4gICAgICB0aGlzLnBheWxvYWQuc291cmNlID0gdGhpcy5zb3VyY2U7XG4gICAgICBwYXlsb2FkLmxpbmtlZF9hc3Nlc3NtZW50X2lzc3Vlcy5yZXNwX2lkID1cbiAgICAgICB0aGlzLnNvdXJjZSA/ICB0aGlzLnJlc3BvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlPYmplY3RJZCA6ICcnO1xuICAgICAgcGF5bG9hZC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMuZHVlX2RhdGVfaWQgPVxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbj8uZHVlRGF0ZUlkO1xuICAgICAgcGF5bG9hZC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMuYXNzZXNzbWVudF9pZCA9XG4gICAgICAgIHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uPy5hc3Nlc3NtZW50SWQ7XG4gICAgICBwYXlsb2FkLmxpbmtlZF9hc3Nlc3NtZW50X2lzc3Vlcy5xdWVzdGlvbl9pZCA9XG4gICAgICAgIHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uPy5xdWVzdGlvbklkO1xuICAgICAgcGF5bG9hZC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMuYXVkaXRlZV9pZCA9XG4gICAgICAgIHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uPy5hdWRpdGVlSWQ7XG4gICAgICBwYXlsb2FkLnJlc3BvbnNpYmlsaXRpZXNfTGlua2VkID0gW1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlPYmplY3RJZCxcbiAgICAgIF07XG4gICAgICBwYXlsb2FkLnNvdXJjZSA9IHRoaXMuc291cmNlO1xuICAgIH1cbiAgfVxuXG4gIGFkZFRvQ2FzZSgpIHtcbiAgICB0aGlzLmZpbHRlck92ZXJzaWdodHMoKTtcbiAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5jaGVja0FkZFRvQ2FzZVZhbGlkYXRpb24odGhpcy5hZGRUb0Nhc2VQYXlsb2FkKTtcbiAgICBpZiAoIWlzVmFsaWQpIHJldHVybjtcbiAgICBpZiAodGhpcy53b3JrZmxvd1R5cGUgPT09ICdBQ1RXJykge1xuICAgICAgdGhpcy5hZGRDYXNlVG9Xb3JrZmxvdygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSAnRURJVCcgJiYgdGhpcy53b3JrZmxvd1R5cGUgIT09ICdBQ1RXJykge1xuICAgICAgdGhpcy5maWx0ZXJSZXNwb25zaWJpbGl0aWVzKHRoaXMuYWRkVG9DYXNlUGF5bG9hZCk7XG4gICAgICB0aGlzLmZpbHRlckFzc2Vzc21lbnQodGhpcy5hZGRUb0Nhc2VQYXlsb2FkKTtcbiAgICAgIHRoaXMudXBkYXRlQWRkVG9DYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyUmVzcG9uc2liaWxpdGllcyh0aGlzLmFkZFRvQ2FzZVBheWxvYWQpO1xuICAgICAgdGhpcy5maWx0ZXJBc3Nlc3NtZW50KHRoaXMuYWRkVG9DYXNlUGF5bG9hZCk7XG4gICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLnJlcG9ydEFDYXNlKHRoaXMuYWRkVG9DYXNlUGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jYXNlRGF0YSA9IHsgLi4ucmVzPy5kYXRhLCBzb3VyY2U6IHRoaXMuc291cmNlIH07XG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ2FzZVRvV29ya2Zsb3coKSB7XG4gICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IHRydWU7XG4gICAgbGV0IHBheWxvYWQgPSB7IC4uLnRoaXMuYWRkVG9DYXNlUGF5bG9hZCB9O1xuICAgIGNvbnN0IHdvcmtmbG93UGF5bG9hZCA9IHtcbiAgICAgIC4uLnBheWxvYWQsXG4gICAgICBjYXNlX2lkOiB0aGlzLmNhc2VJZCxcbiAgICB9O1xuXG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuYWRkQ2FzZVRvV29ya2Zsb3cod29ya2Zsb3dQYXlsb2FkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2FzZURhdGEgPSB7IC4uLnJlcz8uZGF0YSwgc291cmNlOiB0aGlzLnNvdXJjZSB9O1xuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xuICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVBZGRUb0Nhc2UoKSB7XG4gICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IHRydWU7XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2VcbiAgICAgIC51cGRhdGVDYXNlKHRoaXMuYWRkVG9DYXNlUGF5bG9hZCwgdGhpcy5jYXNlSWQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jYXNlRGF0YSA9IHsgLi4ucmVzPy5kYXRhLCBzb3VyY2U6IHRoaXMuc291cmNlIH07XG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWRlci5yZXBvcnRDYXNlTG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIucmVwb3J0Q2FzZUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICAvLyBTbWlsZXkgYWN0aW9uc1xuICBzbWlsZXlBY3Rpb25zKGV2dDogYW55KSB7XG4gICAgaWYgKGV2dCA9PT0gJ3JlcG9ydENhc2UnKSB7XG4gICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChldnQgPT09ICd2aWV3Q2FzZScpIHtcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xuICAgICAgdGhpcy52aWV3Q2FzZSgpO1xuICAgIH1cbiAgfVxuXG4gIHZpZXdDYXNlKCkge1xuICAgIGxldCB1cmw6IHN0cmluZztcbiAgICBsZXQgdXJsU3Vic3RyaW5nID0gJyc7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICBpZiAodGhpcy5jYXNlVHlwZVBlcm1pc3Npb24pIHtcbiAgICAgIHVybFN1YnN0cmluZyA9ICcvY2FzZS9yZXBvcnRlZC1jYXNlcyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybFN1YnN0cmluZyA9ICcvY2FzZS9yZXBvcnRlZC1jYXNlcy9yZXBvcnRlZC1ieS1tZSc7XG4gICAgfVxuICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArIHVybFN1YnN0cmluZztcblxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgdGhpcy5jbG9zZVNtaWxleSgpO1xuICB9XG5cbiAgcmVzZXRGb3JtKCkge1xuICAgIHRoaXMucmVwb3J0QUNhc2VSZXNldCgpO1xuICAgIHRoaXMuYWRkVG9DYXNlUmVzZXQoKTtcbiAgfVxuXG4gIHJlcG9ydEFDYXNlUmVzZXQoKSB7XG4gICAgdGhpcy5wYXlsb2FkLm5hbWUgPSAnJztcbiAgICB0aGlzLnBheWxvYWQuZGVzY3JpcHRpb24gPSB7IHRleHQ6ICcnLCBhdHRhY2htZW50czogW10gfTtcbiAgICB0aGlzLnBheWxvYWQucmVwb3J0ZWRfZGF0ZSA9ICcnO1xuICAgIHRoaXMucGF5bG9hZC5wcmlvcml0eSA9IHsgaWQ6ICcnLCBjdXN0b21fZmllbGRzOiBbXSB9O1xuICAgIHRoaXMucGF5bG9hZC5jYXNlX3R5cGUgPSB7IGlkOiAnJywgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLnBheWxvYWQucmNfZGV0YWlscyA9IHsgaWRzOiBbXSB9O1xuICAgIHRoaXMucGF5bG9hZC5zdXBwb3J0aW5nX2RvY3VtZW50cyA9IFtdO1xuICAgIHRoaXMucGF5bG9hZC5jYXRlZ29yeSA9IHsgaWRzOiBbXSwgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLnBheWxvYWQucmVjZWl2ZV91cGRhdGVzID0gZmFsc2U7XG4gIH1cblxuICBhZGRUb0Nhc2VSZXNldCgpIHtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQubmFtZSA9ICcnO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5kZXNjcmlwdGlvbiA9IHsgdGV4dDogJycsIGF0dGFjaG1lbnRzOiBbXSB9O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5wcmlvcml0eSA9IHsgaWQ6ICcnLCBjdXN0b21fZmllbGRzOiBbXSB9O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlX3R5cGUgPSB7IGlkOiAnJywgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQucmNfZGV0YWlscyA9IHtcbiAgICAgIGlkczogW10sXG4gICAgICBzZXBhcmF0ZV9yY19jYXNlczogZmFsc2UsXG4gICAgICBtYWluX3JjX2lkOiAnJyxcbiAgICB9O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXRlZ29yeSA9IHsgaWRzOiBbXSwgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeSA9IHsgaWRzOiBbXSwgY3VzdG9tX2ZpZWxkczogW10gfTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQucmlza19jbGFzcyA9IDA7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc2lnbmVlc19ncm91cCA9IFtdO1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5vd25lcnMgPSBbXTtcbiAgICB0aGlzLmFkZFRvQ2FzZVBheWxvYWQuY2FzZVRvV29ya2Zsb3cuYXNzaWduZWVzID0gW107XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LndvcmtmbG93X2lkID0gJyc7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlc29sdXRpb25fZGVhZGxpbmUgPSB7XG4gICAgICBkdWVfZGF0ZTogJycsXG4gICAgICBzdGFnZXNfYXNzaWduZWVzOiBbXSxcbiAgICAgIGFzc2lnbmVlX3JlbWluZF9iZWZvcmU6IDAsXG4gICAgICBvd25lcl9yZW1pbmRfYmVmb3JlOiAwLFxuICAgIH07XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmV4Y2VwdGlvbl90eXBlID0gJyc7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc29jaWF0ZWRfcmlza3MgPSB7XG4gICAgICB0ZXh0OiAnJyxcbiAgICAgIGF0dGFjaG1lbnRzOiBbXSxcbiAgICB9O1xuICAgIHRoaXMuYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5ldmlkZW5jZV9lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LnJlY29tbWVuZGF0aW9ucyA9IHtcbiAgICAgIHRleHQ6ICcnLFxuICAgICAgYXR0YWNobWVudHM6IFtdLFxuICAgIH07XG4gICAgdGhpcy5hZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93Lm92ZXJzaWdodHMgPSB7XG4gICAgICBjY19pZHM6IFtdLFxuICAgICAgY2NfZmFpbHVyZXNfaWRzOiBbXSxcbiAgICB9O1xuICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2lnaHRzLmNjX2xpc3QgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkT3ZlcnNpZ2h0cy5jY19mYWlsdXJlc19saXN0ID0gW107XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzID0geyAuLi5BRERJVElPTkFMX09QVElPTl9TVEFUVVMgfTtcbiAgfVxuXG4gIGNsb3NlU21pbGV5KGV2dD86IGFueSkge1xuICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VXb3JrRmxvdyh0aGlzLmNhc2VEYXRhLCBmYWxzZSk7XG4gIH1cblxuICBjbG9zZVdvcmtGbG93KGV2dDogYW55LCBjb25maXJtOiBhbnkpIHtcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dCwgY29uZmlybSB9KTtcbiAgfVxuXG4gIG9uQ2FzZUxvYWRlcihldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3R5cGUnOiB7XG4gICAgICAgIHRoaXMubG9hZGVyLnR5cGVMb2FkZXIgPSBldmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdwcmlvcml0eSc6IHtcbiAgICAgICAgdGhpcy5sb2FkZXIucHJpb3JpdHlMb2FkZXIgPSBldmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc3BsYXlBZGRpdGlvbmFsT3B0aW9ucygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVYQ0VQVElPTl9UWVBFIHx8XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVZJREVOQ0UgfHxcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cy5QUklPUklUWSB8fFxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzLklTU1VFX1RZUEUgfHxcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTIHx8XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMuT1ZFUlNJR0hUIHx8XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMuUkVDT01NRU5ERURfQUNUSU9OU1xuICAgICk7XG4gIH1cblxuICBnZXQgY2hlY2tsb2FkZXIoKSB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLmxvYWRlci50eXBlTG9hZGVyICYmXG4gICAgICAgIHRoaXMubG9hZGVyLnByaW9yaXR5TG9hZGVyICYmXG4gICAgICAgIHRoaXMubG9hZGVyLmNhc2VMb2FkZXIgJiZcbiAgICAgICAgdGhpcy5sb2FkZXIuZ3JvdXBMaXN0TG9hZGVyICYmXG4gICAgICAgIHRoaXMubG9hZGVyLnVzZXJMaXN0TG9hZGVyXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubG9hZGVyLnR5cGVMb2FkZXIgJiYgdGhpcy5sb2FkZXIucHJpb3JpdHlMb2FkZXIpIHx8XG4gICAgICAodGhpcy5sb2FkZXIucGVybWlzc2lvbkxvYWRlcikgfHxcbiAgICAgIHRoaXMubG9hZGVyLnJlcG9ydENhc2VMb2FkZXJcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIXNob3dTbWlsZXlcIiBjbGFzcz1cIndvcmtmbG93LWNhc2VcIj5cbiAgPGFwcC1jYXNlLXR5cGVcbiAgICAqbmdJZj1cIm1vZGUgIT09ICdFRElUJyAmJiBjYXNlVHlwZVBlcm1pc3Npb25cIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgKGNhc2VUeXBlQ2hhbmdlKT1cIm9uQ2FzZVR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2FwcC1jYXNlLXR5cGU+XG4gIDxhcHAtbGlua2VkLXJlc3BvbnNpYmlsaXRpZXNcbiAgICAqbmdJZj1cIlsnQ09NUExJQU5DRV9XT1JLUk9PTScsICdBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSlcIlxuICAgIFtwYXlsb2FkXT1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLlJFUE9SVF9DQVNFID8gcGF5bG9hZCA6IGFkZFRvQ2FzZVBheWxvYWRcIlxuICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgW3Jlc3BvbnNpYmlsaXR5RGF0YV09XCJyZXNwb25zaWJpbGl0eURhdGFcIlxuICAgIChmaWVsZENsaWNrZWQpPVwib25GaWVsZENsaWNrZWQoJGV2ZW50KVwiXG4gID48L2FwcC1saW5rZWQtcmVzcG9uc2liaWxpdGllcz5cbiAgPGFwcC1saW5rZWQtYXNzZXNzbWVudFxuICAgICpuZ0lmPVwib3BlbmVkRnJvbSA9PT0gJ0FTU0VTU01FTlQnXCJcbiAgICBbcGF5bG9hZF09XCJwYXlsb2FkXCJcbiAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICBbZmllbGRTZWxlY3RlZF09XCJmaWVsZENsaWNrZWRcIlxuICAgIFtyZXNwb25zaWJpbGl0eURhdGFdPVwicmVzcG9uc2liaWxpdHlEYXRhXCJcbiAgICBbYXNzZXNzbWVudFF1ZXN0aW9uXT1cImFzc2Vzc21lbnRRdWVzdGlvblwiXG4gICAgKGZpZWxkQ2xpY2tlZCk9XCJvbkZpZWxkQ2xpY2tlZCgkZXZlbnQpXCJcbiAgPjwvYXBwLWxpbmtlZC1hc3Nlc3NtZW50PlxuICA8YXBwLWNhc2UtZGV0YWlsc1xuICAgIFtwYXlsb2FkXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyBwYXlsb2FkIDogYWRkVG9DYXNlUGF5bG9hZFxuICAgIFwiXG4gICAgW2ZpZWxkU2VsZWN0ZWRdPVwiZmllbGRDbGlja2VkXCJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cInZhbGlkYXRpb25FcnJvclwiXG4gICAgW2Nhc2VUeXBlU2VsZWN0ZWRdPVwiY2FzZVR5cGVTZWxlY3RlZFwiXG4gID48L2FwcC1jYXNlLWRldGFpbHM+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1wiXG4gICAgY2xhc3M9XCJoZWFkLWxhYmVsIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1saC00XCJcbiAgPlxuICAgIENBU0UgREVUQUlMU1xuICA8L3NwYW4+XG4gIDxhcHAtaW5mb3JtYXRpb24tYmxvY2tcbiAgICAqbmdJZj1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XXCJcbiAgPjwvYXBwLWluZm9ybWF0aW9uLWJsb2NrPiBcbiAgPGFwcC1yYy1kZXRhaWxzXG4gICAgW3BheWxvYWRdPVwiXG4gICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRSA/IHBheWxvYWQgOiBhZGRUb0Nhc2VQYXlsb2FkXG4gICAgXCJcbiAgICBbZmllbGRTZWxlY3RlZF09XCJmaWVsZENsaWNrZWRcIlxuICAgIFtjYXNlVHlwZVNlbGVjdGVkXT1cImNhc2VUeXBlU2VsZWN0ZWRcIlxuICAgIFt2YWxpZGF0aW9uRXJyb3JdPVwidmFsaWRhdGlvbkVycm9yXCJcbiAgICBbaW5pdGlhbFNlbGVjdGlvbl09XCJcbiAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLlJFUE9SVF9DQVNFXG4gICAgICAgID8gcGF5bG9hZD8ucmNfZGV0YWlsc1xuICAgICAgICA6IGFkZFRvQ2FzZVBheWxvYWQ/LnJjX2RldGFpbHNcbiAgICBcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgIFt3b3JrZmxvd1R5cGVdPVwid29ya2Zsb3dUeXBlXCJcbiAgICAoZmllbGRDbGlja2VkKT1cIm9uRmllbGRDbGlja2VkKCRldmVudClcIlxuICAgIChvblJjQ2hhbmdlKT1cIm9uUmNDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2FwcC1yYy1kZXRhaWxzPlxuICA8YXBwLWNhc2UtdHlwZS1kcm9wZG93blxuICAgIFtwYXlsb2FkXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyBwYXlsb2FkIDogYWRkVG9DYXNlUGF5bG9hZFxuICAgIFwiXG4gICAgW2ZpZWxkU2VsZWN0ZWRdPVwiZmllbGRDbGlja2VkXCJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cInZhbGlkYXRpb25FcnJvclwiXG4gICAgW2luaXRpYWxTZWxlY3Rpb25dPVwiXG4gICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRVxuICAgICAgICA/IHBheWxvYWQ/LmNhc2VfdHlwZVxuICAgICAgICA6IGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VfdHlwZVxuICAgIFwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gICAgW2Nhc2VUeXBlU2VsZWN0ZWRdPVwiY2FzZVR5cGVTZWxlY3RlZFwiXG4gICAgW3dvcmtmbG93VHlwZV09XCJ3b3JrZmxvd1R5cGVcIlxuICAgIChvbkNhc2VUeXBlQ2hhbmdlKT1cIm9uQ2FzZVR5cGVEcm9wZG93bkNoYW5nZSgkZXZlbnQpXCJcbiAgICAob25DYXNlVHlwZUxvYWRpbmcpPVwib25DYXNlTG9hZGVyKCRldmVudCwgJ3R5cGUnKVwiXG4gID48L2FwcC1jYXNlLXR5cGUtZHJvcGRvd24+XG4gIDxhcHAtY2FzZS1jYXRlZ29yeVxuICAgIFtwYXlsb2FkXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyBwYXlsb2FkIDogYWRkVG9DYXNlUGF5bG9hZFxuICAgIFwiXG4gICAgW2ZpZWxkU2VsZWN0ZWRdPVwiZmllbGRDbGlja2VkXCJcbiAgICBbY2FzZVR5cGVTZWxlY3RlZF09XCJjYXNlVHlwZVNlbGVjdGVkXCJcbiAgICBbaW5pdGlhbFNlbGVjdGlvbl09XCJcbiAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLlJFUE9SVF9DQVNFXG4gICAgICAgID8gcGF5bG9hZD8uY2F0ZWdvcnlcbiAgICAgICAgOiBhZGRUb0Nhc2VQYXlsb2FkPy5jYXRlZ29yeVxuICAgIFwiXG4gICAgW2luaXRpYWxBZGRpdGlvbmFsU2VsZWN0aW9uXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0VcbiAgICAgICAgPyBwYXlsb2FkPy5hZGRpdGlvbmFsX2NhdGVnb3J5XG4gICAgICAgIDogYWRkVG9DYXNlUGF5bG9hZD8uYWRkaXRpb25hbF9jYXRlZ29yeVxuICAgIFwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gICAgW3dvcmtmbG93VHlwZV09XCJ3b3JrZmxvd1R5cGVcIlxuICAgIChvbkNhdGVnb3J5Q2hhbmdlKT1cIm9uQ2F0ZWdvcnlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGZpZWxkQ2xpY2tlZCk9XCJvbkZpZWxkQ2xpY2tlZCgkZXZlbnQpXCJcbiAgPjwvYXBwLWNhc2UtY2F0ZWdvcnk+XG4gIDxhcHAtcmVwb3J0LWRhdGVcbiAgICAqbmdJZj1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLlJFUE9SVF9DQVNFXCJcbiAgICBbcGF5bG9hZF09XCJwYXlsb2FkXCJcbiAgICBbZmllbGRTZWxlY3RlZF09XCJmaWVsZENsaWNrZWRcIlxuICAgIFt2YWxpZGF0aW9uRXJyb3JdPVwidmFsaWRhdGlvbkVycm9yXCJcbiAgICAoZmllbGRDbGlja2VkKT1cIm9uRmllbGRDbGlja2VkKCRldmVudClcIlxuICA+PC9hcHAtcmVwb3J0LWRhdGU+XG4gIDxhcHAtY2FzZS1wcmlvcml0eVxuICAgIFtwYXlsb2FkXT1cIlxuICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyBwYXlsb2FkIDogYWRkVG9DYXNlUGF5bG9hZFxuICAgIFwiXG4gICAgW2ZpZWxkU2VsZWN0ZWRdPVwiZmllbGRDbGlja2VkXCJcbiAgICBbY2FzZVR5cGVTZWxlY3RlZF09XCJjYXNlVHlwZVNlbGVjdGVkXCJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cInZhbGlkYXRpb25FcnJvclwiXG4gICAgW2luaXRpYWxTZWxlY3Rpb25dPVwiXG4gICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRVxuICAgICAgICA/IHBheWxvYWQ/LnByaW9yaXR5XG4gICAgICAgIDogYWRkVG9DYXNlUGF5bG9hZD8ucHJpb3JpdHlcbiAgICBcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgIFt3b3JrZmxvd1R5cGVdPVwid29ya2Zsb3dUeXBlXCJcbiAgICAob25Qcmlvcml0eUNoYW5nZSk9XCJvblByaW9yaXR5Q2hhbmdlKCRldmVudClcIlxuICAgIChvblByaW9yaXR5TG9hZGVyKT1cIm9uQ2FzZUxvYWRlcigkZXZlbnQsICdwcmlvcml0eScpXCJcbiAgPjwvYXBwLWNhc2UtcHJpb3JpdHk+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1wiXG4gICAgY2xhc3M9XCJoZWFkLWxhYmVsIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1saC00XCJcbiAgPlxuICAgIFVTRVIgREVUQUlMU1xuICA8L3NwYW4+XG4gIDxhcHAtY2FzZS1vd25lcnNcbiAgICAqbmdJZj1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XXCJcbiAgICBbcGF5bG9hZF09XCJhZGRUb0Nhc2VQYXlsb2FkXCJcbiAgICBbaW5pdGlhbFNlbGVjdGlvbl09XCJhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3duZXJzXCJcbiAgICBbd29ya2Zsb3dJZF09XCJhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ud29ya2Zsb3dfaWRcIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgW3ZhbGlkYXRpb25FcnJvcl09XCJ2YWxpZGF0aW9uRXJyb3JcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgIChmaWVsZENsaWNrZWQpPVwib25GaWVsZENsaWNrZWQoJGV2ZW50KVwiXG4gID48L2FwcC1jYXNlLW93bmVycz5cbiAgPGFwcC1jYXNlLWFzc2lnbmVlc1xuICAgICpuZ0lmPVwiY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuQUREX0NBU0VfVE9fV09SS0ZMT1dcIlxuICAgIFtwYXlsb2FkXT1cImFkZFRvQ2FzZVBheWxvYWRcIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgW2luaXRpYWxTZWxlY3Rpb25dPVwiYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3dcIlxuICAgIFt1c2VyTGlzdF09XCJ1c2VyTGlzdFwiXG4gICAgW2dyb3VwTGlzdF09XCJncm91cExpc3RcIlxuICAgIFt2YWxpZGF0aW9uRXJyb3JdPVwidmFsaWRhdGlvbkVycm9yXCJcbiAgICAoZmllbGRDbGlja2VkKT1cIm9uRmllbGRDbGlja2VkKCRldmVudClcIlxuICA+PC9hcHAtY2FzZS1hc3NpZ25lZXM+XG4gIDxhcHAtZmllbGQtaG9sZGVyXG4gICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRVwiXG4gICAgW2ltYWdlXT1cIkFTU0VUUy5mb3JtYXRfZXZpZGVuY2VcIlxuICAgIFtkaXNhYmxlZF09XCJmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZENsaWNrZWQpXCJcbiAgICBbY2hlY2tlZF09XCJwYXlsb2FkPy5zdXBwb3J0aW5nX2RvY3VtZW50cz8ubGVuZ3RoXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgZmllbGQ+XG4gICAgICA8YXBwLXZjLWxhYmVsXG4gICAgICAgIGxhYmVsXG4gICAgICAgIFtsYWJlbFRleHRdPVwicmVwb3J0VGV4dHMuY2FzZV9kZXRhaWxzLmF0dGFjaG1lbnRzLnRpdGxlXCJcbiAgICAgID48L2FwcC12Yy1sYWJlbD5cbiAgICAgIDxhcHAtZm9ybWF0LWFuZC1ldmlkZW5jZVxuICAgICAgICAodXBkYXRlRmlsZXMpPVwic2F2ZVN1cHBvcnRpbmdEb2N1bWVudCgkZXZlbnQpXCJcbiAgICAgICAgW21vZGVdPVwiJ3JlcG9ydEFDYXNlJ1wiXG4gICAgICAgIFtmb3JtYXRFdmlkYW5jZURhdGFdPVwicGF5bG9hZD8uc3VwcG9ydGluZ19kb2N1bWVudHNcIlxuICAgICAgPjwvYXBwLWZvcm1hdC1hbmQtZXZpZGVuY2U+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYXBwLWZpZWxkLWhvbGRlcj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XXCJcbiAgICBjbGFzcz1cImhlYWQtbGFiZWwgdngtZnMtMTAgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbWItNFwiXG4gID5cbiAgICBDQVNFIFJFU09MVVRJT04gREVUQUlMU1xuICA8L3NwYW4+XG4gIDxhcHAtY2FzZS1yZXNvbHV0aW9uLWRlYWRsaW5lXG4gICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1wiXG4gICAgW3BheWxvYWRdPVwiYWRkVG9DYXNlUGF5bG9hZFwiXG4gICAgW3VzZXJMaXN0XT1cInVzZXJMaXN0XCJcbiAgICBbZ3JvdXBMaXN0XT1cImdyb3VwTGlzdFwiXG4gICAgW2luaXRpYWxTZWxlY3Rpb25dPVwiYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3dcIlxuICAgIFtmaWVsZFNlbGVjdGVkXT1cImZpZWxkQ2xpY2tlZFwiXG4gICAgKGZpZWxkQ2xpY2tlZCk9XCJvbkZpZWxkQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICBbdmFsaWRhdGlvbkVycm9yXT1cInZhbGlkYXRpb25FcnJvclwiXG4gID48L2FwcC1jYXNlLXJlc29sdXRpb24tZGVhZGxpbmU+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJcbiAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XICYmXG4gICAgICBkaXNwbGF5QWRkaXRpb25hbE9wdGlvbnNcbiAgICBcIlxuICAgIGNsYXNzPVwiaGVhZC1sYWJlbCB2eC1mcy0xMCB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtbGgtNFwiXG4gID5cbiAgICBBRERJVElPTkFMIE9QVElPTlNcbiAgPC9zcGFuPlxuICA8IS0tIEV4Y2VwdGlvbiBUeXBlIC0tPlxuICA8YXBwLWZpZWxkLWhvbGRlclxuICAgICpuZ0lmPVwiXG4gICAgICBhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVYQ0VQVElPTl9UWVBFICYmXG4gICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1xuICAgIFwiXG4gICAgW3Njcm9sbFRvQm90dG9tXT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgICBbZGlzYWJsZWRdPVwiZmllbGRTZWxlY3Rvcj8uaW5jbHVkZXMoZmllbGRDbGlja2VkKVwiXG4gICAgW2NoZWNrZWRdPVwiYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmV4Y2VwdGlvbl90eXBlXCJcbiAgICBbaW1hZ2VdPVwiXG4gICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJ1xuICAgIFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyIGZpZWxkPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkV4Y2VwdGlvbiBUeXBlPC9sYWJlbD5cbiAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcbiAgICAgICAgW3ZhbHVlXT1cImV4Y2VwdGlvblR5cGUuREVTSUdOX0VYQ0VQVElPTlwiXG4gICAgICAgIG5hbWU9XCJleGNlcHRpb24tdHlwZVwiXG4gICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5leGNlcHRpb25fdHlwZSA9PT1cbiAgICAgICAgICBleGNlcHRpb25UeXBlLkRFU0lHTl9FWENFUFRJT05cbiAgICAgICAgXCJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFeGNlcHRpb24oZXhjZXB0aW9uVHlwZS5ERVNJR05fRVhDRVBUSU9OKVwiXG4gICAgICAgID5EZXNpZ24gRXhjZXB0aW9uXG4gICAgICA8L2FwcC1jcy1yYWRpbz5cbiAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcbiAgICAgICAgW3ZhbHVlXT1cImV4Y2VwdGlvblR5cGUuRUZGRUNUSVZFTkVTU19FWENFUFRJT05cIlxuICAgICAgICBuYW1lPVwiZXhjZXB0aW9uLXR5cGVcIlxuICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8uZXhjZXB0aW9uX3R5cGUgPT09XG4gICAgICAgICAgZXhjZXB0aW9uVHlwZS5FRkZFQ1RJVkVORVNTX0VYQ0VQVElPTlxuICAgICAgICBcIlxuICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV4Y2VwdGlvbihleGNlcHRpb25UeXBlLkVGRkVDVElWRU5FU1NfRVhDRVBUSU9OKVwiXG4gICAgICAgID5FZmZlY3RpdmVuZXNzIEV4Y2VwdGlvblxuICAgICAgPC9hcHAtY3MtcmFkaW8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYXBwLWZpZWxkLWhvbGRlcj5cblxuICA8IS0tIEFzc29jaWF0ZWQgUmlza3MgLS0+XG4gIDxkaXZcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1wiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkQ2xpY2tlZClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsZWZ0XCJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cImFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5hc3NvY2lhdGVkX3Jpc2tzPy50ZXh0XCJcbiAgICA+XG4gICAgICA8aW1nXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3NvY2lhdGVkLXJpc2tzLnN2Z1wiXG4gICAgICAgIGFsdD1cImltXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAhYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3M/LnRleHQ/LnRyaW0oKVxuICAgICAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgXCJcbiAgICAgIC8+XG5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3M/LnRleHQ/LnRyaW0oKVxuICAgICAgICAgICAgLmxlbmd0aFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Bc3NvY2lhdGVkIFJpc2tzIDwvbGFiZWw+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3M/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICAgID8ubGVuZ3RoID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IHVwbG9hZGluZ0ZpbGUgb2YgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3dcbiAgICAgICAgICAgICAgICA/LmFzc29jaWF0ZWRfcmlza3M/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3M/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICAgID8ubGVuZ3RoID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IGZpbGUgb2YgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LmFzc29jaWF0ZWRfcmlza3NcbiAgICAgICAgICAgICAgICA/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGU/Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b24+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdBU1NPQ0lBVEVEX1JJU0tTJylcIlxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHZjb21wbHktZWRpdG9yXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRUb0Nhc2VQYXlsb2FkLmNhc2VUb1dvcmtmbG93LmFzc29jaWF0ZWRfcmlza3MudGV4dFwiXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxuICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxuICAgICAgICAgICAgbGluazogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGU6IGZhbHNlLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdBc3NvY2lhdGVkIFJpc2tzJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnQVNTT0NJQVRFRF9SSVNLUycsICRldmVudClcIlxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIE92ZXJzZWVyIC0tPlxuICA8ZGl2XG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLk9WRVJTSUdIVFwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkQ2xpY2tlZClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsZWZ0XCJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cIlxuICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3ZlcnNpZ2h0cz8uY2NfaWRzPy5sZW5ndGggfHxcbiAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/Lm92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2lkcz8ubGVuZ3RoXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxpbWdcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmdcIlxuICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICEoXG4gICAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3ZlcnNpZ2h0cz8uY2NfaWRzPy5sZW5ndGggfHxcbiAgICAgICAgICAgIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5vdmVyc2lnaHRzPy5jY19mYWlsdXJlc19pZHNcbiAgICAgICAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgICApXG4gICAgICAgIFwiXG4gICAgICAvPlxuXG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3ZlcnNpZ2h0cz8uY2NfaWRzPy5sZW5ndGggfHxcbiAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ub3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfaWRzPy5sZW5ndGhcbiAgICAgICAgXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5PdmVyc2lnaHQ8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCIhc2VsZWN0ZWRPdmVyc2lnaHRzPy5jY19saXN0Py5sZW5ndGhcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdDQVNFX0NDJywgJ0NBU0VfQ0MnKVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldobyBzaG91bGQgaGF2ZSBvdmVyc2lnaHQgb2YgdGhpcyBjYXNlP1wiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwic2VsZWN0ZWRPdmVyc2lnaHRzPy5jY19saXN0Py5sZW5ndGhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnQ0FTRV9DQycsIHNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfbGlzdFswXSlcIlxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwic2VsZWN0ZWRPdmVyc2lnaHRzPy5jY19saXN0WzBdPy5lbXBsb3llZV9uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2xpc3RbMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwiQ0MucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfbGlzdD8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2xpc3Q/LnNsaWNlKDEpLmxlbmd0aCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0NBU0VfQ0MnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdDQVNFX0NDJywgJ0NBU0VfQ0MnKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICFzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3QgfHxcbiAgICAgICAgICAgIHNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfbGlzdD8ubGVuZ3RoID09PSAwXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0NBU0VfRkNDJywgJ0NBU0VfRkNDJylcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaG8gc2hvdWxkIGJlIG5vdGlmaWVkIGlmIHRoZSBjYXNlIGlzIG5vdCByZXNvbHZlZD9cIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3Q/Lmxlbmd0aFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgZGVsZXRlSXRlbSgnQ0FTRV9GQ0MnLCBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3RbMF0pXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3RbMF0/LmVtcGxveWVlX25hbWVcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfbGlzdFswXT8uZW1wbG95ZWVfbmFtZVxuICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgIChjbGljayk9XCJGQ0MucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfbGlzdD8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3Q/LnNsaWNlKDEpPy5sZW5ndGggfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdDQVNFX0ZDQydcIlxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0NBU0VfRkNDJywgJ0NBU0VfRkNDJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLXBvcG92ZXIgI0NDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgY2Mgb2Ygc2VsZWN0ZWRPdmVyc2lnaHRzPy5jY19saXN0IHwgc2xpY2UgOiAxO1xuICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdDQVNFX0NDJywgY2MpXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjYz8uZW1wbG95ZWVfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDxhcHAtcG9wb3ZlciAjRkNDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZmNjIG9mIHNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfZmFpbHVyZXNfbGlzdCB8IHNsaWNlIDogMTtcbiAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnQ0FTRV9GQ0MnLCBmY2MpXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBmY2M/LmVtcGxveWVlX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRXZpZGVuY2UgLS0+XG4gIDxkaXZcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVZJREVOQ0VcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZENsaWNrZWQpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwidHJ1ZVwiPlxuICAgICAgPHN2Z1xuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgID5cbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXZpZGVuY2U8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWZvcm1hdFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiXG4gICAgICAgICAgICA+RG8geW91IHdhbnQgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgY2FzZSB0byBiZVxuICAgICAgICAgICAgdXBsb2FkZWQ/PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgICBbbmFtZV09XCInZmlsZS1ldmlkZW5jZSdcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMVwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5ldmlkZW5jZV9lbmFibGVkXCJcbiAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSh0cnVlKVwiXG4gICAgICAgICAgICAgID5ZZXNcbiAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgICBbbmFtZV09XCInZmlsZS1ldmlkZW5jZSdcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMFwiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIiFhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8uZXZpZGVuY2VfZW5hYmxlZFwiXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXZpZGVuY2UoZmFsc2UpXCJcbiAgICAgICAgICAgICAgPk5vXG4gICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gUmVjb21tZW5kZWQgQWN0aW9ucyAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5SRUNPTU1FTkRFRF9BQ1RJT05TXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZmllbGRTZWxlY3Rvcj8uaW5jbHVkZXMoZmllbGRDbGlja2VkKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxlZnRcIlxuICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LnJlY29tbWVuZGF0aW9ucz8udGV4dFwiXG4gICAgPlxuICAgICAgPGltZ1xuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjb21tZW5kZWQtYWN0aW9uLnN2Z1wiXG4gICAgICAgIGFsdD1cImltXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAhKFxuICAgICAgICAgICAgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LnJlY29tbWVuZGF0aW9ucz8udGV4dFxuICAgICAgICAgICAgfCBzcGFjZUJyZWFrZXJcbiAgICAgICAgICApPy5sZW5ndGhcbiAgICAgICAgXCJcbiAgICAgIC8+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIChcbiAgICAgICAgICAgIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5yZWNvbW1lbmRhdGlvbnM/LnRleHRcbiAgICAgICAgICAgIHwgc3BhY2VCcmVha2VyXG4gICAgICAgICAgKT8ubGVuZ3RoID4gMFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SZWNvbW1lbmRlZCBBY3Rpb25zPC9sYWJlbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ucmVjb21tZW5kYXRpb25zPy5hdHRhY2htZW50c1xuICAgICAgICAgICAgICA/Lmxlbmd0aCA+IDBcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxuICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCB1cGxvYWRpbmdGaWxlIG9mIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93XG4gICAgICAgICAgICAgICAgPy5yZWNvbW1lbmRhdGlvbnM/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGFkZFRvQ2FzZVBheWxvYWQ/LmNhc2VUb1dvcmtmbG93Py5yZWNvbW1lbmRhdGlvbnM/LmF0dGFjaG1lbnRzXG4gICAgICAgICAgICAgID8ubGVuZ3RoID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IGZpbGUgb2YgYWRkVG9DYXNlUGF5bG9hZD8uY2FzZVRvV29ya2Zsb3c/LnJlY29tbWVuZGF0aW9uc1xuICAgICAgICAgICAgICAgID8uYXR0YWNobWVudHNcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCAnUkVDT01NRU5ERURfQUNUSU9OUycpXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx2Y29tcGx5LWVkaXRvclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiYWRkVG9DYXNlUGF5bG9hZC5jYXNlVG9Xb3JrZmxvdy5yZWNvbW1lbmRhdGlvbnMudGV4dFwiXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxuICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxuICAgICAgICAgICAgbGluazogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGU6IHRydWUsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1JlY29tbWVuZGVkIGFjdGlvbnMnXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiXG4gICAgICAgICAgICBhZGRUb0Nhc2VQYXlsb2FkPy5jYXNlVG9Xb3JrZmxvdz8ucmVjb21tZW5kYXRpb25zPy50ZXh0Py50cmltKClcbiAgICAgICAgICAgICAgPy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgID8gcmVtb3ZlRXJyb3IoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICBcIlxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnUkVDT01NRU5ERURfQUNUSU9OUycsICRldmVudClcIlxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBSaXNrIENsYXNzaWZpY2F0aW9uIC0tPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLlJJU0tfQ0xBU1NJRklDQVRJT05cIlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxuICAgIGlkPVwicmlza19jbGFzc2lmaWNhdGlvblwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkQ2xpY2tlZClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJhZGRUb0Nhc2VQYXlsb2FkLnJpc2tfY2xhc3NcIj5cbiAgICAgIDxpbWdcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2Z1wiXG4gICAgICAgIGFsdD1cImltXCJcbiAgICAgICAgKm5nSWY9XCIhYWRkVG9DYXNlUGF5bG9hZC5yaXNrX2NsYXNzXCJcbiAgICAgIC8+XG5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICpuZ0lmPVwiYWRkVG9DYXNlUGF5bG9hZC5yaXNrX2NsYXNzXCJcbiAgICAgID5cbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SaXNrIENsYXNzaWZpY2F0aW9uPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNsYXNzaWZpY2F0aW9uXCI+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBjbGFzcz1cImxvd1wiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2xhc3Mgb2Ygcmlza0NsYXNzaWZpY2F0aW9uXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltjbGFzcy5jbGFzc11cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBuYW1lPVwiY2xhc3NpZmljYXRpb25cIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiY2xhc3MudmFsdWVcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJhZGRUb0Nhc2VQYXlsb2FkLnJpc2tfY2xhc3MgPT09IGNsYXNzLnZhbHVlXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRUb0Nhc2VQYXlsb2FkLnJpc2tfY2xhc3NcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPnt7IGNsYXNzLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImNoZWNrbG9hZGVyXCIgPjwvYXBwLWxvYWRlci1pbmxpbmU+XG48YXBwLWNoZWNrYm94LWxpc3RcbiAgW2NvbmZpZ109XCJvdmVyc2lnaHRfY29uZmlnXCJcbiAgW3R3b0NvbHVtbl09XCJ0cnVlXCJcbiAgW2l0ZW1zTGlzdF09XCJ1c2VyTGlzdFwiXG4gIFtzZWxlY3RlZEl0ZW1zXT1cInNlbGVjdGVkT3ZlcnNpZ2h0cz8uY2NfbGlzdFwiXG4gIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxuICBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIlxuICBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0NBU0VfQ0MnXCJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0NBU0VfQ0MnKVwiXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdDQVNFX0NDJylcIlxuICBbbG9hZGVkXT1cImxvYWRlci51c2VyTGlzdExvYWRlclwiXG4+PC9hcHAtY2hlY2tib3gtbGlzdD5cblxuPGFwcC1jaGVja2JveC1saXN0XG4gIFtjb25maWddPVwib3ZlcnNpZ2h0X2NvbmZpZ1wiXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXG4gIFtpdGVtc0xpc3RdPVwidXNlckxpc3RcIlxuICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZE92ZXJzaWdodHM/LmNjX2ZhaWx1cmVzX2xpc3RcIlxuICBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfZW1haWwnXCJcbiAgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCJcbiAgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdDQVNFX0ZDQydcIlxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnQ0FTRV9GQ0MnKVwiXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdDQVNFX0ZDQycpXCJcbiAgW2xvYWRlZF09XCJsb2FkZXIudXNlckxpc3RMb2FkZXJcIlxuPjwvYXBwLWNoZWNrYm94LWxpc3Q+XG5cbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmVcbiAgKm5nSWY9XCJzaG93U21pbGV5XCJcbiAgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiXG4gIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxuICAoYWN0aW9uKT1cInNtaWxleUFjdGlvbnMoJGV2ZW50KVwiXG4gIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCJcbj48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
2
+ import { Subject } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./RBAC.service";
5
5
  import * as i2 from "./auth.service";
@@ -7,7 +7,7 @@ export class ReportCasePermissionService {
7
7
  constructor(rbacService, authService) {
8
8
  this.rbacService = rbacService;
9
9
  this.authService = authService;
10
- this.hasPermission = new BehaviorSubject(false);
10
+ this.hasPermission = new Subject();
11
11
  this.checkReportACasePermission();
12
12
  }
13
13
  checkReportACasePermission() {
@@ -27,6 +27,9 @@ export class ReportCasePermissionService {
27
27
  if (data?.includes('CCMMC')) {
28
28
  this.hasPermission.next(true);
29
29
  }
30
+ else {
31
+ this.hasPermission.next(false);
32
+ }
30
33
  return data?.includes('CCMMC');
31
34
  });
32
35
  return false;
@@ -47,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
47
50
  providedIn: 'root',
48
51
  }]
49
52
  }], ctorParameters: function () { return [{ type: i1.RbacService }, { type: i2.AuthService }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNhc2UtcGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2VydmljZXMvcmVwb3J0LWNhc2UtcGVybWlzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUt2QyxNQUFNLE9BQU8sMkJBQTJCO0lBSXRDLFlBQ1UsV0FBd0IsRUFDeEIsV0FBd0I7UUFEeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFKM0Isa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQU16RCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2pELE9BQU8sZUFBZSxJQUFJLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBVyxFQUFFLEVBQUU7WUFDN0QscUNBQXFDO1lBQ3JDLElBQUcsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0I7WUFDRCxPQUFPLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFO1lBQzdELE1BQU0sYUFBYSxHQUFHLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXpDVSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQUYxQixNQUFNOzs0RkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmJhY1NlcnZpY2UgfSBmcm9tICcuL1JCQUMuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlIHtcblxuICBwdWJsaWMgaGFzUGVybWlzc2lvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmJhY1NlcnZpY2U6IFJiYWNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY2hlY2tSZXBvcnRBQ2FzZVBlcm1pc3Npb24oKTtcbiAgfVxuXG4gIGNoZWNrUmVwb3J0QUNhc2VQZXJtaXNzaW9uKCkge1xuICAgIGNvbnN0IGhhc1N1YnNjcmlwdGlvbiA9IHRoaXMuY2hlY2tTdWJzY3JpcHRpb24oKTtcbiAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gdGhpcy5jaGVja1JCQUNQZXJtaXNzaW9uKCk7XG4gICAgcmV0dXJuIGhhc1N1YnNjcmlwdGlvbiAmJiBoYXNQZXJtaXNzaW9uO1xuICB9XG5cbiAgY2hlY2tTdWJzY3JpcHRpb24oKSB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5zdWJzY3JpcHRpb25EZXRhaWxzLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgcmV0dXJuIGRhdGFbMF0/LmNhc2VfZmxhZztcbiAgICB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNoZWNrUkJBQ1Blcm1pc3Npb24xKCkge1xuICAgIHRoaXMucmJhY1NlcnZpY2UuZ2V0UkJBQ0RhdGEoJ2Nhc2UnKS5zdWJzY3JpYmUoKGRhdGE6IGFueVtdKSA9PiB7XG4gICAgICAvLyAgIGNoZWNrIGZvciBtYW5hZ2UgY2FzZSBwZXJtaXNzaW9uXG4gICAgICBpZihkYXRhPy5pbmNsdWRlcygnQ0NNTUMnKSkge1xuICAgICAgICB0aGlzLmhhc1Blcm1pc3Npb24ubmV4dCh0cnVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhPy5pbmNsdWRlcygnQ0NNTUMnKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaGVja1JCQUNQZXJtaXNzaW9uKCkge1xuICAgIC8vIFJlbW92ZSB0aGUgaW1tZWRpYXRlIHJldHVybiBmYWxzZVxuICAgIHRoaXMucmJhY1NlcnZpY2UuZ2V0UkJBQ0RhdGEoJ2Nhc2UnKS5zdWJzY3JpYmUoKGRhdGE6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gZGF0YT8uaW5jbHVkZXMoJ0NDTU1DJyk7XG4gICAgICB0aGlzLmhhc1Blcm1pc3Npb24ubmV4dChoYXNQZXJtaXNzaW9uKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNhc2UtcGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2VydmljZXMvcmVwb3J0LWNhc2UtcGVybWlzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFtQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFLaEQsTUFBTSxPQUFPLDJCQUEyQjtJQUl0QyxZQUNVLFdBQXdCLEVBQ3hCLFdBQXdCO1FBRHhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBSjNCLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU01QyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2pELE9BQU8sZUFBZSxJQUFJLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBVyxFQUFFLEVBQUU7WUFDN0QscUNBQXFDO1lBQ3JDLElBQUcsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0I7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDaEM7WUFDRCxPQUFPLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFO1lBQzdELE1BQU0sYUFBYSxHQUFHLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTVDVSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQUYxQixNQUFNOzs0RkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmJhY1NlcnZpY2UgfSBmcm9tICcuL1JCQUMuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlIHtcblxuICBwdWJsaWMgaGFzUGVybWlzc2lvbiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByYmFjU2VydmljZTogUmJhY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jaGVja1JlcG9ydEFDYXNlUGVybWlzc2lvbigpO1xuICB9XG5cbiAgY2hlY2tSZXBvcnRBQ2FzZVBlcm1pc3Npb24oKSB7XG4gICAgY29uc3QgaGFzU3Vic2NyaXB0aW9uID0gdGhpcy5jaGVja1N1YnNjcmlwdGlvbigpO1xuICAgIGNvbnN0IGhhc1Blcm1pc3Npb24gPSB0aGlzLmNoZWNrUkJBQ1Blcm1pc3Npb24oKTtcbiAgICByZXR1cm4gaGFzU3Vic2NyaXB0aW9uICYmIGhhc1Blcm1pc3Npb247XG4gIH1cblxuICBjaGVja1N1YnNjcmlwdGlvbigpIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnN1YnNjcmlwdGlvbkRldGFpbHMuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICByZXR1cm4gZGF0YVswXT8uY2FzZV9mbGFnO1xuICAgIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY2hlY2tSQkFDUGVybWlzc2lvbjEoKSB7XG4gICAgdGhpcy5yYmFjU2VydmljZS5nZXRSQkFDRGF0YSgnY2FzZScpLnN1YnNjcmliZSgoZGF0YTogYW55W10pID0+IHtcbiAgICAgIC8vICAgY2hlY2sgZm9yIG1hbmFnZSBjYXNlIHBlcm1pc3Npb25cbiAgICAgIGlmKGRhdGE/LmluY2x1ZGVzKCdDQ01NQycpKSB7XG4gICAgICAgIHRoaXMuaGFzUGVybWlzc2lvbi5uZXh0KHRydWUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuaGFzUGVybWlzc2lvbi5uZXh0KGZhbHNlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhPy5pbmNsdWRlcygnQ0NNTUMnKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaGVja1JCQUNQZXJtaXNzaW9uKCkge1xuICAgIC8vIFJlbW92ZSB0aGUgaW1tZWRpYXRlIHJldHVybiBmYWxzZVxuICAgIHRoaXMucmJhY1NlcnZpY2UuZ2V0UkJBQ0RhdGEoJ2Nhc2UnKS5zdWJzY3JpYmUoKGRhdGE6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gZGF0YT8uaW5jbHVkZXMoJ0NDTU1DJyk7XG4gICAgICB0aGlzLmhhc1Blcm1pc3Npb24ubmV4dChoYXNQZXJtaXNzaW9uKTtcbiAgICB9KTtcbiAgfVxufVxuIl19