@bnsights/bbsf-admin-portal 1.0.67 → 1.0.69

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.
Files changed (39) hide show
  1. package/README.md +15 -5
  2. package/{bnsights-bbsf-admin-portal-1.0.67.tgz → bnsights-bbsf-admin-portal-1.0.69.tgz} +0 -0
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js +57 -112
  4. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  5. package/esm2015/lib/Pages/_layout/components/topbar/topbar.component.js +1 -1
  6. package/esm2015/lib/Pages/departments/department/department.component.js +1 -2
  7. package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +1 -3
  8. package/esm2015/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.js +1 -1
  9. package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +2 -4
  10. package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +2 -4
  11. package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +1 -2
  12. package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +2 -3
  13. package/esm2015/lib/Pages/roles/permissions/permissions.component.js +1 -2
  14. package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +1 -2
  15. package/esm2015/lib/Pages/sectors/sector/sector.component.js +1 -2
  16. package/esm2015/lib/Pages/shared/components/external-url/external-url.component.js +3 -1
  17. package/esm2015/lib/Pages/shared/components/survey/add-survey/add-survey.component.js +3 -2
  18. package/esm2015/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.js +6 -7
  19. package/esm2015/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.js +3 -3
  20. package/esm2015/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.js +4 -2
  21. package/esm2015/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.js +4 -2
  22. package/esm2015/lib/Pages/shared/components/survey/survey-info/preview/preview.component.js +10 -3
  23. package/esm2015/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.js +2 -2
  24. package/esm2015/lib/Pages/shared/components/survey/survey-info/result-question/result.component.js +2 -2
  25. package/esm2015/lib/Pages/shared/components/survey/survey-info/survey-info.component.js +20 -63
  26. package/esm2015/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.js +2 -2
  27. package/esm2015/lib/Pages/shared/components/survey/survey.component.js +2 -2
  28. package/esm2015/lib/Pages/shared/components/survey-form/survey-form.component.js +3 -3
  29. package/esm2015/lib/Pages/shared/models/SurveyModels/add-survey-submissio.js +1 -1
  30. package/esm2015/lib/Pages/shared/modules/survey.module.js +3 -3
  31. package/fesm2015/bnsights-bbsf-admin-portal.js +57 -112
  32. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  33. package/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.d.ts +2 -1
  34. package/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.d.ts +2 -1
  35. package/lib/Pages/shared/components/survey/survey-info/preview/preview.component.d.ts +2 -1
  36. package/lib/Pages/shared/components/survey/survey-info/survey-info.component.d.ts +3 -0
  37. package/lib/Pages/shared/models/SurveyModels/add-survey-submissio.d.ts +1 -0
  38. package/package.json +2 -2
  39. package/src/lib/assets/sass/custom-styles.scss +29 -0
@@ -454,13 +454,13 @@ export class SurveyFormComponent {
454
454
  this.addShowedChildQuestions(element.value);
455
455
  debugger;
456
456
  if (filteredItem.isAllowScoring)
457
- score = ((_a = filteredItem.questionOptions.filter(item => item.iD_GUID == element.value)[0]) === null || _a === void 0 ? void 0 : _a.score) ? (_b = filteredItem.questionOptions) === null || _b === void 0 ? void 0 : _b.filter(item => item.iD_GUID == element.value)[0].score : 1;
457
+ score = ((_a = filteredItem.questionOptions.filter(item => item.iD_GUID == element.value)[0]) === null || _a === void 0 ? void 0 : _a.score) ? (_b = filteredItem.questionOptions) === null || _b === void 0 ? void 0 : _b.filter(item => item.iD_GUID == element.value)[0].score : 0;
458
458
  break;
459
459
  case SurveyOptionType.RadioButton.toLocaleLowerCase():
460
460
  item.SelectedIDs = [element.value];
461
461
  this.addShowedChildQuestions(element.value);
462
462
  if (filteredItem.isAllowScoring)
463
- score = ((_c = filteredItem.questionOptions.filter(item => item.iD_GUID == element.value)[0]) === null || _c === void 0 ? void 0 : _c.score) ? (_d = filteredItem.questionOptions) === null || _d === void 0 ? void 0 : _d.filter(item => item.iD_GUID == element.value)[0].score : 1;
463
+ score = ((_c = filteredItem.questionOptions.filter(item => item.iD_GUID == element.value)[0]) === null || _c === void 0 ? void 0 : _c.score) ? (_d = filteredItem.questionOptions) === null || _d === void 0 ? void 0 : _d.filter(item => item.iD_GUID == element.value)[0].score : 0;
464
464
  break;
465
465
  case SurveyOptionType.MultipleSelect.toLocaleLowerCase():
466
466
  item.SelectedIDs = element.value;
@@ -563,4 +563,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
563
563
  type: ViewChild,
564
564
  args: [NgForm]
565
565
  }] } });
566
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXktZm9ybS9zdXJ2ZXktZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1mb3JtL3N1cnZleS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLEtBQUssRUFBa0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBb0UsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkssT0FBTyxFQUFzQixhQUFhLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBMEIsa0JBQWtCLEVBQXFCLGNBQWMsRUFBRSxlQUFlLEVBQWdCLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBMkMsV0FBVyxFQUErQixpQkFBaUIsRUFBb0IscUJBQXFCLEVBQW1RLFFBQVEsRUFBb0Isa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlodkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7QUFPekYsTUFB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QUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUMxRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUVqRTtTQUVGO0lBRUgsQ0FBQzs7aUhBL2lCVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixzRkFGbkIsQ0FBQyxrQkFBa0IsQ0FBQyxrRUFLcEIsV0FBVyx3RkFDWCxxQkFBcUIsbUZBVXJCLE1BQU0sZ0RDOUJuQiw0RkFJQTs0RkRZYSxtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNoQztvTUFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNvQyxNQUFNO3NCQUEvQyxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3FCLE9BQU87c0JBQW5FLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVVoQyxnQkFBZ0I7c0JBQWxDLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4sIENvbnRyb2xDb250YWluZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQsIENvbnRyb2xMYXlvdXQsIElucHV0VHlwZSwgVGV4dEJveE9wdGlvbnMsIE1hcEF1dG9Db21wbGV0ZU9wdGlvbnMsIFRvZ2dsZVNsaWRlT3B0aW9ucywgSHRtbEVkaXRvck9wdGlvbnMsIEZvcmNlRGlyZWN0aW9uLCBUZXh0QXJlYU9wdGlvbnMsIFBob25lT3B0aW9ucywgSW1hZ2VVcGxvYWRPcHRpb25zLCBEcm9wZG93bk9wdGlvbnMsIFN0YXJ0VmlldywgU2VsZWN0TW9kZSwgUGlja2VyVHlwZSwgRGF0ZVBpY2tlck9wdGlvbnMsIEZvcm1PcHRpb25zLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUmFuZ2VOdW1iZXIsIE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucywgRmlsZVVwbG9hZE9wdGlvbnMsIFRleHRib3hDb21wb25lbnQsIERyb3Bkb3duTGlzdENvbXBvbmVudCwgRmlsZVVwbG9hZENvbXBvbmVudCwgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCwgUGhvbmVDb21wb25lbnQsIFRleHRBcmVhQ29tcG9uZW50LCBIdG1sRWRpdG9yQ29tcG9uZW50LCBUb2dnbGVzbGlkZUNvbXBvbmVudCwgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LCBSZW5kZXJDb21wb25lbnRTZXJ2aWNlLCBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50LCBMYW5ndWFnZVZhbGlkYXRpb24sIExhbmd1YWdlTW9kZSwgTWFwQXV0b2NvbXBsZXRlRFRPLCBGaWxlVHlwZSwgRHJvcGRvd25MaXN0SXRlbSwgUmFkaW9CdXR0b25PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IEZpbGVEVE8gfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1PcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktZm9ybS1vcHRpb25zJztcclxuaW1wb3J0IHsgQWREaXJlY3RpdmUgfSBmcm9tICcuLi9BZERpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN1cnZleUZpbGVkVmFsdWVEVE8gfSBmcm9tICcuLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS1maWxlZC12YWx1ZSc7XHJcbmltcG9ydCB7IFN1cnZleU9wdGlvblR5cGUgfSBmcm9tICcuLi8uLi9FbnVtcy9FbnVtcyc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VydmV5LWZvcm0taXRlbS9zdXJ2ZXktZm9ybS1pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3N1cnZleS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW0Zvcm1Hcm91cERpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogU3VydmV5Rm9ybU9wdGlvbnM7XHJcbiAgQFZpZXdDaGlsZChBZERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgYWRIb3N0ITogQWREaXJlY3RpdmU7XHJcbiAgQFZpZXdDaGlsZChEcm9wZG93bkxpc3RDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIG15Q2hpbGQ6IERyb3Bkb3duTGlzdENvbXBvbmVudDtcclxuXHJcbiAgZmlsZWRHcm91cDogRm9ybUdyb3VwO1xyXG4gIHJlc3VsdDogU3VydmV5RmlsZWRWYWx1ZURUT1tdID0gW107XHJcbiAgY2hpbGRJZExpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgY2hpbGRRdWVzdGlvbkxpc3Q6IGFueVtdID0gW107XHJcbiAgYXJlYU9mRm9jdXNDb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGNoYWxsZW5nZUNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgYXJlYU9mRm9jdXNDb250cm9sSW5kZXggPSAwO1xyXG4gIGNoYWxsZW5nZUNvbnRyb2xJbmRleCA9IDA7XHJcbiAgQFZpZXdDaGlsZChOZ0Zvcm0pIGRvY3VtZW50RWRpdEZvcm0hOiBOZ0Zvcm07XHJcbiAgaXNEZWxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGVja0xpc3Q6IGFueVtdID0gW107XHJcbiAgc2hvd2VkQ2hpbGRRdWVzdGlvbjogYW55W10gPSBbXTtcclxuICBUZXh0Q29udGV4dDogYW55XHJcbiAgaXNGaXJzdFZhbGlkOiBib29sZWFuID0gdHJ1ZTtcclxuICBsYWJlbENsYXNzOiBzdHJpbmc9XCJUZXN0dHNhZGZ2XCI7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyQ29tcG9uZW50U2VydmljZTogUmVuZGVyQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRleHRDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5hZEhvc3Qudmlld0NvbnRhaW5lclJlZjtcclxuICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIHRoaXMuZmlsZWRHcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCB0aGlzLmZpbGVkR3JvdXApO1xyXG5cclxuICAgIHRoaXMuZ3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coXCJHcm91cFwiLCBlKVxyXG4gICAgfSlcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuUXVlc3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3RbaW5kZXhdO1xyXG5cclxuICAgICAgc3dpdGNoIChlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRCkge1xyXG5cclxuICAgICAgICAvLy9UZXh0Qm94XHJcblxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5UZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICB2YXIgVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgVGV4dC5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIFRleHQuTGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YCA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgIFRleHQuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIFRleHQuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBUZXh0LklzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBUZXh0LklzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBUZXh0LkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBUZXh0LlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIFRleHQuTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWMgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUudGV4dClcclxuICAgICAgICAgICAgVGV4dC5WYWx1ZSA9IGVsZW1lbnQudmFsdWUudGV4dFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQuTWF4TGVuZ3RoID0gZWxlbWVudC5vcHRpb25zLm1heExlbmd0aFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQuTWluTGVuZ3RoID0gZWxlbWVudC5vcHRpb25zLm1pbkxlbmd0aFxyXG4gICAgICAgICAgVGV4dC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKFRleHQpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIFRleHQsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5FbWFpbC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IEVtYWlsID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBFbWFpbC5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIEVtYWlsLkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBFbWFpbC5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgRW1haWwuTGFiZWxFeHRyYUNsYXNzZXMgPXRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEVtYWlsLklzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24gPyBmYWxzZSA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgRW1haWwuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIEVtYWlsLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIEVtYWlsLklzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBFbWFpbC5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBFbWFpbC5UeXBlID0gSW5wdXRUeXBlLkVtYWlsO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUudGV4dClcclxuICAgICAgICAgICAgRW1haWwuVmFsdWUgPSBlbGVtZW50LnZhbHVlLnRleHRcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goRW1haWwpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIEVtYWlsLCBlbGVtZW50Lm9wdGlvbnMuc2l6ZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXIudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBOdW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgIE51bWJlci5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIE51bWJlci5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgTnVtYmVyLkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBOdW1iZXIuTGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YCA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgIE51bWJlci5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIE51bWJlci5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgTnVtYmVyLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIE51bWJlci5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTnVtYmVyLkxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2hcclxuICAgICAgICAgIE51bWJlci5UeXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgICAgIGxldCByYW5nZU51bWJlciA9IG5ldyBSYW5nZU51bWJlcigpXHJcbiAgICAgICAgICByYW5nZU51bWJlci5UbyA9IGVsZW1lbnQub3B0aW9ucy5tYXhMZW5ndGhcclxuICAgICAgICAgIHJhbmdlTnVtYmVyLkZyb20gPSBlbGVtZW50Lm9wdGlvbnMubWluTGVuZ3RoXHJcbiAgICAgICAgICBOdW1iZXIuTnVtYmVyUmFuZ2UgPSByYW5nZU51bWJlcjtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnRleHQpXHJcbiAgICAgICAgICAgIE51bWJlci5WYWx1ZSA9IGVsZW1lbnQudmFsdWUudGV4dFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChOdW1iZXIpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIE51bWJlciwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLy9EYXRlVGltZVxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5EYXRlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgRGF0ZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgRGF0ZS5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIERhdGUuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIERhdGUuTGFiZWxFeHRyYUNsYXNzZXMgPXRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIERhdGUuTGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YCA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgIERhdGUuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBEYXRlLklzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBEYXRlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIERhdGUuSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIERhdGUuTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWMgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaFxyXG4gICAgICAgICAgRGF0ZS5QaWNrZXJUeXBlID0gUGlja2VyVHlwZS5DYWxlbmRhcjtcclxuICAgICAgICAgIERhdGUuU2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlXHJcbiAgICAgICAgICBEYXRlLlN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZGF0ZVRpbWUpXHJcbiAgICAgICAgICAgIERhdGUuVmFsdWUgPSBlbGVtZW50LnZhbHVlLmRhdGVUaW1lXHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKERhdGUpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIERhdGUsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkRhdGVUaW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgRGF0ZVRpbWUgPSBuZXcgRGF0ZVBpY2tlck9wdGlvbnMoKTtcclxuICAgICAgICAgIERhdGVUaW1lLk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgRGF0ZVRpbWUuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIERhdGVUaW1lLkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBEYXRlVGltZS5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgRGF0ZVRpbWUuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBEYXRlVGltZS5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIERhdGVUaW1lLkxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2hcclxuICAgICAgICAgIERhdGVUaW1lLlBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLkJvdGg7XHJcbiAgICAgICAgICBEYXRlVGltZS5TZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5TaW5nbGVcclxuICAgICAgICAgIERhdGVUaW1lLlN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZGF0ZVRpbWUpXHJcbiAgICAgICAgICAgIERhdGVUaW1lLlZhbHVlID0gZWxlbWVudC52YWx1ZS5kYXRlVGltZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChEYXRlVGltZSk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsIHRoaXMuZmlsZWRHcm91cCwgRGF0ZVRpbWUsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9Ecm9wZG93blxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3QudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBTaW5nbGVTZWxlY3QgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuTmFtZSA9IFwicVwiICsgZWxlbWVudC5pRF9HVUlEXHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5QbGFjZWhvbGRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVmYXVsdE9wdGlvblRleHQnKTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBsZXQgZGF0YVNvdXJjZTogYW55W10gPSBbXVxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQucXVlc3Rpb25PcHRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBlbGVtZW50LnF1ZXN0aW9uT3B0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgaXRlbS5rZXkgPSBvcHRpb24uaURfR1VJRFxyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gb3B0aW9uLm5hbWUuYXJhYmljIDogb3B0aW9uLm5hbWUuZW5nbGlzaFxyXG4gICAgICAgICAgICBkYXRhU291cmNlLnB1c2goaXRlbSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5EYXRhU291cmNlID0gZGF0YVNvdXJjZVxyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LlNpbmdsZVNlbGVjdGlvbiA9IHRydWVcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5TaG93Q2hlY2tib3ggPSBmYWxzZVxyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIFNpbmdsZVNlbGVjdC5TZWxlY3RlZEl0ZW1zID0gZWxlbWVudC52YWx1ZS5zZWxlY3RlZElEc1swXVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChTaW5nbGVTZWxlY3QpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIFNpbmdsZVNlbGVjdCwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuUmFkaW9CdXR0b24udG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCByYWRpb0J1dHRvbiA9IG5ldyBSYWRpb0J1dHRvbk9wdGlvbnMoKTtcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgcmFkaW9CdXR0b24uSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgcmFkaW9CdXR0b24uSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24uVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24uSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLkxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2hcclxuICAgICAgICAgIGxldCBkYXRhU291cmNlUmFkaW86IGFueVtdID0gW11cclxuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50LnF1ZXN0aW9uT3B0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZWxlbWVudC5xdWVzdGlvbk9wdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgICBsZXQgaXRlbTogYW55ID0ge307XHJcbiAgICAgICAgICAgIGl0ZW0uVmFsdWUgPSBvcHRpb24uaURfR1VJRFxyXG4gICAgICAgICAgICBpdGVtLlRleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBvcHRpb24ubmFtZS5hcmFiaWMgOiBvcHRpb24ubmFtZS5lbmdsaXNoXHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2VSYWRpby5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5JdGVtcyA9IGRhdGFTb3VyY2VSYWRpb1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIHJhZGlvQnV0dG9uLlZhbHVlID0gZWxlbWVudC52YWx1ZS5zZWxlY3RlZElEc1swXVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChyYWRpb0J1dHRvbik7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsIHRoaXMuZmlsZWRHcm91cCwgcmFkaW9CdXR0b24sIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgTXVsaXBsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuTmFtZSA9IFwicVwiICsgZWxlbWVudC5pRF9HVUlEXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LkhpZGVMYWJlbCA9IGZhbHNlXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LklzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24gPyBmYWxzZSA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5QbGFjZWhvbGRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVmYXVsdE9wdGlvblRleHQnKTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBsZXQgbXVsdGlwbGVTZWxlY3REYXRhU291cmNlOiBEcm9wZG93bkxpc3RJdGVtW10gPSBbXVxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQucXVlc3Rpb25PcHRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBlbGVtZW50LnF1ZXN0aW9uT3B0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgaXRlbS5rZXkgPSBvcHRpb24uaURfR1VJRFxyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gb3B0aW9uLm5hbWUuYXJhYmljIDogb3B0aW9uLm5hbWUuZW5nbGlzaFxyXG4gICAgICAgICAgICBtdWx0aXBsZVNlbGVjdERhdGFTb3VyY2UucHVzaChpdGVtKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5EYXRhU291cmNlID0gbXVsdGlwbGVTZWxlY3REYXRhU291cmNlXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LlNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LlNob3dDaGVja2JveCA9IGZhbHNlXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIE11bGlwbGVTZWxlY3QuU2VsZWN0ZWRJdGVtcyA9IGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHNcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsaXBsZVNlbGVjdCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsIHRoaXMuZmlsZWRHcm91cCwgTXVsaXBsZVNlbGVjdCwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQ291bnRyeS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IENvdW50cnkgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBDb3VudHJ5Lk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgQ291bnRyeS5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgQ291bnRyeS5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgQ291bnRyeS5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgQ291bnRyeS5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIENvdW50cnkuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIENvdW50cnkuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgQ291bnRyeS5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgQ291bnRyeS5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBDb3VudHJ5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWVcclxuICAgICAgICAgIENvdW50cnkuU2hvd0NoZWNrYm94ID0gZmFsc2VcclxuICAgICAgICAgIENvdW50cnkuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlXHJcbiAgICAgICAgICBDb3VudHJ5LkRhdGFTb3VyY2UgPSBlbGVtZW50Lm9wdGlvbnMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIENvdW50cnkuU2VsZWN0ZWRJdGVtcyA9IGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHNbMF1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goQ291bnRyeSk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsIHRoaXMuZmlsZWRHcm91cCwgQ291bnRyeSwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL0ZpbGVVcGxvYWRcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlGaWxlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgTXVsdGlGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBNdWx0aUZpbGUuTmFtZSA9IFwicVwiICsgZWxlbWVudC5pRF9HVUlEXHJcbiAgICAgICAgICBNdWx0aUZpbGUuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIE11bHRpRmlsZS5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBNdWx0aUZpbGUuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBNdWx0aUZpbGUuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIE11bHRpRmlsZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBNdWx0aUZpbGUuSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIE11bHRpRmlsZS5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBNdWx0aUZpbGUuTWF4U2l6ZUZvckFsbEZpbGVzSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgIE11bHRpRmlsZS5NYXhOb09mRmlsZXMgPSBlbGVtZW50Lm9wdGlvbnMubWF4RmlsZUNvdW50XHJcbiAgICAgICAgICBNdWx0aUZpbGUuSXNNdWx0aXBsZUZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgbGV0IGFjY2VwdGVkVHlwZXM6IEZpbGVUeXBlW10gPSBbXVxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQub3B0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFZhbHVlID0gZWxlbWVudC5vcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zW2luZGV4XTtcclxuICAgICAgICAgICAgc3dpdGNoIChlbGVtZW50VmFsdWUpIHtcclxuICAgICAgICAgICAgICBjYXNlIFwiMFwiOlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRUeXBlcy5wdXNoKEZpbGVUeXBlLlBERilcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCIxXCI6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuV29yZClcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCIyXCI6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuRXhjZWwpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIE11bHRpRmlsZS5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gYWNjZXB0ZWRUeXBlc1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZmlsZUNvcnJlbGF0aW9uRFRPKSB7XHJcbiAgICAgICAgICAgIGxldCBtb2RlbCA9IHRoaXMudG9DYW1lbChlbGVtZW50LnZhbHVlLmZpbGVDb3JyZWxhdGlvbkRUTylcclxuICAgICAgICAgICAgTXVsdGlGaWxlLlZhbHVlID0gbW9kZWxcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsdGlGaWxlKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCwgdGhpcy5maWxlZEdyb3VwLCBNdWx0aUZpbGUsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkZpbGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBGaWxlLk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgRmlsZS5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgRmlsZS5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgRmlsZS5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgRmlsZS5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIEZpbGUuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIEZpbGUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgRmlsZS5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgRmlsZS5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBGaWxlLkZpbGVNYXhTaXplSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuXHJcbiAgICAgICAgICBsZXQgYWNjZXB0ZWRUeXBlc0ZpbGU6IEZpbGVUeXBlW10gPSBbXVxyXG4gICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudC5vcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VmFsdWUgPSBlbGVtZW50Lm9wdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGVsZW1lbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCIwXCI6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzRmlsZS5wdXNoKEZpbGVUeXBlLlBERilcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCIxXCI6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzRmlsZS5wdXNoKEZpbGVUeXBlLldvcmQpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwiMlwiOlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRUeXBlc0ZpbGUucHVzaChGaWxlVHlwZS5FeGNlbClcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZmlsZURUTykge1xyXG4gICAgICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLnRvQ2FtZWwoZWxlbWVudC52YWx1ZS5maWxlRFRPKSBhcyBGaWxlRFRPXHJcbiAgICAgICAgICAgIEZpbGUuVmFsdWUgPSBtb2RlbFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgRmlsZS5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gYWNjZXB0ZWRUeXBlc0ZpbGU7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKEZpbGUpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIEZpbGUsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9JbWFnZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5JbWFnZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IEltYWdlID0gbmV3IEltYWdlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgICAgICAgSW1hZ2UuTmFtZSA9IFwicVwiICsgZWxlbWVudC5pRF9HVUlEXHJcbiAgICAgICAgICBJbWFnZS5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgSW1hZ2UuTGFiZWxFeHRyYUNsYXNzZXMgPXRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEltYWdlLkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBJbWFnZS5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIEltYWdlLklzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBJbWFnZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBJbWFnZS5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgSW1hZ2UuTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWMgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUIpXHJcbiAgICAgICAgICAgIEltYWdlLkZpbGVNYXhTaXplSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goSW1hZ2UpO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZmlsZURUTylcclxuICAgICAgICAgICAgSW1hZ2UuVmFsdWUgPSBlbGVtZW50LnZhbHVlLmZpbGVEVE9cclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCwgdGhpcy5maWxlZEdyb3VwLCBJbWFnZSwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL011bHRpbGluZVRleHRcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlsaW5lVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IE11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0Lk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5vcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgTXVsdGlsaW5lVGV4dC5NYXhMZW5ndGggPSBlbGVtZW50Lm9wdGlvbnMubWF4TGVuZ3RoXHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5vcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgTXVsdGlsaW5lVGV4dC5NaW5MZW5ndGggPSBlbGVtZW50Lm9wdGlvbnMubWluTGVuZ3RoXHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LlJvd3MgPSBlbGVtZW50Lm9wdGlvbnMucm93cztcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnRleHQpXHJcbiAgICAgICAgICAgIE11bHRpbGluZVRleHQuVmFsdWUgPSBlbGVtZW50LnZhbHVlLnRleHRcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsdGlsaW5lVGV4dCk7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LkZvcmNlRGlyZWN0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gRm9yY2VEaXJlY3Rpb24uQXJhYmljIDogRm9yY2VEaXJlY3Rpb24uRW5nbGlzaFxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIE11bHRpbGluZVRleHQsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9IVE1MXHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkJvb2xlYW4udG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBCb29sZWFuID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgQm9vbGVhbi5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIEJvb2xlYW4uTGFiZWxFeHRyYUNsYXNzZXMgPXRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEJvb2xlYW4uVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgQm9vbGVhbi5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgQm9vbGVhbi5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgQm9vbGVhbi5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuYm9vbGVhbilcclxuICAgICAgICAgIEJvb2xlYW4uVmFsdWUgPSBlbGVtZW50LnZhbHVlLmJvb2xlYW5cclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goQm9vbGVhbik7XHJcbiAgICAgICAgICBCb29sZWFuLkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBCb29sZWFuLkxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2hcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCwgdGhpcy5maWxlZEdyb3VwLCBCb29sZWFuLCBlbGVtZW50Lm9wdGlvbnMuc2l6ZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vTG9jYXRpb25cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5vcHRpb25zLlJlYWRvbmx5KVxyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuY2hlY2tMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgIFxyXG4gICAgIGlmKCB0aGlzLmNoZWNrTGlzdFtpbmRleF0uVmFsdWUpXHJcbiAgICAge1xyXG4gICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBcclxuIFxyXG4gICAgdGhpcy5maWxlZEdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGVzKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmlsZWRHcm91cClcclxuICAgICAgdGhpcy5yZXN1bHQgPSBbXTtcclxuICAgICAgdGhpcy5zaG93ZWRDaGlsZFF1ZXN0aW9uID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZmlsZWRHcm91cC5jb250cm9scykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5maWxlZEdyb3VwLmNvbnRyb2xzLCBrZXkpKSB7XHJcbiAgICAgICAgICBsZXQgc2NvcmUgPSAwO1xyXG4gICAgICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLmZpbGVkR3JvdXAuY29udHJvbHNba2V5XTtcclxuICAgICAgICAgIGxldCBpZCA9IGtleS5yZXBsYWNlKCdxJywgJycpO1xyXG4gICAgICAgICAgdmFyIGZpbHRlcmVkSXRlbSA9IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pRF9HVUlEID09IGlkKVswXTtcclxuXHJcbiAgICAgICAgICBsZXQgaXRlbSA9IG5ldyBTdXJ2ZXlGaWxlZFZhbHVlRFRPKClcclxuICAgICAgICAgIGl0ZW0uUXVlc3Rpb25GaWVsZElEID0gaWQ7XHJcbiAgICAgICAgICBpdGVtLlF1ZXN0aW9uVHlwZUl0ZW1JRCA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvblR5cGVJdGVtSURcclxuICAgICAgICAgIHN3aXRjaCAoZmlsdGVyZWRJdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCkge1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uVGV4dCA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5FbWFpbC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uVGV4dCA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXIudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlRleHQgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aWxpbmVUZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5UZXh0ID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkJvb2xlYW4udG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLkJvb2xlYW4gPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRGF0ZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uRGF0ZVRpbWUgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkRhdGVUaW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5EYXRlVGltZSA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3QudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlNlbGVjdGVkSURzID0gW2VsZW1lbnQudmFsdWVdO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkU2hvd2VkQ2hpbGRRdWVzdGlvbnMoZWxlbWVudC52YWx1ZSlcclxuICAgICAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRJdGVtLmlzQWxsb3dTY29yaW5nKVxyXG4gICAgICAgICAgICAgICAgc2NvcmUgPSBmaWx0ZXJlZEl0ZW0ucXVlc3Rpb25PcHRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaURfR1VJRCA9PSBlbGVtZW50LnZhbHVlKVswXT8uc2NvcmUgPyBmaWx0ZXJlZEl0ZW0ucXVlc3Rpb25PcHRpb25zPy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlEX0dVSUQgPT0gZWxlbWVudC52YWx1ZSlbMF0uc2NvcmUgOiAxXHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5SYWRpb0J1dHRvbi50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uU2VsZWN0ZWRJRHMgPSBbZWxlbWVudC52YWx1ZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5hZGRTaG93ZWRDaGlsZFF1ZXN0aW9ucyhlbGVtZW50LnZhbHVlKVxyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJlZEl0ZW0uaXNBbGxvd1Njb3JpbmcpXHJcbiAgICAgICAgICAgICAgICBzY29yZSA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pRF9HVUlEID09IGVsZW1lbnQudmFsdWUpWzBdPy5zY29yZSA/IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnM/LmZpbHRlcihpdGVtID0+IGl0ZW0uaURfR1VJRCA9PSBlbGVtZW50LnZhbHVlKVswXS5zY29yZSA6IDFcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5TZWxlY3RlZElEcyA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUpXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudC52YWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGVsZW1lbnQudmFsdWVbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFkZFNob3dlZENoaWxkUXVlc3Rpb25zKGl0ZW0pXHJcbiAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZEl0ZW0uaXNBbGxvd1Njb3JpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc2NvcmVWYWx1ZSA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnMuZmlsdGVyKGl0ZW1PcHRpb25zID0+IGl0ZW1PcHRpb25zLmlEX0dVSUQgPT0gaXRlbSlbMF0/LnNjb3JlID8gZmlsdGVyZWRJdGVtLnF1ZXN0aW9uT3B0aW9ucz8uZmlsdGVyKGl0ZW1PcHRpb25zID0+IGl0ZW1PcHRpb25zLmlEX0dVSUQgPT0gaXRlbSlbMF0uc2NvcmUgOiAwXHJcbiAgICAgICAgICAgICAgICAgICAgc2NvcmUgPSBzY29yZVZhbHVlICsgc2NvcmVcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkNvdW50cnkudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlNlbGVjdGVkSURzID0gW2VsZW1lbnQudmFsdWVdO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuSW1hZ2UudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLkZpbGVEVE8gPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRmlsZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgaXRlbS5GaWxlRFRPID0gZWxlbWVudC52YWx1ZS5GaWxlID8gZWxlbWVudC52YWx1ZS5GaWxlIDogZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpRmlsZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uRmlsZUNvcnJlbGF0aW9uRFRPID0gZWxlbWVudC52YWx1ZVxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZmlsdGVyZWRJdGVtLnZhbHVlID0gaXRlbTtcclxuICAgICAgICAgIGZpbHRlcmVkSXRlbS52YWx1ZS5zY29yZSA9IHNjb3JlO1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQucHVzaChpdGVtKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9wdGlvbnMuVmFsdWVzTGlzdCA9IHRoaXMucmVzdWx0XHJcbiAgICAgIHRoaXMuY2hhbmdlSGlkZGVuUXVlc3Rpb25zU3RhdHVzKClcclxuICAgIH0pXHJcblxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGFkZFNob3dlZENoaWxkUXVlc3Rpb25zKG5ld0tleSkge1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIHZhciBxdWVzdGlvbk9wdGlvbiA9IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3RbaW5kZXhdLnF1ZXN0aW9uT3B0aW9ucztcclxuICAgICAgbGV0IE9wdGlvbiA9IHF1ZXN0aW9uT3B0aW9uLmZpbHRlcih4ID0+IHguaURfR1VJRCA9PT0gbmV3S2V5KVswXTtcclxuICAgICAgaWYgKE9wdGlvbiAmJiBPcHRpb24/LmxpbmtlZFF1ZXN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE9wdGlvbi5saW5rZWRRdWVzdGlvbnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBsaW5rZWRRdWVzdGlvbiA9IE9wdGlvbi5saW5rZWRRdWVzdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgbGV0IGNoZWNrSXNRdWVzdGlvbkV4aXN0ID0gdGhpcy5zaG93ZWRDaGlsZFF1ZXN0aW9uLnNvbWUoeCA9PiB4ID09PSBgcSR7bGlua2VkUXVlc3Rpb259YCk7XHJcbiAgICAgICAgICBpZiAoIWNoZWNrSXNRdWVzdGlvbkV4aXN0KVxyXG4gICAgICAgICAgICB0aGlzLnNob3dlZENoaWxkUXVlc3Rpb24ucHVzaChgcSR7bGlua2VkUXVlc3Rpb259YClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlSGlkZGVuUXVlc3Rpb25zU3RhdHVzKCkge1xyXG4gICAgbGV0IHF1ZXN0aW9ucyA9IHRoaXMuc2hvd2VkQ2hpbGRRdWVzdGlvbjtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmNoZWNrTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgbGV0IGNoZWNrSWZFeGlzdCA9IHRoaXMuc2hvd2VkQ2hpbGRRdWVzdGlvbi5zb21lKHggPT4geCA9PT0gdGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpXHJcbiAgICAgIGlmIChjaGVja0lmRXhpc3QpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25JZCA9IHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lLnJlcGxhY2UoJ3EnLCAnJyk7XHJcbiAgICAgICAgbGV0IFF1ZXN0aW9uID0gdGhpcy5vcHRpb25zLlF1ZXN0aW9uTGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmlEX0dVSUQgPT0gcXVlc3Rpb25JZClbMF07XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICBpZiAoUXVlc3Rpb24ub3B0aW9ucy5pc1JlcXVpcmVkICYmICF0aGlzLmNoZWNrTGlzdFtpbmRleF0uSXNSZXF1aXJlZCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5maWxlZEdyb3VwLmdldCh0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZSkuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICAgICAgaWYgKHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnZhbHVlID09IG51bGwgfHwgdGhpcy5maWxlZEdyb3VwLmdldCh0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZSkudmFsdWUgPT0gdW5kZWZpbmVkIHx8IHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnZhbHVlID09IFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnNldEVycm9ycyh7ICdyZXF1aXJlZCc6IHRydWUgfSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnNldEVycm9ycyhudWxsKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tMaXN0W2luZGV4XS5Jc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLlZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZpbGVkR3JvdXAuY29udHJvbHNbdGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWVdLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuICAgICAgICB0aGlzLmZpbGVkR3JvdXAuZ2V0KHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lKS5zZXRFcnJvcnMobnVsbCk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHRvQ2FtZWwgPSAob2JqKSA9PiB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICAgIHJldHVybiBvYmoubWFwKHYgPT4gdGhpcy50b0NhbWVsKHYpKTtcclxuICAgIH0gZWxzZSBpZiAob2JqICE9IG51bGwgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlUmlnaHQoXHJcbiAgICAgICAgKHJlc3VsdCwga2V5KSA9PiAoe1xyXG4gICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgWyhrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSkgfHwga2V5KS50b1N0cmluZygpXTogdGhpcy50b0NhbWVsKG9ialtrZXldKSxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7fSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfTtcclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3XCI+XHJcbiAgICA8bmctdGVtcGxhdGUgYWRIb3N0PjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5cclxuIl19
566
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXktZm9ybS9zdXJ2ZXktZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1mb3JtL3N1cnZleS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLEtBQUssRUFBa0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBb0UsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkssT0FBTyxFQUFzQixhQUFhLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBMEIsa0JBQWtCLEVBQXFCLGNBQWMsRUFBRSxlQUFlLEVBQWdCLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBMkMsV0FBVyxFQUErQixpQkFBaUIsRUFBb0IscUJBQXFCLEVBQW1RLFFBQVEsRUFBb0Isa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlodkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7QUFPekYsTUFB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QUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUMxRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUVqRTtTQUVGO0lBRUgsQ0FBQzs7aUhBL2lCVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixzRkFGbkIsQ0FBQyxrQkFBa0IsQ0FBQyxrRUFLcEIsV0FBVyx3RkFDWCxxQkFBcUIsbUZBVXJCLE1BQU0sZ0RDOUJuQiw0RkFJQTs0RkRZYSxtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNoQztvTUFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNvQyxNQUFNO3NCQUEvQyxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3FCLE9BQU87c0JBQW5FLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVVoQyxnQkFBZ0I7c0JBQWxDLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4sIENvbnRyb2xDb250YWluZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQsIENvbnRyb2xMYXlvdXQsIElucHV0VHlwZSwgVGV4dEJveE9wdGlvbnMsIE1hcEF1dG9Db21wbGV0ZU9wdGlvbnMsIFRvZ2dsZVNsaWRlT3B0aW9ucywgSHRtbEVkaXRvck9wdGlvbnMsIEZvcmNlRGlyZWN0aW9uLCBUZXh0QXJlYU9wdGlvbnMsIFBob25lT3B0aW9ucywgSW1hZ2VVcGxvYWRPcHRpb25zLCBEcm9wZG93bk9wdGlvbnMsIFN0YXJ0VmlldywgU2VsZWN0TW9kZSwgUGlja2VyVHlwZSwgRGF0ZVBpY2tlck9wdGlvbnMsIEZvcm1PcHRpb25zLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUmFuZ2VOdW1iZXIsIE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucywgRmlsZVVwbG9hZE9wdGlvbnMsIFRleHRib3hDb21wb25lbnQsIERyb3Bkb3duTGlzdENvbXBvbmVudCwgRmlsZVVwbG9hZENvbXBvbmVudCwgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCwgUGhvbmVDb21wb25lbnQsIFRleHRBcmVhQ29tcG9uZW50LCBIdG1sRWRpdG9yQ29tcG9uZW50LCBUb2dnbGVzbGlkZUNvbXBvbmVudCwgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LCBSZW5kZXJDb21wb25lbnRTZXJ2aWNlLCBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50LCBMYW5ndWFnZVZhbGlkYXRpb24sIExhbmd1YWdlTW9kZSwgTWFwQXV0b2NvbXBsZXRlRFRPLCBGaWxlVHlwZSwgRHJvcGRvd25MaXN0SXRlbSwgUmFkaW9CdXR0b25PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IEZpbGVEVE8gfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1PcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktZm9ybS1vcHRpb25zJztcclxuaW1wb3J0IHsgQWREaXJlY3RpdmUgfSBmcm9tICcuLi9BZERpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN1cnZleUZpbGVkVmFsdWVEVE8gfSBmcm9tICcuLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS1maWxlZC12YWx1ZSc7XHJcbmltcG9ydCB7IFN1cnZleU9wdGlvblR5cGUgfSBmcm9tICcuLi8uLi9FbnVtcy9FbnVtcyc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VydmV5LWZvcm0taXRlbS9zdXJ2ZXktZm9ybS1pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3N1cnZleS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW0Zvcm1Hcm91cERpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogU3VydmV5Rm9ybU9wdGlvbnM7XHJcbiAgQFZpZXdDaGlsZChBZERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgYWRIb3N0ITogQWREaXJlY3RpdmU7XHJcbiAgQFZpZXdDaGlsZChEcm9wZG93bkxpc3RDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIG15Q2hpbGQ6IERyb3Bkb3duTGlzdENvbXBvbmVudDtcclxuXHJcbiAgZmlsZWRHcm91cDogRm9ybUdyb3VwO1xyXG4gIHJlc3VsdDogU3VydmV5RmlsZWRWYWx1ZURUT1tdID0gW107XHJcbiAgY2hpbGRJZExpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgY2hpbGRRdWVzdGlvbkxpc3Q6IGFueVtdID0gW107XHJcbiAgYXJlYU9mRm9jdXNDb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGNoYWxsZW5nZUNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgYXJlYU9mRm9jdXNDb250cm9sSW5kZXggPSAwO1xyXG4gIGNoYWxsZW5nZUNvbnRyb2xJbmRleCA9IDA7XHJcbiAgQFZpZXdDaGlsZChOZ0Zvcm0pIGRvY3VtZW50RWRpdEZvcm0hOiBOZ0Zvcm07XHJcbiAgaXNEZWxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGVja0xpc3Q6IGFueVtdID0gW107XHJcbiAgc2hvd2VkQ2hpbGRRdWVzdGlvbjogYW55W10gPSBbXTtcclxuICBUZXh0Q29udGV4dDogYW55XHJcbiAgaXNGaXJzdFZhbGlkOiBib29sZWFuID0gdHJ1ZTtcclxuICBsYWJlbENsYXNzOiBzdHJpbmc9XCJUZXN0dHNhZGZ2XCI7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyQ29tcG9uZW50U2VydmljZTogUmVuZGVyQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRleHRDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5hZEhvc3Qudmlld0NvbnRhaW5lclJlZjtcclxuICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIHRoaXMuZmlsZWRHcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCB0aGlzLmZpbGVkR3JvdXApO1xyXG5cclxuICAgIHRoaXMuZ3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coXCJHcm91cFwiLCBlKVxyXG4gICAgfSlcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuUXVlc3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3RbaW5kZXhdO1xyXG5cclxuICAgICAgc3dpdGNoIChlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRCkge1xyXG5cclxuICAgICAgICAvLy9UZXh0Qm94XHJcblxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5UZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICB2YXIgVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgVGV4dC5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIFRleHQuTGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YCA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgIFRleHQuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIFRleHQuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBUZXh0LklzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBUZXh0LklzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBUZXh0LkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBUZXh0LlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIFRleHQuTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWMgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUudGV4dClcclxuICAgICAgICAgICAgVGV4dC5WYWx1ZSA9IGVsZW1lbnQudmFsdWUudGV4dFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQuTWF4TGVuZ3RoID0gZWxlbWVudC5vcHRpb25zLm1heExlbmd0aFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQuTWluTGVuZ3RoID0gZWxlbWVudC5vcHRpb25zLm1pbkxlbmd0aFxyXG4gICAgICAgICAgVGV4dC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKFRleHQpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIFRleHQsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5FbWFpbC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IEVtYWlsID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBFbWFpbC5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIEVtYWlsLkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBFbWFpbC5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgRW1haWwuTGFiZWxFeHRyYUNsYXNzZXMgPXRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEVtYWlsLklzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24gPyBmYWxzZSA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgRW1haWwuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIEVtYWlsLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIEVtYWlsLklzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBFbWFpbC5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBFbWFpbC5UeXBlID0gSW5wdXRUeXBlLkVtYWlsO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUudGV4dClcclxuICAgICAgICAgICAgRW1haWwuVmFsdWUgPSBlbGVtZW50LnZhbHVlLnRleHRcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goRW1haWwpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIEVtYWlsLCBlbGVtZW50Lm9wdGlvbnMuc2l6ZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXIudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBOdW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgIE51bWJlci5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIE51bWJlci5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgTnVtYmVyLkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBOdW1iZXIuTGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YCA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgIE51bWJlci5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIE51bWJlci5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgTnVtYmVyLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIE51bWJlci5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTnVtYmVyLkxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2hcclxuICAgICAgICAgIE51bWJlci5UeXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgICAgIGxldCByYW5nZU51bWJlciA9IG5ldyBSYW5nZU51bWJlcigpXHJcbiAgICAgICAgICByYW5nZU51bWJlci5UbyA9IGVsZW1lbnQub3B0aW9ucy5tYXhMZW5ndGhcclxuICAgICAgICAgIHJhbmdlTnVtYmVyLkZyb20gPSBlbGVtZW50Lm9wdGlvbnMubWluTGVuZ3RoXHJcbiAgICAgICAgICBOdW1iZXIuTnVtYmVyUmFuZ2UgPSByYW5nZU51bWJlcjtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnRleHQpXHJcbiAgICAgICAgICAgIE51bWJlci5WYWx1ZSA9IGVsZW1lbnQudmFsdWUudGV4dFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChOdW1iZXIpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIE51bWJlciwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLy9EYXRlVGltZVxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5EYXRlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgRGF0ZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgRGF0ZS5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIERhdGUuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIERhdGUuTGFiZWxFeHRyYUNsYXNzZXMgPXRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIERhdGUuTGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YCA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgIERhdGUuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBEYXRlLklzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBEYXRlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIERhdGUuSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIERhdGUuTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWMgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaFxyXG4gICAgICAgICAgRGF0ZS5QaWNrZXJUeXBlID0gUGlja2VyVHlwZS5DYWxlbmRhcjtcclxuICAgICAgICAgIERhdGUuU2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlXHJcbiAgICAgICAgICBEYXRlLlN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZGF0ZVRpbWUpXHJcbiAgICAgICAgICAgIERhdGUuVmFsdWUgPSBlbGVtZW50LnZhbHVlLmRhdGVUaW1lXHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKERhdGUpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIERhdGUsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkRhdGVUaW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgRGF0ZVRpbWUgPSBuZXcgRGF0ZVBpY2tlck9wdGlvbnMoKTtcclxuICAgICAgICAgIERhdGVUaW1lLk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgRGF0ZVRpbWUuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIERhdGVUaW1lLkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBEYXRlVGltZS5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgRGF0ZVRpbWUuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBEYXRlVGltZS5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIERhdGVUaW1lLkxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2hcclxuICAgICAgICAgIERhdGVUaW1lLlBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLkJvdGg7XHJcbiAgICAgICAgICBEYXRlVGltZS5TZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5TaW5nbGVcclxuICAgICAgICAgIERhdGVUaW1lLlN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZGF0ZVRpbWUpXHJcbiAgICAgICAgICAgIERhdGVUaW1lLlZhbHVlID0gZWxlbWVudC52YWx1ZS5kYXRlVGltZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChEYXRlVGltZSk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsIHRoaXMuZmlsZWRHcm91cCwgRGF0ZVRpbWUsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9Ecm9wZG93blxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3QudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBTaW5nbGVTZWxlY3QgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuTmFtZSA9IFwicVwiICsgZWxlbWVudC5pRF9HVUlEXHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5QbGFjZWhvbGRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVmYXVsdE9wdGlvblRleHQnKTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBsZXQgZGF0YVNvdXJjZTogYW55W10gPSBbXVxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQucXVlc3Rpb25PcHRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBlbGVtZW50LnF1ZXN0aW9uT3B0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgaXRlbS5rZXkgPSBvcHRpb24uaURfR1VJRFxyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gb3B0aW9uLm5hbWUuYXJhYmljIDogb3B0aW9uLm5hbWUuZW5nbGlzaFxyXG4gICAgICAgICAgICBkYXRhU291cmNlLnB1c2goaXRlbSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5EYXRhU291cmNlID0gZGF0YVNvdXJjZVxyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LlNpbmdsZVNlbGVjdGlvbiA9IHRydWVcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5TaG93Q2hlY2tib3ggPSBmYWxzZVxyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIFNpbmdsZVNlbGVjdC5TZWxlY3RlZEl0ZW1zID0gZWxlbWVudC52YWx1ZS5zZWxlY3RlZElEc1swXVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChTaW5nbGVTZWxlY3QpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIFNpbmdsZVNlbGVjdCwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuUmFkaW9CdXR0b24udG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCByYWRpb0J1dHRvbiA9IG5ldyBSYWRpb0J1dHRvbk9wdGlvbnMoKTtcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgcmFkaW9CdXR0b24uSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgcmFkaW9CdXR0b24uSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24uVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24uSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLkxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2hcclxuICAgICAgICAgIGxldCBkYXRhU291cmNlUmFkaW86IGFueVtdID0gW11cclxuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50LnF1ZXN0aW9uT3B0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZWxlbWVudC5xdWVzdGlvbk9wdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgICBsZXQgaXRlbTogYW55ID0ge307XHJcbiAgICAgICAgICAgIGl0ZW0uVmFsdWUgPSBvcHRpb24uaURfR1VJRFxyXG4gICAgICAgICAgICBpdGVtLlRleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBvcHRpb24ubmFtZS5hcmFiaWMgOiBvcHRpb24ubmFtZS5lbmdsaXNoXHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2VSYWRpby5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5JdGVtcyA9IGRhdGFTb3VyY2VSYWRpb1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIHJhZGlvQnV0dG9uLlZhbHVlID0gZWxlbWVudC52YWx1ZS5zZWxlY3RlZElEc1swXVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChyYWRpb0J1dHRvbik7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsIHRoaXMuZmlsZWRHcm91cCwgcmFkaW9CdXR0b24sIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgTXVsaXBsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuTmFtZSA9IFwicVwiICsgZWxlbWVudC5pRF9HVUlEXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LkhpZGVMYWJlbCA9IGZhbHNlXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LkxhYmVsRXh0cmFDbGFzc2VzID10aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LklzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24gPyBmYWxzZSA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5QbGFjZWhvbGRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVmYXVsdE9wdGlvblRleHQnKTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBsZXQgbXVsdGlwbGVTZWxlY3REYXRhU291cmNlOiBEcm9wZG93bkxpc3RJdGVtW10gPSBbXVxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQucXVlc3Rpb25PcHRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBlbGVtZW50LnF1ZXN0aW9uT3B0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgaXRlbS5rZXkgPSBvcHRpb24uaURfR1VJRFxyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gb3B0aW9uLm5hbWUuYXJhYmljIDogb3B0aW9uLm5hbWUuZW5nbGlzaFxyXG4gICAgICAgICAgICBtdWx0aXBsZVNlbGVjdERhdGFTb3VyY2UucHVzaChpdGVtKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5EYXRhU291cmNlID0gbXVsdGlwbGVTZWxlY3REYXRhU291cmNlXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LlNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LlNob3dDaGVja2JveCA9IGZhbHNlXHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIE11bGlwbGVTZWxlY3QuU2VsZWN0ZWRJdGVtcyA9IGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHNcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsaXBsZVNlbGVjdCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsIHRoaXMuZmlsZWRHcm91cCwgTXVsaXBsZVNlbGVjdCwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQ291bnRyeS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IENvdW50cnkgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBDb3VudHJ5Lk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgQ291bnRyeS5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgQ291bnRyeS5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgQ291bnRyeS5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgQ291bnRyeS5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIENvdW50cnkuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIENvdW50cnkuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgQ291bnRyeS5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgQ291bnRyeS5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBDb3VudHJ5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWVcclxuICAgICAgICAgIENvdW50cnkuU2hvd0NoZWNrYm94ID0gZmFsc2VcclxuICAgICAgICAgIENvdW50cnkuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlXHJcbiAgICAgICAgICBDb3VudHJ5LkRhdGFTb3VyY2UgPSBlbGVtZW50Lm9wdGlvbnMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIENvdW50cnkuU2VsZWN0ZWRJdGVtcyA9IGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHNbMF1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goQ291bnRyeSk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsIHRoaXMuZmlsZWRHcm91cCwgQ291bnRyeSwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL0ZpbGVVcGxvYWRcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlGaWxlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgTXVsdGlGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBNdWx0aUZpbGUuTmFtZSA9IFwicVwiICsgZWxlbWVudC5pRF9HVUlEXHJcbiAgICAgICAgICBNdWx0aUZpbGUuSGlkZUxhYmVsID0gZmFsc2VcclxuICAgICAgICAgIE11bHRpRmlsZS5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBNdWx0aUZpbGUuSXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbiA/IGZhbHNlIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBNdWx0aUZpbGUuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIE11bHRpRmlsZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBNdWx0aUZpbGUuSXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIE11bHRpRmlsZS5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBNdWx0aUZpbGUuTWF4U2l6ZUZvckFsbEZpbGVzSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgIE11bHRpRmlsZS5NYXhOb09mRmlsZXMgPSBlbGVtZW50Lm9wdGlvbnMubWF4RmlsZUNvdW50XHJcbiAgICAgICAgICBNdWx0aUZpbGUuSXNNdWx0aXBsZUZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgbGV0IGFjY2VwdGVkVHlwZXM6IEZpbGVUeXBlW10gPSBbXVxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQub3B0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFZhbHVlID0gZWxlbWVudC5vcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zW2luZGV4XTtcclxuICAgICAgICAgICAgc3dpdGNoIChlbGVtZW50VmFsdWUpIHtcclxuICAgICAgICAgICAgICBjYXNlIFwiMFwiOlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRUeXBlcy5wdXNoKEZpbGVUeXBlLlBERilcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCIxXCI6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuV29yZClcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCIyXCI6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuRXhjZWwpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIE11bHRpRmlsZS5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gYWNjZXB0ZWRUeXBlc1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZmlsZUNvcnJlbGF0aW9uRFRPKSB7XHJcbiAgICAgICAgICAgIGxldCBtb2RlbCA9IHRoaXMudG9DYW1lbChlbGVtZW50LnZhbHVlLmZpbGVDb3JyZWxhdGlvbkRUTylcclxuICAgICAgICAgICAgTXVsdGlGaWxlLlZhbHVlID0gbW9kZWxcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsdGlGaWxlKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCwgdGhpcy5maWxlZEdyb3VwLCBNdWx0aUZpbGUsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkZpbGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBGaWxlLk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgRmlsZS5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgRmlsZS5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgRmlsZS5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgRmlsZS5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIEZpbGUuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIEZpbGUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgRmlsZS5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgRmlsZS5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBGaWxlLkZpbGVNYXhTaXplSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuXHJcbiAgICAgICAgICBsZXQgYWNjZXB0ZWRUeXBlc0ZpbGU6IEZpbGVUeXBlW10gPSBbXVxyXG4gICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudC5vcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VmFsdWUgPSBlbGVtZW50Lm9wdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGVsZW1lbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCIwXCI6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzRmlsZS5wdXNoKEZpbGVUeXBlLlBERilcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCIxXCI6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzRmlsZS5wdXNoKEZpbGVUeXBlLldvcmQpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwiMlwiOlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRUeXBlc0ZpbGUucHVzaChGaWxlVHlwZS5FeGNlbClcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZmlsZURUTykge1xyXG4gICAgICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLnRvQ2FtZWwoZWxlbWVudC52YWx1ZS5maWxlRFRPKSBhcyBGaWxlRFRPXHJcbiAgICAgICAgICAgIEZpbGUuVmFsdWUgPSBtb2RlbFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgRmlsZS5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gYWNjZXB0ZWRUeXBlc0ZpbGU7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKEZpbGUpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIEZpbGUsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9JbWFnZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5JbWFnZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IEltYWdlID0gbmV3IEltYWdlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgICAgICAgSW1hZ2UuTmFtZSA9IFwicVwiICsgZWxlbWVudC5pRF9HVUlEXHJcbiAgICAgICAgICBJbWFnZS5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgSW1hZ2UuTGFiZWxFeHRyYUNsYXNzZXMgPXRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEltYWdlLkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBJbWFnZS5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIEltYWdlLklzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBJbWFnZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBJbWFnZS5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgSW1hZ2UuTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWMgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUIpXHJcbiAgICAgICAgICAgIEltYWdlLkZpbGVNYXhTaXplSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goSW1hZ2UpO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZmlsZURUTylcclxuICAgICAgICAgICAgSW1hZ2UuVmFsdWUgPSBlbGVtZW50LnZhbHVlLmZpbGVEVE9cclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCwgdGhpcy5maWxlZEdyb3VwLCBJbWFnZSwgZWxlbWVudC5vcHRpb25zLnNpemUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL011bHRpbGluZVRleHRcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlsaW5lVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IE11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0Lk5hbWUgPSBcInFcIiArIGVsZW1lbnQuaURfR1VJRFxyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5MYWJlbEV4dHJhQ2xhc3NlcyA9dGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5MYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5Jc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uID8gZmFsc2UgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQuSXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5MYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpYyA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoXHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5vcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgTXVsdGlsaW5lVGV4dC5NYXhMZW5ndGggPSBlbGVtZW50Lm9wdGlvbnMubWF4TGVuZ3RoXHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5vcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgTXVsdGlsaW5lVGV4dC5NaW5MZW5ndGggPSBlbGVtZW50Lm9wdGlvbnMubWluTGVuZ3RoXHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LlJvd3MgPSBlbGVtZW50Lm9wdGlvbnMucm93cztcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnRleHQpXHJcbiAgICAgICAgICAgIE11bHRpbGluZVRleHQuVmFsdWUgPSBlbGVtZW50LnZhbHVlLnRleHRcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsdGlsaW5lVGV4dCk7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LkZvcmNlRGlyZWN0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpID8gRm9yY2VEaXJlY3Rpb24uQXJhYmljIDogRm9yY2VEaXJlY3Rpb24uRW5nbGlzaFxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LCB0aGlzLmZpbGVkR3JvdXAsIE11bHRpbGluZVRleHQsIGVsZW1lbnQub3B0aW9ucy5zaXplKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9IVE1MXHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkJvb2xlYW4udG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBCb29sZWFuID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgQm9vbGVhbi5OYW1lID0gXCJxXCIgKyBlbGVtZW50LmlEX0dVSURcclxuICAgICAgICAgIEJvb2xlYW4uTGFiZWxFeHRyYUNsYXNzZXMgPXRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEJvb2xlYW4uVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgQm9vbGVhbi5Jc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgQm9vbGVhbi5Jc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgQm9vbGVhbi5IaWRlTGFiZWwgPSBmYWxzZVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuYm9vbGVhbilcclxuICAgICAgICAgIEJvb2xlYW4uVmFsdWUgPSBlbGVtZW50LnZhbHVlLmJvb2xlYW5cclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goQm9vbGVhbik7XHJcbiAgICAgICAgICBCb29sZWFuLkxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICBCb29sZWFuLkxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2hcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCwgdGhpcy5maWxlZEdyb3VwLCBCb29sZWFuLCBlbGVtZW50Lm9wdGlvbnMuc2l6ZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vTG9jYXRpb25cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMub3B0aW9ucy5SZWFkb25seSlcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmNoZWNrTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuXHJcbiAgICAgaWYoIHRoaXMuY2hlY2tMaXN0W2luZGV4XS5WYWx1ZSlcclxuICAgICB7XHJcbiAgICAgICB0aGlzLmNoZWNrTGlzdFtpbmRleF0uSXNSZWFkb25seSA9IGZhbHNlO1xyXG4gICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlZEdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGVzKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmlsZWRHcm91cClcclxuICAgICAgdGhpcy5yZXN1bHQgPSBbXTtcclxuICAgICAgdGhpcy5zaG93ZWRDaGlsZFF1ZXN0aW9uID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZmlsZWRHcm91cC5jb250cm9scykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5maWxlZEdyb3VwLmNvbnRyb2xzLCBrZXkpKSB7XHJcbiAgICAgICAgICBsZXQgc2NvcmUgPSAwO1xyXG4gICAgICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLmZpbGVkR3JvdXAuY29udHJvbHNba2V5XTtcclxuICAgICAgICAgIGxldCBpZCA9IGtleS5yZXBsYWNlKCdxJywgJycpO1xyXG4gICAgICAgICAgdmFyIGZpbHRlcmVkSXRlbSA9IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pRF9HVUlEID09IGlkKVswXTtcclxuXHJcbiAgICAgICAgICBsZXQgaXRlbSA9IG5ldyBTdXJ2ZXlGaWxlZFZhbHVlRFRPKClcclxuICAgICAgICAgIGl0ZW0uUXVlc3Rpb25GaWVsZElEID0gaWQ7XHJcbiAgICAgICAgICBpdGVtLlF1ZXN0aW9uVHlwZUl0ZW1JRCA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvblR5cGVJdGVtSURcclxuICAgICAgICAgIHN3aXRjaCAoZmlsdGVyZWRJdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCkge1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uVGV4dCA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5FbWFpbC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uVGV4dCA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXIudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlRleHQgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aWxpbmVUZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5UZXh0ID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkJvb2xlYW4udG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLkJvb2xlYW4gPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRGF0ZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uRGF0ZVRpbWUgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkRhdGVUaW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5EYXRlVGltZSA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3QudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlNlbGVjdGVkSURzID0gW2VsZW1lbnQudmFsdWVdO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkU2hvd2VkQ2hpbGRRdWVzdGlvbnMoZWxlbWVudC52YWx1ZSlcclxuICAgICAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRJdGVtLmlzQWxsb3dTY29yaW5nKVxyXG4gICAgICAgICAgICAgICAgc2NvcmUgPSBmaWx0ZXJlZEl0ZW0ucXVlc3Rpb25PcHRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaURfR1VJRCA9PSBlbGVtZW50LnZhbHVlKVswXT8uc2NvcmUgPyBmaWx0ZXJlZEl0ZW0ucXVlc3Rpb25PcHRpb25zPy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlEX0dVSUQgPT0gZWxlbWVudC52YWx1ZSlbMF0uc2NvcmUgOiAwXHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5SYWRpb0J1dHRvbi50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uU2VsZWN0ZWRJRHMgPSBbZWxlbWVudC52YWx1ZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5hZGRTaG93ZWRDaGlsZFF1ZXN0aW9ucyhlbGVtZW50LnZhbHVlKVxyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJlZEl0ZW0uaXNBbGxvd1Njb3JpbmcpXHJcbiAgICAgICAgICAgICAgICBzY29yZSA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pRF9HVUlEID09IGVsZW1lbnQudmFsdWUpWzBdPy5zY29yZSA/IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnM/LmZpbHRlcihpdGVtID0+IGl0ZW0uaURfR1VJRCA9PSBlbGVtZW50LnZhbHVlKVswXS5zY29yZSA6IDBcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5TZWxlY3RlZElEcyA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUpXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudC52YWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGVsZW1lbnQudmFsdWVbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFkZFNob3dlZENoaWxkUXVlc3Rpb25zKGl0ZW0pXHJcbiAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZEl0ZW0uaXNBbGxvd1Njb3JpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc2NvcmVWYWx1ZSA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnMuZmlsdGVyKGl0ZW1PcHRpb25zID0+IGl0ZW1PcHRpb25zLmlEX0dVSUQgPT0gaXRlbSlbMF0/LnNjb3JlID8gZmlsdGVyZWRJdGVtLnF1ZXN0aW9uT3B0aW9ucz8uZmlsdGVyKGl0ZW1PcHRpb25zID0+IGl0ZW1PcHRpb25zLmlEX0dVSUQgPT0gaXRlbSlbMF0uc2NvcmUgOiAwXHJcbiAgICAgICAgICAgICAgICAgICAgc2NvcmUgPSBzY29yZVZhbHVlICsgc2NvcmVcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkNvdW50cnkudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlNlbGVjdGVkSURzID0gW2VsZW1lbnQudmFsdWVdO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuSW1hZ2UudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLkZpbGVEVE8gPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRmlsZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgaXRlbS5GaWxlRFRPID0gZWxlbWVudC52YWx1ZS5GaWxlID8gZWxlbWVudC52YWx1ZS5GaWxlIDogZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpRmlsZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uRmlsZUNvcnJlbGF0aW9uRFRPID0gZWxlbWVudC52YWx1ZVxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZmlsdGVyZWRJdGVtLnZhbHVlID0gaXRlbTtcclxuICAgICAgICAgIGZpbHRlcmVkSXRlbS52YWx1ZS5zY29yZSA9IHNjb3JlO1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQucHVzaChpdGVtKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9wdGlvbnMuVmFsdWVzTGlzdCA9IHRoaXMucmVzdWx0XHJcbiAgICAgIHRoaXMuY2hhbmdlSGlkZGVuUXVlc3Rpb25zU3RhdHVzKClcclxuICAgIH0pXHJcblxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGFkZFNob3dlZENoaWxkUXVlc3Rpb25zKG5ld0tleSkge1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIHZhciBxdWVzdGlvbk9wdGlvbiA9IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3RbaW5kZXhdLnF1ZXN0aW9uT3B0aW9ucztcclxuICAgICAgbGV0IE9wdGlvbiA9IHF1ZXN0aW9uT3B0aW9uLmZpbHRlcih4ID0+IHguaURfR1VJRCA9PT0gbmV3S2V5KVswXTtcclxuICAgICAgaWYgKE9wdGlvbiAmJiBPcHRpb24/LmxpbmtlZFF1ZXN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE9wdGlvbi5saW5rZWRRdWVzdGlvbnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBsaW5rZWRRdWVzdGlvbiA9IE9wdGlvbi5saW5rZWRRdWVzdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgbGV0IGNoZWNrSXNRdWVzdGlvbkV4aXN0ID0gdGhpcy5zaG93ZWRDaGlsZFF1ZXN0aW9uLnNvbWUoeCA9PiB4ID09PSBgcSR7bGlua2VkUXVlc3Rpb259YCk7XHJcbiAgICAgICAgICBpZiAoIWNoZWNrSXNRdWVzdGlvbkV4aXN0KVxyXG4gICAgICAgICAgICB0aGlzLnNob3dlZENoaWxkUXVlc3Rpb24ucHVzaChgcSR7bGlua2VkUXVlc3Rpb259YClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlSGlkZGVuUXVlc3Rpb25zU3RhdHVzKCkge1xyXG4gICAgbGV0IHF1ZXN0aW9ucyA9IHRoaXMuc2hvd2VkQ2hpbGRRdWVzdGlvbjtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmNoZWNrTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgbGV0IGNoZWNrSWZFeGlzdCA9IHRoaXMuc2hvd2VkQ2hpbGRRdWVzdGlvbi5zb21lKHggPT4geCA9PT0gdGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpXHJcbiAgICAgIGlmIChjaGVja0lmRXhpc3QpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25JZCA9IHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lLnJlcGxhY2UoJ3EnLCAnJyk7XHJcbiAgICAgICAgbGV0IFF1ZXN0aW9uID0gdGhpcy5vcHRpb25zLlF1ZXN0aW9uTGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmlEX0dVSUQgPT0gcXVlc3Rpb25JZClbMF07XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICBpZiAoUXVlc3Rpb24ub3B0aW9ucy5pc1JlcXVpcmVkICYmICF0aGlzLmNoZWNrTGlzdFtpbmRleF0uSXNSZXF1aXJlZCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5maWxlZEdyb3VwLmdldCh0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZSkuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICAgICAgaWYgKHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnZhbHVlID09IG51bGwgfHwgdGhpcy5maWxlZEdyb3VwLmdldCh0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZSkudmFsdWUgPT0gdW5kZWZpbmVkIHx8IHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnZhbHVlID09IFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnNldEVycm9ycyh7ICdyZXF1aXJlZCc6IHRydWUgfSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnNldEVycm9ycyhudWxsKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tMaXN0W2luZGV4XS5Jc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLlZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZpbGVkR3JvdXAuY29udHJvbHNbdGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWVdLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuICAgICAgICB0aGlzLmZpbGVkR3JvdXAuZ2V0KHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lKS5zZXRFcnJvcnMobnVsbCk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHRvQ2FtZWwgPSAob2JqKSA9PiB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICAgIHJldHVybiBvYmoubWFwKHYgPT4gdGhpcy50b0NhbWVsKHYpKTtcclxuICAgIH0gZWxzZSBpZiAob2JqICE9IG51bGwgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlUmlnaHQoXHJcbiAgICAgICAgKHJlc3VsdCwga2V5KSA9PiAoe1xyXG4gICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgWyhrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSkgfHwga2V5KS50b1N0cmluZygpXTogdGhpcy50b0NhbWVsKG9ialtrZXldKSxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7fSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfTtcclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3XCI+XHJcbiAgICA8bmctdGVtcGxhdGUgYWRIb3N0PjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5cclxuIl19
@@ -11,4 +11,4 @@ export class SurveyUserInfoDTO {
11
11
  this.Name = new EnglishArabicDTO();
12
12
  }
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN1cnZleS1zdWJtaXNzaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9tb2RlbHMvU3VydmV5TW9kZWxzL2FkZC1zdXJ2ZXktc3VibWlzc2lvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRSxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CO1FBUUEsaUJBQVksR0FBUSxDQUFDLENBQUM7UUFDdEIsY0FBUyxHQUFPLEVBQUUsQ0FBQTtRQVJkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FZSjtBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUFDMUI7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmdsaXNoQXJhYmljRFRPLCBSZWNhcHRjaGFNb2RlbCB9IGZyb20gXCJAYm5zaWdodHMvYmJzZi1jb250cm9sc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFkZFN1cnZleVN1Ym1pc3Npb25EVE8ge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5OYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgIH1cclxuICAgIElEOm51bWJlcjtcclxuICAgIElEX0dVSUQ6c3RyaW5nO1xyXG4gICAgU3VydmV5SUQ6c3RyaW5nO1xyXG4gICAgQXVkaWVuY2VUeXBlOnN0cmluZztcclxuICAgIFF1ZXN0aW9uVHlwZUl0ZW1JRDpzdHJpbmc7XHJcbiAgICBBdmVyYWdlU2NvcmU6bnVtYmVyPTA7XHJcbiAgICBRdWVzdGlvbnM6YW55W109W11cclxuICAgIE5hbWU6IEVuZ2xpc2hBcmFiaWNEVE87XHJcbiAgICBFbWFpbDpzdHJpbmc7XHJcbiAgICBSZWNhcHRjaGE6UmVjYXB0Y2hhTW9kZWw7XHJcbiAgICBIYXNDYXB0Y2hhRm9yRXh0ZXJuYWw6Ym9vbGVhbjtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlVc2VySW5mb0RUTyB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLk5hbWUgPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgfVxyXG4gICAgTmFtZTogRW5nbGlzaEFyYWJpY0RUTztcclxuICAgIEVtYWlsOnN0cmluZztcclxufSJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN1cnZleS1zdWJtaXNzaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9tb2RlbHMvU3VydmV5TW9kZWxzL2FkZC1zdXJ2ZXktc3VibWlzc2lvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRSxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CO1FBUUEsaUJBQVksR0FBUSxDQUFDLENBQUM7UUFDdEIsY0FBUyxHQUFPLEVBQUUsQ0FBQTtRQVJkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FZSjtBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUFDMUI7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBS0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmdsaXNoQXJhYmljRFRPLCBSZWNhcHRjaGFNb2RlbCB9IGZyb20gXCJAYm5zaWdodHMvYmJzZi1jb250cm9sc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFkZFN1cnZleVN1Ym1pc3Npb25EVE8ge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5OYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgIH1cclxuICAgIElEOm51bWJlcjtcclxuICAgIElEX0dVSUQ6c3RyaW5nO1xyXG4gICAgU3VydmV5SUQ6c3RyaW5nO1xyXG4gICAgQXVkaWVuY2VUeXBlOnN0cmluZztcclxuICAgIFF1ZXN0aW9uVHlwZUl0ZW1JRDpzdHJpbmc7XHJcbiAgICBBdmVyYWdlU2NvcmU6bnVtYmVyPTA7XHJcbiAgICBRdWVzdGlvbnM6YW55W109W11cclxuICAgIE5hbWU6IEVuZ2xpc2hBcmFiaWNEVE87XHJcbiAgICBFbWFpbDpzdHJpbmc7XHJcbiAgICBSZWNhcHRjaGE6UmVjYXB0Y2hhTW9kZWw7XHJcbiAgICBIYXNDYXB0Y2hhRm9yRXh0ZXJuYWw6Ym9vbGVhbjtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlVc2VySW5mb0RUTyB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLk5hbWUgPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgfVxyXG4gICAgTmFtZTogRW5nbGlzaEFyYWJpY0RUTztcclxuICAgIEVtYWlsOnN0cmluZztcclxuICAgIElEX0dVSUQ6c3RyaW5nO1xyXG5cclxufVxyXG4iXX0=
@@ -71,7 +71,7 @@ SurveyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
71
71
  MasterLayoutService,
72
72
  AuthService,
73
73
  EnvironmentService,
74
- ConfigurationService
74
+ ConfigurationService,
75
75
  ], imports: [[
76
76
  PublicSurveyModule,
77
77
  CommonModule,
@@ -124,8 +124,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
124
124
  MasterLayoutService,
125
125
  AuthService,
126
126
  EnvironmentService,
127
- ConfigurationService
127
+ ConfigurationService,
128
128
  ]
129
129
  }]
130
130
  }], ctorParameters: function () { return [{ type: i1.ConfigurationService }]; } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvc2hhcmVkL21vZHVsZXMvc3VydmV5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0ksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMvRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUNySCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM1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WixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxtQkFBbUI7d0JBQ25CLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO3dCQUN0QyxjQUFjO3dCQUNkLFlBQVk7cUJBQ2I7b0JBQ0QsU0FBUyxFQUFDO3dCQUNSLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFN1cnZleVJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3N1cnZleS1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBCQlNGVXRpbGl0aWVzTW9kdWxlLCBDb25maWd1cmF0aW9uU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgQkJTRkNvbnRyb2xzTW9kdWxlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvYWRkLXN1cnZleS9hZGQtc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9lZGl0LXN1cnZleS9lZGl0LXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9kZWxldGUtc3VydmV5L2RlbGV0ZS1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VydmV5SW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS1pbmZvL3N1cnZleS1pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS1pbmZvL2VkaXQtcXVlc3Rpb24vZWRpdC1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS1pbmZvL2RlbGV0ZS1xdWVzdGlvbi9kZWxldGUtcXVlc3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkUXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9hZGQtcXVlc3Rpb24vYWRkLXF1ZXN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlc3VsdFF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vcmVzdWx0LXF1ZXN0aW9uL3Jlc3VsdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9wdWJsaXNoLXN1cnZleS9wdWJsaXNoLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVblB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby91bnB1Ymxpc2gtc3VydmV5L3VucHVibGlzaC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFrZVN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS1pbmZvL3Rha2Utc3VydmV5L3Rha2Utc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdWJtaXNzaW9ucy9kZWxldGUtc3VibWlzc2lvbi9kZWxldGUtc3VibWlzc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvc3VibWlzc2lvbnMvZWxpbWluYXRlLXN1Ym1pc3Npb24vZWxpbWluYXRlLXN1Ym1pc3Npb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVW5FbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvc3VibWlzc2lvbnMvdW5lbGltaW5hdGUtc3VibWlzc2lvbi91bmVsaW1pbmF0ZS1zdWJtaXNzaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER1cGxpY2F0ZVN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L2R1cGxpY2F0ZS1zdXJ2ZXkvZHVwbGljYXRlLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFB1YmxpY1N1cnZleU1vZHVsZSB9IGZyb20gJy4vcHVibGljLXN1cnZleS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ1dpemFyZENvbmZpZywgTmdXaXphcmRNb2R1bGUsIFRIRU1FIH0gZnJvbSAnbmctd2l6YXJkJztcclxuaW1wb3J0IHsgU3VydmV5RGF0ZVBpcGUgfSBmcm9tICcuLi9QaXBlcy9zdXJ2ZXktZGF0ZS5waXBlJztcclxuaW1wb3J0IHsgTm9SZXN1bHRzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9uby1yZXN1bHRzL25vLXJlc3VsdHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQW5vbnltb3VzTGF5b3V0U2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL0Fub255bW91c0xheW91dFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1cnZleUxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5LWxheW91dC9zdXJ2ZXktbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC5tb2R1bGUnO1xyXG5cclxuXHJcbmNvbnN0IG5nV2l6YXJkQ29uZmlnOiBOZ1dpemFyZENvbmZpZyA9IHtcclxuICB0aGVtZTogVEhFTUUuZGVmYXVsdFxyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFN1cnZleUNvbXBvbmVudCxcclxuICAgIEFkZFN1cnZleUNvbXBvbmVudCxcclxuICAgIEVkaXRTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBEZWxldGVTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBTdXJ2ZXlJbmZvQ29tcG9uZW50LFxyXG4gICAgRWRpdFF1ZXN0aW9uQ29tcG9uZW50LFxyXG4gICAgRGVsZXRlUXVlc3Rpb25Db21wb25lbnQsXHJcbiAgICBBZGRRdWVzdGlvbkNvbXBvbmVudCxcclxuICAgIFJlc3VsdFF1ZXN0aW9uQ29tcG9uZW50LFxyXG4gICAgUHJldmlld0NvbXBvbmVudCxcclxuICAgIFB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBVblB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBUYWtlU3VydmV5Q29tcG9uZW50LFxyXG4gICAgRGVsZXRlU3VibWlzc2lvbkNvbXBvbmVudCxcclxuICAgIEVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQsXHJcbiAgICBVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQsXHJcbiAgICBEdXBsaWNhdGVTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBTdXJ2ZXlEYXRlUGlwZSxcclxuICAgIE5vUmVzdWx0c0NvbXBvbmVudCxcclxuICAgIFN1cnZleUxheW91dENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUHVibGljU3VydmV5TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgU3VydmV5Um91dGluZ01vZHVsZSxcclxuICAgIEJCU0ZDb250cm9sc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIEJCU0ZVdGlsaXRpZXNNb2R1bGUsXHJcbiAgICBOZ1dpemFyZE1vZHVsZS5mb3JSb290KG5nV2l6YXJkQ29uZmlnKSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgU2hhcmVkTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6W1xyXG4gICAgQW5vbnltb3VzTGF5b3V0U2VydmljZSxcclxuICAgIE1hc3RlckxheW91dFNlcnZpY2UsXHJcbiAgICBBdXRoU2VydmljZSxcclxuICAgIEVudmlyb25tZW50U2VydmljZSxcclxuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VydmV5TW9kdWxlIHsgXHJcbiAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvblNlcnZpY2U6Q29uZmlndXJhdGlvblNlcnZpY2Upe1xyXG4gIH1cclxufSJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvc2hhcmVkL21vZHVsZXMvc3VydmV5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0ksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMvRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUNySCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUN6RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUMzSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUNwSSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUMxSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFrQixjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFHaEQsTUFBTSxjQUFjLEdBQW1CO0lBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTztDQUNyQixDQUFDO0FBNENGLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQVksb0JBQXlDO0lBQ3JELENBQUM7OzBHQUZVLFlBQVk7MkdBQVosWUFBWSxpQkF4Q3JCLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIscUJBQXFCO1FBQ3JCLHVCQUF1QjtRQUN2QixvQkFBb0I7UUFDcEIsdUJBQXVCO1FBQ3ZCLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsd0JBQXdCO1FBQ3hCLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsNEJBQTRCO1FBQzVCLDhCQUE4QjtRQUM5Qix3QkFBd0I7UUFDeEIsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixxQkFBcUIsYUFHckIsa0JBQWtCO1FBQ2xCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLFNBQVM7UUFDVCxtQkFBbUIscUJBRW5CLGNBQWM7UUFDZCxZQUFZOzJHQVVILFlBQVksYUFSYjtRQUNSLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixvQkFBb0I7S0FDckIsWUFqQlE7WUFDUCxrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsU0FBUztZQUNULG1CQUFtQjtZQUNuQixjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUN0QyxjQUFjO1lBQ2QsWUFBWTtTQUNiOzRGQVNVLFlBQVk7a0JBMUN4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3dCQUM1Qiw4QkFBOEI7d0JBQzlCLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxtQkFBbUI7d0JBQ25CLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO3dCQUN0QyxjQUFjO3dCQUNkLFlBQVk7cUJBQ2I7b0JBQ0QsU0FBUyxFQUFDO3dCQUNSLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFN1cnZleVJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3N1cnZleS1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBCQlNGVXRpbGl0aWVzTW9kdWxlLCBDb25maWd1cmF0aW9uU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgQkJTRkNvbnRyb2xzTW9kdWxlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvYWRkLXN1cnZleS9hZGQtc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9lZGl0LXN1cnZleS9lZGl0LXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9kZWxldGUtc3VydmV5L2RlbGV0ZS1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VydmV5SW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS1pbmZvL3N1cnZleS1pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS1pbmZvL2VkaXQtcXVlc3Rpb24vZWRpdC1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS1pbmZvL2RlbGV0ZS1xdWVzdGlvbi9kZWxldGUtcXVlc3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkUXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9hZGQtcXVlc3Rpb24vYWRkLXF1ZXN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlc3VsdFF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vcmVzdWx0LXF1ZXN0aW9uL3Jlc3VsdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9wdWJsaXNoLXN1cnZleS9wdWJsaXNoLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVblB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby91bnB1Ymxpc2gtc3VydmV5L3VucHVibGlzaC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFrZVN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS1pbmZvL3Rha2Utc3VydmV5L3Rha2Utc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3N1cnZleS9zdWJtaXNzaW9ucy9kZWxldGUtc3VibWlzc2lvbi9kZWxldGUtc3VibWlzc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvc3VibWlzc2lvbnMvZWxpbWluYXRlLXN1Ym1pc3Npb24vZWxpbWluYXRlLXN1Ym1pc3Npb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVW5FbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zdXJ2ZXkvc3VibWlzc2lvbnMvdW5lbGltaW5hdGUtc3VibWlzc2lvbi91bmVsaW1pbmF0ZS1zdWJtaXNzaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER1cGxpY2F0ZVN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5L2R1cGxpY2F0ZS1zdXJ2ZXkvZHVwbGljYXRlLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFB1YmxpY1N1cnZleU1vZHVsZSB9IGZyb20gJy4vcHVibGljLXN1cnZleS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ1dpemFyZENvbmZpZywgTmdXaXphcmRNb2R1bGUsIFRIRU1FIH0gZnJvbSAnbmctd2l6YXJkJztcclxuaW1wb3J0IHsgU3VydmV5RGF0ZVBpcGUgfSBmcm9tICcuLi9QaXBlcy9zdXJ2ZXktZGF0ZS5waXBlJztcclxuaW1wb3J0IHsgTm9SZXN1bHRzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9uby1yZXN1bHRzL25vLXJlc3VsdHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQW5vbnltb3VzTGF5b3V0U2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL0Fub255bW91c0xheW91dFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1cnZleUxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3VydmV5LWxheW91dC9zdXJ2ZXktbGF5b3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC5tb2R1bGUnO1xyXG5cclxuXHJcbmNvbnN0IG5nV2l6YXJkQ29uZmlnOiBOZ1dpemFyZENvbmZpZyA9IHtcclxuICB0aGVtZTogVEhFTUUuZGVmYXVsdFxyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFN1cnZleUNvbXBvbmVudCxcclxuICAgIEFkZFN1cnZleUNvbXBvbmVudCxcclxuICAgIEVkaXRTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBEZWxldGVTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBTdXJ2ZXlJbmZvQ29tcG9uZW50LFxyXG4gICAgRWRpdFF1ZXN0aW9uQ29tcG9uZW50LFxyXG4gICAgRGVsZXRlUXVlc3Rpb25Db21wb25lbnQsXHJcbiAgICBBZGRRdWVzdGlvbkNvbXBvbmVudCxcclxuICAgIFJlc3VsdFF1ZXN0aW9uQ29tcG9uZW50LFxyXG4gICAgUHJldmlld0NvbXBvbmVudCxcclxuICAgIFB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBVblB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBUYWtlU3VydmV5Q29tcG9uZW50LFxyXG4gICAgRGVsZXRlU3VibWlzc2lvbkNvbXBvbmVudCxcclxuICAgIEVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQsXHJcbiAgICBVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQsXHJcbiAgICBEdXBsaWNhdGVTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBTdXJ2ZXlEYXRlUGlwZSxcclxuICAgIE5vUmVzdWx0c0NvbXBvbmVudCxcclxuICAgIFN1cnZleUxheW91dENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUHVibGljU3VydmV5TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgU3VydmV5Um91dGluZ01vZHVsZSxcclxuICAgIEJCU0ZDb250cm9sc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIEJCU0ZVdGlsaXRpZXNNb2R1bGUsXHJcbiAgICBOZ1dpemFyZE1vZHVsZS5mb3JSb290KG5nV2l6YXJkQ29uZmlnKSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgU2hhcmVkTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6W1xyXG4gICAgQW5vbnltb3VzTGF5b3V0U2VydmljZSxcclxuICAgIE1hc3RlckxheW91dFNlcnZpY2UsXHJcbiAgICBBdXRoU2VydmljZSxcclxuICAgIEVudmlyb25tZW50U2VydmljZSxcclxuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleU1vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvblNlcnZpY2U6Q29uZmlndXJhdGlvblNlcnZpY2Upe1xyXG4gIH1cclxufVxyXG4iXX0=