@alfresco/adf-process-services-cloud 8.1.0-14701637708 → 8.1.0-14711395239
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.
- package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +4 -4
- package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +4 -4
- package/esm2022/lib/app/services/apps-process-cloud.service.mjs +4 -4
- package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +4 -4
- package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +4 -4
- package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +4 -4
- package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +4 -4
- package/esm2022/lib/form/components/form-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/form-cloud.module.mjs +5 -5
- package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +4 -4
- package/esm2022/lib/form/services/display-mode.service.mjs +4 -4
- package/esm2022/lib/form/services/form-cloud.service.mjs +4 -4
- package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +4 -4
- package/esm2022/lib/form/services/form-utils.service.mjs +4 -4
- package/esm2022/lib/form/services/process-cloud-content.service.mjs +4 -4
- package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +4 -4
- package/esm2022/lib/group/components/group-cloud.component.mjs +4 -4
- package/esm2022/lib/group/group-cloud.module.mjs +5 -5
- package/esm2022/lib/group/services/identity-group.service.mjs +4 -4
- package/esm2022/lib/people/components/people-cloud.component.mjs +4 -4
- package/esm2022/lib/people/people-cloud.module.mjs +5 -5
- package/esm2022/lib/people/services/identity-user.service.mjs +4 -4
- package/esm2022/lib/process/process-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +4 -4
- package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/process/services/process-cloud.service.mjs +4 -4
- package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +4 -4
- package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +4 -4
- package/esm2022/lib/process-services-cloud.module.mjs +5 -5
- package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +4 -4
- package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +5 -5
- package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +4 -4
- package/esm2022/lib/services/base-cloud.service.mjs +4 -4
- package/esm2022/lib/services/local-preference-cloud.service.mjs +4 -4
- package/esm2022/lib/services/notification-cloud.service.mjs +4 -4
- package/esm2022/lib/services/screen-rendering.service.mjs +4 -4
- package/esm2022/lib/services/user-preference-cloud.service.mjs +4 -4
- package/esm2022/lib/services/variable-mapper.sevice.mjs +4 -4
- package/esm2022/lib/services/web-socket.service.mjs +4 -4
- package/esm2022/lib/task/services/task-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +7 -5
- package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +4 -4
- package/esm2022/lib/task/task-form/task-form.module.mjs +5 -5
- package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +5 -5
- package/fesm2022/adf-process-services-cloud.mjs +298 -296
- package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
- package/lib/app/components/app-list-cloud/app-list-cloud.component.scss +3 -3
- package/lib/common/date-range-filter/date-range-filter.service.d.ts +1 -1
- package/lib/flex.scss +81 -0
- package/lib/form/components/form-cloud.component.scss +3 -3
- package/lib/form/components/widgets/date/date-cloud.widget.scss +4 -4
- package/lib/form/components/widgets/dropdown/dropdown-cloud.widget.scss +2 -2
- package/lib/mat-selectors.scss +9 -0
- package/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.scss +2 -2
- package/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.scss +2 -2
- package/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.scss +2 -2
- package/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.scss +3 -3
- package/lib/task/task-header/components/task-header-cloud.component.scss +2 -2
- package/package.json +4 -4
|
@@ -134,13 +134,13 @@ export class WebSocketService {
|
|
|
134
134
|
})
|
|
135
135
|
: undefined;
|
|
136
136
|
}
|
|
137
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
138
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WebSocketService, deps: [{ token: i1.Apollo }, { token: i2.HttpLink }, { token: i3.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
138
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WebSocketService, providedIn: 'root' }); }
|
|
139
139
|
}
|
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WebSocketService, decorators: [{
|
|
141
141
|
type: Injectable,
|
|
142
142
|
args: [{
|
|
143
143
|
providedIn: 'root'
|
|
144
144
|
}]
|
|
145
145
|
}], ctorParameters: () => [{ type: i1.Apollo }, { type: i2.HttpLink }, { type: i3.AuthenticationService }] });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9zZXJ2aWNlcy93ZWItc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbEUsT0FBTyxFQUdILElBQUksRUFDSixhQUFhLEVBSWIsS0FBSyxFQUVSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFZN0UsTUFBTSxPQUFPLGdCQUFnQjtJQU16QixZQUE2QixNQUFjLEVBQW1CLFFBQWtCLEVBQW1CLFdBQWtDO1FBQXhHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFtQixn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T0FBdUI7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTztZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pCLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDM0MsQ0FBQztZQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEIsQ0FBQzsrR0E3SFEsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGYixNQUFNOzs0RkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tICdncmFwaHFsLXdzJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhRTFdzTGluayB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgeyBXZWJTb2NrZXRMaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay93cyc7XG5pbXBvcnQge1xuICAgIERlZmF1bHRDb250ZXh0LFxuICAgIEZldGNoUmVzdWx0LFxuICAgIGZyb20sXG4gICAgSW5NZW1vcnlDYWNoZSxcbiAgICBJbk1lbW9yeUNhY2hlQ29uZmlnLFxuICAgIE5leHRMaW5rLFxuICAgIE9wZXJhdGlvbixcbiAgICBzcGxpdCxcbiAgICBTdWJzY3JpcHRpb25PcHRpb25zXG59IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgSHR0cExpbmssIEh0dHBMaW5rSGFuZGxlciB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHsgS2luZCwgT3BlcmF0aW9uVHlwZU5vZGUgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IG9uRXJyb3IgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL2Vycm9yJztcbmltcG9ydCB7IFJldHJ5TGluayB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvcmV0cnknO1xuaW1wb3J0IHsgZ2V0TWFpbkRlZmluaXRpb24gfSBmcm9tICdAYXBvbGxvL2NsaWVudC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5cbmludGVyZmFjZSBzZXJ2aWNlT3B0aW9ucyB7XG4gICAgYXBvbGxvQ2xpZW50TmFtZTogc3RyaW5nO1xuICAgIHdzVXJsOiBzdHJpbmc7XG4gICAgaHR0cFVybD86IHN0cmluZztcbiAgICBzdWJzY3JpcHRpb25PcHRpb25zOiBTdWJzY3JpcHRpb25PcHRpb25zO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldFNlcnZpY2Uge1xuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZSA9IGluamVjdChBcHBDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvblByb3RvY29sID0gJ2dyYXBocWwtd3MnO1xuICAgIHByaXZhdGUgd3NMaW5rOiBHcmFwaFFMV3NMaW5rIHwgV2ViU29ja2V0TGluaztcbiAgICBwcml2YXRlIGh0dHBMaW5rSGFuZGxlcjogSHR0cExpbmtIYW5kbGVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcG9sbG86IEFwb2xsbywgcHJpdmF0ZSByZWFkb25seSBodHRwTGluazogSHR0cExpbmssIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSkge31cblxuICAgIHB1YmxpYyBnZXRTdWJzY3JpcHRpb248VD4ob3B0aW9uczogc2VydmljZU9wdGlvbnMpOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PFQ+PiB7XG4gICAgICAgIGNvbnN0IHsgYXBvbGxvQ2xpZW50TmFtZSwgc3Vic2NyaXB0aW9uT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5vbkxvZ291dC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcG9sbG8udXNlKGFwb2xsb0NsaWVudE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcG9sbG8ucmVtb3ZlQ2xpZW50KGFwb2xsb0NsaWVudE5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hcG9sbG8udXNlKGFwb2xsb0NsaWVudE5hbWUpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBvbGxvLnVzZShhcG9sbG9DbGllbnROYW1lKS5zdWJzY3JpYmU8VD4oeyBlcnJvclBvbGljeTogJ2FsbCcsIC4uLnN1YnNjcmlwdGlvbk9wdGlvbnMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29udGV4dFJvb3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdicG1Ib3N0JywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlV3NVcmwoc2VydmljZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChzZXJ2aWNlVXJsLCB0aGlzLmNvbnRleHRSb290KTtcbiAgICAgICAgY29uc3QgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2wgPT09ICdodHRwczonID8gJ3dzczonIDogJ3dzOic7XG4gICAgICAgIHVybC5wcm90b2NvbCA9IHByb3RvY29sO1xuXG4gICAgICAgIHJldHVybiB1cmwuaHJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUh0dHBVcmwoc2VydmljZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChzZXJ2aWNlVXJsLCB0aGlzLmNvbnRleHRSb290KTtcblxuICAgICAgICByZXR1cm4gdXJsLmhyZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U3Vic2NyaXB0aW9ucyhvcHRpb25zOiBzZXJ2aWNlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUdyYXBoUUxXc0xpbmsob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVIdHRwTGlua0hhbmRsZXIob3B0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgbGluayA9IHNwbGl0KFxuICAgICAgICAgICAgKHsgcXVlcnkgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBnZXRNYWluRGVmaW5pdGlvbihxdWVyeSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmluaXRpb24ua2luZCA9PT0gS2luZC5PUEVSQVRJT05fREVGSU5JVElPTiAmJiBkZWZpbml0aW9uLm9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uVHlwZU5vZGUuU1VCU0NSSVBUSU9OO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMud3NMaW5rLFxuICAgICAgICAgICAgdGhpcy5odHRwTGlua0hhbmRsZXJcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBhdXRoTGluayA9IChvcGVyYXRpb246IE9wZXJhdGlvbiwgZm9yd2FyZDogTmV4dExpbmspID0+IHtcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXRDb250ZXh0KCh7IGhlYWRlcnMgfTogRGVmYXVsdENvbnRleHQpID0+ICh7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ2dyYXBocWwtd3MnICYmIHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pLFxuICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ3RyYW5zcG9ydC13cycgJiYgeyAnWC1BdXRob3JpemF0aW9uJzogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgcmV0dXJuIGZvcndhcmQob3BlcmF0aW9uKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBlcnJvckxpbmsgPSBvbkVycm9yKCh7IGdyYXBoUUxFcnJvcnMsIG5ldHdvcmtFcnJvciwgb3BlcmF0aW9uLCBmb3J3YXJkIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChncmFwaFFMRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlcnJvciBvZiBncmFwaFFMRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5leHRlbnNpb25zICYmIGVycm9yLmV4dGVuc2lvbnNbJ2NvZGUnXSA9PT0gJ1VOQVVUSEVOVElDQVRFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhMaW5rKG9wZXJhdGlvbiwgZm9yd2FyZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXR3b3JrRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbTmV0d29yayBlcnJvcl06ICR7bmV0d29ya0Vycm9yfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXRyeUxpbmsgPSBuZXcgUmV0cnlMaW5rKHtcbiAgICAgICAgICAgIGRlbGF5OiB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbDogMzAwLFxuICAgICAgICAgICAgICAgIG1heDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFxuICAgICAgICAgICAgICAgIGppdHRlcjogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF0dGVtcHRzOiB7XG4gICAgICAgICAgICAgICAgbWF4OiA1LFxuICAgICAgICAgICAgICAgIHJldHJ5SWY6IChlcnJvcikgPT4gISFlcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFwb2xsby5jcmVhdGVOYW1lZChvcHRpb25zLmFwb2xsb0NsaWVudE5hbWUsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ2dyYXBocWwtd3MnICYmIHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pLFxuICAgICAgICAgICAgICAgIC4uLih0aGlzLnN1YnNjcmlwdGlvblByb3RvY29sID09PSAndHJhbnNwb3J0LXdzJyAmJiB7ICdYLUF1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7dGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbigpfWAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsaW5rOiBmcm9tKFthdXRoTGluaywgcmV0cnlMaW5rLCBlcnJvckxpbmssIGxpbmtdKSxcbiAgICAgICAgICAgIGNhY2hlOiBuZXcgSW5NZW1vcnlDYWNoZSh7IG1lcmdlOiB0cnVlIH0gYXMgSW5NZW1vcnlDYWNoZUNvbmZpZylcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVHcmFwaFFMV3NMaW5rKG9wdGlvbnM6IHNlcnZpY2VPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3NMaW5rID0gbmV3IEdyYXBoUUxXc0xpbmsoXG4gICAgICAgICAgICBjcmVhdGVDbGllbnQoe1xuICAgICAgICAgICAgICAgIHVybDogdGhpcy5jcmVhdGVXc1VybChvcHRpb25zLndzVXJsKSArICcvdjIvd3MvZ3JhcGhxbCcsXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvblBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuKClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwb2xsby5yZW1vdmVDbGllbnQob3B0aW9ucy5hcG9sbG9DbGllbnROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhenk6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIdHRwTGlua0hhbmRsZXIob3B0aW9uczogc2VydmljZU9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5odHRwTGlua0hhbmRsZXIgPSBvcHRpb25zLmh0dHBVcmxcbiAgICAgICAgICAgID8gdGhpcy5odHRwTGluay5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgdXJpOiB0aGlzLmNyZWF0ZUh0dHBVcmwob3B0aW9ucy5odHRwVXJsKVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuIl19
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9zZXJ2aWNlcy93ZWItc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbEUsT0FBTyxFQUdILElBQUksRUFDSixhQUFhLEVBSWIsS0FBSyxFQUVSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFZN0UsTUFBTSxPQUFPLGdCQUFnQjtJQU16QixZQUE2QixNQUFjLEVBQW1CLFFBQWtCLEVBQW1CLFdBQWtDO1FBQXhHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFtQixn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T0FBdUI7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTztZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pCLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDM0MsQ0FBQztZQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEIsQ0FBQzs4R0E3SFEsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tICdncmFwaHFsLXdzJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhRTFdzTGluayB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgeyBXZWJTb2NrZXRMaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay93cyc7XG5pbXBvcnQge1xuICAgIERlZmF1bHRDb250ZXh0LFxuICAgIEZldGNoUmVzdWx0LFxuICAgIGZyb20sXG4gICAgSW5NZW1vcnlDYWNoZSxcbiAgICBJbk1lbW9yeUNhY2hlQ29uZmlnLFxuICAgIE5leHRMaW5rLFxuICAgIE9wZXJhdGlvbixcbiAgICBzcGxpdCxcbiAgICBTdWJzY3JpcHRpb25PcHRpb25zXG59IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgSHR0cExpbmssIEh0dHBMaW5rSGFuZGxlciB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHsgS2luZCwgT3BlcmF0aW9uVHlwZU5vZGUgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IG9uRXJyb3IgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL2Vycm9yJztcbmltcG9ydCB7IFJldHJ5TGluayB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvcmV0cnknO1xuaW1wb3J0IHsgZ2V0TWFpbkRlZmluaXRpb24gfSBmcm9tICdAYXBvbGxvL2NsaWVudC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5cbmludGVyZmFjZSBzZXJ2aWNlT3B0aW9ucyB7XG4gICAgYXBvbGxvQ2xpZW50TmFtZTogc3RyaW5nO1xuICAgIHdzVXJsOiBzdHJpbmc7XG4gICAgaHR0cFVybD86IHN0cmluZztcbiAgICBzdWJzY3JpcHRpb25PcHRpb25zOiBTdWJzY3JpcHRpb25PcHRpb25zO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldFNlcnZpY2Uge1xuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZSA9IGluamVjdChBcHBDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvblByb3RvY29sID0gJ2dyYXBocWwtd3MnO1xuICAgIHByaXZhdGUgd3NMaW5rOiBHcmFwaFFMV3NMaW5rIHwgV2ViU29ja2V0TGluaztcbiAgICBwcml2YXRlIGh0dHBMaW5rSGFuZGxlcjogSHR0cExpbmtIYW5kbGVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcG9sbG86IEFwb2xsbywgcHJpdmF0ZSByZWFkb25seSBodHRwTGluazogSHR0cExpbmssIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSkge31cblxuICAgIHB1YmxpYyBnZXRTdWJzY3JpcHRpb248VD4ob3B0aW9uczogc2VydmljZU9wdGlvbnMpOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PFQ+PiB7XG4gICAgICAgIGNvbnN0IHsgYXBvbGxvQ2xpZW50TmFtZSwgc3Vic2NyaXB0aW9uT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5vbkxvZ291dC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcG9sbG8udXNlKGFwb2xsb0NsaWVudE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcG9sbG8ucmVtb3ZlQ2xpZW50KGFwb2xsb0NsaWVudE5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hcG9sbG8udXNlKGFwb2xsb0NsaWVudE5hbWUpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBvbGxvLnVzZShhcG9sbG9DbGllbnROYW1lKS5zdWJzY3JpYmU8VD4oeyBlcnJvclBvbGljeTogJ2FsbCcsIC4uLnN1YnNjcmlwdGlvbk9wdGlvbnMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29udGV4dFJvb3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdicG1Ib3N0JywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlV3NVcmwoc2VydmljZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChzZXJ2aWNlVXJsLCB0aGlzLmNvbnRleHRSb290KTtcbiAgICAgICAgY29uc3QgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2wgPT09ICdodHRwczonID8gJ3dzczonIDogJ3dzOic7XG4gICAgICAgIHVybC5wcm90b2NvbCA9IHByb3RvY29sO1xuXG4gICAgICAgIHJldHVybiB1cmwuaHJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUh0dHBVcmwoc2VydmljZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChzZXJ2aWNlVXJsLCB0aGlzLmNvbnRleHRSb290KTtcblxuICAgICAgICByZXR1cm4gdXJsLmhyZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U3Vic2NyaXB0aW9ucyhvcHRpb25zOiBzZXJ2aWNlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUdyYXBoUUxXc0xpbmsob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVIdHRwTGlua0hhbmRsZXIob3B0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgbGluayA9IHNwbGl0KFxuICAgICAgICAgICAgKHsgcXVlcnkgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBnZXRNYWluRGVmaW5pdGlvbihxdWVyeSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmluaXRpb24ua2luZCA9PT0gS2luZC5PUEVSQVRJT05fREVGSU5JVElPTiAmJiBkZWZpbml0aW9uLm9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uVHlwZU5vZGUuU1VCU0NSSVBUSU9OO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMud3NMaW5rLFxuICAgICAgICAgICAgdGhpcy5odHRwTGlua0hhbmRsZXJcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBhdXRoTGluayA9IChvcGVyYXRpb246IE9wZXJhdGlvbiwgZm9yd2FyZDogTmV4dExpbmspID0+IHtcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXRDb250ZXh0KCh7IGhlYWRlcnMgfTogRGVmYXVsdENvbnRleHQpID0+ICh7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ2dyYXBocWwtd3MnICYmIHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pLFxuICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ3RyYW5zcG9ydC13cycgJiYgeyAnWC1BdXRob3JpemF0aW9uJzogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgcmV0dXJuIGZvcndhcmQob3BlcmF0aW9uKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBlcnJvckxpbmsgPSBvbkVycm9yKCh7IGdyYXBoUUxFcnJvcnMsIG5ldHdvcmtFcnJvciwgb3BlcmF0aW9uLCBmb3J3YXJkIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChncmFwaFFMRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlcnJvciBvZiBncmFwaFFMRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5leHRlbnNpb25zICYmIGVycm9yLmV4dGVuc2lvbnNbJ2NvZGUnXSA9PT0gJ1VOQVVUSEVOVElDQVRFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhMaW5rKG9wZXJhdGlvbiwgZm9yd2FyZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXR3b3JrRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbTmV0d29yayBlcnJvcl06ICR7bmV0d29ya0Vycm9yfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXRyeUxpbmsgPSBuZXcgUmV0cnlMaW5rKHtcbiAgICAgICAgICAgIGRlbGF5OiB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbDogMzAwLFxuICAgICAgICAgICAgICAgIG1heDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFxuICAgICAgICAgICAgICAgIGppdHRlcjogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF0dGVtcHRzOiB7XG4gICAgICAgICAgICAgICAgbWF4OiA1LFxuICAgICAgICAgICAgICAgIHJldHJ5SWY6IChlcnJvcikgPT4gISFlcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFwb2xsby5jcmVhdGVOYW1lZChvcHRpb25zLmFwb2xsb0NsaWVudE5hbWUsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ2dyYXBocWwtd3MnICYmIHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pLFxuICAgICAgICAgICAgICAgIC4uLih0aGlzLnN1YnNjcmlwdGlvblByb3RvY29sID09PSAndHJhbnNwb3J0LXdzJyAmJiB7ICdYLUF1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7dGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbigpfWAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsaW5rOiBmcm9tKFthdXRoTGluaywgcmV0cnlMaW5rLCBlcnJvckxpbmssIGxpbmtdKSxcbiAgICAgICAgICAgIGNhY2hlOiBuZXcgSW5NZW1vcnlDYWNoZSh7IG1lcmdlOiB0cnVlIH0gYXMgSW5NZW1vcnlDYWNoZUNvbmZpZylcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVHcmFwaFFMV3NMaW5rKG9wdGlvbnM6IHNlcnZpY2VPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3NMaW5rID0gbmV3IEdyYXBoUUxXc0xpbmsoXG4gICAgICAgICAgICBjcmVhdGVDbGllbnQoe1xuICAgICAgICAgICAgICAgIHVybDogdGhpcy5jcmVhdGVXc1VybChvcHRpb25zLndzVXJsKSArICcvdjIvd3MvZ3JhcGhxbCcsXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvblBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuKClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwb2xsby5yZW1vdmVDbGllbnQob3B0aW9ucy5hcG9sbG9DbGllbnROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhenk6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIdHRwTGlua0hhbmRsZXIob3B0aW9uczogc2VydmljZU9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5odHRwTGlua0hhbmRsZXIgPSBvcHRpb25zLmh0dHBVcmxcbiAgICAgICAgICAgID8gdGhpcy5odHRwTGluay5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgdXJpOiB0aGlzLmNyZWF0ZUh0dHBVcmwob3B0aW9ucy5odHRwVXJsKVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuIl19
|
|
@@ -260,13 +260,13 @@ export class TaskCloudService extends BaseCloudService {
|
|
|
260
260
|
const currentUser = this.identityUserService.getCurrentUserInfo().username;
|
|
261
261
|
return assignee === currentUser;
|
|
262
262
|
}
|
|
263
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
264
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
263
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskCloudService, deps: [{ token: i1.AdfHttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
264
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskCloudService, providedIn: 'root' }); }
|
|
265
265
|
}
|
|
266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskCloudService, decorators: [{
|
|
267
267
|
type: Injectable,
|
|
268
268
|
args: [{
|
|
269
269
|
providedIn: 'root'
|
|
270
270
|
}]
|
|
271
271
|
}], ctorParameters: () => [{ type: i1.AdfHttpClient }] });
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jbG91ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3NlcnZpY2VzL3Rhc2stY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBR0gsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQzFCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFzQixNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFNbEQsWUFBWSxhQUE0QjtRQUNwQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFOakIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFD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LFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSx1QkFBdUIsQ0FBQztJQUM3RixDQUFDO0lBRVMsY0FBYyxDQUFDLFFBQWdCO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUMzRSxPQUFPLFFBQVEsS0FBSyxXQUFXLENBQUM7SUFDcEMsQ0FBQzsrR0FyUVEsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGYixNQUFNOzs0RkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhcmRWaWV3QXJyYXlJdGVtLCBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgVGFza0RldGFpbHNDbG91ZE1vZGVsLFxuICAgIFN0YXJ0VGFza0Nsb3VkUmVzcG9uc2VNb2RlbCxcbiAgICBUQVNLX0FTU0lHTkVEX1NUQVRFLFxuICAgIFRBU0tfQ0xBSU1fUEVSTUlTU0lPTixcbiAgICBUQVNLX0NSRUFURURfU1RBVEUsXG4gICAgVEFTS19SRUxFQVNFX1BFUk1JU1NJT05cbn0gZnJvbSAnLi4vbW9kZWxzL3Rhc2stZGV0YWlscy1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXJ0VGFza0Nsb3VkUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3N0YXJ0LXRhc2stY2xvdWQtcmVxdWVzdC5tb2RlbCc7XG5pbXBvcnQgeyBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb2Nlc3MtZGVmaW5pdGlvbi1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBERUZBVUxUX1RBU0tfUFJJT1JJVElFUywgVGFza1ByaW9yaXR5T3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Rhc2subW9kZWwnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3Blb3BsZS9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRmSHR0cENsaWVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9hcGknO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tDbG91ZFNlcnZpY2UgZXh0ZW5kcyBCYXNlQ2xvdWRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIGlkZW50aXR5VXNlclNlcnZpY2UgPSBpbmplY3QoSWRlbnRpdHlVc2VyU2VydmljZSk7XG5cbiAgICBkYXRhQ2hhbmdlc0RldGVjdGVkJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihhZGZIdHRwQ2xpZW50OiBBZGZIdHRwQ2xpZW50KSB7XG4gICAgICAgIHN1cGVyKGFkZkh0dHBDbGllbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXBsZXRlIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gY29tcGxldGVcbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSB0YXNrIHRoYXQgd2FzIGNvbXBsZXRlZFxuICAgICAqL1xuICAgIGNvbXBsZXRlVGFzayhhcHBOYW1lOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9jb21wbGV0ZWA7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0geyBwYXlsb2FkVHlwZTogJ0NvbXBsZXRlVGFza1BheWxvYWQnIH07XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3Q8YW55LCBUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+KHVybCwgcGF5bG9hZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwTmFtZS9UYXNrSWQgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBjYW4gYmUgY29tcGxldGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tEZXRhaWxzIHRhc2sgZGV0YWlscyBvYmplY3RcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIGlmIHRoZSB0YXNrIGNhbiBiZSBjb21wbGV0ZWRcbiAgICAgKi9cbiAgICBjYW5Db21wbGV0ZVRhc2sodGFza0RldGFpbHM6IFRhc2tEZXRhaWxzQ2xvdWRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGFza0RldGFpbHMgJiYgdGFza0RldGFpbHMuc3RhdHVzID09PSBUQVNLX0FTU0lHTkVEX1NUQVRFICYmIHRoaXMuaXNBc3NpZ25lZFRvTWUodGFza0RldGFpbHMuYXNzaWduZWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBpcyBlZGl0YWJsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrRGV0YWlscyB0YXNrIGRldGFpbHMgb2JqZWN0XG4gICAgICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSBpZiB0aGUgdGFzayBpcyBlZGl0YWJsZVxuICAgICAqL1xuICAgIGlzVGFza0VkaXRhYmxlKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRhc2tEZXRhaWxzICYmIHRhc2tEZXRhaWxzLnN0YXR1cyA9PT0gVEFTS19BU1NJR05FRF9TVEFURSAmJiB0aGlzLmlzQXNzaWduZWRUb01lKHRhc2tEZXRhaWxzLmFzc2lnbmVlKTtcbiAgICB9XG5cbiAgICBpc0Fzc2lnbmVlUHJvcGVydHlDbGlja2FibGUoXG4gICAgICAgIHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwsXG4gICAgICAgIGNhbmRpZGF0ZVVzZXJzOiBDYXJkVmlld0FycmF5SXRlbVtdLFxuICAgICAgICBjYW5kaWRhdGVHcm91cHM6IENhcmRWaWV3QXJyYXlJdGVtW11cbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzQ2xpY2thYmxlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHN0YXRlcyA9IFtUQVNLX0FTU0lHTkVEX1NUQVRFXTtcbiAgICAgICAgaWYgKGNhbmRpZGF0ZVVzZXJzPy5sZW5ndGggfHwgY2FuZGlkYXRlR3JvdXBzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlzQ2xpY2thYmxlID0gc3RhdGVzLmluY2x1ZGVzKHRhc2tEZXRhaWxzLnN0YXR1cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQ2xpY2thYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBjYW4gYmUgY2xhaW1lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrRGV0YWlscyB0YXNrIGRldGFpbHMgb2JqZWN0XG4gICAgICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSBpZiB0aGUgdGFzayBjYW4gYmUgY29tcGxldGVkXG4gICAgICovXG4gICAgY2FuQ2xhaW1UYXNrKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRhc2tEZXRhaWxzPy5zdGF0dXMgPT09IFRBU0tfQ1JFQVRFRF9TVEFURSAmJiB0YXNrRGV0YWlscz8ucGVybWlzc2lvbnMuaW5jbHVkZXMoVEFTS19DTEFJTV9QRVJNSVNTSU9OKSAmJiAhdGFza0RldGFpbHM/LnN0YW5kYWxvbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGUgaWYgYSB0YXNrIGNhbiBiZSB1bmNsYWltZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0RldGFpbHMgdGFzayBkZXRhaWxzIG9iamVjdFxuICAgICAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgaWYgdGhlIHRhc2sgY2FuIGJlIGNvbXBsZXRlZFxuICAgICAqL1xuICAgIGNhblVuY2xhaW1UYXNrKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXIgPSB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCkudXNlcm5hbWU7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8uc3RhdHVzID09PSBUQVNLX0FTU0lHTkVEX1NUQVRFICYmXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8uYXNzaWduZWUgPT09IGN1cnJlbnRVc2VyICYmXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8ucGVybWlzc2lvbnMuaW5jbHVkZXMoVEFTS19SRUxFQVNFX1BFUk1JU1NJT04pICYmXG4gICAgICAgICAgICAhdGFza0RldGFpbHM/LnN0YW5kYWxvbmVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGFpbXMgYSB0YXNrIGZvciBhbiBhc3NpZ25lZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gY2xhaW1cbiAgICAgKiBAcGFyYW0gYXNzaWduZWUgVXNlciB0byBhc3NpZ24gdGhlIHRhc2sgdG9cbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBjbGFpbWVkIHRhc2tcbiAgICAgKi9cbiAgICBjbGFpbVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgYXNzaWduZWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9jbGFpbT9hc3NpZ25lZT0ke2Fzc2lnbmVlfWA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3QocXVlcnlVcmwpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFDaGFuZ2VzRGV0ZWN0ZWQkLm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5lbnRyeTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lL1Rhc2tJZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW4tY2xhaW1zIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gdW5jbGFpbVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIHRhc2sgdGhhdCB3YXMgdW5jbGFpbWVkXG4gICAgICovXG4gICAgdW5jbGFpbVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9yZWxlYXNlYDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zdChxdWVyeVVybCkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZXNEZXRlY3RlZCQubmV4dChyZXMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzLmVudHJ5O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUvVGFza0lkIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGRldGFpbHMgb2YgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFzayB3aG9zZSBkZXRhaWxzIHlvdSB3YW50XG4gICAgICogQHJldHVybnMgVGFzayBkZXRhaWxzXG4gICAgICovXG4gICAgZ2V0VGFza0J5SWQoYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzLyR7dGFza0lkfWA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldChxdWVyeVVybCkucGlwZShtYXAoKHJlczogYW55KSA9PiByZXMuZW50cnkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lL1Rhc2tJZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBzdGFuZGFsb25lIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhcnRUYXNrUmVxdWVzdCByZXF1ZXN0IG1vZGVsXG4gICAgICogQHBhcmFtIGFwcE5hbWUgYXBwbGljYXRpb24gbmFtZVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgdGFza1xuICAgICAqL1xuICAgIGNyZWF0ZU5ld1Rhc2soc3RhcnRUYXNrUmVxdWVzdDogU3RhcnRUYXNrQ2xvdWRSZXF1ZXN0TW9kZWwsIGFwcE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5VXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvdGFza3NgO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkobmV3IFN0YXJ0VGFza0Nsb3VkUmVxdWVzdE1vZGVsKHN0YXJ0VGFza1JlcXVlc3QpKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5wb3N0PGFueSwgU3RhcnRUYXNrQ2xvdWRSZXNwb25zZU1vZGVsPihxdWVyeVVybCwgcGF5bG9hZCkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5lbnRyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGRldGFpbHMgKG5hbWUsIGRlc2NyaXB0aW9uLCBkdWUgZGF0ZSkgZm9yIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gdXBkYXRlXG4gICAgICogQHBhcmFtIHBheWxvYWQgRGF0YSB0byB1cGRhdGUgdGhlIHRhc2tcbiAgICAgKiBAcmV0dXJucyBVcGRhdGVkIHRhc2sgZGV0YWlsc1xuICAgICAqL1xuICAgIHVwZGF0ZVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgcGF5bG9hZDogYW55KTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIHBheWxvYWQucGF5bG9hZFR5cGUgPSAnVXBkYXRlVGFza1BheWxvYWQnO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS90YXNrcy8ke3Rhc2tJZH1gO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wdXQocXVlcnlVcmwsIHBheWxvYWQpLnBpcGUobWFwKChyZXM6IGFueSkgPT4gcmVzLmVudHJ5KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwTmFtZS9UYXNrSWQgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgY2FuZGlkYXRlIHVzZXJzIG9mIHRoZSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFza1xuICAgICAqIEByZXR1cm5zIENhbmRpZGF0ZSB1c2Vyc1xuICAgICAqL1xuICAgIGdldENhbmRpZGF0ZVVzZXJzKGFwcE5hbWU6IHN0cmluZywgdGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzLyR7dGFza0lkfS9jYW5kaWRhdGUtdXNlcnNgO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PHN0cmluZ1tdPihxdWVyeVVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBjYW5kaWRhdGUgZ3JvdXBzIG9mIHRoZSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFza1xuICAgICAqIEByZXR1cm5zIENhbmRpZGF0ZSBncm91cHNcbiAgICAgKi9cbiAgICBnZXRDYW5kaWRhdGVHcm91cHMoYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5VXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcXVlcnkvdjEvdGFza3MvJHt0YXNrSWR9L2NhbmRpZGF0ZS1ncm91cHNgO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PHN0cmluZ1tdPihxdWVyeVVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvY2VzcyBkZWZpbml0aW9ucyBhc3NvY2lhdGVkIHdpdGggYW4gYXBwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIHByb2Nlc3MgZGVmaW5pdGlvbnNcbiAgICAgKi9cbiAgICBnZXRQcm9jZXNzRGVmaW5pdGlvbnMoYXBwTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgfHwgYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtZGVmaW5pdGlvbnNgO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQodXJsKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5saXN0LmVudHJpZXMubWFwKChwcm9jZXNzRGVmcykgPT4gbmV3IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQocHJvY2Vzc0RlZnMuZW50cnkpKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHRhc2sgYXNzaWduZWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSBhcHBcbiAgICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YXNrIHRvIHVwZGF0ZSBhc3NpZ25lZVxuICAgICAqIEBwYXJhbSBhc3NpZ25lZSBhc3NpZ25lZSB0byB1cGRhdGUgY3VycmVudCB1c2VyIHRhc2sgYXNzaWduZWVcbiAgICAgKiBAcmV0dXJucyBVcGRhdGVkIHRhc2sgZGV0YWlscyB3aXRoIG5ldyBhc3NpZ25lZVxuICAgICAqL1xuICAgIGFzc2lnbihhcHBOYW1lOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nLCBhc3NpZ25lZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBwYXlMb2FkID0geyBhc3NpZ25lZSwgdGFza0lkLCBwYXlsb2FkVHlwZTogJ0Fzc2lnblRhc2tQYXlsb2FkJyB9O1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvdGFza3MvJHt0YXNrSWR9L2Fzc2lnbmA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3QodXJsLCBwYXlMb2FkKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5lbnRyeSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUvVGFza0lkIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQcmlvcml0eUxhYmVsKHByaW9yaXR5OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwcmlvcml0eUl0ZW0gPSB0aGlzLnByaW9yaXRpZXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gcHJpb3JpdHkudG9TdHJpbmcoKSkgfHwgdGhpcy5wcmlvcml0aWVzWzBdO1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocHJpb3JpdHlJdGVtLmxhYmVsKTtcbiAgICB9XG5cbiAgICBnZXQgcHJpb3JpdGllcygpOiBUYXNrUHJpb3JpdHlPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdhZGYtY2xvdWQtcHJpb3JpdHktdmFsdWVzJykgfHwgREVGQVVMVF9UQVNLX1BSSU9SSVRJRVM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzQXNzaWduZWRUb01lKGFzc2lnbmVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXIgPSB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCkudXNlcm5hbWU7XG4gICAgICAgIHJldHVybiBhc3NpZ25lZSA9PT0gY3VycmVudFVzZXI7XG4gICAgfVxufVxuIl19
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jbG91ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3NlcnZpY2VzL3Rhc2stY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBR0gsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQzFCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFzQixNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFNbEQsWUFBWSxhQUE0QjtRQUNwQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFOakIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFD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LFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSx1QkFBdUIsQ0FBQztJQUM3RixDQUFDO0lBRVMsY0FBYyxDQUFDLFFBQWdCO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUMzRSxPQUFPLFFBQVEsS0FBSyxXQUFXLENBQUM7SUFDcEMsQ0FBQzs4R0FyUVEsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhcmRWaWV3QXJyYXlJdGVtLCBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgVGFza0RldGFpbHNDbG91ZE1vZGVsLFxuICAgIFN0YXJ0VGFza0Nsb3VkUmVzcG9uc2VNb2RlbCxcbiAgICBUQVNLX0FTU0lHTkVEX1NUQVRFLFxuICAgIFRBU0tfQ0xBSU1fUEVSTUlTU0lPTixcbiAgICBUQVNLX0NSRUFURURfU1RBVEUsXG4gICAgVEFTS19SRUxFQVNFX1BFUk1JU1NJT05cbn0gZnJvbSAnLi4vbW9kZWxzL3Rhc2stZGV0YWlscy1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXJ0VGFza0Nsb3VkUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3N0YXJ0LXRhc2stY2xvdWQtcmVxdWVzdC5tb2RlbCc7XG5pbXBvcnQgeyBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb2Nlc3MtZGVmaW5pdGlvbi1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBERUZBVUxUX1RBU0tfUFJJT1JJVElFUywgVGFza1ByaW9yaXR5T3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Rhc2subW9kZWwnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3Blb3BsZS9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRmSHR0cENsaWVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9hcGknO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tDbG91ZFNlcnZpY2UgZXh0ZW5kcyBCYXNlQ2xvdWRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIGlkZW50aXR5VXNlclNlcnZpY2UgPSBpbmplY3QoSWRlbnRpdHlVc2VyU2VydmljZSk7XG5cbiAgICBkYXRhQ2hhbmdlc0RldGVjdGVkJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihhZGZIdHRwQ2xpZW50OiBBZGZIdHRwQ2xpZW50KSB7XG4gICAgICAgIHN1cGVyKGFkZkh0dHBDbGllbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXBsZXRlIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gY29tcGxldGVcbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSB0YXNrIHRoYXQgd2FzIGNvbXBsZXRlZFxuICAgICAqL1xuICAgIGNvbXBsZXRlVGFzayhhcHBOYW1lOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9jb21wbGV0ZWA7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0geyBwYXlsb2FkVHlwZTogJ0NvbXBsZXRlVGFza1BheWxvYWQnIH07XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3Q8YW55LCBUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+KHVybCwgcGF5bG9hZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwTmFtZS9UYXNrSWQgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBjYW4gYmUgY29tcGxldGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tEZXRhaWxzIHRhc2sgZGV0YWlscyBvYmplY3RcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIGlmIHRoZSB0YXNrIGNhbiBiZSBjb21wbGV0ZWRcbiAgICAgKi9cbiAgICBjYW5Db21wbGV0ZVRhc2sodGFza0RldGFpbHM6IFRhc2tEZXRhaWxzQ2xvdWRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGFza0RldGFpbHMgJiYgdGFza0RldGFpbHMuc3RhdHVzID09PSBUQVNLX0FTU0lHTkVEX1NUQVRFICYmIHRoaXMuaXNBc3NpZ25lZFRvTWUodGFza0RldGFpbHMuYXNzaWduZWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBpcyBlZGl0YWJsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrRGV0YWlscyB0YXNrIGRldGFpbHMgb2JqZWN0XG4gICAgICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSBpZiB0aGUgdGFzayBpcyBlZGl0YWJsZVxuICAgICAqL1xuICAgIGlzVGFza0VkaXRhYmxlKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRhc2tEZXRhaWxzICYmIHRhc2tEZXRhaWxzLnN0YXR1cyA9PT0gVEFTS19BU1NJR05FRF9TVEFURSAmJiB0aGlzLmlzQXNzaWduZWRUb01lKHRhc2tEZXRhaWxzLmFzc2lnbmVlKTtcbiAgICB9XG5cbiAgICBpc0Fzc2lnbmVlUHJvcGVydHlDbGlja2FibGUoXG4gICAgICAgIHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwsXG4gICAgICAgIGNhbmRpZGF0ZVVzZXJzOiBDYXJkVmlld0FycmF5SXRlbVtdLFxuICAgICAgICBjYW5kaWRhdGVHcm91cHM6IENhcmRWaWV3QXJyYXlJdGVtW11cbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzQ2xpY2thYmxlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHN0YXRlcyA9IFtUQVNLX0FTU0lHTkVEX1NUQVRFXTtcbiAgICAgICAgaWYgKGNhbmRpZGF0ZVVzZXJzPy5sZW5ndGggfHwgY2FuZGlkYXRlR3JvdXBzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlzQ2xpY2thYmxlID0gc3RhdGVzLmluY2x1ZGVzKHRhc2tEZXRhaWxzLnN0YXR1cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQ2xpY2thYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBjYW4gYmUgY2xhaW1lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrRGV0YWlscyB0YXNrIGRldGFpbHMgb2JqZWN0XG4gICAgICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSBpZiB0aGUgdGFzayBjYW4gYmUgY29tcGxldGVkXG4gICAgICovXG4gICAgY2FuQ2xhaW1UYXNrKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRhc2tEZXRhaWxzPy5zdGF0dXMgPT09IFRBU0tfQ1JFQVRFRF9TVEFURSAmJiB0YXNrRGV0YWlscz8ucGVybWlzc2lvbnMuaW5jbHVkZXMoVEFTS19DTEFJTV9QRVJNSVNTSU9OKSAmJiAhdGFza0RldGFpbHM/LnN0YW5kYWxvbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGUgaWYgYSB0YXNrIGNhbiBiZSB1bmNsYWltZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0RldGFpbHMgdGFzayBkZXRhaWxzIG9iamVjdFxuICAgICAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgaWYgdGhlIHRhc2sgY2FuIGJlIGNvbXBsZXRlZFxuICAgICAqL1xuICAgIGNhblVuY2xhaW1UYXNrKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXIgPSB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCkudXNlcm5hbWU7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8uc3RhdHVzID09PSBUQVNLX0FTU0lHTkVEX1NUQVRFICYmXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8uYXNzaWduZWUgPT09IGN1cnJlbnRVc2VyICYmXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8ucGVybWlzc2lvbnMuaW5jbHVkZXMoVEFTS19SRUxFQVNFX1BFUk1JU1NJT04pICYmXG4gICAgICAgICAgICAhdGFza0RldGFpbHM/LnN0YW5kYWxvbmVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGFpbXMgYSB0YXNrIGZvciBhbiBhc3NpZ25lZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gY2xhaW1cbiAgICAgKiBAcGFyYW0gYXNzaWduZWUgVXNlciB0byBhc3NpZ24gdGhlIHRhc2sgdG9cbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBjbGFpbWVkIHRhc2tcbiAgICAgKi9cbiAgICBjbGFpbVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgYXNzaWduZWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9jbGFpbT9hc3NpZ25lZT0ke2Fzc2lnbmVlfWA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3QocXVlcnlVcmwpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFDaGFuZ2VzRGV0ZWN0ZWQkLm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5lbnRyeTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lL1Rhc2tJZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW4tY2xhaW1zIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gdW5jbGFpbVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIHRhc2sgdGhhdCB3YXMgdW5jbGFpbWVkXG4gICAgICovXG4gICAgdW5jbGFpbVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9yZWxlYXNlYDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zdChxdWVyeVVybCkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZXNEZXRlY3RlZCQubmV4dChyZXMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzLmVudHJ5O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUvVGFza0lkIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGRldGFpbHMgb2YgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFzayB3aG9zZSBkZXRhaWxzIHlvdSB3YW50XG4gICAgICogQHJldHVybnMgVGFzayBkZXRhaWxzXG4gICAgICovXG4gICAgZ2V0VGFza0J5SWQoYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzLyR7dGFza0lkfWA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldChxdWVyeVVybCkucGlwZShtYXAoKHJlczogYW55KSA9PiByZXMuZW50cnkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lL1Rhc2tJZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBzdGFuZGFsb25lIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhcnRUYXNrUmVxdWVzdCByZXF1ZXN0IG1vZGVsXG4gICAgICogQHBhcmFtIGFwcE5hbWUgYXBwbGljYXRpb24gbmFtZVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgdGFza1xuICAgICAqL1xuICAgIGNyZWF0ZU5ld1Rhc2soc3RhcnRUYXNrUmVxdWVzdDogU3RhcnRUYXNrQ2xvdWRSZXF1ZXN0TW9kZWwsIGFwcE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5VXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvdGFza3NgO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkobmV3IFN0YXJ0VGFza0Nsb3VkUmVxdWVzdE1vZGVsKHN0YXJ0VGFza1JlcXVlc3QpKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5wb3N0PGFueSwgU3RhcnRUYXNrQ2xvdWRSZXNwb25zZU1vZGVsPihxdWVyeVVybCwgcGF5bG9hZCkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5lbnRyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGRldGFpbHMgKG5hbWUsIGRlc2NyaXB0aW9uLCBkdWUgZGF0ZSkgZm9yIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gdXBkYXRlXG4gICAgICogQHBhcmFtIHBheWxvYWQgRGF0YSB0byB1cGRhdGUgdGhlIHRhc2tcbiAgICAgKiBAcmV0dXJucyBVcGRhdGVkIHRhc2sgZGV0YWlsc1xuICAgICAqL1xuICAgIHVwZGF0ZVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgcGF5bG9hZDogYW55KTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIHBheWxvYWQucGF5bG9hZFR5cGUgPSAnVXBkYXRlVGFza1BheWxvYWQnO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS90YXNrcy8ke3Rhc2tJZH1gO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wdXQocXVlcnlVcmwsIHBheWxvYWQpLnBpcGUobWFwKChyZXM6IGFueSkgPT4gcmVzLmVudHJ5KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwTmFtZS9UYXNrSWQgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgY2FuZGlkYXRlIHVzZXJzIG9mIHRoZSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFza1xuICAgICAqIEByZXR1cm5zIENhbmRpZGF0ZSB1c2Vyc1xuICAgICAqL1xuICAgIGdldENhbmRpZGF0ZVVzZXJzKGFwcE5hbWU6IHN0cmluZywgdGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzLyR7dGFza0lkfS9jYW5kaWRhdGUtdXNlcnNgO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PHN0cmluZ1tdPihxdWVyeVVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBjYW5kaWRhdGUgZ3JvdXBzIG9mIHRoZSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFza1xuICAgICAqIEByZXR1cm5zIENhbmRpZGF0ZSBncm91cHNcbiAgICAgKi9cbiAgICBnZXRDYW5kaWRhdGVHcm91cHMoYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5VXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcXVlcnkvdjEvdGFza3MvJHt0YXNrSWR9L2NhbmRpZGF0ZS1ncm91cHNgO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PHN0cmluZ1tdPihxdWVyeVVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvY2VzcyBkZWZpbml0aW9ucyBhc3NvY2lhdGVkIHdpdGggYW4gYXBwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIHByb2Nlc3MgZGVmaW5pdGlvbnNcbiAgICAgKi9cbiAgICBnZXRQcm9jZXNzRGVmaW5pdGlvbnMoYXBwTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgfHwgYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtZGVmaW5pdGlvbnNgO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQodXJsKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5saXN0LmVudHJpZXMubWFwKChwcm9jZXNzRGVmcykgPT4gbmV3IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQocHJvY2Vzc0RlZnMuZW50cnkpKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHRhc2sgYXNzaWduZWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSBhcHBcbiAgICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YXNrIHRvIHVwZGF0ZSBhc3NpZ25lZVxuICAgICAqIEBwYXJhbSBhc3NpZ25lZSBhc3NpZ25lZSB0byB1cGRhdGUgY3VycmVudCB1c2VyIHRhc2sgYXNzaWduZWVcbiAgICAgKiBAcmV0dXJucyBVcGRhdGVkIHRhc2sgZGV0YWlscyB3aXRoIG5ldyBhc3NpZ25lZVxuICAgICAqL1xuICAgIGFzc2lnbihhcHBOYW1lOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nLCBhc3NpZ25lZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBwYXlMb2FkID0geyBhc3NpZ25lZSwgdGFza0lkLCBwYXlsb2FkVHlwZTogJ0Fzc2lnblRhc2tQYXlsb2FkJyB9O1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvdGFza3MvJHt0YXNrSWR9L2Fzc2lnbmA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3QodXJsLCBwYXlMb2FkKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5lbnRyeSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUvVGFza0lkIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQcmlvcml0eUxhYmVsKHByaW9yaXR5OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwcmlvcml0eUl0ZW0gPSB0aGlzLnByaW9yaXRpZXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gcHJpb3JpdHkudG9TdHJpbmcoKSkgfHwgdGhpcy5wcmlvcml0aWVzWzBdO1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocHJpb3JpdHlJdGVtLmxhYmVsKTtcbiAgICB9XG5cbiAgICBnZXQgcHJpb3JpdGllcygpOiBUYXNrUHJpb3JpdHlPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdhZGYtY2xvdWQtcHJpb3JpdHktdmFsdWVzJykgfHwgREVGQVVMVF9UQVNLX1BSSU9SSVRJRVM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzQXNzaWduZWRUb01lKGFzc2lnbmVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXIgPSB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCkudXNlcm5hbWU7XG4gICAgICAgIHJldHVybiBhc3NpZ25lZSA9PT0gY3VycmVudFVzZXI7XG4gICAgfVxufVxuIl19
|
|
@@ -31,15 +31,15 @@ import * as i8 from "./task-form/components/task-form-cloud/task-form-cloud.comp
|
|
|
31
31
|
import * as i9 from "./task-form/components/user-task-cloud/user-task-cloud.component";
|
|
32
32
|
/** @deprecated use standalone component imports instead */
|
|
33
33
|
export class TaskCloudModule {
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
35
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
36
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskCloudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
35
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: TaskCloudModule, imports: [TaskListCloudModule, i1.TaskFilterDialogCloudComponent, i2.TaskFiltersCloudComponent, i3.ServiceTaskFiltersCloudComponent, i4.EditTaskFilterCloudComponent, i5.TaskAssignmentFilterCloudComponent, i6.EditServiceTaskFilterCloudComponent, TaskHeaderCloudComponent, i7.UserTaskCloudButtonsComponent, i8.TaskFormCloudComponent, i9.UserTaskCloudComponent], exports: [TaskListCloudModule, i1.TaskFilterDialogCloudComponent, i2.TaskFiltersCloudComponent, i3.ServiceTaskFiltersCloudComponent, i4.EditTaskFilterCloudComponent, i5.TaskAssignmentFilterCloudComponent, i6.EditServiceTaskFilterCloudComponent, TaskHeaderCloudComponent, i7.UserTaskCloudButtonsComponent, i8.TaskFormCloudComponent, i9.UserTaskCloudComponent] }); }
|
|
36
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskCloudModule, imports: [TaskListCloudModule, TASK_FILTERS_CLOUD_DIRECTIVES, TaskHeaderCloudComponent, TASK_FORM_CLOUD_DIRECTIVES, TaskListCloudModule] }); }
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskCloudModule, decorators: [{
|
|
39
39
|
type: NgModule,
|
|
40
40
|
args: [{
|
|
41
41
|
imports: [TaskListCloudModule, ...TASK_FILTERS_CLOUD_DIRECTIVES, TaskHeaderCloudComponent, ...TASK_FORM_CLOUD_DIRECTIVES],
|
|
42
42
|
exports: [TaskListCloudModule, ...TASK_FILTERS_CLOUD_DIRECTIVES, TaskHeaderCloudComponent, ...TASK_FORM_CLOUD_DIRECTIVES]
|
|
43
43
|
}]
|
|
44
44
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jbG91ZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL3Rhc2svdGFzay1jbG91ZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFFaEcsMkRBQTJEO0FBSzNELE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxZQUhkLG1CQUFtQix3TkFBb0Msd0JBQXdCLHFHQUMvRSxtQkFBbUIsd05BQW9DLHdCQUF3QjsrR0FFaEYsZUFBZSxZQUhkLG1CQUFtQixFQUFLLDZCQUE2QixFQUFFLHdCQUF3QixFQUFLLDBCQUEwQixFQUM5RyxtQkFBbUI7OzJGQUVwQixlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsNkJBQTZCLEVBQUUsd0JBQXdCLEVBQUUsR0FBRywwQkFBMEIsQ0FBQztvQkFDekgsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsR0FBRyw2QkFBNkIsRUFBRSx3QkFBd0IsRUFBRSxHQUFHLDBCQUEwQixDQUFDO2lCQUM1SCIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhc2tMaXN0Q2xvdWRNb2R1bGUgfSBmcm9tICcuL3Rhc2stbGlzdC90YXNrLWxpc3QtY2xvdWQubW9kdWxlJztcbmltcG9ydCB7IFRBU0tfRklMVEVSU19DTE9VRF9ESVJFQ1RJVkVTIH0gZnJvbSAnLi90YXNrLWZpbHRlcnMvdGFzay1maWx0ZXJzLWNsb3VkLm1vZHVsZSc7XG5pbXBvcnQgeyBUQVNLX0ZPUk1fQ0xPVURfRElSRUNUSVZFUyB9IGZyb20gJy4vdGFzay1mb3JtL3Rhc2stZm9ybS5tb2R1bGUnO1xuaW1wb3J0IHsgVGFza0hlYWRlckNsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi90YXNrLWhlYWRlci9jb21wb25lbnRzL3Rhc2staGVhZGVyLWNsb3VkLmNvbXBvbmVudCc7XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2Ugc3RhbmRhbG9uZSBjb21wb25lbnQgaW1wb3J0cyBpbnN0ZWFkICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtUYXNrTGlzdENsb3VkTW9kdWxlLCAuLi5UQVNLX0ZJTFRFUlNfQ0xPVURfRElSRUNUSVZFUywgVGFza0hlYWRlckNsb3VkQ29tcG9uZW50LCAuLi5UQVNLX0ZPUk1fQ0xPVURfRElSRUNUSVZFU10sXG4gICAgZXhwb3J0czogW1Rhc2tMaXN0Q2xvdWRNb2R1bGUsIC4uLlRBU0tfRklMVEVSU19DTE9VRF9ESVJFQ1RJVkVTLCBUYXNrSGVhZGVyQ2xvdWRDb21wb25lbnQsIC4uLlRBU0tfRk9STV9DTE9VRF9ESVJFQ1RJVkVTXVxufSlcbmV4cG9ydCBjbGFzcyBUYXNrQ2xvdWRNb2R1bGUge31cbiJdfQ==
|
|
@@ -40,10 +40,10 @@ export class BaseTaskFiltersCloudComponent {
|
|
|
40
40
|
resetFilterCounter(filterKey) {
|
|
41
41
|
this.updatedCountersSet.delete(filterKey);
|
|
42
42
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
44
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseTaskFiltersCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
44
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: BaseTaskFiltersCloudComponent, inputs: { appName: "appName", filterParam: "filterParam", showIcons: "showIcons" }, outputs: { success: "success", error: "error" }, ngImport: i0 }); }
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseTaskFiltersCloudComponent, decorators: [{
|
|
47
47
|
type: Directive
|
|
48
48
|
}], propDecorators: { appName: [{
|
|
49
49
|
type: Input
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
56
56
|
}], error: [{
|
|
57
57
|
type: Output
|
|
58
58
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10YXNrLWZpbHRlcnMtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stZmlsdGVycy9jb21wb25lbnRzL2Jhc2UtdGFzay1maWx0ZXJzLWNsb3VkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNGLGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLDZCQUE2QjtJQUZuRDtRQUdJLGlHQUFpRztRQUVqRyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBU3JCLDZDQUE2QztRQUU3QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLHVDQUF1QztRQUV2QyxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFckQsbURBQW1EO1FBRW5ELFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVuRCxhQUFRLEdBQThCLEVBQUUsQ0FBQztRQUN6Qyx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRTdCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FhN0M7SUFYRyxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQWlCO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGtCQUFrQixDQUFDLFNBQWlCO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0F2Q2lCLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUZsRCxTQUFTOzhCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFRTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLE9BQU87c0JBRE4sTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlclBhcmFtc01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbHRlci1jbG91ZC5tb2RlbCc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVRhc2tGaWx0ZXJzQ2xvdWRDb21wb25lbnQge1xuICAgIC8qKiBEaXNwbGF5IGZpbHRlcnMgYXZhaWxhYmxlIHRvIHRoZSBjdXJyZW50IHVzZXIgZm9yIHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVycyB0byB1c2UgZm9yIHRoZSB0YXNrIGZpbHRlciBjbG91ZC4gSWYgdGhlcmUgaXMgbm8gbWF0Y2ggdGhlbiB0aGUgZGVmYXVsdCBmaWx0ZXJcbiAgICAgKiAodGhlIGZpcnN0IG9uZSBpbiB0aGUgbGlzdCkgaXMgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmaWx0ZXJQYXJhbTogRmlsdGVyUGFyYW1zTW9kZWw7XG5cbiAgICAvKiogVG9nZ2xlcyBkaXNwbGF5IG9mIHRoZSBmaWx0ZXIncyBpY29ucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dJY29uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGlzdCBpcyBsb2FkZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBsb2FkaW5nLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY291bnRlcnM6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgICB1cGRhdGVkQ291bnRlcnNTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIHByb3RlY3RlZCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgd2FzRmlsdGVyVXBkYXRlZChmaWx0ZXJLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVkQ291bnRlcnNTZXQuaGFzKGZpbHRlcktleSk7XG4gICAgfVxuXG4gICAgYWRkVG9VcGRhdGVkQ291bnRlcnMoZmlsdGVyS2V5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVkQ291bnRlcnNTZXQuYWRkKGZpbHRlcktleSk7XG4gICAgfVxuXG4gICAgcmVzZXRGaWx0ZXJDb3VudGVyKGZpbHRlcktleTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlZENvdW50ZXJzU2V0LmRlbGV0ZShmaWx0ZXJLZXkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -430,10 +430,10 @@ export class BaseEditTaskFilterCloudComponent {
|
|
|
430
430
|
this.sortProperties = this.getDefaultSortProperties();
|
|
431
431
|
}
|
|
432
432
|
}
|
|
433
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
434
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
433
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseEditTaskFilterCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
434
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: BaseEditTaskFilterCloudComponent, inputs: { appName: "appName", id: "id", environmentList: "environmentList", processInstanceId: "processInstanceId", showTitle: "showTitle", showTaskFilterName: "showTaskFilterName", filterProperties: "filterProperties", role: "role", showFilterActions: "showFilterActions", actions: "actions", sortProperties: "sortProperties", taskFilter: "taskFilter" }, outputs: { action: "action", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0 }); }
|
|
435
435
|
}
|
|
436
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseEditTaskFilterCloudComponent, decorators: [{
|
|
437
437
|
type: Directive
|
|
438
438
|
}], propDecorators: { appName: [{
|
|
439
439
|
type: Input
|
|
@@ -464,4 +464,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
464
464
|
}], filterChange: [{
|
|
465
465
|
type: Output
|
|
466
466
|
}] } });
|
|
467
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0LXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9iYXNlLWVkaXQtdGFzay1maWx0ZXItY2xvdWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxjQUFjLEVBQXlELGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBbUIsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixD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QkFEYixLQUFLO2dCQUtOLE1BQU07c0JBREwsTUFBTTtnQkF1QlAsVUFBVTtzQkFEVCxLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzc2lnbm1lbnRUeXBlLCBGaWx0ZXJPcHRpb25zLCBUYXNrRmlsdGVyQWN0aW9uLCBUYXNrRmlsdGVyUHJvcGVydGllcywgVGFza1N0YXR1c0ZpbHRlciB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza0Nsb3VkU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcHNQcm9jZXNzQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9hcHAvc2VydmljZXMvYXBwcy1wcm9jZXNzLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZUNsb3VkRmlsdGVyVHlwZSwgRGF0ZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2RhdGUtY2xvdWQtZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUZuc1V0aWxzLCBUcmFuc2xhdGlvblNlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlVmFsdWVzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFRhc2tGaWx0ZXJEaWFsb2dDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2stZmlsdGVyLWRpYWxvZy90YXNrLWZpbHRlci1kaWFsb2ctY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBJZGVudGl0eVVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL3Blb3BsZS9tb2RlbHMvaWRlbnRpdHktdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBJZGVudGl0eUdyb3VwTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9ncm91cC9tb2RlbHMvaWRlbnRpdHktZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2ludGVyZmFjZS9lbnZpcm9ubWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25PcHRpb24ge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn1cblxuY29uc3QgQUNUSU9OX1NBVkUgPSAnc2F2ZSc7XG5jb25zdCBBQ1RJT05fU0FWRV9BUyA9ICdzYXZlQXMnO1xuY29uc3QgQUNUSU9OX0RFTEVURSA9ICdkZWxldGUnO1xuY29uc3QgQVBQX0RFUExPWUVEX1NUQVRVUyA9ICdERVBMT1lFRCc7XG5jb25zdCBBUFBMSUNBVElPTl9OQU1FID0gJ2FwcE5hbWUnO1xuY29uc3QgUFJPQ0VTU19ERUZJTklUSU9OX05BTUUgPSAncHJvY2Vzc0RlZmluaXRpb25OYW1lJztcbmNvbnN0IExBU1RfTU9ESUZJRURfUFJPUEVSVFkgPSAnbGFzdE1vZGlmaWVkJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgREVGQVVMVF9BQ1RJT05TID0gW0FDVElPTl9TQVZFLCBBQ1RJT05fU0FWRV9BUywgQUNUSU9OX0RFTEVURV07XG5jb25zdCBTT1JUX1BST1BFUlRZID0gJ3NvcnQnO1xuY29uc3QgT1JERVJfUFJPUEVSVFkgPSAnb3JkZXInO1xuXG5ARGlyZWN0aXZlKClcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VFZGl0VGFza0ZpbHRlckNsb3VkQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHB1YmxpYyBzdGF0aWMgQUNUSU9OU19ESVNBQkxFRF9CWV9ERUZBVUxUID0gW0FDVElPTl9TQVZFLCBBQ1RJT05fREVMRVRFXTtcblxuICAgIC8qKiAocmVxdWlyZWQpIE5hbWUgb2YgdGhlIGFwcC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIChyZXF1aXJlZCkgSUQgb2YgdGhlIHRhc2sgZmlsdGVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBMaXN0IG9mIGVudmlyb25tZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGVudmlyb25tZW50TGlzdDogRW52aXJvbm1lbnRbXSA9IFtdO1xuXG4gICAgLyoqIHByb2Nlc3NJbnN0YW5jZUlkIG9mIHRoZSB0YXNrIGZpbHRlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGl0bGUgPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgZGlzcGxheSBvZiB0YXNrIGZpbHRlciBuYW1lICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGFza0ZpbHRlck5hbWUgPSB0cnVlO1xuXG4gICAgLyoqIExpc3Qgb2YgdGFzayBmaWx0ZXIgcHJvcGVydGllcyB0byBkaXNwbGF5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiB1c2VyIHJvbGUuICovXG4gICAgQElucHV0KClcbiAgICByb2xlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBmaWx0ZXIgYWN0aW9ucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dGaWx0ZXJBY3Rpb25zID0gdHJ1ZTtcblxuICAgIC8qKiBMaXN0IG9mIHRhc2sgZmlsdGVyIGFjdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25zOiBzdHJpbmdbXSA9IFsuLi5ERUZBVUxUX0FDVElPTlNdO1xuXG4gICAgLyoqIExpc3Qgb2Ygc29ydCBwcm9wZXJ0aWVzIHRvIGRpc3BsYXkuICovXG4gICAgQElucHV0KClcbiAgICBzb3J0UHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBmaWx0ZXIgYWN0aW9uIG9jY3VycyAoaS5lIFNhdmUsIFNhdmUgQXMsIERlbGV0ZSkuICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrRmlsdGVyQWN0aW9uPigpO1xuXG4gICAgcHJvdGVjdGVkIGFwcGxpY2F0aW9uTmFtZXM6IERyb3Bkb3duT3B0aW9uW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc0RlZmluaXRpb25OYW1lczogRHJvcGRvd25PcHRpb25bXSA9IFtdO1xuICAgIHByb3RlY3RlZCBmb3JtSGFzQmVlbkNoYW5nZWQgPSBmYWxzZTtcblxuICAgIGVkaXRUYXNrRmlsdGVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICB0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSA9IFtdO1xuICAgIHRhc2tGaWx0ZXJBY3Rpb25zOiBUYXNrRmlsdGVyQWN0aW9uW10gPSBbXTtcbiAgICB0b2dnbGVGaWx0ZXJBY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG4gICAgc2VsZWN0ZWRTdGF0dXM6IFRhc2tTdGF0dXNGaWx0ZXI7XG4gICAgc29ydERpcmVjdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gPSBbXG4gICAgICAgIHsgdmFsdWU6ICdBU0MnLCBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0ZJTFRFUlMuRElSRUNUSU9OLkFTQ0VORElORycgfSxcbiAgICAgICAgeyB2YWx1ZTogJ0RFU0MnLCBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0ZJTFRFUlMuRElSRUNUSU9OLkRFU0NFTkRJTkcnIH1cbiAgICBdO1xuICAgIGFsbFByb2Nlc3NEZWZpbml0aW9uTmFtZXNPcHRpb246IERyb3Bkb3duT3B0aW9uID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5TVEFUVVMuQUxMJ1xuICAgIH07XG5cbiAgICAvKiogVGFzayBGaWx0ZXIgdG8gdXNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFza0ZpbHRlcjogVDtcblxuICAgIGNoYW5nZWRUYXNrRmlsdGVyOiBUO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgZmlsdGVyIHByb3BlcnR5IGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB0YXNrQ2xvdWRTZXJ2aWNlID0gaW5qZWN0KFRhc2tDbG91ZFNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlID0gaW5qZWN0KFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBhcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSA9IGluamVjdChBcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlciA9IGluamVjdChVbnR5cGVkRm9ybUJ1aWxkZXIpO1xuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlciA9IGluamVjdDxEYXRlQWRhcHRlcjxEYXRlPj4oRGF0ZUFkYXB0ZXIpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZVxuICAgICAgICAgICAgLnNlbGVjdChVc2VyUHJlZmVyZW5jZVZhbHVlcy5Mb2NhbGUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZSkgPT4gdGhpcy5kYXRlQWRhcHRlci5zZXRMb2NhbGUobG9jYWxlKSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCB7IGlkIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoaWQgJiYgaWQuY3VycmVudFZhbHVlICE9PSBpZC5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YXNrRmlsdGVyICYmIHRoaXMudGFza0ZpbHRlclsnaWQnXSA9PT0gaWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlQW5kRmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFuZEZpbHRlckFjdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybSh0aGlzLnRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXRyaWV2ZVRhc2tGaWx0ZXJBbmRCdWlsZEZvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUZpbHRlckFjdGlvbnMoKTogVGFza0ZpbHRlckFjdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fU0FWRSxcbiAgICAgICAgICAgICAgICBpY29uOiAnYWRmOnNhdmUnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5TQVZFJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fU0FWRV9BUyxcbiAgICAgICAgICAgICAgICBpY29uOiAnYWRmOnNhdmUtYXMnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5TQVZFX0FTJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fREVMRVRFLFxuICAgICAgICAgICAgICAgIGljb246ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5ERUxFVEUnXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgaGFzRm9ybUNoYW5nZWQoYWN0aW9uOiBUYXNrRmlsdGVyQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChhY3Rpb24uYWN0aW9uVHlwZSA9PT0gQUNUSU9OX1NBVkUpIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5mb3JtSGFzQmVlbkNoYW5nZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fU0FWRV9BUykge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uLmFjdGlvblR5cGUgPT09IEFDVElPTl9ERUxFVEUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXJBY3Rpb25zID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckFjdGlvbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpc0Rpc2FibGVkQWN0aW9uKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkRm9yRGVmYXVsdEZpbHRlcnMoYWN0aW9uKSA/IHRydWUgOiB0aGlzLmhhc0Zvcm1DaGFuZ2VkKGFjdGlvbik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlZXBDb21wYXJlKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobGVmdCkudG9Mb3dlckNhc2UoKSA9PT0gSlNPTi5zdHJpbmdpZnkocmlnaHQpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzYW5pdGl6ZWQgZmlsdGVyIG5hbWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXJOYW1lIGZpbHRlciBuYW1lXG4gICAgICogQHJldHVybnMgc2FuaXRpemVkIGZpbHRlciBuYW1lXG4gICAgICovXG4gICAgZ2V0U2FuaXRpemVGaWx0ZXJOYW1lKGZpbHRlck5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG5hbWVXaXRoSHlwaGVuID0gdGhpcy5yZXBsYWNlU3BhY2VXaXRoSHlwaGVuKGZpbHRlck5hbWUudHJpbSgpKTtcbiAgICAgICAgcmV0dXJuIG5hbWVXaXRoSHlwaGVuLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlU3BhY2VXaXRoSHlwaGVuKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlZ0V4dCA9IG5ldyBSZWdFeHAoJyAnLCAnZycpO1xuICAgICAgICByZXR1cm4gbmFtZS5yZXBsYWNlKHJlZ0V4dCwgJy0nKTtcbiAgICB9XG5cbiAgICBleGVjdXRlRmlsdGVyQWN0aW9ucyhhY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fU0FWRSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLmFjdGlvblR5cGUgPT09IEFDVElPTl9TQVZFX0FTKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVBcyhhY3Rpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fREVMRVRFKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZShhY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnNCeVN0YXR1cyhBUFBfREVQTE9ZRURfU1RBVFVTLCB0aGlzLnJvbGUpLnN1YnNjcmliZSgoYXBwbGljYXRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXBwbGljYXRpb25zICYmIGFwcGxpY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25zLm1hcCgoYXBwbGljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbk5hbWVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0QXBwbGljYXRpb25MYWJlbChhcHBsaWNhdGlvbiwgdGhpcy5lbnZpcm9ubWVudExpc3QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFwcGxpY2F0aW9uLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFByb2Nlc3NEZWZpbml0aW9ucygpIHtcbiAgICAgICAgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmdldFByb2Nlc3NEZWZpbml0aW9ucyh0aGlzLmFwcE5hbWUpLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb25zICYmIHByb2Nlc3NEZWZpbml0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbk5hbWVzLnB1c2godGhpcy5hbGxQcm9jZXNzRGVmaW5pdGlvbk5hbWVzT3B0aW9uKTtcbiAgICAgICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbnMubWFwKChwcm9jZXNzRGVmaW5pdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMucHVzaCh7IGxhYmVsOiBwcm9jZXNzRGVmaW5pdGlvbi5uYW1lLCB2YWx1ZTogcHJvY2Vzc0RlZmluaXRpb24ubmFtZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlBY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25zID09PSB1bmRlZmluZWQgfHwgdGhpcy5hY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLkRFRkFVTFRfQUNUSU9OU107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRBY3Rpb24oYWN0aW9uczogc3RyaW5nW10sIGFjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25zID8gYWN0aW9ucy5pbmRleE9mKGFjdGlvbi5hY3Rpb25UeXBlKSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBpc0Zvcm1WYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIGdldFByb3BlcnR5Q29udHJvbGxlcihwcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KHByb3BlcnR5LmtleSk7XG4gICAgfVxuXG4gICAgb25EYXRlQ2hhbmdlZChuZXdEYXRlVmFsdWU6IHN0cmluZyB8IERhdGUsIGRhdGVQcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKG5ld0RhdGVWYWx1ZSkge1xuICAgICAgICAgICAgbGV0IGRhdGU6IERhdGU7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmV3RGF0ZVZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGRhdGUgPSBEYXRlRm5zVXRpbHMucGFyc2VEYXRlKG5ld0RhdGVWYWx1ZSwgREFURV9GT1JNQVQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRlID0gbmV3RGF0ZVZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVyID0gdGhpcy5nZXRQcm9wZXJ0eUNvbnRyb2xsZXIoZGF0ZVByb3BlcnR5KTtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLnNldFZhbHVlKGRhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuc2V0RXJyb3JzKHsgaW52YWxpZDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGF0ZVJhbmdlRmlsdGVyQ2hhbmdlZChkYXRlUmFuZ2U6IERhdGVSYW5nZUZpbHRlciwgcHJvcGVydHk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldChwcm9wZXJ0eS5hdHRyaWJ1dGVzPy5mcm9tKS5zZXRWYWx1ZShkYXRlUmFuZ2Uuc3RhcnREYXRlID8gZGF0ZVJhbmdlLnN0YXJ0RGF0ZSA6IG51bGwpO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQocHJvcGVydHkuYXR0cmlidXRlcz8udG8pLnNldFZhbHVlKGRhdGVSYW5nZS5lbmREYXRlID8gZGF0ZVJhbmdlLmVuZERhdGUgOiBudWxsKTtcbiAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KHByb3BlcnR5LmF0dHJpYnV0ZXMuZGF0ZVR5cGUpLnNldFZhbHVlKERhdGVDbG91ZEZpbHRlclR5cGUuUkFOR0UpO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlZFVzZXIodXNlcnM6IElkZW50aXR5VXNlck1vZGVsW10sIHVzZXJQcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkVXNlcnM7XG4gICAgICAgIGlmICh1c2VyUHJvcGVydHkuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVXNlcnMgPSB1c2Vyc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVXNlcnMgPSB1c2VycztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFByb3BlcnR5Q29udHJvbGxlcih1c2VyUHJvcGVydHkpLnNldFZhbHVlKHNlbGVjdGVkVXNlcnMpO1xuICAgIH1cblxuICAgIG9uQXNzaWduZWRVc2Vyc0NoYW5nZShhc3NpZ25lZFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnY2FuZGlkYXRlR3JvdXBzJykuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KCdhc3NpZ25lZFVzZXJzJykuc2V0VmFsdWUoYXNzaWduZWRVc2Vycyk7XG4gICAgfVxuXG4gICAgb25Bc3NpZ25lZEdyb3Vwc0NoYW5nZShncm91cHM6IElkZW50aXR5R3JvdXBNb2RlbFtdKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnYXNzaWduZWRVc2VycycpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnY2FuZGlkYXRlR3JvdXBzJykuc2V0VmFsdWUoZ3JvdXBzKTtcbiAgICB9XG5cbiAgICBvbkFzc2lnbm1lbnRUeXBlQ2hhbmdlKGFzc2lnbm1lbnRUeXBlOiBBc3NpZ25tZW50VHlwZSkge1xuICAgICAgICBzd2l0Y2ggKGFzc2lnbm1lbnRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFzc2lnbm1lbnRUeXBlLlVOQVNTSUdORUQ6XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KCdzdGF0dXMnKS5zZXRWYWx1ZShUYXNrU3RhdHVzRmlsdGVyLkNSRUFURUQpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBc3NpZ25tZW50VHlwZS5OT05FOlxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnc3RhdHVzJykuc2V0VmFsdWUoVGFza1N0YXR1c0ZpbHRlci5BTEwpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBc3NpZ25tZW50VHlwZS5BU1NJR05FRF9UTzpcbiAgICAgICAgICAgIGNhc2UgQXNzaWdubWVudFR5cGUuQ0FORElEQVRFX0dST1VQUzpcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKFRhc2tTdGF0dXNGaWx0ZXIuQVNTSUdORUQpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKFRhc2tTdGF0dXNGaWx0ZXIuQVNTSUdORUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdGF0dXNDaGFuZ2Uoc3RhdHVzOiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICAgICAgaWYgKHN0YXR1cy52YWx1ZSA9PT0gVGFza1N0YXR1c0ZpbHRlci5DUkVBVEVEKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QXNzaWdubWVudFR5cGVWYWx1ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdGF0dXMgPSBzdGF0dXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEFzc2lnbm1lbnRUeXBlVmFsdWVzKCkge1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ2Fzc2lnbmVkVXNlcnMnKS5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ2NhbmRpZGF0ZUdyb3VwcycpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgaGFzRXJyb3IocHJvcGVydHk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLmdldFByb3BlcnR5Q29udHJvbGxlcihwcm9wZXJ0eSk7XG4gICAgICAgIHJldHVybiAhIWNvbnRyb2xsZXIuZXJyb3JzPy5pbnZhbGlkO1xuICAgIH1cblxuICAgIGhhc0xhc3RNb2RpZmllZFByb3BlcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2YoTEFTVF9NT0RJRklFRF9QUk9QRVJUWSkgPj0gMDtcbiAgICB9XG5cbiAgICBnZXQgY3JlYXRlU29ydFByb3BlcnRpZXMoKTogRmlsdGVyT3B0aW9uc1tdIHtcbiAgICAgICAgdGhpcy5jaGVja01hbmRhdG9yeVNvcnRQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFByb3BlcnRpZXMubWFwKChwcm9wZXJ0eTogc3RyaW5nKSA9PiAoeyBsYWJlbDogcHJvcGVydHksIHZhbHVlOiBwcm9wZXJ0eSB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlQW5kRmlsdGVyQWN0aW9ucygpOiBUYXNrRmlsdGVyQWN0aW9uW10ge1xuICAgICAgICB0aGlzLmNoZWNrTWFuZGF0b3J5QWN0aW9ucygpO1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGaWx0ZXJBY3Rpb25zKCkuZmlsdGVyKChhY3Rpb24pID0+IHRoaXMuaXNWYWxpZEFjdGlvbih0aGlzLmFjdGlvbnMsIGFjdGlvbikpO1xuICAgIH1cblxuICAgIGlzVmFsaWRQcm9wZXJ0eShmaWx0ZXJQcm9wZXJ0aWVzOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlclByb3BlcnRpZXMgPyBmaWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2Yoa2V5KSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBjaGVja0ZvclByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyUHJvcGVydGllcyA/IHRoaXMuZmlsdGVyUHJvcGVydGllcy5pbmRleE9mKHByb3BlcnR5KSA+PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaGFzU29ydFByb3BlcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2YoU09SVF9QUk9QRVJUWSkgPj0gMDtcbiAgICB9XG5cbiAgICByZW1vdmVPcmRlclByb3BlcnR5KGZpbHRlcmVkUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzW10ge1xuICAgICAgICBpZiAoZmlsdGVyZWRQcm9wZXJ0aWVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzLmZpbHRlcigocHJvcGVydHkpID0+IHByb3BlcnR5LmtleSAhPT0gT1JERVJfUFJPUEVSVFkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjcmVhdGVBbmRGaWx0ZXJQcm9wZXJ0aWVzKCkge1xuICAgICAgICB0aGlzLmNoZWNrTWFuZGF0b3J5RmlsdGVyUHJvcGVydGllcygpO1xuXG4gICAgICAgIGlmICh0aGlzLmNoZWNrRm9yUHJvcGVydHkoQVBQTElDQVRJT05fTkFNRSkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5nZXREZXBsb3llZEFwcGxpY2F0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNoZWNrRm9yUHJvcGVydHkoUFJPQ0VTU19ERUZJTklUSU9OX05BTUUpKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UHJvY2Vzc0RlZmluaXRpb25zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0UHJvcGVydGllcyA9IHRoaXMuY3JlYXRlVGFza0ZpbHRlclByb3BlcnRpZXMoKTtcbiAgICAgICAgbGV0IGZpbHRlcmVkUHJvcGVydGllcyA9IGRlZmF1bHRQcm9wZXJ0aWVzLmZpbHRlcigoZmlsdGVyUHJvcGVydHkpID0+IHRoaXMuaXNWYWxpZFByb3BlcnR5KHRoaXMuZmlsdGVyUHJvcGVydGllcywgZmlsdGVyUHJvcGVydHkua2V5KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc1NvcnRQcm9wZXJ0eSgpKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFByb3BlcnRpZXMgPSB0aGlzLnJlbW92ZU9yZGVyUHJvcGVydHkoZmlsdGVyZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgZm9yIGVkaXQgdGFzayBmaWx0ZXIgZm9ybSBjaGFuZ2VzXG4gICAgICovXG4gICAgb25GaWx0ZXJDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNGb3JtVmFsaWQoKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZvcm1WYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2lnbk5ld0ZpbHRlcihmb3JtVmFsdWVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEZvcm1Db250cm9sc0NvbmZpZyh0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0YXNrRmlsdGVyUHJvcGVydGllcy5tYXAoKHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcGVydHkuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZXNDb250cm9sQ29uZmlnKHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW3Byb3BlcnR5LmtleV06IHByb3BlcnR5LnZhbHVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvcGVydGllcy5yZWR1Y2UoKHJlc3VsdCwgY3VycmVudCkgPT4gT2JqZWN0LmFzc2lnbihyZXN1bHQsIGN1cnJlbnQpLCB7fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGVzQ29udHJvbENvbmZpZyhwcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocHJvcGVydHkuYXR0cmlidXRlcykucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBwcm9wZXJ0eS52YWx1ZVtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIGJ1aWxkRm9ybSh0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSkge1xuICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5nZXRGb3JtQ29udHJvbHNDb25maWcodGFza0ZpbHRlclByb3BlcnRpZXMpKTtcbiAgICAgICAgdGhpcy5vbkZpbHRlckNoYW5nZSgpO1xuICAgIH1cblxuICAgIG9uRGF0ZVR5cGVDaGFuZ2UoZGF0ZVR5cGU6IERhdGVDbG91ZEZpbHRlclR5cGUsIHByb3BlcnR5OiBUYXNrRmlsdGVyUHJvcGVydGllcykge1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQocHJvcGVydHkuYXR0cmlidXRlcy5kYXRlVHlwZSkuc2V0VmFsdWUoZGF0ZVR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXRyaWV2ZVRhc2tGaWx0ZXJBbmRCdWlsZEZvcm0oKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmdldFRhc2tGaWx0ZXJCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy5pZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlQW5kRmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFuZEZpbHRlckFjdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybSh0aGlzLnRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlbGV0ZShkZWxldGVBY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWxldGVGaWx0ZXIodGhpcy50YXNrRmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZUFjdGlvbi5maWx0ZXIgPSB0aGlzLnRhc2tGaWx0ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoZGVsZXRlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnMubGVuZ3RoID09PSAwO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlc3RvcmVEZWZhdWx0VGFza0ZpbHRlcnMoKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICAgIH1cblxuICAgIHNhdmUoc2F2ZUFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcih0aGlzLmNoYW5nZWRUYXNrRmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzYXZlQWN0aW9uLmZpbHRlciA9IHRoaXMuY2hhbmdlZFRhc2tGaWx0ZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24uZW1pdChzYXZlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9IHRoaXMuZGVlcENvbXBhcmUodGhpcy5jaGFuZ2VkVGFza0ZpbHRlciwgdGhpcy50YXNrRmlsdGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVBcyhzYXZlQXNBY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUYXNrRmlsdGVyRGlhbG9nQ2xvdWRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgodGhpcy50YXNrRmlsdGVyIGFzIGFueSk/Lm5hbWUpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzMwJSdcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5hY3Rpb24gPT09IFRhc2tGaWx0ZXJEaWFsb2dDbG91ZENvbXBvbmVudC5BQ1RJT05fU0FWRSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcklkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcktleSA9IHRoaXMuZ2V0U2FuaXRpemVGaWx0ZXJOYW1lKHJlc3VsdC5uYW1lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiByZXN1bHQuaWNvbixcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGZpbHRlcklkLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdjdXN0b20tJyArIGZpbHRlcktleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0RmlsdGVyOiBUID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jaGFuZ2VkVGFza0ZpbHRlciwgbmV3RmlsdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEZpbHRlcihyZXN1bHRGaWx0ZXIpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNhdmVBc0FjdGlvbi5maWx0ZXIgPSByZXN1bHRGaWx0ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoc2F2ZUFzQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlGaWx0ZXJQcm9wZXJ0aWVzKCkge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgfHwgdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJQcm9wZXJ0aWVzID0gdGhpcy5nZXREZWZhdWx0RmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlTb3J0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc29ydFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnNvcnRQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zb3J0UHJvcGVydGllcyA9IHRoaXMuZ2V0RGVmYXVsdFNvcnRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0RmlsdGVyUHJvcGVydGllcygpOiBzdHJpbmdbXTtcbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0U29ydFByb3BlcnRpZXMoKTogc3RyaW5nW107XG4gICAgYWJzdHJhY3QgaXNEaXNhYmxlZEZvckRlZmF1bHRGaWx0ZXJzKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgY3JlYXRlVGFza0ZpbHRlclByb3BlcnRpZXMoKTogVGFza0ZpbHRlclByb3BlcnRpZXNbXTtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0VGFza0ZpbHRlckJ5SWQoYXBwTmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTtcbiAgICBhYnN0cmFjdCBhc3NpZ25OZXdGaWx0ZXIoZm9ybVZhbHVlcyk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVzdG9yZURlZmF1bHRUYXNrRmlsdGVycygpOiBPYnNlcnZhYmxlPFRbXT47XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGFkZEZpbHRlcihmaWx0ZXJUb0FkZDogVCk6IE9ic2VydmFibGU8YW55PjtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGVsZXRlRmlsdGVyKGZpbHRlclRvRGVsZXRlOiBUKTogT2JzZXJ2YWJsZTxUW10+O1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCB1cGRhdGVGaWx0ZXIoZmlsdGVyVG9VcGRhdGU6IFQpOiBPYnNlcnZhYmxlPGFueT47XG59XG4iXX0=
|
|
467
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0LXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9iYXNlLWVkaXQtdGFzay1maWx0ZXItY2xvdWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxjQUFjLEVBQXlELGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBbUIsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixD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QkFEYixLQUFLO2dCQUtOLE1BQU07c0JBREwsTUFBTTtnQkF1QlAsVUFBVTtzQkFEVCxLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzc2lnbm1lbnRUeXBlLCBGaWx0ZXJPcHRpb25zLCBUYXNrRmlsdGVyQWN0aW9uLCBUYXNrRmlsdGVyUHJvcGVydGllcywgVGFza1N0YXR1c0ZpbHRlciB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza0Nsb3VkU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcHNQcm9jZXNzQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9hcHAvc2VydmljZXMvYXBwcy1wcm9jZXNzLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZUNsb3VkRmlsdGVyVHlwZSwgRGF0ZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2RhdGUtY2xvdWQtZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUZuc1V0aWxzLCBUcmFuc2xhdGlvblNlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlVmFsdWVzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFRhc2tGaWx0ZXJEaWFsb2dDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2stZmlsdGVyLWRpYWxvZy90YXNrLWZpbHRlci1kaWFsb2ctY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBJZGVudGl0eVVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL3Blb3BsZS9tb2RlbHMvaWRlbnRpdHktdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBJZGVudGl0eUdyb3VwTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9ncm91cC9tb2RlbHMvaWRlbnRpdHktZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2ludGVyZmFjZS9lbnZpcm9ubWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25PcHRpb24ge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn1cblxuY29uc3QgQUNUSU9OX1NBVkUgPSAnc2F2ZSc7XG5jb25zdCBBQ1RJT05fU0FWRV9BUyA9ICdzYXZlQXMnO1xuY29uc3QgQUNUSU9OX0RFTEVURSA9ICdkZWxldGUnO1xuY29uc3QgQVBQX0RFUExPWUVEX1NUQVRVUyA9ICdERVBMT1lFRCc7XG5jb25zdCBBUFBMSUNBVElPTl9OQU1FID0gJ2FwcE5hbWUnO1xuY29uc3QgUFJPQ0VTU19ERUZJTklUSU9OX05BTUUgPSAncHJvY2Vzc0RlZmluaXRpb25OYW1lJztcbmNvbnN0IExBU1RfTU9ESUZJRURfUFJPUEVSVFkgPSAnbGFzdE1vZGlmaWVkJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgREVGQVVMVF9BQ1RJT05TID0gW0FDVElPTl9TQVZFLCBBQ1RJT05fU0FWRV9BUywgQUNUSU9OX0RFTEVURV07XG5jb25zdCBTT1JUX1BST1BFUlRZID0gJ3NvcnQnO1xuY29uc3QgT1JERVJfUFJPUEVSVFkgPSAnb3JkZXInO1xuXG5ARGlyZWN0aXZlKClcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VFZGl0VGFza0ZpbHRlckNsb3VkQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHB1YmxpYyBzdGF0aWMgQUNUSU9OU19ESVNBQkxFRF9CWV9ERUZBVUxUID0gW0FDVElPTl9TQVZFLCBBQ1RJT05fREVMRVRFXTtcblxuICAgIC8qKiAocmVxdWlyZWQpIE5hbWUgb2YgdGhlIGFwcC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIChyZXF1aXJlZCkgSUQgb2YgdGhlIHRhc2sgZmlsdGVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBMaXN0IG9mIGVudmlyb25tZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGVudmlyb25tZW50TGlzdDogRW52aXJvbm1lbnRbXSA9IFtdO1xuXG4gICAgLyoqIHByb2Nlc3NJbnN0YW5jZUlkIG9mIHRoZSB0YXNrIGZpbHRlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGl0bGUgPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgZGlzcGxheSBvZiB0YXNrIGZpbHRlciBuYW1lICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGFza0ZpbHRlck5hbWUgPSB0cnVlO1xuXG4gICAgLyoqIExpc3Qgb2YgdGFzayBmaWx0ZXIgcHJvcGVydGllcyB0byBkaXNwbGF5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiB1c2VyIHJvbGUuICovXG4gICAgQElucHV0KClcbiAgICByb2xlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBmaWx0ZXIgYWN0aW9ucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dGaWx0ZXJBY3Rpb25zID0gdHJ1ZTtcblxuICAgIC8qKiBMaXN0IG9mIHRhc2sgZmlsdGVyIGFjdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25zOiBzdHJpbmdbXSA9IFsuLi5ERUZBVUxUX0FDVElPTlNdO1xuXG4gICAgLyoqIExpc3Qgb2Ygc29ydCBwcm9wZXJ0aWVzIHRvIGRpc3BsYXkuICovXG4gICAgQElucHV0KClcbiAgICBzb3J0UHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBmaWx0ZXIgYWN0aW9uIG9jY3VycyAoaS5lIFNhdmUsIFNhdmUgQXMsIERlbGV0ZSkuICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrRmlsdGVyQWN0aW9uPigpO1xuXG4gICAgcHJvdGVjdGVkIGFwcGxpY2F0aW9uTmFtZXM6IERyb3Bkb3duT3B0aW9uW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc0RlZmluaXRpb25OYW1lczogRHJvcGRvd25PcHRpb25bXSA9IFtdO1xuICAgIHByb3RlY3RlZCBmb3JtSGFzQmVlbkNoYW5nZWQgPSBmYWxzZTtcblxuICAgIGVkaXRUYXNrRmlsdGVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICB0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSA9IFtdO1xuICAgIHRhc2tGaWx0ZXJBY3Rpb25zOiBUYXNrRmlsdGVyQWN0aW9uW10gPSBbXTtcbiAgICB0b2dnbGVGaWx0ZXJBY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG4gICAgc2VsZWN0ZWRTdGF0dXM6IFRhc2tTdGF0dXNGaWx0ZXI7XG4gICAgc29ydERpcmVjdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gPSBbXG4gICAgICAgIHsgdmFsdWU6ICdBU0MnLCBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0ZJTFRFUlMuRElSRUNUSU9OLkFTQ0VORElORycgfSxcbiAgICAgICAgeyB2YWx1ZTogJ0RFU0MnLCBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0ZJTFRFUlMuRElSRUNUSU9OLkRFU0NFTkRJTkcnIH1cbiAgICBdO1xuICAgIGFsbFByb2Nlc3NEZWZpbml0aW9uTmFtZXNPcHRpb246IERyb3Bkb3duT3B0aW9uID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5TVEFUVVMuQUxMJ1xuICAgIH07XG5cbiAgICAvKiogVGFzayBGaWx0ZXIgdG8gdXNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFza0ZpbHRlcjogVDtcblxuICAgIGNoYW5nZWRUYXNrRmlsdGVyOiBUO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgZmlsdGVyIHByb3BlcnR5IGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB0YXNrQ2xvdWRTZXJ2aWNlID0gaW5qZWN0KFRhc2tDbG91ZFNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlID0gaW5qZWN0KFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBhcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSA9IGluamVjdChBcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlciA9IGluamVjdChVbnR5cGVkRm9ybUJ1aWxkZXIpO1xuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlciA9IGluamVjdDxEYXRlQWRhcHRlcjxEYXRlPj4oRGF0ZUFkYXB0ZXIpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZVxuICAgICAgICAgICAgLnNlbGVjdChVc2VyUHJlZmVyZW5jZVZhbHVlcy5Mb2NhbGUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZSkgPT4gdGhpcy5kYXRlQWRhcHRlci5zZXRMb2NhbGUobG9jYWxlKSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCB7IGlkIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoaWQgJiYgaWQuY3VycmVudFZhbHVlICE9PSBpZC5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YXNrRmlsdGVyICYmIHRoaXMudGFza0ZpbHRlclsnaWQnXSA9PT0gaWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlQW5kRmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFuZEZpbHRlckFjdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybSh0aGlzLnRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXRyaWV2ZVRhc2tGaWx0ZXJBbmRCdWlsZEZvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUZpbHRlckFjdGlvbnMoKTogVGFza0ZpbHRlckFjdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fU0FWRSxcbiAgICAgICAgICAgICAgICBpY29uOiAnYWRmOnNhdmUnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5TQVZFJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fU0FWRV9BUyxcbiAgICAgICAgICAgICAgICBpY29uOiAnYWRmOnNhdmUtYXMnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5TQVZFX0FTJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fREVMRVRFLFxuICAgICAgICAgICAgICAgIGljb246ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5ERUxFVEUnXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgaGFzRm9ybUNoYW5nZWQoYWN0aW9uOiBUYXNrRmlsdGVyQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChhY3Rpb24uYWN0aW9uVHlwZSA9PT0gQUNUSU9OX1NBVkUpIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5mb3JtSGFzQmVlbkNoYW5nZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fU0FWRV9BUykge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uLmFjdGlvblR5cGUgPT09IEFDVElPTl9ERUxFVEUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXJBY3Rpb25zID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckFjdGlvbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpc0Rpc2FibGVkQWN0aW9uKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkRm9yRGVmYXVsdEZpbHRlcnMoYWN0aW9uKSA/IHRydWUgOiB0aGlzLmhhc0Zvcm1DaGFuZ2VkKGFjdGlvbik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlZXBDb21wYXJlKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobGVmdCkudG9Mb3dlckNhc2UoKSA9PT0gSlNPTi5zdHJpbmdpZnkocmlnaHQpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzYW5pdGl6ZWQgZmlsdGVyIG5hbWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXJOYW1lIGZpbHRlciBuYW1lXG4gICAgICogQHJldHVybnMgc2FuaXRpemVkIGZpbHRlciBuYW1lXG4gICAgICovXG4gICAgZ2V0U2FuaXRpemVGaWx0ZXJOYW1lKGZpbHRlck5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG5hbWVXaXRoSHlwaGVuID0gdGhpcy5yZXBsYWNlU3BhY2VXaXRoSHlwaGVuKGZpbHRlck5hbWUudHJpbSgpKTtcbiAgICAgICAgcmV0dXJuIG5hbWVXaXRoSHlwaGVuLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlU3BhY2VXaXRoSHlwaGVuKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlZ0V4dCA9IG5ldyBSZWdFeHAoJyAnLCAnZycpO1xuICAgICAgICByZXR1cm4gbmFtZS5yZXBsYWNlKHJlZ0V4dCwgJy0nKTtcbiAgICB9XG5cbiAgICBleGVjdXRlRmlsdGVyQWN0aW9ucyhhY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fU0FWRSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLmFjdGlvblR5cGUgPT09IEFDVElPTl9TQVZFX0FTKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVBcyhhY3Rpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fREVMRVRFKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZShhY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnNCeVN0YXR1cyhBUFBfREVQTE9ZRURfU1RBVFVTLCB0aGlzLnJvbGUpLnN1YnNjcmliZSgoYXBwbGljYXRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXBwbGljYXRpb25zICYmIGFwcGxpY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25zLm1hcCgoYXBwbGljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbk5hbWVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0QXBwbGljYXRpb25MYWJlbChhcHBsaWNhdGlvbiwgdGhpcy5lbnZpcm9ubWVudExpc3QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFwcGxpY2F0aW9uLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFByb2Nlc3NEZWZpbml0aW9ucygpIHtcbiAgICAgICAgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmdldFByb2Nlc3NEZWZpbml0aW9ucyh0aGlzLmFwcE5hbWUpLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb25zICYmIHByb2Nlc3NEZWZpbml0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbk5hbWVzLnB1c2godGhpcy5hbGxQcm9jZXNzRGVmaW5pdGlvbk5hbWVzT3B0aW9uKTtcbiAgICAgICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbnMubWFwKChwcm9jZXNzRGVmaW5pdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMucHVzaCh7IGxhYmVsOiBwcm9jZXNzRGVmaW5pdGlvbi5uYW1lLCB2YWx1ZTogcHJvY2Vzc0RlZmluaXRpb24ubmFtZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlBY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25zID09PSB1bmRlZmluZWQgfHwgdGhpcy5hY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLkRFRkFVTFRfQUNUSU9OU107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRBY3Rpb24oYWN0aW9uczogc3RyaW5nW10sIGFjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25zID8gYWN0aW9ucy5pbmRleE9mKGFjdGlvbi5hY3Rpb25UeXBlKSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBpc0Zvcm1WYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIGdldFByb3BlcnR5Q29udHJvbGxlcihwcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KHByb3BlcnR5LmtleSk7XG4gICAgfVxuXG4gICAgb25EYXRlQ2hhbmdlZChuZXdEYXRlVmFsdWU6IHN0cmluZyB8IERhdGUsIGRhdGVQcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKG5ld0RhdGVWYWx1ZSkge1xuICAgICAgICAgICAgbGV0IGRhdGU6IERhdGU7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmV3RGF0ZVZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGRhdGUgPSBEYXRlRm5zVXRpbHMucGFyc2VEYXRlKG5ld0RhdGVWYWx1ZSwgREFURV9GT1JNQVQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRlID0gbmV3RGF0ZVZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVyID0gdGhpcy5nZXRQcm9wZXJ0eUNvbnRyb2xsZXIoZGF0ZVByb3BlcnR5KTtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLnNldFZhbHVlKGRhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuc2V0RXJyb3JzKHsgaW52YWxpZDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGF0ZVJhbmdlRmlsdGVyQ2hhbmdlZChkYXRlUmFuZ2U6IERhdGVSYW5nZUZpbHRlciwgcHJvcGVydHk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldChwcm9wZXJ0eS5hdHRyaWJ1dGVzPy5mcm9tKS5zZXRWYWx1ZShkYXRlUmFuZ2Uuc3RhcnREYXRlID8gZGF0ZVJhbmdlLnN0YXJ0RGF0ZSA6IG51bGwpO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQocHJvcGVydHkuYXR0cmlidXRlcz8udG8pLnNldFZhbHVlKGRhdGVSYW5nZS5lbmREYXRlID8gZGF0ZVJhbmdlLmVuZERhdGUgOiBudWxsKTtcbiAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KHByb3BlcnR5LmF0dHJpYnV0ZXMuZGF0ZVR5cGUpLnNldFZhbHVlKERhdGVDbG91ZEZpbHRlclR5cGUuUkFOR0UpO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlZFVzZXIodXNlcnM6IElkZW50aXR5VXNlck1vZGVsW10sIHVzZXJQcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkVXNlcnM7XG4gICAgICAgIGlmICh1c2VyUHJvcGVydHkuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVXNlcnMgPSB1c2Vyc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVXNlcnMgPSB1c2VycztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFByb3BlcnR5Q29udHJvbGxlcih1c2VyUHJvcGVydHkpLnNldFZhbHVlKHNlbGVjdGVkVXNlcnMpO1xuICAgIH1cblxuICAgIG9uQXNzaWduZWRVc2Vyc0NoYW5nZShhc3NpZ25lZFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnY2FuZGlkYXRlR3JvdXBzJykuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KCdhc3NpZ25lZFVzZXJzJykuc2V0VmFsdWUoYXNzaWduZWRVc2Vycyk7XG4gICAgfVxuXG4gICAgb25Bc3NpZ25lZEdyb3Vwc0NoYW5nZShncm91cHM6IElkZW50aXR5R3JvdXBNb2RlbFtdKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnYXNzaWduZWRVc2VycycpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnY2FuZGlkYXRlR3JvdXBzJykuc2V0VmFsdWUoZ3JvdXBzKTtcbiAgICB9XG5cbiAgICBvbkFzc2lnbm1lbnRUeXBlQ2hhbmdlKGFzc2lnbm1lbnRUeXBlOiBBc3NpZ25tZW50VHlwZSkge1xuICAgICAgICBzd2l0Y2ggKGFzc2lnbm1lbnRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFzc2lnbm1lbnRUeXBlLlVOQVNTSUdORUQ6XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KCdzdGF0dXMnKS5zZXRWYWx1ZShUYXNrU3RhdHVzRmlsdGVyLkNSRUFURUQpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBc3NpZ25tZW50VHlwZS5OT05FOlxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnc3RhdHVzJykuc2V0VmFsdWUoVGFza1N0YXR1c0ZpbHRlci5BTEwpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBc3NpZ25tZW50VHlwZS5BU1NJR05FRF9UTzpcbiAgICAgICAgICAgIGNhc2UgQXNzaWdubWVudFR5cGUuQ0FORElEQVRFX0dST1VQUzpcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKFRhc2tTdGF0dXNGaWx0ZXIuQVNTSUdORUQpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKFRhc2tTdGF0dXNGaWx0ZXIuQVNTSUdORUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdGF0dXNDaGFuZ2Uoc3RhdHVzOiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICAgICAgaWYgKHN0YXR1cy52YWx1ZSA9PT0gVGFza1N0YXR1c0ZpbHRlci5DUkVBVEVEKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QXNzaWdubWVudFR5cGVWYWx1ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdGF0dXMgPSBzdGF0dXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEFzc2lnbm1lbnRUeXBlVmFsdWVzKCkge1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ2Fzc2lnbmVkVXNlcnMnKS5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ2NhbmRpZGF0ZUdyb3VwcycpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgaGFzRXJyb3IocHJvcGVydHk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLmdldFByb3BlcnR5Q29udHJvbGxlcihwcm9wZXJ0eSk7XG4gICAgICAgIHJldHVybiAhIWNvbnRyb2xsZXIuZXJyb3JzPy5pbnZhbGlkO1xuICAgIH1cblxuICAgIGhhc0xhc3RNb2RpZmllZFByb3BlcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2YoTEFTVF9NT0RJRklFRF9QUk9QRVJUWSkgPj0gMDtcbiAgICB9XG5cbiAgICBnZXQgY3JlYXRlU29ydFByb3BlcnRpZXMoKTogRmlsdGVyT3B0aW9uc1tdIHtcbiAgICAgICAgdGhpcy5jaGVja01hbmRhdG9yeVNvcnRQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFByb3BlcnRpZXMubWFwKChwcm9wZXJ0eTogc3RyaW5nKSA9PiAoeyBsYWJlbDogcHJvcGVydHksIHZhbHVlOiBwcm9wZXJ0eSB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlQW5kRmlsdGVyQWN0aW9ucygpOiBUYXNrRmlsdGVyQWN0aW9uW10ge1xuICAgICAgICB0aGlzLmNoZWNrTWFuZGF0b3J5QWN0aW9ucygpO1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGaWx0ZXJBY3Rpb25zKCkuZmlsdGVyKChhY3Rpb24pID0+IHRoaXMuaXNWYWxpZEFjdGlvbih0aGlzLmFjdGlvbnMsIGFjdGlvbikpO1xuICAgIH1cblxuICAgIGlzVmFsaWRQcm9wZXJ0eShmaWx0ZXJQcm9wZXJ0aWVzOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlclByb3BlcnRpZXMgPyBmaWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2Yoa2V5KSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBjaGVja0ZvclByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyUHJvcGVydGllcyA/IHRoaXMuZmlsdGVyUHJvcGVydGllcy5pbmRleE9mKHByb3BlcnR5KSA+PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaGFzU29ydFByb3BlcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2YoU09SVF9QUk9QRVJUWSkgPj0gMDtcbiAgICB9XG5cbiAgICByZW1vdmVPcmRlclByb3BlcnR5KGZpbHRlcmVkUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzW10ge1xuICAgICAgICBpZiAoZmlsdGVyZWRQcm9wZXJ0aWVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzLmZpbHRlcigocHJvcGVydHkpID0+IHByb3BlcnR5LmtleSAhPT0gT1JERVJfUFJPUEVSVFkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjcmVhdGVBbmRGaWx0ZXJQcm9wZXJ0aWVzKCkge1xuICAgICAgICB0aGlzLmNoZWNrTWFuZGF0b3J5RmlsdGVyUHJvcGVydGllcygpO1xuXG4gICAgICAgIGlmICh0aGlzLmNoZWNrRm9yUHJvcGVydHkoQVBQTElDQVRJT05fTkFNRSkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5nZXREZXBsb3llZEFwcGxpY2F0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNoZWNrRm9yUHJvcGVydHkoUFJPQ0VTU19ERUZJTklUSU9OX05BTUUpKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UHJvY2Vzc0RlZmluaXRpb25zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0UHJvcGVydGllcyA9IHRoaXMuY3JlYXRlVGFza0ZpbHRlclByb3BlcnRpZXMoKTtcbiAgICAgICAgbGV0IGZpbHRlcmVkUHJvcGVydGllcyA9IGRlZmF1bHRQcm9wZXJ0aWVzLmZpbHRlcigoZmlsdGVyUHJvcGVydHkpID0+IHRoaXMuaXNWYWxpZFByb3BlcnR5KHRoaXMuZmlsdGVyUHJvcGVydGllcywgZmlsdGVyUHJvcGVydHkua2V5KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc1NvcnRQcm9wZXJ0eSgpKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFByb3BlcnRpZXMgPSB0aGlzLnJlbW92ZU9yZGVyUHJvcGVydHkoZmlsdGVyZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgZm9yIGVkaXQgdGFzayBmaWx0ZXIgZm9ybSBjaGFuZ2VzXG4gICAgICovXG4gICAgb25GaWx0ZXJDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNGb3JtVmFsaWQoKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZvcm1WYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2lnbk5ld0ZpbHRlcihmb3JtVmFsdWVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEZvcm1Db250cm9sc0NvbmZpZyh0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0YXNrRmlsdGVyUHJvcGVydGllcy5tYXAoKHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcGVydHkuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZXNDb250cm9sQ29uZmlnKHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW3Byb3BlcnR5LmtleV06IHByb3BlcnR5LnZhbHVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvcGVydGllcy5yZWR1Y2UoKHJlc3VsdCwgY3VycmVudCkgPT4gT2JqZWN0LmFzc2lnbihyZXN1bHQsIGN1cnJlbnQpLCB7fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGVzQ29udHJvbENvbmZpZyhwcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocHJvcGVydHkuYXR0cmlidXRlcykucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBwcm9wZXJ0eS52YWx1ZVtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIGJ1aWxkRm9ybSh0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSkge1xuICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5nZXRGb3JtQ29udHJvbHNDb25maWcodGFza0ZpbHRlclByb3BlcnRpZXMpKTtcbiAgICAgICAgdGhpcy5vbkZpbHRlckNoYW5nZSgpO1xuICAgIH1cblxuICAgIG9uRGF0ZVR5cGVDaGFuZ2UoZGF0ZVR5cGU6IERhdGVDbG91ZEZpbHRlclR5cGUsIHByb3BlcnR5OiBUYXNrRmlsdGVyUHJvcGVydGllcykge1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQocHJvcGVydHkuYXR0cmlidXRlcy5kYXRlVHlwZSkuc2V0VmFsdWUoZGF0ZVR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXRyaWV2ZVRhc2tGaWx0ZXJBbmRCdWlsZEZvcm0oKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmdldFRhc2tGaWx0ZXJCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy5pZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlQW5kRmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFuZEZpbHRlckFjdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybSh0aGlzLnRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlbGV0ZShkZWxldGVBY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWxldGVGaWx0ZXIodGhpcy50YXNrRmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZUFjdGlvbi5maWx0ZXIgPSB0aGlzLnRhc2tGaWx0ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoZGVsZXRlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnMubGVuZ3RoID09PSAwO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlc3RvcmVEZWZhdWx0VGFza0ZpbHRlcnMoKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICAgIH1cblxuICAgIHNhdmUoc2F2ZUFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcih0aGlzLmNoYW5nZWRUYXNrRmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzYXZlQWN0aW9uLmZpbHRlciA9IHRoaXMuY2hhbmdlZFRhc2tGaWx0ZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24uZW1pdChzYXZlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9IHRoaXMuZGVlcENvbXBhcmUodGhpcy5jaGFuZ2VkVGFza0ZpbHRlciwgdGhpcy50YXNrRmlsdGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVBcyhzYXZlQXNBY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUYXNrRmlsdGVyRGlhbG9nQ2xvdWRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgodGhpcy50YXNrRmlsdGVyIGFzIGFueSk/Lm5hbWUpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzMwJSdcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5hY3Rpb24gPT09IFRhc2tGaWx0ZXJEaWFsb2dDbG91ZENvbXBvbmVudC5BQ1RJT05fU0FWRSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcklkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcktleSA9IHRoaXMuZ2V0U2FuaXRpemVGaWx0ZXJOYW1lKHJlc3VsdC5uYW1lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiByZXN1bHQuaWNvbixcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGZpbHRlcklkLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdjdXN0b20tJyArIGZpbHRlcktleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0RmlsdGVyOiBUID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jaGFuZ2VkVGFza0ZpbHRlciwgbmV3RmlsdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEZpbHRlcihyZXN1bHRGaWx0ZXIpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNhdmVBc0FjdGlvbi5maWx0ZXIgPSByZXN1bHRGaWx0ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoc2F2ZUFzQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlGaWx0ZXJQcm9wZXJ0aWVzKCkge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgfHwgdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJQcm9wZXJ0aWVzID0gdGhpcy5nZXREZWZhdWx0RmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlTb3J0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc29ydFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnNvcnRQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zb3J0UHJvcGVydGllcyA9IHRoaXMuZ2V0RGVmYXVsdFNvcnRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0RmlsdGVyUHJvcGVydGllcygpOiBzdHJpbmdbXTtcbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0U29ydFByb3BlcnRpZXMoKTogc3RyaW5nW107XG4gICAgYWJzdHJhY3QgaXNEaXNhYmxlZEZvckRlZmF1bHRGaWx0ZXJzKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgY3JlYXRlVGFza0ZpbHRlclByb3BlcnRpZXMoKTogVGFza0ZpbHRlclByb3BlcnRpZXNbXTtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0VGFza0ZpbHRlckJ5SWQoYXBwTmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTtcbiAgICBhYnN0cmFjdCBhc3NpZ25OZXdGaWx0ZXIoZm9ybVZhbHVlcyk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVzdG9yZURlZmF1bHRUYXNrRmlsdGVycygpOiBPYnNlcnZhYmxlPFRbXT47XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGFkZEZpbHRlcihmaWx0ZXJUb0FkZDogVCk6IE9ic2VydmFibGU8YW55PjtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGVsZXRlRmlsdGVyKGZpbHRlclRvRGVsZXRlOiBUKTogT2JzZXJ2YWJsZTxUW10+O1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCB1cGRhdGVGaWx0ZXIoZmlsdGVyVG9VcGRhdGU6IFQpOiBPYnNlcnZhYmxlPGFueT47XG59XG4iXX0=
|