valtech-components 2.0.293 → 2.0.295
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +219 -0
- package/esm2022/lib/components/molecules/language-selector/types.mjs +2 -0
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +170 -0
- package/esm2022/lib/components/molecules/popover-selector/types.mjs +2 -0
- package/esm2022/lib/examples/display-demo.component.mjs +53 -53
- package/esm2022/lib/examples/selector-examples.component.mjs +208 -0
- package/esm2022/lib/services/lang-provider/components/display-demo.mjs +86 -0
- package/esm2022/lib/services/lang-provider/content.mjs +1 -1
- package/esm2022/public-api.mjs +6 -1
- package/fesm2022/valtech-components.mjs +630 -55
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/language-selector/language-selector.component.d.ts +50 -0
- package/lib/components/molecules/language-selector/types.d.ts +52 -0
- package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +29 -0
- package/lib/components/molecules/popover-selector/types.d.ts +69 -0
- package/lib/examples/display-demo.component.d.ts +3 -0
- package/lib/examples/selector-examples.component.d.ts +20 -0
- package/lib/services/lang-provider/components/display-demo.d.ts +3 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component } from '@angular/core';
|
|
3
|
-
import { IonButton, IonCard, IonCardContent, IonCardHeader, IonCardTitle
|
|
3
|
+
import { IonButton, IonCard, IonCardContent, IonCardHeader, IonCardTitle } from '@ionic/angular/standalone';
|
|
4
4
|
import { map } from 'rxjs/operators';
|
|
5
5
|
import { DisplayComponent } from '../components/atoms/display/display.component';
|
|
6
|
+
import { LanguageSelectorComponent } from '../components/molecules/language-selector/language-selector.component';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "../services/content.service";
|
|
8
9
|
import * as i2 from "../services/lang-provider/lang-provider.service";
|
|
@@ -17,6 +18,19 @@ export class DisplayDemoComponent {
|
|
|
17
18
|
this.langService = langService;
|
|
18
19
|
// Contador para ejemplos dinámicos
|
|
19
20
|
this.counter = 0;
|
|
21
|
+
// Configuración del selector de idioma
|
|
22
|
+
this.languageSelectorProps = {
|
|
23
|
+
showLabel: true,
|
|
24
|
+
labelConfig: {
|
|
25
|
+
className: '_global',
|
|
26
|
+
key: 'language',
|
|
27
|
+
fallback: 'Idioma',
|
|
28
|
+
},
|
|
29
|
+
showFlags: true,
|
|
30
|
+
color: 'primary',
|
|
31
|
+
size: 'default',
|
|
32
|
+
fill: 'outline',
|
|
33
|
+
};
|
|
20
34
|
// Configuraciones de ejemplo - ESTÁTICAS
|
|
21
35
|
this.smallStaticDisplay = {
|
|
22
36
|
content: 'Texto pequeño estático',
|
|
@@ -68,7 +82,7 @@ export class DisplayDemoComponent {
|
|
|
68
82
|
this.welcomeDisplay = {
|
|
69
83
|
contentConfig: {
|
|
70
84
|
className: 'displayDemo',
|
|
71
|
-
key: '
|
|
85
|
+
key: 'welcomeTitle',
|
|
72
86
|
fallback: 'Bienvenido a la aplicación',
|
|
73
87
|
},
|
|
74
88
|
color: 'primary',
|
|
@@ -77,7 +91,7 @@ export class DisplayDemoComponent {
|
|
|
77
91
|
this.descriptionDisplay = {
|
|
78
92
|
contentConfig: {
|
|
79
93
|
className: 'displayDemo',
|
|
80
|
-
key: '
|
|
94
|
+
key: 'welcomeDescription',
|
|
81
95
|
fallback: 'Esta es una descripción de ejemplo',
|
|
82
96
|
},
|
|
83
97
|
color: 'medium',
|
|
@@ -86,7 +100,7 @@ export class DisplayDemoComponent {
|
|
|
86
100
|
this.statusDisplay = {
|
|
87
101
|
contentConfig: {
|
|
88
102
|
className: 'displayDemo',
|
|
89
|
-
key: '
|
|
103
|
+
key: 'statusOnline',
|
|
90
104
|
fallback: 'En línea',
|
|
91
105
|
},
|
|
92
106
|
color: 'success',
|
|
@@ -96,7 +110,7 @@ export class DisplayDemoComponent {
|
|
|
96
110
|
this.userWelcomeDisplay = {
|
|
97
111
|
contentConfig: {
|
|
98
112
|
className: 'displayDemo',
|
|
99
|
-
key: '
|
|
113
|
+
key: 'welcomeUser',
|
|
100
114
|
fallback: 'Hola, {{userName}}!',
|
|
101
115
|
interpolation: {
|
|
102
116
|
userName: 'Juan Pérez',
|
|
@@ -108,7 +122,7 @@ export class DisplayDemoComponent {
|
|
|
108
122
|
this.counterDisplay = {
|
|
109
123
|
contentConfig: {
|
|
110
124
|
className: 'displayDemo',
|
|
111
|
-
key: '
|
|
125
|
+
key: 'counterCurrent',
|
|
112
126
|
fallback: 'Contador: {{count}}',
|
|
113
127
|
interpolation: {
|
|
114
128
|
count: this.counter,
|
|
@@ -145,7 +159,7 @@ export class DisplayDemoComponent {
|
|
|
145
159
|
this.reactiveMixedDisplay = {
|
|
146
160
|
contentConfig: {
|
|
147
161
|
className: 'displayDemo',
|
|
148
|
-
key: '
|
|
162
|
+
key: 'mixedReactive',
|
|
149
163
|
fallback: 'Este contenido sí cambia con el idioma',
|
|
150
164
|
},
|
|
151
165
|
color: 'primary',
|
|
@@ -155,7 +169,7 @@ export class DisplayDemoComponent {
|
|
|
155
169
|
this.dynamicCounterDisplay = {
|
|
156
170
|
contentConfig: {
|
|
157
171
|
className: 'displayDemo',
|
|
158
|
-
key: '
|
|
172
|
+
key: 'dynamicContent',
|
|
159
173
|
fallback: 'Clics: {{count}}',
|
|
160
174
|
interpolation: {
|
|
161
175
|
count: this.counter,
|
|
@@ -173,7 +187,7 @@ export class DisplayDemoComponent {
|
|
|
173
187
|
// Contenido de la página
|
|
174
188
|
this.demoTitle$ = this.contentService.fromContent({
|
|
175
189
|
className: 'displayDemo',
|
|
176
|
-
key: '
|
|
190
|
+
key: 'pageTitle',
|
|
177
191
|
fallback: 'Demostración del Componente Display',
|
|
178
192
|
});
|
|
179
193
|
this.languageLabel$ = this.contentService.fromContent({
|
|
@@ -183,67 +197,67 @@ export class DisplayDemoComponent {
|
|
|
183
197
|
});
|
|
184
198
|
this.staticSectionTitle$ = this.contentService.fromContent({
|
|
185
199
|
className: 'displayDemo',
|
|
186
|
-
key: '
|
|
200
|
+
key: 'sectionsStatic',
|
|
187
201
|
fallback: 'Ejemplos Estáticos',
|
|
188
202
|
});
|
|
189
203
|
this.reactiveSectionTitle$ = this.contentService.fromContent({
|
|
190
204
|
className: 'displayDemo',
|
|
191
|
-
key: '
|
|
205
|
+
key: 'sectionsReactive',
|
|
192
206
|
fallback: 'Ejemplos Reactivos',
|
|
193
207
|
});
|
|
194
208
|
this.mixedSectionTitle$ = this.contentService.fromContent({
|
|
195
209
|
className: 'displayDemo',
|
|
196
|
-
key: '
|
|
210
|
+
key: 'sectionsMixed',
|
|
197
211
|
fallback: 'Ejemplos Mixtos',
|
|
198
212
|
});
|
|
199
213
|
this.dynamicSectionTitle$ = this.contentService.fromContent({
|
|
200
214
|
className: 'displayDemo',
|
|
201
|
-
key: '
|
|
215
|
+
key: 'sectionsDynamic',
|
|
202
216
|
fallback: 'Ejemplos Dinámicos',
|
|
203
217
|
});
|
|
204
218
|
this.analysisTitle$ = this.contentService.fromContent({
|
|
205
219
|
className: 'displayDemo',
|
|
206
|
-
key: '
|
|
220
|
+
key: 'sectionsAnalysis',
|
|
207
221
|
fallback: 'Análisis de Idioma',
|
|
208
222
|
});
|
|
209
223
|
this.reactiveContentTitle$ = this.contentService.fromContent({
|
|
210
224
|
className: 'displayDemo',
|
|
211
|
-
key: '
|
|
225
|
+
key: 'subsectionsReactiveContent',
|
|
212
226
|
fallback: 'Contenido reactivo básico:',
|
|
213
227
|
});
|
|
214
228
|
this.interpolationTitle$ = this.contentService.fromContent({
|
|
215
229
|
className: 'displayDemo',
|
|
216
|
-
key: '
|
|
230
|
+
key: 'subsectionsInterpolation',
|
|
217
231
|
fallback: 'Contenido con interpolación:',
|
|
218
232
|
});
|
|
219
233
|
this.fallbackTitle$ = this.contentService.fromContent({
|
|
220
234
|
className: 'displayDemo',
|
|
221
|
-
key: '
|
|
235
|
+
key: 'subsectionsFallback',
|
|
222
236
|
fallback: 'Demostración de fallbacks:',
|
|
223
237
|
});
|
|
224
238
|
this.mixedContentTitle$ = this.contentService.fromContent({
|
|
225
239
|
className: 'displayDemo',
|
|
226
|
-
key: '
|
|
240
|
+
key: 'subsectionsMixedContent',
|
|
227
241
|
fallback: 'Contenido estático vs reactivo:',
|
|
228
242
|
});
|
|
229
243
|
this.dynamicContentTitle$ = this.contentService.fromContent({
|
|
230
244
|
className: 'displayDemo',
|
|
231
|
-
key: '
|
|
245
|
+
key: 'subsectionsDynamicContent',
|
|
232
246
|
fallback: 'Contenido que se actualiza dinámicamente:',
|
|
233
247
|
});
|
|
234
248
|
this.updateButtonText$ = this.contentService.fromContent({
|
|
235
249
|
className: 'displayDemo',
|
|
236
|
-
key: '
|
|
250
|
+
key: 'buttonsUpdateCounter',
|
|
237
251
|
fallback: 'Actualizar Contador',
|
|
238
252
|
});
|
|
239
253
|
this.currentLangLabel$ = this.contentService.fromContent({
|
|
240
254
|
className: 'displayDemo',
|
|
241
|
-
key: '
|
|
255
|
+
key: 'analysisCurrentLanguage',
|
|
242
256
|
fallback: 'Idioma actual',
|
|
243
257
|
});
|
|
244
258
|
this.availableLangsLabel$ = this.contentService.fromContent({
|
|
245
259
|
className: 'displayDemo',
|
|
246
|
-
key: '
|
|
260
|
+
key: 'analysisAvailableLanguages',
|
|
247
261
|
fallback: 'Idiomas disponibles',
|
|
248
262
|
});
|
|
249
263
|
}
|
|
@@ -254,6 +268,11 @@ export class DisplayDemoComponent {
|
|
|
254
268
|
changeLanguage(language) {
|
|
255
269
|
this.langService.setLang(language);
|
|
256
270
|
}
|
|
271
|
+
onLanguageChange(language) {
|
|
272
|
+
console.log('Language changed to:', language);
|
|
273
|
+
// El language selector ya maneja el cambio de idioma internamente
|
|
274
|
+
// pero podemos agregar lógica adicional aquí si es necesario
|
|
275
|
+
}
|
|
257
276
|
updateCounter() {
|
|
258
277
|
this.counter++;
|
|
259
278
|
// Actualizar los displays que usan el contador
|
|
@@ -286,18 +305,10 @@ export class DisplayDemoComponent {
|
|
|
286
305
|
|
|
287
306
|
<ion-card-content>
|
|
288
307
|
<!-- Selector de idioma -->
|
|
289
|
-
<
|
|
290
|
-
<
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
[value]="currentLanguage$ | async"
|
|
294
|
-
(ionChange)="changeLanguage($event.detail.value)"
|
|
295
|
-
>
|
|
296
|
-
<ion-select-option *ngFor="let lang of availableLanguages$ | async" [value]="lang">
|
|
297
|
-
{{ lang | uppercase }}
|
|
298
|
-
</ion-select-option>
|
|
299
|
-
</ion-select>
|
|
300
|
-
</ion-item>
|
|
308
|
+
<div class="language-selector-container">
|
|
309
|
+
<val-language-selector [props]="languageSelectorProps" (languageChange)="onLanguageChange($event)">
|
|
310
|
+
</val-language-selector>
|
|
311
|
+
</div>
|
|
301
312
|
|
|
302
313
|
<!-- Ejemplos estáticos -->
|
|
303
314
|
<div class="section">
|
|
@@ -387,7 +398,7 @@ export class DisplayDemoComponent {
|
|
|
387
398
|
</ion-card-content>
|
|
388
399
|
</ion-card>
|
|
389
400
|
</div>
|
|
390
|
-
`, isInline: true, styles: [".display-demo{padding:16px}.section{margin:24px 0;border-bottom:1px solid var(--ion-color-light);padding-bottom:16px}.example-group{margin:16px 0;padding:12px;background:var(--ion-color-light);border-radius:8px}.example-group h4{margin:0 0 12px;color:var(--ion-color-medium)}.mixed-examples{display:flex;flex-direction:column;gap:8px}.analysis-info{background:var(--ion-color-step-50);padding:16px;border-radius:8px;margin-top:16px}val-display{display:block;margin:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "
|
|
401
|
+
`, isInline: true, styles: [".display-demo{padding:16px}.language-selector-container{margin:16px 0;padding:12px;background:var(--ion-color-step-50);border-radius:8px}.section{margin:24px 0;border-bottom:1px solid var(--ion-color-light);padding-bottom:16px}.example-group{margin:16px 0;padding:12px;background:var(--ion-color-light);border-radius:8px}.example-group h4{margin:0 0 12px;color:var(--ion-color-medium)}.mixed-examples{display:flex;flex-direction:column;gap:8px}.analysis-info{background:var(--ion-color-step-50);padding:16px;border-radius:8px;margin-top:16px}val-display{display:block;margin:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }] }); }
|
|
391
402
|
}
|
|
392
403
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DisplayDemoComponent, decorators: [{
|
|
393
404
|
type: Component,
|
|
@@ -397,12 +408,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
397
408
|
IonCardContent,
|
|
398
409
|
IonCardHeader,
|
|
399
410
|
IonCardTitle,
|
|
400
|
-
IonSelect,
|
|
401
|
-
IonSelectOption,
|
|
402
|
-
IonItem,
|
|
403
|
-
IonLabel,
|
|
404
411
|
IonButton,
|
|
405
412
|
DisplayComponent,
|
|
413
|
+
LanguageSelectorComponent,
|
|
406
414
|
], template: `
|
|
407
415
|
<div class="display-demo">
|
|
408
416
|
<ion-card>
|
|
@@ -412,18 +420,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
412
420
|
|
|
413
421
|
<ion-card-content>
|
|
414
422
|
<!-- Selector de idioma -->
|
|
415
|
-
<
|
|
416
|
-
<
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
[value]="currentLanguage$ | async"
|
|
420
|
-
(ionChange)="changeLanguage($event.detail.value)"
|
|
421
|
-
>
|
|
422
|
-
<ion-select-option *ngFor="let lang of availableLanguages$ | async" [value]="lang">
|
|
423
|
-
{{ lang | uppercase }}
|
|
424
|
-
</ion-select-option>
|
|
425
|
-
</ion-select>
|
|
426
|
-
</ion-item>
|
|
423
|
+
<div class="language-selector-container">
|
|
424
|
+
<val-language-selector [props]="languageSelectorProps" (languageChange)="onLanguageChange($event)">
|
|
425
|
+
</val-language-selector>
|
|
426
|
+
</div>
|
|
427
427
|
|
|
428
428
|
<!-- Ejemplos estáticos -->
|
|
429
429
|
<div class="section">
|
|
@@ -513,6 +513,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
513
513
|
</ion-card-content>
|
|
514
514
|
</ion-card>
|
|
515
515
|
</div>
|
|
516
|
-
`, styles: [".display-demo{padding:16px}.section{margin:24px 0;border-bottom:1px solid var(--ion-color-light);padding-bottom:16px}.example-group{margin:16px 0;padding:12px;background:var(--ion-color-light);border-radius:8px}.example-group h4{margin:0 0 12px;color:var(--ion-color-medium)}.mixed-examples{display:flex;flex-direction:column;gap:8px}.analysis-info{background:var(--ion-color-step-50);padding:16px;border-radius:8px;margin-top:16px}val-display{display:block;margin:8px 0}\n"] }]
|
|
516
|
+
`, styles: [".display-demo{padding:16px}.language-selector-container{margin:16px 0;padding:12px;background:var(--ion-color-step-50);border-radius:8px}.section{margin:24px 0;border-bottom:1px solid var(--ion-color-light);padding-bottom:16px}.example-group{margin:16px 0;padding:12px;background:var(--ion-color-light);border-radius:8px}.example-group h4{margin:0 0 12px;color:var(--ion-color-medium)}.mixed-examples{display:flex;flex-direction:column;gap:8px}.analysis-info{background:var(--ion-color-step-50);padding:16px;border-radius:8px;margin-top:16px}val-display{display:block;margin:8px 0}\n"] }]
|
|
517
517
|
}], ctorParameters: () => [{ type: i1.ContentService }, { type: i2.LangService }] });
|
|
518
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2V4YW1wbGVzL2Rpc3BsYXktZGVtby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsY0FBYyxFQUNkLGFBQWEsRUFDYixZQUFZLEVBQ1osT0FBTyxFQUNQLFFBQVEsRUFDUixTQUFTLEVBQ1QsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7QUFLakY7OztHQUdHO0FBc0tILE1BQU0sT0FBTyxvQkFBb0I7SUErTC9CLFlBQ1UsY0FBOEIsRUFDOUIsV0FBd0I7UUFEeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBM0tsQyxtQ0FBbUM7UUFDM0IsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUVwQix5Q0FBeUM7UUFDekMsdUJBQWtCLEdBQW9CO1lBQ3BDLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUM7UUFFRix3QkFBbUIsR0FBb0I7WUFDckMsT0FBTyxFQUFFLHdCQUF3QjtZQUNqQyxLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQztRQUVGLHVCQUFrQixHQUFvQjtZQUNwQyxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLEtBQUssRUFB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R0E4R1Qsa2lCQTFIQyxZQUFZLDhRQUNaLE9BQU8seUxBQ1AsY0FBYywrRUFDZCxhQUFhLHNHQUNiLFlBQVksc0ZBQ1osU0FBUyx1VEFDVCxlQUFlLDZGQUNmLE9BQU8sME5BQ1AsUUFBUSw2RkFDUixTQUFTLG9QQUNULGdCQUFnQjs7NEZBdUpQLG9CQUFvQjtrQkFyS2hDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxlQUFlO3dCQUNmLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixTQUFTO3dCQUNULGdCQUFnQjtxQkFDakIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4R1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uQ2FyZCxcbiAgSW9uQ2FyZENvbnRlbnQsXG4gIElvbkNhcmRIZWFkZXIsXG4gIElvbkNhcmRUaXRsZSxcbiAgSW9uSXRlbSxcbiAgSW9uTGFiZWwsXG4gIElvblNlbGVjdCxcbiAgSW9uU2VsZWN0T3B0aW9uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheU1ldGFkYXRhIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9kaXNwbGF5L3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgZGUgZGVtb3N0cmFjacOzbiBwYXJhIHZhbC1kaXNwbGF5IGNvbiBjb250ZW5pZG8gcmVhY3Rpdm8uXG4gKiBNdWVzdHJhIGRpZmVyZW50ZXMgcGF0cm9uZXMgZGUgdXNvIHkgY2Fzb3MgZGUgZWplbXBsby5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWRpc3BsYXktZGVtbycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uQ2FyZCxcbiAgICBJb25DYXJkQ29udGVudCxcbiAgICBJb25DYXJkSGVhZGVyLFxuICAgIElvbkNhcmRUaXRsZSxcbiAgICBJb25TZWxlY3QsXG4gICAgSW9uU2VsZWN0T3B0aW9uLFxuICAgIElvbkl0ZW0sXG4gICAgSW9uTGFiZWwsXG4gICAgSW9uQnV0dG9uLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRpc3BsYXktZGVtb1wiPlxuICAgICAgPGlvbi1jYXJkPlxuICAgICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgIDxpb24tY2FyZC10aXRsZT57eyBkZW1vVGl0bGUkIHwgYXN5bmMgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICA8IS0tIFNlbGVjdG9yIGRlIGlkaW9tYSAtLT5cbiAgICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPnt7IGxhbmd1YWdlTGFiZWwkIHwgYXN5bmMgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDxpb24tc2VsZWN0XG4gICAgICAgICAgICAgIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiY3VycmVudExhbmd1YWdlJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJjaGFuZ2VMYW5ndWFnZSgkZXZlbnQuZGV0YWlsLnZhbHVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGFuZyBvZiBhdmFpbGFibGVMYW5ndWFnZXMkIHwgYXN5bmNcIiBbdmFsdWVdPVwibGFuZ1wiPlxuICAgICAgICAgICAgICAgIHt7IGxhbmcgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICAgICAgPC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvaW9uLXNlbGVjdD5cbiAgICAgICAgICA8L2lvbi1pdGVtPlxuXG4gICAgICAgICAgPCEtLSBFamVtcGxvcyBlc3TDoXRpY29zIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8aDM+e3sgc3RhdGljU2VjdGlvblRpdGxlJCB8IGFzeW5jIH19PC9oMz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGg0PkRpZmVyZW50ZXMgdGFtYcOxb3M6PC9oND5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJzbWFsbFN0YXRpY0Rpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cIm1lZGl1bVN0YXRpY0Rpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cImxhcmdlU3RhdGljRGlzcGxheVwiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieGxhcmdlU3RhdGljRGlzcGxheVwiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGg0PkRpZmVyZW50ZXMgY29sb3Jlczo8L2g0PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInByaW1hcnlEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJzZWNvbmRhcnlEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJzdWNjZXNzRGlzcGxheVwiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwid2FybmluZ0Rpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cImRhbmdlckRpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIEVqZW1wbG9zIHJlYWN0aXZvcyAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgPGgzPnt7IHJlYWN0aXZlU2VjdGlvblRpdGxlJCB8IGFzeW5jIH19PC9oMz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGg0Pnt7IHJlYWN0aXZlQ29udGVudFRpdGxlJCB8IGFzeW5jIH19PC9oND5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ3ZWxjb21lRGlzcGxheVwiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwiZGVzY3JpcHRpb25EaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJzdGF0dXNEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1ncm91cFwiPlxuICAgICAgICAgICAgICA8aDQ+e3sgaW50ZXJwb2xhdGlvblRpdGxlJCB8IGFzeW5jIH19PC9oND5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ1c2VyV2VsY29tZURpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cImNvdW50ZXJEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1ncm91cFwiPlxuICAgICAgICAgICAgICA8aDQ+e3sgZmFsbGJhY2tUaXRsZSQgfCBhc3luYyB9fTwvaDQ+XG4gICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwibWlzc2luZ0tleURpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cIm5vRmFsbGJhY2tEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBFamVtcGxvcyBtaXh0b3MgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxoMz57eyBtaXhlZFNlY3Rpb25UaXRsZSQgfCBhc3luYyB9fTwvaDM+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxoND57eyBtaXhlZENvbnRlbnRUaXRsZSQgfCBhc3luYyB9fTwvaDQ+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaXhlZC1leGFtcGxlc1wiPlxuICAgICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwic3RhdGljTWl4ZWREaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInJlYWN0aXZlTWl4ZWREaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gRWplbXBsb3MgZGluw6FtaWNvcyAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgPGgzPnt7IGR5bmFtaWNTZWN0aW9uVGl0bGUkIHwgYXN5bmMgfX08L2gzPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1ncm91cFwiPlxuICAgICAgICAgICAgICA8aDQ+e3sgZHluYW1pY0NvbnRlbnRUaXRsZSQgfCBhc3luYyB9fTwvaDQ+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJ1cGRhdGVDb3VudGVyKClcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICB7eyB1cGRhdGVCdXR0b25UZXh0JCB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJkeW5hbWljQ291bnRlckRpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIEFuw6FsaXNpcyBkZSBjb250ZW5pZG8gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxoMz57eyBhbmFseXNpc1RpdGxlJCB8IGFzeW5jIH19PC9oMz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmFseXNpcy1pbmZvXCI+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgY3VycmVudExhbmdMYWJlbCQgfCBhc3luYyB9fTo8L3N0cm9uZz4ge3sgY3VycmVudExhbmd1YWdlJCB8IGFzeW5jIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBhdmFpbGFibGVMYW5nc0xhYmVsJCB8IGFzeW5jIH19Ojwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIHt7IChhdmFpbGFibGVMYW5ndWFnZXMkIHwgYXN5bmMpPy5qb2luKCcsICcpIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8L2lvbi1jYXJkPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuZGlzcGxheS1kZW1vIHtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAyNHB4IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIC5leGFtcGxlLWdyb3VwIHtcbiAgICAgICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIH1cbiAgICAgIC5leGFtcGxlLWdyb3VwIGg0IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICB9XG4gICAgICAubWl4ZWQtZXhhbXBsZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5hbmFseXNpcy1pbmZvIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXN0ZXAtNTApO1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICB9XG4gICAgICB2YWwtZGlzcGxheSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERpc3BsYXlEZW1vQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gT2JzZXJ2YWJsZXMgcGFyYSBjb250ZW5pZG8gcmVhY3Rpdm8gZGUgbGEgcMOhZ2luYVxuICBkZW1vVGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGxhbmd1YWdlTGFiZWwkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHN0YXRpY1NlY3Rpb25UaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcmVhY3RpdmVTZWN0aW9uVGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIG1peGVkU2VjdGlvblRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBkeW5hbWljU2VjdGlvblRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBhbmFseXNpc1RpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICByZWFjdGl2ZUNvbnRlbnRUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgaW50ZXJwb2xhdGlvblRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBmYWxsYmFja1RpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBtaXhlZENvbnRlbnRUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgZHluYW1pY0NvbnRlbnRUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgdXBkYXRlQnV0dG9uVGV4dCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgY3VycmVudExhbmdMYWJlbCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgYXZhaWxhYmxlTGFuZ3NMYWJlbCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvLyBFc3RhZG8gZGVsIGlkaW9tYVxuICBjdXJyZW50TGFuZ3VhZ2UkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGF2YWlsYWJsZUxhbmd1YWdlcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIC8vIENvbnRhZG9yIHBhcmEgZWplbXBsb3MgZGluw6FtaWNvc1xuICBwcml2YXRlIGNvdW50ZXIgPSAwO1xuXG4gIC8vIENvbmZpZ3VyYWNpb25lcyBkZSBlamVtcGxvIC0gRVNUw4FUSUNBU1xuICBzbWFsbFN0YXRpY0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gcGVxdWXDsW8gZXN0w6F0aWNvJyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIHNpemU6ICdzbWFsbCcsXG4gIH07XG5cbiAgbWVkaXVtU3RhdGljRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnQ6ICdUZXh0byBtZWRpYW5vIGVzdMOhdGljbycsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgfTtcblxuICBsYXJnZVN0YXRpY0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gZ3JhbmRlIGVzdMOhdGljbycsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBzaXplOiAnbGFyZ2UnLFxuICB9O1xuXG4gIHhsYXJnZVN0YXRpY0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gZXh0cmEgZ3JhbmRlIGVzdMOhdGljbycsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBzaXplOiAneGxhcmdlJyxcbiAgfTtcblxuICAvLyBFamVtcGxvcyBkZSBjb2xvcmVzIGVzdMOhdGljb3NcbiAgcHJpbWFyeURpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gcHJpbWFyaW8nLFxuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gIH07XG5cbiAgc2Vjb25kYXJ5RGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnQ6ICdUZXh0byBzZWN1bmRhcmlvJyxcbiAgICBjb2xvcjogJ3NlY29uZGFyeScsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gIH07XG5cbiAgc3VjY2Vzc0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gZGUgw6l4aXRvJyxcbiAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIHdhcm5pbmdEaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudDogJ1RleHRvIGRlIGFkdmVydGVuY2lhJyxcbiAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIGRhbmdlckRpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gZGUgcGVsaWdybycsXG4gICAgY29sb3I6ICdkYW5nZXInLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIC8vIENvbmZpZ3VyYWNpb25lcyBkZSBlamVtcGxvIC0gUkVBQ1RJVkFTXG4gIHdlbGNvbWVEaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudENvbmZpZzoge1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnd2VsY29tZS50aXRsZScsXG4gICAgICBmYWxsYmFjazogJ0JpZW52ZW5pZG8gYSBsYSBhcGxpY2FjacOzbicsXG4gICAgfSxcbiAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgIHNpemU6ICd4bGFyZ2UnLFxuICB9O1xuXG4gIGRlc2NyaXB0aW9uRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnRDb25maWc6IHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ3dlbGNvbWUuZGVzY3JpcHRpb24nLFxuICAgICAgZmFsbGJhY2s6ICdFc3RhIGVzIHVuYSBkZXNjcmlwY2nDs24gZGUgZWplbXBsbycsXG4gICAgfSxcbiAgICBjb2xvcjogJ21lZGl1bScsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gIH07XG5cbiAgc3RhdHVzRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnRDb25maWc6IHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ3N0YXR1cy5vbmxpbmUnLFxuICAgICAgZmFsbGJhY2s6ICdFbiBsw61uZWEnLFxuICAgIH0sXG4gICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICBzaXplOiAnc21hbGwnLFxuICB9O1xuXG4gIC8vIEVqZW1wbG9zIGNvbiBpbnRlcnBvbGFjacOzblxuICB1c2VyV2VsY29tZURpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50Q29uZmlnOiB7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICd3ZWxjb21lLnVzZXInLFxuICAgICAgZmFsbGJhY2s6ICdIb2xhLCB7e3VzZXJOYW1lfX0hJyxcbiAgICAgIGludGVycG9sYXRpb246IHtcbiAgICAgICAgdXNlck5hbWU6ICdKdWFuIFDDqXJleicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29sb3I6ICd0ZXJ0aWFyeScsXG4gICAgc2l6ZTogJ2xhcmdlJyxcbiAgfTtcblxuICBjb3VudGVyRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnRDb25maWc6IHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ2NvdW50ZXIuY3VycmVudCcsXG4gICAgICBmYWxsYmFjazogJ0NvbnRhZG9yOiB7e2NvdW50fX0nLFxuICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICBjb3VudDogdGhpcy5jb3VudGVyLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbG9yOiAnc2Vjb25kYXJ5JyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgfTtcblxuICAvLyBFamVtcGxvcyBjb24gY2xhdmVzIGZhbHRhbnRlcyBwYXJhIGRlbW9zdHJhciBmYWxsYmFja3NcbiAgbWlzc2luZ0tleURpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50Q29uZmlnOiB7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICd0aGlzLmtleS5kb2VzLm5vdC5leGlzdCcsXG4gICAgICBmYWxsYmFjazogJ0VzdGEgY2xhdmUgbm8gZXhpc3RlLCBwZXJvIHRlbmdvIGZhbGxiYWNrJyxcbiAgICB9LFxuICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gIH07XG5cbiAgbm9GYWxsYmFja0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50Q29uZmlnOiB7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdhbm90aGVyLm1pc3Npbmcua2V5JyxcbiAgICAgIC8vIFNpbiBmYWxsYmFjayAtIHVzYXLDoSBsYSBjbGF2ZSBjb21vIGZhbGxiYWNrXG4gICAgfSxcbiAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgc2l6ZTogJ3NtYWxsJyxcbiAgfTtcblxuICAvLyBFamVtcGxvcyBtaXh0b3NcbiAgc3RhdGljTWl4ZWREaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudDogJ0VzdGUgZXMgY29udGVuaWRvIGVzdMOhdGljbyAobm8gY2FtYmlhIGNvbiBlbCBpZGlvbWEpJyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIHJlYWN0aXZlTWl4ZWREaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudENvbmZpZzoge1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnbWl4ZWQucmVhY3RpdmUnLFxuICAgICAgZmFsbGJhY2s6ICdFc3RlIGNvbnRlbmlkbyBzw60gY2FtYmlhIGNvbiBlbCBpZGlvbWEnLFxuICAgIH0sXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgfTtcblxuICAvLyBFamVtcGxvIGRpbsOhbWljbyBxdWUgc2UgYWN0dWFsaXphXG4gIGR5bmFtaWNDb3VudGVyRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnRDb25maWc6IHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ2R5bmFtaWMuY291bnRlcicsXG4gICAgICBmYWxsYmFjazogJ0NsaWNzOiB7e2NvdW50fX0nLFxuICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICBjb3VudDogdGhpcy5jb3VudGVyLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbG9yOiAndGVydGlhcnknLFxuICAgIHNpemU6ICdsYXJnZScsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbnRlbnQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVMYW5ndWFnZVN0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDb250ZW50KCkge1xuICAgIC8vIENvbnRlbmlkbyBkZSBsYSBww6FnaW5hXG4gICAgdGhpcy5kZW1vVGl0bGUkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdwYWdlLnRpdGxlJyxcbiAgICAgIGZhbGxiYWNrOiAnRGVtb3N0cmFjacOzbiBkZWwgQ29tcG9uZW50ZSBEaXNwbGF5JyxcbiAgICB9KTtcblxuICAgIHRoaXMubGFuZ3VhZ2VMYWJlbCQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgIGNsYXNzTmFtZTogJ19nbG9iYWwnLFxuICAgICAga2V5OiAnbGFuZ3VhZ2UnLFxuICAgICAgZmFsbGJhY2s6ICdJZGlvbWEnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0aWNTZWN0aW9uVGl0bGUkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdzZWN0aW9ucy5zdGF0aWMnLFxuICAgICAgZmFsbGJhY2s6ICdFamVtcGxvcyBFc3TDoXRpY29zJyxcbiAgICB9KTtcblxuICAgIHRoaXMucmVhY3RpdmVTZWN0aW9uVGl0bGUkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdzZWN0aW9ucy5yZWFjdGl2ZScsXG4gICAgICBmYWxsYmFjazogJ0VqZW1wbG9zIFJlYWN0aXZvcycsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1peGVkU2VjdGlvblRpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc2VjdGlvbnMubWl4ZWQnLFxuICAgICAgZmFsbGJhY2s6ICdFamVtcGxvcyBNaXh0b3MnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5keW5hbWljU2VjdGlvblRpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc2VjdGlvbnMuZHluYW1pYycsXG4gICAgICBmYWxsYmFjazogJ0VqZW1wbG9zIERpbsOhbWljb3MnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hbmFseXNpc1RpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc2VjdGlvbnMuYW5hbHlzaXMnLFxuICAgICAgZmFsbGJhY2s6ICdBbsOhbGlzaXMgZGUgSWRpb21hJyxcbiAgICB9KTtcblxuICAgIHRoaXMucmVhY3RpdmVDb250ZW50VGl0bGUkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdzdWJzZWN0aW9ucy5yZWFjdGl2ZUNvbnRlbnQnLFxuICAgICAgZmFsbGJhY2s6ICdDb250ZW5pZG8gcmVhY3Rpdm8gYsOhc2ljbzonLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnRlcnBvbGF0aW9uVGl0bGUkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdzdWJzZWN0aW9ucy5pbnRlcnBvbGF0aW9uJyxcbiAgICAgIGZhbGxiYWNrOiAnQ29udGVuaWRvIGNvbiBpbnRlcnBvbGFjacOzbjonLFxuICAgIH0pO1xuXG4gICAgdGhpcy5mYWxsYmFja1RpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc3Vic2VjdGlvbnMuZmFsbGJhY2snLFxuICAgICAgZmFsbGJhY2s6ICdEZW1vc3RyYWNpw7NuIGRlIGZhbGxiYWNrczonLFxuICAgIH0pO1xuXG4gICAgdGhpcy5taXhlZENvbnRlbnRUaXRsZSQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ3N1YnNlY3Rpb25zLm1peGVkQ29udGVudCcsXG4gICAgICBmYWxsYmFjazogJ0NvbnRlbmlkbyBlc3TDoXRpY28gdnMgcmVhY3Rpdm86JyxcbiAgICB9KTtcblxuICAgIHRoaXMuZHluYW1pY0NvbnRlbnRUaXRsZSQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ3N1YnNlY3Rpb25zLmR5bmFtaWNDb250ZW50JyxcbiAgICAgIGZhbGxiYWNrOiAnQ29udGVuaWRvIHF1ZSBzZSBhY3R1YWxpemEgZGluw6FtaWNhbWVudGU6JyxcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlQnV0dG9uVGV4dCQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ2J1dHRvbnMudXBkYXRlQ291bnRlcicsXG4gICAgICBmYWxsYmFjazogJ0FjdHVhbGl6YXIgQ29udGFkb3InLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jdXJyZW50TGFuZ0xhYmVsJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnYW5hbHlzaXMuY3VycmVudExhbmd1YWdlJyxcbiAgICAgIGZhbGxiYWNrOiAnSWRpb21hIGFjdHVhbCcsXG4gICAgfSk7XG5cbiAgICB0aGlzLmF2YWlsYWJsZUxhbmdzTGFiZWwkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdhbmFseXNpcy5hdmFpbGFibGVMYW5ndWFnZXMnLFxuICAgICAgZmFsbGJhY2s6ICdJZGlvbWFzIGRpc3BvbmlibGVzJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUxhbmd1YWdlU3RhdGUoKSB7XG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UkID0gdGhpcy5sYW5nU2VydmljZS5jdXJyZW50TGFuZyQ7XG4gICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMkID0gdGhpcy5sYW5nU2VydmljZS5jdXJyZW50TGFuZyQucGlwZShtYXAoKCkgPT4gdGhpcy5sYW5nU2VydmljZS5hdmFpbGFibGVMYW5ncykpO1xuICB9XG5cbiAgY2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIHRoaXMubGFuZ1NlcnZpY2Uuc2V0TGFuZyhsYW5ndWFnZSk7XG4gIH1cblxuICB1cGRhdGVDb3VudGVyKCkge1xuICAgIHRoaXMuY291bnRlcisrO1xuXG4gICAgLy8gQWN0dWFsaXphciBsb3MgZGlzcGxheXMgcXVlIHVzYW4gZWwgY29udGFkb3JcbiAgICB0aGlzLmNvdW50ZXJEaXNwbGF5ID0ge1xuICAgICAgLi4udGhpcy5jb3VudGVyRGlzcGxheSxcbiAgICAgIGNvbnRlbnRDb25maWc6IHtcbiAgICAgICAgLi4udGhpcy5jb3VudGVyRGlzcGxheS5jb250ZW50Q29uZmlnISxcbiAgICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICAgIGNvdW50OiB0aGlzLmNvdW50ZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLmR5bmFtaWNDb3VudGVyRGlzcGxheSA9IHtcbiAgICAgIC4uLnRoaXMuZHluYW1pY0NvdW50ZXJEaXNwbGF5LFxuICAgICAgY29udGVudENvbmZpZzoge1xuICAgICAgICAuLi50aGlzLmR5bmFtaWNDb3VudGVyRGlzcGxheS5jb250ZW50Q29uZmlnISxcbiAgICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICAgIGNvdW50OiB0aGlzLmNvdW50ZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
518
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2V4YW1wbGVzL2Rpc3BsYXktZGVtby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7Ozs7O0FBS2xIOzs7R0FHRztBQWlLSCxNQUFNLE9BQU8sb0JBQW9CO0lBNk0vQixZQUNVLGNBQThCLEVBQzlCLFdBQXdCO1FBRHhCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXpMbEMsbUNBQW1DO1FBQzNCLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFcEIsdUNBQXVDO1FBQ3ZDLDBCQUFxQixHQUE2QjtZQUNoRCxTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRTtnQkFDWCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsUUFBUSxFQUFFLFFBQVE7YUFDbkI7WUFDRCxTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQztRQUVGLHlDQUF5QztRQUN6Qyx1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Q0YsQ0FBQztRQUVGLElBQUksQ0FBQyxxQkFBcUIsR0FBRztZQUMzQixHQUFHLElBQUksQ0FBQyxxQkFBcUI7WUFDN0IsYUFBYSxFQUFFO2dCQUNiLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWM7Z0JBQzVDLGFBQWEsRUFBRTtvQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87aUJBQ3BCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzsrR0ExVlUsb0JBQW9CO21HQUFwQixvQkFBb0IsNEVBbkpyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0dULGdwQkEvR0MsWUFBWSxpSkFDWixPQUFPLHlMQUNQLGNBQWMsK0VBQ2QsYUFBYSxzR0FDYixZQUFZLHNGQUNaLFNBQVMsb1BBQ1QsZ0JBQWdCLDJFQUNoQix5QkFBeUI7OzRGQXFKaEIsb0JBQW9CO2tCQWhLaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIseUJBQXlCO3FCQUMxQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzR1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQ2FyZCwgSW9uQ2FyZENvbnRlbnQsIElvbkNhcmRIZWFkZXIsIElvbkNhcmRUaXRsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5TWV0YWRhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2Rpc3BsYXkvdHlwZXMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9sYW5ndWFnZS1zZWxlY3Rvci90eXBlcyc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMYW5nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvbGFuZy1wcm92aWRlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBDb21wb25lbnRlIGRlIGRlbW9zdHJhY2nDs24gcGFyYSB2YWwtZGlzcGxheSBjb24gY29udGVuaWRvIHJlYWN0aXZvLlxuICogTXVlc3RyYSBkaWZlcmVudGVzIHBhdHJvbmVzIGRlIHVzbyB5IGNhc29zIGRlIGVqZW1wbG8uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kaXNwbGF5LWRlbW8nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbkNhcmQsXG4gICAgSW9uQ2FyZENvbnRlbnQsXG4gICAgSW9uQ2FyZEhlYWRlcixcbiAgICBJb25DYXJkVGl0bGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheS1kZW1vXCI+XG4gICAgICA8aW9uLWNhcmQ+XG4gICAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgICAgPGlvbi1jYXJkLXRpdGxlPnt7IGRlbW9UaXRsZSQgfCBhc3luYyB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgIDwhLS0gU2VsZWN0b3IgZGUgaWRpb21hIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYW5ndWFnZS1zZWxlY3Rvci1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDx2YWwtbGFuZ3VhZ2Utc2VsZWN0b3IgW3Byb3BzXT1cImxhbmd1YWdlU2VsZWN0b3JQcm9wc1wiIChsYW5ndWFnZUNoYW5nZSk9XCJvbkxhbmd1YWdlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvdmFsLWxhbmd1YWdlLXNlbGVjdG9yPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBFamVtcGxvcyBlc3TDoXRpY29zIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8aDM+e3sgc3RhdGljU2VjdGlvblRpdGxlJCB8IGFzeW5jIH19PC9oMz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGg0PkRpZmVyZW50ZXMgdGFtYcOxb3M6PC9oND5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJzbWFsbFN0YXRpY0Rpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cIm1lZGl1bVN0YXRpY0Rpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cImxhcmdlU3RhdGljRGlzcGxheVwiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieGxhcmdlU3RhdGljRGlzcGxheVwiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGg0PkRpZmVyZW50ZXMgY29sb3Jlczo8L2g0PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInByaW1hcnlEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJzZWNvbmRhcnlEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJzdWNjZXNzRGlzcGxheVwiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwid2FybmluZ0Rpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cImRhbmdlckRpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIEVqZW1wbG9zIHJlYWN0aXZvcyAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgPGgzPnt7IHJlYWN0aXZlU2VjdGlvblRpdGxlJCB8IGFzeW5jIH19PC9oMz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGg0Pnt7IHJlYWN0aXZlQ29udGVudFRpdGxlJCB8IGFzeW5jIH19PC9oND5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ3ZWxjb21lRGlzcGxheVwiPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwiZGVzY3JpcHRpb25EaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJzdGF0dXNEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1ncm91cFwiPlxuICAgICAgICAgICAgICA8aDQ+e3sgaW50ZXJwb2xhdGlvblRpdGxlJCB8IGFzeW5jIH19PC9oND5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ1c2VyV2VsY29tZURpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cImNvdW50ZXJEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1ncm91cFwiPlxuICAgICAgICAgICAgICA8aDQ+e3sgZmFsbGJhY2tUaXRsZSQgfCBhc3luYyB9fTwvaDQ+XG4gICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwibWlzc2luZ0tleURpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cIm5vRmFsbGJhY2tEaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBFamVtcGxvcyBtaXh0b3MgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxoMz57eyBtaXhlZFNlY3Rpb25UaXRsZSQgfCBhc3luYyB9fTwvaDM+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxoND57eyBtaXhlZENvbnRlbnRUaXRsZSQgfCBhc3luYyB9fTwvaDQ+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaXhlZC1leGFtcGxlc1wiPlxuICAgICAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwic3RhdGljTWl4ZWREaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInJlYWN0aXZlTWl4ZWREaXNwbGF5XCI+PC92YWwtZGlzcGxheT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gRWplbXBsb3MgZGluw6FtaWNvcyAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgPGgzPnt7IGR5bmFtaWNTZWN0aW9uVGl0bGUkIHwgYXN5bmMgfX08L2gzPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1ncm91cFwiPlxuICAgICAgICAgICAgICA8aDQ+e3sgZHluYW1pY0NvbnRlbnRUaXRsZSQgfCBhc3luYyB9fTwvaDQ+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJ1cGRhdGVDb3VudGVyKClcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICB7eyB1cGRhdGVCdXR0b25UZXh0JCB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJkeW5hbWljQ291bnRlckRpc3BsYXlcIj48L3ZhbC1kaXNwbGF5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIEFuw6FsaXNpcyBkZSBjb250ZW5pZG8gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxoMz57eyBhbmFseXNpc1RpdGxlJCB8IGFzeW5jIH19PC9oMz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmFseXNpcy1pbmZvXCI+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgY3VycmVudExhbmdMYWJlbCQgfCBhc3luYyB9fTo8L3N0cm9uZz4ge3sgY3VycmVudExhbmd1YWdlJCB8IGFzeW5jIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBhdmFpbGFibGVMYW5nc0xhYmVsJCB8IGFzeW5jIH19Ojwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIHt7IChhdmFpbGFibGVMYW5ndWFnZXMkIHwgYXN5bmMpPy5qb2luKCcsICcpIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8L2lvbi1jYXJkPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuZGlzcGxheS1kZW1vIHtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIH1cbiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvci1jb250YWluZXIge1xuICAgICAgICBtYXJnaW46IDE2cHggMDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXN0ZXAtNTApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAuZXhhbXBsZS1ncm91cCB7XG4gICAgICAgIG1hcmdpbjogMTZweCAwO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICB9XG4gICAgICAuZXhhbXBsZS1ncm91cCBoNCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuICAgICAgLm1peGVkLWV4YW1wbGVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuYW5hbHlzaXMtaW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1zdGVwLTUwKTtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgfVxuICAgICAgdmFsLWRpc3BsYXkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiA4cHggMDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5RGVtb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIE9ic2VydmFibGVzIHBhcmEgY29udGVuaWRvIHJlYWN0aXZvIGRlIGxhIHDDoWdpbmFcbiAgZGVtb1RpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBsYW5ndWFnZUxhYmVsJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBzdGF0aWNTZWN0aW9uVGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHJlYWN0aXZlU2VjdGlvblRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBtaXhlZFNlY3Rpb25UaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgZHluYW1pY1NlY3Rpb25UaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgYW5hbHlzaXNUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcmVhY3RpdmVDb250ZW50VGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGludGVycG9sYXRpb25UaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgZmFsbGJhY2tUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgbWl4ZWRDb250ZW50VGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGR5bmFtaWNDb250ZW50VGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHVwZGF0ZUJ1dHRvblRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGN1cnJlbnRMYW5nTGFiZWwkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGF2YWlsYWJsZUxhbmdzTGFiZWwkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgLy8gRXN0YWRvIGRlbCBpZGlvbWFcbiAgY3VycmVudExhbmd1YWdlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBhdmFpbGFibGVMYW5ndWFnZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICAvLyBDb250YWRvciBwYXJhIGVqZW1wbG9zIGRpbsOhbWljb3NcbiAgcHJpdmF0ZSBjb3VudGVyID0gMDtcblxuICAvLyBDb25maWd1cmFjacOzbiBkZWwgc2VsZWN0b3IgZGUgaWRpb21hXG4gIGxhbmd1YWdlU2VsZWN0b3JQcm9wczogTGFuZ3VhZ2VTZWxlY3Rvck1ldGFkYXRhID0ge1xuICAgIHNob3dMYWJlbDogdHJ1ZSxcbiAgICBsYWJlbENvbmZpZzoge1xuICAgICAgY2xhc3NOYW1lOiAnX2dsb2JhbCcsXG4gICAgICBrZXk6ICdsYW5ndWFnZScsXG4gICAgICBmYWxsYmFjazogJ0lkaW9tYScsXG4gICAgfSxcbiAgICBzaG93RmxhZ3M6IHRydWUsXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICB9O1xuXG4gIC8vIENvbmZpZ3VyYWNpb25lcyBkZSBlamVtcGxvIC0gRVNUw4FUSUNBU1xuICBzbWFsbFN0YXRpY0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gcGVxdWXDsW8gZXN0w6F0aWNvJyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIHNpemU6ICdzbWFsbCcsXG4gIH07XG5cbiAgbWVkaXVtU3RhdGljRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnQ6ICdUZXh0byBtZWRpYW5vIGVzdMOhdGljbycsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgfTtcblxuICBsYXJnZVN0YXRpY0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gZ3JhbmRlIGVzdMOhdGljbycsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBzaXplOiAnbGFyZ2UnLFxuICB9O1xuXG4gIHhsYXJnZVN0YXRpY0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gZXh0cmEgZ3JhbmRlIGVzdMOhdGljbycsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBzaXplOiAneGxhcmdlJyxcbiAgfTtcblxuICAvLyBFamVtcGxvcyBkZSBjb2xvcmVzIGVzdMOhdGljb3NcbiAgcHJpbWFyeURpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gcHJpbWFyaW8nLFxuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gIH07XG5cbiAgc2Vjb25kYXJ5RGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnQ6ICdUZXh0byBzZWN1bmRhcmlvJyxcbiAgICBjb2xvcjogJ3NlY29uZGFyeScsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gIH07XG5cbiAgc3VjY2Vzc0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gZGUgw6l4aXRvJyxcbiAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIHdhcm5pbmdEaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudDogJ1RleHRvIGRlIGFkdmVydGVuY2lhJyxcbiAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIGRhbmdlckRpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVGV4dG8gZGUgcGVsaWdybycsXG4gICAgY29sb3I6ICdkYW5nZXInLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIC8vIENvbmZpZ3VyYWNpb25lcyBkZSBlamVtcGxvIC0gUkVBQ1RJVkFTXG4gIHdlbGNvbWVEaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudENvbmZpZzoge1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnd2VsY29tZVRpdGxlJyxcbiAgICAgIGZhbGxiYWNrOiAnQmllbnZlbmlkbyBhIGxhIGFwbGljYWNpw7NuJyxcbiAgICB9LFxuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgc2l6ZTogJ3hsYXJnZScsXG4gIH07XG5cbiAgZGVzY3JpcHRpb25EaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudENvbmZpZzoge1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnd2VsY29tZURlc2NyaXB0aW9uJyxcbiAgICAgIGZhbGxiYWNrOiAnRXN0YSBlcyB1bmEgZGVzY3JpcGNpw7NuIGRlIGVqZW1wbG8nLFxuICAgIH0sXG4gICAgY29sb3I6ICdtZWRpdW0nLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIHN0YXR1c0Rpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50Q29uZmlnOiB7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdzdGF0dXNPbmxpbmUnLFxuICAgICAgZmFsbGJhY2s6ICdFbiBsw61uZWEnLFxuICAgIH0sXG4gICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICBzaXplOiAnc21hbGwnLFxuICB9O1xuXG4gIC8vIEVqZW1wbG9zIGNvbiBpbnRlcnBvbGFjacOzblxuICB1c2VyV2VsY29tZURpc3BsYXk6IERpc3BsYXlNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50Q29uZmlnOiB7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICd3ZWxjb21lVXNlcicsXG4gICAgICBmYWxsYmFjazogJ0hvbGEsIHt7dXNlck5hbWV9fSEnLFxuICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICB1c2VyTmFtZTogJ0p1YW4gUMOpcmV6JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb2xvcjogJ3RlcnRpYXJ5JyxcbiAgICBzaXplOiAnbGFyZ2UnLFxuICB9O1xuXG4gIGNvdW50ZXJEaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudENvbmZpZzoge1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnY291bnRlckN1cnJlbnQnLFxuICAgICAgZmFsbGJhY2s6ICdDb250YWRvcjoge3tjb3VudH19JyxcbiAgICAgIGludGVycG9sYXRpb246IHtcbiAgICAgICAgY291bnQ6IHRoaXMuY291bnRlcixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb2xvcjogJ3NlY29uZGFyeScsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gIH07XG5cbiAgLy8gRWplbXBsb3MgY29uIGNsYXZlcyBmYWx0YW50ZXMgcGFyYSBkZW1vc3RyYXIgZmFsbGJhY2tzXG4gIG1pc3NpbmdLZXlEaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudENvbmZpZzoge1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAndGhpcy5rZXkuZG9lcy5ub3QuZXhpc3QnLFxuICAgICAgZmFsbGJhY2s6ICdFc3RhIGNsYXZlIG5vIGV4aXN0ZSwgcGVybyB0ZW5nbyBmYWxsYmFjaycsXG4gICAgfSxcbiAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICB9O1xuXG4gIG5vRmFsbGJhY2tEaXNwbGF5OiBEaXNwbGF5TWV0YWRhdGEgPSB7XG4gICAgY29udGVudENvbmZpZzoge1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnYW5vdGhlci5taXNzaW5nLmtleScsXG4gICAgICAvLyBTaW4gZmFsbGJhY2sgLSB1c2Fyw6EgbGEgY2xhdmUgY29tbyBmYWxsYmFja1xuICAgIH0sXG4gICAgY29sb3I6ICdkYW5nZXInLFxuICAgIHNpemU6ICdzbWFsbCcsXG4gIH07XG5cbiAgLy8gRWplbXBsb3MgbWl4dG9zXG4gIHN0YXRpY01peGVkRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnQ6ICdFc3RlIGVzIGNvbnRlbmlkbyBlc3TDoXRpY28gKG5vIGNhbWJpYSBjb24gZWwgaWRpb21hKScsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgfTtcblxuICByZWFjdGl2ZU1peGVkRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnRDb25maWc6IHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ21peGVkUmVhY3RpdmUnLFxuICAgICAgZmFsbGJhY2s6ICdFc3RlIGNvbnRlbmlkbyBzw60gY2FtYmlhIGNvbiBlbCBpZGlvbWEnLFxuICAgIH0sXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgfTtcblxuICAvLyBFamVtcGxvIGRpbsOhbWljbyBxdWUgc2UgYWN0dWFsaXphXG4gIGR5bmFtaWNDb3VudGVyRGlzcGxheTogRGlzcGxheU1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnRDb25maWc6IHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ2R5bmFtaWNDb250ZW50JyxcbiAgICAgIGZhbGxiYWNrOiAnQ2xpY3M6IHt7Y291bnR9fScsXG4gICAgICBpbnRlcnBvbGF0aW9uOiB7XG4gICAgICAgIGNvdW50OiB0aGlzLmNvdW50ZXIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29sb3I6ICd0ZXJ0aWFyeScsXG4gICAgc2l6ZTogJ2xhcmdlJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGxhbmdTZXJ2aWNlOiBMYW5nU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplQ29udGVudCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxhbmd1YWdlU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbnRlbnQoKSB7XG4gICAgLy8gQ29udGVuaWRvIGRlIGxhIHDDoWdpbmFcbiAgICB0aGlzLmRlbW9UaXRsZSQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ3BhZ2VUaXRsZScsXG4gICAgICBmYWxsYmFjazogJ0RlbW9zdHJhY2nDs24gZGVsIENvbXBvbmVudGUgRGlzcGxheScsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxhbmd1YWdlTGFiZWwkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdfZ2xvYmFsJyxcbiAgICAgIGtleTogJ2xhbmd1YWdlJyxcbiAgICAgIGZhbGxiYWNrOiAnSWRpb21hJyxcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhdGljU2VjdGlvblRpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc2VjdGlvbnNTdGF0aWMnLFxuICAgICAgZmFsbGJhY2s6ICdFamVtcGxvcyBFc3TDoXRpY29zJyxcbiAgICB9KTtcblxuICAgIHRoaXMucmVhY3RpdmVTZWN0aW9uVGl0bGUkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdzZWN0aW9uc1JlYWN0aXZlJyxcbiAgICAgIGZhbGxiYWNrOiAnRWplbXBsb3MgUmVhY3Rpdm9zJyxcbiAgICB9KTtcblxuICAgIHRoaXMubWl4ZWRTZWN0aW9uVGl0bGUkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdzZWN0aW9uc01peGVkJyxcbiAgICAgIGZhbGxiYWNrOiAnRWplbXBsb3MgTWl4dG9zJyxcbiAgICB9KTtcblxuICAgIHRoaXMuZHluYW1pY1NlY3Rpb25UaXRsZSQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ3NlY3Rpb25zRHluYW1pYycsXG4gICAgICBmYWxsYmFjazogJ0VqZW1wbG9zIERpbsOhbWljb3MnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hbmFseXNpc1RpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc2VjdGlvbnNBbmFseXNpcycsXG4gICAgICBmYWxsYmFjazogJ0Fuw6FsaXNpcyBkZSBJZGlvbWEnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWFjdGl2ZUNvbnRlbnRUaXRsZSQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ3N1YnNlY3Rpb25zUmVhY3RpdmVDb250ZW50JyxcbiAgICAgIGZhbGxiYWNrOiAnQ29udGVuaWRvIHJlYWN0aXZvIGLDoXNpY286JyxcbiAgICB9KTtcblxuICAgIHRoaXMuaW50ZXJwb2xhdGlvblRpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc3Vic2VjdGlvbnNJbnRlcnBvbGF0aW9uJyxcbiAgICAgIGZhbGxiYWNrOiAnQ29udGVuaWRvIGNvbiBpbnRlcnBvbGFjacOzbjonLFxuICAgIH0pO1xuXG4gICAgdGhpcy5mYWxsYmFja1RpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc3Vic2VjdGlvbnNGYWxsYmFjaycsXG4gICAgICBmYWxsYmFjazogJ0RlbW9zdHJhY2nDs24gZGUgZmFsbGJhY2tzOicsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1peGVkQ29udGVudFRpdGxlJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnc3Vic2VjdGlvbnNNaXhlZENvbnRlbnQnLFxuICAgICAgZmFsbGJhY2s6ICdDb250ZW5pZG8gZXN0w6F0aWNvIHZzIHJlYWN0aXZvOicsXG4gICAgfSk7XG5cbiAgICB0aGlzLmR5bmFtaWNDb250ZW50VGl0bGUkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdzdWJzZWN0aW9uc0R5bmFtaWNDb250ZW50JyxcbiAgICAgIGZhbGxiYWNrOiAnQ29udGVuaWRvIHF1ZSBzZSBhY3R1YWxpemEgZGluw6FtaWNhbWVudGU6JyxcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlQnV0dG9uVGV4dCQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgIGNsYXNzTmFtZTogJ2Rpc3BsYXlEZW1vJyxcbiAgICAgIGtleTogJ2J1dHRvbnNVcGRhdGVDb3VudGVyJyxcbiAgICAgIGZhbGxiYWNrOiAnQWN0dWFsaXphciBDb250YWRvcicsXG4gICAgfSk7XG5cbiAgICB0aGlzLmN1cnJlbnRMYW5nTGFiZWwkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICBjbGFzc05hbWU6ICdkaXNwbGF5RGVtbycsXG4gICAgICBrZXk6ICdhbmFseXNpc0N1cnJlbnRMYW5ndWFnZScsXG4gICAgICBmYWxsYmFjazogJ0lkaW9tYSBhY3R1YWwnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hdmFpbGFibGVMYW5nc0xhYmVsJCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgY2xhc3NOYW1lOiAnZGlzcGxheURlbW8nLFxuICAgICAga2V5OiAnYW5hbHlzaXNBdmFpbGFibGVMYW5ndWFnZXMnLFxuICAgICAgZmFsbGJhY2s6ICdJZGlvbWFzIGRpc3BvbmlibGVzJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUxhbmd1YWdlU3RhdGUoKSB7XG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UkID0gdGhpcy5sYW5nU2VydmljZS5jdXJyZW50TGFuZyQ7XG4gICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMkID0gdGhpcy5sYW5nU2VydmljZS5jdXJyZW50TGFuZyQucGlwZShtYXAoKCkgPT4gdGhpcy5sYW5nU2VydmljZS5hdmFpbGFibGVMYW5ncykpO1xuICB9XG5cbiAgY2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIHRoaXMubGFuZ1NlcnZpY2Uuc2V0TGFuZyhsYW5ndWFnZSk7XG4gIH1cblxuICBvbkxhbmd1YWdlQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZygnTGFuZ3VhZ2UgY2hhbmdlZCB0bzonLCBsYW5ndWFnZSk7XG4gICAgLy8gRWwgbGFuZ3VhZ2Ugc2VsZWN0b3IgeWEgbWFuZWphIGVsIGNhbWJpbyBkZSBpZGlvbWEgaW50ZXJuYW1lbnRlXG4gICAgLy8gcGVybyBwb2RlbW9zIGFncmVnYXIgbMOzZ2ljYSBhZGljaW9uYWwgYXF1w60gc2kgZXMgbmVjZXNhcmlvXG4gIH1cblxuICB1cGRhdGVDb3VudGVyKCkge1xuICAgIHRoaXMuY291bnRlcisrO1xuXG4gICAgLy8gQWN0dWFsaXphciBsb3MgZGlzcGxheXMgcXVlIHVzYW4gZWwgY29udGFkb3JcbiAgICB0aGlzLmNvdW50ZXJEaXNwbGF5ID0ge1xuICAgICAgLi4udGhpcy5jb3VudGVyRGlzcGxheSxcbiAgICAgIGNvbnRlbnRDb25maWc6IHtcbiAgICAgICAgLi4udGhpcy5jb3VudGVyRGlzcGxheS5jb250ZW50Q29uZmlnISxcbiAgICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICAgIGNvdW50OiB0aGlzLmNvdW50ZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLmR5bmFtaWNDb3VudGVyRGlzcGxheSA9IHtcbiAgICAgIC4uLnRoaXMuZHluYW1pY0NvdW50ZXJEaXNwbGF5LFxuICAgICAgY29udGVudENvbmZpZzoge1xuICAgICAgICAuLi50aGlzLmR5bmFtaWNDb3VudGVyRGlzcGxheS5jb250ZW50Q29uZmlnISxcbiAgICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICAgIGNvdW50OiB0aGlzLmNvdW50ZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|