@esfaenza/admin-module 13.1.0-beta9 → 13.1.3

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 (54) hide show
  1. package/README.md +1 -24
  2. package/esm2020/lib/admin-module-messages.mjs +8 -0
  3. package/esm2020/lib/admin-module.comms.service.mjs +30 -0
  4. package/esm2020/lib/admin-module.module.mjs +29 -34
  5. package/esm2020/lib/components/audits/adm_audits.component.mjs +24 -20
  6. package/esm2020/lib/components/enqueues/adm_enq.component.mjs +28 -26
  7. package/esm2020/lib/components/logs/adm_logs.component.loc.mjs +19 -0
  8. package/esm2020/lib/components/logs/adm_logs.component.mjs +21 -12
  9. package/esm2020/lib/components/metrics/metrics_search.component.mjs +27 -23
  10. package/esm2020/lib/components/profiler/adm_profiler.component.loc.mjs +2 -2
  11. package/esm2020/lib/components/profiler/adm_profiler.component.mjs +28 -27
  12. package/esm2020/lib/components/topact/topact_search.component.mjs +27 -25
  13. package/esm2020/lib/components/workers/adm_wrk.component.mjs +27 -25
  14. package/esm2020/lib/models/components/AuditsView.mjs +1 -1
  15. package/esm2020/lib/models/components/LocksView.mjs +1 -1
  16. package/esm2020/lib/models/components/ProfilerDataNode.mjs +3 -3
  17. package/esm2020/lib/models/components/ProfilerDataNodesView.mjs +1 -1
  18. package/esm2020/lib/models/components/TopActivitiesDataView.mjs +1 -1
  19. package/esm2020/lib/models/components/TopActivity.mjs +1 -1
  20. package/esm2020/lib/models/shared/Locale.mjs +1 -1
  21. package/esm2020/lib/tokens.mjs +2 -1
  22. package/esm2020/public-api.mjs +2 -2
  23. package/fesm2015/esfaenza-admin-module.mjs +686 -732
  24. package/fesm2015/esfaenza-admin-module.mjs.map +1 -1
  25. package/fesm2020/esfaenza-admin-module.mjs +716 -760
  26. package/fesm2020/esfaenza-admin-module.mjs.map +1 -1
  27. package/lib/admin-module-messages.d.ts +6 -0
  28. package/lib/admin-module.comms.service.d.ts +10 -0
  29. package/lib/admin-module.module.d.ts +11 -2
  30. package/lib/components/audits/adm_audits.component.d.ts +6 -4
  31. package/lib/components/enqueues/adm_enq.component.d.ts +6 -6
  32. package/lib/components/logs/adm_logs.component.d.ts +5 -3
  33. package/lib/components/logs/adm_logs.component.loc.d.ts +7 -0
  34. package/lib/components/metrics/metrics_search.component.d.ts +9 -6
  35. package/lib/components/profiler/adm_profiler.component.d.ts +6 -6
  36. package/lib/components/topact/topact_search.component.d.ts +9 -6
  37. package/lib/components/workers/adm_wrk.component.d.ts +7 -6
  38. package/lib/models/components/AuditsView.d.ts +1 -1
  39. package/lib/models/components/ProfilerDataNodesView.d.ts +1 -1
  40. package/lib/models/components/TopActivitiesDataView.d.ts +1 -1
  41. package/lib/models/components/TopActivity.d.ts +3 -1
  42. package/lib/tokens.d.ts +1 -0
  43. package/package.json +11 -2
  44. package/public-api.d.ts +1 -1
  45. package/esm2020/lib/communications/base/BaseModuleCommunicationsConsumer.mjs +0 -3
  46. package/esm2020/lib/components/index.mjs +0 -14
  47. package/esm2020/lib/models/components/Lock.loc.mjs +0 -13
  48. package/esm2020/lib/models/components/Lock.mjs +0 -48
  49. package/esm2020/lib/models/index.mjs +0 -22
  50. package/lib/communications/base/BaseModuleCommunicationsConsumer.d.ts +0 -3
  51. package/lib/components/index.d.ts +0 -13
  52. package/lib/models/components/Lock.d.ts +0 -12
  53. package/lib/models/components/Lock.loc.d.ts +0 -42
  54. package/lib/models/index.d.ts +0 -21
package/README.md CHANGED
@@ -1,24 +1 @@
1
- # AdminModule
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.1.6.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project admin-module` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project admin-module`.
8
- > Note: Don't forget to add `--project admin-module` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build admin-module` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build admin-module`, go to the dist folder `cd dist/admin-module` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test admin-module` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
1
+ # AdminModule
@@ -0,0 +1,8 @@
1
+ /** Chiave di questo modulo, da utilizzare per i messaggi */
2
+ export const MK_ADM = "EsAdminModule";
3
+ /** Messaggi gestiti da questo modulo */
4
+ export var AdmMessageTypes;
5
+ (function (AdmMessageTypes) {
6
+ AdmMessageTypes[AdmMessageTypes["Message"] = 0] = "Message";
7
+ })(AdmMessageTypes || (AdmMessageTypes = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbW9kdWxlLW1lc3NhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvYWRtaW4tbW9kdWxlLW1lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDO0FBRXRDLHdDQUF3QztBQUN4QyxNQUFNLENBQU4sSUFBWSxlQUVYO0FBRkQsV0FBWSxlQUFlO0lBQ3ZCLDJEQUFPLENBQUE7QUFDWCxDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQ2hpYXZlIGRpIHF1ZXN0byBtb2R1bG8sIGRhIHV0aWxpenphcmUgcGVyIGkgbWVzc2FnZ2kgKi9cclxuZXhwb3J0IGNvbnN0IE1LX0FETSA9IFwiRXNBZG1pbk1vZHVsZVwiO1xyXG5cclxuLyoqIE1lc3NhZ2dpIGdlc3RpdGkgZGEgcXVlc3RvIG1vZHVsbyAqL1xyXG5leHBvcnQgZW51bSBBZG1NZXNzYWdlVHlwZXN7XHJcbiAgICBNZXNzYWdlXHJcbn0iXX0=
@@ -0,0 +1,30 @@
1
+ // Angular
2
+ import { Injectable } from "@angular/core";
3
+ // Modelli
4
+ import { AdmMessageTypes, MK_ADM } from "./admin-module-messages";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@esfaenza/extensions";
7
+ export class AdminModuleCommService {
8
+ constructor(intercom) {
9
+ this.intercom = intercom;
10
+ }
11
+ register() {
12
+ this.intercom.register(MK_ADM);
13
+ this.intercom.outbounds[MK_ADM].subscribe((t) => { this.handleOutbound(t.type, t.message); });
14
+ }
15
+ handleOutbound(type, message) {
16
+ switch (type) {
17
+ case AdmMessageTypes.Message:
18
+ {
19
+ if (myconfig.DEBUG_MODE)
20
+ console.log("@admin-module outbound message: " + message);
21
+ }
22
+ }
23
+ }
24
+ }
25
+ AdminModuleCommService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdminModuleCommService, deps: [{ token: i1.InterComService }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ AdminModuleCommService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdminModuleCommService });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdminModuleCommService, decorators: [{
28
+ type: Injectable
29
+ }], ctorParameters: function () { return [{ type: i1.InterComService }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbW9kdWxlLmNvbW1zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9hZG1pbi1tb2R1bGUuY29tbXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBR2xFLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsWUFBb0IsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFBSSxDQUFDO0lBRTNDLFFBQVE7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFrQixFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFxQixFQUFFLE9BQVk7UUFDdEQsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLGVBQWUsQ0FBQyxPQUFPO2dCQUN4QjtvQkFDSSxJQUFJLFFBQVEsQ0FBQyxVQUFVO3dCQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO2lCQUNqRTtTQUNSO0lBQ0wsQ0FBQzs7bUhBakJRLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgSW50ZXJDb21TZXJ2aWNlLCBJbnRlckNvbU1lc3NhZ2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgQWRtTWVzc2FnZVR5cGVzLCBNS19BRE0gfSBmcm9tIFwiLi9hZG1pbi1tb2R1bGUtbWVzc2FnZXNcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFkbWluTW9kdWxlQ29tbVNlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW50ZXJjb206IEludGVyQ29tU2VydmljZSkgeyB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyKCkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJjb20ucmVnaXN0ZXIoTUtfQURNKTtcclxuICAgICAgICB0aGlzLmludGVyY29tLm91dGJvdW5kc1tNS19BRE1dLnN1YnNjcmliZSgodDogSW50ZXJDb21NZXNzYWdlKSA9PiB7IHRoaXMuaGFuZGxlT3V0Ym91bmQodC50eXBlLCB0Lm1lc3NhZ2UpOyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZU91dGJvdW5kKHR5cGU6IEFkbU1lc3NhZ2VUeXBlcywgbWVzc2FnZTogYW55KSB7XHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgQWRtTWVzc2FnZVR5cGVzLk1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG15Y29uZmlnLkRFQlVHX01PREUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQGFkbWluLW1vZHVsZSBvdXRib3VuZCBtZXNzYWdlOiBcIiArIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
@@ -1,14 +1,13 @@
1
1
  // Angular
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { FormsModule } from "@angular/forms";
4
- import { LOCALE_ID, NgModule } from "@angular/core";
4
+ import { NgModule } from "@angular/core";
5
5
  import { RouterModule } from "@angular/router";
6
6
  // Material
7
7
  import { MatIconModule } from '@angular/material/icon';
8
8
  import { MatDatepickerModule } from '@angular/material/datepicker';
9
9
  import { MatDayjsDateModule } from "@esfaenza/material-dayjs-adapter";
10
10
  import { MatInputModule } from "@angular/material/input";
11
- import { MAT_DATE_FORMATS, MAT_DATE_LOCALE } from "@angular/material/core";
12
11
  // Libs
13
12
  import { NgxMatDatetimePickerModule } from '@angular-material-components/datetime-picker';
14
13
  import { ModalModule } from "ngx-bootstrap/modal";
@@ -23,9 +22,20 @@ import { EsGertrudeModule } from "@esfaenza/gertrude";
23
22
  import { LocalizationModule } from "@esfaenza/localizations";
24
23
  import { ContextMenuModule } from "@esfaenza/ngx-contextmenu";
25
24
  // Components
26
- import { AdmWrkComponent, AdmProfilerComponent, AdmTopActivitiesComponent, AdmLogsComponent, AdmAuditsComponent, AdmEnqComponent, AdmMetricsComponent } from "./components";
25
+ import { AdmAuditsComponent } from "./components/audits/adm_audits.component";
26
+ import { AdmWrkComponent } from "./components/workers/adm_wrk.component";
27
+ import { AdmProfilerComponent } from "./components/profiler/adm_profiler.component";
28
+ import { AdmTopActivitiesComponent } from "./components/topact/topact_search.component";
29
+ import { AdmEnqComponent } from "./components/enqueues/adm_enq.component";
30
+ import { AdmMetricsComponent } from "./components/metrics/metrics_search.component";
31
+ import { AdmLogsComponent } from "./components/logs/adm_logs.component";
32
+ // Communication Service
33
+ import { AdminModuleCommService } from "./admin-module.comms.service";
34
+ // Tokens
35
+ import { ADM_BACKEND_URL, ADM_LOCALE } from "./tokens";
27
36
  import * as i0 from "@angular/core";
28
- import * as i1 from "@angular/router";
37
+ import * as i1 from "./admin-module.comms.service";
38
+ import * as i2 from "@angular/router";
29
39
  export const routeConfig = [
30
40
  {
31
41
  path: "", children: [
@@ -60,11 +70,6 @@ const MODULES = [
60
70
  FormsAndValidationsModule,
61
71
  EsGertrudeModule,
62
72
  EsChartsModule,
63
- EsTableModule,
64
- FormsAndValidationsModule,
65
- EsChartsModule,
66
- FormsAndValidationsModule,
67
- EsChartsModule,
68
73
  NgxMatDatetimePickerModule,
69
74
  RouterModule.forChild(routeConfig),
70
75
  ];
@@ -77,19 +82,14 @@ const COMPONENTS = [
77
82
  AdmEnqComponent,
78
83
  AdmMetricsComponent
79
84
  ];
80
- //Il formato in Display è sempre quello italiano quindi mi faccio pochi problemi di localizzazione e imposto quello
81
- const formats = {
82
- parse: { dateInput: 'DD/MM/YYYY' },
83
- display: {
84
- dateInput: 'DD/MM/YYYY',
85
- monthYearLabel: 'MM YYYY',
86
- dateA11yLabel: 'DD/MM/YYYY',
87
- monthYearA11yLabel: 'MM YYYY',
88
- }
89
- };
90
85
  export class AdmModule {
86
+ constructor(commService) {
87
+ this.commService = commService;
88
+ console.log("@esfaenza/admin-module: BOOTSTRAP");
89
+ this.commService.register();
90
+ }
91
91
  }
92
- AdmModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
92
+ AdmModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmModule, deps: [{ token: i1.AdminModuleCommService }], target: i0.ɵɵFactoryTarget.NgModule });
93
93
  AdmModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmModule, declarations: [AdmWrkComponent,
94
94
  AdmProfilerComponent,
95
95
  AdmTopActivitiesComponent,
@@ -117,16 +117,11 @@ AdmModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
117
117
  FormsAndValidationsModule,
118
118
  EsGertrudeModule,
119
119
  EsChartsModule,
120
- EsTableModule,
121
- FormsAndValidationsModule,
122
- EsChartsModule,
123
- FormsAndValidationsModule,
124
- EsChartsModule,
125
- NgxMatDatetimePickerModule, i1.RouterModule] });
120
+ NgxMatDatetimePickerModule, i2.RouterModule] });
126
121
  AdmModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmModule, providers: [
127
- { provide: LOCALE_ID, useValue: myconfig.SMALL_LOCALE },
128
- { provide: MAT_DATE_LOCALE, useValue: myconfig.LOCALE },
129
- { provide: MAT_DATE_FORMATS, useValue: formats }
122
+ AdminModuleCommService,
123
+ { provide: ADM_LOCALE, useValue: myconfig.LOCALE },
124
+ { provide: ADM_BACKEND_URL, useValue: myconfig.BACKEND_URL },
130
125
  ], imports: [[...MODULES]] });
131
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmModule, decorators: [{
132
127
  type: NgModule,
@@ -134,10 +129,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
134
129
  imports: [...MODULES],
135
130
  declarations: [...COMPONENTS],
136
131
  providers: [
137
- { provide: LOCALE_ID, useValue: myconfig.SMALL_LOCALE },
138
- { provide: MAT_DATE_LOCALE, useValue: myconfig.LOCALE },
139
- { provide: MAT_DATE_FORMATS, useValue: formats }
132
+ AdminModuleCommService,
133
+ { provide: ADM_LOCALE, useValue: myconfig.LOCALE },
134
+ { provide: ADM_BACKEND_URL, useValue: myconfig.BACKEND_URL },
140
135
  ]
141
136
  }]
142
- }] });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbW9kdWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2FkbWluLW1vZHVsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLFdBQVc7QUFDWCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRSxPQUFPO0FBQ1AsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELFdBQVc7QUFDWCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHlCQUF5QixFQUFF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QUUsUUFBUSxDQUFDLFlBQVksRUFBRTt3QkFDdkQsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFO3dCQUN2RCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO3FCQUNqRDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBMT0NBTEVfSUQsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcblxuLy8gTWF0ZXJpYWxcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0RGF5anNEYXRlTW9kdWxlIH0gZnJvbSBcIkBlc2ZhZW56YS9tYXRlcmlhbC1kYXlqcy1hZGFwdGVyXCI7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHsgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcblxuLy8gTGlic1xuaW1wb3J0IHsgTmd4TWF0RGF0ZXRpbWVQaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBNb2RhbE1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL21vZGFsXCI7XG5pbXBvcnQgeyBDc3ZNb2R1bGUgfSBmcm9tIFwiQGN0cmwvbmd4LWNzdlwiO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duXCI7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvdG9vbHRpcFwiO1xuXG4vLyBFc2ZhZW56YVxuaW1wb3J0IHsgRXNUYWJsZU1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvZXMtdGFibGVcIjtcbmltcG9ydCB7IEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2Zvcm1zLWFuZC12YWxpZGF0aW9uc1wiO1xuaW1wb3J0IHsgRXNDaGFydHNNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2VzLWNoYXJ0c1wiO1xuaW1wb3J0IHsgRXNHZXJ0cnVkZU1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvZ2VydHJ1ZGVcIjtcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL25neC1jb250ZXh0bWVudVwiO1xuXG4vLyBDb21wb25lbnRzXG5pbXBvcnQge1xuICBBZG1XcmtDb21wb25lbnQsXG4gIEFkbVByb2ZpbGVyQ29tcG9uZW50LFxuICBBZG1Ub3BBY3Rpdml0aWVzQ29tcG9uZW50LFxuICBBZG1Mb2dzQ29tcG9uZW50LFxuICBBZG1BdWRpdHNDb21wb25lbnQsXG4gIEFkbUVucUNvbXBvbmVudCxcbiAgQWRtTWV0cmljc0NvbXBvbmVudFxufSBmcm9tIFwiLi9jb21wb25lbnRzXCI7XG5cbmRlY2xhcmUgdmFyIG15Y29uZmlnO1xuXG5leHBvcnQgY29uc3Qgcm91dGVDb25maWcgPSBbXG4gIHtcbiAgICBwYXRoOiBcIlwiLCBjaGlsZHJlbjogW1xuICAgICAgIHsgcGF0aDogXCJzZXJ2ZXJ3b3JrZXJzXCIsIGNvbXBvbmVudDogQWRtV3JrQ29tcG9uZW50LCBkYXRhOiB7IHRpdGxlOiBcIlNlYXJjaCBBcHBsaWNhdGlvbiBQcm9jZXNzZXNcIiwgaW50ZXJuYWxOYXZpZ2F0aW9uOiBmYWxzZSB9IH0sXG4gICAgICAgeyBwYXRoOiBcInByb2ZpbGVyXCIsIGNvbXBvbmVudDogQWRtUHJvZmlsZXJDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6IFwiU2VydmVyIFByb2ZpbGVyXCIsIGludGVybmFsTmF2aWdhdGlvbjogZmFsc2UgfSB9LFxuICAgICAgIHsgcGF0aDogXCJ0b3BhY3RcIiwgY29tcG9uZW50OiBBZG1Ub3BBY3Rpdml0aWVzQ29tcG9uZW50LCBkYXRhOiB7IHRpdGxlOiBcIlRvcCBBY3Rpdml0aWVzXCIsIGludGVybmFsTmF2aWdhdGlvbjogZmFsc2UgfSB9LFxuICAgICAgIHsgcGF0aDogXCJtZXRyaWNzXCIsIGNvbXBvbmVudDogQWRtTWV0cmljc0NvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogXCJTeXN0ZW0gTWV0cmljc1wiLCBpbnRlcm5hbE5hdmlnYXRpb246IGZhbHNlIH0gfSxcbiAgICAgICB7IHBhdGg6IFwic2VydmVybG9nc1wiLCBjb21wb25lbnQ6IEFkbUxvZ3NDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6IFwiU2VydmVyIExvZ3NcIiwgaW50ZXJuYWxOYXZpZ2F0aW9uOiBmYWxzZSB9IH0sXG4gICAgICAgeyBwYXRoOiBcInNlcnZlcmF1ZGl0c1wiLCBjb21wb25lbnQ6IEFkbUF1ZGl0c0NvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogXCJTZWFyY2ggQXBwbGljYXRpb24gQXVkaXRzXCIsIGludGVybmFsTmF2aWdhdGlvbjogZmFsc2UgfSB9LFxuICAgICAgIHsgcGF0aDogXCJzZXJ2ZXJlbnF1ZXVlc1wiLCBjb21wb25lbnQ6IEFkbUVucUNvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogXCJTZWFyY2ggQXBwbGljYXRpb24gTG9ja3NcIiwgaW50ZXJuYWxOYXZpZ2F0aW9uOiBmYWxzZSB9IH0sXG4gICAgXVxuICB9XG5dO1xuXG5jb25zdCBNT0RVTEVTID0gW1xuICAvLyBCYXNlXG4gIENvbW1vbk1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG5cbiAgLy8gTWF0ZXJpYWxcbiAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgTWF0RGF5anNEYXRlTW9kdWxlLFxuICBNYXRJY29uTW9kdWxlLFxuICBNYXRJbnB1dE1vZHVsZSxcblxuICAvLyBCb290c3RyYXBcbiAgTW9kYWxNb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG4gIEJzRHJvcGRvd25Nb2R1bGUsXG4gIENzdk1vZHVsZSxcblxuICAvLyBFc2ZhZW56YSBlIGNvbXBvbmVudGkgdmlzdWFsaVxuICBDb250ZXh0TWVudU1vZHVsZSxcbiAgTG9jYWxpemF0aW9uTW9kdWxlLFxuICBFc1RhYmxlTW9kdWxlLFxuICBGb3Jtc0FuZFZhbGlkYXRpb25zTW9kdWxlLFxuICBFc0dlcnRydWRlTW9kdWxlLFxuICBFc0NoYXJ0c01vZHVsZSxcbiAgRXNUYWJsZU1vZHVsZSxcbiAgRm9ybXNBbmRWYWxpZGF0aW9uc01vZHVsZSxcbiAgRXNDaGFydHNNb2R1bGUsXG4gIEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUsXG4gIEVzQ2hhcnRzTW9kdWxlLFxuICBOZ3hNYXREYXRldGltZVBpY2tlck1vZHVsZSxcblxuICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVDb25maWcpLFxuXTtcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgQWRtV3JrQ29tcG9uZW50LFxuICBBZG1Qcm9maWxlckNvbXBvbmVudCxcbiAgQWRtVG9wQWN0aXZpdGllc0NvbXBvbmVudCxcbiAgQWRtTG9nc0NvbXBvbmVudCxcbiAgQWRtQXVkaXRzQ29tcG9uZW50LFxuICBBZG1FbnFDb21wb25lbnQsXG4gIEFkbU1ldHJpY3NDb21wb25lbnRcbl07XG5cbi8vSWwgZm9ybWF0byBpbiBEaXNwbGF5IMOoIHNlbXByZSBxdWVsbG8gaXRhbGlhbm8gcXVpbmRpIG1pIGZhY2NpbyBwb2NoaSBwcm9ibGVtaSBkaSBsb2NhbGl6emF6aW9uZSBlIGltcG9zdG8gcXVlbGxvXG5jb25zdCBmb3JtYXRzID0ge1xuICBwYXJzZTogeyBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZJyB9LFxuICBkaXNwbGF5OiB7XG4gICAgICBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZJyxcbiAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU0gWVlZWScsXG4gICAgICBkYXRlQTExeUxhYmVsOiAnREQvTU0vWVlZWScsXG4gICAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTSBZWVlZJyxcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFNdLFxuICBwcm92aWRlcnM6IFsgXG4gICAgeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiBteWNvbmZpZy5TTUFMTF9MT0NBTEUgfSxcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0xPQ0FMRSwgdXNlVmFsdWU6IG15Y29uZmlnLkxPQ0FMRSB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IGZvcm1hdHMgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFkbU1vZHVsZSB7IH0iXX0=
137
+ }], ctorParameters: function () { return [{ type: i1.AdminModuleCommService }]; } });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbW9kdWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2FkbWluLW1vZHVsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsV0FBVztBQUNYLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTztBQUNQLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxXQUFXO0FBQ1gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxhQUFhO0FBQ2IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSx3QkFBd0I7QUFDeEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdEUsU0FBUztBQUNULE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBRXZELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QjtRQUNFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO1lBQ2pCLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNwSCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0SCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqSCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDOUcsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDaEksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUU7U0FDaEk7S0FDRjtDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRztJQUNkLE9BQU87SUFDUCxZQUFZO0lBQ1osV0FBVztJQUVYLFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixjQUFjO0lBRWQsWUFBWTtJQUNaLFdBQVc7SUFDWCxhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFFVCxnQ0FBZ0M7SUFDaEMsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IseUJBQXlCO0lBQ3pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsMEJBQTBCO0lBRTFCLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0NBQ25DLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRztJQUNqQixlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6QixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixtQkFBbUI7Q0FDcEIsQ0FBQztBQVdGLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQW9CLFdBQW1DO1FBQW5DLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDOztzR0FKVSxTQUFTO3VHQUFULFNBQVMsaUJBbEJwQixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixtQkFBbUI7UUFuQ25CLE9BQU87UUFDUCxZQUFZO1FBQ1osV0FBVztRQUVYLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixjQUFjO1FBRWQsWUFBWTtRQUNaLFdBQVc7UUFDWCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLFNBQVM7UUFFVCxnQ0FBZ0M7UUFDaEMsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IseUJBQXlCO1FBQ3pCLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsMEJBQTBCO3VHQXdCZixTQUFTLGFBTlQ7UUFDVCxzQkFBc0I7UUFDdEIsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ2xELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRTtLQUM3RCxZQU5RLENBQUMsR0FBRyxPQUFPLENBQUM7MkZBUVYsU0FBUztrQkFUckIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDckIsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLFNBQVMsRUFBRTt3QkFDVCxzQkFBc0I7d0JBQ3RCLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRTt3QkFDbEQsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFO3FCQUM3RDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbi8vIE1hdGVyaWFsXHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdERheWpzRGF0ZU1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvbWF0ZXJpYWwtZGF5anMtYWRhcHRlclwiO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5cclxuLy8gTGlic1xyXG5pbXBvcnQgeyBOZ3hNYXREYXRldGltZVBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyJztcclxuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9tb2RhbFwiO1xyXG5pbXBvcnQgeyBDc3ZNb2R1bGUgfSBmcm9tIFwiQGN0cmwvbmd4LWNzdlwiO1xyXG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvZHJvcGRvd25cIjtcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3Rvb2x0aXBcIjtcclxuXHJcbi8vIEVzZmFlbnphXHJcbmltcG9ydCB7IEVzVGFibGVNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2VzLXRhYmxlXCI7XHJcbmltcG9ydCB7IEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2Zvcm1zLWFuZC12YWxpZGF0aW9uc1wiO1xyXG5pbXBvcnQgeyBFc0NoYXJ0c01vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvZXMtY2hhcnRzXCI7XHJcbmltcG9ydCB7IEVzR2VydHJ1ZGVNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2dlcnRydWRlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudU1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvbmd4LWNvbnRleHRtZW51XCI7XHJcblxyXG4vLyBDb21wb25lbnRzXHJcbmltcG9ydCB7IEFkbUF1ZGl0c0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvYXVkaXRzL2FkbV9hdWRpdHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFkbVdya0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvd29ya2Vycy9hZG1fd3JrLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBBZG1Qcm9maWxlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBBZG1Ub3BBY3Rpdml0aWVzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy90b3BhY3QvdG9wYWN0X3NlYXJjaC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQWRtRW5xQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9lbnF1ZXVlcy9hZG1fZW5xLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBBZG1NZXRyaWNzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9tZXRyaWNzL21ldHJpY3Nfc2VhcmNoLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBBZG1Mb2dzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9sb2dzL2FkbV9sb2dzLmNvbXBvbmVudFwiO1xyXG5cclxuLy8gQ29tbXVuaWNhdGlvbiBTZXJ2aWNlXHJcbmltcG9ydCB7IEFkbWluTW9kdWxlQ29tbVNlcnZpY2UgfSBmcm9tIFwiLi9hZG1pbi1tb2R1bGUuY29tbXMuc2VydmljZVwiO1xyXG5cclxuLy8gVG9rZW5zXHJcbmltcG9ydCB7IEFETV9CQUNLRU5EX1VSTCwgQURNX0xPQ0FMRSB9IGZyb20gXCIuL3Rva2Vuc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IHJvdXRlQ29uZmlnID0gW1xyXG4gIHtcclxuICAgIHBhdGg6IFwiXCIsIGNoaWxkcmVuOiBbXHJcbiAgICAgICB7IHBhdGg6IFwic2VydmVyd29ya2Vyc1wiLCBjb21wb25lbnQ6IEFkbVdya0NvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogXCJTZWFyY2ggQXBwbGljYXRpb24gUHJvY2Vzc2VzXCIsIGludGVybmFsTmF2aWdhdGlvbjogZmFsc2UgfSB9LFxyXG4gICAgICAgeyBwYXRoOiBcInByb2ZpbGVyXCIsIGNvbXBvbmVudDogQWRtUHJvZmlsZXJDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6IFwiU2VydmVyIFByb2ZpbGVyXCIsIGludGVybmFsTmF2aWdhdGlvbjogZmFsc2UgfSB9LFxyXG4gICAgICAgeyBwYXRoOiBcInRvcGFjdFwiLCBjb21wb25lbnQ6IEFkbVRvcEFjdGl2aXRpZXNDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6IFwiVG9wIEFjdGl2aXRpZXNcIiwgaW50ZXJuYWxOYXZpZ2F0aW9uOiBmYWxzZSB9IH0sXHJcbiAgICAgICB7IHBhdGg6IFwibWV0cmljc1wiLCBjb21wb25lbnQ6IEFkbU1ldHJpY3NDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6IFwiU3lzdGVtIE1ldHJpY3NcIiwgaW50ZXJuYWxOYXZpZ2F0aW9uOiBmYWxzZSB9IH0sXHJcbiAgICAgICB7IHBhdGg6IFwic2VydmVybG9nc1wiLCBjb21wb25lbnQ6IEFkbUxvZ3NDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6IFwiU2VydmVyIExvZ3NcIiwgaW50ZXJuYWxOYXZpZ2F0aW9uOiBmYWxzZSB9IH0sXHJcbiAgICAgICB7IHBhdGg6IFwic2VydmVyYXVkaXRzXCIsIGNvbXBvbmVudDogQWRtQXVkaXRzQ29tcG9uZW50LCBkYXRhOiB7IHRpdGxlOiBcIlNlYXJjaCBBcHBsaWNhdGlvbiBBdWRpdHNcIiwgaW50ZXJuYWxOYXZpZ2F0aW9uOiBmYWxzZSB9IH0sXHJcbiAgICAgICB7IHBhdGg6IFwic2VydmVyZW5xdWV1ZXNcIiwgY29tcG9uZW50OiBBZG1FbnFDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6IFwiU2VhcmNoIEFwcGxpY2F0aW9uIExvY2tzXCIsIGludGVybmFsTmF2aWdhdGlvbjogZmFsc2UgfSB9LFxyXG4gICAgXVxyXG4gIH1cclxuXTtcclxuXHJcbmNvbnN0IE1PRFVMRVMgPSBbXHJcbiAgLy8gQmFzZVxyXG4gIENvbW1vbk1vZHVsZSxcclxuICBGb3Jtc01vZHVsZSxcclxuXHJcbiAgLy8gTWF0ZXJpYWxcclxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gIE1hdERheWpzRGF0ZU1vZHVsZSxcclxuICBNYXRJY29uTW9kdWxlLFxyXG4gIE1hdElucHV0TW9kdWxlLFxyXG5cclxuICAvLyBCb290c3RyYXBcclxuICBNb2RhbE1vZHVsZSxcclxuICBUb29sdGlwTW9kdWxlLFxyXG4gIEJzRHJvcGRvd25Nb2R1bGUsXHJcbiAgQ3N2TW9kdWxlLFxyXG5cclxuICAvLyBFc2ZhZW56YSBlIGNvbXBvbmVudGkgdmlzdWFsaVxyXG4gIENvbnRleHRNZW51TW9kdWxlLFxyXG4gIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICBFc1RhYmxlTW9kdWxlLFxyXG4gIEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUsXHJcbiAgRXNHZXJ0cnVkZU1vZHVsZSxcclxuICBFc0NoYXJ0c01vZHVsZSxcclxuICBOZ3hNYXREYXRldGltZVBpY2tlck1vZHVsZSxcclxuXHJcbiAgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlQ29uZmlnKSxcclxuXTtcclxuXHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcbiAgQWRtV3JrQ29tcG9uZW50LFxyXG4gIEFkbVByb2ZpbGVyQ29tcG9uZW50LFxyXG4gIEFkbVRvcEFjdGl2aXRpZXNDb21wb25lbnQsXHJcbiAgQWRtTG9nc0NvbXBvbmVudCxcclxuICBBZG1BdWRpdHNDb21wb25lbnQsXHJcbiAgQWRtRW5xQ29tcG9uZW50LFxyXG4gIEFkbU1ldHJpY3NDb21wb25lbnRcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogWy4uLk1PRFVMRVNdLFxyXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFNdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQWRtaW5Nb2R1bGVDb21tU2VydmljZSxcclxuICAgIHsgcHJvdmlkZTogQURNX0xPQ0FMRSwgdXNlVmFsdWU6IG15Y29uZmlnLkxPQ0FMRSB9LFxyXG4gICAgeyBwcm92aWRlOiBBRE1fQkFDS0VORF9VUkwsIHVzZVZhbHVlOiBteWNvbmZpZy5CQUNLRU5EX1VSTCB9LFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbU1vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21tU2VydmljZTogQWRtaW5Nb2R1bGVDb21tU2VydmljZSkge1xyXG4gICAgY29uc29sZS5sb2coXCJAZXNmYWVuemEvYWRtaW4tbW9kdWxlOiBCT09UU1RSQVBcIik7XHJcbiAgICB0aGlzLmNvbW1TZXJ2aWNlLnJlZ2lzdGVyKCk7XHJcbiAgfVxyXG59Il19
@@ -1,15 +1,18 @@
1
+ // Angular
1
2
  import { Component, Inject } from "@angular/core";
2
3
  // Configurazioni
3
4
  import { LocalizationService } from "@esfaenza/localizations";
4
- // Classi
5
- import { AuditsView, Repository } from "../../models";
5
+ import { InboundMessageTypes } from "@esfaenza/extensions";
6
6
  // Applicazione
7
- import { AdmAuditLoc } from "../";
8
- import { ADM_BACKEND_URL } from "../../tokens";
7
+ import { AuditsView } from "../../models/components/AuditsView";
8
+ import { Repository } from "../../models/externals/Repository";
9
+ import { ADM_BACKEND_URL, ADM_MODULE_PATH } from "../../tokens";
10
+ // Localizzazione
11
+ import { AdmAuditLoc } from "./adm_audits.component.loc";
9
12
  import * as i0 from "@angular/core";
10
13
  import * as i1 from "@esfaenza/localizations";
11
- import * as i2 from "@esfaenza/preferences";
12
- import * as i3 from "../../communications/base/BaseModuleCommunicationsConsumer";
14
+ import * as i2 from "@esfaenza/extensions";
15
+ import * as i3 from "@esfaenza/preferences";
13
16
  import * as i4 from "@esfaenza/httpservice";
14
17
  import * as i5 from "@angular/router";
15
18
  import * as i6 from "@angular/common";
@@ -17,19 +20,20 @@ import * as i7 from "@esfaenza/forms-and-validations";
17
20
  import * as i8 from "@esfaenza/es-table";
18
21
  import * as i9 from "@angular/forms";
19
22
  export class AdmAuditsComponent {
20
- constructor(lc, localStorage, _state, http, route, location, backend) {
23
+ constructor(lc, intercom, localStorage, http, route, location, backend, mod) {
21
24
  this.lc = lc;
25
+ this.intercom = intercom;
22
26
  this.localStorage = localStorage;
23
- this._state = _state;
24
27
  this.http = http;
25
28
  this.route = route;
26
29
  this.location = location;
27
30
  this.backend = backend;
31
+ this.mod = mod;
28
32
  this.searchView = new AuditsView();
29
33
  this.Actions = [];
30
34
  this.HttpMethods = [];
31
35
  this.searchInProgress = false;
32
- this._state.handleNavigation(this.route.snapshot.data["title"], false);
36
+ this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
33
37
  this.HttpMethods = [
34
38
  { id: "GET", description: "GET" },
35
39
  { id: "POST", description: "POST" },
@@ -44,9 +48,7 @@ export class AdmAuditsComponent {
44
48
  ];
45
49
  }
46
50
  ngOnInit() {
47
- this.storageSub = this.route.queryParams.subscribe(params => {
48
- this.Init(params["ignoreStorage"]);
49
- });
51
+ this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params["ignoreStorage"]); });
50
52
  }
51
53
  ngOnDestroy() {
52
54
  if (this.storageSub)
@@ -59,7 +61,7 @@ export class AdmAuditsComponent {
59
61
  }
60
62
  else {
61
63
  this.init(null);
62
- this.location.replaceState("/pages/adm/serveraudits");
64
+ this.location.replaceState(`/pages/${this.mod}/serveraudits`);
63
65
  this.route.snapshot.queryParams = [];
64
66
  await this.localStorage.removeItem("HotAudittato").toPromise();
65
67
  }
@@ -75,8 +77,7 @@ export class AdmAuditsComponent {
75
77
  this.searchView = new AuditsView();
76
78
  this.searchView.filterda = dayjs().add(-1, "month").format(this.lc.token("getSmallDateFormat"));
77
79
  this.searchView.filtera = dayjs().format(this.lc.token("getSmallDateFormat"));
78
- //Per fare un primo giro di binding sulla View che serve a valorizzare le colonne del modello anche per la prima chiamata
79
- setTimeout(() => this.sendSearch());
80
+ this.sendSearch();
80
81
  }
81
82
  }
82
83
  sendSearch(resetPage = true) {
@@ -93,13 +94,16 @@ export class AdmAuditsComponent {
93
94
  });
94
95
  }
95
96
  }
96
- AdmAuditsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmAuditsComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PreferencesService }, { token: i3.BaseModuleCommunicationsConsumer }, { token: i4.HTTPService }, { token: i5.ActivatedRoute }, { token: i6.Location }, { token: ADM_BACKEND_URL }], target: i0.ɵɵFactoryTarget.Component });
97
- AdmAuditsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AdmAuditsComponent, selector: "adm_audits", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Search Application Audits' | localize : lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterda\" name=\"filterda\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtera\" name=\"filtera\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filteruser\" [Placeholder]=\"'User' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterroute\" name=\"filterroute\" [Placeholder]=\"'Route' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Action' | localize : lc\" [(ngModel)]=\"searchView.filteraction\" name=\"filteraction\" [Source]=\"Actions\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'HTTP Method' | localize : lc\" [(ngModel)]=\"searchView.filterhttp\" name=\"filterhttp\" [Source]=\"HttpMethods\"></form-select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterargs\" name=\"filterargs\" [Placeholder]=\"'Arguments' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjid\" name=\"filterobjid\" [Placeholder]=\"'Object ID' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjtype\" name=\"filterobjtype\" [Placeholder]=\"'Object Type' | localize : lc\"></form-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchInProgress\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Application Audits' | localize : lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [UseCustomCells]=\"true\"\r\n [HiddenColumns] =\"true\" [ColumnsOrdering]=\"true\" [OrderByColumn]=\"true\"\r\n [MultipleOrderingDirectives]=\"true\"\r\n (onSearchRequest)=\"sendSearch($event);\">\r\n <ng-template #header>\r\n <th es-th=\"Timestamp\" class=\"app-nowrap\">{{'Date' | localize : lc}}</th>\r\n <th es-th=\"User\" class=\"app-nowrap\">{{'User' | localize : lc}}</th>\r\n <th es-th=\"Action\" class=\"app-nowrap\">{{'Action' | localize : lc}}</th>\r\n <th es-th=\"HttpMethod\" class=\"app-nowrap\">{{'HTTP Method' | localize : lc}}</th>\r\n <th es-th=\"Route\" class=\"app-nowrap\">{{'Route' | localize : lc}}</th>\r\n <th es-th=\"Args\" class=\"app-nowrap\">{{'Arguments' | localize : lc}}</th>\r\n <th es-th=\"HttpResponse\" class=\"app-nowrap\">{{'HTTP Response' | localize : lc}}</th>\r\n <th es-th=\"NonStdErrorMessage\" class=\"app-nowrap\">{{'Application Error Code' | localize : lc}}</th>\r\n <th es-th=\"ObjectType\" class=\"app-nowrap\">{{'Object Type' | localize : lc}}</th>\r\n <th es-th=\"ObjectId\" class=\"app-nowrap\">{{'Object ID' | localize : lc}}</th>\r\n <th es-th=\"ObjectData\" class=\"app-nowrap\">{{'Object Data' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-pro>\r\n <td es-td=\"Timestamp\" class=\"app-nowrap\"><strong>{{pro.timestamp | loc_date:'DD/MM/YYYY HH:mm:ss'}}</strong></td>\r\n <td es-td=\"User\" class=\"app-nowrap\">{{pro.user}}</td>\r\n <td es-td=\"Action\" class=\"app-nowrap\">{{pro.action}}</td>\r\n <td es-td=\"HttpMethod\" class=\"app-nowrap\">{{pro.httpmethod}}</td>\r\n <td es-td=\"Route\" class=\"app-nowrap\">{{pro.route}}</td>\r\n <td es-td=\"Args\" class=\"app-nowrap\">{{pro.args}}</td>\r\n <td es-td=\"HttpResponse\" class=\"app-nowrap\">{{pro.httpresponse}}</td>\r\n <td es-td=\"NonStdErrorMessage\" class=\"app-nowrap\">{{pro.mdmerrorcode}}</td>\r\n <td es-td=\"ObjectType\" class=\"app-nowrap\">{{pro.objecttype}}</td>\r\n <td es-td=\"ObjectId\" class=\"app-nowrap\">{{pro.objectid}}</td>\r\n <td es-td=\"ObjectData\" class=\"app-nowrap\">{{pro.objectdata}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i7.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { type: i7.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { type: i7.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol"] }, { type: i8.EsTableComponent, selector: "es-table", inputs: ["CornerMenuOptions", "ColumnsResizable", "AutoUpdate", "UseCustomCells", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "PagingStyle", "RowGroupingPagingStyle", "SecondarySource", "TertiarySource", "UseSelectionCache", "ShowItemGroupsColumns", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onCornerAction", "onDynamicOperation"] }], directives: [{ type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "localize": i1.LocalizePipe, "loc_date": i1.LocDatePipe }, viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }] });
97
+ AdmAuditsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmAuditsComponent, deps: [{ token: i1.LocalizationService }, { token: i2.InterComService }, { token: i3.PreferencesService }, { token: i4.HTTPService }, { token: i5.ActivatedRoute }, { token: i6.Location }, { token: ADM_BACKEND_URL }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
98
+ AdmAuditsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AdmAuditsComponent, selector: "adm_audits", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Search Application Audits' | localize : lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterda\" name=\"filterda\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtera\" name=\"filtera\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filteruser\" [Placeholder]=\"'User' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterroute\" name=\"filterroute\" [Placeholder]=\"'Route' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Action' | localize : lc\" [(ngModel)]=\"searchView.filteraction\" name=\"filteraction\" [Source]=\"Actions\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'HTTP Method' | localize : lc\" [(ngModel)]=\"searchView.filterhttp\" name=\"filterhttp\" [Source]=\"HttpMethods\"></form-select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterargs\" name=\"filterargs\" [Placeholder]=\"'Arguments' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjid\" name=\"filterobjid\" [Placeholder]=\"'Object ID' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjtype\" name=\"filterobjtype\" [Placeholder]=\"'Object Type' | localize : lc\"></form-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchInProgress\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Application Audits' | localize : lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [MultipleOrderingDirectives]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'Timestamp'\">{{'Date' | localize : lc}}</span>\r\n <span *th=\"'User'\">{{'User' | localize : lc}}</span>\r\n <span *th=\"'Action'\">{{'Action' | localize : lc}}</span>\r\n <span *th=\"'HttpMethod'\">{{'HTTP Method' | localize : lc}}</span>\r\n <span *th=\"'Route'\">{{'Route' | localize : lc}}</span>\r\n <span *th=\"'Args'\">{{'Arguments' | localize : lc}}</span>\r\n <span *th=\"'HttpResponse'\">{{'HTTP Response' | localize : lc}}</span>\r\n <span *th=\"'NonStdErrorMessage'\">{{'Application Error Code' | localize : lc}}</span>\r\n <span *th=\"'ObjectType'\">{{'Object Type' | localize : lc}}</span>\r\n <span *th=\"'ObjectId'\">{{'Object ID' | localize : lc}}</span>\r\n <span *th=\"'ObjectData'\">{{'Object Data' | localize : lc}}</span>\r\n \r\n <strong *td=\"'Timestamp'; let pro\">{{pro.timestamp | loc_date:'DD/MM/YYYY HH:mm:ss'}}</strong>\r\n <span *td=\"'User'; let pro\">{{pro.user}}</span>\r\n <span *td=\"'Action'; let pro\">{{pro.action}}</span>\r\n <span *td=\"'HttpMethod'; let pro\">{{pro.httpmethod}}</span>\r\n <span *td=\"'Route'; let pro\">{{pro.route}}</span>\r\n <span *td=\"'Args'; let pro\">{{pro.args}}</span>\r\n <span *td=\"'HttpResponse'; let pro\">{{pro.httpresponse}}</span>\r\n <span *td=\"'NonStdErrorMessage'; let pro\">{{pro.mdmerrorcode}}</span>\r\n <span *td=\"'ObjectType'; let pro\">{{pro.objecttype}}</span>\r\n <span *td=\"'ObjectId'; let pro\">{{pro.objectid}}</span>\r\n <span *td=\"'ObjectData'; let pro\">{{pro.objectdata}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i7.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { type: i7.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { type: i7.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol"] }, { type: i8.EsTableComponent, selector: "es-table", inputs: ["CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "UseCustomCells", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "PagingStyle", "RowGroupingPagingStyle", "SecondarySource", "TertiarySource", "UseSelectionCache", "ShowItemGroupsColumns", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onCornerAction", "onDynamicOperation"] }], directives: [{ type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.EsThDirective, selector: "[th]", inputs: ["th", "thPinned", "thPinnable", "thPinnedWidth", "thVisible", "thFixed", "thParent", "thOrder", "thOrderable", "thWrap", "thResizable", "thClass", "thGroupClass", "thIf", "thEmpty", "thGroup", "thAggregation"] }, { type: i8.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdIf", "tdClass"] }], pipes: { "localize": i1.LocalizePipe, "loc_date": i1.LocDatePipe }, viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }] });
98
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmAuditsComponent, decorators: [{
99
100
  type: Component,
100
- args: [{ selector: "adm_audits", viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Search Application Audits' | localize : lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterda\" name=\"filterda\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtera\" name=\"filtera\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filteruser\" [Placeholder]=\"'User' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterroute\" name=\"filterroute\" [Placeholder]=\"'Route' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Action' | localize : lc\" [(ngModel)]=\"searchView.filteraction\" name=\"filteraction\" [Source]=\"Actions\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'HTTP Method' | localize : lc\" [(ngModel)]=\"searchView.filterhttp\" name=\"filterhttp\" [Source]=\"HttpMethods\"></form-select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterargs\" name=\"filterargs\" [Placeholder]=\"'Arguments' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjid\" name=\"filterobjid\" [Placeholder]=\"'Object ID' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjtype\" name=\"filterobjtype\" [Placeholder]=\"'Object Type' | localize : lc\"></form-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchInProgress\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Application Audits' | localize : lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [UseCustomCells]=\"true\"\r\n [HiddenColumns] =\"true\" [ColumnsOrdering]=\"true\" [OrderByColumn]=\"true\"\r\n [MultipleOrderingDirectives]=\"true\"\r\n (onSearchRequest)=\"sendSearch($event);\">\r\n <ng-template #header>\r\n <th es-th=\"Timestamp\" class=\"app-nowrap\">{{'Date' | localize : lc}}</th>\r\n <th es-th=\"User\" class=\"app-nowrap\">{{'User' | localize : lc}}</th>\r\n <th es-th=\"Action\" class=\"app-nowrap\">{{'Action' | localize : lc}}</th>\r\n <th es-th=\"HttpMethod\" class=\"app-nowrap\">{{'HTTP Method' | localize : lc}}</th>\r\n <th es-th=\"Route\" class=\"app-nowrap\">{{'Route' | localize : lc}}</th>\r\n <th es-th=\"Args\" class=\"app-nowrap\">{{'Arguments' | localize : lc}}</th>\r\n <th es-th=\"HttpResponse\" class=\"app-nowrap\">{{'HTTP Response' | localize : lc}}</th>\r\n <th es-th=\"NonStdErrorMessage\" class=\"app-nowrap\">{{'Application Error Code' | localize : lc}}</th>\r\n <th es-th=\"ObjectType\" class=\"app-nowrap\">{{'Object Type' | localize : lc}}</th>\r\n <th es-th=\"ObjectId\" class=\"app-nowrap\">{{'Object ID' | localize : lc}}</th>\r\n <th es-th=\"ObjectData\" class=\"app-nowrap\">{{'Object Data' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-pro>\r\n <td es-td=\"Timestamp\" class=\"app-nowrap\"><strong>{{pro.timestamp | loc_date:'DD/MM/YYYY HH:mm:ss'}}</strong></td>\r\n <td es-td=\"User\" class=\"app-nowrap\">{{pro.user}}</td>\r\n <td es-td=\"Action\" class=\"app-nowrap\">{{pro.action}}</td>\r\n <td es-td=\"HttpMethod\" class=\"app-nowrap\">{{pro.httpmethod}}</td>\r\n <td es-td=\"Route\" class=\"app-nowrap\">{{pro.route}}</td>\r\n <td es-td=\"Args\" class=\"app-nowrap\">{{pro.args}}</td>\r\n <td es-td=\"HttpResponse\" class=\"app-nowrap\">{{pro.httpresponse}}</td>\r\n <td es-td=\"NonStdErrorMessage\" class=\"app-nowrap\">{{pro.mdmerrorcode}}</td>\r\n <td es-td=\"ObjectType\" class=\"app-nowrap\">{{pro.objecttype}}</td>\r\n <td es-td=\"ObjectId\" class=\"app-nowrap\">{{pro.objectid}}</td>\r\n <td es-td=\"ObjectData\" class=\"app-nowrap\">{{pro.objectdata}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
101
- }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.PreferencesService }, { type: i3.BaseModuleCommunicationsConsumer }, { type: i4.HTTPService }, { type: i5.ActivatedRoute }, { type: i6.Location }, { type: undefined, decorators: [{
101
+ args: [{ selector: "adm_audits", viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Search Application Audits' | localize : lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterda\" name=\"filterda\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtera\" name=\"filtera\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filteruser\" [Placeholder]=\"'User' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterroute\" name=\"filterroute\" [Placeholder]=\"'Route' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Action' | localize : lc\" [(ngModel)]=\"searchView.filteraction\" name=\"filteraction\" [Source]=\"Actions\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'HTTP Method' | localize : lc\" [(ngModel)]=\"searchView.filterhttp\" name=\"filterhttp\" [Source]=\"HttpMethods\"></form-select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterargs\" name=\"filterargs\" [Placeholder]=\"'Arguments' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjid\" name=\"filterobjid\" [Placeholder]=\"'Object ID' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjtype\" name=\"filterobjtype\" [Placeholder]=\"'Object Type' | localize : lc\"></form-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchInProgress\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Application Audits' | localize : lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [MultipleOrderingDirectives]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'Timestamp'\">{{'Date' | localize : lc}}</span>\r\n <span *th=\"'User'\">{{'User' | localize : lc}}</span>\r\n <span *th=\"'Action'\">{{'Action' | localize : lc}}</span>\r\n <span *th=\"'HttpMethod'\">{{'HTTP Method' | localize : lc}}</span>\r\n <span *th=\"'Route'\">{{'Route' | localize : lc}}</span>\r\n <span *th=\"'Args'\">{{'Arguments' | localize : lc}}</span>\r\n <span *th=\"'HttpResponse'\">{{'HTTP Response' | localize : lc}}</span>\r\n <span *th=\"'NonStdErrorMessage'\">{{'Application Error Code' | localize : lc}}</span>\r\n <span *th=\"'ObjectType'\">{{'Object Type' | localize : lc}}</span>\r\n <span *th=\"'ObjectId'\">{{'Object ID' | localize : lc}}</span>\r\n <span *th=\"'ObjectData'\">{{'Object Data' | localize : lc}}</span>\r\n \r\n <strong *td=\"'Timestamp'; let pro\">{{pro.timestamp | loc_date:'DD/MM/YYYY HH:mm:ss'}}</strong>\r\n <span *td=\"'User'; let pro\">{{pro.user}}</span>\r\n <span *td=\"'Action'; let pro\">{{pro.action}}</span>\r\n <span *td=\"'HttpMethod'; let pro\">{{pro.httpmethod}}</span>\r\n <span *td=\"'Route'; let pro\">{{pro.route}}</span>\r\n <span *td=\"'Args'; let pro\">{{pro.args}}</span>\r\n <span *td=\"'HttpResponse'; let pro\">{{pro.httpresponse}}</span>\r\n <span *td=\"'NonStdErrorMessage'; let pro\">{{pro.mdmerrorcode}}</span>\r\n <span *td=\"'ObjectType'; let pro\">{{pro.objecttype}}</span>\r\n <span *td=\"'ObjectId'; let pro\">{{pro.objectid}}</span>\r\n <span *td=\"'ObjectData'; let pro\">{{pro.objectdata}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
102
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.InterComService }, { type: i3.PreferencesService }, { type: i4.HTTPService }, { type: i5.ActivatedRoute }, { type: i6.Location }, { type: undefined, decorators: [{
102
103
  type: Inject,
103
104
  args: [ADM_BACKEND_URL]
105
+ }] }, { type: undefined, decorators: [{
106
+ type: Inject,
107
+ args: [ADM_MODULE_PATH]
104
108
  }] }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX2F1ZGl0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2F1ZGl0cy9hZG1fYXVkaXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvYXVkaXRzL2FkbV9hdWRpdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSTlELFNBQVM7QUFDVCxPQUFPLEVBQVksVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRSxlQUFlO0FBQ2YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUlsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7OztBQWEvQyxNQUFNLE9BQU8sa0JBQWtCO0lBUTNCLFlBQ1csRUFBdUIsRUFDdEIsWUFBZ0MsRUFDaEMsTUFBd0MsRUFDeEMsSUFBaUIsRUFDakIsS0FBcUIsRUFDckIsUUFBa0IsRUFDTyxPQUFlO1FBTnpDLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFrQztRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDTyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBYjdDLGVBQVUsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzFDLFlBQU8sR0FB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QyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7MkZBRy9ELGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxZQUFZLGlCQUNQLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDOzswQkFrQm5FLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvcHJlZmVyZW5jZXNcIjtcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcblxyXG4vLyBDbGFzc2lcclxuaW1wb3J0IHsgS2V5VmFsdWUsIEF1ZGl0c1ZpZXcsIFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgQWRtQXVkaXRMb2MgfSBmcm9tIFwiLi4vXCI7XHJcblxyXG4vLyBDaGlhbWF0ZSBhaSBSZXBvc2l0b3J5XHJcbmltcG9ydCB7IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyIH0gZnJvbSBcIi4uLy4uL2NvbW11bmljYXRpb25zL2Jhc2UvQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXJcIjtcclxuaW1wb3J0IHsgQURNX0JBQ0tFTkRfVVJMIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLyoqXHJcbiAqIERpY2hpYXJhemlvbmUgZGVsbGEgdmFyaWFiaWxlIGdsb2JhbGUgZGF5anMuIEwnb25lcmUgZGkgXCJjcmVhcmxhXCIgw6ggYWZmaWRhdG8gYWxsJ2FwcGxpY2F6aW9uZSBjaGUgdXRpbGl6emEgcXVlc3RhIGxpYnJlcmlhLCBcclxuICogY2hlIGRvdnLDoCBpbXBvcnRhcmUgbG8gc2NyaXB0IGdsb2JhbGUgZGkgZGF5anMgbmVsbGEgQ0xJXHJcbiAqL1xyXG4gZGVjbGFyZSB2YXIgZGF5anM6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYWRtX2F1ZGl0c1wiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbUF1ZGl0TG9jIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9hZG1fYXVkaXRzLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbUF1ZGl0c0NvbXBvbmVudCB7XHJcblxyXG4gICAgcHVibGljIHNlYXJjaFZpZXc6IEF1ZGl0c1ZpZXcgPSBuZXcgQXVkaXRzVmlldygpO1xyXG4gICAgcHVibGljIEFjdGlvbnM6IEtleVZhbHVlW10gPSBbXTtcclxuICAgIHB1YmxpYyBIdHRwTWV0aG9kczogS2V5VmFsdWVbXSA9IFtdO1xyXG4gICAgcHVibGljIHNlYXJjaEluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzdG9yYWdlU3ViOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc3RhdGU6IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgQEluamVjdChBRE1fQkFDS0VORF9VUkwpIHByaXZhdGUgYmFja2VuZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXRlLmhhbmRsZU5hdmlnYXRpb24odGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0sIGZhbHNlKTtcclxuXHJcbiAgICAgICAgdGhpcy5IdHRwTWV0aG9kcyA9IFtcclxuICAgICAgICAgICAgeyBpZDogXCJHRVRcIiwgZGVzY3JpcHRpb246IFwiR0VUXCIgfSxcclxuICAgICAgICAgICAgeyBpZDogXCJQT1NUXCIsIGRlc2NyaXB0aW9uOiBcIlBPU1RcIiB9LFxyXG4gICAgICAgICAgICB7IGlkOiBcIlBVVFwiLCBkZXNjcmlwdGlvbjogXCJQVVRcIiB9LFxyXG4gICAgICAgICAgICB7IGlkOiBcIlBBVENIXCIsIGRlc2NyaXB0aW9uOiBcIlBBVENIXCIgfSxcclxuICAgICAgICAgICAgeyBpZDogXCJERUxFVEVcIiwgZGVzY3JpcHRpb246IFwiREVMRVRFXCIgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMuQWN0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBpZDogXCJDXCIsIGRlc2NyaXB0aW9uOiB0aGlzLmxjLmxvYyhcIlJFU1QgQ2FsbFwiKSB9LFxyXG4gICAgICAgICAgICB7IGlkOiBcIlVcIiwgZGVzY3JpcHRpb246IHRoaXMubGMubG9jKFwiVXBkYXRlXCIpIH0sXHJcbiAgICAgICAgICAgIHsgaWQ6IFwiRFwiLCBkZXNjcmlwdGlvbjogdGhpcy5sYy5sb2MoXCJEZWxldGVcIikgfVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIEluaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxBdWRpdHNWaWV3PihcIkhvdEF1ZGl0dGF0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICBpZiAoIWlnbm9yZVN0b3JhZ2UgJiYgaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShcIi9wYWdlcy9hZG0vc2VydmVyYXVkaXRzXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zID0gW107XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJIb3RBdWRpdHRhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoSG90UG90YXRvOiBBdWRpdHNWaWV3KSB7XHJcbiAgICAgICAgLy9TZSBobyBsYSBIb3RQb3RhdG8gdnVvbCBkaXJlIGNoZSBzb25vIGFwcGVuYSB0b3JuYXRvIGRhbGwnZWRpdC9udW92by4gUmlmYWNjaW8gbGEgcmljZXJjYSBpbiBiYXNlIGFpIGZpbHRyaSBwcmVjZWRlbnRpXHJcbiAgICAgICAgLy9BbHRpcm1lbnRpIGdlbmVybyBpbCBtb2RlbGxvIG51b3ZvIG5vcm1hbG1lbnRlXHJcbiAgICAgICAgaWYgKEhvdFBvdGF0bykge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBIb3RQb3RhdG87XHJcblxyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlckF1ZGl0c1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBBdWRpdHNWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJkYSA9IGRheWpzKCkuYWRkKC0xLCBcIm1vbnRoXCIpLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0U21hbGxEYXRlRm9ybWF0XCIpKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LmZpbHRlcmEgPSBkYXlqcygpLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0U21hbGxEYXRlRm9ybWF0XCIpKTtcclxuXHJcbiAgICAgICAgICAgIC8vUGVyIGZhcmUgdW4gcHJpbW8gZ2lybyBkaSBiaW5kaW5nIHN1bGxhIFZpZXcgY2hlIHNlcnZlIGEgdmFsb3JpenphcmUgbGUgY29sb25uZSBkZWwgbW9kZWxsbyBhbmNoZSBwZXIgbGEgcHJpbWEgY2hpYW1hdGFcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlckF1ZGl0c1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0UHJvY2Vzc2VzKHVybDogc3RyaW5nLCBkYXRhOiBBdWRpdHNWaWV3KSB7XHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8QXVkaXRzVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90QXVkaXR0YXRvXCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPnt7J1NlYXJjaCBBcHBsaWNhdGlvbiBBdWRpdHMnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBib3R0b20tMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiByb3cgYXBwLW5vLXBhZGRpbmcgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZGFcIiBuYW1lPVwiZmlsdGVyZGFcIiBbUGxhY2Vob2xkZXJdPVwiJ0Zyb20nIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1kYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWRhdGUgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJhXCIgbmFtZT1cImZpbHRlcmFcIiBbUGxhY2Vob2xkZXJdPVwiJ1RvJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnVzZXJcIiBuYW1lPVwiZmlsdGVydXNlclwiIFtQbGFjZWhvbGRlcl09XCInVXNlcicgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVycm91dGVcIiBuYW1lPVwiZmlsdGVycm91dGVcIiBbUGxhY2Vob2xkZXJdPVwiJ1JvdXRlJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tc2VsZWN0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbU2VsZWN0TGFiZWxdPVwiJ0FjdGlvbicgfCBsb2NhbGl6ZSA6IGxjXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcmFjdGlvblwiIG5hbWU9XCJmaWx0ZXJhY3Rpb25cIiBbU291cmNlXT1cIkFjdGlvbnNcIj48L2Zvcm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLXNlbGVjdCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgW1NlbGVjdExhYmVsXT1cIidIVFRQIE1ldGhvZCcgfCBsb2NhbGl6ZSA6IGxjXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcmh0dHBcIiBuYW1lPVwiZmlsdGVyaHR0cFwiIFtTb3VyY2VdPVwiSHR0cE1ldGhvZHNcIj48L2Zvcm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHJvdyBhcHAtbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJhcmdzXCIgbmFtZT1cImZpbHRlcmFyZ3NcIiBbUGxhY2Vob2xkZXJdPVwiJ0FyZ3VtZW50cycgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyb2JqaWRcIiBuYW1lPVwiZmlsdGVyb2JqaWRcIiBbUGxhY2Vob2xkZXJdPVwiJ09iamVjdCBJRCcgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyb2JqdHlwZVwiIG5hbWU9XCJmaWx0ZXJvYmp0eXBlXCIgW1BsYWNlaG9sZGVyXT1cIidPYmplY3QgVHlwZScgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGFwcC1uby1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoSW5Qcm9ncmVzc1wiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snTG9hZGluZyBBcHBsaWNhdGlvbiBBdWRpdHMnIHwgbG9jYWxpemUgOiBsY319Li4uPC9lbT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtdGFibGUgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3XCIgW1VzZUN1c3RvbUNlbGxzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtIaWRkZW5Db2x1bW5zXSA9XCJ0cnVlXCIgW0NvbHVtbnNPcmRlcmluZ109XCJ0cnVlXCIgW09yZGVyQnlDb2x1bW5dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW011bHRpcGxlT3JkZXJpbmdEaXJlY3RpdmVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblNlYXJjaFJlcXVlc3QpPVwic2VuZFNlYXJjaCgkZXZlbnQpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCJUaW1lc3RhbXBcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydEYXRlJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBlcy10aD1cIlVzZXJcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydVc2VyJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBlcy10aD1cIkFjdGlvblwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7J0FjdGlvbicgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCJIdHRwTWV0aG9kXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snSFRUUCBNZXRob2QnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiUm91dGVcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydSb3V0ZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCJBcmdzXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snQXJndW1lbnRzJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBlcy10aD1cIkh0dHBSZXNwb25zZVwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7J0hUVFAgUmVzcG9uc2UnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiTm9uU3RkRXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snQXBwbGljYXRpb24gRXJyb3IgQ29kZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCJPYmplY3RUeXBlXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snT2JqZWN0IFR5cGUnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiT2JqZWN0SWRcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydPYmplY3QgSUQnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiT2JqZWN0RGF0YVwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7J09iamVjdCBEYXRhJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHkgbGV0LXBybz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzLXRkPVwiVGltZXN0YW1wXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+PHN0cm9uZz57e3Byby50aW1lc3RhbXAgfCBsb2NfZGF0ZTonREQvTU0vWVlZWSBISDptbTpzcyd9fTwvc3Ryb25nPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBlcy10ZD1cIlVzZXJcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57e3Byby51c2VyfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCJBY3Rpb25cIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57e3Byby5hY3Rpb259fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBlcy10ZD1cIkh0dHBNZXRob2RcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57e3Byby5odHRwbWV0aG9kfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCJSb3V0ZVwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7cHJvLnJvdXRlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCJBcmdzXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3twcm8uYXJnc319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzLXRkPVwiSHR0cFJlc3BvbnNlXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3twcm8uaHR0cHJlc3BvbnNlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCJOb25TdGRFcnJvck1lc3NhZ2VcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57e3Byby5tZG1lcnJvcmNvZGV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBlcy10ZD1cIk9iamVjdFR5cGVcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57e3Byby5vYmplY3R0eXBlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCJPYmplY3RJZFwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7cHJvLm9iamVjdGlkfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCJPYmplY3REYXRhXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3twcm8ub2JqZWN0ZGF0YX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lcy10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX2F1ZGl0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2F1ZGl0cy9hZG1fYXVkaXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvYXVkaXRzL2FkbV9hdWRpdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUUsZUFBZTtBQUNmLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFaEUsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLGtCQUFrQjtJQVEzQixZQUNXLEVBQXVCLEVBQ3RCLFFBQXlCLEVBQ3pCLFlBQWdDLEVBQ2hDLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLFFBQWtCLEVBQ08sT0FBZSxFQUNmLEdBQVc7UUFQckMsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBQ2hDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsVUFBSyxH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LEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0UsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzsrR0FyRlEsa0JBQWtCLHVNQWVmLGVBQWUsYUFDZixlQUFlO21HQWhCbEIsa0JBQWtCLGtEQ3pCL0IsMnZPQXFGTSwwckZEL0RhLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDOzJGQUcvRCxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksWUFBWSxpQkFDUCxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQzs7MEJBa0JuRSxNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbnRlckNvbVNlcnZpY2UsIEluYm91bmRNZXNzYWdlVHlwZXMgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBBdWRpdHNWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL0F1ZGl0c1ZpZXdcIjtcclxuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NoYXJlZC9LZXlWYWx1ZVwiO1xyXG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeVwiO1xyXG5pbXBvcnQgeyBBRE1fQkFDS0VORF9VUkwsIEFETV9NT0RVTEVfUEFUSCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbUF1ZGl0TG9jIH0gZnJvbSBcIi4vYWRtX2F1ZGl0cy5jb21wb25lbnQubG9jXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFkbV9hdWRpdHNcIixcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBBZG1BdWRpdExvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX2F1ZGl0cy5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1BdWRpdHNDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBBdWRpdHNWaWV3ID0gbmV3IEF1ZGl0c1ZpZXcoKTtcclxuICAgIHB1YmxpYyBBY3Rpb25zOiBLZXlWYWx1ZVtdID0gW107XHJcbiAgICBwdWJsaWMgSHR0cE1ldGhvZHM6IEtleVZhbHVlW10gPSBbXTtcclxuICAgIHB1YmxpYyBzZWFyY2hJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEhUVFBTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgICAgIEBJbmplY3QoQURNX0JBQ0tFTkRfVVJMKSBwcml2YXRlIGJhY2tlbmQ6IHN0cmluZyxcclxuICAgICAgICBASW5qZWN0KEFETV9NT0RVTEVfUEFUSCkgcHJpdmF0ZSBtb2Q6IHN0cmluZykge1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uLCB7IHN1YjogZmFsc2UsIHJvdXRlVGl0bGU6IHRoaXMubGMubG9jKHRoaXMucm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdKSB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5IdHRwTWV0aG9kcyA9IFtcclxuICAgICAgICAgICAgeyBpZDogXCJHRVRcIiwgZGVzY3JpcHRpb246IFwiR0VUXCIgfSxcclxuICAgICAgICAgICAgeyBpZDogXCJQT1NUXCIsIGRlc2NyaXB0aW9uOiBcIlBPU1RcIiB9LFxyXG4gICAgICAgICAgICB7IGlkOiBcIlBVVFwiLCBkZXNjcmlwdGlvbjogXCJQVVRcIiB9LFxyXG4gICAgICAgICAgICB7IGlkOiBcIlBBVENIXCIsIGRlc2NyaXB0aW9uOiBcIlBBVENIXCIgfSxcclxuICAgICAgICAgICAgeyBpZDogXCJERUxFVEVcIiwgZGVzY3JpcHRpb246IFwiREVMRVRFXCIgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMuQWN0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBpZDogXCJDXCIsIGRlc2NyaXB0aW9uOiB0aGlzLmxjLmxvYyhcIlJFU1QgQ2FsbFwiKSB9LFxyXG4gICAgICAgICAgICB7IGlkOiBcIlVcIiwgZGVzY3JpcHRpb246IHRoaXMubGMubG9jKFwiVXBkYXRlXCIpIH0sXHJcbiAgICAgICAgICAgIHsgaWQ6IFwiRFwiLCBkZXNjcmlwdGlvbjogdGhpcy5sYy5sb2MoXCJEZWxldGVcIikgfVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHsgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pOyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBJbml0KGlnbm9yZVN0b3JhZ2UpIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08QXVkaXRzVmlldz4oXCJIb3RBdWRpdHRhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoYC9wYWdlcy8ke3RoaXMubW9kfS9zZXJ2ZXJhdWRpdHNgKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90QXVkaXR0YXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogQXVkaXRzVmlldykge1xyXG4gICAgICAgIC8vU2UgaG8gbGEgSG90UG90YXRvIHZ1b2wgZGlyZSBjaGUgc29ubyBhcHBlbmEgdG9ybmF0byBkYWxsJ2VkaXQvbnVvdm8uIFJpZmFjY2lvIGxhIHJpY2VyY2EgaW4gYmFzZSBhaSBmaWx0cmkgcHJlY2VkZW50aVxyXG4gICAgICAgIC8vQWx0aXJtZW50aSBnZW5lcm8gaWwgbW9kZWxsbyBudW92byBub3JtYWxtZW50ZVxyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlckF1ZGl0c1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBBdWRpdHNWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJkYSA9IGRheWpzKCkuYWRkKC0xLCBcIm1vbnRoXCIpLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0U21hbGxEYXRlRm9ybWF0XCIpKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LmZpbHRlcmEgPSBkYXlqcygpLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0U21hbGxEYXRlRm9ybWF0XCIpKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlckF1ZGl0c1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0UHJvY2Vzc2VzKHVybDogc3RyaW5nLCBkYXRhOiBBdWRpdHNWaWV3KSB7XHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8QXVkaXRzVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90QXVkaXR0YXRvXCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPnt7J1NlYXJjaCBBcHBsaWNhdGlvbiBBdWRpdHMnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBib3R0b20tMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiByb3cgYXBwLW5vLXBhZGRpbmcgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZGFcIiBuYW1lPVwiZmlsdGVyZGFcIiBbUGxhY2Vob2xkZXJdPVwiJ0Zyb20nIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1kYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWRhdGUgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJhXCIgbmFtZT1cImZpbHRlcmFcIiBbUGxhY2Vob2xkZXJdPVwiJ1RvJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnVzZXJcIiBuYW1lPVwiZmlsdGVydXNlclwiIFtQbGFjZWhvbGRlcl09XCInVXNlcicgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVycm91dGVcIiBuYW1lPVwiZmlsdGVycm91dGVcIiBbUGxhY2Vob2xkZXJdPVwiJ1JvdXRlJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tc2VsZWN0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbU2VsZWN0TGFiZWxdPVwiJ0FjdGlvbicgfCBsb2NhbGl6ZSA6IGxjXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcmFjdGlvblwiIG5hbWU9XCJmaWx0ZXJhY3Rpb25cIiBbU291cmNlXT1cIkFjdGlvbnNcIj48L2Zvcm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLXNlbGVjdCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgW1NlbGVjdExhYmVsXT1cIidIVFRQIE1ldGhvZCcgfCBsb2NhbGl6ZSA6IGxjXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcmh0dHBcIiBuYW1lPVwiZmlsdGVyaHR0cFwiIFtTb3VyY2VdPVwiSHR0cE1ldGhvZHNcIj48L2Zvcm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHJvdyBhcHAtbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJhcmdzXCIgbmFtZT1cImZpbHRlcmFyZ3NcIiBbUGxhY2Vob2xkZXJdPVwiJ0FyZ3VtZW50cycgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyb2JqaWRcIiBuYW1lPVwiZmlsdGVyb2JqaWRcIiBbUGxhY2Vob2xkZXJdPVwiJ09iamVjdCBJRCcgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyb2JqdHlwZVwiIG5hbWU9XCJmaWx0ZXJvYmp0eXBlXCIgW1BsYWNlaG9sZGVyXT1cIidPYmplY3QgVHlwZScgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGFwcC1uby1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoSW5Qcm9ncmVzc1wiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snTG9hZGluZyBBcHBsaWNhdGlvbiBBdWRpdHMnIHwgbG9jYWxpemUgOiBsY319Li4uPC9lbT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtdGFibGUgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3XCIgW011bHRpcGxlT3JkZXJpbmdEaXJlY3RpdmVzXT1cInRydWVcIiAob25TZWFyY2hSZXF1ZXN0KT1cInNlbmRTZWFyY2goJGV2ZW50KTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIidUaW1lc3RhbXAnXCI+e3snRGF0ZScgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJ1VzZXInXCI+e3snVXNlcicgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJ0FjdGlvbidcIj57eydBY3Rpb24nIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIidIdHRwTWV0aG9kJ1wiPnt7J0hUVFAgTWV0aG9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInUm91dGUnXCI+e3snUm91dGUnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIidBcmdzJ1wiPnt7J0FyZ3VtZW50cycgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJ0h0dHBSZXNwb25zZSdcIj57eydIVFRQIFJlc3BvbnNlJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInTm9uU3RkRXJyb3JNZXNzYWdlJ1wiPnt7J0FwcGxpY2F0aW9uIEVycm9yIENvZGUnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIidPYmplY3RUeXBlJ1wiPnt7J09iamVjdCBUeXBlJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInT2JqZWN0SWQnXCI+e3snT2JqZWN0IElEJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInT2JqZWN0RGF0YSdcIj57eydPYmplY3QgRGF0YScgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nICp0ZD1cIidUaW1lc3RhbXAnOyBsZXQgcHJvXCI+e3twcm8udGltZXN0YW1wIHwgbG9jX2RhdGU6J0REL01NL1lZWVkgSEg6bW06c3MnfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInVXNlcic7IGxldCBwcm9cIj57e3Byby51c2VyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJ0FjdGlvbic7IGxldCBwcm9cIj57e3Byby5hY3Rpb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInSHR0cE1ldGhvZCc7IGxldCBwcm9cIj57e3Byby5odHRwbWV0aG9kfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJ1JvdXRlJzsgbGV0IHByb1wiPnt7cHJvLnJvdXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJ0FyZ3MnOyBsZXQgcHJvXCI+e3twcm8uYXJnc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIidIdHRwUmVzcG9uc2UnOyBsZXQgcHJvXCI+e3twcm8uaHR0cHJlc3BvbnNlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJ05vblN0ZEVycm9yTWVzc2FnZSc7IGxldCBwcm9cIj57e3Byby5tZG1lcnJvcmNvZGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInT2JqZWN0VHlwZSc7IGxldCBwcm9cIj57e3Byby5vYmplY3R0eXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJ09iamVjdElkJzsgbGV0IHByb1wiPnt7cHJvLm9iamVjdGlkfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJ09iamVjdERhdGEnOyBsZXQgcHJvXCI+e3twcm8ub2JqZWN0ZGF0YX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lcy10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19