@dignite-ng/expand.cms 2.0.0-rc.2 → 2.0.0-rc.4
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/config/enums/route-names.d.ts +1 -2
- package/esm2022/config/cms-config.module.mjs +3 -2
- package/esm2022/config/enums/route-names.mjs +1 -2
- package/esm2022/config/providers/route.provider.mjs +1 -15
- package/esm2022/lib/cms.module.mjs +1 -3
- package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +7 -7
- package/esm2022/lib/components/admin/entries/create.component.mjs +3 -2
- package/esm2022/lib/components/admin/entries/edit.component.mjs +4 -2
- package/esm2022/lib/components/admin/entries/entries.component.mjs +9 -13
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +2 -2
- package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +2 -8
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +2 -2
- package/esm2022/lib/components/admin/fields/field-group.component.mjs +2 -2
- package/esm2022/lib/components/admin/fields/fields.component.mjs +2 -3
- package/esm2022/lib/components/admin/sections/create-or-edit-sections-modal.component.mjs +3 -3
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +3 -3
- package/esm2022/lib/components/admin/sections/sections.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +3 -2
- package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +5 -3
- package/esm2022/lib/proxy/dignite/abp/regionalization-management/index.mjs +3 -0
- package/esm2022/lib/proxy/dignite/abp/regionalization-management/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/abp/regionalization-management/regionalization.service.mjs +27 -0
- package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/form-admin.service.mjs +22 -0
- package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/index.mjs +3 -0
- package/esm2022/lib/proxy/dignite/cms/admin/dynamic-forms/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/admin/entries/entry-admin.service.mjs +70 -0
- package/esm2022/lib/proxy/dignite/cms/admin/entries/index.mjs +3 -0
- package/esm2022/lib/proxy/dignite/cms/admin/entries/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/admin/fields/field-admin.service.mjs +45 -0
- package/esm2022/lib/proxy/dignite/cms/admin/fields/field-group-admin.service.mjs +41 -0
- package/esm2022/lib/proxy/dignite/cms/admin/fields/index.mjs +4 -0
- package/esm2022/lib/proxy/dignite/cms/admin/fields/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/admin/sections/entry-type-admin.service.mjs +41 -0
- package/esm2022/lib/proxy/dignite/cms/admin/sections/index.mjs +4 -0
- package/esm2022/lib/proxy/dignite/cms/admin/sections/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/admin/sections/section-admin.service.mjs +51 -0
- package/esm2022/lib/proxy/dignite/cms/entries/entry-status.enum.mjs +8 -0
- package/esm2022/lib/proxy/dignite/cms/entries/index.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/fields/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/sections/index.mjs +3 -0
- package/esm2022/lib/proxy/dignite/cms/sections/models.mjs +2 -0
- package/esm2022/lib/proxy/dignite/cms/sections/section-type.enum.mjs +9 -0
- package/esm2022/lib/resolvers/table-default-entity-actions.mjs +3 -24
- package/esm2022/lib/services/field-abstracts.service.mjs +3 -3
- package/fesm2022/dignite-ng-expand.cms-config.mjs +4 -282
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +94 -128
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/components/admin/entries/entries.component.d.ts +4 -6
- package/lib/components/admin/fields/create-field.component.d.ts +1 -1
- package/lib/components/admin/fields/create-or-edit-field.component.d.ts +1 -1
- package/lib/components/admin/fields/edit-field.component.d.ts +1 -1
- package/lib/components/admin/fields/field-group.component.d.ts +1 -1
- package/lib/components/admin/fields/fields.component.d.ts +1 -1
- package/lib/components/admin/sections/create-or-edit-sections-modal.component.d.ts +1 -1
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +2 -2
- package/lib/components/admin/sections/sections.component.d.ts +2 -2
- package/lib/components/dynamic-form/entry/entry-config.component.d.ts +1 -1
- package/lib/proxy/dignite/abp/regionalization-management/index.d.ts +2 -0
- package/lib/proxy/dignite/abp/regionalization-management/models.d.ts +8 -0
- package/lib/proxy/dignite/abp/regionalization-management/regionalization.service.d.ts +12 -0
- package/lib/proxy/{admin → dignite/cms/admin}/entries/models.d.ts +2 -2
- package/lib/proxy/{admin → dignite/cms/admin}/fields/models.d.ts +2 -2
- package/lib/proxy/{fields → dignite/cms/fields}/models.d.ts +1 -1
- package/lib/proxy/{sections → dignite/cms/sections}/models.d.ts +2 -2
- package/lib/services/field-abstracts.service.d.ts +2 -3
- package/package.json +1 -1
- package/config/components/domains/domains.component.d.ts +0 -31
- package/config/components/site-language/site-language.component.d.ts +0 -30
- package/config/proxy/admin/domains/domain-admin.service.d.ts +0 -13
- package/config/proxy/admin/domains/index.d.ts +0 -2
- package/config/proxy/admin/domains/models.d.ts +0 -7
- package/config/proxy/dignite/cms/admin/sites/index.d.ts +0 -2
- package/config/proxy/dignite/cms/admin/sites/models.d.ts +0 -4
- package/config/proxy/dignite/cms/admin/sites/site-admin.service.d.ts +0 -13
- package/config/proxy/dignite/cms/sites/models.d.ts +0 -4
- package/esm2022/config/components/domains/domains.component.mjs +0 -118
- package/esm2022/config/components/site-language/site-language.component.mjs +0 -112
- package/esm2022/config/proxy/admin/domains/domain-admin.service.mjs +0 -32
- package/esm2022/config/proxy/admin/domains/index.mjs +0 -3
- package/esm2022/config/proxy/admin/domains/models.mjs +0 -2
- package/esm2022/config/proxy/dignite/cms/admin/sites/index.mjs +0 -3
- package/esm2022/config/proxy/dignite/cms/admin/sites/models.mjs +0 -2
- package/esm2022/config/proxy/dignite/cms/admin/sites/site-admin.service.mjs +0 -27
- package/esm2022/config/proxy/dignite/cms/sites/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +0 -22
- package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +0 -70
- package/esm2022/lib/proxy/admin/entries/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/entries/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +0 -45
- package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +0 -41
- package/esm2022/lib/proxy/admin/fields/index.mjs +0 -4
- package/esm2022/lib/proxy/admin/fields/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +0 -41
- package/esm2022/lib/proxy/admin/sections/index.mjs +0 -4
- package/esm2022/lib/proxy/admin/sections/models.mjs +0 -2
- package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +0 -51
- package/esm2022/lib/proxy/admin/settings/index.mjs +0 -2
- package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +0 -31
- package/esm2022/lib/proxy/entries/entry-status.enum.mjs +0 -8
- package/esm2022/lib/proxy/entries/index.mjs +0 -2
- package/esm2022/lib/proxy/fields/models.mjs +0 -2
- package/esm2022/lib/proxy/sections/index.mjs +0 -3
- package/esm2022/lib/proxy/sections/models.mjs +0 -2
- package/esm2022/lib/proxy/sections/section-type.enum.mjs +0 -9
- package/esm2022/lib/proxy/settings/models.mjs +0 -2
- package/lib/proxy/admin/settings/index.d.ts +0 -1
- package/lib/proxy/admin/settings/site-settings-admin.service.d.ts +0 -13
- package/lib/proxy/settings/models.d.ts +0 -5
- /package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/form-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/index.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/dynamic-forms/models.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/entries/entry-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/entries/index.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/fields/field-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/fields/field-group-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/fields/index.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/sections/entry-type-admin.service.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/sections/index.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/sections/models.d.ts +0 -0
- /package/lib/proxy/{admin → dignite/cms/admin}/sections/section-admin.service.d.ts +0 -0
- /package/lib/proxy/{entries → dignite/cms/entries}/entry-status.enum.d.ts +0 -0
- /package/lib/proxy/{entries → dignite/cms/entries}/index.d.ts +0 -0
- /package/lib/proxy/{sections → dignite/cms/sections}/index.d.ts +0 -0
- /package/lib/proxy/{sections → dignite/cms/sections}/section-type.enum.d.ts +0 -0
|
@@ -4,7 +4,7 @@ import { finalize } from 'rxjs/operators';
|
|
|
4
4
|
import { ValidatorsService } from '@dignite-ng/expand.core';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/forms";
|
|
7
|
-
import * as i2 from "../../../proxy/admin/fields";
|
|
7
|
+
import * as i2 from "../../../proxy/dignite/cms/admin/fields";
|
|
8
8
|
import * as i3 from "@abp/ng.theme.shared";
|
|
9
9
|
import * as i4 from "../../../services/field-abstracts.service";
|
|
10
10
|
import * as i5 from "@abp/ng.core";
|
|
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
128
128
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.FieldGroupAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.FieldAbstractsService }, { type: i5.LocalizationService }], propDecorators: { OnGroupClickBack: [{
|
|
129
129
|
type: Output
|
|
130
130
|
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvZmllbGQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BFLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7O0FBTzVELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDVSxFQUFlLEVBQ2YsdUJBQStDLEVBQy9DLE9BQXVCLEVBQ3ZCLFlBQWlDLEVBQ2xDLHNCQUE2QyxFQUM3QyxvQkFBeUM7UUFMeEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2xDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQVVsRCxhQUFhO1FBQ2IsYUFBUSxHQUFHLEVBQVMsQ0FBQztRQUVyQixlQUFlO1FBQ2YsaUJBQVksR0FBdUIsRUFBRSxDQUFBO1FBRXJDLGVBQWU7UUFDZixvQkFBZSxHQUFHLEtBQUssQ0FBQTtRQUV2QixxQkFBcUI7UUFD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QyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO29CQUN0RixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQTtvQkFDdEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLENBQUE7Z0JBQ2pELENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7SUFDWixnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkMsQ0FBQzs4R0FwSVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsMEdDZGhDLHMvSEFvRVk7OzJGRHREQyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzBQQXFDakIsZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZmllbGRzJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBmaW5hbGl6ZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmllbGRBYnN0cmFjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGQtYWJzdHJhY3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWZpZWxkLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBfRmllbGRHcm91cEFkbWluU2VydmljZTogRmllbGRHcm91cEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICApIHsgfVxuXG5cbiAgLyoq5Yib5bu65YiG57uE6KGo5Y2VICovXG4gIGNyZWF0ZUZvcm06IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcblxuICAvKiog57yW6L6R5YiG57uE6KGo5Y2VKi9cbiAgZWRpdEdyb3VwRm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuihqOWNleW3suWtmOWcqOeahOWAvCAqL1xuICBzZWxlY3RlZCA9IHt9IGFzIGFueTtcblxuICAvKirpgInmi6nnmoTlrZfmrrXliIbnu4RpZCAqL1xuICBmaWVsZEdyb3VwSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnXG5cbiAgLyoq5Yib5bu65YiG57uE5qih5oCB5qGG54q25oCBICovXG4gIGNyZWF0ZUdyb3VwT3BlbiA9IGZhbHNlXG5cbiAgLyoq55So5LqO56Gu5a6a5qih5oCB55qE57mB5b+Z54q25oCB5piv5ZCm5Li655yfICovXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLyoq57yW6L6R5YiG57uE5qih5oCB5qGG54q25oCBICovXG4gIGVkaXRHcm91cE9wZW46IGJvb2xlYW4gPSBmYWxzZVxuXG4gIC8qKueCueWHu+WIhue7hOWbnuiwgyAqL1xuICBAT3V0cHV0KCkgT25Hcm91cENsaWNrQmFjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0ZmllbGRHcm91cExpc3QoKVxuICB9XG5cbiAgLyoq5Yib5bu65a2X5q615YiG57uEICovXG4gIGNyZWF0ZUdyb3VwQnRuKCkge1xuICAgIHRoaXMuY3JlYXRlR3JvdXBPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uPScnO1xuICAgIHRoaXMuY3JlYXRlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pXG4gIH1cblxuICAvKirliJvlu7rliIbnu4TmqKHmgIHmoYbnirbmgIHmlLnlj5ggKi9cbiAgY3JlYXRlR3JvdXBWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoq57yW6L6R5a2X5q615YiG57uEICovXG4gIGVkaXRHcm91cEJ0bihpdGVtTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5lZGl0R3JvdXBPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uPScnO1xuICAgIHRoaXMuZWRpdEdyb3VwRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogW2l0ZW1OYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pXG4gIH1cblxuICAvKirnvJbovpHliIbnu4TmqKHmgIHmoYbnirbmgIHmlLnlj5ggKi9cbiAgZWRpdEdyb3VwVmlzaWJsZUNoYW5nZShldmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9WYWxpZGF0b3JzU2VydmljZSA9IGluamVjdChWYWxpZGF0b3JzU2VydmljZSk7XG4gIC8qKuihqOWNlemqjOivgeeKtuaAgVxuICAgKiB7XG4gICAqICB0aXRsZTp0cnVlLFxuICAgKiB9XG4gICAqL1xuICBmb3JtVmFsaWRhdGlvbjogYW55ID0gJyc7XG5cblxuICAvKirliJvlu7rlrZfmrrXliIbnu4Tkv53lrZggKi9cbiAgY3JlYXRlU2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLmNyZWF0ZUZvcm0udmFsdWU7XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLmNyZWF0ZUZvcm0pO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCdDbXMnKSkgcmV0dXJuO1xuICAgIHRoaXMuX0ZpZWxkR3JvdXBBZG1pblNlcnZpY2UuY3JlYXRlKGlucHV0KS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICB0aGlzLmNyZWF0ZUdyb3VwT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtVmFsaWRhdGlvbj0nJztcbiAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRmaWVsZEdyb3VwTGlzdCgpXG4gICAgfSlcbiAgfVxuXG4gIC8qKue8lui+keWtl+auteWIhue7hOS/neWtmCAqL1xuICBlZGl0U2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLmVkaXRHcm91cEZvcm0udmFsdWU7XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLmNyZWF0ZUZvcm0pO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCdDbXMnKSkgcmV0dXJuO1xuICAgIHRoaXMuX0ZpZWxkR3JvdXBBZG1pblNlcnZpY2UudXBkYXRlKHRoaXMuZmllbGRHcm91cElkLCBpbnB1dCkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgdGhpcy5lZGl0R3JvdXBPcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm1WYWxpZGF0aW9uPScnO1xuICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmdldGZpZWxkR3JvdXBMaXN0KClcbiAgICB9KVxuICB9XG5cbiAgLyoq5Yig6Zmk5a2X5q615YiG57uEMSAqL1xuICBkZWxldGVHcm91cGJ0bihmaWVsZEdyb3VwaXRlbTogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcbiAgICAgIGZpZWxkR3JvdXBpdGVtLm5hbWUsXG4gICAgICB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSxcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICB0aGlzLl9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLmRlbGV0ZSh0aGlzLmZpZWxkR3JvdXBJZCkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpEZWxldGVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICAgIHRoaXMuZmllbGRHcm91cElkID0gJydcbiAgICAgICAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0ZmllbGRHcm91cExpc3QoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoq5a2X5q615YiG57uE5pS55Y+YICovXG4gIGZpZWxkR3JvdXBDaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLmZpZWxkR3JvdXBJZCA9IGV2ZW50XG4gICAgdGhpcy5Pbkdyb3VwQ2xpY2tCYWNrLmVtaXQoZXZlbnQpXG4gIH1cblxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBweC0yIHB5LXNtLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxoNiBjbGFzcz1cImg2IG1iLTBcIj57eydDbXM6OkZpZWxkR3JvdXAnIHwgYWJwTG9jYWxpemF0aW9ufX08L2g2PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGJ0bi1zbSBtcy0yXCI+PGkgY2xhc3M9XCJmYXMgZmEtcGx1cy1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZUdyb3VwQnRuKClcIj48L2k+PC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1oZWlnaHQgb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2hcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIGFjdGl2ZVwiIFtjbGFzcy5hY3RpdmVdPVwiZmllbGRHcm91cElkPT09JydcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJmaWVsZEdyb3VwQ2hhbmdlKCcnKVwiPnt7J0Ntczo6QWxsRmllbGRzJyB8IGFicExvY2FsaXphdGlvbn19PC9saT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5maWVsZEdyb3VwTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImZpZWxkR3JvdXBJZD09PWl0ZW0uaWRcIiAoY2xpY2spPVwiZmllbGRHcm91cENoYW5nZShpdGVtLmlkKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7aXRlbS5uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpZWxkR3JvdXBJZD09PWl0ZW0uaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoIHB4LTFcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrLnN0b3ApPVwiZGVsZXRlR3JvdXBidG4oaXRlbSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1lZGl0IHB4LTFcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrLnN0b3ApPVwiZWRpdEdyb3VwQnRuKGl0ZW0ubmFtZSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48YWJwLW1vZGFsIFsodmlzaWJsZSldPVwiY3JlYXRlR3JvdXBPcGVuXCIgW2J1c3ldPVwibW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiY3JlYXRlR3JvdXBWaXNpYmxlQ2hhbmdlKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cbiAgICAgICAgPGgzPnt7J0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbn19PC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJSZWY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxmb3JtICpuZ0lmPVwiY3JlYXRlRm9ybTsgZWxzZSBsb2FkZXJSZWZcIiBbZm9ybUdyb3VwXT1cImNyZWF0ZUZvcm1cIiAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIFtjbGFzc109XCJ7J3dhcy12YWxpZGF0ZWQnOmZvcm1WYWxpZGF0aW9ufVwiIChzdWJtaXQpPVwiY3JlYXRlU2F2ZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlRm9ybUNvbnRyb2xJbnB1dDFcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJleGFtcGxlRm9ybUNvbnRyb2xJbnB1dDFcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgW2Rpc2FibGVkXT1cImNyZWF0ZUZvcm0/LmludmFsaWRcIiAoY2xpY2spPVwiY3JlYXRlU2F2ZSgpXCI+e3snQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPlxuXG48YWJwLW1vZGFsIFsodmlzaWJsZSldPVwiZWRpdEdyb3VwT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cImVkaXRHcm91cFZpc2libGVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2gzPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRlclJlZj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtcHVsc2UgZmEtc3Bpbm5lclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGZvcm0gKm5nSWY9XCJlZGl0R3JvdXBGb3JtOyBlbHNlIGxvYWRlclJlZlwiIFtmb3JtR3JvdXBdPVwiZWRpdEdyb3VwRm9ybVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgW2NsYXNzXT1cInsnd2FzLXZhbGlkYXRlZCc6Zm9ybVZhbGlkYXRpb259XCIgKHN1Ym1pdCk9XCJlZGl0U2F2ZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlRm9ybUNvbnRyb2xJbnB1dDFcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJleGFtcGxlRm9ybUNvbnRyb2xJbnB1dDFcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgW2Rpc2FibGVkXT1cImVkaXRHcm91cEZvcm0/LmludmFsaWRcIiAoY2xpY2spPVwiZWRpdFNhdmUoKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvZmllbGQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7O0FBUTVELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDVSxFQUFlLEVBQ2YsdUJBQStDLEVBQy9DLE9BQXVCLEVBQ3ZCLFlBQWlDLEVBQ2xDLHNCQUE2QyxFQUM3QyxvQkFBeUM7UUFMeEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2xDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQVVsRCxhQUFhO1FBQ2IsYUFBUSxHQUFHLEVBQVMsQ0FBQztRQUVyQixlQUFlO1FBQ2YsaUJBQVksR0FBdUIsRUFBRSxDQUFBO1FBRXJDLGVBQWU7UUFDZixvQkFBZSxHQUFHLEtBQUssQ0FBQTtRQUV2QixxQkFBcUI7UUFD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QyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO29CQUN0RixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQTtvQkFDdEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLENBQUE7Z0JBQ2pELENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7SUFDWixnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkMsQ0FBQzs4R0FwSVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsMEdDZGhDLHMvSEFvRVk7OzJGRHREQyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzBQQXFDakIsZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgZmluYWxpemV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkLWFic3RyYWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yc1NlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XG5pbXBvcnQgeyBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvYWRtaW4vZmllbGRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWZpZWxkLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBfRmllbGRHcm91cEFkbWluU2VydmljZTogRmllbGRHcm91cEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICApIHsgfVxuXG5cbiAgLyoq5Yib5bu65YiG57uE6KGo5Y2VICovXG4gIGNyZWF0ZUZvcm06IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcblxuICAvKiog57yW6L6R5YiG57uE6KGo5Y2VKi9cbiAgZWRpdEdyb3VwRm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuihqOWNleW3suWtmOWcqOeahOWAvCAqL1xuICBzZWxlY3RlZCA9IHt9IGFzIGFueTtcblxuICAvKirpgInmi6nnmoTlrZfmrrXliIbnu4RpZCAqL1xuICBmaWVsZEdyb3VwSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnXG5cbiAgLyoq5Yib5bu65YiG57uE5qih5oCB5qGG54q25oCBICovXG4gIGNyZWF0ZUdyb3VwT3BlbiA9IGZhbHNlXG5cbiAgLyoq55So5LqO56Gu5a6a5qih5oCB55qE57mB5b+Z54q25oCB5piv5ZCm5Li655yfICovXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLyoq57yW6L6R5YiG57uE5qih5oCB5qGG54q25oCBICovXG4gIGVkaXRHcm91cE9wZW46IGJvb2xlYW4gPSBmYWxzZVxuXG4gIC8qKueCueWHu+WIhue7hOWbnuiwgyAqL1xuICBAT3V0cHV0KCkgT25Hcm91cENsaWNrQmFjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0ZmllbGRHcm91cExpc3QoKVxuICB9XG5cbiAgLyoq5Yib5bu65a2X5q615YiG57uEICovXG4gIGNyZWF0ZUdyb3VwQnRuKCkge1xuICAgIHRoaXMuY3JlYXRlR3JvdXBPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uPScnO1xuICAgIHRoaXMuY3JlYXRlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pXG4gIH1cblxuICAvKirliJvlu7rliIbnu4TmqKHmgIHmoYbnirbmgIHmlLnlj5ggKi9cbiAgY3JlYXRlR3JvdXBWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoq57yW6L6R5a2X5q615YiG57uEICovXG4gIGVkaXRHcm91cEJ0bihpdGVtTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5lZGl0R3JvdXBPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uPScnO1xuICAgIHRoaXMuZWRpdEdyb3VwRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogW2l0ZW1OYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pXG4gIH1cblxuICAvKirnvJbovpHliIbnu4TmqKHmgIHmoYbnirbmgIHmlLnlj5ggKi9cbiAgZWRpdEdyb3VwVmlzaWJsZUNoYW5nZShldmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9WYWxpZGF0b3JzU2VydmljZSA9IGluamVjdChWYWxpZGF0b3JzU2VydmljZSk7XG4gIC8qKuihqOWNlemqjOivgeeKtuaAgVxuICAgKiB7XG4gICAqICB0aXRsZTp0cnVlLFxuICAgKiB9XG4gICAqL1xuICBmb3JtVmFsaWRhdGlvbjogYW55ID0gJyc7XG5cblxuICAvKirliJvlu7rlrZfmrrXliIbnu4Tkv53lrZggKi9cbiAgY3JlYXRlU2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLmNyZWF0ZUZvcm0udmFsdWU7XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLmNyZWF0ZUZvcm0pO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCdDbXMnKSkgcmV0dXJuO1xuICAgIHRoaXMuX0ZpZWxkR3JvdXBBZG1pblNlcnZpY2UuY3JlYXRlKGlucHV0KS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICB0aGlzLmNyZWF0ZUdyb3VwT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtVmFsaWRhdGlvbj0nJztcbiAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRmaWVsZEdyb3VwTGlzdCgpXG4gICAgfSlcbiAgfVxuXG4gIC8qKue8lui+keWtl+auteWIhue7hOS/neWtmCAqL1xuICBlZGl0U2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLmVkaXRHcm91cEZvcm0udmFsdWU7XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLmNyZWF0ZUZvcm0pO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCdDbXMnKSkgcmV0dXJuO1xuICAgIHRoaXMuX0ZpZWxkR3JvdXBBZG1pblNlcnZpY2UudXBkYXRlKHRoaXMuZmllbGRHcm91cElkLCBpbnB1dCkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgdGhpcy5lZGl0R3JvdXBPcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm1WYWxpZGF0aW9uPScnO1xuICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmdldGZpZWxkR3JvdXBMaXN0KClcbiAgICB9KVxuICB9XG5cbiAgLyoq5Yig6Zmk5a2X5q615YiG57uEMSAqL1xuICBkZWxldGVHcm91cGJ0bihmaWVsZEdyb3VwaXRlbTogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcbiAgICAgIGZpZWxkR3JvdXBpdGVtLm5hbWUsXG4gICAgICB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSxcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICB0aGlzLl9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLmRlbGV0ZSh0aGlzLmZpZWxkR3JvdXBJZCkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpEZWxldGVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICAgIHRoaXMuZmllbGRHcm91cElkID0gJydcbiAgICAgICAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0ZmllbGRHcm91cExpc3QoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoq5a2X5q615YiG57uE5pS55Y+YICovXG4gIGZpZWxkR3JvdXBDaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLmZpZWxkR3JvdXBJZCA9IGV2ZW50XG4gICAgdGhpcy5Pbkdyb3VwQ2xpY2tCYWNrLmVtaXQoZXZlbnQpXG4gIH1cblxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBweC0yIHB5LXNtLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxoNiBjbGFzcz1cImg2IG1iLTBcIj57eydDbXM6OkZpZWxkR3JvdXAnIHwgYWJwTG9jYWxpemF0aW9ufX08L2g2PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGJ0bi1zbSBtcy0yXCI+PGkgY2xhc3M9XCJmYXMgZmEtcGx1cy1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZUdyb3VwQnRuKClcIj48L2k+PC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1oZWlnaHQgb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2hcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIGFjdGl2ZVwiIFtjbGFzcy5hY3RpdmVdPVwiZmllbGRHcm91cElkPT09JydcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJmaWVsZEdyb3VwQ2hhbmdlKCcnKVwiPnt7J0Ntczo6QWxsRmllbGRzJyB8IGFicExvY2FsaXphdGlvbn19PC9saT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5maWVsZEdyb3VwTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImZpZWxkR3JvdXBJZD09PWl0ZW0uaWRcIiAoY2xpY2spPVwiZmllbGRHcm91cENoYW5nZShpdGVtLmlkKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7aXRlbS5uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpZWxkR3JvdXBJZD09PWl0ZW0uaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoIHB4LTFcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrLnN0b3ApPVwiZGVsZXRlR3JvdXBidG4oaXRlbSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1lZGl0IHB4LTFcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrLnN0b3ApPVwiZWRpdEdyb3VwQnRuKGl0ZW0ubmFtZSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48YWJwLW1vZGFsIFsodmlzaWJsZSldPVwiY3JlYXRlR3JvdXBPcGVuXCIgW2J1c3ldPVwibW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiY3JlYXRlR3JvdXBWaXNpYmxlQ2hhbmdlKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cbiAgICAgICAgPGgzPnt7J0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbn19PC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJSZWY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxmb3JtICpuZ0lmPVwiY3JlYXRlRm9ybTsgZWxzZSBsb2FkZXJSZWZcIiBbZm9ybUdyb3VwXT1cImNyZWF0ZUZvcm1cIiAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIFtjbGFzc109XCJ7J3dhcy12YWxpZGF0ZWQnOmZvcm1WYWxpZGF0aW9ufVwiIChzdWJtaXQpPVwiY3JlYXRlU2F2ZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlRm9ybUNvbnRyb2xJbnB1dDFcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJleGFtcGxlRm9ybUNvbnRyb2xJbnB1dDFcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgW2Rpc2FibGVkXT1cImNyZWF0ZUZvcm0/LmludmFsaWRcIiAoY2xpY2spPVwiY3JlYXRlU2F2ZSgpXCI+e3snQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPlxuXG48YWJwLW1vZGFsIFsodmlzaWJsZSldPVwiZWRpdEdyb3VwT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cImVkaXRHcm91cFZpc2libGVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2gzPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRlclJlZj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtcHVsc2UgZmEtc3Bpbm5lclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGZvcm0gKm5nSWY9XCJlZGl0R3JvdXBGb3JtOyBlbHNlIGxvYWRlclJlZlwiIFtmb3JtR3JvdXBdPVwiZWRpdEdyb3VwRm9ybVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgW2NsYXNzXT1cInsnd2FzLXZhbGlkYXRlZCc6Zm9ybVZhbGlkYXRpb259XCIgKHN1Ym1pdCk9XCJlZGl0U2F2ZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlRm9ybUNvbnRyb2xJbnB1dDFcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJleGFtcGxlRm9ybUNvbnRyb2xJbnB1dDFcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgW2Rpc2FibGVkXT1cImVkaXRHcm91cEZvcm0/LmludmFsaWRcIiAoY2xpY2spPVwiZWRpdFNhdmUoKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
|
|
@@ -7,14 +7,13 @@ import { ECmsComponent } from "../../../enums";
|
|
|
7
7
|
import { UpdateListService } from "@dignite-ng/expand.core";
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@abp/ng.core";
|
|
10
|
-
import * as i2 from "../../../proxy/admin/fields";
|
|
10
|
+
import * as i2 from "../../../proxy/dignite/cms/admin/fields";
|
|
11
11
|
import * as i3 from "@abp/ng.theme.shared";
|
|
12
12
|
import * as i4 from "@angular/router";
|
|
13
13
|
import * as i5 from "@angular/forms";
|
|
14
14
|
import * as i6 from "@abp/ng.components/page";
|
|
15
15
|
import * as i7 from "@abp/ng.components/extensible";
|
|
16
16
|
import * as i8 from "./field-group.component";
|
|
17
|
-
// import { UpdateListService } from "../../../services/update-list.service";
|
|
18
17
|
export class FieldsComponent {
|
|
19
18
|
constructor(list, _FieldAdminService, toaster, confirmation, _LocalizationService, router) {
|
|
20
19
|
this.list = list;
|
|
@@ -105,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
105
104
|
},
|
|
106
105
|
], template: "<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-3\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-9\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <abp-extensible-table [data]=\"data?.items\" [recordsTotal]=\"data?.totalCount\" [list]=\"list\"></abp-extensible-table>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>", styles: ["::ng-deep .fields-page .dignite_page{background:transparent}::ng-deep .fields-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .fields-page .container-height{height:calc(100vh - 200px)}\n"] }]
|
|
107
106
|
}], ctorParameters: () => [{ type: i1.ListService }, { type: i2.FieldAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i1.LocalizationService }, { type: i4.Router }] });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2ZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBNEMsTUFBTSxjQUFjLENBQUM7QUFFL0csT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7O0FBQzVELDZFQUE2RTtBQW1CN0UsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDa0IsSUFBaUIsRUFDekIsa0JBQXFDLEVBQ3JDLE9BQXVCLEVBQ3ZCLFlBQWlDLEVBQ2pDLG9CQUF5QyxFQUN6QyxNQUFjO1FBTE4sU0FBSSxHQUFKLElBQUksQ0FBYTtRQUN6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFJaEIsdUJBQWtCLEdB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QU07YUFDL0I7U0FDRiwwQkM1QkgsOHZDQXdCVzs7MkZETUUsZUFBZTtrQkFqQjNCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYO3dCQUNULGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLDREQUE0RDt3QkFDNUQsdUVBQXVFO3dCQUN2RSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO3dCQUNwRDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLE1BQU07eUJBQy9CO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tIFwiQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGVcIjtcbmltcG9ydCB7IExpc3RTZXJ2aWNlLCBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIExvY2FsaXphdGlvblNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvLCBBQlAgfSBmcm9tIFwiQGFicC9uZy5jb3JlXCI7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZSwgQ29uZmlybWF0aW9uIH0gZnJvbSBcIkBhYnAvbmcudGhlbWUuc2hhcmVkXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tIFwiQHN3aW1sYW5lL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7IEZpZWxkQWRtaW5TZXJ2aWNlLCBGaWVsZER0bywgR2V0RmllbGRzSW5wdXQgfSBmcm9tIFwiLi4vLi4vLi4vcHJveHkvYWRtaW4vZmllbGRzXCI7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL2VudW1zXCI7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gXCJAZGlnbml0ZS1uZy9leHBhbmQuY29yZVwiO1xuLy8gaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdXBkYXRlLWxpc3Quc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICAvLyBbUmVxdWlyZWRdXG4gICAgTGlzdFNlcnZpY2UsXG4gICAgLy8gW09wdGlvbmFsXVxuICAgIC8vIFByb3ZpZGUgdGhpcyB0b2tlbiBpZiB5b3Ugd2FudCBhIGRpZmZlcmVudCBkZWJvdW5jZSB0aW1lLlxuICAgIC8vIERlZmF1bHQgaXMgMzAwLiBDYW5ub3QgYmUgMC4gQW55IHZhbHVlIGJlbG93IDEwMCBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgeyBwcm92aWRlOiBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIHVzZVZhbHVlOiA1MDAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5GaWVsZHMsXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0OiBMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICAgIFxuICB9XG4gIHByaXZhdGUgX1VwZGF0ZUxpc3RTZXJ2aWNlPWluamVjdChVcGRhdGVMaXN0U2VydmljZSlcbiAgLyoq6KGo5qC85Y2V5YWD5qC85biD5bGA57G75Z6LICovXG4gIENvbHVtbk1vZGUgPSBDb2x1bW5Nb2RlO1xuXG4gIC8qKuihqOagvOaVsOaNriAqL1xuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxGaWVsZER0bz4gPSB7XG4gICAgaXRlbXM6IFtdLFxuICAgIHRvdGFsQ291bnQ6IDAsXG4gIH07XG5cbiAgLyoq6L+H5ruk5ZmoICovXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRGaWVsZHNJbnB1dDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KClcbiAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0RXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubGlzdC5nZXQoKVxuICAgIH0pO1xuICB9XG4gIGdldERhdGEoKXtcbiAgICB0aGlzLmxpc3QuZ2V0KClcbiAgfVxuXG5cbiAgLyoq5a2X5q615YiG57uE6YCJ5oup5Zue6LCDICovXG4gIGZpZWxkR3JvdXBDaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLmZpbHRlcnMuZ3JvdXBJZCA9IGV2ZW50XG4gICAgdGhpcy5saXN0LnBhZ2U9MFxuICAgIHRoaXMubGlzdC5nZXQoKVxuICB9XG5cblxuXG4gIC8qKuS9v+eUqGFicOeahGxpc3Tojrflj5booajmoLznmoTlrZfmrrXmlbDmja7liJfooaggKi9cbiAgaG9va1RvUXVlcnkoKSB7XG4gICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT4gdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAuLi5xdWVyeSxcbiAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICB9KTtcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPEZpZWxkRHRvPikgPT4gKHRoaXMuZGF0YSA9IGxpc3QpO1xuICAgIHRoaXMubGlzdC5ob29rVG9RdWVyeShnZXREYXRhKS5zdWJzY3JpYmUoc2V0RGF0YSk7XG4gIH1cblxuICAvKirmlrDlu7rlrZfmrrXmjInpkq4gKi9cbiAgdG9GaWVsZHNDcmVhdGVCdG4oKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY21zL2FkbWluL2ZpZWxkcy9jcmVhdGUnXSxcbiAgICAgIHtcbiAgICAgICAgcXVlcnlQYXJhbXM6IHt9XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgLyoq5Yig6Zmk5a2X5q61ICovXG4gIGRlbGV0ZWZpZWxkKHJvdzogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcbiAgICAgIHJvdy5kaXNwbGF5TmFtZSxcbiAgICAgIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZWApLFxuICAgICkuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcbiAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLmRlbGV0ZShyb3cuaWQpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6RGVsZXRlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpGaWVsZHMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZHMtcGFnZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiPlxuICAgICAgICAgICAgICAgICAgICA8Y21zLWZpZWxkLWdyb3VwIChPbkdyb3VwQ2xpY2tCYWNrKT1cImZpZWxkR3JvdXBDaGFuZ2UoJGV2ZW50KVwiPjwvY21zLWZpZWxkLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBweC0yIHB5LXNtLTIgICBib3JkZXItYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVycy5maWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC0zXCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnV0dG9uLWFkZG9uMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJsaXN0LmdldCgpXCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhYnAtZXh0ZW5zaWJsZS10YWJsZSBbZGF0YV09XCJkYXRhPy5pdGVtc1wiIFtyZWNvcmRzVG90YWxdPVwiZGF0YT8udG90YWxDb3VudFwiIFtsaXN0XT1cImxpc3RcIj48L2FicC1leHRlbnNpYmxlLXRhYmxlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L2FicC1wYWdlPiJdfQ==
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2ZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBNEMsTUFBTSxjQUFjLENBQUM7QUFFL0csT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7O0FBb0I1RCxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUNrQixJQUFpQixFQUN6QixrQkFBcUMsRUFDckMsT0FBdUIsRUFDdkIsWUFBaUMsRUFDakMsb0JBQXlDLEVBQ3pDLE1BQWM7UUFMTixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUloQix1QkFBa0IsR0FBQyxNQUFNLENBQUMs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LDBCQzNCSCw4dkNBd0JXOzsyRkRLRSxlQUFlO2tCQWpCM0IsU0FBUzsrQkFDRSxZQUFZLGFBR1g7d0JBQ1QsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsNERBQTREO3dCQUM1RCx1RUFBdUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ3BEOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTTt5QkFDL0I7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gXCJAYWJwL25nLmNvbXBvbmVudHMvZXh0ZW5zaWJsZVwiO1xuaW1wb3J0IHsgTGlzdFNlcnZpY2UsIExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgTG9jYWxpemF0aW9uU2VydmljZSwgUGFnZWRSZXN1bHREdG8sIEFCUCB9IGZyb20gXCJAYWJwL25nLmNvcmVcIjtcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtYXRpb24gfSBmcm9tIFwiQGFicC9uZy50aGVtZS5zaGFyZWRcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgQ29sdW1uTW9kZSB9IGZyb20gXCJAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZVwiO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9lbnVtc1wiO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tIFwiQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmVcIjtcbmltcG9ydCB7IEZpZWxkQWRtaW5TZXJ2aWNlLCBGaWVsZER0bywgR2V0RmllbGRzSW5wdXQgfSBmcm9tIFwiLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvYWRtaW4vZmllbGRzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIC8vIFtSZXF1aXJlZF1cbiAgICBMaXN0U2VydmljZSxcbiAgICAvLyBbT3B0aW9uYWxdXG4gICAgLy8gUHJvdmlkZSB0aGlzIHRva2VuIGlmIHlvdSB3YW50IGEgZGlmZmVyZW50IGRlYm91bmNlIHRpbWUuXG4gICAgLy8gRGVmYXVsdCBpcyAzMDAuIENhbm5vdCBiZSAwLiBBbnkgdmFsdWUgYmVsb3cgMTAwIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICB7IHByb3ZpZGU6IExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgdXNlVmFsdWU6IDUwMCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkcyxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gICAgXG4gIH1cbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2U9aW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKVxuICAvKirooajmoLzljZXlhYPmoLzluIPlsYDnsbvlnosgKi9cbiAgQ29sdW1uTW9kZSA9IENvbHVtbk1vZGU7XG5cbiAgLyoq6KGo5qC85pWw5o2uICovXG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPEZpZWxkRHRvPiA9IHtcbiAgICBpdGVtczogW10sXG4gICAgdG90YWxDb3VudDogMCxcbiAgfTtcblxuICAvKirov4fmu6TlmaggKi9cbiAgZmlsdGVycyA9IHt9IGFzIEdldEZpZWxkc0lucHV0O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaG9va1RvUXVlcnkoKVxuICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3RFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5saXN0LmdldCgpXG4gICAgfSk7XG4gIH1cbiAgZ2V0RGF0YSgpe1xuICAgIHRoaXMubGlzdC5nZXQoKVxuICB9XG5cblxuICAvKirlrZfmrrXliIbnu4TpgInmi6nlm57osIMgKi9cbiAgZmllbGRHcm91cENoYW5nZShldmVudCkge1xuICAgIHRoaXMuZmlsdGVycy5ncm91cElkID0gZXZlbnRcbiAgICB0aGlzLmxpc3QucGFnZT0wXG4gICAgdGhpcy5saXN0LmdldCgpXG4gIH1cblxuXG5cbiAgLyoq5L2/55SoYWJw55qEbGlzdOiOt+WPluihqOagvOeahOWtl+auteaVsOaNruWIl+ihqCAqL1xuICBob29rVG9RdWVyeSgpIHtcbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PiB0aGlzLl9GaWVsZEFkbWluU2VydmljZS5nZXRMaXN0KHtcbiAgICAgIC4uLnF1ZXJ5LFxuICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgIH0pO1xuICAgIGNvbnN0IHNldERhdGEgPSAobGlzdDogUGFnZWRSZXN1bHREdG88RmllbGREdG8+KSA9PiAodGhpcy5kYXRhID0gbGlzdCk7XG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcbiAgfVxuXG4gIC8qKuaWsOW7uuWtl+auteaMiemSriAqL1xuICB0b0ZpZWxkc0NyZWF0ZUJ0bigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jbXMvYWRtaW4vZmllbGRzL2NyZWF0ZSddLFxuICAgICAge1xuICAgICAgICBxdWVyeVBhcmFtczoge31cbiAgICAgIH1cbiAgICApXG4gIH1cblxuICAvKirliKDpmaTlrZfmrrUgKi9cbiAgZGVsZXRlZmllbGQocm93OiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxuICAgICAgcm93LmRpc3BsYXlOYW1lLFxuICAgICAgdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6SXRlbVdpbGxCZURlbGV0ZWRNZXNzYWdlYCksXG4gICAgKS5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PSAnY29uZmlybScpIHtcbiAgICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZGVsZXRlKHJvdy5pZCkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpEZWxldGVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICAgIHRoaXMubGlzdC5nZXQoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidDbXM6OkZpZWxkcycgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkcy1wYWdlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxjbXMtZmllbGQtZ3JvdXAgKE9uR3JvdXBDbGlja0JhY2spPVwiZmllbGRHcm91cENoYW5nZSgkZXZlbnQpXCI+PC9jbXMtZmllbGQtZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHB4LTIgcHktc20tMiAgIGJvcmRlci1ib3R0b21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTNcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidXR0b24tYWRkb24yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImxpc3QuZ2V0KClcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGFicC1leHRlbnNpYmxlLXRhYmxlIFtkYXRhXT1cImRhdGE/Lml0ZW1zXCIgW3JlY29yZHNUb3RhbF09XCJkYXRhPy50b3RhbENvdW50XCIgW2xpc3RdPVwibGlzdFwiPjwvYWJwLWV4dGVuc2libGUtdGFibGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbjwvYWJwLXBhZ2U+Il19
|
|
@@ -2,11 +2,11 @@ import { LocalizationService } from '@abp/ng.core';
|
|
|
2
2
|
import { Component, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
|
|
3
3
|
import { FormControl, Validators, } from '@angular/forms';
|
|
4
4
|
import { ValidatorsService, UpdateListService } from '@dignite-ng/expand.core';
|
|
5
|
-
import { SectionType, sectionTypeOptions } from '../../../proxy/sections';
|
|
6
5
|
import { finalize } from 'rxjs';
|
|
7
|
-
import { SectionAdminService } from '../../../proxy/admin/sections';
|
|
8
6
|
import { ToasterService } from '@abp/ng.theme.shared';
|
|
9
7
|
import { CmsApiService } from '../../../services';
|
|
8
|
+
import { SectionAdminService } from '../../../proxy/dignite/cms/admin/sections';
|
|
9
|
+
import { SectionType, sectionTypeOptions } from '../../../proxy/dignite/cms/sections';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@angular/common";
|
|
12
12
|
import * as i2 from "@angular/forms";
|
|
@@ -207,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
207
207
|
}], visibleChange: [{
|
|
208
208
|
type: Output
|
|
209
209
|
}] } });
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtc2VjdGlvbnMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9jcmVhdGUtb3ItZWRpdC1zZWN0aW9ucy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2NyZWF0ZS1vci1lZGl0LXNlY3Rpb25zLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFdBQVcsRUFJWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBT2xELE1BQU0sT0FBTyxrQ0FBa0M7SUFML0M7UUFNVSx5QkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCxZ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LEdBQUcsQ0FBQyxFQUFFO29CQUN4RSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNSLE9BQU8sQ0FBQzs0QkFDTixVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FDM0Msa0NBQWtDLEVBQ2xDLElBQUksQ0FBQyxLQUFLLENBQ1g7eUJBQ0YsQ0FBQyxDQUFDO29CQUNMLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBL01VLGtDQUFrQztrR0FBbEMsa0NBQWtDLG9TQzlCL0Msc3JLQWdGWTs7MkZEbERDLGtDQUFrQztrQkFMOUMsU0FBUzsrQkFDRSxtQ0FBbUM7OEJBbUJsQyxPQUFPO3NCQURqQixLQUFLO2dCQVlLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBK0IyQyxlQUFlO3NCQUEvRCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDckMsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRvcnNTZXJ2aWNlLCBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcclxuaW1wb3J0IHsgU2VjdGlvblR5cGUsIHNlY3Rpb25UeXBlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L3NlY3Rpb25zJztcclxuaW1wb3J0IHsgZmluYWxpemUsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2VjdGlvbkFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL3NlY3Rpb25zJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdC1zZWN0aW9ucy1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LXNlY3Rpb25zLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JlYXRlLW9yLWVkaXQtc2VjdGlvbnMtbW9kYWwuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JFZGl0U2VjdGlvbnNNb2RhbENvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIHRvYXN0ZXIgPSBpbmplY3QoVG9hc3RlclNlcnZpY2UpO1xyXG4gIHByaXZhdGUgX1ZhbGlkYXRvcnNTZXJ2aWNlID0gaW5qZWN0KFZhbGlkYXRvcnNTZXJ2aWNlKTtcclxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfU2VjdGlvbkFkbWluU2VydmljZSA9IGluamVjdChTZWN0aW9uQWRtaW5TZXJ2aWNlKTtcclxuICBwcml2YXRlIF9DbXNBcGlTZXJ2aWNlID0gaW5qZWN0KENtc0FwaVNlcnZpY2UpO1xyXG4gIF9TZWN0aW9uVHlwZSA9IFNlY3Rpb25UeXBlO1xyXG4gIF9zZWN0aW9uVHlwZU9wdGlvbnMgPSBzZWN0aW9uVHlwZU9wdGlvbnM7XHJcbiAgLyoq6KGo5Y2V6aqM6K+B54q25oCBICovXHJcbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xyXG4gXHJcbiAgLyoq5qih5oCB5qGGLeeKtuaAgS3mmK/lkKbmiZPlvIAgKi9cclxuICBNb2RhbE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmlzaWJsZSh2OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLk1vZGFsT3BlbiA9IHY7XHJcbiAgfVxyXG5cclxuICAvKirmqKHmgIHmoYYt57mB5b+Z54q25oCBLeeUqOS6juehruWumuaooeaAgeeahOe5geW/meeKtuaAgeaYr+WQpuS4uuecnyAqL1xyXG4gIE1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKuWIneWni+WAvCAqL1xyXG4gIHNlbGVjdGVkOiBhbnkgPSAnJztcclxuICAvKirmqKHmgIHmoYYt6KGo5Y2VICovXHJcbiAgTW9kYWxGb3JtOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGZvcm1FbnRpdHkodjogRm9ybUdyb3VwIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLk1vZGFsRm9ybSA9IHY7XHJcbiAgICBpZiAodikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkID0gdj8udmFsdWU7XHJcbiAgICAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzRm4oKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGlkSW5wdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5Nb2RhbEZvcm0/LmdldCgnaWQnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgZ2V0IGRpc3BsYXlOYW1lSW5wdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5Nb2RhbEZvcm0uZ2V0KCdkaXNwbGF5TmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuICBnZXQgbmFtZUlucHV0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTW9kYWxGb3JtLmdldCgnbmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuICBnZXQgcm91dGVJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLk1vZGFsRm9ybS5nZXQoJ3JvdXRlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG4gIGdldCB0ZW1wbGF0ZUlucHV0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTW9kYWxGb3JtLmdldCgndGVtcGxhdGUnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgZ2V0IHR5cGVJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLk1vZGFsRm9ybS5nZXQoJ3R5cGUnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgcmFkaW9jaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnJvdXRlSW5wdXQucGF0Y2hWYWx1ZSh0aGlzLnJvdXRlSW5wdXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoq5qih5oCB5qGGLeihqOWNlS0t5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7tiAqL1xyXG4gIEBWaWV3Q2hpbGQoJ01vZGFsRm9ybVN1Ym1pdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBNb2RhbEZvcm1TdWJtaXQ6IEVsZW1lbnRSZWY7XHJcbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoq5qih5oCB5qGGLeeKtuaAgeaUueWPmOWbnuiwgyAqL1xyXG4gIE1vZGFsVmlzaWJsZUNoYW5nZShldmVudCkge1xyXG4gICAgdGhpcy5Nb2RhbE9wZW4gPSBldmVudDtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICAgIGlmICghZXZlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKirkv53lrZggKi9cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5mb3JtVmFsaWRhdGlvbiA9IHRoaXMuX1ZhbGlkYXRvcnNTZXJ2aWNlLmdldEZvcm1WYWxpZGF0aW9uU3RhdHVzKHRoaXMuTW9kYWxGb3JtKTtcclxuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCAnQ21zJykpIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5Nb2RhbEJ1c3kpIHJldHVybjtcclxuICAgIHRoaXMuTW9kYWxCdXN5ID0gdHJ1ZTtcclxuICAgIGlmICghdGhpcy5Nb2RhbEZvcm0udmFsaWQpIHJldHVybjtcclxuICAgIGxldCBpbnB1dCA9IHRoaXMuTW9kYWxGb3JtLnZhbHVlO1xyXG4gICAgaWYgKHRoaXMuaWRJbnB1dC52YWx1ZSkge1xyXG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlXHJcbiAgICAgICAgLnVwZGF0ZSh0aGlzLmlkSW5wdXQudmFsdWUsIGlucHV0KVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcclxuICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMuZm9ybVZhbGlkYXRpb249Jyc7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZVxyXG4gICAgICAuY3JlYXRlKGlucHV0KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuZm9ybVZhbGlkYXRpb249Jyc7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICByZXNldCgpe1xyXG4gICAgdGhpcy5Nb2RhbEJ1c3kgPSBmYWxzZTtcclxuICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcclxuICB9XHJcblxyXG4gICAgZGlzUGxheU5hbWVJbnB1dEJsdXIoZXZlbnQpIHtcclxuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSk7XHJcbiAgICBsZXQgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXQ7XHJcbiAgICBsZXQgcm91dGVJbnB1dCA9IHRoaXMucm91dGVJbnB1dDtcclxuICAgIGxldCB0ZW1wbGF0ZUlucHV0ID0gdGhpcy50ZW1wbGF0ZUlucHV0O1xyXG4gICAgaWYgKG5hbWVJbnB1dC52YWx1ZSkgcmV0dXJuO1xyXG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKTtcclxuICAgIGlmIChyb3V0ZUlucHV0LnZhbHVlKSByZXR1cm47XHJcbiAgICByb3V0ZUlucHV0LnBhdGNoVmFsdWUocGlueWluICsgKHRoaXMudHlwZUlucHV0LnZhbHVlID09PSAwID8gJycgOiAnL3tzbHVnfScpKTtcclxuICAgIGlmICh0ZW1wbGF0ZUlucHV0LnZhbHVlKSByZXR1cm47XHJcbiAgICB0ZW1wbGF0ZUlucHV0LnBhdGNoVmFsdWUocGlueWluICsgJy9pbmRleCcpO1xyXG4gIH1cclxuXHJcbiAgc2V0QXN5bmNWYWxpZGF0b3JzRm4oKSB7XHJcbiAgICB0aGlzLk1vZGFsRm9ybT8uc2V0Q29udHJvbChcclxuICAgICAgJ25hbWUnLFxyXG4gICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5uYW1lSW5wdXQudmFsdWUgfHwgJycsIHtcclxuICAgICAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogdGhpcy5uYW1lUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCksXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5Nb2RhbEZvcm0/LnNldENvbnRyb2woXHJcbiAgICAgICdyb3V0ZScsXHJcbiAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLnJvdXRlSW5wdXQudmFsdWUgfHwgJycsIHtcclxuICAgICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy5mb3JiaWRkZW5OYW1lVmFsaWRhdG9yKCldLFxyXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogW3RoaXMucm91dGVSZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKV0sXHJcbiAgICAgICAgdXBkYXRlT246ICdjaGFuZ2UnLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgZm9yYmlkZGVuTmFtZVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgbGV0IGlucHV0VmFsdWUgPSBjb250cm9sLnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgIGxldCBmb3JiaWRkZW4gPVxyXG4gICAgICAgIHRoaXMudHlwZUlucHV0LnZhbHVlID09IDAgPyBmYWxzZSA6IGlucHV0VmFsdWUuaW5jbHVkZXMoJ3tzbHVnfScpID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICByZXR1cm4gZm9yYmlkZGVuXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcclxuICAgICAgICAgICAgICBgQ21zOjpSb3V0ZVZlcmlmaWNhdGlvblRpcHNgLFxyXG4gICAgICAgICAgICAgIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcclxuICAgICAgICAgICAgICAgIGBDbXM6OkVudW06U2VjdGlvblR5cGU6YCArIFNlY3Rpb25UeXBlW3RoaXMudHlwZUlucHV0LnZhbHVlXVxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgJ3tzbHVnfSdcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH1cclxuICAgICAgICA6IG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuICBuYW1lUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgY3RybDogQWJzdHJhY3RDb250cm9sXHJcbiAgICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5Nb2RhbEZvcm0/LmdldCgnbmFtZScpO1xyXG5cclxuICAgICAgICBpZiAoc3Vic2x1Zy52YWx1ZSA9PSB0aGlzLnNlbGVjdGVkPy5uYW1lKSB7XHJcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoeyBuYW1lOiBzdWJzbHVnLnZhbHVlIH0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICBgQ21zOjpTZWN0aW9uTmFtZXswfUFscmVhZHlFeGlzdGAsXHJcbiAgICAgICAgICAgICAgICBjdHJsLnZhbHVlXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgfVxyXG4gIHJvdXRlUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgY3RybDogQWJzdHJhY3RDb250cm9sXHJcbiAgICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5Nb2RhbEZvcm0/LmdldCgncm91dGUnKS52YWx1ZTtcclxuICAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLnNlbGVjdGVkPy5yb3V0ZSkge1xyXG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZS5yb3V0ZUV4aXN0cyh7IHJvdXRlOiBzdWJzbHVnIH0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICBgQ21zOjpTZWN0aW9uUm91dGV7MH1BbHJlYWR5RXhpc3RgLFxyXG4gICAgICAgICAgICAgICAgY3RybC52YWx1ZVxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8YWJwLW1vZGFsIFsodmlzaWJsZSldPVwiTW9kYWxPcGVuXCIgW2J1c3ldPVwiTW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiTW9kYWxWaXNpYmxlQ2hhbmdlKCRldmVudClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICAgIDxoMz57e3NlbGVjdGVkPygnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTW9kYWxGb3JtOyBlbHNlIGxvYWRlclJlZlwiPlxyXG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cIk1vZGFsRm9ybVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJ7J3dhcy12YWxpZGF0ZWQnOmZvcm1WYWxpZGF0aW9ufVwiIChzdWJtaXQpPVwic2F2ZSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjTW9kYWxGb3JtU3VibWl0IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX3NlY3Rpb25UeXBlT3B0aW9ucztsZXQgaSA9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJyYWRpb2NoYW5nZSgpXCIgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiIGlkPVwiZmxleFJhZGlvRGVmYXVsdHt7aX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImZsZXhSYWRpb0RlZmF1bHR7e2l9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQ21zOjpFbnVtOlNlY3Rpb25UeXBlOicraXRlbS5rZXkgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIm5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpSb3V0ZScgfCBhYnBMb2NhbGl6YXRpb259fSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicm91dGVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cInJvdXRlSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cm91dGVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpSb3V0ZVRpcHMnIHwgYWJwTG9jYWxpemF0aW9ufX08YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO2Jsb2c8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO3t7J2Jsb2cve3NsdWd9J319PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDt7eydibG9nL3twdWJsaXNoVGltZTp5eXl5fS97cHVibGlzaFRpbWU6TU19L3tzbHVnfSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6VGVtcGxhdGUnIHwgYWJwTG9jYWxpemF0aW9ufX0gPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRlbXBsYXRlXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcIkNtczo6VGVtcGxhdGVUaXBzXCIgfCBhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cImlzRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzRGVmYXVsdFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJpc0RlZmF1bHRcIj4ge3snQ21zOjpEZWZhdWx0JyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cImlzQWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNBY3RpdmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiaXNBY3RpdmVcIj4ge3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cclxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIHR5cGU9XCJidXR0b25cIiBbbG9hZGluZ109XCJNb2RhbEJ1c3lcIiBbZGlzYWJsZWRdPVwiTW9kYWxCdXN5XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIk1vZGFsRm9ybVN1Ym1pdD8ubmF0aXZlRWxlbWVudD8uY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJ3xhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtc2VjdGlvbnMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9jcmVhdGUtb3ItZWRpdC1zZWN0aW9ucy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2NyZWF0ZS1vci1lZGl0LXNlY3Rpb25zLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFdBQVcsRUFJWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBT3RGLE1BQU0sT0FBTyxrQ0FBa0M7SUFML0M7UUFNVSx5QkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCxZ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LEdBQUcsQ0FBQyxFQUFFO29CQUN4RSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNSLE9BQU8sQ0FBQzs0QkFDTixVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FDM0Msa0NBQWtDLEVBQ2xDLElBQUksQ0FBQyxLQUFLLENBQ1g7eUJBQ0YsQ0FBQyxDQUFDO29CQUNMLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBL01VLGtDQUFrQztrR0FBbEMsa0NBQWtDLG9TQzlCL0Msc3JLQWdGWTs7MkZEbERDLGtDQUFrQztrQkFMOUMsU0FBUzsrQkFDRSxtQ0FBbUM7OEJBbUJsQyxPQUFPO3NCQURqQixLQUFLO2dCQVlLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBK0IyQyxlQUFlO3NCQUEvRCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDckMsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRvcnNTZXJ2aWNlLCBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcclxuaW1wb3J0IHsgZmluYWxpemUsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFNlY3Rpb25BZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9kaWduaXRlL2Ntcy9hZG1pbi9zZWN0aW9ucyc7XHJcbmltcG9ydCB7IFNlY3Rpb25UeXBlLCBzZWN0aW9uVHlwZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9kaWduaXRlL2Ntcy9zZWN0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdC1zZWN0aW9ucy1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LXNlY3Rpb25zLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JlYXRlLW9yLWVkaXQtc2VjdGlvbnMtbW9kYWwuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JFZGl0U2VjdGlvbnNNb2RhbENvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIHRvYXN0ZXIgPSBpbmplY3QoVG9hc3RlclNlcnZpY2UpO1xyXG4gIHByaXZhdGUgX1ZhbGlkYXRvcnNTZXJ2aWNlID0gaW5qZWN0KFZhbGlkYXRvcnNTZXJ2aWNlKTtcclxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfU2VjdGlvbkFkbWluU2VydmljZSA9IGluamVjdChTZWN0aW9uQWRtaW5TZXJ2aWNlKTtcclxuICBwcml2YXRlIF9DbXNBcGlTZXJ2aWNlID0gaW5qZWN0KENtc0FwaVNlcnZpY2UpO1xyXG4gIF9TZWN0aW9uVHlwZSA9IFNlY3Rpb25UeXBlO1xyXG4gIF9zZWN0aW9uVHlwZU9wdGlvbnMgPSBzZWN0aW9uVHlwZU9wdGlvbnM7XHJcbiAgLyoq6KGo5Y2V6aqM6K+B54q25oCBICovXHJcbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xyXG4gXHJcbiAgLyoq5qih5oCB5qGGLeeKtuaAgS3mmK/lkKbmiZPlvIAgKi9cclxuICBNb2RhbE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmlzaWJsZSh2OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLk1vZGFsT3BlbiA9IHY7XHJcbiAgfVxyXG5cclxuICAvKirmqKHmgIHmoYYt57mB5b+Z54q25oCBLeeUqOS6juehruWumuaooeaAgeeahOe5geW/meeKtuaAgeaYr+WQpuS4uuecnyAqL1xyXG4gIE1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKuWIneWni+WAvCAqL1xyXG4gIHNlbGVjdGVkOiBhbnkgPSAnJztcclxuICAvKirmqKHmgIHmoYYt6KGo5Y2VICovXHJcbiAgTW9kYWxGb3JtOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGZvcm1FbnRpdHkodjogRm9ybUdyb3VwIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLk1vZGFsRm9ybSA9IHY7XHJcbiAgICBpZiAodikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkID0gdj8udmFsdWU7XHJcbiAgICAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzRm4oKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGlkSW5wdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5Nb2RhbEZvcm0/LmdldCgnaWQnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgZ2V0IGRpc3BsYXlOYW1lSW5wdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5Nb2RhbEZvcm0uZ2V0KCdkaXNwbGF5TmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuICBnZXQgbmFtZUlucHV0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTW9kYWxGb3JtLmdldCgnbmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuICBnZXQgcm91dGVJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLk1vZGFsRm9ybS5nZXQoJ3JvdXRlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG4gIGdldCB0ZW1wbGF0ZUlucHV0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTW9kYWxGb3JtLmdldCgndGVtcGxhdGUnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgZ2V0IHR5cGVJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLk1vZGFsRm9ybS5nZXQoJ3R5cGUnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgcmFkaW9jaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnJvdXRlSW5wdXQucGF0Y2hWYWx1ZSh0aGlzLnJvdXRlSW5wdXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoq5qih5oCB5qGGLeihqOWNlS0t5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7tiAqL1xyXG4gIEBWaWV3Q2hpbGQoJ01vZGFsRm9ybVN1Ym1pdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBNb2RhbEZvcm1TdWJtaXQ6IEVsZW1lbnRSZWY7XHJcbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoq5qih5oCB5qGGLeeKtuaAgeaUueWPmOWbnuiwgyAqL1xyXG4gIE1vZGFsVmlzaWJsZUNoYW5nZShldmVudCkge1xyXG4gICAgdGhpcy5Nb2RhbE9wZW4gPSBldmVudDtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICAgIGlmICghZXZlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKirkv53lrZggKi9cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5mb3JtVmFsaWRhdGlvbiA9IHRoaXMuX1ZhbGlkYXRvcnNTZXJ2aWNlLmdldEZvcm1WYWxpZGF0aW9uU3RhdHVzKHRoaXMuTW9kYWxGb3JtKTtcclxuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCAnQ21zJykpIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5Nb2RhbEJ1c3kpIHJldHVybjtcclxuICAgIHRoaXMuTW9kYWxCdXN5ID0gdHJ1ZTtcclxuICAgIGlmICghdGhpcy5Nb2RhbEZvcm0udmFsaWQpIHJldHVybjtcclxuICAgIGxldCBpbnB1dCA9IHRoaXMuTW9kYWxGb3JtLnZhbHVlO1xyXG4gICAgaWYgKHRoaXMuaWRJbnB1dC52YWx1ZSkge1xyXG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlXHJcbiAgICAgICAgLnVwZGF0ZSh0aGlzLmlkSW5wdXQudmFsdWUsIGlucHV0KVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcclxuICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMuZm9ybVZhbGlkYXRpb249Jyc7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZVxyXG4gICAgICAuY3JlYXRlKGlucHV0KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuZm9ybVZhbGlkYXRpb249Jyc7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICByZXNldCgpe1xyXG4gICAgdGhpcy5Nb2RhbEJ1c3kgPSBmYWxzZTtcclxuICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcclxuICB9XHJcblxyXG4gICAgZGlzUGxheU5hbWVJbnB1dEJsdXIoZXZlbnQpIHtcclxuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSk7XHJcbiAgICBsZXQgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXQ7XHJcbiAgICBsZXQgcm91dGVJbnB1dCA9IHRoaXMucm91dGVJbnB1dDtcclxuICAgIGxldCB0ZW1wbGF0ZUlucHV0ID0gdGhpcy50ZW1wbGF0ZUlucHV0O1xyXG4gICAgaWYgKG5hbWVJbnB1dC52YWx1ZSkgcmV0dXJuO1xyXG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKTtcclxuICAgIGlmIChyb3V0ZUlucHV0LnZhbHVlKSByZXR1cm47XHJcbiAgICByb3V0ZUlucHV0LnBhdGNoVmFsdWUocGlueWluICsgKHRoaXMudHlwZUlucHV0LnZhbHVlID09PSAwID8gJycgOiAnL3tzbHVnfScpKTtcclxuICAgIGlmICh0ZW1wbGF0ZUlucHV0LnZhbHVlKSByZXR1cm47XHJcbiAgICB0ZW1wbGF0ZUlucHV0LnBhdGNoVmFsdWUocGlueWluICsgJy9pbmRleCcpO1xyXG4gIH1cclxuXHJcbiAgc2V0QXN5bmNWYWxpZGF0b3JzRm4oKSB7XHJcbiAgICB0aGlzLk1vZGFsRm9ybT8uc2V0Q29udHJvbChcclxuICAgICAgJ25hbWUnLFxyXG4gICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5uYW1lSW5wdXQudmFsdWUgfHwgJycsIHtcclxuICAgICAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogdGhpcy5uYW1lUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCksXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5Nb2RhbEZvcm0/LnNldENvbnRyb2woXHJcbiAgICAgICdyb3V0ZScsXHJcbiAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLnJvdXRlSW5wdXQudmFsdWUgfHwgJycsIHtcclxuICAgICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy5mb3JiaWRkZW5OYW1lVmFsaWRhdG9yKCldLFxyXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogW3RoaXMucm91dGVSZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKV0sXHJcbiAgICAgICAgdXBkYXRlT246ICdjaGFuZ2UnLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgZm9yYmlkZGVuTmFtZVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgbGV0IGlucHV0VmFsdWUgPSBjb250cm9sLnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgIGxldCBmb3JiaWRkZW4gPVxyXG4gICAgICAgIHRoaXMudHlwZUlucHV0LnZhbHVlID09IDAgPyBmYWxzZSA6IGlucHV0VmFsdWUuaW5jbHVkZXMoJ3tzbHVnfScpID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICByZXR1cm4gZm9yYmlkZGVuXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcclxuICAgICAgICAgICAgICBgQ21zOjpSb3V0ZVZlcmlmaWNhdGlvblRpcHNgLFxyXG4gICAgICAgICAgICAgIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcclxuICAgICAgICAgICAgICAgIGBDbXM6OkVudW06U2VjdGlvblR5cGU6YCArIFNlY3Rpb25UeXBlW3RoaXMudHlwZUlucHV0LnZhbHVlXVxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgJ3tzbHVnfSdcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH1cclxuICAgICAgICA6IG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuICBuYW1lUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgY3RybDogQWJzdHJhY3RDb250cm9sXHJcbiAgICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5Nb2RhbEZvcm0/LmdldCgnbmFtZScpO1xyXG5cclxuICAgICAgICBpZiAoc3Vic2x1Zy52YWx1ZSA9PSB0aGlzLnNlbGVjdGVkPy5uYW1lKSB7XHJcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoeyBuYW1lOiBzdWJzbHVnLnZhbHVlIH0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICBgQ21zOjpTZWN0aW9uTmFtZXswfUFscmVhZHlFeGlzdGAsXHJcbiAgICAgICAgICAgICAgICBjdHJsLnZhbHVlXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgfVxyXG4gIHJvdXRlUmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgY3RybDogQWJzdHJhY3RDb250cm9sXHJcbiAgICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5Nb2RhbEZvcm0/LmdldCgncm91dGUnKS52YWx1ZTtcclxuICAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLnNlbGVjdGVkPy5yb3V0ZSkge1xyXG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZS5yb3V0ZUV4aXN0cyh7IHJvdXRlOiBzdWJzbHVnIH0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICBgQ21zOjpTZWN0aW9uUm91dGV7MH1BbHJlYWR5RXhpc3RgLFxyXG4gICAgICAgICAgICAgICAgY3RybC52YWx1ZVxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8YWJwLW1vZGFsIFsodmlzaWJsZSldPVwiTW9kYWxPcGVuXCIgW2J1c3ldPVwiTW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiTW9kYWxWaXNpYmxlQ2hhbmdlKCRldmVudClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICAgIDxoMz57e3NlbGVjdGVkPygnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTW9kYWxGb3JtOyBlbHNlIGxvYWRlclJlZlwiPlxyXG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cIk1vZGFsRm9ybVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJ7J3dhcy12YWxpZGF0ZWQnOmZvcm1WYWxpZGF0aW9ufVwiIChzdWJtaXQpPVwic2F2ZSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjTW9kYWxGb3JtU3VibWl0IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX3NlY3Rpb25UeXBlT3B0aW9ucztsZXQgaSA9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJyYWRpb2NoYW5nZSgpXCIgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiIGlkPVwiZmxleFJhZGlvRGVmYXVsdHt7aX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImZsZXhSYWRpb0RlZmF1bHR7e2l9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQ21zOjpFbnVtOlNlY3Rpb25UeXBlOicraXRlbS5rZXkgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIm5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpSb3V0ZScgfCBhYnBMb2NhbGl6YXRpb259fSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicm91dGVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cInJvdXRlSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cm91dGVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpSb3V0ZVRpcHMnIHwgYWJwTG9jYWxpemF0aW9ufX08YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO2Jsb2c8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO3t7J2Jsb2cve3NsdWd9J319PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDt7eydibG9nL3twdWJsaXNoVGltZTp5eXl5fS97cHVibGlzaFRpbWU6TU19L3tzbHVnfSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6VGVtcGxhdGUnIHwgYWJwTG9jYWxpemF0aW9ufX0gPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRlbXBsYXRlXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcIkNtczo6VGVtcGxhdGVUaXBzXCIgfCBhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cImlzRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzRGVmYXVsdFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJpc0RlZmF1bHRcIj4ge3snQ21zOjpEZWZhdWx0JyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cImlzQWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNBY3RpdmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiaXNBY3RpdmVcIj4ge3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cclxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIHR5cGU9XCJidXR0b25cIiBbbG9hZGluZ109XCJNb2RhbEJ1c3lcIiBbZGlzYWJsZWRdPVwiTW9kYWxCdXN5XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIk1vZGFsRm9ybVN1Ym1pdD8ubmF0aXZlRWxlbWVudD8uY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJ3xhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPiJdfQ==
|
|
@@ -10,8 +10,8 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
import * as i1 from "@abp/ng.theme.shared";
|
|
11
11
|
import * as i2 from "@angular/common";
|
|
12
12
|
import * as i3 from "@angular/router";
|
|
13
|
-
import * as i4 from "../../../../proxy/admin/fields";
|
|
14
|
-
import * as i5 from "../../../../proxy/admin/sections";
|
|
13
|
+
import * as i4 from "../../../../proxy/dignite/cms/admin/fields";
|
|
14
|
+
import * as i5 from "../../../../proxy/dignite/cms/admin/sections";
|
|
15
15
|
import * as i6 from "@abp/ng.core";
|
|
16
16
|
import * as i7 from "../../../../services";
|
|
17
17
|
import * as i8 from "@angular/forms";
|
|
@@ -401,4 +401,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
401
401
|
type: ViewChild,
|
|
402
402
|
args: ['editFieldModalSubmitBtn', { static: false }]
|
|
403
403
|
}] } });
|
|
404
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9lbnRyeS10eXBlcy9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2VudHJ5LXR5cGVzL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBS25FLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsYUFBYSxFQUNiLFVBQVUsR0FDWCxNQUFNLHlDQUF5QyxDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7O0FBWWhDLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSxPQUF1QixFQUN4QixTQUFtQixFQUNsQixLQUFxQixFQUN0Qix1QkFBK0MsRUFDL0Msa0JBQXFDLEVBQ3JDLHNCQUE2QyxFQUM3QyxvQkFBeUMsRUFDekMsY0FBNkI7UUFQNUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFU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QyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELHlCQUF5QjtJQUN6QixvQkFBb0IsQ0FBQyxLQUFLO1FBQ3hCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsSUFBSSxTQUFTLENBQUMsS0FBSztZQUFFLE9BQU87UUFDNUIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQXJaVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiw2Q0FQckI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjthQUM3QztTQUNGLHNZQzVCSCxtb1pBMExZOzsyRkQ1SkMscUJBQXFCO2tCQVhqQyxTQUFTOytCQUNFLG9CQUFvQixhQUduQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjt5QkFDN0M7cUJBQ0Y7OFNBNkIyQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBNlIxQywyQkFBMkI7c0JBRDFCLFNBQVM7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQXdERix1QkFBdUI7c0JBQS9FLFNBQVM7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRmllbGRHcm91cEFkbWluU2VydmljZSwgRmllbGRBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHMnO1xuaW1wb3J0IHsgRW50cnlUeXBlQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcHJveHkvYWRtaW4vc2VjdGlvbnMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIENyZWF0ZU9yRWRpdEVudHJ5VHlwZUlucHV0QmFzZSxcbiAgZmllbGRUYWJzQmFzZSxcbiAgZmllbGRzQmFzZSxcbn0gZnJvbSAnLi9jcmVhdGUtb3ItZWRpdC4tZW50cnktdHlwZS1pbnB1dC1iYXNlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IFVwZGF0ZUxpc3RTZXJ2aWNlIH0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmUnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LlNlY3Rpb25zQ3JlYXRlT3JFZGl0LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZU9yRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIF9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlOiBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRmllbGRBZG1pblNlcnZpY2U6IEZpZWxkQWRtaW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRW50cnlUeXBlQWRtaW5TZXJ2aWNlOiBFbnRyeVR5cGVBZG1pblNlcnZpY2UsXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZVxuICApIHt9XG4gIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSk7XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBuZXdFbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCA9IHRoaXMuZmIuZ3JvdXAobmV3IENyZWF0ZU9yRWRpdEVudHJ5VHlwZUlucHV0QmFzZSgpKTtcbiAgLyoq54mI5Z2XaWQgKi9cbiAgc2VjdGlvbklkOiBzdHJpbmcgPSAnJztcbiAgLyoq5p2h55uu57G75Z6LaWQgKi9cbiAgZW50cnlUeXBlc0lkOiBzdHJpbmcgPSAnJztcbiAgLyoq5p2h55uu57G75Z6L6K+m5oOFICovXG4gIGVudHJ5VHlwZXNTZWxlY3Q6IGFueTtcblxuICBnZXQgZmllbGRUYWJzKCkge1xuICAgIHJldHVybiB0aGlzLm5ld0VudGl0eS5nZXQoJ2ZpZWxkVGFicycpIGFzIEZvcm1BcnJheTtcbiAgfVxuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIC8qKuinpuWPkeaPkOS6pOaMiemSriAqL1xuICBzdWJtaXRjbGlja0J0bigpIHtcbiAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgc2VjdGlvbklkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuc2VjdGlvbnNJZDtcbiAgICB0aGlzLmVudHJ5VHlwZXNJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmVudHJ5VHlwZXNJZCB8fCAnJztcbiAgICBpZiAoc2VjdGlvbklkKSB7XG4gICAgICB0aGlzLnNlY3Rpb25JZCA9IHNlY3Rpb25JZDtcbiAgICAgIHRoaXMuYWRkQ29udHJvbFRvRmllbGRUYWJzKCk7XG4gICAgICB0aGlzLmdldEZpZWxkR3JvdXAoKTtcbiAgICB9XG4gIH1cblxuICAvKirnu5lmaWVsZFRhYnPmt7vliqDmlrDmjqfku7YgKi9cbiAgYWRkQ29udHJvbFRvRmllbGRUYWJzKG5hbWVWYWx1ZSA9ICcnKSB7XG4gICAgY29uc3QgbmV3Rm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cChcbiAgICAgIG5ldyBmaWVsZFRhYnNCYXNlKHtcbiAgICAgICAgbmFtZTpcbiAgICAgICAgICB0aGlzLmZpZWxkVGFicy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgID8gdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkZpZWxkVGFiYClcbiAgICAgICAgICAgIDogbmFtZVZhbHVlLFxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZmllbGRUYWJzLnB1c2gobmV3Rm9ybUdyb3VwKTtcbiAgICB0aGlzLnJlc3VsdFNvdXJjZS5wdXNoKG5ld0Zvcm1Hcm91cC52YWx1ZSk7XG4gICAgdGhpcy5uYXZBY3RpdmUgPSB0aGlzLnJlc3VsdFNvdXJjZS5sZW5ndGggLSAxO1xuICB9XG5cbiAgLyoq6I635Y+W5a2X5q615YiG57uEICovXG4gIGdldEZpZWxkR3JvdXAoKSB7XG4gICAgdGhpcy5fRmllbGRHcm91cEFkbWluU2VydmljZS5nZXRMaXN0KHt9KS5zdWJzY3JpYmUoYXN5bmMgcmVzID0+IHtcbiAgICAgIGxldCBmaWVsZExpc3Q6IGFueSA9IGF3YWl0IHRoaXMuZ2V0RmllbGRMaXN0KCk7XG4gICAgICBsZXQgZmllbGRHcm91cExpc3QgPSByZXMuaXRlbXM7XG4gICAgICBmaWVsZEdyb3VwTGlzdC51bnNoaWZ0KHtcbiAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgIG5hbWU6ICdVbmdyb3VwZWRGaWVsZHMnLFxuICAgICAgfSk7XG4gICAgICBmaWVsZEdyb3VwTGlzdC5mb3JFYWNoKChlbDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgICBlbC5maWVsZHMgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0ID0gZmllbGRHcm91cExpc3Q7XG4gICAgICB0aGlzLmZpZWxkTGlzdCA9IHRoaXMuZGVlcENsb25lKGZpZWxkTGlzdCk7XG4gICAgICBsZXQgZW50cnlUeXBlc0lkID0gdGhpcy5lbnRyeVR5cGVzSWQ7XG4gICAgICBpZiAoZW50cnlUeXBlc0lkKSB7XG4gICAgICAgIHRoaXMuZW50cnlUeXBlc0lkID0gZW50cnlUeXBlc0lkO1xuICAgICAgICB0aGlzLmdldEVudHJ5VHlwZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvKirojrflj5bmnaHnm67nsbvlnovor6bmg4UgKi9cbiAgZ2V0RW50cnlUeXBlcygpIHtcbiAgICBsZXQgZmllbGRMaXN0OiBhbnkgPSB0aGlzLmRlZXBDbG9uZSh0aGlzLmZpZWxkTGlzdCk7XG4gICAgdGhpcy5fRW50cnlUeXBlQWRtaW5TZXJ2aWNlLmdldCh0aGlzLmVudHJ5VHlwZXNJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICByZXMuZmllbGRUYWJzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBlbC5maWVsZHMuZm9yRWFjaCgoZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICBlbGQuaWQgPSBlbGQuZmllbGRJZDtcbiAgICAgICAgICBlbGQuZ3JvdXBJZCA9IGZpZWxkTGlzdC5maW5kKGVsZmQgPT4gZWxmZC5pZCA9PSBlbGQuZmllbGRJZCkuZ3JvdXBJZDtcbiAgICAgICAgICB0aGlzLmZvcm1SaWdodEdyb3VwLnB1c2goZWxkKTtcbiAgICAgICAgICBsZXQgZmllbGRpbmRleCA9IGZpZWxkTGlzdC5maW5kSW5kZXgoZWxmbCA9PiBlbGZsLmlkID09IGVsZC5maWVsZElkKTtcbiAgICAgICAgICBmaWVsZExpc3Quc3BsaWNlKGZpZWxkaW5kZXgsIDEpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5maWVsZEdyb3VwTGlzdC5mb3JFYWNoKChlbDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgICBlbC5maWVsZHMgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm5ld0VudGl0eS5wYXRjaFZhbHVlKHJlcyk7XG4gICAgICB0aGlzLmVudHJ5VHlwZXNTZWxlY3QgPSByZXM7XG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZSA9IHJlcy5maWVsZFRhYnM7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIOa3seaLt+i0nS0t5pa55rOVXG4gICAqICRhcGkuZGVlcENsb25lKCkgICovXG4gIGRlZXBDbG9uZShvYmo6IGFueSkge1xuICAgIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpIHJldHVybiBvYmo7XG4gICAgY29uc3QgcmVzdWx0ID0gQXJyYXkuaXNBcnJheShvYmopID8gW10gOiB7fTtcbiAgICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcgJiYgb2JqW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICBpZiAob2JqW2tleV0gaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IG5ldyBEYXRlKG9ialtrZXldLmdldFRpbWUoKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChvYmpba2V5XSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBuZXcgUmVnRXhwKG9ialtrZXldKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB0aGlzLmRlZXBDbG9uZShvYmpba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gb2JqW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIG5hbWVWYWx1ZSDojrflj5bmiYDmnInlrZfmrrVcbiAgICovXG4gIGdldEZpZWxkTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlXG4gICAgICAgIC5nZXRMaXN0KHtcbiAgICAgICAgICBtYXhSZXN1bHRDb3VudDogMTAwMCxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICByZXMuaXRlbXMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBlbC5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgZWwuc2hvd09uTGlzdCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlc29sdmUocmVzLml0ZW1zKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog5ouW5ou9IOWKn+iDvSovXG4gIC8qKuaVsOaNrua6kCAqL1xuICAvKirmlbDmja7mupAt5a2X5q615YiG57uE5pWw5o2uLeWMheWQq+Wtl+auteaVsOaNriBmaWVsZHMgKi9cbiAgZmllbGRHcm91cExpc3Q6IGFueVtdID0gW107XG4gIC8qKuaVsOaNrua6kC3miYDmnInlrZfmrrXliJfooaggKi9cbiAgZmllbGRMaXN0OiBhbnlbXSA9IFtdO1xuICAvKirmlbDmja7mupDmi5bmi73nmoTliIbnu4TkuIvmoIcgKi9cbiAgRGF0YVNvdXJjZUdyb3VwSW5kZXg6IG51bWJlcjtcbiAgLyoq5pWw5o2u5rqQ5ouW5ou955qE5a2X5q615LiL5qCHICovXG4gIERhdGFTb3VyY2VGaWVsZEluZGV4OiBudW1iZXI7XG4gIC8qKuebruagh+a6kCDnu5PmnpwqL1xuICByZXN1bHRTb3VyY2U6IGFueVtdID0gW107XG5cbiAgLyoq5LuO5pWw5o2u5rqQ5ouW5ou955qE5YWD57SgICovXG4gIGZyb21EYXRhU291cmNlRHJhZ0VsOiBhbnk7XG4gIC8qKuS7juebruagh+a6kOaLluaLveeahOWFg+e0oCAqL1xuICBmcm9tUmVzdWx0U291cmNlRHJhZ0VsOiBhbnk7XG5cbiAgLyoq5p2l6Ieq5pWw5o2u5rqQ55qE6ZuG5ZCI77yM55So5LqO5LuO55uu5qCH5rqQ5ouW5Zue5pWw5o2u5rqQ5pe255qE5Yik5pat77yM5LiO5Y+W5YC8ICovXG4gIGZvcm1SaWdodEdyb3VwOiBhbnlbXSA9IFtdO1xuICAvKirku47mlbDmja7mupDlvIDlp4vmi5bmi70gKi9cbiAgZnJvbURhdGFTb3VyY2VEcmFnU3RhcnQoZWxlbWVudCwgZmllbGRJbmRleCwgZ3JvdXBJbmRleCkge1xuICAgIHRoaXMuZnJvbURhdGFTb3VyY2VEcmFnRWwgPSBlbGVtZW50O1xuICAgIHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXggPSBmaWVsZEluZGV4O1xuICAgIHRoaXMuRGF0YVNvdXJjZUdyb3VwSW5kZXggPSBncm91cEluZGV4O1xuICAgIHRoaXMuZnJvbVJlc3VsdFNvdXJjZURyYWdFbCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvKirku47nm67moIfmupDlvIDlp4vmi5bmi70gKi9cbiAgZnJvbVJlc3VsdFNvdXJjZURyYWdTdGFydChlbGVtZW50KSB7XG4gICAgdGhpcy5mcm9tUmVzdWx0U291cmNlRHJhZ0VsID0gZWxlbWVudDtcbiAgICB0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5EYXRhU291cmNlR3JvdXBJbmRleCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvKirmi5bmi73liLDmlbDmja7mupDml7bop6blj5EgKi9cbiAgZHJhZ1RvRGF0YVNvdXJjZURyb3BwZWQoKSB7XG4gICAgLy/ku47mlbDmja7mupDmi5bmi73liLDmlbDmja7mupAt5o6S5bqPXG4gICAgaWYgKHRoaXMuZnJvbURhdGFTb3VyY2VEcmFnRWwpIHtcbiAgICB9XG4gICAgbGV0IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsID0gdGhpcy5mcm9tUmVzdWx0U291cmNlRHJhZ0VsO1xuICAgIGxldCBmb3JtUmlnaHRHcm91cCA9IHRoaXMuZGVlcENsb25lKHRoaXMuZm9ybVJpZ2h0R3JvdXApO1xuICAgIGxldCBmaWVsZExpc3QgPSB0aGlzLmRlZXBDbG9uZSh0aGlzLmZpZWxkTGlzdCk7XG5cbiAgICBpZiAoX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwpIHtcbiAgICAgIC8v56e75YqoXG4gICAgICAvL+S7juebruagh+a6kOaLluaLveWIsOaVsOaNrua6kFxuICAgICAgLy8g5ouW5ou955uu5qCH5rqQ55qE5LiL5qCHXG4gICAgICBsZXQgZHJhZ1Jlc3VsdFNvdXJjZUluZGV4ID0gdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkcy5maW5kSW5kZXgoXG4gICAgICAgIGVsID0+IGVsLmlkID09IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsLmlkXG4gICAgICApO1xuICAgICAgLy/liKDpmaTnm67moIfmupDkuK3nmoTmlbDmja5cbiAgICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuc3BsaWNlKGRyYWdSZXN1bHRTb3VyY2VJbmRleCwgMSk7XG4gICAgICBmb3JtUmlnaHRHcm91cC5zcGxpY2UoXG4gICAgICAgIGZvcm1SaWdodEdyb3VwLmZpbmRJbmRleChlbCA9PiBlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5pZCksXG4gICAgICAgIDFcbiAgICAgICk7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0LmZvckVhY2goZWwgPT4ge1xuICAgICAgICBpZiAoZWwuaWQgPT0gX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwuZ3JvdXBJZCkge1xuICAgICAgICAgIGNvbnN0IGVsRmllbGRzQWxsID0gZmllbGRMaXN0LmZpbHRlcihlbHMgPT4gZWxzLmdyb3VwSWQgPT09IGVsLmlkKTtcbiAgICAgICAgICBlbC5maWVsZHMgPSBlbEZpZWxkc0FsbC5maWx0ZXIoXG4gICAgICAgICAgICBpdGVtID0+ICFmb3JtUmlnaHRHcm91cC5zb21lKGl0ZW1CID0+IGl0ZW0uaWQgPT09IGl0ZW1CLmlkKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5mb3JtUmlnaHRHcm91cCA9IGZvcm1SaWdodEdyb3VwO1xuICAgIH1cblxuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpO1xuICB9XG4gIC8qKuaLluaLveWIsOebruagh+a6kOaXtuinpuWPkVxuICAgKlxuICAgKi9cbiAgZHJhZ1RvUmVzdWx0U291cmNlRHJvcHBlZChmaWVsZFRhYnN0ZW06IGFueSwgZmllbGRUYWJzSW5kZXgpIHtcbiAgICBjb25zdCBfZnJvbURhdGFTb3VyY2VEcmFnRWwgPSB0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsO1xuICAgIC8v5LuO5pWw5o2u5rqQ5ouW5ou95Yiw55uu5qCH5rqQXG4gICAgaWYgKF9mcm9tRGF0YVNvdXJjZURyYWdFbCkge1xuICAgICAgdGhpcy5maWVsZEdyb3VwTGlzdFt0aGlzLkRhdGFTb3VyY2VHcm91cEluZGV4XS5maWVsZHMuc3BsaWNlKHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXgsIDEpO1xuICAgICAgdGhpcy5yZXN1bHRTb3VyY2VbZmllbGRUYWJzSW5kZXhdLmZpZWxkcy5wdXNoKF9mcm9tRGF0YVNvdXJjZURyYWdFbCk7XG4gICAgICB0aGlzLmZvcm1SaWdodEdyb3VwLnB1c2goX2Zyb21EYXRhU291cmNlRHJhZ0VsKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldGZpZWxkVGFic0Zyb20oKTtcbiAgfVxuICAvKiog5LuO55uu5qCH5rqQ5ouW5ou95Yiw55uu5qCH5rqQKi9cbiAgZHJhZ1RvUmVzdWx0U291cmNlSXRlbURyb3BwZWQoZmllbGRzSW5kZXgpIHtcbiAgICBjb25zdCBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbCA9IHRoaXMuZnJvbVJlc3VsdFNvdXJjZURyYWdFbDtcbiAgICBpZiAoX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwpIHtcbiAgICAgIC8vIOaLluaLveebruagh+a6kOeahOS4i+agh1xuICAgICAgbGV0IGRyYWdSZXN1bHRTb3VyY2VJbmRleCA9IHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuZmluZEluZGV4KFxuICAgICAgICBlbCA9PiBlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5pZFxuICAgICAgKTtcbiAgICAgIC8v5Yig6Zmk55uu5qCH5rqQ5Lit55qE5pWw5o2uXG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzLnNwbGljZShkcmFnUmVzdWx0U291cmNlSW5kZXgsIDEpO1xuICAgICAgdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkcy5zcGxpY2UoZmllbGRzSW5kZXgsIDAsIF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsKTtcbiAgICB9XG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKCk7XG4gIH1cbiAgLyoq6K6+572uZm9ybUHooajljZUgKi9cbiAgc2V0ZmllbGRUYWJzRnJvbSgpIHtcbiAgICBsZXQgc2V0QXJyYXkgPSBbXTtcbiAgICB0aGlzLnJlc3VsdFNvdXJjZS5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGxldCBmaWVsZHNBcnJheSA9IFtdO1xuICAgICAgZWwuZmllbGRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGZpZWxkc0FycmF5LnB1c2goe1xuICAgICAgICAgIGZpZWxkSWQ6IGl0ZW0uaWQgfHwgaXRlbS5maWVsZElkLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBpdGVtLmRpc3BsYXlOYW1lLFxuICAgICAgICAgIHJlcXVpcmVkOiBpdGVtPy5yZXF1aXJlZCxcbiAgICAgICAgICBzaG93T25MaXN0OiBpdGVtPy5zaG93T25MaXN0LFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgc2V0QXJyYXkucHVzaCh7XG4gICAgICAgIG5hbWU6IGVsLm5hbWUsXG4gICAgICAgIGZpZWxkczogZmllbGRzQXJyYXksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLm5ld0VudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgIGZpZWxkVGFiczogc2V0QXJyYXksXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBfVmFsaWRhdG9yc1NlcnZpY2UgPSBpbmplY3QoVmFsaWRhdG9yc1NlcnZpY2UpO1xuICAvKirooajljZXpqozor4HnirbmgIFcbiAgICoge1xuICAgKiAgdGl0bGU6dHJ1ZSxcbiAgICogfVxuICAgKi9cbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xuaXNTdWJtaXQ6Ym9vbGVhbiA9IGZhbHNlO1xuICAvKirkv53lrZjooajljZUgKi9cbiAgc2F2ZSgpIHtcbiAgICBpZih0aGlzLmlzU3VibWl0KSByZXR1cm47XG4gICAgdGhpcy5pc1N1Ym1pdCA9IHRydWU7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWU7XG5cbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uID0gdGhpcy5fVmFsaWRhdG9yc1NlcnZpY2UuZ2V0Rm9ybVZhbGlkYXRpb25TdGF0dXModGhpcy5uZXdFbnRpdHkpO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCAnQ21zJykpIHJldHVybiAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmVudHJ5VHlwZXNTZWxlY3QpIHtcbiAgICAgIHRoaXMuX0VudHJ5VHlwZUFkbWluU2VydmljZS51cGRhdGUodGhpcy5lbnRyeVR5cGVzU2VsZWN0LmlkLCBpbnB1dCkucGlwZShmaW5hbGl6ZSgoKT0+e1xuICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XG4gICAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XG4gICAgICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpbnB1dC5zZWN0aW9uSWQgPSB0aGlzLnNlY3Rpb25JZDtcbiAgICB0aGlzLl9FbnRyeVR5cGVBZG1pblNlcnZpY2UuY3JlYXRlKGlucHV0KS5waXBlKGZpbmFsaXplKCgpPT57XG4gICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XG4gICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XG4gICAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0KCk7XG4gICAgfSk7XG4gIH1cbiAgLyoq57yW6L6RVGFic+ihqOWNlSAqL1xuICBlZGl0RmllbGRUYWJzRnJvbTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuICAvKirmqKHmgIHmoYbnirbmgIEgKi9cbiAgdmlzaWJsZVRhYnNPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKuaYr+WQpuaYr+W/meeijOeKtuaAgSAqL1xuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoq5q2j5Zyo57yW6L6R55qEdGFicyAqL1xuICBlZGl0RmllbGRUYWJzU2VsZWN0OiBhbnk7XG4gIC8qKuato+WcqOmAieS4reeahG5hdiAqL1xuICBuYXZBY3RpdmU6IGFueSA9IDA7XG5cbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7tiAqL1xuICBAVmlld0NoaWxkKCdlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG4nLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZWRpdEZpZWxkVGFic01vZGFsU3VibWl0QnRuOiBFbGVtZW50UmVmO1xuXG4gIC8qKuaooeaAgeahhueKtuaAgeaUueWPmOWbnuiwgyAqL1xuICBWaXNpYmxlVGFic0NoYW5nZShldmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuZWRpdEZpZWxkVGFic1NlbGVjdCA9ICcnO1xuICAgICAgdGhpcy5mb3JtVmFsaWRhdGlvbiA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICAvKirmlrDlu7rlop7liqBGaWVsZFRhYnMgKi9cbiAgYWRkRmllbGRUYWJzKCkge1xuICAgIHRoaXMuZWRpdEZpZWxkVGFic0Zyb20gPSB0aGlzLmZiLmdyb3VwKG5ldyBmaWVsZFRhYnNCYXNlKCkpO1xuICAgIHRoaXMudmlzaWJsZVRhYnNPcGVuID0gdHJ1ZTtcbiAgfVxuICAvKirmraPlnKjnvJbovpHnmoR0YWLkuIvmoIcgKi9cbiAgbmV3RWRpdEZpZWxkVGFic0luZGV4OiBudW1iZXI7XG4gIC8qKue8lui+kUZpZWxkVGFicyAqL1xuICBlZGl0RmllbGRUYWJzKGl0ZW0sIGkpIHtcbiAgICB0aGlzLmVkaXRGaWVsZFRhYnNGcm9tID0gdGhpcy5mYi5ncm91cChuZXcgZmllbGRUYWJzQmFzZSgpKTtcbiAgICB0aGlzLmVkaXRGaWVsZFRhYnNGcm9tLnBhdGNoVmFsdWUoe1xuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgIH0pO1xuICAgIHRoaXMuZWRpdEZpZWxkVGFic1NlbGVjdCA9IGl0ZW07XG4gICAgdGhpcy52aXNpYmxlVGFic09wZW4gPSB0cnVlO1xuICAgIHRoaXMubmV3RWRpdEZpZWxkVGFic0luZGV4ID0gaTtcbiAgfVxuXG4gIC8qKuS/neWtmOe8lui+kXRhYnPooajljZUgKi9cbiAgZWRpdEZpZWxkVGFic1NhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmVkaXRGaWVsZFRhYnNGcm9tLnZhbHVlLm5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy/nvJbovpFcbiAgICBpZiAodGhpcy5lZGl0RmllbGRUYWJzU2VsZWN0KSB7XG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5ld0VkaXRGaWVsZFRhYnNJbmRleF0ubmFtZSA9IHRoaXMuZWRpdEZpZWxkVGFic0Zyb20udmFsdWUubmFtZTtcbiAgICAgIHRoaXMubmF2QWN0aXZlID0gdGhpcy5uZXdFZGl0RmllbGRUYWJzSW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8v5paw5bu6XG4gICAgICB0aGlzLmFkZENvbnRyb2xUb0ZpZWxkVGFicyh0aGlzLmVkaXRGaWVsZFRhYnNGcm9tLnZhbHVlLm5hbWUpO1xuICAgIH1cbiAgICB0aGlzLnZpc2libGVUYWJzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpO1xuICB9XG4gIC8qKuWIoOmZpOafkOS4qnRhYnPooajljZUgKi9cbiAgZGVsZXRlRmllbGRUYWJzKGluZGV4KSB7XG4gICAgdGhpcy5maWVsZFRhYnMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIHRoaXMucmVzdWx0U291cmNlLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKirnvJbovpHlrZfmrrXmqKHmgIHmoYbnirbmgIEgKi9cbiAgdmlzaWJsZUVkaXRGaWVsZE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoq57yW6L6R5a2X5q615qih5oCB5qGG6KGo5Y2VICovXG4gIGVkaXRGaWVsZEZyb206IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7ti3nvJbovpHlrZfmrrUgKi9cbiAgQFZpZXdDaGlsZCgnZWRpdEZpZWxkTW9kYWxTdWJtaXRCdG4nLCB7IHN0YXRpYzogZmFsc2UgfSkgZWRpdEZpZWxkTW9kYWxTdWJtaXRCdG46IEVsZW1lbnRSZWY7XG4gIC8qKuato+WcqOe8lui+keeahOWtl+auteS4i+aghyAqL1xuICBFZGl0RmllbGRJbmRleDogbnVtYmVyO1xuICAvKirnvJbovpHlrZfmrrXmqKHmgIHmoYbnirbmgIHnirbmgIHmlLnlj5jlm57osIMgKi9cbiAgVmlzaWJsZUVkaXRGaWVsZENoYW5nZShldmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuRWRpdEZpZWxkSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIC8qKuaJk+W8gOe8lui+keWtl+auteaooeaAgeahhiAqL1xuICBFZGl0RmllbGRNb2RhbE9wZW4oaXRlbXMsIGVsSW5kZXgpIHtcbiAgICB0aGlzLnZpc2libGVFZGl0RmllbGRPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLkVkaXRGaWVsZEluZGV4ID0gZWxJbmRleDtcbiAgICB0aGlzLmVkaXRGaWVsZEZyb20gPSB0aGlzLmZiLmdyb3VwKG5ldyBmaWVsZHNCYXNlKCkpO1xuICAgIHRoaXMuZWRpdEZpZWxkRnJvbS5wYXRjaFZhbHVlKHRoaXMuZmllbGRUYWJzLnZhbHVlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbZWxJbmRleF0pO1xuICB9XG4gIC8qKuS/neWtmOe8lui+keWtl+autSAqL1xuICBlZGl0RmllbGRTYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMuZWRpdEZpZWxkRnJvbS52YWx1ZTtcbiAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzW3RoaXMuRWRpdEZpZWxkSW5kZXhdLmRpc3BsYXlOYW1lID0gaW5wdXQuZGlzcGxheU5hbWU7XG4gICAgdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkc1t0aGlzLkVkaXRGaWVsZEluZGV4XS5yZXF1aXJlZCA9IGlucHV0LnJlcXVpcmVkO1xuICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbdGhpcy5FZGl0RmllbGRJbmRleF0uc2hvd09uTGlzdCA9IGlucHV0LnNob3dPbkxpc3Q7XG4gICAgdGhpcy52aXNpYmxlRWRpdEZpZWxkT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpO1xuICB9XG5cbiAgLyoqbmFtZeihqOWNleaOp+S7tiAqL1xuICBnZXQgbmFtZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLm5ld0VudGl0eS5nZXQoJ25hbWUnKTtcbiAgfVxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBsZXQgcGlueWluID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpO1xuICAgIGxldCBuYW1lSW5wdXQgPSB0aGlzLm5hbWVJbnB1dDtcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm47XG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJyb3cgZy0zIG5lZWRzLXZhbGlkYXRpb25cIiBbZm9ybUdyb3VwXT1cIm5ld0VudGl0eVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgW2NsYXNzXT1cInsnd2FzLXZhbGlkYXRlZCc6Zm9ybVZhbGlkYXRpb259XCIgIChzdWJtaXQpPVwic2F2ZSgpXCI+XG4gICAgPGFicC1wYWdlIFt0aXRsZV09XCJlbnRyeVR5cGVzSWQgPyAoJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbik6KCdDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb24pXCJcbiAgICAgICAgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLW9yLWVkaXQtZW50cnktdHlwZS1wYWdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cImZpZWxkVGFic1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkZpZWxkTGF5b3V0JyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBbKGFjdGl2ZUlkKV09XCJuYXZBY3RpdmVcIiBjbGFzcz1cIm5hdiBuYXYtdGFic1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXN1bHRTb3VyY2U7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nYk5hdkl0ZW1dPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93biBuZ2JOYXZMaW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTFcIiAoY2xpY2suc3RvcCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IHN0eWxlPVwiei1pbmRleDogOTk5O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBuZ2JEcm9wZG93bkl0ZW0gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImVkaXRGaWVsZFRhYnMoaXRlbSxpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1lZGl0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYkRyb3Bkb3duSXRlbSAqbmdJZj1cInJlc3VsdFNvdXJjZS5sZW5ndGggIT09IDFcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZGVsZXRlRmllbGRUYWJzKGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMlwiIG9uZHJhZ292ZXI9XCJldmVudC5wcmV2ZW50RGVmYXVsdCgpO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJkcmFnVG9SZXN1bHRTb3VyY2VEcm9wcGVkKGl0ZW0saSlcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkXCIgKm5nSWY9XCJpdGVtLmZpZWxkcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydDbXM6OkRyYWdBbmREcm9wRmllbGRUaXBzJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWwgb2YgaXRlbS5maWVsZHM7IGxldCBpZWwgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZHJhZ2dhYmxlPVwidHJ1ZVwiIChkcmFnc3RhcnQpPVwiZnJvbVJlc3VsdFNvdXJjZURyYWdTdGFydChlbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyb3ApPVwiZHJhZ1RvUmVzdWx0U291cmNlSXRlbURyb3BwZWQoaWVsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB5LTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogdW5zZXQ7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbC5kaXNwbGF5TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInAtMCBidG4gYnRuLXNtIGJ0bi1saWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiRWRpdEZpZWxkTW9kYWxPcGVuKGVsLGllbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj48aSBjbGFzcz1cImZhcyBmYS13cmVuY2ggcC1zbS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm5hdi1saW5rXCIgKGNsaWNrLnN0b3ApPVwiYWRkRmllbGRUYWJzKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpOZXdUYWInIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIiBjbGFzcz1cIm10LTIgYm9yZGVybk5hdnMgcC0wXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uICNhY2NvcmRpb249XCJuZ2JBY2NvcmRpb25cIiBvbmRyYWdvdmVyPVwiZXZlbnQucHJldmVudERlZmF1bHQoKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJkcmFnVG9EYXRhU291cmNlRHJvcHBlZCgpXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiA4MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpZWxkR3JvdXBMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ2JBY2NvcmRpb25JdGVtXT1cIml0ZW0ubmFtZVwiICpuZ0lmPVwiaXRlbS5maWVsZHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBuZ2JBY2NvcmRpb25IZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiQWNjb3JkaW9uQnV0dG9uPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ0Ntczo6JytpdGVtLm5hbWUpIHwgYWJwTG9jYWxpemF0aW9uIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWwgb2YgaXRlbS5maWVsZHM7IGxldCBpaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJmcm9tRGF0YVNvdXJjZURyYWdTdGFydChlbCxpaSxpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbC5kaXNwbGF5TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvYWJwLXBhZ2U+XG5cbjwvZm9ybT5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cInZpc2libGVUYWJzT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cIlZpc2libGVUYWJzQ2hhbmdlKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cbiAgICAgICAgPGgzPnt7IGVkaXRGaWVsZFRhYnNTZWxlY3QgPyAoJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbik6KCdDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb24pfX08L2gzPjIyXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdEZpZWxkVGFic0Zyb207IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGaWVsZFRhYnNGcm9tXCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBbY2xhc3NdPVwieyd3YXMtdmFsaWRhdGVkJzpmb3JtVmFsaWRhdGlvbn1cIiAoc3VibWl0KT1cImVkaXRGaWVsZFRhYnNTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjZWRpdEZpZWxkVGFic01vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG4ubmF0aXZlRWxlbWVudC5jbGljaygpXCI+e3snQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPlxuXG5cbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJ2aXNpYmxlRWRpdEZpZWxkT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cIlZpc2libGVFZGl0RmllbGRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2gzPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRlclJlZj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtcHVsc2UgZmEtc3Bpbm5lclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRGaWVsZEZyb207IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGaWVsZEZyb21cIiAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChzdWJtaXQpPVwiZWRpdEZpZWxkU2F2ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgI2VkaXRGaWVsZE1vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlcXVpcmVkXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJyZXF1aXJlZFwiPiB7eydDbXM6OlJlcXVpcmVkJyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwic2hvd09uTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzaG93T25MaXN0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJzaG93T25MaXN0XCI+IHt7J0Ntczo6U2hvd09uTGlzdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBbZGlzYWJsZWRdPVwiIWVkaXRGaWVsZEZyb20udmFsaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRGaWVsZE1vZGFsU3VibWl0QnRuLm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
|
|
404
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9lbnRyeS10eXBlcy9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2VudHJ5LXR5cGVzL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBR25FLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsYUFBYSxFQUNiLFVBQVUsR0FDWCxNQUFNLHlDQUF5QyxDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7O0FBY2hDLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSxPQUF1QixFQUN4QixTQUFtQixFQUNsQixLQUFxQixFQUN0Qix1QkFBK0MsRUFDL0Msa0JBQXFDLEVBQ3JDLHNCQUE2QyxFQUM3QyxvQkFBeUMsRUFDekMsY0FBNkI7UUFQNUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUN0Qiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQy9DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBRTlCLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsVUFBVTtRQUNWLGNBQVMsR0FBMEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSw4QkFBOEIsRUFBRSxDQUFDLENBQUM7UUFDdkYsVUFBVTtRQUNWLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsWUFBWTtRQUNaLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBNkgxQjtrQkFDVTtRQUNWLFNBQVM7UUFDVCw4QkFBOEI7UUFDOUIsbUJBQWMsR0FBVSxFQUFFLENBQUM7UUFDM0IsZ0JBQWdCO1FBQ2hCLGNBQVMsR0FBVSxFQUFFLENBQUM7UUFLdEIsV0FBVztRQUNYLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBT3pCLGtDQUFrQztRQUNsQyxtQkFBYyxHQUFVLEVBQUUsQ0FBQztRQW9HbkIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQ7Ozs7V0FJRztRQUNILG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQzNCLGFBQVEsR0FBVyxLQUFLLENBQUM7UUErQnZCLFdBQVc7UUFDWCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxhQUFhO1FBQ2IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUczQixjQUFjO1FBQ2QsY0FBUyxHQUFRLENBQUMsQ0FBQztRQXNEbkIsZUFBZTtRQUNmLHlCQUFvQixHQUFZLEtBQUssQ0FBQztJQWpXbkMsQ0FBQztJQVlKLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFjLENBQUM7SUFDdEQsQ0FBQztJQUtELFlBQVk7SUFDWixjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDbEUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzNCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxTQUFTLEdBQUcsRUFBRTtRQUNsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDaEMsSUFBSSxhQUFhLENBQUM7WUFDaEIsSUFBSSxFQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFDcEQsQ0FBQyxDQUFDLFNBQVM7U0FDaEIsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVk7SUFDWixhQUFhO1FBQ1gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1lBQzdELElBQUksU0FBUyxHQUFRLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9DLElBQUksY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDL0IsY0FBYyxDQUFDLE9BQU8sQ0FBQztnQkFDckIsRUFBRSxFQUFFLElBQUk7Z0JBQ1IsSUFBSSxFQUFFLGlCQUFpQjthQUN4QixDQUFDLENBQUM7WUFDSCxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBTyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUN4QyxFQUFFLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3JDLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWM7SUFDZCxhQUFhO1FBQ1gsSUFBSSxTQUFTLEdBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pFLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN6QixFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUM3QixHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7b0JBQ3JCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQztvQkFDckUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzlCLElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDN0MsRUFBRSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRDs7MkJBRXVCO0lBQ3ZCLFNBQVMsQ0FBQyxHQUFRO1FBQ2hCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUMsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUN0RCxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQzt3QkFDN0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO29CQUM3QyxDQUFDO3lCQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLE1BQU0sRUFBRSxDQUFDO3dCQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekMsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNEOzs7T0FHRztJQUNILFlBQVk7UUFDVixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxrQkFBa0I7aUJBQ3BCLE9BQU8sQ0FBQztnQkFDUCxjQUFjLEVBQUUsSUFBSTthQUNyQixDQUFDO2lCQUNELFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDckIsRUFBRSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBQ3BCLEVBQUUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBdUJELGNBQWM7SUFDZCx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVU7UUFDckQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztRQUNwQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUM7UUFDdkMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsY0FBYztJQUNkLHlCQUF5QixDQUFDLE9BQU87UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsZUFBZTtJQUNmLHVCQUF1QjtRQUNyQixlQUFlO1FBQ2YsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDMUQsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0MsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1lBQzVCLElBQUk7WUFDSixZQUFZO1lBQ1osV0FBVztZQUNYLElBQUkscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDNUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLHVCQUF1QixDQUFDLEVBQUUsQ0FDMUMsQ0FBQztZQUNGLFdBQVc7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFFLGNBQWMsQ0FBQyxNQUFNLENBQ25CLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxFQUNuRSxDQUFDLENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQzdDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbkUsRUFBRSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUM1RCxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0Q7O09BRUc7SUFDSCx5QkFBeUIsQ0FBQyxZQUFpQixFQUFFLGNBQWM7UUFDekQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDeEQsWUFBWTtRQUNaLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNGLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxnQkFBZ0I7SUFDaEIsNkJBQTZCLENBQUMsV0FBVztRQUN2QyxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztRQUM1RCxJQUFJLHVCQUF1QixFQUFFLENBQUM7WUFDNUIsV0FBVztZQUNYLElBQUkscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDNUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLHVCQUF1QixDQUFDLEVBQUUsQ0FDMUMsQ0FBQztZQUNGLFdBQVc7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNGLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsZUFBZTtJQUNmLGdCQUFnQjtRQUNkLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUM3QixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDckIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLFdBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU87b0JBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0IsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRO29CQUN4QixVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVU7aUJBQzdCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDWixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUk7Z0JBQ2IsTUFBTSxFQUFFLFdBQVc7YUFDcEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUN4QixTQUFTLEVBQUUsUUFBUTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBU0QsVUFBVTtJQUNWLElBQUk7UUFDRixJQUFHLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUVqQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEYsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDO1lBQUUsT0FBUyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUVwRyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUUsRUFBRTtnQkFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1QsQ0FBQztRQUNELEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWdCRCxlQUFlO0lBQ2YsaUJBQWlCLENBQUMsS0FBSztRQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO0lBQ0gsQ0FBQztJQUNELG1CQUFtQjtJQUNuQixZQUFZO1FBQ1YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBR0QsaUJBQWlCO0lBQ2pCLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSTtRQUNKLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDdkYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJO1lBQ0osSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxnQkFBZ0I7SUFDaEIsZUFBZSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFVRCxxQkFBcUI7SUFDckIsc0JBQXNCLENBQUMsS0FBSztRQUMxQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFDRCxlQUFlO0lBQ2Ysa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU87UUFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUNELFlBQVk7SUFDWixhQUFhO1FBQ1gsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUM5RixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDNUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztJQUNkLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELHlCQUF5QjtJQUN6QixvQkFBb0IsQ0FBQyxLQUFLO1FBQ3hCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsSUFBSSxTQUFTLENBQUMsS0FBSztZQUFFLE9BQU87UUFDNUIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQXJaVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiw2Q0FQckI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjthQUM3QztTQUNGLHNZQzVCSCxtb1pBMExZOzsyRkQ1SkMscUJBQXFCO2tCQVhqQyxTQUFTOytCQUNFLG9CQUFvQixhQUduQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjt5QkFDN0M7cUJBQ0Y7OFNBNkIyQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBNlIxQywyQkFBMkI7c0JBRDFCLFNBQVM7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQXdERix1QkFBdUI7c0JBQS9FLFNBQVM7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIENyZWF0ZU9yRWRpdEVudHJ5VHlwZUlucHV0QmFzZSxcbiAgZmllbGRUYWJzQmFzZSxcbiAgZmllbGRzQmFzZSxcbn0gZnJvbSAnLi9jcmVhdGUtb3ItZWRpdC4tZW50cnktdHlwZS1pbnB1dC1iYXNlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IFVwZGF0ZUxpc3RTZXJ2aWNlIH0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmUnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpZWxkQWRtaW5TZXJ2aWNlLCBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvYWRtaW4vZmllbGRzJztcbmltcG9ydCB7IEVudHJ5VHlwZUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2FkbWluL3NlY3Rpb25zJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LlNlY3Rpb25zQ3JlYXRlT3JFZGl0LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZU9yRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIF9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlOiBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRmllbGRBZG1pblNlcnZpY2U6IEZpZWxkQWRtaW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRW50cnlUeXBlQWRtaW5TZXJ2aWNlOiBFbnRyeVR5cGVBZG1pblNlcnZpY2UsXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZVxuICApIHt9XG4gIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSk7XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBuZXdFbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCA9IHRoaXMuZmIuZ3JvdXAobmV3IENyZWF0ZU9yRWRpdEVudHJ5VHlwZUlucHV0QmFzZSgpKTtcbiAgLyoq54mI5Z2XaWQgKi9cbiAgc2VjdGlvbklkOiBzdHJpbmcgPSAnJztcbiAgLyoq5p2h55uu57G75Z6LaWQgKi9cbiAgZW50cnlUeXBlc0lkOiBzdHJpbmcgPSAnJztcbiAgLyoq5p2h55uu57G75Z6L6K+m5oOFICovXG4gIGVudHJ5VHlwZXNTZWxlY3Q6IGFueTtcblxuICBnZXQgZmllbGRUYWJzKCkge1xuICAgIHJldHVybiB0aGlzLm5ld0VudGl0eS5nZXQoJ2ZpZWxkVGFicycpIGFzIEZvcm1BcnJheTtcbiAgfVxuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIC8qKuinpuWPkeaPkOS6pOaMiemSriAqL1xuICBzdWJtaXRjbGlja0J0bigpIHtcbiAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgc2VjdGlvbklkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuc2VjdGlvbnNJZDtcbiAgICB0aGlzLmVudHJ5VHlwZXNJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmVudHJ5VHlwZXNJZCB8fCAnJztcbiAgICBpZiAoc2VjdGlvbklkKSB7XG4gICAgICB0aGlzLnNlY3Rpb25JZCA9IHNlY3Rpb25JZDtcbiAgICAgIHRoaXMuYWRkQ29udHJvbFRvRmllbGRUYWJzKCk7XG4gICAgICB0aGlzLmdldEZpZWxkR3JvdXAoKTtcbiAgICB9XG4gIH1cblxuICAvKirnu5lmaWVsZFRhYnPmt7vliqDmlrDmjqfku7YgKi9cbiAgYWRkQ29udHJvbFRvRmllbGRUYWJzKG5hbWVWYWx1ZSA9ICcnKSB7XG4gICAgY29uc3QgbmV3Rm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cChcbiAgICAgIG5ldyBmaWVsZFRhYnNCYXNlKHtcbiAgICAgICAgbmFtZTpcbiAgICAgICAgICB0aGlzLmZpZWxkVGFicy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgID8gdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkZpZWxkVGFiYClcbiAgICAgICAgICAgIDogbmFtZVZhbHVlLFxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZmllbGRUYWJzLnB1c2gobmV3Rm9ybUdyb3VwKTtcbiAgICB0aGlzLnJlc3VsdFNvdXJjZS5wdXNoKG5ld0Zvcm1Hcm91cC52YWx1ZSk7XG4gICAgdGhpcy5uYXZBY3RpdmUgPSB0aGlzLnJlc3VsdFNvdXJjZS5sZW5ndGggLSAxO1xuICB9XG5cbiAgLyoq6I635Y+W5a2X5q615YiG57uEICovXG4gIGdldEZpZWxkR3JvdXAoKSB7XG4gICAgdGhpcy5fRmllbGRHcm91cEFkbWluU2VydmljZS5nZXRMaXN0KHt9KS5zdWJzY3JpYmUoYXN5bmMgcmVzID0+IHtcbiAgICAgIGxldCBmaWVsZExpc3Q6IGFueSA9IGF3YWl0IHRoaXMuZ2V0RmllbGRMaXN0KCk7XG4gICAgICBsZXQgZmllbGRHcm91cExpc3QgPSByZXMuaXRlbXM7XG4gICAgICBmaWVsZEdyb3VwTGlzdC51bnNoaWZ0KHtcbiAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgIG5hbWU6ICdVbmdyb3VwZWRGaWVsZHMnLFxuICAgICAgfSk7XG4gICAgICBmaWVsZEdyb3VwTGlzdC5mb3JFYWNoKChlbDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgICBlbC5maWVsZHMgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0ID0gZmllbGRHcm91cExpc3Q7XG4gICAgICB0aGlzLmZpZWxkTGlzdCA9IHRoaXMuZGVlcENsb25lKGZpZWxkTGlzdCk7XG4gICAgICBsZXQgZW50cnlUeXBlc0lkID0gdGhpcy5lbnRyeVR5cGVzSWQ7XG4gICAgICBpZiAoZW50cnlUeXBlc0lkKSB7XG4gICAgICAgIHRoaXMuZW50cnlUeXBlc0lkID0gZW50cnlUeXBlc0lkO1xuICAgICAgICB0aGlzLmdldEVudHJ5VHlwZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvKirojrflj5bmnaHnm67nsbvlnovor6bmg4UgKi9cbiAgZ2V0RW50cnlUeXBlcygpIHtcbiAgICBsZXQgZmllbGRMaXN0OiBhbnkgPSB0aGlzLmRlZXBDbG9uZSh0aGlzLmZpZWxkTGlzdCk7XG4gICAgdGhpcy5fRW50cnlUeXBlQWRtaW5TZXJ2aWNlLmdldCh0aGlzLmVudHJ5VHlwZXNJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICByZXMuZmllbGRUYWJzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBlbC5maWVsZHMuZm9yRWFjaCgoZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICBlbGQuaWQgPSBlbGQuZmllbGRJZDtcbiAgICAgICAgICBlbGQuZ3JvdXBJZCA9IGZpZWxkTGlzdC5maW5kKGVsZmQgPT4gZWxmZC5pZCA9PSBlbGQuZmllbGRJZCkuZ3JvdXBJZDtcbiAgICAgICAgICB0aGlzLmZvcm1SaWdodEdyb3VwLnB1c2goZWxkKTtcbiAgICAgICAgICBsZXQgZmllbGRpbmRleCA9IGZpZWxkTGlzdC5maW5kSW5kZXgoZWxmbCA9PiBlbGZsLmlkID09IGVsZC5maWVsZElkKTtcbiAgICAgICAgICBmaWVsZExpc3Quc3BsaWNlKGZpZWxkaW5kZXgsIDEpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5maWVsZEdyb3VwTGlzdC5mb3JFYWNoKChlbDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgICBlbC5maWVsZHMgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm5ld0VudGl0eS5wYXRjaFZhbHVlKHJlcyk7XG4gICAgICB0aGlzLmVudHJ5VHlwZXNTZWxlY3QgPSByZXM7XG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZSA9IHJlcy5maWVsZFRhYnM7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIOa3seaLt+i0nS0t5pa55rOVXG4gICAqICRhcGkuZGVlcENsb25lKCkgICovXG4gIGRlZXBDbG9uZShvYmo6IGFueSkge1xuICAgIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpIHJldHVybiBvYmo7XG4gICAgY29uc3QgcmVzdWx0ID0gQXJyYXkuaXNBcnJheShvYmopID8gW10gOiB7fTtcbiAgICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcgJiYgb2JqW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICBpZiAob2JqW2tleV0gaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IG5ldyBEYXRlKG9ialtrZXldLmdldFRpbWUoKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChvYmpba2V5XSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBuZXcgUmVnRXhwKG9ialtrZXldKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB0aGlzLmRlZXBDbG9uZShvYmpba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gb2JqW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIG5hbWVWYWx1ZSDojrflj5bmiYDmnInlrZfmrrVcbiAgICovXG4gIGdldEZpZWxkTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlXG4gICAgICAgIC5nZXRMaXN0KHtcbiAgICAgICAgICBtYXhSZXN1bHRDb3VudDogMTAwMCxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICByZXMuaXRlbXMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBlbC5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgZWwuc2hvd09uTGlzdCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlc29sdmUocmVzLml0ZW1zKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog5ouW5ou9IOWKn+iDvSovXG4gIC8qKuaVsOaNrua6kCAqL1xuICAvKirmlbDmja7mupAt5a2X5q615YiG57uE5pWw5o2uLeWMheWQq+Wtl+auteaVsOaNriBmaWVsZHMgKi9cbiAgZmllbGRHcm91cExpc3Q6IGFueVtdID0gW107XG4gIC8qKuaVsOaNrua6kC3miYDmnInlrZfmrrXliJfooaggKi9cbiAgZmllbGRMaXN0OiBhbnlbXSA9IFtdO1xuICAvKirmlbDmja7mupDmi5bmi73nmoTliIbnu4TkuIvmoIcgKi9cbiAgRGF0YVNvdXJjZUdyb3VwSW5kZXg6IG51bWJlcjtcbiAgLyoq5pWw5o2u5rqQ5ouW5ou955qE5a2X5q615LiL5qCHICovXG4gIERhdGFTb3VyY2VGaWVsZEluZGV4OiBudW1iZXI7XG4gIC8qKuebruagh+a6kCDnu5PmnpwqL1xuICByZXN1bHRTb3VyY2U6IGFueVtdID0gW107XG5cbiAgLyoq5LuO5pWw5o2u5rqQ5ouW5ou955qE5YWD57SgICovXG4gIGZyb21EYXRhU291cmNlRHJhZ0VsOiBhbnk7XG4gIC8qKuS7juebruagh+a6kOaLluaLveeahOWFg+e0oCAqL1xuICBmcm9tUmVzdWx0U291cmNlRHJhZ0VsOiBhbnk7XG5cbiAgLyoq5p2l6Ieq5pWw5o2u5rqQ55qE6ZuG5ZCI77yM55So5LqO5LuO55uu5qCH5rqQ5ouW5Zue5pWw5o2u5rqQ5pe255qE5Yik5pat77yM5LiO5Y+W5YC8ICovXG4gIGZvcm1SaWdodEdyb3VwOiBhbnlbXSA9IFtdO1xuICAvKirku47mlbDmja7mupDlvIDlp4vmi5bmi70gKi9cbiAgZnJvbURhdGFTb3VyY2VEcmFnU3RhcnQoZWxlbWVudCwgZmllbGRJbmRleCwgZ3JvdXBJbmRleCkge1xuICAgIHRoaXMuZnJvbURhdGFTb3VyY2VEcmFnRWwgPSBlbGVtZW50O1xuICAgIHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXggPSBmaWVsZEluZGV4O1xuICAgIHRoaXMuRGF0YVNvdXJjZUdyb3VwSW5kZXggPSBncm91cEluZGV4O1xuICAgIHRoaXMuZnJvbVJlc3VsdFNvdXJjZURyYWdFbCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvKirku47nm67moIfmupDlvIDlp4vmi5bmi70gKi9cbiAgZnJvbVJlc3VsdFNvdXJjZURyYWdTdGFydChlbGVtZW50KSB7XG4gICAgdGhpcy5mcm9tUmVzdWx0U291cmNlRHJhZ0VsID0gZWxlbWVudDtcbiAgICB0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5EYXRhU291cmNlR3JvdXBJbmRleCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvKirmi5bmi73liLDmlbDmja7mupDml7bop6blj5EgKi9cbiAgZHJhZ1RvRGF0YVNvdXJjZURyb3BwZWQoKSB7XG4gICAgLy/ku47mlbDmja7mupDmi5bmi73liLDmlbDmja7mupAt5o6S5bqPXG4gICAgaWYgKHRoaXMuZnJvbURhdGFTb3VyY2VEcmFnRWwpIHtcbiAgICB9XG4gICAgbGV0IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsID0gdGhpcy5mcm9tUmVzdWx0U291cmNlRHJhZ0VsO1xuICAgIGxldCBmb3JtUmlnaHRHcm91cCA9IHRoaXMuZGVlcENsb25lKHRoaXMuZm9ybVJpZ2h0R3JvdXApO1xuICAgIGxldCBmaWVsZExpc3QgPSB0aGlzLmRlZXBDbG9uZSh0aGlzLmZpZWxkTGlzdCk7XG5cbiAgICBpZiAoX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwpIHtcbiAgICAgIC8v56e75YqoXG4gICAgICAvL+S7juebruagh+a6kOaLluaLveWIsOaVsOaNrua6kFxuICAgICAgLy8g5ouW5ou955uu5qCH5rqQ55qE5LiL5qCHXG4gICAgICBsZXQgZHJhZ1Jlc3VsdFNvdXJjZUluZGV4ID0gdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkcy5maW5kSW5kZXgoXG4gICAgICAgIGVsID0+IGVsLmlkID09IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsLmlkXG4gICAgICApO1xuICAgICAgLy/liKDpmaTnm67moIfmupDkuK3nmoTmlbDmja5cbiAgICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuc3BsaWNlKGRyYWdSZXN1bHRTb3VyY2VJbmRleCwgMSk7XG4gICAgICBmb3JtUmlnaHRHcm91cC5zcGxpY2UoXG4gICAgICAgIGZvcm1SaWdodEdyb3VwLmZpbmRJbmRleChlbCA9PiBlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5pZCksXG4gICAgICAgIDFcbiAgICAgICk7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0LmZvckVhY2goZWwgPT4ge1xuICAgICAgICBpZiAoZWwuaWQgPT0gX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwuZ3JvdXBJZCkge1xuICAgICAgICAgIGNvbnN0IGVsRmllbGRzQWxsID0gZmllbGRMaXN0LmZpbHRlcihlbHMgPT4gZWxzLmdyb3VwSWQgPT09IGVsLmlkKTtcbiAgICAgICAgICBlbC5maWVsZHMgPSBlbEZpZWxkc0FsbC5maWx0ZXIoXG4gICAgICAgICAgICBpdGVtID0+ICFmb3JtUmlnaHRHcm91cC5zb21lKGl0ZW1CID0+IGl0ZW0uaWQgPT09IGl0ZW1CLmlkKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5mb3JtUmlnaHRHcm91cCA9IGZvcm1SaWdodEdyb3VwO1xuICAgIH1cblxuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpO1xuICB9XG4gIC8qKuaLluaLveWIsOebruagh+a6kOaXtuinpuWPkVxuICAgKlxuICAgKi9cbiAgZHJhZ1RvUmVzdWx0U291cmNlRHJvcHBlZChmaWVsZFRhYnN0ZW06IGFueSwgZmllbGRUYWJzSW5kZXgpIHtcbiAgICBjb25zdCBfZnJvbURhdGFTb3VyY2VEcmFnRWwgPSB0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsO1xuICAgIC8v5LuO5pWw5o2u5rqQ5ouW5ou95Yiw55uu5qCH5rqQXG4gICAgaWYgKF9mcm9tRGF0YVNvdXJjZURyYWdFbCkge1xuICAgICAgdGhpcy5maWVsZEdyb3VwTGlzdFt0aGlzLkRhdGFTb3VyY2VHcm91cEluZGV4XS5maWVsZHMuc3BsaWNlKHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXgsIDEpO1xuICAgICAgdGhpcy5yZXN1bHRTb3VyY2VbZmllbGRUYWJzSW5kZXhdLmZpZWxkcy5wdXNoKF9mcm9tRGF0YVNvdXJjZURyYWdFbCk7XG4gICAgICB0aGlzLmZvcm1SaWdodEdyb3VwLnB1c2goX2Zyb21EYXRhU291cmNlRHJhZ0VsKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldGZpZWxkVGFic0Zyb20oKTtcbiAgfVxuICAvKiog5LuO55uu5qCH5rqQ5ouW5ou95Yiw55uu5qCH5rqQKi9cbiAgZHJhZ1RvUmVzdWx0U291cmNlSXRlbURyb3BwZWQoZmllbGRzSW5kZXgpIHtcbiAgICBjb25zdCBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbCA9IHRoaXMuZnJvbVJlc3VsdFNvdXJjZURyYWdFbDtcbiAgICBpZiAoX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwpIHtcbiAgICAgIC8vIOaLluaLveebruagh+a6kOeahOS4i+agh1xuICAgICAgbGV0IGRyYWdSZXN1bHRTb3VyY2VJbmRleCA9IHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuZmluZEluZGV4KFxuICAgICAgICBlbCA9PiBlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5pZFxuICAgICAgKTtcbiAgICAgIC8v5Yig6Zmk55uu5qCH5rqQ5Lit55qE5pWw5o2uXG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzLnNwbGljZShkcmFnUmVzdWx0U291cmNlSW5kZXgsIDEpO1xuICAgICAgdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkcy5zcGxpY2UoZmllbGRzSW5kZXgsIDAsIF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsKTtcbiAgICB9XG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKCk7XG4gIH1cbiAgLyoq6K6+572uZm9ybUHooajljZUgKi9cbiAgc2V0ZmllbGRUYWJzRnJvbSgpIHtcbiAgICBsZXQgc2V0QXJyYXkgPSBbXTtcbiAgICB0aGlzLnJlc3VsdFNvdXJjZS5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGxldCBmaWVsZHNBcnJheSA9IFtdO1xuICAgICAgZWwuZmllbGRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGZpZWxkc0FycmF5LnB1c2goe1xuICAgICAgICAgIGZpZWxkSWQ6IGl0ZW0uaWQgfHwgaXRlbS5maWVsZElkLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBpdGVtLmRpc3BsYXlOYW1lLFxuICAgICAgICAgIHJlcXVpcmVkOiBpdGVtPy5yZXF1aXJlZCxcbiAgICAgICAgICBzaG93T25MaXN0OiBpdGVtPy5zaG93T25MaXN0LFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgc2V0QXJyYXkucHVzaCh7XG4gICAgICAgIG5hbWU6IGVsLm5hbWUsXG4gICAgICAgIGZpZWxkczogZmllbGRzQXJyYXksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLm5ld0VudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgIGZpZWxkVGFiczogc2V0QXJyYXksXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBfVmFsaWRhdG9yc1NlcnZpY2UgPSBpbmplY3QoVmFsaWRhdG9yc1NlcnZpY2UpO1xuICAvKirooajljZXpqozor4HnirbmgIFcbiAgICoge1xuICAgKiAgdGl0bGU6dHJ1ZSxcbiAgICogfVxuICAgKi9cbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xuaXNTdWJtaXQ6Ym9vbGVhbiA9IGZhbHNlO1xuICAvKirkv53lrZjooajljZUgKi9cbiAgc2F2ZSgpIHtcbiAgICBpZih0aGlzLmlzU3VibWl0KSByZXR1cm47XG4gICAgdGhpcy5pc1N1Ym1pdCA9IHRydWU7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWU7XG5cbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uID0gdGhpcy5fVmFsaWRhdG9yc1NlcnZpY2UuZ2V0Rm9ybVZhbGlkYXRpb25TdGF0dXModGhpcy5uZXdFbnRpdHkpO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCAnQ21zJykpIHJldHVybiAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmVudHJ5VHlwZXNTZWxlY3QpIHtcbiAgICAgIHRoaXMuX0VudHJ5VHlwZUFkbWluU2VydmljZS51cGRhdGUodGhpcy5lbnRyeVR5cGVzU2VsZWN0LmlkLCBpbnB1dCkucGlwZShmaW5hbGl6ZSgoKT0+e1xuICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XG4gICAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XG4gICAgICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpbnB1dC5zZWN0aW9uSWQgPSB0aGlzLnNlY3Rpb25JZDtcbiAgICB0aGlzLl9FbnRyeVR5cGVBZG1pblNlcnZpY2UuY3JlYXRlKGlucHV0KS5waXBlKGZpbmFsaXplKCgpPT57XG4gICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XG4gICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XG4gICAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0KCk7XG4gICAgfSk7XG4gIH1cbiAgLyoq57yW6L6RVGFic+ihqOWNlSAqL1xuICBlZGl0RmllbGRUYWJzRnJvbTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuICAvKirmqKHmgIHmoYbnirbmgIEgKi9cbiAgdmlzaWJsZVRhYnNPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKuaYr+WQpuaYr+W/meeijOeKtuaAgSAqL1xuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoq5q2j5Zyo57yW6L6R55qEdGFicyAqL1xuICBlZGl0RmllbGRUYWJzU2VsZWN0OiBhbnk7XG4gIC8qKuato+WcqOmAieS4reeahG5hdiAqL1xuICBuYXZBY3RpdmU6IGFueSA9IDA7XG5cbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7tiAqL1xuICBAVmlld0NoaWxkKCdlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG4nLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZWRpdEZpZWxkVGFic01vZGFsU3VibWl0QnRuOiBFbGVtZW50UmVmO1xuXG4gIC8qKuaooeaAgeahhueKtuaAgeaUueWPmOWbnuiwgyAqL1xuICBWaXNpYmxlVGFic0NoYW5nZShldmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuZWRpdEZpZWxkVGFic1NlbGVjdCA9ICcnO1xuICAgICAgdGhpcy5mb3JtVmFsaWRhdGlvbiA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICAvKirmlrDlu7rlop7liqBGaWVsZFRhYnMgKi9cbiAgYWRkRmllbGRUYWJzKCkge1xuICAgIHRoaXMuZWRpdEZpZWxkVGFic0Zyb20gPSB0aGlzLmZiLmdyb3VwKG5ldyBmaWVsZFRhYnNCYXNlKCkpO1xuICAgIHRoaXMudmlzaWJsZVRhYnNPcGVuID0gdHJ1ZTtcbiAgfVxuICAvKirmraPlnKjnvJbovpHnmoR0YWLkuIvmoIcgKi9cbiAgbmV3RWRpdEZpZWxkVGFic0luZGV4OiBudW1iZXI7XG4gIC8qKue8lui+kUZpZWxkVGFicyAqL1xuICBlZGl0RmllbGRUYWJzKGl0ZW0sIGkpIHtcbiAgICB0aGlzLmVkaXRGaWVsZFRhYnNGcm9tID0gdGhpcy5mYi5ncm91cChuZXcgZmllbGRUYWJzQmFzZSgpKTtcbiAgICB0aGlzLmVkaXRGaWVsZFRhYnNGcm9tLnBhdGNoVmFsdWUoe1xuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgIH0pO1xuICAgIHRoaXMuZWRpdEZpZWxkVGFic1NlbGVjdCA9IGl0ZW07XG4gICAgdGhpcy52aXNpYmxlVGFic09wZW4gPSB0cnVlO1xuICAgIHRoaXMubmV3RWRpdEZpZWxkVGFic0luZGV4ID0gaTtcbiAgfVxuXG4gIC8qKuS/neWtmOe8lui+kXRhYnPooajljZUgKi9cbiAgZWRpdEZpZWxkVGFic1NhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmVkaXRGaWVsZFRhYnNGcm9tLnZhbHVlLm5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy/nvJbovpFcbiAgICBpZiAodGhpcy5lZGl0RmllbGRUYWJzU2VsZWN0KSB7XG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5ld0VkaXRGaWVsZFRhYnNJbmRleF0ubmFtZSA9IHRoaXMuZWRpdEZpZWxkVGFic0Zyb20udmFsdWUubmFtZTtcbiAgICAgIHRoaXMubmF2QWN0aXZlID0gdGhpcy5uZXdFZGl0RmllbGRUYWJzSW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8v5paw5bu6XG4gICAgICB0aGlzLmFkZENvbnRyb2xUb0ZpZWxkVGFicyh0aGlzLmVkaXRGaWVsZFRhYnNGcm9tLnZhbHVlLm5hbWUpO1xuICAgIH1cbiAgICB0aGlzLnZpc2libGVUYWJzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpO1xuICB9XG4gIC8qKuWIoOmZpOafkOS4qnRhYnPooajljZUgKi9cbiAgZGVsZXRlRmllbGRUYWJzKGluZGV4KSB7XG4gICAgdGhpcy5maWVsZFRhYnMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIHRoaXMucmVzdWx0U291cmNlLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKirnvJbovpHlrZfmrrXmqKHmgIHmoYbnirbmgIEgKi9cbiAgdmlzaWJsZUVkaXRGaWVsZE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoq57yW6L6R5a2X5q615qih5oCB5qGG6KGo5Y2VICovXG4gIGVkaXRGaWVsZEZyb206IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7ti3nvJbovpHlrZfmrrUgKi9cbiAgQFZpZXdDaGlsZCgnZWRpdEZpZWxkTW9kYWxTdWJtaXRCdG4nLCB7IHN0YXRpYzogZmFsc2UgfSkgZWRpdEZpZWxkTW9kYWxTdWJtaXRCdG46IEVsZW1lbnRSZWY7XG4gIC8qKuato+WcqOe8lui+keeahOWtl+auteS4i+aghyAqL1xuICBFZGl0RmllbGRJbmRleDogbnVtYmVyO1xuICAvKirnvJbovpHlrZfmrrXmqKHmgIHmoYbnirbmgIHnirbmgIHmlLnlj5jlm57osIMgKi9cbiAgVmlzaWJsZUVkaXRGaWVsZENoYW5nZShldmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuRWRpdEZpZWxkSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIC8qKuaJk+W8gOe8lui+keWtl+auteaooeaAgeahhiAqL1xuICBFZGl0RmllbGRNb2RhbE9wZW4oaXRlbXMsIGVsSW5kZXgpIHtcbiAgICB0aGlzLnZpc2libGVFZGl0RmllbGRPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLkVkaXRGaWVsZEluZGV4ID0gZWxJbmRleDtcbiAgICB0aGlzLmVkaXRGaWVsZEZyb20gPSB0aGlzLmZiLmdyb3VwKG5ldyBmaWVsZHNCYXNlKCkpO1xuICAgIHRoaXMuZWRpdEZpZWxkRnJvbS5wYXRjaFZhbHVlKHRoaXMuZmllbGRUYWJzLnZhbHVlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbZWxJbmRleF0pO1xuICB9XG4gIC8qKuS/neWtmOe8lui+keWtl+autSAqL1xuICBlZGl0RmllbGRTYXZlKCkge1xuICAgIGxldCBpbnB1dCA9IHRoaXMuZWRpdEZpZWxkRnJvbS52YWx1ZTtcbiAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzW3RoaXMuRWRpdEZpZWxkSW5kZXhdLmRpc3BsYXlOYW1lID0gaW5wdXQuZGlzcGxheU5hbWU7XG4gICAgdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkc1t0aGlzLkVkaXRGaWVsZEluZGV4XS5yZXF1aXJlZCA9IGlucHV0LnJlcXVpcmVkO1xuICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbdGhpcy5FZGl0RmllbGRJbmRleF0uc2hvd09uTGlzdCA9IGlucHV0LnNob3dPbkxpc3Q7XG4gICAgdGhpcy52aXNpYmxlRWRpdEZpZWxkT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpO1xuICB9XG5cbiAgLyoqbmFtZeihqOWNleaOp+S7tiAqL1xuICBnZXQgbmFtZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLm5ld0VudGl0eS5nZXQoJ25hbWUnKTtcbiAgfVxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBsZXQgcGlueWluID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpO1xuICAgIGxldCBuYW1lSW5wdXQgPSB0aGlzLm5hbWVJbnB1dDtcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm47XG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJyb3cgZy0zIG5lZWRzLXZhbGlkYXRpb25cIiBbZm9ybUdyb3VwXT1cIm5ld0VudGl0eVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgW2NsYXNzXT1cInsnd2FzLXZhbGlkYXRlZCc6Zm9ybVZhbGlkYXRpb259XCIgIChzdWJtaXQpPVwic2F2ZSgpXCI+XG4gICAgPGFicC1wYWdlIFt0aXRsZV09XCJlbnRyeVR5cGVzSWQgPyAoJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbik6KCdDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb24pXCJcbiAgICAgICAgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLW9yLWVkaXQtZW50cnktdHlwZS1wYWdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZm9ybUFycmF5TmFtZT1cImZpZWxkVGFic1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkZpZWxkTGF5b3V0JyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBbKGFjdGl2ZUlkKV09XCJuYXZBY3RpdmVcIiBjbGFzcz1cIm5hdiBuYXYtdGFic1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXN1bHRTb3VyY2U7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nYk5hdkl0ZW1dPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93biBuZ2JOYXZMaW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTFcIiAoY2xpY2suc3RvcCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IHN0eWxlPVwiei1pbmRleDogOTk5O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBuZ2JEcm9wZG93bkl0ZW0gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImVkaXRGaWVsZFRhYnMoaXRlbSxpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1lZGl0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYkRyb3Bkb3duSXRlbSAqbmdJZj1cInJlc3VsdFNvdXJjZS5sZW5ndGggIT09IDFcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZGVsZXRlRmllbGRUYWJzKGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMlwiIG9uZHJhZ292ZXI9XCJldmVudC5wcmV2ZW50RGVmYXVsdCgpO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJkcmFnVG9SZXN1bHRTb3VyY2VEcm9wcGVkKGl0ZW0saSlcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkXCIgKm5nSWY9XCJpdGVtLmZpZWxkcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydDbXM6OkRyYWdBbmREcm9wRmllbGRUaXBzJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWwgb2YgaXRlbS5maWVsZHM7IGxldCBpZWwgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZHJhZ2dhYmxlPVwidHJ1ZVwiIChkcmFnc3RhcnQpPVwiZnJvbVJlc3VsdFNvdXJjZURyYWdTdGFydChlbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyb3ApPVwiZHJhZ1RvUmVzdWx0U291cmNlSXRlbURyb3BwZWQoaWVsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB5LTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogdW5zZXQ7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbC5kaXNwbGF5TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInAtMCBidG4gYnRuLXNtIGJ0bi1saWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiRWRpdEZpZWxkTW9kYWxPcGVuKGVsLGllbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj48aSBjbGFzcz1cImZhcyBmYS13cmVuY2ggcC1zbS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm5hdi1saW5rXCIgKGNsaWNrLnN0b3ApPVwiYWRkRmllbGRUYWJzKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpOZXdUYWInIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIiBjbGFzcz1cIm10LTIgYm9yZGVybk5hdnMgcC0wXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uICNhY2NvcmRpb249XCJuZ2JBY2NvcmRpb25cIiBvbmRyYWdvdmVyPVwiZXZlbnQucHJldmVudERlZmF1bHQoKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJkcmFnVG9EYXRhU291cmNlRHJvcHBlZCgpXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiA4MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpZWxkR3JvdXBMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ2JBY2NvcmRpb25JdGVtXT1cIml0ZW0ubmFtZVwiICpuZ0lmPVwiaXRlbS5maWVsZHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBuZ2JBY2NvcmRpb25IZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiQWNjb3JkaW9uQnV0dG9uPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ0Ntczo6JytpdGVtLm5hbWUpIHwgYWJwTG9jYWxpemF0aW9uIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWwgb2YgaXRlbS5maWVsZHM7IGxldCBpaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJmcm9tRGF0YVNvdXJjZURyYWdTdGFydChlbCxpaSxpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbC5kaXNwbGF5TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvYWJwLXBhZ2U+XG5cbjwvZm9ybT5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cInZpc2libGVUYWJzT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cIlZpc2libGVUYWJzQ2hhbmdlKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cbiAgICAgICAgPGgzPnt7IGVkaXRGaWVsZFRhYnNTZWxlY3QgPyAoJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbik6KCdDbXM6Ok5ldycgfCBhYnBMb2NhbGl6YXRpb24pfX08L2gzPjIyXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdEZpZWxkVGFic0Zyb207IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGaWVsZFRhYnNGcm9tXCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBbY2xhc3NdPVwieyd3YXMtdmFsaWRhdGVkJzpmb3JtVmFsaWRhdGlvbn1cIiAoc3VibWl0KT1cImVkaXRGaWVsZFRhYnNTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjZWRpdEZpZWxkVGFic01vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG4ubmF0aXZlRWxlbWVudC5jbGljaygpXCI+e3snQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPlxuXG5cbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJ2aXNpYmxlRWRpdEZpZWxkT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cIlZpc2libGVFZGl0RmllbGRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2gzPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRlclJlZj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtcHVsc2UgZmEtc3Bpbm5lclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRGaWVsZEZyb207IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGaWVsZEZyb21cIiAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChzdWJtaXQpPVwiZWRpdEZpZWxkU2F2ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgI2VkaXRGaWVsZE1vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlcXVpcmVkXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJyZXF1aXJlZFwiPiB7eydDbXM6OlJlcXVpcmVkJyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwic2hvd09uTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzaG93T25MaXN0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJzaG93T25MaXN0XCI+IHt7J0Ntczo6U2hvd09uTGlzdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBbZGlzYWJsZWRdPVwiIWVkaXRGaWVsZEZyb20udmFsaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRGaWVsZE1vZGFsU3VibWl0QnRuLm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
|