@quadrel-enterprise-ui/framework 18.31.2 → 18.31.4

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 (45) hide show
  1. package/esm2022/lib/comments/comments.component.mjs +3 -3
  2. package/esm2022/lib/dialog/dialog.component.mjs +80 -37
  3. package/esm2022/lib/dialog/dialog.module.mjs +20 -8
  4. package/esm2022/lib/dialog/directives/pending-changes-guard.directive.mjs +7 -7
  5. package/esm2022/lib/dialog/models/dialog-close.model.mjs +2 -0
  6. package/esm2022/lib/dialog/models/page-dialog-host.token.mjs +9 -0
  7. package/esm2022/lib/dialog/services/confirmation-dialog.service.mjs +2 -2
  8. package/esm2022/lib/dialog/services/dialog.service.mjs +36 -8
  9. package/esm2022/lib/file-collector/allowed-files-description/file-collector-allowed-files-description.component.mjs +3 -3
  10. package/esm2022/lib/file-collector/dialog/item/error/file-collector-dialog-item-error.component.mjs +3 -3
  11. package/esm2022/lib/forms/input/input.component.mjs +4 -2
  12. package/esm2022/lib/page/model/page-config.interface.mjs +1 -1
  13. package/esm2022/lib/page/page.component.mjs +37 -13
  14. package/esm2022/lib/shell/header/service-navigation/shell-service-navigation.component.mjs +4 -4
  15. package/esm2022/lib/table/services/resolver.service.mjs +30 -7
  16. package/fesm2022/quadrel-enterprise-ui-framework.mjs +712 -577
  17. package/fesm2022/quadrel-enterprise-ui-framework.mjs.map +1 -1
  18. package/lib/dialog/dialog.component.d.ts +15 -6
  19. package/lib/dialog/dialog.component.d.ts.map +1 -1
  20. package/lib/dialog/dialog.module.d.ts +3 -3
  21. package/lib/dialog/dialog.module.d.ts.map +1 -1
  22. package/lib/dialog/directives/pending-changes-guard.directive.d.ts +5 -5
  23. package/lib/dialog/directives/pending-changes-guard.directive.d.ts.map +1 -1
  24. package/lib/dialog/models/dialog-close.model.d.ts +51 -0
  25. package/lib/dialog/models/dialog-close.model.d.ts.map +1 -0
  26. package/lib/dialog/models/page-dialog-host.token.d.ts +10 -0
  27. package/lib/dialog/models/page-dialog-host.token.d.ts.map +1 -0
  28. package/lib/dialog/services/confirmation-dialog.service.d.ts.map +1 -1
  29. package/lib/dialog/services/dialog.service.d.ts +20 -4
  30. package/lib/dialog/services/dialog.service.d.ts.map +1 -1
  31. package/lib/forms/input/input.component.d.ts.map +1 -1
  32. package/lib/page/model/page-config.interface.d.ts +14 -1
  33. package/lib/page/model/page-config.interface.d.ts.map +1 -1
  34. package/lib/page/page.component.d.ts +5 -2
  35. package/lib/page/page.component.d.ts.map +1 -1
  36. package/lib/shell/header/service-navigation/shell-service-navigation.component.d.ts +1 -1
  37. package/lib/shell/header/service-navigation/shell-service-navigation.component.d.ts.map +1 -1
  38. package/lib/table/services/resolver.service.d.ts +2 -0
  39. package/lib/table/services/resolver.service.d.ts.map +1 -1
  40. package/package.json +2 -2
  41. package/src/assets/i18n/de.json +2 -0
  42. package/src/assets/i18n/en.json +11 -1
  43. package/src/assets/i18n/fr.json +2 -0
  44. package/src/assets/i18n/it.json +2 -0
  45. package/src/assets/styles/settings/_settings.grid.scss +4 -1
@@ -1,9 +1,9 @@
1
1
  import { Dialog } from '@angular/cdk/dialog';
2
- import { Injectable } from '@angular/core';
2
+ import { Inject, Injectable, Optional } from '@angular/core';
3
3
  import { Router } from '@angular/router';
4
4
  import { BehaviorSubject, Subject } from 'rxjs';
5
5
  import { QdDialogSize } from '../models/dialog-config.model';
6
- import { QdPageDialogWithBreadcrumbsComponent } from '../page-dialog-with-breadcrumbs/page-dialog-with-breadcrumbs.component';
6
+ import { QD_PAGE_DIALOG_WITH_BREADCRUMBS_HOST } from '../models/page-dialog-host.token';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/cdk/dialog";
9
9
  import * as i2 from "@angular/router";
@@ -14,10 +14,13 @@ import * as i2 from "@angular/router";
14
14
  export class QdDialogService {
15
15
  dialog;
16
16
  router;
17
+ pageDialogHost;
17
18
  _currentRowSubject = new BehaviorSubject({});
18
19
  currentRow$ = this._currentRowSubject.asObservable();
19
20
  _currentIndexSubject = new Subject();
20
21
  currentIndex$ = this._currentIndexSubject.asObservable();
22
+ _pageDialogCanClose$ = new BehaviorSubject(null);
23
+ pageDialogCanClose$ = this._pageDialogCanClose$.asObservable();
21
24
  _confirmationStatus = 'info';
22
25
  _isConfirmationLoading = false;
23
26
  _dialogData = { navigation: false, initialPaginationIndex: 0, views: [] };
@@ -42,14 +45,16 @@ export class QdDialogService {
42
45
  get dialogData() {
43
46
  return this._dialogData;
44
47
  }
45
- constructor(dialog, router) {
48
+ constructor(dialog, router, pageDialogHost) {
46
49
  this.dialog = dialog;
47
50
  this.router = router;
51
+ this.pageDialogHost = pageDialogHost;
48
52
  }
49
53
  open(component, config) {
50
54
  config.panelClass = 'qd-custom-panel';
51
55
  config.width = config.dialogSize || QdDialogSize.Default;
52
56
  if (config.dialogSize === QdDialogSize.FullWidth) {
57
+ config.disableClose = true;
53
58
  config.maxWidth = '100vw';
54
59
  config.width = '100vw';
55
60
  config.maxHeight = '100vh';
@@ -62,14 +67,18 @@ export class QdDialogService {
62
67
  return this.dialog.open(component, config);
63
68
  }
64
69
  openPageDialogWithBreadcrumbs(routePath, data) {
70
+ this.clearPageDialogCanCloseForce();
65
71
  this.updateDialogData(data);
66
- this.open(QdPageDialogWithBreadcrumbsComponent, { dialogSize: QdDialogSize.FullWidth });
72
+ if (!this.pageDialogHost)
73
+ throw new Error('QdDialogService | Page dialog host component is not provided.');
74
+ this.open(this.pageDialogHost, { dialogSize: QdDialogSize.FullWidth });
67
75
  this.navigateInsideDialog(routePath || this.getFirstDialogOutletRoutePathOrThrow());
68
76
  }
69
77
  navigateInsideDialog(routePath) {
70
78
  this.router.navigate(['/', { outlets: { dialog: routePath } }]);
71
79
  }
72
80
  closeAll() {
81
+ this.clearPageDialogCanCloseForce();
73
82
  this.dialog.closeAll();
74
83
  }
75
84
  startConfirmation() {
@@ -91,11 +100,25 @@ export class QdDialogService {
91
100
  this._currentRowSubject.next(this._dialogData.views?.[index]);
92
101
  this._currentIndexSubject.next(index);
93
102
  }
103
+ setPageDialogCanClose(fn, owner) {
104
+ this._pageDialogCanClose$.next({ owner, fn });
105
+ }
106
+ clearPageDialogCanClose(owner) {
107
+ const entry = this._pageDialogCanClose$.value;
108
+ if (!entry)
109
+ return;
110
+ if (entry.owner !== owner)
111
+ return;
112
+ this._pageDialogCanClose$.next(null);
113
+ }
114
+ clearPageDialogCanCloseForce() {
115
+ this._pageDialogCanClose$.next(null);
116
+ }
94
117
  updateDialogData(data) {
95
118
  if (!data || typeof data !== 'object')
96
119
  return;
97
120
  Object.entries(data).forEach(([key, value]) => {
98
- if (!value)
121
+ if (value === undefined || value === null)
99
122
  return;
100
123
  if (key === 'initialPaginationIndex') {
101
124
  this._dialogData[key] = data['views'] && value >= 0 ? Math.min(value, data['views'].length - 1) : 0;
@@ -116,7 +139,7 @@ export class QdDialogService {
116
139
  hasRoutePathParameters(routePath) {
117
140
  return routePath.includes(':');
118
141
  }
119
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogService, deps: [{ token: i1.Dialog }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogService, deps: [{ token: i1.Dialog }, { token: i2.Router }, { token: QD_PAGE_DIALOG_WITH_BREADCRUMBS_HOST, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
120
143
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogService, providedIn: 'root' });
121
144
  }
122
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogService, decorators: [{
@@ -124,5 +147,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
124
147
  args: [{
125
148
  providedIn: 'root'
126
149
  }]
127
- }], ctorParameters: () => [{ type: i1.Dialog }, { type: i2.Router }] });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvZGlhbG9nL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQTJCLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFrQixZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7OztBQUU5SDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQXdDaEI7SUFDQTtJQXhDRixrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztJQUMxRCxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTdDLG9CQUFvQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7SUFDckQsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVqRCxtQkFBbUIsR0FBeUIsTUFBTSxDQUFDO0lBQ25ELHNCQUFzQixHQUFHLEtBQUssQ0FBQztJQUMvQixXQUFXLEdBQWlCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRWhHLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMxRCxDQUFD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QyxNQUFNLEtBQUssUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDO1FBRXJHLElBQUksQ0FBQywwQkFBMEIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxLQUFLLENBQ2IseUZBQXlGO2dCQUN2Riw4REFBOEQsQ0FDakUsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLDBCQUEwQixDQUFDO0lBQ3BDLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxTQUFpQjtRQUM5QyxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQzt1R0FuSVUsZUFBZTsyR0FBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2csIERpYWxvZ0NvbmZpZywgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFFkQ29uZmlybWF0aW9uU3RhdHVzIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpcm1hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBRZERpYWxvZ0NvbmZpZywgUWREaWFsb2dTaXplIH0gZnJvbSAnLi4vbW9kZWxzL2RpYWxvZy1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgUWREaWFsb2dEYXRhIH0gZnJvbSAnLi4vbW9kZWxzL3JlY29yZC1zdGVwcGVyLm1vZGVsJztcbmltcG9ydCB7IFFkUGFnZURpYWxvZ1dpdGhCcmVhZGNydW1ic0NvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2UtZGlhbG9nLXdpdGgtYnJlYWRjcnVtYnMvcGFnZS1kaWFsb2ctd2l0aC1icmVhZGNydW1icy5jb21wb25lbnQnO1xuXG4vKipcbiAqICoqUWREaWFsb2dTZXJ2aWNlKio6IFNlcnZpY2UgZm9yIG1hbmFnaW5nIGRpYWxvZ3MgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICogVGhpcyBzZXJ2aWNlIHByb3ZpZGVzIG1ldGhvZHMgdG8gb3BlbiwgY2xvc2UsIGFuZCBtYW5hZ2UgdGhlIGhhbmRsaW5nIG9mIGRpYWxvZyBkYXRhLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBRZERpYWxvZ1NlcnZpY2Uge1xuICBwcml2YXRlIF9jdXJyZW50Um93U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIGN1cnJlbnRSb3ckID0gdGhpcy5fY3VycmVudFJvd1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBfY3VycmVudEluZGV4U3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgY3VycmVudEluZGV4JCA9IHRoaXMuX2N1cnJlbnRJbmRleFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBfY29uZmlybWF0aW9uU3RhdHVzOiBRZENvbmZpcm1hdGlvblN0YXR1cyA9ICdpbmZvJztcbiAgcHJpdmF0ZSBfaXNDb25maXJtYXRpb25Mb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgX2RpYWxvZ0RhdGE6IFFkRGlhbG9nRGF0YSA9IHsgbmF2aWdhdGlvbjogZmFsc2UsIGluaXRpYWxQYWdpbmF0aW9uSW5kZXg6IDAsIHZpZXdzOiBbXSB9O1xuXG4gIGdldCBjb25maXJtYXRpb25TdGF0dXMoKTogeyBjb25maXJtYXRpb25TdGF0dXM6IFFkQ29uZmlybWF0aW9uU3RhdHVzIH0ge1xuICAgIHJldHVybiB7IGNvbmZpcm1hdGlvblN0YXR1czogdGhpcy5fY29uZmlybWF0aW9uU3RhdHVzIH07XG4gIH1cblxuICBnZXQgaXNDb25maXJtYXRpb25Mb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0NvbmZpcm1hdGlvbkxvYWRpbmc7XG4gIH1cblxuICBnZXQgaXNDb25maXJtYXRpb25JbmZvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maXJtYXRpb25TdGF0dXMgPT09ICdpbmZvJztcbiAgfVxuXG4gIGdldCBpc0NvbmZpcm1hdGlvblN1Y2Nlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvblN0YXR1cyA9PT0gJ3N1Y2Nlc3MnO1xuICB9XG5cbiAgZ2V0IGlzQ29uZmlybWF0aW9uRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvblN0YXR1cyA9PT0gJ2Vycm9yJztcbiAgfVxuXG4gIHNldCBkaWFsb2dEYXRhKGRhdGE6IFFkRGlhbG9nRGF0YSkge1xuICAgIHRoaXMuX2RpYWxvZ0RhdGEgPSBkYXRhO1xuICB9XG5cbiAgZ2V0IGRpYWxvZ0RhdGEoKTogUWREaWFsb2dEYXRhIHtcbiAgICByZXR1cm4gdGhpcy5fZGlhbG9nRGF0YTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBEaWFsb2csXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgb3BlbjxDPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz4sIGNvbmZpZzogUWREaWFsb2dDb25maWcpOiBEaWFsb2dSZWY8dW5rbm93biwgQz4ge1xuICAgIGNvbmZpZy5wYW5lbENsYXNzID0gJ3FkLWN1c3RvbS1wYW5lbCc7XG4gICAgY29uZmlnLndpZHRoID0gY29uZmlnLmRpYWxvZ1NpemUgfHwgUWREaWFsb2dTaXplLkRlZmF1bHQ7XG5cbiAgICBpZiAoY29uZmlnLmRpYWxvZ1NpemUgPT09IFFkRGlhbG9nU2l6ZS5GdWxsV2lkdGgpIHtcbiAgICAgIGNvbmZpZy5tYXhXaWR0aCA9ICcxMDB2dyc7XG4gICAgICBjb25maWcud2lkdGggPSAnMTAwdncnO1xuICAgICAgY29uZmlnLm1heEhlaWdodCA9ICcxMDB2aCc7XG4gICAgICBjb25maWcuaGVpZ2h0ID0gJzEwMHZoJztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kaWFsb2cub3Blbihjb21wb25lbnQsIGNvbmZpZyBhcyBEaWFsb2dDb25maWc8QywgRGlhbG9nUmVmPHVua25vd24sIEM+Pik7XG4gIH1cblxuICBvcGVuRnVsbHNjcmVlbjxDPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz4sIGNvbmZpZzogUWREaWFsb2dDb25maWcpOiBEaWFsb2dSZWY8dW5rbm93biwgQz4ge1xuICAgIHRoaXMudXBkYXRlRGlhbG9nRGF0YShjb25maWcpO1xuXG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oY29tcG9uZW50LCBjb25maWcgYXMgRGlhbG9nQ29uZmlnPEMsIERpYWxvZ1JlZjx1bmtub3duLCBDPj4pO1xuICB9XG5cbiAgb3BlblBhZ2VEaWFsb2dXaXRoQnJlYWRjcnVtYnMocm91dGVQYXRoPzogc3RyaW5nLCBkYXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRGlhbG9nRGF0YShkYXRhKTtcbiAgICB0aGlzLm9wZW4oUWRQYWdlRGlhbG9nV2l0aEJyZWFkY3J1bWJzQ29tcG9uZW50LCB7IGRpYWxvZ1NpemU6IFFkRGlhbG9nU2l6ZS5GdWxsV2lkdGggfSk7XG4gICAgdGhpcy5uYXZpZ2F0ZUluc2lkZURpYWxvZyhyb3V0ZVBhdGggfHwgdGhpcy5nZXRGaXJzdERpYWxvZ091dGxldFJvdXRlUGF0aE9yVGhyb3coKSk7XG4gIH1cblxuICBuYXZpZ2F0ZUluc2lkZURpYWxvZyhyb3V0ZVBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLycsIHsgb3V0bGV0czogeyBkaWFsb2c6IHJvdXRlUGF0aCB9IH1dKTtcbiAgfVxuXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gIH1cblxuICBzdGFydENvbmZpcm1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9pc0NvbmZpcm1hdGlvbkxvYWRpbmcgPSB0cnVlO1xuICB9XG5cbiAgY29uZmlybWF0aW9uU3VjY2VzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9pc0NvbmZpcm1hdGlvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9jb25maXJtYXRpb25TdGF0dXMgPSAnc3VjY2Vzcyc7XG4gIH1cblxuICBjb25maXJtYXRpb25FcnJvcigpOiB2b2lkIHtcbiAgICB0aGlzLl9pc0NvbmZpcm1hdGlvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9jb25maXJtYXRpb25TdGF0dXMgPSAnZXJyb3InO1xuICB9XG5cbiAgcmVzZXRDb25maXJtYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5faXNDb25maXJtYXRpb25Mb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5fY29uZmlybWF0aW9uU3RhdHVzID0gJ2luZm8nO1xuICB9XG5cbiAgdXBkYXRlU3RlcChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudFJvd1N1YmplY3QubmV4dCh0aGlzLl9kaWFsb2dEYXRhLnZpZXdzPy5baW5kZXhdKTtcbiAgICB0aGlzLl9jdXJyZW50SW5kZXhTdWJqZWN0Lm5leHQoaW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEaWFsb2dEYXRhKGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB2b2lkIHtcbiAgICBpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSByZXR1cm47XG5cbiAgICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgICAgaWYgKGtleSA9PT0gJ2luaXRpYWxQYWdpbmF0aW9uSW5kZXgnKSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0RhdGFba2V5XSA9IGRhdGFbJ3ZpZXdzJ10gJiYgdmFsdWUgPj0gMCA/IE1hdGgubWluKHZhbHVlLCBkYXRhWyd2aWV3cyddLmxlbmd0aCAtIDEpIDogMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0RhdGFba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdERpYWxvZ091dGxldFJvdXRlUGF0aE9yVGhyb3coKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaXJzdERpYWxvZ091dGxldFJvdXRlUGF0aCA9IHRoaXMucm91dGVyLmNvbmZpZy5maW5kKHJvdXRlID0+IHJvdXRlLm91dGxldCA9PT0gJ2RpYWxvZycpPy5wYXRoO1xuXG4gICAgaWYgKCFmaXJzdERpYWxvZ091dGxldFJvdXRlUGF0aCB8fCB0aGlzLmhhc1JvdXRlUGF0aFBhcmFtZXRlcnMoZmlyc3REaWFsb2dPdXRsZXRSb3V0ZVBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdRZERpYWxvZ1NlcnZpY2UgfCBQbGVhc2UgcHJvdmlkZSBhIHJvdXRlIGZvciB0aGUgb3BlblBhZ2VEaWFsb2dXaXRoQnJlYWRjcnVtYnMgbWV0aG9kLiAnICtcbiAgICAgICAgICAnVGhlIG1haW4gZGlhbG9nIHJvdXRlIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlyc3REaWFsb2dPdXRsZXRSb3V0ZVBhdGg7XG4gIH1cblxuICBwcml2YXRlIGhhc1JvdXRlUGF0aFBhcmFtZXRlcnMocm91dGVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcm91dGVQYXRoLmluY2x1ZGVzKCc6Jyk7XG4gIH1cbn1cbiJdfQ==
150
+ }], ctorParameters: () => [{ type: i1.Dialog }, { type: i2.Router }, { type: undefined, decorators: [{
151
+ type: Optional
152
+ }, {
153
+ type: Inject,
154
+ args: [QD_PAGE_DIALOG_WITH_BREADCRUMBS_HOST]
155
+ }] }] });
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvZGlhbG9nL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQTJCLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1RCxPQUFPLEVBQWtCLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzdFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBUXhGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxlQUFlO0lBMkNoQjtJQUNBO0lBQzBEO0lBNUM1RCxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxFQUFFLENBQUMsQ0FBQztJQUM5RCxXQUFXLEdBQXdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVsRSxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO0lBQ3JELGFBQWEsR0FBdUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXJFLG9CQUFvQixHQUFHLElBQUksZUFBZSxDQUE0QixJQUFJLENBQUMsQ0FBQztJQUNwRixtQkFBbUIsR0FBMEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTlGLG1CQUFtQixHQUF5QixNQUFNLENBQUM7SUFDbkQsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0lBQy9CLFdBQVcsR0FBaUIsRUFBRSxVQUFVLEVBQUUsS0FBSyxF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QUM7WUFDM0YsTUFBTSxJQUFJLEtBQUssQ0FDYix5RkFBeUY7Z0JBQ3ZGLDhEQUE4RCxDQUNqRSxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQWlCO1FBQzlDLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO3VHQTdKVSxlQUFlLDhEQTZDSixvQ0FBb0M7MkdBN0MvQyxlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQThDSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZywgRGlhbG9nQ29uZmlnLCBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUWRDb25maXJtYXRpb25TdGF0dXMgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlybWF0aW9uLm1vZGVsJztcbmltcG9ydCB7IFFkRGlhbG9nQ29uZmlnLCBRZERpYWxvZ1NpemUgfSBmcm9tICcuLi9tb2RlbHMvZGlhbG9nLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBRZFBhZ2VEaWFsb2dDYW5DbG9zZUZuIH0gZnJvbSAnLi4vbW9kZWxzL2RpYWxvZy1jbG9zZS5tb2RlbCc7XG5pbXBvcnQgeyBRZERpYWxvZ0RhdGEgfSBmcm9tICcuLi9tb2RlbHMvcmVjb3JkLXN0ZXBwZXIubW9kZWwnO1xuaW1wb3J0IHsgUURfUEFHRV9ESUFMT0dfV0lUSF9CUkVBRENSVU1CU19IT1NUIH0gZnJvbSAnLi4vbW9kZWxzL3BhZ2UtZGlhbG9nLWhvc3QudG9rZW4nO1xuXG4vKipcbiAqIEVudHJ5IGZvciB0aGUgUGFnZSBEaWFsb2cgY2xvc2UgY29udHJhY3QuXG4gKiBPd25lci1ib3VuZCBzbyBtdWx0aXBsZSBkaWFsb2dzIGNhbm5vdCBhY2NpZGVudGFsbHkgY29uc3VtZSBlYWNoIG90aGVy4oCZcyBjb250cmFjdHMuXG4gKi9cbmV4cG9ydCB0eXBlIFFkUGFnZURpYWxvZ0NhbkNsb3NlRW50cnkgPSB7IG93bmVyOiBEaWFsb2dSZWY8dW5rbm93bj47IGZuOiBRZFBhZ2VEaWFsb2dDYW5DbG9zZUZuIH0gfCBudWxsO1xuXG4vKipcbiAqICoqUWREaWFsb2dTZXJ2aWNlKio6IFNlcnZpY2UgZm9yIG1hbmFnaW5nIGRpYWxvZ3MgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICogVGhpcyBzZXJ2aWNlIHByb3ZpZGVzIG1ldGhvZHMgdG8gb3BlbiwgY2xvc2UsIGFuZCBtYW5hZ2UgdGhlIGhhbmRsaW5nIG9mIGRpYWxvZyBkYXRhLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBRZERpYWxvZ1NlcnZpY2Uge1xuICBwcml2YXRlIF9jdXJyZW50Um93U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dW5rbm93bj4oe30pO1xuICBjdXJyZW50Um93JDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2N1cnJlbnRSb3dTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgX2N1cnJlbnRJbmRleFN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIGN1cnJlbnRJbmRleCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMuX2N1cnJlbnRJbmRleFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBfcGFnZURpYWxvZ0NhbkNsb3NlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UWRQYWdlRGlhbG9nQ2FuQ2xvc2VFbnRyeT4obnVsbCk7XG4gIHBhZ2VEaWFsb2dDYW5DbG9zZSQ6IE9ic2VydmFibGU8UWRQYWdlRGlhbG9nQ2FuQ2xvc2VFbnRyeT4gPSB0aGlzLl9wYWdlRGlhbG9nQ2FuQ2xvc2UkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgX2NvbmZpcm1hdGlvblN0YXR1czogUWRDb25maXJtYXRpb25TdGF0dXMgPSAnaW5mbyc7XG4gIHByaXZhdGUgX2lzQ29uZmlybWF0aW9uTG9hZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIF9kaWFsb2dEYXRhOiBRZERpYWxvZ0RhdGEgPSB7IG5hdmlnYXRpb246IGZhbHNlLCBpbml0aWFsUGFnaW5hdGlvbkluZGV4OiAwLCB2aWV3czogW10gfTtcblxuICBnZXQgY29uZmlybWF0aW9uU3RhdHVzKCk6IHsgY29uZmlybWF0aW9uU3RhdHVzOiBRZENvbmZpcm1hdGlvblN0YXR1cyB9IHtcbiAgICByZXR1cm4geyBjb25maXJtYXRpb25TdGF0dXM6IHRoaXMuX2NvbmZpcm1hdGlvblN0YXR1cyB9O1xuICB9XG5cbiAgZ2V0IGlzQ29uZmlybWF0aW9uTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNDb25maXJtYXRpb25Mb2FkaW5nO1xuICB9XG5cbiAgZ2V0IGlzQ29uZmlybWF0aW9uSW5mbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlybWF0aW9uU3RhdHVzID09PSAnaW5mbyc7XG4gIH1cblxuICBnZXQgaXNDb25maXJtYXRpb25TdWNjZXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maXJtYXRpb25TdGF0dXMgPT09ICdzdWNjZXNzJztcbiAgfVxuXG4gIGdldCBpc0NvbmZpcm1hdGlvbkVycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maXJtYXRpb25TdGF0dXMgPT09ICdlcnJvcic7XG4gIH1cblxuICBzZXQgZGlhbG9nRGF0YShkYXRhOiBRZERpYWxvZ0RhdGEpIHtcbiAgICB0aGlzLl9kaWFsb2dEYXRhID0gZGF0YTtcbiAgfVxuXG4gIGdldCBkaWFsb2dEYXRhKCk6IFFkRGlhbG9nRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX2RpYWxvZ0RhdGE7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZzogRGlhbG9nLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChRRF9QQUdFX0RJQUxPR19XSVRIX0JSRUFEQ1JVTUJTX0hPU1QpIHByaXZhdGUgcGFnZURpYWxvZ0hvc3Q/OiBDb21wb25lbnRUeXBlPHVua25vd24+XG4gICkge31cblxuICBvcGVuPEM+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxDPiwgY29uZmlnOiBRZERpYWxvZ0NvbmZpZyk6IERpYWxvZ1JlZjx1bmtub3duLCBDPiB7XG4gICAgY29uZmlnLnBhbmVsQ2xhc3MgPSAncWQtY3VzdG9tLXBhbmVsJztcbiAgICBjb25maWcud2lkdGggPSBjb25maWcuZGlhbG9nU2l6ZSB8fCBRZERpYWxvZ1NpemUuRGVmYXVsdDtcblxuICAgIGlmIChjb25maWcuZGlhbG9nU2l6ZSA9PT0gUWREaWFsb2dTaXplLkZ1bGxXaWR0aCkge1xuICAgICAgY29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgICBjb25maWcubWF4V2lkdGggPSAnMTAwdncnO1xuICAgICAgY29uZmlnLndpZHRoID0gJzEwMHZ3JztcbiAgICAgIGNvbmZpZy5tYXhIZWlnaHQgPSAnMTAwdmgnO1xuICAgICAgY29uZmlnLmhlaWdodCA9ICcxMDB2aCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oY29tcG9uZW50LCBjb25maWcgYXMgRGlhbG9nQ29uZmlnPEMsIERpYWxvZ1JlZjx1bmtub3duLCBDPj4pO1xuICB9XG5cbiAgb3BlbkZ1bGxzY3JlZW48Qz4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEM+LCBjb25maWc6IFFkRGlhbG9nQ29uZmlnKTogRGlhbG9nUmVmPHVua25vd24sIEM+IHtcbiAgICB0aGlzLnVwZGF0ZURpYWxvZ0RhdGEoY29uZmlnKTtcblxuICAgIHJldHVybiB0aGlzLmRpYWxvZy5vcGVuKGNvbXBvbmVudCwgY29uZmlnIGFzIERpYWxvZ0NvbmZpZzxDLCBEaWFsb2dSZWY8dW5rbm93biwgQz4+KTtcbiAgfVxuXG4gIG9wZW5QYWdlRGlhbG9nV2l0aEJyZWFkY3J1bWJzKHJvdXRlUGF0aD86IHN0cmluZywgZGF0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyUGFnZURpYWxvZ0NhbkNsb3NlRm9yY2UoKTtcbiAgICB0aGlzLnVwZGF0ZURpYWxvZ0RhdGEoZGF0YSk7XG5cbiAgICBpZiAoIXRoaXMucGFnZURpYWxvZ0hvc3QpIHRocm93IG5ldyBFcnJvcignUWREaWFsb2dTZXJ2aWNlIHwgUGFnZSBkaWFsb2cgaG9zdCBjb21wb25lbnQgaXMgbm90IHByb3ZpZGVkLicpO1xuXG4gICAgdGhpcy5vcGVuKHRoaXMucGFnZURpYWxvZ0hvc3QsIHsgZGlhbG9nU2l6ZTogUWREaWFsb2dTaXplLkZ1bGxXaWR0aCB9KTtcbiAgICB0aGlzLm5hdmlnYXRlSW5zaWRlRGlhbG9nKHJvdXRlUGF0aCB8fCB0aGlzLmdldEZpcnN0RGlhbG9nT3V0bGV0Um91dGVQYXRoT3JUaHJvdygpKTtcbiAgfVxuXG4gIG5hdmlnYXRlSW5zaWRlRGlhbG9nKHJvdXRlUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJywgeyBvdXRsZXRzOiB7IGRpYWxvZzogcm91dGVQYXRoIH0gfV0pO1xuICB9XG5cbiAgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclBhZ2VEaWFsb2dDYW5DbG9zZUZvcmNlKCk7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgfVxuXG4gIHN0YXJ0Q29uZmlybWF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2lzQ29uZmlybWF0aW9uTG9hZGluZyA9IHRydWU7XG4gIH1cblxuICBjb25maXJtYXRpb25TdWNjZXNzKCk6IHZvaWQge1xuICAgIHRoaXMuX2lzQ29uZmlybWF0aW9uTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX2NvbmZpcm1hdGlvblN0YXR1cyA9ICdzdWNjZXNzJztcbiAgfVxuXG4gIGNvbmZpcm1hdGlvbkVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuX2lzQ29uZmlybWF0aW9uTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX2NvbmZpcm1hdGlvblN0YXR1cyA9ICdlcnJvcic7XG4gIH1cblxuICByZXNldENvbmZpcm1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9pc0NvbmZpcm1hdGlvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9jb25maXJtYXRpb25TdGF0dXMgPSAnaW5mbyc7XG4gIH1cblxuICB1cGRhdGVTdGVwKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9jdXJyZW50Um93U3ViamVjdC5uZXh0KHRoaXMuX2RpYWxvZ0RhdGEudmlld3M/LltpbmRleF0pO1xuICAgIHRoaXMuX2N1cnJlbnRJbmRleFN1YmplY3QubmV4dChpbmRleCk7XG4gIH1cblxuICBzZXRQYWdlRGlhbG9nQ2FuQ2xvc2UoZm46IFFkUGFnZURpYWxvZ0NhbkNsb3NlRm4sIG93bmVyOiBEaWFsb2dSZWY8dW5rbm93bj4pOiB2b2lkIHtcbiAgICB0aGlzLl9wYWdlRGlhbG9nQ2FuQ2xvc2UkLm5leHQoeyBvd25lciwgZm4gfSk7XG4gIH1cblxuICBjbGVhclBhZ2VEaWFsb2dDYW5DbG9zZShvd25lcjogRGlhbG9nUmVmPHVua25vd24+KTogdm9pZCB7XG4gICAgY29uc3QgZW50cnkgPSB0aGlzLl9wYWdlRGlhbG9nQ2FuQ2xvc2UkLnZhbHVlO1xuICAgIGlmICghZW50cnkpIHJldHVybjtcbiAgICBpZiAoZW50cnkub3duZXIgIT09IG93bmVyKSByZXR1cm47XG5cbiAgICB0aGlzLl9wYWdlRGlhbG9nQ2FuQ2xvc2UkLm5leHQobnVsbCk7XG4gIH1cblxuICBjbGVhclBhZ2VEaWFsb2dDYW5DbG9zZUZvcmNlKCk6IHZvaWQge1xuICAgIHRoaXMuX3BhZ2VEaWFsb2dDYW5DbG9zZSQubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGlhbG9nRGF0YShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgdm9pZCk6IHZvaWQge1xuICAgIGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHJldHVybjtcblxuICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgaWYgKGtleSA9PT0gJ2luaXRpYWxQYWdpbmF0aW9uSW5kZXgnKSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0RhdGFba2V5XSA9IGRhdGFbJ3ZpZXdzJ10gJiYgdmFsdWUgPj0gMCA/IE1hdGgubWluKHZhbHVlLCBkYXRhWyd2aWV3cyddLmxlbmd0aCAtIDEpIDogMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0RhdGFba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdERpYWxvZ091dGxldFJvdXRlUGF0aE9yVGhyb3coKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaXJzdERpYWxvZ091dGxldFJvdXRlUGF0aCA9IHRoaXMucm91dGVyLmNvbmZpZy5maW5kKHJvdXRlID0+IHJvdXRlLm91dGxldCA9PT0gJ2RpYWxvZycpPy5wYXRoO1xuXG4gICAgaWYgKCFmaXJzdERpYWxvZ091dGxldFJvdXRlUGF0aCB8fCB0aGlzLmhhc1JvdXRlUGF0aFBhcmFtZXRlcnMoZmlyc3REaWFsb2dPdXRsZXRSb3V0ZVBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdRZERpYWxvZ1NlcnZpY2UgfCBQbGVhc2UgcHJvdmlkZSBhIHJvdXRlIGZvciB0aGUgb3BlblBhZ2VEaWFsb2dXaXRoQnJlYWRjcnVtYnMgbWV0aG9kLiAnICtcbiAgICAgICAgICAnVGhlIG1haW4gZGlhbG9nIHJvdXRlIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlyc3REaWFsb2dPdXRsZXRSb3V0ZVBhdGg7XG4gIH1cblxuICBwcml2YXRlIGhhc1JvdXRlUGF0aFBhcmFtZXRlcnMocm91dGVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcm91dGVQYXRoLmluY2x1ZGVzKCc6Jyk7XG4gIH1cbn1cbiJdfQ==
@@ -25,10 +25,10 @@ export class QdFileCollectorAllowedFilesDescriptionComponent {
25
25
  this.fileCollectorService = fileCollectorService;
26
26
  }
27
27
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdFileCollectorAllowedFilesDescriptionComponent, deps: [{ token: i1.QdFileCollectorService }], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdFileCollectorAllowedFilesDescriptionComponent, selector: "qd-file-collector-allowed-files-description", ngImport: i0, template: "<span *ngIf=\"allowedFilesDescriptionI18n\"\n >{{ allowedFilesDescriptionI18n | translate | placeholder : \"allowedFileTypes\" : allowedFileTypes.join(', ') |\n placeholder : \"maxFileSize\" : (maxFileSizeInBytes | filesize | async) }}</span\n>\n<ng-container *ngIf=\"allowedFilesDescriptionI18n === undefined\">\n <span *ngIf=\"allowedFileTypes.length > 0\"\n >{{ \"i18n.qd.fileCollector.allowedFilesDescription.allowedFileTypes\" | translate | placeholder : \"allowedFileTypes\"\n : allowedFileTypes.join(', ') }}</span\n >\n <span *ngIf=\"maxFileSizeInBytes\"\n >{{ \"i18n.qd.fileCollector.allowedFilesDescription.maxFileSize\" | translate | placeholder : \"maxFileSize\" :\n (maxFileSizeInBytes | filesize | async) }}</span\n >\n</ng-container>\n", styles: [":host span{color:#333;font-size:.875rem;font-weight:400;line-height:1.3125rem;display:block;white-space:pre-wrap}:host span:last-child{margin-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.QdPlaceholderPipe, name: "placeholder" }, { kind: "pipe", type: i5.QdFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
28
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdFileCollectorAllowedFilesDescriptionComponent, selector: "qd-file-collector-allowed-files-description", ngImport: i0, template: "<span *ngIf=\"allowedFilesDescriptionI18n\">{{\n allowedFilesDescriptionI18n\n | translate\n | placeholder : \"allowedFileTypes\" : allowedFileTypes.join(\", \")\n | placeholder : \"maxFileSize\" : (maxFileSizeInBytes | filesize | async)\n}}</span>\n<ng-container *ngIf=\"allowedFilesDescriptionI18n === undefined\">\n <span *ngIf=\"allowedFileTypes.length > 0\">{{\n \"i18n.qd.fileCollector.allowedFilesDescription.allowedFileTypes\"\n | translate\n | placeholder : \"allowedFileTypes\" : allowedFileTypes.join(\", \")\n }}</span>\n <span *ngIf=\"maxFileSizeInBytes\">{{\n \"i18n.qd.fileCollector.allowedFilesDescription.maxFileSize\"\n | translate\n | placeholder : \"maxFileSize\" : (maxFileSizeInBytes | filesize | async)\n }}</span>\n</ng-container>\n", styles: [":host span{color:#333;font-size:.875rem;font-weight:400;line-height:1.3125rem;display:block;white-space:pre-wrap}:host span:last-child{margin-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.QdPlaceholderPipe, name: "placeholder" }, { kind: "pipe", type: i5.QdFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdFileCollectorAllowedFilesDescriptionComponent, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'qd-file-collector-allowed-files-description', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span *ngIf=\"allowedFilesDescriptionI18n\"\n >{{ allowedFilesDescriptionI18n | translate | placeholder : \"allowedFileTypes\" : allowedFileTypes.join(', ') |\n placeholder : \"maxFileSize\" : (maxFileSizeInBytes | filesize | async) }}</span\n>\n<ng-container *ngIf=\"allowedFilesDescriptionI18n === undefined\">\n <span *ngIf=\"allowedFileTypes.length > 0\"\n >{{ \"i18n.qd.fileCollector.allowedFilesDescription.allowedFileTypes\" | translate | placeholder : \"allowedFileTypes\"\n : allowedFileTypes.join(', ') }}</span\n >\n <span *ngIf=\"maxFileSizeInBytes\"\n >{{ \"i18n.qd.fileCollector.allowedFilesDescription.maxFileSize\" | translate | placeholder : \"maxFileSize\" :\n (maxFileSizeInBytes | filesize | async) }}</span\n >\n</ng-container>\n", styles: [":host span{color:#333;font-size:.875rem;font-weight:400;line-height:1.3125rem;display:block;white-space:pre-wrap}:host span:last-child{margin-bottom:1rem}\n"] }]
32
+ args: [{ selector: 'qd-file-collector-allowed-files-description', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span *ngIf=\"allowedFilesDescriptionI18n\">{{\n allowedFilesDescriptionI18n\n | translate\n | placeholder : \"allowedFileTypes\" : allowedFileTypes.join(\", \")\n | placeholder : \"maxFileSize\" : (maxFileSizeInBytes | filesize | async)\n}}</span>\n<ng-container *ngIf=\"allowedFilesDescriptionI18n === undefined\">\n <span *ngIf=\"allowedFileTypes.length > 0\">{{\n \"i18n.qd.fileCollector.allowedFilesDescription.allowedFileTypes\"\n | translate\n | placeholder : \"allowedFileTypes\" : allowedFileTypes.join(\", \")\n }}</span>\n <span *ngIf=\"maxFileSizeInBytes\">{{\n \"i18n.qd.fileCollector.allowedFilesDescription.maxFileSize\"\n | translate\n | placeholder : \"maxFileSize\" : (maxFileSizeInBytes | filesize | async)\n }}</span>\n</ng-container>\n", styles: [":host span{color:#333;font-size:.875rem;font-weight:400;line-height:1.3125rem;display:block;white-space:pre-wrap}:host span:last-child{margin-bottom:1rem}\n"] }]
33
33
  }], ctorParameters: () => [{ type: i1.QdFileCollectorService }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb2xsZWN0b3ItYWxsb3dlZC1maWxlcy1kZXNjcmlwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvZmlsZS1jb2xsZWN0b3IvYWxsb3dlZC1maWxlcy1kZXNjcmlwdGlvbi9maWxlLWNvbGxlY3Rvci1hbGxvd2VkLWZpbGVzLWRlc2NyaXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9maWxlLWNvbGxlY3Rvci9hbGxvd2VkLWZpbGVzLWRlc2NyaXB0aW9uL2ZpbGUtY29sbGVjdG9yLWFsbG93ZWQtZmlsZXMtZGVzY3JpcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFRNUUsTUFBTSxPQUFPLCtDQUErQztJQWlCN0I7SUFoQjdCLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSwyQkFBMkI7UUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLDJCQUEyQixDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFZLE1BQU07UUFDaEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUE2QixvQkFBNEM7UUFBNUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF3QjtJQUFHLENBQUM7dUdBakJsRSwrQ0FBK0M7MkZBQS9DLCtDQUErQyxtRkNaNUQsa3dCQWNBOzsyRkRGYSwrQ0FBK0M7a0JBTjNELFNBQVM7K0JBQ0UsNkNBQTZDLG1CQUd0Qyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLXN0cmljdC1pZ25vcmVcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFFkRmlsZUNvbGxlY3RvckNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9maWxlLWNvbGxlY3Rvci1jb25maWcnO1xuaW1wb3J0IHsgUWRGaWxlVHlwZSB9IGZyb20gJy4uL21vZGVscy9maWxlLXR5cGUnO1xuaW1wb3J0IHsgUWRGaWxlQ29sbGVjdG9yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpbGUtY29sbGVjdG9yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdxZC1maWxlLWNvbGxlY3Rvci1hbGxvd2VkLWZpbGVzLWRlc2NyaXB0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtY29sbGVjdG9yLWFsbG93ZWQtZmlsZXMtZGVzY3JpcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLWNvbGxlY3Rvci1hbGxvd2VkLWZpbGVzLWRlc2NyaXB0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFFkRmlsZUNvbGxlY3RvckFsbG93ZWRGaWxlc0Rlc2NyaXB0aW9uQ29tcG9uZW50IHtcbiAgZ2V0IGFsbG93ZWRGaWxlVHlwZXMoKTogUWRGaWxlVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LmFsbG93ZWRGaWxlVHlwZXMgfHwgW107XG4gIH1cblxuICBnZXQgbWF4RmlsZVNpemVJbkJ5dGVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5tYXhGaWxlU2l6ZUluQnl0ZXM7XG4gIH1cblxuICBnZXQgYWxsb3dlZEZpbGVzRGVzY3JpcHRpb25JMThuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5hbGxvd2VkRmlsZXNEZXNjcmlwdGlvbkkxOG47XG4gIH1cblxuICBwcml2YXRlIGdldCBjb25maWcoKTogUWRGaWxlQ29sbGVjdG9yQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29sbGVjdG9yU2VydmljZS5jb25maWc7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZpbGVDb2xsZWN0b3JTZXJ2aWNlOiBRZEZpbGVDb2xsZWN0b3JTZXJ2aWNlKSB7fVxufVxuIiwiPHNwYW4gKm5nSWY9XCJhbGxvd2VkRmlsZXNEZXNjcmlwdGlvbkkxOG5cIlxuICA+e3sgYWxsb3dlZEZpbGVzRGVzY3JpcHRpb25JMThuIHwgdHJhbnNsYXRlIHwgcGxhY2Vob2xkZXIgOiBcImFsbG93ZWRGaWxlVHlwZXNcIiA6IGFsbG93ZWRGaWxlVHlwZXMuam9pbignLCAnKSB8XG4gIHBsYWNlaG9sZGVyIDogXCJtYXhGaWxlU2l6ZVwiIDogKG1heEZpbGVTaXplSW5CeXRlcyB8IGZpbGVzaXplIHwgYXN5bmMpIH19PC9zcGFuXG4+XG48bmctY29udGFpbmVyICpuZ0lmPVwiYWxsb3dlZEZpbGVzRGVzY3JpcHRpb25JMThuID09PSB1bmRlZmluZWRcIj5cbiAgPHNwYW4gKm5nSWY9XCJhbGxvd2VkRmlsZVR5cGVzLmxlbmd0aCA+IDBcIlxuICAgID57eyBcImkxOG4ucWQuZmlsZUNvbGxlY3Rvci5hbGxvd2VkRmlsZXNEZXNjcmlwdGlvbi5hbGxvd2VkRmlsZVR5cGVzXCIgfCB0cmFuc2xhdGUgfCBwbGFjZWhvbGRlciA6IFwiYWxsb3dlZEZpbGVUeXBlc1wiXG4gICAgOiBhbGxvd2VkRmlsZVR5cGVzLmpvaW4oJywgJykgfX08L3NwYW5cbiAgPlxuICA8c3BhbiAqbmdJZj1cIm1heEZpbGVTaXplSW5CeXRlc1wiXG4gICAgPnt7IFwiaTE4bi5xZC5maWxlQ29sbGVjdG9yLmFsbG93ZWRGaWxlc0Rlc2NyaXB0aW9uLm1heEZpbGVTaXplXCIgfCB0cmFuc2xhdGUgfCBwbGFjZWhvbGRlciA6IFwibWF4RmlsZVNpemVcIiA6XG4gICAgKG1heEZpbGVTaXplSW5CeXRlcyB8IGZpbGVzaXplIHwgYXN5bmMpIH19PC9zcGFuXG4gID5cbjwvbmctY29udGFpbmVyPlxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb2xsZWN0b3ItYWxsb3dlZC1maWxlcy1kZXNjcmlwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvZmlsZS1jb2xsZWN0b3IvYWxsb3dlZC1maWxlcy1kZXNjcmlwdGlvbi9maWxlLWNvbGxlY3Rvci1hbGxvd2VkLWZpbGVzLWRlc2NyaXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9maWxlLWNvbGxlY3Rvci9hbGxvd2VkLWZpbGVzLWRlc2NyaXB0aW9uL2ZpbGUtY29sbGVjdG9yLWFsbG93ZWQtZmlsZXMtZGVzY3JpcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFRNUUsTUFBTSxPQUFPLCtDQUErQztJQWlCN0I7SUFoQjdCLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSwyQkFBMkI7UUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLDJCQUEyQixDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFZLE1BQU07UUFDaEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUE2QixvQkFBNEM7UUFBNUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF3QjtJQUFHLENBQUM7dUdBakJsRSwrQ0FBK0M7MkZBQS9DLCtDQUErQyxtRkNaNUQsOHhCQWtCQTs7MkZETmEsK0NBQStDO2tCQU4zRCxTQUFTOytCQUNFLDZDQUE2QyxtQkFHdEMsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1zdHJpY3QtaWdub3JlXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRZEZpbGVDb2xsZWN0b3JDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvZmlsZS1jb2xsZWN0b3ItY29uZmlnJztcbmltcG9ydCB7IFFkRmlsZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZmlsZS10eXBlJztcbmltcG9ydCB7IFFkRmlsZUNvbGxlY3RvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maWxlLWNvbGxlY3Rvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncWQtZmlsZS1jb2xsZWN0b3ItYWxsb3dlZC1maWxlcy1kZXNjcmlwdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWNvbGxlY3Rvci1hbGxvd2VkLWZpbGVzLWRlc2NyaXB0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1jb2xsZWN0b3ItYWxsb3dlZC1maWxlcy1kZXNjcmlwdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBRZEZpbGVDb2xsZWN0b3JBbGxvd2VkRmlsZXNEZXNjcmlwdGlvbkNvbXBvbmVudCB7XG4gIGdldCBhbGxvd2VkRmlsZVR5cGVzKCk6IFFkRmlsZVR5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5hbGxvd2VkRmlsZVR5cGVzIHx8IFtdO1xuICB9XG5cbiAgZ2V0IG1heEZpbGVTaXplSW5CeXRlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8ubWF4RmlsZVNpemVJbkJ5dGVzO1xuICB9XG5cbiAgZ2V0IGFsbG93ZWRGaWxlc0Rlc2NyaXB0aW9uSTE4bigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uYWxsb3dlZEZpbGVzRGVzY3JpcHRpb25JMThuO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29uZmlnKCk6IFFkRmlsZUNvbGxlY3RvckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbGxlY3RvclNlcnZpY2UuY29uZmlnO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlQ29sbGVjdG9yU2VydmljZTogUWRGaWxlQ29sbGVjdG9yU2VydmljZSkge31cbn1cbiIsIjxzcGFuICpuZ0lmPVwiYWxsb3dlZEZpbGVzRGVzY3JpcHRpb25JMThuXCI+e3tcbiAgYWxsb3dlZEZpbGVzRGVzY3JpcHRpb25JMThuXG4gICAgfCB0cmFuc2xhdGVcbiAgICB8IHBsYWNlaG9sZGVyIDogXCJhbGxvd2VkRmlsZVR5cGVzXCIgOiBhbGxvd2VkRmlsZVR5cGVzLmpvaW4oXCIsIFwiKVxuICAgIHwgcGxhY2Vob2xkZXIgOiBcIm1heEZpbGVTaXplXCIgOiAobWF4RmlsZVNpemVJbkJ5dGVzIHwgZmlsZXNpemUgfCBhc3luYylcbn19PC9zcGFuPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbG93ZWRGaWxlc0Rlc2NyaXB0aW9uSTE4biA9PT0gdW5kZWZpbmVkXCI+XG4gIDxzcGFuICpuZ0lmPVwiYWxsb3dlZEZpbGVUeXBlcy5sZW5ndGggPiAwXCI+e3tcbiAgICBcImkxOG4ucWQuZmlsZUNvbGxlY3Rvci5hbGxvd2VkRmlsZXNEZXNjcmlwdGlvbi5hbGxvd2VkRmlsZVR5cGVzXCJcbiAgICAgIHwgdHJhbnNsYXRlXG4gICAgICB8IHBsYWNlaG9sZGVyIDogXCJhbGxvd2VkRmlsZVR5cGVzXCIgOiBhbGxvd2VkRmlsZVR5cGVzLmpvaW4oXCIsIFwiKVxuICB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJtYXhGaWxlU2l6ZUluQnl0ZXNcIj57e1xuICAgIFwiaTE4bi5xZC5maWxlQ29sbGVjdG9yLmFsbG93ZWRGaWxlc0Rlc2NyaXB0aW9uLm1heEZpbGVTaXplXCJcbiAgICAgIHwgdHJhbnNsYXRlXG4gICAgICB8IHBsYWNlaG9sZGVyIDogXCJtYXhGaWxlU2l6ZVwiIDogKG1heEZpbGVTaXplSW5CeXRlcyB8IGZpbGVzaXplIHwgYXN5bmMpXG4gIH19PC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -28,12 +28,12 @@ export class QdFileCollectorDialogItemErrorComponent {
28
28
  this.fileCollectorService = fileCollectorService;
29
29
  }
30
30
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdFileCollectorDialogItemErrorComponent, deps: [{ token: i1.QdFileCollectorService }], target: i0.ɵɵFactoryTarget.Component });
31
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdFileCollectorDialogItemErrorComponent, selector: "qd-file-collector-dialog-item-error", inputs: { error: "error" }, ngImport: i0, template: "<span *ngIf=\"error.message; else errorMessageNotGiven\">{{ error.message }}</span>\n<ng-template #errorMessageNotGiven [ngSwitch]=\"error.type\">\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_MIME_TYPE\">{{\n invalidMimeTypeErrorMessageI18n || \"i18n.qd.fileCollector.invalid.fileType\" | translate\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_FILE_SIZE\">{{\n \"i18n.qd.fileCollector.invalid.fileSize\"\n | translate\n | placeholder: \"maxFileSize\" : (maxFileSizeInBytes | filesize | async)\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_FILE_NAME\">{{\n invalidFileNameErrorMessageI18n || \"i18n.qd.fileCollector.invalid.fileName\" | translate\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.UNKNOWN_ERROR\">{{ \"i18n.qd.fileCollector.invalid.unknown\" | translate }}</span>\n</ng-template>\n", styles: [":host{display:flex;width:100%;align-items:center}:host span{color:#c70023}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.QdPlaceholderPipe, name: "placeholder" }, { kind: "pipe", type: i5.QdFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdFileCollectorDialogItemErrorComponent, selector: "qd-file-collector-dialog-item-error", inputs: { error: "error" }, ngImport: i0, template: "<span *ngIf=\"error.message; else errorMessageNotGiven\">{{ error.message }}</span>\n<ng-template #errorMessageNotGiven [ngSwitch]=\"error.type\">\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_MIME_TYPE\">{{\n invalidMimeTypeErrorMessageI18n || \"i18n.qd.fileCollector.invalid.fileType\" | translate\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_FILE_SIZE\">{{\n \"i18n.qd.fileCollector.invalid.fileSize\"\n | translate\n | placeholder : \"maxFileSize\" : (maxFileSizeInBytes | filesize | async)\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_FILE_NAME\">{{\n invalidFileNameErrorMessageI18n || \"i18n.qd.fileCollector.invalid.fileName\" | translate\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.UNKNOWN_ERROR\">{{ \"i18n.qd.fileCollector.invalid.unknown\" | translate }}</span>\n</ng-template>\n", styles: [":host{display:flex;width:100%;align-items:center}:host span{color:#c70023}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.QdPlaceholderPipe, name: "placeholder" }, { kind: "pipe", type: i5.QdFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdFileCollectorDialogItemErrorComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'qd-file-collector-dialog-item-error', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span *ngIf=\"error.message; else errorMessageNotGiven\">{{ error.message }}</span>\n<ng-template #errorMessageNotGiven [ngSwitch]=\"error.type\">\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_MIME_TYPE\">{{\n invalidMimeTypeErrorMessageI18n || \"i18n.qd.fileCollector.invalid.fileType\" | translate\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_FILE_SIZE\">{{\n \"i18n.qd.fileCollector.invalid.fileSize\"\n | translate\n | placeholder: \"maxFileSize\" : (maxFileSizeInBytes | filesize | async)\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_FILE_NAME\">{{\n invalidFileNameErrorMessageI18n || \"i18n.qd.fileCollector.invalid.fileName\" | translate\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.UNKNOWN_ERROR\">{{ \"i18n.qd.fileCollector.invalid.unknown\" | translate }}</span>\n</ng-template>\n", styles: [":host{display:flex;width:100%;align-items:center}:host span{color:#c70023}\n"] }]
35
+ args: [{ selector: 'qd-file-collector-dialog-item-error', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span *ngIf=\"error.message; else errorMessageNotGiven\">{{ error.message }}</span>\n<ng-template #errorMessageNotGiven [ngSwitch]=\"error.type\">\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_MIME_TYPE\">{{\n invalidMimeTypeErrorMessageI18n || \"i18n.qd.fileCollector.invalid.fileType\" | translate\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_FILE_SIZE\">{{\n \"i18n.qd.fileCollector.invalid.fileSize\"\n | translate\n | placeholder : \"maxFileSize\" : (maxFileSizeInBytes | filesize | async)\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.INVALID_FILE_NAME\">{{\n invalidFileNameErrorMessageI18n || \"i18n.qd.fileCollector.invalid.fileName\" | translate\n }}</span>\n <span *ngSwitchCase=\"QdUploadErrorType.UNKNOWN_ERROR\">{{ \"i18n.qd.fileCollector.invalid.unknown\" | translate }}</span>\n</ng-template>\n", styles: [":host{display:flex;width:100%;align-items:center}:host span{color:#c70023}\n"] }]
36
36
  }], ctorParameters: () => [{ type: i1.QdFileCollectorService }], propDecorators: { error: [{
37
37
  type: Input
38
38
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb2xsZWN0b3ItZGlhbG9nLWl0ZW0tZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2ZpbGUtY29sbGVjdG9yL2RpYWxvZy9pdGVtL2Vycm9yL2ZpbGUtY29sbGVjdG9yLWRpYWxvZy1pdGVtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9maWxlLWNvbGxlY3Rvci9kaWFsb2cvaXRlbS9lcnJvci9maWxlLWNvbGxlY3Rvci1kaWFsb2ctaXRlbS1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7O0FBU2xGLE1BQU0sT0FBTyx1Q0FBdUM7SUFxQnJCO0lBcEJwQixLQUFLLENBQWdCO0lBRVgsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFFekQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLCtCQUErQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsK0JBQStCLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksK0JBQStCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSwrQkFBK0IsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFBNkIsb0JBQTRDO1FBQTVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7SUFBRyxDQUFDO3VHQXJCbEUsdUNBQXVDOzJGQUF2Qyx1Q0FBdUMsdUdDWnBELGsyQkFlQTs7MkZESGEsdUNBQXVDO2tCQU5uRCxTQUFTOytCQUNFLHFDQUFxQyxtQkFHOUIsdUJBQXVCLENBQUMsTUFBTTsyRkFHdEMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLXN0cmljdC1pZ25vcmVcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRZFVwbG9hZEVycm9yLCBRZFVwbG9hZEVycm9yVHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWxlLXVwbG9hZCc7XG5pbXBvcnQgeyBRZEZpbGVDb2xsZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsZS1jb2xsZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBRZEZpbGVDb2xsZWN0b3JDb25maWcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZmlsZS1jb2xsZWN0b3ItY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncWQtZmlsZS1jb2xsZWN0b3ItZGlhbG9nLWl0ZW0tZXJyb3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1jb2xsZWN0b3ItZGlhbG9nLWl0ZW0tZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLWNvbGxlY3Rvci1kaWFsb2ctaXRlbS1lcnJvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBRZEZpbGVDb2xsZWN0b3JEaWFsb2dJdGVtRXJyb3JDb21wb25lbnQge1xuICBASW5wdXQoKSBlcnJvcjogUWRVcGxvYWRFcnJvcjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgUWRVcGxvYWRFcnJvclR5cGUgPSBRZFVwbG9hZEVycm9yVHlwZTtcblxuICBnZXQgbWF4RmlsZVNpemVJbkJ5dGVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5tYXhGaWxlU2l6ZUluQnl0ZXM7XG4gIH1cblxuICBnZXQgaW52YWxpZE1pbWVUeXBlRXJyb3JNZXNzYWdlSTE4bigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uaW52YWxpZE1pbWVUeXBlRXJyb3JNZXNzYWdlSTE4bjtcbiAgfVxuXG4gIGdldCBpbnZhbGlkRmlsZU5hbWVFcnJvck1lc3NhZ2VJMThuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5pbnZhbGlkRmlsZU5hbWVFcnJvck1lc3NhZ2VJMThuO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29uZmlnKCk6IFFkRmlsZUNvbGxlY3RvckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbGxlY3RvclNlcnZpY2UuY29uZmlnO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlQ29sbGVjdG9yU2VydmljZTogUWRGaWxlQ29sbGVjdG9yU2VydmljZSkge31cbn1cbiIsIjxzcGFuICpuZ0lmPVwiZXJyb3IubWVzc2FnZTsgZWxzZSBlcnJvck1lc3NhZ2VOb3RHaXZlblwiPnt7IGVycm9yLm1lc3NhZ2UgfX08L3NwYW4+XG48bmctdGVtcGxhdGUgI2Vycm9yTWVzc2FnZU5vdEdpdmVuIFtuZ1N3aXRjaF09XCJlcnJvci50eXBlXCI+XG4gIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJRZFVwbG9hZEVycm9yVHlwZS5JTlZBTElEX01JTUVfVFlQRVwiPnt7XG4gICAgaW52YWxpZE1pbWVUeXBlRXJyb3JNZXNzYWdlSTE4biB8fCBcImkxOG4ucWQuZmlsZUNvbGxlY3Rvci5pbnZhbGlkLmZpbGVUeXBlXCIgfCB0cmFuc2xhdGVcbiAgfX08L3NwYW4+XG4gIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJRZFVwbG9hZEVycm9yVHlwZS5JTlZBTElEX0ZJTEVfU0laRVwiPnt7XG4gICAgXCJpMThuLnFkLmZpbGVDb2xsZWN0b3IuaW52YWxpZC5maWxlU2l6ZVwiXG4gICAgICB8IHRyYW5zbGF0ZVxuICAgICAgfCBwbGFjZWhvbGRlcjogXCJtYXhGaWxlU2l6ZVwiIDogKG1heEZpbGVTaXplSW5CeXRlcyB8IGZpbGVzaXplIHwgYXN5bmMpXG4gIH19PC9zcGFuPlxuICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiUWRVcGxvYWRFcnJvclR5cGUuSU5WQUxJRF9GSUxFX05BTUVcIj57e1xuICAgIGludmFsaWRGaWxlTmFtZUVycm9yTWVzc2FnZUkxOG4gfHwgXCJpMThuLnFkLmZpbGVDb2xsZWN0b3IuaW52YWxpZC5maWxlTmFtZVwiIHwgdHJhbnNsYXRlXG4gIH19PC9zcGFuPlxuICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiUWRVcGxvYWRFcnJvclR5cGUuVU5LTk9XTl9FUlJPUlwiPnt7IFwiaTE4bi5xZC5maWxlQ29sbGVjdG9yLmludmFsaWQudW5rbm93blwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb2xsZWN0b3ItZGlhbG9nLWl0ZW0tZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2ZpbGUtY29sbGVjdG9yL2RpYWxvZy9pdGVtL2Vycm9yL2ZpbGUtY29sbGVjdG9yLWRpYWxvZy1pdGVtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9maWxlLWNvbGxlY3Rvci9kaWFsb2cvaXRlbS9lcnJvci9maWxlLWNvbGxlY3Rvci1kaWFsb2ctaXRlbS1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7O0FBU2xGLE1BQU0sT0FBTyx1Q0FBdUM7SUFxQnJCO0lBcEJwQixLQUFLLENBQWdCO0lBRVgsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFFekQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLCtCQUErQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsK0JBQStCLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksK0JBQStCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSwrQkFBK0IsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFBNkIsb0JBQTRDO1FBQTVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7SUFBRyxDQUFDO3VHQXJCbEUsdUNBQXVDOzJGQUF2Qyx1Q0FBdUMsdUdDWnBELG0yQkFlQTs7MkZESGEsdUNBQXVDO2tCQU5uRCxTQUFTOytCQUNFLHFDQUFxQyxtQkFHOUIsdUJBQXVCLENBQUMsTUFBTTsyRkFHdEMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLXN0cmljdC1pZ25vcmVcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRZFVwbG9hZEVycm9yLCBRZFVwbG9hZEVycm9yVHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWxlLXVwbG9hZCc7XG5pbXBvcnQgeyBRZEZpbGVDb2xsZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsZS1jb2xsZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBRZEZpbGVDb2xsZWN0b3JDb25maWcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZmlsZS1jb2xsZWN0b3ItY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncWQtZmlsZS1jb2xsZWN0b3ItZGlhbG9nLWl0ZW0tZXJyb3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1jb2xsZWN0b3ItZGlhbG9nLWl0ZW0tZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLWNvbGxlY3Rvci1kaWFsb2ctaXRlbS1lcnJvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBRZEZpbGVDb2xsZWN0b3JEaWFsb2dJdGVtRXJyb3JDb21wb25lbnQge1xuICBASW5wdXQoKSBlcnJvcjogUWRVcGxvYWRFcnJvcjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgUWRVcGxvYWRFcnJvclR5cGUgPSBRZFVwbG9hZEVycm9yVHlwZTtcblxuICBnZXQgbWF4RmlsZVNpemVJbkJ5dGVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5tYXhGaWxlU2l6ZUluQnl0ZXM7XG4gIH1cblxuICBnZXQgaW52YWxpZE1pbWVUeXBlRXJyb3JNZXNzYWdlSTE4bigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uaW52YWxpZE1pbWVUeXBlRXJyb3JNZXNzYWdlSTE4bjtcbiAgfVxuXG4gIGdldCBpbnZhbGlkRmlsZU5hbWVFcnJvck1lc3NhZ2VJMThuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5pbnZhbGlkRmlsZU5hbWVFcnJvck1lc3NhZ2VJMThuO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29uZmlnKCk6IFFkRmlsZUNvbGxlY3RvckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbGxlY3RvclNlcnZpY2UuY29uZmlnO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlQ29sbGVjdG9yU2VydmljZTogUWRGaWxlQ29sbGVjdG9yU2VydmljZSkge31cbn1cbiIsIjxzcGFuICpuZ0lmPVwiZXJyb3IubWVzc2FnZTsgZWxzZSBlcnJvck1lc3NhZ2VOb3RHaXZlblwiPnt7IGVycm9yLm1lc3NhZ2UgfX08L3NwYW4+XG48bmctdGVtcGxhdGUgI2Vycm9yTWVzc2FnZU5vdEdpdmVuIFtuZ1N3aXRjaF09XCJlcnJvci50eXBlXCI+XG4gIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJRZFVwbG9hZEVycm9yVHlwZS5JTlZBTElEX01JTUVfVFlQRVwiPnt7XG4gICAgaW52YWxpZE1pbWVUeXBlRXJyb3JNZXNzYWdlSTE4biB8fCBcImkxOG4ucWQuZmlsZUNvbGxlY3Rvci5pbnZhbGlkLmZpbGVUeXBlXCIgfCB0cmFuc2xhdGVcbiAgfX08L3NwYW4+XG4gIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJRZFVwbG9hZEVycm9yVHlwZS5JTlZBTElEX0ZJTEVfU0laRVwiPnt7XG4gICAgXCJpMThuLnFkLmZpbGVDb2xsZWN0b3IuaW52YWxpZC5maWxlU2l6ZVwiXG4gICAgICB8IHRyYW5zbGF0ZVxuICAgICAgfCBwbGFjZWhvbGRlciA6IFwibWF4RmlsZVNpemVcIiA6IChtYXhGaWxlU2l6ZUluQnl0ZXMgfCBmaWxlc2l6ZSB8IGFzeW5jKVxuICB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIlFkVXBsb2FkRXJyb3JUeXBlLklOVkFMSURfRklMRV9OQU1FXCI+e3tcbiAgICBpbnZhbGlkRmlsZU5hbWVFcnJvck1lc3NhZ2VJMThuIHx8IFwiaTE4bi5xZC5maWxlQ29sbGVjdG9yLmludmFsaWQuZmlsZU5hbWVcIiB8IHRyYW5zbGF0ZVxuICB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIlFkVXBsb2FkRXJyb3JUeXBlLlVOS05PV05fRVJST1JcIj57eyBcImkxOG4ucWQuZmlsZUNvbGxlY3Rvci5pbnZhbGlkLnVua25vd25cIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -364,7 +364,7 @@ export class QdInputComponent {
364
364
  console.warn('QD-UI | QdInputComponent - Please use the QdFormControl instead of the Angular FormControl');
365
365
  }
366
366
  }
367
- this.writeValue(this.value || getValue(this.config));
367
+ this.writeValue(this.value ?? getValue(this.config));
368
368
  this.normalizeInitialControlValueIfNeeded();
369
369
  this._subs.add(this.actionEmitterService.hintEventEmitter$.subscribe(() => this.clickHint.emit()));
370
370
  this._subs.add(this.actionEmitterService.readonlyEventEmitter$.subscribe(() => this.clickReadonly.emit()));
@@ -496,6 +496,8 @@ export class QdInputComponent {
496
496
  if (!this.control)
497
497
  return;
498
498
  const modelValue = this.control.value;
499
+ if (modelValue == null)
500
+ return void (this._value = getValueWithUnit(modelValue, this.config));
499
501
  const normalized = getValueWithUnit(modelValue, this.config);
500
502
  const target = this.hasUnits ? normalized : normalized.value;
501
503
  if (!isEqual(modelValue, target))
@@ -607,4 +609,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
607
609
  type: ViewChild,
608
610
  args: ['input']
609
611
  }] } });
610
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2Zvcm1zL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9mb3Jtcy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksRUFDSixXQUFXLEVBQ1gsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLGdCQUFnQixFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQVVuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUNMLFlBQVksRUFDWixXQUFXLEVBQ1gsZUFBZSxFQUNmLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFlBQVksRUFDWixRQUFRLEVBQ1IsY0FBYyxFQUNkLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFdBQVcsRUFDWCxpQkFBaUIsRUFD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ZTtzQkFEZCxLQUFLO2dCQVVOLEtBQUs7c0JBREosS0FBSztnQkFjTixNQUFNO3NCQURMLEtBQUs7Z0JBU04sT0FBTztzQkFETixLQUFLO2dCQVFOLE1BQU07c0JBREwsS0FBSzt1QkFBQyxjQUFjO2dCQVFaLFdBQVc7c0JBRG5CLE1BQU07Z0JBUUUsVUFBVTtzQkFEbEIsTUFBTTtnQkFRRSxVQUFVO3NCQURsQixNQUFNO2dCQU9FLFNBQVM7c0JBRGpCLE1BQU07Z0JBT0UsYUFBYTtzQkFEckIsTUFBTTtnQkFPRSxhQUFhO3NCQURyQixNQUFNO2dCQUlQLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBSXRDLGNBQWM7c0JBRGIsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBSTlDLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBSXRDLGNBQWM7c0JBRGIsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBSzlDLFVBQVU7c0JBRlQsV0FBVzt1QkFBQywyQkFBMkI7O3NCQUN2QyxXQUFXO3VCQUFDLDRCQUE0QjtnQkFLekMsUUFBUTtzQkFGUCxXQUFXO3VCQUFDLHdCQUF3Qjs7c0JBQ3BDLFdBQVc7dUJBQUMseUJBQXlCO2dCQUl0QyxjQUFjO3NCQURiLFdBQVc7dUJBQUMsc0JBQXNCO2dCQU0vQixRQUFRO3NCQUZYLFdBQVc7dUJBQUMscUJBQXFCOztzQkFDakMsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBTS9CLGtCQUFrQjtzQkFEckIsV0FBVzt1QkFBQyxtQ0FBbUM7Z0JBTWhELFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLXN0cmljdC1pZ25vcmVcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFNraXBTZWxmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFFkRm9jdXNhYmxlIH0gZnJvbSAnLi4vLi4vY29yZS9mb2N1c2FibGUvZm9jdXNhYmxlJztcbmltcG9ydCB7IFFEX0ZPQ1VTQUJMRV9UT0tFTiB9IGZyb20gJy4uLy4uL2NvcmUvZm9jdXNhYmxlL2ZvY3VzYWJsZS50b2tlbic7XG5pbXBvcnQgeyBRZEV2ZW50QnJva2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvZXZlbnQtYnJva2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0VmFsdWVXaXRoVW5pdCB9IGZyb20gJy4vaGVscGVycy9nZXQtdmFsdWUtd2l0aC11bml0JztcblxuaW1wb3J0IHsgUWRQb3BvdmVyU2l6aW5nU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcG9wb3Zlci9wb3BvdmVyLXNpemluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFFkRm9ybU9wdGlvbnNSZXNvbHZlciB9IGZyb20gJy4uL21vZGVsL2Zvcm0tb3B0aW9ucy1yZXNvbHZlcic7XG5pbXBvcnQge1xuICBRZEZvcm1JbnB1dENvbmZpZ3VyYXRpb24sXG4gIFFkSW5wdXRNb2RlLFxuICBRZElucHV0VHlwZSxcbiAgUWRJbnB1dFZhbHVlLFxuICBRZElucHV0VmFsdWVXaXRoVW5pdFxufSBmcm9tICcuLi9tb2RlbC9mb3Jtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRGb3JtSW5wdXRPcHRpb24gfSBmcm9tICcuLi9tb2RlbC9vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBRZEZvcm1Db250cm9sIH0gZnJvbSAnLi4vcmVhY3RpdmUtZm9ybXMvY29udHJvbHMvZm9ybS1jb250cm9sJztcbmltcG9ydCB7XG4gIGdldENsZWFyYWJsZSxcbiAgZ2V0RGlzYWJsZWQsXG4gIGdldEhhc0F1dG9mb2N1cyxcbiAgZ2V0SGludCxcbiAgZ2V0SGludEFjdGlvbixcbiAgZ2V0SW5wdXRNb2RlLFxuICBnZXRJbnB1dFR5cGUsXG4gIGdldExhYmVsLFxuICBnZXRQbGFjZWhvbGRlcixcbiAgZ2V0UmVhZG9ubHksXG4gIGdldFJlYWRvbmx5QWN0aW9uLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Vmlld29ubHksXG4gIGdldFZpZXdvbmx5QWN0aW9uXG59IGZyb20gJy4uL3NoYXJlZC9oZWxwZXJzL2Zvcm1zLmhlbHBlcnMnO1xuaW1wb3J0IHsgUWRGb3Jtc0FjdGlvbkVtaXR0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlcnZpY2VzL2FjdGlvbi1lbWl0dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUWRGb3JtT3B0aW9uc1Jlc29sdmVyUmVnaXN0cnkgfSBmcm9tICcuLi9zaGFyZWQvc2VydmljZXMvb3B0aW9ucy1yZXNvbHZlci5yZWdpc3RyeSc7XG5cbi8qKlxuICogVGhlICoqUWRJbnB1dCoqIGNvbXBvbmVudCBwcm92aWRlcyBhIEZvcm1FbGVtZW50IGZvciBlbnRlcmluZyB0ZXh0IGludG8gYSBVSS48YnIgLz5cbiAqIEl0IGNhbiBiZSB1c2VkIHdpdGggUXVhZHJlbCBSZWFjdGl2ZSBGb3JtcyBvciB3aXRoIG1vZGVsIGJpbmRpbmcuXG4gKlxuICogIyMjICoqVXNhZ2Ugd2l0aCBSZWFjdGl2ZSBGb3JtcyoqXG4gKlxuICogYGBgdHNcbiAqIGZvcm0gPSBuZXcgUWRGb3JtR3JvdXAoe1xuICogICBpbnB1dDogbmV3IFFkRm9ybUNvbnRyb2woKVxuICogfSk7XG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICogICA8cWQtaW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJpbnB1dFwiIFtjb25maWddPVwiY29uZmlnXCI+PC9xZC1pbnB1dD5cbiAqIDwvZm9ybT5cbiAqIGBgYFxuICpcbiAqICMjIyAqKlVzYWdlIHdpdGggTW9kZWwgQmluZGluZyoqXG4gKiBgYGB0c1xuICogdmFsdWU7XG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDxxZC1pbnB1dCBbKHZhbHVlKV09XCJ2YWx1ZVwiIFtjb25maWddPVwiY29uZmlnXCI+PC9xZC1pbnB1dD5cbiAqIGBgYFxuICpcbiAqICMjICoqU3VnZ2VzdGVkIE9wdGlvbnMqKlxuICpcbiAqICMjIyAqKlN0YXRpYyBvcHRpb25zIGJ5IGNvbmZpZyoqXG4gKlxuICogU3RhdGljIG9wdGlvbnMgY2FuIGJlIGRlZmluZWQgaW4gdGhlIGNvbmZpZyBgb3B0aW9uc2AgZmllbGQ6XG4gKlxuICogYGBgdHNcbiAqIGNvbmZpZzogUWRGb3JtSW5wdXRDb25maWd1cmF0aW9uID0ge1xuICogICAuLi5cbiAqICAgb3B0aW9uczogW1xuICogICAgIHsgaTE4bjogJ2kxOG4ucWQuZXhhbXBsZUZvcm1GaWVsZC5nb29kc0RlY2xhcmF0aW9uLmltcG9ydCcsIHZhbHVlOiAnaW1wb3J0JyB9LFxuICogICAgIHsgaTE4bjogJ2kxOG4ucWQuZXhhbXBsZUZvcm1GaWVsZC5nb29kc0RlY2xhcmF0aW9uLmV4cG9ydCcsIHZhbHVlOiAnZXhwb3J0JyB9LFxuICogICAgIHsgaTE4bjogJ2kxOG4ucWQuZXhhbXBsZUZvcm1GaWVsZC5nb29kc0RlY2xhcmF0aW9uLnRyYW5zaXQnLCB2YWx1ZTogJ3RyYW5zaXQnLCBkaXNhYmxlZDogdHJ1ZSB9XG4gKiAgIF1cbiAqIH1cbiAqIGBgYFxuICogYGBgaHRtbFxuICogPHFkLWlucHV0IFtjb25maWddPVwiY29uZmlnXCI+PC9xZC1pbnB1dD5cbiAqIGBgYFxuICpcbiAqIDxTdG9yeSBpZD1cImNvbXBvbmVudHMtZ3JpZC1zeXN0ZW0tY29udGFpbmVyLS1jb2x1bW5zLTZcIiAvPlxuICpcbiAqICMjIyAqKkR5bmFtaWMgb3B0aW9ucyBieSByZXNvbHZlcioqXG4gKlxuICogSWYgeW91IHdhbnQgdG8gZGVmaW5lIHRoZSBvcHRpb25zIGR5bmFtaWNhbGx5LCB5b3UgY2FuIGluamVjdCBhIGBRZEZvcm1PcHRpb25zUmVzb2x2ZXJgXG4gKiB3aXRoIHRoZSBgUURfRk9STV9PUFRJT05TX1JFU09MVkVSYCBpbmplY3Rpb24gdG9rZW4uIFRoZSByZXNvbHZlciBqdXN0IGhhcyB0byBpbXBsZW1lbnQgdGhlIGByZXNvbHZlcmBcbiAqIG1ldGhvZC5cbiAqXG4gKiBgYGB0c1xuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIFlvdXJGb3JtT3B0aW9uc1Jlc29sdmVyIGltcGxlbWVudHMgUWRGb3JtT3B0aW9uc1Jlc29sdmVyIHtcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxuICpcbiAqICAgcmVzb2x2ZSh2YWx1ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxRZEZvcm1JbnB1dFtdPiB7XG4gKiAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICogICAgICAgLmdldCh5b3VyQmFja2VuZFVybClcbiAqICAgICAgIC5waXBlKFxuICogICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAqICAgICAgICAgICBjb25zb2xlLmVycm9yKCd5b3VyIGVycm9yIG1lc3NhZ2UnKTtcbiAqXG4gKiAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICogICAgICAgICB9KVxuICogICAgICAgKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKiBUaGUgb3B0aW9ucyByZXNvbHZlciBjYW4gYmUgaW5qZWN0ZWQgaW50byBhIGNvbXBvbmVudCB0aGF0IGNvbnRhaW5zIHRoZSBgUWRJbnB1dGAgb3IgYWxzbyBpbnRvIGEgcGFyZW50XG4gKiBjb21wb25lbnQuIElmIHlvdSBuZWVkIGR5bmFtaWMgb3B0aW9ucyBmb3IgdGhlIHNlYXJjaCBpbiB0aGUgc2VjdGlvbiB0b29sYmFyLCB5b3UgY2FuIGluamVjdFxuICogdGhlIHJlc29sdmVyIG9uIGEgaGlnaGVyIGxldmVsLCBlLmcuIGluIHRoZSBjb21wb25lbnQgdGhhdCBjb250YWlucyB0aGUgc2VjdGlvbi5cbiAqXG4gKiBgYGB0c1xuICogQENvbXBvbmVudCh7XG4gKiAgIC4uLlxuICogICBwcm92aWRlcnM6IFtcbiAqICAgICAuLi5cbiAqICAgICB7XG4gKiAgICAgICBwcm92aWRlOiBRRF9GT1JNX09QVElPTlNfUkVTT0xWRVIsXG4gKiAgICAgICB1c2VDbGFzczogWW91ckZvcm1PcHRpb25zUmVzb2x2ZXJcbiAqICAgICB9XG4gKiAgIF1cbiAqIH0pXG4gKiBgYGBcbiAqXG4gKiBCeSBkZWZhdWx0LCB0aGUgcmVzb2x2ZXIgaXMgYXBwbGllZCB0byBldmVyeSBpbnB1dCB0aGF0IGlzIGluc2lkZSB0aGUgY29tcG9uZW50IHRoYXQgaW5qZWN0cyB0aGUgcmVzb2x2ZXIuXG4gKiBUbyBkaXNhYmxlIHRoZSByZXNvbHZlciBmb3IgYW4gaW5wdXQsIHlvdSBoYXZlIHRvIHNldCB0aGUgYG9wdGlvbnNSZXNvbHZlck5hbWVgIHByb3BlcnR5IGluIHRoZVxuICogaW5wdXQgY29uZmlnIHRvIGBudWxsYC4gSXQncyBhbHNvIHBvc3NpYmxlIHRvIGRlZmluZSBhIGBuYW1lYCBmb3IgdGhlIHJlc29sdmVyIGJ5IHNldHRpbmcgdGhlIGBuYW1lYCBwcm9wZXJ0eVxuICogaW4gdGhlIHJlc29sdmVyIGNsYXNzLiBUaHVzLCB5b3UgY2FuIGNvbm5lY3QgdGhlIGlucHV0IHRvIGEgc3BlY2lmaWMgcmVzb2x2ZXIuIEJlbG93IHRoZXJlIGlzIGFsc28gYVxuICogZGVzY3JpcHRpb24gb2YgaG93IHRvIHVzZSBtdWx0aXBsZSBpbnB1dHMgd2l0aCBkaWZmZXJlbnQgcmVzb2x2ZXJzIGluIG9uZSBjb21wb25lbnQuXG4gKiA8YnI+PGJyPlxuICpcbiAqICMjIyMgKipNdWx0aXBsZSBpbnB1dHMgd2l0aCBzdWdnZXN0ZWQgb3B0aW9ucyoqXG4gKlxuICogRm9yIG11bHRpcGxlIGlucHV0cyB3aXRoIHZhcmlvdXMgcmVzb2x2ZXJzIGluIG9uZSBjb21wb25lbnQgeW91IGNhbiBkaXN0aW5ndWlzaCB0aGUgcmVzb2x2ZXJzIGJ5IHNldHRpbmcgdGhlXG4gKiBgbmFtZWAgYXMgYSBwcm9wZXJ0eSBpbiB0aGUgcmVzb2x2ZXIgY2xhc3MuXG4gKlxuICogYGBgdHNcbiAqIEBJbmplY3RhYmxlKClcbiAqIGV4cG9ydCBjbGFzcyBGcnVpdHNGb3JtT3B0aW9uc1Jlc29sdmVyIGltcGxlbWVudHMgUWRGb3JtT3B0aW9uc1Jlc29sdmVyIHtcbiAqICAgbmFtZSA9ICdmcnVpdHMnO1xuICogICAvLyAuLi5cbiAqIH1cbiAqIGBgYFxuICpcbiAqIGBgYHRzXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgQ291bnRyaWVzRm9ybU9wdGlvbnNSZXNvbHZlciBpbXBsZW1lbnRzIFFkRm9ybU9wdGlvbnNSZXNvbHZlciB7XG4gKiAgIG5hbWUgPSAnY291bnRyaWVzJztcbiAqICAgLy8gLi4uXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBUaGVuIHRoZSBpbnB1dCBjYW4gYmUgYXNzaWduZWQgdG8gYSByZXNvbHZlciBieSBzZXR0aW5nIHRoZSBgb3B0aW9uc1Jlc29sdmVyTmFtZWAgcHJvcGVydHlcbiAqIGluIHRoZSBpbnB1dCBjb25maWcuXG4gKlxuICogYGBgdHNcbiAqIGNvbmZpZzogUWRGb3JtSW5wdXRDb25maWd1cmF0aW9uID0ge1xuICogICAuLi5cbiAqICAgb3B0aW9uc1Jlc29sdmVyTmFtZTogJ2ZydWl0cydcbiAqIH1cbiAqXG4gKiBjb25maWcyOiBRZEZvcm1JbnB1dENvbmZpZ3VyYXRpb24gPSB7XG4gKiAgIC4uLlxuICogICBvcHRpb25zUmVzb2x2ZXJOYW1lOiAnY291bnRyaWVzJ1xuICogfVxuICogYGBgXG4gKiBgYGBodG1sXG4gKiA8cWQtaW5wdXQgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLWlucHV0PlxuICogPHFkLWlucHV0IFtjb25maWddPVwiY29uZmlnMlwiPjwvcWQtaW5wdXQ+XG4gKiBgYGBcbiAqIFRvIGluamVjdCBtdWx0aXBsZSByZXNvbHZlcnMgaW4gYSBjb21wb25lbnQgeW91IGNhbiB1c2UgdGhlIHByb3ZpZGVyIHNldHRpbmcgYG11bHRpOiB0cnVlYC5cbiAqXG4gKiBgYGB0c1xuICogQENvbXBvbmVudCh7XG4gKiAgIC4uLlxuICogICBwcm92aWRlcnM6IFtcbiAqICAgICAuLi5cbiAqICAgICB7XG4gKiAgICAgICBwcm92aWRlOiBRRF9GT1JNX09QVElPTlNfUkVTT0xWRVIsXG4gKiAgICAgICB1c2VDbGFzczogRnJ1aXRzRm9ybU9wdGlvbnNSZXNvbHZlcixcbiAqICAgICAgIG11bHRpOiB0cnVlXG4gKiAgICAgfSxcbiAqICAgICB7XG4gKiAgICAgICBwcm92aWRlOiBRRF9GT1JNX09QVElPTlNfUkVTT0xWRVIsXG4gKiAgICAgICB1c2VDbGFzczogQ291bnRyaWVzRm9ybU9wdGlvbnNSZXNvbHZlcixcbiAqICAgICAgIG11bHRpOiB0cnVlXG4gKiAgICAgfVxuICogICBdXG4gKiB9KVxuICogYGBgXG4gKlxuICogIyMjIyAqKkN1c3RvbSBsb2FkaW5nIGFuZCBlcnJvciBoaW50cyoqXG4gKlxuICogSW4gdGhlIHJlc29sdmVyIHlvdSBhbHNvIGNhbiBkZWZpbmUgY3VzdG9tIGxvYWRpbmcgYW5kIGVycm9yIGhpbnRzIHdpdGggdGhlIHByb3BlcnRpZXMgYHJlcXVlc3RMb2FkaW5nSGludGBcbiAqIGFuZCBgcmVxdWVzdEVycm9ySGludGAuXG4gKlxuICogYGBgdHNcbiAqIEBJbmplY3RhYmxlKClcbiAqIGV4cG9ydCBjbGFzcyBZb3VyRm9ybU9wdGlvbnNSZXNvbHZlciBpbXBsZW1lbnRzIFFkRm9ybU9wdGlvbnNSZXNvbHZlciB7XG4gKiAgIHJlcXVlc3RMb2FkaW5nSGludCA9IHsgaTE4bjogJ2kxOG4uY3VzdG9tLm9wdGlvbnMubG9hZGluZycgfTtcbiAqICAgcmVxdWVzdEVycm9ySGludCA9IHsgaTE4bjogJ2kxOG4uY3VzdG9tLm9wdGlvbnMuZXJyb3InIH07XG4gKlxuICogICAvLyAuLi5cbiAqXG4gKiAgIHJlc29sdmUodmFsdWU6IHN0cmluZyk6IE9ic2VydmFibGU8UWRGb3JtSW5wdXRbXT4ge1xuICogICAgIC8vIC4uLlxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqIFlvdSBhbHNvIGNhbiB1cGRhdGUgdGhlIGVycm9yIGhpbnQgZGlyZWN0bHkgaW4gdGhlIHJlc29sdmUgbWV0aG9kIHRvIGRpc3BsYXkgYSBtb3JlIHNwZWNpZmljIGVycm9yXG4gKiBtZXNzYWdlIHdoZW4gYW4gZXJyb3Igb2NjdXJzLlxuICpcbiAqIGBgYHRzXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgWW91ckZvcm1PcHRpb25zUmVzb2x2ZXIgaW1wbGVtZW50cyBRZEZvcm1PcHRpb25zUmVzb2x2ZXIge1xuICogICAvLyAuLi5cbiAqXG4gKiAgIGNvbnN0cnVjdG9yKFxuICogICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQkFDS0VORF9FUlJPUl9DT0RFUykgcHJpdmF0ZSByZWFkb25seSBiYWNrZW5kRXJyb3JDb2Rlc1xuICogICApIHtcbiAqICAgICB0aGlzLmJhY2tlbmRFcnJvckNvZGVzID0gdGhpcy5iYWNrZW5kRXJyb3JDb2RlcyB8fCB7fTtcbiAqICAgfVxuICpcbiAqICAgLy8gLi4uXG4gKlxuICogICByZXNvbHZlKHZhbHVlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFFkRm9ybUlucHV0W10+IHtcbiAqICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gKiAgICAgICAuZ2V0KHlvdXJCYWNrZW5kVXJsKVxuICogICAgICAgLnBpcGUoXG4gKiAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICogICAgICAgICAgIGlmIChlcnJvci5lcnJvcj8uZXJyb3JDb2RlICYmIGVycm9yLmVycm9yLmVycm9yQ29kZSBpbiB0aGlzLmJhY2tlbmRFcnJvckNvZGVzKVxuICogICAgICAgICAgICAgdGhpcy5yZXF1ZXN0RXJyb3JIaW50ID0geyBpMThuOiAnRVJST1IuJyArIGVycm9yLmVycm9yLmVycm9yQ29kZSB9O1xuICogICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAqICAgICAgICAgfSlcbiAqICAgICAgICk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdxZC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IFFkSW5wdXRDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAgUWRGb3Jtc0FjdGlvbkVtaXR0ZXJTZXJ2aWNlLFxuICAgIFFkRm9ybU9wdGlvbnNSZXNvbHZlclJlZ2lzdHJ5LFxuICAgIC8vIFRPRE86IFJlbW92ZSB3aGVuIHJlbW92aW5nIGRlcml2ZWQgZGlyZWN0aXZlXG4gICAgUWRQb3BvdmVyU2l6aW5nU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBRRF9GT0NVU0FCTEVfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogUWRJbnB1dENvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBRZElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFFkRm9jdXNhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgbmFtZSBjYW4gYmUgYXNzaWduZWQgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgUmVhY3RpdmUgRm9ybXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBmb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgZm9ybSBpdGVtIHZhbHVlLCBpZiB5b3UgYXJlIHdvcmtpbmcgd2l0aCBNb2RlbCBCaW5kaW5nLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiA8cWQtaW5wdXQgWyh2YWx1ZSldPVwidmFsdWVcIiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvcWQtaW5wdXQ+XG4gICAqL1xuICBASW5wdXQoKVxuICB2YWx1ZTtcblxuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZm9ybSBpdGVtXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHtcbiAgICogICBsYWJlbDogeyBpMThuOiAnbGFiZWwnIH0sXG4gICAqICAgcGxhY2Vob2xkZXI6IHsgaTE4bjogJ3BsYWNlaG9sZGVyJyB9LFxuICAgKiAgIGhpbnQ6IHsgaTE4bjogJ2hpbnQnIH1cbiAgICogfTtcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogUWRGb3JtSW5wdXRDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBTZXQgY29tcG9uZW50IHRvIFwiZXJyb3JcIiBleHRlcm5hbGx5LiBObyByZWFjdGl2ZSBmb3JtcyByZXF1aXJlZC4gVXNlZCBmb3IgY29tcG9uZW50cyB3aXRoaW4gdGhlIFF1YWRyZWwgVUkgZnJhbWV3b3JrLiBUaGlzIGlzIGRvbmUgYnkgYSBDU1MgY2xhc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBpc0Vycm9yID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgc3RhdGljIHRlc3QgSUQgZm9yIGludGVncmF0aW9uIHRlc3RzIGNhbiBiZSBzZXQuIDxiciAvPlxuICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBIVE1MIGF0dHJpYnV0ZSBbZGF0YS10ZXN0LWlkXS5cbiAgICovXG4gIEBJbnB1dCgnZGF0YS10ZXN0LWlkJylcbiAgdGVzdElkID0gJ3RleHQtaW5wdXQnO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICogT3B0aW9uYWxseSBlbWl0cyB0aGUgY3VycmVudCBpbnB1dCB2YWx1ZSwgaW5jbHVkaW5nIHVuaXQgKGlmIGNvbmZpZ3VyZWQpLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxRZElucHV0VmFsdWUgfCBRZElucHV0VmFsdWVXaXRoVW5pdCB8IHVuZGVmaW5lZD4oKTtcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuIE5vdGU6IEVtaXRzIG9uIGtleXVwIChubyBsb25nZXIgb24gY2xpY2ssIGFzIGJlZm9yZSkhXG4gICAqIE9wdGlvbmFsbHkgZW1pdHMgdGhlIGN1cnJlbnQgaW5wdXQgdmFsdWUsIGluY2x1ZGluZyB1bml0IChpZiBjb25maWd1cmVkKS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBlbnRlckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxRZElucHV0VmFsdWUgfCBRZElucHV0VmFsdWVXaXRoVW5pdCB8IHVuZGVmaW5lZD4oKTtcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiB0aGUgaW5wdXQgZmllbGQgd2FzIGxhcHBlZCBvbiBjbGljay90YXAgb24gdGhlIHggaWNvbi4gPGJyIC8+XG4gICAqIGBRZEZvcm1JbnB1dENvbmZpZ3VyYXRpb25bJ2NsZWFyYWJsZSddYCBtdXN0IGJlIHNldCB0byB0cnVlIGZvciB0aGlzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGNsaWNrQ2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IHdoZW4gdGhlIGhpbnQgaXMgY2xpY2tlZC90YXBwZWQuIGBoaW50QWN0aW9uYCBtdXN0IGJlIHNldCB0byBgdHJ1ZWAgZm9yIHRoaXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgY2xpY2tIaW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSByZWFkb25seSB2YWx1ZSBpcyBjbGlja2VkL3RhcHBlZC4gYGNsaWNrUmVhZG9ubHkgYCBtdXN0IGJlIHNldCB0byBgdHJ1ZWAgZm9yIHRoaXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgY2xpY2tSZWFkb25seSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiB0aGUgdmlld29ubHkgdmFsdWUgaXMgY2xpY2tlZC90YXBwZWQuIGBjbGlja1ZpZXdvbmx5IGAgbXVzdCBiZSBzZXQgdG8gYHRydWVgIGZvciB0aGlzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGNsaWNrVmlld29ubHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1pbnB1dC1yZWFkb25seScpXG4gIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtaW5wdXQtLXJlYWRvbmx5LWFjdGlvbicpXG4gIHJlYWRvbmx5QWN0aW9uID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1pbnB1dC12aWV3b25seScpXG4gIHZpZXdvbmx5OiBib29sZWFuO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtaW5wdXQtLXZpZXdvbmx5LWFjdGlvbicpXG4gIHZpZXdvbmx5QWN0aW9uID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1mb3JtLWhpbnQtYWN0aW9uJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1pbnB1dC1oaW50LWFjdGlvbicpXG4gIGhpbnRBY3Rpb24gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWZvcm0tZGlzYWJsZWQnKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWlucHV0LWRpc2FibGVkJylcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1pbnB1dC1mb2N1cycpXG4gIGlzSW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gIGFyZVVuaXRzT3BlbmVkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1mb3JtLWVycm9yJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1pbnB1dC1lcnJvcicpXG4gIGdldCBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sID8gdGhpcy5jb250cm9sLnRvdWNoZWQgJiYgdGhpcy5jb250cm9sLmludmFsaWQgOiBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtaW5wdXQtZXJyb3ItZnJvbS1vdXRzaWRlJylcbiAgZ2V0IGlzRXJyb3JGcm9tT3V0c2lkZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Vycm9yO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxuICBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgaW5wdXRUeXBlOiBRZElucHV0VHlwZTtcbiAgaW5wdXRNb2RlOiBRZElucHV0TW9kZTtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaGludDogc3RyaW5nO1xuICBjbGVhcmFibGU6IGJvb2xlYW47XG4gIGhhc0F1dG9mb2N1czogYm9vbGVhbjtcbiAgaGFzT3B0aW9ucyA9IGZhbHNlO1xuICBfdmFsdWU6IFFkSW5wdXRWYWx1ZVdpdGhVbml0ID0geyB2YWx1ZTogJycgfTtcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgUWRGb3JtQ29udHJvbDxhbnk+O1xuXG4gIHByaXZhdGUgX29wdGlvbnNSZXNvbHZlciE6IFFkRm9ybU9wdGlvbnNSZXNvbHZlciB8IG51bGw7XG4gIHByaXZhdGUgX3N1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBwcml2YXRlIF9vblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICBnZXQgaGFzT25seVVuaXRzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRXF1YWwoT2JqZWN0LmtleXModGhpcy5jb250cm9sLmVycm9ycyksIFsncmVxdWlyZWQnXSkgJiYgdGhpcy5fdmFsdWUudmFsdWUgIT09ICcnO1xuICB9XG5cbiAgZ2V0IGhhc1VuaXRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8udW5pdHM/Lmxlbmd0aCA+IDA7XG4gIH1cblxuICBnZXQgbnVtYmVyT2ZDaGFyYWN0ZXJzKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLl92YWx1ZS52YWx1ZSkgcmV0dXJuIDA7XG5cbiAgICByZXR1cm4gU3RyaW5nKHRoaXMuX3ZhbHVlLnZhbHVlKS5sZW5ndGg7XG4gIH1cblxuICBnZXQgaGFzTWF4TGVuZ3RoKCk6IGJvb2xlYW4ge1xuICAgIGlmICghKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIFFkRm9ybUNvbnRyb2wpKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmhhc01heExlbmd0aCgpO1xuICB9XG5cbiAgZ2V0IG1heExlbmd0aCgpOiBudW1iZXIge1xuICAgIGlmICghKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIFFkRm9ybUNvbnRyb2wpKSByZXR1cm47XG5cbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmdldE1heExlbmd0aE9yVW5kZWZpbmVkKCk7XG4gIH1cblxuICBnZXQgdmFsdWVBc0xpc3QoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbYCR7dGhpcy5fdmFsdWUudmFsdWV9JHt0aGlzLl92YWx1ZS51bml0ID8gJyAnICsgdGhpcy5fdmFsdWUudW5pdCA6ICcnfWBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25FbWl0dGVyU2VydmljZTogUWRGb3Jtc0FjdGlvbkVtaXR0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZXJSZWdpc3RyeTogUWRGb3JtT3B0aW9uc1Jlc29sdmVyUmVnaXN0cnksXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBldmVudEJyb2tlclNlcnZpY2U6IFFkRXZlbnRCcm9rZXJTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zUmVzb2x2ZXIoKTtcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbENvbnRhaW5lcikge1xuICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuY29udHJvbENvbnRhaW5lci5jb250cm9sLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSk7XG5cbiAgICAgICAgLy8gVE9ETyByZW1vdmUgbG9naWMgZm9yIHN1cHBvcnQgb2YgYW5ndWxhciBGb3JtQ29udHJvbCB3aXRoIGFuZ3VsYXIgMjAgdXBkYXRlXG4gICAgICAgIGlmICghKHRoaXMuY29udHJvbCBpbnN0YW5jZW9mIFFkRm9ybUNvbnRyb2wpKVxuICAgICAgICAgIGNvbnNvbGUud2FybignUUQtVUkgfCBRZElucHV0Q29tcG9uZW50IC0gUGxlYXNlIHVzZSB0aGUgUWRGb3JtQ29udHJvbCBpbnN0ZWFkIG9mIHRoZSBBbmd1bGFyIEZvcm1Db250cm9sJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMudmFsdWUgfHwgZ2V0VmFsdWUodGhpcy5jb25maWcpKTtcblxuICAgIHRoaXMubm9ybWFsaXplSW5pdGlhbENvbnRyb2xWYWx1ZUlmTmVlZGVkKCk7XG5cbiAgICB0aGlzLl9zdWJzLmFkZCh0aGlzLmFjdGlvbkVtaXR0ZXJTZXJ2aWNlLmhpbnRFdmVudEVtaXR0ZXIkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsaWNrSGludC5lbWl0KCkpKTtcbiAgICB0aGlzLl9zdWJzLmFkZCh0aGlzLmFjdGlvbkVtaXR0ZXJTZXJ2aWNlLnJlYWRvbmx5RXZlbnRFbWl0dGVyJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGlja1JlYWRvbmx5LmVtaXQoKSkpO1xuICAgIHRoaXMuX3N1YnMuYWRkKHRoaXMuYWN0aW9uRW1pdHRlclNlcnZpY2Uudmlld29ubHlFdmVudEVtaXR0ZXIkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsaWNrVmlld29ubHkuZW1pdCgpKSk7XG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5pbml0T3BNb2RlU3Vic2NyaXB0aW9uKCkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydjb25maWcnXSkge1xuICAgICAgdGhpcy51cGRhdGVDb25maWcoKTtcbiAgICAgIHRoaXMubm9ybWFsaXplSW5pdGlhbENvbnRyb2xWYWx1ZUlmTmVlZGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjb25zdCBmblN0cmluZyA9IGZuLnRvU3RyaW5nKCk7XG5cbiAgICBpZiAoZm5TdHJpbmcuaW5jbHVkZXMoJ19ub0NvbnRyb2xFcnJvcicpIHx8IGZuU3RyaW5nLmluY2x1ZGVzKCd2YWxpZGF0ZUNvbnRyb2xQcmVzZW5jZU9uQ2hhbmdlJykpIHJldHVybjtcblxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUWRJbnB1dFZhbHVlV2l0aFVuaXQgfCBRZElucHV0VmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZSA9IGdldFZhbHVlV2l0aFVuaXQodmFsdWUsIHRoaXMuY29uZmlnKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgdGhpcy5jbGVhcmFibGUgPSBnZXRDbGVhcmFibGUodGhpcy5jb25maWcpICYmICF0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgaGFuZGxlSW5wdXQoZXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLl92YWx1ZSA9IHsgLi4udGhpcy5fdmFsdWUsIHZhbHVlIH07XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICB0aGlzLl9vblRvdWNoKCk7XG4gIH1cblxuICBoYW5kbGVPcHRpb25TZWxlY3RlZChvcHRpb246IFFkRm9ybUlucHV0T3B0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSB7IC4uLnRoaXMuX3ZhbHVlLCB2YWx1ZTogb3B0aW9uLmkxOG4gfTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQob3B0aW9uLnZhbHVlKTtcbiAgICB0aGlzLl9vbkNoYW5nZShvcHRpb24udmFsdWUpO1xuICAgIHRoaXMuX29uVG91Y2goKTtcbiAgfVxuXG4gIGhhbmRsZVVuaXRDaGFuZ2UodW5pdCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0geyAuLi50aGlzLl92YWx1ZSwgdW5pdCB9O1xuICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gIH1cblxuICBoYW5kbGVJbnB1dEZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbnB1dEZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgaGFuZGxlSW5wdXRCbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbnB1dEZvY3VzZWQgPSBmYWxzZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFyZVVuaXRzT3BlbmVkKSB0aGlzLl9vblRvdWNoKCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGhhbmRsZVVuaXRzT3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMuYXJlVW5pdHNPcGVuZWQgPSB0cnVlO1xuICB9XG5cbiAgaGFuZGxlVW5pdHNDbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hcmVVbml0c09wZW5lZCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuX3ZhbHVlLnVuaXQgJiYgdGhpcy5fdmFsdWUudmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX29uVG91Y2goKTtcbiAgICB9XG4gIH1cblxuICBjbGVhcklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0geyAuLi50aGlzLl92YWx1ZSwgdmFsdWU6ICcnIH07XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICB0aGlzLmNsaWNrQ2xlYXIuZW1pdCgpO1xuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgZW1pdEVudGVyQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzVW5pdHMpIHtcbiAgICAgIHRoaXMuZW50ZXJDbGljay5lbWl0KHRoaXMuX3ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbnRlckNsaWNrLmVtaXQodGhpcy5fdmFsdWUudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRUeXBlID0gZ2V0SW5wdXRUeXBlKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmlucHV0TW9kZSA9IGdldElucHV0TW9kZSh0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IGdldFBsYWNlaG9sZGVyKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmxhYmVsID0gZ2V0TGFiZWwodGhpcy5jb25maWcpO1xuICAgIHRoaXMuaGludCA9IGdldEhpbnQodGhpcy5jb25maWcpO1xuICAgIHRoaXMucmVhZG9ubHkgPSBnZXRSZWFkb25seSh0aGlzLmNvbmZpZywgdGhpcy5yZWFkb25seSk7XG4gICAgdGhpcy52aWV3b25seSA9IGdldFZpZXdvbmx5KHRoaXMuY29uZmlnLCB0aGlzLnZpZXdvbmx5KTtcbiAgICB0aGlzLmhpbnRBY3Rpb24gPSBnZXRIaW50QWN0aW9uKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnJlYWRvbmx5QWN0aW9uID0gZ2V0UmVhZG9ubHlBY3Rpb24odGhpcy5jb25maWcpO1xuICAgIHRoaXMudmlld29ubHlBY3Rpb24gPSBnZXRWaWV3b25seUFjdGlvbih0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGdldERpc2FibGVkKHRoaXMuY29uZmlnKSB8fCAhIXRoaXMuY29udHJvbD8uZGlzYWJsZWQ7XG4gICAgdGhpcy5jbGVhcmFibGUgPSAhdGhpcy5kaXNhYmxlZCAmJiBnZXRDbGVhcmFibGUodGhpcy5jb25maWcpO1xuICAgIHRoaXMuaGFzQXV0b2ZvY3VzID0gZ2V0SGFzQXV0b2ZvY3VzKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmhhc09wdGlvbnMgPSAodGhpcy5jb25maWcub3B0aW9ucyAmJiB0aGlzLmNvbmZpZy5vcHRpb25zLmxlbmd0aCA+IDApIHx8ICEhdGhpcy5fb3B0aW9uc1Jlc29sdmVyO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplT3B0aW9uc1Jlc29sdmVyKCk6IHZvaWQge1xuICAgIHRoaXMucmVzb2x2ZXJSZWdpc3RyeS5pbml0aWFsaXplKHRoaXMuY29uZmlnPy5vcHRpb25zUmVzb2x2ZXJOYW1lKTtcbiAgICB0aGlzLl9vcHRpb25zUmVzb2x2ZXIgPSB0aGlzLnJlc29sdmVyUmVnaXN0cnkuZmluZFJlc29sdmVyKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNVbml0cykge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRPcE1vZGVTdWJzY3JpcHRpb24oKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKCF0aGlzLmV2ZW50QnJva2VyU2VydmljZSkgcmV0dXJuO1xuXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRCcm9rZXJTZXJ2aWNlLmNvbnN1bWU8eyBpc1ZpZXdvbmx5OiBib29sZWFuIH0+KCdvcGVyYXRpb25fbW9kZV9jaGFuZ2VkJykuc3Vic2NyaWJlKHRvcGljID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcudmlld29ubHkgPT09ICdib29sZWFuJykgcmV0dXJuO1xuXG4gICAgICB0aGlzLnZpZXdvbmx5ID0gZ2V0Vmlld29ubHkodGhpcy5jb25maWcsIHRvcGljLnBheWxvYWQuaXNWaWV3b25seSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUluaXRpYWxDb250cm9sVmFsdWVJZk5lZWRlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbW9kZWxWYWx1ZSA9ICh0aGlzLmNvbnRyb2wgYXMgYW55KS52YWx1ZTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gZ2V0VmFsdWVXaXRoVW5pdChtb2RlbFZhbHVlLCB0aGlzLmNvbmZpZyk7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5oYXNVbml0cyA/IG5vcm1hbGl6ZWQgOiBub3JtYWxpemVkLnZhbHVlO1xuXG4gICAgaWYgKCFpc0VxdWFsKG1vZGVsVmFsdWUsIHRhcmdldCkpICh0aGlzLmNvbnRyb2wgYXMgYW55KS5zZXRWYWx1ZSh0YXJnZXQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgIHRoaXMuX3ZhbHVlID0gbm9ybWFsaXplZDtcbiAgfVxufVxuIiwiPHFkLWZvcm0tbGFiZWxcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgW3ZpZXdvbmx5XT1cInZpZXdvbmx5XCJcbiAgW2NvbnRyb2xdPVwiY29udHJvbFwiXG4gIFt0b29sdGlwXT1cImNvbmZpZz8udG9vbHRpcFwiXG4gIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbj48L3FkLWZvcm0tbGFiZWw+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVhZG9ubHkgJiYgIXZpZXdvbmx5ICYmICFoYXNPcHRpb25zXCI+XG4gIDxkaXYgY2xhc3M9XCJxZC1pbnB1dC1pbnB1dFwiIChrZXlkb3duLmVudGVyKT1cImVtaXRFbnRlckNsaWNrKClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRCb3hcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPHNwYW4gY2xhc3M9XCJxZC1pbnB1dC1jaGFyYWN0ZXItY291bnRlclwiICpuZ0lmPVwiaGFzTWF4TGVuZ3RoXCI+e3sgbnVtYmVyT2ZDaGFyYWN0ZXJzIH19IC8ge3sgbWF4TGVuZ3RoIH19PC9zcGFuPlxuXG4gIDxxZC1mb3JtLWhpbnRcbiAgICBbaGludF09XCJoaW50XCJcbiAgICBbY29udHJvbF09XCJjb250cm9sXCJcbiAgICBbaGFzRXJyb3JdPVwiaGFzRXJyb3JcIlxuICAgIFtoaW50QWN0aW9uXT1cImhpbnRBY3Rpb25cIlxuICAgIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgPjwvcWQtZm9ybS1oaW50PlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgKm5nSWY9XCIhcmVhZG9ubHkgJiYgIXZpZXdvbmx5ICYmIGhhc09wdGlvbnNcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicWQtaW5wdXQtaW5wdXRcIlxuICAgIHFkSW5wdXRPcHRpb25zXG4gICAgW3FkUG9wb3Zlck1pbldpZHRoXT1cIjIwMFwiXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgIFt2YWx1ZV09XCJfdmFsdWUudmFsdWVcIlxuICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAoZW50ZXJDbGljayk9XCJlbWl0RW50ZXJDbGljaygpXCJcbiAgPlxuICAgIDwhLS0gaGFuZGxlIChlbnRlckNsaWNrKSBieSBvcHRpb25zIGRpcmVjdGl2ZSBoZXJlIGJlY2F1c2UgZXZlbnQgaGFzIHRvIGJlIGZpcmVkIGFmdGVyIHNlbGVjdGlvbiAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRCb3hcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPHNwYW4gY2xhc3M9XCJxZC1pbnB1dC1jaGFyYWN0ZXItY291bnRlclwiICpuZ0lmPVwiaGFzTWF4TGVuZ3RoXCI+e3sgbnVtYmVyT2ZDaGFyYWN0ZXJzIH19IC8ge3sgbWF4TGVuZ3RoIH19PC9zcGFuPlxuXG4gIDxxZC1mb3JtLWhpbnRcbiAgICBbaGludF09XCJoaW50XCJcbiAgICBbY29udHJvbF09XCJjb250cm9sXCJcbiAgICBbaGFzRXJyb3JdPVwiaGFzRXJyb3JcIlxuICAgIFtoaW50QWN0aW9uXT1cImhpbnRBY3Rpb25cIlxuICAgIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgPjwvcWQtZm9ybS1oaW50PlxuPC9kaXY+XG5cbjxxZC1mb3JtLXJlYWRvbmx5XG4gICpuZ0lmPVwicmVhZG9ubHlcIlxuICBbdmFsdWVzXT1cInZhbHVlQXNMaXN0XCJcbiAgW3JlYWRvbmx5QWN0aW9uXT1cInJlYWRvbmx5QWN0aW9uXCJcbiAgW2RhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuPjwvcWQtZm9ybS1yZWFkb25seT5cblxuPHFkLWZvcm0tdmlld29ubHlcbiAgKm5nSWY9XCJ2aWV3b25seVwiXG4gIFt2YWx1ZXNdPVwidmFsdWVBc0xpc3RcIlxuICBbdmlld29ubHlBY3Rpb25dPVwidmlld29ubHlBY3Rpb25cIlxuICBbZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4+PC9xZC1mb3JtLXZpZXdvbmx5PlxuXG48bmctdGVtcGxhdGUgI2lucHV0Qm94PlxuICA8aW5wdXRcbiAgICAjaW5wdXRcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIlxuICAgIFt2YWx1ZV09XCJoYXNPcHRpb25zID8gKF92YWx1ZS52YWx1ZS50b1N0cmluZygpIHwgdHJhbnNsYXRlKSA6IF92YWx1ZS52YWx1ZVwiXG4gICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgIChmb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKClcIlxuICAgIChibHVyKT1cImhhbmRsZUlucHV0Qmx1cigpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxuICAgIFt0eXBlXT1cImlucHV0VHlwZVwiXG4gICAgW2F0dHIuaW5wdXRtb2RlXT1cImlucHV0TW9kZVwiXG4gICAgW3FkQXV0b2ZvY3VzXT1cImhhc0F1dG9mb2N1c1wiXG4gICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cInRlc3RJZCArICctaW5wdXQnXCJcbiAgICBbc3RlcF09XCJjb25maWc/LnN0ZXBcIlxuICAgIHJlcXVpcmVkXG4gIC8+XG4gIDxkaXYgY2xhc3M9XCJxZC1pbnB1dC1zdWZmaXhcIj5cbiAgICA8cWQtaWNvbiAqbmdJZj1cImhhc0Vycm9yICYmICFoYXNPbmx5VW5pdHNFcnJvclwiIGNsYXNzPVwicWQtaW5wdXQtZXJyb3ItaWNvblwiIGljb249XCJleGNsYW1hdGlvbkNpcmNsZVNvbGlkXCI+PC9xZC1pY29uPlxuICAgIDxxZC1pY29uICpuZ0lmPVwiY2xlYXJhYmxlXCIgY2xhc3M9XCJxZC1pbnB1dC1jbGVhcmFibGUtaWNvblwiIGljb249XCJ0aW1lc0xhcmdlXCIgKGNsaWNrKT1cImNsZWFySW5wdXQoKVwiPjwvcWQtaWNvbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcWRJY29uQnV0dG9uXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxxZC1pbnB1dC11bml0c1xuICAgICpuZ0lmPVwiaGFzVW5pdHNcIlxuICAgIFt1bml0XT1cIl92YWx1ZS51bml0XCJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgKHVuaXRDaGFuZ2UpPVwiaGFuZGxlVW5pdENoYW5nZSgkZXZlbnQpXCJcbiAgICAob3BlbmVkKT1cImhhbmRsZVVuaXRzT3BlbmVkKClcIlxuICAgIChjbG9zZWQpPVwiaGFuZGxlVW5pdHNDbG9zZWQoKVwiXG4gID48L3FkLWlucHV0LXVuaXRzPlxuICA8ZGl2IGNsYXNzPVwicWQtaW5wdXQtc3VmZml4XCIgKm5nSWY9XCJoYXNFcnJvciAmJiBoYXNPbmx5VW5pdHNFcnJvclwiPlxuICAgIDxxZC1pY29uIGNsYXNzPVwicWQtaW5wdXQtZXJyb3ItaWNvblwiIGljb249XCJleGNsYW1hdGlvbkNpcmNsZVNvbGlkXCI+PC9xZC1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
612
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2Zvcm1zL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9mb3Jtcy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksRUFDSixXQUFXLEVBQ1gsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLGdCQUFnQixFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQVVuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUNMLFlBQVksRUFDWixXQUFXLEVBQ1gsZUFBZSxFQUNmLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFlBQVksRUFDWixRQUFRLEVBQ1IsY0FBYyxFQUNkLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFdBQVcsRUFDWCxpQkFBaUIsRUFD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dEI7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxrQkFBa0I7eUJBQzlCO3FCQUNGOzswQkE2S0UsUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUTs7MEJBQzVCLFFBQVE7eUNBdktYLGVBQWU7c0JBRGQsS0FBSztnQkFVTixLQUFLO3NCQURKLEtBQUs7Z0JBY04sTUFBTTtzQkFETCxLQUFLO2dCQVNOLE9BQU87c0JBRE4sS0FBSztnQkFRTixNQUFNO3NCQURMLEtBQUs7dUJBQUMsY0FBYztnQkFRWixXQUFXO3NCQURuQixNQUFNO2dCQVFFLFVBQVU7c0JBRGxCLE1BQU07Z0JBUUUsVUFBVTtzQkFEbEIsTUFBTTtnQkFPRSxTQUFTO3NCQURqQixNQUFNO2dCQU9FLGFBQWE7c0JBRHJCLE1BQU07Z0JBT0UsYUFBYTtzQkFEckIsTUFBTTtnQkFJUCxRQUFRO3NCQURQLFdBQVc7dUJBQUMseUJBQXlCO2dCQUl0QyxjQUFjO3NCQURiLFdBQVc7dUJBQUMsaUNBQWlDO2dCQUk5QyxRQUFRO3NCQURQLFdBQVc7dUJBQUMseUJBQXlCO2dCQUl0QyxjQUFjO3NCQURiLFdBQVc7dUJBQUMsaUNBQWlDO2dCQUs5QyxVQUFVO3NCQUZULFdBQVc7dUJBQUMsMkJBQTJCOztzQkFDdkMsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBS3pDLFFBQVE7c0JBRlAsV0FBVzt1QkFBQyx3QkFBd0I7O3NCQUNwQyxXQUFXO3VCQUFDLHlCQUF5QjtnQkFJdEMsY0FBYztzQkFEYixXQUFXO3VCQUFDLHNCQUFzQjtnQkFNL0IsUUFBUTtzQkFGWCxXQUFXO3VCQUFDLHFCQUFxQjs7c0JBQ2pDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQU0vQixrQkFBa0I7c0JBRHJCLFdBQVc7dUJBQUMsbUNBQW1DO2dCQU1oRCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1zdHJpY3QtaWdub3JlXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBTa2lwU2VsZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBRZEZvY3VzYWJsZSB9IGZyb20gJy4uLy4uL2NvcmUvZm9jdXNhYmxlL2ZvY3VzYWJsZSc7XG5pbXBvcnQgeyBRRF9GT0NVU0FCTEVfVE9LRU4gfSBmcm9tICcuLi8uLi9jb3JlL2ZvY3VzYWJsZS9mb2N1c2FibGUudG9rZW4nO1xuaW1wb3J0IHsgUWRFdmVudEJyb2tlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2V2ZW50LWJyb2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFZhbHVlV2l0aFVuaXQgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LXZhbHVlLXdpdGgtdW5pdCc7XG5cbmltcG9ydCB7IFFkUG9wb3ZlclNpemluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3BvcG92ZXIvcG9wb3Zlci1zaXppbmcuc2VydmljZSc7XG5pbXBvcnQgeyBRZEZvcm1PcHRpb25zUmVzb2x2ZXIgfSBmcm9tICcuLi9tb2RlbC9mb3JtLW9wdGlvbnMtcmVzb2x2ZXInO1xuaW1wb3J0IHtcbiAgUWRGb3JtSW5wdXRDb25maWd1cmF0aW9uLFxuICBRZElucHV0TW9kZSxcbiAgUWRJbnB1dFR5cGUsXG4gIFFkSW5wdXRWYWx1ZSxcbiAgUWRJbnB1dFZhbHVlV2l0aFVuaXRcbn0gZnJvbSAnLi4vbW9kZWwvZm9ybXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFFkRm9ybUlucHV0T3B0aW9uIH0gZnJvbSAnLi4vbW9kZWwvb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRGb3JtQ29udHJvbCB9IGZyb20gJy4uL3JlYWN0aXZlLWZvcm1zL2NvbnRyb2xzL2Zvcm0tY29udHJvbCc7XG5pbXBvcnQge1xuICBnZXRDbGVhcmFibGUsXG4gIGdldERpc2FibGVkLFxuICBnZXRIYXNBdXRvZm9jdXMsXG4gIGdldEhpbnQsXG4gIGdldEhpbnRBY3Rpb24sXG4gIGdldElucHV0TW9kZSxcbiAgZ2V0SW5wdXRUeXBlLFxuICBnZXRMYWJlbCxcbiAgZ2V0UGxhY2Vob2xkZXIsXG4gIGdldFJlYWRvbmx5LFxuICBnZXRSZWFkb25seUFjdGlvbixcbiAgZ2V0VmFsdWUsXG4gIGdldFZpZXdvbmx5LFxuICBnZXRWaWV3b25seUFjdGlvblxufSBmcm9tICcuLi9zaGFyZWQvaGVscGVycy9mb3Jtcy5oZWxwZXJzJztcbmltcG9ydCB7IFFkRm9ybXNBY3Rpb25FbWl0dGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9hY3Rpb24tZW1pdHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFFkRm9ybU9wdGlvbnNSZXNvbHZlclJlZ2lzdHJ5IH0gZnJvbSAnLi4vc2hhcmVkL3NlcnZpY2VzL29wdGlvbnMtcmVzb2x2ZXIucmVnaXN0cnknO1xuXG4vKipcbiAqIFRoZSAqKlFkSW5wdXQqKiBjb21wb25lbnQgcHJvdmlkZXMgYSBGb3JtRWxlbWVudCBmb3IgZW50ZXJpbmcgdGV4dCBpbnRvIGEgVUkuPGJyIC8+XG4gKiBJdCBjYW4gYmUgdXNlZCB3aXRoIFF1YWRyZWwgUmVhY3RpdmUgRm9ybXMgb3Igd2l0aCBtb2RlbCBiaW5kaW5nLlxuICpcbiAqICMjIyAqKlVzYWdlIHdpdGggUmVhY3RpdmUgRm9ybXMqKlxuICpcbiAqIGBgYHRzXG4gKiBmb3JtID0gbmV3IFFkRm9ybUdyb3VwKHtcbiAqICAgaW5wdXQ6IG5ldyBRZEZvcm1Db250cm9sKClcbiAqIH0pO1xuICogYGBgXG4gKiBgYGBodG1sXG4gKiA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAqICAgPHFkLWlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiaW5wdXRcIiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvcWQtaW5wdXQ+XG4gKiA8L2Zvcm0+XG4gKiBgYGBcbiAqXG4gKiAjIyMgKipVc2FnZSB3aXRoIE1vZGVsIEJpbmRpbmcqKlxuICogYGBgdHNcbiAqIHZhbHVlO1xuICogYGBgXG4gKiBgYGBodG1sXG4gKiA8cWQtaW5wdXQgWyh2YWx1ZSldPVwidmFsdWVcIiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvcWQtaW5wdXQ+XG4gKiBgYGBcbiAqXG4gKiAjIyAqKlN1Z2dlc3RlZCBPcHRpb25zKipcbiAqXG4gKiAjIyMgKipTdGF0aWMgb3B0aW9ucyBieSBjb25maWcqKlxuICpcbiAqIFN0YXRpYyBvcHRpb25zIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBjb25maWcgYG9wdGlvbnNgIGZpZWxkOlxuICpcbiAqIGBgYHRzXG4gKiBjb25maWc6IFFkRm9ybUlucHV0Q29uZmlndXJhdGlvbiA9IHtcbiAqICAgLi4uXG4gKiAgIG9wdGlvbnM6IFtcbiAqICAgICB7IGkxOG46ICdpMThuLnFkLmV4YW1wbGVGb3JtRmllbGQuZ29vZHNEZWNsYXJhdGlvbi5pbXBvcnQnLCB2YWx1ZTogJ2ltcG9ydCcgfSxcbiAqICAgICB7IGkxOG46ICdpMThuLnFkLmV4YW1wbGVGb3JtRmllbGQuZ29vZHNEZWNsYXJhdGlvbi5leHBvcnQnLCB2YWx1ZTogJ2V4cG9ydCcgfSxcbiAqICAgICB7IGkxOG46ICdpMThuLnFkLmV4YW1wbGVGb3JtRmllbGQuZ29vZHNEZWNsYXJhdGlvbi50cmFuc2l0JywgdmFsdWU6ICd0cmFuc2l0JywgZGlzYWJsZWQ6IHRydWUgfVxuICogICBdXG4gKiB9XG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDxxZC1pbnB1dCBbY29uZmlnXT1cImNvbmZpZ1wiPjwvcWQtaW5wdXQ+XG4gKiBgYGBcbiAqXG4gKiA8U3RvcnkgaWQ9XCJjb21wb25lbnRzLWdyaWQtc3lzdGVtLWNvbnRhaW5lci0tY29sdW1ucy02XCIgLz5cbiAqXG4gKiAjIyMgKipEeW5hbWljIG9wdGlvbnMgYnkgcmVzb2x2ZXIqKlxuICpcbiAqIElmIHlvdSB3YW50IHRvIGRlZmluZSB0aGUgb3B0aW9ucyBkeW5hbWljYWxseSwgeW91IGNhbiBpbmplY3QgYSBgUWRGb3JtT3B0aW9uc1Jlc29sdmVyYFxuICogd2l0aCB0aGUgYFFEX0ZPUk1fT1BUSU9OU19SRVNPTFZFUmAgaW5qZWN0aW9uIHRva2VuLiBUaGUgcmVzb2x2ZXIganVzdCBoYXMgdG8gaW1wbGVtZW50IHRoZSBgcmVzb2x2ZXJgXG4gKiBtZXRob2QuXG4gKlxuICogYGBgdHNcbiAqIEBJbmplY3RhYmxlKClcbiAqIGV4cG9ydCBjbGFzcyBZb3VyRm9ybU9wdGlvbnNSZXNvbHZlciBpbXBsZW1lbnRzIFFkRm9ybU9wdGlvbnNSZXNvbHZlciB7XG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cbiAqXG4gKiAgIHJlc29sdmUodmFsdWU6IHN0cmluZyk6IE9ic2VydmFibGU8UWRGb3JtSW5wdXRbXT4ge1xuICogICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAqICAgICAgIC5nZXQoeW91ckJhY2tlbmRVcmwpXG4gKiAgICAgICAucGlwZShcbiAqICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gKiAgICAgICAgICAgY29uc29sZS5lcnJvcigneW91ciBlcnJvciBtZXNzYWdlJyk7XG4gKlxuICogICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAqICAgICAgICAgfSlcbiAqICAgICAgICk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogVGhlIG9wdGlvbnMgcmVzb2x2ZXIgY2FuIGJlIGluamVjdGVkIGludG8gYSBjb21wb25lbnQgdGhhdCBjb250YWlucyB0aGUgYFFkSW5wdXRgIG9yIGFsc28gaW50byBhIHBhcmVudFxuICogY29tcG9uZW50LiBJZiB5b3UgbmVlZCBkeW5hbWljIG9wdGlvbnMgZm9yIHRoZSBzZWFyY2ggaW4gdGhlIHNlY3Rpb24gdG9vbGJhciwgeW91IGNhbiBpbmplY3RcbiAqIHRoZSByZXNvbHZlciBvbiBhIGhpZ2hlciBsZXZlbCwgZS5nLiBpbiB0aGUgY29tcG9uZW50IHRoYXQgY29udGFpbnMgdGhlIHNlY3Rpb24uXG4gKlxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogICAuLi5cbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgLi4uXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogUURfRk9STV9PUFRJT05TX1JFU09MVkVSLFxuICogICAgICAgdXNlQ2xhc3M6IFlvdXJGb3JtT3B0aW9uc1Jlc29sdmVyXG4gKiAgICAgfVxuICogICBdXG4gKiB9KVxuICogYGBgXG4gKlxuICogQnkgZGVmYXVsdCwgdGhlIHJlc29sdmVyIGlzIGFwcGxpZWQgdG8gZXZlcnkgaW5wdXQgdGhhdCBpcyBpbnNpZGUgdGhlIGNvbXBvbmVudCB0aGF0IGluamVjdHMgdGhlIHJlc29sdmVyLlxuICogVG8gZGlzYWJsZSB0aGUgcmVzb2x2ZXIgZm9yIGFuIGlucHV0LCB5b3UgaGF2ZSB0byBzZXQgdGhlIGBvcHRpb25zUmVzb2x2ZXJOYW1lYCBwcm9wZXJ0eSBpbiB0aGVcbiAqIGlucHV0IGNvbmZpZyB0byBgbnVsbGAuIEl0J3MgYWxzbyBwb3NzaWJsZSB0byBkZWZpbmUgYSBgbmFtZWAgZm9yIHRoZSByZXNvbHZlciBieSBzZXR0aW5nIHRoZSBgbmFtZWAgcHJvcGVydHlcbiAqIGluIHRoZSByZXNvbHZlciBjbGFzcy4gVGh1cywgeW91IGNhbiBjb25uZWN0IHRoZSBpbnB1dCB0byBhIHNwZWNpZmljIHJlc29sdmVyLiBCZWxvdyB0aGVyZSBpcyBhbHNvIGFcbiAqIGRlc2NyaXB0aW9uIG9mIGhvdyB0byB1c2UgbXVsdGlwbGUgaW5wdXRzIHdpdGggZGlmZmVyZW50IHJlc29sdmVycyBpbiBvbmUgY29tcG9uZW50LlxuICogPGJyPjxicj5cbiAqXG4gKiAjIyMjICoqTXVsdGlwbGUgaW5wdXRzIHdpdGggc3VnZ2VzdGVkIG9wdGlvbnMqKlxuICpcbiAqIEZvciBtdWx0aXBsZSBpbnB1dHMgd2l0aCB2YXJpb3VzIHJlc29sdmVycyBpbiBvbmUgY29tcG9uZW50IHlvdSBjYW4gZGlzdGluZ3Vpc2ggdGhlIHJlc29sdmVycyBieSBzZXR0aW5nIHRoZVxuICogYG5hbWVgIGFzIGEgcHJvcGVydHkgaW4gdGhlIHJlc29sdmVyIGNsYXNzLlxuICpcbiAqIGBgYHRzXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgRnJ1aXRzRm9ybU9wdGlvbnNSZXNvbHZlciBpbXBsZW1lbnRzIFFkRm9ybU9wdGlvbnNSZXNvbHZlciB7XG4gKiAgIG5hbWUgPSAnZnJ1aXRzJztcbiAqICAgLy8gLi4uXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBgYGB0c1xuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIENvdW50cmllc0Zvcm1PcHRpb25zUmVzb2x2ZXIgaW1wbGVtZW50cyBRZEZvcm1PcHRpb25zUmVzb2x2ZXIge1xuICogICBuYW1lID0gJ2NvdW50cmllcyc7XG4gKiAgIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogVGhlbiB0aGUgaW5wdXQgY2FuIGJlIGFzc2lnbmVkIHRvIGEgcmVzb2x2ZXIgYnkgc2V0dGluZyB0aGUgYG9wdGlvbnNSZXNvbHZlck5hbWVgIHByb3BlcnR5XG4gKiBpbiB0aGUgaW5wdXQgY29uZmlnLlxuICpcbiAqIGBgYHRzXG4gKiBjb25maWc6IFFkRm9ybUlucHV0Q29uZmlndXJhdGlvbiA9IHtcbiAqICAgLi4uXG4gKiAgIG9wdGlvbnNSZXNvbHZlck5hbWU6ICdmcnVpdHMnXG4gKiB9XG4gKlxuICogY29uZmlnMjogUWRGb3JtSW5wdXRDb25maWd1cmF0aW9uID0ge1xuICogICAuLi5cbiAqICAgb3B0aW9uc1Jlc29sdmVyTmFtZTogJ2NvdW50cmllcydcbiAqIH1cbiAqIGBgYFxuICogYGBgaHRtbFxuICogPHFkLWlucHV0IFtjb25maWddPVwiY29uZmlnXCI+PC9xZC1pbnB1dD5cbiAqIDxxZC1pbnB1dCBbY29uZmlnXT1cImNvbmZpZzJcIj48L3FkLWlucHV0PlxuICogYGBgXG4gKiBUbyBpbmplY3QgbXVsdGlwbGUgcmVzb2x2ZXJzIGluIGEgY29tcG9uZW50IHlvdSBjYW4gdXNlIHRoZSBwcm92aWRlciBzZXR0aW5nIGBtdWx0aTogdHJ1ZWAuXG4gKlxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogICAuLi5cbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgLi4uXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogUURfRk9STV9PUFRJT05TX1JFU09MVkVSLFxuICogICAgICAgdXNlQ2xhc3M6IEZydWl0c0Zvcm1PcHRpb25zUmVzb2x2ZXIsXG4gKiAgICAgICBtdWx0aTogdHJ1ZVxuICogICAgIH0sXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogUURfRk9STV9PUFRJT05TX1JFU09MVkVSLFxuICogICAgICAgdXNlQ2xhc3M6IENvdW50cmllc0Zvcm1PcHRpb25zUmVzb2x2ZXIsXG4gKiAgICAgICBtdWx0aTogdHJ1ZVxuICogICAgIH1cbiAqICAgXVxuICogfSlcbiAqIGBgYFxuICpcbiAqICMjIyMgKipDdXN0b20gbG9hZGluZyBhbmQgZXJyb3IgaGludHMqKlxuICpcbiAqIEluIHRoZSByZXNvbHZlciB5b3UgYWxzbyBjYW4gZGVmaW5lIGN1c3RvbSBsb2FkaW5nIGFuZCBlcnJvciBoaW50cyB3aXRoIHRoZSBwcm9wZXJ0aWVzIGByZXF1ZXN0TG9hZGluZ0hpbnRgXG4gKiBhbmQgYHJlcXVlc3RFcnJvckhpbnRgLlxuICpcbiAqIGBgYHRzXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgWW91ckZvcm1PcHRpb25zUmVzb2x2ZXIgaW1wbGVtZW50cyBRZEZvcm1PcHRpb25zUmVzb2x2ZXIge1xuICogICByZXF1ZXN0TG9hZGluZ0hpbnQgPSB7IGkxOG46ICdpMThuLmN1c3RvbS5vcHRpb25zLmxvYWRpbmcnIH07XG4gKiAgIHJlcXVlc3RFcnJvckhpbnQgPSB7IGkxOG46ICdpMThuLmN1c3RvbS5vcHRpb25zLmVycm9yJyB9O1xuICpcbiAqICAgLy8gLi4uXG4gKlxuICogICByZXNvbHZlKHZhbHVlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFFkRm9ybUlucHV0W10+IHtcbiAqICAgICAvLyAuLi5cbiAqICAgfVxuICogfVxuICogYGBgXG4gKiBZb3UgYWxzbyBjYW4gdXBkYXRlIHRoZSBlcnJvciBoaW50IGRpcmVjdGx5IGluIHRoZSByZXNvbHZlIG1ldGhvZCB0byBkaXNwbGF5IGEgbW9yZSBzcGVjaWZpYyBlcnJvclxuICogbWVzc2FnZSB3aGVuIGFuIGVycm9yIG9jY3Vycy5cbiAqXG4gKiBgYGB0c1xuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIFlvdXJGb3JtT3B0aW9uc1Jlc29sdmVyIGltcGxlbWVudHMgUWRGb3JtT3B0aW9uc1Jlc29sdmVyIHtcbiAqICAgLy8gLi4uXG4gKlxuICogICBjb25zdHJ1Y3RvcihcbiAqICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEJBQ0tFTkRfRVJST1JfQ09ERVMpIHByaXZhdGUgcmVhZG9ubHkgYmFja2VuZEVycm9yQ29kZXNcbiAqICAgKSB7XG4gKiAgICAgdGhpcy5iYWNrZW5kRXJyb3JDb2RlcyA9IHRoaXMuYmFja2VuZEVycm9yQ29kZXMgfHwge307XG4gKiAgIH1cbiAqXG4gKiAgIC8vIC4uLlxuICpcbiAqICAgcmVzb2x2ZSh2YWx1ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxRZEZvcm1JbnB1dFtdPiB7XG4gKiAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICogICAgICAgLmdldCh5b3VyQmFja2VuZFVybClcbiAqICAgICAgIC5waXBlKFxuICogICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAqICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3I/LmVycm9yQ29kZSAmJiBlcnJvci5lcnJvci5lcnJvckNvZGUgaW4gdGhpcy5iYWNrZW5kRXJyb3JDb2RlcylcbiAqICAgICAgICAgICAgIHRoaXMucmVxdWVzdEVycm9ySGludCA9IHsgaTE4bjogJ0VSUk9SLicgKyBlcnJvci5lcnJvci5lcnJvckNvZGUgfTtcbiAqICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gKiAgICAgICAgIH0pXG4gKiAgICAgICApO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncWQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBRZElucHV0Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIFFkRm9ybXNBY3Rpb25FbWl0dGVyU2VydmljZSxcbiAgICBRZEZvcm1PcHRpb25zUmVzb2x2ZXJSZWdpc3RyeSxcbiAgICAvLyBUT0RPOiBSZW1vdmUgd2hlbiByZW1vdmluZyBkZXJpdmVkIGRpcmVjdGl2ZVxuICAgIFFkUG9wb3ZlclNpemluZ1NlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogUURfRk9DVVNBQkxFX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IFFkSW5wdXRDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUWRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBRZEZvY3VzYWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgZm9ybSBjb250cm9sIG5hbWUgY2FuIGJlIGFzc2lnbmVkIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIFJlYWN0aXZlIEZvcm1zLlxuICAgKi9cbiAgQElucHV0KClcbiAgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGZvcm0gaXRlbSB2YWx1ZSwgaWYgeW91IGFyZSB3b3JraW5nIHdpdGggTW9kZWwgQmluZGluZy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPHFkLWlucHV0IFsodmFsdWUpXT1cInZhbHVlXCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLWlucHV0PlxuICAgKi9cbiAgQElucHV0KClcbiAgdmFsdWU7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGlzIGZvcm0gaXRlbVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB7XG4gICAqICAgbGFiZWw6IHsgaTE4bjogJ2xhYmVsJyB9LFxuICAgKiAgIHBsYWNlaG9sZGVyOiB7IGkxOG46ICdwbGFjZWhvbGRlcicgfSxcbiAgICogICBoaW50OiB7IGkxOG46ICdoaW50JyB9XG4gICAqIH07XG4gICAqL1xuICBASW5wdXQoKVxuICBjb25maWc6IFFkRm9ybUlucHV0Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogU2V0IGNvbXBvbmVudCB0byBcImVycm9yXCIgZXh0ZXJuYWxseS4gTm8gcmVhY3RpdmUgZm9ybXMgcmVxdWlyZWQuIFVzZWQgZm9yIGNvbXBvbmVudHMgd2l0aGluIHRoZSBRdWFkcmVsIFVJIGZyYW1ld29yay4gVGhpcyBpcyBkb25lIGJ5IGEgQ1NTIGNsYXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgaXNFcnJvciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBIHN0YXRpYyB0ZXN0IElEIGZvciBpbnRlZ3JhdGlvbiB0ZXN0cyBjYW4gYmUgc2V0LiA8YnIgLz5cbiAgICogVGhlIHZhbHVlIGZvciB0aGUgSFRNTCBhdHRyaWJ1dGUgW2RhdGEtdGVzdC1pZF0uXG4gICAqL1xuICBASW5wdXQoJ2RhdGEtdGVzdC1pZCcpXG4gIHRlc3RJZCA9ICd0ZXh0LWlucHV0JztcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAqIE9wdGlvbmFsbHkgZW1pdHMgdGhlIGN1cnJlbnQgaW5wdXQgdmFsdWUsIGluY2x1ZGluZyB1bml0IChpZiBjb25maWd1cmVkKS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UWRJbnB1dFZhbHVlIHwgUWRJbnB1dFZhbHVlV2l0aFVuaXQgfCB1bmRlZmluZWQ+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IHdoZW4gdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLiBOb3RlOiBFbWl0cyBvbiBrZXl1cCAobm8gbG9uZ2VyIG9uIGNsaWNrLCBhcyBiZWZvcmUpIVxuICAgKiBPcHRpb25hbGx5IGVtaXRzIHRoZSBjdXJyZW50IGlucHV0IHZhbHVlLCBpbmNsdWRpbmcgdW5pdCAoaWYgY29uZmlndXJlZCkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZW50ZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UWRJbnB1dFZhbHVlIHwgUWRJbnB1dFZhbHVlV2l0aFVuaXQgfCB1bmRlZmluZWQ+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IHdoZW4gdGhlIGlucHV0IGZpZWxkIHdhcyBsYXBwZWQgb24gY2xpY2svdGFwIG9uIHRoZSB4IGljb24uIDxiciAvPlxuICAgKiBgUWRGb3JtSW5wdXRDb25maWd1cmF0aW9uWydjbGVhcmFibGUnXWAgbXVzdCBiZSBzZXQgdG8gdHJ1ZSBmb3IgdGhpcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBjbGlja0NsZWFyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSBoaW50IGlzIGNsaWNrZWQvdGFwcGVkLiBgaGludEFjdGlvbmAgbXVzdCBiZSBzZXQgdG8gYHRydWVgIGZvciB0aGlzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGNsaWNrSGludCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiB0aGUgcmVhZG9ubHkgdmFsdWUgaXMgY2xpY2tlZC90YXBwZWQuIGBjbGlja1JlYWRvbmx5IGAgbXVzdCBiZSBzZXQgdG8gYHRydWVgIGZvciB0aGlzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGNsaWNrUmVhZG9ubHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IHdoZW4gdGhlIHZpZXdvbmx5IHZhbHVlIGlzIGNsaWNrZWQvdGFwcGVkLiBgY2xpY2tWaWV3b25seSBgIG11c3QgYmUgc2V0IHRvIGB0cnVlYCBmb3IgdGhpcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBjbGlja1ZpZXdvbmx5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtaW5wdXQtcmVhZG9ubHknKVxuICByZWFkb25seTogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWlucHV0LS1yZWFkb25seS1hY3Rpb24nKVxuICByZWFkb25seUFjdGlvbiA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtaW5wdXQtdmlld29ubHknKVxuICB2aWV3b25seTogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWlucHV0LS12aWV3b25seS1hY3Rpb24nKVxuICB2aWV3b25seUFjdGlvbiA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtZm9ybS1oaW50LWFjdGlvbicpXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtaW5wdXQtaGludC1hY3Rpb24nKVxuICBoaW50QWN0aW9uID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1mb3JtLWRpc2FibGVkJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1pbnB1dC1kaXNhYmxlZCcpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtaW5wdXQtZm9jdXMnKVxuICBpc0lucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICBhcmVVbml0c09wZW5lZCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtZm9ybS1lcnJvcicpXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtaW5wdXQtZXJyb3InKVxuICBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC50b3VjaGVkICYmIHRoaXMuY29udHJvbC5pbnZhbGlkIDogZmFsc2U7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWlucHV0LWVycm9yLWZyb20tb3V0c2lkZScpXG4gIGdldCBpc0Vycm9yRnJvbU91dHNpZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNFcnJvcjtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JylcbiAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIGlucHV0VHlwZTogUWRJbnB1dFR5cGU7XG4gIGlucHV0TW9kZTogUWRJbnB1dE1vZGU7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGhpbnQ6IHN0cmluZztcbiAgY2xlYXJhYmxlOiBib29sZWFuO1xuICBoYXNBdXRvZm9jdXM6IGJvb2xlYW47XG4gIGhhc09wdGlvbnMgPSBmYWxzZTtcbiAgX3ZhbHVlOiBRZElucHV0VmFsdWVXaXRoVW5pdCA9IHsgdmFsdWU6ICcnIH07XG4gIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IFFkRm9ybUNvbnRyb2w8YW55PjtcblxuICBwcml2YXRlIF9vcHRpb25zUmVzb2x2ZXIhOiBRZEZvcm1PcHRpb25zUmVzb2x2ZXIgfCBudWxsO1xuICBwcml2YXRlIF9zdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBfb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgZ2V0IGhhc09ubHlVbml0c0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0VxdWFsKE9iamVjdC5rZXlzKHRoaXMuY29udHJvbC5lcnJvcnMpLCBbJ3JlcXVpcmVkJ10pICYmIHRoaXMuX3ZhbHVlLnZhbHVlICE9PSAnJztcbiAgfVxuXG4gIGdldCBoYXNVbml0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LnVuaXRzPy5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0IG51bWJlck9mQ2hhcmFjdGVycygpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5fdmFsdWUudmFsdWUpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIFN0cmluZyh0aGlzLl92YWx1ZS52YWx1ZSkubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGhhc01heExlbmd0aCgpOiBib29sZWFuIHtcbiAgICBpZiAoISh0aGlzLmNvbnRyb2wgaW5zdGFuY2VvZiBRZEZvcm1Db250cm9sKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5oYXNNYXhMZW5ndGgoKTtcbiAgfVxuXG4gIGdldCBtYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICBpZiAoISh0aGlzLmNvbnRyb2wgaW5zdGFuY2VvZiBRZEZvcm1Db250cm9sKSkgcmV0dXJuO1xuXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5nZXRNYXhMZW5ndGhPclVuZGVmaW5lZCgpO1xuICB9XG5cbiAgZ2V0IHZhbHVlQXNMaXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW2Ake3RoaXMuX3ZhbHVlLnZhbHVlfSR7dGhpcy5fdmFsdWUudW5pdCA/ICcgJyArIHRoaXMuX3ZhbHVlLnVuaXQgOiAnJ31gXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uRW1pdHRlclNlcnZpY2U6IFFkRm9ybXNBY3Rpb25FbWl0dGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVyUmVnaXN0cnk6IFFkRm9ybU9wdGlvbnNSZXNvbHZlclJlZ2lzdHJ5LFxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRCcm9rZXJTZXJ2aWNlOiBRZEV2ZW50QnJva2VyU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplT3B0aW9uc1Jlc29sdmVyKCk7XG4gICAgdGhpcy51cGRhdGVDb25maWcoKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2xDb250YWluZXIpIHtcbiAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sTmFtZSkge1xuICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmNvbnRyb2xDb250YWluZXIuY29udHJvbC5nZXQodGhpcy5mb3JtQ29udHJvbE5hbWUpO1xuXG4gICAgICAgIC8vIFRPRE8gcmVtb3ZlIGxvZ2ljIGZvciBzdXBwb3J0IG9mIGFuZ3VsYXIgRm9ybUNvbnRyb2wgd2l0aCBhbmd1bGFyIDIwIHVwZGF0ZVxuICAgICAgICBpZiAoISh0aGlzLmNvbnRyb2wgaW5zdGFuY2VvZiBRZEZvcm1Db250cm9sKSlcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1FELVVJIHwgUWRJbnB1dENvbXBvbmVudCAtIFBsZWFzZSB1c2UgdGhlIFFkRm9ybUNvbnRyb2wgaW5zdGVhZCBvZiB0aGUgQW5ndWxhciBGb3JtQ29udHJvbCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlID8/IGdldFZhbHVlKHRoaXMuY29uZmlnKSk7XG5cbiAgICB0aGlzLm5vcm1hbGl6ZUluaXRpYWxDb250cm9sVmFsdWVJZk5lZWRlZCgpO1xuXG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5hY3Rpb25FbWl0dGVyU2VydmljZS5oaW50RXZlbnRFbWl0dGVyJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGlja0hpbnQuZW1pdCgpKSk7XG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5hY3Rpb25FbWl0dGVyU2VydmljZS5yZWFkb25seUV2ZW50RW1pdHRlciQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xpY2tSZWFkb25seS5lbWl0KCkpKTtcbiAgICB0aGlzLl9zdWJzLmFkZCh0aGlzLmFjdGlvbkVtaXR0ZXJTZXJ2aWNlLnZpZXdvbmx5RXZlbnRFbWl0dGVyJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGlja1ZpZXdvbmx5LmVtaXQoKSkpO1xuICAgIHRoaXMuX3N1YnMuYWRkKHRoaXMuaW5pdE9wTW9kZVN1YnNjcmlwdGlvbigpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlnKCk7XG4gICAgICB0aGlzLm5vcm1hbGl6ZUluaXRpYWxDb250cm9sVmFsdWVJZk5lZWRlZCgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZSddKSB0aGlzLndyaXRlVmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY29uc3QgZm5TdHJpbmcgPSBmbi50b1N0cmluZygpO1xuXG4gICAgaWYgKGZuU3RyaW5nLmluY2x1ZGVzKCdfbm9Db250cm9sRXJyb3InKSB8fCBmblN0cmluZy5pbmNsdWRlcygndmFsaWRhdGVDb250cm9sUHJlc2VuY2VPbkNoYW5nZScpKSByZXR1cm47XG5cbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFFkSW5wdXRWYWx1ZVdpdGhVbml0IHwgUWRJbnB1dFZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSBnZXRWYWx1ZVdpdGhVbml0KHZhbHVlLCB0aGlzLmNvbmZpZyk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIHRoaXMuY2xlYXJhYmxlID0gZ2V0Q2xlYXJhYmxlKHRoaXMuY29uZmlnKSAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgfVxuXG4gIGhhbmRsZUlucHV0KGV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5fdmFsdWUgPSB7IC4uLnRoaXMuX3ZhbHVlLCB2YWx1ZSB9O1xuICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgdGhpcy5fb25Ub3VjaCgpO1xuICB9XG5cbiAgaGFuZGxlT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBRZEZvcm1JbnB1dE9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0geyAuLi50aGlzLl92YWx1ZSwgdmFsdWU6IG9wdGlvbi5pMThuIH07XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG9wdGlvbi52YWx1ZSk7XG4gICAgdGhpcy5fb25DaGFuZ2Uob3B0aW9uLnZhbHVlKTtcbiAgICB0aGlzLl9vblRvdWNoKCk7XG4gIH1cblxuICBoYW5kbGVVbml0Q2hhbmdlKHVuaXQpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZSA9IHsgLi4udGhpcy5fdmFsdWUsIHVuaXQgfTtcbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICB9XG5cbiAgaGFuZGxlSW5wdXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlzSW5wdXRGb2N1c2VkID0gdHJ1ZTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzSW5wdXRGb2N1c2VkID0gZmFsc2U7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5hcmVVbml0c09wZW5lZCkgdGhpcy5fb25Ub3VjaCgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBoYW5kbGVVbml0c09wZW5lZCgpOiB2b2lkIHtcbiAgICB0aGlzLmFyZVVuaXRzT3BlbmVkID0gdHJ1ZTtcbiAgfVxuXG4gIGhhbmRsZVVuaXRzQ2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYXJlVW5pdHNPcGVuZWQgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLl92YWx1ZS51bml0ICYmIHRoaXMuX3ZhbHVlLnZhbHVlID09PSAnJykge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vblRvdWNoKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZSA9IHsgLi4udGhpcy5fdmFsdWUsIHZhbHVlOiAnJyB9O1xuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgdGhpcy5jbGlja0NsZWFyLmVtaXQoKTtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGVtaXRFbnRlckNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc1VuaXRzKSB7XG4gICAgICB0aGlzLmVudGVyQ2xpY2suZW1pdCh0aGlzLl92YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW50ZXJDbGljay5lbWl0KHRoaXMuX3ZhbHVlLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0VHlwZSA9IGdldElucHV0VHlwZSh0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5pbnB1dE1vZGUgPSBnZXRJbnB1dE1vZGUodGhpcy5jb25maWcpO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBnZXRQbGFjZWhvbGRlcih0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5sYWJlbCA9IGdldExhYmVsKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmhpbnQgPSBnZXRIaW50KHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnJlYWRvbmx5ID0gZ2V0UmVhZG9ubHkodGhpcy5jb25maWcsIHRoaXMucmVhZG9ubHkpO1xuICAgIHRoaXMudmlld29ubHkgPSBnZXRWaWV3b25seSh0aGlzLmNvbmZpZywgdGhpcy52aWV3b25seSk7XG4gICAgdGhpcy5oaW50QWN0aW9uID0gZ2V0SGludEFjdGlvbih0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5yZWFkb25seUFjdGlvbiA9IGdldFJlYWRvbmx5QWN0aW9uKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnZpZXdvbmx5QWN0aW9uID0gZ2V0Vmlld29ubHlBY3Rpb24odGhpcy5jb25maWcpO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBnZXREaXNhYmxlZCh0aGlzLmNvbmZpZykgfHwgISF0aGlzLmNvbnRyb2w/LmRpc2FibGVkO1xuICAgIHRoaXMuY2xlYXJhYmxlID0gIXRoaXMuZGlzYWJsZWQgJiYgZ2V0Q2xlYXJhYmxlKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmhhc0F1dG9mb2N1cyA9IGdldEhhc0F1dG9mb2N1cyh0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5oYXNPcHRpb25zID0gKHRoaXMuY29uZmlnLm9wdGlvbnMgJiYgdGhpcy5jb25maWcub3B0aW9ucy5sZW5ndGggPiAwKSB8fCAhIXRoaXMuX29wdGlvbnNSZXNvbHZlcjtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU9wdGlvbnNSZXNvbHZlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlc29sdmVyUmVnaXN0cnkuaW5pdGlhbGl6ZSh0aGlzLmNvbmZpZz8ub3B0aW9uc1Jlc29sdmVyTmFtZSk7XG4gICAgdGhpcy5fb3B0aW9uc1Jlc29sdmVyID0gdGhpcy5yZXNvbHZlclJlZ2lzdHJ5LmZpbmRSZXNvbHZlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzVW5pdHMpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0T3BNb2RlU3Vic2NyaXB0aW9uKCk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmICghdGhpcy5ldmVudEJyb2tlclNlcnZpY2UpIHJldHVybjtcblxuICAgIHJldHVybiB0aGlzLmV2ZW50QnJva2VyU2VydmljZS5jb25zdW1lPHsgaXNWaWV3b25seTogYm9vbGVhbiB9Pignb3BlcmF0aW9uX21vZGVfY2hhbmdlZCcpLnN1YnNjcmliZSh0b3BpYyA9PiB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLnZpZXdvbmx5ID09PSAnYm9vbGVhbicpIHJldHVybjtcblxuICAgICAgdGhpcy52aWV3b25seSA9IGdldFZpZXdvbmx5KHRoaXMuY29uZmlnLCB0b3BpYy5wYXlsb2FkLmlzVmlld29ubHkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVJbml0aWFsQ29udHJvbFZhbHVlSWZOZWVkZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHJldHVybjtcblxuICAgIGNvbnN0IG1vZGVsVmFsdWUgPSAodGhpcy5jb250cm9sIGFzIGFueSkudmFsdWU7XG5cbiAgICBpZiAobW9kZWxWYWx1ZSA9PSBudWxsKSByZXR1cm4gdm9pZCAodGhpcy5fdmFsdWUgPSBnZXRWYWx1ZVdpdGhVbml0KG1vZGVsVmFsdWUsIHRoaXMuY29uZmlnKSk7XG5cbiAgICBjb25zdCBub3JtYWxpemVkID0gZ2V0VmFsdWVXaXRoVW5pdChtb2RlbFZhbHVlLCB0aGlzLmNvbmZpZyk7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5oYXNVbml0cyA/IG5vcm1hbGl6ZWQgOiBub3JtYWxpemVkLnZhbHVlO1xuXG4gICAgaWYgKCFpc0VxdWFsKG1vZGVsVmFsdWUsIHRhcmdldCkpICh0aGlzLmNvbnRyb2wgYXMgYW55KS5zZXRWYWx1ZSh0YXJnZXQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgIHRoaXMuX3ZhbHVlID0gbm9ybWFsaXplZDtcbiAgfVxufVxuIiwiPHFkLWZvcm0tbGFiZWxcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgW3ZpZXdvbmx5XT1cInZpZXdvbmx5XCJcbiAgW2NvbnRyb2xdPVwiY29udHJvbFwiXG4gIFt0b29sdGlwXT1cImNvbmZpZz8udG9vbHRpcFwiXG4gIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbj48L3FkLWZvcm0tbGFiZWw+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVhZG9ubHkgJiYgIXZpZXdvbmx5ICYmICFoYXNPcHRpb25zXCI+XG4gIDxkaXYgY2xhc3M9XCJxZC1pbnB1dC1pbnB1dFwiIChrZXlkb3duLmVudGVyKT1cImVtaXRFbnRlckNsaWNrKClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRCb3hcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPHNwYW4gY2xhc3M9XCJxZC1pbnB1dC1jaGFyYWN0ZXItY291bnRlclwiICpuZ0lmPVwiaGFzTWF4TGVuZ3RoXCI+e3sgbnVtYmVyT2ZDaGFyYWN0ZXJzIH19IC8ge3sgbWF4TGVuZ3RoIH19PC9zcGFuPlxuXG4gIDxxZC1mb3JtLWhpbnRcbiAgICBbaGludF09XCJoaW50XCJcbiAgICBbY29udHJvbF09XCJjb250cm9sXCJcbiAgICBbaGFzRXJyb3JdPVwiaGFzRXJyb3JcIlxuICAgIFtoaW50QWN0aW9uXT1cImhpbnRBY3Rpb25cIlxuICAgIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgPjwvcWQtZm9ybS1oaW50PlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgKm5nSWY9XCIhcmVhZG9ubHkgJiYgIXZpZXdvbmx5ICYmIGhhc09wdGlvbnNcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicWQtaW5wdXQtaW5wdXRcIlxuICAgIHFkSW5wdXRPcHRpb25zXG4gICAgW3FkUG9wb3Zlck1pbldpZHRoXT1cIjIwMFwiXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgIFt2YWx1ZV09XCJfdmFsdWUudmFsdWVcIlxuICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAoZW50ZXJDbGljayk9XCJlbWl0RW50ZXJDbGljaygpXCJcbiAgPlxuICAgIDwhLS0gaGFuZGxlIChlbnRlckNsaWNrKSBieSBvcHRpb25zIGRpcmVjdGl2ZSBoZXJlIGJlY2F1c2UgZXZlbnQgaGFzIHRvIGJlIGZpcmVkIGFmdGVyIHNlbGVjdGlvbiAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRCb3hcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPHNwYW4gY2xhc3M9XCJxZC1pbnB1dC1jaGFyYWN0ZXItY291bnRlclwiICpuZ0lmPVwiaGFzTWF4TGVuZ3RoXCI+e3sgbnVtYmVyT2ZDaGFyYWN0ZXJzIH19IC8ge3sgbWF4TGVuZ3RoIH19PC9zcGFuPlxuXG4gIDxxZC1mb3JtLWhpbnRcbiAgICBbaGludF09XCJoaW50XCJcbiAgICBbY29udHJvbF09XCJjb250cm9sXCJcbiAgICBbaGFzRXJyb3JdPVwiaGFzRXJyb3JcIlxuICAgIFtoaW50QWN0aW9uXT1cImhpbnRBY3Rpb25cIlxuICAgIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgPjwvcWQtZm9ybS1oaW50PlxuPC9kaXY+XG5cbjxxZC1mb3JtLXJlYWRvbmx5XG4gICpuZ0lmPVwicmVhZG9ubHlcIlxuICBbdmFsdWVzXT1cInZhbHVlQXNMaXN0XCJcbiAgW3JlYWRvbmx5QWN0aW9uXT1cInJlYWRvbmx5QWN0aW9uXCJcbiAgW2RhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuPjwvcWQtZm9ybS1yZWFkb25seT5cblxuPHFkLWZvcm0tdmlld29ubHlcbiAgKm5nSWY9XCJ2aWV3b25seVwiXG4gIFt2YWx1ZXNdPVwidmFsdWVBc0xpc3RcIlxuICBbdmlld29ubHlBY3Rpb25dPVwidmlld29ubHlBY3Rpb25cIlxuICBbZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4+PC9xZC1mb3JtLXZpZXdvbmx5PlxuXG48bmctdGVtcGxhdGUgI2lucHV0Qm94PlxuICA8aW5wdXRcbiAgICAjaW5wdXRcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIlxuICAgIFt2YWx1ZV09XCJoYXNPcHRpb25zID8gKF92YWx1ZS52YWx1ZS50b1N0cmluZygpIHwgdHJhbnNsYXRlKSA6IF92YWx1ZS52YWx1ZVwiXG4gICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxuICAgIChmb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKClcIlxuICAgIChibHVyKT1cImhhbmRsZUlucHV0Qmx1cigpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxuICAgIFt0eXBlXT1cImlucHV0VHlwZVwiXG4gICAgW2F0dHIuaW5wdXRtb2RlXT1cImlucHV0TW9kZVwiXG4gICAgW3FkQXV0b2ZvY3VzXT1cImhhc0F1dG9mb2N1c1wiXG4gICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cInRlc3RJZCArICctaW5wdXQnXCJcbiAgICBbc3RlcF09XCJjb25maWc/LnN0ZXBcIlxuICAgIHJlcXVpcmVkXG4gIC8+XG4gIDxkaXYgY2xhc3M9XCJxZC1pbnB1dC1zdWZmaXhcIj5cbiAgICA8cWQtaWNvbiAqbmdJZj1cImhhc0Vycm9yICYmICFoYXNPbmx5VW5pdHNFcnJvclwiIGNsYXNzPVwicWQtaW5wdXQtZXJyb3ItaWNvblwiIGljb249XCJleGNsYW1hdGlvbkNpcmNsZVNvbGlkXCI+PC9xZC1pY29uPlxuICAgIDxxZC1pY29uICpuZ0lmPVwiY2xlYXJhYmxlXCIgY2xhc3M9XCJxZC1pbnB1dC1jbGVhcmFibGUtaWNvblwiIGljb249XCJ0aW1lc0xhcmdlXCIgKGNsaWNrKT1cImNsZWFySW5wdXQoKVwiPjwvcWQtaWNvbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcWRJY29uQnV0dG9uXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxxZC1pbnB1dC11bml0c1xuICAgICpuZ0lmPVwiaGFzVW5pdHNcIlxuICAgIFt1bml0XT1cIl92YWx1ZS51bml0XCJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgKHVuaXRDaGFuZ2UpPVwiaGFuZGxlVW5pdENoYW5nZSgkZXZlbnQpXCJcbiAgICAob3BlbmVkKT1cImhhbmRsZVVuaXRzT3BlbmVkKClcIlxuICAgIChjbG9zZWQpPVwiaGFuZGxlVW5pdHNDbG9zZWQoKVwiXG4gID48L3FkLWlucHV0LXVuaXRzPlxuICA8ZGl2IGNsYXNzPVwicWQtaW5wdXQtc3VmZml4XCIgKm5nSWY9XCJoYXNFcnJvciAmJiBoYXNPbmx5VW5pdHNFcnJvclwiPlxuICAgIDxxZC1pY29uIGNsYXNzPVwicWQtaW5wdXQtZXJyb3ItaWNvblwiIGljb249XCJleGNsYW1hdGlvbkNpcmNsZVNvbGlkXCI+PC9xZC1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL3BhZ2UvbW9kZWwvcGFnZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFFkTWVudUJ1dHRvbkFjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uL2J1dHRvbi9tb2RlbC9idXR0b24tY29uZmlnJztcbmltcG9ydCB7IFFkUGFnZUhlYWRlckZhY2V0Q29uZmlnIH0gZnJvbSAnLi9wYWdlLWhlYWRlci1mYWNldC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIG9mIFFkUGFnZS5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBwYWdlIG9iamVjdCBkYXRhXG4gKi9cbmV4cG9ydCB0eXBlIFFkUGFnZUNvbmZpZzxUIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PiA9XG4gIHwgUWRQYWdlQ29uZmlnT3ZlcnZpZXdcbiAgfCBRZFBhZ2VDb25maWdDcmVhdGU8VD5cbiAgfCBRZFBhZ2VDb25maWdJbnNwZWN0PFQ+XG4gIHwgUWRQYWdlQ29uZmlnQ3VzdG9tPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVNlbGVjdGVkQ29udGV4dCB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiB7XG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUWRQYWdlQ29udGV4dENvbmZpZ0Jhc2Uge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlc2NyaXB0aW9uIGZvciB0aGUgc3BlY2lmaWMgaGVhZGVyIGZhY2V0XG4gICAqL1xuICBsYWJlbDoge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBpMThuIHN0cmluZyBmb3IgdGhlIGRlc2NyaXB0aW9uLCB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbiAgICAgKi9cbiAgICBpMThuOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBbGxvd3MgdG8gaWRlbnRpZnkgdGhlIGNvbnRleHRcbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlciBzb21lIGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuIHRoZSBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICovXG4gIGNoYW5nZWQ/OiAoc2VsZWN0aW9uOiBRZFBhZ2VTZWxlY3RlZENvbnRleHQgfCBRZFBhZ2VTZWxlY3RlZENvbnRleHRbXSB8IG51bGwpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIGEgY29udGV4dCB3aXRoIHNpbmdsZSBzZWxlY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDb250ZXh0Q29uZmlnU2luZ2xlIGV4dGVuZHMgUWRQYWdlQ29udGV4dENvbmZpZ0Jhc2Uge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZXMgdGhlIHR5cGUgb24gaG93IHRoZSBjb250ZXh0IHNlbGVjdGlvbiBoYXBwZW5zLlxuICAgKi9cbiAgdHlwZTogJ3NpbmdsZSc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBdmFpbGFibGUgb3B0aW9ucyBmb3Igc2VsZWN0aW9uLlxuICAgKi9cbiAgb3B0aW9uczogUWRQYWdlU2VsZWN0ZWRDb250ZXh0W107XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmVzIHdoZXRoZXIgdGhlIGNvbnRleHQgb3B0aW9ucyBhcmUgc2VhcmNoYWJsZSBmb3IgdGhlIHVzZXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBoYXNTZWFyY2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGxhY2Vob2xkZXIgZm9yIHNlYXJjaFxuICAgKi9cbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGkxOG4gc3RyaW5nXG4gICAgICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGl0bGUgZm9yIHRoZSBkaWFsb2cgdGhhdCB3aWxsIGJlIG9wZW5lZFxuICAgKi9cbiAgdGl0bGU/OiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGkxOG4gc3RyaW5nXG4gICAgICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciBhIGNvbnRleHQgd2l0aCBtdWx0aSBzZWxlY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDb250ZXh0Q29uZmlnTXVsdGkgZXh0ZW5kcyBRZFBhZ2VDb250ZXh0Q29uZmlnQmFzZSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJlcyB0aGUgdHlwZSBvbiBob3cgdGhlIGNvbnRleHQgc2VsZWN0aW9uIGhhcHBlbnMuXG4gICAqL1xuICB0eXBlOiAnbXVsdGknO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXZhaWxhYmxlIG9wdGlvbnMgZm9yIHNlbGVjdGlvbi5cbiAgICovXG4gIG9wdGlvbnM6IFFkUGFnZVNlbGVjdGVkQ29udGV4dFtdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJlcyB3aGV0aGVyIHRoZSBjb250ZXh0IG9wdGlvbnMgYXJlIHNlYXJjaGFibGUgZm9yIHRoZSB1c2VyLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaGFzU2VhcmNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBsYWNlaG9sZGVyIGZvciBzZWFyY2hcblxuICAgKi9cbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGkxOG4gc3RyaW5nXG4gICAgICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGl0bGUgZm9yIHRoZSBkaWFsb2cgdGhhdCB3aWxsIGJlIG9wZW5lZFxuICAgKi9cbiAgdGl0bGU/OiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGkxOG4gc3RyaW5nXG4gICAgICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciBhIGNvbnRleHQgd2l0aCBjdXN0b20gc2VsZWN0aW9uIChlLiBnLiB5b3VyIG93biBkaWFsb2cpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlQ29udGV4dENvbmZpZ0N1c3RvbSBleHRlbmRzIFFkUGFnZUNvbnRleHRDb25maWdCYXNlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmVzIHRoZSB0eXBlIG9uIGhvdyB0aGUgY29udGV4dCBzZWxlY3Rpb24gaGFwcGVucy5cbiAgICovXG4gIHR5cGU6ICdjdXN0b20nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlciB0byBvcGVuIGEgY3VzdG9tIGRpYWxvZyBmb3Igc2VsZWN0aW9uXG4gICAqL1xuICBvcGVuOiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmVzIHRoZSBjb250ZXh0IHdpdGggb25lIG9mIHRoZSBhdmFpbGFibGUgdHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgUWRQYWdlQ29udGV4dENvbmZpZyA9IFFkUGFnZUNvbnRleHRDb25maWdTaW5nbGUgfCBRZFBhZ2VDb250ZXh0Q29uZmlnTXVsdGkgfCBRZFBhZ2VDb250ZXh0Q29uZmlnQ3VzdG9tO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIGNvbmZpZ3VyYXRpb24gZm9yIFFkUGFnZS5cbiAqL1xuaW50ZXJmYWNlIFFkUGFnZUNvbmZpZ0Jhc2Uge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRpdGxlIG9mIHRoZSBwYWdlLlxuICAgKi9cbiAgdGl0bGU6IFFkUGFnZVRpdGxlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGlkZXMgY29udGV4dHMgZnJvbSBiZWluZyBzaG93bi4gVGhlIENvbnRleHRTZXJ2aWNlIHdpbGwgc3RpbGwgd29yayBpbiB0aGUgYmFja2dyb3VuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGhpZGVDb250ZXh0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMYWJlbCBmb3IgdGhlIG1lbnUgYnV0dG9uIG9mIGN1c3RvbSBhY3Rpb25zLlxuICAgKi9cbiAgY3VzdG9tQWN0aW9uc0xhYmVsPzogUWRQYWdlQ3VzdG9tQWN0aW9uc0xhYmVsO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgb3ZlcnZpZXcgcGFnZSB0eXBlLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHBhZ2Ugb2JqZWN0IGRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDb25maWdPdmVydmlldyBleHRlbmRzIFFkUGFnZUNvbmZpZ0Jhc2Uge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhZ2UgVHlwZVxuICAgKlxuICAgKiBAZGVmYXVsdCAnb3ZlcnZpZXcnXG4gICAqL1xuICBwYWdlVHlwZT86ICdvdmVydmlldyc7IC8vIE9wdGlvbmFsIHRvIG1ha2UgaXQgZGVmYXVsdFxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBzcGVjaWZpYyB0byB0aGUgb3ZlcnZpZXcgcGFnZSB0eXBlLlxuICAgKi9cbiAgcGFnZVR5cGVDb25maWc/OiBRZFBhZ2VUeXBlT3ZlcnZpZXdDb25maWc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjcmVhdGUgcGFnZSB0eXBlLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHBhZ2Ugb2JqZWN0IGRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDb25maWdDcmVhdGU8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4gZXh0ZW5kcyBRZFBhZ2VDb25maWdCYXNlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYWdlIFR5cGVcbiAgICpcbiAgICogQGRlZmF1bHQgJ2NyZWF0ZSdcbiAgICovXG4gIHBhZ2VUeXBlOiAnY3JlYXRlJztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gc3BlY2lmaWMgdG8gdGhlIGNyZWF0ZSBwYWdlIHR5cGUuXG4gICAqL1xuICBwYWdlVHlwZUNvbmZpZz86IFFkUGFnZVR5cGVDcmVhdGVDb25maWc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBwbGFjZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgcGFnZS4gQ29uY2VybnMgY3VycmVudCBzaG93biBvYmplY3QuXG4gICAqL1xuICBoZWFkZXJGYWNldHM/OiBRZFBhZ2VIZWFkZXJGYWNldENvbmZpZzxUPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZUNvbmZpZ0luc3BlY3Q8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4gZXh0ZW5kcyBRZFBhZ2VDb25maWdCYXNlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYWdlIFR5cGVcbiAgICpcbiAgICogQGRlZmF1bHQgJ2luc3BlY3QnXG4gICAqL1xuICBwYWdlVHlwZTogJ2luc3BlY3QnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBzcGVjaWZpYyB0byB0aGUgaW5zcGVjdCBwYWdlIHR5cGUuXG4gICAqL1xuICBwYWdlVHlwZUNvbmZpZz86IFFkUGFnZVR5cGVJbnNwZWN0Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gcGxhY2VkIGluIHRoZSBoZWFkZXIgb2YgdGhlIHBhZ2UuIENvbmNlcm5zIGN1cnJlbnQgc2hvd24gb2JqZWN0LlxuICAgKi9cbiAgaGVhZGVyRmFjZXRzPzogUWRQYWdlSGVhZGVyRmFjZXRDb25maWc8VD5bXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERldGVybWluZXMgd2hldGhlciB0aGUgZmFjZXRzIGluIGhlYWRlciBzaG91bGQgYmUgY29sbGFwc2VkIGFuZCBjdXN0b20gYWN0aW9ucyBhcmUgaW4gYSBtZW51LiBUaGlzIG1vZGUgaXMgZGVzaWduZWQgZm9yIHRvdWNoIGRldmljZXMgYW5kIG1vYmlsZSBwaG9uZXMgb25seS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGFkYXB0aXZlTW9kZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlQ29uZmlnQ3VzdG9tPFQgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3Q+IGV4dGVuZHMgUWRQYWdlQ29uZmlnQmFzZSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFnZSBUeXBlXG4gICAqXG4gICAqIEBkZWZhdWx0ICdjdXN0b20nXG4gICAqL1xuICBwYWdlVHlwZTogJ2N1c3RvbSc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIHNwZWNpZmljIHRvIHRoZSBjdXN0b20gcGFnZSB0eXBlLlxuICAgKi9cbiAgcGFnZVR5cGVDb25maWc/OiBRZFBhZ2VUeXBlQ3VzdG9tQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gcGxhY2VkIGluIHRoZSBoZWFkZXIgb2YgdGhlIHBhZ2UuIENvbmNlcm5zIGN1cnJlbnQgc2hvd24gb2JqZWN0LlxuICAgKi9cbiAgaGVhZGVyRmFjZXRzPzogUWRQYWdlSGVhZGVyRmFjZXRDb25maWc8VD5bXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERldGVybWluZXMgd2hldGhlciB0aGUgZmFjZXRzIGluIGhlYWRlciBzaG91bGQgYmUgY29sbGFwc2VkIGFuZCBjdXN0b20gYWN0aW9ucyBhcmUgaW4gYSBtZW51LiBUaGlzIG1vZGUgaXMgZGVzaWduZWQgZm9yIHRvdWNoIGRldmljZXMgYW5kIG1vYmlsZSBwaG9uZXMgb25seS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGFkYXB0aXZlTW9kZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlndXJlcyB0aGUgb3ZlcnZpZXcgcGFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVR5cGVPdmVydmlld0NvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGFjdGlvbnMgZm9yIHRoZSBoZWFkZXIuXG4gICAqIFlvdSBjYW4gZGVmaW5lIGEgbGFiZWwsIGEgaGFuZGxlciwgYW5kIHlvdSBjYW4gZGlzYWJsZSBvciBoaWRlIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqICogSWYgdGhlcmUgZXhpc3RzIG1vcmUgdGhhbiAxIEN1c3RvbSBBY3Rpb24sIGEgUWRNZW51QnV0dG9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKlxuICAgKiAqIFRoZXNlIGFjdGlvbnMgYXJlIG5vdCBpbnRlbmRlZCB0byBpbmZsdWVuY2UgdGhlIGNvcmUgcHJvY2VzcyBmbG93IG9yIG1hbmlwdWxhdGUgdGhlIG9iamVjdCBkaXJlY3RseS4gSW5zdGVhZCwgdGhleSBzaG91bGQgYmUgdXNlZCBmb3Igc2lkZSBlZmZlY3RzLCBzdWNoIGFzIHRyaWdnZXJpbmcgbm90aWZpY2F0aW9ucywgdXBkYXRpbmcgZXh0ZXJuYWwgc2VydmljZXMsIG9yIGV4ZWN1dGluZyBzdXBwbGVtZW50YXJ5IHRhc2tzIHRoYXQgZG8gbm90IGFsdGVyIHRoZSBtYWluIHN0YXRlIG9mIHRoZSBvYmplY3QuXG4gICAqL1xuICBjdXN0b21BY3Rpb25zPzogUWRNZW51QnV0dG9uQWN0aW9uQ29uZmlnW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZXMgdGhlIGNyZWF0ZSBwYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVR5cGVDcmVhdGVDb25maWcge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzYXZlIGRyYWZ0IGFjdGlvbi5cbiAgICovXG4gIHNhdmVEcmFmdD86IFFkUGFnZVNhdmVEcmFmdEFjdGlvbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYW5jZWwgYnV0dG9uLlxuICAgKi9cbiAgY2FuY2VsOiBRZFBhZ2VDYW5jZWxBY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgc3VibWl0IGJ1dHRvbi5cbiAgICovXG4gIHN1Ym1pdDogUWRQYWdlQ3JlYXRlU3VibWl0QWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGFjdGlvbnMgZm9yIHRoZSBoZWFkZXIuXG4gICAqIFlvdSBjYW4gZGVmaW5lIGEgbGFiZWwsIGEgaGFuZGxlciwgYW5kIHlvdSBjYW4gZGlzYWJsZSBvciBoaWRlIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqICogSWYgdGhlcmUgZXhpc3RzIG1vcmUgdGhhbiAxIEN1c3RvbSBBY3Rpb24sIGEgUWRNZW51QnV0dG9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKlxuICAgKiAqIFRoZXNlIGFjdGlvbnMgYXJlIG5vdCBpbnRlbmRlZCB0byBpbmZsdWVuY2UgdGhlIGNvcmUgcHJvY2VzcyBmbG93IG9yIG1hbmlwdWxhdGUgdGhlIG9iamVjdCBkaXJlY3RseS4gSW5zdGVhZCwgdGhleSBzaG91bGQgYmUgdXNlZCBmb3Igc2lkZSBlZmZlY3RzLCBzdWNoIGFzIHRyaWdnZXJpbmcgbm90aWZpY2F0aW9ucywgdXBkYXRpbmcgZXh0ZXJuYWwgc2VydmljZXMsIG9yIGV4ZWN1dGluZyBzdXBwbGVtZW50YXJ5IHRhc2tzIHRoYXQgZG8gbm90IGFsdGVyIHRoZSBtYWluIHN0YXRlIG9mIHRoZSBvYmplY3QuXG4gICAqL1xuICBjdXN0b21BY3Rpb25zPzogUWRNZW51QnV0dG9uQWN0aW9uQ29uZmlnW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZXMgdGhlIGluc3BlY3QgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VUeXBlSW5zcGVjdENvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gT3BlcmF0aW9uIG1vZGUgZm9yIHRoZSBwYWdlLlxuICAgKlxuICAgKiAqIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgbW9kZSBpbiB3aGljaCB0aGUgcGFnZSBvcGVyYXRlcy4gSXQgY2FuIGJlIGVpdGhlciAndmlldycgb3IgJ2VkaXQnLlxuICAgKlxuICAgKiAqICoqdmlldyoqOiBUaGUgcGFnZSBpcyBpbiByZWFkLW9ubHkgbW9kZS5cbiAgICogKiAqKmVkaXQqKjogVGhlIHBhZ2UgYWxsb3dzIG1vZGlmaWNhdGlvbnMuXG4gICAqL1xuICBvcGVyYXRpb25Nb2RlPzogUWRJbnNwZWN0T3BlcmF0aW9uTW9kZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFNwZWNpZmllcyB3aGV0aGVyIHRoZSB1c2VyIGNhbiBlZGl0IHRoZSBvYmplY3Qgb3Igbm90LlxuICAgKi9cbiAgaGlkZUVkaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGVkaXQgYWN0aW9uLlxuICAgKi9cbiAgZWRpdD86IFFkUGFnZUVkaXRBY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgc2F2ZSBhY3Rpb24uXG4gICAqL1xuICBzYXZlPzogUWRQYWdlU2F2ZUFjdGlvbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYW5jZWwgYWN0aW9uLlxuICAgKi9cbiAgY2FuY2VsOiBRZFBhZ2VDYW5jZWxBY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgZGVsZXRlIGFjdGlvbi5cbiAgICovXG4gIGRlbGV0ZT86IFFkUGFnZURlbGV0ZUFjdGlvbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhcmNoaXZlIGFjdGlvbi5cbiAgICovXG4gIGFyY2hpdmU/OiBRZFBhZ2VBcmNoaXZlQWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHN1Ym1pdCBhY3Rpb24uXG4gICAqL1xuICBzdWJtaXQ/OiBRZFBhZ2VTdWJtaXRBY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDdXN0b20gYWN0aW9ucyBmb3IgdGhlIGhlYWRlci5cbiAgICogWW91IGNhbiBkZWZpbmUgYSBsYWJlbCwgYSBoYW5kbGVyLCBhbmQgeW91IGNhbiBkaXNhYmxlIG9yIGhpZGUgdGhlIGFjdGlvbi5cbiAgICpcbiAgICogKiBJZiB0aGVyZSBleGlzdHMgbW9yZSB0aGFuIDEgQ3VzdG9tIEFjdGlvbiwgYSBRZE1lbnVCdXR0b24gd2lsbCBiZSBkaXNwbGF5ZWQuXG4gICAqXG4gICAqICogSW4gdGhlIFwiSW5zcGVjdFwiIHBhZ2UgdHlwZSwgeW91IGNhbiBhc3NpZ24gY3VzdG9tIGFjdGlvbnMgdG8gdGhlIG9wZXJhdGlvbiBtb2RlcyBcInZpZXdcIiBvciBcImVkaXQuXCIgQnkgZGVmYXVsdCwgdGhlIGFjdGlvbiBpcyBhY3RpdmUgaW4gYm90aCBtb2Rlcy5cbiAgICpcbiAgICogKiBUaGVzZSBhY3Rpb25zIGFyZSBub3QgaW50ZW5kZWQgdG8gaW5mbHVlbmNlIHRoZSBjb3JlIHByb2Nlc3MgZmxvdyBvciBtYW5pcHVsYXRlIHRoZSBvYmplY3QgZGlyZWN0bHkuIEluc3RlYWQsIHRoZXkgc2hvdWxkIGJlIHVzZWQgZm9yIHNpZGUgZWZmZWN0cywgc3VjaCBhcyB0cmlnZ2VyaW5nIG5vdGlmaWNhdGlvbnMsIHVwZGF0aW5nIGV4dGVybmFsIHNlcnZpY2VzLCBvciBleGVjdXRpbmcgc3VwcGxlbWVudGFyeSB0YXNrcyB0aGF0IGRvIG5vdCBhbHRlciB0aGUgbWFpbiBzdGF0ZSBvZiB0aGUgb2JqZWN0LlxuICAgKi9cbiAgY3VzdG9tQWN0aW9ucz86IChRZE1lbnVCdXR0b25BY3Rpb25Db25maWcgJiB7IG9wZXJhdGlvbk1vZGU/OiBRZEluc3BlY3RPcGVyYXRpb25Nb2RlIH0pW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlVHlwZUN1c3RvbUNvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGFjdGlvbnMgZm9yIHRoZSBoZWFkZXIuXG4gICAqIFlvdSBjYW4gZGVmaW5lIGEgbGFiZWwsIGEgaGFuZGxlciwgYW5kIHlvdSBjYW4gZGlzYWJsZSBvciBoaWRlIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqICogSWYgdGhlcmUgZXhpc3RzIG1vcmUgdGhhbiAxIEN1c3RvbSBBY3Rpb24sIGEgUWRNZW51QnV0dG9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKlxuICAgKiAqIFRoZXNlIGFjdGlvbnMgYXJlIG5vdCBpbnRlbmRlZCB0byBpbmZsdWVuY2UgdGhlIGNvcmUgcHJvY2VzcyBmbG93IG9yIG1hbmlwdWxhdGUgdGhlIG9iamVjdCBkaXJlY3RseS4gSW5zdGVhZCwgdGhleSBzaG91bGQgYmUgdXNlZCBmb3Igc2lkZSBlZmZlY3RzLCBzdWNoIGFzIHRyaWdnZXJpbmcgbm90aWZpY2F0aW9ucywgdXBkYXRpbmcgZXh0ZXJuYWwgc2VydmljZXMsIG9yIGV4ZWN1dGluZyBzdXBwbGVtZW50YXJ5IHRhc2tzIHRoYXQgZG8gbm90IGFsdGVyIHRoZSBtYWluIHN0YXRlIG9mIHRoZSBvYmplY3QuXG4gICAqL1xuICBjdXN0b21BY3Rpb25zPzogUWRNZW51QnV0dG9uQWN0aW9uQ29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlVGl0bGUge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIHRyYW5zbGF0aW9uIGtleVxuICAgKlxuICAgKiAqIEBleGFtcGxlIHsgaTE4bjogXCJpMThuLm92ZXJ2aWV3LnRpdGxlXCJ9XG4gICAqL1xuICBpMThuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXN0b20gYWN0aW9ucyBsYWJlbCwgdXNlZCB3aGVuIG11bHRpcGxlIGN1c3RvbSBhY3Rpb25zIGV4aXN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZUN1c3RvbUFjdGlvbnNMYWJlbCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGFiZWwgZm9yIHRoZSBtZW51IGJ1dHRvbiBvZiBjdXN0b20gYWN0aW9ucywgdXNlZCBmb3IgdHJhbnNsYXRpb24uXG4gICAqXG4gICAqICogSWYgbm8gY3VzdG9tIHRyYW5zbGF0aW9uIGtleSBpcyBwcm92aWRlZCwgYSBzdGFuZGFyZCBsYWJlbCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogKiBUaGlzIGxhYmVsIGJlY29tZXMgdmlzaWJsZSBpZiBtb3JlIHRoYW4gb25lIGN1c3RvbSBhY3Rpb24gaXMgZGVmaW5lZCwgYXMgdGhlIGFjdGlvbnMgd2lsbCBiZSBncm91cGVkIHVuZGVyIGEgUWRNZW51QnV0dG9uIHRoYXQgZGlzcGxheXMgdGhpcyBsYWJlbC5cbiAgICovXG4gIGkxOG46IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3BlcmF0aW9uIG1vZGVzIGZvciB0aGUgaW5zcGVjdCBwYWdlLlxuICpcbiAqIEBkZWZhdWx0ICd2aWV3J1xuICovXG5leHBvcnQgdHlwZSBRZEluc3BlY3RPcGVyYXRpb25Nb2RlID0gJ3ZpZXcnIHwgJ2VkaXQnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIHRoZSBzYXZlIGFjdGlvbiwgaW5jbHVkaW5nIG9wdGlvbmFsIHZhbGlkYXRpb24gY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VTYXZlQWN0aW9uIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMYWJlbCBmb3IgdGhlIHNhdmUgYWN0aW9uLCB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbiAgICpcbiAgICogKiBJZiBubyBjdXN0b20gdHJhbnNsYXRpb24ga2V5IGlzIHByb3ZpZGVkLCBhIHN0YW5kYXJkIGxhYmVsIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgbGFiZWw/OiB7IGkxOG46IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVHJpZ2dlcmVkIHdoZW4gdGhlIHNhdmUgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAgKlxuICAgKiBTdWNjZXNzIGNyaXRlcmlhOlxuICAgKiAtIElmIHRoZSBoYW5kbGVyIHJldHVybnMgYW4gT2JzZXJ2YWJsZTxib29sZWFuPiwgb25seSB0aGUgZmlyc3QgZW1pc3Npb24gYWZ0ZXIgdGhlIHNhdmUgY2xpY2sgY291bnRzOlxuICAgKiAgIC0gKip0cnVlOioqIHN1Y2Nlc3MgLSB0b2dnbGUgdG8gdmlldyBhbmQgYXBwbHkgdGhlIHNhdmVkIHZhbHVlc1xuICAgKiAgIC0gKipmYWxzZToqKiBmYWlsdXJlL2NhbmNlbCAtIHN0YXkgaW4gZWRpdCBtb2RlXG4gICAqIC0gSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBubyBPYnNlcnZhYmxlICh2b2lkKSwgdGhlIHNhdmUgaXMgdHJlYXRlZCBhcyBpbnN0YW50IHN1Y2Nlc3MgKHRvZ2dsZSArIGFwcGx5IHZhbHVlcykuXG4gICAqXG4gICAqIE9uIGEgc3VjY2Vzc2Z1bCBzYXZlLCB0aGUgZnJhbWV3b3JrIGFwcGxpZXMgdGhlIHZhbHVlcyBhbmQgcmVzZXRzIGl0cyBpbnRlcm5hbCB2YWxpZGF0aW9uIGFuZCBjaGFuZ2UtdHJhY2tpbmcgc3RhdGUuXG4gICAqL1xuICBoYW5kbGVyOiAoZm9ybVZhbHVlcz86IGFueSkgPT4gdm9pZCB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCB2YWxpZGF0aW9uIGZsYWcsIGRlZmF1bHRzIHRvIHRydWUuXG4gICAqIERldGVybWluZXMgd2hldGhlciBmb3JtIHZhbGlkYXRpb24gaXMgcmVxdWlyZWQgYmVmb3JlIHNhdmluZyBhbmQgZW5zdXJlcyB0aGF0IGNoYW5nZXMgbXVzdCBiZSBwcmVzZW50IGluIHRoZSBmb3JtIGJlZm9yZSBzYXZpbmcuXG4gICAqXG4gICAqICogQnkgZGVmYXVsdCwgdGhpcyBmbGFnIGlzIHNldCB0byB0cnVlLCBtZWFuaW5nIHRoYXQgdmFsaWRhdGlvbiBpcyBlbmZvcmNlZCwgYW5kIHRoZSBmb3JtIHdpbGwgb25seSBzYXZlIGlmIHRoZXJlIGFyZSBjaGFuZ2VzLlxuICAgKlxuICAgKiAqIElmIHNldCB0byBgZmFsc2VgLCB0aGUgZm9ybSB3aWxsIGJlIHNhdmVkIHdpdGhvdXQgdmFsaWRhdGlvbiBjaGVja3MsIGJ1dCBjaGFuZ2VzIG11c3Qgc3RpbGwgYmUgcHJlc2VudCB0byBwcm9jZWVkIHdpdGggdGhlIHNhdmUgb3BlcmF0aW9uLlxuICAgKlxuICAgKiAqIFRoaXMgZmxhZyBpcyB1c2VmdWwgaW4gc2NlbmFyaW9zIHdoZXJlIGZvcm0gdmFsaWRhdGlvbiBpcyBub3QgbmVlZGVkIG9yIHNob3VsZCBiZSBieXBhc3NlZCwgYnV0IGl0IGVuc3VyZXMgdGhhdCBvbmx5IG1vZGlmaWVkIGZvcm1zIGNhbiBiZSBzYXZlZC5cbiAgICovXG4gIGhhc1ZhbGlkYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIHRoZSBzYWZlIGRyYWZ0IGFjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VTYXZlRHJhZnRBY3Rpb24ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExhYmVsIGZvciB0aGUgc2F2ZSBkcmFmdCBhY3Rpb24sIHVzZWQgZm9yIHRyYW5zbGF0aW9uLlxuICAgKlxuICAgKiAqIElmIG5vIGN1c3RvbSB0cmFuc2xhdGlvbiBrZXkgaXMgcHJvdmlkZWQsIGEgc3RhbmRhcmQgbGFiZWwgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBsYWJlbD86IHsgaTE4bjogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVyIGZ1bmN0aW9uIHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHNhdmUgZHJhZnQgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgaGFuZGxlcjogKCkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgY2FuY2VsIGFjdGlvbiwgaW5jbHVkaW5nIGFuIG9wdGlvbmFsIGNvbmZpcm1hdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZUNhbmNlbEFjdGlvbiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGFiZWwgZm9yIHRoZSBjYW5jZWwgYWN0aW9uLCB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbiAgICpcbiAgICogKiBJZiBubyBjdXN0b20gdHJhbnNsYXRpb24ga2V5IGlzIHByb3ZpZGVkLCBhIHN0YW5kYXJkIGxhYmVsIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgbGFiZWw/OiB7IGkxOG46IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlciBmdW5jdGlvbiB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBjYW5jZWwgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgaGFuZGxlcjogKGZvcm1WYWx1ZXM/OiBhbnkpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBbiBvcHRpb25hbCBjb25maXJtYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gYSBkaWFsb2cgd2hlbiB0aGUgdXNlciBhdHRlbXB0cyB0byBjYW5jZWwgdGhlIG9wZXJhdGlvbiwgd2FybmluZyB0aGF0IGFsbCBjaGFuZ2VzIHdpbGwgYmUgZGlzY2FyZGVkLlxuICAgKiBJZiBubyBjdXN0b20gbWVzc2FnZSBpcyBwcm92aWRlZCwgYSBzdGFuZGFyZCBtZXNzYWdlIHdpbGwgYmUgc2hvd24gYnkgZGVmYXVsdC5cbiAgICpcbiAgICogKiBUaGUgY2FuY2VsbGF0aW9uIHByb2Nlc3MgY2hlY2tzIHdoZXRoZXIgdGhlcmUgYXJlIHVuc2F2ZWQgY2hhbmdlcyBpbiB0aGUgZm9ybS4gSWYgdGhlcmUgYXJlIGNoYW5nZXMsIHRoZSBkaWFsb2cgd2lsbCBhcHBlYXIuXG4gICAqXG4gICAqICogSWYgbm8gY2hhbmdlcyBhcmUgZGV0ZWN0ZWQsIHRoZSBjYW5jZWxsYXRpb24gcHJvY2VlZHMgd2l0aG91dCBzaG93aW5nIHRoZSBjb25maXJtYXRpb24gZGlhbG9nLlxuICAgKi9cbiAgY29uZmlybWF0aW9uTWVzc2FnZT86IHsgaTE4bjogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIHN1Ym1pdCBhY3Rpb24gb24gY3JlYXRlIHBhZ2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZUNyZWF0ZVN1Ym1pdEFjdGlvbiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGFiZWwgZm9yIHRoZSBzdWJtaXQgYWN0aW9uLCB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbiAgICpcbiAgICogKiBJZiBubyBjdXN0b20gdHJhbnNsYXRpb24ga2V5IGlzIHByb3ZpZGVkLCBhIHN0YW5kYXJkIGxhYmVsIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgbGFiZWw/OiB7IGkxOG46IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlciBmdW5jdGlvbiB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBzdWJtaXQgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgaGFuZGxlcjogKGZvcm1WYWx1ZXM/OiBhbnkpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIHN1Ym1pdCBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlU3VibWl0QWN0aW9uIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMYWJlbCBmb3IgdGhlIHN1Ym1pdCBhY3Rpb24sIHVzZWQgZm9yIHRyYW5zbGF0aW9uLlxuICAgKlxuICAgKiAqIElmIG5vIGN1c3RvbSB0cmFuc2xhdGlvbiBrZXkgaXMgcHJvdmlkZWQsIGEgc3RhbmRhcmQgbGFiZWwgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBsYWJlbD86IHsgaTE4bjogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVyIGZ1bmN0aW9uIHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHN1Ym1pdCBhY3Rpb24gaXMgZXhlY3V0ZWQuXG4gICAqL1xuICBoYW5kbGVyOiAoZm9ybVZhbHVlcz86IGFueSkgPT4gdm9pZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ5IGRlZmF1bHQsIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBzdWJtaXQgYnV0dG9uIGRlcGVuZHMgb24gdGhlIHBhZ2UgdHlwZSBhbmQgdGhlIG9wZXJhdGlvbiBtb2RlLlxuICAgKiBUbyBjb21wbGV0ZWx5IGhpZGUgdGhlIHN1Ym1pdCBidXR0b24sIHlvdSBjYW4gc2V0IHRoaXMgaXNIaWRkZW4gZmxhZy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgZWRpdCBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlRWRpdEFjdGlvbiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGFiZWwgZm9yIHRoZSBlZGl0IGFjdGlvbiwgdXNlZCBmb3IgdHJhbnNsYXRpb24uXG4gICAqXG4gICAqICogSWYgbm8gY3VzdG9tIHRyYW5zbGF0aW9uIGtleSBpcyBwcm92aWRlZCwgYSBzdGFuZGFyZCBsYWJlbCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIGxhYmVsPzogeyBpMThuOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXIgZnVuY3Rpb24gdGhhdCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgZWRpdCBhY3Rpb24gaXMgZXhlY3V0ZWQuXG4gICAqL1xuICBoYW5kbGVyOiAoZm9ybVZhbHVlcz86IGFueSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgZGVsZXRlIGFjdGlvbi5cbiAqXG4gKiAqIFRoaXMgYWN0aW9uIGlzIHJlcHJlc2VudGVkIGFzIGFuIGljb24sIHNvIGl0IGRvZXMgbm90IHJlcXVpcmUgYSBsYWJlbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VEZWxldGVBY3Rpb24ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXIgZnVuY3Rpb24gdGhhdCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgZGVsZXRlIGFjdGlvbiBpcyBleGVjdXRlZC5cbiAgICovXG4gIGhhbmRsZXI6IChmb3JtVmFsdWVzPzogYW55KSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIHRoZSBhcmNoaXZlIGFjdGlvbi5cbiAqXG4gKiAqIFRoaXMgYWN0aW9uIGlzIHJlcHJlc2VudGVkIGFzIGFuIGljb24sIHNvIGl0IGRvZXMgbm90IHJlcXVpcmUgYSBsYWJlbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VBcmNoaXZlQWN0aW9uIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVyIGZ1bmN0aW9uIHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIGFyY2hpdmUgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgaGFuZGxlcjogKGZvcm1WYWx1ZXM/OiBhbnkpID0+IHZvaWQ7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL3BhZ2UvbW9kZWwvcGFnZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFFkTWVudUJ1dHRvbkFjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uL2J1dHRvbi9tb2RlbC9idXR0b24tY29uZmlnJztcbmltcG9ydCB7IFFkUGFnZUhlYWRlckZhY2V0Q29uZmlnIH0gZnJvbSAnLi9wYWdlLWhlYWRlci1mYWNldC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIG9mIFFkUGFnZS5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBwYWdlIG9iamVjdCBkYXRhXG4gKi9cbmV4cG9ydCB0eXBlIFFkUGFnZUNvbmZpZzxUIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PiA9XG4gIHwgUWRQYWdlQ29uZmlnT3ZlcnZpZXdcbiAgfCBRZFBhZ2VDb25maWdDcmVhdGU8VD5cbiAgfCBRZFBhZ2VDb25maWdJbnNwZWN0PFQ+XG4gIHwgUWRQYWdlQ29uZmlnQ3VzdG9tPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVNlbGVjdGVkQ29udGV4dCB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiB7XG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUWRQYWdlQ29udGV4dENvbmZpZ0Jhc2Uge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlc2NyaXB0aW9uIGZvciB0aGUgc3BlY2lmaWMgaGVhZGVyIGZhY2V0XG4gICAqL1xuICBsYWJlbDoge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBpMThuIHN0cmluZyBmb3IgdGhlIGRlc2NyaXB0aW9uLCB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbiAgICAgKi9cbiAgICBpMThuOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBbGxvd3MgdG8gaWRlbnRpZnkgdGhlIGNvbnRleHRcbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlciBzb21lIGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuIHRoZSBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICovXG4gIGNoYW5nZWQ/OiAoc2VsZWN0aW9uOiBRZFBhZ2VTZWxlY3RlZENvbnRleHQgfCBRZFBhZ2VTZWxlY3RlZENvbnRleHRbXSB8IG51bGwpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIGEgY29udGV4dCB3aXRoIHNpbmdsZSBzZWxlY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDb250ZXh0Q29uZmlnU2luZ2xlIGV4dGVuZHMgUWRQYWdlQ29udGV4dENvbmZpZ0Jhc2Uge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZXMgdGhlIHR5cGUgb24gaG93IHRoZSBjb250ZXh0IHNlbGVjdGlvbiBoYXBwZW5zLlxuICAgKi9cbiAgdHlwZTogJ3NpbmdsZSc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBdmFpbGFibGUgb3B0aW9ucyBmb3Igc2VsZWN0aW9uLlxuICAgKi9cbiAgb3B0aW9uczogUWRQYWdlU2VsZWN0ZWRDb250ZXh0W107XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmVzIHdoZXRoZXIgdGhlIGNvbnRleHQgb3B0aW9ucyBhcmUgc2VhcmNoYWJsZSBmb3IgdGhlIHVzZXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBoYXNTZWFyY2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGxhY2Vob2xkZXIgZm9yIHNlYXJjaFxuICAgKi9cbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGkxOG4gc3RyaW5nXG4gICAgICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGl0bGUgZm9yIHRoZSBkaWFsb2cgdGhhdCB3aWxsIGJlIG9wZW5lZFxuICAgKi9cbiAgdGl0bGU/OiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGkxOG4gc3RyaW5nXG4gICAgICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciBhIGNvbnRleHQgd2l0aCBtdWx0aSBzZWxlY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDb250ZXh0Q29uZmlnTXVsdGkgZXh0ZW5kcyBRZFBhZ2VDb250ZXh0Q29uZmlnQmFzZSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJlcyB0aGUgdHlwZSBvbiBob3cgdGhlIGNvbnRleHQgc2VsZWN0aW9uIGhhcHBlbnMuXG4gICAqL1xuICB0eXBlOiAnbXVsdGknO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXZhaWxhYmxlIG9wdGlvbnMgZm9yIHNlbGVjdGlvbi5cbiAgICovXG4gIG9wdGlvbnM6IFFkUGFnZVNlbGVjdGVkQ29udGV4dFtdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJlcyB3aGV0aGVyIHRoZSBjb250ZXh0IG9wdGlvbnMgYXJlIHNlYXJjaGFibGUgZm9yIHRoZSB1c2VyLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaGFzU2VhcmNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBsYWNlaG9sZGVyIGZvciBzZWFyY2hcblxuICAgKi9cbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGkxOG4gc3RyaW5nXG4gICAgICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGl0bGUgZm9yIHRoZSBkaWFsb2cgdGhhdCB3aWxsIGJlIG9wZW5lZFxuICAgKi9cbiAgdGl0bGU/OiB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGkxOG4gc3RyaW5nXG4gICAgICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciBhIGNvbnRleHQgd2l0aCBjdXN0b20gc2VsZWN0aW9uIChlLiBnLiB5b3VyIG93biBkaWFsb2cpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlQ29udGV4dENvbmZpZ0N1c3RvbSBleHRlbmRzIFFkUGFnZUNvbnRleHRDb25maWdCYXNlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmVzIHRoZSB0eXBlIG9uIGhvdyB0aGUgY29udGV4dCBzZWxlY3Rpb24gaGFwcGVucy5cbiAgICovXG4gIHR5cGU6ICdjdXN0b20nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlciB0byBvcGVuIGEgY3VzdG9tIGRpYWxvZyBmb3Igc2VsZWN0aW9uXG4gICAqL1xuICBvcGVuOiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmVzIHRoZSBjb250ZXh0IHdpdGggb25lIG9mIHRoZSBhdmFpbGFibGUgdHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgUWRQYWdlQ29udGV4dENvbmZpZyA9IFFkUGFnZUNvbnRleHRDb25maWdTaW5nbGUgfCBRZFBhZ2VDb250ZXh0Q29uZmlnTXVsdGkgfCBRZFBhZ2VDb250ZXh0Q29uZmlnQ3VzdG9tO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIGNvbmZpZ3VyYXRpb24gZm9yIFFkUGFnZS5cbiAqL1xuaW50ZXJmYWNlIFFkUGFnZUNvbmZpZ0Jhc2Uge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRpdGxlIG9mIHRoZSBwYWdlLlxuICAgKi9cbiAgdGl0bGU6IFFkUGFnZVRpdGxlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGlkZXMgY29udGV4dHMgZnJvbSBiZWluZyBzaG93bi4gVGhlIENvbnRleHRTZXJ2aWNlIHdpbGwgc3RpbGwgd29yayBpbiB0aGUgYmFja2dyb3VuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGhpZGVDb250ZXh0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMYWJlbCBmb3IgdGhlIG1lbnUgYnV0dG9uIG9mIGN1c3RvbSBhY3Rpb25zLlxuICAgKi9cbiAgY3VzdG9tQWN0aW9uc0xhYmVsPzogUWRQYWdlQ3VzdG9tQWN0aW9uc0xhYmVsO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgb3ZlcnZpZXcgcGFnZSB0eXBlLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHBhZ2Ugb2JqZWN0IGRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDb25maWdPdmVydmlldyBleHRlbmRzIFFkUGFnZUNvbmZpZ0Jhc2Uge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhZ2UgVHlwZVxuICAgKlxuICAgKiBAZGVmYXVsdCAnb3ZlcnZpZXcnXG4gICAqL1xuICBwYWdlVHlwZT86ICdvdmVydmlldyc7IC8vIE9wdGlvbmFsIHRvIG1ha2UgaXQgZGVmYXVsdFxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBzcGVjaWZpYyB0byB0aGUgb3ZlcnZpZXcgcGFnZSB0eXBlLlxuICAgKi9cbiAgcGFnZVR5cGVDb25maWc/OiBRZFBhZ2VUeXBlT3ZlcnZpZXdDb25maWc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjcmVhdGUgcGFnZSB0eXBlLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHBhZ2Ugb2JqZWN0IGRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDb25maWdDcmVhdGU8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4gZXh0ZW5kcyBRZFBhZ2VDb25maWdCYXNlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYWdlIFR5cGVcbiAgICpcbiAgICogQGRlZmF1bHQgJ2NyZWF0ZSdcbiAgICovXG4gIHBhZ2VUeXBlOiAnY3JlYXRlJztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gc3BlY2lmaWMgdG8gdGhlIGNyZWF0ZSBwYWdlIHR5cGUuXG4gICAqL1xuICBwYWdlVHlwZUNvbmZpZz86IFFkUGFnZVR5cGVDcmVhdGVDb25maWc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBwbGFjZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgcGFnZS4gQ29uY2VybnMgY3VycmVudCBzaG93biBvYmplY3QuXG4gICAqL1xuICBoZWFkZXJGYWNldHM/OiBRZFBhZ2VIZWFkZXJGYWNldENvbmZpZzxUPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZUNvbmZpZ0luc3BlY3Q8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4gZXh0ZW5kcyBRZFBhZ2VDb25maWdCYXNlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYWdlIFR5cGVcbiAgICpcbiAgICogQGRlZmF1bHQgJ2luc3BlY3QnXG4gICAqL1xuICBwYWdlVHlwZTogJ2luc3BlY3QnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBzcGVjaWZpYyB0byB0aGUgaW5zcGVjdCBwYWdlIHR5cGUuXG4gICAqL1xuICBwYWdlVHlwZUNvbmZpZz86IFFkUGFnZVR5cGVJbnNwZWN0Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gcGxhY2VkIGluIHRoZSBoZWFkZXIgb2YgdGhlIHBhZ2UuIENvbmNlcm5zIGN1cnJlbnQgc2hvd24gb2JqZWN0LlxuICAgKi9cbiAgaGVhZGVyRmFjZXRzPzogUWRQYWdlSGVhZGVyRmFjZXRDb25maWc8VD5bXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERldGVybWluZXMgd2hldGhlciB0aGUgZmFjZXRzIGluIGhlYWRlciBzaG91bGQgYmUgY29sbGFwc2VkIGFuZCBjdXN0b20gYWN0aW9ucyBhcmUgaW4gYSBtZW51LiBUaGlzIG1vZGUgaXMgZGVzaWduZWQgZm9yIHRvdWNoIGRldmljZXMgYW5kIG1vYmlsZSBwaG9uZXMgb25seS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGFkYXB0aXZlTW9kZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlQ29uZmlnQ3VzdG9tPFQgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3Q+IGV4dGVuZHMgUWRQYWdlQ29uZmlnQmFzZSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFnZSBUeXBlXG4gICAqXG4gICAqIEBkZWZhdWx0ICdjdXN0b20nXG4gICAqL1xuICBwYWdlVHlwZTogJ2N1c3RvbSc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIHNwZWNpZmljIHRvIHRoZSBjdXN0b20gcGFnZSB0eXBlLlxuICAgKi9cbiAgcGFnZVR5cGVDb25maWc/OiBRZFBhZ2VUeXBlQ3VzdG9tQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gcGxhY2VkIGluIHRoZSBoZWFkZXIgb2YgdGhlIHBhZ2UuIENvbmNlcm5zIGN1cnJlbnQgc2hvd24gb2JqZWN0LlxuICAgKi9cbiAgaGVhZGVyRmFjZXRzPzogUWRQYWdlSGVhZGVyRmFjZXRDb25maWc8VD5bXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERldGVybWluZXMgd2hldGhlciB0aGUgZmFjZXRzIGluIGhlYWRlciBzaG91bGQgYmUgY29sbGFwc2VkIGFuZCBjdXN0b20gYWN0aW9ucyBhcmUgaW4gYSBtZW51LiBUaGlzIG1vZGUgaXMgZGVzaWduZWQgZm9yIHRvdWNoIGRldmljZXMgYW5kIG1vYmlsZSBwaG9uZXMgb25seS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGFkYXB0aXZlTW9kZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlndXJlcyB0aGUgb3ZlcnZpZXcgcGFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVR5cGVPdmVydmlld0NvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGFjdGlvbnMgZm9yIHRoZSBoZWFkZXIuXG4gICAqIFlvdSBjYW4gZGVmaW5lIGEgbGFiZWwsIGEgaGFuZGxlciwgYW5kIHlvdSBjYW4gZGlzYWJsZSBvciBoaWRlIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqICogSWYgdGhlcmUgZXhpc3RzIG1vcmUgdGhhbiAxIEN1c3RvbSBBY3Rpb24sIGEgUWRNZW51QnV0dG9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKlxuICAgKiAqIFRoZXNlIGFjdGlvbnMgYXJlIG5vdCBpbnRlbmRlZCB0byBpbmZsdWVuY2UgdGhlIGNvcmUgcHJvY2VzcyBmbG93IG9yIG1hbmlwdWxhdGUgdGhlIG9iamVjdCBkaXJlY3RseS4gSW5zdGVhZCwgdGhleSBzaG91bGQgYmUgdXNlZCBmb3Igc2lkZSBlZmZlY3RzLCBzdWNoIGFzIHRyaWdnZXJpbmcgbm90aWZpY2F0aW9ucywgdXBkYXRpbmcgZXh0ZXJuYWwgc2VydmljZXMsIG9yIGV4ZWN1dGluZyBzdXBwbGVtZW50YXJ5IHRhc2tzIHRoYXQgZG8gbm90IGFsdGVyIHRoZSBtYWluIHN0YXRlIG9mIHRoZSBvYmplY3QuXG4gICAqL1xuICBjdXN0b21BY3Rpb25zPzogUWRNZW51QnV0dG9uQWN0aW9uQ29uZmlnW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZXMgdGhlIGNyZWF0ZSBwYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVR5cGVDcmVhdGVDb25maWcge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzYXZlIGRyYWZ0IGFjdGlvbi5cbiAgICovXG4gIHNhdmVEcmFmdD86IFFkUGFnZVNhdmVEcmFmdEFjdGlvbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYW5jZWwgYnV0dG9uLlxuICAgKi9cbiAgY2FuY2VsOiBRZFBhZ2VDYW5jZWxBY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgc3VibWl0IGJ1dHRvbi5cbiAgICovXG4gIHN1Ym1pdDogUWRQYWdlQ3JlYXRlU3VibWl0QWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGFjdGlvbnMgZm9yIHRoZSBoZWFkZXIuXG4gICAqIFlvdSBjYW4gZGVmaW5lIGEgbGFiZWwsIGEgaGFuZGxlciwgYW5kIHlvdSBjYW4gZGlzYWJsZSBvciBoaWRlIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqICogSWYgdGhlcmUgZXhpc3RzIG1vcmUgdGhhbiAxIEN1c3RvbSBBY3Rpb24sIGEgUWRNZW51QnV0dG9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKlxuICAgKiAqIFRoZXNlIGFjdGlvbnMgYXJlIG5vdCBpbnRlbmRlZCB0byBpbmZsdWVuY2UgdGhlIGNvcmUgcHJvY2VzcyBmbG93IG9yIG1hbmlwdWxhdGUgdGhlIG9iamVjdCBkaXJlY3RseS4gSW5zdGVhZCwgdGhleSBzaG91bGQgYmUgdXNlZCBmb3Igc2lkZSBlZmZlY3RzLCBzdWNoIGFzIHRyaWdnZXJpbmcgbm90aWZpY2F0aW9ucywgdXBkYXRpbmcgZXh0ZXJuYWwgc2VydmljZXMsIG9yIGV4ZWN1dGluZyBzdXBwbGVtZW50YXJ5IHRhc2tzIHRoYXQgZG8gbm90IGFsdGVyIHRoZSBtYWluIHN0YXRlIG9mIHRoZSBvYmplY3QuXG4gICAqL1xuICBjdXN0b21BY3Rpb25zPzogUWRNZW51QnV0dG9uQWN0aW9uQ29uZmlnW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyZXMgdGhlIGluc3BlY3QgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VUeXBlSW5zcGVjdENvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gT3BlcmF0aW9uIG1vZGUgZm9yIHRoZSBwYWdlLlxuICAgKlxuICAgKiAqIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgbW9kZSBpbiB3aGljaCB0aGUgcGFnZSBvcGVyYXRlcy4gSXQgY2FuIGJlIGVpdGhlciAndmlldycgb3IgJ2VkaXQnLlxuICAgKlxuICAgKiAqICoqdmlldyoqOiBUaGUgcGFnZSBpcyBpbiByZWFkLW9ubHkgbW9kZS5cbiAgICogKiAqKmVkaXQqKjogVGhlIHBhZ2UgYWxsb3dzIG1vZGlmaWNhdGlvbnMuXG4gICAqL1xuICBvcGVyYXRpb25Nb2RlPzogUWRJbnNwZWN0T3BlcmF0aW9uTW9kZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFNwZWNpZmllcyB3aGV0aGVyIHRoZSB1c2VyIGNhbiBlZGl0IHRoZSBvYmplY3Qgb3Igbm90LlxuICAgKi9cbiAgaGlkZUVkaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGVkaXQgYWN0aW9uLlxuICAgKi9cbiAgZWRpdD86IFFkUGFnZUVkaXRBY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgc2F2ZSBhY3Rpb24uXG4gICAqL1xuICBzYXZlPzogUWRQYWdlU2F2ZUFjdGlvbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYW5jZWwgYWN0aW9uLlxuICAgKi9cbiAgY2FuY2VsOiBRZFBhZ2VDYW5jZWxBY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgZGVsZXRlIGFjdGlvbi5cbiAgICovXG4gIGRlbGV0ZT86IFFkUGFnZURlbGV0ZUFjdGlvbjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhcmNoaXZlIGFjdGlvbi5cbiAgICovXG4gIGFyY2hpdmU/OiBRZFBhZ2VBcmNoaXZlQWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHN1Ym1pdCBhY3Rpb24uXG4gICAqL1xuICBzdWJtaXQ/OiBRZFBhZ2VJbnNwZWN0U3VibWl0QWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGFjdGlvbnMgZm9yIHRoZSBoZWFkZXIuXG4gICAqIFlvdSBjYW4gZGVmaW5lIGEgbGFiZWwsIGEgaGFuZGxlciwgYW5kIHlvdSBjYW4gZGlzYWJsZSBvciBoaWRlIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqICogSWYgdGhlcmUgZXhpc3RzIG1vcmUgdGhhbiAxIEN1c3RvbSBBY3Rpb24sIGEgUWRNZW51QnV0dG9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKlxuICAgKiAqIEluIHRoZSBcIkluc3BlY3RcIiBwYWdlIHR5cGUsIHlvdSBjYW4gYXNzaWduIGN1c3RvbSBhY3Rpb25zIHRvIHRoZSBvcGVyYXRpb24gbW9kZXMgXCJ2aWV3XCIgb3IgXCJlZGl0LlwiIEJ5IGRlZmF1bHQsIHRoZSBhY3Rpb24gaXMgYWN0aXZlIGluIGJvdGggbW9kZXMuXG4gICAqXG4gICAqICogVGhlc2UgYWN0aW9ucyBhcmUgbm90IGludGVuZGVkIHRvIGluZmx1ZW5jZSB0aGUgY29yZSBwcm9jZXNzIGZsb3cgb3IgbWFuaXB1bGF0ZSB0aGUgb2JqZWN0IGRpcmVjdGx5LiBJbnN0ZWFkLCB0aGV5IHNob3VsZCBiZSB1c2VkIGZvciBzaWRlIGVmZmVjdHMsIHN1Y2ggYXMgdHJpZ2dlcmluZyBub3RpZmljYXRpb25zLCB1cGRhdGluZyBleHRlcm5hbCBzZXJ2aWNlcywgb3IgZXhlY3V0aW5nIHN1cHBsZW1lbnRhcnkgdGFza3MgdGhhdCBkbyBub3QgYWx0ZXIgdGhlIG1haW4gc3RhdGUgb2YgdGhlIG9iamVjdC5cbiAgICovXG4gIGN1c3RvbUFjdGlvbnM/OiAoUWRNZW51QnV0dG9uQWN0aW9uQ29uZmlnICYgeyBvcGVyYXRpb25Nb2RlPzogUWRJbnNwZWN0T3BlcmF0aW9uTW9kZSB9KVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVR5cGVDdXN0b21Db25maWcge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEN1c3RvbSBhY3Rpb25zIGZvciB0aGUgaGVhZGVyLlxuICAgKiBZb3UgY2FuIGRlZmluZSBhIGxhYmVsLCBhIGhhbmRsZXIsIGFuZCB5b3UgY2FuIGRpc2FibGUgb3IgaGlkZSB0aGUgYWN0aW9uLlxuICAgKlxuICAgKiAqIElmIHRoZXJlIGV4aXN0cyBtb3JlIHRoYW4gMSBDdXN0b20gQWN0aW9uLCBhIFFkTWVudUJ1dHRvbiB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICpcbiAgICogKiBUaGVzZSBhY3Rpb25zIGFyZSBub3QgaW50ZW5kZWQgdG8gaW5mbHVlbmNlIHRoZSBjb3JlIHByb2Nlc3MgZmxvdyBvciBtYW5pcHVsYXRlIHRoZSBvYmplY3QgZGlyZWN0bHkuIEluc3RlYWQsIHRoZXkgc2hvdWxkIGJlIHVzZWQgZm9yIHNpZGUgZWZmZWN0cywgc3VjaCBhcyB0cmlnZ2VyaW5nIG5vdGlmaWNhdGlvbnMsIHVwZGF0aW5nIGV4dGVybmFsIHNlcnZpY2VzLCBvciBleGVjdXRpbmcgc3VwcGxlbWVudGFyeSB0YXNrcyB0aGF0IGRvIG5vdCBhbHRlciB0aGUgbWFpbiBzdGF0ZSBvZiB0aGUgb2JqZWN0LlxuICAgKi9cbiAgY3VzdG9tQWN0aW9ucz86IFFkTWVudUJ1dHRvbkFjdGlvbkNvbmZpZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVRpdGxlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSB0cmFuc2xhdGlvbiBrZXlcbiAgICpcbiAgICogKiBAZXhhbXBsZSB7IGkxOG46IFwiaTE4bi5vdmVydmlldy50aXRsZVwifVxuICAgKi9cbiAgaTE4bjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciB0aGUgY3VzdG9tIGFjdGlvbnMgbGFiZWwsIHVzZWQgd2hlbiBtdWx0aXBsZSBjdXN0b20gYWN0aW9ucyBleGlzdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDdXN0b21BY3Rpb25zTGFiZWwge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExhYmVsIGZvciB0aGUgbWVudSBidXR0b24gb2YgY3VzdG9tIGFjdGlvbnMsIHVzZWQgZm9yIHRyYW5zbGF0aW9uLlxuICAgKlxuICAgKiAqIElmIG5vIGN1c3RvbSB0cmFuc2xhdGlvbiBrZXkgaXMgcHJvdmlkZWQsIGEgc3RhbmRhcmQgbGFiZWwgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqICogVGhpcyBsYWJlbCBiZWNvbWVzIHZpc2libGUgaWYgbW9yZSB0aGFuIG9uZSBjdXN0b20gYWN0aW9uIGlzIGRlZmluZWQsIGFzIHRoZSBhY3Rpb25zIHdpbGwgYmUgZ3JvdXBlZCB1bmRlciBhIFFkTWVudUJ1dHRvbiB0aGF0IGRpc3BsYXlzIHRoaXMgbGFiZWwuXG4gICAqL1xuICBpMThuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9wZXJhdGlvbiBtb2RlcyBmb3IgdGhlIGluc3BlY3QgcGFnZS5cbiAqXG4gKiBAZGVmYXVsdCAndmlldydcbiAqL1xuZXhwb3J0IHR5cGUgUWRJbnNwZWN0T3BlcmF0aW9uTW9kZSA9ICd2aWV3JyB8ICdlZGl0JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgc2F2ZSBhY3Rpb24sIGluY2x1ZGluZyBvcHRpb25hbCB2YWxpZGF0aW9uIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlU2F2ZUFjdGlvbiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGFiZWwgZm9yIHRoZSBzYXZlIGFjdGlvbiwgdXNlZCBmb3IgdHJhbnNsYXRpb24uXG4gICAqXG4gICAqICogSWYgbm8gY3VzdG9tIHRyYW5zbGF0aW9uIGtleSBpcyBwcm92aWRlZCwgYSBzdGFuZGFyZCBsYWJlbCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIGxhYmVsPzogeyBpMThuOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRyaWdnZXJlZCB3aGVuIHRoZSBzYXZlIGFjdGlvbiBpcyBleGVjdXRlZC5cbiAgICpcbiAgICogU3VjY2VzcyBjcml0ZXJpYTpcbiAgICogLSBJZiB0aGUgaGFuZGxlciByZXR1cm5zIGFuIE9ic2VydmFibGU8Ym9vbGVhbj4sIG9ubHkgdGhlIGZpcnN0IGVtaXNzaW9uIGFmdGVyIHRoZSBzYXZlIGNsaWNrIGNvdW50czpcbiAgICogICAtICoqdHJ1ZToqKiBzdWNjZXNzIC0gdG9nZ2xlIHRvIHZpZXcgYW5kIGFwcGx5IHRoZSBzYXZlZCB2YWx1ZXNcbiAgICogICAtICoqZmFsc2U6KiogZmFpbHVyZS9jYW5jZWwgLSBzdGF5IGluIGVkaXQgbW9kZVxuICAgKiAtIElmIHRoZSBoYW5kbGVyIHJldHVybnMgbm8gT2JzZXJ2YWJsZSAodm9pZCksIHRoZSBzYXZlIGlzIHRyZWF0ZWQgYXMgaW5zdGFudCBzdWNjZXNzICh0b2dnbGUgKyBhcHBseSB2YWx1ZXMpLlxuICAgKlxuICAgKiBPbiBhIHN1Y2Nlc3NmdWwgc2F2ZSwgdGhlIGZyYW1ld29yayBhcHBsaWVzIHRoZSB2YWx1ZXMgYW5kIHJlc2V0cyBpdHMgaW50ZXJuYWwgdmFsaWRhdGlvbiBhbmQgY2hhbmdlLXRyYWNraW5nIHN0YXRlLlxuICAgKi9cbiAgaGFuZGxlcjogKGZvcm1WYWx1ZXM/OiBhbnkpID0+IHZvaWQgfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgdmFsaWRhdGlvbiBmbGFnLCBkZWZhdWx0cyB0byB0cnVlLlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgZm9ybSB2YWxpZGF0aW9uIGlzIHJlcXVpcmVkIGJlZm9yZSBzYXZpbmcgYW5kIGVuc3VyZXMgdGhhdCBjaGFuZ2VzIG11c3QgYmUgcHJlc2VudCBpbiB0aGUgZm9ybSBiZWZvcmUgc2F2aW5nLlxuICAgKlxuICAgKiAqIEJ5IGRlZmF1bHQsIHRoaXMgZmxhZyBpcyBzZXQgdG8gdHJ1ZSwgbWVhbmluZyB0aGF0IHZhbGlkYXRpb24gaXMgZW5mb3JjZWQsIGFuZCB0aGUgZm9ybSB3aWxsIG9ubHkgc2F2ZSBpZiB0aGVyZSBhcmUgY2hhbmdlcy5cbiAgICpcbiAgICogKiBJZiBzZXQgdG8gYGZhbHNlYCwgdGhlIGZvcm0gd2lsbCBiZSBzYXZlZCB3aXRob3V0IHZhbGlkYXRpb24gY2hlY2tzLCBidXQgY2hhbmdlcyBtdXN0IHN0aWxsIGJlIHByZXNlbnQgdG8gcHJvY2VlZCB3aXRoIHRoZSBzYXZlIG9wZXJhdGlvbi5cbiAgICpcbiAgICogKiBUaGlzIGZsYWcgaXMgdXNlZnVsIGluIHNjZW5hcmlvcyB3aGVyZSBmb3JtIHZhbGlkYXRpb24gaXMgbm90IG5lZWRlZCBvciBzaG91bGQgYmUgYnlwYXNzZWQsIGJ1dCBpdCBlbnN1cmVzIHRoYXQgb25seSBtb2RpZmllZCBmb3JtcyBjYW4gYmUgc2F2ZWQuXG4gICAqL1xuICBoYXNWYWxpZGF0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgc2FmZSBkcmFmdCBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlU2F2ZURyYWZ0QWN0aW9uIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMYWJlbCBmb3IgdGhlIHNhdmUgZHJhZnQgYWN0aW9uLCB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbiAgICpcbiAgICogKiBJZiBubyBjdXN0b20gdHJhbnNsYXRpb24ga2V5IGlzIHByb3ZpZGVkLCBhIHN0YW5kYXJkIGxhYmVsIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgbGFiZWw/OiB7IGkxOG46IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlciBmdW5jdGlvbiB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBzYXZlIGRyYWZ0IGFjdGlvbiBpcyBleGVjdXRlZC5cbiAgICovXG4gIGhhbmRsZXI6ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIGNhbmNlbCBhY3Rpb24sIGluY2x1ZGluZyBhbiBvcHRpb25hbCBjb25maXJtYXRpb24gbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDYW5jZWxBY3Rpb24ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExhYmVsIGZvciB0aGUgY2FuY2VsIGFjdGlvbiwgdXNlZCBmb3IgdHJhbnNsYXRpb24uXG4gICAqXG4gICAqICogSWYgbm8gY3VzdG9tIHRyYW5zbGF0aW9uIGtleSBpcyBwcm92aWRlZCwgYSBzdGFuZGFyZCBsYWJlbCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIGxhYmVsPzogeyBpMThuOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXIgZnVuY3Rpb24gdGhhdCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgY2FuY2VsIGFjdGlvbiBpcyBleGVjdXRlZC5cbiAgICovXG4gIGhhbmRsZXI6IChmb3JtVmFsdWVzPzogYW55KSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgY29uZmlybWF0aW9uIG1lc3NhZ2UgZGlzcGxheWVkIGluIGEgZGlhbG9nIHdoZW4gdGhlIHVzZXIgYXR0ZW1wdHMgdG8gY2FuY2VsIHRoZSBvcGVyYXRpb24sIHdhcm5pbmcgdGhhdCBhbGwgY2hhbmdlcyB3aWxsIGJlIGRpc2NhcmRlZC5cbiAgICogSWYgbm8gY3VzdG9tIG1lc3NhZ2UgaXMgcHJvdmlkZWQsIGEgc3RhbmRhcmQgbWVzc2FnZSB3aWxsIGJlIHNob3duIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqICogVGhlIGNhbmNlbGxhdGlvbiBwcm9jZXNzIGNoZWNrcyB3aGV0aGVyIHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgaW4gdGhlIGZvcm0uIElmIHRoZXJlIGFyZSBjaGFuZ2VzLCB0aGUgZGlhbG9nIHdpbGwgYXBwZWFyLlxuICAgKlxuICAgKiAqIElmIG5vIGNoYW5nZXMgYXJlIGRldGVjdGVkLCB0aGUgY2FuY2VsbGF0aW9uIHByb2NlZWRzIHdpdGhvdXQgc2hvd2luZyB0aGUgY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICovXG4gIGNvbmZpcm1hdGlvbk1lc3NhZ2U/OiB7IGkxOG46IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIHRoZSBzdWJtaXQgYWN0aW9uIG9uIGNyZWF0ZSBwYWdlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VDcmVhdGVTdWJtaXRBY3Rpb24ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExhYmVsIGZvciB0aGUgc3VibWl0IGFjdGlvbiwgdXNlZCBmb3IgdHJhbnNsYXRpb24uXG4gICAqXG4gICAqICogSWYgbm8gY3VzdG9tIHRyYW5zbGF0aW9uIGtleSBpcyBwcm92aWRlZCwgYSBzdGFuZGFyZCBsYWJlbCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIGxhYmVsPzogeyBpMThuOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXIgZnVuY3Rpb24gdGhhdCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgc3VibWl0IGFjdGlvbiBpcyBleGVjdXRlZC5cbiAgICovXG4gIGhhbmRsZXI6IChmb3JtVmFsdWVzPzogYW55KSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIHRoZSBzdWJtaXQgYWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZVN1Ym1pdEFjdGlvbiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGFiZWwgZm9yIHRoZSBzdWJtaXQgYWN0aW9uLCB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbiAgICpcbiAgICogKiBJZiBubyBjdXN0b20gdHJhbnNsYXRpb24ga2V5IGlzIHByb3ZpZGVkLCBhIHN0YW5kYXJkIGxhYmVsIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgbGFiZWw/OiB7IGkxOG46IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlciBmdW5jdGlvbiB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBzdWJtaXQgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgaGFuZGxlcjogKGZvcm1WYWx1ZXM/OiBhbnkpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCeSBkZWZhdWx0LCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgc3VibWl0IGJ1dHRvbiBkZXBlbmRzIG9uIHRoZSBwYWdlIHR5cGUgYW5kIHRoZSBvcGVyYXRpb24gbW9kZS5cbiAgICogVG8gY29tcGxldGVseSBoaWRlIHRoZSBzdWJtaXQgYnV0dG9uLCB5b3UgY2FuIHNldCB0aGlzIGlzSGlkZGVuIGZsYWcuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBpc0hpZGRlbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIGVkaXQgYWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFkUGFnZUVkaXRBY3Rpb24ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExhYmVsIGZvciB0aGUgZWRpdCBhY3Rpb24sIHVzZWQgZm9yIHRyYW5zbGF0aW9uLlxuICAgKlxuICAgKiAqIElmIG5vIGN1c3RvbSB0cmFuc2xhdGlvbiBrZXkgaXMgcHJvdmlkZWQsIGEgc3RhbmRhcmQgbGFiZWwgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBsYWJlbD86IHsgaTE4bjogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVyIGZ1bmN0aW9uIHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIGVkaXQgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgaGFuZGxlcjogKGZvcm1WYWx1ZXM/OiBhbnkpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIGRlbGV0ZSBhY3Rpb24uXG4gKlxuICogKiBUaGlzIGFjdGlvbiBpcyByZXByZXNlbnRlZCBhcyBhbiBpY29uLCBzbyBpdCBkb2VzIG5vdCByZXF1aXJlIGEgbGFiZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlRGVsZXRlQWN0aW9uIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVyIGZ1bmN0aW9uIHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIGRlbGV0ZSBhY3Rpb24gaXMgZXhlY3V0ZWQuXG4gICAqL1xuICBoYW5kbGVyOiAoZm9ybVZhbHVlcz86IGFueSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgYXJjaGl2ZSBhY3Rpb24uXG4gKlxuICogKiBUaGlzIGFjdGlvbiBpcyByZXByZXNlbnRlZCBhcyBhbiBpY29uLCBzbyBpdCBkb2VzIG5vdCByZXF1aXJlIGEgbGFiZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUWRQYWdlQXJjaGl2ZUFjdGlvbiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlciBmdW5jdGlvbiB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBhcmNoaXZlIGFjdGlvbiBpcyBleGVjdXRlZC5cbiAgICovXG4gIGhhbmRsZXI6IChmb3JtVmFsdWVzPzogYW55KSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnNwZWN0LXNwZWNpZmljIHN1Ym1pdCBhY3Rpb24gY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRZFBhZ2VJbnNwZWN0U3VibWl0QWN0aW9uIGV4dGVuZHMgUWRQYWdlU3VibWl0QWN0aW9uIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBpbmZvIG1lc3NhZ2Ugc2hvd24gd2hlbiBzdWJtaXQgaXMgZGlzYWJsZWQgb24gaW5zcGVjdCBwYWdlcyBmb3Igbm9uLXZhbGlkYXRpb24gcmVhc29ucy5cbiAgICpcbiAgICogKiBJZiBub3QgcHJvdmlkZWQsIHRoZSBzdGFuZGFyZCBkaXNhYmxlZCBleHBsYW5hdGlvbiBpcyB1c2VkLlxuICAgKi9cbiAgZGlzYWJsZWRJbmZvPzogeyBpMThuOiBzdHJpbmcgfTtcbn1cbiJdfQ==