@mediusinc/mng-commons 3.2.0-rc.0 → 3.3.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/esm2022/lib/components/action/action.component.mjs +5 -5
  2. package/esm2022/lib/components/action/editor/action-editor.component.mjs +3 -3
  3. package/esm2022/lib/components/action/localization/data-language-dropdown.component.mjs +3 -3
  4. package/esm2022/lib/components/action/route/action-route.component.mjs +3 -3
  5. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +3 -3
  6. package/esm2022/lib/components/form/date-range/date-range.component.mjs +3 -3
  7. package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +3 -3
  8. package/esm2022/lib/components/form/editor/form-editor.component.mjs +5 -5
  9. package/esm2022/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +3 -3
  10. package/esm2022/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +3 -3
  11. package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.mjs +3 -3
  12. package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
  13. package/esm2022/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
  14. package/esm2022/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
  15. package/esm2022/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
  16. package/esm2022/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
  17. package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +5 -5
  18. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +3 -3
  19. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +5 -5
  20. package/esm2022/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
  21. package/esm2022/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +3 -3
  22. package/esm2022/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +3 -3
  23. package/esm2022/lib/components/layout/breadcrumb.component.mjs +3 -3
  24. package/esm2022/lib/components/layout/footer.component.mjs +3 -3
  25. package/esm2022/lib/components/layout/main-layout.component.mjs +3 -3
  26. package/esm2022/lib/components/layout/menu-item.component.mjs +3 -3
  27. package/esm2022/lib/components/layout/menu.component.mjs +3 -3
  28. package/esm2022/lib/components/layout/services/main-layout.component.service.mjs +3 -3
  29. package/esm2022/lib/components/layout/topbar-user.component.mjs +3 -3
  30. package/esm2022/lib/components/layout/topbar.component.mjs +3 -3
  31. package/esm2022/lib/components/layout/version.component.mjs +3 -3
  32. package/esm2022/lib/components/pages/error/error-page.component.mjs +3 -3
  33. package/esm2022/lib/components/pages/not-found/not-found-page.component.mjs +3 -3
  34. package/esm2022/lib/components/tableview/route/tableview-route.abstract.component.mjs +3 -3
  35. package/esm2022/lib/components/tableview/route/tableview-route.component.mjs +3 -3
  36. package/esm2022/lib/components/tableview/table/column-filter/column-filter.component.mjs +3 -3
  37. package/esm2022/lib/components/tableview/table/column-value/column-value.component.mjs +3 -3
  38. package/esm2022/lib/components/tableview/table/table.component.mjs +4 -4
  39. package/esm2022/lib/components/tableview/tableview.component.mjs +4 -4
  40. package/esm2022/lib/directives/component.directive.mjs +3 -3
  41. package/esm2022/lib/directives/template.directive.mjs +3 -3
  42. package/esm2022/lib/mng-commons.module.mjs +4 -4
  43. package/esm2022/lib/pipes/boolean.pipe.mjs +3 -3
  44. package/esm2022/lib/pipes/class-map.pipe.mjs +3 -3
  45. package/esm2022/lib/pipes/enum.pipe.mjs +3 -3
  46. package/esm2022/lib/pipes/enumerate-async.pipe.mjs +3 -3
  47. package/esm2022/lib/pipes/enumerate.pipe.mjs +3 -3
  48. package/esm2022/lib/pipes/getter.pipe.mjs +3 -3
  49. package/esm2022/lib/pipes/i18n-property.pipe.mjs +3 -3
  50. package/esm2022/lib/pipes/json-path.pipe.mjs +3 -3
  51. package/esm2022/lib/pipes/locale-default-row-class.pipe.mjs +3 -3
  52. package/esm2022/lib/pipes/parametrize.pipe.mjs +3 -3
  53. package/esm2022/lib/pipes/template.pipe.mjs +3 -3
  54. package/esm2022/lib/security/authorization.service.mjs +3 -3
  55. package/esm2022/lib/services/action-executor.service.mjs +3 -3
  56. package/esm2022/lib/services/commons.service.mjs +3 -3
  57. package/esm2022/lib/services/internal/commons-init.service.mjs +3 -3
  58. package/esm2022/lib/services/mng-localstorage-config.service.mjs +3 -3
  59. package/esm2022/lib/services/navigation.service.mjs +3 -3
  60. package/esm2022/lib/services/router.service.mjs +13 -8
  61. package/esm2022/lib/services/version.service.mjs +3 -3
  62. package/esm2022/lib/services/view-container.component.service.mjs +3 -3
  63. package/fesm2022/mediusinc-mng-commons.mjs +200 -195
  64. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  65. package/package.json +1 -1
@@ -46,11 +46,16 @@ export class MngRouterService {
46
46
  this.currentNavigationPath = undefined;
47
47
  }
48
48
  markNavigationConfigLoad(route, isEnd = false) {
49
- let routePath = route.path ?? '';
50
- if (!routePath.startsWith('/'))
51
- routePath = `/${routePath}`;
49
+ const routePath = route.path ?? '';
50
+ let moduleKey = routePath;
52
51
  const currentNavigationPathRoutePathIdx = this.currentNavigationPath?.indexOf(routePath) ?? -1;
53
- const moduleKey = this.currentNavigationPath?.substring(0, currentNavigationPathRoutePathIdx + routePath.length) ?? routePath;
52
+ if (this.currentNavigationPath && currentNavigationPathRoutePathIdx >= 0) {
53
+ moduleKey = this.currentNavigationPath.substring(0, currentNavigationPathRoutePathIdx + routePath.length);
54
+ }
55
+ else if (this.currentNavigationPath && routePath !== this.currentNavigationPath && !routePath.startsWith('/')) {
56
+ // usually means that redirect to currentNavigationPath was done, additionally, route path was also triggered on lazy routes load
57
+ moduleKey = `${this.currentNavigationPath}/${routePath}`;
58
+ }
54
59
  if (!isEnd && this.currentNavigationModuleKeys.indexOf(moduleKey) < 0) {
55
60
  this.currentNavigationModuleKeys.push(moduleKey);
56
61
  }
@@ -166,13 +171,13 @@ export class MngRouterService {
166
171
  getModulePathFromRouterLink(path) {
167
172
  return ('/' + (Array.isArray(path) ? path.join('/') : path)).replace(/\/\//g, '/');
168
173
  }
169
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngRouterService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
170
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngRouterService, providedIn: 'root' }); }
174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngRouterService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
175
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngRouterService, providedIn: 'root' }); }
171
176
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngRouterService, decorators: [{
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngRouterService, decorators: [{
173
178
  type: Injectable,
174
179
  args: [{
175
180
  providedIn: 'root'
176
181
  }]
177
182
  }], ctorParameters: function () { return [{ type: i1.Router }]; } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBUyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUVuSyxPQUFPLEVBQWEsYUFBYSxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBS2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFnQnpCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZmpCLFdBQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3RCx3QkFBbUIsR0FBRyxlQUFlLENBQUM7UUFHL0MsZ0NBQTJCLEdBQWEsRUFBRSxDQUFDO1FBRTNDLDJCQUFzQixHQU8xQixFQUFFLENBQUM7SUFFOEIsQ0FBQztJQUUvQixzQkFBc0IsQ0FBQyxJQUE0QjtRQUN0RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDL0YsQ0FBQztJQUVNLHVCQUF1QixDQUFDLElBQTRCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFB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LENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQy9DO2FBQ0o7WUFFRCxzQkFBc0I7WUFDdEIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ25DO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFNBQWlCO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxHQUFHO2dCQUNyQyxtQkFBbUIsRUFBRSxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUM7Z0JBQ2pELFNBQVMsRUFBRSxLQUFLO2FBQ25CLENBQUM7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTywyQkFBMkIsQ0FBQyxJQUE0QjtRQUM1RCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7OEdBOUxRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTs7MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlLCBSb3V0ZUNvbmZpZ0xvYWRFbmQsIFJvdXRlQ29uZmlnTG9hZFN0YXJ0LCBSb3V0ZXIsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3R9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtNbmdMb2dnZXJTZXJ2aWNlfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNbmdSb3V0ZXJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChNbmdMb2dnZXJTZXJ2aWNlKS5jcmVhdGUoJ01uZ1JvdXRlclNlcnZpY2UnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlc0xvYWRlZFByb3BLZXkgPSAnX2xvYWRlZFJvdXRlcyc7XG5cbiAgICBwcml2YXRlIGN1cnJlbnROYXZpZ2F0aW9uUGF0aD86IHN0cmluZztcbiAgICBwcml2YXRlIGN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5czogc3RyaW5nW10gPSBbXTtcblxuICAgIHByaXZhdGUgbGF6eUxvYWRlZFJvdXRlc0NvbmZpZzoge1xuICAgICAgICBbcGF0aDogc3RyaW5nXToge1xuICAgICAgICAgICAgcm91dGU/OiBSb3V0ZTtcbiAgICAgICAgICAgIGlzTG9hZEVuZDogYm9vbGVhbjtcbiAgICAgICAgICAgIGxvYWRlZFJvdXRlcz86IFJvdXRlcztcbiAgICAgICAgICAgIGxvYWRlZFJvdXRlc1N1YmplY3Q6IFN1YmplY3Q8Um91dGVzPjtcbiAgICAgICAgfTtcbiAgICB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxuXG4gICAgcHVibGljIGdldFJvdXRlTG9hZGVkQ2hpbGRyZW4ocGF0aDogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPik6IFJvdXRlcyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE9yQ3JlYXRlUm91dGVGb3JNb2R1bGUodGhpcy5nZXRNb2R1bGVQYXRoRnJvbVJvdXRlckxpbmsocGF0aCkpLmxvYWRlZFJvdXRlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Um91dGVMb2FkZWRDaGlsZHJlbiQocGF0aDogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8Um91dGVzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE9yQ3JlYXRlUm91dGVGb3JNb2R1bGUodGhpcy5nZXRNb2R1bGVQYXRoRnJvbVJvdXRlckxpbmsocGF0aCkpLmxvYWRlZFJvdXRlc1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShmaXJzdCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0TmF2aWdhdGlvbihldmVudC51cmwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJvdXRlQ29uZmlnTG9hZFN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrTmF2aWdhdGlvbkNvbmZpZ0xvYWQoZXZlbnQucm91dGUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJvdXRlQ29uZmlnTG9hZEVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWFya05hdmlnYXRpb25Db25maWdMb2FkKGV2ZW50LnJvdXRlLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0TmF2aWdhdGlvbih1cmw6IHN0cmluZykge1xuICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCA9IHVybC5zcGxpdCgnPycpWzBdLnNwbGl0KCcjJylbMF07XG4gICAgICAgIHRoaXMuY3VycmVudE5hdmlnYXRpb25Nb2R1bGVLZXlzID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5pc2hOYXZpZ2F0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5mb3JFYWNoKGsgPT4gdGhpcy5nZXRMb2FkZWRSb3V0ZXNGcm9tUm91dGUoaywgdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFya05hdmlnYXRpb25Db25maWdMb2FkKHJvdXRlOiBSb3V0ZSwgaXNFbmQgPSBmYWxzZSkge1xuICAgICAgICBsZXQgcm91dGVQYXRoID0gcm91dGUucGF0aCA/PyAnJztcbiAgICAgICAgaWYgKCFyb3V0ZVBhdGguc3RhcnRzV2l0aCgnLycpKSByb3V0ZVBhdGggPSBgLyR7cm91dGVQYXRofWA7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE5hdmlnYXRpb25QYXRoUm91dGVQYXRoSWR4ID0gdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGg/LmluZGV4T2Yocm91dGVQYXRoKSA/PyAtMTtcbiAgICAgICAgY29uc3QgbW9kdWxlS2V5ID0gdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGg/LnN1YnN0cmluZygwLCBjdXJyZW50TmF2aWdhdGlvblBhdGhSb3V0ZVBhdGhJZHggKyByb3V0ZVBhdGgubGVuZ3RoKSA/PyByb3V0ZVBhdGg7XG4gICAgICAgIGlmICghaXNFbmQgJiYgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMuaW5kZXhPZihtb2R1bGVLZXkpIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMucHVzaChtb2R1bGVLZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYENvbmZpZyBsb2FkICR7aXNFbmQgPyAnZW5kJyA6ICdzdGFydCd9IGZvciAke21vZHVsZUtleX0gKHJvdXRlUGF0aDogJHtyb3V0ZVBhdGh9OyBuYXZpZ2F0aW9uVXJsOiAke3RoaXMuY3VycmVudE5hdmlnYXRpb25QYXRofSlgKTtcblxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldE9yQ3JlYXRlUm91dGVGb3JNb2R1bGUobW9kdWxlS2V5KTtcbiAgICAgICAgY29uZmlnLnJvdXRlID0gcm91dGU7XG4gICAgICAgIGNvbmZpZy5pc0xvYWRFbmQgPSBpc0VuZDtcblxuICAgICAgICBpZiAoaXNFbmQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKG1vZHVsZUtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvYWRlZFJvdXRlc0Zyb21Sb3V0ZShtb2R1bGVLZXk6IHN0cmluZywgaXNGaW5pc2ggPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBtb2R1bGVDb25maWcgPSB0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XTtcbiAgICAgICAgaWYgKCFtb2R1bGVDb25maWc/LnJvdXRlIHx8IEFycmF5LmlzQXJyYXkobW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgPSBtb2R1bGVDb25maWcucm91dGUhW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdO1xuXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShtb2R1bGVDb25maWcubG9hZGVkUm91dGVzKSAmJiBpc0ZpbmlzaCkge1xuICAgICAgICAgICAgLy8gaWYgaXMgY2FsbGVkIGZyb20gZmluaXNoIGFuZCBubyBsYXp5IGxvYWRlZCByb3V0ZXMgYXJlIG1hdGNoZWQgZnJvbSByb3V0ZXIgZXZlbnRzLCB0cnkgZmluZGluZyBpbiByb3V0ZSBjb25maWcsIGl0IHNob3VsZCBiZSB0aGVyZSFcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBSb3V0ZSBsb2FkZWRSb3V0ZXMgZm9yICR7bW9kdWxlS2V5fSBub3QgZm91bmQsIHNlYXJjaGluZyBpbiByb3V0ZXIgY29uZmlnIG5vd2ApO1xuICAgICAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlS2V5KTtcbiAgICAgICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgPSBtb2R1bGVDb25maWcucm91dGUhW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBSb3V0ZSBsb2FkZWRSb3V0ZXMgZm9yICR7bW9kdWxlS2V5fSB3ZXJlIG5vdCBmb3VuZCBpbiByb3V0ZXIgY29uZmlnYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBtb2R1bGVDb25maWcubG9hZGVkUm91dGVzU3ViamVjdC5uZXh0KG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMhKTtcbiAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXNTdWJqZWN0LmNvbXBsZXRlKCk7XG5cbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBDb25maWcgbG9hZCBmb3IgJHttb2R1bGVLZXl9IGlzIGNvbXBsZXRlYCwgbW9kdWxlQ29uZmlnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlYXJjaCBmb3Igcm91dGUgY29uZmlnIGJ5IG1vZHVsZSBwYXRoIGJ5IHJlY3Vyc2l2ZSBzY2FubmluZyBvZiByb3V0ZXIgY29uZmlnIHRyZWUuXG4gICAgICogQHBhcmFtIG1vZHVsZVBhdGggUGF0aCBvZiBtb2R1bGUgdGhhdCBpcyBzZWFyY2hlZC5cbiAgICAgKiBAcGFyYW0gcm91dGVzIFJvdXRlcyB0byBiZSBzY2FubmVkLiBJZiBub3QgcHJvdmlkZWQsIGl0IHN0YXJ0cyBvbiByb290IHJvdXRlciBjb25maWcuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aDogc3RyaW5nLCByb3V0ZXM6IFJvdXRlcyA9IHRoaXMucm91dGVyLmNvbmZpZyk6IFJvdXRlIHwgbnVsbCB7XG4gICAgICAgIGlmIChtb2R1bGVQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgbW9kdWxlUGF0aCA9IG1vZHVsZVBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygcm91dGUucGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByb3V0ZVBhdGggPSByb3V0ZS5wYXRoO1xuICAgICAgICAgICAgaWYgKHJvdXRlUGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICByb3V0ZVBhdGggPSByb3V0ZVBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsb25nZXN0UGF0aE1hdGNoID0gdGhpcy5maW5kTG9uZ2VzdFBhdGhNYXRjaChtb2R1bGVQYXRoLCByb3V0ZVBhdGgpO1xuICAgICAgICAgICAgaWYgKGxvbmdlc3RQYXRoTWF0Y2ggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gdGhlcmUgaXMgYSBwYXJ0aWFsIG9yIGZ1bGwgbWF0Y2hcbiAgICAgICAgICAgIGlmIChyb3V0ZS5sb2FkQ2hpbGRyZW4gJiYgbW9kdWxlUGF0aCA9PT0gbG9uZ2VzdFBhdGhNYXRjaCkge1xuICAgICAgICAgICAgICAgIC8vIGl0J3MgYSBoaXQhXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZS5sb2FkQ2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShyb3V0ZVt0aGlzLnJvdXRlc0xvYWRlZFByb3BLZXkgYXMga2V5b2Ygb2JqZWN0XSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aC5zdWJzdHJpbmcobG9uZ2VzdFBhdGhNYXRjaC5sZW5ndGgsIG1vZHVsZVBhdGgubGVuZ3RoKSwgcm91dGVbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF0pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kUm91dGVJblJvdXRlQ29uZmlnKG1vZHVsZVBhdGguc3Vic3RyaW5nKGxvbmdlc3RQYXRoTWF0Y2gubGVuZ3RoLCBtb2R1bGVQYXRoLmxlbmd0aCksIHJvdXRlLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgbG9uZ2VzdCBwYXRoIG1hdGNoIG9mIHNvdXJjZSB0byBtYXRjaCBzdHJpbmcuIElmIG1hdGNoIGlzICcnLCBpdCBpcyBjb25zaWRlcmVkIGFzIGEgbWF0Y2ggaW4gQW5ndWxhciByb3V0aW5nLlxuICAgICAqIEBwYXJhbSBzb3VyY2UgU291cmNlIHN0cmluZyBmcm9tIG9uIHdoaWNoIGNvbXBhcmlzb24gaXMgYmFzZWQuXG4gICAgICogQHBhcmFtIG1hdGNoIE1hdGNoIHN0cmluZyB0byB3aGljaCB0aGUgc291cmNlIGlzIG1hdGNoZWQgdG8uXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRMb25nZXN0UGF0aE1hdGNoKHNvdXJjZTogc3RyaW5nLCBtYXRjaDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHNvdXJjZVNlZ21lbnRzID0gc291cmNlLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IG1hdGNoU2VnbWVudHMgPSBtYXRjaC5zcGxpdCgnLycpO1xuXG4gICAgICAgIGlmIChtYXRjaFNlZ21lbnRzLmxlbmd0aCA9PT0gMSAmJiBtYXRjaFNlZ21lbnRzWzBdID09PSAnJykge1xuICAgICAgICAgICAgLy8gaXQncyBhIGhpdCwgYmVjYXVzZSBlbXB0eSByb3V0ZSBtdXN0IGFsd2F5cyBiZSBwcm9jZXNzZWQgKGtpbmQgb2YgYSBcImFic3RyYWN0XCIgcm91dGUpXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc291cmNlU2VnbWVudHNbMF0gPT09IG1hdGNoU2VnbWVudHNbMF0pIHtcbiAgICAgICAgICAgIC8vIHRoZXJlIGlzIGEgbWF0Y2gsIGZpbmQgaG93IGxvbmcgaXQgaXNcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgc291cmNlU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlU2VnbWVudHNbaV0gIT09IG1hdGNoU2VnbWVudHNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5kIG9mIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2VTZWdtZW50cy5zbGljZSgwLCBpKS5qb2luKCcvJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB0aGVyZSBpcyBmdWxsIG1hdGNoXG4gICAgICAgICAgICByZXR1cm4gc291cmNlU2VnbWVudHMuam9pbignLycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPckNyZWF0ZVJvdXRlRm9yTW9kdWxlKG1vZHVsZUtleTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5sYXp5TG9hZGVkUm91dGVzQ29uZmlnW21vZHVsZUtleV0pIHtcbiAgICAgICAgICAgIHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldID0ge1xuICAgICAgICAgICAgICAgIGxvYWRlZFJvdXRlc1N1YmplY3Q6IG5ldyBSZXBsYXlTdWJqZWN0PFJvdXRlcz4oMSksXG4gICAgICAgICAgICAgICAgaXNMb2FkRW5kOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIHJldHVybiAoJy8nICsgKEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoLmpvaW4oJy8nKSA6IHBhdGgpKS5yZXBsYWNlKC9cXC9cXC8vZywgJy8nKTtcbiAgICB9XG59XG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBUyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUVuSyxPQUFPLEVBQWEsYUFBYSxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBS2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFnQnpCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZmpCLFdBQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3RCx3QkFBbUIsR0FBRyxlQUFlLENBQUM7UUFHL0MsZ0NBQTJCLEdBQWEsRUFBRSxDQUFDO1FBRTNDLDJCQUFzQixHQU8xQixFQUFFLENBQUM7SUFFOEIsQ0FBQztJQUUvQixzQkFBc0IsQ0FBQyxJQUE0QjtRQUN0RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDL0YsQ0FBQztJQUVNLHVCQUF1QixDQUFDLElBQTRCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFB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bnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGUsIFJvdXRlQ29uZmlnTG9hZEVuZCwgUm91dGVDb25maWdMb2FkU3RhcnQsIFJvdXRlciwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01uZ0xvZ2dlclNlcnZpY2V9IGZyb20gJy4vbG9nZ2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1uZ1JvdXRlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KE1uZ0xvZ2dlclNlcnZpY2UpLmNyZWF0ZSgnTW5nUm91dGVyU2VydmljZScpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVzTG9hZGVkUHJvcEtleSA9ICdfbG9hZGVkUm91dGVzJztcblxuICAgIHByaXZhdGUgY3VycmVudE5hdmlnYXRpb25QYXRoPzogc3RyaW5nO1xuICAgIHByaXZhdGUgY3VycmVudE5hdmlnYXRpb25Nb2R1bGVLZXlzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBsYXp5TG9hZGVkUm91dGVzQ29uZmlnOiB7XG4gICAgICAgIFtwYXRoOiBzdHJpbmddOiB7XG4gICAgICAgICAgICByb3V0ZT86IFJvdXRlO1xuICAgICAgICAgICAgaXNMb2FkRW5kOiBib29sZWFuO1xuICAgICAgICAgICAgbG9hZGVkUm91dGVzPzogUm91dGVzO1xuICAgICAgICAgICAgbG9hZGVkUm91dGVzU3ViamVjdDogU3ViamVjdDxSb3V0ZXM+O1xuICAgICAgICB9O1xuICAgIH0gPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgICBwdWJsaWMgZ2V0Um91dGVMb2FkZWRDaGlsZHJlbihwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogUm91dGVzIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZSh0aGlzLmdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoKSkubG9hZGVkUm91dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSb3V0ZUxvYWRlZENoaWxkcmVuJChwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxSb3V0ZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZSh0aGlzLmdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoKSkubG9hZGVkUm91dGVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGZpcnN0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKCkge1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnROYXZpZ2F0aW9uKGV2ZW50LnVybCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgUm91dGVDb25maWdMb2FkU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hcmtOYXZpZ2F0aW9uQ29uZmlnTG9hZChldmVudC5yb3V0ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgUm91dGVDb25maWdMb2FkRW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrTmF2aWdhdGlvbkNvbmZpZ0xvYWQoZXZlbnQucm91dGUsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maW5pc2hOYXZpZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhcnROYXZpZ2F0aW9uKHVybDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoID0gdXJsLnNwbGl0KCc/JylbMF0uc3BsaXQoJyMnKVswXTtcbiAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmlzaE5hdmlnYXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE5hdmlnYXRpb25Nb2R1bGVLZXlzLmZvckVhY2goayA9PiB0aGlzLmdldExvYWRlZFJvdXRlc0Zyb21Sb3V0ZShrLCB0cnVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXJrTmF2aWdhdGlvbkNvbmZpZ0xvYWQocm91dGU6IFJvdXRlLCBpc0VuZCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHJvdXRlUGF0aCA9IHJvdXRlLnBhdGggPz8gJyc7XG5cbiAgICAgICAgbGV0IG1vZHVsZUtleSA9IHJvdXRlUGF0aDtcbiAgICAgICAgY29uc3QgY3VycmVudE5hdmlnYXRpb25QYXRoUm91dGVQYXRoSWR4ID0gdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGg/LmluZGV4T2Yocm91dGVQYXRoKSA/PyAtMTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoICYmIGN1cnJlbnROYXZpZ2F0aW9uUGF0aFJvdXRlUGF0aElkeCA+PSAwKSB7XG4gICAgICAgICAgICBtb2R1bGVLZXkgPSB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aC5zdWJzdHJpbmcoMCwgY3VycmVudE5hdmlnYXRpb25QYXRoUm91dGVQYXRoSWR4ICsgcm91dGVQYXRoLmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggJiYgcm91dGVQYXRoICE9PSB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCAmJiAhcm91dGVQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgLy8gdXN1YWxseSBtZWFucyB0aGF0IHJlZGlyZWN0IHRvIGN1cnJlbnROYXZpZ2F0aW9uUGF0aCB3YXMgZG9uZSwgYWRkaXRpb25hbGx5LCByb3V0ZSBwYXRoIHdhcyBhbHNvIHRyaWdnZXJlZCBvbiBsYXp5IHJvdXRlcyBsb2FkXG4gICAgICAgICAgICBtb2R1bGVLZXkgPSBgJHt0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aH0vJHtyb3V0ZVBhdGh9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbmQgJiYgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMuaW5kZXhPZihtb2R1bGVLZXkpIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMucHVzaChtb2R1bGVLZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYENvbmZpZyBsb2FkICR7aXNFbmQgPyAnZW5kJyA6ICdzdGFydCd9IGZvciAke21vZHVsZUtleX0gKHJvdXRlUGF0aDogJHtyb3V0ZVBhdGh9OyBuYXZpZ2F0aW9uVXJsOiAke3RoaXMuY3VycmVudE5hdmlnYXRpb25QYXRofSlgKTtcblxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldE9yQ3JlYXRlUm91dGVGb3JNb2R1bGUobW9kdWxlS2V5KTtcbiAgICAgICAgY29uZmlnLnJvdXRlID0gcm91dGU7XG4gICAgICAgIGNvbmZpZy5pc0xvYWRFbmQgPSBpc0VuZDtcblxuICAgICAgICBpZiAoaXNFbmQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKG1vZHVsZUtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvYWRlZFJvdXRlc0Zyb21Sb3V0ZShtb2R1bGVLZXk6IHN0cmluZywgaXNGaW5pc2ggPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBtb2R1bGVDb25maWcgPSB0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XTtcbiAgICAgICAgaWYgKCFtb2R1bGVDb25maWc/LnJvdXRlIHx8IEFycmF5LmlzQXJyYXkobW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgPSBtb2R1bGVDb25maWcucm91dGUhW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdO1xuXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShtb2R1bGVDb25maWcubG9hZGVkUm91dGVzKSAmJiBpc0ZpbmlzaCkge1xuICAgICAgICAgICAgLy8gaWYgaXMgY2FsbGVkIGZyb20gZmluaXNoIGFuZCBubyBsYXp5IGxvYWRlZCByb3V0ZXMgYXJlIG1hdGNoZWQgZnJvbSByb3V0ZXIgZXZlbnRzLCB0cnkgZmluZGluZyBpbiByb3V0ZSBjb25maWcsIGl0IHNob3VsZCBiZSB0aGVyZSFcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBSb3V0ZSBsb2FkZWRSb3V0ZXMgZm9yICR7bW9kdWxlS2V5fSBub3QgZm91bmQsIHNlYXJjaGluZyBpbiByb3V0ZXIgY29uZmlnIG5vd2ApO1xuICAgICAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlS2V5KTtcbiAgICAgICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgPSBtb2R1bGVDb25maWcucm91dGUhW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBSb3V0ZSBsb2FkZWRSb3V0ZXMgZm9yICR7bW9kdWxlS2V5fSB3ZXJlIG5vdCBmb3VuZCBpbiByb3V0ZXIgY29uZmlnYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBtb2R1bGVDb25maWcubG9hZGVkUm91dGVzU3ViamVjdC5uZXh0KG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMhKTtcbiAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXNTdWJqZWN0LmNvbXBsZXRlKCk7XG5cbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBDb25maWcgbG9hZCBmb3IgJHttb2R1bGVLZXl9IGlzIGNvbXBsZXRlYCwgbW9kdWxlQ29uZmlnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlYXJjaCBmb3Igcm91dGUgY29uZmlnIGJ5IG1vZHVsZSBwYXRoIGJ5IHJlY3Vyc2l2ZSBzY2FubmluZyBvZiByb3V0ZXIgY29uZmlnIHRyZWUuXG4gICAgICogQHBhcmFtIG1vZHVsZVBhdGggUGF0aCBvZiBtb2R1bGUgdGhhdCBpcyBzZWFyY2hlZC5cbiAgICAgKiBAcGFyYW0gcm91dGVzIFJvdXRlcyB0byBiZSBzY2FubmVkLiBJZiBub3QgcHJvdmlkZWQsIGl0IHN0YXJ0cyBvbiByb290IHJvdXRlciBjb25maWcuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aDogc3RyaW5nLCByb3V0ZXM6IFJvdXRlcyA9IHRoaXMucm91dGVyLmNvbmZpZyk6IFJvdXRlIHwgbnVsbCB7XG4gICAgICAgIGlmIChtb2R1bGVQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgbW9kdWxlUGF0aCA9IG1vZHVsZVBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygcm91dGUucGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByb3V0ZVBhdGggPSByb3V0ZS5wYXRoO1xuICAgICAgICAgICAgaWYgKHJvdXRlUGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICByb3V0ZVBhdGggPSByb3V0ZVBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsb25nZXN0UGF0aE1hdGNoID0gdGhpcy5maW5kTG9uZ2VzdFBhdGhNYXRjaChtb2R1bGVQYXRoLCByb3V0ZVBhdGgpO1xuICAgICAgICAgICAgaWYgKGxvbmdlc3RQYXRoTWF0Y2ggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gdGhlcmUgaXMgYSBwYXJ0aWFsIG9yIGZ1bGwgbWF0Y2hcbiAgICAgICAgICAgIGlmIChyb3V0ZS5sb2FkQ2hpbGRyZW4gJiYgbW9kdWxlUGF0aCA9PT0gbG9uZ2VzdFBhdGhNYXRjaCkge1xuICAgICAgICAgICAgICAgIC8vIGl0J3MgYSBoaXQhXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZS5sb2FkQ2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShyb3V0ZVt0aGlzLnJvdXRlc0xvYWRlZFByb3BLZXkgYXMga2V5b2Ygb2JqZWN0XSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aC5zdWJzdHJpbmcobG9uZ2VzdFBhdGhNYXRjaC5sZW5ndGgsIG1vZHVsZVBhdGgubGVuZ3RoKSwgcm91dGVbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF0pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kUm91dGVJblJvdXRlQ29uZmlnKG1vZHVsZVBhdGguc3Vic3RyaW5nKGxvbmdlc3RQYXRoTWF0Y2gubGVuZ3RoLCBtb2R1bGVQYXRoLmxlbmd0aCksIHJvdXRlLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgbG9uZ2VzdCBwYXRoIG1hdGNoIG9mIHNvdXJjZSB0byBtYXRjaCBzdHJpbmcuIElmIG1hdGNoIGlzICcnLCBpdCBpcyBjb25zaWRlcmVkIGFzIGEgbWF0Y2ggaW4gQW5ndWxhciByb3V0aW5nLlxuICAgICAqIEBwYXJhbSBzb3VyY2UgU291cmNlIHN0cmluZyBmcm9tIG9uIHdoaWNoIGNvbXBhcmlzb24gaXMgYmFzZWQuXG4gICAgICogQHBhcmFtIG1hdGNoIE1hdGNoIHN0cmluZyB0byB3aGljaCB0aGUgc291cmNlIGlzIG1hdGNoZWQgdG8uXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRMb25nZXN0UGF0aE1hdGNoKHNvdXJjZTogc3RyaW5nLCBtYXRjaDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHNvdXJjZVNlZ21lbnRzID0gc291cmNlLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IG1hdGNoU2VnbWVudHMgPSBtYXRjaC5zcGxpdCgnLycpO1xuXG4gICAgICAgIGlmIChtYXRjaFNlZ21lbnRzLmxlbmd0aCA9PT0gMSAmJiBtYXRjaFNlZ21lbnRzWzBdID09PSAnJykge1xuICAgICAgICAgICAgLy8gaXQncyBhIGhpdCwgYmVjYXVzZSBlbXB0eSByb3V0ZSBtdXN0IGFsd2F5cyBiZSBwcm9jZXNzZWQgKGtpbmQgb2YgYSBcImFic3RyYWN0XCIgcm91dGUpXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc291cmNlU2VnbWVudHNbMF0gPT09IG1hdGNoU2VnbWVudHNbMF0pIHtcbiAgICAgICAgICAgIC8vIHRoZXJlIGlzIGEgbWF0Y2gsIGZpbmQgaG93IGxvbmcgaXQgaXNcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgc291cmNlU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlU2VnbWVudHNbaV0gIT09IG1hdGNoU2VnbWVudHNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5kIG9mIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2VTZWdtZW50cy5zbGljZSgwLCBpKS5qb2luKCcvJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB0aGVyZSBpcyBmdWxsIG1hdGNoXG4gICAgICAgICAgICByZXR1cm4gc291cmNlU2VnbWVudHMuam9pbignLycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPckNyZWF0ZVJvdXRlRm9yTW9kdWxlKG1vZHVsZUtleTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5sYXp5TG9hZGVkUm91dGVzQ29uZmlnW21vZHVsZUtleV0pIHtcbiAgICAgICAgICAgIHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldID0ge1xuICAgICAgICAgICAgICAgIGxvYWRlZFJvdXRlc1N1YmplY3Q6IG5ldyBSZXBsYXlTdWJqZWN0PFJvdXRlcz4oMSksXG4gICAgICAgICAgICAgICAgaXNMb2FkRW5kOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIHJldHVybiAoJy8nICsgKEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoLmpvaW4oJy8nKSA6IHBhdGgpKS5yZXBsYWNlKC9cXC9cXC8vZywgJy8nKTtcbiAgICB9XG59XG4iXX0=
@@ -37,10 +37,10 @@ export class MngVersionService {
37
37
  }
38
38
  return this.cache[url].asObservable();
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngVersionService, deps: [{ token: i1.HttpClient }, { token: i2.MngConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
41
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngVersionService, providedIn: 'root' }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngVersionService, deps: [{ token: i1.HttpClient }, { token: i2.MngConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
41
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngVersionService, providedIn: 'root' }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngVersionService, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngVersionService, decorators: [{
44
44
  type: Injectable,
45
45
  args: [{
46
46
  providedIn: 'root'
@@ -56,10 +56,10 @@ export class MngViewContainerComponentService {
56
56
  unsetActionRouteTriggeredInstance() {
57
57
  this._routeTriggeredActionInstance = undefined;
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngViewContainerComponentService, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
60
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngViewContainerComponentService }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngViewContainerComponentService, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngViewContainerComponentService }); }
61
61
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngViewContainerComponentService, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngViewContainerComponentService, decorators: [{
63
63
  type: Injectable
64
64
  }], ctorParameters: function () { return [{ type: i1.MessageService }]; } });
65
65
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jb250YWluZXIuY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3ZpZXctY29udGFpbmVyLmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFjekM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZ0NBQWdDO0lBU3pDLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQU4xQyxZQUFPLEdBQStCLEVBQUUsQ0FBQztRQUV6Qyx3QkFBbUIsR0FBMkMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1RSx3QkFBbUIsR0FBOEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvRSx3QkFBbUIsR0FBOEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVsQyxDQUFDO0lBRXRELElBQVcsWUFBWSxDQUFDLFlBQWlDO1FBQ3JELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFTSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRU0sVUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQW1DO1FBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFxQztRQUM3QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBb0Q7UUFDNUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXdDO1FBQ2hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCwrQkFBK0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUM7SUFDOUMsQ0FBQztJQUVELCtCQUErQixDQUFDLFFBQThCO1FBQzFELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUVELGlDQUFpQztRQUM3QixJQUFJLENBQUMsNkJBQTZCLEdBQUcsU0FBUyxDQUFDO0lBQ25ELENBQUM7OEdBakVRLGdDQUFnQztrSEFBaEMsZ0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBY3Rpb25JbnN0YW5jZX0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzJztcbmltcG9ydCB7SURhdGFQcm92aWRlcn0gZnJvbSAnLi4vZGF0YS1wcm92aWRlcnMnO1xuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy9hY3Rpb24nO1xuaW1wb3J0IHtcbiAgICBJVmlld0FjdGlvblJvdXRlVHJpZ2dlcmVkQ29udGFpbmVyLFxuICAgIElWaWV3Q29udGFpbmVyRWRpdG9yLFxuICAgIElWaWV3Q29udGFpbmVyVGFibGUsXG4gICAgVmlld0NvbnRhaW5lckVkaXRvckNsb3NlRXZlbnQsXG4gICAgVmlld0NvbnRhaW5lckVkaXRvclJlc2V0RXZlbnQsXG4gICAgVmlld0NvbnRhaW5lclRhYmxlUmVsb2FkRXZlbnRcbn0gZnJvbSAnLi4vbW9kZWxzJztcblxuLyoqXG4gKiBTaG91bGQgYmUgdXNlZCB3aXRoIHByb3ZpZGVycyBkZWZpbmVkIHdpdGhpbiBjb21wb25lbnQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZTxULCBTPiBpbXBsZW1lbnRzIElWaWV3Q29udGFpbmVyVGFibGU8VCwgUz4sIElWaWV3Q29udGFpbmVyRWRpdG9yPFQsIFM+LCBJVmlld0FjdGlvblJvdXRlVHJpZ2dlcmVkQ29udGFpbmVyPFQsIFM+IHtcbiAgICBwcml2YXRlIF9kYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIHByaXZhdGUgX3JvdXRlVHJpZ2dlcmVkQWN0aW9uSW5zdGFuY2U/OiBBY3Rpb25JbnN0YW5jZTxULCBTPjtcbiAgICBwcml2YXRlIGFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8VD4+ID0gW107XG5cbiAgICBwcml2YXRlIF90YWJsZVJlbG9hZFN1YmplY3Q6IFN1YmplY3Q8Vmlld0NvbnRhaW5lclRhYmxlUmVsb2FkRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIF9lZGl0b3JSZXNldFN1YmplY3Q6IFN1YmplY3Q8Vmlld0NvbnRhaW5lckVkaXRvclJlc2V0RXZlbnQ8VD4+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIF9lZGl0b3JDbG9zZVN1YmplY3Q6IFN1YmplY3Q8Vmlld0NvbnRhaW5lckVkaXRvckNsb3NlRXZlbnQ8VD4+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIHNldCBkYXRhUHJvdmlkZXIoZGF0YVByb3ZpZGVyOiBJRGF0YVByb3ZpZGVyPFQsIFM+KSB7XG4gICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IGRhdGFQcm92aWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TWVzc2FnZVNlcnZpY2UoKTogTWVzc2FnZVNlcnZpY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlU2VydmljZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0YVByb3ZpZGVyKCk6IElEYXRhUHJvdmlkZXI8VCwgUz4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKCk6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QWN0aW9ucyhhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+Pikge1xuICAgICAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zO1xuICAgIH1cblxuICAgIGdldFRhYmxlUmVsb2FkJCgpOiBPYnNlcnZhYmxlPFZpZXdDb250YWluZXJUYWJsZVJlbG9hZEV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZVJlbG9hZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcmVsb2FkVGFibGUoZXZlbnQ/OiBWaWV3Q29udGFpbmVyVGFibGVSZWxvYWRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVJlbG9hZFN1YmplY3QubmV4dChldmVudCA/PyB7fSk7XG4gICAgfVxuXG4gICAgZ2V0RWRpdG9yUmVzZXQkKCk6IE9ic2VydmFibGU8Vmlld0NvbnRhaW5lckVkaXRvclJlc2V0RXZlbnQ8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvclJlc2V0U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICByZXNldEVkaXRvcihldmVudD86IFZpZXdDb250YWluZXJFZGl0b3JSZXNldEV2ZW50PFQ+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VkaXRvclJlc2V0U3ViamVjdC5uZXh0KGV2ZW50ID8/IHt9KTtcbiAgICB9XG5cbiAgICBnZXRFZGl0b3JDbG9zZSQoKTogT2JzZXJ2YWJsZTxWaWV3Q29udGFpbmVyRWRpdG9yQ2xvc2VFdmVudDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yQ2xvc2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGNsb3NlRWRpdG9yKGV2ZW50PzogVmlld0NvbnRhaW5lckVkaXRvckNsb3NlRXZlbnQ8VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yQ2xvc2VTdWJqZWN0Lm5leHQoZXZlbnQgPz8ge30pO1xuICAgIH1cblxuICAgIGdldEFjdGlvblJvdXRlVHJpZ2dlcmVkSW5zdGFuY2UoKTogQWN0aW9uSW5zdGFuY2U8VCwgUz4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91dGVUcmlnZ2VyZWRBY3Rpb25JbnN0YW5jZTtcbiAgICB9XG5cbiAgICBzZXRBY3Rpb25Sb3V0ZVRyaWdnZXJlZEluc3RhbmNlKGluc3RhbmNlOiBBY3Rpb25JbnN0YW5jZTxULCBTPik6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb3V0ZVRyaWdnZXJlZEFjdGlvbkluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgdW5zZXRBY3Rpb25Sb3V0ZVRyaWdnZXJlZEluc3RhbmNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb3V0ZVRyaWdnZXJlZEFjdGlvbkluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==