@pepperi-addons/ngx-lib 0.4.2-beta.9 → 0.4.2-beta.91
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/attachment/attachment.component.d.ts +11 -2
- package/button/button.component.d.ts +8 -8
- package/core/common/services/color.service.d.ts +1 -0
- package/core/common/services/file.service.d.ts +7 -2
- package/dialog/dialog.service.d.ts +1 -0
- package/draggable-items/draggable-items.component.d.ts +3 -3
- package/draggable-items/draggable-items.module.d.ts +1 -1
- package/esm2020/address/address.component.mjs +1 -1
- package/esm2020/attachment/attachment.component.mjs +38 -18
- package/esm2020/button/button.component.mjs +7 -7
- package/esm2020/chips/chips.component.mjs +2 -2
- package/esm2020/color/color-picker.component.mjs +1 -1
- package/esm2020/core/common/services/color.service.mjs +27 -1
- package/esm2020/core/common/services/file.service.mjs +57 -20
- package/esm2020/core/common/services/session.service.mjs +2 -1
- package/esm2020/core/customization/customization.model.mjs +7 -6
- package/esm2020/core/customization/customization.service.mjs +13 -4
- package/esm2020/core/http/services/http.service.mjs +1 -1
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.service.mjs +22 -1
- package/esm2020/draggable-items/draggable-items.component.mjs +7 -7
- package/esm2020/draggable-items/draggable-items.module.mjs +6 -6
- package/esm2020/files-uploader/files-uploader.component.mjs +50 -45
- package/esm2020/form/field-generator.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +4 -3
- package/esm2020/form/internal-field-generator.component.mjs +1 -1
- package/esm2020/form/internal-form.component.mjs +1 -1
- package/esm2020/form/internal-list.component.mjs +2 -2
- package/esm2020/image/image.component.mjs +32 -16
- package/esm2020/image/image.service.mjs +2 -4
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +2 -2
- package/esm2020/link/link.component.mjs +33 -58
- package/esm2020/list/list.component.mjs +109 -18
- package/esm2020/list/list.model.mjs +1 -1
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
- package/esm2020/quantity-selector/quantity-selector.component.mjs +20 -25
- package/esm2020/query-builder/common/model/operator.mjs +2 -2
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
- package/esm2020/select/select.component.mjs +66 -40
- package/esm2020/select-panel/select-panel.component.mjs +2 -2
- package/esm2020/signature/public-api.mjs +2 -1
- package/esm2020/signature/signature-dialog.component.mjs +78 -0
- package/esm2020/signature/signature.component.mjs +117 -89
- package/esm2020/signature/signature.module.mjs +6 -5
- package/esm2020/skeleton-loader/pepperi-addons-ngx-lib-skeleton-loader.mjs +5 -0
- package/esm2020/skeleton-loader/public-api.mjs +6 -0
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +44 -0
- package/esm2020/skeleton-loader/skeleton-loader.module.mjs +24 -0
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +3 -3
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
- package/esm2020/textbox/textbox.component.mjs +9 -3
- package/esm2020/top-bar/top-bar.component.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +37 -17
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs +6 -6
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +23 -2
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +11 -11
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +49 -44
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +8 -7
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +32 -18
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +32 -57
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +108 -18
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +19 -24
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +64 -38
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +205 -102
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +78 -0
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +7 -7
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +8 -2
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +101 -27
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +37 -17
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs +6 -6
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +23 -2
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +11 -11
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +49 -44
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +8 -7
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs +32 -18
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs +32 -57
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs +108 -17
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +19 -24
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs +64 -38
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +201 -102
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +76 -0
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +7 -7
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +8 -2
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +101 -27
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/files-uploader/files-uploader.component.d.ts +7 -4
- package/image/image.component.d.ts +11 -3
- package/link/link.component.d.ts +23 -27
- package/list/list.component.d.ts +10 -2
- package/list/list.model.d.ts +3 -1
- package/menu/menu.component.d.ts +1 -1
- package/package.json +10 -2
- package/quantity-selector/quantity-selector.component.d.ts +0 -2
- package/select/select.component.d.ts +10 -2
- package/signature/public-api.d.ts +1 -0
- package/signature/signature-dialog.component.d.ts +29 -0
- package/signature/signature.component.d.ts +7 -16
- package/signature/signature.module.d.ts +16 -15
- package/skeleton-loader/index.d.ts +5 -0
- package/skeleton-loader/public-api.d.ts +2 -0
- package/skeleton-loader/skeleton-loader.component.d.ts +20 -0
- package/skeleton-loader/skeleton-loader.component.theme.scss +15 -0
- package/skeleton-loader/skeleton-loader.module.d.ts +9 -0
- package/src/core/style/abstracts/AbstractsIntro.stories.mdx +7 -0
- package/src/core/style/abstracts/functions.scss +11 -11
- package/src/core/style/abstracts/mixins.scss +9 -6
- package/src/core/style/abstracts/variables.scss +38 -18
- package/src/core/style/base/BorderRadius.stories.mdx +59 -0
- package/src/core/style/base/Breakpoints.stories.mdx +36 -0
- package/src/core/style/base/Colors.stories.mdx +128 -0
- package/src/core/style/base/Shadows.stories.mdx +69 -0
- package/src/core/style/base/Spacing.stories.mdx +75 -0
- package/src/core/style/base/States.stories.mdx +62 -0
- package/src/core/style/base/Typography.stories.mdx +89 -0
- package/src/core/style/base/ZIndex.stories.mdx +47 -0
- package/src/core/style/base/base.scss +8 -10
- package/src/core/style/base/borderRadius.component.ts +27 -0
- package/src/core/style/base/breakpoints.component.ts +14 -0
- package/src/core/style/base/colors.component.ts +174 -0
- package/src/core/style/base/shadows.component.ts +90 -0
- package/src/core/style/base/spacing.component.ts +71 -0
- package/src/core/style/base/states.component.ts +84 -0
- package/src/core/style/base/typography.component.ts +94 -0
- package/src/core/style/base/typography.scss +52 -50
- package/src/core/style/base/zIndex.component.ts +25 -0
- package/src/core/style/components/file.scss +4 -4
- package/src/core/style/components/general.scss +5 -1
|
@@ -139,11 +139,12 @@ export class PepLinkField extends PepFieldBase {
|
|
|
139
139
|
}
|
|
140
140
|
update(options) {
|
|
141
141
|
super.update(options);
|
|
142
|
-
// DI-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
142
|
+
// DI-23167 - Comment this.
|
|
143
|
+
// // DI-11292 - add changes for link field for the "Read Only display value" prop
|
|
144
|
+
// this.formattedValue =
|
|
145
|
+
// this.disabled && this.formattedValue && this.value
|
|
146
|
+
// ? this.formattedValue
|
|
147
|
+
// : this.value;
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
150
|
export class PepTextareaField extends PepFieldBase {
|
|
@@ -299,4 +300,4 @@ export class PepInternalMenuField extends PepFieldBase {
|
|
|
299
300
|
// this.hasSubMenu = options['hasSubMenu'];
|
|
300
301
|
}
|
|
301
302
|
}
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY3VzdG9taXphdGlvbi9jdXN0b21pemF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCekQsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUEyQixNQUFNLENBQUM7QUFJM0Usb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF5QixLQUFLLENBQUM7QUFzQ3RFLE1BQU0sT0FBTyxZQUFZO0lBMkJyQix1QkFBdUI7SUFFdkIsWUFBWSxVQUFnQyxFQUFFO1FBQzFDLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFckMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLENB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LGlCQUFpQixDQUFDO1FBQ2hDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFLWixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBRTNDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUF3QztRQUNsRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0NBQ0o7QUFNRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsWUFBWTtJQUdsRCwrQkFBK0I7SUFFL0IsWUFBWSxVQUF3QyxFQUFFO1FBQ2xELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUxuQixnQkFBVyxHQUFHLE1BQU0sQ0FBQztRQUNyQixZQUFPLEdBQWlCLEVBQUUsQ0FBQztRQUt2QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLDJDQUEyQztJQUMvQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqIEFsbG93ZWQgbGF5b3V0IG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcExheW91dFR5cGUgPSAnZm9ybScgfCAnY2FyZCcgfCAndGFibGUnO1xuXG4vKiogQWxsb3dlZCBzdHlsZSBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBTdHlsZVR5cGUgPSAnd2VhaycgfCAnd2Vhay1pbnZlcnQnIHwgJ3JlZ3VsYXInIHwgJ3N0cm9uZyc7XG5cbi8qKiBBbGxvd2VkIHN0eWxlIHN0YXRlIG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcFN0eWxlU3RhdGVUeXBlID0gJ3N5c3RlbScgfCAnY2F1dGlvbicgfCAnc3VjY2Vzcyc7XG5cbi8qKiBBbGxvd2VkIHNpemUgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwU2l6ZVR5cGUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcblxuLyoqIEFsbG93ZWQgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jztcbi8qKiBEZWZhdWx0IGhvcml6b250YWwgYWxpZ25tZW50LiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSAnbGVmdCc7XG5cbi8qKiBBbGxvd2VkIHZlcnRpY2FsIGFsaWdubWVudCBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBWZXJ0aWNhbEFsaWdubWVudCA9ICd0b3AnIHwgJ21pZGRsZScgfCAnYm90dG9tJztcbi8qKiBEZWZhdWx0IGhvcml6b250YWwgYWxpZ25tZW50LiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVkVSVElDQUxfQUxJR05NRU5UOiBQZXBWZXJ0aWNhbEFsaWdubWVudCA9ICd0b3AnO1xuZXhwb3J0IGludGVyZmFjZSBJUGVwT3B0aW9uIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vLyBleHBvcnQgdHlwZSBQZXBGaWVsZEJhc2VUeXBlID0gJycgfCBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZSB8IFBlcFRleHRib3hGaWVsZFR5cGUgfFxuLy8gICAgIFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZFR5cGUgfCBQZXBEYXRlRmllbGRUeXBlIHwgUGVwQ2hlY2tib3hGaWVsZFR5cGUgfCBQZXBTZWxlY3RGaWVsZFR5cGU7XG5pbnRlcmZhY2UgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHZhbHVlPzogYW55O1xuICAgIGZvcm1hdHRlZFZhbHVlPzogYW55O1xuICAgIGFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgYWNjZXNzb3J5Pzogc3RyaW5nO1xuICAgIG1hbmRhdG9yeT86IGJvb2xlYW47XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBjb250cm9sVHlwZT86IHN0cmluZztcbiAgICAvLyB0eXBlPzogUGVwRmllbGRCYXNlVHlwZTtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIHJvdz86IG51bWJlcjtcbiAgICByb3dTcGFuPzogbnVtYmVyO1xuICAgIGNvbD86IG51bWJlcjtcbiAgICBjb2xTcGFuPzogbnVtYmVyO1xuICAgIHhBbGlnbm1lbnQ/OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50O1xuICAgIHlBbGlnbm1lbnQ/OiBQZXBWZXJ0aWNhbEFsaWdubWVudDtcbiAgICBtYXhGaWVsZENoYXJhY3RlcnM/OiBudW1iZXI7XG4gICAgbWluVmFsdWU/OiBudW1iZXI7XG4gICAgbWF4VmFsdWU/OiBudW1iZXI7XG4gICAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIHZpc2libGU/OiBib29sZWFuOyAgICBcbiAgICBlbXB0eU9wdGlvbj86IGJvb2xlYW47ICAgIFxuICAgIC8vIGxhc3RGb2N1c0ZpZWxkPzogYW55O1xuICAgIGRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50PzogbnVtYmVyO1xufVxuZXhwb3J0IGNsYXNzIFBlcEZpZWxkQmFzZSB7XG4gICAgdmFsdWU6IGFueTtcbiAgICBmb3JtYXR0ZWRWYWx1ZTogYW55O1xuICAgIGFkZGl0aW9uYWxWYWx1ZTogc3RyaW5nO1xuICAgIGtleTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgYWNjZXNzb3J5OiBzdHJpbmc7XG4gICAgbWFuZGF0b3J5OiBib29sZWFuO1xuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIG9yZGVyOiBudW1iZXI7XG4gICAgLy8gdHlwZTogc3RyaW5nO1xuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmc7XG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgcm93OiBudW1iZXI7XG4gICAgcm93U3BhbjogbnVtYmVyO1xuICAgIGNvbDogbnVtYmVyO1xuICAgIGNvbFNwYW46IG51bWJlcjtcbiAgICB4QWxpZ25tZW50OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50O1xuICAgIHlBbGlnbm1lbnQ6IFBlcFZlcnRpY2FsQWxpZ25tZW50O1xuICAgIGdyb3VwRmllbGRzOiBQZXBGaWVsZEJhc2VbXTtcbiAgICBtYXhGaWVsZENoYXJhY3RlcnM6IG51bWJlcjtcbiAgICBtaW5WYWx1ZTogbnVtYmVyO1xuICAgIG1heFZhbHVlOiBudW1iZXI7XG4gICAgdGV4dENvbG9yOiBzdHJpbmc7XG4gICAgdmlzaWJsZTogYm9vbGVhbjsgICAgICAgIFxuICAgIC8vIGxhc3RGb2N1c0ZpZWxkOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMua2V5ID0gb3B0aW9ucy5rZXkgfHwgJyc7XG4gICAgICAgIHRoaXMubGFiZWwgPSBvcHRpb25zLmxhYmVsIHx8ICcnO1xuICAgICAgICB0aGlzLmFjY2Vzc29yeSA9IG9wdGlvbnMuYWNjZXNzb3J5IHx8ICcnO1xuICAgICAgICB0aGlzLm1hbmRhdG9yeSA9ICEhb3B0aW9ucy5tYW5kYXRvcnk7XG5cbiAgICAgICAgdGhpcy5vcmRlciA9IG9wdGlvbnMub3JkZXIgPz8gMTtcbiAgICAgICAgdGhpcy5jb250cm9sVHlwZSA9IG9wdGlvbnMuY29udHJvbFR5cGUgfHwgJyc7XG4gICAgICAgIC8vIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnJztcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IG9wdGlvbnMucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgICAgIHRoaXMuaGlkZGVuID0gISFvcHRpb25zLmhpZGRlbjtcblxuICAgICAgICB0aGlzLnJvdyA9IG9wdGlvbnMucm93ID8/IDE7XG4gICAgICAgIHRoaXMucm93U3BhbiA9IG9wdGlvbnMucm93U3BhbiA/PyAxO1xuICAgICAgICB0aGlzLmNvbCA9IG9wdGlvbnMuY29sID8/IDE7XG4gICAgICAgIHRoaXMuY29sU3BhbiA9IG9wdGlvbnMuY29sU3BhbiA/PyAxO1xuXG4gICAgICAgIHRoaXMueEFsaWdubWVudCA9IG9wdGlvbnMueEFsaWdubWVudCA/PyBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuICAgICAgICB0aGlzLnlBbGlnbm1lbnQgPSBvcHRpb25zLnlBbGlnbm1lbnQgPz8gREVGQVVMVF9WRVJUSUNBTF9BTElHTk1FTlQ7XG5cbiAgICAgICAgdGhpcy5tYXhGaWVsZENoYXJhY3RlcnMgPSBvcHRpb25zLm1heEZpZWxkQ2hhcmFjdGVycyA/PyAwO1xuICAgICAgICB0aGlzLm1pblZhbHVlID0gb3B0aW9ucy5taW5WYWx1ZSA/PyAwO1xuICAgICAgICB0aGlzLm1heFZhbHVlID0gb3B0aW9ucy5tYXhWYWx1ZSA/PyAwO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRCYXNlVmFsaWRhdG9ycyhpc0NoZWNrYm94ID0gZmFsc2UpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLm1hbmRhdG9yeSAmJiAhdGhpcy5yZWFkb25seSAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKGlzQ2hlY2tib3gpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1heEZpZWxkQ2hhcmFjdGVycyA+IDApIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heEZpZWxkQ2hhcmFjdGVycykpO1xuICAgICAgICB9ICAgICAgICBcblxuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMuZ2V0QmFzZVZhbGlkYXRvcnMoKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gb3B0aW9ucy52YWx1ZTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IG9wdGlvbnMuZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbFZhbHVlID0gb3B0aW9ucy5hZGRpdGlvbmFsVmFsdWU7XG5cbiAgICAgICAgdGhpcy5yZWFkb25seSA9ICEhb3B0aW9ucy5yZWFkb25seTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICEhb3B0aW9ucy5kaXNhYmxlZDtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gISFvcHRpb25zLnZpc2libGU7XG4gICAgICAgIHRoaXMudGV4dENvbG9yID0gb3B0aW9ucy50ZXh0Q29sb3IgfHwgJyc7XG4gICAgICAgIC8vIHRoaXMubGFzdEZvY3VzRmllbGQgPSBvcHRpb25zLmxhc3RGb2N1c0ZpZWxkIHx8IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwUGxhY2Vob2xkZXJGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAncGxhY2Vob2xkZXInO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBTZXBhcmF0b3JGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnc2VwYXJhdG9yJztcbiAgICBcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpOyAgICAgICAgXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwQXR0YWNobWVudEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdhdHRhY2htZW50JztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwSW5kaWNhdG9yc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbmRpY2F0b3JzJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBUZXh0Ym94RmllbGRUeXBlID1cbiAgICB8ICd0ZXh0J1xuICAgIHwgJ2xpbmsnXG4gICAgfCAnZW1haWwnXG4gICAgfCAncGhvbmUnXG4gICAgfCAnZHVyYXRpb24nXG4gICAgfCAnaW50J1xuICAgIHwgJ3BlcmNlbnRhZ2UnXG4gICAgfCAnY3VycmVuY3knXG4gICAgfCAncmVhbCc7XG5pbnRlcmZhY2UgSVBlcFRleHRib3hGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdHlwZT86IFBlcFRleHRib3hGaWVsZFR5cGU7XG4gICAgcmVnZXg/OiBzdHJpbmcgfCBSZWdFeHA7XG4gICAgLy8gcmVnZXhFcnJvcj86IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBQZXBUZXh0Ym94RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3RleHRib3gnO1xuICAgIHR5cGU6IFBlcFRleHRib3hGaWVsZFR5cGUgPSAndGV4dCc7XG4gICAgcmVnZXg/OiBzdHJpbmcgfCBSZWdFeHA7XG4gICAgLy8gcmVnZXhFcnJvcj86IHN0cmluZztcbiAgICBkaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA9IE5hTjtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBUZXh0Ym94RmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICd0ZXh0JztcbiAgICAgICAgdGhpcy5yZWdleCA9IG9wdGlvbnMucmVnZXggPz8gbnVsbDtcbiAgICAgICAgLy8gdGhpcy5yZWdleEVycm9yID0gb3B0aW9ucy5yZWdleEVycm9yID8/IG51bGw7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwVGV4dGJveEZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5kaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA9IG9wdGlvbnMuZGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQgPz8gTmFOO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgICAgICAgLy8gREktMTEyOTIgLSBhZGQgY2hhbmdlcyBmb3IgbGluayBmaWVsZCBmb3IgdGhlIFwiUmVhZCBPbmx5IGRpc3BsYXkgdmFsdWVcIiBwcm9wXG4gICAgICAgICAgICB0aGlzLmZvcm1hdHRlZFZhbHVlID1cbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkICYmIHRoaXMuZm9ybWF0dGVkVmFsdWUgJiYgdGhpcy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBzdXBlci5nZXRCYXNlVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdlbWFpbCcpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oXG4gICAgICAgICAgICAgICAgICAgIC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8vIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdwaG9uZScpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oL15bXFxkXFwuXFwtXFwrXFwoXFwpXFwqXFwjXSskLykpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2ludCcgfHwgdGhpcy50eXBlID09PSAncmVhbCcpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oL15bXFwuLFxcLVxcK1xcZF0rJC8pKTtcblxuICAgICAgICAgICAgaWYgKCFpc05hTih0aGlzLm1pblZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLm1pblZhbHVlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXNOYU4odGhpcy5tYXhWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhWYWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RleHQnICYmIHRoaXMucmVnZXgpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5yZWdleCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwTGlua0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdsaW5rJztcbiAgICB0eXBlOiBQZXBUZXh0Ym94RmllbGRUeXBlID0gJ2xpbmsnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBUZXh0Ym94RmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcblxuICAgICAgICAvLyBESS0xMTI5MiAtIGFkZCBjaGFuZ2VzIGZvciBsaW5rIGZpZWxkIGZvciB0aGUgXCJSZWFkIE9ubHkgZGlzcGxheSB2YWx1ZVwiIHByb3BcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkICYmIHRoaXMuZm9ybWF0dGVkVmFsdWUgJiYgdGhpcy52YWx1ZVxuICAgICAgICAgICAgICAgID8gdGhpcy5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgIDogdGhpcy52YWx1ZTtcblxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcFRleHRhcmVhRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3RleHRhcmVhJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIC8vIHRoaXMudHlwZSA9ICd0ZXh0YXJlYSc7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVBlcFNpZ25hdHVyZUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICByZW5kZXJUaXRsZT86IGJvb2xlYW47XG4gICAgcmVuZGVyRW5sYXJnZUJ1dHRvbj86IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgUGVwUmljaEh0bWxUZXh0YXJlYUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdyaWNoaHRtbHRleHRhcmVhJzsgICAgXG4gICAgcmVuZGVyVGl0bGU6IGJvb2xlYW47XG4gICAgcmVuZGVyRW5sYXJnZUJ1dHRvbjogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBTaWduYXR1cmVGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnJlbmRlclRpdGxlID0gb3B0aW9ucy5yZW5kZXJUaXRsZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5yZW5kZXJUaXRsZSA6IHRydWU7XG4gICAgICAgIHRoaXMucmVuZGVyRW5sYXJnZUJ1dHRvbiA9IG9wdGlvbnMucmVuZGVyRW5sYXJnZUJ1dHRvbiAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5yZW5kZXJFbmxhcmdlQnV0dG9uIDogdHJ1ZTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwU2lnbmF0dXJlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XG59XG5leHBvcnQgY2xhc3MgUGVwU2lnbmF0dXJlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3NpZ25hdHVyZSc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwU2lnbmF0dXJlRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwSW1hZ2VGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgaGFzQ2FtcGFpZ25GaWVsZD86IGFueTtcbiAgICBpbmRpY2F0b3JzRmllbGQ/OiBhbnk7XG4gICAgbWVudUZpZWxkPzogYW55O1xuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XG4gICAgc2l6ZUxpbWl0TUI/OiBudW1iZXI7XG59XG5leHBvcnQgY2xhc3MgUGVwSW1hZ2VGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnaW1hZ2UnO1xuICAgIGhhc0NhbXBhaWduRmllbGQgPSBudWxsO1xuICAgIGluZGljYXRvcnNGaWVsZCA9IG51bGw7XG4gICAgbWVudUZpZWxkID0gbnVsbDtcbiAgICBvcHRpb25zOiBJUGVwT3B0aW9uW10gPSBbXTtcbiAgICBzaXplTGltaXRNQiA9IDU7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW1hZ2VGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5oYXNDYW1wYWlnbkZpZWxkID0gb3B0aW9ucy5oYXNDYW1wYWlnbkZpZWxkIHx8IG51bGw7XG4gICAgICAgIHRoaXMuaW5kaWNhdG9yc0ZpZWxkID0gb3B0aW9ucy5pbmRpY2F0b3JzRmllbGQgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5tZW51RmllbGQgPSBvcHRpb25zLm1lbnVGaWVsZCB8fCBudWxsO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgICAgIHRoaXMuc2l6ZUxpbWl0TUIgPSBvcHRpb25zLnNpemVMaW1pdE1CIHx8IDU7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVBlcEltYWdlc0ZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBvcHRpb25zPzogSVBlcE9wdGlvbltdO1xufVxuZXhwb3J0IGNsYXNzIFBlcEltYWdlc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZXMnO1xuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEltYWdlc0ZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlID1cbiAgICB8ICdidXR0b24nXG4gICAgfCAncGFja2FnZUJ1dHRvbidcbiAgICB8ICdxcydcbiAgICB8ICdxc0Zvck1hdHJpeCc7XG5pbnRlcmZhY2UgSVBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgYWxsb3dEZWNpbWFsPzogYm9vbGVhbjtcbiAgICBub3RpZmljYXRpb25JbmZvPzogYW55O1xuICAgIHR5cGU/OiBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAncXMnO1xuICAgIGFsbG93RGVjaW1hbDogYm9vbGVhbjtcbiAgICBub3RpZmljYXRpb25JbmZvOiBhbnkgPSB7fTtcbiAgICB1cGRhdGVkRGF0YUNvdW50OiBudW1iZXI7XG4gICAgdHlwZTogUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZTtcbiAgICBkaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA9IE5hTjtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVkRGF0YUNvdW50ID0gMDtcbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdxcyc7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50ID0gb3B0aW9ucy5kaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA/PyBOYU47XG5cbiAgICAgICAgdGhpcy5hbGxvd0RlY2ltYWwgPSBvcHRpb25zLmFsbG93RGVjaW1hbCB8fCBmYWxzZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25JbmZvID0gb3B0aW9ucy5ub3RpZmljYXRpb25JbmZvO1xuICAgICAgICB0aGlzLnVwZGF0ZWREYXRhQ291bnQgKz0gMTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcERhdGVGaWVsZFR5cGUgPSAnZGF0ZXRpbWUnIHwgJ2RhdGUnO1xuaW50ZXJmYWNlIElQZXBEYXRlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHR5cGU/OiBQZXBEYXRlRmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcERhdGVGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnZGF0ZSc7XG4gICAgdHlwZTogUGVwRGF0ZUZpZWxkVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBEYXRlRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdkYXRlJztcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcENoZWNrYm94RmllbGRUeXBlID0gJ2NoZWNrYm94JyB8ICdib29sZWFuVGV4dCc7XG5pbnRlcmZhY2UgSVBlcENoZWNrYm94RmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHR5cGU/OiBQZXBDaGVja2JveEZpZWxkVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBDaGVja2JveEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdjaGVja2JveCc7XG4gICAgdHlwZTogUGVwQ2hlY2tib3hGaWVsZFR5cGU7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwQ2hlY2tib3hGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ2NoZWNrYm94JztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHN1cGVyLmdldEJhc2VWYWxpZGF0b3JzKHRydWUpO1xuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcFNlbGVjdEZpZWxkVHlwZSA9ICdzZWxlY3QnIHwgJ211bHRpJztcbmludGVyZmFjZSBJUGVwU2VsZWN0RmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XG4gICAgdHlwZT86IFBlcFNlbGVjdEZpZWxkVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBTZWxlY3RGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnc2VsZWN0JztcbiAgICBvcHRpb25zOiBJUGVwT3B0aW9uW10gPSBbXTsgICAgXG4gICAgdHlwZTogUGVwU2VsZWN0RmllbGRUeXBlOyAgICBcbiAgICBlbXB0eU9wdGlvbjogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBTZWxlY3RGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdzZWxlY3QnO1xuICAgICAgICB0aGlzLmVtcHR5T3B0aW9uID0gb3B0aW9ucy5lbXB0eU9wdGlvbjtcblxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBTZWxlY3RGaWVsZE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIudXBkYXRlKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwQWRkcmVzc0ZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBncm91cEZpZWxkcz86IFBlcEZpZWxkQmFzZVtdO1xufVxuZXhwb3J0IGNsYXNzIFBlcEFkZHJlc3NGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnYWRkcmVzcyc7XG4gICAgZ3JvdXBGaWVsZHM6IFBlcEZpZWxkQmFzZVtdID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBBZGRyZXNzRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuZ3JvdXBGaWVsZHMgPSBvcHRpb25zLmdyb3VwRmllbGRzIHx8IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZSA9XG4gICAgfCAnYnV0dG9uJ1xuICAgIHwgJ3JlZmVyZW5jZSdcbiAgICB8ICdsaXN0b2ZvYmplY3RzJztcbmludGVyZmFjZSBJUGVwSW50ZXJuYWxCdXR0b25GaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgcmVmZXJlbmNlT2JqZWN0VHlwZT86IGFueTtcbiAgICByZWZlcmVuY2VPYmplY3RTdWJUeXBlPzogc3RyaW5nO1xuICAgIHJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZT86IHN0cmluZztcbiAgICB0eXBlPzogUGVwSW50ZXJuYWxCdXR0b25GaWVsZFR5cGU7XG59XG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxCdXR0b25GaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnYnV0dG9uJztcbiAgICByZWZlcmVuY2VPYmplY3RUeXBlO1xuICAgIHJlZmVyZW5jZU9iamVjdFN1YlR5cGUgPSAnJztcbiAgICByZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGUgPSAnJztcbiAgICB0eXBlOiBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0VHlwZSA9IG9wdGlvbnMucmVmZXJlbmNlT2JqZWN0VHlwZSB8fCBudWxsO1xuICAgICAgICB0aGlzLnJlZmVyZW5jZU9iamVjdFN1YlR5cGUgPSBvcHRpb25zLnJlZmVyZW5jZU9iamVjdFN1YlR5cGUgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGUgPVxuICAgICAgICAgICAgb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGUgfHwgbnVsbDtcblxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ2J1dHRvbic7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVBlcEludGVybmFsUGFnZUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBvYmplY3RJZD86IHN0cmluZztcbiAgICBwYXJlbnRJZD86IHN0cmluZztcbiAgICBzZWFyY2hDb2RlPzogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsUGFnZUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbnRlcm5hbFBhZ2UnO1xuICAgIG9iamVjdElkID0gJyc7XG4gICAgcGFyZW50SWQgPSAnJztcbiAgICBzZWFyY2hDb2RlID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW50ZXJuYWxQYWdlRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub2JqZWN0SWQgPSBvcHRpb25zLm9iamVjdElkIHx8ICcnO1xuICAgICAgICB0aGlzLnBhcmVudElkID0gb3B0aW9ucy5wYXJlbnRJZCB8fCAnJztcbiAgICAgICAgdGhpcy5zZWFyY2hDb2RlID0gb3B0aW9ucy5zZWFyY2hDb2RlIHx8ICcnO1xuICAgIH1cbn1cblxuXG5pbnRlcmZhY2UgSVBlcEludGVybmFsQ2FydXNlbEZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBzZWFyY2hDb2RlPzogc3RyaW5nO1xuICAgIHBhZ2VJbmZvPzogYW55O1xufVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsQ2FydXNlbEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbnRlcm5hbENhcnVzZWwnO1xuICAgIHNlYXJjaENvZGUgPSAnJztcbiAgICBwYWdlSW5mbztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbnRlcm5hbENhcnVzZWxGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb2RlID0gb3B0aW9ucy5zZWFyY2hDb2RlIHx8ICcnO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUob3B0aW9uczogSVBlcEludGVybmFsQ2FydXNlbEZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5wYWdlSW5mbyA9IG9wdGlvbnMucGFnZUluZm87XG4gICAgfVxufVxuXG5cbmludGVyZmFjZSBJUGVwSW50ZXJuYWxNZW51RmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XG59XG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxNZW51RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ21lbnUnO1xuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIC8vIGhhc1N1Yk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbnRlcm5hbE1lbnVGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgICAgICAvLyB0aGlzLmhhc1N1Yk1lbnUgPSBvcHRpb25zWydoYXNTdWJNZW51J107XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZXBGaWVsZFZhbHVlQ2hhbmdlRXZlbnQge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgY29udHJvbFR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEZpZWxkQ2xpY2tFdmVudCB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgY29udHJvbFR5cGU/OiBzdHJpbmc7XG4gICAgZXZlbnRXaGljaD86IGFueTtcbiAgICBvdGhlckRhdGE/OiBhbnk7XG59XG4iXX0=
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY3VzdG9taXphdGlvbi9jdXN0b21pemF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCekQsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUEyQixNQUFNLENBQUM7QUFJM0Usb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF5QixLQUFLLENBQUM7QUFzQ3RFLE1BQU0sT0FBTyxZQUFZO0lBMkJyQix1QkFBdUI7SUFFdkIsWUFBWSxVQUFnQyxFQUFFO1FBQzFDLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFckMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLENB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QUFFLENBQUM7UUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXdDO1FBQ2xELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3JDLENBQUM7Q0FDSjtBQU1ELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxZQUFZO0lBR2xELCtCQUErQjtJQUUvQixZQUFZLFVBQXdDLEVBQUU7UUFDbEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBTG5CLGdCQUFXLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLFlBQU8sR0FBaUIsRUFBRSxDQUFDO1FBS3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDckMsMkNBQTJDO0lBQy9DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKiogQWxsb3dlZCBsYXlvdXQgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwTGF5b3V0VHlwZSA9ICdmb3JtJyB8ICdjYXJkJyB8ICd0YWJsZSc7XG5cbi8qKiBBbGxvd2VkIHN0eWxlIG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcFN0eWxlVHlwZSA9ICd3ZWFrJyB8ICd3ZWFrLWludmVydCcgfCAncmVndWxhcicgfCAnc3Ryb25nJztcblxuLyoqIEFsbG93ZWQgc3R5bGUgc3RhdGUgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwU3R5bGVTdGF0ZVR5cGUgPSAnc3lzdGVtJyB8ICdjYXV0aW9uJyB8ICdzdWNjZXNzJztcblxuLyoqIEFsbG93ZWQgc2l6ZSBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBTaXplVHlwZSA9ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xuXG4vKiogQWxsb3dlZCBob3Jpem9udGFsIGFsaWdubWVudCBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBIb3Jpem9udGFsQWxpZ25tZW50ID0gJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuLyoqIERlZmF1bHQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9ICdsZWZ0JztcblxuLyoqIEFsbG93ZWQgdmVydGljYWwgYWxpZ25tZW50IG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcFZlcnRpY2FsQWxpZ25tZW50ID0gJ3RvcCcgfCAnbWlkZGxlJyB8ICdib3R0b20nO1xuLyoqIERlZmF1bHQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9WRVJUSUNBTF9BTElHTk1FTlQ6IFBlcFZlcnRpY2FsQWxpZ25tZW50ID0gJ3RvcCc7XG5leHBvcnQgaW50ZXJmYWNlIElQZXBPcHRpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8vIGV4cG9ydCB0eXBlIFBlcEZpZWxkQmFzZVR5cGUgPSAnJyB8IFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlIHwgUGVwVGV4dGJveEZpZWxkVHlwZSB8XG4vLyAgICAgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZSB8IFBlcERhdGVGaWVsZFR5cGUgfCBQZXBDaGVja2JveEZpZWxkVHlwZSB8IFBlcFNlbGVjdEZpZWxkVHlwZTtcbmludGVyZmFjZSBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdmFsdWU/OiBhbnk7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiBhbnk7XG4gICAgYWRkaXRpb25hbFZhbHVlPzogc3RyaW5nO1xuICAgIGtleT86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBhY2Nlc3Nvcnk/OiBzdHJpbmc7XG4gICAgbWFuZGF0b3J5PzogYm9vbGVhbjtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIG9yZGVyPzogbnVtYmVyO1xuICAgIGNvbnRyb2xUeXBlPzogc3RyaW5nO1xuICAgIC8vIHR5cGU/OiBQZXBGaWVsZEJhc2VUeXBlO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGhpZGRlbj86IGJvb2xlYW47XG4gICAgcm93PzogbnVtYmVyO1xuICAgIHJvd1NwYW4/OiBudW1iZXI7XG4gICAgY29sPzogbnVtYmVyO1xuICAgIGNvbFNwYW4/OiBudW1iZXI7XG4gICAgeEFsaWdubWVudD86IFBlcEhvcml6b250YWxBbGlnbm1lbnQ7XG4gICAgeUFsaWdubWVudD86IFBlcFZlcnRpY2FsQWxpZ25tZW50O1xuICAgIG1heEZpZWxkQ2hhcmFjdGVycz86IG51bWJlcjtcbiAgICBtaW5WYWx1ZT86IG51bWJlcjtcbiAgICBtYXhWYWx1ZT86IG51bWJlcjtcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgdmlzaWJsZT86IGJvb2xlYW47ICAgIFxuICAgIGVtcHR5T3B0aW9uPzogYm9vbGVhbjsgICAgXG4gICAgLy8gbGFzdEZvY3VzRmllbGQ/OiBhbnk7XG4gICAgZGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQ/OiBudW1iZXI7XG59XG5leHBvcnQgY2xhc3MgUGVwRmllbGRCYXNlIHtcbiAgICB2YWx1ZTogYW55O1xuICAgIGZvcm1hdHRlZFZhbHVlOiBhbnk7XG4gICAgYWRkaXRpb25hbFZhbHVlOiBzdHJpbmc7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBhY2Nlc3Nvcnk6IHN0cmluZztcbiAgICBtYW5kYXRvcnk6IGJvb2xlYW47XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgb3JkZXI6IG51bWJlcjtcbiAgICAvLyB0eXBlOiBzdHJpbmc7XG4gICAgY29udHJvbFR5cGU6IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIGhpZGRlbjogYm9vbGVhbjtcbiAgICByb3c6IG51bWJlcjtcbiAgICByb3dTcGFuOiBudW1iZXI7XG4gICAgY29sOiBudW1iZXI7XG4gICAgY29sU3BhbjogbnVtYmVyO1xuICAgIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQ7XG4gICAgeUFsaWdubWVudDogUGVwVmVydGljYWxBbGlnbm1lbnQ7XG4gICAgZ3JvdXBGaWVsZHM6IFBlcEZpZWxkQmFzZVtdO1xuICAgIG1heEZpZWxkQ2hhcmFjdGVyczogbnVtYmVyO1xuICAgIG1pblZhbHVlOiBudW1iZXI7XG4gICAgbWF4VmFsdWU6IG51bWJlcjtcbiAgICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgICB2aXNpYmxlOiBib29sZWFuOyAgICAgICAgXG4gICAgLy8gbGFzdEZvY3VzRmllbGQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5rZXkgPSBvcHRpb25zLmtleSB8fCAnJztcbiAgICAgICAgdGhpcy5sYWJlbCA9IG9wdGlvbnMubGFiZWwgfHwgJyc7XG4gICAgICAgIHRoaXMuYWNjZXNzb3J5ID0gb3B0aW9ucy5hY2Nlc3NvcnkgfHwgJyc7XG4gICAgICAgIHRoaXMubWFuZGF0b3J5ID0gISFvcHRpb25zLm1hbmRhdG9yeTtcblxuICAgICAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlciA/PyAxO1xuICAgICAgICB0aGlzLmNvbnRyb2xUeXBlID0gb3B0aW9ucy5jb250cm9sVHlwZSB8fCAnJztcbiAgICAgICAgLy8gdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICcnO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gb3B0aW9ucy5wbGFjZWhvbGRlciB8fCAnJztcbiAgICAgICAgdGhpcy5oaWRkZW4gPSAhIW9wdGlvbnMuaGlkZGVuO1xuXG4gICAgICAgIHRoaXMucm93ID0gb3B0aW9ucy5yb3cgPz8gMTtcbiAgICAgICAgdGhpcy5yb3dTcGFuID0gb3B0aW9ucy5yb3dTcGFuID8/IDE7XG4gICAgICAgIHRoaXMuY29sID0gb3B0aW9ucy5jb2wgPz8gMTtcbiAgICAgICAgdGhpcy5jb2xTcGFuID0gb3B0aW9ucy5jb2xTcGFuID8/IDE7XG5cbiAgICAgICAgdGhpcy54QWxpZ25tZW50ID0gb3B0aW9ucy54QWxpZ25tZW50ID8/IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG4gICAgICAgIHRoaXMueUFsaWdubWVudCA9IG9wdGlvbnMueUFsaWdubWVudCA/PyBERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOTUVOVDtcblxuICAgICAgICB0aGlzLm1heEZpZWxkQ2hhcmFjdGVycyA9IG9wdGlvbnMubWF4RmllbGRDaGFyYWN0ZXJzID8/IDA7XG4gICAgICAgIHRoaXMubWluVmFsdWUgPSBvcHRpb25zLm1pblZhbHVlID8/IDA7XG4gICAgICAgIHRoaXMubWF4VmFsdWUgPSBvcHRpb25zLm1heFZhbHVlID8/IDA7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEJhc2VWYWxpZGF0b3JzKGlzQ2hlY2tib3ggPSBmYWxzZSk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMubWFuZGF0b3J5ICYmICF0aGlzLnJlYWRvbmx5ICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAoaXNDaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWF4RmllbGRDaGFyYWN0ZXJzID4gMCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4RmllbGRDaGFyYWN0ZXJzKSk7XG4gICAgICAgIH0gICAgICAgIFxuXG4gICAgICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gdGhpcy5nZXRCYXNlVmFsaWRhdG9ycygpO1xuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBvcHRpb25zLnZhbHVlO1xuICAgICAgICB0aGlzLmZvcm1hdHRlZFZhbHVlID0gb3B0aW9ucy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsVmFsdWUgPSBvcHRpb25zLmFkZGl0aW9uYWxWYWx1ZTtcblxuICAgICAgICB0aGlzLnJlYWRvbmx5ID0gISFvcHRpb25zLnJlYWRvbmx5O1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gISFvcHRpb25zLmRpc2FibGVkO1xuICAgICAgICB0aGlzLnZpc2libGUgPSAhIW9wdGlvbnMudmlzaWJsZTtcbiAgICAgICAgdGhpcy50ZXh0Q29sb3IgPSBvcHRpb25zLnRleHRDb2xvciB8fCAnJztcbiAgICAgICAgLy8gdGhpcy5sYXN0Rm9jdXNGaWVsZCA9IG9wdGlvbnMubGFzdEZvY3VzRmllbGQgfHwgbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBQbGFjZWhvbGRlckZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdwbGFjZWhvbGRlcic7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcFNlcGFyYXRvckZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdzZXBhcmF0b3InO1xuICAgIFxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7ICAgICAgICBcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBBdHRhY2htZW50RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2F0dGFjaG1lbnQnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBJbmRpY2F0b3JzRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2luZGljYXRvcnMnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcFRleHRib3hGaWVsZFR5cGUgPVxuICAgIHwgJ3RleHQnXG4gICAgfCAnbGluaydcbiAgICB8ICdlbWFpbCdcbiAgICB8ICdwaG9uZSdcbiAgICB8ICdkdXJhdGlvbidcbiAgICB8ICdpbnQnXG4gICAgfCAncGVyY2VudGFnZSdcbiAgICB8ICdjdXJyZW5jeSdcbiAgICB8ICdyZWFsJztcbmludGVyZmFjZSBJUGVwVGV4dGJveEZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICB0eXBlPzogUGVwVGV4dGJveEZpZWxkVHlwZTtcbiAgICByZWdleD86IHN0cmluZyB8IFJlZ0V4cDtcbiAgICAvLyByZWdleEVycm9yPzogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFBlcFRleHRib3hGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAndGV4dGJveCc7XG4gICAgdHlwZTogUGVwVGV4dGJveEZpZWxkVHlwZSA9ICd0ZXh0JztcbiAgICByZWdleD86IHN0cmluZyB8IFJlZ0V4cDtcbiAgICAvLyByZWdleEVycm9yPzogc3RyaW5nO1xuICAgIGRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50ID0gTmFOO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFRleHRib3hGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ3RleHQnO1xuICAgICAgICB0aGlzLnJlZ2V4ID0gb3B0aW9ucy5yZWdleCA/PyBudWxsO1xuICAgICAgICAvLyB0aGlzLnJlZ2V4RXJyb3IgPSBvcHRpb25zLnJlZ2V4RXJyb3IgPz8gbnVsbDtcblxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBUZXh0Ym94RmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcblxuICAgICAgICB0aGlzLmRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50ID0gb3B0aW9ucy5kaWdpdHNOdW1iZXJBZnRlckRlY2ltYWxQb2ludCA/PyBOYU47XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICAvLyBESS0xMTI5MiAtIGFkZCBjaGFuZ2VzIGZvciBsaW5rIGZpZWxkIGZvciB0aGUgXCJSZWFkIE9ubHkgZGlzcGxheSB2YWx1ZVwiIHByb3BcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPVxuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb3JtYXR0ZWRWYWx1ZSAmJiB0aGlzLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5mb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHN1cGVyLmdldEJhc2VWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2VtYWlsJykge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcbiAgICAgICAgICAgICAgICAgICAgL14oKFtePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC9cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLy8gdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMuZW1haWwpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Bob25lJykge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybigvXltcXGRcXC5cXC1cXCtcXChcXClcXCpcXCNdKyQvKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaW50JyB8fCB0aGlzLnR5cGUgPT09ICdyZWFsJykge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybigvXltcXC4sXFwtXFwrXFxkXSskLykpO1xuXG4gICAgICAgICAgICBpZiAoIWlzTmFOKHRoaXMubWluVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKHRoaXMubWluVmFsdWUpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpc05hTih0aGlzLm1heFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLm1heFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAndGV4dCcgJiYgdGhpcy5yZWdleCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnJlZ2V4KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBMaW5rRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2xpbmsnO1xuICAgIHR5cGU6IFBlcFRleHRib3hGaWVsZFR5cGUgPSAnbGluayc7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUob3B0aW9uczogSVBlcFRleHRib3hGaWVsZE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIudXBkYXRlKG9wdGlvbnMpO1xuICAgICAgICBcbiAgICAgICAgLy8gREktMjMxNjcgLSBDb21tZW50IHRoaXMuXG4gICAgICAgIC8vIC8vIERJLTExMjkyIC0gYWRkIGNoYW5nZXMgZm9yIGxpbmsgZmllbGQgZm9yIHRoZSBcIlJlYWQgT25seSBkaXNwbGF5IHZhbHVlXCIgcHJvcFxuICAgICAgICAvLyB0aGlzLmZvcm1hdHRlZFZhbHVlID1cbiAgICAgICAgLy8gICAgIHRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb3JtYXR0ZWRWYWx1ZSAmJiB0aGlzLnZhbHVlXG4gICAgICAgIC8vICAgICAgICAgPyB0aGlzLmZvcm1hdHRlZFZhbHVlXG4gICAgICAgIC8vICAgICAgICAgOiB0aGlzLnZhbHVlO1xuXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwVGV4dGFyZWFGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAndGV4dGFyZWEnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgLy8gdGhpcy50eXBlID0gJ3RleHRhcmVhJztcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwU2lnbmF0dXJlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHJlbmRlclRpdGxlPzogYm9vbGVhbjtcbiAgICByZW5kZXJFbmxhcmdlQnV0dG9uPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBjbGFzcyBQZXBSaWNoSHRtbFRleHRhcmVhRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3JpY2hodG1sdGV4dGFyZWEnOyAgICBcbiAgICByZW5kZXJUaXRsZTogYm9vbGVhbjtcbiAgICByZW5kZXJFbmxhcmdlQnV0dG9uOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFNpZ25hdHVyZUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyVGl0bGUgPSBvcHRpb25zLnJlbmRlclRpdGxlICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLnJlbmRlclRpdGxlIDogdHJ1ZTtcbiAgICAgICAgdGhpcy5yZW5kZXJFbmxhcmdlQnV0dG9uID0gb3B0aW9ucy5yZW5kZXJFbmxhcmdlQnV0dG9uICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLnJlbmRlckVubGFyZ2VCdXR0b24gOiB0cnVlO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBTaWduYXR1cmVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBTaWduYXR1cmVGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnc2lnbmF0dXJlJztcbiAgICBvcHRpb25zOiBJUGVwT3B0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBTaWduYXR1cmVGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBJbWFnZUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBoYXNDYW1wYWlnbkZpZWxkPzogYW55O1xuICAgIGluZGljYXRvcnNGaWVsZD86IGFueTtcbiAgICBtZW51RmllbGQ/OiBhbnk7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbiAgICBzaXplTGltaXRNQj86IG51bWJlcjtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbWFnZUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZSc7XG4gICAgaGFzQ2FtcGFpZ25GaWVsZCA9IG51bGw7XG4gICAgaW5kaWNhdG9yc0ZpZWxkID0gbnVsbDtcbiAgICBtZW51RmllbGQgPSBudWxsO1xuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIHNpemVMaW1pdE1CID0gNTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbWFnZUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmhhc0NhbXBhaWduRmllbGQgPSBvcHRpb25zLmhhc0NhbXBhaWduRmllbGQgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5pbmRpY2F0b3JzRmllbGQgPSBvcHRpb25zLmluZGljYXRvcnNGaWVsZCB8fCBudWxsO1xuICAgICAgICB0aGlzLm1lbnVGaWVsZCA9IG9wdGlvbnMubWVudUZpZWxkIHx8IG51bGw7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICAgICAgdGhpcy5zaXplTGltaXRNQiA9IG9wdGlvbnMuc2l6ZUxpbWl0TUIgfHwgNTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwSW1hZ2VzRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XG59XG5leHBvcnQgY2xhc3MgUGVwSW1hZ2VzRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ltYWdlcyc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW1hZ2VzRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZFR5cGUgPVxuICAgIHwgJ2J1dHRvbidcbiAgICB8ICdwYWNrYWdlQnV0dG9uJ1xuICAgIHwgJ3FzJ1xuICAgIHwgJ3FzRm9yTWF0cml4JztcbmludGVyZmFjZSBJUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBhbGxvd0RlY2ltYWw/OiBib29sZWFuO1xuICAgIG5vdGlmaWNhdGlvbkluZm8/OiBhbnk7XG4gICAgdHlwZT86IFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZFR5cGU7XG59XG5leHBvcnQgY2xhc3MgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdxcyc7XG4gICAgYWxsb3dEZWNpbWFsOiBib29sZWFuO1xuICAgIG5vdGlmaWNhdGlvbkluZm86IGFueSA9IHt9O1xuICAgIHVwZGF0ZWREYXRhQ291bnQ6IG51bWJlcjtcbiAgICB0eXBlOiBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlO1xuICAgIGRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50ID0gTmFOO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZWREYXRhQ291bnQgPSAwO1xuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ3FzJztcblxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuZGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQgPSBvcHRpb25zLmRpZ2l0c051bWJlckFmdGVyRGVjaW1hbFBvaW50ID8/IE5hTjtcblxuICAgICAgICB0aGlzLmFsbG93RGVjaW1hbCA9IG9wdGlvbnMuYWxsb3dEZWNpbWFsIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkluZm8gPSBvcHRpb25zLm5vdGlmaWNhdGlvbkluZm87XG4gICAgICAgIHRoaXMudXBkYXRlZERhdGFDb3VudCArPSAxO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwRGF0ZUZpZWxkVHlwZSA9ICdkYXRldGltZScgfCAnZGF0ZSc7XG5pbnRlcmZhY2UgSVBlcERhdGVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdHlwZT86IFBlcERhdGVGaWVsZFR5cGU7XG59XG5leHBvcnQgY2xhc3MgUGVwRGF0ZUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdkYXRlJztcbiAgICB0eXBlOiBQZXBEYXRlRmllbGRUeXBlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcERhdGVGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ2RhdGUnO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwQ2hlY2tib3hGaWVsZFR5cGUgPSAnY2hlY2tib3gnIHwgJ2Jvb2xlYW5UZXh0JztcbmludGVyZmFjZSBJUGVwQ2hlY2tib3hGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdHlwZT86IFBlcENoZWNrYm94RmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcENoZWNrYm94RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2NoZWNrYm94JztcbiAgICB0eXBlOiBQZXBDaGVja2JveEZpZWxkVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBDaGVja2JveEZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnY2hlY2tib3gnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gc3VwZXIuZ2V0QmFzZVZhbGlkYXRvcnModHJ1ZSk7XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwU2VsZWN0RmllbGRUeXBlID0gJ3NlbGVjdCcgfCAnbXVsdGknO1xuaW50ZXJmYWNlIElQZXBTZWxlY3RGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbiAgICB0eXBlPzogUGVwU2VsZWN0RmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcFNlbGVjdEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdzZWxlY3QnO1xuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdOyAgICBcbiAgICB0eXBlOiBQZXBTZWxlY3RGaWVsZFR5cGU7ICAgIFxuICAgIGVtcHR5T3B0aW9uOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFNlbGVjdEZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ3NlbGVjdCc7XG4gICAgICAgIHRoaXMuZW1wdHlPcHRpb24gPSBvcHRpb25zLmVtcHR5T3B0aW9uO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUob3B0aW9uczogSVBlcFNlbGVjdEZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBBZGRyZXNzRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIGdyb3VwRmllbGRzPzogUGVwRmllbGRCYXNlW107XG59XG5leHBvcnQgY2xhc3MgUGVwQWRkcmVzc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdhZGRyZXNzJztcbiAgICBncm91cEZpZWxkczogUGVwRmllbGRCYXNlW10gPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEFkZHJlc3NGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5ncm91cEZpZWxkcyA9IG9wdGlvbnMuZ3JvdXBGaWVsZHMgfHwgbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlID1cbiAgICB8ICdidXR0b24nXG4gICAgfCAncmVmZXJlbmNlJ1xuICAgIHwgJ2xpc3RvZm9iamVjdHMnO1xuaW50ZXJmYWNlIElQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICByZWZlcmVuY2VPYmplY3RUeXBlPzogYW55O1xuICAgIHJlZmVyZW5jZU9iamVjdFN1YlR5cGU/OiBzdHJpbmc7XG4gICAgcmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlPzogc3RyaW5nO1xuICAgIHR5cGU/OiBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdidXR0b24nO1xuICAgIHJlZmVyZW5jZU9iamVjdFR5cGU7XG4gICAgcmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9ICcnO1xuICAgIHJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSA9ICcnO1xuICAgIHR5cGU6IFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsQnV0dG9uRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RUeXBlIHx8IG51bGw7XG4gICAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9IG9wdGlvbnMucmVmZXJlbmNlT2JqZWN0U3ViVHlwZSB8fCBudWxsO1xuICAgICAgICB0aGlzLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSA9XG4gICAgICAgICAgICBvcHRpb25zLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSB8fCBudWxsO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnYnV0dG9uJztcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwSW50ZXJuYWxQYWdlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9iamVjdElkPzogc3RyaW5nO1xuICAgIHBhcmVudElkPzogc3RyaW5nO1xuICAgIHNlYXJjaENvZGU/OiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxQYWdlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ludGVybmFsUGFnZSc7XG4gICAgb2JqZWN0SWQgPSAnJztcbiAgICBwYXJlbnRJZCA9ICcnO1xuICAgIHNlYXJjaENvZGUgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbnRlcm5hbFBhZ2VGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vYmplY3RJZCA9IG9wdGlvbnMub2JqZWN0SWQgfHwgJyc7XG4gICAgICAgIHRoaXMucGFyZW50SWQgPSBvcHRpb25zLnBhcmVudElkIHx8ICcnO1xuICAgICAgICB0aGlzLnNlYXJjaENvZGUgPSBvcHRpb25zLnNlYXJjaENvZGUgfHwgJyc7XG4gICAgfVxufVxuXG5cbmludGVyZmFjZSBJUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHNlYXJjaENvZGU/OiBzdHJpbmc7XG4gICAgcGFnZUluZm8/OiBhbnk7XG59XG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ludGVybmFsQ2FydXNlbCc7XG4gICAgc2VhcmNoQ29kZSA9ICcnO1xuICAgIHBhZ2VJbmZvO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsQ2FydXNlbEZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnNlYXJjaENvZGUgPSBvcHRpb25zLnNlYXJjaENvZGUgfHwgJyc7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnBhZ2VJbmZvID0gb3B0aW9ucy5wYWdlSW5mbztcbiAgICB9XG59XG5cblxuaW50ZXJmYWNlIElQZXBJbnRlcm5hbE1lbnVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbE1lbnVGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnbWVudSc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG4gICAgLy8gaGFzU3ViTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsTWVudUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgICAgIC8vIHRoaXMuaGFzU3ViTWVudSA9IG9wdGlvbnNbJ2hhc1N1Yk1lbnUnXTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEZpZWxkVmFsdWVDaGFuZ2VFdmVudCB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBjb250cm9sVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVwRmllbGRDbGlja0V2ZW50IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBjb250cm9sVHlwZT86IHN0cmluZztcbiAgICBldmVudFdoaWNoPzogYW55O1xuICAgIG90aGVyRGF0YT86IGFueTtcbn1cbiJdfQ==
|