ngx-render-material-forms 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,23 +4,164 @@ import SelectComponent from 'formiojs/components/select/Select.js';
4
4
  import _ from 'lodash';
5
5
  import { FormControl } from '@angular/forms';
6
6
  import { Subject } from 'rxjs';
7
- import { takeUntil } from 'rxjs/operators';
7
+ import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
8
+ import { HttpHeaders } from '@angular/common/http';
9
+ import * as CryptoJS from 'crypto-js';
10
+ import { isNullOrUndefined } from 'util';
8
11
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@angular/forms";
11
- import * as i3 from "@angular/material/form-field";
12
- import * as i4 from "@angular/material/select";
13
- import * as i5 from "@angular/material/core";
14
- import * as i6 from "@angular/flex-layout/flex";
15
- import * as i7 from "ngx-mat-select-search";
16
- import * as i8 from "../formio-form-field/formio-form-field.component";
17
- import * as i9 from "../label/label.component";
12
+ import * as i1 from "@angular/common/http";
13
+ import * as i2 from "@angular/common";
14
+ import * as i3 from "@angular/forms";
15
+ import * as i4 from "@angular/material/form-field";
16
+ import * as i5 from "@angular/material/select";
17
+ import * as i6 from "@angular/material/core";
18
+ import * as i7 from "@angular/flex-layout/flex";
19
+ import * as i8 from "ngx-mat-select-search";
20
+ import * as i9 from "../formio-form-field/formio-form-field.component";
21
+ import * as i10 from "../label/label.component";
18
22
  export class MaterialSelectComponent extends MaterialComponent {
19
- constructor() {
20
- super(...arguments);
23
+ constructor(element, ref, http) {
24
+ super(element, ref);
25
+ this.element = element;
26
+ this.ref = ref;
27
+ this.http = http;
21
28
  this.websiteMultiCtrl = new FormControl();
22
29
  this.websiteMultiFilterCtrl = new FormControl();
23
30
  this._onDestroy = new Subject();
31
+ // Variables to track pagination
32
+ this.pageNumber = 1;
33
+ this.pageSize = 3;
34
+ this.totalPages = 3;
35
+ this.searchQuery = '';
36
+ this.holy = '';
37
+ this.grail = '';
38
+ this.productsloadingFlag = false;
39
+ this.searchFlag = true;
40
+ this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
41
+ this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
42
+ }
43
+ onSearchInputChange(value) {
44
+ if (value === '') {
45
+ this.onClearAll();
46
+ }
47
+ }
48
+ onChange(event) {
49
+ if (event) {
50
+ this.searchFlag = false;
51
+ }
52
+ }
53
+ scrumble(msg) {
54
+ if (!isNullOrUndefined(msg)) {
55
+ var conceal = this.getcampaign(msg, this.holy, this.grail);
56
+ var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));
57
+ var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);
58
+ let keyValue = {
59
+ "value": conceal.toString(),
60
+ "mac": hashInBase64
61
+ };
62
+ var result = JSON.stringify(keyValue);
63
+ var jumbled = CryptoJS.enc.Utf8.parse(result);
64
+ return CryptoJS.enc.Base64.stringify(jumbled);
65
+ }
66
+ }
67
+ getcampaign(data, holy, grail) {
68
+ return CryptoJS.AES.encrypt(data.toString(), holy, {
69
+ blockSize: 128,
70
+ iv: grail,
71
+ mode: CryptoJS.mode.CBC,
72
+ padding: CryptoJS.pad.Pkcs7
73
+ });
74
+ }
75
+ // Method to handle when the mat-select is opened
76
+ onMatSelectOpen(select) {
77
+ this.selectElem = select;
78
+ this.registerPanelScrollEvent();
79
+ }
80
+ registerPanelScrollEvent() {
81
+ if (this.selectElem) {
82
+ this.selectElem.panel.nativeElement.addEventListener('scroll', this.onScroll.bind(this));
83
+ }
84
+ }
85
+ onScroll(event) {
86
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
87
+ const scrollElement = event.target;
88
+ const trackHeight = scrollElement.scrollHeight - scrollElement.offsetHeight;
89
+ if (this.productsloadingFlag && Math.floor(scrollElement.scrollTop / trackHeight * 100) > 50) {
90
+ this.productsloadingFlag = false;
91
+ if (this.pageNumber < this.totalPages && this.totalPages > 1) {
92
+ this.pageNumber = this.pageNumber + 1;
93
+ this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ // Function to get value by key from the array
99
+ getValueByKey(data, key) {
100
+ if (!data || data.length === 0) {
101
+ return null; // Return null if data is empty or undefined
102
+ }
103
+ const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());
104
+ return item ? item.value : null;
105
+ }
106
+ loadData(pageNumber, pageSize, searchQuery) {
107
+ const paramsData = JSON.parse(localStorage.getItem('productPicker'));
108
+ const includeDescription = this.getValueByKey(paramsData, 'includeDescription');
109
+ const vendorId = this.getValueByKey(paramsData, 'vendorId');
110
+ const onlyActive = this.getValueByKey(paramsData, 'onlyActive');
111
+ var currentUser = JSON.parse(localStorage.getItem('currentUser'));
112
+ var accessToken = currentUser.Tokens.AccessToken;
113
+ const headers = new HttpHeaders({
114
+ 'Content-Type': 'application/json',
115
+ 'Authorization': 'Bearer ' + accessToken
116
+ });
117
+ const envendorId = this.scrumble(vendorId);
118
+ const enpageNumber = this.scrumble(pageNumber);
119
+ const enpageSize = this.scrumble(pageSize);
120
+ const ensearchQuery = this.scrumble(searchQuery);
121
+ const enactive = this.scrumble(onlyActive);
122
+ const endescription = this.scrumble(includeDescription);
123
+ const baseUrlMapping = {
124
+ 'localhost': 'http://localhost:58504',
125
+ 'lincoln.vartopia.com': 'https://lincoln-api.vartopia.com',
126
+ 'stage.vartopia.com': 'https://stage-api.vartopia.com',
127
+ 'my.vartopia.com': 'https://reagan-api.vartopia.com',
128
+ 'jackson.vartopia.com': 'https://jackson-api.vartopia.com'
129
+ };
130
+ // Get the current hostname
131
+ const hostname = window.location.hostname;
132
+ const baseApiUrl = baseUrlMapping[hostname] || null;
133
+ this.http.get(`${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`, { headers }).subscribe(response => {
134
+ if (response && response.code === 200) {
135
+ this.totalPages = response.data.dataSource;
136
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
137
+ const transformedData = this.transformResponseData(response.data.dataSource);
138
+ // Process the transformed data
139
+ this.filteredOptions = Promise.resolve(transformedData.map(item => ({
140
+ label: item.label,
141
+ value: item.value,
142
+ date: item.date
143
+ })));
144
+ }
145
+ setTimeout(() => {
146
+ this.productsloadingFlag = true;
147
+ }, 1000);
148
+ }
149
+ });
150
+ }
151
+ // Utility function to transform response data
152
+ transformResponseData(data) {
153
+ // Check if data is not null, undefined, and is an array with elements
154
+ if (data && Array.isArray(data) && data.length > 0) {
155
+ return data.map(item => ({
156
+ label: item.text,
157
+ value: item.value,
158
+ date: item.date
159
+ }));
160
+ }
161
+ else {
162
+ // Return an empty array if data is null, undefined, or empty
163
+ return [];
164
+ }
24
165
  }
25
166
  filterWebsiteMulti() {
26
167
  if (!this.selectOptions) {
@@ -43,13 +184,46 @@ export class MaterialSelectComponent extends MaterialComponent {
43
184
  super.setInstance(instance);
44
185
  this.instance.triggerUpdate();
45
186
  }
187
+ onClearAll() {
188
+ if (this.searchFlag) {
189
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
190
+ this.loadData(1, 20, '');
191
+ }
192
+ }
193
+ }
194
+ ngAfterViewInit() {
195
+ this.selectElem.openedChange.subscribe((isOpen) => {
196
+ if (isOpen) {
197
+ this.searchFlag = false;
198
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
199
+ this.loadData(1, 20, '');
200
+ }
201
+ }
202
+ else {
203
+ this.searchFlag = false;
204
+ }
205
+ });
206
+ }
46
207
  ngOnInit() {
47
208
  /*new logic */
48
- this.websiteMultiFilterCtrl.valueChanges
49
- .pipe(takeUntil(this._onDestroy))
50
- .subscribe(() => {
51
- this.filterWebsiteMulti();
52
- });
209
+ if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
210
+ this.websiteMultiFilterCtrl.valueChanges
211
+ .pipe(debounceTime(1000), // Time in milliseconds between key events
212
+ distinctUntilChanged(), takeUntil(this._onDestroy))
213
+ .subscribe((searchQuery) => {
214
+ if (searchQuery != '') {
215
+ this.searchFlag = true;
216
+ this.loadData(1, 20, searchQuery);
217
+ }
218
+ });
219
+ }
220
+ else {
221
+ this.websiteMultiFilterCtrl.valueChanges
222
+ .pipe(takeUntil(this._onDestroy))
223
+ .subscribe(() => {
224
+ this.filterWebsiteMulti();
225
+ });
226
+ }
53
227
  /*End */
54
228
  this.selectOptions = new Promise((resolve) => {
55
229
  this.selectOptionsResolve = resolve;
@@ -63,8 +237,8 @@ export class MaterialSelectComponent extends MaterialComponent {
63
237
  return _.isEqual(o1, o2);
64
238
  }
65
239
  }
66
- MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
67
- MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSelectComponent, selector: "mat-formio-select", viewQueries: [{ propertyName: "multiSelect", first: true, predicate: ["multiSelect"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
240
+ MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
241
+ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSelectComponent, selector: "mat-formio-select", viewQueries: [{ propertyName: "multiSelect", first: true, predicate: ["multiSelect"], descendants: true, static: true }, { propertyName: "selectElem", first: true, predicate: ["productSelect"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
68
242
  <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
69
243
  <ng-template #componentTemplate let-hasLabel>
70
244
  <mat-form-field fxFill>
@@ -80,12 +254,14 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
80
254
  [multiple]="instance.component.multiple"
81
255
  [formControl]="control"
82
256
  [placeholder]="instance.component.placeholder"
83
- (selectionChange)="onChange()"
257
+ (selectionChange)="onChange($event)"
84
258
  [compareWith]="compareObjects"
259
+ #productSelect
260
+ (openedChange)="onMatSelectOpen($event ? selectElem : null)"
85
261
  >
86
262
 
87
263
  <mat-option>
88
- <ngx-mat-select-search placeholderLabel="Type to search" [formControl]="websiteMultiFilterCtrl"></ngx-mat-select-search>
264
+ <ngx-mat-select-search (ngModelChange)="onSearchInputChange($event)" placeholderLabel="Type to search" [formControl]="websiteMultiFilterCtrl"></ngx-mat-select-search>
89
265
  </mat-option>
90
266
 
91
267
  <mat-option *ngFor="let option of filteredOptions | async" [value]="option.value" class="virtual-full-view">
@@ -103,7 +279,7 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
103
279
  <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
104
280
  </mat-form-field>
105
281
  </ng-template>
106
- `, isInline: true, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:visible!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i7.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "component", type: i8.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i9.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
282
+ `, isInline: true, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:visible!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i7.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i8.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "component", type: i9.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i10.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
107
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, decorators: [{
108
284
  type: Component,
109
285
  args: [{ selector: 'mat-formio-select', template: `
@@ -122,12 +298,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
122
298
  [multiple]="instance.component.multiple"
123
299
  [formControl]="control"
124
300
  [placeholder]="instance.component.placeholder"
125
- (selectionChange)="onChange()"
301
+ (selectionChange)="onChange($event)"
126
302
  [compareWith]="compareObjects"
303
+ #productSelect
304
+ (openedChange)="onMatSelectOpen($event ? selectElem : null)"
127
305
  >
128
306
 
129
307
  <mat-option>
130
- <ngx-mat-select-search placeholderLabel="Type to search" [formControl]="websiteMultiFilterCtrl"></ngx-mat-select-search>
308
+ <ngx-mat-select-search (ngModelChange)="onSearchInputChange($event)" placeholderLabel="Type to search" [formControl]="websiteMultiFilterCtrl"></ngx-mat-select-search>
131
309
  </mat-option>
132
310
 
133
311
  <mat-option *ngFor="let option of filteredOptions | async" [value]="option.value" class="virtual-full-view">
@@ -146,9 +324,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
146
324
  </mat-form-field>
147
325
  </ng-template>
148
326
  `, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:visible!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"] }]
149
- }], propDecorators: { multiSelect: [{
327
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.HttpClient }]; }, propDecorators: { multiSelect: [{
150
328
  type: ViewChild,
151
329
  args: ['multiSelect', { static: true }]
330
+ }], selectElem: [{
331
+ type: ViewChild,
332
+ args: ['productSelect']
152
333
  }] } });
153
334
  SelectComponent.MaterialComponent = MaterialSelectComponent;
154
335
  // Make sure we detect changes when new items make their way into the select dropdown.
@@ -160,4 +341,4 @@ SelectComponent.prototype.setItems = function (...args) {
160
341
  }
161
342
  };
162
343
  export { SelectComponent };
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUEwRTNDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUF2RTlEOztRQWdGUyxxQkFBZ0IsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCwyQkFBc0IsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUdyRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQStDdEM7SUE3Q0Msa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE9BQU87U0FDUjtRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7UUFDL0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDekQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDN0MsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUdELE9BQU87SUFDUCxXQUFXLENBQUMsUUFBYTtRQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDTixjQUFjO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVk7YUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsUUFBUTtRQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQU8sRUFBRSxFQUFPO1FBQzdCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7b0hBM0RVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDBNQXJFeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDVDsyRkE4QlUsdUJBQXVCO2tCQXZFbkMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDVDs4QkEwQzJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7QUFpRDVDLGVBQWUsQ0FBQyxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RCxzRkFBc0Y7QUFDdEYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDcEQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxHQUFHLElBQUk7SUFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUU7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNqRTtBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IFNlbGVjdENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdC9TZWxlY3QuanMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tc2VsZWN0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIj48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgZnhGaWxsPlxyXG5cclxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwiaGFzTGFiZWxcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIG1hdEZvcm1pb0xhYmVsPjwvc3Bhbj5cclxuICAgICAgICA8L21hdC1sYWJlbD5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQucHJlZml4XCIgbWF0UHJlZml4PlxyXG4gICAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeCB9fSZuYnNwO1xyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImluc3RhbmNlLmNvbXBvbmVudC5tdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaW5zdGFuY2UuY29tcG9uZW50LnBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZU9iamVjdHNcIlxyXG4gICAgICAgID5cclxuXHJcbiAgICAgICAgPG1hdC1vcHRpb24+XHJcbiAgICAgICAgPG5neC1tYXQtc2VsZWN0LXNlYXJjaCBwbGFjZWhvbGRlckxhYmVsPVwiVHlwZSB0byBzZWFyY2hcIiBbZm9ybUNvbnRyb2xdPVwid2Vic2l0ZU11bHRpRmlsdGVyQ3RybFwiPjwvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucyB8IGFzeW5jXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiIGNsYXNzPVwidmlydHVhbC1mdWxsLXZpZXdcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwib3B0aW9uLmxhYmVsXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj4gICBcclxuXHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnNMZW5ndGhcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgPHNwYW4+Tm90aGluZyB3YXMgZm91bmQ8L3NwYW4+XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImluc3RhbmNlLmNvbXBvbmVudC5zdWZmaXhcIiBtYXRTdWZmaXg+XHJcbiAgICAgICAgICB7eyBpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4IH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpbnN0YW5jZS5lcnJvclwiPnt7IGluc3RhbmNlLmVycm9yLm1lc3NhZ2UgfX08L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgLmV4YW1wbGUtdmlld3BvcnQge1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICB9XHJcbiAgXHJcbiAgLnByb2R1Y3QtcGlja2VyIHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogRGlzYWJsZSBob3Jpem9udGFsIHNjcm9sbGluZyAqL1xyXG4gIH1cclxuXHJcbiAgLnZpcnR1YWwtZnVsbC12aWV3IHtcclxuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNCAhaW1wb3J0YW50O1xyXG4gICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgbWluLWhlaWdodDogNDhweCAhaW1wb3J0YW50O1xyXG4gICAgb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgOjpuZy1kZWVwIC5wcm9kdWN0LXBpY2tlciAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciB7XHJcbiAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudmlydHVhbC1mdWxsLXZpZXcgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xyXG4gICAgYWxpZ24tc2VsZjogdG9wICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgc2VsZWN0T3B0aW9uczogUHJvbWlzZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBQcm9taXNlPGFueVtdPjtcclxuXHJcbiAgZmlsdGVyZWRPcHRpb25zTGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIHNlbGVjdE9wdGlvbnNSZXNvbHZlOiBhbnk7XHJcblxyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICBAVmlld0NoaWxkKCdtdWx0aVNlbGVjdCcsIHsgc3RhdGljOiB0cnVlIH0pIG11bHRpU2VsZWN0OiBNYXRTZWxlY3Q7XHJcbiAgcHJvdGVjdGVkIF9vbkRlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBmaWx0ZXJXZWJzaXRlTXVsdGkoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0T3B0aW9ucykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgc2VhcmNoID0gdGhpcy53ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsLnZhbHVlO1xyXG4gICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuc2VsZWN0T3B0aW9ucy50aGVuKChvcHRpb25zKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbHRlcmVkID0gb3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmxhYmVsLnJlcGxhY2UoLzxcXC8/c3BhbltePl0qPi9nLFwiXCIpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpICE9PSAtMSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZmlsdGVyZWQubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbiAgICB9KVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCcnKTtcclxuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qRW5kKi9cclxuICBzZXRJbnN0YW5jZShpbnN0YW5jZTogYW55KSB7XHJcbiAgICBzdXBlci5zZXRJbnN0YW5jZShpbnN0YW5jZSk7XHJcbiAgICB0aGlzLmluc3RhbmNlLnRyaWdnZXJVcGRhdGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLypuZXcgbG9naWMgKi9cclxuICAgICB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmZpbHRlcldlYnNpdGVNdWx0aSgpO1xyXG4gICAgICB9KTtcclxuICAgIC8qRW5kICovXHJcbiAgICB0aGlzLnNlbGVjdE9wdGlvbnMgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbnNSZXNvbHZlID0gcmVzb2x2ZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNMZW5ndGggPSBvcHRpb25zLmxlbmd0aDtcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdE9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBjb21wYXJlT2JqZWN0cyhvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gXy5pc0VxdWFsKG8xLCBvMik7XHJcbiAgfVxyXG59XHJcblNlbGVjdENvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50O1xyXG5cclxuLy8gTWFrZSBzdXJlIHdlIGRldGVjdCBjaGFuZ2VzIHdoZW4gbmV3IGl0ZW1zIG1ha2UgdGhlaXIgd2F5IGludG8gdGhlIHNlbGVjdCBkcm9wZG93bi5cclxuY29uc3Qgc2V0SXRlbXMgPSBTZWxlY3RDb21wb25lbnQucHJvdG90eXBlLnNldEl0ZW1zO1xyXG5TZWxlY3RDb21wb25lbnQucHJvdG90eXBlLnNldEl0ZW1zID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICBzZXRJdGVtcy5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xyXG4gIGlmICh0aGlzLm1hdGVyaWFsQ29tcG9uZW50ICYmIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2VsZWN0T3B0aW9uc1Jlc29sdmUpIHtcclxuICAgIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2VsZWN0T3B0aW9uc1Jlc29sdmUodGhpcy5zZWxlY3RPcHRpb25zKTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgeyBTZWxlY3RDb21wb25lbnQgfTtcclxuIl19
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFpQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQVUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkYsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7O0FBMEV6QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQWlCO0lBbUI1RCxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVMsSUFBZ0I7UUFDNUYsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQURILFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVk7UUFkdkYscUJBQWdCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsMkJBQXNCLEdBQWdCLElBQUksV0FBVyxF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RUFBRTtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2pFO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IFNlbGVjdENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdC9TZWxlY3QuanMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCAqIGFzIENyeXB0b0pTIGZyb20gJ2NyeXB0by1qcyc7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAndXRpbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZpbGw+XHJcblxyXG4gICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJoYXNMYWJlbFwiPlxyXG4gICAgICAgICAgPHNwYW4gW2luc3RhbmNlXT1cImluc3RhbmNlXCIgbWF0Rm9ybWlvTGFiZWw+PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxhYmVsPlxyXG5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImluc3RhbmNlLmNvbXBvbmVudC5wcmVmaXhcIiBtYXRQcmVmaXg+XHJcbiAgICAgICAgICB7eyBpbnN0YW5jZS5jb21wb25lbnQucHJlZml4IH19Jm5ic3A7XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiaW5zdGFuY2UuY29tcG9uZW50Lm11bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJpbnN0YW5jZS5jb21wb25lbnQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlT2JqZWN0c1wiXHJcbiAgICAgICAgICAgICAgICAjcHJvZHVjdFNlbGVjdFxyXG4gICAgICAgICAgICAgICAgKG9wZW5lZENoYW5nZSk9XCJvbk1hdFNlbGVjdE9wZW4oJGV2ZW50ID8gc2VsZWN0RWxlbSA6IG51bGwpXCJcclxuICAgICAgICA+XHJcblxyXG4gICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hJbnB1dENoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXJMYWJlbD1cIlR5cGUgdG8gc2VhcmNoXCIgW2Zvcm1Db250cm9sXT1cIndlYnNpdGVNdWx0aUZpbHRlckN0cmxcIj48L25neC1tYXQtc2VsZWN0LXNlYXJjaD5cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMgfCBhc3luY1wiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIiBjbGFzcz1cInZpcnR1YWwtZnVsbC12aWV3XCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIm9wdGlvbi5sYWJlbFwiPjwvc3Bhbj5cclxuICAgICAgICA8L21hdC1vcHRpb24+ICAgXHJcblxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zTGVuZ3RoXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgIDxzcGFuPk5vdGhpbmcgd2FzIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4XCIgbWF0U3VmZml4PlxyXG4gICAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaW5zdGFuY2UuZXJyb3JcIj57eyBpbnN0YW5jZS5lcnJvci5tZXNzYWdlIH19PC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gIC5leGFtcGxlLXZpZXdwb3J0IHtcclxuICAgIGhlaWdodDogMjAwcHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5wcm9kdWN0LXBpY2tlciB7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IC8qIERpc2FibGUgaG9yaXpvbnRhbCBzY3JvbGxpbmcgKi9cclxuICB9XHJcblxyXG4gIC52aXJ0dWFsLWZ1bGwtdmlldyB7XHJcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIG1pbi1oZWlnaHQ6IDQ4cHggIWltcG9ydGFudDtcclxuICAgIG92ZXJmbG93OiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIDo6bmctZGVlcCAucHJvZHVjdC1waWNrZXIgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXIge1xyXG4gICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnZpcnR1YWwtZnVsbC12aWV3IC5tYXQtcHNldWRvLWNoZWNrYm94IHtcclxuICAgIGFsaWduLXNlbGY6IHRvcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgc2VsZWN0T3B0aW9uczogUHJvbWlzZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBQcm9taXNlPGFueVtdPjtcclxuICBmaWx0ZXJlZE9wdGlvbnNMZW5ndGg6IG51bWJlcjtcclxuICBzZWxlY3RPcHRpb25zUmVzb2x2ZTogYW55O1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VsZWN0JywgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBwcm90ZWN0ZWQgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQFZpZXdDaGlsZCgncHJvZHVjdFNlbGVjdCcpIHNlbGVjdEVsZW06IE1hdFNlbGVjdDtcclxuICAvLyBWYXJpYWJsZXMgdG8gdHJhY2sgcGFnaW5hdGlvblxyXG4gIHBhZ2VOdW1iZXIgPSAxO1xyXG4gIHBhZ2VTaXplID0gMztcclxuICB0b3RhbFBhZ2VzID0gMztcclxuICBzZWFyY2hRdWVyeSA9ICcnO1xyXG4gIGhvbHk6IGFueSA9ICcnO1xyXG4gIGdyYWlsOiBhbnkgPSAnJztcclxuICBwcm9kdWN0c2xvYWRpbmdGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoRmxhZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoZWxlbWVudCwgcmVmKTtcclxuICAgIHRoaXMuaG9seSA9IENyeXB0b0pTLmVuYy5CYXNlNjQucGFyc2UoJzhGLzIrVDJOWHFVQlFFUlIxMlI0c3c9PScpO1xyXG4gICAgdGhpcy5ncmFpbCA9IENyeXB0b0pTLmVuYy5CYXNlNjQucGFyc2UoJ3lFMENnUWJZeks1d3Flb0tUVnpoT1E9PScpO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hJbnB1dENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMub25DbGVhckFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoZXZlbnQpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLnNlYXJjaEZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzY3J1bWJsZShtc2cpIHtcclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQobXNnKSkge1xyXG4gICAgICB2YXIgY29uY2VhbCA9IHRoaXMuZ2V0Y2FtcGFpZ24obXNnLCB0aGlzLmhvbHksIHRoaXMuZ3JhaWwpO1xyXG4gICAgICB2YXIgc2hhMjU2ID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeSh0aGlzLmdyYWlsKSArIGNvbmNlYWwudG9TdHJpbmcoKSwgQ3J5cHRvSlMuZW5jLkJhc2U2NC5zdHJpbmdpZnkodGhpcy5ob2x5KSk7XHJcbiAgICAgIHZhciBoYXNoSW5CYXNlNjQgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShzaGEyNTYpO1xyXG4gICAgICBsZXQga2V5VmFsdWUgPSB7XHJcbiAgICAgICAgXCJ2YWx1ZVwiOiBjb25jZWFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgXCJtYWNcIjogaGFzaEluQmFzZTY0XHJcbiAgICAgIH07XHJcbiAgICAgIHZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeShrZXlWYWx1ZSk7XHJcbiAgICAgIHZhciBqdW1ibGVkID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KGp1bWJsZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Y2FtcGFpZ24oZGF0YTogYW55LCBob2x5OiBhbnksIGdyYWlsOiBhbnkpIHtcclxuICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZW5jcnlwdChkYXRhLnRvU3RyaW5nKCksIGhvbHksXHJcbiAgICAgIHtcclxuICAgICAgICBibG9ja1NpemU6IDEyOCxcclxuICAgICAgICBpdjogZ3JhaWwsXHJcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIE1ldGhvZCB0byBoYW5kbGUgd2hlbiB0aGUgbWF0LXNlbGVjdCBpcyBvcGVuZWRcclxuICBvbk1hdFNlbGVjdE9wZW4oc2VsZWN0OiBNYXRTZWxlY3QpIHtcclxuICAgIHRoaXMuc2VsZWN0RWxlbSA9IHNlbGVjdDtcclxuICAgIHRoaXMucmVnaXN0ZXJQYW5lbFNjcm9sbEV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlclBhbmVsU2Nyb2xsRXZlbnQoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RFbGVtKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbS5wYW5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwuYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNjcm9sbChldmVudCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICBjb25zdCB0cmFja0hlaWdodCA9IHNjcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgIGlmICh0aGlzLnByb2R1Y3RzbG9hZGluZ0ZsYWcgJiYgTWF0aC5mbG9vcihzY3JvbGxFbGVtZW50LnNjcm9sbFRvcCAvIHRyYWNrSGVpZ2h0ICogMTAwKSA+IDUwKSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0c2xvYWRpbmdGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMucGFnZU51bWJlciA8IHRoaXMudG90YWxQYWdlcyAmJiB0aGlzLnRvdGFsUGFnZXMgPiAxKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VOdW1iZXIgKyAxO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGJ5IGtleSBmcm9tIHRoZSBhcnJheVxyXG4gIGdldFZhbHVlQnlLZXkoZGF0YSwga2V5KSB7XHJcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIGRhdGEgaXMgZW1wdHkgb3IgdW5kZWZpbmVkXHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YS5maW5kKGt2ID0+IGt2LmtleS50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0udmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgbG9hZERhdGEocGFnZU51bWJlciwgcGFnZVNpemUsIHNlYXJjaFF1ZXJ5KSB7XHJcbiAgICBjb25zdCBwYXJhbXNEYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHJvZHVjdFBpY2tlcicpKTtcclxuICAgIGNvbnN0IGluY2x1ZGVEZXNjcmlwdGlvbiA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAnaW5jbHVkZURlc2NyaXB0aW9uJyk7XHJcbiAgICBjb25zdCB2ZW5kb3JJZCA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAndmVuZG9ySWQnKTtcclxuICAgIGNvbnN0IG9ubHlBY3RpdmUgPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ29ubHlBY3RpdmUnKTtcclxuICAgIHZhciBjdXJyZW50VXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJykpO1xyXG4gICAgdmFyIGFjY2Vzc1Rva2VuID0gY3VycmVudFVzZXIuVG9rZW5zLkFjY2Vzc1Rva2VuO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYWNjZXNzVG9rZW5cclxuICAgIH0pO1xyXG4gICAgaW50ZXJmYWNlIFZlbmRvclByb2R1Y3RzUmVzcG9uc2Uge1xyXG4gICAgICBjb2RlOiBudW1iZXI7XHJcbiAgICAgIGRhdGE6IGFueTtcclxuICAgICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgICBzdGF0dXNDb2RlOiBudW1iZXI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbnZlbmRvcklkID0gdGhpcy5zY3J1bWJsZSh2ZW5kb3JJZClcclxuICAgIGNvbnN0IGVucGFnZU51bWJlciA9IHRoaXMuc2NydW1ibGUocGFnZU51bWJlcilcclxuICAgIGNvbnN0IGVucGFnZVNpemUgPSB0aGlzLnNjcnVtYmxlKHBhZ2VTaXplKTtcclxuICAgIGNvbnN0IGVuc2VhcmNoUXVlcnkgPSB0aGlzLnNjcnVtYmxlKHNlYXJjaFF1ZXJ5KTtcclxuICAgIGNvbnN0IGVuYWN0aXZlID0gdGhpcy5zY3J1bWJsZShvbmx5QWN0aXZlKTtcclxuICAgIGNvbnN0IGVuZGVzY3JpcHRpb24gPSB0aGlzLnNjcnVtYmxlKGluY2x1ZGVEZXNjcmlwdGlvbik7XHJcbiAgICBjb25zdCBiYXNlVXJsTWFwcGluZyA9IHtcclxuICAgICAgJ2xvY2FsaG9zdCc6ICdodHRwOi8vbG9jYWxob3N0OjU4NTA0JyxcclxuICAgICAgJ2xpbmNvbG4udmFydG9waWEuY29tJzogJ2h0dHBzOi8vbGluY29sbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ3N0YWdlLnZhcnRvcGlhLmNvbSc6ICdodHRwczovL3N0YWdlLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnbXkudmFydG9waWEuY29tJzogJ2h0dHBzOi8vcmVhZ2FuLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnamFja3Nvbi52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9qYWNrc29uLWFwaS52YXJ0b3BpYS5jb20nXHJcbiAgICB9O1xyXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IGhvc3RuYW1lXHJcbiAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSBiYXNlVXJsTWFwcGluZ1tob3N0bmFtZV0gfHwgbnVsbDtcclxuICAgIHRoaXMuaHR0cC5nZXQ8VmVuZG9yUHJvZHVjdHNSZXNwb25zZT4oYCR7YmFzZUFwaVVybH0vYXBpL1ZlbmRvckZvcm1CdWlsZGVyL0dldFZlbmRvclByb2R1Y3RzP3ZlbmRvcklkPSR7ZW52ZW5kb3JJZH0mcGFnZU51bWJlcj0ke2VucGFnZU51bWJlcn0mcGFnZVNpemU9JHtlbnBhZ2VTaXplfSZzZWFyY2g9JHtlbnNlYXJjaFF1ZXJ5fSZvbmx5QWN0aXZlPSR7ZW5hY3RpdmV9JmluY2x1ZGVEZXNjcmlwdGlvbj0ke2VuZGVzY3JpcHRpb259YCwgeyBoZWFkZXJzIH0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5jb2RlID09PSAyMDApIHtcclxuICAgICAgICB0aGlzLnRvdGFsUGFnZXMgPSByZXNwb25zZS5kYXRhLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRoaXMudHJhbnNmb3JtUmVzcG9uc2VEYXRhKHJlc3BvbnNlLmRhdGEuZGF0YVNvdXJjZSk7XHJcbiAgICAgICAgLy8gUHJvY2VzcyB0aGUgdHJhbnNmb3JtZWQgZGF0YVxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUodHJhbnNmb3JtZWREYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICAgICAgZGF0ZTogaXRlbS5kYXRlXHJcbiAgICAgICAgICB9KSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVXRpbGl0eSBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxyXG4gIHRyYW5zZm9ybVJlc3BvbnNlRGF0YShkYXRhOiBBcnJheTx7IHRleHQ6IGFueSwgdmFsdWU6IGFueSwgZGF0ZTogYW55IH0+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciwgZGF0ZTogc3RyaW5nIH0+IHtcclxuICAgIC8vIENoZWNrIGlmIGRhdGEgaXMgbm90IG51bGwsIHVuZGVmaW5lZCwgYW5kIGlzIGFuIGFycmF5IHdpdGggZWxlbWVudHNcclxuICAgIGlmIChkYXRhICYmIEFycmF5LmlzQXJyYXkoZGF0YSkgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgICAgICAgbGFiZWw6IGl0ZW0udGV4dCxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBkYXRlOiBpdGVtLmRhdGVcclxuICAgICAgfSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRhdGEgaXMgbnVsbCwgdW5kZWZpbmVkLCBvciBlbXB0eVxyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBmaWx0ZXJXZWJzaXRlTXVsdGkoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0T3B0aW9ucykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgc2VhcmNoID0gdGhpcy53ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsLnZhbHVlO1xyXG4gICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuc2VsZWN0T3B0aW9ucy50aGVuKChvcHRpb25zKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbHRlcmVkID0gb3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmxhYmVsLnJlcGxhY2UoLzxcXC8/c3BhbltePl0qPi9nLCBcIlwiKS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoKSAhPT0gLTEpO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0xlbmd0aCA9IGZpbHRlcmVkLmxlbmd0aDtcclxuICAgICAgcmV0dXJuIGZpbHRlcmVkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9vbkRlc3Ryb3kubmV4dCgnJyk7XHJcbiAgICB0aGlzLl9vbkRlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG5cclxuICAvKkVuZCovXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoRmxhZykge1xyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgxLCAyMCwgJycpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEVsZW0ub3BlbmVkQ2hhbmdlLnN1YnNjcmliZSgoaXNPcGVuOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmIChpc09wZW4pIHtcclxuICAgICAgICB0aGlzLnNlYXJjaEZsYWcgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWREYXRhKDEsIDIwLCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoRmxhZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvKm5ldyBsb2dpYyAqL1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50c1xyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFF1ZXJ5KSA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoUXVlcnkgIT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hGbGFnID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkRGF0YSgxLCAyMCwgc2VhcmNoUXVlcnkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcldlYnNpdGVNdWx0aSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLypFbmQgKi9cclxuICAgIHRoaXMuc2VsZWN0T3B0aW9ucyA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uc1Jlc29sdmUgPSByZXNvbHZlO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdE9wdGlvbnMudGhlbigob3B0aW9ucykgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0xlbmd0aCA9IG9wdGlvbnMubGVuZ3RoO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuc2VsZWN0T3B0aW9ucztcclxuICB9XHJcblxyXG4gIGNvbXBhcmVPYmplY3RzKG8xOiBhbnksIG8yOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBfLmlzRXF1YWwobzEsIG8yKTtcclxuICB9XHJcbn1cclxuU2VsZWN0Q29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQ7XHJcblxyXG4vLyBNYWtlIHN1cmUgd2UgZGV0ZWN0IGNoYW5nZXMgd2hlbiBuZXcgaXRlbXMgbWFrZSB0aGVpciB3YXkgaW50byB0aGUgc2VsZWN0IGRyb3Bkb3duLlxyXG5jb25zdCBzZXRJdGVtcyA9IFNlbGVjdENvbXBvbmVudC5wcm90b3R5cGUuc2V0SXRlbXM7XHJcblNlbGVjdENvbXBvbmVudC5wcm90b3R5cGUuc2V0SXRlbXMgPSBmdW5jdGlvbiAoLi4uYXJncykge1xyXG4gIHNldEl0ZW1zLmNhbGwodGhpcywgLi4uYXJncyk7XHJcbiAgaWYgKHRoaXMubWF0ZXJpYWxDb21wb25lbnQgJiYgdGhpcy5tYXRlcmlhbENvbXBvbmVudC5zZWxlY3RPcHRpb25zUmVzb2x2ZSkge1xyXG4gICAgdGhpcy5tYXRlcmlhbENvbXBvbmVudC5zZWxlY3RPcHRpb25zUmVzb2x2ZSh0aGlzLnNlbGVjdE9wdGlvbnMpO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCB7IFNlbGVjdENvbXBvbmVudCB9O1xyXG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { NgModule } from '@angular/core';
2
+ import { HttpClientModule } from '@angular/common/http';
2
3
  import { CommonModule } from '@angular/common';
3
4
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
5
  import { MatInputModule } from '@angular/material/input';
@@ -141,7 +142,8 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
141
142
  DragDropModule,
142
143
  ScrollingModule,
143
144
  NgxMatSelectSearchModule,
144
- MatDialogModule], exports: [NgxRenderMaterialFormsComponent,
145
+ MatDialogModule,
146
+ HttpClientModule], exports: [NgxRenderMaterialFormsComponent,
145
147
  FormioComponent,
146
148
  MatInputModule,
147
149
  MatFormFieldModule,
@@ -165,7 +167,8 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
165
167
  FlexLayoutModule,
166
168
  ScrollingModule,
167
169
  NgxMatSelectSearchModule,
168
- MatDialogModule] });
170
+ MatDialogModule,
171
+ HttpClientModule] });
169
172
  NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NgxRenderMaterialFormsModule, imports: [CommonModule,
170
173
  FormsModule,
171
174
  ReactiveFormsModule,
@@ -193,7 +196,8 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
193
196
  DragDropModule,
194
197
  ScrollingModule,
195
198
  NgxMatSelectSearchModule,
196
- MatDialogModule, MatInputModule,
199
+ MatDialogModule,
200
+ HttpClientModule, MatInputModule,
197
201
  MatFormFieldModule,
198
202
  MatCheckboxModule,
199
203
  MatRadioModule,
@@ -215,7 +219,8 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
215
219
  FlexLayoutModule,
216
220
  ScrollingModule,
217
221
  NgxMatSelectSearchModule,
218
- MatDialogModule] });
222
+ MatDialogModule,
223
+ HttpClientModule] });
219
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NgxRenderMaterialFormsModule, decorators: [{
220
225
  type: NgModule,
221
226
  args: [{
@@ -290,7 +295,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
290
295
  DragDropModule,
291
296
  ScrollingModule,
292
297
  NgxMatSelectSearchModule,
293
- MatDialogModule
298
+ MatDialogModule,
299
+ HttpClientModule
294
300
  ],
295
301
  exports: [
296
302
  NgxRenderMaterialFormsComponent,
@@ -317,7 +323,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
317
323
  FlexLayoutModule,
318
324
  ScrollingModule,
319
325
  NgxMatSelectSearchModule,
320
- MatDialogModule
326
+ MatDialogModule,
327
+ HttpClientModule
321
328
  ],
322
329
  entryComponents: [
323
330
  MaterialButtonComponent,
@@ -358,4 +365,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
358
365
  }]
359
366
  }], ctorParameters: function () { return []; } });
360
367
  export * from './renderer';
361
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDOUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDOUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOztBQUU3RyxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3RCLENBQUM7QUE4SUYsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QztRQUNFLFlBQVksRUFBRSxDQUFDO0lBQ2pCLENBQUM7O3lIQUhVLDRCQUE0QjswSEFBNUIsNEJBQTRCLGlCQXhJckMsK0JBQStCO1FBQy9CLGVBQWU7UUFDZix1QkFBdUI7UUFDdkIsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6QixvQkFBb0I7UUFDcEIsc0JBQXNCO1FBQ3RCLDRCQUE0QjtRQUM1Qix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLG9CQUFvQjtRQUNwQix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQix5QkFBeUI7UUFDekIsd0JBQXdCO1FBQ3hCLDBCQUEwQjtRQUMxQix5QkFBeUI7UUFDekIseUJBQXlCO1FBQ3pCLHNCQUFzQjtRQUN0Qix5QkFBeUI7UUFDekIseUJBQXlCO1FBQ3pCLHdCQUF3QjtRQUN4QiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLDRCQUE0QjtRQUM1QixzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQix1QkFBdUI7UUFDdkIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixxQkFBcUI7UUFDckIseUJBQXlCO1FBQ3pCLHdCQUF3QjtRQUN4QixjQUFjO1FBQ2QsYUFBYTtRQUNiLDJCQUEyQixhQUczQixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2QsZUFBZTtRQUNmLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxlQUFlO1FBQ2YsYUFBYTtRQUNiLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixjQUFjO1FBQ2QsZUFBZTtRQUNmLHdCQUF3QjtRQUN4QixlQUFlLGFBR2YsK0JBQStCO1FBQy9CLGVBQWU7UUFDZixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2QsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixhQUFhO1FBQ2IsYUFBYTtRQUNiLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLHdCQUF3QjtRQUN4QixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZix3QkFBd0I7UUFDeEIsZUFBZTswSEF1Q04sNEJBQTRCLFlBN0ZyQyxZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2QsZUFBZTtRQUNmLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxlQUFlO1FBQ2YsYUFBYTtRQUNiLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixjQUFjO1FBQ2QsZUFBZTtRQUNmLHdCQUF3QjtRQUN4QixlQUFlLEVBS2YsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIsY0FBYztRQUNkLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsYUFBYTtRQUNiLGFBQWE7UUFDYixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2Ysd0JBQXdCO1FBQ3hCLGVBQWU7MkZBdUNOLDRCQUE0QjtrQkExSXhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLCtCQUErQjt3QkFDL0IsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1QixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLCtCQUErQjt3QkFDL0IsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLGVBQWU7cUJBQ2hCO29CQUNELGVBQWUsRUFBRTt3QkFDZix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1QixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQix1QkFBdUI7cUJBQ3hCO2lCQUNGOztBQU9ELGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBpbml0UmVuZGVyZXIgfSBmcm9tICcuL3JlbmRlcmVyJztcclxuaW1wb3J0IHsgRm9ybWlvQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9NYXRlcmlhbE5lc3RlZENvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUZXh0ZmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dGZpZWxkL3RleHRmaWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Bhc3N3b3JkL3Bhc3N3b3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVXJsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VybC91cmwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbWFpbC9lbWFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFBob25lTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Bob25lbnVtYmVyL3Bob25lbnVtYmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlci9udW1iZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxIaWRkZW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGlkZGVuL2hpZGRlbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbEh0bWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaHRtbC9odG1sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGFnc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWdzL3RhZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXJyZW5jeS9jdXJyZW5jeS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbERheUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXkvZGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb2x1bW5zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbHVtbnMvY29sdW1ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxGaWVsZHNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFNlbGVjdEJveGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlbGVjdGJveGVzL3NlbGVjdGJveGVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsUmFkaW9Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhbmVsL3BhbmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGFic0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbERhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS9kYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxFZGl0R3JpZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0Z3JpZC9lZGl0Z3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFdlbGxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd2VsbC93ZWxsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsV2l6YXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm1pby53aXphcmQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFRpbWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZS90aW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRm9ybWlvRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm1pby1mb3JtLWZpZWxkL2Zvcm1pby1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hc2tEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbWFzay5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XHJcbmltcG9ydCB7IE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB7XHJcbiAgRm9ybWlvQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsQnV0dG9uQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsUGFzc3dvcmRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxVcmxDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxFbWFpbENvbXBvbmVudCxcclxuICBNYXRlcmlhbFBob25lTnVtYmVyQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsTnVtYmVyQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsQ3VycmVuY3lDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxEYXlDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxIaWRkZW5Db21wb25lbnQsXHJcbiAgTWF0ZXJpYWxIdG1sQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsVGFnc0NvbXBvbmVudCxcclxuICBNYXRlcmlhbFRhYmxlQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxDb2x1bW5zQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxFZGl0R3JpZENvbXBvbmVudCxcclxuICBNYXRlcmlhbFBhbmVsQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxGaWVsZHNldENvbXBvbmVudCxcclxuICBNYXRlcmlhbENvbnRlbnRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxTaWduYXR1cmVDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxTdXJ2ZXlDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCxcclxuICBNYXRlcmlhbFJhZGlvQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsVGFic0NvbXBvbmVudCxcclxuICBNYXRlcmlhbERhdGVDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxXZWxsQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsVGltZUNvbXBvbmVudCBcclxufTtcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE5neFJlbmRlck1hdGVyaWFsRm9ybXNDb21wb25lbnQsXHJcbiAgICBGb3JtaW9Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxQYXNzd29yZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVXJsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxFbWFpbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUGhvbmVOdW1iZXJDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbE51bWJlckNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ3VycmVuY3lDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERheUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxIdG1sQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUYWdzQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXRhR3JpZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFBhbmVsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDaGVja2JveENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbnRlbnRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU3VydmV5Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUmFkaW9Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFic0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFibGVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERhdGVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFdlbGxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFdpemFyZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRpbWVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgRm9ybWlvRm9ybUZpZWxkQ29tcG9uZW50LFxyXG4gICAgTGFiZWxDb21wb25lbnQsXHJcbiAgICBNYXNrRGlyZWN0aXZlLFxyXG4gICAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBNYXRSYWRpb01vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXRDaGlwc01vZHVsZSxcclxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdFRhYnNNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxyXG4gICAgTWF0U3RlcHBlck1vZHVsZSxcclxuICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTmd4UmVuZGVyTWF0ZXJpYWxGb3Jtc0NvbXBvbmVudCxcclxuICAgIEZvcm1pb0NvbXBvbmVudCxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBNYXRSYWRpb01vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXRDaGlwc01vZHVsZSxcclxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBNYXRTdGVwcGVyTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZVxyXG4gIF0sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbXHJcbiAgICBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxQYXNzd29yZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVXJsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxFbWFpbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUGhvbmVOdW1iZXJDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbE51bWJlckNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ3VycmVuY3lDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERheUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxIdG1sQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUYWdzQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXRhR3JpZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFBhbmVsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDaGVja2JveENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbnRlbnRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU3VydmV5Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUmFkaW9Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFic0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFibGVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERhdGVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFdlbGxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUaW1lQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXaXphcmRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zTW9kdWxlIHsgXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBpbml0UmVuZGVyZXIoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyZXInO1xyXG4iXX0=
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5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eUJBQXlCO3dCQUN6Qix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3FCQUN4QjtpQkFDRjs7QUFPRCxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTmd4UmVuZGVyTWF0ZXJpYWxGb3Jtc0NvbXBvbmVudCB9IGZyb20gJy4vbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge01hdERpYWxvZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgaW5pdFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlcic7XHJcbmltcG9ydCB7IEZvcm1pb0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXNzd29yZC9wYXNzd29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFVybENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91cmwvdXJsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsRW1haWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1haWwvZW1haWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxQaG9uZU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9waG9uZW51bWJlci9waG9uZW51bWJlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hpZGRlbi9oaWRkZW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxIdG1sQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2h0bWwvaHRtbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFncy90YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VycmVuY3kvY3VycmVuY3kuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxEYXlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF5L2RheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW5zL2NvbHVtbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWduYXR1cmUvc2lnbmF0dXJlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Rib3hlcy9zZWxlY3Rib3hlcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYW5lbC9wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFRhYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGUvZGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGFncmlkL2RhdGFncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdGdyaWQvZWRpdGdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxXZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dlbGwvd2VsbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFdpemFyZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtaW8ud2l6YXJkJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWUvdGltZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEZvcm1pb0Zvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtaW8tZm9ybS1maWVsZC9mb3JtaW8tZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXNrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hc2suZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xyXG5pbXBvcnQgeyBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUgfSBmcm9tICduZ3gtbWF0LXNlbGVjdC1zZWFyY2gnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQge1xyXG4gIEZvcm1pb0NvbXBvbmVudCxcclxuICBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCxcclxuICBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCxcclxuICBNYXRlcmlhbFBhc3N3b3JkQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsVXJsQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRW1haWxDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxQaG9uZU51bWJlckNvbXBvbmVudCxcclxuICBNYXRlcmlhbE51bWJlckNvbXBvbmVudCxcclxuICBNYXRlcmlhbEN1cnJlbmN5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRGF5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsSHRtbENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRhZ3NDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCxcclxuICBNYXRlcmlhbFRleHRhcmVhQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCxcclxuICBNYXRlcmlhbENvbnRhaW5lckNvbXBvbmVudCxcclxuICBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCxcclxuICBNYXRlcmlhbENoZWNrYm94Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxDb250ZW50Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU3VydmV5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxSYWRpb0NvbXBvbmVudCxcclxuICBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRhYnNDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxEYXRlQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsV2VsbENvbXBvbmVudCxcclxuICBNYXRlcmlhbENvbXBvbmVudCxcclxuICBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRpbWVDb21wb25lbnQgXHJcbn07XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zQ29tcG9uZW50LFxyXG4gICAgRm9ybWlvQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxCdXR0b25Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUGFzc3dvcmRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFVybENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRW1haWxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFBob25lTnVtYmVyQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxOdW1iZXJDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEN1cnJlbmN5Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXlDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEhpZGRlbkNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsSHRtbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFnc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbHVtbnNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEVkaXRHcmlkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEZpZWxkc2V0Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDb250ZW50Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTaWduYXR1cmVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFN1cnZleUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFJhZGlvQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRhYnNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRhYmxlQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXRlQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXZWxsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXaXphcmRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUaW1lQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIEZvcm1pb0Zvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIExhYmVsQ29tcG9uZW50LFxyXG4gICAgTWFza0RpcmVjdGl2ZSxcclxuICAgIENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0Q2hpcHNNb2R1bGUsXHJcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXHJcbiAgICBNYXRDYXJkTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBTY3JvbGxpbmdNb2R1bGUsXHJcbiAgICBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zQ29tcG9uZW50LFxyXG4gICAgRm9ybWlvQ29tcG9uZW50LFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgIE1hdFRhYnNNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXHJcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gICAgTmd4TWF0U2VsZWN0U2VhcmNoTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZVxyXG4gIF0sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbXHJcbiAgICBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxQYXNzd29yZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVXJsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxFbWFpbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUGhvbmVOdW1iZXJDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbE51bWJlckNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ3VycmVuY3lDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERheUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxIdG1sQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUYWdzQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXRhR3JpZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFBhbmVsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDaGVja2JveENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbnRlbnRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU3VydmV5Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUmFkaW9Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFic0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFibGVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERhdGVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFdlbGxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUaW1lQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXaXphcmRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zTW9kdWxlIHsgXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBpbml0UmVuZGVyZXIoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyZXInO1xyXG4iXX0=