valtech-components 4.0.1039 → 4.0.1040
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/select-input/select-input.component.mjs +5 -3
- package/esm2022/lib/services/firebase/storage.service.mjs +49 -1
- package/esm2022/lib/services/firebase/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +306 -257
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/phone-display/phone-display.component.d.ts +1 -1
- package/lib/services/firebase/storage.service.d.ts +11 -1
- package/lib/services/firebase/types.d.ts +34 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -120,6 +120,7 @@ export class SearchSelectorComponent {
|
|
|
120
120
|
[interfaceOptions]="customPopoverOptions"
|
|
121
121
|
[interface]="resolvedProps.selectInterface || 'popover'"
|
|
122
122
|
[placeholder]="resolvedProps.placeholder"
|
|
123
|
+
toggleIcon="chevron-down-outline"
|
|
123
124
|
[cancelText]="cancelText"
|
|
124
125
|
[okText]="okText"
|
|
125
126
|
>
|
|
@@ -145,7 +146,7 @@ export class SearchSelectorComponent {
|
|
|
145
146
|
</ion-select-option>
|
|
146
147
|
}
|
|
147
148
|
</ion-select>
|
|
148
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-select{--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;min-height:auto;border:.0625rem solid var(--ion-color-medium);border-radius:1.5rem;margin-top:.375rem;padding-top:.5rem!important;padding-bottom:.5rem!important;padding-inline-start:1rem!important;padding-inline-end:.
|
|
149
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-select{--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;min-height:auto;border:.0625rem solid var(--ion-color-medium);border-radius:1.5rem;margin-top:.375rem;padding-top:.5rem!important;padding-bottom:.5rem!important;padding-inline-start:1rem!important;padding-inline-end:.875rem!important}.select-option-content{display:inline-flex;align-items:center;gap:.625rem}.select-option-icon{flex:0 0 auto;font-size:1.125rem}.select-option-icon-mask{width:1.125rem;height:1.125rem;background:currentColor;mask:var(--val-select-option-icon-src) center/contain no-repeat;-webkit-mask:var(--val-select-option-icon-src) center/contain no-repeat}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }] }); }
|
|
149
150
|
}
|
|
150
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchSelectorComponent, decorators: [{
|
|
151
152
|
type: Component,
|
|
@@ -156,6 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
156
157
|
[interfaceOptions]="customPopoverOptions"
|
|
157
158
|
[interface]="resolvedProps.selectInterface || 'popover'"
|
|
158
159
|
[placeholder]="resolvedProps.placeholder"
|
|
160
|
+
toggleIcon="chevron-down-outline"
|
|
159
161
|
[cancelText]="cancelText"
|
|
160
162
|
[okText]="okText"
|
|
161
163
|
>
|
|
@@ -181,10 +183,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
181
183
|
</ion-select-option>
|
|
182
184
|
}
|
|
183
185
|
</ion-select>
|
|
184
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-select{--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;min-height:auto;border:.0625rem solid var(--ion-color-medium);border-radius:1.5rem;margin-top:.375rem;padding-top:.5rem!important;padding-bottom:.5rem!important;padding-inline-start:1rem!important;padding-inline-end:.
|
|
186
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-select{--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;min-height:auto;border:.0625rem solid var(--ion-color-medium);border-radius:1.5rem;margin-top:.375rem;padding-top:.5rem!important;padding-bottom:.5rem!important;padding-inline-start:1rem!important;padding-inline-end:.875rem!important}.select-option-content{display:inline-flex;align-items:center;gap:.625rem}.select-option-icon{flex:0 0 auto;font-size:1.125rem}.select-option-icon-mask{width:1.125rem;height:1.125rem;background:currentColor;mask:var(--val-select-option-icon-src) center/contain no-repeat;-webkit-mask:var(--val-select-option-icon-src) center/contain no-repeat}\n"] }]
|
|
185
187
|
}], propDecorators: { preset: [{
|
|
186
188
|
type: Input
|
|
187
189
|
}], props: [{
|
|
188
190
|
type: Input
|
|
189
191
|
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sYUFBYSxDQUFDOzs7QUF5QzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBaEVwQztRQWlFVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFXeEM7Ozs7Ozs7Ozs7V0FVRztRQUNNLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBRTVDOztXQUVHO1FBQ0gsa0JBQWEsR0FBa0IsRUFBbUIsQ0FBQztLQXlFcEQ7SUFsRUMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxR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QUFlLENBQUMsWUFDekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NUOzhCQXVDUSxNQUFNO3NCQUFkLEtBQUs7Z0JBYUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2Zvcm0tZGVmYXVsdHMnO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uU2VsZWN0LCBJb25TZWxlY3RPcHRpb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZXMsIElucHV0TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zZWxlY3QtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uSWNvbiwgSW9uU2VsZWN0LCBJb25TZWxlY3RPcHRpb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tc2VsZWN0XG4gICAgICBbZm9ybUNvbnRyb2xdPVwicmVzb2x2ZWRQcm9wcy5jb250cm9sXCJcbiAgICAgIFtsYWJlbF09XCJyZXNvbHZlZFByb3BzLmxhYmVsXCJcbiAgICAgIFtpbnRlcmZhY2VPcHRpb25zXT1cImN1c3RvbVBvcG92ZXJPcHRpb25zXCJcbiAgICAgIFtpbnRlcmZhY2VdPVwicmVzb2x2ZWRQcm9wcy5zZWxlY3RJbnRlcmZhY2UgfHwgJ3BvcG92ZXInXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJyZXNvbHZlZFByb3BzLnBsYWNlaG9sZGVyXCJcbiAgICAgIFtjYW5jZWxUZXh0XT1cImNhbmNlbFRleHRcIlxuICAgICAgW29rVGV4dF09XCJva1RleHRcIlxuICAgID5cbiAgICAgIEBmb3IgKG8gb2YgcmVzb2x2ZWRQcm9wcy5vcHRpb25zOyB0cmFjayBvLmlkKSB7XG4gICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwiby5pZFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LW9wdGlvbi1jb250ZW50XCI+XG4gICAgICAgICAgICBAaWYgKG8uaWNvbj8uc3JjKSB7XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3Qtb3B0aW9uLWljb24gc2VsZWN0LW9wdGlvbi1pY29uLW1hc2tcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXZhbC1zZWxlY3Qtb3B0aW9uLWljb24tc3JjXT1cImljb25NYXNrKG8uaWNvbi5zcmMpXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoby5pY29uPy5uYW1lKSB7XG4gICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LW9wdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJvLmljb24/Lm5hbWVcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJvLmljb24/LmNvbG9yXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4+e3sgby5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L2lvbi1zZWxlY3Q+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXNlbGVjdC1pbnB1dFxuICpcbiAqIEEgc2VsZWN0L2Ryb3Bkb3duIGlucHV0IGludGVncmF0ZWQgd2l0aCBBbmd1bGFyIGZvcm1zLCB1c2luZyBJb25pYydzIHNlbGVjdCBjb21wb25lbnQuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldCAocmVjb21tZW5kZWQpOlxuICogPHZhbC1zZWxlY3QtaW5wdXQgcHJlc2V0PVwiZm9ybS1maWVsZFwiIFtwcm9wc109XCJ7XG4gKiAgIGNvbnRyb2w6IG15Q29udHJvbCxcbiAqICAgbGFiZWw6ICdTZWxlY2Npb25hcicsXG4gKiAgIG9wdGlvbnM6IFt7IGlkOiAnMScsIG5hbWU6ICdPcGNpw7NuIDEnIH1dXG4gKiB9XCI+PC92YWwtc2VsZWN0LWlucHV0PlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYyAoYmFja3dhcmRzIGNvbXBhdGlibGUpOlxuICogPHZhbC1zZWxlY3QtaW5wdXQgW3Byb3BzXT1cIntcbiAqICAgY29udHJvbDogbXlDb250cm9sLFxuICogICBsYWJlbDogJ1NlbGVjY2lvbmFyJyxcbiAqICAgb3B0aW9uczogW3sgaWQ6ICcxJywgbmFtZTogJ09wY2nDs24gMScgfV0sXG4gKiAgIGNhbmNlbFRleHQ6ICdDYW5jZWxhcicsXG4gKiAgIG9rVGV4dDogJ0FjZXB0YXInXG4gKiB9XCI+PC92YWwtc2VsZWN0LWlucHV0PlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5IChlLmcuLCAnZm9ybS1maWVsZCcpXG4gKiBAaW5wdXQgcHJvcHM6IElucHV0TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2VsZWN0IGlucHV0IChvdmVycmlkZXMgcHJlc2V0IHZhbHVlcylcbiAqL1xuZXhwb3J0IGNsYXNzIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFByZXNldCBuYW1lIHRvIGFwcGx5LiBQcmVzZXRzIGRlZmluZSByZXVzYWJsZSBpbnB1dCBjb25maWd1cmF0aW9uc1xuICAgKiB0aGF0IGNhbiBiZSByZWdpc3RlcmVkIGF0IGFwcCBsZXZlbCB2aWEgcHJvdmlkZVZhbHRlY2hQcmVzZXRzKCkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtc2VsZWN0LWlucHV0IHByZXNldD1cImZvcm0tZmllbGRcIiBbcHJvcHNdPVwieyBjb250cm9sOiBjdHJsLCBvcHRpb25zOiBvcHRzIH1cIj48L3ZhbC1zZWxlY3QtaW5wdXQ+XG4gICAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKiBAdHlwZSB7SW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHByb3BlcnR5IGxhYmVsIC0gVGhlIGxhYmVsIGZvciB0aGUgc2VsZWN0LlxuICAgKiBAcHJvcGVydHkgb3B0aW9ucyAtIFRoZSBhdmFpbGFibGUgb3B0aW9ucyBmb3IgdGhlIHNlbGVjdC5cbiAgICogQHByb3BlcnR5IHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRleHQuXG4gICAqIEBwcm9wZXJ0eSBtb2RhbEhlYWRlciAtIEN1c3RvbSBoZWFkZXIgdGV4dCBmb3IgdGhlIG1vZGFsIChvcHRpb25hbCwgdXNlcyBsYWJlbCBpZiBub3QgcHJvdmlkZWQpLlxuICAgKiBAcHJvcGVydHkgY2FuY2VsVGV4dCAtIEN1c3RvbSBjYW5jZWwgYnV0dG9uIHRleHQgKGRlZmF1bHQ6ICdDYW5jZWxhcicpLlxuICAgKiBAcHJvcGVydHkgb2tUZXh0IC0gQ3VzdG9tIE9LIGJ1dHRvbiB0ZXh0IChkZWZhdWx0OiAnQWNlcHRhcicpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8SW5wdXRNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IElucHV0TWV0YWRhdGEgPSB7fSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gIGN1c3RvbU1vZGFsT3B0aW9uczogeyBoZWFkZXI6IHN0cmluZzsgYnJlYWtwb2ludHM6IG51bWJlcltdOyBpbml0aWFsQnJlYWtwb2ludDogbnVtYmVyIH07XG4gIGN1c3RvbVBvcG92ZXJPcHRpb25zOiB7IGNzc0NsYXNzOiBzdHJpbmcgfTtcbiAgY2FuY2VsVGV4dDogc3RyaW5nO1xuICBva1RleHQ6IHN0cmluZztcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgcHJlc2V0IGNvbmZpZ3VyYXRpb24gd2l0aCBleHBsaWNpdCBwcm9wcy5cbiAgICogRXhwbGljaXQgcHJvcHMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgcHJlc2V0IHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXQgPyAodGhpcy5wcmVzZXRzLmdldCgnc2VsZWN0SW5wdXQnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxJbnB1dE1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc29sdmVkUHJvcHM/LndpdGhEZWZhdWx0IHx8IHRoaXMucmVzb2x2ZWRQcm9wcz8udmFsdWUpIHtcbiAgICAgIGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sKHRoaXMucmVzb2x2ZWRQcm9wcyk7XG4gICAgfVxuXG4gICAgLy8gU2V0IG1vZGFsIGhlYWRlciBmcm9tIHByb3BzIG9yIHVzZSBsYWJlbCBhcyBmYWxsYmFjaywgdGhlbiBpMThuIGRlZmF1bHRcbiAgICBjb25zdCBoZWFkZXJUZXh0ID0gdGhpcy5yZXNvbHZlZFByb3BzLm1vZGFsSGVhZGVyIHx8IHRoaXMucmVzb2x2ZWRQcm9wcy5sYWJlbCB8fCB0aGlzLmkxOG4udCgnc2VsZWN0T3B0aW9uJyk7XG5cbiAgICB0aGlzLmN1c3RvbU1vZGFsT3B0aW9ucyA9IHtcbiAgICAgIGhlYWRlcjogaGVhZGVyVGV4dCxcbiAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC42XSxcbiAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjYsXG4gICAgfTtcbiAgICB0aGlzLmN1c3RvbVBvcG92ZXJPcHRpb25zID0geyBjc3NDbGFzczogJ3ZhbC1zZWxlY3QtcG9wb3ZlcicgfTtcblxuICAgIC8vIFNldCBidXR0b24gdGV4dHMgZnJvbSBwcm9wcyBvciB1c2UgaTE4biBkZWZhdWx0cy5cbiAgICAvLyBGYWxsYmFjayBjaGFpbjogbmFtZXNwYWNlLWxlc3MgaTE4biDihpIgJ0NvbW1vbicgbmFtZXNwYWNlIOKGkiBoYXJkY29kZWQuXG4gICAgLy8gRWwgbmFtZXNwYWNlLWxlc3MgYnVzY2EgZW4gX2dsb2JhbDsgc2kgbm8gZXhpc3RlIChjYXNvIHR5cGljYWwgYXBwKSxcbiAgICAvLyBwcm9iYW1vcyBlbiAnQ29tbW9uJyBxdWUgbGEgbWF5b3LDrWEgZGUgYXBwcyB0aWVuZW4gcG9ibGFkby5cbiAgICB0aGlzLmNhbmNlbFRleHQgPSB0aGlzLnJlc29sdmVkUHJvcHMuY2FuY2VsVGV4dCB8fCB0aGlzLnJlc29sdmVJMThuKCdjYW5jZWwnLCAnQ2FuY2VsYXInKTtcbiAgICB0aGlzLm9rVGV4dCA9IHRoaXMucmVzb2x2ZWRQcm9wcy5va1RleHQgfHwgdGhpcy5yZXNvbHZlSTE4bignb2snLCAnT0snKTtcbiAgfVxuXG4gIGljb25NYXNrKHNyYzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHVybChcIiR7c3JjfVwiKWA7XG4gIH1cblxuICAvKipcbiAgICogQnVzY2EgdW4ga2V5IGVuIGBfZ2xvYmFsYCBwcmltZXJvLCBsdWVnbyBlbiBgQ29tbW9uYCwgZmluYWxtZW50ZSBjYWUgYWxcbiAgICogZGVmYXVsdCBoYXJkY29kZWQuIMOadGlsIHBhcmEgdGV4dG9zIGNyb3NzLWN1dHRpbmcgKGNhbmNlbC9vay9jbG9zZS9ldGMuKVxuICAgKiBzaW4gb2JsaWdhciBhIGNhZGEgYXBwIGEgZHVwbGljYXJsb3MgZW4gY2FkYSBuYW1lc3BhY2UuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVJMThuKGtleTogc3RyaW5nLCBmYWxsYmFjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cnlHbG9iYWwgPSB0aGlzLmkxOG4udChrZXkpO1xuICAgIGlmICh0cnlHbG9iYWwgJiYgIXRyeUdsb2JhbC5zdGFydHNXaXRoKCdbJykpIHJldHVybiB0cnlHbG9iYWw7XG4gICAgY29uc3QgdHJ5Q29tbW9uID0gdGhpcy5pMThuLnQoa2V5LCAnQ29tbW9uJyk7XG4gICAgaWYgKHRyeUNvbW1vbiAmJiAhdHJ5Q29tbW9uLnN0YXJ0c1dpdGgoJ1snKSkgcmV0dXJuIHRyeUNvbW1vbjtcbiAgICByZXR1cm4gZmFsbGJhY2s7XG4gIH1cbn1cbiJdfQ==
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sYUFBYSxDQUFDOzs7QUEwQzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBakVwQztRQWtFVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFXeEM7Ozs7Ozs7Ozs7V0FVRztRQUNNLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBRTVDOztXQUVHO1FBQ0gsa0JBQWEsR0FBa0IsRUFBbUIsQ0FBQztLQXlFcEQ7SUFsRUMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxR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ZUFBZSxDQUFDLFlBQ3pEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1Q7OEJBdUNRLE1BQU07c0JBQWQsS0FBSztnQkFhRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZm9ybS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBJb25JY29uLCBJb25TZWxlY3QsIElvblNlbGVjdE9wdGlvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcywgSW5wdXRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNlbGVjdC1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBJb25JY29uLCBJb25TZWxlY3QsIElvblNlbGVjdE9wdGlvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1zZWxlY3RcbiAgICAgIFtmb3JtQ29udHJvbF09XCJyZXNvbHZlZFByb3BzLmNvbnRyb2xcIlxuICAgICAgW2xhYmVsXT1cInJlc29sdmVkUHJvcHMubGFiZWxcIlxuICAgICAgW2ludGVyZmFjZU9wdGlvbnNdPVwiY3VzdG9tUG9wb3Zlck9wdGlvbnNcIlxuICAgICAgW2ludGVyZmFjZV09XCJyZXNvbHZlZFByb3BzLnNlbGVjdEludGVyZmFjZSB8fCAncG9wb3ZlcidcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUHJvcHMucGxhY2Vob2xkZXJcIlxuICAgICAgdG9nZ2xlSWNvbj1cImNoZXZyb24tZG93bi1vdXRsaW5lXCJcbiAgICAgIFtjYW5jZWxUZXh0XT1cImNhbmNlbFRleHRcIlxuICAgICAgW29rVGV4dF09XCJva1RleHRcIlxuICAgID5cbiAgICAgIEBmb3IgKG8gb2YgcmVzb2x2ZWRQcm9wcy5vcHRpb25zOyB0cmFjayBvLmlkKSB7XG4gICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwiby5pZFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LW9wdGlvbi1jb250ZW50XCI+XG4gICAgICAgICAgICBAaWYgKG8uaWNvbj8uc3JjKSB7XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3Qtb3B0aW9uLWljb24gc2VsZWN0LW9wdGlvbi1pY29uLW1hc2tcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXZhbC1zZWxlY3Qtb3B0aW9uLWljb24tc3JjXT1cImljb25NYXNrKG8uaWNvbi5zcmMpXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoby5pY29uPy5uYW1lKSB7XG4gICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LW9wdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJvLmljb24/Lm5hbWVcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJvLmljb24/LmNvbG9yXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4+e3sgby5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L2lvbi1zZWxlY3Q+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXNlbGVjdC1pbnB1dFxuICpcbiAqIEEgc2VsZWN0L2Ryb3Bkb3duIGlucHV0IGludGVncmF0ZWQgd2l0aCBBbmd1bGFyIGZvcm1zLCB1c2luZyBJb25pYydzIHNlbGVjdCBjb21wb25lbnQuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldCAocmVjb21tZW5kZWQpOlxuICogPHZhbC1zZWxlY3QtaW5wdXQgcHJlc2V0PVwiZm9ybS1maWVsZFwiIFtwcm9wc109XCJ7XG4gKiAgIGNvbnRyb2w6IG15Q29udHJvbCxcbiAqICAgbGFiZWw6ICdTZWxlY2Npb25hcicsXG4gKiAgIG9wdGlvbnM6IFt7IGlkOiAnMScsIG5hbWU6ICdPcGNpw7NuIDEnIH1dXG4gKiB9XCI+PC92YWwtc2VsZWN0LWlucHV0PlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYyAoYmFja3dhcmRzIGNvbXBhdGlibGUpOlxuICogPHZhbC1zZWxlY3QtaW5wdXQgW3Byb3BzXT1cIntcbiAqICAgY29udHJvbDogbXlDb250cm9sLFxuICogICBsYWJlbDogJ1NlbGVjY2lvbmFyJyxcbiAqICAgb3B0aW9uczogW3sgaWQ6ICcxJywgbmFtZTogJ09wY2nDs24gMScgfV0sXG4gKiAgIGNhbmNlbFRleHQ6ICdDYW5jZWxhcicsXG4gKiAgIG9rVGV4dDogJ0FjZXB0YXInXG4gKiB9XCI+PC92YWwtc2VsZWN0LWlucHV0PlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5IChlLmcuLCAnZm9ybS1maWVsZCcpXG4gKiBAaW5wdXQgcHJvcHM6IElucHV0TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2VsZWN0IGlucHV0IChvdmVycmlkZXMgcHJlc2V0IHZhbHVlcylcbiAqL1xuZXhwb3J0IGNsYXNzIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFByZXNldCBuYW1lIHRvIGFwcGx5LiBQcmVzZXRzIGRlZmluZSByZXVzYWJsZSBpbnB1dCBjb25maWd1cmF0aW9uc1xuICAgKiB0aGF0IGNhbiBiZSByZWdpc3RlcmVkIGF0IGFwcCBsZXZlbCB2aWEgcHJvdmlkZVZhbHRlY2hQcmVzZXRzKCkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtc2VsZWN0LWlucHV0IHByZXNldD1cImZvcm0tZmllbGRcIiBbcHJvcHNdPVwieyBjb250cm9sOiBjdHJsLCBvcHRpb25zOiBvcHRzIH1cIj48L3ZhbC1zZWxlY3QtaW5wdXQ+XG4gICAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKiBAdHlwZSB7SW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHByb3BlcnR5IGxhYmVsIC0gVGhlIGxhYmVsIGZvciB0aGUgc2VsZWN0LlxuICAgKiBAcHJvcGVydHkgb3B0aW9ucyAtIFRoZSBhdmFpbGFibGUgb3B0aW9ucyBmb3IgdGhlIHNlbGVjdC5cbiAgICogQHByb3BlcnR5IHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRleHQuXG4gICAqIEBwcm9wZXJ0eSBtb2RhbEhlYWRlciAtIEN1c3RvbSBoZWFkZXIgdGV4dCBmb3IgdGhlIG1vZGFsIChvcHRpb25hbCwgdXNlcyBsYWJlbCBpZiBub3QgcHJvdmlkZWQpLlxuICAgKiBAcHJvcGVydHkgY2FuY2VsVGV4dCAtIEN1c3RvbSBjYW5jZWwgYnV0dG9uIHRleHQgKGRlZmF1bHQ6ICdDYW5jZWxhcicpLlxuICAgKiBAcHJvcGVydHkgb2tUZXh0IC0gQ3VzdG9tIE9LIGJ1dHRvbiB0ZXh0IChkZWZhdWx0OiAnQWNlcHRhcicpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8SW5wdXRNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IElucHV0TWV0YWRhdGEgPSB7fSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gIGN1c3RvbU1vZGFsT3B0aW9uczogeyBoZWFkZXI6IHN0cmluZzsgYnJlYWtwb2ludHM6IG51bWJlcltdOyBpbml0aWFsQnJlYWtwb2ludDogbnVtYmVyIH07XG4gIGN1c3RvbVBvcG92ZXJPcHRpb25zOiB7IGNzc0NsYXNzOiBzdHJpbmcgfTtcbiAgY2FuY2VsVGV4dDogc3RyaW5nO1xuICBva1RleHQ6IHN0cmluZztcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgcHJlc2V0IGNvbmZpZ3VyYXRpb24gd2l0aCBleHBsaWNpdCBwcm9wcy5cbiAgICogRXhwbGljaXQgcHJvcHMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgcHJlc2V0IHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXQgPyAodGhpcy5wcmVzZXRzLmdldCgnc2VsZWN0SW5wdXQnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxJbnB1dE1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc29sdmVkUHJvcHM/LndpdGhEZWZhdWx0IHx8IHRoaXMucmVzb2x2ZWRQcm9wcz8udmFsdWUpIHtcbiAgICAgIGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sKHRoaXMucmVzb2x2ZWRQcm9wcyk7XG4gICAgfVxuXG4gICAgLy8gU2V0IG1vZGFsIGhlYWRlciBmcm9tIHByb3BzIG9yIHVzZSBsYWJlbCBhcyBmYWxsYmFjaywgdGhlbiBpMThuIGRlZmF1bHRcbiAgICBjb25zdCBoZWFkZXJUZXh0ID0gdGhpcy5yZXNvbHZlZFByb3BzLm1vZGFsSGVhZGVyIHx8IHRoaXMucmVzb2x2ZWRQcm9wcy5sYWJlbCB8fCB0aGlzLmkxOG4udCgnc2VsZWN0T3B0aW9uJyk7XG5cbiAgICB0aGlzLmN1c3RvbU1vZGFsT3B0aW9ucyA9IHtcbiAgICAgIGhlYWRlcjogaGVhZGVyVGV4dCxcbiAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC42XSxcbiAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjYsXG4gICAgfTtcbiAgICB0aGlzLmN1c3RvbVBvcG92ZXJPcHRpb25zID0geyBjc3NDbGFzczogJ3ZhbC1zZWxlY3QtcG9wb3ZlcicgfTtcblxuICAgIC8vIFNldCBidXR0b24gdGV4dHMgZnJvbSBwcm9wcyBvciB1c2UgaTE4biBkZWZhdWx0cy5cbiAgICAvLyBGYWxsYmFjayBjaGFpbjogbmFtZXNwYWNlLWxlc3MgaTE4biDihpIgJ0NvbW1vbicgbmFtZXNwYWNlIOKGkiBoYXJkY29kZWQuXG4gICAgLy8gRWwgbmFtZXNwYWNlLWxlc3MgYnVzY2EgZW4gX2dsb2JhbDsgc2kgbm8gZXhpc3RlIChjYXNvIHR5cGljYWwgYXBwKSxcbiAgICAvLyBwcm9iYW1vcyBlbiAnQ29tbW9uJyBxdWUgbGEgbWF5b3LDrWEgZGUgYXBwcyB0aWVuZW4gcG9ibGFkby5cbiAgICB0aGlzLmNhbmNlbFRleHQgPSB0aGlzLnJlc29sdmVkUHJvcHMuY2FuY2VsVGV4dCB8fCB0aGlzLnJlc29sdmVJMThuKCdjYW5jZWwnLCAnQ2FuY2VsYXInKTtcbiAgICB0aGlzLm9rVGV4dCA9IHRoaXMucmVzb2x2ZWRQcm9wcy5va1RleHQgfHwgdGhpcy5yZXNvbHZlSTE4bignb2snLCAnT0snKTtcbiAgfVxuXG4gIGljb25NYXNrKHNyYzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHVybChcIiR7c3JjfVwiKWA7XG4gIH1cblxuICAvKipcbiAgICogQnVzY2EgdW4ga2V5IGVuIGBfZ2xvYmFsYCBwcmltZXJvLCBsdWVnbyBlbiBgQ29tbW9uYCwgZmluYWxtZW50ZSBjYWUgYWxcbiAgICogZGVmYXVsdCBoYXJkY29kZWQuIMOadGlsIHBhcmEgdGV4dG9zIGNyb3NzLWN1dHRpbmcgKGNhbmNlbC9vay9jbG9zZS9ldGMuKVxuICAgKiBzaW4gb2JsaWdhciBhIGNhZGEgYXBwIGEgZHVwbGljYXJsb3MgZW4gY2FkYSBuYW1lc3BhY2UuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVJMThuKGtleTogc3RyaW5nLCBmYWxsYmFjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cnlHbG9iYWwgPSB0aGlzLmkxOG4udChrZXkpO1xuICAgIGlmICh0cnlHbG9iYWwgJiYgIXRyeUdsb2JhbC5zdGFydHNXaXRoKCdbJykpIHJldHVybiB0cnlHbG9iYWw7XG4gICAgY29uc3QgdHJ5Q29tbW9uID0gdGhpcy5pMThuLnQoa2V5LCAnQ29tbW9uJyk7XG4gICAgaWYgKHRyeUNvbW1vbiAmJiAhdHJ5Q29tbW9uLnN0YXJ0c1dpdGgoJ1snKSkgcmV0dXJuIHRyeUNvbW1vbjtcbiAgICByZXR1cm4gZmFsbGJhY2s7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,6 +11,7 @@ import { getAuth } from 'firebase/auth';
|
|
|
11
11
|
import { deleteObject, getDownloadURL, getMetadata, listAll, ref, uploadBytesResumable, } from '@angular/fire/storage';
|
|
12
12
|
import { BehaviorSubject } from 'rxjs';
|
|
13
13
|
import { VALTECH_FIREBASE_CONFIG } from './config';
|
|
14
|
+
import { IMAGE_DEFAULTS, ImageService } from '../image';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
import * as i1 from "@angular/fire/storage";
|
|
16
17
|
/**
|
|
@@ -45,6 +46,7 @@ export class StorageService {
|
|
|
45
46
|
constructor(storage) {
|
|
46
47
|
this.storage = storage;
|
|
47
48
|
this.config = inject(VALTECH_FIREBASE_CONFIG, { optional: true });
|
|
49
|
+
this.imageService = inject(ImageService);
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* Prefija el path de storage con el appId si está configurado.
|
|
@@ -290,6 +292,52 @@ export class StorageService {
|
|
|
290
292
|
}
|
|
291
293
|
return sdkResult;
|
|
292
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Procesa y sube una imagen.
|
|
297
|
+
*
|
|
298
|
+
* A diferencia de `uploadAndGetUrl`, este método es específico para imágenes:
|
|
299
|
+
* comprime por defecto con `ImageService` y puede generar un thumbnail en un
|
|
300
|
+
* path separado. Para archivos que deben conservarse byte a byte, usar
|
|
301
|
+
* `uploadAndGetUrl`.
|
|
302
|
+
*/
|
|
303
|
+
async uploadImageAndGetUrl(path, file, options) {
|
|
304
|
+
const { compress = true, compression, thumbnailPath, thumbnailSize, thumbnailMetadata, ...metadata } = options ?? {};
|
|
305
|
+
const processed = compress
|
|
306
|
+
? await this.imageService.compress(file, compression)
|
|
307
|
+
: {
|
|
308
|
+
blob: await this.materialize(file),
|
|
309
|
+
width: 0,
|
|
310
|
+
height: 0,
|
|
311
|
+
size: file.size,
|
|
312
|
+
};
|
|
313
|
+
const imageContentType = compress
|
|
314
|
+
? (compression?.mimeType ?? IMAGE_DEFAULTS.mimeType)
|
|
315
|
+
: (metadata.contentType ?? file.type ?? 'application/octet-stream');
|
|
316
|
+
const result = await this.uploadAndGetUrl(path, processed.blob, {
|
|
317
|
+
...metadata,
|
|
318
|
+
contentType: imageContentType,
|
|
319
|
+
});
|
|
320
|
+
let thumbnail;
|
|
321
|
+
if (thumbnailPath) {
|
|
322
|
+
const thumb = await this.imageService.thumbnail(processed.blob, thumbnailSize);
|
|
323
|
+
thumbnail = await this.uploadAndGetUrl(thumbnailPath, thumb.blob, {
|
|
324
|
+
...metadata,
|
|
325
|
+
...thumbnailMetadata,
|
|
326
|
+
contentType: thumbnailMetadata?.contentType ?? IMAGE_DEFAULTS.mimeType,
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
...result,
|
|
331
|
+
thumbnail,
|
|
332
|
+
processed: {
|
|
333
|
+
originalSize: file.size,
|
|
334
|
+
size: processed.blob.size,
|
|
335
|
+
width: processed.width,
|
|
336
|
+
height: processed.height,
|
|
337
|
+
compressed: compress,
|
|
338
|
+
},
|
|
339
|
+
};
|
|
340
|
+
}
|
|
293
341
|
/**
|
|
294
342
|
* Sube un archivo desde una Data URL (base64).
|
|
295
343
|
*
|
|
@@ -601,4 +649,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
601
649
|
type: Injectable,
|
|
602
650
|
args: [{ providedIn: 'root' }]
|
|
603
651
|
}], ctorParameters: () => [{ type: i1.Storage }] });
|
|
604
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCw4RUFBOEU7QUFDOUUsMkRBQTJEO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBQ2QsV0FBVyxFQUNYLE9BQU8sRUFDUCxHQUFHLEVBRUgsb0JBQW9CLEdBR3JCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVNuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUY1QixXQUFNLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFOUIsQ0FBQztJQUV4Qzs7Ozs7OztPQU9HO0lBQ0ssaUJBQWlCLENBQUMsSUFBWSxFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ3hELElBQUksVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbkQsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCw4RUFBOEU7SUFDOUUsU0FBUztJQUNULDhFQUE4RTtJQUU5RTs7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LGVBQWUsQ0FBQyxLQUFjO1FBQ3BDLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxHQUFJLEtBQTJCLENBQUMsSUFBSSxDQUFDO1lBRS9DLFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQ2IsS0FBSywwQkFBMEI7b0JBQzdCLE9BQU8sc0JBQXNCLENBQUM7Z0JBQ2hDLEtBQUssc0JBQXNCO29CQUN6QixPQUFPLCtDQUErQyxDQUFDO2dCQUN6RCxLQUFLLGtCQUFrQjtvQkFDckIsT0FBTyw0QkFBNEIsQ0FBQztnQkFDdEMsS0FBSyx3QkFBd0I7b0JBQzNCLE9BQU8sMkNBQTJDLENBQUM7Z0JBQ3JELEtBQUssMEJBQTBCO29CQUM3QixPQUFPLDBCQUEwQixDQUFDO2dCQUNwQyxLQUFLLDhCQUE4QjtvQkFDakMsT0FBTyxxQ0FBcUMsQ0FBQztnQkFDL0MsS0FBSyxxQkFBcUI7b0JBQ3hCLE9BQU8seUJBQXlCLENBQUM7Z0JBQ25DLEtBQUssMEJBQTBCO29CQUM3QixPQUFPLG9CQUFvQixDQUFDO2dCQUM5QjtvQkFDRSxPQUFPLEtBQUssQ0FBQyxPQUFPLElBQUkscUNBQXFDLENBQUM7WUFDbEUsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLHFDQUFxQyxDQUFDO0lBQy9DLENBQUM7K0dBL2xCVSxjQUFjO21IQUFkLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0b3JhZ2UgU2VydmljZVxuICpcbiAqIFNlcnZpY2lvIHBhcmEgb3BlcmFjaW9uZXMgZGUgRmlyZWJhc2UgU3RvcmFnZS5cbiAqIFNvcG9ydGEgdXBsb2FkIGNvbiB0cmFja2luZyBkZSBwcm9ncmVzbywgZG93bmxvYWQgeSBnZXN0acOzbiBkZSBhcmNoaXZvcy5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vIGdldEF1dGg6IHNvbG8gcGFyYSBlbCBmYWxsYmFjayBSRVNUIGRlIHVwbG9hZEFuZEdldFVybCDigJQgZWwgaWRUb2tlbiBjb24gcXVlXG4vLyBzZSBmaXJtYSBlbCByZWludGVudG8gY3VhbmRvIGVsIGNhbmFsIFhIUiBkZWwgU0RLIGZhbGxhLlxuaW1wb3J0IHsgZ2V0QXV0aCB9IGZyb20gJ2ZpcmViYXNlL2F1dGgnO1xuaW1wb3J0IHtcbiAgZGVsZXRlT2JqZWN0LFxuICBnZXREb3dubG9hZFVSTCxcbiAgZ2V0TWV0YWRhdGEsXG4gIGxpc3RBbGwsXG4gIHJlZixcbiAgU3RvcmFnZSxcbiAgdXBsb2FkQnl0ZXNSZXN1bWFibGUsXG4gIFVwbG9hZE1ldGFkYXRhLFxuICBVcGxvYWRUYXNrU25hcHNob3QsXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvc3RvcmFnZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBTdG9yYWdlTGlzdFJlc3VsdCxcbiAgU3RvcmFnZU1ldGFkYXRhLFxuICBVcGxvYWRQcm9ncmVzcyxcbiAgVXBsb2FkUmVzdWx0LFxuICBVcGxvYWRTdGF0ZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogU2VydmljaW8gcGFyYSBGaXJlYmFzZSBTdG9yYWdlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBAQ29tcG9uZW50KHsuLi59KVxuICogZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQge1xuICogICBwcml2YXRlIHN0b3JhZ2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuICpcbiAqICAgdXBsb2FkUHJvZ3Jlc3MgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAqICAgZG93bmxvYWRVcmwgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gKlxuICogICBhc3luYyBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAqICAgICBjb25zdCBmaWxlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcz8uWzBdO1xuICogICAgIGlmICghZmlsZSkgcmV0dXJuO1xuICpcbiAqICAgICAvLyBVcGxvYWQgY29uIHByb2dyZXNvXG4gKiAgICAgdGhpcy5zdG9yYWdlLnVwbG9hZChgdXBsb2Fkcy8ke2ZpbGUubmFtZX1gLCBmaWxlKS5zdWJzY3JpYmUoe1xuICogICAgICAgbmV4dDogKHByb2dyZXNzKSA9PiB0aGlzLnVwbG9hZFByb2dyZXNzLnNldChwcm9ncmVzcy5wZXJjZW50YWdlKSxcbiAqICAgICAgIGNvbXBsZXRlOiBhc3luYyAoKSA9PiB7XG4gKiAgICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXREb3dubG9hZFVybChgdXBsb2Fkcy8ke2ZpbGUubmFtZX1gKTtcbiAqICAgICAgICAgdGhpcy5kb3dubG9hZFVybC5zZXQodXJsKTtcbiAqICAgICAgIH1cbiAqICAgICB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChWQUxURUNIX0ZJUkVCQVNFX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2UpIHt9XG5cbiAgLyoqXG4gICAqIFByZWZpamEgZWwgcGF0aCBkZSBzdG9yYWdlIGNvbiBlbCBhcHBJZCBzaSBlc3TDoSBjb25maWd1cmFkby5cbiAgICogU2kgbm8gaGF5IGFwcElkIG8gc2tpcFByZWZpeCBlcyB0cnVlLCByZXRvcm5hIGVsIHBhdGggc2luIG1vZGlmaWNhci5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIG9yaWdpbmFsXG4gICAqIEBwYXJhbSBza2lwUHJlZml4IC0gU2kgZXMgdHJ1ZSwgbm8gYXBsaWNhIGVsIHByZWZpeCAow7p0aWwgcGFyYSBwYXRocyBjb21wYXJ0aWRvcyBjb21vIGF2YXRhcmVzKVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcHJlZml4U3RvcmFnZVBhdGgocGF0aDogc3RyaW5nLCBza2lwUHJlZml4ID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGlmIChza2lwUHJlZml4IHx8ICF0aGlzLmNvbmZpZz8uYXBwSWQpIHJldHVybiBwYXRoO1xuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy5hcHBJZH0vJHtwYXRofWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVVBMT0FEXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBTdWJlIHVuIGFyY2hpdm8gY29uIHRyYWNraW5nIGRlIHByb2dyZXNvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZW4gU3RvcmFnZSBkb25kZSBndWFyZGFyIGVsIGFyY2hpdm9cbiAgICogQHBhcmFtIGZpbGUgLSBBcmNoaXZvIGEgc3ViaXIgKEZpbGUgbyBCbG9iKVxuICAgKiBAcGFyYW0gbWV0YWRhdGEgLSBNZXRhZGF0YSBvcGNpb25hbCAoY29udGVudFR5cGUsIGN1c3RvbU1ldGFkYXRhKVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHF1ZSBlbWl0ZSBlbCBwcm9ncmVzbyB5IGNvbXBsZXRhIGN1YW5kbyB0ZXJtaW5hXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gVXBsb2FkIGLDoXNpY29cbiAgICogc3RvcmFnZS51cGxvYWQoJ2ltYWdlcy9waG90by5qcGcnLCBmaWxlKS5zdWJzY3JpYmUoe1xuICAgKiAgIG5leHQ6IChwcm9ncmVzcykgPT4gY29uc29sZS5sb2coYCR7cHJvZ3Jlc3MucGVyY2VudGFnZX0lYCksXG4gICAqICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdVcGxvYWQgY29tcGxldGFkbycpXG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBDb24gbWV0YWRhdGFcbiAgICogc3RvcmFnZS51cGxvYWQoJ2RvY3MvcmVwb3J0LnBkZicsIGZpbGUsIHtcbiAgICogICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAqICAgY3VzdG9tTWV0YWRhdGE6IHsgdXBsb2FkZWRCeTogJ3VzZXIxMjMnIH1cbiAgICogfSkuc3Vic2NyaWJlKC4uLik7XG4gICAqIGBgYFxuICAgKi9cbiAgdXBsb2FkKHBhdGg6IHN0cmluZywgZmlsZTogRmlsZSB8IEJsb2IsIG1ldGFkYXRhPzogU3RvcmFnZU1ldGFkYXRhKTogT2JzZXJ2YWJsZTxVcGxvYWRQcm9ncmVzcz4ge1xuICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCwgbWV0YWRhdGE/LnNraXBQcmVmaXgpO1xuICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgIGNvbnN0IHVwbG9hZE1ldGFkYXRhOiBVcGxvYWRNZXRhZGF0YSA9IHtcbiAgICAgIGNvbnRlbnRUeXBlOiBtZXRhZGF0YT8uY29udGVudFR5cGUgfHwgKGZpbGUgaW5zdGFuY2VvZiBGaWxlID8gZmlsZS50eXBlIDogdW5kZWZpbmVkKSxcbiAgICAgIGN1c3RvbU1ldGFkYXRhOiBtZXRhZGF0YT8uY3VzdG9tTWV0YWRhdGEsXG4gICAgICAvLyBEZWZhdWx0IGFncmVzaXZvOiBnZXREb3dubG9hZFVSTCBkZXZ1ZWx2ZSBVUkxzIGNvbiB0b2tlbiDDum5pY28gcG9yXG4gICAgICAvLyB2ZXJzacOzbiBkZWwgb2JqZXRvIOKGkiByZS1zdWJpciBlbCBhcmNoaXZvIGNhbWJpYSBlbCBVUkwgKGNhY2hlLWJ1c3RcbiAgICAgIC8vIG5hdHVyYWwpLiBFbCBjb25zdW1pZG9yIHB1ZWRlIG92ZXJyaWRlIHBhc2FuZG8gY2FjaGVDb250cm9sIGV4cGzDrWNpdG8uXG4gICAgICBjYWNoZUNvbnRyb2w6IG1ldGFkYXRhPy5jYWNoZUNvbnRyb2wgPz8gJ3B1YmxpYywgbWF4LWFnZT0zMTUzNjAwMCcsXG4gICAgfTtcblxuICAgIGNvbnN0IHRhc2sgPSB1cGxvYWRCeXRlc1Jlc3VtYWJsZShzdG9yYWdlUmVmLCBmaWxlLCB1cGxvYWRNZXRhZGF0YSk7XG4gICAgY29uc3QgcHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVcGxvYWRQcm9ncmVzcz4oe1xuICAgICAgYnl0ZXNUcmFuc2ZlcnJlZDogMCxcbiAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICBzdGF0ZTogJ3J1bm5pbmcnLFxuICAgIH0pO1xuXG4gICAgdGFzay5vbihcbiAgICAgICdzdGF0ZV9jaGFuZ2VkJyxcbiAgICAgIChzbmFwc2hvdDogVXBsb2FkVGFza1NuYXBzaG90KSA9PiB7XG4gICAgICAgIHByb2dyZXNzJC5uZXh0KHtcbiAgICAgICAgICBieXRlc1RyYW5zZmVycmVkOiBzbmFwc2hvdC5ieXRlc1RyYW5zZmVycmVkLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IHNuYXBzaG90LnRvdGFsQnl0ZXMsXG4gICAgICAgICAgcGVyY2VudGFnZTogTWF0aC5yb3VuZCgoc25hcHNob3QuYnl0ZXNUcmFuc2ZlcnJlZCAvIHNuYXBzaG90LnRvdGFsQnl0ZXMpICogMTAwKSxcbiAgICAgICAgICBzdGF0ZTogdGhpcy5tYXBUYXNrU3RhdGUoc25hcHNob3Quc3RhdGUpLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHByb2dyZXNzJC5uZXh0KHtcbiAgICAgICAgICBieXRlc1RyYW5zZmVycmVkOiAwLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgICAgIHN0YXRlOiAnZXJyb3InLFxuICAgICAgICB9KTtcbiAgICAgICAgcHJvZ3Jlc3MkLmVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBwcm9ncmVzcyQubmV4dCh7XG4gICAgICAgICAgYnl0ZXNUcmFuc2ZlcnJlZDogZmlsZS5zaXplLFxuICAgICAgICAgIHRvdGFsQnl0ZXM6IGZpbGUuc2l6ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgc3RhdGU6ICdzdWNjZXNzJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHByb2dyZXNzJC5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gcHJvZ3Jlc3MkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExlZSBlbCBhcmNoaXZvIENPTVBMRVRPIGEgbWVtb3JpYSB5IGRldnVlbHZlIHVuIEJsb2IgYXV0b2NvbnRlbmlkby5cbiAgICpcbiAgICogTm8gZXMgdW5hIGNvcGlhIHBvciBndXN0bzogZW4gU2FmYXJpLCB1biBgRmlsZWAgcXVlIG5vIGVzdMOhIHBsZW5hbWVudGVcbiAgICogbWF0ZXJpYWxpemFkbyBlbiBkaXNjbyDigJQgdMOtcGljbyBkZSBmb3RvcyBsbGVnYWRhcyBkZWwgaVBob25lIHbDrWFcbiAgICogRm90b3MvaUNsb3VkIOKAlCBoYWNlIGZhbGxhciBsYSBsZWN0dXJhIGRlbCBTREsgZGUgU3RvcmFnZSBlbiBlbCBlbnbDrW8sIHBvclxuICAgKiBzdXMgZG9zIGNhbWlub3MgKHVwbG9hZEJ5dGVzIHkgdXBsb2FkQnl0ZXNSZXN1bWFibGUpLCBjb24gdW5cbiAgICogYHN0b3JhZ2UvdW5rbm93bmAgb3BhY28uIEVsIG1pc21vIFNhZmFyaSBzdWJlIHNpbiBwcm9ibGVtYSBhcmNoaXZvcyBsb2NhbGVzXG4gICAqIGRlIG90cmEgcHJvY2VkZW5jaWEsIGFzw60gcXVlIGVsIGJ1ZyBhcGFyZWNlIFwiYSB2ZWNlc1wiIHkgc2luIG1lbnNhamUgw7p0aWwuXG4gICAqIGBhcnJheUJ1ZmZlcigpYCBmdWVyemEgbGEgbGVjdHVyYSBjb21wbGV0YTsgZWwgQmxvYiByZXN1bHRhbnRlIHlhIG5vXG4gICAqIGRlcGVuZGUgZGVsIGJhY2tpbmcgZmlsZS4gQ2FzbyByZWFsOiBiaW5nbyBpbWFnZS1waWNrZXIsIDIwMjYtMDgtMDUuXG4gICAqXG4gICAqIFVuIEJsb2IgKG5vLUZpbGUpIHlhIG5hY2nDsyBlbiBtZW1vcmlhIOKAlCBzZSBkZXZ1ZWx2ZSB0YWwgY3VhbC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIG1hdGVyaWFsaXplKGZpbGU6IEZpbGUgfCBCbG9iKTogUHJvbWlzZTxCbG9iPiB7XG4gICAgaWYgKCEoZmlsZSBpbnN0YW5jZW9mIEZpbGUpKSByZXR1cm4gZmlsZTtcbiAgICBjb25zdCBjb250ZW5pZG8gPSBhd2FpdCBmaWxlLmFycmF5QnVmZmVyKCk7XG4gICAgcmV0dXJuIG5ldyBCbG9iKFtjb250ZW5pZG9dLCB7IHR5cGU6IGZpbGUudHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWludGVudG8gcG9yIFJFU1QgY3VhbmRvIGVsIFNESyBmYWxsYSBsYSBzdWJpZGEuXG4gICAqXG4gICAqIEVsIFNESyB2YSBwb3IgWE1MSHR0cFJlcXVlc3QgeSBzdSBkZXRhbGxlIGRlIGVycm9yIGVzIGB4aHIuc3RhdHVzVGV4dGAsIHF1ZVxuICAgKiBzb2JyZSBIVFRQLzIgdmllbmUgc2llbXByZSB2YWPDrW8g4oCUIHVuIGZhbGxvIGRlbCBTREsgZXMgaWxlZ2libGUgeSwgZW4gbG9zXG4gICAqIGVudG9ybm9zIGRvbmRlIGFsZ28gaW50ZXJmaWVyZSBjb24gWEhSLCBhZGVtw6FzIGV2aXRhYmxlOiBlc3RlIGNhbWlubyB1c2FcbiAgICogYGZldGNoYCBjb24gYHVwbG9hZFR5cGU9bWVkaWFgIChjdWVycG8gYmluYXJpbyBzaW1wbGUpLiBMYSBVUkwgc2UgYXJtYSBjb25cbiAgICogZWwgZG93bmxvYWRUb2tlbiBkZSBsYSByZXNwdWVzdGEgcG9ycXVlIGdldERvd25sb2FkVVJMIHRhbWJpw6luIHZhIHBvciBYSFIuXG4gICAqXG4gICAqIERldnVlbHZlIG51bGwgc2kgdGFtcG9jbyBwdWRvIOKAlCBlbCBjYWxsZXIgcmVwb3J0YSBlbCBlcnJvciBvcmlnaW5hbCBkZWwgU0RLLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdXBsb2FkVmlhUmVzdChcbiAgICBwcmVmaXhlZFBhdGg6IHN0cmluZyxcbiAgICBibG9iOiBCbG9iLFxuICAgIGNvbnRlbnRUeXBlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxVcGxvYWRSZXN1bHQgfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0QXV0aCgpLmN1cnJlbnRVc2VyPy5nZXRJZFRva2VuKCk7XG4gICAgICBjb25zdCBidWNrZXQgPSB0aGlzLnN0b3JhZ2UuYXBwLm9wdGlvbnMuc3RvcmFnZUJ1Y2tldDtcbiAgICAgIGlmICghdG9rZW4gfHwgIWJ1Y2tldCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IG5vbWJyZSA9IGVuY29kZVVSSUNvbXBvbmVudChwcmVmaXhlZFBhdGgpO1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKFxuICAgICAgICBgaHR0cHM6Ly9maXJlYmFzZXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vdjAvYi8ke2J1Y2tldH0vbz9uYW1lPSR7bm9tYnJlfSZ1cGxvYWRUeXBlPW1lZGlhYCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogYEZpcmViYXNlICR7dG9rZW59YCwgJ0NvbnRlbnQtVHlwZSc6IGNvbnRlbnRUeXBlIH0sXG4gICAgICAgICAgYm9keTogYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKCFyZXNwLm9rKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTdG9yYWdlXSBSRVNUIGZhbGxiYWNrIGZhaWxlZDonLCB7XG4gICAgICAgICAgcGF0aDogcHJlZml4ZWRQYXRoLFxuICAgICAgICAgIHN0YXR1czogcmVzcC5zdGF0dXMsXG4gICAgICAgICAgYm9keTogKGF3YWl0IHJlc3AudGV4dCgpKS5yZXBsYWNlKC9cXHMrL2csICcgJykuc2xpY2UoMCwgMzAwKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3QgbWV0YSA9IChhd2FpdCByZXNwLmpzb24oKSkgYXMge1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICBzaXplPzogc3RyaW5nO1xuICAgICAgICBjb250ZW50VHlwZT86IHN0cmluZztcbiAgICAgICAgZG93bmxvYWRUb2tlbnM/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgLy8gVW4gMjAwIG5vIHBydWViYSBxdWUgbGxlZ8OzIGVsIGNvbnRlbmlkbzogU2FmYXJpIGhhIGVudmlhZG8gY3VlcnBvc1xuICAgICAgLy8gdmFjw61vcyBxdWUgU3RvcmFnZSBhY2VwdGEgY29tbyBvYmpldG9zIGRlIDAgYnl0ZXMuIFZlcmlmaWNhciB5IGxpbXBpYXIuXG4gICAgICBpZiAoTnVtYmVyKG1ldGEuc2l6ZSA/PyAtMSkgIT09IGJsb2Iuc2l6ZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbU3RvcmFnZV0gUkVTVCBmYWxsYmFjayBzaXplIG1pc21hdGNoOicsIHtcbiAgICAgICAgICBwYXRoOiBwcmVmaXhlZFBhdGgsXG4gICAgICAgICAgZXNwZXJhZG86IGJsb2Iuc2l6ZSxcbiAgICAgICAgICBndWFyZGFkbzogbWV0YS5zaXplLFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgZmV0Y2goYGh0dHBzOi8vZmlyZWJhc2VzdG9yYWdlLmdvb2dsZWFwaXMuY29tL3YwL2IvJHtidWNrZXR9L28vJHtub21icmV9YCwge1xuICAgICAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICAgICAgaGVhZGVyczogeyBBdXRob3JpemF0aW9uOiBgRmlyZWJhc2UgJHt0b2tlbn1gIH0sXG4gICAgICAgIH0pLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3QgZHQgPSBtZXRhLmRvd25sb2FkVG9rZW5zPy5zcGxpdCgnLCcpWzBdO1xuICAgICAgY29uc3QgZG93bmxvYWRVcmwgPVxuICAgICAgICBgaHR0cHM6Ly9maXJlYmFzZXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vdjAvYi8ke2J1Y2tldH0vby8ke25vbWJyZX0/YWx0PW1lZGlhYCArXG4gICAgICAgIChkdCA/IGAmdG9rZW49JHtkdH1gIDogJycpO1xuICAgICAgY29uc29sZS5sb2coJ1tTdG9yYWdlXSB1cGxvYWQgT0sgKFJFU1QgZmFsbGJhY2spOicsIHsgcGF0aDogcHJlZml4ZWRQYXRoIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZG93bmxvYWRVcmwsXG4gICAgICAgIGZ1bGxQYXRoOiBwcmVmaXhlZFBhdGgsXG4gICAgICAgIG5hbWU6IHByZWZpeGVkUGF0aC5zcGxpdCgnLycpLnBvcCgpIHx8IHByZWZpeGVkUGF0aCxcbiAgICAgICAgc2l6ZTogYmxvYi5zaXplLFxuICAgICAgICBjb250ZW50VHlwZTogbWV0YS5jb250ZW50VHlwZSB8fCBjb250ZW50VHlwZSxcbiAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignW1N0b3JhZ2VdIFJFU1QgZmFsbGJhY2sgdGhyZXc6JywgeyBwYXRoOiBwcmVmaXhlZFBhdGgsIGVycm9yIH0pO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN1YmUgdW4gYXJjaGl2byB5IHJldG9ybmEgbGEgVVJMIGRlIGRlc2NhcmdhIGFsIGNvbXBsZXRhci5cbiAgICpcbiAgICogUm9idXN0ZWNpZG8gcGFyYSBlbCBjYXNvIFNhZmFyaS9pUGhvbmUgKHZlciBgbWF0ZXJpYWxpemVgKTogbGVlIGVsIGFyY2hpdm9cbiAgICogYSBtZW1vcmlhIGFudGVzIGRlIHN1YmlybG8sIHZlcmlmaWNhIHF1ZSBlbCB0YW1hw7FvIGd1YXJkYWRvIGNvaW5jaWRhIHksIHNpXG4gICAqIGVsIFNESyBmYWxsYSwgcmVpbnRlbnRhIHVuYSB2ZXogcG9yIFJFU1QgYW50ZXMgZGUgcmVjaGF6YXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gUnV0YSBlbiBTdG9yYWdlXG4gICAqIEBwYXJhbSBmaWxlIC0gQXJjaGl2byBhIHN1YmlyXG4gICAqIEBwYXJhbSBtZXRhZGF0YSAtIE1ldGFkYXRhIG9wY2lvbmFsXG4gICAqIEByZXR1cm5zIFJlc3VsdGFkbyBkZWwgdXBsb2FkIGNvbiBVUkwgZGUgZGVzY2FyZ2FcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSBhd2FpdCBzdG9yYWdlLnVwbG9hZEFuZEdldFVybCgnYXZhdGFycy91c2VyMTIzLmpwZycsIGZpbGUpO1xuICAgKiBjb25zb2xlLmxvZygnVVJMOicsIHJlc3VsdC5kb3dubG9hZFVybCk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgdXBsb2FkQW5kR2V0VXJsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBmaWxlOiBGaWxlIHwgQmxvYixcbiAgICBtZXRhZGF0YT86IFN0b3JhZ2VNZXRhZGF0YVxuICApOiBQcm9taXNlPFVwbG9hZFJlc3VsdD4ge1xuICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCwgbWV0YWRhdGE/LnNraXBQcmVmaXgpO1xuICAgIGNvbnNvbGUubG9nKCdbU3RvcmFnZV0gdXBsb2FkQW5kR2V0VXJsIHN0YXJ0OicsIHsgcGF0aDogcHJlZml4ZWRQYXRoLCBzaXplOiBmaWxlLnNpemUgfSk7XG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IG1ldGFkYXRhPy5jb250ZW50VHlwZSB8fCBmaWxlLnR5cGUgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMubWF0ZXJpYWxpemUoZmlsZSk7XG5cbiAgICBjb25zdCBzZGtSZXN1bHQgPSBhd2FpdCBuZXcgUHJvbWlzZTxVcGxvYWRSZXN1bHQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMudXBsb2FkKHBhdGgsIGJsb2IsIHsgLi4ubWV0YWRhdGEsIGNvbnRlbnRUeXBlIH0pLnN1YnNjcmliZSh7XG4gICAgICAgIGNvbXBsZXRlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgICAgICAgICAgY29uc3QgZG93bmxvYWRVcmwgPSBhd2FpdCBnZXREb3dubG9hZFVSTChzdG9yYWdlUmVmKTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JlZE1ldGFkYXRhID0gYXdhaXQgZ2V0TWV0YWRhdGEoc3RvcmFnZVJlZik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW1N0b3JhZ2VdIHVwbG9hZCBPSzonLCB7XG4gICAgICAgICAgICAgIHBhdGg6IHByZWZpeGVkUGF0aCxcbiAgICAgICAgICAgICAgdXJsOiBkb3dubG9hZFVybC5zbGljZSgwLCA2MCkgKyAn4oCmJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIGRvd25sb2FkVXJsLFxuICAgICAgICAgICAgICBmdWxsUGF0aDogc3RvcmVkTWV0YWRhdGEuZnVsbFBhdGgsXG4gICAgICAgICAgICAgIG5hbWU6IHN0b3JlZE1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgIHNpemU6IHN0b3JlZE1ldGFkYXRhLnNpemUsXG4gICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBzdG9yZWRNZXRhZGF0YS5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHN0b3JlZE1ldGFkYXRhLmN1c3RvbU1ldGFkYXRhIHx8IHt9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTdG9yYWdlXSBnZXREb3dubG9hZFVSTC9tZXRhZGF0YSBmYWlsZWQ6Jywge1xuICAgICAgICAgICAgICBwYXRoOiBwcmVmaXhlZFBhdGgsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWplY3QodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignW1N0b3JhZ2VdIHVwbG9hZCBmYWlsZWQ6JywgeyBwYXRoOiBwcmVmaXhlZFBhdGgsIGVycm9yIH0pO1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KS5jYXRjaChhc3luYyBvcmlnaW5hbEVycm9yID0+IHtcbiAgICAgIGNvbnN0IHJlc2NhdGFkbyA9IGF3YWl0IHRoaXMudXBsb2FkVmlhUmVzdChwcmVmaXhlZFBhdGgsIGJsb2IsIGNvbnRlbnRUeXBlKTtcbiAgICAgIGlmIChyZXNjYXRhZG8pIHJldHVybiByZXNjYXRhZG87XG4gICAgICB0aHJvdyBvcmlnaW5hbEVycm9yO1xuICAgIH0pO1xuXG4gICAgLy8gVmVyaWZpY2FjacOzbiBkZSBjb250ZW5pZG8gdGFtYmnDqW4gZW4gZWwgY2FtaW5vIFNESzogdW4gb2JqZXRvIGRlIDAgYnl0ZXNcbiAgICAvLyBjb24gVVJMIHbDoWxpZGEgZXMgcGVvciBxdWUgdW4gZXJyb3Ig4oCUIGxhIGltYWdlbiBcInN1YmVcIiB5IG51bmNhIGNhcmdhLlxuICAgIGlmIChzZGtSZXN1bHQuc2l6ZSAhPT0gYmxvYi5zaXplKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbU3RvcmFnZV0gc2l6ZSBtaXNtYXRjaCB0cmFzIHN1YmlyOicsIHtcbiAgICAgICAgcGF0aDogcHJlZml4ZWRQYXRoLFxuICAgICAgICBlc3BlcmFkbzogYmxvYi5zaXplLFxuICAgICAgICBndWFyZGFkbzogc2RrUmVzdWx0LnNpemUsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGRlbGV0ZU9iamVjdChyZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbCBhcmNoaXZvIG5vIHNlIHN1YmnDsyBjb21wbGV0by4gSW50w6ludGFsbyBkZSBudWV2by4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHNka1Jlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJlIHVuIGFyY2hpdm8gZGVzZGUgdW5hIERhdGEgVVJMIChiYXNlNjQpLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZW4gU3RvcmFnZVxuICAgKiBAcGFyYW0gZGF0YVVybCAtIERhdGEgVVJMIChlajogJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwuLi4nKVxuICAgKiBAcGFyYW0gbWV0YWRhdGEgLSBNZXRhZGF0YSBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBSZXN1bHRhZG8gZGVsIHVwbG9hZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIERlc2RlIGNhbnZhc1xuICAgKiBjb25zdCBkYXRhVXJsID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UudXBsb2FkRnJvbURhdGFVcmwoJ2ltYWdlcy9kcmF3aW5nLnBuZycsIGRhdGFVcmwpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHVwbG9hZEZyb21EYXRhVXJsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBkYXRhVXJsOiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiBTdG9yYWdlTWV0YWRhdGFcbiAgKTogUHJvbWlzZTxVcGxvYWRSZXN1bHQ+IHtcbiAgICAvLyBFeHRyYWVyIGNvbnRlbnQgdHlwZSB5IGRhdG9zIGJhc2U2NFxuICAgIGNvbnN0IG1hdGNoZXMgPSBkYXRhVXJsLm1hdGNoKC9eZGF0YTooW147XSspO2Jhc2U2NCwoLispJC8pO1xuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIFVSTCBpbnbDoWxpZGEnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IG1hdGNoZXNbMV07XG4gICAgY29uc3QgYmFzZTY0RGF0YSA9IG1hdGNoZXNbMl07XG5cbiAgICAvLyBDb252ZXJ0aXIgYmFzZTY0IGEgQmxvYlxuICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjREYXRhKTtcbiAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcmFjdGVycy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcblxuICAgIHJldHVybiB0aGlzLnVwbG9hZEFuZEdldFVybChwYXRoLCBibG9iLCB7XG4gICAgICBjb250ZW50VHlwZSxcbiAgICAgIC4uLm1ldGFkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERPV05MT0FEXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxhIFVSTCBkZSBkZXNjYXJnYSBkZSB1biBhcmNoaXZvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZGVsIGFyY2hpdm8gZW4gU3RvcmFnZVxuICAgKiBAcmV0dXJucyBVUkwgZGUgZGVzY2FyZ2FcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCB1cmwgPSBhd2FpdCBzdG9yYWdlLmdldERvd25sb2FkVXJsKCdpbWFnZXMvcGhvdG8uanBnJyk7XG4gICAqIC8vIFVzYXIgZW4gPGltZyBbc3JjXT1cInVybFwiPlxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldERvd25sb2FkVXJsKHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCk7XG4gICAgICBjb25zdCBzdG9yYWdlUmVmID0gcmVmKHRoaXMuc3RvcmFnZSwgcHJlZml4ZWRQYXRoKTtcbiAgICAgIHJldHVybiBhd2FpdCBnZXREb3dubG9hZFVSTChzdG9yYWdlUmVmKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbGEgbWV0YWRhdGEgZGUgdW4gYXJjaGl2by5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGRlbCBhcmNoaXZvXG4gICAqIEByZXR1cm5zIE1ldGFkYXRhIGRlbCBhcmNoaXZvXG4gICAqL1xuICBhc3luYyBnZXRNZXRhZGF0YShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFN0b3JhZ2VNZXRhZGF0YSAmIHsgc2l6ZTogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFBhdGggPSB0aGlzLnByZWZpeFN0b3JhZ2VQYXRoKHBhdGgpO1xuICAgICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IGdldE1ldGFkYXRhKHN0b3JhZ2VSZWYpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudFR5cGU6IG1ldGFkYXRhLmNvbnRlbnRUeXBlLFxuICAgICAgICBjdXN0b21NZXRhZGF0YTogbWV0YWRhdGEuY3VzdG9tTWV0YWRhdGEsXG4gICAgICAgIGNhY2hlQ29udHJvbDogbWV0YWRhdGEuY2FjaGVDb250cm9sLFxuICAgICAgICBzaXplOiBtZXRhZGF0YS5zaXplLFxuICAgICAgICBuYW1lOiBtZXRhZGF0YS5uYW1lLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERFTEVURVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogRWxpbWluYSB1biBhcmNoaXZvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZGVsIGFyY2hpdm8gYSBlbGltaW5hclxuICAgKiBAcGFyYW0gb3B0aW9ucy5za2lwUHJlZml4IC0gU2kgZXMgdHJ1ZSwgbm8gYXBsaWNhIGVsIHByZWZpeCBkZSBhcHBJZCAocGFyYVxuICAgKiAgIGJvcnJhciB1biBhcmNoaXZvIHN1YmlkbyBjb24gYHVwbG9hZEFuZEdldFVybChwYXRoLCBmaWxlLCB7IHNraXBQcmVmaXg6XG4gICAqICAgdHJ1ZSB9KWAgaGF5IHF1ZSBwYXNhciBlbCBtaXNtbyBmbGFnLCBvIGVsIHBhdGggcXVlZGEgbWFsIGFybWFkbyB5IGVsXG4gICAqICAgZGVsZXRlIGZhbGxhIGNvbnRyYSB1biBvYmpldG8gcXVlIG5vIGV4aXN0ZSkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogYXdhaXQgc3RvcmFnZS5kZWxldGUoJ2ltYWdlcy9vbGQtcGhvdG8uanBnJyk7XG4gICAqIGF3YWl0IHN0b3JhZ2UuZGVsZXRlKCdhcHBzL21lcm90ei9vcmdzL3gvcHVibGljL2ltYWdlcy9wYXJ0cy95L3oucG5nJywgeyBza2lwUHJlZml4OiB0cnVlIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGRlbGV0ZShwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiB7IHNraXBQcmVmaXg/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJlZml4ZWRQYXRoID0gdGhpcy5wcmVmaXhTdG9yYWdlUGF0aChwYXRoLCBvcHRpb25zPy5za2lwUHJlZml4KTtcbiAgICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgICAgYXdhaXQgZGVsZXRlT2JqZWN0KHN0b3JhZ2VSZWYpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSBtw7psdGlwbGVzIGFyY2hpdm9zLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aHMgLSBBcnJheSBkZSBydXRhcyBhIGVsaW1pbmFyXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogYXdhaXQgc3RvcmFnZS5kZWxldGVNdWx0aXBsZShbXG4gICAqICAgJ2ltYWdlcy9waG90bzEuanBnJyxcbiAgICogICAnaW1hZ2VzL3Bob3RvMi5qcGcnXG4gICAqIF0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGRlbGV0ZU11bHRpcGxlKHBhdGhzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHBhdGhzLm1hcChwYXRoID0+IHRoaXMuZGVsZXRlKHBhdGgpKSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTElTVFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogTGlzdGEgYXJjaGl2b3MgZW4gdW4gZGlyZWN0b3Jpby5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGRlbCBkaXJlY3RvcmlvXG4gICAqIEByZXR1cm5zIExpc3RhIGRlIHJ1dGFzIGRlIGFyY2hpdm9zXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmFnZS5saXN0KCdpbWFnZXMvJyk7XG4gICAqIGNvbnNvbGUubG9nKHJlc3VsdC5pdGVtcyk7IC8vIFsnaW1hZ2VzL3Bob3RvMS5qcGcnLCAnaW1hZ2VzL3Bob3RvMi5qcGcnXVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGxpc3QocGF0aDogc3RyaW5nKTogUHJvbWlzZTxTdG9yYWdlTGlzdFJlc3VsdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFBhdGggPSB0aGlzLnByZWZpeFN0b3JhZ2VQYXRoKHBhdGgpO1xuICAgICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBsaXN0QWxsKHN0b3JhZ2VSZWYpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpdGVtczogcmVzdWx0Lml0ZW1zLm1hcChpdGVtID0+IGl0ZW0uZnVsbFBhdGgpLFxuICAgICAgICBuZXh0UGFnZVRva2VuOiB1bmRlZmluZWQsIC8vIGxpc3RBbGwgbm8gc29wb3J0YSBwYWdpbmFjacOzblxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVUSUxJREFERVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdlbmVyYSB1biBub21icmUgZGUgYXJjaGl2byDDum5pY28gY29uIHRpbWVzdGFtcC5cbiAgICpcbiAgICogQHBhcmFtIG9yaWdpbmFsTmFtZSAtIE5vbWJyZSBvcmlnaW5hbCBkZWwgYXJjaGl2b1xuICAgKiBAcGFyYW0gcHJlZml4IC0gUHJlZmlqbyBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBOb21icmUgw7puaWNvXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgdW5pcXVlTmFtZSA9IHN0b3JhZ2UuZ2VuZXJhdGVGaWxlTmFtZSgncGhvdG8uanBnJywgJ3VzZXIxMjMnKTtcbiAgICogLy8gPT4gJ3VzZXIxMjNfMTcwMzA5MTIzNDU2N19waG90by5qcGcnXG4gICAqIGBgYFxuICAgKi9cbiAgZ2VuZXJhdGVGaWxlTmFtZShvcmlnaW5hbE5hbWU6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHNhbml0aXplZE5hbWUgPSBvcmlnaW5hbE5hbWUucmVwbGFjZSgvW15hLXpBLVowLTkuLV0vZywgJ18nKTtcblxuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIHJldHVybiBgJHtwcmVmaXh9XyR7dGltZXN0YW1wfV8ke3Nhbml0aXplZE5hbWV9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RpbWVzdGFtcH1fJHtzYW5pdGl6ZWROYW1lfWA7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhIHVuYSBydXRhIMO6bmljYSBwYXJhIHVuIGFyY2hpdm8uXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgLSBEaXJlY3RvcmlvIGJhc2VcbiAgICogQHBhcmFtIG9yaWdpbmFsTmFtZSAtIE5vbWJyZSBvcmlnaW5hbFxuICAgKiBAcGFyYW0gcHJlZml4IC0gUHJlZmlqbyBvcGNpb25hbFxuICAgKiBAcmV0dXJucyBSdXRhIGNvbXBsZXRhIMO6bmljYVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHBhdGggPSBzdG9yYWdlLmdlbmVyYXRlUGF0aCgndXBsb2FkcycsICdwaG90by5qcGcnLCAndXNlcjEyMycpO1xuICAgKiAvLyA9PiAndXBsb2Fkcy91c2VyMTIzXzE3MDMwOTEyMzQ1NjdfcGhvdG8uanBnJ1xuICAgKiBgYGBcbiAgICovXG4gIGdlbmVyYXRlUGF0aChkaXJlY3Rvcnk6IHN0cmluZywgb3JpZ2luYWxOYW1lOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZU5hbWUgPSB0aGlzLmdlbmVyYXRlRmlsZU5hbWUob3JpZ2luYWxOYW1lLCBwcmVmaXgpO1xuICAgIGNvbnN0IGNsZWFuRGlyID0gZGlyZWN0b3J5LnJlcGxhY2UoL1xcLyskLywgJycpOyAvLyBSZW1vdmVyIC8gZmluYWxcbiAgICByZXR1cm4gYCR7Y2xlYW5EaXJ9LyR7ZmlsZU5hbWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxhIGV4dGVuc2nDs24gZGUgdW4gYXJjaGl2by5cbiAgICpcbiAgICogQHBhcmFtIGZpbGVuYW1lIC0gTm9tYnJlIGRlbCBhcmNoaXZvXG4gICAqIEByZXR1cm5zIEV4dGVuc2nDs24gKHNpbiBlbCBwdW50bylcbiAgICovXG4gIGdldEV4dGVuc2lvbihmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IGZpbGVuYW1lLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHBhcnRzLmxlbmd0aCA+IDEgPyBwYXJ0cy5wb3AoKSEudG9Mb3dlckNhc2UoKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuIGFyY2hpdm8gZXMgdW5hIGltYWdlbiBiYXPDoW5kb3NlIGVuIHN1IGV4dGVuc2nDs24uXG4gICAqL1xuICBpc0ltYWdlKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHQgPSB0aGlzLmdldEV4dGVuc2lvbihmaWxlbmFtZSk7XG4gICAgcmV0dXJuIFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2dpZicsICd3ZWJwJywgJ3N2ZycsICdibXAnXS5pbmNsdWRlcyhleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuIGFyY2hpdm8gZXMgdW4gZG9jdW1lbnRvLlxuICAgKi9cbiAgaXNEb2N1bWVudChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXh0ID0gdGhpcy5nZXRFeHRlbnNpb24oZmlsZW5hbWUpO1xuICAgIHJldHVybiBbJ3BkZicsICdkb2MnLCAnZG9jeCcsICd4bHMnLCAneGxzeCcsICdwcHQnLCAncHB0eCcsICd0eHQnXS5pbmNsdWRlcyhleHQpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVTRVIgQVZBVEFSIEhFTFBFUlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIENvbnN0cnV5ZSBsYSBVUkwgZGUgYXZhdGFyIGRlIHVuIHVzdWFyaW8uXG4gICAqXG4gICAqIExvcyBhdmF0YXJlcyBzZSBhbG1hY2VuYW4gZW4gcGF0aHMgcHJlZGVjaWJsZXM6IGB1c2Vycy97dXNlcklkfS9hdmF0YXIuanBnYFxuICAgKiBFc3RvIHBlcm1pdGUgcXVlIGN1YWxxdWllciBhcHAgcHVlZGEgbW9zdHJhciBhdmF0YXJlcyBzaW4gcGVkaXIgbGEgVVJMIGFsIGJhY2tlbmQsXG4gICAqIHNvbG8gbmVjZXNpdGEgZWwgdXNlcklkLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlcklkIC0gSUQgZGVsIHVzdWFyaW8gKFVMSUQpXG4gICAqIEBwYXJhbSB0eXBlIC0gJ2F2YXRhcicgcGFyYSBpbWFnZW4gY29tcGxldGEsICd0aHVtYicgcGFyYSB0aHVtYm5haWxcbiAgICogQHJldHVybnMgVVJMIGRpcmVjdGEgZGUgRmlyZWJhc2UgU3RvcmFnZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIE1vc3RyYXIgYXZhdGFyIGRlIGN1YWxxdWllciB1c3VhcmlvXG4gICAqIGNvbnN0IGF2YXRhclVybCA9IHN0b3JhZ2UuZ2V0VXNlckF2YXRhclVybCgnMDFBQkNELi4uJyk7XG4gICAqIGNvbnN0IHRodW1iVXJsID0gc3RvcmFnZS5nZXRVc2VyQXZhdGFyVXJsKCcwMUFCQ0QuLi4nLCAndGh1bWInKTtcbiAgICpcbiAgICogLy8gQ29uIGNhY2hlLWJ1c3RpbmdcbiAgICogY29uc3QgZnJlc2hVcmwgPSBzdG9yYWdlLmdldFVzZXJBdmF0YXJVcmwodXNlcklkKSArIGAmdD0ke0RhdGUubm93KCl9YDtcbiAgICogYGBgXG4gICAqL1xuICBnZXRVc2VyQXZhdGFyVXJsKHVzZXJJZDogc3RyaW5nLCB0eXBlOiAnYXZhdGFyJyB8ICd0aHVtYicgPSAnYXZhdGFyJyk6IHN0cmluZyB7XG4gICAgY29uc3QgYnVja2V0ID0gdGhpcy5jb25maWc/LmZpcmViYXNlPy5zdG9yYWdlQnVja2V0IHx8ICdteXZhbHRlY2gtZGV2LmZpcmViYXNlc3RvcmFnZS5hcHAnO1xuICAgIGNvbnN0IHBhdGggPSBgdXNlcnMvJHt1c2VySWR9LyR7dHlwZX0uanBnYDtcbiAgICByZXR1cm4gYGh0dHBzOi8vZmlyZWJhc2VzdG9yYWdlLmdvb2dsZWFwaXMuY29tL3YwL2IvJHtidWNrZXR9L28vJHtlbmNvZGVVUklDb21wb25lbnQocGF0aCl9P2FsdD1tZWRpYWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTcOJVE9ET1MgUFJJVkFET1NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE1hcGVhIGVsIGVzdGFkbyBkZSBsYSB0YXJlYSBkZSB1cGxvYWRcbiAgICovXG4gIHByaXZhdGUgbWFwVGFza1N0YXRlKHN0YXRlOiBzdHJpbmcpOiBVcGxvYWRTdGF0ZSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSAncnVubmluZyc6XG4gICAgICAgIHJldHVybiAncnVubmluZyc7XG4gICAgICBjYXNlICdwYXVzZWQnOlxuICAgICAgICByZXR1cm4gJ3BhdXNlZCc7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgcmV0dXJuICdzdWNjZXNzJztcbiAgICAgIGNhc2UgJ2NhbmNlbGVkJzpcbiAgICAgICAgcmV0dXJuICdjYW5jZWxlZCc7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdydW5uaW5nJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmllcnRlIGVycm9yZXMgZGUgU3RvcmFnZSBhIG1lbnNhamVzIGVuIGVzcGHDsW9sXG4gICAqL1xuICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSAoZXJyb3IgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGU7XG5cbiAgICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgICBjYXNlICdzdG9yYWdlL29iamVjdC1ub3QtZm91bmQnOlxuICAgICAgICAgIHJldHVybiAnRWwgYXJjaGl2byBubyBleGlzdGUnO1xuICAgICAgICBjYXNlICdzdG9yYWdlL3VuYXV0aG9yaXplZCc6XG4gICAgICAgICAgcmV0dXJuICdObyB0aWVuZXMgcGVybWlzbyBwYXJhIGFjY2VkZXIgYSBlc3RlIGFyY2hpdm8nO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2NhbmNlbGVkJzpcbiAgICAgICAgICByZXR1cm4gJ0xhIG9wZXJhY2nDs24gZnVlIGNhbmNlbGFkYSc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvcXVvdGEtZXhjZWVkZWQnOlxuICAgICAgICAgIHJldHVybiAnU2UgaGEgZXhjZWRpZG8gbGEgY3VvdGEgZGUgYWxtYWNlbmFtaWVudG8nO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2ludmFsaWQtY2hlY2tzdW0nOlxuICAgICAgICAgIHJldHVybiAnRWwgYXJjaGl2byBlc3TDoSBjb3JydXB0byc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvcmV0cnktbGltaXQtZXhjZWVkZWQnOlxuICAgICAgICAgIHJldHVybiAnRXJyb3IgZGUgY29uZXhpw7NuLiBJbnRlbnRhIGRlIG51ZXZvJztcbiAgICAgICAgY2FzZSAnc3RvcmFnZS9pbnZhbGlkLXVybCc6XG4gICAgICAgICAgcmV0dXJuICdVUkwgZGUgYXJjaGl2byBpbnbDoWxpZGEnO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2ludmFsaWQtYXJndW1lbnQnOlxuICAgICAgICAgIHJldHVybiAnQXJndW1lbnRvIGludsOhbGlkbyc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGVycm9yLm1lc3NhZ2UgfHwgJ0Vycm9yIGRlIGFsbWFjZW5hbWllbnRvIGRlc2Nvbm9jaWRvJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gJ0Vycm9yIGRlIGFsbWFjZW5hbWllbnRvIGRlc2Nvbm9jaWRvJztcbiAgfVxufVxuIl19
|
|
652
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCw4RUFBOEU7QUFDOUUsMkRBQTJEO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBQ2QsV0FBVyxFQUNYLE9BQU8sRUFDUCxHQUFHLEVBRUgsb0JBQW9CLEdBR3JCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFVbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUV4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFJekIsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUg1QixXQUFNLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0QsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRXhDOzs7Ozs7O09BT0c7SUFDSyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDeEQsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuRCxPQUFPLEdBQUcsSUFBSSxD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QixDQUFDO2dCQUNuQyxLQUFLLDBCQUEwQjtvQkFDN0IsT0FBTyxvQkFBb0IsQ0FBQztnQkFDOUI7b0JBQ0UsT0FBTyxLQUFLLENBQUMsT0FBTyxJQUFJLHFDQUFxQyxDQUFDO1lBQ2xFLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxxQ0FBcUMsQ0FBQztJQUMvQyxDQUFDOytHQS9wQlUsY0FBYzttSEFBZCxjQUFjLGNBREQsTUFBTTs7NEZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdG9yYWdlIFNlcnZpY2VcbiAqXG4gKiBTZXJ2aWNpbyBwYXJhIG9wZXJhY2lvbmVzIGRlIEZpcmViYXNlIFN0b3JhZ2UuXG4gKiBTb3BvcnRhIHVwbG9hZCBjb24gdHJhY2tpbmcgZGUgcHJvZ3Jlc28sIGRvd25sb2FkIHkgZ2VzdGnDs24gZGUgYXJjaGl2b3MuXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBnZXRBdXRoOiBzb2xvIHBhcmEgZWwgZmFsbGJhY2sgUkVTVCBkZSB1cGxvYWRBbmRHZXRVcmwg4oCUIGVsIGlkVG9rZW4gY29uIHF1ZVxuLy8gc2UgZmlybWEgZWwgcmVpbnRlbnRvIGN1YW5kbyBlbCBjYW5hbCBYSFIgZGVsIFNESyBmYWxsYS5cbmltcG9ydCB7IGdldEF1dGggfSBmcm9tICdmaXJlYmFzZS9hdXRoJztcbmltcG9ydCB7XG4gIGRlbGV0ZU9iamVjdCxcbiAgZ2V0RG93bmxvYWRVUkwsXG4gIGdldE1ldGFkYXRhLFxuICBsaXN0QWxsLFxuICByZWYsXG4gIFN0b3JhZ2UsXG4gIHVwbG9hZEJ5dGVzUmVzdW1hYmxlLFxuICBVcGxvYWRNZXRhZGF0YSxcbiAgVXBsb2FkVGFza1NuYXBzaG90LFxufSBmcm9tICdAYW5ndWxhci9maXJlL3N0b3JhZ2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFZBTFRFQ0hfRklSRUJBU0VfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHtcbiAgSW1hZ2VVcGxvYWRPcHRpb25zLFxuICBJbWFnZVVwbG9hZFJlc3VsdCxcbiAgU3RvcmFnZUxpc3RSZXN1bHQsXG4gIFN0b3JhZ2VNZXRhZGF0YSxcbiAgVXBsb2FkUHJvZ3Jlc3MsXG4gIFVwbG9hZFJlc3VsdCxcbiAgVXBsb2FkU3RhdGUsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSU1BR0VfREVGQVVMVFMsIEltYWdlU2VydmljZSB9IGZyb20gJy4uL2ltYWdlJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIEZpcmViYXNlIFN0b3JhZ2UuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIEBDb21wb25lbnQoey4uLn0pXG4gKiBleHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCB7XG4gKiAgIHByaXZhdGUgc3RvcmFnZSA9IGluamVjdChTdG9yYWdlU2VydmljZSk7XG4gKlxuICogICB1cGxvYWRQcm9ncmVzcyA9IHNpZ25hbDxudW1iZXI+KDApO1xuICogICBkb3dubG9hZFVybCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAqXG4gKiAgIGFzeW5jIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCkge1xuICogICAgIGNvbnN0IGZpbGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzPy5bMF07XG4gKiAgICAgaWYgKCFmaWxlKSByZXR1cm47XG4gKlxuICogICAgIC8vIFVwbG9hZCBjb24gcHJvZ3Jlc29cbiAqICAgICB0aGlzLnN0b3JhZ2UudXBsb2FkKGB1cGxvYWRzLyR7ZmlsZS5uYW1lfWAsIGZpbGUpLnN1YnNjcmliZSh7XG4gKiAgICAgICBuZXh0OiAocHJvZ3Jlc3MpID0+IHRoaXMudXBsb2FkUHJvZ3Jlc3Muc2V0KHByb2dyZXNzLnBlcmNlbnRhZ2UpLFxuICogICAgICAgY29tcGxldGU6IGFzeW5jICgpID0+IHtcbiAqICAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldERvd25sb2FkVXJsKGB1cGxvYWRzLyR7ZmlsZS5uYW1lfWApO1xuICogICAgICAgICB0aGlzLmRvd25sb2FkVXJsLnNldCh1cmwpO1xuICogICAgICAgfVxuICogICAgIH0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KFZBTFRFQ0hfRklSRUJBU0VfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGltYWdlU2VydmljZSA9IGluamVjdChJbWFnZVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZSkge31cblxuICAvKipcbiAgICogUHJlZmlqYSBlbCBwYXRoIGRlIHN0b3JhZ2UgY29uIGVsIGFwcElkIHNpIGVzdMOhIGNvbmZpZ3VyYWRvLlxuICAgKiBTaSBubyBoYXkgYXBwSWQgbyBza2lwUHJlZml4IGVzIHRydWUsIHJldG9ybmEgZWwgcGF0aCBzaW4gbW9kaWZpY2FyLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgb3JpZ2luYWxcbiAgICogQHBhcmFtIHNraXBQcmVmaXggLSBTaSBlcyB0cnVlLCBubyBhcGxpY2EgZWwgcHJlZml4ICjDunRpbCBwYXJhIHBhdGhzIGNvbXBhcnRpZG9zIGNvbW8gYXZhdGFyZXMpXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBwcmVmaXhTdG9yYWdlUGF0aChwYXRoOiBzdHJpbmcsIHNraXBQcmVmaXggPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgaWYgKHNraXBQcmVmaXggfHwgIXRoaXMuY29uZmlnPy5hcHBJZCkgcmV0dXJuIHBhdGg7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uZmlnLmFwcElkfS8ke3BhdGh9YDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVUExPQURcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIFN1YmUgdW4gYXJjaGl2byBjb24gdHJhY2tpbmcgZGUgcHJvZ3Jlc28uXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gUnV0YSBlbiBTdG9yYWdlIGRvbmRlIGd1YXJkYXIgZWwgYXJjaGl2b1xuICAgKiBAcGFyYW0gZmlsZSAtIEFyY2hpdm8gYSBzdWJpciAoRmlsZSBvIEJsb2IpXG4gICAqIEBwYXJhbSBtZXRhZGF0YSAtIE1ldGFkYXRhIG9wY2lvbmFsIChjb250ZW50VHlwZSwgY3VzdG9tTWV0YWRhdGEpXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgcXVlIGVtaXRlIGVsIHByb2dyZXNvIHkgY29tcGxldGEgY3VhbmRvIHRlcm1pbmFcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiAvLyBVcGxvYWQgYsOhc2ljb1xuICAgKiBzdG9yYWdlLnVwbG9hZCgnaW1hZ2VzL3Bob3RvLmpwZycsIGZpbGUpLnN1YnNjcmliZSh7XG4gICAqICAgbmV4dDogKHByb2dyZXNzKSA9PiBjb25zb2xlLmxvZyhgJHtwcm9ncmVzcy5wZXJjZW50YWdlfSVgKSxcbiAgICogICBjb21wbGV0ZTogKCkgPT4gY29uc29sZS5sb2coJ1VwbG9hZCBjb21wbGV0YWRvJylcbiAgICogfSk7XG4gICAqXG4gICAqIC8vIENvbiBtZXRhZGF0YVxuICAgKiBzdG9yYWdlLnVwbG9hZCgnZG9jcy9yZXBvcnQucGRmJywgZmlsZSwge1xuICAgKiAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vcGRmJyxcbiAgICogICBjdXN0b21NZXRhZGF0YTogeyB1cGxvYWRlZEJ5OiAndXNlcjEyMycgfVxuICAgKiB9KS5zdWJzY3JpYmUoLi4uKTtcbiAgICogYGBgXG4gICAqL1xuICB1cGxvYWQocGF0aDogc3RyaW5nLCBmaWxlOiBGaWxlIHwgQmxvYiwgbWV0YWRhdGE/OiBTdG9yYWdlTWV0YWRhdGEpOiBPYnNlcnZhYmxlPFVwbG9hZFByb2dyZXNzPiB7XG4gICAgY29uc3QgcHJlZml4ZWRQYXRoID0gdGhpcy5wcmVmaXhTdG9yYWdlUGF0aChwYXRoLCBtZXRhZGF0YT8uc2tpcFByZWZpeCk7XG4gICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgY29uc3QgdXBsb2FkTWV0YWRhdGE6IFVwbG9hZE1ldGFkYXRhID0ge1xuICAgICAgY29udGVudFR5cGU6IG1ldGFkYXRhPy5jb250ZW50VHlwZSB8fCAoZmlsZSBpbnN0YW5jZW9mIEZpbGUgPyBmaWxlLnR5cGUgOiB1bmRlZmluZWQpLFxuICAgICAgY3VzdG9tTWV0YWRhdGE6IG1ldGFkYXRhPy5jdXN0b21NZXRhZGF0YSxcbiAgICAgIC8vIERlZmF1bHQgYWdyZXNpdm86IGdldERvd25sb2FkVVJMIGRldnVlbHZlIFVSTHMgY29uIHRva2VuIMO6bmljbyBwb3JcbiAgICAgIC8vIHZlcnNpw7NuIGRlbCBvYmpldG8g4oaSIHJlLXN1YmlyIGVsIGFyY2hpdm8gY2FtYmlhIGVsIFVSTCAoY2FjaGUtYnVzdFxuICAgICAgLy8gbmF0dXJhbCkuIEVsIGNvbnN1bWlkb3IgcHVlZGUgb3ZlcnJpZGUgcGFzYW5kbyBjYWNoZUNvbnRyb2wgZXhwbMOtY2l0by5cbiAgICAgIGNhY2hlQ29udHJvbDogbWV0YWRhdGE/LmNhY2hlQ29udHJvbCA/PyAncHVibGljLCBtYXgtYWdlPTMxNTM2MDAwJyxcbiAgICB9O1xuXG4gICAgY29uc3QgdGFzayA9IHVwbG9hZEJ5dGVzUmVzdW1hYmxlKHN0b3JhZ2VSZWYsIGZpbGUsIHVwbG9hZE1ldGFkYXRhKTtcbiAgICBjb25zdCBwcm9ncmVzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVwbG9hZFByb2dyZXNzPih7XG4gICAgICBieXRlc1RyYW5zZmVycmVkOiAwLFxuICAgICAgdG90YWxCeXRlczogZmlsZS5zaXplLFxuICAgICAgcGVyY2VudGFnZTogMCxcbiAgICAgIHN0YXRlOiAncnVubmluZycsXG4gICAgfSk7XG5cbiAgICB0YXNrLm9uKFxuICAgICAgJ3N0YXRlX2NoYW5nZWQnLFxuICAgICAgKHNuYXBzaG90OiBVcGxvYWRUYXNrU25hcHNob3QpID0+IHtcbiAgICAgICAgcHJvZ3Jlc3MkLm5leHQoe1xuICAgICAgICAgIGJ5dGVzVHJhbnNmZXJyZWQ6IHNuYXBzaG90LmJ5dGVzVHJhbnNmZXJyZWQsXG4gICAgICAgICAgdG90YWxCeXRlczogc25hcHNob3QudG90YWxCeXRlcyxcbiAgICAgICAgICBwZXJjZW50YWdlOiBNYXRoLnJvdW5kKChzbmFwc2hvdC5ieXRlc1RyYW5zZmVycmVkIC8gc25hcHNob3QudG90YWxCeXRlcykgKiAxMDApLFxuICAgICAgICAgIHN0YXRlOiB0aGlzLm1hcFRhc2tTdGF0ZShzbmFwc2hvdC5zdGF0ZSksXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgcHJvZ3Jlc3MkLm5leHQoe1xuICAgICAgICAgIGJ5dGVzVHJhbnNmZXJyZWQ6IDAsXG4gICAgICAgICAgdG90YWxCeXRlczogZmlsZS5zaXplLFxuICAgICAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICAgICAgc3RhdGU6ICdlcnJvcicsXG4gICAgICAgIH0pO1xuICAgICAgICBwcm9ncmVzcyQuZXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHByb2dyZXNzJC5uZXh0KHtcbiAgICAgICAgICBieXRlc1RyYW5zZmVycmVkOiBmaWxlLnNpemUsXG4gICAgICAgICAgdG90YWxCeXRlczogZmlsZS5zaXplLFxuICAgICAgICAgIHBlcmNlbnRhZ2U6IDEwMCxcbiAgICAgICAgICBzdGF0ZTogJ3N1Y2Nlc3MnLFxuICAgICAgICB9KTtcbiAgICAgICAgcHJvZ3Jlc3MkLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiBwcm9ncmVzcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogTGVlIGVsIGFyY2hpdm8gQ09NUExFVE8gYSBtZW1vcmlhIHkgZGV2dWVsdmUgdW4gQmxvYiBhdXRvY29udGVuaWRvLlxuICAgKlxuICAgKiBObyBlcyB1bmEgY29waWEgcG9yIGd1c3RvOiBlbiBTYWZhcmksIHVuIGBGaWxlYCBxdWUgbm8gZXN0w6EgcGxlbmFtZW50ZVxuICAgKiBtYXRlcmlhbGl6YWRvIGVuIGRpc2NvIOKAlCB0w61waWNvIGRlIGZvdG9zIGxsZWdhZGFzIGRlbCBpUGhvbmUgdsOtYVxuICAgKiBGb3Rvcy9pQ2xvdWQg4oCUIGhhY2UgZmFsbGFyIGxhIGxlY3R1cmEgZGVsIFNESyBkZSBTdG9yYWdlIGVuIGVsIGVudsOtbywgcG9yXG4gICAqIHN1cyBkb3MgY2FtaW5vcyAodXBsb2FkQnl0ZXMgeSB1cGxvYWRCeXRlc1Jlc3VtYWJsZSksIGNvbiB1blxuICAgKiBgc3RvcmFnZS91bmtub3duYCBvcGFjby4gRWwgbWlzbW8gU2FmYXJpIHN1YmUgc2luIHByb2JsZW1hIGFyY2hpdm9zIGxvY2FsZXNcbiAgICogZGUgb3RyYSBwcm9jZWRlbmNpYSwgYXPDrSBxdWUgZWwgYnVnIGFwYXJlY2UgXCJhIHZlY2VzXCIgeSBzaW4gbWVuc2FqZSDDunRpbC5cbiAgICogYGFycmF5QnVmZmVyKClgIGZ1ZXJ6YSBsYSBsZWN0dXJhIGNvbXBsZXRhOyBlbCBCbG9iIHJlc3VsdGFudGUgeWEgbm9cbiAgICogZGVwZW5kZSBkZWwgYmFja2luZyBmaWxlLiBDYXNvIHJlYWw6IGJpbmdvIGltYWdlLXBpY2tlciwgMjAyNi0wOC0wNS5cbiAgICpcbiAgICogVW4gQmxvYiAobm8tRmlsZSkgeWEgbmFjacOzIGVuIG1lbW9yaWEg4oCUIHNlIGRldnVlbHZlIHRhbCBjdWFsLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbWF0ZXJpYWxpemUoZmlsZTogRmlsZSB8IEJsb2IpOiBQcm9taXNlPEJsb2I+IHtcbiAgICBpZiAoIShmaWxlIGluc3RhbmNlb2YgRmlsZSkpIHJldHVybiBmaWxlO1xuICAgIGNvbnN0IGNvbnRlbmlkbyA9IGF3YWl0IGZpbGUuYXJyYXlCdWZmZXIoKTtcbiAgICByZXR1cm4gbmV3IEJsb2IoW2NvbnRlbmlkb10sIHsgdHlwZTogZmlsZS50eXBlIHx8ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlaW50ZW50byBwb3IgUkVTVCBjdWFuZG8gZWwgU0RLIGZhbGxhIGxhIHN1YmlkYS5cbiAgICpcbiAgICogRWwgU0RLIHZhIHBvciBYTUxIdHRwUmVxdWVzdCB5IHN1IGRldGFsbGUgZGUgZXJyb3IgZXMgYHhoci5zdGF0dXNUZXh0YCwgcXVlXG4gICAqIHNvYnJlIEhUVFAvMiB2aWVuZSBzaWVtcHJlIHZhY8OtbyDigJQgdW4gZmFsbG8gZGVsIFNESyBlcyBpbGVnaWJsZSB5LCBlbiBsb3NcbiAgICogZW50b3Jub3MgZG9uZGUgYWxnbyBpbnRlcmZpZXJlIGNvbiBYSFIsIGFkZW3DoXMgZXZpdGFibGU6IGVzdGUgY2FtaW5vIHVzYVxuICAgKiBgZmV0Y2hgIGNvbiBgdXBsb2FkVHlwZT1tZWRpYWAgKGN1ZXJwbyBiaW5hcmlvIHNpbXBsZSkuIExhIFVSTCBzZSBhcm1hIGNvblxuICAgKiBlbCBkb3dubG9hZFRva2VuIGRlIGxhIHJlc3B1ZXN0YSBwb3JxdWUgZ2V0RG93bmxvYWRVUkwgdGFtYmnDqW4gdmEgcG9yIFhIUi5cbiAgICpcbiAgICogRGV2dWVsdmUgbnVsbCBzaSB0YW1wb2NvIHB1ZG8g4oCUIGVsIGNhbGxlciByZXBvcnRhIGVsIGVycm9yIG9yaWdpbmFsIGRlbCBTREsuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB1cGxvYWRWaWFSZXN0KFxuICAgIHByZWZpeGVkUGF0aDogc3RyaW5nLFxuICAgIGJsb2I6IEJsb2IsXG4gICAgY29udGVudFR5cGU6IHN0cmluZ1xuICApOiBQcm9taXNlPFVwbG9hZFJlc3VsdCB8IG51bGw+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRBdXRoKCkuY3VycmVudFVzZXI/LmdldElkVG9rZW4oKTtcbiAgICAgIGNvbnN0IGJ1Y2tldCA9IHRoaXMuc3RvcmFnZS5hcHAub3B0aW9ucy5zdG9yYWdlQnVja2V0O1xuICAgICAgaWYgKCF0b2tlbiB8fCAhYnVja2V0KSByZXR1cm4gbnVsbDtcblxuICAgICAgY29uc3Qgbm9tYnJlID0gZW5jb2RlVVJJQ29tcG9uZW50KHByZWZpeGVkUGF0aCk7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwczovL2ZpcmViYXNlc3RvcmFnZS5nb29nbGVhcGlzLmNvbS92MC9iLyR7YnVja2V0fS9vP25hbWU9JHtub21icmV9JnVwbG9hZFR5cGU9bWVkaWFgLFxuICAgICAgICB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgaGVhZGVyczogeyBBdXRob3JpemF0aW9uOiBgRmlyZWJhc2UgJHt0b2tlbn1gLCAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUgfSxcbiAgICAgICAgICBib2R5OiBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCksXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBpZiAoIXJlc3Aub2spIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW1N0b3JhZ2VdIFJFU1QgZmFsbGJhY2sgZmFpbGVkOicsIHtcbiAgICAgICAgICBwYXRoOiBwcmVmaXhlZFBhdGgsXG4gICAgICAgICAgc3RhdHVzOiByZXNwLnN0YXR1cyxcbiAgICAgICAgICBib2R5OiAoYXdhaXQgcmVzcC50ZXh0KCkpLnJlcGxhY2UoL1xccysvZywgJyAnKS5zbGljZSgwLCAzMDApLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBtZXRhID0gKGF3YWl0IHJlc3AuanNvbigpKSBhcyB7XG4gICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgIHNpemU/OiBzdHJpbmc7XG4gICAgICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICAgICAgICBkb3dubG9hZFRva2Vucz86IHN0cmluZztcbiAgICAgIH07XG4gICAgICAvLyBVbiAyMDAgbm8gcHJ1ZWJhIHF1ZSBsbGVnw7MgZWwgY29udGVuaWRvOiBTYWZhcmkgaGEgZW52aWFkbyBjdWVycG9zXG4gICAgICAvLyB2YWPDrW9zIHF1ZSBTdG9yYWdlIGFjZXB0YSBjb21vIG9iamV0b3MgZGUgMCBieXRlcy4gVmVyaWZpY2FyIHkgbGltcGlhci5cbiAgICAgIGlmIChOdW1iZXIobWV0YS5zaXplID8/IC0xKSAhPT0gYmxvYi5zaXplKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTdG9yYWdlXSBSRVNUIGZhbGxiYWNrIHNpemUgbWlzbWF0Y2g6Jywge1xuICAgICAgICAgIHBhdGg6IHByZWZpeGVkUGF0aCxcbiAgICAgICAgICBlc3BlcmFkbzogYmxvYi5zaXplLFxuICAgICAgICAgIGd1YXJkYWRvOiBtZXRhLnNpemUsXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBmZXRjaChgaHR0cHM6Ly9maXJlYmFzZXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vdjAvYi8ke2J1Y2tldH0vby8ke25vbWJyZX1gLCB7XG4gICAgICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgICAgICBoZWFkZXJzOiB7IEF1dGhvcml6YXRpb246IGBGaXJlYmFzZSAke3Rva2VufWAgfSxcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBkdCA9IG1ldGEuZG93bmxvYWRUb2tlbnM/LnNwbGl0KCcsJylbMF07XG4gICAgICBjb25zdCBkb3dubG9hZFVybCA9XG4gICAgICAgIGBodHRwczovL2ZpcmViYXNlc3RvcmFnZS5nb29nbGVhcGlzLmNvbS92MC9iLyR7YnVja2V0fS9vLyR7bm9tYnJlfT9hbHQ9bWVkaWFgICtcbiAgICAgICAgKGR0ID8gYCZ0b2tlbj0ke2R0fWAgOiAnJyk7XG4gICAgICBjb25zb2xlLmxvZygnW1N0b3JhZ2VdIHVwbG9hZCBPSyAoUkVTVCBmYWxsYmFjayk6JywgeyBwYXRoOiBwcmVmaXhlZFBhdGggfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb3dubG9hZFVybCxcbiAgICAgICAgZnVsbFBhdGg6IHByZWZpeGVkUGF0aCxcbiAgICAgICAgbmFtZTogcHJlZml4ZWRQYXRoLnNwbGl0KCcvJykucG9wKCkgfHwgcHJlZml4ZWRQYXRoLFxuICAgICAgICBzaXplOiBibG9iLnNpemUsXG4gICAgICAgIGNvbnRlbnRUeXBlOiBtZXRhLmNvbnRlbnRUeXBlIHx8IGNvbnRlbnRUeXBlLFxuICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbU3RvcmFnZV0gUkVTVCBmYWxsYmFjayB0aHJldzonLCB7IHBhdGg6IHByZWZpeGVkUGF0aCwgZXJyb3IgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3ViZSB1biBhcmNoaXZvIHkgcmV0b3JuYSBsYSBVUkwgZGUgZGVzY2FyZ2EgYWwgY29tcGxldGFyLlxuICAgKlxuICAgKiBSb2J1c3RlY2lkbyBwYXJhIGVsIGNhc28gU2FmYXJpL2lQaG9uZSAodmVyIGBtYXRlcmlhbGl6ZWApOiBsZWUgZWwgYXJjaGl2b1xuICAgKiBhIG1lbW9yaWEgYW50ZXMgZGUgc3ViaXJsbywgdmVyaWZpY2EgcXVlIGVsIHRhbWHDsW8gZ3VhcmRhZG8gY29pbmNpZGEgeSwgc2lcbiAgICogZWwgU0RLIGZhbGxhLCByZWludGVudGEgdW5hIHZleiBwb3IgUkVTVCBhbnRlcyBkZSByZWNoYXphci5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBSdXRhIGVuIFN0b3JhZ2VcbiAgICogQHBhcmFtIGZpbGUgLSBBcmNoaXZvIGEgc3ViaXJcbiAgICogQHBhcmFtIG1ldGFkYXRhIC0gTWV0YWRhdGEgb3BjaW9uYWxcbiAgICogQHJldHVybnMgUmVzdWx0YWRvIGRlbCB1cGxvYWQgY29uIFVSTCBkZSBkZXNjYXJnYVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JhZ2UudXBsb2FkQW5kR2V0VXJsKCdhdmF0YXJzL3VzZXIxMjMuanBnJywgZmlsZSk7XG4gICAqIGNvbnNvbGUubG9nKCdVUkw6JywgcmVzdWx0LmRvd25sb2FkVXJsKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyB1cGxvYWRBbmRHZXRVcmwoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGZpbGU6IEZpbGUgfCBCbG9iLFxuICAgIG1ldGFkYXRhPzogU3RvcmFnZU1ldGFkYXRhXG4gICk6IFByb21pc2U8VXBsb2FkUmVzdWx0PiB7XG4gICAgY29uc3QgcHJlZml4ZWRQYXRoID0gdGhpcy5wcmVmaXhTdG9yYWdlUGF0aChwYXRoLCBtZXRhZGF0YT8uc2tpcFByZWZpeCk7XG4gICAgY29uc29sZS5sb2coJ1tTdG9yYWdlXSB1cGxvYWRBbmRHZXRVcmwgc3RhcnQ6JywgeyBwYXRoOiBwcmVmaXhlZFBhdGgsIHNpemU6IGZpbGUuc2l6ZSB9KTtcblxuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gbWV0YWRhdGE/LmNvbnRlbnRUeXBlIHx8IGZpbGUudHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcbiAgICBjb25zdCBibG9iID0gYXdhaXQgdGhpcy5tYXRlcmlhbGl6ZShmaWxlKTtcblxuICAgIGNvbnN0IHNka1Jlc3VsdCA9IGF3YWl0IG5ldyBQcm9taXNlPFVwbG9hZFJlc3VsdD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy51cGxvYWQocGF0aCwgYmxvYiwgeyAuLi5tZXRhZGF0YSwgY29udGVudFR5cGUgfSkuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBkb3dubG9hZFVybCA9IGF3YWl0IGdldERvd25sb2FkVVJMKHN0b3JhZ2VSZWYpO1xuICAgICAgICAgICAgY29uc3Qgc3RvcmVkTWV0YWRhdGEgPSBhd2FpdCBnZXRNZXRhZGF0YShzdG9yYWdlUmVmKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbU3RvcmFnZV0gdXBsb2FkIE9LOicsIHtcbiAgICAgICAgICAgICAgcGF0aDogcHJlZml4ZWRQYXRoLFxuICAgICAgICAgICAgICB1cmw6IGRvd25sb2FkVXJsLnNsaWNlKDAsIDYwKSArICfigKYnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgZG93bmxvYWRVcmwsXG4gICAgICAgICAgICAgIGZ1bGxQYXRoOiBzdG9yZWRNZXRhZGF0YS5mdWxsUGF0aCxcbiAgICAgICAgICAgICAgbmFtZTogc3RvcmVkTWV0YWRhdGEubmFtZSxcbiAgICAgICAgICAgICAgc2l6ZTogc3RvcmVkTWV0YWRhdGEuc2l6ZSxcbiAgICAgICAgICAgICAgY29udGVudFR5cGU6IHN0b3JlZE1ldGFkYXRhLmNvbnRlbnRUeXBlIHx8ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuICAgICAgICAgICAgICBtZXRhZGF0YTogc3RvcmVkTWV0YWRhdGEuY3VzdG9tTWV0YWRhdGEgfHwge30sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1N0b3JhZ2VdIGdldERvd25sb2FkVVJML21ldGFkYXRhIGZhaWxlZDonLCB7XG4gICAgICAgICAgICAgIHBhdGg6IHByZWZpeGVkUGF0aCxcbiAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlamVjdCh0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdbU3RvcmFnZV0gdXBsb2FkIGZhaWxlZDonLCB7IHBhdGg6IHByZWZpeGVkUGF0aCwgZXJyb3IgfSk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pLmNhdGNoKGFzeW5jIG9yaWdpbmFsRXJyb3IgPT4ge1xuICAgICAgY29uc3QgcmVzY2F0YWRvID0gYXdhaXQgdGhpcy51cGxvYWRWaWFSZXN0KHByZWZpeGVkUGF0aCwgYmxvYiwgY29udGVudFR5cGUpO1xuICAgICAgaWYgKHJlc2NhdGFkbykgcmV0dXJuIHJlc2NhdGFkbztcbiAgICAgIHRocm93IG9yaWdpbmFsRXJyb3I7XG4gICAgfSk7XG5cbiAgICAvLyBWZXJpZmljYWNpw7NuIGRlIGNvbnRlbmlkbyB0YW1iacOpbiBlbiBlbCBjYW1pbm8gU0RLOiB1biBvYmpldG8gZGUgMCBieXRlc1xuICAgIC8vIGNvbiBVUkwgdsOhbGlkYSBlcyBwZW9yIHF1ZSB1biBlcnJvciDigJQgbGEgaW1hZ2VuIFwic3ViZVwiIHkgbnVuY2EgY2FyZ2EuXG4gICAgaWYgKHNka1Jlc3VsdC5zaXplICE9PSBibG9iLnNpemUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTdG9yYWdlXSBzaXplIG1pc21hdGNoIHRyYXMgc3ViaXI6Jywge1xuICAgICAgICBwYXRoOiBwcmVmaXhlZFBhdGgsXG4gICAgICAgIGVzcGVyYWRvOiBibG9iLnNpemUsXG4gICAgICAgIGd1YXJkYWRvOiBzZGtSZXN1bHQuc2l6ZSxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgZGVsZXRlT2JqZWN0KHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCkpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VsIGFyY2hpdm8gbm8gc2Ugc3ViacOzIGNvbXBsZXRvLiBJbnTDqW50YWxvIGRlIG51ZXZvLicpO1xuICAgIH1cbiAgICByZXR1cm4gc2RrUmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc2EgeSBzdWJlIHVuYSBpbWFnZW4uXG4gICAqXG4gICAqIEEgZGlmZXJlbmNpYSBkZSBgdXBsb2FkQW5kR2V0VXJsYCwgZXN0ZSBtw6l0b2RvIGVzIGVzcGVjw61maWNvIHBhcmEgaW3DoWdlbmVzOlxuICAgKiBjb21wcmltZSBwb3IgZGVmZWN0byBjb24gYEltYWdlU2VydmljZWAgeSBwdWVkZSBnZW5lcmFyIHVuIHRodW1ibmFpbCBlbiB1blxuICAgKiBwYXRoIHNlcGFyYWRvLiBQYXJhIGFyY2hpdm9zIHF1ZSBkZWJlbiBjb25zZXJ2YXJzZSBieXRlIGEgYnl0ZSwgdXNhclxuICAgKiBgdXBsb2FkQW5kR2V0VXJsYC5cbiAgICovXG4gIGFzeW5jIHVwbG9hZEltYWdlQW5kR2V0VXJsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBmaWxlOiBGaWxlIHwgQmxvYixcbiAgICBvcHRpb25zPzogSW1hZ2VVcGxvYWRPcHRpb25zXG4gICk6IFByb21pc2U8SW1hZ2VVcGxvYWRSZXN1bHQ+IHtcbiAgICBjb25zdCB7XG4gICAgICBjb21wcmVzcyA9IHRydWUsXG4gICAgICBjb21wcmVzc2lvbixcbiAgICAgIHRodW1ibmFpbFBhdGgsXG4gICAgICB0aHVtYm5haWxTaXplLFxuICAgICAgdGh1bWJuYWlsTWV0YWRhdGEsXG4gICAgICAuLi5tZXRhZGF0YVxuICAgIH0gPSBvcHRpb25zID8/IHt9O1xuXG4gICAgY29uc3QgcHJvY2Vzc2VkID0gY29tcHJlc3NcbiAgICAgID8gYXdhaXQgdGhpcy5pbWFnZVNlcnZpY2UuY29tcHJlc3MoZmlsZSwgY29tcHJlc3Npb24pXG4gICAgICA6IHtcbiAgICAgICAgICBibG9iOiBhd2FpdCB0aGlzLm1hdGVyaWFsaXplKGZpbGUpLFxuICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgIH07XG5cbiAgICBjb25zdCBpbWFnZUNvbnRlbnRUeXBlID0gY29tcHJlc3NcbiAgICAgID8gKGNvbXByZXNzaW9uPy5taW1lVHlwZSA/PyBJTUFHRV9ERUZBVUxUUy5taW1lVHlwZSlcbiAgICAgIDogKG1ldGFkYXRhLmNvbnRlbnRUeXBlID8/IGZpbGUudHlwZSA/PyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnVwbG9hZEFuZEdldFVybChwYXRoLCBwcm9jZXNzZWQuYmxvYiwge1xuICAgICAgLi4ubWV0YWRhdGEsXG4gICAgICBjb250ZW50VHlwZTogaW1hZ2VDb250ZW50VHlwZSxcbiAgICB9KTtcblxuICAgIGxldCB0aHVtYm5haWw6IFVwbG9hZFJlc3VsdCB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGh1bWJuYWlsUGF0aCkge1xuICAgICAgY29uc3QgdGh1bWIgPSBhd2FpdCB0aGlzLmltYWdlU2VydmljZS50aHVtYm5haWwocHJvY2Vzc2VkLmJsb2IsIHRodW1ibmFpbFNpemUpO1xuICAgICAgdGh1bWJuYWlsID0gYXdhaXQgdGhpcy51cGxvYWRBbmRHZXRVcmwodGh1bWJuYWlsUGF0aCwgdGh1bWIuYmxvYiwge1xuICAgICAgICAuLi5tZXRhZGF0YSxcbiAgICAgICAgLi4udGh1bWJuYWlsTWV0YWRhdGEsXG4gICAgICAgIGNvbnRlbnRUeXBlOiB0aHVtYm5haWxNZXRhZGF0YT8uY29udGVudFR5cGUgPz8gSU1BR0VfREVGQVVMVFMubWltZVR5cGUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzdWx0LFxuICAgICAgdGh1bWJuYWlsLFxuICAgICAgcHJvY2Vzc2VkOiB7XG4gICAgICAgIG9yaWdpbmFsU2l6ZTogZmlsZS5zaXplLFxuICAgICAgICBzaXplOiBwcm9jZXNzZWQuYmxvYi5zaXplLFxuICAgICAgICB3aWR0aDogcHJvY2Vzc2VkLndpZHRoLFxuICAgICAgICBoZWlnaHQ6IHByb2Nlc3NlZC5oZWlnaHQsXG4gICAgICAgIGNvbXByZXNzZWQ6IGNvbXByZXNzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YmUgdW4gYXJjaGl2byBkZXNkZSB1bmEgRGF0YSBVUkwgKGJhc2U2NCkuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gUnV0YSBlbiBTdG9yYWdlXG4gICAqIEBwYXJhbSBkYXRhVXJsIC0gRGF0YSBVUkwgKGVqOiAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LC4uLicpXG4gICAqIEBwYXJhbSBtZXRhZGF0YSAtIE1ldGFkYXRhIG9wY2lvbmFsXG4gICAqIEByZXR1cm5zIFJlc3VsdGFkbyBkZWwgdXBsb2FkXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gRGVzZGUgY2FudmFzXG4gICAqIGNvbnN0IGRhdGFVcmwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTtcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmFnZS51cGxvYWRGcm9tRGF0YVVybCgnaW1hZ2VzL2RyYXdpbmcucG5nJywgZGF0YVVybCk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgdXBsb2FkRnJvbURhdGFVcmwoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGRhdGFVcmw6IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFN0b3JhZ2VNZXRhZGF0YVxuICApOiBQcm9taXNlPFVwbG9hZFJlc3VsdD4ge1xuICAgIC8vIEV4dHJhZXIgY29udGVudCB0eXBlIHkgZGF0b3MgYmFzZTY0XG4gICAgY29uc3QgbWF0Y2hlcyA9IGRhdGFVcmwubWF0Y2goL15kYXRhOihbXjtdKyk7YmFzZTY0LCguKykkLyk7XG4gICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgVVJMIGludsOhbGlkYScpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gbWF0Y2hlc1sxXTtcbiAgICBjb25zdCBiYXNlNjREYXRhID0gbWF0Y2hlc1syXTtcblxuICAgIC8vIENvbnZlcnRpciBiYXNlNjQgYSBCbG9iXG4gICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGJhc2U2NERhdGEpO1xuICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgYnl0ZU51bWJlcnNbaV0gPSBieXRlQ2hhcmFjdGVycy5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkQW5kR2V0VXJsKHBhdGgsIGJsb2IsIHtcbiAgICAgIGNvbnRlbnRUeXBlLFxuICAgICAgLi4ubWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRE9XTkxPQURcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbGEgVVJMIGRlIGRlc2NhcmdhIGRlIHVuIGFyY2hpdm8uXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gUnV0YSBkZWwgYXJjaGl2byBlbiBTdG9yYWdlXG4gICAqIEByZXR1cm5zIFVSTCBkZSBkZXNjYXJnYVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHVybCA9IGF3YWl0IHN0b3JhZ2UuZ2V0RG93bmxvYWRVcmwoJ2ltYWdlcy9waG90by5qcGcnKTtcbiAgICogLy8gVXNhciBlbiA8aW1nIFtzcmNdPVwidXJsXCI+XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0RG93bmxvYWRVcmwocGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJlZml4ZWRQYXRoID0gdGhpcy5wcmVmaXhTdG9yYWdlUGF0aChwYXRoKTtcbiAgICAgIGNvbnN0IHN0b3JhZ2VSZWYgPSByZWYodGhpcy5zdG9yYWdlLCBwcmVmaXhlZFBhdGgpO1xuICAgICAgcmV0dXJuIGF3YWl0IGdldERvd25sb2FkVVJMKHN0b3JhZ2VSZWYpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYSBtZXRhZGF0YSBkZSB1biBhcmNoaXZvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZGVsIGFyY2hpdm9cbiAgICogQHJldHVybnMgTWV0YWRhdGEgZGVsIGFyY2hpdm9cbiAgICovXG4gIGFzeW5jIGdldE1ldGFkYXRhKHBhdGg6IHN0cmluZyk6IFByb21pc2U8U3RvcmFnZU1ldGFkYXRhICYgeyBzaXplOiBudW1iZXI7IG5hbWU6IHN0cmluZyB9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCk7XG4gICAgICBjb25zdCBzdG9yYWdlUmVmID0gcmVmKHRoaXMuc3RvcmFnZSwgcHJlZml4ZWRQYXRoKTtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgZ2V0TWV0YWRhdGEoc3RvcmFnZVJlZik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50VHlwZTogbWV0YWRhdGEuY29udGVudFR5cGUsXG4gICAgICAgIGN1c3RvbU1ldGFkYXRhOiBtZXRhZGF0YS5jdXN0b21NZXRhZGF0YSxcbiAgICAgICAgY2FjaGVDb250cm9sOiBtZXRhZGF0YS5jYWNoZUNvbnRyb2wsXG4gICAgICAgIHNpemU6IG1ldGFkYXRhLnNpemUsXG4gICAgICAgIG5hbWU6IG1ldGFkYXRhLm5hbWUsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gREVMRVRFXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBFbGltaW5hIHVuIGFyY2hpdm8uXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gUnV0YSBkZWwgYXJjaGl2byBhIGVsaW1pbmFyXG4gICAqIEBwYXJhbSBvcHRpb25zLnNraXBQcmVmaXggLSBTaSBlcyB0cnVlLCBubyBhcGxpY2EgZWwgcHJlZml4IGRlIGFwcElkIChwYXJhXG4gICAqICAgYm9ycmFyIHVuIGFyY2hpdm8gc3ViaWRvIGNvbiBgdXBsb2FkQW5kR2V0VXJsKHBhdGgsIGZpbGUsIHsgc2tpcFByZWZpeDpcbiAgICogICB0cnVlIH0pYCBoYXkgcXVlIHBhc2FyIGVsIG1pc21vIGZsYWcsIG8gZWwgcGF0aCBxdWVkYSBtYWwgYXJtYWRvIHkgZWxcbiAgICogICBkZWxldGUgZmFsbGEgY29udHJhIHVuIG9iamV0byBxdWUgbm8gZXhpc3RlKS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBhd2FpdCBzdG9yYWdlLmRlbGV0ZSgnaW1hZ2VzL29sZC1waG90by5qcGcnKTtcbiAgICogYXdhaXQgc3RvcmFnZS5kZWxldGUoJ2FwcHMvbWVyb3R6L29yZ3MveC9wdWJsaWMvaW1hZ2VzL3BhcnRzL3kvei5wbmcnLCB7IHNraXBQcmVmaXg6IHRydWUgfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHsgc2tpcFByZWZpeD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcmVmaXhlZFBhdGggPSB0aGlzLnByZWZpeFN0b3JhZ2VQYXRoKHBhdGgsIG9wdGlvbnM/LnNraXBQcmVmaXgpO1xuICAgICAgY29uc3Qgc3RvcmFnZVJlZiA9IHJlZih0aGlzLnN0b3JhZ2UsIHByZWZpeGVkUGF0aCk7XG4gICAgICBhd2FpdCBkZWxldGVPYmplY3Qoc3RvcmFnZVJlZik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcikpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hIG3Dumx0aXBsZXMgYXJjaGl2b3MuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRocyAtIEFycmF5IGRlIHJ1dGFzIGEgZWxpbWluYXJcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBhd2FpdCBzdG9yYWdlLmRlbGV0ZU11bHRpcGxlKFtcbiAgICogICAnaW1hZ2VzL3Bob3RvMS5qcGcnLFxuICAgKiAgICdpbWFnZXMvcGhvdG8yLmpwZydcbiAgICogXSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlTXVsdGlwbGUocGF0aHM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocGF0aHMubWFwKHBhdGggPT4gdGhpcy5kZWxldGUocGF0aCkpKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBMSVNUXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBMaXN0YSBhcmNoaXZvcyBlbiB1biBkaXJlY3RvcmlvLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFJ1dGEgZGVsIGRpcmVjdG9yaW9cbiAgICogQHJldHVybnMgTGlzdGEgZGUgcnV0YXMgZGUgYXJjaGl2b3NcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSBhd2FpdCBzdG9yYWdlLmxpc3QoJ2ltYWdlcy8nKTtcbiAgICogY29uc29sZS5sb2cocmVzdWx0Lml0ZW1zKTsgLy8gWydpbWFnZXMvcGhvdG8xLmpwZycsICdpbWFnZXMvcGhvdG8yLmpwZyddXG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgbGlzdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFN0b3JhZ2VMaXN0UmVzdWx0PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByZWZpeGVkUGF0aCA9IHRoaXMucHJlZml4U3RvcmFnZVBhdGgocGF0aCk7XG4gICAgICBjb25zdCBzdG9yYWdlUmVmID0gcmVmKHRoaXMuc3RvcmFnZSwgcHJlZml4ZWRQYXRoKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGxpc3RBbGwoc3RvcmFnZVJlZik7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGl0ZW1zOiByZXN1bHQuaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5mdWxsUGF0aCksXG4gICAgICAgIG5leHRQYWdlVG9rZW46IHVuZGVmaW5lZCwgLy8gbGlzdEFsbCBubyBzb3BvcnRhIHBhZ2luYWNpw7NuXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVVRJTElEQURFU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2VuZXJhIHVuIG5vbWJyZSBkZSBhcmNoaXZvIMO6bmljbyBjb24gdGltZXN0YW1wLlxuICAgKlxuICAgKiBAcGFyYW0gb3JpZ2luYWxOYW1lIC0gTm9tYnJlIG9yaWdpbmFsIGRlbCBhcmNoaXZvXG4gICAqIEBwYXJhbSBwcmVmaXggLSBQcmVmaWpvIG9wY2lvbmFsXG4gICAqIEByZXR1cm5zIE5vbWJyZSDDum5pY29cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCB1bmlxdWVOYW1lID0gc3RvcmFnZS5nZW5lcmF0ZUZpbGVOYW1lKCdwaG90by5qcGcnLCAndXNlcjEyMycpO1xuICAgKiAvLyA9PiAndXNlcjEyM18xNzAzMDkxMjM0NTY3X3Bob3RvLmpwZydcbiAgICogYGBgXG4gICAqL1xuICBnZW5lcmF0ZUZpbGVOYW1lKG9yaWdpbmFsTmFtZTogc3RyaW5nLCBwcmVmaXg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgY29uc3Qgc2FuaXRpemVkTmFtZSA9IG9yaWdpbmFsTmFtZS5yZXBsYWNlKC9bXmEtekEtWjAtOS4tXS9nLCAnXycpO1xuXG4gICAgaWYgKHByZWZpeCkge1xuICAgICAgcmV0dXJuIGAke3ByZWZpeH1fJHt0aW1lc3RhbXB9XyR7c2FuaXRpemVkTmFtZX1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGltZXN0YW1wfV8ke3Nhbml0aXplZE5hbWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmEgdW5hIHJ1dGEgw7puaWNhIHBhcmEgdW4gYXJjaGl2by5cbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdG9yeSAtIERpcmVjdG9yaW8gYmFzZVxuICAgKiBAcGFyYW0gb3JpZ2luYWxOYW1lIC0gTm9tYnJlIG9yaWdpbmFsXG4gICAqIEBwYXJhbSBwcmVmaXggLSBQcmVmaWpvIG9wY2lvbmFsXG4gICAqIEByZXR1cm5zIFJ1dGEgY29tcGxldGEgw7puaWNhXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcGF0aCA9IHN0b3JhZ2UuZ2VuZXJhdGVQYXRoKCd1cGxvYWRzJywgJ3Bob3RvLmpwZycsICd1c2VyMTIzJyk7XG4gICAqIC8vID0+ICd1cGxvYWRzL3VzZXIxMjNfMTcwMzA5MTIzNDU2N19waG90by5qcGcnXG4gICAqIGBgYFxuICAgKi9cbiAgZ2VuZXJhdGVQYXRoKGRpcmVjdG9yeTogc3RyaW5nLCBvcmlnaW5hbE5hbWU6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaWxlTmFtZSA9IHRoaXMuZ2VuZXJhdGVGaWxlTmFtZShvcmlnaW5hbE5hbWUsIHByZWZpeCk7XG4gICAgY29uc3QgY2xlYW5EaXIgPSBkaXJlY3RvcnkucmVwbGFjZSgvXFwvKyQvLCAnJyk7IC8vIFJlbW92ZXIgLyBmaW5hbFxuICAgIHJldHVybiBgJHtjbGVhbkRpcn0vJHtmaWxlTmFtZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbGEgZXh0ZW5zacOzbiBkZSB1biBhcmNoaXZvLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZW5hbWUgLSBOb21icmUgZGVsIGFyY2hpdm9cbiAgICogQHJldHVybnMgRXh0ZW5zacOzbiAoc2luIGVsIHB1bnRvKVxuICAgKi9cbiAgZ2V0RXh0ZW5zaW9uKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzID0gZmlsZW5hbWUuc3BsaXQoJy4nKTtcbiAgICByZXR1cm4gcGFydHMubGVuZ3RoID4gMSA/IHBhcnRzLnBvcCgpIS50b0xvd2VyQ2FzZSgpIDogJyc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgdW4gYXJjaGl2byBlcyB1bmEgaW1hZ2VuIGJhc8OhbmRvc2UgZW4gc3UgZXh0ZW5zacOzbi5cbiAgICovXG4gIGlzSW1hZ2UoZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4dCA9IHRoaXMuZ2V0RXh0ZW5zaW9uKGZpbGVuYW1lKTtcbiAgICByZXR1cm4gWydqcGcnLCAnanBlZycsICdwbmcnLCAnZ2lmJywgJ3dlYnAnLCAnc3ZnJywgJ2JtcCddLmluY2x1ZGVzKGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgdW4gYXJjaGl2byBlcyB1biBkb2N1bWVudG8uXG4gICAqL1xuICBpc0RvY3VtZW50KGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHQgPSB0aGlzLmdldEV4dGVuc2lvbihmaWxlbmFtZSk7XG4gICAgcmV0dXJuIFsncGRmJywgJ2RvYycsICdkb2N4JywgJ3hscycsICd4bHN4JywgJ3BwdCcsICdwcHR4JywgJ3R4dCddLmluY2x1ZGVzKGV4dCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVVNFUiBBVkFUQVIgSEVMUEVSU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQ29uc3RydXllIGxhIFVSTCBkZSBhdmF0YXIgZGUgdW4gdXN1YXJpby5cbiAgICpcbiAgICogTG9zIGF2YXRhcmVzIHNlIGFsbWFjZW5hbiBlbiBwYXRocyBwcmVkZWNpYmxlczogYHVzZXJzL3t1c2VySWR9L2F2YXRhci5qcGdgXG4gICAqIEVzdG8gcGVybWl0ZSBxdWUgY3VhbHF1aWVyIGFwcCBwdWVkYSBtb3N0cmFyIGF2YXRhcmVzIHNpbiBwZWRpciBsYSBVUkwgYWwgYmFja2VuZCxcbiAgICogc29sbyBuZWNlc2l0YSBlbCB1c2VySWQuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VySWQgLSBJRCBkZWwgdXN1YXJpbyAoVUxJRClcbiAgICogQHBhcmFtIHR5cGUgLSAnYXZhdGFyJyBwYXJhIGltYWdlbiBjb21wbGV0YSwgJ3RodW1iJyBwYXJhIHRodW1ibmFpbFxuICAgKiBAcmV0dXJucyBVUkwgZGlyZWN0YSBkZSBGaXJlYmFzZSBTdG9yYWdlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gTW9zdHJhciBhdmF0YXIgZGUgY3VhbHF1aWVyIHVzdWFyaW9cbiAgICogY29uc3QgYXZhdGFyVXJsID0gc3RvcmFnZS5nZXRVc2VyQXZhdGFyVXJsKCcwMUFCQ0QuLi4nKTtcbiAgICogY29uc3QgdGh1bWJVcmwgPSBzdG9yYWdlLmdldFVzZXJBdmF0YXJVcmwoJzAxQUJDRC4uLicsICd0aHVtYicpO1xuICAgKlxuICAgKiAvLyBDb24gY2FjaGUtYnVzdGluZ1xuICAgKiBjb25zdCBmcmVzaFVybCA9IHN0b3JhZ2UuZ2V0VXNlckF2YXRhclVybCh1c2VySWQpICsgYCZ0PSR7RGF0ZS5ub3coKX1gO1xuICAgKiBgYGBcbiAgICovXG4gIGdldFVzZXJBdmF0YXJVcmwodXNlcklkOiBzdHJpbmcsIHR5cGU6ICdhdmF0YXInIHwgJ3RodW1iJyA9ICdhdmF0YXInKTogc3RyaW5nIHtcbiAgICBjb25zdCBidWNrZXQgPSB0aGlzLmNvbmZpZz8uZmlyZWJhc2U/LnN0b3JhZ2VCdWNrZXQgfHwgJ215dmFsdGVjaC1kZXYuZmlyZWJhc2VzdG9yYWdlLmFwcCc7XG4gICAgY29uc3QgcGF0aCA9IGB1c2Vycy8ke3VzZXJJZH0vJHt0eXBlfS5qcGdgO1xuICAgIHJldHVybiBgaHR0cHM6Ly9maXJlYmFzZXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vdjAvYi8ke2J1Y2tldH0vby8ke2VuY29kZVVSSUNvbXBvbmVudChwYXRoKX0/YWx0PW1lZGlhYDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNw4lUT0RPUyBQUklWQURPU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogTWFwZWEgZWwgZXN0YWRvIGRlIGxhIHRhcmVhIGRlIHVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBtYXBUYXNrU3RhdGUoc3RhdGU6IHN0cmluZyk6IFVwbG9hZFN0YXRlIHtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlICdydW5uaW5nJzpcbiAgICAgICAgcmV0dXJuICdydW5uaW5nJztcbiAgICAgIGNhc2UgJ3BhdXNlZCc6XG4gICAgICAgIHJldHVybiAncGF1c2VkJztcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICByZXR1cm4gJ3N1Y2Nlc3MnO1xuICAgICAgY2FzZSAnY2FuY2VsZWQnOlxuICAgICAgICByZXR1cm4gJ2NhbmNlbGVkJztcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ3J1bm5pbmcnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb252aWVydGUgZXJyb3JlcyBkZSBTdG9yYWdlIGEgbWVuc2FqZXMgZW4gZXNwYcOxb2xcbiAgICovXG4gIHByaXZhdGUgZ2V0RXJyb3JNZXNzYWdlKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgY29uc3QgY29kZSA9IChlcnJvciBhcyB7IGNvZGU/OiBzdHJpbmcgfSkuY29kZTtcblxuICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2Uvb2JqZWN0LW5vdC1mb3VuZCc6XG4gICAgICAgICAgcmV0dXJuICdFbCBhcmNoaXZvIG5vIGV4aXN0ZSc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvdW5hdXRob3JpemVkJzpcbiAgICAgICAgICByZXR1cm4gJ05vIHRpZW5lcyBwZXJtaXNvIHBhcmEgYWNjZWRlciBhIGVzdGUgYXJjaGl2byc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvY2FuY2VsZWQnOlxuICAgICAgICAgIHJldHVybiAnTGEgb3BlcmFjacOzbiBmdWUgY2FuY2VsYWRhJztcbiAgICAgICAgY2FzZSAnc3RvcmFnZS9xdW90YS1leGNlZWRlZCc6XG4gICAgICAgICAgcmV0dXJuICdTZSBoYSBleGNlZGlkbyBsYSBjdW90YSBkZSBhbG1hY2VuYW1pZW50byc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvaW52YWxpZC1jaGVja3N1bSc6XG4gICAgICAgICAgcmV0dXJuICdFbCBhcmNoaXZvIGVzdMOhIGNvcnJ1cHRvJztcbiAgICAgICAgY2FzZSAnc3RvcmFnZS9yZXRyeS1saW1pdC1leGNlZWRlZCc6XG4gICAgICAgICAgcmV0dXJuICdFcnJvciBkZSBjb25leGnDs24uIEludGVudGEgZGUgbnVldm8nO1xuICAgICAgICBjYXNlICdzdG9yYWdlL2ludmFsaWQtdXJsJzpcbiAgICAgICAgICByZXR1cm4gJ1VSTCBkZSBhcmNoaXZvIGludsOhbGlkYSc7XG4gICAgICAgIGNhc2UgJ3N0b3JhZ2UvaW52YWxpZC1hcmd1bWVudCc6XG4gICAgICAgICAgcmV0dXJuICdBcmd1bWVudG8gaW52w6FsaWRvJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gZXJyb3IubWVzc2FnZSB8fCAnRXJyb3IgZGUgYWxtYWNlbmFtaWVudG8gZGVzY29ub2NpZG8nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnRXJyb3IgZGUgYWxtYWNlbmFtaWVudG8gZGVzY29ub2NpZG8nO1xuICB9XG59XG4iXX0=
|
|
@@ -15,4 +15,4 @@ export const DEFAULT_EMULATOR_CONFIG = {
|
|
|
15
15
|
storage: { host: 'localhost', port: 9199 },
|
|
16
16
|
auth: { host: 'localhost', port: 9099 },
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2ZpcmViYXNlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBMkNIOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW1CO0lBQ3JELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtJQUM1QyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7SUFDMUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0NBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpcmViYXNlIFR5cGVzXG4gKlxuICogVGlwb3MgZSBpbnRlcmZhY2VzIHBhcmEgbGEgaW50ZWdyYWNpw7NuIGRlIEZpcmViYXNlIGVuIHZhbHRlY2gtY29tcG9uZW50cy5cbiAqIFRvZG9zIGxvcyBtb2RlbG9zIGRlIEZpcmVzdG9yZSBkZWJlbiBleHRlbmRlciBGaXJlc3RvcmVEb2N1bWVudC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFuYWx5dGljc0NvbmZpZyB9IGZyb20gJy4vYW5hbHl0aWNzLXR5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ09ORklHVVJBQ0nDk05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZSAodmFsb3JlcyBkZSBmaXJlYmFzZUNvbmZpZylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaXJlYmFzZUNvbmZpZyB7XG4gIGFwaUtleTogc3RyaW5nO1xuICBhdXRoRG9tYWluOiBzdHJpbmc7XG4gIHByb2plY3RJZDogc3RyaW5nO1xuICBzdG9yYWdlQnVja2V0OiBzdHJpbmc7XG4gIG1lc3NhZ2luZ1NlbmRlcklkOiBzdHJpbmc7XG4gIGFwcElkOiBzdHJpbmc7XG4gIG1lYXN1cmVtZW50SWQ/OiBzdHJpbmc7XG4gIC8qKiBIYWJpbGl0YXIgRmlyZWJhc2UgQ2xvdWQgTWVzc2FnaW5nIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgZW5hYmxlTWVzc2FnaW5nPzogYm9vbGVhbjtcbiAgLyoqIFZBUElEIGtleSBwYXJhIEZpcmViYXNlIENsb3VkIE1lc3NhZ2luZyAqL1xuICBtZXNzYWdpbmdWYXBpZEtleT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBkZSBlbXVsYWRvcmVzIHBhcmEgZGVzYXJyb2xsbyBsb2NhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtdWxhdG9yQ29uZmlnIHtcbiAgZmlyZXN0b3JlPzoge1xuICAgIGhvc3Q6IHN0cmluZztcbiAgICBwb3J0OiBudW1iZXI7XG4gIH07XG4gIGF1dGg/OiB7XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIHBvcnQ6IG51bWJlcjtcbiAgfTtcbiAgc3RvcmFnZT86IHtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgcG9ydDogbnVtYmVyO1xuICB9O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIGRlIGVtdWxhZG9yZXMuXG4gKiBQdWVydG9zIGVzdMOhbmRhciB1c2Fkb3MgZW4gdG9kb3MgbG9zIHByb3llY3RvcyBmcm9udGVuZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZmlyZWJhc2UuZ29vZ2xlLmNvbS9kb2NzL2VtdWxhdG9yLXN1aXRlXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VNVUxBVE9SX0NPTkZJRzogRW11bGF0b3JDb25maWcgPSB7XG4gIGZpcmVzdG9yZTogeyBob3N0OiAnbG9jYWxob3N0JywgcG9ydDogOTA4MCB9LFxuICBzdG9yYWdlOiB7IGhvc3Q6ICdsb2NhbGhvc3QnLCBwb3J0OiA5MTk5IH0sXG4gIGF1dGg6IHsgaG9zdDogJ2xvY2FsaG9zdCcsIHBvcnQ6IDkwOTkgfSxcbn07XG5cbi8qKlxuICogSWRlbnRpZmljYWRvciBkZSBhcGxpY2FjacOzbiBwYXJhIG5hbWVzcGFjaW5nIGF1dG9tw6F0aWNvIGVuIEZpcmVzdG9yZSB5IFN0b3JhZ2UuXG4gKiBQZXJtaXRlIGFpc2xhciBkYXRvcyBkZSBkaWZlcmVudGVzIGFwcHMgZGVudHJvIGRlbCBtaXNtbyBwcm95ZWN0byBGaXJlYmFzZS5cbiAqXG4gKiBDYWRhIGFwcCBjb25zdW1pZG9yYSBkZWZpbmUgc3VzIHByb3Bpb3MgdmFsb3JlcyBkZSBBcHBJZCBlbiBzdSBjb25maWd1cmFjacOzbiBsb2NhbC5cbiAqL1xuZXhwb3J0IHR5cGUgQXBwSWQgPSBzdHJpbmc7XG5cbi8qKlxuICogQ29uZmlndXJhY2nDs24gY29tcGxldGEgZGUgVmFsdGVjaCBGaXJlYmFzZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbHRlY2hGaXJlYmFzZUNvbmZpZyB7XG4gIC8qKiBDb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZSAqL1xuICBmaXJlYmFzZTogRmlyZWJhc2VDb25maWc7XG4gIC8qKiBDb25maWd1cmFjacOzbiBkZSBlbXVsYWRvcmVzIChvcGNpb25hbCwgcGFyYSBkZXNhcnJvbGxvKSAqL1xuICBlbXVsYXRvcj86IEVtdWxhdG9yQ29uZmlnO1xuICAvKiogSGFiaWxpdGFyIHBlcnNpc3RlbmNpYSBvZmZsaW5lIGRlIEZpcmVzdG9yZSAoZGVmYXVsdDogZmFsc2UpICovXG4gIHBlcnNpc3RlbmNlPzogYm9vbGVhbjtcbiAgLyoqIEhhYmlsaXRhciBGaXJlYmFzZSBDbG91ZCBNZXNzYWdpbmcgKGRlZmF1bHQ6IGZhbHNlKSAtIHJlcXVpZXJlIFNlcnZpY2UgV29ya2VyICovXG4gIGVuYWJsZU1lc3NhZ2luZz86IGJvb2xlYW47XG4gIC8qKiBWQVBJRCBrZXkgcGFyYSBGaXJlYmFzZSBDbG91ZCBNZXNzYWdpbmcgKi9cbiAgbWVzc2FnaW5nVmFwaWRLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJRCBkZSBsYSBhcGxpY2FjacOzbiBwYXJhIG5hbWVzcGFjaW5nIGF1dG9tw6F0aWNvLlxuICAgKiBTaSBzZSBwcm9wb3JjaW9uYTpcbiAgICogLSBGaXJlc3RvcmU6IHByZWZpamEgY29sZWNjaW9uZXMgY29uIGBhcHBzL3thcHBJZH0vYFxuICAgKiAtIFN0b3JhZ2U6IHByZWZpamEgcGF0aHMgY29uIGB7YXBwSWR9L2BcbiAgICogU2kgbm8gc2UgcHJvcG9yY2lvbmEsIGxvcyBwYXRocyBxdWVkYW4gc2luIG1vZGlmaWNhciAoYmFja3dhcmQgY29tcGF0aWJsZSkuXG4gICAqL1xuICBhcHBJZD86IEFwcElkO1xuICAvKipcbiAgICogUGVyc2lzdGUgbWVuc2FqZXMgRkNNIGVuIGxvY2FsU3RvcmFnZSBwYXJhIGRlYnVnZ2luZy5cbiAgICogU29sbyBwYXJhIGRlc2Fycm9sbG8sIHBlcm1pdGUgdmVyIG1lbnNhamVzIGVuIERldlRvb2xzLlxuICAgKiBEZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgZGVidWdNZXNzYWdlUGVyc2lzdGVuY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIYWJpbGl0YXIgRmlyZWJhc2UgQW5hbHl0aWNzIC8gR0E0IChkZWZhdWx0OiBmYWxzZSkuXG4gICAqIFJlcXVpZXJlIG1lYXN1cmVtZW50SWQgZW4gZmlyZWJhc2UgY29uZmlnLlxuICAgKi9cbiAgZW5hYmxlQW5hbHl0aWNzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhY2nDs24gZGV0YWxsYWRhIGRlIEFuYWx5dGljcy5cbiAgICogU29sbyBhcGxpY2Egc2kgZW5hYmxlQW5hbHl0aWNzIGVzIHRydWUuXG4gICAqL1xuICBhbmFseXRpY3NDb25maWc/OiBBbmFseXRpY3NDb25maWc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZJUkVTVE9SRSAtIERPQ1VNRU5UT1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJbnRlcmZhY2UgYmFzZSBwYXJhIHRvZG9zIGxvcyBkb2N1bWVudG9zIGRlIEZpcmVzdG9yZS5cbiAqIFRvZG9zIGxvcyBtb2RlbG9zIGRlYmVuIGV4dGVuZGVyIGVzdGEgaW50ZXJmYWNlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbnRlcmZhY2UgVXNlciBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50IHtcbiAqICAgbmFtZTogc3RyaW5nO1xuICogICBlbWFpbDogc3RyaW5nO1xuICogfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpcmVzdG9yZURvY3VtZW50IHtcbiAgLyoqIElEIGRlbCBkb2N1bWVudG8gKGFzaWduYWRvIHBvciBGaXJlc3RvcmUpICovXG4gIGlkPzogc3RyaW5nO1xuICAvKiogRmVjaGEgZGUgY3JlYWNpw7NuIChtYW5lamFkYSBhdXRvbcOhdGljYW1lbnRlKSAqL1xuICBjcmVhdGVkQXQ/OiBEYXRlO1xuICAvKiogRmVjaGEgZGUgw7psdGltYSBhY3R1YWxpemFjacOzbiAobWFuZWphZGEgYXV0b23DoXRpY2FtZW50ZSkgKi9cbiAgdXBkYXRlZEF0PzogRGF0ZTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRklSRVNUT1JFIC0gUVVFUklFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIE9wZXJhZG9yZXMgZGlzcG9uaWJsZXMgcGFyYSBjbMOhdXN1bGFzIHdoZXJlXG4gKi9cbmV4cG9ydCB0eXBlIFdoZXJlT3BlcmF0b3IgPVxuICB8ICc9PSdcbiAgfCAnIT0nXG4gIHwgJzwnXG4gIHwgJzw9J1xuICB8ICc+J1xuICB8ICc+PSdcbiAgfCAnYXJyYXktY29udGFpbnMnXG4gIHwgJ2FycmF5LWNvbnRhaW5zLWFueSdcbiAgfCAnaW4nXG4gIHwgJ25vdC1pbic7XG5cbi8qKlxuICogQ2zDoXVzdWxhIHdoZXJlIHBhcmEgZmlsdHJhciBkb2N1bWVudG9zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2hlcmVDbGF1c2Uge1xuICAvKiogQ2FtcG8gYSBmaWx0cmFyICovXG4gIGZpZWxkOiBzdHJpbmc7XG4gIC8qKiBPcGVyYWRvciBkZSBjb21wYXJhY2nDs24gKi9cbiAgb3BlcmF0b3I6IFdoZXJlT3BlcmF0b3I7XG4gIC8qKiBWYWxvciBhIGNvbXBhcmFyICovXG4gIHZhbHVlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIERpcmVjY2nDs24gZGUgb3JkZW5hbWllbnRvXG4gKi9cbmV4cG9ydCB0eXBlIE9yZGVyRGlyZWN0aW9uID0gJ2FzYycgfCAnZGVzYyc7XG5cbi8qKlxuICogQ2zDoXVzdWxhIG9yZGVyQnkgcGFyYSBvcmRlbmFyIHJlc3VsdGFkb3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmRlckJ5Q2xhdXNlIHtcbiAgLyoqIENhbXBvIHBvciBlbCBjdWFsIG9yZGVuYXIgKi9cbiAgZmllbGQ6IHN0cmluZztcbiAgLyoqIERpcmVjY2nDs24gZGVsIG9yZGVuYW1pZW50byAqL1xuICBkaXJlY3Rpb246IE9yZGVyRGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIE9wY2lvbmVzIHBhcmEgcXVlcmllcyBkZSBGaXJlc3RvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWVyeU9wdGlvbnMge1xuICAvKiogRmlsdHJvcyB3aGVyZSAoQU5EIGVudHJlIHRvZG9zKSAqL1xuICB3aGVyZT86IFdoZXJlQ2xhdXNlW107XG4gIC8qKiBPcmRlbmFtaWVudG8gZGUgcmVzdWx0YWRvcyAqL1xuICBvcmRlckJ5PzogT3JkZXJCeUNsYXVzZVtdO1xuICAvKiogTMOtbWl0ZSBkZSBkb2N1bWVudG9zIGEgcmV0b3JuYXIgKi9cbiAgbGltaXQ/OiBudW1iZXI7XG4gIC8qKiBDdXJzb3IgcGFyYSBwYWdpbmFjacOzbjogZW1wZXphciBkZXNwdcOpcyBkZSBlc3RlIGRvY3VtZW50byAqL1xuICBzdGFydEFmdGVyPzogdW5rbm93bjtcbiAgLyoqIEN1cnNvciBwYXJhIHBhZ2luYWNpw7NuOiBlbXBlemFyIGVuIGVzdGUgZG9jdW1lbnRvICovXG4gIHN0YXJ0QXQ/OiB1bmtub3duO1xuICAvKiogQ3Vyc29yIHBhcmEgcGFnaW5hY2nDs246IHRlcm1pbmFyIGFudGVzIGRlIGVzdGUgZG9jdW1lbnRvICovXG4gIGVuZEJlZm9yZT86IHVua25vd247XG4gIC8qKiBDdXJzb3IgcGFyYSBwYWdpbmFjacOzbjogdGVybWluYXIgZW4gZXN0ZSBkb2N1bWVudG8gKi9cbiAgZW5kQXQ/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIE9wY2lvbmVzIGFkaWNpb25hbGVzIHBhcmEgc3Vic2NyaXBjaW9uZXMgcmVhbC10aW1lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uT3B0aW9ucyBleHRlbmRzIFF1ZXJ5T3B0aW9ucyB7XG4gIC8qKiBJbmNsdWlyIGNhbWJpb3MgZGUgbWV0YWRhdGEgKGVqOiBwZW5kaW5nV3JpdGVzKSAqL1xuICBpbmNsdWRlTWV0YWRhdGFDaGFuZ2VzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXN1bHRhZG8gZGUgdW5hIHF1ZXJ5IHBhZ2luYWRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGVkUmVzdWx0PFQ+IHtcbiAgLyoqIERvY3VtZW50b3MgZGUgbGEgcMOhZ2luYSBhY3R1YWwgKi9cbiAgZGF0YTogVFtdO1xuICAvKiogSW5kaWNhIHNpIGhheSBtw6FzIHDDoWdpbmFzIGRpc3BvbmlibGVzICovXG4gIGhhc01vcmU6IGJvb2xlYW47XG4gIC8qKiBDdXJzb3IgcGFyYSBsYSBzaWd1aWVudGUgcMOhZ2luYSAocGFzYXIgYSBzdGFydEFmdGVyKSAqL1xuICBsYXN0RG9jOiB1bmtub3duO1xuICAvKiogVG90YWwgZGUgZG9jdW1lbnRvcyAob3BjaW9uYWwsIHJlcXVpZXJlIHF1ZXJ5IGFkaWNpb25hbCkgKi9cbiAgdG90YWw/OiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNUT1JBR0Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFc3RhZG8gZGUgdW5hIG9wZXJhY2nDs24gZGUgdXBsb2FkXG4gKi9cbmV4cG9ydCB0eXBlIFVwbG9hZFN0YXRlID0gJ3J1bm5pbmcnIHwgJ3BhdXNlZCcgfCAnc3VjY2VzcycgfCAnY2FuY2VsZWQnIHwgJ2Vycm9yJztcblxuLyoqXG4gKiBQcm9ncmVzbyBkZSB1cGxvYWQgZGUgYXJjaGl2b1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFByb2dyZXNzIHtcbiAgLyoqIEJ5dGVzIHRyYW5zZmVyaWRvcyBoYXN0YSBhaG9yYSAqL1xuICBieXRlc1RyYW5zZmVycmVkOiBudW1iZXI7XG4gIC8qKiBUb3RhbCBkZSBieXRlcyBhIHRyYW5zZmVyaXIgKi9cbiAgdG90YWxCeXRlczogbnVtYmVyO1xuICAvKiogUG9yY2VudGFqZSBjb21wbGV0YWRvICgwLTEwMCkgKi9cbiAgcGVyY2VudGFnZTogbnVtYmVyO1xuICAvKiogRXN0YWRvIGFjdHVhbCBkZWwgdXBsb2FkICovXG4gIHN0YXRlOiBVcGxvYWRTdGF0ZTtcbn1cblxuLyoqXG4gKiBSZXN1bHRhZG8gZGUgdW4gdXBsb2FkIGNvbXBsZXRhZG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRSZXN1bHQge1xuICAvKiogVVJMIGRlIGRlc2NhcmdhIGRlbCBhcmNoaXZvICovXG4gIGRvd25sb2FkVXJsOiBzdHJpbmc7XG4gIC8qKiBSdXRhIGNvbXBsZXRhIGVuIFN0b3JhZ2UgKi9cbiAgZnVsbFBhdGg6IHN0cmluZztcbiAgLyoqIE5vbWJyZSBkZWwgYXJjaGl2byAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBUYW1hw7FvIGVuIGJ5dGVzICovXG4gIHNpemU6IG51bWJlcjtcbiAgLyoqIFRpcG8gTUlNRSBkZWwgYXJjaGl2byAqL1xuICBjb250ZW50VHlwZTogc3RyaW5nO1xuICAvKiogTWV0YWRhdGEgcGVyc29uYWxpemFkYSAqL1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBwYXJhIGFyY2hpdm9zIGVuIFN0b3JhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlTWV0YWRhdGEge1xuICAvKiogVGlwbyBNSU1FIGRlbCBhcmNoaXZvICovXG4gIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICAvKiogTWV0YWRhdGEgcGVyc29uYWxpemFkYSAoa2V5LXZhbHVlKSAqL1xuICBjdXN0b21NZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBDb250cm9sIGRlIGNhY2jDqSBIVFRQICovXG4gIGNhY2hlQ29udHJvbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNraXAgdGhlIGFwcElkIHByZWZpeCBmb3Igc2hhcmVkIHBhdGhzLlxuICAgKiBVc2UgdGhpcyBmb3IgY3Jvc3MtYXBwIHBhdGhzIGxpa2UgdXNlciBhdmF0YXJzOiBgdXNlcnMve3VzZXJJZH0vYXZhdGFyLmpwZ2BcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHNraXBQcmVmaXg/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlc3VsdGFkbyBkZSBsaXN0YXIgYXJjaGl2b3MgZW4gU3RvcmFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VMaXN0UmVzdWx0IHtcbiAgLyoqIFJ1dGFzIGRlIGxvcyBhcmNoaXZvcyBlbmNvbnRyYWRvcyAqL1xuICBpdGVtczogc3RyaW5nW107XG4gIC8qKiBUb2tlbiBwYXJhIGxhIHNpZ3VpZW50ZSBww6FnaW5hIChzaSBoYXkgbcOhcykgKi9cbiAgbmV4dFBhZ2VUb2tlbj86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUkJBQyAtIFBFUk1JU09TIFkgT1JHQU5JWkFDSU9ORVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJbmZvcm1hY2nDs24gZGUgbWVtYmVyc2hpcCBlbiB1bmEgb3JnYW5pemFjacOzbi5cbiAqIFJlcHJlc2VudGEgZWwgcm9sIHkgcGVybWlzb3MgcXVlIHRpZW5lIHVuIHVzdWFyaW8gZW4gdW5hIG9yZyBlc3BlY8OtZmljYS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW1iZXJzaGlwSW5mbyB7XG4gIC8qKiBJRCBkZWwgcm9sIChlajogJ2FkbWluJywgJ2VkaXRvcicsICd2aWV3ZXInKSAqL1xuICByb2xlSWQ6IHN0cmluZztcbiAgLyoqIE5vbWJyZSBkZWwgcm9sIHBhcmEgZGlzcGxheSAqL1xuICByb2xlTmFtZTogc3RyaW5nO1xuICAvKiogTGlzdGEgZGUgcGVybWlzb3MgZW4gZm9ybWF0byAncmVzb3VyY2U6YWN0aW9uJyAqL1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogRXN0cnVjdHVyYSBjb21wbGV0YSBkZSBjbGFpbXMgY29uIFJCQUMuXG4gKiBFc3RvcyBjbGFpbXMgZXN0w6FuIGRpc3BvbmlibGVzIGVuIHJlcXVlc3QuYXV0aC50b2tlbiBlbiBGaXJlc3RvcmUgUnVsZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUkJBQ0NsYWltcyB7XG4gIC8qKiBFbWFpbCBkZWwgdXN1YXJpbyAqL1xuICBlbWFpbDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGNvbXBsZXRvIGRlbCB1c3VhcmlvICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFNpIGVsIGVtYWlsIGVzdMOhIHZlcmlmaWNhZG8gKi9cbiAgdmVyaWZpZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNYXBhIGRlIG9yZ2FuaXphY2lvbmVzIGRvbmRlIGVsIHVzdWFyaW8gdGllbmUgcm9sZXMuXG4gICAqIEtleSA9IG9yZ0lkLCBWYWx1ZSA9IGluZm9ybWFjacOzbiBkZWwgcm9sIHkgcGVybWlzb3MgZW4gZXNhIG9yZy5cbiAgICovXG4gIG1lbWJlcnNoaXBzOiBSZWNvcmQ8c3RyaW5nLCBNZW1iZXJzaGlwSW5mbz47XG4gIC8qKiBJRCBkZSBsYSBvcmdhbml6YWNpw7NuIGFjdHVhbG1lbnRlIHNlbGVjY2lvbmFkYSAqL1xuICBhY3RpdmVPcmc6IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbmZvcm1hY2nDs24gZGUgdW5hIG9yZ2FuaXphY2nDs24gcGFyYSBkaXNwbGF5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5pemF0aW9uSW5mbyB7XG4gIC8qKiBJRCDDum5pY28gZGUgbGEgb3JnYW5pemFjacOzbiAqL1xuICBpZDogc3RyaW5nO1xuICAvKiogUm9sIGRlbCB1c3VhcmlvIGVuIGVzdGEgb3JnYW5pemFjacOzbiAqL1xuICByb2xlSWQ6IHN0cmluZztcbiAgLyoqIE5vbWJyZSBkZWwgcm9sIHBhcmEgZGlzcGxheSAqL1xuICByb2xlTmFtZTogc3RyaW5nO1xuICAvKiogUGVybWlzb3MgZGVsIHVzdWFyaW8gZW4gZXN0YSBvcmdhbml6YWNpw7NuICovXG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUSCAvIFNFU1NJT05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJbmZvcm1hY2nDs24gZGVsIHVzdWFyaW8gZGUgRmlyZWJhc2UgKHNpbXBsaWZpY2FkYSlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaXJlYmFzZVVzZXIge1xuICAvKiogVUlEIMO6bmljbyBkZWwgdXN1YXJpbyAqL1xuICB1aWQ6IHN0cmluZztcbiAgLyoqIEVtYWlsIGRlbCB1c3VhcmlvICovXG4gIGVtYWlsOiBzdHJpbmcgfCBudWxsO1xuICAvKiogTm9tYnJlIHBhcmEgbW9zdHJhciAqL1xuICBkaXNwbGF5TmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFVSTCBkZSBmb3RvIGRlIHBlcmZpbCAqL1xuICBwaG90b1VSTDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIEVtYWlsIHZlcmlmaWNhZG8gKi9cbiAgZW1haWxWZXJpZmllZDogYm9vbGVhbjtcbiAgLyoqIFVzdWFyaW8gYW7Ds25pbW8gKi9cbiAgaXNBbm9ueW1vdXM6IGJvb2xlYW47XG4gIC8qKiBQcm92ZWVkb3IgZGUgYXV0ZW50aWNhY2nDs24gKi9cbiAgcHJvdmlkZXJJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVzdGFkbyBkZSBsYSBzZXNpw7NuIGRlIEZpcmViYXNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvblN0YXRlIHtcbiAgLyoqIFVzdWFyaW8gYWN0dWFsIChudWxsIHNpIG5vIGF1dGVudGljYWRvKSAqL1xuICB1c2VyOiBGaXJlYmFzZVVzZXIgfCBudWxsO1xuICAvKiogSW5kaWNhIHNpIGVsIHVzdWFyaW8gZXN0w6EgYXV0ZW50aWNhZG8gKi9cbiAgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICAvKiogSW5kaWNhIHNpIHNlIGVzdMOhIGNhcmdhbmRvIGVsIGVzdGFkbyBkZSBhdXRoICovXG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgLyoqIEVycm9yIGRlIGF1dGVudGljYWNpw7NuIChzaSBsbyBoYXkpICovXG4gIGVycm9yOiBFcnJvciB8IG51bGw7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1FU1NBR0lORyAoRkNNKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEVzdGFkbyBkZWwgcGVybWlzbyBkZSBub3RpZmljYWNpb25lc1xuICovXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25QZXJtaXNzaW9uID0gJ2dyYW50ZWQnIHwgJ2RlbmllZCcgfCAnZGVmYXVsdCc7XG5cbi8qKlxuICogUGF5bG9hZCBkZSB1bmEgbm90aWZpY2FjacOzbiBwdXNoXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uUGF5bG9hZCB7XG4gIC8qKiBUw610dWxvIGRlIGxhIG5vdGlmaWNhY2nDs24gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBDdWVycG8gZGVsIG1lbnNhamUgKi9cbiAgYm9keT86IHN0cmluZztcbiAgLyoqIFVSTCBkZSBpbWFnZW4gKi9cbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIC8qKiBEYXRvcyBwZXJzb25hbGl6YWRvcyAqL1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIElEIGRlbCBtZW5zYWplIGRlIEZDTSAqL1xuICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQWNjacOzbiBkZSBuYXZlZ2FjacOzbiBkZXNkZSB1bmEgbm90aWZpY2FjacOzblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkFjdGlvbiB7XG4gIC8qKiBSdXRhIGludGVybmEgZGUgbGEgYXBwIChlajogJy9vcmRlcnMvMTIzJykgKi9cbiAgcm91dGU/OiBzdHJpbmc7XG4gIC8qKiBVUkwgZXh0ZXJuYSAoZWo6ICdodHRwczovL2V4YW1wbGUuY29tJykgKi9cbiAgdXJsPzogc3RyaW5nO1xuICAvKiogUGFyw6FtZXRyb3MgZGUgcXVlcnkgc3RyaW5nICovXG4gIHF1ZXJ5UGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFRpcG8gZGUgYWNjacOzbiBwZXJzb25hbGl6YWRhICovXG4gIGFjdGlvblR5cGU/OiBzdHJpbmc7XG4gIC8qKiBEYXRvcyBhZGljaW9uYWxlcyBwYXJhIGxhIGFjY2nDs24gKi9cbiAgYWN0aW9uRGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFJlc3VsdGFkbyBkZSBgTWVzc2FnaW5nU2VydmljZS5lbmFibGUoKWAuXG4gKlxuICogVGlwbyBkaXNjcmltaW5hZG8gZGVzY3JpcHRpdm8gKE5PIHNlIGhhY2UgdGhyb3cpOiBsYSBww6FnaW5hIGNvbnN1bWlkb3JhIGxvXG4gKiBpbnNwZWNjaW9uYSBwYXJhIGRlY2lkaXIgcXXDqSB0b2FzdC9VWCBtb3N0cmFyLlxuICpcbiAqIGBzdGF0dXNgOlxuICogLSBgZW5hYmxlZGAgICAgIOKAlCBwZXJtaXNvIG90b3JnYWRvICsgdG9rZW4gRkNNIG9idGVuaWRvIChgdG9rZW5gIHByZXNlbnRlKS5cbiAqIC0gYGRlbmllZGAgICAgICDigJQgZWwgdXN1YXJpbyBkZW5lZ8OzIGVsIHBlcm1pc28gZGVsIG5hdmVnYWRvci5cbiAqIC0gYHVuc3VwcG9ydGVkYCDigJQgZWwgbmF2ZWdhZG9yIG5vIHNvcG9ydGEgRkNNIChpbmNsLiBpT1Mgc2luIHN0YW5kYWxvbmUpLlxuICogLSBgZXJyb3JgICAgICAgIOKAlCBlbCBmbHVqbyBmYWxsw7MgcG9yIG90cmEgY2F1c2EgKHZlciBgcmVhc29uYCkuXG4gKiAtIGB0aW1lb3V0YCAgICAg4oCUIGVsIGZsdWpvIHNlIGNvbGfDsyA+MTVzLiBTaSBgcmVsb2FkZWRgIGVzIHRydWUsIGxhIHDDoWdpbmFcbiAqICAgICAgICAgICAgICAgICAgIGVzdMOhIHBvciByZWNhcmdhcnNlIChhdXRvLXJlbG9hZCwgMcKqIHZleiBlbiBsYSBzZXNpw7NuKTsgc2lcbiAqICAgICAgICAgICAgICAgICAgIGVzIGZhbHNlLCB5YSBzZSBjb25zdW1pw7MgZWwgYXV0by1yZWxvYWQgeSBsYSBww6FnaW5hIGRlYmVcbiAqICAgICAgICAgICAgICAgICAgIG1vc3RyYXIgdW4gZXJyb3Igc2luIHJlY2FyZ2FyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuYWJsZVB1c2hSZXN1bHQge1xuICAvKiogUmVzdWx0YWRvIGRlbCBmbHVqbyBkZSBhY3RpdmFjacOzbiBkZSBwdXNoLiAqL1xuICBzdGF0dXM6ICdlbmFibGVkJyB8ICdkZW5pZWQnIHwgJ3Vuc3VwcG9ydGVkJyB8ICdlcnJvcicgfCAndGltZW91dCc7XG4gIC8qKiBUb2tlbiBGQ00g4oCUIHByZXNlbnRlIHNvbG8gY3VhbmRvIGBzdGF0dXMgPT09ICdlbmFibGVkJ2AuICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKiogRGV0YWxsZSBsZWdpYmxlIGRlIGxhIGNhdXNhIOKAlCBwcmVzZW50ZSBlbiBgZXJyb3JgIC8gYHRpbWVvdXRgLiAqL1xuICByZWFzb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTb2xvIHBhcmEgYHN0YXR1cyA9PT0gJ3RpbWVvdXQnYDogdHJ1ZSBzaSBzZSBkaXNwYXLDsyBlbCBhdXRvLXJlbG9hZFxuICAgKiAobGEgcMOhZ2luYSBlc3TDoSBwb3IgcmVjYXJnYXJzZSkuIEZhbHNlIHNpIGVsIGF1dG8tcmVsb2FkIHlhIHNlIGNvbnN1bWnDs1xuICAgKiBlc3RhIHNlc2nDs24geSBsYSBhcHAgZGViZSBtb3N0cmFyIHVuIGVycm9yIGVuIGx1Z2FyIGRlIHJlY2FyZ2FyLlxuICAgKi9cbiAgcmVsb2FkZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEV2ZW50byBkZSBjbGljayBlbiB1bmEgbm90aWZpY2FjacOzblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkNsaWNrRXZlbnQge1xuICAvKiogUGF5bG9hZCBvcmlnaW5hbCBkZSBsYSBub3RpZmljYWNpw7NuICovXG4gIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uUGF5bG9hZDtcbiAgLyoqIEFjY2nDs24gZGUgbmF2ZWdhY2nDs24gZXh0cmHDrWRhICovXG4gIGFjdGlvbjogTm90aWZpY2F0aW9uQWN0aW9uO1xuICAvKiogVGltZXN0YW1wIGRlbCBjbGljayAqL1xuICB0aW1lc3RhbXA6IERhdGU7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVSUk9SRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDw7NkaWdvcyBkZSBlcnJvciBkZSBGaXJlYmFzZVxuICovXG5leHBvcnQgdHlwZSBGaXJlYmFzZUVycm9yQ29kZSA9XG4gIHwgJ3Blcm1pc3Npb24tZGVuaWVkJ1xuICB8ICdub3QtZm91bmQnXG4gIHwgJ2FscmVhZHktZXhpc3RzJ1xuICB8ICdyZXNvdXJjZS1leGhhdXN0ZWQnXG4gIHwgJ2NhbmNlbGxlZCdcbiAgfCAndW5rbm93bidcbiAgfCAnaW52YWxpZC1hcmd1bWVudCdcbiAgfCAnZGVhZGxpbmUtZXhjZWVkZWQnXG4gIHwgJ3VuYXV0aGVudGljYXRlZCc7XG5cbi8qKlxuICogRXJyb3IgZGUgRmlyZWJhc2UgdGlwYWRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlyZWJhc2VFcnJvciB7XG4gIC8qKiBDw7NkaWdvIGRlbCBlcnJvciAqL1xuICBjb2RlOiBGaXJlYmFzZUVycm9yQ29kZTtcbiAgLyoqIE1lbnNhamUgZGUgZXJyb3IgKGVuIGVzcGHDsW9sKSAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIC8qKiBFcnJvciBvcmlnaW5hbCBkZSBGaXJlYmFzZSAqL1xuICBvcmlnaW5hbEVycm9yPzogdW5rbm93bjtcbn1cbiJdfQ==
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2ZpcmViYXNlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBNENIOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW1CO0lBQ3JELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtJQUM1QyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7SUFDMUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0NBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpcmViYXNlIFR5cGVzXG4gKlxuICogVGlwb3MgZSBpbnRlcmZhY2VzIHBhcmEgbGEgaW50ZWdyYWNpw7NuIGRlIEZpcmViYXNlIGVuIHZhbHRlY2gtY29tcG9uZW50cy5cbiAqIFRvZG9zIGxvcyBtb2RlbG9zIGRlIEZpcmVzdG9yZSBkZWJlbiBleHRlbmRlciBGaXJlc3RvcmVEb2N1bWVudC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFuYWx5dGljc0NvbmZpZyB9IGZyb20gJy4vYW5hbHl0aWNzLXR5cGVzJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VDb21wcmVzc09wdGlvbnMgfSBmcm9tICcuLi9pbWFnZS90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTkZJR1VSQUNJw5NOXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29uZmlndXJhY2nDs24gZGUgRmlyZWJhc2UgKHZhbG9yZXMgZGUgZmlyZWJhc2VDb25maWcpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlyZWJhc2VDb25maWcge1xuICBhcGlLZXk6IHN0cmluZztcbiAgYXV0aERvbWFpbjogc3RyaW5nO1xuICBwcm9qZWN0SWQ6IHN0cmluZztcbiAgc3RvcmFnZUJ1Y2tldDogc3RyaW5nO1xuICBtZXNzYWdpbmdTZW5kZXJJZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBtZWFzdXJlbWVudElkPzogc3RyaW5nO1xuICAvKiogSGFiaWxpdGFyIEZpcmViYXNlIENsb3VkIE1lc3NhZ2luZyAoZGVmYXVsdDogZmFsc2UpICovXG4gIGVuYWJsZU1lc3NhZ2luZz86IGJvb2xlYW47XG4gIC8qKiBWQVBJRCBrZXkgcGFyYSBGaXJlYmFzZSBDbG91ZCBNZXNzYWdpbmcgKi9cbiAgbWVzc2FnaW5nVmFwaWRLZXk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhY2nDs24gZGUgZW11bGFkb3JlcyBwYXJhIGRlc2Fycm9sbG8gbG9jYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbXVsYXRvckNvbmZpZyB7XG4gIGZpcmVzdG9yZT86IHtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgcG9ydDogbnVtYmVyO1xuICB9O1xuICBhdXRoPzoge1xuICAgIGhvc3Q6IHN0cmluZztcbiAgICBwb3J0OiBudW1iZXI7XG4gIH07XG4gIHN0b3JhZ2U/OiB7XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIHBvcnQ6IG51bWJlcjtcbiAgfTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBkZSBlbXVsYWRvcmVzLlxuICogUHVlcnRvcyBlc3TDoW5kYXIgdXNhZG9zIGVuIHRvZG9zIGxvcyBwcm95ZWN0b3MgZnJvbnRlbmQuXG4gKlxuICogQHNlZSBodHRwczovL2ZpcmViYXNlLmdvb2dsZS5jb20vZG9jcy9lbXVsYXRvci1zdWl0ZVxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9FTVVMQVRPUl9DT05GSUc6IEVtdWxhdG9yQ29uZmlnID0ge1xuICBmaXJlc3RvcmU6IHsgaG9zdDogJ2xvY2FsaG9zdCcsIHBvcnQ6IDkwODAgfSxcbiAgc3RvcmFnZTogeyBob3N0OiAnbG9jYWxob3N0JywgcG9ydDogOTE5OSB9LFxuICBhdXRoOiB7IGhvc3Q6ICdsb2NhbGhvc3QnLCBwb3J0OiA5MDk5IH0sXG59O1xuXG4vKipcbiAqIElkZW50aWZpY2Fkb3IgZGUgYXBsaWNhY2nDs24gcGFyYSBuYW1lc3BhY2luZyBhdXRvbcOhdGljbyBlbiBGaXJlc3RvcmUgeSBTdG9yYWdlLlxuICogUGVybWl0ZSBhaXNsYXIgZGF0b3MgZGUgZGlmZXJlbnRlcyBhcHBzIGRlbnRybyBkZWwgbWlzbW8gcHJveWVjdG8gRmlyZWJhc2UuXG4gKlxuICogQ2FkYSBhcHAgY29uc3VtaWRvcmEgZGVmaW5lIHN1cyBwcm9waW9zIHZhbG9yZXMgZGUgQXBwSWQgZW4gc3UgY29uZmlndXJhY2nDs24gbG9jYWwuXG4gKi9cbmV4cG9ydCB0eXBlIEFwcElkID0gc3RyaW5nO1xuXG4vKipcbiAqIENvbmZpZ3VyYWNpw7NuIGNvbXBsZXRhIGRlIFZhbHRlY2ggRmlyZWJhc2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWx0ZWNoRmlyZWJhc2VDb25maWcge1xuICAvKiogQ29uZmlndXJhY2nDs24gZGUgRmlyZWJhc2UgKi9cbiAgZmlyZWJhc2U6IEZpcmViYXNlQ29uZmlnO1xuICAvKiogQ29uZmlndXJhY2nDs24gZGUgZW11bGFkb3JlcyAob3BjaW9uYWwsIHBhcmEgZGVzYXJyb2xsbykgKi9cbiAgZW11bGF0b3I/OiBFbXVsYXRvckNvbmZpZztcbiAgLyoqIEhhYmlsaXRhciBwZXJzaXN0ZW5jaWEgb2ZmbGluZSBkZSBGaXJlc3RvcmUgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBwZXJzaXN0ZW5jZT86IGJvb2xlYW47XG4gIC8qKiBIYWJpbGl0YXIgRmlyZWJhc2UgQ2xvdWQgTWVzc2FnaW5nIChkZWZhdWx0OiBmYWxzZSkgLSByZXF1aWVyZSBTZXJ2aWNlIFdvcmtlciAqL1xuICBlbmFibGVNZXNzYWdpbmc/OiBib29sZWFuO1xuICAvKiogVkFQSUQga2V5IHBhcmEgRmlyZWJhc2UgQ2xvdWQgTWVzc2FnaW5nICovXG4gIG1lc3NhZ2luZ1ZhcGlkS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogSUQgZGUgbGEgYXBsaWNhY2nDs24gcGFyYSBuYW1lc3BhY2luZyBhdXRvbcOhdGljby5cbiAgICogU2kgc2UgcHJvcG9yY2lvbmE6XG4gICAqIC0gRmlyZXN0b3JlOiBwcmVmaWphIGNvbGVjY2lvbmVzIGNvbiBgYXBwcy97YXBwSWR9L2BcbiAgICogLSBTdG9yYWdlOiBwcmVmaWphIHBhdGhzIGNvbiBge2FwcElkfS9gXG4gICAqIFNpIG5vIHNlIHByb3BvcmNpb25hLCBsb3MgcGF0aHMgcXVlZGFuIHNpbiBtb2RpZmljYXIgKGJhY2t3YXJkIGNvbXBhdGlibGUpLlxuICAgKi9cbiAgYXBwSWQ/OiBBcHBJZDtcbiAgLyoqXG4gICAqIFBlcnNpc3RlIG1lbnNhamVzIEZDTSBlbiBsb2NhbFN0b3JhZ2UgcGFyYSBkZWJ1Z2dpbmcuXG4gICAqIFNvbG8gcGFyYSBkZXNhcnJvbGxvLCBwZXJtaXRlIHZlciBtZW5zYWplcyBlbiBEZXZUb29scy5cbiAgICogRGVmYXVsdDogZmFsc2VcbiAgICovXG4gIGRlYnVnTWVzc2FnZVBlcnNpc3RlbmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSGFiaWxpdGFyIEZpcmViYXNlIEFuYWx5dGljcyAvIEdBNCAoZGVmYXVsdDogZmFsc2UpLlxuICAgKiBSZXF1aWVyZSBtZWFzdXJlbWVudElkIGVuIGZpcmViYXNlIGNvbmZpZy5cbiAgICovXG4gIGVuYWJsZUFuYWx5dGljcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYWNpw7NuIGRldGFsbGFkYSBkZSBBbmFseXRpY3MuXG4gICAqIFNvbG8gYXBsaWNhIHNpIGVuYWJsZUFuYWx5dGljcyBlcyB0cnVlLlxuICAgKi9cbiAgYW5hbHl0aWNzQ29uZmlnPzogQW5hbHl0aWNzQ29uZmlnO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGSVJFU1RPUkUgLSBET0NVTUVOVE9TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSW50ZXJmYWNlIGJhc2UgcGFyYSB0b2RvcyBsb3MgZG9jdW1lbnRvcyBkZSBGaXJlc3RvcmUuXG4gKiBUb2RvcyBsb3MgbW9kZWxvcyBkZWJlbiBleHRlbmRlciBlc3RhIGludGVyZmFjZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW50ZXJmYWNlIFVzZXIgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudCB7XG4gKiAgIG5hbWU6IHN0cmluZztcbiAqICAgZW1haWw6IHN0cmluZztcbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaXJlc3RvcmVEb2N1bWVudCB7XG4gIC8qKiBJRCBkZWwgZG9jdW1lbnRvIChhc2lnbmFkbyBwb3IgRmlyZXN0b3JlKSAqL1xuICBpZD86IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIGNyZWFjacOzbiAobWFuZWphZGEgYXV0b23DoXRpY2FtZW50ZSkgKi9cbiAgY3JlYXRlZEF0PzogRGF0ZTtcbiAgLyoqIEZlY2hhIGRlIMO6bHRpbWEgYWN0dWFsaXphY2nDs24gKG1hbmVqYWRhIGF1dG9tw6F0aWNhbWVudGUpICovXG4gIHVwZGF0ZWRBdD86IERhdGU7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZJUkVTVE9SRSAtIFFVRVJJRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBPcGVyYWRvcmVzIGRpc3BvbmlibGVzIHBhcmEgY2zDoXVzdWxhcyB3aGVyZVxuICovXG5leHBvcnQgdHlwZSBXaGVyZU9wZXJhdG9yID1cbiAgfCAnPT0nXG4gIHwgJyE9J1xuICB8ICc8J1xuICB8ICc8PSdcbiAgfCAnPidcbiAgfCAnPj0nXG4gIHwgJ2FycmF5LWNvbnRhaW5zJ1xuICB8ICdhcnJheS1jb250YWlucy1hbnknXG4gIHwgJ2luJ1xuICB8ICdub3QtaW4nO1xuXG4vKipcbiAqIENsw6F1c3VsYSB3aGVyZSBwYXJhIGZpbHRyYXIgZG9jdW1lbnRvc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdoZXJlQ2xhdXNlIHtcbiAgLyoqIENhbXBvIGEgZmlsdHJhciAqL1xuICBmaWVsZDogc3RyaW5nO1xuICAvKiogT3BlcmFkb3IgZGUgY29tcGFyYWNpw7NuICovXG4gIG9wZXJhdG9yOiBXaGVyZU9wZXJhdG9yO1xuICAvKiogVmFsb3IgYSBjb21wYXJhciAqL1xuICB2YWx1ZTogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBEaXJlY2Npw7NuIGRlIG9yZGVuYW1pZW50b1xuICovXG5leHBvcnQgdHlwZSBPcmRlckRpcmVjdGlvbiA9ICdhc2MnIHwgJ2Rlc2MnO1xuXG4vKipcbiAqIENsw6F1c3VsYSBvcmRlckJ5IHBhcmEgb3JkZW5hciByZXN1bHRhZG9zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJCeUNsYXVzZSB7XG4gIC8qKiBDYW1wbyBwb3IgZWwgY3VhbCBvcmRlbmFyICovXG4gIGZpZWxkOiBzdHJpbmc7XG4gIC8qKiBEaXJlY2Npw7NuIGRlbCBvcmRlbmFtaWVudG8gKi9cbiAgZGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvbjtcbn1cblxuLyoqXG4gKiBPcGNpb25lcyBwYXJhIHF1ZXJpZXMgZGUgRmlyZXN0b3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlPcHRpb25zIHtcbiAgLyoqIEZpbHRyb3Mgd2hlcmUgKEFORCBlbnRyZSB0b2RvcykgKi9cbiAgd2hlcmU/OiBXaGVyZUNsYXVzZVtdO1xuICAvKiogT3JkZW5hbWllbnRvIGRlIHJlc3VsdGFkb3MgKi9cbiAgb3JkZXJCeT86IE9yZGVyQnlDbGF1c2VbXTtcbiAgLyoqIEzDrW1pdGUgZGUgZG9jdW1lbnRvcyBhIHJldG9ybmFyICovXG4gIGxpbWl0PzogbnVtYmVyO1xuICAvKiogQ3Vyc29yIHBhcmEgcGFnaW5hY2nDs246IGVtcGV6YXIgZGVzcHXDqXMgZGUgZXN0ZSBkb2N1bWVudG8gKi9cbiAgc3RhcnRBZnRlcj86IHVua25vd247XG4gIC8qKiBDdXJzb3IgcGFyYSBwYWdpbmFjacOzbjogZW1wZXphciBlbiBlc3RlIGRvY3VtZW50byAqL1xuICBzdGFydEF0PzogdW5rbm93bjtcbiAgLyoqIEN1cnNvciBwYXJhIHBhZ2luYWNpw7NuOiB0ZXJtaW5hciBhbnRlcyBkZSBlc3RlIGRvY3VtZW50byAqL1xuICBlbmRCZWZvcmU/OiB1bmtub3duO1xuICAvKiogQ3Vyc29yIHBhcmEgcGFnaW5hY2nDs246IHRlcm1pbmFyIGVuIGVzdGUgZG9jdW1lbnRvICovXG4gIGVuZEF0PzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBPcGNpb25lcyBhZGljaW9uYWxlcyBwYXJhIHN1YnNjcmlwY2lvbmVzIHJlYWwtdGltZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbk9wdGlvbnMgZXh0ZW5kcyBRdWVyeU9wdGlvbnMge1xuICAvKiogSW5jbHVpciBjYW1iaW9zIGRlIG1ldGFkYXRhIChlajogcGVuZGluZ1dyaXRlcykgKi9cbiAgaW5jbHVkZU1ldGFkYXRhQ2hhbmdlcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlIHVuYSBxdWVyeSBwYWdpbmFkYVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlZFJlc3VsdDxUPiB7XG4gIC8qKiBEb2N1bWVudG9zIGRlIGxhIHDDoWdpbmEgYWN0dWFsICovXG4gIGRhdGE6IFRbXTtcbiAgLyoqIEluZGljYSBzaSBoYXkgbcOhcyBww6FnaW5hcyBkaXNwb25pYmxlcyAqL1xuICBoYXNNb3JlOiBib29sZWFuO1xuICAvKiogQ3Vyc29yIHBhcmEgbGEgc2lndWllbnRlIHDDoWdpbmEgKHBhc2FyIGEgc3RhcnRBZnRlcikgKi9cbiAgbGFzdERvYzogdW5rbm93bjtcbiAgLyoqIFRvdGFsIGRlIGRvY3VtZW50b3MgKG9wY2lvbmFsLCByZXF1aWVyZSBxdWVyeSBhZGljaW9uYWwpICovXG4gIHRvdGFsPzogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTVE9SQUdFXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXN0YWRvIGRlIHVuYSBvcGVyYWNpw7NuIGRlIHVwbG9hZFxuICovXG5leHBvcnQgdHlwZSBVcGxvYWRTdGF0ZSA9ICdydW5uaW5nJyB8ICdwYXVzZWQnIHwgJ3N1Y2Nlc3MnIHwgJ2NhbmNlbGVkJyB8ICdlcnJvcic7XG5cbi8qKlxuICogUHJvZ3Jlc28gZGUgdXBsb2FkIGRlIGFyY2hpdm9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRQcm9ncmVzcyB7XG4gIC8qKiBCeXRlcyB0cmFuc2Zlcmlkb3MgaGFzdGEgYWhvcmEgKi9cbiAgYnl0ZXNUcmFuc2ZlcnJlZDogbnVtYmVyO1xuICAvKiogVG90YWwgZGUgYnl0ZXMgYSB0cmFuc2ZlcmlyICovXG4gIHRvdGFsQnl0ZXM6IG51bWJlcjtcbiAgLyoqIFBvcmNlbnRhamUgY29tcGxldGFkbyAoMC0xMDApICovXG4gIHBlcmNlbnRhZ2U6IG51bWJlcjtcbiAgLyoqIEVzdGFkbyBhY3R1YWwgZGVsIHVwbG9hZCAqL1xuICBzdGF0ZTogVXBsb2FkU3RhdGU7XG59XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlIHVuIHVwbG9hZCBjb21wbGV0YWRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkUmVzdWx0IHtcbiAgLyoqIFVSTCBkZSBkZXNjYXJnYSBkZWwgYXJjaGl2byAqL1xuICBkb3dubG9hZFVybDogc3RyaW5nO1xuICAvKiogUnV0YSBjb21wbGV0YSBlbiBTdG9yYWdlICovXG4gIGZ1bGxQYXRoOiBzdHJpbmc7XG4gIC8qKiBOb21icmUgZGVsIGFyY2hpdm8gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVGFtYcOxbyBlbiBieXRlcyAqL1xuICBzaXplOiBudW1iZXI7XG4gIC8qKiBUaXBvIE1JTUUgZGVsIGFyY2hpdm8gKi9cbiAgY29udGVudFR5cGU6IHN0cmluZztcbiAgLyoqIE1ldGFkYXRhIHBlcnNvbmFsaXphZGEgKi9cbiAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogT3BjaW9uZXMgcGFyYSBzdWJpciBpbcOhZ2VuZXMgcHJvY2VzYWRhcyBhbnRlcyBkZSBndWFyZGFybGFzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlVXBsb2FkT3B0aW9ucyBleHRlbmRzIFN0b3JhZ2VNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBDb21wcmltaXIgbGEgaW1hZ2VuIGFudGVzIGRlIHN1YmlybGEuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGNvbXByZXNzPzogYm9vbGVhbjtcbiAgLyoqIE9wY2lvbmVzIGRlIGNvbXByZXNpw7NuIGN1YW5kbyBjb21wcmVzcyBlcyB0cnVlLiAqL1xuICBjb21wcmVzc2lvbj86IEltYWdlQ29tcHJlc3NPcHRpb25zO1xuICAvKiogUGF0aCBvcGNpb25hbCBwYXJhIHN1YmlyIHVuIHRodW1ibmFpbCBhZGljaW9uYWwuICovXG4gIHRodW1ibmFpbFBhdGg/OiBzdHJpbmc7XG4gIC8qKiBUYW1hw7FvIGRlbCB0aHVtYm5haWwgY3VhZHJhZG8gZW4gcHguICovXG4gIHRodW1ibmFpbFNpemU/OiBudW1iZXI7XG4gIC8qKiBNZXRhZGF0YSBlc3BlY8OtZmljYSBwYXJhIGVsIHRodW1ibmFpbC4gKi9cbiAgdGh1bWJuYWlsTWV0YWRhdGE/OiBTdG9yYWdlTWV0YWRhdGE7XG59XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlIHVuYSBzdWJpZGEgZGUgaW1hZ2VuIHByb2Nlc2FkYS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZVVwbG9hZFJlc3VsdCBleHRlbmRzIFVwbG9hZFJlc3VsdCB7XG4gIC8qKiBSZXN1bHRhZG8gZGVsIHRodW1ibmFpbCwgc2kgZnVlIHNvbGljaXRhZG8uICovXG4gIHRodW1ibmFpbD86IFVwbG9hZFJlc3VsdDtcbiAgLyoqIERhdG9zIGRlbCBwcm9jZXNhbWllbnRvIGFwbGljYWRvIGFudGVzIGRlIHN1YmlyLiAqL1xuICBwcm9jZXNzZWQ6IHtcbiAgICBvcmlnaW5hbFNpemU6IG51bWJlcjtcbiAgICBzaXplOiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICBjb21wcmVzc2VkOiBib29sZWFuO1xuICB9O1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIHBhcmEgYXJjaGl2b3MgZW4gU3RvcmFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VNZXRhZGF0YSB7XG4gIC8qKiBUaXBvIE1JTUUgZGVsIGFyY2hpdm8gKi9cbiAgY29udGVudFR5cGU/OiBzdHJpbmc7XG4gIC8qKiBNZXRhZGF0YSBwZXJzb25hbGl6YWRhIChrZXktdmFsdWUpICovXG4gIGN1c3RvbU1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIENvbnRyb2wgZGUgY2FjaMOpIEhUVFAgKi9cbiAgY2FjaGVDb250cm9sPzogc3RyaW5nO1xuICAvKipcbiAgICogU2tpcCB0aGUgYXBwSWQgcHJlZml4IGZvciBzaGFyZWQgcGF0aHMuXG4gICAqIFVzZSB0aGlzIGZvciBjcm9zcy1hcHAgcGF0aHMgbGlrZSB1c2VyIGF2YXRhcnM6IGB1c2Vycy97dXNlcklkfS9hdmF0YXIuanBnYFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgc2tpcFByZWZpeD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlIGxpc3RhciBhcmNoaXZvcyBlbiBTdG9yYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUxpc3RSZXN1bHQge1xuICAvKiogUnV0YXMgZGUgbG9zIGFyY2hpdm9zIGVuY29udHJhZG9zICovXG4gIGl0ZW1zOiBzdHJpbmdbXTtcbiAgLyoqIFRva2VuIHBhcmEgbGEgc2lndWllbnRlIHDDoWdpbmEgKHNpIGhheSBtw6FzKSAqL1xuICBuZXh0UGFnZVRva2VuPzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSQkFDIC0gUEVSTUlTT1MgWSBPUkdBTklaQUNJT05FU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEluZm9ybWFjacOzbiBkZSBtZW1iZXJzaGlwIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICogUmVwcmVzZW50YSBlbCByb2wgeSBwZXJtaXNvcyBxdWUgdGllbmUgdW4gdXN1YXJpbyBlbiB1bmEgb3JnIGVzcGVjw61maWNhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lbWJlcnNoaXBJbmZvIHtcbiAgLyoqIElEIGRlbCByb2wgKGVqOiAnYWRtaW4nLCAnZWRpdG9yJywgJ3ZpZXdlcicpICovXG4gIHJvbGVJZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCByb2wgcGFyYSBkaXNwbGF5ICovXG4gIHJvbGVOYW1lOiBzdHJpbmc7XG4gIC8qKiBMaXN0YSBkZSBwZXJtaXNvcyBlbiBmb3JtYXRvICdyZXNvdXJjZTphY3Rpb24nICovXG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBFc3RydWN0dXJhIGNvbXBsZXRhIGRlIGNsYWltcyBjb24gUkJBQy5cbiAqIEVzdG9zIGNsYWltcyBlc3TDoW4gZGlzcG9uaWJsZXMgZW4gcmVxdWVzdC5hdXRoLnRva2VuIGVuIEZpcmVzdG9yZSBSdWxlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSQkFDQ2xhaW1zIHtcbiAgLyoqIEVtYWlsIGRlbCB1c3VhcmlvICovXG4gIGVtYWlsOiBzdHJpbmc7XG4gIC8qKiBOb21icmUgY29tcGxldG8gZGVsIHVzdWFyaW8gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogU2kgZWwgZW1haWwgZXN0w6EgdmVyaWZpY2FkbyAqL1xuICB2ZXJpZmllZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1hcGEgZGUgb3JnYW5pemFjaW9uZXMgZG9uZGUgZWwgdXN1YXJpbyB0aWVuZSByb2xlcy5cbiAgICogS2V5ID0gb3JnSWQsIFZhbHVlID0gaW5mb3JtYWNpw7NuIGRlbCByb2wgeSBwZXJtaXNvcyBlbiBlc2Egb3JnLlxuICAgKi9cbiAgbWVtYmVyc2hpcHM6IFJlY29yZDxzdHJpbmcsIE1lbWJlcnNoaXBJbmZvPjtcbiAgLyoqIElEIGRlIGxhIG9yZ2FuaXphY2nDs24gYWN0dWFsbWVudGUgc2VsZWNjaW9uYWRhICovXG4gIGFjdGl2ZU9yZzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEluZm9ybWFjacOzbiBkZSB1bmEgb3JnYW5pemFjacOzbiBwYXJhIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmdhbml6YXRpb25JbmZvIHtcbiAgLyoqIElEIMO6bmljbyBkZSBsYSBvcmdhbml6YWNpw7NuICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBSb2wgZGVsIHVzdWFyaW8gZW4gZXN0YSBvcmdhbml6YWNpw7NuICovXG4gIHJvbGVJZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCByb2wgcGFyYSBkaXNwbGF5ICovXG4gIHJvbGVOYW1lOiBzdHJpbmc7XG4gIC8qKiBQZXJtaXNvcyBkZWwgdXN1YXJpbyBlbiBlc3RhIG9yZ2FuaXphY2nDs24gKi9cbiAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRIIC8gU0VTU0lPTlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEluZm9ybWFjacOzbiBkZWwgdXN1YXJpbyBkZSBGaXJlYmFzZSAoc2ltcGxpZmljYWRhKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpcmViYXNlVXNlciB7XG4gIC8qKiBVSUQgw7puaWNvIGRlbCB1c3VhcmlvICovXG4gIHVpZDogc3RyaW5nO1xuICAvKiogRW1haWwgZGVsIHVzdWFyaW8gKi9cbiAgZW1haWw6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBOb21icmUgcGFyYSBtb3N0cmFyICovXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVVJMIGRlIGZvdG8gZGUgcGVyZmlsICovXG4gIHBob3RvVVJMOiBzdHJpbmcgfCBudWxsO1xuICAvKiogRW1haWwgdmVyaWZpY2FkbyAqL1xuICBlbWFpbFZlcmlmaWVkOiBib29sZWFuO1xuICAvKiogVXN1YXJpbyBhbsOzbmltbyAqL1xuICBpc0Fub255bW91czogYm9vbGVhbjtcbiAgLyoqIFByb3ZlZWRvciBkZSBhdXRlbnRpY2FjacOzbiAqL1xuICBwcm92aWRlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRXN0YWRvIGRlIGxhIHNlc2nDs24gZGUgRmlyZWJhc2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uU3RhdGUge1xuICAvKiogVXN1YXJpbyBhY3R1YWwgKG51bGwgc2kgbm8gYXV0ZW50aWNhZG8pICovXG4gIHVzZXI6IEZpcmViYXNlVXNlciB8IG51bGw7XG4gIC8qKiBJbmRpY2Egc2kgZWwgdXN1YXJpbyBlc3TDoSBhdXRlbnRpY2FkbyAqL1xuICBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gIC8qKiBJbmRpY2Egc2kgc2UgZXN0w6EgY2FyZ2FuZG8gZWwgZXN0YWRvIGRlIGF1dGggKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogRXJyb3IgZGUgYXV0ZW50aWNhY2nDs24gKHNpIGxvIGhheSkgKi9cbiAgZXJyb3I6IEVycm9yIHwgbnVsbDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTUVTU0FHSU5HIChGQ00pXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXN0YWRvIGRlbCBwZXJtaXNvIGRlIG5vdGlmaWNhY2lvbmVzXG4gKi9cbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvblBlcm1pc3Npb24gPSAnZ3JhbnRlZCcgfCAnZGVuaWVkJyB8ICdkZWZhdWx0JztcblxuLyoqXG4gKiBQYXlsb2FkIGRlIHVuYSBub3RpZmljYWNpw7NuIHB1c2hcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25QYXlsb2FkIHtcbiAgLyoqIFTDrXR1bG8gZGUgbGEgbm90aWZpY2FjacOzbiAqL1xuICB0aXRsZT86IHN0cmluZztcbiAgLyoqIEN1ZXJwbyBkZWwgbWVuc2FqZSAqL1xuICBib2R5Pzogc3RyaW5nO1xuICAvKiogVVJMIGRlIGltYWdlbiAqL1xuICBpbWFnZT86IHN0cmluZztcbiAgLyoqIERhdG9zIHBlcnNvbmFsaXphZG9zICovXG4gIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogSUQgZGVsIG1lbnNhamUgZGUgRkNNICovXG4gIG1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBY2Npw7NuIGRlIG5hdmVnYWNpw7NuIGRlc2RlIHVuYSBub3RpZmljYWNpw7NuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uQWN0aW9uIHtcbiAgLyoqIFJ1dGEgaW50ZXJuYSBkZSBsYSBhcHAgKGVqOiAnL29yZGVycy8xMjMnKSAqL1xuICByb3V0ZT86IHN0cmluZztcbiAgLyoqIFVSTCBleHRlcm5hIChlajogJ2h0dHBzOi8vZXhhbXBsZS5jb20nKSAqL1xuICB1cmw/OiBzdHJpbmc7XG4gIC8qKiBQYXLDoW1ldHJvcyBkZSBxdWVyeSBzdHJpbmcgKi9cbiAgcXVlcnlQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogVGlwbyBkZSBhY2Npw7NuIHBlcnNvbmFsaXphZGEgKi9cbiAgYWN0aW9uVHlwZT86IHN0cmluZztcbiAgLyoqIERhdG9zIGFkaWNpb25hbGVzIHBhcmEgbGEgYWNjacOzbiAqL1xuICBhY3Rpb25EYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlIGBNZXNzYWdpbmdTZXJ2aWNlLmVuYWJsZSgpYC5cbiAqXG4gKiBUaXBvIGRpc2NyaW1pbmFkbyBkZXNjcmlwdGl2byAoTk8gc2UgaGFjZSB0aHJvdyk6IGxhIHDDoWdpbmEgY29uc3VtaWRvcmEgbG9cbiAqIGluc3BlY2Npb25hIHBhcmEgZGVjaWRpciBxdcOpIHRvYXN0L1VYIG1vc3RyYXIuXG4gKlxuICogYHN0YXR1c2A6XG4gKiAtIGBlbmFibGVkYCAgICAg4oCUIHBlcm1pc28gb3RvcmdhZG8gKyB0b2tlbiBGQ00gb2J0ZW5pZG8gKGB0b2tlbmAgcHJlc2VudGUpLlxuICogLSBgZGVuaWVkYCAgICAgIOKAlCBlbCB1c3VhcmlvIGRlbmVnw7MgZWwgcGVybWlzbyBkZWwgbmF2ZWdhZG9yLlxuICogLSBgdW5zdXBwb3J0ZWRgIOKAlCBlbCBuYXZlZ2Fkb3Igbm8gc29wb3J0YSBGQ00gKGluY2wuIGlPUyBzaW4gc3RhbmRhbG9uZSkuXG4gKiAtIGBlcnJvcmAgICAgICAg4oCUIGVsIGZsdWpvIGZhbGzDsyBwb3Igb3RyYSBjYXVzYSAodmVyIGByZWFzb25gKS5cbiAqIC0gYHRpbWVvdXRgICAgICDigJQgZWwgZmx1am8gc2UgY29sZ8OzID4xNXMuIFNpIGByZWxvYWRlZGAgZXMgdHJ1ZSwgbGEgcMOhZ2luYVxuICogICAgICAgICAgICAgICAgICAgZXN0w6EgcG9yIHJlY2FyZ2Fyc2UgKGF1dG8tcmVsb2FkLCAxwqogdmV6IGVuIGxhIHNlc2nDs24pOyBzaVxuICogICAgICAgICAgICAgICAgICAgZXMgZmFsc2UsIHlhIHNlIGNvbnN1bWnDsyBlbCBhdXRvLXJlbG9hZCB5IGxhIHDDoWdpbmEgZGViZVxuICogICAgICAgICAgICAgICAgICAgbW9zdHJhciB1biBlcnJvciBzaW4gcmVjYXJnYXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hYmxlUHVzaFJlc3VsdCB7XG4gIC8qKiBSZXN1bHRhZG8gZGVsIGZsdWpvIGRlIGFjdGl2YWNpw7NuIGRlIHB1c2guICovXG4gIHN0YXR1czogJ2VuYWJsZWQnIHwgJ2RlbmllZCcgfCAndW5zdXBwb3J0ZWQnIHwgJ2Vycm9yJyB8ICd0aW1lb3V0JztcbiAgLyoqIFRva2VuIEZDTSDigJQgcHJlc2VudGUgc29sbyBjdWFuZG8gYHN0YXR1cyA9PT0gJ2VuYWJsZWQnYC4gKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBEZXRhbGxlIGxlZ2libGUgZGUgbGEgY2F1c2Eg4oCUIHByZXNlbnRlIGVuIGBlcnJvcmAgLyBgdGltZW91dGAuICovXG4gIHJlYXNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNvbG8gcGFyYSBgc3RhdHVzID09PSAndGltZW91dCdgOiB0cnVlIHNpIHNlIGRpc3BhcsOzIGVsIGF1dG8tcmVsb2FkXG4gICAqIChsYSBww6FnaW5hIGVzdMOhIHBvciByZWNhcmdhcnNlKS4gRmFsc2Ugc2kgZWwgYXV0by1yZWxvYWQgeWEgc2UgY29uc3VtacOzXG4gICAqIGVzdGEgc2VzacOzbiB5IGxhIGFwcCBkZWJlIG1vc3RyYXIgdW4gZXJyb3IgZW4gbHVnYXIgZGUgcmVjYXJnYXIuXG4gICAqL1xuICByZWxvYWRlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXZlbnRvIGRlIGNsaWNrIGVuIHVuYSBub3RpZmljYWNpw7NuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uQ2xpY2tFdmVudCB7XG4gIC8qKiBQYXlsb2FkIG9yaWdpbmFsIGRlIGxhIG5vdGlmaWNhY2nDs24gKi9cbiAgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25QYXlsb2FkO1xuICAvKiogQWNjacOzbiBkZSBuYXZlZ2FjacOzbiBleHRyYcOtZGEgKi9cbiAgYWN0aW9uOiBOb3RpZmljYXRpb25BY3Rpb247XG4gIC8qKiBUaW1lc3RhbXAgZGVsIGNsaWNrICovXG4gIHRpbWVzdGFtcDogRGF0ZTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVJST1JFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEPDs2RpZ29zIGRlIGVycm9yIGRlIEZpcmViYXNlXG4gKi9cbmV4cG9ydCB0eXBlIEZpcmViYXNlRXJyb3JDb2RlID1cbiAgfCAncGVybWlzc2lvbi1kZW5pZWQnXG4gIHwgJ25vdC1mb3VuZCdcbiAgfCAnYWxyZWFkeS1leGlzdHMnXG4gIHwgJ3Jlc291cmNlLWV4aGF1c3RlZCdcbiAgfCAnY2FuY2VsbGVkJ1xuICB8ICd1bmtub3duJ1xuICB8ICdpbnZhbGlkLWFyZ3VtZW50J1xuICB8ICdkZWFkbGluZS1leGNlZWRlZCdcbiAgfCAndW5hdXRoZW50aWNhdGVkJztcblxuLyoqXG4gKiBFcnJvciBkZSBGaXJlYmFzZSB0aXBhZG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaXJlYmFzZUVycm9yIHtcbiAgLyoqIEPDs2RpZ28gZGVsIGVycm9yICovXG4gIGNvZGU6IEZpcmViYXNlRXJyb3JDb2RlO1xuICAvKiogTWVuc2FqZSBkZSBlcnJvciAoZW4gZXNwYcOxb2wpICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgLyoqIEVycm9yIG9yaWdpbmFsIGRlIEZpcmViYXNlICovXG4gIG9yaWdpbmFsRXJyb3I/OiB1bmtub3duO1xufVxuIl19
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.1040';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMDQwJztcbiJdfQ==
|