@eo-sdk/client 10.2.1 → 10.3.0-rc.1
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/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts +15 -0
- package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts +41 -0
- package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts +29 -0
- package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -0
- package/app/eo-client/eo-client.module.d.ts +18 -16
- package/app/eo-client/eo-client.module.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +9 -0
- package/assets/_default/i18n/en.json +9 -0
- package/assets/_default/svg/ic_open_tab.svg +1 -0
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +9 -1
- package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +2 -0
- package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +135 -0
- package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +125 -0
- package/esm2020/app/eo-client/eo-client.module.mjs +9 -3
- package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +1 -1
- package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +10 -1
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +9 -0
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +332 -89
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +9 -0
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +325 -89
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +5 -0
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
|
@@ -225,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
225
225
|
}], onDelete: [{
|
|
226
226
|
type: Output
|
|
227
227
|
}] } });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJMUgsT0FBTyxFQUFzQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk1Rjs7R0FFRztBQVNJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBNEIzQixJQUFJLGdCQUFnQixDQUFDLEdBQVk7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FB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LENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs2R0FwT1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsaU1BRmhCLENBQUMsdUJBQXVCLENBQUMsZ0pDekJ0QywraUZBeUNZO0FEZEMsZ0JBQWdCO0lBUjVCLFlBQVksRUFBRTtHQVFGLGdCQUFnQixDQXFPNUI7U0FyT1ksZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsYUFBYSxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsdUJBQXVCLENBQUM7MlBBR1IsbUJBQW1CO3NCQUE5QyxTQUFTO3VCQUFDLGVBQWU7Z0JBdUNqQixZQUFZO3NCQUFwQixLQUFLO2dCQUdGLEdBQUc7c0JBRE4sS0FBSztnQkFhSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBpbXBvcnQgeyBPYmplY3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TG9jYWxTdG9yYWdlU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7Rm9ybVN0YXR1c0NoYW5nZWRFdmVudH0gZnJvbSAnLi4vLi4vLi4vZm9ybS1zdGF0dXMtY2hhbmdlZC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtGb3JtR2VuUmVzdWx0LCBPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlcic7XG5pbXBvcnQge09iamVjdEZvcm1Hcm91cH0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0U2VydmljZX0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcbmltcG9ydCB7RWRpdFJvdywgRWRpdFJvd1Jlc3VsdH0gZnJvbSAnLi4vZm9ybS1lbGVtZW50LmludGVyZmFjZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBlZGl0aW5nIGEgcm93IGZyb20gYW4gb2JqZWN0IGZvcm1zIHRhYmxlLlxuICovXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXJvdy1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jvdy1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm93LWVkaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBSb3dFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29uZmlybURlbGV0ZScpIGNvbmZpcm1EZWxldGVCdXR0b246IEVsZW1lbnRSZWY7XG5cbiAgLy8gSUQgc2V0IGJ5IHBlbmRpbmdDaGFuZ2VzIHNlcnZpY2Ugd2hlbiBlZGl0aW5nIHJvdyBkYXRhXG4gIC8vIFVzZWQgdG8gZmluaXNoIHRoZSBwZW5kaW5nIHRhc2sgd2hlbiBlZGl0aW5nIGlzIGRvbmVcbiAgcGVuZGluZ1Rhc2tJZDogc3RyaW5nO1xuXG4gIGVkaXRGb3JtOiBPYmplY3RGb3JtR3JvdXA7XG4gIGVkaXRGb3JtQ29udHJvbHM6IE9iamVjdEZvcm1Db250cm9sV3JhcHBlcltdID0gW107XG4gIHByaXZhdGUgc2NyaXB0aW5nU2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAvLyBwcm9wZXJ0eSBmb3IgaG9sZGluZyB0aGUgZm9ybXMgZGF0YSB1c2VkIGZvciBjb21wYXJpc29uIHdoZW4gYSBmb3JtLWNoYW5nZWQtZXZlbnRcbiAgLy8gaXMgZmV0Y2hlZCB0byBpbmRpY2F0ZSB3aGVyIG9yIG5vdCB0aGUgaW5kZXhkYXRhIHdlcmUgY2hhbmdlZCBvciBqdXN0IHRoZSBwcm9wZXJ0aWVzXG4gIC8vIG9mIHRoZSBmb3JtIGVsZW1lbnRzIChlZy4gZm9ybSBzY3JpcHQgc2V0dGluZyBmaWVsZHMgdG8gcmVhZG9ubHkpXG4gIHByaXZhdGUgZm9ybURhdGE6IGFueTtcblxuICBfcm93OiBFZGl0Um93O1xuICBpc05ld1JvdzogYm9vbGVhbjtcbiAgZm9ybVN0YXRlPzogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcbiAgcXVlcnlFbmFibGVkID0gdHJ1ZTtcbiAgY29weUVuYWJsZWQgPSB0cnVlO1xuICBkZWxldGVFbmFibGVkID0gdHJ1ZTtcbiAgc2F2ZUVuYWJsZWQgPSB0cnVlO1xuICBjcmVhdGVOZXdDaGVja2JveDogVW50eXBlZEZvcm1Db250cm9sO1xuICBjcmVhdGVOZXdSb3cgPSBmYWxzZTtcbiAgX3Nob3dEZWxldGVEaWFsb2cgPSBmYWxzZTtcbiAgc2F2aW5nID0gZmFsc2U7XG5cbiAgc2V0IHNob3dEZWxldGVEaWFsb2codmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0RlbGV0ZURpYWxvZyA9IHZhbDtcblxuICAgIGlmICh0aGlzLl9zaG93RGVsZXRlRGlhbG9nKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29uZmlybURlbGV0ZUJ1dHRvbi5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93RGVsZXRlRGlhbG9nKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93RGVsZXRlRGlhbG9nO1xuICB9XG5cbiAgQElucHV0KCkgbGltaXRSZWFjaGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNldCByb3cocjogRWRpdFJvdykge1xuICAgIHRoaXMuX3JvdyA9IHI7XG4gICAgdGhpcy5xdWVyeUVuYWJsZWQgPSByPy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnO1xuICAgIHRoaXMuY29weUVuYWJsZWQgPSAhdGhpcy5xdWVyeUVuYWJsZWQ7XG4gICAgdGhpcy5zYXZlRW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLmRlbGV0ZUVuYWJsZWQgPSAhdGhpcy5xdWVyeUVuYWJsZWQ7XG4gICAgdGhpcy5pc05ld1JvdyA9IHRoaXMuX3Jvdz8uaW5kZXggPT09IC0xO1xuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcblxuICAgIHRoaXMuX2J1aWxkUm93RWRpdEZvcm0oKVxuICB9XG5cbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0Um93UmVzdWx0PigpO1xuICBAT3V0cHV0KCkgb25TYXZlQ29weSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdFJvd1Jlc3VsdD4oKTtcbiAgQE91dHB1dCgpIG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybVNjcmlwdFNlcnZpY2U6IE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMuY3JlYXRlTmV3Um93ID0gISF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2NyZWF0ZU5ld1JvdycpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3ggPSB0aGlzLmZiLmNvbnRyb2wodGhpcy5jcmVhdGVOZXdSb3cpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3gudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVOZXdSb3cgPSB2O1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCdjcmVhdGVOZXdSb3cnLCB0aGlzLmNyZWF0ZU5ld1Jvdyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgY3VycmVudCBmb3JtIHNjcmlwdCBydW5uaW5nLiBJZiB0aGVyZSBpc1xuICogbm8gZm9ybSBzY3JpcHQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIE5VTEwuXG4gKiBAcmV0dXJuc1xuICovXG4gIHByaXZhdGUgX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NyaXB0aW5nU2NvcGUgPyB0aGlzLnNjcmlwdGluZ1Njb3BlLmdldE1vZGVsKCkgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Rm9ybURhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuZXh0cmFjdEZvcm1EYXRhKFxuICAgICAgdGhpcy5lZGl0Rm9ybSxcbiAgICAgIHRoaXMuX3Jvdy5zaXR1YXRpb24sXG4gICAgICB0aGlzLl9yb3cuZm9ybS5kYXRhLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgfVxuXG4gIG9uRm9ybVJlYWR5KCkge1xuICAgIC8vIGV4ZWN1dGUgYWZ0ZXIgZm9ybSBoYXMgYmVlbiBzZXQgdXAsIGJlY2F1c2Ugb3RoZXJ3aXNlIG5vdCBhbGwgb2YgdGhlIGNvbXBvbmVudHMgYXJlIHJlYWR5IHRvIGJlIHVzZWRcbiAgICAvLyBpZiBmb3IgZXhhbXBsZSBhIGZvcm0gc2NyaXB0IGV4ZWN1dGVkIGBvbnJvd2VkaXRgIHRyaWVzIHRvIGFwcGx5IGEgZmlsdGVyIG9yIHNvbWV0aGluZyBsaWtlIHRoYXRcbiAgICBpZiAodGhpcy5fcm93LnRhYmxlRWxlbWVudC5vbnJvd2VkaXQgJiYgIXRoaXMuX3Jvdy50YWJsZUVsZW1lbnQucmVhZG9ubHkpIHtcblxuICAgICAgLy8gR2VuZXJhdGUgcm93IEFQSSBvYmplY3QgKHdyYXBwZXIpIGZvciB0aGUgc2NyaXB0XG4gICAgICBjb25zdCByb3cgPSB7XG4gICAgICAgIG1vZGVsOiB0aGlzLl9nZXRPYnNlcnZlZFNjcmlwdE1vZGVsKCksXG4gICAgICAgIGluZGV4OiB0aGlzLl9yb3cuaW5kZXgsXG4gICAgICAgIGNvcHlFbmFibGVkOiB0aGlzLmNvcHlFbmFibGVkLFxuICAgICAgICBkZWxldGVFbmFibGVkOiB0aGlzLmRlbGV0ZUVuYWJsZWQsXG4gICAgICAgIHNhdmVFbmFibGVkOiB0aGlzLnNhdmVFbmFibGVkLFxuICAgICAgICBwZXJzaXN0ZWQ6IHRoaXMuaXNOZXdSb3cgLy8gTm90IHBlcnNpc3RlZCBpZiBpdCBpcyBhIG5ldyByb3dcbiAgICAgIH07XG4gICAgICAvLyBDYWxsIHRoZSBzY3JpcHQgZnVuY3Rpb24gLi4uXG4gICAgICB0aGlzLl9yb3cudGFibGVFbGVtZW50Lm9ucm93ZWRpdCh0aGlzLl9yb3cudGFibGVFbGVtZW50LCByb3cpO1xuICAgICAgLy8gLi4uIGFuZCByZXNwZWN0IHRoZSByZXN1bHRcbiAgICAgIHRoaXMuY29weUVuYWJsZWQgPSByb3cuY29weUVuYWJsZWQ7XG4gICAgICB0aGlzLmRlbGV0ZUVuYWJsZWQgPSByb3cuZGVsZXRlRW5hYmxlZDtcbiAgICAgIHRoaXMuc2F2ZUVuYWJsZWQgPSByb3cuc2F2ZUVuYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChldnQpIHtcblxuICAgIC8vIGNoZWNrIGlmIGluZGV4ZGF0YSBoYXMgYmVlbiBjaGFuZ2VkXG4gICAgbGV0IGN1cnJlbnRGb3JtRGF0YSA9IHRoaXMuX2dldEZvcm1EYXRhKCk7XG4gICAgbGV0IGlkeENoYW5nZSA9ICEhdGhpcy5mb3JtRGF0YSAmJiBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1EYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKTtcbiAgICB0aGlzLmZvcm1EYXRhID0gVXRpbHMuZm9ybURhdGFQYXJzZShVdGlscy5mb3JtRGF0YVN0cmluZ2lmeShjdXJyZW50Rm9ybURhdGEpKTtcblxuICAgIHRoaXMuZm9ybVN0YXRlID0ge1xuICAgICAgaW52YWxpZDogdGhpcy5lZGl0Rm9ybS5pbnZhbGlkLFxuICAgICAgZGlydHk6IHRoaXMuZWRpdEZvcm0uZGlydHksXG4gICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhLFxuICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogaWR4Q2hhbmdlXG4gICAgfTtcbiAgICBpZiAodGhpcy5mb3JtU3RhdGUuaW5kZXhkYXRhQ2hhbmdlZCkge1xuICAgICAgdGhpcy5zdGFydFBlbmRpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRSb3dFZGl0Rm9ybSgpIHtcbiAgICBpZiAodGhpcy5fcm93KSB7XG4gICAgICBjb25zdCBmb3JtR2VuUmVzOiBGb3JtR2VuUmVzdWx0ID0gdGhpcy5mb3JtSGVscGVyU2VydmljZS5idWlsZFJlYWN0aXZlRm9ybShcbiAgICAgICAge1xuICAgICAgICAgIGZvcm1Nb2RlbDoge1xuICAgICAgICAgICAgZWxlbWVudHM6IFt7XG4gICAgICAgICAgICAgIHR5cGU6ICdvMm1Hcm91cCcsXG4gICAgICAgICAgICAgIGVsZW1lbnRzOiBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fcm93LmZvcm0uZWxlbWVudHMpXG4gICAgICAgICAgICB9XVxuICAgICAgICAgIH0sIGRpc2FibGVkOiB0aGlzLl9yb3cuZm9ybS5kaXNhYmxlZCwgZGF0YTogdGhpcy5fcm93LmZvcm0uZGF0YVxuICAgICAgICB9LCB0aGlzLmZvcm1TY3JpcHRTZXJ2aWNlLCB0cnVlXG4gICAgICApO1xuICAgICAgdGhpcy5lZGl0Rm9ybSA9IGZvcm1HZW5SZXMuZm9ybTtcbiAgICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUgPSBmb3JtR2VuUmVzLnNjcmlwdGluZ1Njb3BlO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gZm9ybUdlblJlcy5jb250cm9sVmFsdWVTdWJzY3JpcHRpb25zO1xuXG4gICAgICBjb25zdCBjdHJscyA9ICh0aGlzLmVkaXRGb3JtLmNvbnRyb2xzLmNvcmUgYXMgT2JqZWN0Rm9ybUdyb3VwKS5jb250cm9scztcbiAgICAgIHRoaXMuZWRpdEZvcm1Db250cm9scyA9IE9iamVjdC5rZXlzKGN0cmxzKS5tYXAoayA9PiBjdHJsc1trXSBhcyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIpXG4gICAgICB0aGlzLmZvcm1TdGF0ZSA9IHtcbiAgICAgICAgaW52YWxpZDogdGhpcy5lZGl0Rm9ybS5pbnZhbGlkLFxuICAgICAgICBkaXJ0eTogdGhpcy5lZGl0Rm9ybS5kaXJ0eSxcbiAgICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YSxcbiAgICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogZmFsc2VcbiAgICAgIH07XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRGb3JtKSByZXR1cm47XG4gICAgICAgIGxldCBmb3JtU3RhdGVXYXRjaCA9IHRoaXMuZWRpdEZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKClcbiAgICAgICAgICAuc3Vic2NyaWJlKChlKSA9PiB0aGlzLm9uRm9ybVN0YXR1c0NoYW5nZWQoZSkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChmb3JtU3RhdGVXYXRjaCk7XG4gICAgICAgIHRoaXMub25Gb3JtUmVhZHkoKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFBlbmRpbmcoKSB7XG4gICAgLy8gYmVjYXVzZSB0aGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBmb3JtIHN0YXR1cyBjaGFuZ2VzLFxuICAgIC8vIHBlbmRpbmcgdGFzayB3aWxsIG9ubHkgYmUgc3RhcnRlZCBvbmNlIHVudGlsIGl0IHdhcyBmaW5pc2hlZFxuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQgfHwgJyAnKSkge1xuICAgICAgdGhpcy5wZW5kaW5nVGFza0lkID0gdGhpcy5wZW5kaW5nQ2hhbmdlcy5zdGFydFRhc2soKTtcbiAgICB9XG4gIH1cblxuICBmaW5pc2hQZW5kaW5nKCkge1xuICAgIHRoaXMucGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQpO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybVN0YXRlLmludmFsaWQpIHtcbiAgICAgICAgdGhpcy5vblNhdmUuZW1pdCh7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgICByb3dEYXRhOiB0aGlzLl9nZXRGb3JtRGF0YSgpLFxuICAgICAgICAgIGNyZWF0ZU5ld1JvdzogdGhpcy5jcmVhdGVOZXdSb3dcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICBzYXZlQ29weSgpIHtcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybVN0YXRlLmludmFsaWQpIHtcbiAgICAgICAgdGhpcy5vblNhdmVDb3B5LmVtaXQoe1xuICAgICAgICAgIGluZGV4OiB0aGlzLl9yb3cuaW5kZXgsXG4gICAgICAgICAgcm93RGF0YTogdGhpcy5fZ2V0Rm9ybURhdGEoKSxcbiAgICAgICAgICBjcmVhdGVOZXdSb3c6IHRoaXMuY3JlYXRlTmV3Um93XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcbiAgICB9LCA1MDApO1xuICB9XG5cbiAgZGVsZXRlKCkge1xuICAgIHRoaXMub25EZWxldGUuZW1pdCh0aGlzLl9yb3cuaW5kZXgpO1xuICAgIHRoaXMuc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIHRoaXMub25DYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUFsbCgpIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93LWVkaXRcIj5cbiAgPGRpdiBjbGFzcz1cImVkaXQtaGVhZGVyXCIgKm5nSWY9XCIhcXVlcnlFbmFibGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5ldy1pbmRpY2F0b3JcIiAqbmdJZj1cImlzTmV3Um93XCIgdHJhbnNsYXRlPmVvLmZvcm0udGFibGUub3B0aW9ucy5pbmRpY2F0b3IubmV3PC9kaXY+XG4gICAgPGRpdj48L2Rpdj5cbiAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsLWljb25cIlxuICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uY2FuY2VsJyB8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybVwiICpuZ0lmPVwiZWRpdEZvcm1cIj5cbiAgICA8ZW8tZm9ybS1lbGVtZW50ICpuZ0Zvcj1cImxldCBjIG9mIGVkaXRGb3JtQ29udHJvbHNcIiBbZWxlbWVudF09XCJjXCIgW3NpdHVhdGlvbl09XCJfcm93Py5zaXR1YXRpb25cIiBbc2tpcFRvZ2dsZV09XCJ0cnVlXCI+XG4gICAgPC9lby1mb3JtLWVsZW1lbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgPGVvLWNoZWNrYm94ICpuZ0lmPVwiaXNOZXdSb3dcIiB0aXRsZT1cInt7J2VvLmZvcm0udGFibGUub3B0aW9ucy5jaGVja2JveC5uZXcudGl0bGUnIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNyZWF0ZU5ld0NoZWNrYm94XCI+PC9lby1jaGVja2JveD5cbiAgICA8c3BhbiAqbmdJZj1cImlzTmV3Um93XCIgY2xhc3M9XCJhZGQtbGFiZWxcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmNoZWNrYm94Lm5ldzwvc3Bhbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImRlbGV0ZUVuYWJsZWQgJiYgIWlzTmV3Um93ICYmICFfcm93Py5mb3JtLmRpc2FibGVkICYmICFxdWVyeUVuYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSB0cnVlO1wiIHRpdGxlPVwie3snZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5kZWxldGUnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3RyYXNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVDb3B5KClcIiBjbGFzcz1cInNlY29cIiAqbmdJZj1cImNvcHlFbmFibGVkICYmICFpc05ld1JvdyAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwibGltaXRSZWFjaGVkIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jb3B5PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIGNsYXNzPVwicHJpbWFyeVwiICpuZ0lmPVwic2F2ZUVuYWJsZWQgJiYgIV9yb3c/LmZvcm0uZGlzYWJsZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIihsaW1pdFJlYWNoZWQgJiYgaXNOZXdSb3cpIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWQgfHwgKCFmb3JtU3RhdGU/LmRpcnR5ICYmICFpc05ld1JvdylcIj57e1xuICAgICAgJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uc2F2ZScgKyAoaXNOZXdSb3cgPyAnLm5ldycgOiAnJykgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIDwhLS0gcXVlcnkgYnV0dG9uIGZvciBTRUFSQ0ggc2l0dWF0aW9uIC0tPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBjbGFzcz1cInByaW1hcnlcIiAqbmdJZj1cInF1ZXJ5RW5hYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlPy5pbnZhbGlkIHx8ICFmb3JtU3RhdGU/LmluZGV4ZGF0YUNoYW5nZWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5zYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiKCdlby5mb3JtLnRhYmxlLm9wdGlvbnMuY29uZmlybS5kZWxldGUnIHwgdHJhbnNsYXRlKVwiIFsodmlzaWJsZSldPVwic2hvd0RlbGV0ZURpYWxvZ1wiXG4gIFttaW5XaWR0aF09XCI0MDBcIj5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGZsZXgtcm93XCIgc3R5bGU9XCJwYWRkaW5nOiA4cHg7XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSBmYWxzZVwiXG4gICAgICB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjY29uZmlybURlbGV0ZSAoY2xpY2spPVwiZGVsZXRlKClcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcbiAgICAgIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLm9rPC9idXR0b24+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+Il19
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJMUgsT0FBTyxFQUFzQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk1Rjs7R0FFRztBQVNJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBNEIzQixJQUFJLGdCQUFnQixDQUFDLEdBQVk7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FB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LENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs2R0FuT1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsaU1BRmhCLENBQUMsdUJBQXVCLENBQUMsZ0pDekJ0QywraUZBeUNZO0FEZEMsZ0JBQWdCO0lBUjVCLFlBQVksRUFBRTtHQVFGLGdCQUFnQixDQW9PNUI7U0FwT1ksZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsYUFBYSxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsdUJBQXVCLENBQUM7MlBBR1IsbUJBQW1CO3NCQUE5QyxTQUFTO3VCQUFDLGVBQWU7Z0JBdUNqQixZQUFZO3NCQUFwQixLQUFLO2dCQUdGLEdBQUc7c0JBRE4sS0FBSztnQkFhSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBpbXBvcnQgeyBPYmplY3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TG9jYWxTdG9yYWdlU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7Rm9ybVN0YXR1c0NoYW5nZWRFdmVudH0gZnJvbSAnLi4vLi4vLi4vZm9ybS1zdGF0dXMtY2hhbmdlZC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtGb3JtR2VuUmVzdWx0LCBPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlcic7XG5pbXBvcnQge09iamVjdEZvcm1Hcm91cH0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0U2VydmljZX0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcbmltcG9ydCB7RWRpdFJvdywgRWRpdFJvd1Jlc3VsdH0gZnJvbSAnLi4vZm9ybS1lbGVtZW50LmludGVyZmFjZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBlZGl0aW5nIGEgcm93IGZyb20gYW4gb2JqZWN0IGZvcm1zIHRhYmxlLlxuICovXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXJvdy1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jvdy1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm93LWVkaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBSb3dFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29uZmlybURlbGV0ZScpIGNvbmZpcm1EZWxldGVCdXR0b246IEVsZW1lbnRSZWY7XG5cbiAgLy8gSUQgc2V0IGJ5IHBlbmRpbmdDaGFuZ2VzIHNlcnZpY2Ugd2hlbiBlZGl0aW5nIHJvdyBkYXRhXG4gIC8vIFVzZWQgdG8gZmluaXNoIHRoZSBwZW5kaW5nIHRhc2sgd2hlbiBlZGl0aW5nIGlzIGRvbmVcbiAgcGVuZGluZ1Rhc2tJZDogc3RyaW5nO1xuXG4gIGVkaXRGb3JtOiBPYmplY3RGb3JtR3JvdXA7XG4gIGVkaXRGb3JtQ29udHJvbHM6IE9iamVjdEZvcm1Db250cm9sV3JhcHBlcltdID0gW107XG4gIHByaXZhdGUgc2NyaXB0aW5nU2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAvLyBwcm9wZXJ0eSBmb3IgaG9sZGluZyB0aGUgZm9ybXMgZGF0YSB1c2VkIGZvciBjb21wYXJpc29uIHdoZW4gYSBmb3JtLWNoYW5nZWQtZXZlbnRcbiAgLy8gaXMgZmV0Y2hlZCB0byBpbmRpY2F0ZSB3aGVyIG9yIG5vdCB0aGUgaW5kZXhkYXRhIHdlcmUgY2hhbmdlZCBvciBqdXN0IHRoZSBwcm9wZXJ0aWVzXG4gIC8vIG9mIHRoZSBmb3JtIGVsZW1lbnRzIChlZy4gZm9ybSBzY3JpcHQgc2V0dGluZyBmaWVsZHMgdG8gcmVhZG9ubHkpXG4gIHByaXZhdGUgZm9ybURhdGE6IGFueTtcblxuICBfcm93OiBFZGl0Um93O1xuICBpc05ld1JvdzogYm9vbGVhbjtcbiAgZm9ybVN0YXRlPzogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcbiAgcXVlcnlFbmFibGVkID0gdHJ1ZTtcbiAgY29weUVuYWJsZWQgPSB0cnVlO1xuICBkZWxldGVFbmFibGVkID0gdHJ1ZTtcbiAgc2F2ZUVuYWJsZWQgPSB0cnVlO1xuICBjcmVhdGVOZXdDaGVja2JveDogVW50eXBlZEZvcm1Db250cm9sO1xuICBjcmVhdGVOZXdSb3cgPSBmYWxzZTtcbiAgX3Nob3dEZWxldGVEaWFsb2cgPSBmYWxzZTtcbiAgc2F2aW5nID0gZmFsc2U7XG5cbiAgc2V0IHNob3dEZWxldGVEaWFsb2codmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0RlbGV0ZURpYWxvZyA9IHZhbDtcblxuICAgIGlmICh0aGlzLl9zaG93RGVsZXRlRGlhbG9nKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29uZmlybURlbGV0ZUJ1dHRvbi5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93RGVsZXRlRGlhbG9nKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93RGVsZXRlRGlhbG9nO1xuICB9XG5cbiAgQElucHV0KCkgbGltaXRSZWFjaGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNldCByb3cocjogRWRpdFJvdykge1xuICAgIHRoaXMuX3JvdyA9IHI7XG4gICAgdGhpcy5xdWVyeUVuYWJsZWQgPSByPy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnO1xuICAgIHRoaXMuY29weUVuYWJsZWQgPSAhdGhpcy5xdWVyeUVuYWJsZWQ7XG4gICAgdGhpcy5zYXZlRW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLmRlbGV0ZUVuYWJsZWQgPSAhdGhpcy5xdWVyeUVuYWJsZWQ7XG4gICAgdGhpcy5pc05ld1JvdyA9IHRoaXMuX3Jvdz8uaW5kZXggPT09IC0xO1xuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcblxuICAgIHRoaXMuX2J1aWxkUm93RWRpdEZvcm0oKVxuICB9XG5cbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0Um93UmVzdWx0PigpO1xuICBAT3V0cHV0KCkgb25TYXZlQ29weSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdFJvd1Jlc3VsdD4oKTtcbiAgQE91dHB1dCgpIG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybVNjcmlwdFNlcnZpY2U6IE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMuY3JlYXRlTmV3Um93ID0gISF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2NyZWF0ZU5ld1JvdycpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3ggPSB0aGlzLmZiLmNvbnRyb2wodGhpcy5jcmVhdGVOZXdSb3cpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3gudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVOZXdSb3cgPSB2O1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCdjcmVhdGVOZXdSb3cnLCB0aGlzLmNyZWF0ZU5ld1Jvdyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgY3VycmVudCBmb3JtIHNjcmlwdCBydW5uaW5nLiBJZiB0aGVyZSBpc1xuICogbm8gZm9ybSBzY3JpcHQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIE5VTEwuXG4gKiBAcmV0dXJuc1xuICovXG4gIHByaXZhdGUgX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NyaXB0aW5nU2NvcGUgPyB0aGlzLnNjcmlwdGluZ1Njb3BlLmdldE1vZGVsKCkgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Rm9ybURhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuZXh0cmFjdEZvcm1EYXRhKFxuICAgICAgdGhpcy5lZGl0Rm9ybSxcbiAgICAgIHRoaXMuX3Jvdy5zaXR1YXRpb24sXG4gICAgICB0aGlzLl9yb3cuZm9ybS5kYXRhLCB0cnVlXG4gICAgKTtcblxuICB9XG5cbiAgb25Gb3JtUmVhZHkoKSB7XG4gICAgLy8gZXhlY3V0ZSBhZnRlciBmb3JtIGhhcyBiZWVuIHNldCB1cCwgYmVjYXVzZSBvdGhlcndpc2Ugbm90IGFsbCBvZiB0aGUgY29tcG9uZW50cyBhcmUgcmVhZHkgdG8gYmUgdXNlZFxuICAgIC8vIGlmIGZvciBleGFtcGxlIGEgZm9ybSBzY3JpcHQgZXhlY3V0ZWQgYG9ucm93ZWRpdGAgdHJpZXMgdG8gYXBwbHkgYSBmaWx0ZXIgb3Igc29tZXRoaW5nIGxpa2UgdGhhdFxuICAgIGlmICh0aGlzLl9yb3cudGFibGVFbGVtZW50Lm9ucm93ZWRpdCAmJiAhdGhpcy5fcm93LnRhYmxlRWxlbWVudC5yZWFkb25seSkge1xuXG4gICAgICAvLyBHZW5lcmF0ZSByb3cgQVBJIG9iamVjdCAod3JhcHBlcikgZm9yIHRoZSBzY3JpcHRcbiAgICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgICAgbW9kZWw6IHRoaXMuX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSxcbiAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgY29weUVuYWJsZWQ6IHRoaXMuY29weUVuYWJsZWQsXG4gICAgICAgIGRlbGV0ZUVuYWJsZWQ6IHRoaXMuZGVsZXRlRW5hYmxlZCxcbiAgICAgICAgc2F2ZUVuYWJsZWQ6IHRoaXMuc2F2ZUVuYWJsZWQsXG4gICAgICAgIHBlcnNpc3RlZDogdGhpcy5pc05ld1JvdyAvLyBOb3QgcGVyc2lzdGVkIGlmIGl0IGlzIGEgbmV3IHJvd1xuICAgICAgfTtcbiAgICAgIC8vIENhbGwgdGhlIHNjcmlwdCBmdW5jdGlvbiAuLi5cbiAgICAgIHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQub25yb3dlZGl0KHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQsIHJvdyk7XG4gICAgICAvLyAuLi4gYW5kIHJlc3BlY3QgdGhlIHJlc3VsdFxuICAgICAgdGhpcy5jb3B5RW5hYmxlZCA9IHJvdy5jb3B5RW5hYmxlZDtcbiAgICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9IHJvdy5kZWxldGVFbmFibGVkO1xuICAgICAgdGhpcy5zYXZlRW5hYmxlZCA9IHJvdy5zYXZlRW5hYmxlZDtcbiAgICB9XG4gIH1cblxuICBvbkZvcm1TdGF0dXNDaGFuZ2VkKGV2dCkge1xuXG4gICAgLy8gY2hlY2sgaWYgaW5kZXhkYXRhIGhhcyBiZWVuIGNoYW5nZWRcbiAgICBsZXQgY3VycmVudEZvcm1EYXRhID0gdGhpcy5fZ2V0Rm9ybURhdGEoKTtcbiAgICBsZXQgaWR4Q2hhbmdlID0gISF0aGlzLmZvcm1EYXRhICYmIEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybURhdGEpICE9PSBKU09OLnN0cmluZ2lmeShjdXJyZW50Rm9ybURhdGEpO1xuICAgIHRoaXMuZm9ybURhdGEgPSBVdGlscy5mb3JtRGF0YVBhcnNlKFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkpO1xuXG4gICAgdGhpcy5mb3JtU3RhdGUgPSB7XG4gICAgICBpbnZhbGlkOiB0aGlzLmVkaXRGb3JtLmludmFsaWQsXG4gICAgICBkaXJ0eTogdGhpcy5lZGl0Rm9ybS5kaXJ0eSxcbiAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXG4gICAgICBpbmRleGRhdGFDaGFuZ2VkOiBpZHhDaGFuZ2VcbiAgICB9O1xuICAgIGlmICh0aGlzLmZvcm1TdGF0ZS5pbmRleGRhdGFDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnN0YXJ0UGVuZGluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9idWlsZFJvd0VkaXRGb3JtKCkge1xuICAgIGlmICh0aGlzLl9yb3cpIHtcbiAgICAgIGNvbnN0IGZvcm1HZW5SZXM6IEZvcm1HZW5SZXN1bHQgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmJ1aWxkUmVhY3RpdmVGb3JtKFxuICAgICAgICB7XG4gICAgICAgICAgZm9ybU1vZGVsOiB7XG4gICAgICAgICAgICBlbGVtZW50czogW3tcbiAgICAgICAgICAgICAgdHlwZTogJ28ybUdyb3VwJyxcbiAgICAgICAgICAgICAgZWxlbWVudHM6IHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9yb3cuZm9ybS5lbGVtZW50cylcbiAgICAgICAgICAgIH1dXG4gICAgICAgICAgfSwgZGlzYWJsZWQ6IHRoaXMuX3Jvdy5mb3JtLmRpc2FibGVkLCBkYXRhOiB0aGlzLl9yb3cuZm9ybS5kYXRhXG4gICAgICAgIH0sIHRoaXMuZm9ybVNjcmlwdFNlcnZpY2UsIHRydWVcbiAgICAgICk7XG4gICAgICB0aGlzLmVkaXRGb3JtID0gZm9ybUdlblJlcy5mb3JtO1xuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZSA9IGZvcm1HZW5SZXMuc2NyaXB0aW5nU2NvcGU7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBmb3JtR2VuUmVzLmNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbnM7XG5cbiAgICAgIGNvbnN0IGN0cmxzID0gKHRoaXMuZWRpdEZvcm0uY29udHJvbHMuY29yZSBhcyBPYmplY3RGb3JtR3JvdXApLmNvbnRyb2xzO1xuICAgICAgdGhpcy5lZGl0Rm9ybUNvbnRyb2xzID0gT2JqZWN0LmtleXMoY3RybHMpLm1hcChrID0+IGN0cmxzW2tdIGFzIE9iamVjdEZvcm1Db250cm9sV3JhcHBlcilcbiAgICAgIHRoaXMuZm9ybVN0YXRlID0ge1xuICAgICAgICBpbnZhbGlkOiB0aGlzLmVkaXRGb3JtLmludmFsaWQsXG4gICAgICAgIGRpcnR5OiB0aGlzLmVkaXRGb3JtLmRpcnR5LFxuICAgICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhLFxuICAgICAgICBpbmRleGRhdGFDaGFuZ2VkOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZWRpdEZvcm0pIHJldHVybjtcbiAgICAgICAgbGV0IGZvcm1TdGF0ZVdhdGNoID0gdGhpcy5lZGl0Rm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHRoaXMub25Gb3JtU3RhdHVzQ2hhbmdlZChlKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1TdGF0ZVdhdGNoKTtcbiAgICAgICAgdGhpcy5vbkZvcm1SZWFkeSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIGZpbmlzaFBlbmRpbmcoKSB7XG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy5maW5pc2hUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KHtcbiAgICAgICAgICBpbmRleDogdGhpcy5fcm93LmluZGV4LFxuICAgICAgICAgIHJvd0RhdGE6IHRoaXMuX2dldEZvcm1EYXRhKCksXG4gICAgICAgICAgY3JlYXRlTmV3Um93OiB0aGlzLmNyZWF0ZU5ld1Jvd1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHNhdmVDb3B5KCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZUNvcHkuZW1pdCh7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgICByb3dEYXRhOiB0aGlzLl9nZXRGb3JtRGF0YSgpLFxuICAgICAgICAgIGNyZWF0ZU5ld1JvdzogdGhpcy5jcmVhdGVOZXdSb3dcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICBkZWxldGUoKSB7XG4gICAgdGhpcy5vbkRlbGV0ZS5lbWl0KHRoaXMuX3Jvdy5pbmRleCk7XG4gICAgdGhpcy5zaG93RGVsZXRlRGlhbG9nID0gZmFsc2U7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3ctZWRpdFwiPlxuICA8ZGl2IGNsYXNzPVwiZWRpdC1oZWFkZXJcIiAqbmdJZj1cIiFxdWVyeUVuYWJsZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibmV3LWluZGljYXRvclwiICpuZ0lmPVwiaXNOZXdSb3dcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmluZGljYXRvci5uZXc8L2Rpdj5cbiAgICA8ZGl2PjwvZGl2PlxuICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWwtaWNvblwiXG4gICAgICBbaWNvblRpdGxlXT1cIignZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jYW5jZWwnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGb3JtXCIgKm5nSWY9XCJlZGl0Rm9ybVwiPlxuICAgIDxlby1mb3JtLWVsZW1lbnQgKm5nRm9yPVwibGV0IGMgb2YgZWRpdEZvcm1Db250cm9sc1wiIFtlbGVtZW50XT1cImNcIiBbc2l0dWF0aW9uXT1cIl9yb3c/LnNpdHVhdGlvblwiIFtza2lwVG9nZ2xlXT1cInRydWVcIj5cbiAgICA8L2VvLWZvcm0tZWxlbWVudD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICA8ZW8tY2hlY2tib3ggKm5nSWY9XCJpc05ld1Jvd1wiIHRpdGxlPVwie3snZW8uZm9ybS50YWJsZS5vcHRpb25zLmNoZWNrYm94Lm5ldy50aXRsZScgfCB0cmFuc2xhdGV9fVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY3JlYXRlTmV3Q2hlY2tib3hcIj48L2VvLWNoZWNrYm94PlxuICAgIDxzcGFuICpuZ0lmPVwiaXNOZXdSb3dcIiBjbGFzcz1cImFkZC1sYWJlbFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuY2hlY2tib3gubmV3PC9zcGFuPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiZGVsZXRlRW5hYmxlZCAmJiAhaXNOZXdSb3cgJiYgIV9yb3c/LmZvcm0uZGlzYWJsZWQgJiYgIXF1ZXJ5RW5hYmxlZFwiXG4gICAgICAoY2xpY2spPVwic2hvd0RlbGV0ZURpYWxvZyA9IHRydWU7XCIgdGl0bGU9XCJ7eydlby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLmRlbGV0ZScgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdHJhc2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZUNvcHkoKVwiIGNsYXNzPVwic2Vjb1wiICpuZ0lmPVwiY29weUVuYWJsZWQgJiYgIWlzTmV3Um93ICYmICFfcm93Py5mb3JtLmRpc2FibGVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJsaW1pdFJlYWNoZWQgfHwgc2F2aW5nIHx8IGZvcm1TdGF0ZT8uaW52YWxpZFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLmNvcHk8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgY2xhc3M9XCJwcmltYXJ5XCIgKm5nSWY9XCJzYXZlRW5hYmxlZCAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiKGxpbWl0UmVhY2hlZCAmJiBpc05ld1JvdykgfHwgc2F2aW5nIHx8IGZvcm1TdGF0ZT8uaW52YWxpZCB8fCAoIWZvcm1TdGF0ZT8uZGlydHkgJiYgIWlzTmV3Um93KVwiPnt7XG4gICAgICAnZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5zYXZlJyArIChpc05ld1JvdyA/ICcubmV3JyA6ICcnKSB8IHRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgPCEtLSBxdWVyeSBidXR0b24gZm9yIFNFQVJDSCBzaXR1YXRpb24gLS0+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIGNsYXNzPVwicHJpbWFyeVwiICpuZ0lmPVwicXVlcnlFbmFibGVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtU3RhdGU/LmludmFsaWQgfHwgIWZvcm1TdGF0ZT8uaW5kZXhkYXRhQ2hhbmdlZFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLnNhdmU8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCIoJ2VvLmZvcm0udGFibGUub3B0aW9ucy5jb25maXJtLmRlbGV0ZScgfCB0cmFuc2xhdGUpXCIgWyh2aXNpYmxlKV09XCJzaG93RGVsZXRlRGlhbG9nXCJcbiAgW21pbldpZHRoXT1cIjQwMFwiPlxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMgZmxleC1yb3dcIiBzdHlsZT1cInBhZGRpbmc6IDhweDtcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWxcIiAoY2xpY2spPVwic2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlXCJcbiAgICAgIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNjb25maXJtRGVsZXRlIChjbGljayk9XCJkZWxldGUoKVwiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgdHJhbnNsYXRlPmVvLmZvcm0udGFibGUub3B0aW9ucy5idG4ub2s8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz4iXX0=
|
|
@@ -351,6 +351,15 @@ export class UserService {
|
|
|
351
351
|
this.refreshCurrentUser().subscribe();
|
|
352
352
|
}));
|
|
353
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Get all the field definitions of an object type
|
|
356
|
+
* @param type The object type
|
|
357
|
+
*/
|
|
358
|
+
getFieldDefinition(type) {
|
|
359
|
+
const contextType = 'sysfolder';
|
|
360
|
+
let mode = 'ALL';
|
|
361
|
+
return this.backend.get(`/user/config/result/${type}?contexttype=${contextType}&mode=${mode}`);
|
|
362
|
+
}
|
|
354
363
|
/**
|
|
355
364
|
* Save or change the visibility state of dashboard toolbar for the current user
|
|
356
365
|
* @param toolbarVisibility The visibility state
|
|
@@ -370,4 +379,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
370
379
|
providedIn: 'root'
|
|
371
380
|
}]
|
|
372
381
|
}], ctorParameters: function () { return [{ type: i1.BackendService }, { type: i2.TranslateService }, { type: i3.Logger }, { type: i4.EventService }, { type: i5.SystemService }, { type: i6.HttpClient }, { type: i7.Config }]; } });
|
|
373
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUkxRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQUloRDs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUF5Q3RCOztPQUVHO0lBQ0gsWUFBb0IsT0FBdUIsRUFDdkIsU0FBMkIsRUFDM0IsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLElBQWdCLEVBQ2hCLE1BQWM7UUFOZCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoRGxDLG1CQUFjLEdBQUcsa0ZBQWtGLENBQUM7UUFFNUYsU0FBSSxHQUFX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TyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzt3R0E5WVUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YXAsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDaGFuZ2VQYXNzd29yZEludGVyZmFjZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2NoYW5nZS1wYXNzd29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xuaW1wb3J0IHtFb1VzZXJ9IGZyb20gJy4uLy4uL21vZGVsL2VvLXVzZXIubW9kZWwnO1xuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlcic7XG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcbmltcG9ydCB7RW5haW9FdmVudH0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50cyc7XG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtEaXJlY3Rpb259IGZyb20gJy4uL2NvbmZpZy9jb25maWcuZW51bSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7V2lkZ2V0R3JpZFdvcmtzcGFjZUNvbmZpZ30gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5cbi8qKlxuICogQXBwbGljYXRpb25zIHVzZXIgc2VydmljZS5cbiAqIFRvIGdldCB0aGUgY3VycmVudCB1c2VyIHlvdSBoYXZlIHRvIHN1YnNjcmliZSB0byB0aGUgc2VydmljZXMgYHVzZXIkYCBvYnNlcnZhYmxlLlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIHVzZXJTZXJ2aWNlLnVzZXIkLnN1YnNjcmliZSgodXNlcikgPT4gdGhpcy51c2VyID0gdXNlcik7XG4gKiBgYGBcbiAqXG4gKiBUaGlzIHdheSB5b3VyIGNvbXBvbmVudCB3aWxsIGJlIHByb3ZpZGVkIHdpdGggYW4gdXAtdG8tZGF0ZSB1c2VyIG9iamVjdCBubyBtYXR0ZXJcbiAqIHdoaWNoIGNvbXBvbmVudCBjaGFuZ2VzIG9uIG9mIHRoZSB1c2VycyBwcm9wZXJ0aWVzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSB7XG5cbiAgVVNFUl9GRVRDSF9VUkkgPSAnL3VzZXI/ZmF2b3JpdGVzPXRydWUmcHJpdmlsZWdlcz10cnVlJnJvbGVzPXRydWUmZGVwdXRpZXM9dHJ1ZSZzdWJzdGl0dXRlc09mPXRydWUnO1xuXG4gIHByaXZhdGUgdXNlcjogRW9Vc2VyID0gbnVsbDtcbiAgcHJpdmF0ZSB1c2VyU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFb1VzZXI+KHRoaXMudXNlcik7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjdXJyZW50IHVzZXJcbiAgICovXG4gIHB1YmxpYyB1c2VyJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy51c2VyU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgZmF2b3JpdGVzID0gbnVsbDtcbiAgcHJpdmF0ZSBmYXZvcml0ZXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odGhpcy5mYXZvcml0ZXMpO1xuICAvKipcbiAgICogT2JzZXJ2YWJsZSBlbWl0dGluZyBjdXJyZW50IHVzZXJzIGZhdm9yaXRlc1xuICAgKi9cbiAgcHVibGljIGZhdm9yaXRlc0dyaWREYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5mYXZvcml0ZXNTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlsdGVyKHYgPT4gdikpO1xuICBwdWJsaWMgZmF2b3JpdGVzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5mYXZvcml0ZXNHcmlkRGF0YSQucGlwZSh0aGlzLmJhY2tlbmQuZ3JpZERhdGFGaWx0ZXIpO1xuXG4gIHByaXZhdGUgbm90aWZpY2F0aW9ucyA9IG51bGw7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLm5vdGlmaWNhdGlvbnMpO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgcmVjeWNsZWJpblxuICAgKi9cblxuICBwcml2YXRlIHJlY3ljbGVzID0gbnVsbDtcbiAgcHJpdmF0ZSByZWN5Y2xlc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLnJlY3ljbGVzKTtcblxuICBwdWJsaWMgcmVjeWNsZXNHcmlkRGF0YSQgOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnJlY3ljbGVzU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcih2ID0+IHYpKTtcbiAgcHVibGljIHJlY3ljbGVzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5yZWN5Y2xlc0dyaWREYXRhJC5waXBlKHRoaXMuYmFja2VuZC5ncmlkRGF0YUZpbHRlcik7XG5cblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBlbWl0dGluZyBjdXJyZW50IHVzZXJzIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHB1YmxpYyBub3RpZmljYXRpb25zR3JpZERhdGEkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlsdGVyKHYgPT4gdikpO1xuICBwdWJsaWMgbm90aWZpY2F0aW9ucyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMubm90aWZpY2F0aW9uc0dyaWREYXRhJC5waXBlKHRoaXMuYmFja2VuZC5ncmlkRGF0YUZpbHRlcik7XG5cbiAgcHVibGljIHBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzOiBhbnk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnKSB7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCB1c2VyLlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCB1c2VyIG9yIE5VTEwgaWYgbm8gdXNlciBpcyBsb2dnZWQgaW5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50VXNlcigpOiBFb1VzZXIge1xuICAgIHJldHVybiB0aGlzLnVzZXI7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBTZXQgcHJlc2VuY2Ugb2YgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gcHJlc2VudCBWYWx1ZSB0byBzZXQgdGhlIHVzZXJzIHByZXNlbmNlIHRvXG4gICAqL1xuICBwdWJsaWMgc2V0UHJlc2VuY2UocHJlc2VudDogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBpZiAocHJlc2VudCAhPT0gdGhpcy51c2VyLnByZXNlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlcj9wcmVzZW5jZT0nICsgcHJlc2VudClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKF8gPT4ge1xuICAgICAgICAgICAgdGhpcy51c2VyLnByZXNlbnQgPSBwcmVzZW50O1xuICAgICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHVyaVxuICAgKiBAcmV0dXJuc1xuICAgKi9cblxuICBwdWJsaWMgZGVsVXNlckltYWdlKHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmksIG51bGwpO1xuICB9XG5cbiAgcHVibGljIHNldFVzZXJJbWFnZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL3VzZXIvaW1hZ2VgLGZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRlcHV0aWVzIGZvciB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSBkZXB1dGllc05hbWVzIE5hbWVzIG9mIHRoZSB1c2VycyB0byBiZSBzZXQgYXMgZGVwdXRpZXNcbiAgICovXG4gIHB1YmxpYyBzZXREZXB1dGllcyhkZXB1dGllc05hbWVzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL2RlcHV0eT91c2VyPSR7ZGVwdXRpZXNOYW1lcy5qb2luKCcmdXNlcj0nKX1gKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIHVzZXJzIGNsaWVudCBsb2NhbGVcbiAgICogQHBhcmFtIGlzbyBJU08gbG9jYWxlIHN0cmluZyB0byBiZSBzZXQgYXMgbmV3IGNsaWVudCBsb2NhbGVcbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VDbGllbnRMb2NhbGUoaXNvOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzWydjbGllbnRsb2NhbGUnXSA9IGlzbztcbiAgICB0aGlzLmJhY2tlbmRcbiAgICAgIC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDaGFuZ2VkIGNsaWVudCBsb2NhbGUgdG8gXFwnJyArIGlzbyArICdcXCcnKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGlzbyk7XG4gICAgICAgIHRoaXMudXNlci51aURpcmVjdGlvbiA9ICh0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkuZmluZChsID0+IGwuaXNvID09PSBpc28pIHx8IHt9KS5kaXIgfHwgRGlyZWN0aW9uLkxUUjtcbiAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkNMSUVOVF9MT0NBTEVfQ0hBTkdFRCwgaXNvKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgdXNlcnMgc2NoZW1hIGxvY2FsZVxuICAgKiBAcGFyYW0gaXNvIElTTyBsb2NhbGUgc3RyaW5nIHRvIGJlIHNldCBhcyBuZXcgc2NoZW1hIGxvY2FsZVxuICAgKi9cbiAgcHVibGljIGNoYW5nZVNjaGVtYUxvY2FsZShpc286IHN0cmluZykge1xuICAgIHRoaXMudXNlci5zY2hlbWFMb2NhbGUgPSBpc287XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLnB1dCgnL3VzZXIvbG9jYWxlLycgKyB0aGlzLnVzZXIuc2NoZW1hTG9jYWxlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NoYW5nZWQgc2NoZW1hIGxvY2FsZSB0byBcXCcnICsgaXNvICsgJ1xcJycpO1xuICAgICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgICAgICAgdGhpcy5iYWNrZW5kLnNldEhlYWRlcignQWNjZXB0LUxhbmd1YWdlJywgdGhpcy51c2VyLmdldFNjaGVtYUxvY2FsZSgpKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTG9hZGluZyBzeXN0ZW0gZGVmaW5pdGlvbiBmb3IgbmV3IGxvY2FsZS4nKTtcbiAgICAgICAgICB0aGlzLnN5c3RlbS5nZXRTeXN0ZW1EZWZpbml0aW9uKHRoaXMudXNlcikuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LlNDSEVNQV9MT0NBTEVfQ0hBTkdFRCwgaXNvKTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIG5ldyBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIHJlcyBUaGUgdXNlciB0byBiZSBzZXQgYXMgY3VycmVudCB1c2VyXG4gICAqL1xuICBwdWJsaWMgc2V0Q3VycmVudFVzZXIocmVzOiBhbnkpIHtcbiAgICB0aGlzLnVzZXIgPSBuZXcgRW9Vc2VyKHJlcyk7XG4gICAgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncyA9IHJlcy5wYXNzd29ydHZhbGlkYXRpb247XG4gICAgdGhpcy51c2VyLnNldEltYWdlQmFzZSh0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSk7XG4gICAgdGhpcy5iYWNrZW5kLnNldEhlYWRlcignQWNjZXB0LUxhbmd1YWdlJywgdGhpcy51c2VyLmdldFNjaGVtYUxvY2FsZSgpKTtcblxuICAgIGNvbnN0IGxhbmd1YWdlcyA9IHRoaXMuY29uZmlnLmdldENsaWVudExvY2FsZXMoKS5tYXAobGFuZyA9PiBsYW5nLmlzbyk7XG4gICAgbGV0IHVzZXJMYW5nID0gdGhpcy51c2VyLmdldENsaWVudExvY2FsZSgpO1xuICAgIGlmIChsYW5ndWFnZXMuaW5kZXhPZih1c2VyTGFuZykgPT09IC0xKSB7XG4gICAgICB1c2VyTGFuZyA9IHRoaXMuY29uZmlnLmdldERlZmF1bHRDbGllbnRMb2NhbGUoKTtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ1NldHRpbmcgY2xpZW50IGxvY2FsZSB0byBcXCcnICsgdXNlckxhbmcgKyAnXFwnJyk7XG4gICAgdGhpcy50cmFuc2xhdGUudXNlKHVzZXJMYW5nKTtcbiAgICB0aGlzLnVzZXIudWlEaXJlY3Rpb24gPSAodGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLmZpbmQobCA9PiBsLmlzbyA9PT0gdXNlckxhbmcpIHx8IHt9KS5kaXIgfHwgRGlyZWN0aW9uLkxUUjtcblxuICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG5cbiAgICB0aGlzLmZhdm9yaXRlcyA9IG51bGw7XG4gICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG5cbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBudWxsO1xuICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgY3VycmVudCB1c2VycyBmYXZvcml0ZXNcbiAgICovXG4gIHB1YmxpYyBnZXRGYXZvcml0ZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIC8vIG9ubHkgZmF2b3JpdGUgb2JqZWN0cyBvZiB0eXBlICdETVNfT0JKRUNUJywgYXJlIGFjY2VwdGVkXG4gICAgLy8gcmVhZCBtb3JlOiBodHRwOi8vamlyYS5vcHRpbWFsLXN5c3RlbXMuZGUvYnJvd3NlL0NPT0wtMjMxNlxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXRKc29uKCcvdXNlci9mYXZvcml0ZXMnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4gcmVzICYmIHJlcy5maWx0ZXIociA9PiByLmZhdm9yaXRldHlwZSA9PT0gJ0RNU19PQkpFQ1QnKSksXG4gICAgICAgIHRhcChyZXMgPT4ge1xuICAgICAgICAgIHRoaXMuZmF2b3JpdGVzID0gcmVzO1xuICAgICAgICAgIHRoaXMuZmF2b3JpdGVzU291cmNlLm5leHQodGhpcy5mYXZvcml0ZXMpO1xuICAgICAgICB9KSk7XG5cbiAgICAvLyAubWFwKHJlcyA9PiB7XG4gICAgLy8gICBsZXQgZG1zT2JqZWN0ID0gdGhpcy5yZXNvbHZlT2JqZWN0VHlwZXMobmV3IERtc09iamVjdChyZXMpKTtcbiAgICAvLyAgIHJldHVybiBkbXNPYmplY3Q7XG4gICAgLy8gfSk7XG4gIH1cblxuICAvKipcbiAgICogU29mdCB1cGRhdGUgZm9yIHRoZSB1c2VycyBmYXZvcml0ZXNcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBmYXZvcml0ZSB0byBiZSB1cGRhdGVkXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBuZXcgZmF2b3JpdGUgaXRlbVxuICAgKiBAcGFyYW0gbXVsdGkgV2hldGhlciBvciBub3QgdG8gdXBkYXRlIG11bHRpcGxlIGl0ZW1zXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRmF2b3JpdGVzKGlkPzogc3RyaW5nLCBpdGVtPzogYW55LCBtdWx0aT86IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuYmFja2VuZC51cGRhdGUodGhpcy5mYXZvcml0ZXMsIG11bHRpIHx8IFt7aWQsIGl0ZW19XSkpIHtcbiAgICAgIHRoaXMuZmF2b3JpdGVzU291cmNlLm5leHQodGhpcy5mYXZvcml0ZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyBub3RpZmljYXRpb25zIChyZXN1Ym1pc3Npb25zIGFuZCBzdWJzY3JpcHRpb25zKVxuICAgKiBAcmV0dXJucyBSZXNvbHZlZCBieSBsaXN0IG9mIHRoZSB1c2VycyBub3RpZmljYXRpb25zXG4gICAqL1xuICBwdWJsaWMgZ2V0Tm90aWZpY2F0aW9ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbkRhdGEgPSBbXG4gICAgICB0aGlzLmdldFN1YnNjcmlwdGlvbigpLFxuICAgICAgdGhpcy5nZXRSZXN1Ym1pc3Npb24oKVxuICAgIF07XG4gICAgcmV0dXJuIGZvcmtKb2luKG5vdGlmaWNhdGlvbkRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVzZXJzIHJlc3VibWlzc2lvbnNcbiAgICogQHJldHVybnMgQ29sbGVjdGlvbiBvZiB1c2VycyByZXN1Ym1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzdWJtaXNzaW9uKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRKc29uKCcvbWVzc2FnZXByb3ZpZGVyL3Jlc3VibWlzc2lvbi9saXN0JykucGlwZShcbiAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IHJlc3BvbnNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVzZXJzIHN1YnNjcmlwdGlvbnNcbiAgICogQHJldHVybnMgQ29sbGVjdGlvbiBvZiB1c2VycyBzdWJzY3JpcHRpb25zXG4gICAqL1xuICBwdWJsaWMgZ2V0U3Vic2NyaXB0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oJy9tZXNzYWdlcHJvdmlkZXIvc3Vic2NyaXB0aW9uL2xpc3QnKS5waXBlKFxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IHJlc3BvbnNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgbm90aWZpY2F0aW9uIHRvIGJlIHJlbW92ZWRcbiAgICogQHBhcmFtIHR5cGUgVGhlIG5vdGlmaWNhdGlvbnMgdHlwZSAoJ1NVQlNDUklQVElPTicsICdSRVNVQk1JU1NJT04nKVxuICAgKi9cbiAgcHVibGljIHJlbW92ZU5vdGlmaWNhdGlvbnMoaWQ6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IG1lc3NhZ2V0eXBlOiBzdHJpbmc7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdTVUJTQ1JJUFRJT04nOlxuICAgICAgICBtZXNzYWdldHlwZSA9ICdzdWJzY3JpcHRpb24nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1JFU1VCTUlTU0lPTic6XG4gICAgICAgIG1lc3NhZ2V0eXBlID0gJ3Jlc3VibWlzc2lvbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbChgL21lc3NhZ2Vwcm92aWRlci8ke21lc3NhZ2V0eXBlfS9gICsgaWQpLnBpcGUodGFwKHJlcyA9PiB0aGlzLnVwZGF0ZU5vdGlmaWNhdGlvbnMoJycpKSk7XG4gIH1cblxuICAvKipcbiAgICogU29mdCB1cGRhdGUgZm9yIHVzZXJzIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVOb3RpZmljYXRpb25zKGlkPzogc3RyaW5nLCBpdGVtPzogYW55LCBtdWx0aT86IGFueVtdKSB7XG4gICAgaWYgKHRoaXMuYmFja2VuZC51cGRhdGUodGhpcy5ub3RpZmljYXRpb25zLCBtdWx0aSB8fCBbe2lkLCBpdGVtfV0pKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBVUkkgdG8gYSB1c2VycyBhdmF0YXIgaW1hZ2VcbiAgICogQHBhcmFtIHVzZXJJZCBUaGUgdXNlcnMgSURcbiAgICogQHJldHVybnMgVVJJIHRvIHRoZSB1c2VyIGltYWdlXG4gICAqL1xuICBwdWJsaWMgZ2V0VXNlckltYWdlVXJpKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFja2VuZC5nZXRCYXNlV2l0aENvbnRleHQodGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkpfS9vcmdhbml6YXRpb24vaW1hZ2UvJHt1c2VySWR9P3VzZWRlZmF1bHQ9dHJ1ZWA7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGZhdm9yaXRlIGl0ZW1cbiAgICogQHBhcmFtIGZhdm9yaXRlSWQgSUQgb2YgdGhlIGZhdm9yaXRlIGl0ZW0gdG8gYmUgcmVtb3ZlZFxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZhdm9yaXRlKGZhdm9yaXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKCcvdXNlci9mYXZvcml0ZS8nICsgZmF2b3JpdGVJZCkucGlwZSh0YXAocmVzID0+IHRoaXMudXBkYXRlRmF2b3JpdGVzKGZhdm9yaXRlSWQpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGZhdm9yaXRlIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBkbXMgb2JqZWN0IHRvIGJlIHNldCB1cCBhcyBmYXZvcml0ZVxuICAgKiBAcGFyYW0gdHlwZSBUaGUgb2JqZWN0IHR5cGUgb2YgdGhlIGRtcyBvYmplY3RcbiAgICogQHBhcmFtIHRpdGxlIFRoZSBmYXZvcml0ZXMgdGl0bGVcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVGYXZvcml0ZShpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmkgPSBVdGlscy5idWlsZFVyaSgnL2Rtcy9mYXZvcml0ZS8nICsgaWQsIHt0eXBlLCB0aXRsZX0pO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdCh1cmksIHt9KS5waXBlKHRhcChyZXMgPT4gdGhpcy5nZXRGYXZvcml0ZXMoKS5zdWJzY3JpYmUoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHB1YmxpYyByZW1vdmVGYXZvcml0ZXNGb3JUYXJnZXQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKCcvZG1zL2Zhdm9yaXRlLycgKyBpZCkucGlwZSh0YXAoXG4gICAgICByZXMgPT4ge1xuICAgICAgICBjb25zdCB0b1JlbW92ZSA9IHRoaXMuZmF2b3JpdGVzLmZpbHRlcihpID0+IGkudGFyZ2V0LmlkID09PSBpZCkubWFwKGkgPT4gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgaWQ6IGkuaWRcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZhdm9yaXRlcyhudWxsLCBudWxsLCB0b1JlbW92ZSk7XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgcmVjeWNsZWJpblxuICAqL1xuICBnZXRSZWN5Y2xlQmluKCk6IE9ic2VydmFibGU8YW55PiAge1xuICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEpzb24oYC91c2VyL3JlY3ljbGViaW5gKS5waXBlKFxuICAgICAgdGFwKHJlc3BvbnNlPT57XG4gICAgICAgIHRoaXMucmVjeWNsZXM9cmVzcG9uc2U7XG4gICAgICAgIHRoaXMucmVjeWNsZXNTb3VyY2UubmV4dCh0aGlzLnJlY3ljbGVzKTtcbiAgICAgIH0pKTtcbiAgIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgdXNlcnMgcHJlZmVycmVkIGxvY2sgbW9kZSBhbmQgcGVyc2lzdHMgaXQgb24gdGhlIHNlcnZlclxuICAgKiBAcGFyYW0gbG9jayBUaGUgdmFsdWUgdG8gc2V0IHRoZSBsb2NrIHNldHRpbmdzIHRvXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlTG9ja1NldHRpbmcobG9jazogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5ncy5hbHdheXNsb2NrID0gbG9jaztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpLnBpcGUobWFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGhhc1ByaXZpbGVnZShwcml2aWxlZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudXNlci5wcml2aWxlZ2VzLmZpbmQocHJpdiA9PiBwcml2Lm5hbWUgPT09IHByaXZpbGVnZSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSB1c2VycyBwYXNzd29yZCBhbmQgcGVyc2lzdHMgaXQgb24gdGhlIHNlcnZlclxuICAgKi9cbiAgY2hhbmdlUGFzc3dvcmQocGF5bG9hZDogQ2hhbmdlUGFzc3dvcmRJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9wYXNzd29yZGAsIHBheWxvYWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIHNldHRpbmdzIGZvciB0aGUgY3VycmVudCB1c2VyIGFuZCBzdG9yZXMgdGhlIG5ldyBVc2VyIG9iamVjdCBvbiB0aGUgc2Vzc2lvblxuICAgKi9cbiAgcHJpdmF0ZSByZWZyZXNoQ3VycmVudFVzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQodGhpcy5VU0VSX0ZFVENIX1VSSSkucGlwZShtYXAocmVzID0+IHRoaXMuc2V0Q3VycmVudFVzZXIocmVzKSkpO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlUGFzc3dvcmQocGFzc3dvcmQ6IHN0cmluZyk6IHt0eXBlOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyfSB7XG4gICAgaWYgKHBhc3N3b3JkLmxlbmd0aCA8IHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MubWlubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge3R5cGU6ICdzaG9ydCcsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5sZW5ndGh9O1xuICAgIH1cblxuICAgIGlmIChwYXNzd29yZC5yZXBsYWNlKC9bXjAtOV0vZywgJycpLmxlbmd0aCA8IHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MubWlubnVtYmVyKSB7XG4gICAgICByZXR1cm4ge3R5cGU6ICdudW1iZXInLCBhbW91bnQ6IHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MubWlubnVtYmVyfTtcbiAgICB9XG5cbiAgICBpZiAocGFzc3dvcmQucmVwbGFjZSgvW2EtekEtWjAtOcOfIF0vZywgJycpLmxlbmd0aCA8IHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MubWluc3BlY2lhbGNoYXJzKSB7XG4gICAgICByZXR1cm4ge3R5cGU6ICdzcGVjaWFsY2hhcnMnLCBhbW91bnQ6IHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MubWluc3BlY2lhbGNoYXJzfTtcbiAgICB9XG5cbiAgICByZXR1cm4gIHt0eXBlOiAndmFsaWQnLCBhbW91bnQ6IG51bGx9O1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHNhdmVkIGluYm94IGZpbHRlciB0ZXJtc1xuICAgKiBAcGFyYW0gZmlsdGVyVGVybXMgVGhlIHZhbHVlIHRvIHNldCB0aGUgc2F2ZWQgaW5ib3ggZmlsdGVycyBsaXN0IHRvXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlU2F2ZWRJbmJveEZpbHRlcnMoZmlsdGVyVGVybXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5ncy5zYXZlZEluYm94RmlsdGVyID0gZmlsdGVyVGVybXM7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIG9yIGNoYW5nZSB0aGUgd29ya3NwYWNlIG9mIHRoZSBjdXJyZW50IHVzZXIgXG4gICAqIEBwYXJhbSB3b3Jrc3BhY2VDb25maWcgVGhlIHZhbHVlIHRvIHNldCB0aGUgc2F2ZWQgd29ya3NwYWNlIG9yIGNyZWF0ZSBhIG5ldyB3b3Jrc3BhY2UgXG4gICAqL1xuICBwdWJsaWMgc2F2ZUNoYW5nZVdvcmtzcGFjZSh3b3Jrc3BhY2VDb25maWc6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMgPSB3b3Jrc3BhY2VDb25maWc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIG9yIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiBkYXNoYm9hcmQgdG9vbGJhciBmb3IgdGhlIGN1cnJlbnQgdXNlciBcbiAgICogQHBhcmFtIHRvb2xiYXJWaXNpYmlsaXR5IFRoZSB2aXNpYmlsaXR5IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgc2F2ZVRvb2xiYXJTdGF0ZSh0b29sYmFyVmlzaWJpbGl0eTogYm9vbGVhbikge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3MudG9vbGJhclZpc2liaWxpdHkgPSB0b29sYmFyVmlzaWJpbGl0eTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpLnBpcGUobWFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XG4gICAgfSkpO1xuICB9XG59XG4iXX0=
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQUloRDs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUF5Q3RCOztPQUVHO0lBQ0gsWUFBb0IsT0FBdUIsRUFDdkIsU0FBMkIsRUFDM0IsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLElBQWdCLEVBQ2hCLE1BQWM7UUFOZCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoRGxDLG1CQUFjLEdBQUcsa0ZBQWtGLENBQUM7UUFFNUYsU0FBSSxHQUFX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TyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSxnQkFBZ0IsV0FBVyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLGlCQUEwQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7O3dHQXpaVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRhcCwgZGVib3VuY2VUaW1lLCBmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NoYW5nZVBhc3N3b3JkSW50ZXJmYWNlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvY2hhbmdlLXBhc3N3b3JkLmludGVyZmFjZSc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQge0VvVXNlcn0gZnJvbSAnLi4vLi4vbW9kZWwvZW8tdXNlci5tb2RlbCc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyJztcbmltcG9ydCB7U3lzdGVtU2VydmljZX0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0RpcmVjdGlvbn0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5lbnVtJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnfSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcblxuLyoqXG4gKiBBcHBsaWNhdGlvbnMgdXNlciBzZXJ2aWNlLlxuICogVG8gZ2V0IHRoZSBjdXJyZW50IHVzZXIgeW91IGhhdmUgdG8gc3Vic2NyaWJlIHRvIHRoZSBzZXJ2aWNlcyBgdXNlciRgIG9ic2VydmFibGUuXG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogdXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyKSA9PiB0aGlzLnVzZXIgPSB1c2VyKTtcbiAqIGBgYFxuICpcbiAqIFRoaXMgd2F5IHlvdXIgY29tcG9uZW50IHdpbGwgYmUgcHJvdmlkZWQgd2l0aCBhbiB1cC10by1kYXRlIHVzZXIgb2JqZWN0IG5vIG1hdHRlclxuICogd2hpY2ggY29tcG9uZW50IGNoYW5nZXMgb24gb2YgdGhlIHVzZXJzIHByb3BlcnRpZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIHtcblxuICBVU0VSX0ZFVENIX1VSSSA9ICcvdXNlcj9mYXZvcml0ZXM9dHJ1ZSZwcml2aWxlZ2VzPXRydWUmcm9sZXM9dHJ1ZSZkZXB1dGllcz10cnVlJnN1YnN0aXR1dGVzT2Y9dHJ1ZSc7XG5cbiAgcHJpdmF0ZSB1c2VyOiBFb1VzZXIgPSBudWxsO1xuICBwcml2YXRlIHVzZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVvVXNlcj4odGhpcy51c2VyKTtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgcHVibGljIHVzZXIkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnVzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBmYXZvcml0ZXMgPSBudWxsO1xuICBwcml2YXRlIGZhdm9yaXRlc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLmZhdm9yaXRlcyk7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgZmF2b3JpdGVzXG4gICAqL1xuICBwdWJsaWMgZmF2b3JpdGVzR3JpZERhdGEkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZhdm9yaXRlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyBmYXZvcml0ZXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZhdm9yaXRlc0dyaWREYXRhJC5waXBlKHRoaXMuYmFja2VuZC5ncmlkRGF0YUZpbHRlcik7XG5cbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zID0gbnVsbDtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMubm90aWZpY2F0aW9ucyk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyByZWN5Y2xlYmluXG4gICAqL1xuXG4gIHByaXZhdGUgcmVjeWNsZXMgPSBudWxsO1xuICBwcml2YXRlIHJlY3ljbGVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMucmVjeWNsZXMpO1xuXG4gIHB1YmxpYyByZWN5Y2xlc0dyaWREYXRhJCA6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucmVjeWNsZXNTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlsdGVyKHYgPT4gdikpO1xuICBwdWJsaWMgcmVjeWNsZXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnJlY3ljbGVzR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIG5vdGlmaWNhdGlvbnNHcmlkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyBub3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5ub3RpZmljYXRpb25zR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuICBwdWJsaWMgcGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3M6IGFueTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHVzZXIgb3IgTlVMTCBpZiBubyB1c2VyIGlzIGxvZ2dlZCBpblxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRVc2VyKCk6IEVvVXNlciB7XG4gICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNldCBwcmVzZW5jZSBvZiB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSBwcmVzZW50IFZhbHVlIHRvIHNldCB0aGUgdXNlcnMgcHJlc2VuY2UgdG9cbiAgICovXG4gIHB1YmxpYyBzZXRQcmVzZW5jZShwcmVzZW50OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGlmIChwcmVzZW50ICE9PSB0aGlzLnVzZXIucHJlc2VudCkge1xuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyP3ByZXNlbmNlPScgKyBwcmVzZW50KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoXyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIucHJlc2VudCA9IHByZXNlbnQ7XG4gICAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdXJpXG4gICAqIEByZXR1cm5zXG4gICAqL1xuXG4gIHB1YmxpYyBkZWxVc2VySW1hZ2UodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVyaSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VXNlckltYWdlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9pbWFnZWAsZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVwdXRpZXMgZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIGRlcHV0aWVzTmFtZXMgTmFtZXMgb2YgdGhlIHVzZXJzIHRvIGJlIHNldCBhcyBkZXB1dGllc1xuICAgKi9cbiAgcHVibGljIHNldERlcHV0aWVzKGRlcHV0aWVzTmFtZXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL3VzZXIvZGVwdXR5P3VzZXI9JHtkZXB1dGllc05hbWVzLmpvaW4oJyZ1c2VyPScpfWApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgdXNlcnMgY2xpZW50IGxvY2FsZVxuICAgKiBAcGFyYW0gaXNvIElTTyBsb2NhbGUgc3RyaW5nIHRvIGJlIHNldCBhcyBuZXcgY2xpZW50IGxvY2FsZVxuICAgKi9cbiAgcHVibGljIGNoYW5nZUNsaWVudExvY2FsZShpc286IHN0cmluZykge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3NbJ2NsaWVudGxvY2FsZSddID0gaXNvO1xuICAgIHRoaXMuYmFja2VuZFxuICAgICAgLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NoYW5nZWQgY2xpZW50IGxvY2FsZSB0byBcXCcnICsgaXNvICsgJ1xcJycpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UoaXNvKTtcbiAgICAgICAgdGhpcy51c2VyLnVpRGlyZWN0aW9uID0gKHRoaXMuY29uZmlnLmdldENsaWVudExvY2FsZXMoKS5maW5kKGwgPT4gbC5pc28gPT09IGlzbykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xuICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuQ0xJRU5UX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSB1c2VycyBzY2hlbWEgbG9jYWxlXG4gICAqIEBwYXJhbSBpc28gSVNPIGxvY2FsZSBzdHJpbmcgdG8gYmUgc2V0IGFzIG5ldyBzY2hlbWEgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlU2NoZW1hTG9jYWxlKGlzbzogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VyLnNjaGVtYUxvY2FsZSA9IGlzbztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KCcvdXNlci9sb2NhbGUvJyArIHRoaXMudXNlci5zY2hlbWFMb2NhbGUpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hhbmdlZCBzY2hlbWEgbG9jYWxlIHRvIFxcJycgKyBpc28gKyAnXFwnJyk7XG4gICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkaW5nIHN5c3RlbSBkZWZpbml0aW9uIGZvciBuZXcgbG9jYWxlLicpO1xuICAgICAgICAgIHRoaXMuc3lzdGVtLmdldFN5c3RlbURlZmluaXRpb24odGhpcy51c2VyKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuU0NIRU1BX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xuICAgICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgbmV3IGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gcmVzIFRoZSB1c2VyIHRvIGJlIHNldCBhcyBjdXJyZW50IHVzZXJcbiAgICovXG4gIHB1YmxpYyBzZXRDdXJyZW50VXNlcihyZXM6IGFueSkge1xuICAgIHRoaXMudXNlciA9IG5ldyBFb1VzZXIocmVzKTtcbiAgICB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzID0gcmVzLnBhc3N3b3J0dmFsaWRhdGlvbjtcbiAgICB0aGlzLnVzZXIuc2V0SW1hZ2VCYXNlKHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKTtcbiAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xuXG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gdGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLm1hcChsYW5nID0+IGxhbmcuaXNvKTtcbiAgICBsZXQgdXNlckxhbmcgPSB0aGlzLnVzZXIuZ2V0Q2xpZW50TG9jYWxlKCk7XG4gICAgaWYgKGxhbmd1YWdlcy5pbmRleE9mKHVzZXJMYW5nKSA9PT0gLTEpIHtcbiAgICAgIHVzZXJMYW5nID0gdGhpcy5jb25maWcuZ2V0RGVmYXVsdENsaWVudExvY2FsZSgpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0dGluZyBjbGllbnQgbG9jYWxlIHRvIFxcJycgKyB1c2VyTGFuZyArICdcXCcnKTtcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UodXNlckxhbmcpO1xuICAgIHRoaXMudXNlci51aURpcmVjdGlvbiA9ICh0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkuZmluZChsID0+IGwuaXNvID09PSB1c2VyTGFuZykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xuXG4gICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcblxuICAgIHRoaXMuZmF2b3JpdGVzID0gbnVsbDtcbiAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcblxuICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IG51bGw7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBjdXJyZW50IHVzZXJzIGZhdm9yaXRlc1xuICAgKi9cbiAgcHVibGljIGdldEZhdm9yaXRlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgLy8gb25seSBmYXZvcml0ZSBvYmplY3RzIG9mIHR5cGUgJ0RNU19PQkpFQ1QnLCBhcmUgYWNjZXB0ZWRcbiAgICAvLyByZWFkIG1vcmU6IGh0dHA6Ly9qaXJhLm9wdGltYWwtc3lzdGVtcy5kZS9icm93c2UvQ09PTC0yMzE2XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oJy91c2VyL2Zhdm9yaXRlcycpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiByZXMgJiYgcmVzLmZpbHRlcihyID0+IHIuZmF2b3JpdGV0eXBlID09PSAnRE1TX09CSkVDVCcpKSxcbiAgICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXMgPSByZXM7XG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG4gICAgICAgIH0pKTtcblxuICAgIC8vIC5tYXAocmVzID0+IHtcbiAgICAvLyAgIGxldCBkbXNPYmplY3QgPSB0aGlzLnJlc29sdmVPYmplY3RUeXBlcyhuZXcgRG1zT2JqZWN0KHJlcykpO1xuICAgIC8vICAgcmV0dXJuIGRtc09iamVjdDtcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgdGhlIHVzZXJzIGZhdm9yaXRlc1xuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGZhdm9yaXRlIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIGl0ZW0gVGhlIG5ldyBmYXZvcml0ZSBpdGVtXG4gICAqIEBwYXJhbSBtdWx0aSBXaGV0aGVyIG9yIG5vdCB0byB1cGRhdGUgbXVsdGlwbGUgaXRlbXNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVGYXZvcml0ZXMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcbiAgICBpZiAodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLmZhdm9yaXRlcywgbXVsdGkgfHwgW3tpZCwgaXRlbX1dKSkge1xuICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnMgKHJlc3VibWlzc2lvbnMgYW5kIHN1YnNjcmlwdGlvbnMpXG4gICAqIEByZXR1cm5zIFJlc29sdmVkIGJ5IGxpc3Qgb2YgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXROb3RpZmljYXRpb25zKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uRGF0YSA9IFtcbiAgICAgIHRoaXMuZ2V0U3Vic2NyaXB0aW9uKCksXG4gICAgICB0aGlzLmdldFJlc3VibWlzc2lvbigpXG4gICAgXTtcbiAgICByZXR1cm4gZm9ya0pvaW4obm90aWZpY2F0aW9uRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgcmVzdWJtaXNzaW9uc1xuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHJlc3VibWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBnZXRSZXN1Ym1pc3Npb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEpzb24oJy9tZXNzYWdlcHJvdmlkZXIvcmVzdWJtaXNzaW9uL2xpc3QnKS5waXBlKFxuICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgc3Vic2NyaXB0aW9uc1xuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHN1YnNjcmlwdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXRTdWJzY3JpcHRpb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL21lc3NhZ2Vwcm92aWRlci9zdWJzY3JpcHRpb24vbGlzdCcpLnBpcGUoXG4gICAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gdHlwZSBUaGUgbm90aWZpY2F0aW9ucyB0eXBlICgnU1VCU0NSSVBUSU9OJywgJ1JFU1VCTUlTU0lPTicpXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlTm90aWZpY2F0aW9ucyhpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgbWVzc2FnZXR5cGU6IHN0cmluZztcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ1NVQlNDUklQVElPTic6XG4gICAgICAgIG1lc3NhZ2V0eXBlID0gJ3N1YnNjcmlwdGlvbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUkVTVUJNSVNTSU9OJzpcbiAgICAgICAgbWVzc2FnZXR5cGUgPSAncmVzdWJtaXNzaW9uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKGAvbWVzc2FnZXByb3ZpZGVyLyR7bWVzc2FnZXR5cGV9L2AgKyBpZCkucGlwZSh0YXAocmVzID0+IHRoaXMudXBkYXRlTm90aWZpY2F0aW9ucygnJykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZU5vdGlmaWNhdGlvbnMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcbiAgICBpZiAodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLm5vdGlmaWNhdGlvbnMsIG11bHRpIHx8IFt7aWQsIGl0ZW19XSkpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIFVSSSB0byBhIHVzZXJzIGF2YXRhciBpbWFnZVxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VycyBJRFxuICAgKiBAcmV0dXJucyBVUkkgdG8gdGhlIHVzZXIgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBnZXRVc2VySW1hZ2VVcmkodXNlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYWNrZW5kLmdldEJhc2VXaXRoQ29udGV4dCh0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSl9L29yZ2FuaXphdGlvbi9pbWFnZS8ke3VzZXJJZH0/dXNlZGVmYXVsdD10cnVlYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgZmF2b3JpdGUgaXRlbVxuICAgKiBAcGFyYW0gZmF2b3JpdGVJZCBJRCBvZiB0aGUgZmF2b3JpdGUgaXRlbSB0byBiZSByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmF2b3JpdGUoZmF2b3JpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy91c2VyL2Zhdm9yaXRlLycgKyBmYXZvcml0ZUlkKS5waXBlKHRhcChyZXMgPT4gdGhpcy51cGRhdGVGYXZvcml0ZXMoZmF2b3JpdGVJZCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgZmF2b3JpdGUgaXRlbSBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGRtcyBvYmplY3QgdG8gYmUgc2V0IHVwIGFzIGZhdm9yaXRlXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBvYmplY3QgdHlwZSBvZiB0aGUgZG1zIG9iamVjdFxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIGZhdm9yaXRlcyB0aXRsZVxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUZhdm9yaXRlKGlkOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgdGl0bGU6IHN0cmluZykge1xuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKCcvZG1zL2Zhdm9yaXRlLycgKyBpZCwge3R5cGUsIHRpdGxlfSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KHVyaSwge30pLnBpcGUodGFwKHJlcyA9PiB0aGlzLmdldEZhdm9yaXRlcygpLnN1YnNjcmliZSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZhdm9yaXRlc0ZvclRhcmdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy9kbXMvZmF2b3JpdGUvJyArIGlkKS5waXBlKHRhcChcbiAgICAgIHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IHRvUmVtb3ZlID0gdGhpcy5mYXZvcml0ZXMuZmlsdGVyKGkgPT4gaS50YXJnZXQuaWQgPT09IGlkKS5tYXAoaSA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICBpZDogaS5pZFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMudXBkYXRlRmF2b3JpdGVzKG51bGwsIG51bGwsIHRvUmVtb3ZlKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyByZWN5Y2xlYmluXG4gICovXG4gIGdldFJlY3ljbGVCaW4oKTogT2JzZXJ2YWJsZTxhbnk+ICB7XG4gICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL3VzZXIvcmVjeWNsZWJpbmApLnBpcGUoXG4gICAgICB0YXAocmVzcG9uc2U9PntcbiAgICAgICAgdGhpcy5yZWN5Y2xlcz1yZXNwb25zZTtcbiAgICAgICAgdGhpcy5yZWN5Y2xlc1NvdXJjZS5uZXh0KHRoaXMucmVjeWNsZXMpO1xuICAgICAgfSkpO1xuICAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSB1c2VycyBwcmVmZXJyZWQgbG9jayBtb2RlIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXG4gICAqIEBwYXJhbSBsb2NrIFRoZSB2YWx1ZSB0byBzZXQgdGhlIGxvY2sgc2V0dGluZ3MgdG9cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VMb2NrU2V0dGluZyhsb2NrOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLmFsd2F5c2xvY2sgPSBsb2NrO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaGFzUHJpdmlsZWdlKHByaXZpbGVnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy51c2VyLnByaXZpbGVnZXMuZmluZChwcml2ID0+IHByaXYubmFtZSA9PT0gcHJpdmlsZWdlKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHBhc3N3b3JkIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXG4gICAqL1xuICBjaGFuZ2VQYXNzd29yZChwYXlsb2FkOiBDaGFuZ2VQYXNzd29yZEludGVyZmFjZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL3Bhc3N3b3JkYCwgcGF5bG9hZCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc2V0dGluZ3MgZm9yIHRoZSBjdXJyZW50IHVzZXIgYW5kIHN0b3JlcyB0aGUgbmV3IFVzZXIgb2JqZWN0IG9uIHRoZSBzZXNzaW9uXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hDdXJyZW50VXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCh0aGlzLlVTRVJfRkVUQ0hfVVJJKS5waXBlKG1hcChyZXMgPT4gdGhpcy5zZXRDdXJyZW50VXNlcihyZXMpKSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKToge3R5cGU6IHN0cmluZywgYW1vdW50OiBudW1iZXJ9IHtcbiAgICBpZiAocGFzc3dvcmQubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ3Nob3J0JywgYW1vdW50OiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbmxlbmd0aH07XG4gICAgfVxuXG4gICAgaWYgKHBhc3N3b3JkLnJlcGxhY2UoL1teMC05XS9nLCAnJykubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5udW1iZXIpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ251bWJlcicsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5udW1iZXJ9O1xuICAgIH1cblxuICAgIGlmIChwYXNzd29yZC5yZXBsYWNlKC9bYS16QS1aMC05w58gXS9nLCAnJykubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5zcGVjaWFsY2hhcnMpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ3NwZWNpYWxjaGFycycsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5zcGVjaWFsY2hhcnN9O1xuICAgIH1cblxuICAgIHJldHVybiAge3R5cGU6ICd2YWxpZCcsIGFtb3VudDogbnVsbH07XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgdXNlcnMgc2F2ZWQgaW5ib3ggZmlsdGVyIHRlcm1zXG4gICAqIEBwYXJhbSBmaWx0ZXJUZXJtcyBUaGUgdmFsdWUgdG8gc2V0IHRoZSBzYXZlZCBpbmJveCBmaWx0ZXJzIGxpc3QgdG9cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VTYXZlZEluYm94RmlsdGVycyhmaWx0ZXJUZXJtczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLnNhdmVkSW5ib3hGaWx0ZXIgPSBmaWx0ZXJUZXJtcztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpLnBpcGUobWFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgb3IgY2hhbmdlIHRoZSB3b3Jrc3BhY2Ugb2YgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gd29ya3NwYWNlQ29uZmlnIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHNhdmVkIHdvcmtzcGFjZSBvciBjcmVhdGUgYSBuZXcgd29ya3NwYWNlXG4gICAqL1xuICBwdWJsaWMgc2F2ZUNoYW5nZVdvcmtzcGFjZSh3b3Jrc3BhY2VDb25maWc6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMgPSB3b3Jrc3BhY2VDb25maWc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHRoZSBmaWVsZCBkZWZpbml0aW9ucyBvZiBhbiBvYmplY3QgdHlwZVxuICAgKiBAcGFyYW0gdHlwZSBUaGUgb2JqZWN0IHR5cGVcbiAgICovXG5cbiAgcHVibGljIGdldEZpZWxkRGVmaW5pdGlvbih0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZXh0VHlwZSA9ICdzeXNmb2xkZXInO1xuICAgIGxldCBtb2RlID0gJ0FMTCc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoYC91c2VyL2NvbmZpZy9yZXN1bHQvJHt0eXBlfT9jb250ZXh0dHlwZT0ke2NvbnRleHRUeXBlfSZtb2RlPSR7bW9kZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIG9yIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiBkYXNoYm9hcmQgdG9vbGJhciBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gdG9vbGJhclZpc2liaWxpdHkgVGhlIHZpc2liaWxpdHkgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBzYXZlVG9vbGJhclN0YXRlKHRvb2xiYXJWaXNpYmlsaXR5OiBib29sZWFuKSB7XG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5ncy50b29sYmFyVmlzaWJpbGl0eSA9IHRvb2xiYXJWaXNpYmlsaXR5O1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3202,6 +3202,15 @@ class UserService {
|
|
|
3202
3202
|
this.refreshCurrentUser().subscribe();
|
|
3203
3203
|
}));
|
|
3204
3204
|
}
|
|
3205
|
+
/**
|
|
3206
|
+
* Get all the field definitions of an object type
|
|
3207
|
+
* @param type The object type
|
|
3208
|
+
*/
|
|
3209
|
+
getFieldDefinition(type) {
|
|
3210
|
+
const contextType = 'sysfolder';
|
|
3211
|
+
let mode = 'ALL';
|
|
3212
|
+
return this.backend.get(`/user/config/result/${type}?contexttype=${contextType}&mode=${mode}`);
|
|
3213
|
+
}
|
|
3205
3214
|
/**
|
|
3206
3215
|
* Save or change the visibility state of dashboard toolbar for the current user
|
|
3207
3216
|
* @param toolbarVisibility The visibility state
|