vcomply-workflow-engine 2.4.77 → 2.4.80

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.
@@ -1 +1 @@
1
- {"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"responsibilityId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"frameworkDetails":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"isEntrust":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"closeOnEsc":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["closeOnEsc"]}]}],"pickerChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"populateOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"hideElementsFromMoreOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"closeWorkflow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"resetForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"disconnectRefresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"checkpointCountUpdated":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"rcSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"openedFrom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"selectedRC":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"selectedProgram":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"onRemovingCheckpoint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"isAssessmentDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"whatInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]},"arguments":["what"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":4,"members":[]},{"__symbol":5,"members":[]},{"__symbol":6,"members":[]},{"__symbol":7,"members":[]},{"__symbol":8,"members":[]},{"__symbol":4,"members":[]}]}],"ngOnInit":[{"__symbolic":"method"}],"activateSelector":[{"__symbolic":"method"}],"whatChanged":[{"__symbolic":"method"}],"activeDeselector":[{"__symbolic":"method"}],"addMoreInfo":[{"__symbolic":"method"}],"getRCList":[{"__symbolic":"method"}],"getUserDetails":[{"__symbolic":"method"}],"getAssurance":[{"__symbolic":"method"}],"getAssuranceForRequiresAudit":[{"__symbolic":"method"}],"getOrganizationDetails":[{"__symbolic":"method"}],"getCategoryList":[{"__symbolic":"method"}],"filterListsAccordingToProgram":[{"__symbolic":"method"}],"getListsAccordingToProgram":[{"__symbolic":"method"}],"getAssignorsList":[{"__symbolic":"method"}],"getAssigneesList":[{"__symbolic":"method"}],"getPeopleListAgainstPID":[{"__symbolic":"method"}],"getGroupsList":[{"__symbolic":"method"}],"getEditResponsibilityDetails":[{"__symbolic":"method"}],"setList":[{"__symbolic":"method"}],"returnIds":[{"__symbolic":"method"}],"setReviewerPayload":[{"__symbolic":"method"}],"checkWhetherAllListsLoaded":[{"__symbolic":"method"}],"saveSelectedList":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"entrustFramework":[{"__symbolic":"method"}],"refreshAllLists":[{"__symbolic":"method"}],"refreshListsWhileProgramSelected":[{"__symbolic":"method"}],"submitResponsibility":[{"__symbolic":"method"}],"validateResponsibility":[{"__symbolic":"method"}],"entrustResponsibility":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"action":[{"__symbolic":"method"}],"viewResponsibilities":[{"__symbolic":"method"}],"closeSmiley":[{"__symbolic":"method"}],"frequencyDataPopulation":[{"__symbolic":"method"}],"frequencyPopulation":[{"__symbolic":"method"}],"frequencyData":[{"__symbolic":"method"}],"checkBlank":[{"__symbolic":"method"}],"getFrequencyPlaceholder":[{"__symbolic":"method"}],"getOnCompletionOf":[{"__symbolic":"method"}],"getDailyPlaceholder":[{"__symbolic":"method"}],"getWeeklyPlaceholder":[{"__symbolic":"method"}],"getMonthlyPlaceholder":[{"__symbolic":"method"}],"getQuarterlyPlaceholder":[{"__symbolic":"method"}],"getBiannualPlaceholder":[{"__symbolic":"method"}],"getYearlyPlaceholder":[{"__symbolic":"method"}],"getRandomPlaceholder":[{"__symbolic":"method"}],"onEditWhat":[{"__symbolic":"method"}],"getEditMoreOptions":[{"__symbolic":"method"}],"editorValidation":[{"__symbolic":"method"}],"reviewerTypeChange":[{"__symbolic":"method"}],"selectedSampleData":[{"__symbolic":"method"}],"populateAssuranceList":[{"__symbolic":"method"}],"checkInputValue":[{"__symbolic":"method"}],"switchEnable":[{"__symbolic":"method"}],"onAssessmentSelect":[{"__symbolic":"method"}],"getAssessmentDetails":[{"__symbolic":"method"}],"onRemoveCheckpoints":[{"__symbolic":"method"}],"removeCheckpoint":[{"__symbolic":"method"}],"postAssessment":[{"__symbolic":"method"}],"setIsUploaded":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":5,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":6,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":7,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":8,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}}],"lifecycleHooks":[0]},"isComponent":true,"selector":"app-workflow-compliance","exportAs":null,"inputs":{"mode":"mode","responsibilityId":"responsibilityId","frameworkDetails":"frameworkDetails","isEntrust":"isEntrust","closeOnEsc":"closeOnEsc","openedFrom":"openedFrom","selectedRC":"selectedRC","selectedProgram":"selectedProgram"},"outputs":{"pickerChanged":"pickerChanged","populateOption":"populateOption","hideElementsFromMoreOptions":"hideElementsFromMoreOptions","closeWorkflow":"closeWorkflow","resetForm":"resetForm","disconnectRefresh":"disconnectRefresh","checkpointCountUpdated":"checkpointCountUpdated","rcSelected":"rcSelected","onRemovingCheckpoint":"onRemovingCheckpoint","isAssessmentDisabled":"isAssessmentDisabled"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[{"selectors":[{"value":"what"}],"first":true,"descendants":true,"propertyName":"whatInput","read":null}],"entryComponents":[],"changeDetection":1,"template":{"ngContentSelectors":[],"encapsulation":0,"styles":[],"animations":[]},"componentViewType":{"__symbol":9,"members":[]},"rendererType":{"__symbol":10,"members":[]},"componentFactory":{"__symbol":11,"members":[]}}}],"symbols":[{"__symbol":0,"name":"WorkflowComplianceComponent","filePath":"./workflow-compliance.component"},{"__symbol":1,"name":"Input","filePath":"@angular/core"},{"__symbol":2,"name":"Output","filePath":"@angular/core"},{"__symbol":3,"name":"ViewChild","filePath":"@angular/core"},{"__symbol":4,"name":"AuthService","filePath":"../workflow-services/auth.service"},{"__symbol":5,"name":"ResponsibilityService","filePath":"../workflow-services/responsibility.service"},{"__symbol":6,"name":"FrequencyService","filePath":"../sharedComponents/frequency/frequency.service"},{"__symbol":7,"name":"UiKitService","filePath":"../workflow-services/ui-kit.service"},{"__symbol":8,"name":"SnackBarService","filePath":"../ui-kit/snack-bar/snack-bar.service"},{"__symbol":9,"name":"View_WorkflowComplianceComponent_0","filePath":"./workflow-compliance.component.ngfactory"},{"__symbol":10,"name":"RenderType_WorkflowComplianceComponent","filePath":"./workflow-compliance.component.ngfactory"},{"__symbol":11,"name":"WorkflowComplianceComponentNgFactory","filePath":"./workflow-compliance.component.ngfactory"}]}
1
+ {"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"responsibilityId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"frameworkDetails":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"isEntrust":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"closeOnEsc":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["closeOnEsc"]}]}],"pickerChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"populateOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"hideElementsFromMoreOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"closeWorkflow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"resetForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"disconnectRefresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"checkpointCountUpdated":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"rcSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"openedFrom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"selectedRC":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"selectedProgram":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"onRemovingCheckpoint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"isAssessmentDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"whatInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]},"arguments":["what"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":4,"members":[]},{"__symbol":5,"members":[]},{"__symbol":6,"members":[]},{"__symbol":7,"members":[]},{"__symbol":8,"members":[]},{"__symbol":4,"members":[]}]}],"ngOnInit":[{"__symbolic":"method"}],"activateSelector":[{"__symbolic":"method"}],"whatChanged":[{"__symbolic":"method"}],"activeDeselector":[{"__symbolic":"method"}],"addMoreInfo":[{"__symbolic":"method"}],"getRCList":[{"__symbolic":"method"}],"getUserDetails":[{"__symbolic":"method"}],"getAssurance":[{"__symbolic":"method"}],"getAssuranceForRequiresAudit":[{"__symbolic":"method"}],"getOrganizationDetails":[{"__symbolic":"method"}],"getCategoryList":[{"__symbolic":"method"}],"filterListsAccordingToProgram":[{"__symbolic":"method"}],"getListsAccordingToProgram":[{"__symbolic":"method"}],"getAssignorsList":[{"__symbolic":"method"}],"getAssigneesList":[{"__symbolic":"method"}],"getPeopleListAgainstPID":[{"__symbolic":"method"}],"getGroupsList":[{"__symbolic":"method"}],"getEditResponsibilityDetails":[{"__symbolic":"method"}],"setList":[{"__symbolic":"method"}],"returnIds":[{"__symbolic":"method"}],"setReviewerPayload":[{"__symbolic":"method"}],"checkWhetherAllListsLoaded":[{"__symbolic":"method"}],"saveSelectedList":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"entrustFramework":[{"__symbolic":"method"}],"refreshAllLists":[{"__symbolic":"method"}],"refreshListsWhileProgramSelected":[{"__symbolic":"method"}],"submitResponsibility":[{"__symbolic":"method"}],"validateResponsibility":[{"__symbolic":"method"}],"entrustResponsibility":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"action":[{"__symbolic":"method"}],"viewResponsibilities":[{"__symbolic":"method"}],"closeSmiley":[{"__symbolic":"method"}],"frequencyDataPopulation":[{"__symbolic":"method"}],"frequencyPopulation":[{"__symbolic":"method"}],"frequencyData":[{"__symbolic":"method"}],"checkBlank":[{"__symbolic":"method"}],"getFrequencyPlaceholder":[{"__symbolic":"method"}],"getOnCompletionOf":[{"__symbolic":"method"}],"getDailyPlaceholder":[{"__symbolic":"method"}],"getWeeklyPlaceholder":[{"__symbolic":"method"}],"getMonthlyPlaceholder":[{"__symbolic":"method"}],"getQuarterlyPlaceholder":[{"__symbolic":"method"}],"getBiannualPlaceholder":[{"__symbolic":"method"}],"getYearlyPlaceholder":[{"__symbolic":"method"}],"getRandomPlaceholder":[{"__symbolic":"method"}],"onEditWhat":[{"__symbolic":"method"}],"getEditMoreOptions":[{"__symbolic":"method"}],"testFunction":[{"__symbolic":"method"}],"reviewerTypeChange":[{"__symbolic":"method"}],"selectedSampleData":[{"__symbolic":"method"}],"populateAssuranceList":[{"__symbolic":"method"}],"checkInputValue":[{"__symbolic":"method"}],"switchEnable":[{"__symbolic":"method"}],"onAssessmentSelect":[{"__symbolic":"method"}],"getAssessmentDetails":[{"__symbolic":"method"}],"onRemoveCheckpoints":[{"__symbolic":"method"}],"removeCheckpoint":[{"__symbolic":"method"}],"postAssessment":[{"__symbolic":"method"}],"setIsUploaded":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":5,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":6,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":7,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":8,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}}],"lifecycleHooks":[0]},"isComponent":true,"selector":"app-workflow-compliance","exportAs":null,"inputs":{"mode":"mode","responsibilityId":"responsibilityId","frameworkDetails":"frameworkDetails","isEntrust":"isEntrust","closeOnEsc":"closeOnEsc","openedFrom":"openedFrom","selectedRC":"selectedRC","selectedProgram":"selectedProgram"},"outputs":{"pickerChanged":"pickerChanged","populateOption":"populateOption","hideElementsFromMoreOptions":"hideElementsFromMoreOptions","closeWorkflow":"closeWorkflow","resetForm":"resetForm","disconnectRefresh":"disconnectRefresh","checkpointCountUpdated":"checkpointCountUpdated","rcSelected":"rcSelected","onRemovingCheckpoint":"onRemovingCheckpoint","isAssessmentDisabled":"isAssessmentDisabled"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[{"selectors":[{"value":"what"}],"first":true,"descendants":true,"propertyName":"whatInput","read":null}],"entryComponents":[],"changeDetection":1,"template":{"ngContentSelectors":[],"encapsulation":0,"styles":[],"animations":[]},"componentViewType":{"__symbol":9,"members":[]},"rendererType":{"__symbol":10,"members":[]},"componentFactory":{"__symbol":11,"members":[]}}}],"symbols":[{"__symbol":0,"name":"WorkflowComplianceComponent","filePath":"./workflow-compliance.component"},{"__symbol":1,"name":"Input","filePath":"@angular/core"},{"__symbol":2,"name":"Output","filePath":"@angular/core"},{"__symbol":3,"name":"ViewChild","filePath":"@angular/core"},{"__symbol":4,"name":"AuthService","filePath":"../workflow-services/auth.service"},{"__symbol":5,"name":"ResponsibilityService","filePath":"../workflow-services/responsibility.service"},{"__symbol":6,"name":"FrequencyService","filePath":"../sharedComponents/frequency/frequency.service"},{"__symbol":7,"name":"UiKitService","filePath":"../workflow-services/ui-kit.service"},{"__symbol":8,"name":"SnackBarService","filePath":"../ui-kit/snack-bar/snack-bar.service"},{"__symbol":9,"name":"View_WorkflowComplianceComponent_0","filePath":"./workflow-compliance.component.ngfactory"},{"__symbol":10,"name":"RenderType_WorkflowComplianceComponent","filePath":"./workflow-compliance.component.ngfactory"},{"__symbol":11,"name":"WorkflowComplianceComponentNgFactory","filePath":"./workflow-compliance.component.ngfactory"}]}
@@ -226,7 +226,7 @@ export class AssessmentPickerComponent {
226
226
  this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);
227
227
  this.setCategoryAndAssessment();
228
228
  if (((_b = this.selectedAssessmentArr[index].assessmentIds) === null || _b === void 0 ? void 0 : _b.length) === 0) {
229
- this.selectedAssessmentArr.splice(index);
229
+ this.selectedAssessmentArr.splice(index, 1);
230
230
  this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);
231
231
  this.setCategoryAndAssessment();
232
232
  }
@@ -281,4 +281,4 @@ AssessmentPickerComponent.propDecorators = {
281
281
  onAssessmentSelect: [{ type: Output }],
282
282
  cancelAssessment: [{ type: Output }]
283
283
  };
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jcmVhdGUtcHJvZ3JhbS11aS9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQXFEcEMsWUFDVSxpQkFBb0MsRUFDcEMsSUFBaUI7UUFEakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBdEQzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDUCxXQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLG1CQUFjLEdBQWtCLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRztZQUNsQixZQUFZLEVBQUMsRUFBRTtZQUNmLE9BQU8sRUFBQyxHQUFHO1lBQ1gsS0FBSyxFQUFDLFFBQVE7WUFDZCxXQUFXLEVBQUUsRUFBRTtZQUNmLGVBQWUsRUFBRSxFQUFFO1NBQ3BCLENBQUE7UUFFRCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQix1QkFBa0IsR0FBTztZQUN2QixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxDQUFDO1lBQ1osWUFBWSxFQUFFLENBQUM7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akIsV0FBVzs7O3FCQWFqQixLQUFLOzBCQXVCTCxLQUFLLFNBQUMsb0JBQW9CO3FDQWtCMUIsS0FBSztpQ0FFTCxNQUFNOytCQUVOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudFNlcnZpY2UgfSBmcm9tICcuL2Fzc2Vzc21lbnQuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhc3Nlc3NtZW50LXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fzc2Vzc21lbnQtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3Nlc3NtZW50UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBhbmltYXRpb24gPSBmYWxzZTtcclxuICBzZWxlY3RlZERhdGE6IGFueTtcclxuICBzdWJMaXN0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNFZGl0ID0gZmFsc2VcclxuICBvcGVuZWRDYXRlZ29yeTogQXJyYXk8bnVtYmVyPiA9IFtdO1xyXG4gIGFzc2Vzc21lbnRQYXlsb2FkID0ge1xyXG4gICAgc2VhcmNoX3RpdGxlOlwiXCIsXHJcbiAgICBwYWdlX25vOlwiMVwiLFxyXG4gICAgc3RhdGU6XCJBQ1RJVkVcIixcclxuICAgIHNlYXJjaF90ZXh0OiAnJyxcclxuICAgIGFscGhhYmV0X2ZpbHRlcjogJydcclxuICB9XHJcblxyXG4gIGRhdGFQZXJQYWdlID0gMDtcclxuXHJcbiAgYXNzZXNzbWVudENhdGVnb3J5OiBhbnkgPXtcclxuICAgIGRhdGE6IFtdLFxyXG4gICAgdG90YWxQYWdlOiAwLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gICAgc3RhcnRfdmFsdWU6IDAsXHJcbiAgICBlbmRfdmFsdWU6IDAsXHJcbiAgICBjdXJyZW50UGFnZTogMFxyXG4gIH07XHJcbiAgaXNMb2FkZXIgPSBmYWxzZVxyXG5cclxuXHJcbiAgQElucHV0KCdzZWxlY3RlZEFzc2Vzc21lbnQnKSBzZXQgc2V0U2VsZWN0ZWQodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlPy5sZW5ndGgpIHtcclxuICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IFsuLi52YWx1ZV07XHJcbiAgICAgLy90aGlzLnNldENhdGVnb3J5QW5kQXNzZXNzbWVudCgpO1xyXG4gICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZvckVhY2goKGVsZTphbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChlbGU/LmNhdGVnb3J5X2lkKTtcclxuICAgIC8vICAgdGhpcy5zaG93U3ViTGlzdChpbmRleCxlbGU/LmNhdGVnb3J5X2lkKTtcclxuICAgICB9KVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBpc0RlbGV0ZWQgPSBmYWxzZTtcclxuXHJcbiAgc2VhcmNoQXNzZXNzbWVudHMgPSAnJztcclxuICBwcmV2aWV3UXVlc3Rpb25EYXRhICE6IGFueTtcclxuICBpc1ByZXZpZXcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEFzc2Vzc21lbnREYXRhOiBhbnkgPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQXNzZXNzbWVudFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIGNhbmNlbEFzc2Vzc21lbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHNlbGVjdGVkQXNzZXNzbWVudEFycjogYW55ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGggOkF1dGhTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG4gICAgdGhpcy5kYXRhUGVyUGFnZSA9IDMwO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlcyA9PT09PlwiLCBjaGFuZ2VzLCB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudERhdGEsIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gIH1cclxuXHJcbiAgb25Bc3Nlc3NtZW50U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHByZXZpZXcoZXZ0OmFueSl7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZ2V0QXNzZXNzbWVudFF1ZXN0aW9ucyhldnQ/LmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInJlc1wiLHJlcyk7XHJcbiAgICAgICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQodHJ1ZSlcclxuICAgICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMucHJldmlld1F1ZXN0aW9uRGF0YSA9IHJlcztcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJldmlld0JhY2soKXtcclxuICAgIHRoaXMuaXNQcmV2aWV3ID0gZmFsc2U7XHJcbiAgICB0aGlzLnByZXZpZXdRdWVzdGlvbkRhdGEgPSB7fTtcclxuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGluZGV4IDogQWNjZXB0IGluZGV4IG9mIGVsZW1lbnRQb3NpdGlvblxyXG4gICAqXHJcbiAgICovXHJcbiAgc2hvd1N1Ykxpc3QoaW5kZXg6IG51bWJlciwgaWQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLm9wZW5lZENhdGVnb3J5ZGFzYXNmc2EgPT0+XCIsIHRoaXMub3BlbmVkQ2F0ZWdvcnksaW5kZXgsaWQpXHJcbiAgICBpZih0aGlzLm9wZW5lZENhdGVnb3J5LmluY2x1ZGVzKGlkKSkge1xyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gdGhpcy5vcGVuZWRDYXRlZ29yeS5maWx0ZXIoZWxlID0+IGVsZSAhPT0gaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuZWRDYXRlZ29yeS5wdXNoKGlkKTtcclxuICAgICAgdGhpcy5nZXRBc3Nlc3NtZW50TGlzdChpZClcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5vcGVuZWRDYXRlZ29yeSA9PT5cIiwgdGhpcy5vcGVuZWRDYXRlZ29yeSlcclxuICAgIHJldHVybiAgdGhpcy5vcGVuZWRDYXRlZ29yeVxyXG4gIH1cclxuXHJcblxyXG4gIGV4cGFuZENhdGVnb3J5KGNhdGVnb3J5SWQ6YW55KXtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnk/LmRhdGE/LmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PT0gY2F0ZWdvcnlJZCk7XHJcbiAgICAgaWYodGhpcy5vcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhjYXRlZ29yeUlkKSAmJiAgdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YVtpbmRleF0uYXNzZXNzbWVudERhdGEgKXtcclxuXHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSB0aGlzLm9wZW5lZENhdGVnb3J5LmZpbHRlcihlbGUgPT4gZWxlICE9PSBjYXRlZ29yeUlkKTtcclxuICAgICB9ZWxzZXtcclxuXHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChjYXRlZ29yeUlkKTtcclxuICAgICAgdGhpcy5nZXRBc3Nlc3NtZW50TGlzdChjYXRlZ29yeUlkKVxyXG4gICAgIH1cclxuICB9XHJcbiAgLy8gVE9ETzogUGFnaW5hdGlvblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2ZW50IDogcGFnZSBudW1iZXIgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZFxyXG4gICAqL1xyXG4gIG9uUGFnZVNlbGVjdGlvbihldmVudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XHJcbiAgICBjb25zb2xlLmxvZyhcIjExMVwiKVxyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gZXZlbnQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogU2VhcmNoXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2VhcmNoIDogc2VhcmNoIHRleHRcclxuICAgKi9cclxuICBvbkFzc2Vzc21lbnRTZWFyY2goc2VhcmNoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcclxuICAgIGNvbnNvbGUubG9nKFwiMjIyXCIpXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSBcIjFcIjtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RpdGxlID0gc2VhcmNoO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5zZWFyY2hfdGV4dCA9IHNlYXJjaDtcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogRmlsdGVyIGJ5IGFscGhhYmV0XHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0gZXZlbnQgOiBBc3Nlc3NtZW50IGNhdGVnb3J5IGZpbHRlciBvZiBBbHBoYWJldFxyXG4gKi9cclxuICBvbkFscGhhYmV0U2VsZWN0ZWQoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coXCIzMzNcIilcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyA9IFwiMVwiO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5hbHBoYWJldF9maWx0ZXIgPSBldmVudDtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RleHQgPSAnJztcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLyBUT0RPOiBDYWxsIEFQSSBtZXRob2RcclxuICBnZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRDYXRlZ29yeSh0aGlzLmFzc2Vzc21lbnRQYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5ID0gcmVzO1xyXG5cclxuICAgICAgaWYodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnI/Lmxlbmd0aCkge1xyXG4gICAgICAgLy8gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSAgWy4uLiBuZXcgU2V0KHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKV1cclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG5cclxuXHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHJlcy5kYXRhLmZpbmRJbmRleCgoYXNzZXNzbWVudDogYW55KSA9PiBhc3Nlc3NtZW50LmlkID09PSBlbGUuY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRDYXRlZ29yeShlbGUuY2F0ZWdvcnlfaWQpO1xyXG5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZvckVhY2goKGVsZTphbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgLy8gICB0aGlzLnNob3dTdWJMaXN0KGluZGV4LGVsZT8uY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIC8vIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBDYWxsIFN1YiBkYXRhIEFQSSBtZXRob2RcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgOiBBc3Nlc3NtZW50IGNhdGVnb3J5IGlkXHJcbiAgICovXHJcbiAgZ2V0QXNzZXNzbWVudExpc3QoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coXCJhc3NzXCIsaWQpXHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBzZWFyY2hfdGl0bGU6XCJcIixcclxuICAgIH1cclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZ2V0QXNzZXNzbWVudExpc3QocGF5bG9hZCwgaWQpLnN1YnNjcmliZSgocmVzOiBBcnJheTxhbnk+KSA9PiB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnk/LmRhdGE/LmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PT0gaWQpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImluZGV4ZXJcIixpbmRleCx0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSlcclxuICAgICAgaWYoaW5kZXggPiAtMSApe1xyXG4gICAgICAgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5LmRhdGFbaW5kZXhdLmFzc2Vzc21lbnREYXRhID0gWy4uLm5ldyBTZXQocmVzKV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiYXNzXCIsKVxyXG4gICAgICBpZih0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PT0gaWQpO1xyXG4gICAgICAgIC8vIGlmKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIC8vICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMubWFwKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBlbGUgPSByZXMuZmluZCgoZGF0YTogYW55KSA9PiBkYXRhLmlkID09PSBlbGUpO1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gZWxlO1xyXG4gICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHM6YW55ID0gW107XHJcbiAgc2VsZWN0ZWRBc3Nlc3NtZW50SWRzOmFueSA9IFtdO1xyXG4gIHNlbGVjdGVkQXNzZXNzbWVudDphbnkgPSBbXTtcclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIHNlbGVjdEFzc2Vzc21lbnQoZXZ0OiBhbnksIHBheWxvYWQ6IGFueSwgY2F0ZWdvcnk6IGFueSkge1xyXG4gICBpZihldnQ/LnRhcmdldD8uY2hlY2tlZCl7XHJcbiAgICAgY29uc29sZS5sb2coXCJzZWxlY3RlZFwiLHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKVxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGNhdGVnb3J5LmlkKTtcclxuICAgIGlmKGluZGV4ID4gLTEpIHtcclxuICAgICBjb25zdCAgY3VycmVudENhdGVnb3J5QXNzZXNzbWVudCA9ICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcztcclxuICAgICBjdXJyZW50Q2F0ZWdvcnlBc3Nlc3NtZW50LnB1c2gocGF5bG9hZCk7XHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChjdXJyZW50Q2F0ZWdvcnlBc3Nlc3NtZW50LCdpZCcpXHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpXHJcbiAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5wdXNoKHtcclxuICAgICAgICBjYXRlZ29yeV9pZDogY2F0ZWdvcnkuaWQsXHJcbiAgICAgICAgYXNzZXNzbWVudElkczogW3BheWxvYWRdXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgIH1cclxuICAgfWVsc2V7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PT0gY2F0ZWdvcnkuaWQpO1xyXG4gICAgaWYoaW5kZXggPiAtMSl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMuZmlsdGVyKChhc3Nlc3NtZW50OiBhbnkpID0+IGFzc2Vzc21lbnQuaWQgIT09IHBheWxvYWQuaWQpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgaWYoIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzPy5sZW5ndGggPT09IDApe1xyXG4gICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuc3BsaWNlKGluZGV4KTtcclxuICAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyID0gY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKVxyXG4gICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICB9XHJcblxyXG59XHJcblxyXG5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKXtcclxuICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maWx0ZXIoKGNhdDphbnkpID0+IGNhdD8uYXNzZXNzbWVudElkcz8ubGVuZ3RoID4gMCk/Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5jYXRlZ29yeV9pZCkuZmxhdCgpO1xyXG4gIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50SWRzID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIubWFwKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHMubWFwKChlbGU6YW55KSA9PiBlbGU/LmlkKSkuZmxhdCgpO1xyXG4gIGNvbnNvbGUubG9nKFwidGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRJZHMgPT0+XCIsIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50SWRzKVxyXG4gIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50ID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIubWFwKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHMubWFwKChlbGU6YW55KSA9PiBlbGUpKS5mbGF0KCk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogRGlzcGxheSBzZWxlY3RlZCBkYXRhIGluIGJvdHRvbSBmbG9hdGluZyBiYXIgd2l0aCBuZXh0IGVuYWJsZWQgYnV0dG9uIGhhdmluZ1xyXG5cclxuICAvLyBUT0RPOiBTZW5kIGRhdGEgaW4gcGF5bG9hZCBvZiBjcmVhdGUgUmVzcG9uc2liaWxpdHkgZm9ybVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5vbkFzc2Vzc21lbnRTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWxBc3Nlc3NtZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gICAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICAgICAucmVkdWNlKFxyXG4gICAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgICBhY2NcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudmFsdWVzKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jcmVhdGUtcHJvZ3JhbS11aS9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQXFEcEMsWUFDVSxpQkFBb0MsRUFDcEMsSUFBaUI7UUFEakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBdEQzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDUCxXQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLG1CQUFjLEdBQWtCLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRztZQUNsQixZQUFZLEVBQUMsRUFBRTtZQUNmLE9BQU8sRUFBQyxHQUFHO1lBQ1gsS0FBSyxFQUFDLFFBQVE7WUFDZCxXQUFXLEVBQUUsRUFBRTtZQUNmLGVBQWUsRUFBRSxFQUFFO1NBQ3BCLENBQUE7UUFFRCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQix1QkFBa0IsR0FBTztZQUN2QixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxDQUFDO1lBQ1osWUFBWSxFQUFFLENBQUM7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aUJBQWlCO1lBRGpCLFdBQVc7OztxQkFhakIsS0FBSzswQkF1QkwsS0FBSyxTQUFDLG9CQUFvQjtxQ0FrQjFCLEtBQUs7aUNBRUwsTUFBTTsrQkFFTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hc3Nlc3NtZW50LnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNzZXNzbWVudC1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXNzbWVudFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWREYXRhOiBhbnk7XHJcbiAgc3ViTGlzdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzRWRpdCA9IGZhbHNlXHJcbiAgb3BlbmVkQ2F0ZWdvcnk6IEFycmF5PG51bWJlcj4gPSBbXTtcclxuICBhc3Nlc3NtZW50UGF5bG9hZCA9IHtcclxuICAgIHNlYXJjaF90aXRsZTpcIlwiLFxyXG4gICAgcGFnZV9ubzpcIjFcIixcclxuICAgIHN0YXRlOlwiQUNUSVZFXCIsXHJcbiAgICBzZWFyY2hfdGV4dDogJycsXHJcbiAgICBhbHBoYWJldF9maWx0ZXI6ICcnXHJcbiAgfVxyXG5cclxuICBkYXRhUGVyUGFnZSA9IDA7XHJcblxyXG4gIGFzc2Vzc21lbnRDYXRlZ29yeTogYW55ID17XHJcbiAgICBkYXRhOiBbXSxcclxuICAgIHRvdGFsUGFnZTogMCxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICAgIHN0YXJ0X3ZhbHVlOiAwLFxyXG4gICAgZW5kX3ZhbHVlOiAwLFxyXG4gICAgY3VycmVudFBhZ2U6IDBcclxuICB9O1xyXG4gIGlzTG9hZGVyID0gZmFsc2VcclxuXHJcblxyXG4gIEBJbnB1dCgnc2VsZWN0ZWRBc3Nlc3NtZW50Jykgc2V0IHNldFNlbGVjdGVkKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBbLi4udmFsdWVdO1xyXG4gICAgIC8vdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5mb3JFYWNoKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAvLyAgIHRoaXMuc2hvd1N1Ykxpc3QoaW5kZXgsZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgfSlcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgaXNEZWxldGVkID0gZmFsc2U7XHJcblxyXG4gIHNlYXJjaEFzc2Vzc21lbnRzID0gJyc7XHJcbiAgcHJldmlld1F1ZXN0aW9uRGF0YSAhOiBhbnk7XHJcbiAgaXNQcmV2aWV3ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRBc3Nlc3NtZW50RGF0YTogYW55ID0gW107XHJcblxyXG4gIEBPdXRwdXQoKSBvbkFzc2Vzc21lbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjYW5jZWxBc3Nlc3NtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBzZWxlY3RlZEFzc2Vzc21lbnRBcnI6IGFueSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudFNlcnZpY2U6IEFzc2Vzc21lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoIDpBdXRoU2VydmljZVxyXG4gICkge1xyXG5cclxuICAgIHRoaXMuZGF0YVBlclBhZ2UgPSAzMDtcclxuICB9XHJcblxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcImNoYW5nZXMgPT09PT5cIiwgY2hhbmdlcywgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnREYXRhLCB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIG9uQXNzZXNzbWVudFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwcmV2aWV3KGV2dDphbnkpe1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRRdWVzdGlvbnMoZXZ0Py5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJyZXNcIixyZXMpO1xyXG4gICAgICAgICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpXHJcbiAgICAgICAgICB0aGlzLmlzUHJldmlldyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdRdWVzdGlvbkRhdGEgPSByZXM7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByZXZpZXdCYWNrKCl7XHJcbiAgICB0aGlzLmlzUHJldmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5wcmV2aWV3UXVlc3Rpb25EYXRhID0ge307XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpbmRleCA6IEFjY2VwdCBpbmRleCBvZiBlbGVtZW50UG9zaXRpb25cclxuICAgKlxyXG4gICAqL1xyXG4gIHNob3dTdWJMaXN0KGluZGV4OiBudW1iZXIsIGlkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5vcGVuZWRDYXRlZ29yeWRhc2FzZnNhID09PlwiLCB0aGlzLm9wZW5lZENhdGVnb3J5LGluZGV4LGlkKVxyXG4gICAgaWYodGhpcy5vcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpZCkpIHtcclxuICAgICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IHRoaXMub3BlbmVkQ2F0ZWdvcnkuZmlsdGVyKGVsZSA9PiBlbGUgIT09IGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChpZCk7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudExpc3QoaWQpXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMub3BlbmVkQ2F0ZWdvcnkgPT0+XCIsIHRoaXMub3BlbmVkQ2F0ZWdvcnkpXHJcbiAgICByZXR1cm4gIHRoaXMub3BlbmVkQ2F0ZWdvcnlcclxuICB9XHJcblxyXG5cclxuICBleHBhbmRDYXRlZ29yeShjYXRlZ29yeUlkOmFueSl7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuYXNzZXNzbWVudENhdGVnb3J5Py5kYXRhPy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT09IGNhdGVnb3J5SWQpO1xyXG4gICAgIGlmKHRoaXMub3BlbmVkQ2F0ZWdvcnkuaW5jbHVkZXMoY2F0ZWdvcnlJZCkgJiYgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5LmRhdGFbaW5kZXhdLmFzc2Vzc21lbnREYXRhICl7XHJcblxyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gdGhpcy5vcGVuZWRDYXRlZ29yeS5maWx0ZXIoZWxlID0+IGVsZSAhPT0gY2F0ZWdvcnlJZCk7XHJcbiAgICAgfWVsc2V7XHJcblxyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goY2F0ZWdvcnlJZCk7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudExpc3QoY2F0ZWdvcnlJZClcclxuICAgICB9XHJcbiAgfVxyXG4gIC8vIFRPRE86IFBhZ2luYXRpb25cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBldmVudCA6IHBhZ2UgbnVtYmVyIHRoYXQgaGFzIGJlZW4gc2VsZWN0ZWRcclxuICAgKi9cclxuICBvblBhZ2VTZWxlY3Rpb24oZXZlbnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coXCIxMTFcIilcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyA9IGV2ZW50LnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IFNlYXJjaFxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlYXJjaCA6IHNlYXJjaCB0ZXh0XHJcbiAgICovXHJcbiAgb25Bc3Nlc3NtZW50U2VhcmNoKHNlYXJjaDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XHJcbiAgICBjb25zb2xlLmxvZyhcIjIyMlwiKVxyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gXCIxXCI7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90aXRsZSA9IHNlYXJjaDtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RleHQgPSBzZWFyY2g7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IEZpbHRlciBieSBhbHBoYWJldFxyXG4vKipcclxuICpcclxuICogQHBhcmFtIGV2ZW50IDogQXNzZXNzbWVudCBjYXRlZ29yeSBmaWx0ZXIgb2YgQWxwaGFiZXRcclxuICovXHJcbiAgb25BbHBoYWJldFNlbGVjdGVkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcclxuICAgIGNvbnNvbGUubG9nKFwiMzMzXCIpXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSBcIjFcIjtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuYWxwaGFiZXRfZmlsdGVyID0gZXZlbnQ7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90ZXh0ID0gJyc7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogQ2FsbCBBUEkgbWV0aG9kXHJcbiAgZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpIHtcclxuICAgIHRoaXMuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnkodGhpcy5hc3Nlc3NtZW50UGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSA9IHJlcztcclxuXHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyPy5sZW5ndGgpIHtcclxuICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyID0gIFsuLi4gbmV3IFNldCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycildXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuXHJcblxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSByZXMuZGF0YS5maW5kSW5kZXgoKGFzc2Vzc21lbnQ6IGFueSkgPT4gYXNzZXNzbWVudC5pZCA9PT0gZWxlLmNhdGVnb3J5X2lkKTtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kQ2F0ZWdvcnkoZWxlLmNhdGVnb3J5X2lkKTtcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5mb3JFYWNoKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgdGhpcy5vcGVuZWRDYXRlZ29yeS5wdXNoKGVsZT8uY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIC8vICAgdGhpcy5zaG93U3ViTGlzdChpbmRleCxlbGU/LmNhdGVnb3J5X2lkKTtcclxuICAgICAgICAvLyB9KVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogQ2FsbCBTdWIgZGF0YSBBUEkgbWV0aG9kXHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIDogQXNzZXNzbWVudCBjYXRlZ29yeSBpZFxyXG4gICAqL1xyXG4gIGdldEFzc2Vzc21lbnRMaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiYXNzc1wiLGlkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgc2VhcmNoX3RpdGxlOlwiXCIsXHJcbiAgICB9XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRMaXN0KHBheWxvYWQsIGlkKS5zdWJzY3JpYmUoKHJlczogQXJyYXk8YW55PikgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuYXNzZXNzbWVudENhdGVnb3J5Py5kYXRhPy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT09IGlkKTtcclxuICAgICAgY29uc29sZS5sb2coXCJpbmRleGVyXCIsaW5kZXgsdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkpXHJcbiAgICAgIGlmKGluZGV4ID4gLTEgKXtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhW2luZGV4XS5hc3Nlc3NtZW50RGF0YSA9IFsuLi5uZXcgU2V0KHJlcyldO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcImFzc1wiLClcclxuICAgICAgaWYodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnI/Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGlkKTtcclxuICAgICAgICAvLyBpZihpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAvLyAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzICA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzLm1hcCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyAgICAgZWxlID0gcmVzLmZpbmQoKGRhdGE6IGFueSkgPT4gZGF0YS5pZCA9PT0gZWxlKTtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIGVsZTtcclxuICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZEFzc2Vzc21lbnRDYXRlZ29yaWVzSWRzOmFueSA9IFtdO1xyXG4gIHNlbGVjdGVkQXNzZXNzbWVudElkczphbnkgPSBbXTtcclxuICBzZWxlY3RlZEFzc2Vzc21lbnQ6YW55ID0gW107XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICogQHBhcmFtIHBheWxvYWRcclxuICAgKi9cclxuICBzZWxlY3RBc3Nlc3NtZW50KGV2dDogYW55LCBwYXlsb2FkOiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcclxuICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpe1xyXG4gICAgIGNvbnNvbGUubG9nKFwic2VsZWN0ZWRcIix0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09PSBjYXRlZ29yeS5pZCk7XHJcbiAgICBpZihpbmRleCA+IC0xKSB7XHJcbiAgICAgY29uc3QgIGN1cnJlbnRDYXRlZ29yeUFzc2Vzc21lbnQgPSAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHM7XHJcbiAgICAgY3VycmVudENhdGVnb3J5QXNzZXNzbWVudC5wdXNoKHBheWxvYWQpO1xyXG4gICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzID0gdGhpcy51bmlxdWVCeVByb3AoY3VycmVudENhdGVnb3J5QXNzZXNzbWVudCwnaWQnKVxyXG4gICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyID0gY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKVxyXG4gICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIucHVzaCh7XHJcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5LmlkLFxyXG4gICAgICAgIGFzc2Vzc21lbnRJZHM6IFtwYXlsb2FkXVxyXG4gICAgICB9KVxyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpXHJcbiAgICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICB9XHJcbiAgIH1lbHNle1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGNhdGVnb3J5LmlkKTtcclxuICAgIGlmKGluZGV4ID4gLTEpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcyA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzLmZpbHRlcigoYXNzZXNzbWVudDogYW55KSA9PiBhc3Nlc3NtZW50LmlkICE9PSBwYXlsb2FkLmlkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpXHJcbiAgICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICAgIGlmKCB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcz8ubGVuZ3RoID09PSAwKXtcclxuICAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICAgICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgfVxyXG5cclxufVxyXG5cclxuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCl7XHJcbiAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRDYXRlZ29yaWVzSWRzID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuZmlsdGVyKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHM/Lmxlbmd0aCA+IDApPy5tYXAoKGVsZTphbnkpID0+IGVsZT8uY2F0ZWdvcnlfaWQpLmZsYXQoKTtcclxuICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudElkcyA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLm1hcCgoY2F0OmFueSkgPT4gY2F0Py5hc3Nlc3NtZW50SWRzLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5pZCkpLmZsYXQoKTtcclxuICBjb25zb2xlLmxvZyhcInRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50SWRzID09PlwiLCB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudElkcylcclxuICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLm1hcCgoY2F0OmFueSkgPT4gY2F0Py5hc3Nlc3NtZW50SWRzLm1hcCgoZWxlOmFueSkgPT4gZWxlKSkuZmxhdCgpO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG4gIC8vIFRPRE86IERpc3BsYXkgc2VsZWN0ZWQgZGF0YSBpbiBib3R0b20gZmxvYXRpbmcgYmFyIHdpdGggbmV4dCBlbmFibGVkIGJ1dHRvbiBoYXZpbmdcclxuXHJcbiAgLy8gVE9ETzogU2VuZCBkYXRhIGluIHBheWxvYWQgb2YgY3JlYXRlIFJlc3BvbnNpYmlsaXR5IGZvcm1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMub25Bc3Nlc3NtZW50U2VsZWN0LmVtaXQodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpXHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuY2FuY2VsQXNzZXNzbWVudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIFJldHVybnMgdGhlIHVuaXF1ZSBhcnJheSBvZiBvYmplY3QgYmFzZWQgb24gdW5pcXVlIGtleVxyXG4gKiBAcGFyYW0gYXJyYXlcclxuICogQHBhcmFtIGtleVxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuICAgIHVuaXF1ZUJ5UHJvcChhcnJheTogYW55LCBrZXk6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gQXJyYXkuZnJvbShcclxuICAgICAgICBhcnJheVxyXG4gICAgICAgICAgLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYzogYW55LCBpdGVtOiBhbnkpID0+IChcclxuICAgICAgICAgICAgICBpdGVtICYmIGl0ZW1ba2V5XSAmJiBhY2Muc2V0KGl0ZW1ba2V5XSwgaXRlbSksXHJcbiAgICAgICAgICAgICAgYWNjXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIG5ldyBNYXAoKVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnZhbHVlcygpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==