@vendure/admin-ui 2.1.5 → 2.1.7
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/core/common/utilities/custom-field-default-value.d.ts +1 -1
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +1 -0
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +2 -2
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +3 -3
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +2 -2
- package/esm2022/core/common/introspection-result.mjs +1 -1
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/app-shell/app-shell.component.mjs +4 -3
- package/esm2022/core/shared/components/chart/chart.component.mjs +1 -1
- package/esm2022/core/shared/components/form-field/form-field.component.mjs +1 -1
- package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +2 -2
- package/esm2022/login/components/login/login.component.mjs +4 -5
- package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +3 -3
- package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +2 -2
- package/esm2022/order/order.routes.mjs +1 -1
- package/esm2022/settings/settings.routes.mjs +4 -4
- package/fesm2022/vendure-admin-ui-catalog.mjs +5 -5
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +6 -5
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-login.mjs +2 -3
- package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +3 -3
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +3 -3
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/login/components/login/login.component.d.ts +0 -1
- package/package.json +8 -8
- package/static/i18n-messages/en.json +3 -3
- package/static/i18n-messages/pt_BR.json +2 -2
- package/static/i18n-messages/uk.json +166 -166
- package/static/styles/global/_sass-overrides.scss +5 -0
- package/static/styles/theme/dark.scss +5 -4
- package/static/styles/theme/default.scss +7 -2
- package/static/theme.min.css +1 -1
|
@@ -250,7 +250,7 @@ export class ProductDetailComponent extends TypedBaseDetailComponent {
|
|
|
250
250
|
return this.productDetailService.updateProduct({
|
|
251
251
|
product,
|
|
252
252
|
languageCode,
|
|
253
|
-
autoUpdate: this.detailForm.get(['
|
|
253
|
+
autoUpdate: this.detailForm.get(['autoUpdateVariantNames'])?.value ?? false,
|
|
254
254
|
productInput,
|
|
255
255
|
variantsInput,
|
|
256
256
|
});
|
|
@@ -332,4 +332,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
332
332
|
type: Component,
|
|
333
333
|
args: [{ selector: 'vdr-product-detail2', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-flex-row\"></div>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"product-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine || createVariantsConfig.variants.length === 0\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"(detailForm.invalid || detailForm.pristine) && !assetsChanged()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <vdr-form-field [label]=\"'catalog.visibility' | translate\" for=\"visibility\">\r\n <clr-toggle-wrapper *vdrIfPermissions=\"updatePermissions\">\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n name=\"enabled\"\r\n [formControl]=\"detailForm.get(['enabled'])\"\r\n />\r\n <label>{{ 'common.enabled' | translate }}</label>\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </vdr-card>\r\n <ng-container *ngIf=\"!(isNew$ | async)\">\r\n <vdr-card *vdrIfMultichannel [title]=\"'common.channels' | translate\">\r\n <vdr-form-item *vdrIfDefaultChannelActive>\r\n <div class=\"flex channel-assignment\">\r\n <div class=\"mb-2\">\r\n <ng-container *ngFor=\"let channel of productChannels$ | async\">\r\n <vdr-chip\r\n *ngIf=\"!isDefaultChannel(channel.code)\"\r\n icon=\"times-circle\"\r\n (iconClick)=\"removeFromChannel(channel.id)\"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel }}\r\n </vdr-chip>\r\n </ng-container>\r\n </div>\r\n <button class=\"button-small\" (click)=\"assignToChannel()\">\r\n <clr-icon shape=\"layers\"></clr-icon>\r\n {{ 'catalog.assign-to-channel' | translate }}\r\n </button>\r\n </div>\r\n </vdr-form-item>\r\n </vdr-card>\r\n </ng-container>\r\n <vdr-card *ngIf=\"entity?.optionGroups.length\" [title]=\"'catalog.product-options' | translate\">\r\n <div class=\"options\">\r\n <vdr-chip\r\n *ngFor=\"let optionGroup of entity?.optionGroups | sort : 'id'\"\r\n [colorFrom]=\"optionGroup.code\"\r\n [invert]=\"true\"\r\n >\r\n {{ optionGroup.name }}\r\n </vdr-chip>\r\n </div>\r\n <div>\r\n <a [routerLink]=\"['options']\" class=\"button-small mt-2\" *vdrIfPermissions=\"updatePermissions\">\r\n <clr-icon shape=\"pencil\"></clr-icon>\r\n {{ 'catalog.edit-options' | translate }}\r\n </a>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'catalog.facets' | translate\">\r\n <div class=\"facets\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of facetValues$ | async\"\r\n [facetValue]=\"facetValue\"\r\n [removable]=\"updatePermissions | hasPermission\"\r\n (remove)=\"removeProductFacetValue(facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n </div>\r\n <div>\r\n <button\r\n class=\"button-small mt-2\"\r\n *vdrIfPermissions=\"updatePermissions\"\r\n (click)=\"selectProductFacetValue()\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.add-facets' | translate }}\r\n </button>\r\n </div>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\"></vdr-page-entity-info>\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n\r\n <vdr-page-block>\r\n <button type=\"submit\" hidden x-data=\"prevents enter key from triggering other buttons\"></button>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <div>\r\n <vdr-form-field [label]=\"'catalog.product-name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermissions | hasPermission)\"\r\n (input)=\"updateSlug($event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <div *ngIf=\"(isNew$ | async) === false && detailForm.get(['name'])?.dirty\">\r\n <clr-checkbox-wrapper>\r\n <input\r\n clrCheckbox\r\n type=\"checkbox\"\r\n id=\"auto-update\"\r\n formControlName=\"autoUpdateVariantNames\"\r\n />\r\n <label>{{ 'catalog.auto-update-product-variant-name' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n </div>\r\n </div>\r\n <vdr-form-field\r\n [label]=\"'catalog.slug' | translate\"\r\n for=\"slug\"\r\n [errors]=\"{ pattern: 'catalog.slug-pattern-error' | translate }\"\r\n >\r\n <input\r\n id=\"slug\"\r\n type=\"text\"\r\n formControlName=\"slug\"\r\n [readonly]=\"!(updatePermissions | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n class=\"form-grid-span\"\r\n [label]=\"'common.description' | translate\"\r\n for=\"slug\"\r\n [errors]=\"{ pattern: 'catalog.slug-pattern-error' | translate }\"\r\n >\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermissions | hasPermission)\"\r\n ></vdr-rich-text-editor>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'common.custom-fields' | translate\" *ngIf=\"customFields.length\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Product\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermissions | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"product-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n <vdr-card [title]=\"'catalog.assets' | translate\">\r\n <vdr-assets\r\n [assets]=\"assetChanges.assets || entity?.assets\"\r\n [featuredAsset]=\"assetChanges.featuredAsset || entity?.featuredAsset\"\r\n [updatePermissions]=\"updatePermissions\"\r\n (change)=\"assetChanges = $event\"\r\n ></vdr-assets>\r\n </vdr-card>\r\n\r\n <vdr-card [title]=\"'catalog.product-variants' | translate\" [paddingX]=\"isNew$ | async\">\r\n <div *ngIf=\"isNew$ | async; else variantList\">\r\n <vdr-generate-product-variants\r\n (variantsChange)=\"createVariantsConfig = $event\"\r\n ></vdr-generate-product-variants>\r\n </div>\r\n <ng-template #variantList>\r\n <vdr-product-variant-list\r\n [productId]=\"this.id\"\r\n dataTableId=\"product-detail-variants-list\"\r\n [hideLanguageSelect]=\"true\"\r\n ></vdr-product-variant-list>\r\n </ng-template>\r\n <div class=\"mx-3\" *ngIf=\"(isNew$ | async) === false\">\r\n <a class=\"button\" [routerLink]=\"['manage-variants']\">\r\n <clr-icon shape=\"add-text\"></clr-icon>\r\n {{ 'catalog.manage-variants' | translate }}</a\r\n >\r\n </div>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n", styles: [":host ::ng-deep trix-toolbar{top:24px}.facets,.options{display:flex;flex-wrap:wrap;gap:3px}vdr-action-bar clr-toggle-wrapper{margin-top:12px}.variant-filter{flex:1;display:flex}.variant-filter input{flex:1;max-width:initial;border-radius:3px 0 0 3px!important}.variant-filter .icon-button{border:1px solid var(--color-component-border-300);background-color:var(--color-component-bg-100);border-radius:0 3px 3px 0;border-inline-start:none}.group-name{padding-inline-end:6px}.view-mode{display:flex;flex-direction:column;justify-content:space-between}@media screen and (min-width: 768px){.view-mode{flex-direction:row}}.edit-variants-btn{margin-top:0}.channel-assignment{flex-wrap:wrap;max-height:144px}.pagination-row{display:flex;align-items:baseline;justify-content:space-between}\n"] }]
|
|
334
334
|
}], ctorParameters: function () { return [{ type: i1.ProductDetailService }, { type: i2.FormBuilder }, { type: i3.ModalService }, { type: i3.NotificationService }, { type: i3.DataService }, { type: i0.ChangeDetectorRef }]; } });
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWRldGFpbC9wcm9kdWN0LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFHSCx5QkFBeUIsRUFFekIsZUFBZSxFQUNmLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFPdkIsVUFBVSxFQUNWLHVCQUF1QixFQUd2Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEdBTTFCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUs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QUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEFzc2V0LFxyXG4gICAgQ3JlYXRlUHJvZHVjdElucHV0LFxyXG4gICAgY3JlYXRlVXBkYXRlZFRyYW5zbGF0YWJsZSxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgZmluZFRyYW5zbGF0aW9uLFxyXG4gICAgZ2V0Q2hhbm5lbENvZGVGcm9tVXNlclN0YXR1cyxcclxuICAgIGdldEN1c3RvbUZpZWxkc0RlZmF1bHRzLFxyXG4gICAgR2V0UHJvZHVjdERldGFpbERvY3VtZW50LFxyXG4gICAgR2V0UHJvZHVjdERldGFpbFF1ZXJ5LFxyXG4gICAgR2V0UHJvZHVjdFdpdGhWYXJpYW50c1F1ZXJ5LFxyXG4gICAgTGFuZ3VhZ2VDb2RlLFxyXG4gICAgTW9kYWxTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFBlcm1pc3Npb24sXHJcbiAgICBQUk9EVUNUX0RFVEFJTF9GUkFHTUVOVCxcclxuICAgIFByb2R1Y3REZXRhaWxGcmFnbWVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50RnJhZ21lbnQsXHJcbiAgICBUeXBlZEJhc2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICB1bmljb2RlUGF0dGVyblZhbGlkYXRvcixcclxuICAgIFVwZGF0ZVByb2R1Y3RJbnB1dCxcclxuICAgIFVwZGF0ZVByb2R1Y3RNdXRhdGlvbixcclxuICAgIFVwZGF0ZVByb2R1Y3RPcHRpb25JbnB1dCxcclxuICAgIFVwZGF0ZVByb2R1Y3RWYXJpYW50SW5wdXQsXHJcbiAgICBVcGRhdGVQcm9kdWN0VmFyaWFudHNNdXRhdGlvbixcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgbm9ybWFsaXplU3RyaW5nIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9ub3JtYWxpemUtc3RyaW5nJztcclxuaW1wb3J0IHsgREVGQVVMVF9DSEFOTkVMX0NPREUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyB1bmlxdWUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3VuaXF1ZSc7XHJcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgY29uY2F0LCBFTVBUWSwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgbWVyZ2VNYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9wcm9kdWN0LWRldGFpbC9wcm9kdWN0LWRldGFpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwbHlGYWNldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FwcGx5LWZhY2V0LWRpYWxvZy9hcHBseS1mYWNldC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RWYXJpYW50c0NvbmZpZyB9IGZyb20gJy4uL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xyXG5cclxuaW50ZXJmYWNlIFNlbGVjdGVkQXNzZXRzIHtcclxuICAgIGFzc2V0cz86IEFzc2V0W107XHJcbiAgICBmZWF0dXJlZEFzc2V0PzogQXNzZXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9ERVRBSUwgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0RGV0YWlsKCRpZDogSUQhKSB7XHJcbiAgICAgICAgcHJvZHVjdChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLlByb2R1Y3REZXRhaWxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BST0RVQ1RfREVUQUlMX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1wcm9kdWN0LWRldGFpbDInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3REZXRhaWxDb21wb25lbnRcclxuICAgIGV4dGVuZHMgVHlwZWRCYXNlRGV0YWlsQ29tcG9uZW50PHR5cGVvZiBHZXRQcm9kdWN0RGV0YWlsRG9jdW1lbnQsICdwcm9kdWN0Jz5cclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgcmVhZG9ubHkgY3VzdG9tRmllbGRzID0gdGhpcy5nZXRDdXN0b21GaWVsZENvbmZpZygnUHJvZHVjdCcpO1xyXG4gICAgZGV0YWlsRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICBhdXRvVXBkYXRlVmFyaWFudE5hbWVzOiB0cnVlLFxyXG4gICAgICAgIHNsdWc6IFsnJywgdW5pY29kZVBhdHRlcm5WYWxpZGF0b3IoL15bXFxwe0xldHRlcn0wLTkuXy1dKyQvKV0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxyXG4gICAgICAgIGZhY2V0VmFsdWVJZHM6IFtbXSBhcyBzdHJpbmdbXV0sXHJcbiAgICAgICAgY3VzdG9tRmllbGRzOiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKGdldEN1c3RvbUZpZWxkc0RlZmF1bHRzKHRoaXMuY3VzdG9tRmllbGRzKSksXHJcbiAgICB9KTtcclxuICAgIGFzc2V0Q2hhbmdlczogU2VsZWN0ZWRBc3NldHMgPSB7fTtcclxuICAgIHByb2R1Y3RDaGFubmVscyQ6IE9ic2VydmFibGU8UHJvZHVjdERldGFpbEZyYWdtZW50WydjaGFubmVscyddPjtcclxuICAgIGZhY2V0VmFsdWVzJDogT2JzZXJ2YWJsZTxQcm9kdWN0RGV0YWlsRnJhZ21lbnRbJ2ZhY2V0VmFsdWVzJ10+O1xyXG4gICAgY3JlYXRlVmFyaWFudHNDb25maWc6IENyZWF0ZVByb2R1Y3RWYXJpYW50c0NvbmZpZyA9IHsgZ3JvdXBzOiBbXSwgdmFyaWFudHM6IFtdLCBzdG9ja0xvY2F0aW9uSWQ6ICcnIH07XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRlUGVybWlzc2lvbnMgPSBbUGVybWlzc2lvbi5VcGRhdGVDYXRhbG9nLCBQZXJtaXNzaW9uLlVwZGF0ZVByb2R1Y3RdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcHJvZHVjdERldGFpbFNlcnZpY2U6IFByb2R1Y3REZXRhaWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG5cclxuICAgICAgICBjb25zdCBwcm9kdWN0RmFjZXRWYWx1ZXMkID0gdGhpcy5pc05ldyQucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKGlzTmV3ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpc05ldyA/IG9mKFtdKSA6IHRoaXMuZW50aXR5JC5waXBlKG1hcChwcm9kdWN0ID0+IHByb2R1Y3QuZmFjZXRWYWx1ZXMpKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBwcm9kdWN0R3JvdXAgPSB0aGlzLmRldGFpbEZvcm07XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICBjb25zdCBmb3JtRmFjZXRWYWx1ZUlkQ2hhbmdlcyQgPSBwcm9kdWN0R3JvdXAuZ2V0KCdmYWNldFZhbHVlSWRzJykhLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoaWRzID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmZhY2V0XHJcbiAgICAgICAgICAgICAgICAgICAgLmdldEZhY2V0VmFsdWVzKHsgZmlsdGVyOiB7IGlkOiB7IGluOiBpZHMgfSB9IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBmYWNldFZhbHVlcyB9KSA9PiBmYWNldFZhbHVlcy5pdGVtcyksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5mYWNldFZhbHVlcyQgPSBjb25jYXQoXHJcbiAgICAgICAgICAgIHByb2R1Y3RGYWNldFZhbHVlcyQucGlwZSh0YWtlKDEpKSxcclxuICAgICAgICAgICAgcHJvZHVjdEZhY2V0VmFsdWVzJC5waXBlKHN3aXRjaE1hcCgoKSA9PiBmb3JtRmFjZXRWYWx1ZUlkQ2hhbmdlcyQpKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucHJvZHVjdENoYW5uZWxzJCA9IHRoaXMuZW50aXR5JC5waXBlKG1hcChwID0+IHAuY2hhbm5lbHMpKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0RlZmF1bHRDaGFubmVsKGNoYW5uZWxDb2RlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gY2hhbm5lbENvZGUgPT09IERFRkFVTFRfQ0hBTk5FTF9DT0RFO1xyXG4gICAgfVxyXG5cclxuICAgIGFzc2lnblRvQ2hhbm5lbCgpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3RDaGFubmVscyRcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGNoYW5uZWxzID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZnJvbUNvbXBvbmVudChBc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAnbGcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJZHM6IFt0aGlzLmlkXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDaGFubmVsSWRzOiBjaGFubmVscy5tYXAoYyA9PiBjLmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZyb21DaGFubmVsKGNoYW5uZWxJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgZnJvbShnZXRDaGFubmVsQ29kZUZyb21Vc2VyU3RhdHVzKHRoaXMuZGF0YVNlcnZpY2UsIGNoYW5uZWxJZCkpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh7IGNoYW5uZWxDb2RlIH0pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlhbG9nKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IF8oJ2NhdGFsb2cucmVtb3ZlLXByb2R1Y3QtZnJvbS1jaGFubmVsJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ3NlY29uZGFyeScsIGxhYmVsOiBfKCdjb21tb24uY2FuY2VsJykgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnY2F0YWxvZy5yZW1vdmUtZnJvbS1jaGFubmVsJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25WYXJzOiB7IGNoYW5uZWxDb2RlIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXNwb25zZSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWwoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJZHM6IFt0aGlzLmlkXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEVNUFRZLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NhdGFsb2cubm90aWZ5LXJlbW92ZS1wcm9kdWN0LWZyb20tY2hhbm5lbC1zdWNjZXNzJykpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NhdGFsb2cubm90aWZ5LXJlbW92ZS1wcm9kdWN0LWZyb20tY2hhbm5lbC1lcnJvcicpKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYXNzaWduVmFyaWFudFRvQ2hhbm5lbCh2YXJpYW50OiBQcm9kdWN0VmFyaWFudEZyYWdtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAnbGcnLFxyXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdElkczogW3RoaXMuaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50SWRzOiBbdmFyaWFudC5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudENoYW5uZWxJZHM6IHZhcmlhbnQuY2hhbm5lbHMubWFwKGMgPT4gYy5pZCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlVmFyaWFudEZyb21DaGFubmVsKHsgY2hhbm5lbElkLCB2YXJpYW50IH06IHsgY2hhbm5lbElkOiBzdHJpbmc7IHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50RnJhZ21lbnQgfSkge1xyXG4gICAgICAgIGZyb20oZ2V0Q2hhbm5lbENvZGVGcm9tVXNlclN0YXR1cyh0aGlzLmRhdGFTZXJ2aWNlLCBjaGFubmVsSWQpKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBjaGFubmVsQ29kZSB9KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpYWxvZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBfKCdjYXRhbG9nLnJlbW92ZS1wcm9kdWN0LXZhcmlhbnQtZnJvbS1jaGFubmVsJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ3NlY29uZGFyeScsIGxhYmVsOiBfKCdjb21tb24uY2FuY2VsJykgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnY2F0YWxvZy5yZW1vdmUtZnJvbS1jaGFubmVsJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25WYXJzOiB7IGNoYW5uZWxDb2RlIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXNwb25zZSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnJlbW92ZVZhcmlhbnRzRnJvbUNoYW5uZWwoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50SWRzOiBbdmFyaWFudC5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBFTVBUWSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjYXRhbG9nLm5vdGlmeS1yZW1vdmUtdmFyaWFudC1mcm9tLWNoYW5uZWwtc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjYXRhbG9nLm5vdGlmeS1yZW1vdmUtdmFyaWFudC1mcm9tLWNoYW5uZWwtZXJyb3InKSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzc2V0c0NoYW5nZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhT2JqZWN0LnZhbHVlcyh0aGlzLmFzc2V0Q2hhbmdlcykubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgY3JlYXRpbmcgYSBuZXcgcHJvZHVjdCwgYXV0b21hdGljYWxseSBnZW5lcmF0ZSB0aGUgc2x1ZyBiYXNlZCBvbiB0aGUgcHJvZHVjdCBuYW1lLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVTbHVnKG5hbWVWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qgc2x1Z0NvbnRyb2wgPSB0aGlzLmRldGFpbEZvcm0uZ2V0KCdzbHVnJyk7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFRyYW5zbGF0aW9uID0gdGhpcy5lbnRpdHkgPyBmaW5kVHJhbnNsYXRpb24odGhpcy5lbnRpdHksIHRoaXMubGFuZ3VhZ2VDb2RlKSA6IHVuZGVmaW5lZDtcclxuICAgICAgICBjb25zdCBjdXJyZW50U2x1Z0lzRW1wdHkgPSAhY3VycmVudFRyYW5zbGF0aW9uIHx8ICFjdXJyZW50VHJhbnNsYXRpb24uc2x1ZztcclxuICAgICAgICBpZiAoc2x1Z0NvbnRyb2wgJiYgc2x1Z0NvbnRyb2wucHJpc3RpbmUgJiYgY3VycmVudFNsdWdJc0VtcHR5KSB7XHJcbiAgICAgICAgICAgIHNsdWdDb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZVN0cmluZyhgJHtuYW1lVmFsdWV9YCwgJy0nKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFByb2R1Y3RGYWNldFZhbHVlKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUZhY2V0VmFsdWVNb2RhbCgpLnN1YnNjcmliZShmYWNldFZhbHVlSWRzID0+IHtcclxuICAgICAgICAgICAgaWYgKGZhY2V0VmFsdWVJZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RHcm91cCA9IHRoaXMuZGV0YWlsRm9ybTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGYWNldFZhbHVlSWRzID0gcHJvZHVjdEdyb3VwLnZhbHVlLmZhY2V0VmFsdWVJZHMgPz8gW107XHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0R3JvdXAucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUlkczogdW5pcXVlKFsuLi5jdXJyZW50RmFjZXRWYWx1ZUlkcywgLi4uZmFjZXRWYWx1ZUlkc10pLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0R3JvdXAubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVQcm9kdWN0T3B0aW9uKGlucHV0OiBVcGRhdGVQcm9kdWN0T3B0aW9uSW5wdXQgJiB7IGF1dG9VcGRhdGU6IGJvb2xlYW4gfSkge1xyXG4gICAgICAgIGNvbWJpbmVMYXRlc3QodGhpcy5lbnRpdHkkLCB0aGlzLmxhbmd1YWdlQ29kZSQpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKChbcHJvZHVjdCwgbGFuZ3VhZ2VDb2RlXSkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3REZXRhaWxTZXJ2aWNlLnVwZGF0ZVByb2R1Y3RPcHRpb24oaW5wdXQsIHByb2R1Y3QsIGxhbmd1YWdlQ29kZSksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb2R1Y3RPcHRpb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvZHVjdE9wdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVByb2R1Y3RGYWNldFZhbHVlKGZhY2V0VmFsdWVJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcHJvZHVjdEdyb3VwID0gdGhpcy5kZXRhaWxGb3JtO1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRGYWNldFZhbHVlSWRzID0gcHJvZHVjdEdyb3VwLnZhbHVlLmZhY2V0VmFsdWVJZHMgPz8gW107XHJcbiAgICAgICAgcHJvZHVjdEdyb3VwLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBmYWNldFZhbHVlSWRzOiBjdXJyZW50RmFjZXRWYWx1ZUlkcy5maWx0ZXIoaWQgPT4gaWQgIT09IGZhY2V0VmFsdWVJZCksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcHJvZHVjdEdyb3VwLm1hcmtBc0RpcnR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkaXNwbGF5RmFjZXRWYWx1ZU1vZGFsKCk6IE9ic2VydmFibGU8c3RyaW5nW10gfCB1bmRlZmluZWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoQXBwbHlGYWNldERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21kJyxcclxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShtYXAoZmFjZXRWYWx1ZXMgPT4gZmFjZXRWYWx1ZXMgJiYgZmFjZXRWYWx1ZXMubWFwKHYgPT4gdi5pZCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGUoKSB7XHJcbiAgICAgICAgY29uc3QgcHJvZHVjdEdyb3VwID0gdGhpcy5kZXRhaWxGb3JtO1xyXG4gICAgICAgIGlmICghcHJvZHVjdEdyb3VwLmRpcnR5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld1Byb2R1Y3QgPSB0aGlzLmdldFVwZGF0ZWRQcm9kdWN0KFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJycsXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6ICcnLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlZEF0OiAnJyxcclxuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGU6IHRoaXMubGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogJycsXHJcbiAgICAgICAgICAgICAgICBzbHVnOiAnJyxcclxuICAgICAgICAgICAgICAgIGZlYXR1cmVkQXNzZXQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBhc3NldHM6IFtdLFxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zOiBbXSxcclxuICAgICAgICAgICAgICAgIG9wdGlvbkdyb3VwczogW10sXHJcbiAgICAgICAgICAgICAgICBmYWNldFZhbHVlczogW10sXHJcbiAgICAgICAgICAgICAgICBjaGFubmVsczogW10sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHByb2R1Y3RHcm91cCBhcyBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZSxcclxuICAgICAgICApIGFzIENyZWF0ZVByb2R1Y3RJbnB1dDtcclxuICAgICAgICB0aGlzLnByb2R1Y3REZXRhaWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5jcmVhdGVQcm9kdWN0V2l0aFZhcmlhbnRzKG5ld1Byb2R1Y3QsIHRoaXMuY3JlYXRlVmFyaWFudHNDb25maWcsIHRoaXMubGFuZ3VhZ2VDb2RlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHsgY3JlYXRlUHJvZHVjdFZhcmlhbnRzLCBwcm9kdWN0SWQgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0Q2hhbmdlcyA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vJywgcHJvZHVjdElkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvZHVjdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmUoKSB7XHJcbiAgICAgICAgY29tYmluZUxhdGVzdCh0aGlzLmVudGl0eSQsIHRoaXMubGFuZ3VhZ2VDb2RlJClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoKFtwcm9kdWN0LCBsYW5ndWFnZUNvZGVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjdEdyb3VwID0gdGhpcy5kZXRhaWxGb3JtO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9kdWN0SW5wdXQ6IFVwZGF0ZVByb2R1Y3RJbnB1dCB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdmFyaWFudHNJbnB1dDogVXBkYXRlUHJvZHVjdFZhcmlhbnRJbnB1dFtdIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdEdyb3VwLmRpcnR5IHx8IHRoaXMuYXNzZXRzQ2hhbmdlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJbnB1dCA9IHRoaXMuZ2V0VXBkYXRlZFByb2R1Y3QoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdEdyb3VwIGFzIFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgYXMgVXBkYXRlUHJvZHVjdElucHV0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdERldGFpbFNlcnZpY2UudXBkYXRlUHJvZHVjdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b1VwZGF0ZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5nZXQoWydwcm9kdWN0JywgJ2F1dG9VcGRhdGVWYXJpYW50TmFtZXMnXSk/LnZhbHVlID8/IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SW5wdXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnRzSW5wdXQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNsdWdBZnRlclNhdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRldGFpbEZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0Q2hhbmdlcyA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvZHVjdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbkRlYWN0aXZhdGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmNhbkRlYWN0aXZhdGUoKSAmJiAhdGhpcy5hc3NldENoYW5nZXMuYXNzZXRzICYmICF0aGlzLmFzc2V0Q2hhbmdlcy5mZWF0dXJlZEFzc2V0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmFsdWVzIG9mIHRoZSBmb3JtIG9uIGNoYW5nZXMgdG8gdGhlIHByb2R1Y3Qgb3IgY3VycmVudCBsYW5ndWFnZS5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHNldEZvcm1WYWx1ZXMoXHJcbiAgICAgICAgcHJvZHVjdDogTm9uTnVsbGFibGU8R2V0UHJvZHVjdFdpdGhWYXJpYW50c1F1ZXJ5Wydwcm9kdWN0J10+LFxyXG4gICAgICAgIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFRyYW5zbGF0aW9uID0gZmluZFRyYW5zbGF0aW9uKHByb2R1Y3QsIGxhbmd1YWdlQ29kZSk7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBlbmFibGVkOiBwcm9kdWN0LmVuYWJsZWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGN1cnJlbnRUcmFuc2xhdGlvbiA/IGN1cnJlbnRUcmFuc2xhdGlvbi5uYW1lIDogJycsXHJcbiAgICAgICAgICAgIHNsdWc6IGN1cnJlbnRUcmFuc2xhdGlvbiA/IGN1cnJlbnRUcmFuc2xhdGlvbi5zbHVnIDogJycsXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjdXJyZW50VHJhbnNsYXRpb24gPyBjdXJyZW50VHJhbnNsYXRpb24uZGVzY3JpcHRpb24gOiAnJyxcclxuICAgICAgICAgICAgZmFjZXRWYWx1ZUlkczogcHJvZHVjdC5mYWNldFZhbHVlcy5tYXAoZnYgPT4gZnYuaWQpLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXN0b21GaWVsZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VzdG9tRmllbGRGb3JtVmFsdWVzKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21GaWVsZHMsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRldGFpbEZvcm0uZ2V0KFsnY3VzdG9tRmllbGRzJ10pLFxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFuc2xhdGlvbixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHaXZlbiBhIHByb2R1Y3QgYW5kIHRoZSB2YWx1ZSBvZiB0aGUgZGV0YWlsRm9ybSwgdGhpcyBtZXRob2QgY3JlYXRlcyBhbiB1cGRhdGVkIGNvcHkgb2YgdGhlIHByb2R1Y3Qgd2hpY2hcclxuICAgICAqIGNhbiB0aGVuIGJlIHBlcnNpc3RlZCB0byB0aGUgQVBJLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldFVwZGF0ZWRQcm9kdWN0KFxyXG4gICAgICAgIHByb2R1Y3Q6IE5vbk51bGxhYmxlPEdldFByb2R1Y3REZXRhaWxRdWVyeVsncHJvZHVjdCddPixcclxuICAgICAgICBwcm9kdWN0Rm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gICAgICAgIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlLFxyXG4gICAgKTogVXBkYXRlUHJvZHVjdElucHV0IHwgQ3JlYXRlUHJvZHVjdElucHV0IHtcclxuICAgICAgICBjb25zdCB1cGRhdGVkUHJvZHVjdCA9IGNyZWF0ZVVwZGF0ZWRUcmFuc2xhdGFibGUoe1xyXG4gICAgICAgICAgICB0cmFuc2xhdGFibGU6IHByb2R1Y3QsXHJcbiAgICAgICAgICAgIHVwZGF0ZWRGaWVsZHM6IHByb2R1Y3RGb3JtR3JvdXAudmFsdWUsXHJcbiAgICAgICAgICAgIGN1c3RvbUZpZWxkQ29uZmlnOiB0aGlzLmN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICBkZWZhdWx0VHJhbnNsYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgIG5hbWU6IHByb2R1Y3QubmFtZSB8fCAnJyxcclxuICAgICAgICAgICAgICAgIHNsdWc6IHByb2R1Y3Quc2x1ZyB8fCAnJyxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwcm9kdWN0LmRlc2NyaXB0aW9uIHx8ICcnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLnVwZGF0ZWRQcm9kdWN0LFxyXG4gICAgICAgICAgICBhc3NldElkczogdGhpcy5hc3NldENoYW5nZXMuYXNzZXRzPy5tYXAoYSA9PiBhLmlkKSxcclxuICAgICAgICAgICAgZmVhdHVyZWRBc3NldElkOiB0aGlzLmFzc2V0Q2hhbmdlcy5mZWF0dXJlZEFzc2V0Py5pZCxcclxuICAgICAgICAgICAgZmFjZXRWYWx1ZUlkczogcHJvZHVjdEZvcm1Hcm91cC52YWx1ZS5mYWNldFZhbHVlSWRzLFxyXG4gICAgICAgIH0gYXMgVXBkYXRlUHJvZHVjdElucHV0IHwgQ3JlYXRlUHJvZHVjdElucHV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNlcnZlciBtYXkgYWx0ZXIgdGhlIHNsdWcgdmFsdWUgaW4gb3JkZXIgdG8gbm9ybWFsaXplIGFuZCBlbnN1cmUgdW5pcXVlbmVzcyB1cG9uIHNhdmluZy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVTbHVnQWZ0ZXJTYXZlKHJlc3VsdHM6IEFycmF5PFVwZGF0ZVByb2R1Y3RNdXRhdGlvbiB8IFVwZGF0ZVByb2R1Y3RWYXJpYW50c011dGF0aW9uPikge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0UmVzdWx0ID0gcmVzdWx0c1swXTtcclxuICAgICAgICBjb25zdCBzbHVnQ29udHJvbCA9IHRoaXMuZGV0YWlsRm9ybS5nZXQoWydwcm9kdWN0JywgJ3NsdWcnXSk7XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGlzVXBkYXRlTXV0YXRpb24oaW5wdXQ6IGFueSk6IGlucHV0IGlzIFVwZGF0ZVByb2R1Y3RNdXRhdGlvbiB7XHJcbiAgICAgICAgICAgIHJldHVybiBpbnB1dC5oYXNPd25Qcm9wZXJ0eSgndXBkYXRlUHJvZHVjdCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNsdWdDb250cm9sICYmIGlzVXBkYXRlTXV0YXRpb24oZmlyc3RSZXN1bHQpKSB7XHJcbiAgICAgICAgICAgIHNsdWdDb250cm9sLnNldFZhbHVlKGZpcnN0UmVzdWx0LnVwZGF0ZVByb2R1Y3Quc2x1ZywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8dmRyLXBhZ2UtYmxvY2s+XHJcbiAgICA8dmRyLWFjdGlvbi1iYXI+XHJcbiAgICAgICAgPHZkci1hYi1sZWZ0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBjbHItZmxleC1yb3dcIj48L2Rpdj5cclxuICAgICAgICAgICAgPHZkci1sYW5ndWFnZS1zZWxlY3RvclxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTmV3JCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgIFthdmFpbGFibGVMYW5ndWFnZUNvZGVzXT1cImF2YWlsYWJsZUxhbmd1YWdlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICBbY3VycmVudExhbmd1YWdlQ29kZV09XCJsYW5ndWFnZUNvZGUkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgKGxhbmd1YWdlQ29kZUNoYW5nZSk9XCJzZXRMYW5ndWFnZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdmRyLWxhbmd1YWdlLXNlbGVjdG9yPlxyXG4gICAgICAgIDwvdmRyLWFiLWxlZnQ+XHJcblxyXG4gICAgICAgIDx2ZHItYWItcmlnaHQ+XHJcbiAgICAgICAgICAgIDx2ZHItYWN0aW9uLWJhci1pdGVtcyBsb2NhdGlvbklkPVwicHJvZHVjdC1kZXRhaWxcIj48L3Zkci1hY3Rpb24tYmFyLWl0ZW1zPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzTmV3JCB8IGFzeW5jOyBlbHNlIHVwZGF0ZUJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRldGFpbEZvcm0uaW52YWxpZCB8fCBkZXRhaWxGb3JtLnByaXN0aW5lIHx8IGNyZWF0ZVZhcmlhbnRzQ29uZmlnLnZhcmlhbnRzLmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7ICdjb21tb24uY3JlYXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN1cGRhdGVCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgKnZkcklmUGVybWlzc2lvbnM9XCJ1cGRhdGVQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoZGV0YWlsRm9ybS5pbnZhbGlkIHx8IGRldGFpbEZvcm0ucHJpc3RpbmUpICYmICFhc3NldHNDaGFuZ2VkKClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24udXBkYXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItYWItcmlnaHQ+XHJcbiAgICA8L3Zkci1hY3Rpb24tYmFyPlxyXG48L3Zkci1wYWdlLWJsb2NrPlxyXG5cclxuPGZvcm0gY2xhc3M9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJkZXRhaWxGb3JtXCI+XHJcbiAgICA8dmRyLXBhZ2UtZGV0YWlsLWxheW91dD5cclxuICAgICAgICA8dmRyLXBhZ2UtZGV0YWlsLXNpZGViYXI+XHJcbiAgICAgICAgICAgIDx2ZHItY2FyZD5cclxuICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2NhdGFsb2cudmlzaWJpbGl0eScgfCB0cmFuc2xhdGVcIiBmb3I9XCJ2aXNpYmlsaXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci10b2dnbGUtd3JhcHBlciAqdmRySWZQZXJtaXNzaW9ucz1cInVwZGF0ZVBlcm1pc3Npb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsclRvZ2dsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImVuYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImRldGFpbEZvcm0uZ2V0KFsnZW5hYmxlZCddKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnY29tbW9uLmVuYWJsZWQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Nsci10b2dnbGUtd3JhcHBlcj5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGlzTmV3JCB8IGFzeW5jKVwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1jYXJkICp2ZHJJZk11bHRpY2hhbm5lbCBbdGl0bGVdPVwiJ2NvbW1vbi5jaGFubmVscycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0taXRlbSAqdmRySWZEZWZhdWx0Q2hhbm5lbEFjdGl2ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggY2hhbm5lbC1hc3NpZ25tZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoYW5uZWwgb2YgcHJvZHVjdENoYW5uZWxzJCB8IGFzeW5jXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY2hpcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNEZWZhdWx0Q2hhbm5lbChjaGFubmVsLmNvZGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJ0aW1lcy1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGljb25DbGljayk9XCJyZW1vdmVGcm9tQ2hhbm5lbChjaGFubmVsLmlkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY2hhbm5lbC1iYWRnZSBbY2hhbm5lbENvZGVdPVwiY2hhbm5lbC5jb2RlXCI+PC92ZHItY2hhbm5lbC1iYWRnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNoYW5uZWwuY29kZSB8IGNoYW5uZWxDb2RlVG9MYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCIgKGNsaWNrKT1cImFzc2lnblRvQ2hhbm5lbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwibGF5ZXJzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5hc3NpZ24tdG8tY2hhbm5lbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHZkci1jYXJkICpuZ0lmPVwiZW50aXR5Py5vcHRpb25Hcm91cHMubGVuZ3RoXCIgW3RpdGxlXT1cIidjYXRhbG9nLnByb2R1Y3Qtb3B0aW9ucycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1jaGlwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb25Hcm91cCBvZiBlbnRpdHk/Lm9wdGlvbkdyb3VwcyB8IHNvcnQgOiAnaWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yRnJvbV09XCJvcHRpb25Hcm91cC5jb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ludmVydF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbkdyb3VwLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3Zkci1jaGlwPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnb3B0aW9ucyddXCIgY2xhc3M9XCJidXR0b24tc21hbGwgbXQtMlwiICp2ZHJJZlBlcm1pc3Npb25zPVwidXBkYXRlUGVybWlzc2lvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicGVuY2lsXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cuZWRpdC1vcHRpb25zJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidjYXRhbG9nLmZhY2V0cycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmYWNldHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZhY2V0LXZhbHVlLWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZhY2V0VmFsdWUgb2YgZmFjZXRWYWx1ZXMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmFjZXRWYWx1ZV09XCJmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJ1cGRhdGVQZXJtaXNzaW9ucyB8IGhhc1Blcm1pc3Npb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cInJlbW92ZVByb2R1Y3RGYWNldFZhbHVlKGZhY2V0VmFsdWUuaWQpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC92ZHItZmFjZXQtdmFsdWUtY2hpcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXNtYWxsIG10LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqdmRySWZQZXJtaXNzaW9ucz1cInVwZGF0ZVBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFByb2R1Y3RGYWNldFZhbHVlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicGx1c1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLmFkZC1mYWNldHMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICAgICAgPHZkci1jYXJkICpuZ0lmPVwiZW50aXR5JCB8IGFzeW5jIGFzIGVudGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1wYWdlLWVudGl0eS1pbmZvIFtlbnRpdHldPVwiZW50aXR5XCI+PC92ZHItcGFnZS1lbnRpdHktaW5mbz5cclxuICAgICAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8L3Zkci1wYWdlLWRldGFpbC1zaWRlYmFyPlxyXG5cclxuICAgICAgICA8dmRyLXBhZ2UtYmxvY2s+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGhpZGRlbiB4LWRhdGE9XCJwcmV2ZW50cyBlbnRlciBrZXkgZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGJ1dHRvbnNcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPHZkci1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2NhdGFsb2cucHJvZHVjdC1uYW1lJyB8IHRyYW5zbGF0ZVwiIGZvcj1cIm5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhKHVwZGF0ZVBlcm1pc3Npb25zIHwgaGFzUGVybWlzc2lvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVTbHVnKCRldmVudC50YXJnZXQudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoaXNOZXckIHwgYXN5bmMpID09PSBmYWxzZSAmJiBkZXRhaWxGb3JtLmdldChbJ25hbWUnXSk/LmRpcnR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWNoZWNrYm94LXdyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYXV0by11cGRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhdXRvVXBkYXRlVmFyaWFudE5hbWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnY2F0YWxvZy5hdXRvLXVwZGF0ZS1wcm9kdWN0LXZhcmlhbnQtbmFtZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbHItY2hlY2tib3gtd3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInY2F0YWxvZy5zbHVnJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInNsdWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JzXT1cInsgcGF0dGVybjogJ2NhdGFsb2cuc2x1Zy1wYXR0ZXJuLWVycm9yJyB8IHRyYW5zbGF0ZSB9XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzbHVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNsdWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEodXBkYXRlUGVybWlzc2lvbnMgfCBoYXNQZXJtaXNzaW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWdyaWQtc3BhblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInY29tbW9uLmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInNsdWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JzXT1cInsgcGF0dGVybjogJ2NhdGFsb2cuc2x1Zy1wYXR0ZXJuLWVycm9yJyB8IHRyYW5zbGF0ZSB9XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItcmljaC10ZXh0LWVkaXRvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEodXBkYXRlUGVybWlzc2lvbnMgfCBoYXNQZXJtaXNzaW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1yaWNoLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInY29tbW9uLmN1c3RvbS1maWVsZHMnIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCJjdXN0b21GaWVsZHMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLXRhYmJlZC1jdXN0b20tZmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZT1cIlByb2R1Y3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjdXN0b21GaWVsZHNdPVwiY3VzdG9tRmllbGRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbY3VzdG9tRmllbGRzRm9ybUdyb3VwXT1cImRldGFpbEZvcm0uZ2V0KCdjdXN0b21GaWVsZHMnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEodXBkYXRlUGVybWlzc2lvbnMgfCBoYXNQZXJtaXNzaW9uKVwiXHJcbiAgICAgICAgICAgICAgICA+PC92ZHItdGFiYmVkLWN1c3RvbS1maWVsZHM+XHJcbiAgICAgICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgICAgIDx2ZHItY3VzdG9tLWRldGFpbC1jb21wb25lbnQtaG9zdFxyXG4gICAgICAgICAgICAgICAgbG9jYXRpb25JZD1cInByb2R1Y3QtZGV0YWlsXCJcclxuICAgICAgICAgICAgICAgIFtlbnRpdHkkXT1cImVudGl0eSRcIlxyXG4gICAgICAgICAgICAgICAgW2RldGFpbEZvcm1dPVwiZGV0YWlsRm9ybVwiXHJcbiAgICAgICAgICAgID48L3Zkci1jdXN0b20tZGV0YWlsLWNvbXBvbmVudC1ob3N0PlxyXG4gICAgICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidjYXRhbG9nLmFzc2V0cycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDx2ZHItYXNzZXRzXHJcbiAgICAgICAgICAgICAgICAgICAgW2Fzc2V0c109XCJhc3NldENoYW5nZXMuYXNzZXRzIHx8IGVudGl0eT8uYXNzZXRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmVhdHVyZWRBc3NldF09XCJhc3NldENoYW5nZXMuZmVhdHVyZWRBc3NldCB8fCBlbnRpdHk/LmZlYXR1cmVkQXNzZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt1cGRhdGVQZXJtaXNzaW9uc109XCJ1cGRhdGVQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJhc3NldENoYW5nZXMgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgPjwvdmRyLWFzc2V0cz5cclxuICAgICAgICAgICAgPC92ZHItY2FyZD5cclxuXHJcbiAgICAgICAgICAgIDx2ZHItY2FyZCBbdGl0bGVdPVwiJ2NhdGFsb2cucHJvZHVjdC12YXJpYW50cycgfCB0cmFuc2xhdGVcIiBbcGFkZGluZ1hdPVwiaXNOZXckIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc05ldyQgfCBhc3luYzsgZWxzZSB2YXJpYW50TGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAodmFyaWFudHNDaGFuZ2UpPVwiY3JlYXRlVmFyaWFudHNDb25maWcgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3Zkci1nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ZhcmlhbnRMaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItcHJvZHVjdC12YXJpYW50LWxpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Byb2R1Y3RJZF09XCJ0aGlzLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVRhYmxlSWQ9XCJwcm9kdWN0LWRldGFpbC12YXJpYW50cy1saXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVMYW5ndWFnZVNlbGVjdF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC92ZHItcHJvZHVjdC12YXJpYW50LWxpc3Q+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTNcIiAqbmdJZj1cIihpc05ldyQgfCBhc3luYykgPT09IGZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJidXR0b25cIiBbcm91dGVyTGlua109XCJbJ21hbmFnZS12YXJpYW50cyddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFkZC10ZXh0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cubWFuYWdlLXZhcmlhbnRzJyB8IHRyYW5zbGF0ZSB9fTwvYVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgIDwvdmRyLXBhZ2UtYmxvY2s+XHJcbiAgICA8L3Zkci1wYWdlLWRldGFpbC1sYXlvdXQ+XHJcbjwvZm9ybT5cclxuIl19
|
|
335
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWRldGFpbC9wcm9kdWN0LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFHSCx5QkFBeUIsRUFFekIsZUFBZSxFQUNmLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFPdkIsVUFBVSxFQUNWLHVCQUF1QixFQUd2Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEdBTTFCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUs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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQXNzZXQsXHJcbiAgICBDcmVhdGVQcm9kdWN0SW5wdXQsXHJcbiAgICBjcmVhdGVVcGRhdGVkVHJhbnNsYXRhYmxlLFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBmaW5kVHJhbnNsYXRpb24sXHJcbiAgICBnZXRDaGFubmVsQ29kZUZyb21Vc2VyU3RhdHVzLFxyXG4gICAgZ2V0Q3VzdG9tRmllbGRzRGVmYXVsdHMsXHJcbiAgICBHZXRQcm9kdWN0RGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRQcm9kdWN0RGV0YWlsUXVlcnksXHJcbiAgICBHZXRQcm9kdWN0V2l0aFZhcmlhbnRzUXVlcnksXHJcbiAgICBMYW5ndWFnZUNvZGUsXHJcbiAgICBNb2RhbFNlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgUGVybWlzc2lvbixcclxuICAgIFBST0RVQ1RfREVUQUlMX0ZSQUdNRU5ULFxyXG4gICAgUHJvZHVjdERldGFpbEZyYWdtZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRGcmFnbWVudCxcclxuICAgIFR5cGVkQmFzZURldGFpbENvbXBvbmVudCxcclxuICAgIHVuaWNvZGVQYXR0ZXJuVmFsaWRhdG9yLFxyXG4gICAgVXBkYXRlUHJvZHVjdElucHV0LFxyXG4gICAgVXBkYXRlUHJvZHVjdE11dGF0aW9uLFxyXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbklucHV0LFxyXG4gICAgVXBkYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCxcclxuICAgIFVwZGF0ZVByb2R1Y3RWYXJpYW50c011dGF0aW9uLFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBub3JtYWxpemVTdHJpbmcgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL25vcm1hbGl6ZS1zdHJpbmcnO1xyXG5pbXBvcnQgeyBERUZBVUxUX0NIQU5ORUxfQ09ERSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvdW5pcXVlJztcclxuaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBjb25jYXQsIEVNUFRZLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBseUZhY2V0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYXBwbHktZmFjZXQtZGlhbG9nL2FwcGx5LWZhY2V0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdFZhcmlhbnRzQ29uZmlnIH0gZnJvbSAnLi4vZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgU2VsZWN0ZWRBc3NldHMge1xyXG4gICAgYXNzZXRzPzogQXNzZXRbXTtcclxuICAgIGZlYXR1cmVkQXNzZXQ/OiBBc3NldDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QUk9EVUNUX0RFVEFJTCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFByb2R1Y3REZXRhaWwoJGlkOiBJRCEpIHtcclxuICAgICAgICBwcm9kdWN0KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uUHJvZHVjdERldGFpbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9ERVRBSUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLXByb2R1Y3QtZGV0YWlsMicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdERldGFpbENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBUeXBlZEJhc2VEZXRhaWxDb21wb25lbnQ8dHlwZW9mIEdldFByb2R1Y3REZXRhaWxEb2N1bWVudCwgJ3Byb2R1Y3QnPlxyXG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgICByZWFkb25seSBjdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdQcm9kdWN0Jyk7XHJcbiAgICBkZXRhaWxGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIGF1dG9VcGRhdGVWYXJpYW50TmFtZXM6IHRydWUsXHJcbiAgICAgICAgc2x1ZzogWycnLCB1bmljb2RlUGF0dGVyblZhbGlkYXRvcigvXltcXHB7TGV0dGVyfTAtOS5fLV0rJC8pXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgZmFjZXRWYWx1ZUlkczogW1tdIGFzIHN0cmluZ1tdXSxcclxuICAgICAgICBjdXN0b21GaWVsZHM6IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoZ2V0Q3VzdG9tRmllbGRzRGVmYXVsdHModGhpcy5jdXN0b21GaWVsZHMpKSxcclxuICAgIH0pO1xyXG4gICAgYXNzZXRDaGFuZ2VzOiBTZWxlY3RlZEFzc2V0cyA9IHt9O1xyXG4gICAgcHJvZHVjdENoYW5uZWxzJDogT2JzZXJ2YWJsZTxQcm9kdWN0RGV0YWlsRnJhZ21lbnRbJ2NoYW5uZWxzJ10+O1xyXG4gICAgZmFjZXRWYWx1ZXMkOiBPYnNlcnZhYmxlPFByb2R1Y3REZXRhaWxGcmFnbWVudFsnZmFjZXRWYWx1ZXMnXT47XHJcbiAgICBjcmVhdGVWYXJpYW50c0NvbmZpZzogQ3JlYXRlUHJvZHVjdFZhcmlhbnRzQ29uZmlnID0geyBncm91cHM6IFtdLCB2YXJpYW50czogW10sIHN0b2NrTG9jYXRpb25JZDogJycgfTtcclxuICAgIHB1YmxpYyByZWFkb25seSB1cGRhdGVQZXJtaXNzaW9ucyA9IFtQZXJtaXNzaW9uLlVwZGF0ZUNhdGFsb2csIFBlcm1pc3Npb24uVXBkYXRlUHJvZHVjdF07XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBwcm9kdWN0RGV0YWlsU2VydmljZTogUHJvZHVjdERldGFpbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHByb2R1Y3RGYWNldFZhbHVlcyQgPSB0aGlzLmlzTmV3JC5waXBlKFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoaXNOZXcgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTmV3ID8gb2YoW10pIDogdGhpcy5lbnRpdHkkLnBpcGUobWFwKHByb2R1Y3QgPT4gcHJvZHVjdC5mYWNldFZhbHVlcykpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHByb2R1Y3RHcm91cCA9IHRoaXMuZGV0YWlsRm9ybTtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgIGNvbnN0IGZvcm1GYWNldFZhbHVlSWRDaGFuZ2VzJCA9IHByb2R1Y3RHcm91cC5nZXQoJ2ZhY2V0VmFsdWVJZHMnKSEudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChpZHMgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuZmFjZXRcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0RmFjZXRWYWx1ZXMoeyBmaWx0ZXI6IHsgaWQ6IHsgaW46IGlkcyB9IH0gfSlcclxuICAgICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IGZhY2V0VmFsdWVzIH0pID0+IGZhY2V0VmFsdWVzLml0ZW1zKSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZhY2V0VmFsdWVzJCA9IGNvbmNhdChcclxuICAgICAgICAgICAgcHJvZHVjdEZhY2V0VmFsdWVzJC5waXBlKHRha2UoMSkpLFxyXG4gICAgICAgICAgICBwcm9kdWN0RmFjZXRWYWx1ZXMkLnBpcGUoc3dpdGNoTWFwKCgpID0+IGZvcm1GYWNldFZhbHVlSWRDaGFuZ2VzJCkpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0Q2hhbm5lbHMkID0gdGhpcy5lbnRpdHkkLnBpcGUobWFwKHAgPT4gcC5jaGFubmVscykpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRGVmYXVsdENoYW5uZWwoY2hhbm5lbENvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBjaGFubmVsQ29kZSA9PT0gREVGQVVMVF9DSEFOTkVMX0NPREU7XHJcbiAgICB9XHJcblxyXG4gICAgYXNzaWduVG9DaGFubmVsKCkge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdENoYW5uZWxzJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoY2hhbm5lbHMgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5mcm9tQ29tcG9uZW50KEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6ICdsZycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdElkczogW3RoaXMuaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENoYW5uZWxJZHM6IGNoYW5uZWxzLm1hcChjID0+IGMuaWQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlRnJvbUNoYW5uZWwoY2hhbm5lbElkOiBzdHJpbmcpIHtcclxuICAgICAgICBmcm9tKGdldENoYW5uZWxDb2RlRnJvbVVzZXJTdGF0dXModGhpcy5kYXRhU2VydmljZSwgY2hhbm5lbElkKSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgY2hhbm5lbENvZGUgfSkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaWFsb2coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXygnY2F0YWxvZy5yZW1vdmUtcHJvZHVjdC1mcm9tLWNoYW5uZWwnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnc2Vjb25kYXJ5JywgbGFiZWw6IF8oJ2NvbW1vbi5jYW5jZWwnKSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCdjYXRhbG9nLnJlbW92ZS1mcm9tLWNoYW5uZWwnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvblZhcnM6IHsgY2hhbm5lbENvZGUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3BvbnNlID0+XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QucmVtb3ZlUHJvZHVjdHNGcm9tQ2hhbm5lbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdElkczogW3RoaXMuaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRU1QVFksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY2F0YWxvZy5ub3RpZnktcmVtb3ZlLXByb2R1Y3QtZnJvbS1jaGFubmVsLXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY2F0YWxvZy5ub3RpZnktcmVtb3ZlLXByb2R1Y3QtZnJvbS1jaGFubmVsLWVycm9yJykpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3NpZ25WYXJpYW50VG9DaGFubmVsKHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50RnJhZ21lbnQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIHNpemU6ICdsZycsXHJcbiAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SWRzOiBbdGhpcy5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdFZhcmlhbnRJZHM6IFt2YXJpYW50LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2hhbm5lbElkczogdmFyaWFudC5jaGFubmVscy5tYXAoYyA9PiBjLmlkKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVWYXJpYW50RnJvbUNoYW5uZWwoeyBjaGFubmVsSWQsIHZhcmlhbnQgfTogeyBjaGFubmVsSWQ6IHN0cmluZzsgdmFyaWFudDogUHJvZHVjdFZhcmlhbnRGcmFnbWVudCB9KSB7XHJcbiAgICAgICAgZnJvbShnZXRDaGFubmVsQ29kZUZyb21Vc2VyU3RhdHVzKHRoaXMuZGF0YVNlcnZpY2UsIGNoYW5uZWxJZCkpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh7IGNoYW5uZWxDb2RlIH0pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlhbG9nKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IF8oJ2NhdGFsb2cucmVtb3ZlLXByb2R1Y3QtdmFyaWFudC1mcm9tLWNoYW5uZWwnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnc2Vjb25kYXJ5JywgbGFiZWw6IF8oJ2NvbW1vbi5jYW5jZWwnKSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCdjYXRhbG9nLnJlbW92ZS1mcm9tLWNoYW5uZWwnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvblZhcnM6IHsgY2hhbm5lbENvZGUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3BvbnNlID0+XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QucmVtb3ZlVmFyaWFudHNGcm9tQ2hhbm5lbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdFZhcmlhbnRJZHM6IFt2YXJpYW50LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEVNUFRZLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NhdGFsb2cubm90aWZ5LXJlbW92ZS12YXJpYW50LWZyb20tY2hhbm5lbC1zdWNjZXNzJykpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NhdGFsb2cubm90aWZ5LXJlbW92ZS12YXJpYW50LWZyb20tY2hhbm5lbC1lcnJvcicpKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYXNzZXRzQ2hhbmdlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISFPYmplY3QudmFsdWVzKHRoaXMuYXNzZXRDaGFuZ2VzKS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiBjcmVhdGluZyBhIG5ldyBwcm9kdWN0LCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoZSBzbHVnIGJhc2VkIG9uIHRoZSBwcm9kdWN0IG5hbWUuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZVNsdWcobmFtZVZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBzbHVnQ29udHJvbCA9IHRoaXMuZGV0YWlsRm9ybS5nZXQoJ3NsdWcnKTtcclxuICAgICAgICBjb25zdCBjdXJyZW50VHJhbnNsYXRpb24gPSB0aGlzLmVudGl0eSA/IGZpbmRUcmFuc2xhdGlvbih0aGlzLmVudGl0eSwgdGhpcy5sYW5ndWFnZUNvZGUpIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRTbHVnSXNFbXB0eSA9ICFjdXJyZW50VHJhbnNsYXRpb24gfHwgIWN1cnJlbnRUcmFuc2xhdGlvbi5zbHVnO1xyXG4gICAgICAgIGlmIChzbHVnQ29udHJvbCAmJiBzbHVnQ29udHJvbC5wcmlzdGluZSAmJiBjdXJyZW50U2x1Z0lzRW1wdHkpIHtcclxuICAgICAgICAgICAgc2x1Z0NvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplU3RyaW5nKGAke25hbWVWYWx1ZX1gLCAnLScpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0UHJvZHVjdEZhY2V0VmFsdWUoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5RmFjZXRWYWx1ZU1vZGFsKCkuc3Vic2NyaWJlKGZhY2V0VmFsdWVJZHMgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZmFjZXRWYWx1ZUlkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjdEdyb3VwID0gdGhpcy5kZXRhaWxGb3JtO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEZhY2V0VmFsdWVJZHMgPSBwcm9kdWN0R3JvdXAudmFsdWUuZmFjZXRWYWx1ZUlkcyA/PyBbXTtcclxuICAgICAgICAgICAgICAgIHByb2R1Y3RHcm91cC5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgICAgICAgICBmYWNldFZhbHVlSWRzOiB1bmlxdWUoWy4uLmN1cnJlbnRGYWNldFZhbHVlSWRzLCAuLi5mYWNldFZhbHVlSWRzXSksXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHByb2R1Y3RHcm91cC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVByb2R1Y3RPcHRpb24oaW5wdXQ6IFVwZGF0ZVByb2R1Y3RPcHRpb25JbnB1dCAmIHsgYXV0b1VwZGF0ZTogYm9vbGVhbiB9KSB7XHJcbiAgICAgICAgY29tYmluZUxhdGVzdCh0aGlzLmVudGl0eSQsIHRoaXMubGFuZ3VhZ2VDb2RlJClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoKFtwcm9kdWN0LCBsYW5ndWFnZUNvZGVdKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdERldGFpbFNlcnZpY2UudXBkYXRlUHJvZHVjdE9wdGlvbihpbnB1dCwgcHJvZHVjdCwgbGFuZ3VhZ2VDb2RlKSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LXVwZGF0ZS1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvZHVjdE9wdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtZXJyb3InKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9kdWN0T3B0aW9uJyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlUHJvZHVjdEZhY2V0VmFsdWUoZmFjZXRWYWx1ZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBwcm9kdWN0R3JvdXAgPSB0aGlzLmRldGFpbEZvcm07XHJcbiAgICAgICAgY29uc3QgY3VycmVudEZhY2V0VmFsdWVJZHMgPSBwcm9kdWN0R3JvdXAudmFsdWUuZmFjZXRWYWx1ZUlkcyA/PyBbXTtcclxuICAgICAgICBwcm9kdWN0R3JvdXAucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICAgIGZhY2V0VmFsdWVJZHM6IGN1cnJlbnRGYWNldFZhbHVlSWRzLmZpbHRlcihpZCA9PiBpZCAhPT0gZmFjZXRWYWx1ZUlkKSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwcm9kdWN0R3JvdXAubWFya0FzRGlydHkoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRpc3BsYXlGYWNldFZhbHVlTW9kYWwoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChBcHBseUZhY2V0RGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAnbWQnLFxyXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKG1hcChmYWNldFZhbHVlcyA9PiBmYWNldFZhbHVlcyAmJiBmYWNldFZhbHVlcy5tYXAodiA9PiB2LmlkKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZSgpIHtcclxuICAgICAgICBjb25zdCBwcm9kdWN0R3JvdXAgPSB0aGlzLmRldGFpbEZvcm07XHJcbiAgICAgICAgaWYgKCFwcm9kdWN0R3JvdXAuZGlydHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbmV3UHJvZHVjdCA9IHRoaXMuZ2V0VXBkYXRlZFByb2R1Y3QoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiAnJyxcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogJycsXHJcbiAgICAgICAgICAgICAgICB1cGRhdGVkQXQ6ICcnLFxyXG4gICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZTogdGhpcy5sYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnJyxcclxuICAgICAgICAgICAgICAgIHNsdWc6ICcnLFxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZWRBc3NldDogbnVsbCxcclxuICAgICAgICAgICAgICAgIGFzc2V0czogW10sXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM6IFtdLFxyXG4gICAgICAgICAgICAgICAgb3B0aW9uR3JvdXBzOiBbXSxcclxuICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVzOiBbXSxcclxuICAgICAgICAgICAgICAgIGNoYW5uZWxzOiBbXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcHJvZHVjdEdyb3VwIGFzIFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICkgYXMgQ3JlYXRlUHJvZHVjdElucHV0O1xyXG4gICAgICAgIHRoaXMucHJvZHVjdERldGFpbFNlcnZpY2VcclxuICAgICAgICAgICAgLmNyZWF0ZVByb2R1Y3RXaXRoVmFyaWFudHMobmV3UHJvZHVjdCwgdGhpcy5jcmVhdGVWYXJpYW50c0NvbmZpZywgdGhpcy5sYW5ndWFnZUNvZGUpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoeyBjcmVhdGVQcm9kdWN0VmFyaWFudHMsIHByb2R1Y3RJZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS1jcmVhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb2R1Y3QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXRDaGFuZ2VzID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8nLCBwcm9kdWN0SWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY29tbW9uLm5vdGlmeS1jcmVhdGUtZXJyb3InKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZSgpIHtcclxuICAgICAgICBjb21iaW5lTGF0ZXN0KHRoaXMuZW50aXR5JCwgdGhpcy5sYW5ndWFnZUNvZGUkKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgoW3Byb2R1Y3QsIGxhbmd1YWdlQ29kZV0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0R3JvdXAgPSB0aGlzLmRldGFpbEZvcm07XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb2R1Y3RJbnB1dDogVXBkYXRlUHJvZHVjdElucHV0IHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB2YXJpYW50c0lucHV0OiBVcGRhdGVQcm9kdWN0VmFyaWFudElucHV0W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0R3JvdXAuZGlydHkgfHwgdGhpcy5hc3NldHNDaGFuZ2VkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdElucHV0ID0gdGhpcy5nZXRVcGRhdGVkUHJvZHVjdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0R3JvdXAgYXMgVW50eXBlZEZvcm1Hcm91cCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBVcGRhdGVQcm9kdWN0SW5wdXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0RGV0YWlsU2VydmljZS51cGRhdGVQcm9kdWN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvVXBkYXRlOiB0aGlzLmRldGFpbEZvcm0uZ2V0KFsnYXV0b1VwZGF0ZVZhcmlhbnROYW1lcyddKT8udmFsdWUgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJbnB1dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudHNJbnB1dCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2x1Z0FmdGVyU2F2ZShyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXRDaGFuZ2VzID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb2R1Y3QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtZXJyb3InKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuRGVhY3RpdmF0ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuY2FuRGVhY3RpdmF0ZSgpICYmICF0aGlzLmFzc2V0Q2hhbmdlcy5hc3NldHMgJiYgIXRoaXMuYXNzZXRDaGFuZ2VzLmZlYXR1cmVkQXNzZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgb2YgdGhlIGZvcm0gb24gY2hhbmdlcyB0byB0aGUgcHJvZHVjdCBvciBjdXJyZW50IGxhbmd1YWdlLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgc2V0Rm9ybVZhbHVlcyhcclxuICAgICAgICBwcm9kdWN0OiBOb25OdWxsYWJsZTxHZXRQcm9kdWN0V2l0aFZhcmlhbnRzUXVlcnlbJ3Byb2R1Y3QnXT4sXHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUsXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VHJhbnNsYXRpb24gPSBmaW5kVHJhbnNsYXRpb24ocHJvZHVjdCwgbGFuZ3VhZ2VDb2RlKTtcclxuICAgICAgICB0aGlzLmRldGFpbEZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICAgIGVuYWJsZWQ6IHByb2R1Y3QuZW5hYmxlZCxcclxuICAgICAgICAgICAgbmFtZTogY3VycmVudFRyYW5zbGF0aW9uID8gY3VycmVudFRyYW5zbGF0aW9uLm5hbWUgOiAnJyxcclxuICAgICAgICAgICAgc2x1ZzogY3VycmVudFRyYW5zbGF0aW9uID8gY3VycmVudFRyYW5zbGF0aW9uLnNsdWcgOiAnJyxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGN1cnJlbnRUcmFuc2xhdGlvbiA/IGN1cnJlbnRUcmFuc2xhdGlvbi5kZXNjcmlwdGlvbiA6ICcnLFxyXG4gICAgICAgICAgICBmYWNldFZhbHVlSWRzOiBwcm9kdWN0LmZhY2V0VmFsdWVzLm1hcChmdiA9PiBmdi5pZCksXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXN0b21GaWVsZEZvcm1WYWx1ZXMoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5nZXQoWydjdXN0b21GaWVsZHMnXSksXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0LFxyXG4gICAgICAgICAgICAgICAgY3VycmVudFRyYW5zbGF0aW9uLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdpdmVuIGEgcHJvZHVjdCBhbmQgdGhlIHZhbHVlIG9mIHRoZSBkZXRhaWxGb3JtLCB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIHVwZGF0ZWQgY29weSBvZiB0aGUgcHJvZHVjdCB3aGljaFxyXG4gICAgICogY2FuIHRoZW4gYmUgcGVyc2lzdGVkIHRvIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0VXBkYXRlZFByb2R1Y3QoXHJcbiAgICAgICAgcHJvZHVjdDogTm9uTnVsbGFibGU8R2V0UHJvZHVjdERldGFpbFF1ZXJ5Wydwcm9kdWN0J10+LFxyXG4gICAgICAgIHByb2R1Y3RGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUsXHJcbiAgICApOiBVcGRhdGVQcm9kdWN0SW5wdXQgfCBDcmVhdGVQcm9kdWN0SW5wdXQge1xyXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRQcm9kdWN0ID0gY3JlYXRlVXBkYXRlZFRyYW5zbGF0YWJsZSh7XHJcbiAgICAgICAgICAgIHRyYW5zbGF0YWJsZTogcHJvZHVjdCxcclxuICAgICAgICAgICAgdXBkYXRlZEZpZWxkczogcHJvZHVjdEZvcm1Hcm91cC52YWx1ZSxcclxuICAgICAgICAgICAgY3VzdG9tRmllbGRDb25maWc6IHRoaXMuY3VzdG9tRmllbGRzLFxyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgIGRlZmF1bHRUcmFuc2xhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogcHJvZHVjdC5uYW1lIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgc2x1ZzogcHJvZHVjdC5zbHVnIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb2R1Y3QuZGVzY3JpcHRpb24gfHwgJycsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4udXBkYXRlZFByb2R1Y3QsXHJcbiAgICAgICAgICAgIGFzc2V0SWRzOiB0aGlzLmFzc2V0Q2hhbmdlcy5hc3NldHM/Lm1hcChhID0+IGEuaWQpLFxyXG4gICAgICAgICAgICBmZWF0dXJlZEFzc2V0SWQ6IHRoaXMuYXNzZXRDaGFuZ2VzLmZlYXR1cmVkQXNzZXQ/LmlkLFxyXG4gICAgICAgICAgICBmYWNldFZhbHVlSWRzOiBwcm9kdWN0Rm9ybUdyb3VwLnZhbHVlLmZhY2V0VmFsdWVJZHMsXHJcbiAgICAgICAgfSBhcyBVcGRhdGVQcm9kdWN0SW5wdXQgfCBDcmVhdGVQcm9kdWN0SW5wdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc2VydmVyIG1heSBhbHRlciB0aGUgc2x1ZyB2YWx1ZSBpbiBvcmRlciB0byBub3JtYWxpemUgYW5kIGVuc3VyZSB1bmlxdWVuZXNzIHVwb24gc2F2aW5nLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZVNsdWdBZnRlclNhdmUocmVzdWx0czogQXJyYXk8VXBkYXRlUHJvZHVjdE11dGF0aW9uIHwgVXBkYXRlUHJvZHVjdFZhcmlhbnRzTXV0YXRpb24+KSB7XHJcbiAgICAgICAgY29uc3QgZmlyc3RSZXN1bHQgPSByZXN1bHRzWzBdO1xyXG4gICAgICAgIGNvbnN0IHNsdWdDb250cm9sID0gdGhpcy5kZXRhaWxGb3JtLmdldChbJ3Byb2R1Y3QnLCAnc2x1ZyddKTtcclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaXNVcGRhdGVNdXRhdGlvbihpbnB1dDogYW55KTogaW5wdXQgaXMgVXBkYXRlUHJvZHVjdE11dGF0aW9uIHtcclxuICAgICAgICAgICAgcmV0dXJuIGlucHV0Lmhhc093blByb3BlcnR5KCd1cGRhdGVQcm9kdWN0Jyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc2x1Z0NvbnRyb2wgJiYgaXNVcGRhdGVNdXRhdGlvbihmaXJzdFJlc3VsdCkpIHtcclxuICAgICAgICAgICAgc2x1Z0NvbnRyb2wuc2V0VmFsdWUoZmlyc3RSZXN1bHQudXBkYXRlUHJvZHVjdC5zbHVnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjx2ZHItcGFnZS1ibG9jaz5cclxuICAgIDx2ZHItYWN0aW9uLWJhcj5cclxuICAgICAgICA8dmRyLWFiLWxlZnQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGNsci1mbGV4LXJvd1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8dmRyLWxhbmd1YWdlLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNOZXckIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgW2F2YWlsYWJsZUxhbmd1YWdlQ29kZXNdPVwiYXZhaWxhYmxlTGFuZ3VhZ2VzJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgIFtjdXJyZW50TGFuZ3VhZ2VDb2RlXT1cImxhbmd1YWdlQ29kZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAobGFuZ3VhZ2VDb2RlQ2hhbmdlKT1cInNldExhbmd1YWdlKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC92ZHItbGFuZ3VhZ2Utc2VsZWN0b3I+XHJcbiAgICAgICAgPC92ZHItYWItbGVmdD5cclxuXHJcbiAgICAgICAgPHZkci1hYi1yaWdodD5cclxuICAgICAgICAgICAgPHZkci1hY3Rpb24tYmFyLWl0ZW1zIGxvY2F0aW9uSWQ9XCJwcm9kdWN0LWRldGFpbFwiPjwvdmRyLWFjdGlvbi1iYXItaXRlbXM+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNOZXckIHwgYXN5bmM7IGVsc2UgdXBkYXRlQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGUoKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGV0YWlsRm9ybS5pbnZhbGlkIHx8IGRldGFpbEZvcm0ucHJpc3RpbmUgfHwgY3JlYXRlVmFyaWFudHNDb25maWcudmFyaWFudHMubGVuZ3RoID09PSAwXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5jcmVhdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3VwZGF0ZUJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAqdmRySWZQZXJtaXNzaW9ucz1cInVwZGF0ZVBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIihkZXRhaWxGb3JtLmludmFsaWQgfHwgZGV0YWlsRm9ybS5wcmlzdGluZSkgJiYgIWFzc2V0c0NoYW5nZWQoKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2NvbW1vbi51cGRhdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1hYi1yaWdodD5cclxuICAgIDwvdmRyLWFjdGlvbi1iYXI+XHJcbjwvdmRyLXBhZ2UtYmxvY2s+XHJcblxyXG48Zm9ybSBjbGFzcz1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImRldGFpbEZvcm1cIj5cclxuICAgIDx2ZHItcGFnZS1kZXRhaWwtbGF5b3V0PlxyXG4gICAgICAgIDx2ZHItcGFnZS1kZXRhaWwtc2lkZWJhcj5cclxuICAgICAgICAgICAgPHZkci1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY2F0YWxvZy52aXNpYmlsaXR5JyB8IHRyYW5zbGF0ZVwiIGZvcj1cInZpc2liaWxpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLXRvZ2dsZS13cmFwcGVyICp2ZHJJZlBlcm1pc3Npb25zPVwidXBkYXRlUGVybWlzc2lvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xyVG9nZ2xlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZGV0YWlsRm9ybS5nZXQoWydlbmFibGVkJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdjb21tb24uZW5hYmxlZCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY2xyLXRvZ2dsZS13cmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoaXNOZXckIHwgYXN5bmMpXCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWNhcmQgKnZkcklmTXVsdGljaGFubmVsIFt0aXRsZV09XCInY29tbW9uLmNoYW5uZWxzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1pdGVtICp2ZHJJZkRlZmF1bHRDaGFubmVsQWN0aXZlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBjaGFubmVsLWFzc2lnbm1lbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hhbm5lbCBvZiBwcm9kdWN0Q2hhbm5lbHMkIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jaGlwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc0RlZmF1bHRDaGFubmVsKGNoYW5uZWwuY29kZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cInRpbWVzLWNpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWNvbkNsaWNrKT1cInJlbW92ZUZyb21DaGFubmVsKGNoYW5uZWwuaWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jaGFubmVsLWJhZGdlIFtjaGFubmVsQ29kZV09XCJjaGFubmVsLmNvZGVcIj48L3Zkci1jaGFubmVsLWJhZGdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hhbm5lbC5jb2RlIHwgY2hhbm5lbENvZGVUb0xhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24tc21hbGxcIiAoY2xpY2spPVwiYXNzaWduVG9DaGFubmVsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJsYXllcnNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLmFzc2lnbi10by1jaGFubmVsJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8dmRyLWNhcmQgKm5nSWY9XCJlbnRpdHk/Lm9wdGlvbkdyb3Vwcy5sZW5ndGhcIiBbdGl0bGVdPVwiJ2NhdGFsb2cucHJvZHVjdC1vcHRpb25zJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbkdyb3VwIG9mIGVudGl0eT8ub3B0aW9uR3JvdXBzIHwgc29ydCA6ICdpZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JGcm9tXT1cIm9wdGlvbkdyb3VwLmNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW52ZXJ0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uR3JvdXAubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWydvcHRpb25zJ11cIiBjbGFzcz1cImJ1dHRvbi1zbWFsbCBtdC0yXCIgKnZkcklmUGVybWlzc2lvbnM9XCJ1cGRhdGVQZXJtaXNzaW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwZW5jaWxcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5lZGl0LW9wdGlvbnMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgICAgIDx2ZHItY2FyZCBbdGl0bGVdPVwiJ2NhdGFsb2cuZmFjZXRzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZhY2V0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZmFjZXQtdmFsdWUtY2hpcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmFjZXRWYWx1ZSBvZiBmYWNldFZhbHVlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmYWNldFZhbHVlXT1cImZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInVwZGF0ZVBlcm1pc3Npb25zIHwgaGFzUGVybWlzc2lvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwicmVtb3ZlUHJvZHVjdEZhY2V0VmFsdWUoZmFjZXRWYWx1ZS5pZClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3Zkci1mYWNldC12YWx1ZS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tc21hbGwgbXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICp2ZHJJZlBlcm1pc3Npb25zPVwidXBkYXRlUGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJvZHVjdEZhY2V0VmFsdWUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwbHVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cuYWRkLWZhY2V0cycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgICAgICA8dmRyLWNhcmQgKm5nSWY9XCJlbnRpdHkkIHwgYXN5bmMgYXMgZW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLXBhZ2UtZW50aXR5LWluZm8gW2VudGl0eV09XCJlbnRpdHlcIj48L3Zkci1wYWdlLWVudGl0eS1pbmZvPlxyXG4gICAgICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgIDwvdmRyLXBhZ2UtZGV0YWlsLXNpZGViYXI+XHJcblxyXG4gICAgICAgIDx2ZHItcGFnZS1ibG9jaz5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgaGlkZGVuIHgtZGF0YT1cInByZXZlbnRzIGVudGVyIGtleSBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgYnV0dG9uc1wiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8dmRyLWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY2F0YWxvZy5wcm9kdWN0LW5hbWUnIHwgdHJhbnNsYXRlXCIgZm9yPVwibmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEodXBkYXRlUGVybWlzc2lvbnMgfCBoYXNQZXJtaXNzaW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZVNsdWcoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihpc05ldyQgfCBhc3luYykgPT09IGZhbHNlICYmIGRldGFpbEZvcm0uZ2V0KFsnbmFtZSddKT8uZGlydHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItY2hlY2tib3gtd3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdXRvLXVwZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImF1dG9VcGRhdGVWYXJpYW50TmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdjYXRhbG9nLmF1dG8tdXBkYXRlLXByb2R1Y3QtdmFyaWFudC1uYW1lJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidjYXRhbG9nLnNsdWcnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwic2x1Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcnNdPVwieyBwYXR0ZXJuOiAnY2F0YWxvZy5zbHVnLXBhdHRlcm4tZXJyb3InIHwgdHJhbnNsYXRlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNsdWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2x1Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiISh1cGRhdGVQZXJtaXNzaW9ucyB8IGhhc1Blcm1pc3Npb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZ3JpZC1zcGFuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidjb21tb24uZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwic2x1Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcnNdPVwieyBwYXR0ZXJuOiAnY2F0YWxvZy5zbHVnLXBhdHRlcm4tZXJyb3InIHwgdHJhbnNsYXRlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1yaWNoLXRleHQtZWRpdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiISh1cGRhdGVQZXJtaXNzaW9ucyB8IGhhc1Blcm1pc3Npb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLXJpY2gtdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidjb21tb24uY3VzdG9tLWZpZWxkcycgfCB0cmFuc2xhdGVcIiAqbmdJZj1cImN1c3RvbUZpZWxkcy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDx2ZHItdGFiYmVkLWN1c3RvbS1maWVsZHNcclxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlOYW1lPVwiUHJvZHVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc109XCJjdXN0b21GaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjdXN0b21GaWVsZHNGb3JtR3JvdXBdPVwiZGV0YWlsRm9ybS5nZXQoJ2N1c3RvbUZpZWxkcycpXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiISh1cGRhdGVQZXJtaXNzaW9ucyB8IGhhc1Blcm1pc3Npb24pXCJcclxuICAgICAgICAgICAgICAgID48L3Zkci10YWJiZWQtY3VzdG9tLWZpZWxkcz5cclxuICAgICAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICAgICAgPHZkci1jdXN0b20tZGV0YWlsLWNvbXBvbmVudC1ob3N0XHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbklkPVwicHJvZHVjdC1kZXRhaWxcIlxyXG4gICAgICAgICAgICAgICAgW2VudGl0eSRdPVwiZW50aXR5JFwiXHJcbiAgICAgICAgICAgICAgICBbZGV0YWlsRm9ybV09XCJkZXRhaWxGb3JtXCJcclxuICAgICAgICAgICAgPjwvdmRyLWN1c3RvbS1kZXRhaWwtY29tcG9uZW50LWhvc3Q+XHJcbiAgICAgICAgICAgIDx2ZHItY2FyZCBbdGl0bGVdPVwiJ2NhdGFsb2cuYXNzZXRzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1hc3NldHNcclxuICAgICAgICAgICAgICAgICAgICBbYXNzZXRzXT1cImFzc2V0Q2hhbmdlcy5hc3NldHMgfHwgZW50aXR5Py5hc3NldHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmZWF0dXJlZEFzc2V0XT1cImFzc2V0Q2hhbmdlcy5mZWF0dXJlZEFzc2V0IHx8IGVudGl0eT8uZmVhdHVyZWRBc3NldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3VwZGF0ZVBlcm1pc3Npb25zXT1cInVwZGF0ZVBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImFzc2V0Q2hhbmdlcyA9ICRldmVudFwiXHJcbiAgICAgICAgICAgICAgICA+PC92ZHItYXNzZXRzPlxyXG4gICAgICAgICAgICA8L3Zkci1jYXJkPlxyXG5cclxuICAgICAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInY2F0YWxvZy5wcm9kdWN0LXZhcmlhbnRzJyB8IHRyYW5zbGF0ZVwiIFtwYWRkaW5nWF09XCJpc05ldyQgfCBhc3luY1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzTmV3JCB8IGFzeW5jOyBlbHNlIHZhcmlhbnRMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh2YXJpYW50c0NoYW5nZSk9XCJjcmVhdGVWYXJpYW50c0NvbmZpZyA9ICRldmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWdlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFyaWFudExpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1wcm9kdWN0LXZhcmlhbnQtbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvZHVjdElkXT1cInRoaXMuaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhVGFibGVJZD1cInByb2R1Y3QtZGV0YWlsLXZhcmlhbnRzLWxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUxhbmd1YWdlU2VsZWN0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3Zkci1wcm9kdWN0LXZhcmlhbnQtbGlzdD5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtM1wiICpuZ0lmPVwiKGlzTmV3JCB8IGFzeW5jKSA9PT0gZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImJ1dHRvblwiIFtyb3V0ZXJMaW5rXT1cIlsnbWFuYWdlLXZhcmlhbnRzJ11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiYWRkLXRleHRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5tYW5hZ2UtdmFyaWFudHMnIHwgdHJhbnNsYXRlIH19PC9hXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICAgICAgPC92ZHItcGFnZS1ibG9jaz5cclxuICAgIDwvdmRyLXBhZ2UtZGV0YWlsLWxheW91dD5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
@@ -314,4 +314,4 @@ const result = {
|
|
|
314
314
|
}
|
|
315
315
|
};
|
|
316
316
|
export default result;
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50cm9zcGVjdGlvbi1yZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvbW1vbi9pbnRyb3NwZWN0aW9uLXJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFPZCxNQUFNLE1BQU0sR0FBNEI7SUFDNUMsZUFBZSxFQUFFO1FBQ2YsNkJBQTZCLEVBQUU7WUFDN0Isd0JBQXdCO1lBQ3hCLDhCQUE4QjtZQUM5QixhQUFhO1lBQ2IsaUNBQWlDO1lBQ2pDLDhCQUE4QjtZQUM5QixnQ0FBZ0M7WUFDaEMsNEJBQTRCO1NBQzdCO1FBQ0QsK0JBQStCLEVBQUU7WUFDL0IseUJBQXlCO1lBQ3pCLE9BQU87U0FDUjtRQUNELHVCQUF1QixFQUFFO1lBQ3ZCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsc0JBQXNCO1lBQ3RCLE9BQU87U0FDUjtRQUNELHNCQUFzQixFQUFFO1lBQ3RCLGFBQWE7WUFDYix5QkFBeUI7U0FDMUI7UUFDRCxtQkFBbUIsRUFBRTtZQUNuQix3QkFBd0I7WUFDeEIsOEJBQThCO1lBQzlCLG9CQUFvQjtZQUNwQixPQUFPO1lBQ1AsMkJBQTJCO1lBQzNCLHVCQUF1QjtTQUN4QjtRQUNELHFCQUFxQixFQUFFO1lBQ3JCLG9CQUFvQjtZQUNwQixTQUFTO1lBQ1QsNkJBQTZCO1NBQzlCO1FBQ0QsbUJBQW1CLEVBQUU7WUFDbkIsT0FBTztZQUNQLGVBQWU7U0FDaEI7UUFDRCxxQkFBcUIsRUFBRTtZQUNyQixTQUFTO1lBQ1QsMkJBQTJCO1NBQzVCO1FBQ0Qsc0JBQXNCLEVBQUU7WUFDdEIsVUFBVTtZQUNWLDJCQUEyQjtTQUM1QjtRQUNELHVCQUF1QixFQUFFO1lBQ3ZCLHdCQUF3QjtZQUN4QixXQUFXO1NBQ1o7UUFDRCxhQUFhLEVBQUU7WUFDYiwwQkFBMEI7WUFDMUIsMkJBQTJCO1lBQzNCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsK0JBQStC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QUNELHNCQUFzQixFQUFFO1lBQ3RCLFVBQVU7WUFDViwyQkFBMkI7U0FDNUI7UUFDRCw0QkFBNEIsRUFBRTtZQUM1Qiw2QkFBNkI7WUFDN0IsZ0JBQWdCO1NBQ2pCO1FBQ0Qsd0JBQXdCLEVBQUU7WUFDeEIsd0JBQXdCO1lBQ3hCLHVCQUF1QjtZQUN2QixPQUFPO1lBQ1AsaUJBQWlCO1lBQ2pCLHdCQUF3QjtTQUN6QjtRQUNELHVCQUF1QixFQUFFO1lBQ3ZCLHdCQUF3QjtZQUN4QixXQUFXO1NBQ1o7S0FDRjtDQUNGLENBQUM7QUFDSSxlQUFlLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5cbiAgICAgIGV4cG9ydCBpbnRlcmZhY2UgUG9zc2libGVUeXBlc1Jlc3VsdERhdGEge1xuICAgICAgICBwb3NzaWJsZVR5cGVzOiB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nW11cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0OiBQb3NzaWJsZVR5cGVzUmVzdWx0RGF0YSA9IHtcbiAgXCJwb3NzaWJsZVR5cGVzXCI6IHtcbiAgICBcIkFkZEZ1bGZpbGxtZW50VG9PcmRlclJlc3VsdFwiOiBbXG4gICAgICBcIkNyZWF0ZUZ1bGZpbGxtZW50RXJyb3JcIixcbiAgICAgIFwiRW1wdHlPcmRlckxpbmVTZWxlY3Rpb25FcnJvclwiLFxuICAgICAgXCJGdWxmaWxsbWVudFwiLFxuICAgICAgXCJGdWxmaWxsbWVudFN0YXRlVHJhbnNpdGlvbkVycm9yXCIsXG4gICAgICBcIkluc3VmZmljaWVudFN0b2NrT25IYW5kRXJyb3JcIixcbiAgICAgIFwiSW52YWxpZEZ1bGZpbGxtZW50SGFuZGxlckVycm9yXCIsXG4gICAgICBcIkl0ZW1zQWxyZWFkeUZ1bGZpbGxlZEVycm9yXCJcbiAgICBdLFxuICAgIFwiQWRkTWFudWFsUGF5bWVudFRvT3JkZXJSZXN1bHRcIjogW1xuICAgICAgXCJNYW51YWxQYXltZW50U3RhdGVFcnJvclwiLFxuICAgICAgXCJPcmRlclwiXG4gICAgXSxcbiAgICBcIkFwcGx5Q291cG9uQ29kZVJlc3VsdFwiOiBbXG4gICAgICBcIkNvdXBvbkNvZGVFeHBpcmVkRXJyb3JcIixcbiAgICAgIFwiQ291cG9uQ29kZUludmFsaWRFcnJvclwiLFxuICAgICAgXCJDb3Vwb25Db2RlTGltaXRFcnJvclwiLFxuICAgICAgXCJPcmRlclwiXG4gICAgXSxcbiAgICBcIkF1dGhlbnRpY2F0aW9uUmVzdWx0XCI6IFtcbiAgICAgIFwiQ3VycmVudFVzZXJcIixcbiAgICAgIFwiSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcIlxuICAgIF0sXG4gICAgXCJDYW5jZWxPcmRlclJlc3VsdFwiOiBbXG4gICAgICBcIkNhbmNlbEFjdGl2ZU9yZGVyRXJyb3JcIixcbiAgICAgIFwiRW1wdHlPcmRlckxpbmVTZWxlY3Rpb25FcnJvclwiLFxuICAgICAgXCJNdWx0aXBsZU9yZGVyRXJyb3JcIixcbiAgICAgIFwiT3JkZXJcIixcbiAgICAgIFwiT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvclwiLFxuICAgICAgXCJRdWFudGl0eVRvb0dyZWF0RXJyb3JcIlxuICAgIF0sXG4gICAgXCJDYW5jZWxQYXltZW50UmVzdWx0XCI6IFtcbiAgICAgIFwiQ2FuY2VsUGF5bWVudEVycm9yXCIsXG4gICAgICBcIlBheW1lbnRcIixcbiAgICAgIFwiUGF5bWVudFN0YXRlVHJhbnNpdGlvbkVycm9yXCJcbiAgICBdLFxuICAgIFwiQ3JlYXRlQXNzZXRSZXN1bHRcIjogW1xuICAgICAgXCJBc3NldFwiLFxuICAgICAgXCJNaW1lVHlwZUVycm9yXCJcbiAgICBdLFxuICAgIFwiQ3JlYXRlQ2hhbm5lbFJlc3VsdFwiOiBbXG4gICAgICBcIkNoYW5uZWxcIixcbiAgICAgIFwiTGFuZ3VhZ2VOb3RBdmFpbGFibGVFcnJvclwiXG4gICAgXSxcbiAgICBcIkNyZWF0ZUN1c3RvbWVyUmVzdWx0XCI6IFtcbiAgICAgIFwiQ3VzdG9tZXJcIixcbiAgICAgIFwiRW1haWxBZGRyZXNzQ29uZmxpY3RFcnJvclwiXG4gICAgXSxcbiAgICBcIkNyZWF0ZVByb21vdGlvblJlc3VsdFwiOiBbXG4gICAgICBcIk1pc3NpbmdDb25kaXRpb25zRXJyb3JcIixcbiAgICAgIFwiUHJvbW90aW9uXCJcbiAgICBdLFxuICAgIFwiQ3VzdG9tRmllbGRcIjogW1xuICAgICAgXCJCb29sZWFuQ3VzdG9tRmllbGRDb25maWdcIixcbiAgICAgIFwiRGF0ZVRpbWVDdXN0b21GaWVsZENvbmZpZ1wiLFxuICAgICAgXCJGbG9hdEN1c3RvbUZpZWxkQ29uZmlnXCIsXG4gICAgICBcIkludEN1c3RvbUZpZWxkQ29uZmlnXCIsXG4gICAgICBcIkxvY2FsZVN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnXCIsXG4gICAgICBcIkxvY2FsZVRleHRDdXN0b21GaWVsZENvbmZpZ1wiLFxuICAgICAgXCJSZWxhdGlvbkN1c3RvbUZpZWxkQ29uZmlnXCIsXG4gICAgICBcIlN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnXCIsXG4gICAgICBcIlRleHRDdXN0b21GaWVsZENvbmZpZ1wiXG4gICAgXSxcbiAgICBcIkN1c3RvbUZpZWxkQ29uZmlnXCI6IFtcbiAgICAgIFwiQm9vbGVhbkN1c3RvbUZpZWxkQ29uZmlnXCIsXG4gICAgICBcIkRhdGVUaW1lQ3VzdG9tRmllbGRDb25maWdcIixcbiAgICAgIFwiRmxvYXRDdXN0b21GaWVsZENvbmZpZ1wiLFxuICAgICAgXCJJbnRDdXN0b21GaWVsZENvbmZpZ1wiLFxuICAgICAgXCJMb2NhbGVTdHJpbmdDdXN0b21GaWVsZENvbmZpZ1wiLFxuICAgICAgXCJMb2NhbGVUZXh0Q3VzdG9tRmllbGRDb25maWdcIixcbiAgICAgIFwiUmVsYXRpb25DdXN0b21GaWVsZENvbmZpZ1wiLFxuICAgICAgXCJTdHJpbmdDdXN0b21GaWVsZENvbmZpZ1wiLFxuICAgICAgXCJUZXh0Q3VzdG9tRmllbGRDb25maWdcIlxuICAgIF0sXG4gICAgXCJFcnJvclJlc3VsdFwiOiBbXG4gICAgICBcIkFscmVhZHlSZWZ1bmRlZEVycm9yXCIsXG4gICAgICBcIkNhbmNlbEFjdGl2ZU9yZGVyRXJyb3JcIixcbiAgICAgIFwiQ2FuY2VsUGF5bWVudEVycm9yXCIsXG4gICAgICBcIkNoYW5uZWxEZWZhdWx0TGFuZ3VhZ2VFcnJvclwiLFxuICAgICAgXCJDb3Vwb25Db2RlRXhwaXJlZEVycm9yXCIsXG4gICAgICBcIkNvdXBvbkNvZGVJbnZhbGlkRXJyb3JcIixcbiAgICAgIFwiQ291cG9uQ29kZUxpbWl0RXJyb3JcIixcbiAgICAgIFwiQ3JlYXRlRnVsZmlsbG1lbnRFcnJvclwiLFxuICAgICAgXCJFbWFpbEFkZHJlc3NDb25mbGljdEVycm9yXCIsXG4gICAgICBcIkVtcHR5T3JkZXJMaW5lU2VsZWN0aW9uRXJyb3JcIixcbiAgICAgIFwiRmFjZXRJblVzZUVycm9yXCIsXG4gICAgICBcIkZ1bGZpbGxtZW50U3RhdGVUcmFuc2l0aW9uRXJyb3JcIixcbiAgICAgIFwiR3Vlc3RDaGVja291dEVycm9yXCIsXG4gICAgICBcIkluZWxpZ2libGVTaGlwcGluZ01ldGhvZEVycm9yXCIsXG4gICAgICBcIkluc3VmZmljaWVudFN0b2NrRXJyb3JcIixcbiAgICAgIFwiSW5zdWZmaWNpZW50U3RvY2tPbkhhbmRFcnJvclwiLFxuICAgICAgXCJJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclwiLFxuICAgICAgXCJJbnZhbGlkRnVsZmlsbG1lbnRIYW5kbGVyRXJyb3JcIixcbiAgICAgIFwiSXRlbXNBbHJlYWR5RnVsZmlsbGVkRXJyb3JcIixcbiAgICAgIFwiTGFuZ3VhZ2VOb3RBdmFpbGFibGVFcnJvclwiLFxuICAgICAgXCJNYW51YWxQYXltZW50U3RhdGVFcnJvclwiLFxuICAgICAgXCJNaW1lVHlwZUVycm9yXCIsXG4gICAgICBcIk1pc3NpbmdDb25kaXRpb25zRXJyb3JcIixcbiAgICAgIFwiTXVsdGlwbGVPcmRlckVycm9yXCIsXG4gICAgICBcIk5hdGl2ZUF1dGhTdHJhdGVneUVycm9yXCIsXG4gICAgICBcIk5lZ2F0aXZlUXVhbnRpdHlFcnJvclwiLFxuICAgICAgXCJOb0FjdGl2ZU9yZGVyRXJyb3JcIixcbiAgICAgIFwiTm9DaGFuZ2VzU3BlY2lmaWVkRXJyb3JcIixcbiAgICAgIFwiTm90aGluZ1RvUmVmdW5kRXJyb3JcIixcbiAgICAgIFwiT3JkZXJMaW1pdEVycm9yXCIsXG4gICAgICBcIk9yZGVyTW9kaWZpY2F0aW9uRXJyb3JcIixcbiAgICAgIFwiT3JkZXJNb2RpZmljYXRpb25TdGF0ZUVycm9yXCIsXG4gICAgICBcIk9yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3JcIixcbiAgICAgIFwiUGF5bWVudE1ldGhvZE1pc3NpbmdFcnJvclwiLFxuICAgICAgXCJQYXltZW50T3JkZXJNaXNtYXRjaEVycm9yXCIsXG4gICAgICBcIlBheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvclwiLFxuICAgICAgXCJQcm9kdWN0T3B0aW9uSW5Vc2VFcnJvclwiLFxuICAgICAgXCJRdWFudGl0eVRvb0dyZWF0RXJyb3JcIixcbiAgICAgIFwiUmVmdW5kT3JkZXJTdGF0ZUVycm9yXCIsXG4gICAgICBcIlJlZnVuZFBheW1lbnRJZE1pc3NpbmdFcnJvclwiLFxuICAgICAgXCJSZWZ1bmRTdGF0ZVRyYW5zaXRpb25FcnJvclwiLFxuICAgICAgXCJTZXR0bGVQYXltZW50RXJyb3JcIlxuICAgIF0sXG4gICAgXCJNb2RpZnlPcmRlclJlc3VsdFwiOiBbXG4gICAgICBcIkNvdXBvbkNvZGVFeHBpcmVkRXJyb3JcIixcbiAgICAgIFwiQ291cG9uQ29kZUludmFsaWRFcnJvclwiLFxuICAgICAgXCJDb3Vwb25Db2RlTGltaXRFcnJvclwiLFxuICAgICAgXCJJbnN1ZmZpY2llbnRTdG9ja0Vycm9yXCIsXG4gICAgICBcIk5lZ2F0aXZlUXVhbnRpdHlFcnJvclwiLFxuICAgICAgXCJOb0NoYW5nZXNTcGVjaWZpZWRFcnJvclwiLFxuICAgICAgXCJPcmRlclwiLFxuICAgICAgXCJPcmRlckxpbWl0RXJyb3JcIixcbiAgICAgIFwiT3JkZXJNb2RpZmljYXRpb25TdGF0ZUVycm9yXCIsXG4gICAgICBcIlBheW1lbnRNZXRob2RNaXNzaW5nRXJyb3JcIixcbiAgICAgIFwiUmVmdW5kUGF5bWVudElkTWlzc2luZ0Vycm9yXCJcbiAgICBdLFxuICAgIFwiTmF0aXZlQXV0aGVudGljYXRpb25SZXN1bHRcIjogW1xuICAgICAgXCJDdXJyZW50VXNlclwiLFxuICAgICAgXCJJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclwiLFxuICAgICAgXCJOYXRpdmVBdXRoU3RyYXRlZ3lFcnJvclwiXG4gICAgXSxcbiAgICBcIk5vZGVcIjogW1xuICAgICAgXCJBZGRyZXNzXCIsXG4gICAgICBcIkFkbWluaXN0cmF0b3JcIixcbiAgICAgIFwiQWxsb2NhdGlvblwiLFxuICAgICAgXCJBc3NldFwiLFxuICAgICAgXCJBdXRoZW50aWNhdGlvbk1ldGhvZFwiLFxuICAgICAgXCJDYW5jZWxsYXRpb25cIixcbiAgICAgIFwiQ2hhbm5lbFwiLFxuICAgICAgXCJDb2xsZWN0aW9uXCIsXG4gICAgICBcIkNvdW50cnlcIixcbiAgICAgIFwiQ3VzdG9tZXJcIixcbiAgICAgIFwiQ3VzdG9tZXJHcm91cFwiLFxuICAgICAgXCJGYWNldFwiLFxuICAgICAgXCJGYWNldFZhbHVlXCIsXG4gICAgICBcIkZ1bGZpbGxtZW50XCIsXG4gICAgICBcIkhpc3RvcnlFbnRyeVwiLFxuICAgICAgXCJKb2JcIixcbiAgICAgIFwiT3JkZXJcIixcbiAgICAgIFwiT3JkZXJMaW5lXCIsXG4gICAgICBcIk9yZGVyTW9kaWZpY2F0aW9uXCIsXG4gICAgICBcIlBheW1lbnRcIixcbiAgICAgIFwiUGF5bWVudE1ldGhvZFwiLFxuICAgICAgXCJQcm9kdWN0XCIsXG4gICAgICBcIlByb2R1Y3RPcHRpb25cIixcbiAgICAgIFwiUHJvZHVjdE9wdGlvbkdyb3VwXCIsXG4gICAgICBcIlByb2R1Y3RWYXJpYW50XCIsXG4gICAgICBcIlByb21vdGlvblwiLFxuICAgICAgXCJQcm92aW5jZVwiLFxuICAgICAgXCJSZWZ1bmRcIixcbiAgICAgIFwiUmVsZWFzZVwiLFxuICAgICAgXCJSZXR1cm5cIixcbiAgICAgIFwiUm9sZVwiLFxuICAgICAgXCJTYWxlXCIsXG4gICAgICBcIlNlbGxlclwiLFxuICAgICAgXCJTaGlwcGluZ01ldGhvZFwiLFxuICAgICAgXCJTdG9ja0FkanVzdG1lbnRcIixcbiAgICAgIFwiU3RvY2tMZXZlbFwiLFxuICAgICAgXCJTdG9ja0xvY2F0aW9uXCIsXG4gICAgICBcIlN1cmNoYXJnZVwiLFxuICAgICAgXCJUYWdcIixcbiAgICAgIFwiVGF4Q2F0ZWdvcnlcIixcbiAgICAgIFwiVGF4UmF0ZVwiLFxuICAgICAgXCJVc2VyXCIsXG4gICAgICBcIlpvbmVcIlxuICAgIF0sXG4gICAgXCJQYWdpbmF0ZWRMaXN0XCI6IFtcbiAgICAgIFwiQWRtaW5pc3RyYXRvckxpc3RcIixcbiAgICAgIFwiQXNzZXRMaXN0XCIsXG4gICAgICBcIkNoYW5uZWxMaXN0XCIsXG4gICAgICBcIkNvbGxlY3Rpb25MaXN0XCIsXG4gICAgICBcIkNvdW50cnlMaXN0XCIsXG4gICAgICBcIkN1c3RvbWVyR3JvdXBMaXN0XCIsXG4gICAgICBcIkN1c3RvbWVyTGlzdFwiLFxuICAgICAgXCJGYWNldExpc3RcIixcbiAgICAgIFwiRmFjZXRWYWx1ZUxpc3RcIixcbiAgICAgIFwiSGlzdG9yeUVudHJ5TGlzdFwiLFxuICAgICAgXCJKb2JMaXN0XCIsXG4gICAgICBcIk9yZGVyTGlzdFwiLFxuICAgICAgXCJQYXltZW50TWV0aG9kTGlzdFwiLFxuICAgICAgXCJQcm9kdWN0TGlzdFwiLFxuICAgICAgXCJQcm9kdWN0VmFyaWFudExpc3RcIixcbiAgICAgIFwiUHJvbW90aW9uTGlzdFwiLFxuICAgICAgXCJQcm92aW5jZUxpc3RcIixcbiAgICAgIFwiUm9sZUxpc3RcIixcbiAgICAgIFwiU2VsbGVyTGlzdFwiLFxuICAgICAgXCJTaGlwcGluZ01ldGhvZExpc3RcIixcbiAgICAgIFwiU3RvY2tMb2NhdGlvbkxpc3RcIixcbiAgICAgIFwiVGFnTGlzdFwiLFxuICAgICAgXCJUYXhDYXRlZ29yeUxpc3RcIixcbiAgICAgIFwiVGF4UmF0ZUxpc3RcIixcbiAgICAgIFwiWm9uZUxpc3RcIlxuICAgIF0sXG4gICAgXCJSZWZ1bmRPcmRlclJlc3VsdFwiOiBbXG4gICAgICBcIkFscmVhZHlSZWZ1bmRlZEVycm9yXCIsXG4gICAgICBcIk11bHRpcGxlT3JkZXJFcnJvclwiLFxuICAgICAgXCJOb3RoaW5nVG9SZWZ1bmRFcnJvclwiLFxuICAgICAgXCJPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yXCIsXG4gICAgICBcIlBheW1lbnRPcmRlck1pc21hdGNoRXJyb3JcIixcbiAgICAgIFwiUXVhbnRpdHlUb29HcmVhdEVycm9yXCIsXG4gICAgICBcIlJlZnVuZFwiLFxuICAgICAgXCJSZWZ1bmRPcmRlclN0YXRlRXJyb3JcIixcbiAgICAgIFwiUmVmdW5kU3RhdGVUcmFuc2l0aW9uRXJyb3JcIlxuICAgIF0sXG4gICAgXCJSZWdpb25cIjogW1xuICAgICAgXCJDb3VudHJ5XCIsXG4gICAgICBcIlByb3ZpbmNlXCJcbiAgICBdLFxuICAgIFwiUmVtb3ZlRmFjZXRGcm9tQ2hhbm5lbFJlc3VsdFwiOiBbXG4gICAgICBcIkZhY2V0XCIsXG4gICAgICBcIkZhY2V0SW5Vc2VFcnJvclwiXG4gICAgXSxcbiAgICBcIlJlbW92ZU9wdGlvbkdyb3VwRnJvbVByb2R1Y3RSZXN1bHRcIjogW1xuICAgICAgXCJQcm9kdWN0XCIsXG4gICAgICBcIlByb2R1Y3RPcHRpb25JblVzZUVycm9yXCJcbiAgICBdLFxuICAgIFwiUmVtb3ZlT3JkZXJJdGVtc1Jlc3VsdFwiOiBbXG4gICAgICBcIk9yZGVyXCIsXG4gICAgICBcIk9yZGVyTW9kaWZpY2F0aW9uRXJyb3JcIlxuICAgIF0sXG4gICAgXCJTZWFyY2hSZXN1bHRQcmljZVwiOiBbXG4gICAgICBcIlByaWNlUmFuZ2VcIixcbiAgICAgIFwiU2luZ2xlUHJpY2VcIlxuICAgIF0sXG4gICAgXCJTZXRDdXN0b21lckZvckRyYWZ0T3JkZXJSZXN1bHRcIjogW1xuICAgICAgXCJFbWFpbEFkZHJlc3NDb25mbGljdEVycm9yXCIsXG4gICAgICBcIk9yZGVyXCJcbiAgICBdLFxuICAgIFwiU2V0T3JkZXJTaGlwcGluZ01ldGhvZFJlc3VsdFwiOiBbXG4gICAgICBcIkluZWxpZ2libGVTaGlwcGluZ01ldGhvZEVycm9yXCIsXG4gICAgICBcIk5vQWN0aXZlT3JkZXJFcnJvclwiLFxuICAgICAgXCJPcmRlclwiLFxuICAgICAgXCJPcmRlck1vZGlmaWNhdGlvbkVycm9yXCJcbiAgICBdLFxuICAgIFwiU2V0dGxlUGF5bWVudFJlc3VsdFwiOiBbXG4gICAgICBcIk9yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3JcIixcbiAgICAgIFwiUGF5bWVudFwiLFxuICAgICAgXCJQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3JcIixcbiAgICAgIFwiU2V0dGxlUGF5bWVudEVycm9yXCJcbiAgICBdLFxuICAgIFwiU2V0dGxlUmVmdW5kUmVzdWx0XCI6IFtcbiAgICAgIFwiUmVmdW5kXCIsXG4gICAgICBcIlJlZnVuZFN0YXRlVHJhbnNpdGlvbkVycm9yXCJcbiAgICBdLFxuICAgIFwiU3RvY2tNb3ZlbWVudFwiOiBbXG4gICAgICBcIkFsbG9jYXRpb25cIixcbiAgICAgIFwiQ2FuY2VsbGF0aW9uXCIsXG4gICAgICBcIlJlbGVhc2VcIixcbiAgICAgIFwiUmV0dXJuXCIsXG4gICAgICBcIlNhbGVcIixcbiAgICAgIFwiU3RvY2tBZGp1c3RtZW50XCJcbiAgICBdLFxuICAgIFwiU3RvY2tNb3ZlbWVudEl0ZW1cIjogW1xuICAgICAgXCJBbGxvY2F0aW9uXCIsXG4gICAgICBcIkNhbmNlbGxhdGlvblwiLFxuICAgICAgXCJSZWxlYXNlXCIsXG4gICAgICBcIlJldHVyblwiLFxuICAgICAgXCJTYWxlXCIsXG4gICAgICBcIlN0b2NrQWRqdXN0bWVudFwiXG4gICAgXSxcbiAgICBcIlRyYW5zaXRpb25GdWxmaWxsbWVudFRvU3RhdGVSZXN1bHRcIjogW1xuICAgICAgXCJGdWxmaWxsbWVudFwiLFxuICAgICAgXCJGdWxmaWxsbWVudFN0YXRlVHJhbnNpdGlvbkVycm9yXCJcbiAgICBdLFxuICAgIFwiVHJhbnNpdGlvbk9yZGVyVG9TdGF0ZVJlc3VsdFwiOiBbXG4gICAgICBcIk9yZGVyXCIsXG4gICAgICBcIk9yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3JcIlxuICAgIF0sXG4gICAgXCJUcmFuc2l0aW9uUGF5bWVudFRvU3RhdGVSZXN1bHRcIjogW1xuICAgICAgXCJQYXltZW50XCIsXG4gICAgICBcIlBheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvclwiXG4gICAgXSxcbiAgICBcIlVwZGF0ZUNoYW5uZWxSZXN1bHRcIjogW1xuICAgICAgXCJDaGFubmVsXCIsXG4gICAgICBcIkxhbmd1YWdlTm90QXZhaWxhYmxlRXJyb3JcIlxuICAgIF0sXG4gICAgXCJVcGRhdGVDdXN0b21lclJlc3VsdFwiOiBbXG4gICAgICBcIkN1c3RvbWVyXCIsXG4gICAgICBcIkVtYWlsQWRkcmVzc0NvbmZsaWN0RXJyb3JcIlxuICAgIF0sXG4gICAgXCJVcGRhdGVHbG9iYWxTZXR0aW5nc1Jlc3VsdFwiOiBbXG4gICAgICBcIkNoYW5uZWxEZWZhdWx0TGFuZ3VhZ2VFcnJvclwiLFxuICAgICAgXCJHbG9iYWxTZXR0aW5nc1wiXG4gICAgXSxcbiAgICBcIlVwZGF0ZU9yZGVySXRlbXNSZXN1bHRcIjogW1xuICAgICAgXCJJbnN1ZmZpY2llbnRTdG9ja0Vycm9yXCIsXG4gICAgICBcIk5lZ2F0aXZlUXVhbnRpdHlFcnJvclwiLFxuICAgICAgXCJPcmRlclwiLFxuICAgICAgXCJPcmRlckxpbWl0RXJyb3JcIixcbiAgICAgIFwiT3JkZXJNb2RpZmljYXRpb25FcnJvclwiXG4gICAgXSxcbiAgICBcIlVwZGF0ZVByb21vdGlvblJlc3VsdFwiOiBbXG4gICAgICBcIk1pc3NpbmdDb25kaXRpb25zRXJyb3JcIixcbiAgICAgIFwiUHJvbW90aW9uXCJcbiAgICBdXG4gIH1cbn07XG4gICAgICBleHBvcnQgZGVmYXVsdCByZXN1bHQ7XG4gICAgIl19
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50cm9zcGVjdGlvbi1yZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvbW1vbi9pbnRyb3NwZWN0aW9uLXJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFPZCxNQUFNLE1BQU0sR0FBNEI7SUFDNUMsZUFBZSxFQUFFO1FBQ2YsNkJBQTZCLEVBQUU7WUFDN0Isd0JBQXdCO1lBQ3hCLDhCQUE4QjtZQUM5QixhQUFhO1lBQ2IsaUNBQWlDO1lBQ2pDLDhCQUE4QjtZQUM5QixnQ0FBZ0M7WUFDaEMsNEJBQTRCO1NBQzdCO1FBQ0QsK0JBQStCLEVBQUU7WUFDL0IseUJBQXlCO1lBQ3pCLE9BQU87U0FDUjtRQUNELHVCQUF1QixFQUFFO1lBQ3ZCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsc0JBQXNCO1lBQ3RCLE9BQU87U0FDUjtRQUNELHNCQUFzQixFQUFFO1lBQ3RCLGFBQWE7WUFDYix5QkFBeUI7U0FDMUI7UUFDRCxtQkFBbUIsRUFBRTtZQUNuQix3QkFBd0I7WUFDeEIsOEJBQThCO1lBQzlCLG9CQUFvQjtZQUNwQixPQUFPO1lBQ1AsMkJBQTJCO1lBQzNCLHVCQUF1QjtTQUN4QjtRQUNELHFCQUFxQixFQUFFO1lBQ3JCLG9CQUFvQjtZQUNwQixTQUFTO1lBQ1QsNkJBQTZCO1NBQzlCO1FBQ0QsbUJBQW1CLEVBQUU7WUFDbkIsT0FBTztZQUNQLGVBQWU7U0FDaEI7UUFDRCxxQkFBcUIsRUFBRTtZQUNyQixTQUFTO1lBQ1QsMkJBQTJCO1NBQzVCO1FBQ0Qsc0JBQXNCLEVBQUU7WUFDdEIsVUFBVTtZQUNWLDJCQUEyQjtTQUM1QjtRQUNELHVCQUF1QixFQUFFO1lBQ3ZCLHdCQUF3QjtZQUN4QixXQUFXO1NBQ1o7UUFDRCxhQUFhLEVBQUU7WUFDYiwwQkFBMEI7WUFDMUIsMkJBQTJCO1lBQzNCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsK0JBQStC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QUNELHNCQUFzQixFQUFFO1lBQ3RCLFVBQVU7WUFDViwyQkFBMkI7U0FDNUI7UUFDRCw0QkFBNEIsRUFBRTtZQUM1Qiw2QkFBNkI7WUFDN0IsZ0JBQWdCO1NBQ2pCO1FBQ0Qsd0JBQXdCLEVBQUU7WUFDeEIsd0JBQXdCO1lBQ3hCLHVCQUF1QjtZQUN2QixPQUFPO1lBQ1AsaUJBQWlCO1lBQ2pCLHdCQUF3QjtTQUN6QjtRQUNELHVCQUF1QixFQUFFO1lBQ3ZCLHdCQUF3QjtZQUN4QixXQUFXO1NBQ1o7S0FDRjtDQUNGLENBQUM7QUFDSSxlQUFlLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXHJcblxyXG4gICAgICBleHBvcnQgaW50ZXJmYWNlIFBvc3NpYmxlVHlwZXNSZXN1bHREYXRhIHtcclxuICAgICAgICBwb3NzaWJsZVR5cGVzOiB7XHJcbiAgICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdbXVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCByZXN1bHQ6IFBvc3NpYmxlVHlwZXNSZXN1bHREYXRhID0ge1xyXG4gIFwicG9zc2libGVUeXBlc1wiOiB7XHJcbiAgICBcIkFkZEZ1bGZpbGxtZW50VG9PcmRlclJlc3VsdFwiOiBbXHJcbiAgICAgIFwiQ3JlYXRlRnVsZmlsbG1lbnRFcnJvclwiLFxyXG4gICAgICBcIkVtcHR5T3JkZXJMaW5lU2VsZWN0aW9uRXJyb3JcIixcclxuICAgICAgXCJGdWxmaWxsbWVudFwiLFxyXG4gICAgICBcIkZ1bGZpbGxtZW50U3RhdGVUcmFuc2l0aW9uRXJyb3JcIixcclxuICAgICAgXCJJbnN1ZmZpY2llbnRTdG9ja09uSGFuZEVycm9yXCIsXHJcbiAgICAgIFwiSW52YWxpZEZ1bGZpbGxtZW50SGFuZGxlckVycm9yXCIsXHJcbiAgICAgIFwiSXRlbXNBbHJlYWR5RnVsZmlsbGVkRXJyb3JcIlxyXG4gICAgXSxcclxuICAgIFwiQWRkTWFudWFsUGF5bWVudFRvT3JkZXJSZXN1bHRcIjogW1xyXG4gICAgICBcIk1hbnVhbFBheW1lbnRTdGF0ZUVycm9yXCIsXHJcbiAgICAgIFwiT3JkZXJcIlxyXG4gICAgXSxcclxuICAgIFwiQXBwbHlDb3Vwb25Db2RlUmVzdWx0XCI6IFtcclxuICAgICAgXCJDb3Vwb25Db2RlRXhwaXJlZEVycm9yXCIsXHJcbiAgICAgIFwiQ291cG9uQ29kZUludmFsaWRFcnJvclwiLFxyXG4gICAgICBcIkNvdXBvbkNvZGVMaW1pdEVycm9yXCIsXHJcbiAgICAgIFwiT3JkZXJcIlxyXG4gICAgXSxcclxuICAgIFwiQXV0aGVudGljYXRpb25SZXN1bHRcIjogW1xyXG4gICAgICBcIkN1cnJlbnRVc2VyXCIsXHJcbiAgICAgIFwiSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcIlxyXG4gICAgXSxcclxuICAgIFwiQ2FuY2VsT3JkZXJSZXN1bHRcIjogW1xyXG4gICAgICBcIkNhbmNlbEFjdGl2ZU9yZGVyRXJyb3JcIixcclxuICAgICAgXCJFbXB0eU9yZGVyTGluZVNlbGVjdGlvbkVycm9yXCIsXHJcbiAgICAgIFwiTXVsdGlwbGVPcmRlckVycm9yXCIsXHJcbiAgICAgIFwiT3JkZXJcIixcclxuICAgICAgXCJPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yXCIsXHJcbiAgICAgIFwiUXVhbnRpdHlUb29HcmVhdEVycm9yXCJcclxuICAgIF0sXHJcbiAgICBcIkNhbmNlbFBheW1lbnRSZXN1bHRcIjogW1xyXG4gICAgICBcIkNhbmNlbFBheW1lbnRFcnJvclwiLFxyXG4gICAgICBcIlBheW1lbnRcIixcclxuICAgICAgXCJQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3JcIlxyXG4gICAgXSxcclxuICAgIFwiQ3JlYXRlQXNzZXRSZXN1bHRcIjogW1xyXG4gICAgICBcIkFzc2V0XCIsXHJcbiAgICAgIFwiTWltZVR5cGVFcnJvclwiXHJcbiAgICBdLFxyXG4gICAgXCJDcmVhdGVDaGFubmVsUmVzdWx0XCI6IFtcclxuICAgICAgXCJDaGFubmVsXCIsXHJcbiAgICAgIFwiTGFuZ3VhZ2VOb3RBdmFpbGFibGVFcnJvclwiXHJcbiAgICBdLFxyXG4gICAgXCJDcmVhdGVDdXN0b21lclJlc3VsdFwiOiBbXHJcbiAgICAgIFwiQ3VzdG9tZXJcIixcclxuICAgICAgXCJFbWFpbEFkZHJlc3NDb25mbGljdEVycm9yXCJcclxuICAgIF0sXHJcbiAgICBcIkNyZWF0ZVByb21vdGlvblJlc3VsdFwiOiBbXHJcbiAgICAgIFwiTWlzc2luZ0NvbmRpdGlvbnNFcnJvclwiLFxyXG4gICAgICBcIlByb21vdGlvblwiXHJcbiAgICBdLFxyXG4gICAgXCJDdXN0b21GaWVsZFwiOiBbXHJcbiAgICAgIFwiQm9vbGVhbkN1c3RvbUZpZWxkQ29uZmlnXCIsXHJcbiAgICAgIFwiRGF0ZVRpbWVDdXN0b21GaWVsZENvbmZpZ1wiLFxyXG4gICAgICBcIkZsb2F0Q3VzdG9tRmllbGRDb25maWdcIixcclxuICAgICAgXCJJbnRDdXN0b21GaWVsZENvbmZpZ1wiLFxyXG4gICAgICBcIkxvY2FsZVN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnXCIsXHJcbiAgICAgIFwiTG9jYWxlVGV4dEN1c3RvbUZpZWxkQ29uZmlnXCIsXHJcbiAgICAgIFwiUmVsYXRpb25DdXN0b21GaWVsZENvbmZpZ1wiLFxyXG4gICAgICBcIlN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnXCIsXHJcbiAgICAgIFwiVGV4dEN1c3RvbUZpZWxkQ29uZmlnXCJcclxuICAgIF0sXHJcbiAgICBcIkN1c3RvbUZpZWxkQ29uZmlnXCI6IFtcclxuICAgICAgXCJCb29sZWFuQ3VzdG9tRmllbGRDb25maWdcIixcclxuICAgICAgXCJEYXRlVGltZUN1c3RvbUZpZWxkQ29uZmlnXCIsXHJcbiAgICAgIFwiRmxvYXRDdXN0b21GaWVsZENvbmZpZ1wiLFxyXG4gICAgICBcIkludEN1c3RvbUZpZWxkQ29uZmlnXCIsXHJcbiAgICAgIFwiTG9jYWxlU3RyaW5nQ3VzdG9tRmllbGRDb25maWdcIixcclxuICAgICAgXCJMb2NhbGVUZXh0Q3VzdG9tRmllbGRDb25maWdcIixcclxuICAgICAgXCJSZWxhdGlvbkN1c3RvbUZpZWxkQ29uZmlnXCIsXHJcbiAgICAgIFwiU3RyaW5nQ3VzdG9tRmllbGRDb25maWdcIixcclxuICAgICAgXCJUZXh0Q3VzdG9tRmllbGRDb25maWdcIlxyXG4gICAgXSxcclxuICAgIFwiRXJyb3JSZXN1bHRcIjogW1xyXG4gICAgICBcIkFscmVhZHlSZWZ1bmRlZEVycm9yXCIsXHJcbiAgICAgIFwiQ2FuY2VsQWN0aXZlT3JkZXJFcnJvclwiLFxyXG4gICAgICBcIkNhbmNlbFBheW1lbnRFcnJvclwiLFxyXG4gICAgICBcIkNoYW5uZWxEZWZhdWx0TGFuZ3VhZ2VFcnJvclwiLFxyXG4gICAgICBcIkNvdXBvbkNvZGVFeHBpcmVkRXJyb3JcIixcclxuICAgICAgXCJDb3Vwb25Db2RlSW52YWxpZEVycm9yXCIsXHJcbiAgICAgIFwiQ291cG9uQ29kZUxpbWl0RXJyb3JcIixcclxuICAgICAgXCJDcmVhdGVGdWxmaWxsbWVudEVycm9yXCIsXHJcbiAgICAgIFwiRW1haWxBZGRyZXNzQ29uZmxpY3RFcnJvclwiLFxyXG4gICAgICBcIkVtcHR5T3JkZXJMaW5lU2VsZWN0aW9uRXJyb3JcIixcclxuICAgICAgXCJGYWNldEluVXNlRXJyb3JcIixcclxuICAgICAgXCJGdWxmaWxsbWVudFN0YXRlVHJhbnNpdGlvbkVycm9yXCIsXHJcbiAgICAgIFwiR3Vlc3RDaGVja291dEVycm9yXCIsXHJcbiAgICAgIFwiSW5lbGlnaWJsZVNoaXBwaW5nTWV0aG9kRXJyb3JcIixcclxuICAgICAgXCJJbnN1ZmZpY2llbnRTdG9ja0Vycm9yXCIsXHJcbiAgICAgIFwiSW5zdWZmaWNpZW50U3RvY2tPbkhhbmRFcnJvclwiLFxyXG4gICAgICBcIkludmFsaWRDcmVkZW50aWFsc0Vycm9yXCIsXHJcbiAgICAgIFwiSW52YWxpZEZ1bGZpbGxtZW50SGFuZGxlckVycm9yXCIsXHJcbiAgICAgIFwiSXRlbXNBbHJlYWR5RnVsZmlsbGVkRXJyb3JcIixcclxuICAgICAgXCJMYW5ndWFnZU5vdEF2YWlsYWJsZUVycm9yXCIsXHJcbiAgICAgIFwiTWFudWFsUGF5bWVudFN0YXRlRXJyb3JcIixcclxuICAgICAgXCJNaW1lVHlwZUVycm9yXCIsXHJcbiAgICAgIFwiTWlzc2luZ0NvbmRpdGlvbnNFcnJvclwiLFxyXG4gICAgICBcIk11bHRpcGxlT3JkZXJFcnJvclwiLFxyXG4gICAgICBcIk5hdGl2ZUF1dGhTdHJhdGVneUVycm9yXCIsXHJcbiAgICAgIFwiTmVnYXRpdmVRdWFudGl0eUVycm9yXCIsXHJcbiAgICAgIFwiTm9BY3RpdmVPcmRlckVycm9yXCIsXHJcbiAgICAgIFwiTm9DaGFuZ2VzU3BlY2lmaWVkRXJyb3JcIixcclxuICAgICAgXCJOb3RoaW5nVG9SZWZ1bmRFcnJvclwiLFxyXG4gICAgICBcIk9yZGVyTGltaXRFcnJvclwiLFxyXG4gICAgICBcIk9yZGVyTW9kaWZpY2F0aW9uRXJyb3JcIixcclxuICAgICAgXCJPcmRlck1vZGlmaWNhdGlvblN0YXRlRXJyb3JcIixcclxuICAgICAgXCJPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yXCIsXHJcbiAgICAgIFwiUGF5bWVudE1ldGhvZE1pc3NpbmdFcnJvclwiLFxyXG4gICAgICBcIlBheW1lbnRPcmRlck1pc21hdGNoRXJyb3JcIixcclxuICAgICAgXCJQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3JcIixcclxuICAgICAgXCJQcm9kdWN0T3B0aW9uSW5Vc2VFcnJvclwiLFxyXG4gICAgICBcIlF1YW50aXR5VG9vR3JlYXRFcnJvclwiLFxyXG4gICAgICBcIlJlZnVuZE9yZGVyU3RhdGVFcnJvclwiLFxyXG4gICAgICBcIlJlZnVuZFBheW1lbnRJZE1pc3NpbmdFcnJvclwiLFxyXG4gICAgICBcIlJlZnVuZFN0YXRlVHJhbnNpdGlvbkVycm9yXCIsXHJcbiAgICAgIFwiU2V0dGxlUGF5bWVudEVycm9yXCJcclxuICAgIF0sXHJcbiAgICBcIk1vZGlmeU9yZGVyUmVzdWx0XCI6IFtcclxuICAgICAgXCJDb3Vwb25Db2RlRXhwaXJlZEVycm9yXCIsXHJcbiAgICAgIFwiQ291cG9uQ29kZUludmFsaWRFcnJvclwiLFxyXG4gICAgICBcIkNvdXBvbkNvZGVMaW1pdEVycm9yXCIsXHJcbiAgICAgIFwiSW5zdWZmaWNpZW50U3RvY2tFcnJvclwiLFxyXG4gICAgICBcIk5lZ2F0aXZlUXVhbnRpdHlFcnJvclwiLFxyXG4gICAgICBcIk5vQ2hhbmdlc1NwZWNpZmllZEVycm9yXCIsXHJcbiAgICAgIFwiT3JkZXJcIixcclxuICAgICAgXCJPcmRlckxpbWl0RXJyb3JcIixcclxuICAgICAgXCJPcmRlck1vZGlmaWNhdGlvblN0YXRlRXJyb3JcIixcclxuICAgICAgXCJQYXltZW50TWV0aG9kTWlzc2luZ0Vycm9yXCIsXHJcbiAgICAgIFwiUmVmdW5kUGF5bWVudElkTWlzc2luZ0Vycm9yXCJcclxuICAgIF0sXHJcbiAgICBcIk5hdGl2ZUF1dGhlbnRpY2F0aW9uUmVzdWx0XCI6IFtcclxuICAgICAgXCJDdXJyZW50VXNlclwiLFxyXG4gICAgICBcIkludmFsaWRDcmVkZW50aWFsc0Vycm9yXCIsXHJcbiAgICAgIFwiTmF0aXZlQXV0aFN0cmF0ZWd5RXJyb3JcIlxyXG4gICAgXSxcclxuICAgIFwiTm9kZVwiOiBbXHJcbiAgICAgIFwiQWRkcmVzc1wiLFxyXG4gICAgICBcIkFkbWluaXN0cmF0b3JcIixcclxuICAgICAgXCJBbGxvY2F0aW9uXCIsXHJcbiAgICAgIFwiQXNzZXRcIixcclxuICAgICAgXCJBdXRoZW50aWNhdGlvbk1ldGhvZFwiLFxyXG4gICAgICBcIkNhbmNlbGxhdGlvblwiLFxyXG4gICAgICBcIkNoYW5uZWxcIixcclxuICAgICAgXCJDb2xsZWN0aW9uXCIsXHJcbiAgICAgIFwiQ291bnRyeVwiLFxyXG4gICAgICBcIkN1c3RvbWVyXCIsXHJcbiAgICAgIFwiQ3VzdG9tZXJHcm91cFwiLFxyXG4gICAgICBcIkZhY2V0XCIsXHJcbiAgICAgIFwiRmFjZXRWYWx1ZVwiLFxyXG4gICAgICBcIkZ1bGZpbGxtZW50XCIsXHJcbiAgICAgIFwiSGlzdG9yeUVudHJ5XCIsXHJcbiAgICAgIFwiSm9iXCIsXHJcbiAgICAgIFwiT3JkZXJcIixcclxuICAgICAgXCJPcmRlckxpbmVcIixcclxuICAgICAgXCJPcmRlck1vZGlmaWNhdGlvblwiLFxyXG4gICAgICBcIlBheW1lbnRcIixcclxuICAgICAgXCJQYXltZW50TWV0aG9kXCIsXHJcbiAgICAgIFwiUHJvZHVjdFwiLFxyXG4gICAgICBcIlByb2R1Y3RPcHRpb25cIixcclxuICAgICAgXCJQcm9kdWN0T3B0aW9uR3JvdXBcIixcclxuICAgICAgXCJQcm9kdWN0VmFyaWFudFwiLFxyXG4gICAgICBcIlByb21vdGlvblwiLFxyXG4gICAgICBcIlByb3ZpbmNlXCIsXHJcbiAgICAgIFwiUmVmdW5kXCIsXHJcbiAgICAgIFwiUmVsZWFzZVwiLFxyXG4gICAgICBcIlJldHVyblwiLFxyXG4gICAgICBcIlJvbGVcIixcclxuICAgICAgXCJTYWxlXCIsXHJcbiAgICAgIFwiU2VsbGVyXCIsXHJcbiAgICAgIFwiU2hpcHBpbmdNZXRob2RcIixcclxuICAgICAgXCJTdG9ja0FkanVzdG1lbnRcIixcclxuICAgICAgXCJTdG9ja0xldmVsXCIsXHJcbiAgICAgIFwiU3RvY2tMb2NhdGlvblwiLFxyXG4gICAgICBcIlN1cmNoYXJnZVwiLFxyXG4gICAgICBcIlRhZ1wiLFxyXG4gICAgICBcIlRheENhdGVnb3J5XCIsXHJcbiAgICAgIFwiVGF4UmF0ZVwiLFxyXG4gICAgICBcIlVzZXJcIixcclxuICAgICAgXCJab25lXCJcclxuICAgIF0sXHJcbiAgICBcIlBhZ2luYXRlZExpc3RcIjogW1xyXG4gICAgICBcIkFkbWluaXN0cmF0b3JMaXN0XCIsXHJcbiAgICAgIFwiQXNzZXRMaXN0XCIsXHJcbiAgICAgIFwiQ2hhbm5lbExpc3RcIixcclxuICAgICAgXCJDb2xsZWN0aW9uTGlzdFwiLFxyXG4gICAgICBcIkNvdW50cnlMaXN0XCIsXHJcbiAgICAgIFwiQ3VzdG9tZXJHcm91cExpc3RcIixcclxuICAgICAgXCJDdXN0b21lckxpc3RcIixcclxuICAgICAgXCJGYWNldExpc3RcIixcclxuICAgICAgXCJGYWNldFZhbHVlTGlzdFwiLFxyXG4gICAgICBcIkhpc3RvcnlFbnRyeUxpc3RcIixcclxuICAgICAgXCJKb2JMaXN0XCIsXHJcbiAgICAgIFwiT3JkZXJMaXN0XCIsXHJcbiAgICAgIFwiUGF5bWVudE1ldGhvZExpc3RcIixcclxuICAgICAgXCJQcm9kdWN0TGlzdFwiLFxyXG4gICAgICBcIlByb2R1Y3RWYXJpYW50TGlzdFwiLFxyXG4gICAgICBcIlByb21vdGlvbkxpc3RcIixcclxuICAgICAgXCJQcm92aW5jZUxpc3RcIixcclxuICAgICAgXCJSb2xlTGlzdFwiLFxyXG4gICAgICBcIlNlbGxlckxpc3RcIixcclxuICAgICAgXCJTaGlwcGluZ01ldGhvZExpc3RcIixcclxuICAgICAgXCJTdG9ja0xvY2F0aW9uTGlzdFwiLFxyXG4gICAgICBcIlRhZ0xpc3RcIixcclxuICAgICAgXCJUYXhDYXRlZ29yeUxpc3RcIixcclxuICAgICAgXCJUYXhSYXRlTGlzdFwiLFxyXG4gICAgICBcIlpvbmVMaXN0XCJcclxuICAgIF0sXHJcbiAgICBcIlJlZnVuZE9yZGVyUmVzdWx0XCI6IFtcclxuICAgICAgXCJBbHJlYWR5UmVmdW5kZWRFcnJvclwiLFxyXG4gICAgICBcIk11bHRpcGxlT3JkZXJFcnJvclwiLFxyXG4gICAgICBcIk5vdGhpbmdUb1JlZnVuZEVycm9yXCIsXHJcbiAgICAgIFwiT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvclwiLFxyXG4gICAgICBcIlBheW1lbnRPcmRlck1pc21hdGNoRXJyb3JcIixcclxuICAgICAgXCJRdWFudGl0eVRvb0dyZWF0RXJyb3JcIixcclxuICAgICAgXCJSZWZ1bmRcIixcclxuICAgICAgXCJSZWZ1bmRPcmRlclN0YXRlRXJyb3JcIixcclxuICAgICAgXCJSZWZ1bmRTdGF0ZVRyYW5zaXRpb25FcnJvclwiXHJcbiAgICBdLFxyXG4gICAgXCJSZWdpb25cIjogW1xyXG4gICAgICBcIkNvdW50cnlcIixcclxuICAgICAgXCJQcm92aW5jZVwiXHJcbiAgICBdLFxyXG4gICAgXCJSZW1vdmVGYWNldEZyb21DaGFubmVsUmVzdWx0XCI6IFtcclxuICAgICAgXCJGYWNldFwiLFxyXG4gICAgICBcIkZhY2V0SW5Vc2VFcnJvclwiXHJcbiAgICBdLFxyXG4gICAgXCJSZW1vdmVPcHRpb25Hcm91cEZyb21Qcm9kdWN0UmVzdWx0XCI6IFtcclxuICAgICAgXCJQcm9kdWN0XCIsXHJcbiAgICAgIFwiUHJvZHVjdE9wdGlvbkluVXNlRXJyb3JcIlxyXG4gICAgXSxcclxuICAgIFwiUmVtb3ZlT3JkZXJJdGVtc1Jlc3VsdFwiOiBbXHJcbiAgICAgIFwiT3JkZXJcIixcclxuICAgICAgXCJPcmRlck1vZGlmaWNhdGlvbkVycm9yXCJcclxuICAgIF0sXHJcbiAgICBcIlNlYXJjaFJlc3VsdFByaWNlXCI6IFtcclxuICAgICAgXCJQcmljZVJhbmdlXCIsXHJcbiAgICAgIFwiU2luZ2xlUHJpY2VcIlxyXG4gICAgXSxcclxuICAgIFwiU2V0Q3VzdG9tZXJGb3JEcmFmdE9yZGVyUmVzdWx0XCI6IFtcclxuICAgICAgXCJFbWFpbEFkZHJlc3NDb25mbGljdEVycm9yXCIsXHJcbiAgICAgIFwiT3JkZXJcIlxyXG4gICAgXSxcclxuICAgIFwiU2V0T3JkZXJTaGlwcGluZ01ldGhvZFJlc3VsdFwiOiBbXHJcbiAgICAgIFwiSW5lbGlnaWJsZVNoaXBwaW5nTWV0aG9kRXJyb3JcIixcclxuICAgICAgXCJOb0FjdGl2ZU9yZGVyRXJyb3JcIixcclxuICAgICAgXCJPcmRlclwiLFxyXG4gICAgICBcIk9yZGVyTW9kaWZpY2F0aW9uRXJyb3JcIlxyXG4gICAgXSxcclxuICAgIFwiU2V0dGxlUGF5bWVudFJlc3VsdFwiOiBbXHJcbiAgICAgIFwiT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvclwiLFxyXG4gICAgICBcIlBheW1lbnRcIixcclxuICAgICAgXCJQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3JcIixcclxuICAgICAgXCJTZXR0bGVQYXltZW50RXJyb3JcIlxyXG4gICAgXSxcclxuICAgIFwiU2V0dGxlUmVmdW5kUmVzdWx0XCI6IFtcclxuICAgICAgXCJSZWZ1bmRcIixcclxuICAgICAgXCJSZWZ1bmRTdGF0ZVRyYW5zaXRpb25FcnJvclwiXHJcbiAgICBdLFxyXG4gICAgXCJTdG9ja01vdmVtZW50XCI6IFtcclxuICAgICAgXCJBbGxvY2F0aW9uXCIsXHJcbiAgICAgIFwiQ2FuY2VsbGF0aW9uXCIsXHJcbiAgICAgIFwiUmVsZWFzZVwiLFxyXG4gICAgICBcIlJldHVyblwiLFxyXG4gICAgICBcIlNhbGVcIixcclxuICAgICAgXCJTdG9ja0FkanVzdG1lbnRcIlxyXG4gICAgXSxcclxuICAgIFwiU3RvY2tNb3ZlbWVudEl0ZW1cIjogW1xyXG4gICAgICBcIkFsbG9jYXRpb25cIixcclxuICAgICAgXCJDYW5jZWxsYXRpb25cIixcclxuICAgICAgXCJSZWxlYXNlXCIsXHJcbiAgICAgIFwiUmV0dXJuXCIsXHJcbiAgICAgIFwiU2FsZVwiLFxyXG4gICAgICBcIlN0b2NrQWRqdXN0bWVudFwiXHJcbiAgICBdLFxyXG4gICAgXCJUcmFuc2l0aW9uRnVsZmlsbG1lbnRUb1N0YXRlUmVzdWx0XCI6IFtcclxuICAgICAgXCJGdWxmaWxsbWVudFwiLFxyXG4gICAgICBcIkZ1bGZpbGxtZW50U3RhdGVUcmFuc2l0aW9uRXJyb3JcIlxyXG4gICAgXSxcclxuICAgIFwiVHJhbnNpdGlvbk9yZGVyVG9TdGF0ZVJlc3VsdFwiOiBbXHJcbiAgICAgIFwiT3JkZXJcIixcclxuICAgICAgXCJPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yXCJcclxuICAgIF0sXHJcbiAgICBcIlRyYW5zaXRpb25QYXltZW50VG9TdGF0ZVJlc3VsdFwiOiBbXHJcbiAgICAgIFwiUGF5bWVudFwiLFxyXG4gICAgICBcIlBheW1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvclwiXHJcbiAgICBdLFxyXG4gICAgXCJVcGRhdGVDaGFubmVsUmVzdWx0XCI6IFtcclxuICAgICAgXCJDaGFubmVsXCIsXHJcbiAgICAgIFwiTGFuZ3VhZ2VOb3RBdmFpbGFibGVFcnJvclwiXHJcbiAgICBdLFxyXG4gICAgXCJVcGRhdGVDdXN0b21lclJlc3VsdFwiOiBbXHJcbiAgICAgIFwiQ3VzdG9tZXJcIixcclxuICAgICAgXCJFbWFpbEFkZHJlc3NDb25mbGljdEVycm9yXCJcclxuICAgIF0sXHJcbiAgICBcIlVwZGF0ZUdsb2JhbFNldHRpbmdzUmVzdWx0XCI6IFtcclxuICAgICAgXCJDaGFubmVsRGVmYXVsdExhbmd1YWdlRXJyb3JcIixcclxuICAgICAgXCJHbG9iYWxTZXR0aW5nc1wiXHJcbiAgICBdLFxyXG4gICAgXCJVcGRhdGVPcmRlckl0ZW1zUmVzdWx0XCI6IFtcclxuICAgICAgXCJJbnN1ZmZpY2llbnRTdG9ja0Vycm9yXCIsXHJcbiAgICAgIFwiTmVnYXRpdmVRdWFudGl0eUVycm9yXCIsXHJcbiAgICAgIFwiT3JkZXJcIixcclxuICAgICAgXCJPcmRlckxpbWl0RXJyb3JcIixcclxuICAgICAgXCJPcmRlck1vZGlmaWNhdGlvbkVycm9yXCJcclxuICAgIF0sXHJcbiAgICBcIlVwZGF0ZVByb21vdGlvblJlc3VsdFwiOiBbXHJcbiAgICAgIFwiTWlzc2luZ0NvbmRpdGlvbnNFcnJvclwiLFxyXG4gICAgICBcIlByb21vdGlvblwiXHJcbiAgICBdXHJcbiAgfVxyXG59O1xyXG4gICAgICBleHBvcnQgZGVmYXVsdCByZXN1bHQ7XHJcbiAgICAiXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Auto-generated by the set-version.js script.
|
|
2
|
-
export const ADMIN_UI_VERSION = '2.1.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const ADMIN_UI_VERSION = '2.1.7';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjEuNyc7XG4iXX0=
|
|
@@ -38,6 +38,7 @@ export class AppShellComponent {
|
|
|
38
38
|
this.version = ADMIN_UI_VERSION;
|
|
39
39
|
this.availableLanguages = [];
|
|
40
40
|
this.hideVendureBranding = getAppConfig().hideVendureBranding;
|
|
41
|
+
this.hideVersion = getAppConfig().hideVersion;
|
|
41
42
|
this.devMode = isDevMode();
|
|
42
43
|
}
|
|
43
44
|
ngOnInit() {
|
|
@@ -89,10 +90,10 @@ export class AppShellComponent {
|
|
|
89
90
|
});
|
|
90
91
|
}
|
|
91
92
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AppShellComponent, deps: [{ token: i1.AuthService }, { token: i2.DataService }, { token: i3.Router }, { token: i4.I18nService }, { token: i5.ModalService }, { token: i6.LocalStorageService }, { token: i7.BreadcrumbService }, { token: i8.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: AppShellComponent, selector: "vdr-app-shell", ngImport: i0, template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2\">\r\n <div *ngIf=\"
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: AppShellComponent, selector: "vdr-app-shell", ngImport: i0, template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2 flex center mb-1\" [class.mt-2]=\"hideVersion && !devMode\">\r\n <div *ngIf=\"!hideVersion\" class=\"version\">\r\n v{{ version }}\r\n </div>\r\n <vdr-dropdown *ngIf=\"devMode\">\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n ></vdr-user-menu>\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}.version{color:var(--color-grey-300)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0 -10px 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i11.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i12.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i13.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i14.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i15.IfMultichannelDirective, selector: "[vdrIfMultichannel]", inputs: ["vdrIfMultichannelElse"] }, { kind: "component", type: i16.UserMenuComponent, selector: "vdr-user-menu", inputs: ["userName", "availableLanguages", "uiLanguageAndLocale"], outputs: ["logOut", "selectUiLanguage"] }, { kind: "component", type: i17.MainNavComponent, selector: "vdr-main-nav", inputs: ["displayMode"], outputs: ["itemClick"] }, { kind: "component", type: i18.BreadcrumbComponent, selector: "vdr-breadcrumb" }, { kind: "component", type: i19.ChannelSwitcherComponent, selector: "vdr-channel-switcher" }, { kind: "component", type: i20.AlertsComponent, selector: "vdr-alerts" }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }] }); }
|
|
93
94
|
}
|
|
94
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AppShellComponent, decorators: [{
|
|
95
96
|
type: Component,
|
|
96
|
-
args: [{ selector: 'vdr-app-shell', template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2\">\r\n <div *ngIf=\"
|
|
97
|
+
args: [{ selector: 'vdr-app-shell', template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2 flex center mb-1\" [class.mt-2]=\"hideVersion && !devMode\">\r\n <div *ngIf=\"!hideVersion\" class=\"version\">\r\n v{{ version }}\r\n </div>\r\n <vdr-dropdown *ngIf=\"devMode\">\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n ></vdr-user-menu>\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}.version{color:var(--color-grey-300)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0 -10px 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"] }]
|
|
97
98
|
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.DataService }, { type: i3.Router }, { type: i4.I18nService }, { type: i5.ModalService }, { type: i6.LocalStorageService }, { type: i7.BreadcrumbService }, { type: i8.LocalizationService }]; } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3hELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWXpILE1BQU0sT0FBTyxpQkFBaUI7SUFXMUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLGlCQUFvQyxFQUNwQyxtQkFBd0M7UUFQeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FB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QyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7WUFDcEMsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO2FBQ25DO2lCQUFNO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUNwQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F2RlEsaUJBQWlCO2tHQUFqQixpQkFBaUIscURDMUI5QixvcUhBaUZBOzsyRkR2RGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNJLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlzRGV2TW9kZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vYXBwLmNvbmZpZyc7XHJcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBBRE1JTl9VSV9WRVJTSU9OIH0gZnJvbSAnLi4vLi4vY29tbW9uL3ZlcnNpb24nO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2F1dGgvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvYnJlYWRjcnVtYi9icmVhZGNydW1iLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9pMThuL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbG9jYWwtc3RvcmFnZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFVpTGFuZ3VhZ2VTd2l0Y2hlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3VpLWxhbmd1YWdlLXN3aXRjaGVyLWRpYWxvZy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIExvY2FsaXphdGlvbkRpcmVjdGlvblR5cGUsXHJcbiAgICBMb2NhbGl6YXRpb25MYW5ndWFnZUNvZGVUeXBlLFxyXG4gICAgTG9jYWxpemF0aW9uU2VydmljZSxcclxufSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItYXBwLXNoZWxsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHAtc2hlbGwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXBwLXNoZWxsLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBTaGVsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICB2ZXJzaW9uID0gQURNSU5fVUlfVkVSU0lPTjtcclxuICAgIHVzZXJOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgdWlMYW5ndWFnZUFuZExvY2FsZSQ6IExvY2FsaXphdGlvbkxhbmd1YWdlQ29kZVR5cGU7XHJcbiAgICBkaXJlY3Rpb24kOiBMb2NhbGl6YXRpb25EaXJlY3Rpb25UeXBlO1xyXG4gICAgYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5ndWFnZUNvZGVbXSA9IFtdO1xyXG4gICAgaGlkZVZlbmR1cmVCcmFuZGluZyA9IGdldEFwcENvbmZpZygpLmhpZGVWZW5kdXJlQnJhbmRpbmc7XHJcbiAgICBwYWdlVGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgICBtYWluTmF2RXhwYW5kZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgZGV2TW9kZSA9IGlzRGV2TW9kZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uJCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5kaXJlY3Rpb24kO1xyXG5cclxuICAgICAgICB0aGlzLnVpTGFuZ3VhZ2VBbmRMb2NhbGUkID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLnVpTGFuZ3VhZ2VBbmRMb2NhbGUkO1xyXG5cclxuICAgICAgICB0aGlzLnVzZXJOYW1lJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51c2VyU3RhdHVzKClcclxuICAgICAgICAgICAgLnNpbmdsZSQucGlwZShtYXAoZGF0YSA9PiBkYXRhLnVzZXJTdGF0dXMudXNlcm5hbWUpKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMgPSB0aGlzLmkxOG5TZXJ2aWNlLmF2YWlsYWJsZUxhbmd1YWdlcztcclxuXHJcbiAgICAgICAgdGhpcy5wYWdlVGl0bGUkID0gdGhpcy5icmVhZGNydW1iU2VydmljZS5icmVhZGNydW1icyQucGlwZShcclxuICAgICAgICAgICAgbWFwKGJyZWFkY3J1bWJzID0+IGJyZWFkY3J1bWJzW2JyZWFkY3J1bWJzLmxlbmd0aCAtIDFdLmxhYmVsKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLm1haW5OYXZFeHBhbmRlZCQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAudWlTdGF0ZSgpXHJcbiAgICAgICAgICAgIC5zdHJlYW0kLnBpcGUobWFwKCh7IHVpU3RhdGUgfSkgPT4gdWlTdGF0ZS5tYWluTmF2RXhwYW5kZWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RVaUxhbmd1YWdlKCkge1xyXG4gICAgICAgIHRoaXMudWlMYW5ndWFnZUFuZExvY2FsZSRcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChbY3VycmVudExhbmd1YWdlLCBjdXJyZW50TG9jYWxlXSkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5mcm9tQ29tcG9uZW50KFVpTGFuZ3VhZ2VTd2l0Y2hlckRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ2xnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGVMYW5ndWFnZXM6IHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExhbmd1YWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExvY2FsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID8gdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0VWlMYW5ndWFnZShyZXN1bHRbMF0sIHJlc3VsdFsxXSkgOiBFTVBUWSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zZXRVaUxhbmd1YWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pMThuU2VydmljZS5zZXRMYW5ndWFnZShyZXN1bHQuc2V0VWlMYW5ndWFnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgndWlMYW5ndWFnZUNvZGUnLCByZXN1bHQuc2V0VWlMYW5ndWFnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgndWlMb2NhbGUnLCByZXN1bHQuc2V0VWlMb2NhbGUgPz8gdW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwYW5kTmF2KCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnNldE1haW5OYXZFeHBhbmRlZCh0cnVlKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb2xsYXBzZU5hdigpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC5zZXRNYWluTmF2RXhwYW5kZWQoZmFsc2UpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvZ091dCgpIHtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ091dCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbG9naW5VcmwgfSA9IGdldEFwcENvbmZpZygpO1xyXG4gICAgICAgICAgICBpZiAobG9naW5VcmwpIHtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9naW5Vcmw7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHAtY29udGFpbmVyXCIgW2Rpcl09XCJkaXJlY3Rpb24kIHwgYXN5bmNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0LW5hdlwiIFtjbGFzcy5leHBhbmRlZF09XCJtYWluTmF2RXhwYW5kZWQkIHwgYXN5bmNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnJhbmRpbmdcIj5cclxuICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvJ11cIiAqbmdJZj1cIiFoaWRlVmVuZHVyZUJyYW5kaW5nXCJcclxuICAgICAgICAgICAgICAgID48aW1nIHNyYz1cImFzc2V0cy9sb2dvLXRvcC53ZWJwXCIgY2xhc3M9XCJsb2dvXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMHB4XCJcclxuICAgICAgICAgICAgLz48L2E+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZS1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiXCIgKGNsaWNrKT1cImNvbGxhcHNlTmF2KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ3aW5kb3ctY2xvc2VcIiBzaXplPVwiMjRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC00XCI+XHJcbiAgICAgICAgICAgIDx2ZHItY2hhbm5lbC1zd2l0Y2hlciAqdmRySWZNdWx0aWNoYW5uZWw+PC92ZHItY2hhbm5lbC1zd2l0Y2hlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1uYXYtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDx2ZHItbWFpbi1uYXYgKGl0ZW1DbGljayk9XCJjb2xsYXBzZU5hdigpXCI+PC92ZHItbWFpbi1uYXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLW5hdi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGhyIC8+XHJcbiAgICAgICAgICAgIDx2ZHItbWFpbi1uYXYgZGlzcGxheU1vZGU9XCJzZXR0aW5nc1wiIChpdGVtQ2xpY2spPVwiY29sbGFwc2VOYXYoKVwiPjwvdmRyLW1haW4tbmF2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkZXZNb2RlXCIgY2xhc3M9XCJmbGV4IGNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ1dHRvbiBkZXYtbW9kZS1idXR0b25cIiB2ZHJEcm9wZG93blRyaWdnZXIgdGl0bGU9XCJERVYgTU9ERVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJjb2RlXCIgc2l6ZT1cIjI0XCI+PC9jbHItaWNvbj4gREVWIE1PREVcclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIHB5LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+VmVyc2lvbjoge3sgdmVyc2lvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5WaWV3IFVJIGV4dGVuc2lvbiBwb2ludHM6IDxrYmQ+Q1RSTCArIFU8L2tiZD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdXJmYWNlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5kLW1lbnUgbXItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwiZXhwYW5kTmF2KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zLjc1IDYuNzVoMTYuNU0zLjc1IDEyaDE2LjVtLTE2LjUgNS4yNWgxNi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItYnJlYWRjcnVtYj48L3Zkci1icmVhZGNydW1iPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidW5pdmVyc2FsLXNlYXJjaCBmbGV4LXNwYWNlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWFsZXJ0cz48L3Zkci1hbGVydHM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci11c2VyLW1lbnVcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJOYW1lXT1cInVzZXJOYW1lJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3VpTGFuZ3VhZ2VBbmRMb2NhbGVdPVwidWlMYW5ndWFnZUFuZExvY2FsZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdmFpbGFibGVMYW5ndWFnZXNdPVwiYXZhaWxhYmxlTGFuZ3VhZ2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdFVpTGFuZ3VhZ2UpPVwic2VsZWN0VWlMYW5ndWFnZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ091dCk9XCJsb2dPdXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvdmRyLXVzZXItbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYXJlYVwiPjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3hELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWXpILE1BQU0sT0FBTyxpQkFBaUI7SUFZMUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLGlCQUFvQyxFQUNwQyxtQkFBd0M7UUFQeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FB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QUVELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7WUFDcEMsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO2FBQ25DO2lCQUFNO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUNwQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F4RlEsaUJBQWlCO2tHQUFqQixpQkFBaUIscURDMUI5QixrdUhBa0ZBOzsyRkR4RGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNJLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlzRGV2TW9kZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vYXBwLmNvbmZpZyc7XHJcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBBRE1JTl9VSV9WRVJTSU9OIH0gZnJvbSAnLi4vLi4vY29tbW9uL3ZlcnNpb24nO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2F1dGgvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvYnJlYWRjcnVtYi9icmVhZGNydW1iLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9pMThuL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbG9jYWwtc3RvcmFnZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFVpTGFuZ3VhZ2VTd2l0Y2hlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3VpLWxhbmd1YWdlLXN3aXRjaGVyLWRpYWxvZy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIExvY2FsaXphdGlvbkRpcmVjdGlvblR5cGUsXHJcbiAgICBMb2NhbGl6YXRpb25MYW5ndWFnZUNvZGVUeXBlLFxyXG4gICAgTG9jYWxpemF0aW9uU2VydmljZSxcclxufSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItYXBwLXNoZWxsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHAtc2hlbGwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXBwLXNoZWxsLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBTaGVsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICB2ZXJzaW9uID0gQURNSU5fVUlfVkVSU0lPTjtcclxuICAgIHVzZXJOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgdWlMYW5ndWFnZUFuZExvY2FsZSQ6IExvY2FsaXphdGlvbkxhbmd1YWdlQ29kZVR5cGU7XHJcbiAgICBkaXJlY3Rpb24kOiBMb2NhbGl6YXRpb25EaXJlY3Rpb25UeXBlO1xyXG4gICAgYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5ndWFnZUNvZGVbXSA9IFtdO1xyXG4gICAgaGlkZVZlbmR1cmVCcmFuZGluZyA9IGdldEFwcENvbmZpZygpLmhpZGVWZW5kdXJlQnJhbmRpbmc7XHJcbiAgICBoaWRlVmVyc2lvbiA9IGdldEFwcENvbmZpZygpLmhpZGVWZXJzaW9uO1xyXG4gICAgcGFnZVRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgbWFpbk5hdkV4cGFuZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGRldk1vZGUgPSBpc0Rldk1vZGUoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgYnJlYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmRpcmVjdGlvbiQgPSB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuZGlyZWN0aW9uJDtcclxuXHJcbiAgICAgICAgdGhpcy51aUxhbmd1YWdlQW5kTG9jYWxlJCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS51aUxhbmd1YWdlQW5kTG9jYWxlJDtcclxuXHJcbiAgICAgICAgdGhpcy51c2VyTmFtZSQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAudXNlclN0YXR1cygpXHJcbiAgICAgICAgICAgIC5zaW5nbGUkLnBpcGUobWFwKGRhdGEgPT4gZGF0YS51c2VyU3RhdHVzLnVzZXJuYW1lKSk7XHJcblxyXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzID0gdGhpcy5pMThuU2VydmljZS5hdmFpbGFibGVMYW5ndWFnZXM7XHJcblxyXG4gICAgICAgIHRoaXMucGFnZVRpdGxlJCA9IHRoaXMuYnJlYWRjcnVtYlNlcnZpY2UuYnJlYWRjcnVtYnMkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChicmVhZGNydW1icyA9PiBicmVhZGNydW1ic1ticmVhZGNydW1icy5sZW5ndGggLSAxXS5sYWJlbCksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYWluTmF2RXhwYW5kZWQkID0gdGhpcy5kYXRhU2VydmljZS5jbGllbnRcclxuICAgICAgICAgICAgLnVpU3RhdGUoKVxyXG4gICAgICAgICAgICAuc3RyZWFtJC5waXBlKG1hcCgoeyB1aVN0YXRlIH0pID0+IHVpU3RhdGUubWFpbk5hdkV4cGFuZGVkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0VWlMYW5ndWFnZSgpIHtcclxuICAgICAgICB0aGlzLnVpTGFuZ3VhZ2VBbmRMb2NhbGUkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoW2N1cnJlbnRMYW5ndWFnZSwgY3VycmVudExvY2FsZV0pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZnJvbUNvbXBvbmVudChVaUxhbmd1YWdlU3dpdGNoZXJEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6ICdsZycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlTGFuZ3VhZ2VzOiB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMb2NhbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA/IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnNldFVpTGFuZ3VhZ2UocmVzdWx0WzBdLCByZXN1bHRbMV0pIDogRU1QVFksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc2V0VWlMYW5ndWFnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaTE4blNlcnZpY2Uuc2V0TGFuZ3VhZ2UocmVzdWx0LnNldFVpTGFuZ3VhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ3VpTGFuZ3VhZ2VDb2RlJywgcmVzdWx0LnNldFVpTGFuZ3VhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ3VpTG9jYWxlJywgcmVzdWx0LnNldFVpTG9jYWxlID8/IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cGFuZE5hdigpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC5zZXRNYWluTmF2RXhwYW5kZWQodHJ1ZSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29sbGFwc2VOYXYoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0TWFpbk5hdkV4cGFuZGVkKGZhbHNlKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2dPdXQoKSB7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dPdXQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IGxvZ2luVXJsIH0gPSBnZXRBcHBDb25maWcoKTtcclxuICAgICAgICAgICAgaWYgKGxvZ2luVXJsKSB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxvZ2luVXJsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXBwLWNvbnRhaW5lclwiIFtkaXJdPVwiZGlyZWN0aW9uJCB8IGFzeW5jXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdC1uYXZcIiBbY2xhc3MuZXhwYW5kZWRdPVwibWFpbk5hdkV4cGFuZGVkJCB8IGFzeW5jXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJyYW5kaW5nXCI+XHJcbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLyddXCIgKm5nSWY9XCIhaGlkZVZlbmR1cmVCcmFuZGluZ1wiXHJcbiAgICAgICAgICAgICAgICA+PGltZyBzcmM9XCJhc3NldHMvbG9nby10b3Aud2VicFwiIGNsYXNzPVwibG9nb1wiIHN0eWxlPVwibWF4LXdpZHRoOiAxMDBweFwiXHJcbiAgICAgICAgICAgIC8+PC9hPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UtbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIlwiIChjbGljayk9XCJjb2xsYXBzZU5hdigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwid2luZG93LWNsb3NlXCIgc2l6ZT1cIjI0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXgtNFwiPlxyXG4gICAgICAgICAgICA8dmRyLWNoYW5uZWwtc3dpdGNoZXIgKnZkcklmTXVsdGljaGFubmVsPjwvdmRyLWNoYW5uZWwtc3dpdGNoZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tbmF2LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8dmRyLW1haW4tbmF2IChpdGVtQ2xpY2spPVwiY29sbGFwc2VOYXYoKVwiPjwvdmRyLW1haW4tbmF2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1uYXYtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxociAvPlxyXG4gICAgICAgICAgICA8dmRyLW1haW4tbmF2IGRpc3BsYXlNb2RlPVwic2V0dGluZ3NcIiAoaXRlbUNsaWNrKT1cImNvbGxhcHNlTmF2KClcIj48L3Zkci1tYWluLW5hdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiBmbGV4IGNlbnRlciBtYi0xXCIgW2NsYXNzLm10LTJdPVwiaGlkZVZlcnNpb24gJiYgIWRldk1vZGVcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFoaWRlVmVyc2lvblwiIGNsYXNzPVwidmVyc2lvblwiPlxyXG4gICAgICAgICAgICAgICAgdnt7IHZlcnNpb24gfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx2ZHItZHJvcGRvd24gKm5nSWY9XCJkZXZNb2RlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbi1idXR0b24gZGV2LW1vZGUtYnV0dG9uXCIgdmRyRHJvcGRvd25UcmlnZ2VyIHRpdGxlPVwiREVWIE1PREVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJjb2RlXCIgc2l6ZT1cIjI0XCI+PC9jbHItaWNvbj4gREVWIE1PREVcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIHB5LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5WZXJzaW9uOiB7eyB2ZXJzaW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+VmlldyBVSSBleHRlbnNpb24gcG9pbnRzOiA8a2JkPkNUUkwgKyBVPC9rYmQ+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICA8L3Zkci1kcm9wZG93bj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdXJmYWNlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5kLW1lbnUgbXItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwiZXhwYW5kTmF2KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zLjc1IDYuNzVoMTYuNU0zLjc1IDEyaDE2LjVtLTE2LjUgNS4yNWgxNi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItYnJlYWRjcnVtYj48L3Zkci1icmVhZGNydW1iPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidW5pdmVyc2FsLXNlYXJjaCBmbGV4LXNwYWNlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWFsZXJ0cz48L3Zkci1hbGVydHM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci11c2VyLW1lbnVcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJOYW1lXT1cInVzZXJOYW1lJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3VpTGFuZ3VhZ2VBbmRMb2NhbGVdPVwidWlMYW5ndWFnZUFuZExvY2FsZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdmFpbGFibGVMYW5ndWFnZXNdPVwiYXZhaWxhYmxlTGFuZ3VhZ2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdFVpTGFuZ3VhZ2UpPVwic2VsZWN0VWlMYW5ndWFnZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ091dCk9XCJsb2dPdXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvdmRyLXVzZXItbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYXJlYVwiPjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|