tango-app-ui-store-builder 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/collection-update-ai/collection-update-ai.component.mjs +3 -2
- package/esm2022/lib/components/collection-update-ai/find-replace-layout/prepare-template/prepare-template.component.mjs +3 -2
- package/esm2022/lib/components/collection-update-ai/find-replace-layout/review-replace/review-replace.component.mjs +3 -2
- package/esm2022/lib/components/create-fixture/create-fixture.component.mjs +41 -4
- package/esm2022/lib/components/custom-select/custom-select.component.mjs +14 -5
- package/esm2022/lib/components/fixture-template/template-assign-stores/preview-modal/preview-modal.component.mjs +3 -2
- package/esm2022/lib/components/fixture-template/template-assign-stores/template-assign-stores.component.mjs +3 -2
- package/esm2022/lib/components/fixture-template-table/find-and-replace/find-and-replace.component.mjs +3 -2
- package/esm2022/lib/components/fixture-template-table/fixture-template-table.component.mjs +2 -3
- package/esm2022/lib/components/fixture-template-tree/fixture-template-tree.component.mjs +3 -2
- package/esm2022/lib/components/manage-plano/verification-table/verification-table.component.mjs +2 -3
- package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +87 -13
- package/esm2022/lib/components/manage-store-plano/plano-rollout/plano-rollout.component.mjs +4 -3
- package/esm2022/lib/components/manage-store-plano/template-basic-details/template-basic-details.component.mjs +114 -4
- package/esm2022/lib/components/manage-store-plano/zone-verification-feedback/zone-verification-feedback.component.mjs +7 -2
- package/esm2022/lib/components/onboard-store-plano/onboard-fixture/onboard-fixture.component.mjs +3 -3
- package/esm2022/lib/components/onboard-store-plano/onboard-store-plano.component.mjs +255 -25
- package/esm2022/lib/components/plano-configurations/plano-configurations.component.mjs +162 -3
- package/esm2022/lib/components/plano-library/fixture-library/fixture-library.component.mjs +3 -4
- package/esm2022/lib/components/plano-library/vm-library/vm-library.component.mjs +3 -4
- package/esm2022/lib/components/plano-tools/cad-files/cad-files.component.mjs +88 -0
- package/esm2022/lib/components/plano-tools/cad-render/cad-render.component.mjs +4 -5
- package/esm2022/lib/components/plano-tools/move-bucket/move-bucket.component.mjs +239 -0
- package/esm2022/lib/components/plano-tools/plano-data-export/plano-data-export.component.mjs +98 -3
- package/esm2022/lib/components/plano-tools/plano-migrate/plano-migrate.component.mjs +5 -4
- package/esm2022/lib/components/plano-tools/store-exports/store-exports.component.mjs +135 -33
- package/esm2022/lib/components/plano-tools/swap-template/swap-template.component.mjs +325 -0
- package/esm2022/lib/components/plano-tools/tools-parent/tools-parent.component.mjs +3 -3
- package/esm2022/lib/components/planogram/merch-compliance/merch-compliance.component.mjs +3 -2
- package/esm2022/lib/components/planogram/merch-compliance/product-locator/product-locator.component.mjs +3 -2
- package/esm2022/lib/components/planogram/plano-analytics/plano-analytics.component.mjs +3 -2
- package/esm2022/lib/components/planogram/plano-details-parent/plano-details-parent.component.mjs +1 -1
- package/esm2022/lib/components/planogram/plano-overview/plano-comparison/plano-comparison.component.mjs +3 -2
- package/esm2022/lib/components/planogram/plano-overview/plano-overview.component.mjs +3 -2
- package/esm2022/lib/components/planogram/plano-table/plano-table.component.mjs +2 -3
- package/esm2022/lib/components/popups/delete-confirmation/delete-confirmation.component.mjs +10 -3
- package/esm2022/lib/components/store-plano/store-plano-tree-view/store-plano-tree-view.component.mjs +3 -4
- package/esm2022/lib/components/store-plano/store-plano.component.mjs +4 -3
- package/esm2022/lib/data/fixture-template.data.mjs +12 -1
- package/esm2022/lib/functions/plano.function.mjs +13 -1
- package/esm2022/lib/services/store-builder.service.mjs +35 -1
- package/esm2022/lib/tango-store-builder-routing.module.mjs +16 -1
- package/esm2022/lib/tango-store-builder.module.mjs +10 -1
- package/fesm2022/tango-app-ui-store-builder.mjs +1914 -401
- package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
- package/lib/components/create-fixture/create-fixture.component.d.ts +3 -0
- package/lib/components/custom-select/custom-select.component.d.ts +5 -2
- package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +4 -4
- package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +5 -5
- package/lib/components/manage-store-plano/manage-store-plano.component.d.ts +7 -1
- package/lib/components/manage-store-plano/template-basic-details/template-basic-details.component.d.ts +14 -1
- package/lib/components/onboard-store-plano/onboard-store-plano.component.d.ts +19 -2
- package/lib/components/plano-configurations/plano-configurations.component.d.ts +19 -1
- package/lib/components/plano-tools/cad-files/cad-files.component.d.ts +30 -0
- package/lib/components/plano-tools/move-bucket/move-bucket.component.d.ts +64 -0
- package/lib/components/plano-tools/plano-data-export/plano-data-export.component.d.ts +26 -0
- package/lib/components/plano-tools/store-exports/store-exports.component.d.ts +28 -3
- package/lib/components/plano-tools/swap-template/swap-template.component.d.ts +83 -0
- package/lib/components/popups/delete-confirmation/delete-confirmation.component.d.ts +3 -1
- package/lib/data/fixture-template.data.d.ts +8 -0
- package/lib/functions/plano.function.d.ts +1 -0
- package/lib/services/store-builder.service.d.ts +26 -0
- package/lib/tango-store-builder.module.d.ts +56 -53
- package/package.json +1 -1
|
@@ -98,7 +98,12 @@ export class ZoneVerificationFeedbackComponent {
|
|
|
98
98
|
return this.isApproved || this.currentUserAction === "redo";
|
|
99
99
|
}
|
|
100
100
|
get isClFixture() {
|
|
101
|
-
|
|
101
|
+
// Match the compliance-side CL rule: header.label === 'CL' OR templateGroupName
|
|
102
|
+
// === 'CL'. planoFixture is the live store fixture record so templateGroupName
|
|
103
|
+
// is always populated; this catches CL fixtures whose mobile-side header was
|
|
104
|
+
// reported with a brand-specific label.
|
|
105
|
+
return (this.planoFixture?.header?.label === "CL" ||
|
|
106
|
+
this.planoFixture?.templateGroupName === "CL");
|
|
102
107
|
}
|
|
103
108
|
get zoneImageUrl() {
|
|
104
109
|
const rel = this.zoneFixture?.fixtureImage ??
|
|
@@ -317,4 +322,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
317
322
|
type: ViewChild,
|
|
318
323
|
args: [ZoneEditableFixtureComponent]
|
|
319
324
|
}] } });
|
|
320
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS12ZXJpZmljYXRpb24tZmVlZGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXN0b3JlLXBsYW5vL3pvbmUtdmVyaWZpY2F0aW9uLWZlZWRiYWNrL3pvbmUtdmVyaWZpY2F0aW9uLWZlZWRiYWNrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL21hbmFnZS1zdG9yZS1wbGFuby96b25lLXZlcmlmaWNhdGlvbi1mZWVkYmFjay96b25lLXZlcmlmaWNhdGlvbi1mZWVkYmFjay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7QUFROUgsTUFBTSxPQUFPLGlDQUFpQztJQW1CeEI7SUFsQlgsU0FBUyxDQUFNO0lBQ2YsZUFBZSxDQUFNO0lBQ3JCLFFBQVEsQ0FBTTtJQUNkLFlBQVksQ0FBTTtJQUNsQixhQUFhLEdBQVUsRUFBRSxDQUFDO0lBQzFCLEdBQUcsQ0FBUztJQUNaLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFFMUIsYUFBYSxHQUFHLElBQUksWUFBWSxFQUd0QyxDQUFDO0lBRUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFHM0MsZUFBZSxDQUFnQztJQUUvQyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcs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QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxNQUFNO3NCQUFmLE1BQU07Z0JBR1AsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7IEFjdGlvbkNvbmZpcm1Qb3B1cENvbXBvbmVudCB9IGZyb20gXCIuLi92ZXJpZmljYXRpb24tZmVlZGJhY2svYWN0aW9uLWNvbmZpcm0tcG9wdXAvYWN0aW9uLWNvbmZpcm0tcG9wdXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpvbmVFZGl0YWJsZUZpeHR1cmVDb21wb25lbnQgfSBmcm9tIFwiLi4vdmVyaWZpY2F0aW9uLWZlZWRiYWNrL3pvbmUtZWRpdGFibGUtZml4dHVyZS96b25lLWVkaXRhYmxlLWZpeHR1cmUuY29tcG9uZW50XCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLXpvbmUtdmVyaWZpY2F0aW9uLWZlZWRiYWNrXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96b25lLXZlcmlmaWNhdGlvbi1mZWVkYmFjay5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vem9uZS12ZXJpZmljYXRpb24tZmVlZGJhY2suY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFpvbmVWZXJpZmljYXRpb25GZWVkYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZmxvb3JEYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgZmVlZGJhY2tEZXRhaWxzOiBhbnk7XHJcbiAgQElucHV0KCkgem9uZVRhc2s6IGFueTtcclxuICBASW5wdXQoKSB6b25lRmVlZGJhY2s6IGFueTtcclxuICBASW5wdXQoKSB0b3RhbEZpeHR1cmVzOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNkbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlRml4dHVyZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgY3VycmVudEZpeHR1cmU6IHN0cmluZztcclxuICAgIGFjdGlvbjogXCJuZXh0XCIgfCBcInByZXZpb3VzXCI7XHJcbiAgfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAVmlld0NoaWxkKFpvbmVFZGl0YWJsZUZpeHR1cmVDb21wb25lbnQpXHJcbiAgZWRpdGFibGVGaXh0dXJlPzogWm9uZUVkaXRhYmxlRml4dHVyZUNvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ2JNb2RhbDogTmdiTW9kYWwpIHt9XHJcblxyXG4gIHBsYW5vRml4dHVyZTogYW55O1xyXG4gIHpvbmVGaXh0dXJlOiBhbnk7XHJcbiAgY3VycmVudEZpeHR1cmVJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgc2VsZWN0ZWRJbWFnZUZvclByZXZpZXc6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGltYWdlUHJldmlld1pvb206IG51bWJlciA9IDE7XHJcbiAgaW1hZ2VQcmV2aWV3UGFuWDogbnVtYmVyID0gMDtcclxuICBpbWFnZVByZXZpZXdQYW5ZOiBudW1iZXIgPSAwO1xyXG4gIGlzUGFubmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcGFuTGFzdFg6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBwYW5MYXN0WTogbnVtYmVyID0gMDtcclxuXHJcbiAgaXNJbWFnZUxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHByZXZpb3VzSW1hZ2VVcmw6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzW1wiZmVlZGJhY2tEZXRhaWxzXCJdIHx8IGNoYW5nZXNbXCJ6b25lRmVlZGJhY2tcIl0gfHwgY2hhbmdlc1tcImNkblwiXSkge1xyXG4gICAgICB0aGlzLnBsYW5vRml4dHVyZSA9IHRoaXMuZmVlZGJhY2tEZXRhaWxzPy5maXh0dXJlRmVlZGJhY2s/LkZpeHR1cmVEYXRhO1xyXG4gICAgICB0aGlzLmN1cnJlbnRGaXh0dXJlSW5kZXggPVxyXG4gICAgICAgIHRoaXMudG90YWxGaXh0dXJlcy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoZjogYW55KSA9PlxyXG4gICAgICAgICAgICBmLl9pZCA9PT0gdGhpcy5mZWVkYmFja0RldGFpbHM/LmZpeHR1cmVGZWVkYmFjaz8uZml4dHVyZUlkLFxyXG4gICAgICAgICkgKyAxO1xyXG4gICAgICB0aGlzLnpvbmVGaXh0dXJlID0gdGhpcy5idWlsZFpvbmVGaXh0dXJlKFxyXG4gICAgICAgIHRoaXMuem9uZUZlZWRiYWNrLFxyXG4gICAgICAgIHRoaXMucGxhbm9GaXh0dXJlLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgY29uc3QgbmV3SW1hZ2VVcmwgPSB0aGlzLnpvbmVJbWFnZVVybDtcclxuXHJcbiAgICAgIGlmIChuZXdJbWFnZVVybCAmJiBuZXdJbWFnZVVybCAhPT0gdGhpcy5wcmV2aW91c0ltYWdlVXJsKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2aW91c0ltYWdlVXJsID0gbmV3SW1hZ2VVcmw7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoIW5ld0ltYWdlVXJsKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2aW91c0ltYWdlVXJsID0gXCJcIjtcclxuICAgICAgICB0aGlzLmlzSW1hZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRab25lRml4dHVyZShyb3c6IGFueSwgcGxhbm9GaXh0dXJlOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgYW5zID0gcm93Py5hbnN3ZXJzPy5bMF07XHJcbiAgICBpZiAoIWFucykgcmV0dXJuIG51bGw7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYW5zLnNoZWxmQ29uZmlnKSB8fCBhbnMuc2hlbGZDb25maWcubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZml4dHVyZUlkOiByb3c/LmZpeHR1cmVJZCxcclxuICAgICAgZml4dHVyZTogYW5zLmZpeHR1cmUsXHJcbiAgICAgIGZpeHR1cmVUeXBlOiBhbnMuZml4dHVyZVR5cGUgPz8gcGxhbm9GaXh0dXJlPy5maXh0dXJlVHlwZSxcclxuICAgICAgZml4dHVyZUNhdGVnb3J5OiBhbnMuZml4dHVyZUNhdGVnb3J5ID8/IHBsYW5vRml4dHVyZT8uZml4dHVyZUNhdGVnb3J5LFxyXG4gICAgICBmaXh0dXJlQ2FwYWNpdHk6IGFucy5maXh0dXJlQ2FwYWNpdHksXHJcbiAgICAgIGZpeHR1cmVJbWFnZTogYW5zLmZpeHR1cmVJbWFnZSxcclxuICAgICAgaXNFbXB0eTogYW5zLmlzRW1wdHksXHJcbiAgICAgIGhlYWRlcjoge1xyXG4gICAgICAgIC4uLihwbGFub0ZpeHR1cmU/LmhlYWRlciA/PyB7fSksXHJcbiAgICAgICAgLi4uKGFucy5oZWFkZXIgPz8ge30pLFxyXG4gICAgICB9LFxyXG4gICAgICBmb290ZXI6IHBsYW5vRml4dHVyZT8uZm9vdGVyLFxyXG4gICAgICBwcm9kdWN0UmVzb2x1dGlvbkxldmVsOiBwbGFub0ZpeHR1cmU/LnByb2R1Y3RSZXNvbHV0aW9uTGV2ZWwsXHJcbiAgICAgIHNoZWxmQ29uZmlnOiBhbnMuc2hlbGZDb25maWcsXHJcbiAgICAgIHZtQ29uZmlnOiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzWm9uZVRhc2soKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnpvbmVUYXNrO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVGFza09wZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy56b25lVGFzaz8uY2hlY2tsaXN0U3RhdHVzID09PSBcIm9wZW5cIjtcclxuICB9XHJcblxyXG4gIGdldCBoYXNGaXh0dXJlUmVzcG9uc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnpvbmVGaXh0dXJlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRVc2VyQWN0aW9uKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuem9uZUZlZWRiYWNrPy5hbnN3ZXJzPy5bMF0/LnVzZXJBY3Rpb24gPz8gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCBpc0FwcHJvdmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5jdXJyZW50VXNlckFjdGlvbjtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGFjdGlvbiA9PT0gXCJrZWVwUGxhbm9cIiB8fFxyXG4gICAgICBhY3Rpb24gPT09IFwiYWNjZXB0UmVzcG9uc2VcIiB8fFxyXG4gICAgICBhY3Rpb24gPT09IFwiZWRpdEFjY2VwdGVkXCJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBUcnVlIGZvciBhbnkgYWN0aW9uIHRha2VuIChhcHByb3ZlLXN0eWxlIG9yIHJlZG8pLiBVc2VkIHRvIGhpZGUgdGhlIGFjdGlvbiByb3dcclxuICAvLyBvbmNlIHRoZSB1c2VyIGhhcyBkZWNpZGVkIOKAlCBtaXJyb3JzIGZpeHR1cmUgdmVyaWZpY2F0aW9uLlxyXG4gIGdldCBpc0FjdGlvbmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNBcHByb3ZlZCB8fCB0aGlzLmN1cnJlbnRVc2VyQWN0aW9uID09PSBcInJlZG9cIjtcclxuICB9XHJcblxyXG4gIGdldCBpc0NsRml4dHVyZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBsYW5vRml4dHVyZT8uaGVhZGVyPy5sYWJlbCA9PT0gXCJDTFwiO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHpvbmVJbWFnZVVybCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcmVsID1cclxuICAgICAgdGhpcy56b25lRml4dHVyZT8uZml4dHVyZUltYWdlID8/XHJcbiAgICAgIHRoaXMuem9uZUZlZWRiYWNrPy5hbnN3ZXJzPy5bMF0/LmZpeHR1cmVJbWFnZSA/P1xyXG4gICAgICBcIlwiO1xyXG4gICAgcmV0dXJuIHRoaXMuY2RuICYmIHJlbCA/IHRoaXMuY2RuICsgcmVsIDogXCJcIjtcclxuICB9XHJcblxyXG4gIGdldCBjYW5TaG93QWN0aW9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2hvd0FjdGlvbiAmJlxyXG4gICAgICAhIXRoaXMuem9uZVRhc2sgJiZcclxuICAgICAgdGhpcy56b25lVGFzaz8uY2hlY2tsaXN0U3RhdHVzID09PSBcInN1Ym1pdFwiICYmXHJcbiAgICAgICF0aGlzLmlzQWN0aW9uZWQgJiZcclxuICAgICAgIXRoaXMuaXNDbEZpeHR1cmVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkNsaWNrS2VlcFBsYW5vKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb25maXJtQWN0aW9uKFwicmVqZWN0UmVzcG9uc2VcIik7XHJcbiAgICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdC5hY3Rpb24gPT09IFwibm90T2tcIikgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5lZGl0YWJsZUZpeHR1cmU/LnJlc2V0VG9PcmlnaW5hbCgpO1xyXG5cclxuICAgICAgdGhpcy5hY3Rpb24uZW1pdCh7XHJcbiAgICAgICAgYWN0aW9uOiBcImtlZXBQbGFub1wiLFxyXG4gICAgICAgIHR5cGU6IFwiYWdyZWVcIixcclxuICAgICAgICBmaXh0dXJlRGF0YTogdGhpcy5wbGFub0ZpeHR1cmUsXHJcbiAgICAgICAgZmVlZGJhY2s6IHRoaXMuem9uZUZlZWRiYWNrLFxyXG4gICAgICAgIHJlbWFya3M6IHJlc3VsdC5yZW1hcmssXHJcbiAgICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGE/LnBsYW5vSWQsXHJcbiAgICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGE/Ll9pZCxcclxuICAgICAgICB0YXNrVHlwZTogXCJ6b25lVmVyaWZpY2F0aW9uXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJAQCB+IFpvbmUgb25DbGlja0tlZXBQbGFubyBbRVJSXTpcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25DbGlja0FjY2VwdFJlc3BvbnNlKCkge1xyXG4gICAgaWYgKCF0aGlzLmhhc0ZpeHR1cmVSZXNwb25zZSkgcmV0dXJuO1xyXG4gICAgaWYgKCF0aGlzLmVkaXRhYmxlRml4dHVyZT8uaXNWYWxpZCkgcmV0dXJuO1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb25maXJtQWN0aW9uKFwiYWNjZXB0UmVzcG9uc2VcIik7XHJcbiAgICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdC5hY3Rpb24gPT09IFwibm90T2tcIikgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgaXNNb2RpZmllZCA9ICEhdGhpcy5lZGl0YWJsZUZpeHR1cmU/LmlzRGlydHk7XHJcblxyXG4gICAgICB0aGlzLmFjdGlvbi5lbWl0KHtcclxuICAgICAgICBhY3Rpb246IGlzTW9kaWZpZWQgPyBcImVkaXRBY2NlcHRlZFwiIDogXCJhY2NlcHRSZXNwb25zZVwiLFxyXG4gICAgICAgIHR5cGU6IFwiYWdyZWVcIixcclxuICAgICAgICBmaXh0dXJlRGF0YTogdGhpcy56b25lRml4dHVyZSxcclxuICAgICAgICBmZWVkYmFjazogdGhpcy56b25lRmVlZGJhY2ssXHJcbiAgICAgICAgcmVtYXJrczogcmVzdWx0LnJlbWFyayxcclxuICAgICAgICBwbGFub0lkOiB0aGlzLmZsb29yRGF0YT8ucGxhbm9JZCxcclxuICAgICAgICBmbG9vcklkOiB0aGlzLmZsb29yRGF0YT8uX2lkLFxyXG4gICAgICAgIHRhc2tUeXBlOiBcInpvbmVWZXJpZmljYXRpb25cIixcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkBAIH4gWm9uZSBvbkNsaWNrQWNjZXB0UmVzcG9uc2UgW0VSUl06XCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tFZGl0UmVzcG9uc2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzRml4dHVyZVJlc3BvbnNlKSByZXR1cm47XHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHtcclxuICAgICAgYWN0aW9uOiBcImVkaXRXaXRoUmVzcG9uc2VcIixcclxuICAgICAgdHlwZTogXCJhZ3JlZVwiLFxyXG4gICAgICBmaXh0dXJlRGF0YTogdGhpcy56b25lRml4dHVyZSxcclxuICAgICAgZmVlZGJhY2s6IHRoaXMuem9uZUZlZWRiYWNrLFxyXG4gICAgICBwbGFub0lkOiB0aGlzLmZsb29yRGF0YT8ucGxhbm9JZCxcclxuICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGE/Ll9pZCxcclxuICAgICAgdGFza1R5cGU6IFwiem9uZVZlcmlmaWNhdGlvblwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkNsaWNrUmVkbygpIHtcclxuICAgIGlmICghdGhpcy5oYXNGaXh0dXJlUmVzcG9uc2UpIHJldHVybjtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybUFjdGlvbihcInJlZG9cIik7XHJcbiAgICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdC5hY3Rpb24gPT09IFwibm90T2tcIikgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5lZGl0YWJsZUZpeHR1cmU/LnJlc2V0VG9PcmlnaW5hbCgpO1xyXG5cclxuICAgICAgdGhpcy5hY3Rpb24uZW1pdCh7XHJcbiAgICAgICAgYWN0aW9uOiBcInJlZG9cIixcclxuICAgICAgICB0eXBlOiBcImRpc2FncmVlXCIsXHJcbiAgICAgICAgZml4dHVyZURhdGE6IG51bGwsXHJcbiAgICAgICAgZmVlZGJhY2s6IHRoaXMuem9uZUZlZWRiYWNrLFxyXG4gICAgICAgIHJlbWFya3M6IHJlc3VsdC5yZW1hcmssXHJcbiAgICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGE/LnBsYW5vSWQsXHJcbiAgICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGE/Ll9pZCxcclxuICAgICAgICB0YXNrVHlwZTogXCJ6b25lVmVyaWZpY2F0aW9uXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJAQCB+IFpvbmUgb25DbGlja1JlZG8gW0VSUl06XCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgY29uZmlybUFjdGlvbihcclxuICAgIHR5cGU6IFwia2VlcFBsYW5vXCIgfCBcImFjY2VwdFJlc3BvbnNlXCIgfCBcInJlamVjdFJlc3BvbnNlXCIgfCBcInJlZG9cIixcclxuICApOiBQcm9taXNlPHsgYWN0aW9uOiBzdHJpbmc7IHJlbWFyazogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgbW9kZWxSZWYgPSB0aGlzLm5nYk1vZGFsLm9wZW4oQWN0aW9uQ29uZmlybVBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgICB9KTtcclxuICAgICAgbW9kZWxSZWYuY29tcG9uZW50SW5zdGFuY2UudHlwZSA9IHR5cGU7XHJcblxyXG4gICAgICByZXR1cm4gYXdhaXQgbW9kZWxSZWYucmVzdWx0LnRoZW48e1xyXG4gICAgICAgIGFjdGlvbjogc3RyaW5nO1xyXG4gICAgICAgIHJlbWFyazogc3RyaW5nIHwgbnVsbDtcclxuICAgICAgfT4oKHJlc3VsdCkgPT4gcmVzdWx0KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VGaXh0dXJlKGFjdGlvbjogXCJuZXh0XCIgfCBcInByZXZpb3VzXCIpIHtcclxuICAgIGNvbnN0IGZpeHR1cmVJZCA9IHRoaXMuZmVlZGJhY2tEZXRhaWxzPy5maXh0dXJlRmVlZGJhY2s/LmZpeHR1cmVJZDtcclxuICAgIGlmICghZml4dHVyZUlkKSByZXR1cm47XHJcbiAgICB0aGlzLmNoYW5nZUZpeHR1cmUuZW1pdCh7IGN1cnJlbnRGaXh0dXJlOiBmaXh0dXJlSWQsIGFjdGlvbiB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tJbWFnZVByZXZpZXcoZXZlbnQ6IE1vdXNlRXZlbnQsIGltZ1VybDogc3RyaW5nKSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJbWFnZUZvclByZXZpZXcgPSBpbWdVcmw7XHJcbiAgICB0aGlzLmltYWdlUHJldmlld1pvb20gPSAxO1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdQYW5YID0gMDtcclxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3UGFuWSA9IDA7XHJcbiAgfVxyXG5cclxuICBjbG9zZUltYWdlUHJldmlldygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJbWFnZUZvclByZXZpZXcgPSBudWxsO1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdab29tID0gMTtcclxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3UGFuWCA9IDA7XHJcbiAgICB0aGlzLmltYWdlUHJldmlld1BhblkgPSAwO1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aWV3Wm9vbUluKCkge1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdab29tID0gTWF0aC5taW4odGhpcy5pbWFnZVByZXZpZXdab29tICsgMC4yNSwgNSk7XHJcbiAgICBpZiAodGhpcy5pbWFnZVByZXZpZXdab29tIDw9IDEpIHRoaXMucmVzZXRQYW4oKTtcclxuICB9XHJcblxyXG4gIG9uUHJldmlld1pvb21PdXQoKSB7XHJcbiAgICB0aGlzLmltYWdlUHJldmlld1pvb20gPSBNYXRoLm1heCh0aGlzLmltYWdlUHJldmlld1pvb20gLSAwLjI1LCAwLjI1KTtcclxuICAgIGlmICh0aGlzLmltYWdlUHJldmlld1pvb20gPD0gMSkgdGhpcy5yZXNldFBhbigpO1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aWV3Wm9vbVNsaWRlcihldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICB0aGlzLmltYWdlUHJldmlld1pvb20gPSB2YWx1ZSAvIDEwMDtcclxuICAgIGlmICh0aGlzLmltYWdlUHJldmlld1pvb20gPD0gMSkgdGhpcy5yZXNldFBhbigpO1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aWV3V2hlZWwoZXZlbnQ6IFdoZWVsRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAoZXZlbnQuZGVsdGFZIDwgMCkge1xyXG4gICAgICB0aGlzLm9uUHJldmlld1pvb21JbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vblByZXZpZXdab29tT3V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblByZXZpZXdQYW5TdGFydChldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuaW1hZ2VQcmV2aWV3Wm9vbSA8PSAxKSByZXR1cm47XHJcbiAgICB0aGlzLmlzUGFubmluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBhbkxhc3RYID0gZXZlbnQuY2xpZW50WDtcclxuICAgIHRoaXMucGFuTGFzdFkgPSBldmVudC5jbGllbnRZO1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aWV3UGFuTW92ZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLmlzUGFubmluZykgcmV0dXJuO1xyXG4gICAgY29uc3QgZHggPSBldmVudC5jbGllbnRYIC0gdGhpcy5wYW5MYXN0WDtcclxuICAgIGNvbnN0IGR5ID0gZXZlbnQuY2xpZW50WSAtIHRoaXMucGFuTGFzdFk7XHJcbiAgICB0aGlzLnBhbkxhc3RYID0gZXZlbnQuY2xpZW50WDtcclxuICAgIHRoaXMucGFuTGFzdFkgPSBldmVudC5jbGllbnRZO1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdQYW5YICs9IGR4O1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdQYW5ZICs9IGR5O1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aWV3UGFuRW5kKCkge1xyXG4gICAgdGhpcy5pc1Bhbm5pbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRQYW4oKSB7XHJcbiAgICB0aGlzLmltYWdlUHJldmlld1BhblggPSAwO1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdQYW5ZID0gMDtcclxuICB9XHJcblxyXG4gIG9uSW1hZ2VMb2FkKCkge1xyXG4gICAgdGhpcy5pc0ltYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25JbWFnZUVycm9yKCkge1xyXG4gICAgdGhpcy5pc0ltYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25JbWFnZUxvYWRTdGFydCgpIHtcclxuICAgIHRoaXMuaXNJbWFnZUxvYWRpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25JbWFnZUxvYWRFbmQoKSB7XHJcbiAgICB0aGlzLmlzSW1hZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGlkPVwidmVyaWZpY2F0aW9uLWZlZWRiYWNrXCI+XHJcblxyXG4gIDwhLS0gVGFzayBpbmZvIGFjY29yZGlvbiAtLT5cclxuICA8ZGl2ICpuZ0lmPVwiaGFzWm9uZVRhc2tcIiBpZD1cInRhc2staW5mb1wiIG5nYkFjY29yZGlvbiAjYWNjb3JkaW9uPVwibmdiQWNjb3JkaW9uXCI+XHJcbiAgICA8ZGl2IG5nYkFjY29yZGlvbkl0ZW09XCJkZXRhaWxzXCI+XHJcbiAgICAgIDxkaXYgbmdiQWNjb3JkaW9uSGVhZGVyIG5nYkFjY29yZGlvblRvZ2dsZSBjbGFzcz1cImFjY29yZGlvbi1idXR0b24gdGFzay1pbmZvLWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgPGgyPlpvbmUgdmVyaWZpY2F0aW9uIGFzc2lnbmVkPC9oMj5cclxuICAgICAgICAgIDxwPnt7IHpvbmVUYXNrPy5jcmVhdGVkQXQgfCBkYXRlOiAnaGg6bW06c3MgYSAtIGRkIE1NTSB5eXl5JyB9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZy1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjRUFGOEZGXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMjIuNjY3MyAyMy41VjIxLjgzMzNDMjIuNjY3MyAyMC45NDkzIDIyLjMxNjEgMjAuMTAxNCAyMS42OTEgMTkuNDc2M0MyMS4wNjU5IDE4Ljg1MTIgMjAuMjE4IDE4LjUgMTkuMzM0IDE4LjVIMTIuNjY3M0MxMS43ODMzIDE4LjUgMTAuOTM1NCAxOC44NTEyIDEwLjMxMDMgMTkuNDc2M0M5LjY4NTE3IDIwLjEwMTQgOS4zMzM5OCAyMC45NDkzIDkuMzMzOTggMjEuODMzM1YyMy41TTE5LjMzNCAxMS44MzMzQzE5LjMzNCAxMy42NzQzIDE3Ljg0MTYgMTUuMTY2NyAxNi4wMDA3IDE1LjE2NjdDMTQuMTU5NyAxNS4xNjY3IDEyLjY2NzMgMTMuNjc0MyAxMi42NjczIDExLjgzMzNDMTIuNjY3MyA5Ljk5MjM4IDE0LjE1OTcgOC41IDE2LjAwMDcgOC41QzE3Ljg0MTYgOC41IDE5LjMzNCA5Ljk5MjM4IDE5LjMzNCAxMS44MzMzWlwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGg0Pnt7IHpvbmVUYXNrPy5jcmVhdGVkQnlOYW1lIH19PC9oND5cclxuICAgICAgICAgICAgICAgIDxwPnt7IHpvbmVUYXNrPy5jcmVhdGVkQXQgfCBkYXRlOiAnaGg6bW1hLCBkZCBNTU0geXl5eScgfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8aDU+QXNzaWduZXI8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2ctYmxvY2tcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0VBRjhGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTIyLjY2NzMgMjMuNVYyMS44MzMzQzIyLjY2NzMgMjAuOTQ5MyAyMi4zMTYxIDIwLjEwMTQgMjEuNjkxIDE5LjQ3NjNDMjEuMDY1OSAxOC44NTEyIDIwLjIxOCAxOC41IDE5LjMzNCAxOC41SDEyLjY2NzNDMTEuNzgzMyAxOC41IDEwLjkzNTQgMTguODUxMiAxMC4zMTAzIDE5LjQ3NjNDOS42ODUxNyAyMC4xMDE0IDkuMzMzOTggMjAuOTQ5MyA5LjMzMzk4IDIxLjgzMzNWMjMuNU0xOS4zMzQgMTEuODMzM0MxOS4zMzQgMTMuNjc0MyAxNy44NDE2IDE1LjE2NjcgMTYuMDAwNyAxNS4xNjY3QzE0LjE1OTcgMTUuMTY2NyAxMi42NjczIDEzLjY3NDMgMTIuNjY3MyAxMS44MzMzQzEyLjY2NzMgOS45OTIzOCAxNC4xNTk3IDguNSAxNi4wMDA3IDguNUMxNy44NDE2IDguNSAxOS4zMzQgOS45OTIzOCAxOS4zMzQgMTEuODMzM1pcIlxyXG4gICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTEgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxoND57eyB6b25lVGFzaz8udXNlck5hbWUgfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgPHA+e3sgem9uZVRhc2s/LnN1Ym1pdFRpbWVfc3RyaW5nIHx8IHpvbmVUYXNrPy5zdGFydFRpbWVfc3RyaW5nIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgPGg1PkFzc2lnbmVlPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiem9uZVRhc2s/LmNvbW1lbnRzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtYi0yXCI+Q29tbWVudHM8L2g1PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2ctYmxvY2tcIiAqbmdGb3I9XCJsZXQgYyBvZiB6b25lVGFzaz8uY29tbWVudHNcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgZmlsbD1cIiNFQUY4RkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMjIuNjY3MyAyMy41VjIxLjgzMzNDMjIuNjY3MyAyMC45NDkzIDIyLjMxNjEgMjAuMTAxNCAyMS42OTEgMTkuNDc2M0MyMS4wNjU5IDE4Ljg1MTIgMjAuMjE4IDE4LjUgMTkuMzM0IDE4LjVIMTIuNjY3M0MxMS43ODMzIDE4LjUgMTAuOTM1NCAxOC44NTEyIDEwLjMxMDMgMTkuNDc2M0M5LjY4NTE3IDIwLjEwMTQgOS4zMzM5OCAyMC45NDkzIDkuMzMzOTggMjEuODMzM1YyMy41TTE5LjMzNCAxMS44MzMzQzE5LjMzNCAxMy42NzQzIDE3Ljg0MTYgMTUuMTY2NyAxNi4wMDA3IDE1LjE2NjdDMTQuMTU5NyAxNS4xNjY3IDEyLjY2NzMgMTMuNjc0MyAxMi42NjczIDExLjgzMzNDMTIuNjY3MyA5Ljk5MjM4IDE0LjE1OTcgOC41IDE2LjAwMDcgOC41QzE3Ljg0MTYgOC41IDE5LjMzNCA5Ljk5MjM4IDE5LjMzNCAxMS44MzMzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoND57eyBjPy51c2VyTmFtZSB9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgIDxwPnt7IGM/LmNyZWF0ZWRBdCB8IGRhdGU6J2hoOm1tOnNzIGEgLSBkZCBNTU0geXl5eScgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDxoNT57eyBjPy5jb21tZW50IH19PC9oNT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxociAqbmdJZj1cImhhc1pvbmVUYXNrXCI+XHJcblxyXG4gIDwhLS0gRW1wdHkgc3RhdGU6IG5vIHRhc2sgYXNzaWduZWQgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNab25lVGFza1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm15LTZcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI5NFwiIGhlaWdodD1cIjk0XCIgdmlld0JveD1cIjAgMCA5NCA5NFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgcng9XCI0MFwiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjgwXCIgaGVpZ2h0PVwiODBcIiByeD1cIjQwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjEzLjMzMzNcIiAvPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk0zNS45NTAyIDQ4LjE5OTdDMzUuNjQ4OSA0OC4yMzE1IDM1LjM0MjIgNDguMjUwNSAzNS4wMzEyIDQ4LjI1MDVDMzQuODYxNyA0OC4yNTA1IDM0LjY5NDQgNDguMjQzNiAzNC41MjkzIDQ4LjIzMzlWNTguNjA2OUMzNC41MjkzIDYwLjAzNDkgMzUuNzEyMyA2MS4yMjYgMzcuMjAwMiA2MS4yMjYxSDU2LjgwNDdDNTguMjkyNyA2MS4yMjYxIDU5LjQ3NTYgNjAuMDM1IDU5LjQ3NTYgNTguNjA2OVY0OC4yMzQ5QzU5LjMxMzcgNDguMjQ0MSA1OS4xNDk4IDQ4LjI1MDUgNTguOTg1NCA0OC4yNTA1QzU4LjY3MTQgNDguMjUwNSA1OC4zNjA4IDQ4LjIzMjUgNTguMDU0NyA0OC4xOTk3VjU1Ljk4NzhIMzUuOTUwMlY0OC4xOTk3Wk01Ny45MzE2IDMyLjc3MzlIMzYuMDczMkMzNS44OTU5IDMyLjc3MzkgMzUuNzQwNiAzMi44NjY3IDM1LjY2MzEgMzIuOTg3OEwzNS42NjExIDMyLjk4OTdMMzIuMTUxNCAzOC40NzMxTDMyLjA1NjYgMzguNjIwNkMzMC44MzExIDQwLjc0MDQgMzIuMDk1NyA0My40Njc0IDM0LjQ0NzMgNDMuNzc2OUMzNC42NDgyIDQzLjgwMTMgMzQuODM3OSA0My44MTU5IDM1LjAyNTQgNDMuODE1OUMzNi4yNTU1IDQzLjgxNTkgMzcuMzQzNCA0My4yODcyIDM4LjEwMDYgNDIuNDY1M0wzOS4wMjI1IDQxLjQ2NDRMMzkuOTQxNCA0Mi40NjgzQzQwLjY5MDMgNDMuMjg2MyA0MS43NzcgNDMuODE1OSA0My4wMTQ2IDQzLjgxNTlDNDQuMjQ2NyA0My44MTU4IDQ1LjMzODYgNDMuMjg1NiA0Ni4wODY5IDQyLjQ2ODNMNDcuMDA4OCA0MS40NjE0TDQ3LjkzMDcgNDIuNDY4M0M0OC42NzkgNDMuMjg1NyA0OS43NzA3IDQzLjgxNTkgNTEuMDAyOSA0My44MTU5QzUyLjIzNTEgNDMuODE1OSA1My4zMjY4IDQzLjI4NTcgNTQuMDc1MiA0Mi40NjgzTDU0Ljk5NzEgNDEuNDYxNEw1NS45MTg5IDQyLjQ2ODNDNTYuNjY3MyA0My4yODU3IDU3Ljc2IDQzLjgxNTkgNTguOTkyMiA0My44MTU5QzU5LjE3MzYgNDMuODE1OSA1OS4zNjg3IDQzLjgwMjEgNTkuNTY4NCA0My43Nzc4SDU5LjU2NzRDNjEuOTYxMSA0My40NTczIDYzLjIyOTMgNDAuNjA3OCA2MS44NjEzIDM4LjQ3MzFMNjEuODYwNCAzOC40NzQxTDU4LjM0MzggMzIuOTkwN0w1OC4zNDI4IDMyLjk4NzhDNTguMjY1MyAzMi44NjY1IDU4LjEwOTIgMzIuNzczOSA1Ny45MzE2IDMyLjc3MzlaXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjIuNVwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIGgzIG10LTJcIj5ObyByZXNwb25zZTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+Tm8gem9uZSB2ZXJpZmljYXRpb24gdGFzayBoYXMgYmVlbiBhc3NpZ25lZCBmb3IgdGhpcyBmbG9vci48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSBFbXB0eSBzdGF0ZTogdGFzayBhc3NpZ25lZCBidXQgbm90IHlldCBzdWJtaXR0ZWQgKG9ubHkgb24gYSBmcmVzaCB0YXNrIOKAlCBkdXJpbmcgYVxyXG4gICAgICAgcmVkbydzIG9wZW4gcGVyaW9kIHdlIGtlZXAgdGhlIHByZXZpb3VzIHJvdW5kJ3MgcmVzcG9uc2VzIHZpc2libGUgbGlrZSBmaXh0dXJlIGRvZXMpIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNab25lVGFzayAmJiBpc1Rhc2tPcGVuICYmICF6b25lVGFzaz8ucmVkb1N0YXR1c1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm15LTZcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI5NFwiIGhlaWdodD1cIjk0XCIgdmlld0JveD1cIjAgMCA5NCA5NFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgcng9XCI0MFwiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjgwXCIgaGVpZ2h0PVwiODBcIiByeD1cIjQwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjEzLjMzMzNcIiAvPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk0zNS45NTAyIDQ4LjE5OTdDMzUuNjQ4OSA0OC4yMzE1IDM1LjM0MjIgNDguMjUwNSAzNS4wMzEyIDQ4LjI1MDVDMzQuODYxNyA0OC4yNTA1IDM0LjY5NDQgNDguMjQzNiAzNC41MjkzIDQ4LjIzMzlWNTguNjA2OUMzNC41MjkzIDYwLjAzNDkgMzUuNzEyMyA2MS4yMjYgMzcuMjAwMiA2MS4yMjYxSDU2LjgwNDdDNTguMjkyNyA2MS4yMjYxIDU5LjQ3NTYgNjAuMDM1IDU5LjQ3NTYgNTguNjA2OVY0OC4yMzQ5QzU5LjMxMzcgNDguMjQ0MSA1OS4xNDk4IDQ4LjI1MDUgNTguOTg1NCA0OC4yNTA1QzU4LjY3MTQgNDguMjUwNSA1OC4zNjA4IDQ4LjIzMjUgNTguMDU0NyA0OC4xOTk3VjU1Ljk4NzhIMzUuOTUwMlY0OC4xOTk3Wk01Ny45MzE2IDMyLjc3MzlIMzYuMDczMkMzNS44OTU5IDMyLjc3MzkgMzUuNzQwNiAzMi44NjY3IDM1LjY2MzEgMzIuOTg3OEwzNS42NjExIDMyLjk4OTdMMzIuMTUxNCAzOC40NzMxTDMyLjA1NjYgMzguNjIwNkMzMC44MzExIDQwLjc0MDQgMzIuMDk1NyA0My40Njc0IDM0LjQ0NzMgNDMuNzc2OUMzNC42NDgyIDQzLjgwMTMgMzQuODM3OSA0My44MTU5IDM1LjAyNTQgNDMuODE1OUMzNi4yNTU1IDQzLjgxNTkgMzcuMzQzNCA0My4yODcyIDM4LjEwMDYgNDIuNDY1M0wzOS4wMjI1IDQxLjQ2NDRMMzkuOTQxNCA0Mi40NjgzQzQwLjY5MDMgNDMuMjg2MyA0MS43NzcgNDMuODE1OSA0My4wMTQ2IDQzLjgxNTlDNDQuMjQ2NyA0My44MTU4IDQ1LjMzODYgNDMuMjg1NiA0Ni4wODY5IDQyLjQ2ODNMNDcuMDA4OCA0MS40NjE0TDQ3LjkzMDcgNDIuNDY4M0M0OC42NzkgNDMuMjg1NyA0OS43NzA3IDQzLjgxNTkgNTEuMDAyOSA0My44MTU5QzUyLjIzNTEgNDMuODE1OSA1My4zMjY4IDQzLjI4NTcgNTQuMDc1MiA0Mi40NjgzTDU0Ljk5NzEgNDEuNDYxNEw1NS45MTg5IDQyLjQ2ODNDNTYuNjY3MyA0My4yODU3IDU3Ljc2IDQzLjgxNTkgNTguOTkyMiA0My44MTU5QzU5LjE3MzYgNDMuODE1OSA1OS4zNjg3IDQzLjgwMjEgNTkuNTY4NCA0My43Nzc4SDU5LjU2NzRDNjEuOTYxMSA0My40NTczIDYzLjIyOTMgNDAuNjA3OCA2MS44NjEzIDM4LjQ3MzFMNjEuODYwNCAzOC40NzQxTDU4LjM0MzggMzIuOTkwN0w1OC4zNDI4IDMyLjk4NzhDNTguMjY1MyAzMi44NjY1IDU4LjEwOTIgMzIuNzczOSA1Ny45MzE2IDMyLjc3MzlaXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjIuNVwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIGgzIG10LTJcIj5ObyByZXNwb25zZTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+VGFzayBhc3NpZ25lZC4gQXdhaXRpbmcgc3VibWlzc2lvbiBmcm9tIHRoZSBzdG9yZS48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSBIZWFkZXIgc3RyaXAgKyAzLWNvbHVtbiBjb21wYXJpc29uOiB2aXNpYmxlIHdoZW4gdGFzayBpcyBpbnByb2dyZXNzIC8gc3VibWl0LCBPUiBkdXJpbmdcclxuICAgICAgIGEgcmVkbydzIG9wZW4gcGVyaW9kICh3ZSByZW5kZXIgdGhlIHByZXZpb3VzIHJvdW5kJ3MgZGF0YSByZWFkLW9ubHkgc2luY2UgY2FuU2hvd0FjdGlvbnNcclxuICAgICAgIGFscmVhZHkgZ2F0ZXMgdGhlIGFjdGlvbiBidXR0b25zIG9uIGNoZWNrbGlzdFN0YXR1cyA9PT0gJ3N1Ym1pdCcpIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNab25lVGFzayAmJiAoIWlzVGFza09wZW4gfHwgem9uZVRhc2s/LnJlZG9TdGF0dXMpXCI+XHJcblxyXG4gICAgPGRpdiBpZD1cImZlZWRiYWNrLWhhbmRsZXJcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTYgbXktNiBweC0zIGZpeHR1cmUtbmF2aWdhdGVcIj5cclxuICAgICAgPHN2ZyAqbmdJZj1cInNob3dBY3Rpb25cIiAoY2xpY2spPVwib25DaGFuZ2VGaXh0dXJlKCdwcmV2aW91cycpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNMTUgNkw5IDEyTDE1IDE4XCIgc3Ryb2tlPVwiIzFEMjkzOVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICA8L3N2Zz5cclxuXHJcbiAgICAgIDxoMyBjbGFzcz1cIm0tMFwiPnt7IHBsYW5vRml4dHVyZT8uaGVhZGVyPy5sYWJlbCB9fTwvaDM+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBmbGV4LXdyYXBcIj5cclxuICAgICAgICA8c3ZnIHdpZHRoPVwiNVwiIGhlaWdodD1cIjVcIiB2aWV3Qm94PVwiMCAwIDUgNVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjIuNVwiIGN5PVwiMi41XCIgcj1cIjIuNVwiIGZpbGw9XCIjRUFFQ0YwXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJwbGFub0ZpeHR1cmU/LmZpeHR1cmVDYXRlZ29yeVwiIGNsYXNzPVwiYmFkZ2UgaW5hY3RpdmUgbWUtMVwiPlxyXG4gICAgICAgICAge3sgcGxhbm9GaXh0dXJlLmZpeHR1cmVDYXRlZ29yeSB8IHRpdGxlY2FzZSB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjVcIiBoZWlnaHQ9XCI1XCIgdmlld0JveD1cIjAgMCA1IDVcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjVcIiBjeT1cIjIuNVwiIHI9XCIyLjVcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwicGxhbm9GaXh0dXJlPy5maXh0dXJlV2lkdGg/LnZhbHVlXCIgY2xhc3M9XCJiYWRnZSBpbmFjdGl2ZSBtZS0xXCI+XHJcbiAgICAgICAgICB7eyBwbGFub0ZpeHR1cmUuZml4dHVyZVdpZHRoLnZhbHVlIH19IHt7IHBsYW5vRml4dHVyZS5maXh0dXJlV2lkdGg/LnVuaXQgPz8gJ2Z0JyB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjVcIiBoZWlnaHQ9XCI1XCIgdmlld0JveD1cIjAgMCA1IDVcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjVcIiBjeT1cIjIuNVwiIHI9XCIyLjVcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgaW5hY3RpdmUgbWUtMVwiPlxyXG4gICAgICAgICAgRml4dHVyZSBDYXBhY2l0eToge3sgcGxhbm9GaXh0dXJlPy5maXh0dXJlQ2FwYWNpdHkgfHwgMCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8aDMgKm5nSWY9XCJzaG93QWN0aW9uXCIgY2xhc3M9XCJtLTAgbXMtYXV0b1wiPlxyXG4gICAgICAgIHt7IGN1cnJlbnRGaXh0dXJlSW5kZXggfX0ve3sgdG90YWxGaXh0dXJlcy5sZW5ndGggfX1cclxuICAgICAgPC9oMz5cclxuXHJcbiAgICAgIDxzdmcgKm5nSWY9XCJzaG93QWN0aW9uXCIgKGNsaWNrKT1cIm9uQ2hhbmdlRml4dHVyZSgnbmV4dCcpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNOSAxOEwxNSAxMkw5IDZcIiBzdHJva2U9XCIjMUQyOTM5XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBpZD1cImZpeHR1cmUtY29tcGFyaXNvblwiIGNsYXNzPVwicm93IGctMCBteS0zXCI+XHJcblxyXG4gICAgICBAaWYgKHNob3dBY3Rpb24pIHtcclxuICAgICAgICA8IS0tIENvbHVtbiAxOiBFeGlzdGluZyB0ZW1wbGF0ZSAoY3VycmVudCBwbGFubykgLS0+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLTQgcC0yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgIEBpZiAoY2FuU2hvd0FjdGlvbnMgJiYgaGFzRml4dHVyZVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBwcmltYXJ5LWJ0biBtcy1hdXRvXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrS2VlcFBsYW5vKClcIj5cclxuICAgICAgICAgICAgICAgIEtlZXAgcGxhbm9cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBteS00XCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTIuNzI1IDUuODAwMDhMMTAgMTAuMDA4NEwxNy4yNzUgNS44MDAwOE0xMCAxOC40MDAxVjEwLjAwMDFNMTcuNSAxMy4zMzM0VjYuNjY2NzVDMTcuNDk5NyA2LjM3NDQ4IDE3LjQyMjUgNi4wODc0MiAxNy4yNzYzIDUuODM0MzhDMTcuMTMgNS41ODEzNCAxNi45MTk4IDUuMzcxMjIgMTYuNjY2NyA1LjIyNTA4TDEwLjgzMzMgMS44OTE3NUMxMC41OCAxLjc0NTQ3IDEwLjI5MjYgMS42Njg0NiAxMCAxLjY2ODQ2QzkuNzA3NDQgMS42Njg0NiA5LjQyMDAzIDEuNzQ1NDcgOS4xNjY2NyAxLjg5MTc1TDMuMzMzMzMgNS4yMjUwOEMzLjA4MDIyIDUuMzcxMjIgMi44Njk5OCA1LjU4MTM0IDIuNzIzNzIgNS44MzQzOEMyLjU3NzQ1IDYuMDg3NDIgMi41MDAzIDYuMzc0NDggMi41IDYuNjY2NzVWMTMuMzMzNEMyLjUwMDMgMTMuNjI1NyAyLjU3NzQ1IDEzLjkxMjcgMi43MjM3MiAxNC4xNjU4QzIuODY5OTggMTQuNDE4OCAzLjA4MDIyIDE0LjYyODkgMy4zMzMzMyAxNC43NzUxTDkuMTY2NjcgMTguMTA4NEM5LjQyMDAzIDE4LjI1NDcgOS43MDc0NCAxOC4zMzE3IDEwIDE4LjMzMTdDMTAuMjkyNiAxOC4zMzE3IDEwLjU4IDE4LjI1NDcgMTAuODMzMyAxOC4xMDg0TDE2LjY2NjcgMTQuNzc1MUMxNi45MTk4IDE0LjYyODkgMTcuMTMgMTQuNDE4OCAxNy4yNzYzIDE0LjE2NThDMTcuNDIyNSAxMy45MTI3IDE3LjQ5OTcgMTMuNjI1NyAxNy41IDEzLjMzMzRaXCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzcz1cIm0tMFwiPkV4aXN0aW5nIHRlbXBsYXRlPC9oND5cclxuICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNBcHByb3ZlZCAmJiBjdXJyZW50VXNlckFjdGlvbiA9PT0gJ2tlZXBQbGFubydcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtcy1hdXRvXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgeT1cIjguNzQyMjhlLTA3XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCIxMFwiIGZpbGw9XCIjRDFGQURGXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgZD1cIk0xNC4yNDY0IDYuMTU4MzlMOC4yNzk2OSAxMS45MTY3TDYuNjk2MzUgMTAuMjI1MUM2LjQwNDY5IDkuOTUwMDUgNS45NDYzNSA5LjkzMzM5IDUuNjEzMDIgMTAuMTY2N0M1LjI4ODAyIDEwLjQwODQgNS4xOTYzNSAxMC44MzM0IDUuMzk2MzUgMTEuMTc1MUw3LjI3MTM1IDE0LjIyNTFDNy40NTQ2OSAxNC41MDg0IDcuNzcxMzUgMTQuNjgzNCA4LjEyOTY5IDE0LjY4MzRDOC40NzEzNSAxNC42ODM0IDguNzk2MzUgMTQuNTA4NCA4Ljk3OTY5IDE0LjIyNTFDOS4yNzk2OSAxMy44MzM0IDE1LjAwNDcgNy4wMDgzOSAxNS4wMDQ3IDcuMDA4MzlDMTUuNzU0NyA2LjI0MTcyIDE0Ljg0NjQgNS41NjY3MiAxNC4yNDY0IDYuMTUwMDVMMTQuMjQ2NCA2LjE1ODM5WlwiXHJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMTJCNzZBXCIgLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxmaXh0dXJlIFtmaXh0dXJlXT1cInBsYW5vRml4dHVyZVwiIFtzaG93Vk1zXT1cInRydWVcIiBbc2hvd0hlYWRlckZvb3RlckFsd2F5c109XCJ0cnVlXCI+PC9maXh0dXJlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gQ29sdW1uIDI6IFN0b3JlIHJlc3BvbnNlICh6b25lLWdyb3VwZWQpIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBwLTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIEBpZiAoaXNDbEZpeHR1cmUpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiOTRcIiBoZWlnaHQ9XCI5NFwiIHZpZXdCb3g9XCIwIDAgOTQgOTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjgwXCIgaGVpZ2h0PVwiODBcIiByeD1cIjQwXCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjgwXCIgaGVpZ2h0PVwiODBcIiByeD1cIjQwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjEzLjMzMzNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM1Ljk1MDIgNDguMTk5N0MzNS42NDg5IDQ4LjIzMTUgMzUuMzQyMiA0OC4yNTA1IDM1LjAzMTIgNDguMjUwNUMzNC44NjE3IDQ4LjI1MDUgMzQuNjk0NCA0OC4yNDM2IDM0LjUyOTMgNDguMjMzOVY1OC42MDY5QzM0LjUyOTMgNjAuMDM0OSAzNS43MTIzIDYxLjIyNiAzNy4yMDAyIDYxLjIyNjFINTYuODA0N0M1OC4yOTI3IDYxLjIyNjEgNTkuNDc1NiA2MC4wMzUgNTkuNDc1NiA1OC42MDY5VjQ4LjIzNDlDNTkuMzEzNyA0OC4yNDQxIDU5LjE0OTggNDguMjUwNSA1OC45ODU0IDQ4LjI1MDVDNTguNjcxNCA0OC4yNTA1IDU4LjM2MDggNDguMjMyNSA1OC4wNTQ3IDQ4LjE5OTdWNTUuOTg3OEgzNS45NTAyVjQ4LjE5OTdaTTU3LjkzMTYgMzIuNzczOUgzNi4wNzMyQzM1Ljg5NTkgMzIuNzczOSAzNS43NDA2IDMyLjg2NjcgMzUuNjYzMSAzMi45ODc4TDM1LjY2MTEgMzIuOTg5N0wzMi4xNTE0IDM4LjQ3MzFMMzIuMDU2NiAzOC42MjA2QzMwLjgzMTEgNDAuNzQwNCAzMi4wOTU3IDQzLjQ2NzQgMzQuNDQ3MyA0My43NzY5QzM0LjY0ODIgNDMuODAxMyAzNC44Mzc5IDQzLjgxNTkgMzUuMDI1NCA0My44MTU5QzM2LjI1NTUgNDMuODE1OSAzNy4zNDM0IDQzLjI4NzIgMzguMTAwNiA0Mi40NjUzTDM5LjAyMjUgNDEuNDY0NEwzOS45NDE0IDQyLjQ2ODNDNDAuNjkwMyA0My4yODYzIDQxLjc3NyA0My44MTU5IDQzLjAxNDYgNDMuODE1OUM0NC4yNDY3IDQzLjgxNTggNDUuMzM4NiA0My4yODU2IDQ2LjA4NjkgNDIuNDY4M0w0Ny4wMDg4IDQxLjQ2MTRMNDcuOTMwNyA0Mi40NjgzQzQ4LjY3OSA0My4yODU3IDQ5Ljc3MDcgNDMuODE1OSA1MS4wMDI5IDQzLjgxNTlDNTIuMjM1MSA0My44MTU5IDUzLjMyNjggNDMuMjg1NyA1NC4wNzUyIDQyLjQ2ODNMNTQuOTk3MSA0MS40NjE0TDU1LjkxODkgNDIuNDY4M0M1Ni42NjczIDQzLjI4NTcgNTcuNzYgNDMuODE1OSA1OC45OTIyIDQzLjgxNTlDNTkuMTczNiA0My44MTU5IDU5LjM2ODcgNDMuODAyMSA1OS41Njg0IDQzLjc3NzhINTkuNTY3NEM2MS45NjExIDQzLjQ1NzMgNjMuMjI5MyA0MC42MDc4IDYxLjg2MTMgMzguNDczMUw2MS44NjA0IDM4LjQ3NDFMNTguMzQzOCAzMi45OTA3TDU4LjM0MjggMzIuOTg3OEM1OC4yNjUzIDMyLjg2NjUgNTguMTA5MiAzMi43NzM5IDU3LjkzMTYgMzIuNzczOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjIuNVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBoMyBtdC0yXCI+Q0wgRXhjbHVkZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICBAaWYgKGNhblNob3dBY3Rpb25zICYmIGhhc0ZpeHR1cmVSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiYnRuIHF1aWNrLWJ0biBtcy1hdXRvXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrRWRpdFJlc3BvbnNlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS4xNjYwMiAzLjMzMzJIMy4zMzI2OEMyLjg5MDY1IDMuMzMzMiAyLjQ2NjczIDMuNTA4NzkgMi4xNTQxNyAzLjgyMTM1QzEuODQxNjEgNC4xMzM5MSAxLjY2NjAyIDQuNTU3ODQgMS42NjYwMiA0Ljk5OTg2VjE2LjY2NjVDMS42NjYwMiAxNy4xMDg2IDEuODQxNjEgMTcuNTMyNSAyLjE1NDE3IDE3Ljg0NUMyLjQ2NjczIDE4LjE1NzYgMi44OTA2NSAxOC4zMzMyIDMuMzMyNjggMTguMzMzMkgxNC45OTkzQzE1LjQ0MTQgMTguMzMzMiAxNS44NjUzIDE4LjE1NzYgMTYuMTc3OSAxNy44NDVDMTYuNDkwNCAxNy41MzI1IDE2LjY2NiAxNy4xMDg2IDE2LjY2NiAxNi42NjY1VjEwLjgzMzJNMTUuNDE2IDIuMDgzMkMxNS43NDc1IDEuNzUxNjggMTYuMTk3MiAxLjU2NTQzIDE2LjY2NiAxLjU2NTQzQzE3LjEzNDkgMS41NjU0MyAxNy41ODQ1IDEuNzUxNjggMTcuOTE2IDIuMDgzMkMxOC4yNDc1IDIuNDE0NzIgMTguNDMzOCAyLjg2NDM2IDE4LjQzMzggMy4zMzMyQzE4LjQzMzggMy44MDIwNCAxOC4yNDc1IDQuMjUxNjggMTcuOTE2IDQuNTgzMkw5Ljk5OTM1IDEyLjQ5OTlMNi42NjYwMiAxMy4zMzMyTDcuNDk5MzUgOS45OTk4NkwxNS40MTYgMi4wODMyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxRDI5MzlcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHJlZG8tYnRuXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsaWNrUmVkbygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgUmVkb1xyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBidG4tb3V0bGluZS1jdXMgbXMtYXV0b1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbGlja0tlZXBQbGFubygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgUmVqZWN0XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHByaW1hcnktYnRuXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZUZpeHR1cmU/LmlzVmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJlZGl0YWJsZUZpeHR1cmU/LnZhbGlkYXRpb25NZXNzYWdlIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0FjY2VwdFJlc3BvbnNlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICBBY2NlcHRcclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG15LTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUuNjUwNCAxNC42MTkxSDQuMzQ4NjNWMTAuNzM3M0M0LjIzODI2IDEwLjc0NTUgNC4xMjY0NCAxMC43NSA0LjAxMzY3IDEwLjc1QzMuOTcxMzcgMTAuNzUgMy45Mjk0MyAxMC43NDYzIDMuODg3NyAxMC43NDUxVjE1LjgwMzdDMy44ODc4OCAxNi40NDcgNC40MjIyMiAxNi45ODgzIDUuMDk4NjMgMTYuOTg4M0gxNC45MDA0QzE1LjU3NjggMTYuOTg4MyAxNi4xMTAyIDE2LjQ0NyAxNi4xMTA0IDE1LjgwMzdWMTAuNzQ1MUMxNi4wNzA4IDEwLjc0NjIgMTYuMDMxMSAxMC43NSAxNS45OTEyIDEwLjc1QzE1Ljg3NjggMTAuNzUgMTUuNzYyOSAxMC43NDQ5IDE1LjY1MDQgMTAuNzM2M1YxNC42MTkxWk0xNS40NjM5IDMuMDExNzJINC41MzQxOEM0LjQ4NzIzIDMuMDExODcgNC40NDk3MyAzLjAzNzc2IDQuNDM0NTcgMy4wNjE1MlYzLjA2MjVMMi42Nzg3MSA1LjgwMzcxTDIuNjYwMTYgNS44MzMwMUMyLjA0NzY4IDYuODI3ODYgMi42NDMyNSA4LjExNzM5IDMuNzM0MzggOC4yNjM2N0MzLjgzMTc0IDguMjc1NjEgMy45MjIyNCA4LjI4MjIyIDQuMDEwNzQgOC4yODIyM0M0LjU4ODg5IDguMjgyMjMgNS4wOTk3OCA4LjAzNDE5IDUuNDU2MDUgNy42NDc0Nkw2LjAwOTc3IDcuMDQ2ODhMNi41NjE1MiA3LjY0OTQxQzYuOTEzNDEgOC4wMzM3MSA3LjQyMzAxIDguMjgyMTUgOC4wMDQ4OCA4LjI4MjIzQzguNTg0MzMgOC4yODIyMyA5LjA5NzU5IDguMDMzNDkgOS40NDkyMiA3LjY0OTQxTDEwLjAwMiA3LjA0NDkyTDEwLjU1NTcgNy42NDk0MUMxMC45MDczIDguMDMzNDkgMTEuNDIwNiA4LjI4MjIzIDEyIDguMjgyMjNDMTIuNTc5MiA4LjI4MjEgMTMuMDkxOCA4LjAzMzM3IDEzLjQ0MzQgNy42NDk0MUwxMy45OTcxIDcuMDQ0OTJMMTQuNTQ5OCA3LjY0OTQxQzE0LjkwMTQgOC4wMzM0OSAxNS40MTQ3IDguMjgyMjMgMTUuOTk0MSA4LjI4MjIzQzE2LjA3OTEgOC4yODIyMiAxNi4xNzE2IDguMjc1MzMgMTYuMjY3NiA4LjI2MzY3QzE3LjM2MzUgOC4xMTUwNCAxNy45NjIzIDYuODAwOCAxNy4zMjMyIDUuODAzNzFMMTUuNTY0NSAzLjA2MjVMMTUuNTYzNSAzLjA2MTUyQzE1LjU0ODMgMy4wMzc2OSAxNS41MTEgMy4wMTE3MiAxNS40NjM5IDMuMDExNzJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPGg0PlN0b3JlIHJlc3BvbnNlPC9oND5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJoYXNGaXh0dXJlUmVzcG9uc2VcIiBjbGFzcz1cImJhZGdlIGluYWN0aXZlIG1lLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICBDYXBhY2l0eToge3sgem9uZUZpeHR1cmU/LmZpeHR1cmVDYXBhY2l0eSB8fCAwIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNBcHByb3ZlZCAmJiAoY3VycmVudFVzZXJBY3Rpb24gPT09ICdhY2NlcHRSZXNwb25zZScgfHwgY3VycmVudFVzZXJBY3Rpb24gPT09ICdlZGl0QWNjZXB0ZWQnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy1hdXRvXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeT1cIjguNzQyMjhlLTA3XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCIxMFwiIGZpbGw9XCIjRDFGQURGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjI0NjQgNi4xNTgzOUw4LjI3OTY5IDExLjkxNjdMNi42OTYzNSAxMC4yMjUxQzYuNDA0NjkgOS45NTAwNSA1Ljk0NjM1IDkuOTMzMzkgNS42MTMwMiAxMC4xNjY3QzUuMjg4MDIgMTAuNDA4NCA1LjE5NjM1IDEwLjgzMzQgNS4zOTYzNSAxMS4xNzUxTDcuMjcxMzUgMTQuMjI1MUM3LjQ1NDY5IDE0LjUwODQgNy43NzEzNSAxNC42ODM0IDguMTI5NjkgMTQuNjgzNEM4LjQ3MTM1IDE0LjY4MzQgOC43OTYzNSAxNC41MDg0IDguOTc5NjkgMTQuMjI1MUM5LjI3OTY5IDEzLjgzMzQgMTUuMDA0NyA3LjAwODM5IDE1LjAwNDcgNy4wMDgzOUMxNS43NTQ3IDYuMjQxNzIgMTQuODQ2NCA1LjU2NjcyIDE0LjI0NjQgNi4xNTAwNUwxNC4yNDY0IDYuMTU4MzlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMTJCNzZBXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNBcHByb3ZlZCAmJiAoY3VycmVudFVzZXJBY3Rpb24gPT09ICdrZWVwUGxhbm8nKVwiIGNsYXNzPVwibXMtYXV0b1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjEwXCIgZmlsbD1cIiNGRUU0RTJcIiAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMjI1IDYuMjI1QzYuNTY2NjcgNS44ODMzMyA3LjExNjY3IDUuODgzMzMgNy40NTgzMyA2LjIyNUwxMCA4Ljc2NjY3TDEyLjU0MTcgNi4yMjVDMTIuODgzMyA1Ljg4MzMzIDEzLjQzMzMgNS44ODMzMyAxMy43NzUgNi4yMjVDMTQuMTE2NyA2LjU2NjY3IDE0LjExNjcgNy4xMTY2NyAxMy43NzUgNy40NTgzM0wxMS4yMzMzIDEwTDEzLjc3NSAxMi41NDE3QzE0LjExNjcgMTIuODgzMyAxNC4xMTY3IDEzLjQzMzMgMTMuNzc1IDEzLjc3NUMxMy40MzMzIDE0LjExNjcgMTIuODgzMyAxNC4xMTY3IDEyLjU0MTcgMTMuNzc1TDEwIDExLjIzMzNMNy40NTgzMyAxMy43NzVDNy4xMTY2NyAxNC4xMTY3IDYuNTY2NjcgMTQuMTE2NyA2LjIyNSAxMy43NzVDNS44ODMzMyAxMy40MzMzIDUuODgzMzMgMTIuODgzMyA2LjIyNSAxMi41NDE3TDguNzY2NjcgMTBMNi4yMjUgNy40NTgzM0M1Ljg4MzMzIDcuMTE2NjcgNS44ODMzMyA2LjU2NjY3IDYuMjI1IDYuMjI1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0YwNDQzOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiY3VycmVudFVzZXJBY3Rpb24gPT09ICdyZWRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy1hdXRvXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4yNTA2NSAxNS44MzM1QzYuOTAzNDMgMTUuODMzNSA1Ljc0NzA0IDE1LjM5NiA0Ljc4MTQ4IDE0LjUyMUMzLjgxNTkzIDEzLjY0NiAzLjMzMzQzIDEyLjU1NTcgMy4zMzM5OCAxMS4yNTAyQzMuMzMzOTggOS45NDQ2MSAzLjgxNjc2IDguODU0MzMgNC43ODIzMiA3Ljk3OTMzQzUuNzQ3ODcgNy4xMDQzMyA2LjkwMzk4IDYuNjY2ODMgOC4yNTA2NSA2LjY2NjgzSDEzLjUwMDdMMTEuMzM0IDQuNTAwMTZMMTIuNTAwNyAzLjMzMzVMMTYuNjY3MyA3LjUwMDE2TDEyLjUwMDcgMTEuNjY2OEwxMS4zMzQgMTAuNTAwMkwxMy41MDA3IDguMzMzNUg4LjI1MDY1QzcuMzc1NjUgOC4zMzM1IDYuNjE1MSA4LjYxMTI3IDUuOTY4OTggOS4xNjY4M0M1LjMyMjg3IDkuNzIyMzggNS4wMDAxIDEwLjQxNjggNS4wMDA2NSAxMS4yNTAyQzUuMDAwNjUgMTIuMDgzNSA1LjMyMzcxIDEyLjc3NzkgNS45Njk4MiAxMy4zMzM1QzYuNjE1OTMgMTMuODg5MSA3LjM3NjIxIDE0LjE2NjggOC4yNTA2NSAxNC4xNjY4SDE0LjE2NzNWMTUuODMzNUg4LjI1MDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiYmxhY2tcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIEBpZiAoaGFzRml4dHVyZVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgICA8em9uZS1lZGl0YWJsZS1maXh0dXJlXHJcbiAgICAgICAgICAgICAgICAgIFtmaXh0dXJlXT1cInpvbmVGaXh0dXJlXCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dWTXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0hlYWRlckZvb3RlckFsd2F5c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cImNhblNob3dBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8L3pvbmUtZWRpdGFibGUtZml4dHVyZT5cclxuICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiOTRcIiBoZWlnaHQ9XCI5NFwiIHZpZXdCb3g9XCIwIDAgOTQgOTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiN1wiIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4MFwiIHJ4PVwiNDBcIiBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgcng9XCI0MFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCIxMy4zMzMzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzUuOTUwMiA0OC4xOTk3QzM1LjY0ODkgNDguMjMxNSAzNS4zNDIyIDQ4LjI1MDUgMzUuMDMxMiA0OC4yNTA1QzM0Ljg2MTcgNDguMjUwNSAzNC42OTQ0IDQ4LjI0MzYgMzQuNTI5MyA0OC4yMzM5VjU4LjYwNjlDMzQuNTI5MyA2MC4wMzQ5IDM1LjcxMjMgNjEuMjI2IDM3LjIwMDIgNjEuMjI2MUg1Ni44MDQ3QzU4LjI5MjcgNjEuMjI2MSA1OS40NzU2IDYwLjAzNSA1OS40NzU2IDU4LjYwNjlWNDguMjM0OUM1OS4zMTM3IDQ4LjI0NDEgNTkuMTQ5OCA0OC4yNTA1IDU4Ljk4NTQgNDguMjUwNUM1OC42NzE0IDQ4LjI1MDUgNTguMzYwOCA0OC4yMzI1IDU4LjA1NDcgNDguMTk5N1Y1NS45ODc4SDM1Ljk1MDJWNDguMTk5N1pNNTcuOTMxNiAzMi43NzM5SDM2LjA3MzJDMzUuODk1OSAzMi43NzM5IDM1Ljc0MDYgMzIuODY2NyAzNS42NjMxIDMyLjk4NzhMMzUuNjYxMSAzMi45ODk3TDMyLjE1MTQgMzguNDczMUwzMi4wNTY2IDM4LjYyMDZDMzAuODMxMSA0MC43NDA0IDMyLjA5NTcgNDMuNDY3NCAzNC40NDczIDQzLjc3NjlDMzQuNjQ4MiA0My44MDEzIDM0LjgzNzkgNDMuODE1OSAzNS4wMjU0IDQzLjgxNTlDMzYuMjU1NSA0My44MTU5IDM3LjM0MzQgNDMuMjg3MiAzOC4xMDA2IDQyLjQ2NTNMMzkuMDIyNSA0MS40NjQ0TDM5Ljk0MTQgNDIuNDY4M0M0MC42OTAzIDQzLjI4NjMgNDEuNzc3IDQzLjgxNTkgNDMuMDE0NiA0My44MTU5QzQ0LjI0NjcgNDMuODE1OCA0NS4zMzg2IDQzLjI4NTYgNDYuMDg2OSA0Mi40NjgzTDQ3LjAwODggNDEuNDYxNEw0Ny45MzA3IDQyLjQ2ODNDNDguNjc5IDQzLjI4NTcgNDkuNzcwNyA0My44MTU5IDUxLjAwMjkgNDMuODE1OUM1Mi4yMzUxIDQzLjgxNTkgNTMuMzI2OCA0My4yODU3IDU0LjA3NTIgNDIuNDY4M0w1NC45OTcxIDQxLjQ2MTRMNTUuOTE4OSA0Mi40NjgzQzU2LjY2NzMgNDMuMjg1NyA1Ny43NiA0My44MTU5IDU4Ljk5MjIgNDMuODE1OUM1OS4xNzM2IDQzLjgxNTkgNTkuMzY4NyA0My44MDIxIDU5LjU2ODQgNDMuNzc3OEg1OS41Njc0QzYxLjk2MTEgNDMuNDU3MyA2My4yMjkzIDQwLjYwNzggNjEuODYxMyAzOC40NzMxTDYxLjg2MDQgMzguNDc0MUw1OC4zNDM4IDMyLjk5MDdMNTguMzQyOCAzMi45ODc4QzU4LjI2NTMgMzIuODY2NSA1OC4xMDkyIDMyLjc3MzkgNTcuOTMxNiAzMi43NzM5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyLjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pk5vIHJlc3BvbnNlIGZvciB0aGlzIGZpeHR1cmUgeWV0LjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDwhLS0gQ29sdW1uIDM6IFN0b3JlIGltYWdlIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicC0yXCIgW25nQ2xhc3NdPVwieydjb2wtNic6IHNob3dBY3Rpb24sICdjb2wnOiAhc2hvd0FjdGlvbn1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi10b3AnOicxMnB4J31cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbXktNFwiPlxyXG4gICAgICAgICAgICAgIDxoND5TdG9yZSBJbWFnZTwvaDQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBAaWYgKHpvbmVJbWFnZVVybCkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZml4dHVyZS1pbWFnZVwiIChjbGljayk9XCJvbkNsaWNrSW1hZ2VQcmV2aWV3KCRldmVudCwgem9uZUltYWdlVXJsKVwiPlxyXG4gICAgICAgICAgICAgIEBpZiAoaXNJbWFnZUxvYWRpbmcpIHtcclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJza2VsZXRvbkxvYWRlclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiem9uZUltYWdlVXJsXCIgYWx0PVwiU3RvcmUgcmVzcG9uc2UgaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaXNJbWFnZUxvYWRpbmcgPyAnbm9uZScgOiAnYmxvY2snXCIgKGxvYWRzdGFydCk9XCJvbkltYWdlTG9hZFN0YXJ0KClcIlxyXG4gICAgICAgICAgICAgICAgKGxvYWQpPVwib25JbWFnZUxvYWQoKVwiIChlcnJvcik9XCJvbkltYWdlRXJyb3IoKVwiIChsb2FkZW5kKT1cIm9uSW1hZ2VMb2FkRW5kKClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWctcHJldmlld1wiICpuZ0lmPVwic2VsZWN0ZWRJbWFnZUZvclByZXZpZXdcIiAoY2xpY2spPVwiY2xvc2VJbWFnZVByZXZpZXcoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInByZXZpZXctY2xvc2VcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBjbG9zZUltYWdlUHJldmlldygpXCI+JiN4MjcxNTs8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXpvb20tY29udHJvbHNcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9uUHJldmlld1pvb21PdXQoKVwiPiYjeDIyMTI7PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFuZ2VcIiBjbGFzcz1cInpvb20tc2xpZGVyXCIgbWluPVwiMjVcIiBtYXg9XCI1MDBcIiBzdGVwPVwiMjVcIiBbdmFsdWVdPVwiaW1hZ2VQcmV2aWV3Wm9vbSAqIDEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uUHJldmlld1pvb21TbGlkZXIoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IChpbWFnZVByZXZpZXdab29tICogMTAwKS50b0ZpeGVkKDApIH19JTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25QcmV2aWV3Wm9vbUluKClcIj4mI3gyQjs8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctaW1hZ2UtY29udGFpbmVyXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25QcmV2aWV3UGFuU3RhcnQoJGV2ZW50KVwiIChtb3VzZW1vdmUpPVwib25QcmV2aWV3UGFuTW92ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgKG1vdXNldXApPVwib25QcmV2aWV3UGFuRW5kKClcIiAobW91c2VsZWF2ZSk9XCJvblByZXZpZXdQYW5FbmQoKVwiICh3aGVlbCk9XCJvblByZXZpZXdXaGVlbCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzZWxlY3RlZEltYWdlRm9yUHJldmlld1wiIGNsYXNzPVwiZnVsbC1pbWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiJ3NjYWxlKCcgKyBpbWFnZVByZXZpZXdab29tICsgJykgdHJhbnNsYXRlKCcgKyBpbWFnZVByZXZpZXdQYW5YIC8gaW1hZ2VQcmV2aWV3Wm9vbSArICdweCwnICsgaW1hZ2VQcmV2aWV3UGFuWSAvIGltYWdlUHJldmlld1pvb20gKyAncHgpJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS02XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4NlwiIGhlaWdodD1cIjg0XCIgdmlld0JveD1cIjAgMCAxODYgODRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMzAuMjU2IDE1LjMyODRDMTQwLjA5MiAxNS4zMjg0IDE0OC4wNjUgMjMuMzAyIDE0OC4wNjUgMzMuMTM3OUMxNDguMDY1IDM3LjIxNzYgMTUwLjgyNiA0MS44Njg0IDE1NC45MDYgNDEuODY4NEgxNjcuOTcyQzE3Ny44MDcgNDEuODY4NyAxODUuNzgxIDQ5Ljg0MjIgMTg1Ljc4MSA1OS42NzhDMTg1Ljc4MSA2OS41MTQxIDE3Ny44MDcgNzcuNDg4NSAxNjcuOTcxIDc3LjQ4ODVIODEuMzY2MkM2OS43MTg2IDc3LjQ4ODMgNTguNjM0OSA2OC40MDg0IDQ2Ljk4NzMgNjguNDA4NEg1LjkzNjUyQzIuNjU3ODIgNjguNDA4NCAwIDY1Ljc1MDYgMCA2Mi40NzE5QzAuMDAwMTI3ODIzIDU5LjE5MzMgMi42NTc5IDU2LjUzNTQgNS45MzY1MiA1Ni41MzU0SDYxLjg3MjhDNjMuMDA2OSA1Ni41MzU0IDYzLjk2NjkgNTUuNjkyOSA2NC4yODk3IDU0LjYwNTZDNjQuNzk5NCA1Mi44ODkyIDYzLjYyNjcgNTAuOTQ4NSA2MS44MzYxIDUwLjk0ODVINDMuNjUxNEMzMy44MTUzIDUwLjk0ODUgMjUuODQxOCA0Mi45NzQgMjUuODQxOCAzMy4xMzc5QzI1Ljg0MiAyMy4zMDIgMzMuODE1NCAxNS4zMjg0IDQzLjY1MTQgMTUuMzI4NEgxMzAuMjU2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTI2LjY2NCAyNy4zMzVWNDguNjVMMTIwLjk1OSA0My43NUMxMTguMjI5IDQxLjQwNSAxMTMuODE5IDQxLjQwNSAxMTEuMDg5IDQzLjc1TDk2LjUyOTEgNTYuMjQ1QzkzLjc5OTEgNTguNTkgODkuMzg5MSA1OC41OSA4Ni42NTkxIDU2LjI0NUw4NS40NjkxIDU1LjI2NUM4Mi45ODQxIDUzLjA5NSA3OS4wMjkxIDUyLjg4NSA3Ni4yMjkxIDU0Ljc3NUw1OS4wMDkxIDY2LjMyNUw1OC42MjQxIDY2LjYwNUM1Ny4zMjkxIDYzLjgwNSA1Ni42NjQxIDYwLjQ4IDU2LjY2NDEgNTYuNjY1VjI3LjMzNUM1Ni42NjQxIDE0LjU5NSA2NC4yNTkxIDcgNzYuOTk5MSA3SDEwNi4zMjlDMTE5LjA2OSA3IDEyNi42NjQgMTQuNTk1IDEyNi42NjQgMjcuMzM1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzZCQ0FGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNODEuMTY0IDM2LjMyOTlDODUuNzY0NSAzNi4zMjk5IDg5LjQ5NCAzMi42MDA1IDg5LjQ5NCAyNy45OTk5Qzg5LjQ5NCAyMy4zOTk0IDg1Ljc2NDUgMTkuNjY5OSA4MS4xNjQgMTkuNjY5OUM3Ni41NjM1IDE5LjY2OTkgNzIuODM0IDIzLjM5OTQgNzIuODM0IDI3Ljk5OTlDNzIuODM0IDMyLjYwMDUgNzYuNTYzNSAzNi4zMjk5IDgxLjE2NCAzNi4zMjk5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTI2LjY2NSA0OC42NVY1Ni42NjVDMTI2LjY2NSA2OS40MDUgMTE5LjA3IDc3IDEwNi4zMyA3N0g3N0M2OC4wNzUgNzcgNjEuNjM1IDczLjI1NSA1OC42MjUgNjYuNjA1TDU5LjAxIDY2LjMyNUw3Ni4yMyA1NC43NzVDNzkuMDMgNTIuODg1IDgyLjk4NSA1My4wOTUgODUuNDcgNTUuMjY1TDg2LjY2IDU2LjI0NUM4OS4zOSA1OC41OSA5My44IDU4LjU5IDk2LjUzIDU2LjI0NUwxMTEuMDkgNDMuNzVDMTEzLjgyIDQxLjQwNSAxMTguMjMgNDEuNDA1IDEyMC45NiA0My43NUwxMjYuNjY1IDQ4LjY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEzOC4wNjRcIiBjeT1cIjI4LjMxMjhcIiByPVwiNC40MDA0MlwiIGZpbGw9XCIjNkJDQUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNDcuODI1NlwiIGN5PVwiMzkuMjQwOVwiIHI9XCIyLjQ1MjU1XCIgZmlsbD1cIiM2QkNBRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbGxpcHNlIGN4PVwiMTM5LjE4M1wiIGN5PVwiNjEuMDA3MlwiIHJ4PVwiNC4yOTE5N1wiIHJ5PVwiNC41OTg1NFwiIGZpbGw9XCIjMDBBM0ZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoem9uZUZlZWRiYWNrPy5hbnN3ZXJzPy5bMF0/LmNvbW1lbnRzPy5sZW5ndGgpIHtcclxuICAgICAgPGRpdiBpZD1cImZpeHR1cmUtY29tbWVudHNcIj5cclxuICAgICAgICA8aDUgY2xhc3M9XCJtYi0yXCI+Q29tbWVudHM8L2g1PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9nLWJsb2NrXCIgKm5nRm9yPVwibGV0IGMgb2Ygem9uZUZlZWRiYWNrPy5hbnN3ZXJzPy5bMF0/LmNvbW1lbnRzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjRUFGOEZGXCIgLz5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTIyLjY2NzMgMjMuNVYyMS44MzMzQzIyLjY2NzMgMjAuOTQ5MyAyMi4zMTYxIDIwLjEwMTQgMjEuNjkxIDE5LjQ3NjNDMjEuMDY1OSAxOC44NTEyIDIwLjIxOCAxOC41IDE5LjMzNCAxOC41SDEyLjY2NzNDMTEuNzgzMyAxOC41IDEwLjkzNTQgMTguODUxMiAxMC4zMTAzIDE5LjQ3NjNDOS42ODUxNyAyMC4xMDE0IDkuMzMzOTggMjAuOTQ5MyA5LjMzMzk4IDIxLjgzMzNWMjMuNU0xOS4zMzQgMTEuODMzM0MxOS4zMzQgMTMuNjc0MyAxNy44NDE2IDE1LjE2NjcgMTYuMDAwNyAxNS4xNjY3QzE0LjE1OTcgMTUuMTY2NyAxMi42NjczIDEzLjY3NDMgMTIuNjY3MyAxMS44MzMzQzEyLjY2NzMgOS45OTIzOCAxNC4xNTk3IDguNSAxNi4wMDA3IDguNUMxNy44NDE2IDguNSAxOS4zMzQgOS45OTIzOCAxOS4zMzQgMTEuODMzM1pcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTEgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgIDxoND57eyBjPy51c2VyTmFtZSB9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgPHA+e3sgYz8udGltZVN0YW1wIHwgZGF0ZTonaGg6bW06c3MgYSAtIGRkIE1NTSB5eXl5JyB9fTwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICBAaWYgKGM/LnJlc3BvbnNldHlwZSA9PT0gJ2NvbW1lbnQnKSB7XHJcbiAgICAgICAgICAgICAgPGg1Pnt7IGM/LmNvbW1lbnQgfX08L2g1PlxyXG4gICAgICAgICAgICB9IEBlbHNlIGlmIChjPy5yZXNwb25zZXR5cGUgPT09ICdhZ3JlZScpIHtcclxuICAgICAgICAgICAgICA8aDUgKm5nSWY9XCJ6b25lRmVlZGJhY2s/LmFuc3dlcnM/LlswXT8udXNlckFjdGlvbiA9PT0gJ2tlZXBQbGFubydcIj5cclxuICAgICAgICAgICAgICAgIE1hcmtlZCBhcyBcIktlZXAgUGxhbm9cIi5cclxuICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgIDxoNSAqbmdJZj1cInpvbmVGZWVkYmFjaz8uYW5zd2Vycz8uWzBdPy51c2VyQWN0aW9uID09PSAnYWNjZXB0UmVzcG9uc2UnXCI+XHJcbiAgICAgICAgICAgICAgICBNYXJrZWQgYXMgXCJBY2NlcHQgUmVzcG9uc2VcIi5cclxuICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgIDxoNSAqbmdJZj1cInpvbmVGZWVkYmFjaz8uYW5zd2Vycz8uWzBdPy51c2VyQWN0aW9uID09PSAnZWRpdEFjY2VwdGVkJ1wiPlxyXG4gICAgICAgICAgICAgICAgTWFya2VkIGFzIFwiQWNjZXB0IFJlc3BvbnNlIHdpdGggTW9kaWZpY2F0aW9uXCIuXHJcbiAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICA8aDUgKm5nSWY9XCJjPy5jb21tZW50XCI+Tm90ZToge3sgYy5jb21tZW50IH19PC9oNT5cclxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoYz8ucmVzcG9uc2V0eXBlID09PSAnZGlzYWdyZWUnKSB7XHJcbiAgICAgICAgICAgICAgPGg1Pk1hcmtlZCBhcyBcIlJlZG9cIjwvaDU+XHJcbiAgICAgICAgICAgICAgPGg1ICpuZ0lmPVwiYz8uY29tbWVudFwiPk5vdGU6IHt7IGMuY29tbWVudCB9fTwvaDU+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNza2VsZXRvbkxvYWRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXIgcm91bmRlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8YnIgLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3NlY3Rpb24+Il19
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS12ZXJpZmljYXRpb24tZmVlZGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXN0b3JlLXBsYW5vL3pvbmUtdmVyaWZpY2F0aW9uLWZlZWRiYWNrL3pvbmUtdmVyaWZpY2F0aW9uLWZlZWRiYWNrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL21hbmFnZS1zdG9yZS1wbGFuby96b25lLXZlcmlmaWNhdGlvbi1mZWVkYmFjay96b25lLXZlcmlmaWNhdGlvbi1mZWVkYmFjay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7QUFROUgsTUFBTSxPQUFPLGlDQUFpQztJQW1CeEI7SUFsQlgsU0FBUyxDQUFNO0lBQ2YsZUFBZSxDQUFNO0lBQ3JCLFFBQVEsQ0FBTTtJQUNkLFlBQVksQ0FBTTtJQUNsQixhQUFhLEdBQVUsRUFBRSxDQUFDO0lBQzFCLEdBQUcsQ0FBUztJQUNaLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFFMUIsYUFBYSxHQUFHLElBQUksWUFBWSxFQUd0QyxDQUFDO0lBRUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFHM0MsZUFBZSxDQUFnQztJQUUvQyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcs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LFNBQVM7K0JBQ0UsZ0NBQWdDOzZFQUtqQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxNQUFNO3NCQUFmLE1BQU07Z0JBR1AsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7IEFjdGlvbkNvbmZpcm1Qb3B1cENvbXBvbmVudCB9IGZyb20gXCIuLi92ZXJpZmljYXRpb24tZmVlZGJhY2svYWN0aW9uLWNvbmZpcm0tcG9wdXAvYWN0aW9uLWNvbmZpcm0tcG9wdXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpvbmVFZGl0YWJsZUZpeHR1cmVDb21wb25lbnQgfSBmcm9tIFwiLi4vdmVyaWZpY2F0aW9uLWZlZWRiYWNrL3pvbmUtZWRpdGFibGUtZml4dHVyZS96b25lLWVkaXRhYmxlLWZpeHR1cmUuY29tcG9uZW50XCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLXpvbmUtdmVyaWZpY2F0aW9uLWZlZWRiYWNrXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96b25lLXZlcmlmaWNhdGlvbi1mZWVkYmFjay5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vem9uZS12ZXJpZmljYXRpb24tZmVlZGJhY2suY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFpvbmVWZXJpZmljYXRpb25GZWVkYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZmxvb3JEYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgZmVlZGJhY2tEZXRhaWxzOiBhbnk7XHJcbiAgQElucHV0KCkgem9uZVRhc2s6IGFueTtcclxuICBASW5wdXQoKSB6b25lRmVlZGJhY2s6IGFueTtcclxuICBASW5wdXQoKSB0b3RhbEZpeHR1cmVzOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNkbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlRml4dHVyZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgY3VycmVudEZpeHR1cmU6IHN0cmluZztcclxuICAgIGFjdGlvbjogXCJuZXh0XCIgfCBcInByZXZpb3VzXCI7XHJcbiAgfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAVmlld0NoaWxkKFpvbmVFZGl0YWJsZUZpeHR1cmVDb21wb25lbnQpXHJcbiAgZWRpdGFibGVGaXh0dXJlPzogWm9uZUVkaXRhYmxlRml4dHVyZUNvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ2JNb2RhbDogTmdiTW9kYWwpIHt9XHJcblxyXG4gIHBsYW5vRml4dHVyZTogYW55O1xyXG4gIHpvbmVGaXh0dXJlOiBhbnk7XHJcbiAgY3VycmVudEZpeHR1cmVJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgc2VsZWN0ZWRJbWFnZUZvclByZXZpZXc6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGltYWdlUHJldmlld1pvb206IG51bWJlciA9IDE7XHJcbiAgaW1hZ2VQcmV2aWV3UGFuWDogbnVtYmVyID0gMDtcclxuICBpbWFnZVByZXZpZXdQYW5ZOiBudW1iZXIgPSAwO1xyXG4gIGlzUGFubmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcGFuTGFzdFg6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBwYW5MYXN0WTogbnVtYmVyID0gMDtcclxuXHJcbiAgaXNJbWFnZUxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHByZXZpb3VzSW1hZ2VVcmw6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzW1wiZmVlZGJhY2tEZXRhaWxzXCJdIHx8IGNoYW5nZXNbXCJ6b25lRmVlZGJhY2tcIl0gfHwgY2hhbmdlc1tcImNkblwiXSkge1xyXG4gICAgICB0aGlzLnBsYW5vRml4dHVyZSA9IHRoaXMuZmVlZGJhY2tEZXRhaWxzPy5maXh0dXJlRmVlZGJhY2s/LkZpeHR1cmVEYXRhO1xyXG4gICAgICB0aGlzLmN1cnJlbnRGaXh0dXJlSW5kZXggPVxyXG4gICAgICAgIHRoaXMudG90YWxGaXh0dXJlcy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoZjogYW55KSA9PlxyXG4gICAgICAgICAgICBmLl9pZCA9PT0gdGhpcy5mZWVkYmFja0RldGFpbHM/LmZpeHR1cmVGZWVkYmFjaz8uZml4dHVyZUlkLFxyXG4gICAgICAgICkgKyAxO1xyXG4gICAgICB0aGlzLnpvbmVGaXh0dXJlID0gdGhpcy5idWlsZFpvbmVGaXh0dXJlKFxyXG4gICAgICAgIHRoaXMuem9uZUZlZWRiYWNrLFxyXG4gICAgICAgIHRoaXMucGxhbm9GaXh0dXJlLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgY29uc3QgbmV3SW1hZ2VVcmwgPSB0aGlzLnpvbmVJbWFnZVVybDtcclxuXHJcbiAgICAgIGlmIChuZXdJbWFnZVVybCAmJiBuZXdJbWFnZVVybCAhPT0gdGhpcy5wcmV2aW91c0ltYWdlVXJsKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2aW91c0ltYWdlVXJsID0gbmV3SW1hZ2VVcmw7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoIW5ld0ltYWdlVXJsKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2aW91c0ltYWdlVXJsID0gXCJcIjtcclxuICAgICAgICB0aGlzLmlzSW1hZ2VMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRab25lRml4dHVyZShyb3c6IGFueSwgcGxhbm9GaXh0dXJlOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgYW5zID0gcm93Py5hbnN3ZXJzPy5bMF07XHJcbiAgICBpZiAoIWFucykgcmV0dXJuIG51bGw7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYW5zLnNoZWxmQ29uZmlnKSB8fCBhbnMuc2hlbGZDb25maWcubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZml4dHVyZUlkOiByb3c/LmZpeHR1cmVJZCxcclxuICAgICAgZml4dHVyZTogYW5zLmZpeHR1cmUsXHJcbiAgICAgIGZpeHR1cmVUeXBlOiBhbnMuZml4dHVyZVR5cGUgPz8gcGxhbm9GaXh0dXJlPy5maXh0dXJlVHlwZSxcclxuICAgICAgZml4dHVyZUNhdGVnb3J5OiBhbnMuZml4dHVyZUNhdGVnb3J5ID8/IHBsYW5vRml4dHVyZT8uZml4dHVyZUNhdGVnb3J5LFxyXG4gICAgICBmaXh0dXJlQ2FwYWNpdHk6IGFucy5maXh0dXJlQ2FwYWNpdHksXHJcbiAgICAgIGZpeHR1cmVJbWFnZTogYW5zLmZpeHR1cmVJbWFnZSxcclxuICAgICAgaXNFbXB0eTogYW5zLmlzRW1wdHksXHJcbiAgICAgIGhlYWRlcjoge1xyXG4gICAgICAgIC4uLihwbGFub0ZpeHR1cmU/LmhlYWRlciA/PyB7fSksXHJcbiAgICAgICAgLi4uKGFucy5oZWFkZXIgPz8ge30pLFxyXG4gICAgICB9LFxyXG4gICAgICBmb290ZXI6IHBsYW5vRml4dHVyZT8uZm9vdGVyLFxyXG4gICAgICBwcm9kdWN0UmVzb2x1dGlvbkxldmVsOiBwbGFub0ZpeHR1cmU/LnByb2R1Y3RSZXNvbHV0aW9uTGV2ZWwsXHJcbiAgICAgIHNoZWxmQ29uZmlnOiBhbnMuc2hlbGZDb25maWcsXHJcbiAgICAgIHZtQ29uZmlnOiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzWm9uZVRhc2soKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnpvbmVUYXNrO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVGFza09wZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy56b25lVGFzaz8uY2hlY2tsaXN0U3RhdHVzID09PSBcIm9wZW5cIjtcclxuICB9XHJcblxyXG4gIGdldCBoYXNGaXh0dXJlUmVzcG9uc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnpvbmVGaXh0dXJlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRVc2VyQWN0aW9uKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuem9uZUZlZWRiYWNrPy5hbnN3ZXJzPy5bMF0/LnVzZXJBY3Rpb24gPz8gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCBpc0FwcHJvdmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5jdXJyZW50VXNlckFjdGlvbjtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGFjdGlvbiA9PT0gXCJrZWVwUGxhbm9cIiB8fFxyXG4gICAgICBhY3Rpb24gPT09IFwiYWNjZXB0UmVzcG9uc2VcIiB8fFxyXG4gICAgICBhY3Rpb24gPT09IFwiZWRpdEFjY2VwdGVkXCJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBUcnVlIGZvciBhbnkgYWN0aW9uIHRha2VuIChhcHByb3ZlLXN0eWxlIG9yIHJlZG8pLiBVc2VkIHRvIGhpZGUgdGhlIGFjdGlvbiByb3dcclxuICAvLyBvbmNlIHRoZSB1c2VyIGhhcyBkZWNpZGVkIOKAlCBtaXJyb3JzIGZpeHR1cmUgdmVyaWZpY2F0aW9uLlxyXG4gIGdldCBpc0FjdGlvbmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNBcHByb3ZlZCB8fCB0aGlzLmN1cnJlbnRVc2VyQWN0aW9uID09PSBcInJlZG9cIjtcclxuICB9XHJcblxyXG4gIGdldCBpc0NsRml4dHVyZSgpOiBib29sZWFuIHtcclxuICAgIC8vIE1hdGNoIHRoZSBjb21wbGlhbmNlLXNpZGUgQ0wgcnVsZTogaGVhZGVyLmxhYmVsID09PSAnQ0wnIE9SIHRlbXBsYXRlR3JvdXBOYW1lXHJcbiAgICAvLyA9PT0gJ0NMJy4gcGxhbm9GaXh0dXJlIGlzIHRoZSBsaXZlIHN0b3JlIGZpeHR1cmUgcmVjb3JkIHNvIHRlbXBsYXRlR3JvdXBOYW1lXHJcbiAgICAvLyBpcyBhbHdheXMgcG9wdWxhdGVkOyB0aGlzIGNhdGNoZXMgQ0wgZml4dHVyZXMgd2hvc2UgbW9iaWxlLXNpZGUgaGVhZGVyIHdhc1xyXG4gICAgLy8gcmVwb3J0ZWQgd2l0aCBhIGJyYW5kLXNwZWNpZmljIGxhYmVsLlxyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5wbGFub0ZpeHR1cmU/LmhlYWRlcj8ubGFiZWwgPT09IFwiQ0xcIiB8fFxyXG4gICAgICB0aGlzLnBsYW5vRml4dHVyZT8udGVtcGxhdGVHcm91cE5hbWUgPT09IFwiQ0xcIlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCB6b25lSW1hZ2VVcmwoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJlbCA9XHJcbiAgICAgIHRoaXMuem9uZUZpeHR1cmU/LmZpeHR1cmVJbWFnZSA/P1xyXG4gICAgICB0aGlzLnpvbmVGZWVkYmFjaz8uYW5zd2Vycz8uWzBdPy5maXh0dXJlSW1hZ2UgPz9cclxuICAgICAgXCJcIjtcclxuICAgIHJldHVybiB0aGlzLmNkbiAmJiByZWwgPyB0aGlzLmNkbiArIHJlbCA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuU2hvd0FjdGlvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNob3dBY3Rpb24gJiZcclxuICAgICAgISF0aGlzLnpvbmVUYXNrICYmXHJcbiAgICAgIHRoaXMuem9uZVRhc2s/LmNoZWNrbGlzdFN0YXR1cyA9PT0gXCJzdWJtaXRcIiAmJlxyXG4gICAgICAhdGhpcy5pc0FjdGlvbmVkICYmXHJcbiAgICAgICF0aGlzLmlzQ2xGaXh0dXJlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25DbGlja0tlZXBQbGFubygpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybUFjdGlvbihcInJlamVjdFJlc3BvbnNlXCIpO1xyXG4gICAgICBpZiAoIXJlc3VsdCB8fCByZXN1bHQuYWN0aW9uID09PSBcIm5vdE9rXCIpIHJldHVybjtcclxuXHJcbiAgICAgIHRoaXMuZWRpdGFibGVGaXh0dXJlPy5yZXNldFRvT3JpZ2luYWwoKTtcclxuXHJcbiAgICAgIHRoaXMuYWN0aW9uLmVtaXQoe1xyXG4gICAgICAgIGFjdGlvbjogXCJrZWVwUGxhbm9cIixcclxuICAgICAgICB0eXBlOiBcImFncmVlXCIsXHJcbiAgICAgICAgZml4dHVyZURhdGE6IHRoaXMucGxhbm9GaXh0dXJlLFxyXG4gICAgICAgIGZlZWRiYWNrOiB0aGlzLnpvbmVGZWVkYmFjayxcclxuICAgICAgICByZW1hcmtzOiByZXN1bHQucmVtYXJrLFxyXG4gICAgICAgIHBsYW5vSWQ6IHRoaXMuZmxvb3JEYXRhPy5wbGFub0lkLFxyXG4gICAgICAgIGZsb29ySWQ6IHRoaXMuZmxvb3JEYXRhPy5faWQsXHJcbiAgICAgICAgdGFza1R5cGU6IFwiem9uZVZlcmlmaWNhdGlvblwiLFxyXG4gICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQEAgfiBab25lIG9uQ2xpY2tLZWVwUGxhbm8gW0VSUl06XCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG9uQ2xpY2tBY2NlcHRSZXNwb25zZSgpIHtcclxuICAgIGlmICghdGhpcy5oYXNGaXh0dXJlUmVzcG9uc2UpIHJldHVybjtcclxuICAgIGlmICghdGhpcy5lZGl0YWJsZUZpeHR1cmU/LmlzVmFsaWQpIHJldHVybjtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybUFjdGlvbihcImFjY2VwdFJlc3BvbnNlXCIpO1xyXG4gICAgICBpZiAoIXJlc3VsdCB8fCByZXN1bHQuYWN0aW9uID09PSBcIm5vdE9rXCIpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IGlzTW9kaWZpZWQgPSAhIXRoaXMuZWRpdGFibGVGaXh0dXJlPy5pc0RpcnR5O1xyXG5cclxuICAgICAgdGhpcy5hY3Rpb24uZW1pdCh7XHJcbiAgICAgICAgYWN0aW9uOiBpc01vZGlmaWVkID8gXCJlZGl0QWNjZXB0ZWRcIiA6IFwiYWNjZXB0UmVzcG9uc2VcIixcclxuICAgICAgICB0eXBlOiBcImFncmVlXCIsXHJcbiAgICAgICAgZml4dHVyZURhdGE6IHRoaXMuem9uZUZpeHR1cmUsXHJcbiAgICAgICAgZmVlZGJhY2s6IHRoaXMuem9uZUZlZWRiYWNrLFxyXG4gICAgICAgIHJlbWFya3M6IHJlc3VsdC5yZW1hcmssXHJcbiAgICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGE/LnBsYW5vSWQsXHJcbiAgICAgICAgZmxvb3JJZDogdGhpcy5mbG9vckRhdGE/Ll9pZCxcclxuICAgICAgICB0YXNrVHlwZTogXCJ6b25lVmVyaWZpY2F0aW9uXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJAQCB+IFpvbmUgb25DbGlja0FjY2VwdFJlc3BvbnNlIFtFUlJdOlwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrRWRpdFJlc3BvbnNlKCkge1xyXG4gICAgaWYgKCF0aGlzLmhhc0ZpeHR1cmVSZXNwb25zZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCh7XHJcbiAgICAgIGFjdGlvbjogXCJlZGl0V2l0aFJlc3BvbnNlXCIsXHJcbiAgICAgIHR5cGU6IFwiYWdyZWVcIixcclxuICAgICAgZml4dHVyZURhdGE6IHRoaXMuem9uZUZpeHR1cmUsXHJcbiAgICAgIGZlZWRiYWNrOiB0aGlzLnpvbmVGZWVkYmFjayxcclxuICAgICAgcGxhbm9JZDogdGhpcy5mbG9vckRhdGE/LnBsYW5vSWQsXHJcbiAgICAgIGZsb29ySWQ6IHRoaXMuZmxvb3JEYXRhPy5faWQsXHJcbiAgICAgIHRhc2tUeXBlOiBcInpvbmVWZXJpZmljYXRpb25cIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25DbGlja1JlZG8oKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzRml4dHVyZVJlc3BvbnNlKSByZXR1cm47XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbmZpcm1BY3Rpb24oXCJyZWRvXCIpO1xyXG4gICAgICBpZiAoIXJlc3VsdCB8fCByZXN1bHQuYWN0aW9uID09PSBcIm5vdE9rXCIpIHJldHVybjtcclxuXHJcbiAgICAgIHRoaXMuZWRpdGFibGVGaXh0dXJlPy5yZXNldFRvT3JpZ2luYWwoKTtcclxuXHJcbiAgICAgIHRoaXMuYWN0aW9uLmVtaXQoe1xyXG4gICAgICAgIGFjdGlvbjogXCJyZWRvXCIsXHJcbiAgICAgICAgdHlwZTogXCJkaXNhZ3JlZVwiLFxyXG4gICAgICAgIGZpeHR1cmVEYXRhOiBudWxsLFxyXG4gICAgICAgIGZlZWRiYWNrOiB0aGlzLnpvbmVGZWVkYmFjayxcclxuICAgICAgICByZW1hcmtzOiByZXN1bHQucmVtYXJrLFxyXG4gICAgICAgIHBsYW5vSWQ6IHRoaXMuZmxvb3JEYXRhPy5wbGFub0lkLFxyXG4gICAgICAgIGZsb29ySWQ6IHRoaXMuZmxvb3JEYXRhPy5faWQsXHJcbiAgICAgICAgdGFza1R5cGU6IFwiem9uZVZlcmlmaWNhdGlvblwiLFxyXG4gICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQEAgfiBab25lIG9uQ2xpY2tSZWRvIFtFUlJdOlwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGNvbmZpcm1BY3Rpb24oXHJcbiAgICB0eXBlOiBcImtlZXBQbGFub1wiIHwgXCJhY2NlcHRSZXNwb25zZVwiIHwgXCJyZWplY3RSZXNwb25zZVwiIHwgXCJyZWRvXCIsXHJcbiAgKTogUHJvbWlzZTx7IGFjdGlvbjogc3RyaW5nOyByZW1hcms6IHN0cmluZyB8IG51bGwgfSB8IG51bGw+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IG1vZGVsUmVmID0gdGhpcy5uZ2JNb2RhbC5vcGVuKEFjdGlvbkNvbmZpcm1Qb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgICAgfSk7XHJcbiAgICAgIG1vZGVsUmVmLmNvbXBvbmVudEluc3RhbmNlLnR5cGUgPSB0eXBlO1xyXG5cclxuICAgICAgcmV0dXJuIGF3YWl0IG1vZGVsUmVmLnJlc3VsdC50aGVuPHtcclxuICAgICAgICBhY3Rpb246IHN0cmluZztcclxuICAgICAgICByZW1hcms6IHN0cmluZyB8IG51bGw7XHJcbiAgICAgIH0+KChyZXN1bHQpID0+IHJlc3VsdCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlRml4dHVyZShhY3Rpb246IFwibmV4dFwiIHwgXCJwcmV2aW91c1wiKSB7XHJcbiAgICBjb25zdCBmaXh0dXJlSWQgPSB0aGlzLmZlZWRiYWNrRGV0YWlscz8uZml4dHVyZUZlZWRiYWNrPy5maXh0dXJlSWQ7XHJcbiAgICBpZiAoIWZpeHR1cmVJZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5jaGFuZ2VGaXh0dXJlLmVtaXQoeyBjdXJyZW50Rml4dHVyZTogZml4dHVyZUlkLCBhY3Rpb24gfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrSW1hZ2VQcmV2aWV3KGV2ZW50OiBNb3VzZUV2ZW50LCBpbWdVcmw6IHN0cmluZykge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkSW1hZ2VGb3JQcmV2aWV3ID0gaW1nVXJsO1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdab29tID0gMTtcclxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3UGFuWCA9IDA7XHJcbiAgICB0aGlzLmltYWdlUHJldmlld1BhblkgPSAwO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VJbWFnZVByZXZpZXcoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSW1hZ2VGb3JQcmV2aWV3ID0gbnVsbDtcclxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3Wm9vbSA9IDE7XHJcbiAgICB0aGlzLmltYWdlUHJldmlld1BhblggPSAwO1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdQYW5ZID0gMDtcclxuICB9XHJcblxyXG4gIG9uUHJldmlld1pvb21JbigpIHtcclxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3Wm9vbSA9IE1hdGgubWluKHRoaXMuaW1hZ2VQcmV2aWV3Wm9vbSArIDAuMjUsIDUpO1xyXG4gICAgaWYgKHRoaXMuaW1hZ2VQcmV2aWV3Wm9vbSA8PSAxKSB0aGlzLnJlc2V0UGFuKCk7XHJcbiAgfVxyXG5cclxuICBvblByZXZpZXdab29tT3V0KCkge1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdab29tID0gTWF0aC5tYXgodGhpcy5pbWFnZVByZXZpZXdab29tIC0gMC4yNSwgMC4yNSk7XHJcbiAgICBpZiAodGhpcy5pbWFnZVByZXZpZXdab29tIDw9IDEpIHRoaXMucmVzZXRQYW4oKTtcclxuICB9XHJcblxyXG4gIG9uUHJldmlld1pvb21TbGlkZXIoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9ICsoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdab29tID0gdmFsdWUgLyAxMDA7XHJcbiAgICBpZiAodGhpcy5pbWFnZVByZXZpZXdab29tIDw9IDEpIHRoaXMucmVzZXRQYW4oKTtcclxuICB9XHJcblxyXG4gIG9uUHJldmlld1doZWVsKGV2ZW50OiBXaGVlbEV2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKGV2ZW50LmRlbHRhWSA8IDApIHtcclxuICAgICAgdGhpcy5vblByZXZpZXdab29tSW4oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25QcmV2aWV3Wm9vbU91dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25QcmV2aWV3UGFuU3RhcnQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmltYWdlUHJldmlld1pvb20gPD0gMSkgcmV0dXJuO1xyXG4gICAgdGhpcy5pc1Bhbm5pbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5wYW5MYXN0WCA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB0aGlzLnBhbkxhc3RZID0gZXZlbnQuY2xpZW50WTtcclxuICB9XHJcblxyXG4gIG9uUHJldmlld1Bhbk1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5pc1Bhbm5pbmcpIHJldHVybjtcclxuICAgIGNvbnN0IGR4ID0gZXZlbnQuY2xpZW50WCAtIHRoaXMucGFuTGFzdFg7XHJcbiAgICBjb25zdCBkeSA9IGV2ZW50LmNsaWVudFkgLSB0aGlzLnBhbkxhc3RZO1xyXG4gICAgdGhpcy5wYW5MYXN0WCA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB0aGlzLnBhbkxhc3RZID0gZXZlbnQuY2xpZW50WTtcclxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3UGFuWCArPSBkeDtcclxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3UGFuWSArPSBkeTtcclxuICB9XHJcblxyXG4gIG9uUHJldmlld1BhbkVuZCgpIHtcclxuICAgIHRoaXMuaXNQYW5uaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0UGFuKCkge1xyXG4gICAgdGhpcy5pbWFnZVByZXZpZXdQYW5YID0gMDtcclxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3UGFuWSA9IDA7XHJcbiAgfVxyXG5cclxuICBvbkltYWdlTG9hZCgpIHtcclxuICAgIHRoaXMuaXNJbWFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uSW1hZ2VFcnJvcigpIHtcclxuICAgIHRoaXMuaXNJbWFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uSW1hZ2VMb2FkU3RhcnQoKSB7XHJcbiAgICB0aGlzLmlzSW1hZ2VMb2FkaW5nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uSW1hZ2VMb2FkRW5kKCkge1xyXG4gICAgdGhpcy5pc0ltYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbiBpZD1cInZlcmlmaWNhdGlvbi1mZWVkYmFja1wiPlxyXG5cclxuICA8IS0tIFRhc2sgaW5mbyBhY2NvcmRpb24gLS0+XHJcbiAgPGRpdiAqbmdJZj1cImhhc1pvbmVUYXNrXCIgaWQ9XCJ0YXNrLWluZm9cIiBuZ2JBY2NvcmRpb24gI2FjY29yZGlvbj1cIm5nYkFjY29yZGlvblwiPlxyXG4gICAgPGRpdiBuZ2JBY2NvcmRpb25JdGVtPVwiZGV0YWlsc1wiPlxyXG4gICAgICA8ZGl2IG5nYkFjY29yZGlvbkhlYWRlciBuZ2JBY2NvcmRpb25Ub2dnbGUgY2xhc3M9XCJhY2NvcmRpb24tYnV0dG9uIHRhc2staW5mby1oZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgIDxoMj5ab25lIHZlcmlmaWNhdGlvbiBhc3NpZ25lZDwvaDI+XHJcbiAgICAgICAgICA8cD57eyB6b25lVGFzaz8uY3JlYXRlZEF0IHwgZGF0ZTogJ2hoOm1tOnNzIGEgLSBkZCBNTU0geXl5eScgfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2ctYmxvY2tcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0VBRjhGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTIyLjY2NzMgMjMuNVYyMS44MzMzQzIyLjY2NzMgMjAuOTQ5MyAyMi4zMTYxIDIwLjEwMTQgMjEuNjkxIDE5LjQ3NjNDMjEuMDY1OSAxOC44NTEyIDIwLjIxOCAxOC41IDE5LjMzNCAxOC41SDEyLjY2NzNDMTEuNzgzMyAxOC41IDEwLjkzNTQgMTguODUxMiAxMC4zMTAzIDE5LjQ3NjNDOS42ODUxNyAyMC4xMDE0IDkuMzMzOTggMjAuOTQ5MyA5LjMzMzk4IDIxLjgzMzNWMjMuNU0xOS4zMzQgMTEuODMzM0MxOS4zMzQgMTMuNjc0MyAxNy44NDE2IDE1LjE2NjcgMTYuMDAwNyAxNS4xNjY3QzE0LjE1OTcgMTUuMTY2NyAxMi42NjczIDEzLjY3NDMgMTIuNjY3MyAxMS44MzMzQzEyLjY2NzMgOS45OTIzOCAxNC4xNTk3IDguNSAxNi4wMDA3IDguNUMxNy44NDE2IDguNSAxOS4zMzQgOS45OTIzOCAxOS4zMzQgMTEuODMzM1pcIlxyXG4gICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTEgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxoND57eyB6b25lVGFzaz8uY3JlYXRlZEJ5TmFtZSB9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8cD57eyB6b25lVGFzaz8uY3JlYXRlZEF0IHwgZGF0ZTogJ2hoOm1tYSwgZGQgTU1NIHl5eXknIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgPGg1PkFzc2lnbmVyPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9nLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgZmlsbD1cIiNFQUY4RkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgZD1cIk0yMi42NjczIDIzLjVWMjEuODMzM0MyMi42NjczIDIwLjk0OTMgMjIuMzE2MSAyMC4xMDE0IDIxLjY5MSAxOS40NzYzQzIxLjA2NTkgMTguODUxMiAyMC4yMTggMTguNSAxOS4zMzQgMTguNUgxMi42NjczQzExLjc4MzMgMTguNSAxMC45MzU0IDE4Ljg1MTIgMTAuMzEwMyAxOS40NzYzQzkuNjg1MTcgMjAuMTAxNCA5LjMzMzk4IDIwLjk0OTMgOS4zMzM5OCAyMS44MzMzVjIzLjVNMTkuMzM0IDExLjgzMzNDMTkuMzM0IDEzLjY3NDMgMTcuODQxNiAxNS4xNjY3IDE2LjAwMDcgMTUuMTY2N0MxNC4xNTk3IDE1LjE2NjcgMTIuNjY3MyAxMy42NzQzIDEyLjY2NzMgMTEuODMzM0MxMi42NjczIDkuOTkyMzggMTQuMTU5NyA4LjUgMTYuMDAwNyA4LjVDMTcuODQxNiA4LjUgMTkuMzM0IDkuOTkyMzggMTkuMzM0IDExLjgzMzNaXCJcclxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8aDQ+e3sgem9uZVRhc2s/LnVzZXJOYW1lIH19PC9oND5cclxuICAgICAgICAgICAgICAgIDxwPnt7IHpvbmVUYXNrPy5zdWJtaXRUaW1lX3N0cmluZyB8fCB6b25lVGFzaz8uc3RhcnRUaW1lX3N0cmluZyB9fTwvcD5cclxuICAgICAgICAgICAgICAgIDxoNT5Bc3NpZ25lZTwvaDU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInpvbmVUYXNrPy5jb21tZW50cz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibWItMlwiPkNvbW1lbnRzPC9oNT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9nLWJsb2NrXCIgKm5nRm9yPVwibGV0IGMgb2Ygem9uZVRhc2s/LmNvbW1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjRUFGOEZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTIyLjY2NzMgMjMuNVYyMS44MzMzQzIyLjY2NzMgMjAuOTQ5MyAyMi4zMTYxIDIwLjEwMTQgMjEuNjkxIDE5LjQ3NjNDMjEuMDY1OSAxOC44NTEyIDIwLjIxOCAxOC41IDE5LjMzNCAxOC41SDEyLjY2NzNDMTEuNzgzMyAxOC41IDEwLjkzNTQgMTguODUxMiAxMC4zMTAzIDE5LjQ3NjNDOS42ODUxNyAyMC4xMDE0IDkuMzMzOTggMjAuOTQ5MyA5LjMzMzk4IDIxLjgzMzNWMjMuNU0xOS4zMzQgMTEuODMzM0MxOS4zMzQgMTMuNjc0MyAxNy44NDE2IDE1LjE2NjcgMTYuMDAwNyAxNS4xNjY3QzE0LjE1OTcgMTUuMTY2NyAxMi42NjczIDEzLjY3NDMgMTIuNjY3MyAxMS44MzMzQzEyLjY2NzMgOS45OTIzOCAxNC4xNTk3IDguNSAxNi4wMDA3IDguNUMxNy44NDE2IDguNSAxOS4zMzQgOS45OTIzOCAxOS4zMzQgMTEuODMzM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDQ+e3sgYz8udXNlck5hbWUgfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgICA8cD57eyBjPy5jcmVhdGVkQXQgfCBkYXRlOidoaDptbTpzcyBhIC0gZGQgTU1NIHl5eXknIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICA8aDU+e3sgYz8uY29tbWVudCB9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8aHIgKm5nSWY9XCJoYXNab25lVGFza1wiPlxyXG5cclxuICA8IS0tIEVtcHR5IHN0YXRlOiBubyB0YXNrIGFzc2lnbmVkIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzWm9uZVRhc2tcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJteS02XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiOTRcIiBoZWlnaHQ9XCI5NFwiIHZpZXdCb3g9XCIwIDAgOTQgOTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiN1wiIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4MFwiIHJ4PVwiNDBcIiBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgcng9XCI0MFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCIxMy4zMzMzXCIgLz5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMzUuOTUwMiA0OC4xOTk3QzM1LjY0ODkgNDguMjMxNSAzNS4zNDIyIDQ4LjI1MDUgMzUuMDMxMiA0OC4yNTA1QzM0Ljg2MTcgNDguMjUwNSAzNC42OTQ0IDQ4LjI0MzYgMzQuNTI5MyA0OC4yMzM5VjU4LjYwNjlDMzQuNTI5MyA2MC4wMzQ5IDM1LjcxMjMgNjEuMjI2IDM3LjIwMDIgNjEuMjI2MUg1Ni44MDQ3QzU4LjI5MjcgNjEuMjI2MSA1OS40NzU2IDYwLjAzNSA1OS40NzU2IDU4LjYwNjlWNDguMjM0OUM1OS4zMTM3IDQ4LjI0NDEgNTkuMTQ5OCA0OC4yNTA1IDU4Ljk4NTQgNDguMjUwNUM1OC42NzE0IDQ4LjI1MDUgNTguMzYwOCA0OC4yMzI1IDU4LjA1NDcgNDguMTk5N1Y1NS45ODc4SDM1Ljk1MDJWNDguMTk5N1pNNTcuOTMxNiAzMi43NzM5SDM2LjA3MzJDMzUuODk1OSAzMi43NzM5IDM1Ljc0MDYgMzIuODY2NyAzNS42NjMxIDMyLjk4NzhMMzUuNjYxMSAzMi45ODk3TDMyLjE1MTQgMzguNDczMUwzMi4wNTY2IDM4LjYyMDZDMzAuODMxMSA0MC43NDA0IDMyLjA5NTcgNDMuNDY3NCAzNC40NDczIDQzLjc3NjlDMzQuNjQ4MiA0My44MDEzIDM0LjgzNzkgNDMuODE1OSAzNS4wMjU0IDQzLjgxNTlDMzYuMjU1NSA0My44MTU5IDM3LjM0MzQgNDMuMjg3MiAzOC4xMDA2IDQyLjQ2NTNMMzkuMDIyNSA0MS40NjQ0TDM5Ljk0MTQgNDIuNDY4M0M0MC42OTAzIDQzLjI4NjMgNDEuNzc3IDQzLjgxNTkgNDMuMDE0NiA0My44MTU5QzQ0LjI0NjcgNDMuODE1OCA0NS4zMzg2IDQzLjI4NTYgNDYuMDg2OSA0Mi40NjgzTDQ3LjAwODggNDEuNDYxNEw0Ny45MzA3IDQyLjQ2ODNDNDguNjc5IDQzLjI4NTcgNDkuNzcwNyA0My44MTU5IDUxLjAwMjkgNDMuODE1OUM1Mi4yMzUxIDQzLjgxNTkgNTMuMzI2OCA0My4yODU3IDU0LjA3NTIgNDIuNDY4M0w1NC45OTcxIDQxLjQ2MTRMNTUuOTE4OSA0Mi40NjgzQzU2LjY2NzMgNDMuMjg1NyA1Ny43NiA0My44MTU5IDU4Ljk5MjIgNDMuODE1OUM1OS4xNzM2IDQzLjgxNTkgNTkuMzY4NyA0My44MDIxIDU5LjU2ODQgNDMuNzc3OEg1OS41Njc0QzYxLjk2MTEgNDMuNDU3MyA2My4yMjkzIDQwLjYwNzggNjEuODYxMyAzOC40NzMxTDYxLjg2MDQgMzguNDc0MUw1OC4zNDM4IDMyLjk5MDdMNTguMzQyOCAzMi45ODc4QzU4LjI2NTMgMzIuODY2NSA1OC4xMDkyIDMyLjc3MzkgNTcuOTMxNiAzMi43NzM5WlwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyLjVcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBoMyBtdC0yXCI+Tm8gcmVzcG9uc2U8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPk5vIHpvbmUgdmVyaWZpY2F0aW9uIHRhc2sgaGFzIGJlZW4gYXNzaWduZWQgZm9yIHRoaXMgZmxvb3IuPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gRW1wdHkgc3RhdGU6IHRhc2sgYXNzaWduZWQgYnV0IG5vdCB5ZXQgc3VibWl0dGVkIChvbmx5IG9uIGEgZnJlc2ggdGFzayDigJQgZHVyaW5nIGFcclxuICAgICAgIHJlZG8ncyBvcGVuIHBlcmlvZCB3ZSBrZWVwIHRoZSBwcmV2aW91cyByb3VuZCdzIHJlc3BvbnNlcyB2aXNpYmxlIGxpa2UgZml4dHVyZSBkb2VzKSAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzWm9uZVRhc2sgJiYgaXNUYXNrT3BlbiAmJiAhem9uZVRhc2s/LnJlZG9TdGF0dXNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJteS02XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiOTRcIiBoZWlnaHQ9XCI5NFwiIHZpZXdCb3g9XCIwIDAgOTQgOTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiN1wiIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4MFwiIHJ4PVwiNDBcIiBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgcng9XCI0MFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCIxMy4zMzMzXCIgLz5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMzUuOTUwMiA0OC4xOTk3QzM1LjY0ODkgNDguMjMxNSAzNS4zNDIyIDQ4LjI1MDUgMzUuMDMxMiA0OC4yNTA1QzM0Ljg2MTcgNDguMjUwNSAzNC42OTQ0IDQ4LjI0MzYgMzQuNTI5MyA0OC4yMzM5VjU4LjYwNjlDMzQuNTI5MyA2MC4wMzQ5IDM1LjcxMjMgNjEuMjI2IDM3LjIwMDIgNjEuMjI2MUg1Ni44MDQ3QzU4LjI5MjcgNjEuMjI2MSA1OS40NzU2IDYwLjAzNSA1OS40NzU2IDU4LjYwNjlWNDguMjM0OUM1OS4zMTM3IDQ4LjI0NDEgNTkuMTQ5OCA0OC4yNTA1IDU4Ljk4NTQgNDguMjUwNUM1OC42NzE0IDQ4LjI1MDUgNTguMzYwOCA0OC4yMzI1IDU4LjA1NDcgNDguMTk5N1Y1NS45ODc4SDM1Ljk1MDJWNDguMTk5N1pNNTcuOTMxNiAzMi43NzM5SDM2LjA3MzJDMzUuODk1OSAzMi43NzM5IDM1Ljc0MDYgMzIuODY2NyAzNS42NjMxIDMyLjk4NzhMMzUuNjYxMSAzMi45ODk3TDMyLjE1MTQgMzguNDczMUwzMi4wNTY2IDM4LjYyMDZDMzAuODMxMSA0MC43NDA0IDMyLjA5NTcgNDMuNDY3NCAzNC40NDczIDQzLjc3NjlDMzQuNjQ4MiA0My44MDEzIDM0LjgzNzkgNDMuODE1OSAzNS4wMjU0IDQzLjgxNTlDMzYuMjU1NSA0My44MTU5IDM3LjM0MzQgNDMuMjg3MiAzOC4xMDA2IDQyLjQ2NTNMMzkuMDIyNSA0MS40NjQ0TDM5Ljk0MTQgNDIuNDY4M0M0MC42OTAzIDQzLjI4NjMgNDEuNzc3IDQzLjgxNTkgNDMuMDE0NiA0My44MTU5QzQ0LjI0NjcgNDMuODE1OCA0NS4zMzg2IDQzLjI4NTYgNDYuMDg2OSA0Mi40NjgzTDQ3LjAwODggNDEuNDYxNEw0Ny45MzA3IDQyLjQ2ODNDNDguNjc5IDQzLjI4NTcgNDkuNzcwNyA0My44MTU5IDUxLjAwMjkgNDMuODE1OUM1Mi4yMzUxIDQzLjgxNTkgNTMuMzI2OCA0My4yODU3IDU0LjA3NTIgNDIuNDY4M0w1NC45OTcxIDQxLjQ2MTRMNTUuOTE4OSA0Mi40NjgzQzU2LjY2NzMgNDMuMjg1NyA1Ny43NiA0My44MTU5IDU4Ljk5MjIgNDMuODE1OUM1OS4xNzM2IDQzLjgxNTkgNTkuMzY4NyA0My44MDIxIDU5LjU2ODQgNDMuNzc3OEg1OS41Njc0QzYxLjk2MTEgNDMuNDU3MyA2My4yMjkzIDQwLjYwNzggNjEuODYxMyAzOC40NzMxTDYxLjg2MDQgMzguNDc0MUw1OC4zNDM4IDMyLjk5MDdMNTguMzQyOCAzMi45ODc4QzU4LjI2NTMgMzIuODY2NSA1OC4xMDkyIDMyLjc3MzkgNTcuOTMxNiAzMi43NzM5WlwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyLjVcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBoMyBtdC0yXCI+Tm8gcmVzcG9uc2U8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlRhc2sgYXNzaWduZWQuIEF3YWl0aW5nIHN1Ym1pc3Npb24gZnJvbSB0aGUgc3RvcmUuPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gSGVhZGVyIHN0cmlwICsgMy1jb2x1bW4gY29tcGFyaXNvbjogdmlzaWJsZSB3aGVuIHRhc2sgaXMgaW5wcm9ncmVzcyAvIHN1Ym1pdCwgT1IgZHVyaW5nXHJcbiAgICAgICBhIHJlZG8ncyBvcGVuIHBlcmlvZCAod2UgcmVuZGVyIHRoZSBwcmV2aW91cyByb3VuZCdzIGRhdGEgcmVhZC1vbmx5IHNpbmNlIGNhblNob3dBY3Rpb25zXHJcbiAgICAgICBhbHJlYWR5IGdhdGVzIHRoZSBhY3Rpb24gYnV0dG9ucyBvbiBjaGVja2xpc3RTdGF0dXMgPT09ICdzdWJtaXQnKSAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzWm9uZVRhc2sgJiYgKCFpc1Rhc2tPcGVuIHx8IHpvbmVUYXNrPy5yZWRvU3RhdHVzKVwiPlxyXG5cclxuICAgIDxkaXYgaWQ9XCJmZWVkYmFjay1oYW5kbGVyXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC02IG15LTYgcHgtMyBmaXh0dXJlLW5hdmlnYXRlXCI+XHJcbiAgICAgIDxzdmcgKm5nSWY9XCJzaG93QWN0aW9uXCIgKGNsaWNrKT1cIm9uQ2hhbmdlRml4dHVyZSgncHJldmlvdXMnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICA8cGF0aCBkPVwiTTE1IDZMOSAxMkwxNSAxOFwiIHN0cm9rZT1cIiMxRDI5MzlcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgPC9zdmc+XHJcblxyXG4gICAgICA8aDMgY2xhc3M9XCJtLTBcIj57eyBwbGFub0ZpeHR1cmU/LmhlYWRlcj8ubGFiZWwgfX08L2gzPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgZmxleC13cmFwXCI+XHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjVcIiBoZWlnaHQ9XCI1XCIgdmlld0JveD1cIjAgMCA1IDVcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjVcIiBjeT1cIjIuNVwiIHI9XCIyLjVcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwicGxhbm9GaXh0dXJlPy5maXh0dXJlQ2F0ZWdvcnlcIiBjbGFzcz1cImJhZGdlIGluYWN0aXZlIG1lLTFcIj5cclxuICAgICAgICAgIHt7IHBsYW5vRml4dHVyZS5maXh0dXJlQ2F0ZWdvcnkgfCB0aXRsZWNhc2UgfX1cclxuICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxzdmcgd2lkdGg9XCI1XCIgaGVpZ2h0PVwiNVwiIHZpZXdCb3g9XCIwIDAgNSA1XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiMi41XCIgY3k9XCIyLjVcIiByPVwiMi41XCIgZmlsbD1cIiNFQUVDRjBcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInBsYW5vRml4dHVyZT8uZml4dHVyZVdpZHRoPy52YWx1ZVwiIGNsYXNzPVwiYmFkZ2UgaW5hY3RpdmUgbWUtMVwiPlxyXG4gICAgICAgICAge3sgcGxhbm9GaXh0dXJlLmZpeHR1cmVXaWR0aC52YWx1ZSB9fSB7eyBwbGFub0ZpeHR1cmUuZml4dHVyZVdpZHRoPy51bml0ID8/ICdmdCcgfX1cclxuICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxzdmcgd2lkdGg9XCI1XCIgaGVpZ2h0PVwiNVwiIHZpZXdCb3g9XCIwIDAgNSA1XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiMi41XCIgY3k9XCIyLjVcIiByPVwiMi41XCIgZmlsbD1cIiNFQUVDRjBcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGluYWN0aXZlIG1lLTFcIj5cclxuICAgICAgICAgIEZpeHR1cmUgQ2FwYWNpdHk6IHt7IHBsYW5vRml4dHVyZT8uZml4dHVyZUNhcGFjaXR5IHx8IDAgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGgzICpuZ0lmPVwic2hvd0FjdGlvblwiIGNsYXNzPVwibS0wIG1zLWF1dG9cIj5cclxuICAgICAgICB7eyBjdXJyZW50Rml4dHVyZUluZGV4IH19L3t7IHRvdGFsRml4dHVyZXMubGVuZ3RoIH19XHJcbiAgICAgIDwvaDM+XHJcblxyXG4gICAgICA8c3ZnICpuZ0lmPVwic2hvd0FjdGlvblwiIChjbGljayk9XCJvbkNoYW5nZUZpeHR1cmUoJ25leHQnKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICA8cGF0aCBkPVwiTTkgMThMMTUgMTJMOSA2XCIgc3Ryb2tlPVwiIzFEMjkzOVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgaWQ9XCJmaXh0dXJlLWNvbXBhcmlzb25cIiBjbGFzcz1cInJvdyBnLTAgbXktM1wiPlxyXG5cclxuICAgICAgQGlmIChzaG93QWN0aW9uKSB7XHJcbiAgICAgICAgPCEtLSBDb2x1bW4gMTogRXhpc3RpbmcgdGVtcGxhdGUgKGN1cnJlbnQgcGxhbm8pIC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC00IHAtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICBAaWYgKGNhblNob3dBY3Rpb25zICYmIGhhc0ZpeHR1cmVSZXNwb25zZSkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gcHJpbWFyeS1idG4gbXMtYXV0b1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbGlja0tlZXBQbGFubygpXCI+XHJcbiAgICAgICAgICAgICAgICBLZWVwIHBsYW5vXHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbXktNFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgZD1cIk0yLjcyNSA1LjgwMDA4TDEwIDEwLjAwODRMMTcuMjc1IDUuODAwMDhNMTAgMTguNDAwMVYxMC4wMDAxTTE3LjUgMTMuMzMzNFY2LjY2Njc1QzE3LjQ5OTcgNi4zNzQ0OCAxNy40MjI1IDYuMDg3NDIgMTcuMjc2MyA1LjgzNDM4QzE3LjEzIDUuNTgxMzQgMTYuOTE5OCA1LjM3MTIyIDE2LjY2NjcgNS4yMjUwOEwxMC44MzMzIDEuODkxNzVDMTAuNTggMS43NDU0NyAxMC4yOTI2IDEuNjY4NDYgMTAgMS42Njg0NkM5LjcwNzQ0IDEuNjY4NDYgOS40MjAwMyAxLjc0NTQ3IDkuMTY2NjcgMS44OTE3NUwzLjMzMzMzIDUuMjI1MDhDMy4wODAyMiA1LjM3MTIyIDIuODY5OTggNS41ODEzNCAyLjcyMzcyIDUuODM0MzhDMi41Nzc0NSA2LjA4NzQyIDIuNTAwMyA2LjM3NDQ4IDIuNSA2LjY2Njc1VjEzLjMzMzRDMi41MDAzIDEzLjYyNTcgMi41Nzc0NSAxMy45MTI3IDIuNzIzNzIgMTQuMTY1OEMyLjg2OTk4IDE0LjQxODggMy4wODAyMiAxNC42Mjg5IDMuMzMzMzMgMTQuNzc1MUw5LjE2NjY3IDE4LjEwODRDOS40MjAwMyAxOC4yNTQ3IDkuNzA3NDQgMTguMzMxNyAxMCAxOC4zMzE3QzEwLjI5MjYgMTguMzMxNyAxMC41OCAxOC4yNTQ3IDEwLjgzMzMgMTguMTA4NEwxNi42NjY3IDE0Ljc3NTFDMTYuOTE5OCAxNC42Mjg5IDE3LjEzIDE0LjQxODggMTcuMjc2MyAxNC4xNjU4QzE3LjQyMjUgMTMuOTEyNyAxNy40OTk3IDEzLjYyNTcgMTcuNSAxMy4zMzM0WlwiXHJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtLTBcIj5FeGlzdGluZyB0ZW1wbGF0ZTwvaDQ+XHJcbiAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImlzQXBwcm92ZWQgJiYgY3VycmVudFVzZXJBY3Rpb24gPT09ICdrZWVwUGxhbm8nXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtYXV0b1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHk9XCI4Ljc0MjI4ZS0wN1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiMTBcIiBmaWxsPVwiI0QxRkFERlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMjQ2NCA2LjE1ODM5TDguMjc5NjkgMTEuOTE2N0w2LjY5NjM1IDEwLjIyNTFDNi40MDQ2OSA5Ljk1MDA1IDUuOTQ2MzUgOS45MzMzOSA1LjYxMzAyIDEwLjE2NjdDNS4yODgwMiAxMC40MDg0IDUuMTk2MzUgMTAuODMzNCA1LjM5NjM1IDExLjE3NTFMNy4yNzEzNSAxNC4yMjUxQzcuNDU0NjkgMTQuNTA4NCA3Ljc3MTM1IDE0LjY4MzQgOC4xMjk2OSAxNC42ODM0QzguNDcxMzUgMTQuNjgzNCA4Ljc5NjM1IDE0LjUwODQgOC45Nzk2OSAxNC4yMjUxQzkuMjc5NjkgMTMuODMzNCAxNS4wMDQ3IDcuMDA4MzkgMTUuMDA0NyA3LjAwODM5QzE1Ljc1NDcgNi4yNDE3MiAxNC44NDY0IDUuNTY2NzIgMTQuMjQ2NCA2LjE1MDA1TDE0LjI0NjQgNi4xNTgzOVpcIlxyXG4gICAgICAgICAgICAgICAgICBmaWxsPVwiIzEyQjc2QVwiIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Zml4dHVyZSBbZml4dHVyZV09XCJwbGFub0ZpeHR1cmVcIiBbc2hvd1ZNc109XCJ0cnVlXCIgW3Nob3dIZWFkZXJGb290ZXJBbHdheXNdPVwidHJ1ZVwiPjwvZml4dHVyZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICA8IS0tIENvbHVtbiAyOiBTdG9yZSByZXNwb25zZSAoem9uZS1ncm91cGVkKSAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgcC0yXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICBAaWYgKGlzQ2xGaXh0dXJlKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjk0XCIgaGVpZ2h0PVwiOTRcIiB2aWV3Qm94PVwiMCAwIDk0IDk0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgcng9XCI0MFwiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgcng9XCI0MFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCIxMy4zMzMzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0zNS45NTAyIDQ4LjE5OTdDMzUuNjQ4OSA0OC4yMzE1IDM1LjM0MjIgNDguMjUwNSAzNS4wMzEyIDQ4LjI1MDVDMzQuODYxNyA0OC4yNTA1IDM0LjY5NDQgNDguMjQzNiAzNC41MjkzIDQ4LjIzMzlWNTguNjA2OUMzNC41MjkzIDYwLjAzNDkgMzUuNzEyMyA2MS4yMjYgMzcuMjAwMiA2MS4yMjYxSDU2LjgwNDdDNTguMjkyNyA2MS4yMjYxIDU5LjQ3NTYgNjAuMDM1IDU5LjQ3NTYgNTguNjA2OVY0OC4yMzQ5QzU5LjMxMzcgNDguMjQ0MSA1OS4xNDk4IDQ4LjI1MDUgNTguOTg1NCA0OC4yNTA1QzU4LjY3MTQgNDguMjUwNSA1OC4zNjA4IDQ4LjIzMjUgNTguMDU0NyA0OC4xOTk3VjU1Ljk4NzhIMzUuOTUwMlY0OC4xOTk3Wk01Ny45MzE2IDMyLjc3MzlIMzYuMDczMkMzNS44OTU5IDMyLjc3MzkgMzUuNzQwNiAzMi44NjY3IDM1LjY2MzEgMzIuOTg3OEwzNS42NjExIDMyLjk4OTdMMzIuMTUxNCAzOC40NzMxTDMyLjA1NjYgMzguNjIwNkMzMC44MzExIDQwLjc0MDQgMzIuMDk1NyA0My40Njc0IDM0LjQ0NzMgNDMuNzc2OUMzNC42NDgyIDQzLjgwMTMgMzQuODM3OSA0My44MTU5IDM1LjAyNTQgNDMuODE1OUMzNi4yNTU1IDQzLjgxNTkgMzcuMzQzNCA0My4yODcyIDM4LjEwMDYgNDIuNDY1M0wzOS4wMjI1IDQxLjQ2NDRMMzkuOTQxNCA0Mi40NjgzQzQwLjY5MDMgNDMuMjg2MyA0MS43NzcgNDMuODE1OSA0My4wMTQ2IDQzLjgxNTlDNDQuMjQ2NyA0My44MTU4IDQ1LjMzODYgNDMuMjg1NiA0Ni4wODY5IDQyLjQ2ODNMNDcuMDA4OCA0MS40NjE0TDQ3LjkzMDcgNDIuNDY4M0M0OC42NzkgNDMuMjg1NyA0OS43NzA3IDQzLjgxNTkgNTEuMDAyOSA0My44MTU5QzUyLjIzNTEgNDMuODE1OSA1My4zMjY4IDQzLjI4NTcgNTQuMDc1MiA0Mi40NjgzTDU0Ljk5NzEgNDEuNDYxNEw1NS45MTg5IDQyLjQ2ODNDNTYuNjY3MyA0My4yODU3IDU3Ljc2IDQzLjgxNTkgNTguOTkyMiA0My44MTU5QzU5LjE3MzYgNDMuODE1OSA1OS4zNjg3IDQzLjgwMjEgNTkuNTY4NCA0My43Nzc4SDU5LjU2NzRDNjEuOTYxMSA0My40NTczIDYzLjIyOTMgNDAuNjA3OCA2MS44NjEzIDM4LjQ3MzFMNjEuODYwNCAzOC40NzQxTDU4LjM0MzggMzIuOTkwN0w1OC4zNDI4IDMyLjk4NzhDNTguMjY1MyAzMi44NjY1IDU4LjEwOTIgMzIuNzczOSA1Ny45MzE2IDMyLjc3MzlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyLjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgaDMgbXQtMlwiPkNMIEV4Y2x1ZGVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgQGlmIChjYW5TaG93QWN0aW9ucyAmJiBoYXNGaXh0dXJlUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0biBxdWljay1idG4gbXMtYXV0b1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbGlja0VkaXRSZXNwb25zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMTY2MDIgMy4zMzMySDMuMzMyNjhDMi44OTA2NSAzLjMzMzIgMi40NjY3MyAzLjUwODc5IDIuMTU0MTcgMy44MjEzNUMxLjg0MTYxIDQuMTMzOTEgMS42NjYwMiA0LjU1Nzg0IDEuNjY2MDIgNC45OTk4NlYxNi42NjY1QzEuNjY2MDIgMTcuMTA4NiAxLjg0MTYxIDE3LjUzMjUgMi4xNTQxNyAxNy44NDVDMi40NjY3MyAxOC4xNTc2IDIuODkwNjUgMTguMzMzMiAzLjMzMjY4IDE4LjMzMzJIMTQuOTk5M0MxNS40NDE0IDE4LjMzMzIgMTUuODY1MyAxOC4xNTc2IDE2LjE3NzkgMTcuODQ1QzE2LjQ5MDQgMTcuNTMyNSAxNi42NjYgMTcuMTA4NiAxNi42NjYgMTYuNjY2NVYxMC44MzMyTTE1LjQxNiAyLjA4MzJDMTUuNzQ3NSAxLjc1MTY4IDE2LjE5NzIgMS41NjU0MyAxNi42NjYgMS41NjU0M0MxNy4xMzQ5IDEuNTY1NDMgMTcuNTg0NSAxLjc1MTY4IDE3LjkxNiAyLjA4MzJDMTguMjQ3NSAyLjQxNDcyIDE4LjQzMzggMi44NjQzNiAxOC40MzM4IDMuMzMzMkMxOC40MzM4IDMuODAyMDQgMTguMjQ3NSA0LjI1MTY4IDE3LjkxNiA0LjU4MzJMOS45OTkzNSAxMi40OTk5TDYuNjY2MDIgMTMuMzMzMkw3LjQ5OTM1IDkuOTk5ODZMMTUuNDE2IDIuMDgzMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMUQyOTM5XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biByZWRvLWJ0blwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbGlja1JlZG8oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFJlZG9cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtY3VzIG1zLWF1dG9cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2xpY2tLZWVwUGxhbm8oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFJlamVjdFxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBwcmltYXJ5LWJ0blwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGVGaXh0dXJlPy5pc1ZhbGlkXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZWRpdGFibGVGaXh0dXJlPy52YWxpZGF0aW9uTWVzc2FnZSB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tBY2NlcHRSZXNwb25zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQWNjZXB0XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBteS00XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1LjY1MDQgMTQuNjE5MUg0LjM0ODYzVjEwLjczNzNDNC4yMzgyNiAxMC43NDU1IDQuMTI2NDQgMTAuNzUgNC4wMTM2NyAxMC43NUMzLjk3MTM3IDEwLjc1IDMuOTI5NDMgMTAuNzQ2MyAzLjg4NzcgMTAuNzQ1MVYxNS44MDM3QzMuODg3ODggMTYuNDQ3IDQuNDIyMjIgMTYuOTg4MyA1LjA5ODYzIDE2Ljk4ODNIMTQuOTAwNEMxNS41NzY4IDE2Ljk4ODMgMTYuMTEwMiAxNi40NDcgMTYuMTEwNCAxNS44MDM3VjEwLjc0NTFDMTYuMDcwOCAxMC43NDYyIDE2LjAzMTEgMTAuNzUgMTUuOTkxMiAxMC43NUMxNS44NzY4IDEwLjc1IDE1Ljc2MjkgMTAuNzQ0OSAxNS42NTA0IDEwLjczNjNWMTQuNjE5MVpNMTUuNDYzOSAzLjAxMTcySDQuNTM0MThDNC40ODcyMyAzLjAxMTg3IDQuNDQ5NzMgMy4wMzc3NiA0LjQzNDU3IDMuMDYxNTJWMy4wNjI1TDIuNjc4NzEgNS44MDM3MUwyLjY2MDE2IDUuODMzMDFDMi4wNDc2OCA2LjgyNzg2IDIuNjQzMjUgOC4xMTczOSAzLjczNDM4IDguMjYzNjdDMy44MzE3NCA4LjI3NTYxIDMuOTIyMjQgOC4yODIyMiA0LjAxMDc0IDguMjgyMjNDNC41ODg4OSA4LjI4MjIzIDUuMDk5NzggOC4wMzQxOSA1LjQ1NjA1IDcuNjQ3NDZMNi4wMDk3NyA3LjA0Njg4TDYuNTYxNTIgNy42NDk0MUM2LjkxMzQxIDguMDMzNzEgNy40MjMwMSA4LjI4MjE1IDguMDA0ODggOC4yODIyM0M4LjU4NDMzIDguMjgyMjMgOS4wOTc1OSA4LjAzMzQ5IDkuNDQ5MjIgNy42NDk0MUwxMC4wMDIgNy4wNDQ5MkwxMC41NTU3IDcuNjQ5NDFDMTAuOTA3MyA4LjAzMzQ5IDExLjQyMDYgOC4yODIyMyAxMiA4LjI4MjIzQzEyLjU3OTIgOC4yODIxIDEzLjA5MTggOC4wMzMzNyAxMy40NDM0IDcuNjQ5NDFMMTMuOTk3MSA3LjA0NDkyTDE0LjU0OTggNy42NDk0MUMxNC45MDE0IDguMDMzNDkgMTUuNDE0NyA4LjI4MjIzIDE1Ljk5NDEgOC4yODIyM0MxNi4wNzkxIDguMjgyMjIgMTYuMTcxNiA4LjI3NTMzIDE2LjI2NzYgOC4yNjM2N0MxNy4zNjM1IDguMTE1MDQgMTcuOTYyMyA2LjgwMDggMTcuMzIzMiA1LjgwMzcxTDE1LjU2NDUgMy4wNjI1TDE1LjU2MzUgMy4wNjE1MkMxNS41NDgzIDMuMDM3NjkgMTUuNTExIDMuMDExNzIgMTUuNDYzOSAzLjAxMTcyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxoND5TdG9yZSByZXNwb25zZTwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGFzRml4dHVyZVJlc3BvbnNlXCIgY2xhc3M9XCJiYWRnZSBpbmFjdGl2ZSBtZS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ2FwYWNpdHk6IHt7IHpvbmVGaXh0dXJlPy5maXh0dXJlQ2FwYWNpdHkgfHwgMCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzQXBwcm92ZWQgJiYgKGN1cnJlbnRVc2VyQWN0aW9uID09PSAnYWNjZXB0UmVzcG9uc2UnIHx8IGN1cnJlbnRVc2VyQWN0aW9uID09PSAnZWRpdEFjY2VwdGVkJylcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtYXV0b1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHk9XCI4Ljc0MjI4ZS0wN1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiMTBcIiBmaWxsPVwiI0QxRkFERlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4yNDY0IDYuMTU4MzlMOC4yNzk2OSAxMS45MTY3TDYuNjk2MzUgMTAuMjI1MUM2LjQwNDY5IDkuOTUwMDUgNS45NDYzNSA5LjkzMzM5IDUuNjEzMDIgMTAuMTY2N0M1LjI4ODAyIDEwLjQwODQgNS4xOTYzNSAxMC44MzM0IDUuMzk2MzUgMTEuMTc1MUw3LjI3MTM1IDE0LjIyNTFDNy40NTQ2OSAxNC41MDg0IDcuNzcxMzUgMTQuNjgzNCA4LjEyOTY5IDE0LjY4MzRDOC40NzEzNSAxNC42ODM0IDguNzk2MzUgMTQuNTA4NCA4Ljk3OTY5IDE0LjIyNTFDOS4yNzk2OSAxMy44MzM0IDE1LjAwNDcgNy4wMDgzOSAxNS4wMDQ3IDcuMDA4MzlDMTUuNzU0NyA2LjI0MTcyIDE0Ljg0NjQgNS41NjY3MiAxNC4yNDY0IDYuMTUwMDVMMTQuMjQ2NCA2LjE1ODM5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzEyQjc2QVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImlzQXBwcm92ZWQgJiYgKGN1cnJlbnRVc2VyQWN0aW9uID09PSAna2VlcFBsYW5vJylcIiBjbGFzcz1cIm1zLWF1dG9cIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCIxMFwiIGZpbGw9XCIjRkVFNEUyXCIgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjIyNSA2LjIyNUM2LjU2NjY3IDUuODgzMzMgNy4xMTY2NyA1Ljg4MzMzIDcuNDU4MzMgNi4yMjVMMTAgOC43NjY2N0wxMi41NDE3IDYuMjI1QzEyLjg4MzMgNS44ODMzMyAxMy40MzMzIDUuODgzMzMgMTMuNzc1IDYuMjI1QzE0LjExNjcgNi41NjY2NyAxNC4xMTY3IDcuMTE2NjcgMTMuNzc1IDcuNDU4MzNMMTEuMjMzMyAxMEwxMy43NzUgMTIuNTQxN0MxNC4xMTY3IDEyLjg4MzMgMTQuMTE2NyAxMy40MzMzIDEzLjc3NSAxMy43NzVDMTMuNDMzMyAxNC4xMTY3IDEyLjg4MzMgMTQuMTE2NyAxMi41NDE3IDEzLjc3NUwxMCAxMS4yMzMzTDcuNDU4MzMgMTMuNzc1QzcuMTE2NjcgMTQuMTE2NyA2LjU2NjY3IDE0LjExNjcgNi4yMjUgMTMuNzc1QzUuODgzMzMgMTMuNDMzMyA1Ljg4MzMzIDEyLjg4MzMgNi4yMjUgMTIuNTQxN0w4Ljc2NjY3IDEwTDYuMjI1IDcuNDU4MzNDNS44ODMzMyA3LjExNjY3IDUuODgzMzMgNi41NjY2NyA2LjIyNSA2LjIyNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGMDQ0MzhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImN1cnJlbnRVc2VyQWN0aW9uID09PSAncmVkbydcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtYXV0b1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMjUwNjUgMTUuODMzNUM2LjkwMzQzIDE1LjgzMzUgNS43NDcwNCAxNS4zOTYgNC43ODE0OCAxNC41MjFDMy44MTU5MyAxMy42NDYgMy4zMzM0MyAxMi41NTU3IDMuMzMzOTggMTEuMjUwMkMzLjMzMzk4IDkuOTQ0NjEgMy44MTY3NiA4Ljg1NDMzIDQuNzgyMzIgNy45NzkzM0M1Ljc0Nzg3IDcuMTA0MzMgNi45MDM5OCA2LjY2NjgzIDguMjUwNjUgNi42NjY4M0gxMy41MDA3TDExLjMzNCA0LjUwMDE2TDEyLjUwMDcgMy4zMzM1TDE2LjY2NzMgNy41MDAxNkwxMi41MDA3IDExLjY2NjhMMTEuMzM0IDEwLjUwMDJMMTMuNTAwNyA4LjMzMzVIOC4yNTA2NUM3LjM3NTY1IDguMzMzNSA2LjYxNTEgOC42MTEyNyA1Ljk2ODk4IDkuMTY2ODNDNS4zMjI4NyA5LjcyMjM4IDUuMDAwMSAxMC40MTY4IDUuMDAwNjUgMTEuMjUwMkM1LjAwMDY1IDEyLjA4MzUgNS4zMjM3MSAxMi43Nzc5IDUuOTY5ODIgMTMuMzMzNUM2LjYxNTkzIDEzLjg4OTEgNy4zNzYyMSAxNC4xNjY4IDguMjUwNjUgMTQuMTY2OEgxNC4xNjczVjE1LjgzMzVIOC4yNTA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImJsYWNrXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICBAaWYgKGhhc0ZpeHR1cmVSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgPHpvbmUtZWRpdGFibGUtZml4dHVyZVxyXG4gICAgICAgICAgICAgICAgICBbZml4dHVyZV09XCJ6b25lRml4dHVyZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93Vk1zXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dIZWFkZXJGb290ZXJBbHdheXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJjYW5TaG93QWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPC96b25lLWVkaXRhYmxlLWZpeHR1cmU+XHJcbiAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjk0XCIgaGVpZ2h0PVwiOTRcIiB2aWV3Qm94PVwiMCAwIDk0IDk0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjgwXCIgaGVpZ2h0PVwiODBcIiByeD1cIjQwXCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiN1wiIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4MFwiIHJ4PVwiNDBcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiMTMuMzMzM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM1Ljk1MDIgNDguMTk5N0MzNS42NDg5IDQ4LjIzMTUgMzUuMzQyMiA0OC4yNTA1IDM1LjAzMTIgNDguMjUwNUMzNC44NjE3IDQ4LjI1MDUgMzQuNjk0NCA0OC4yNDM2IDM0LjUyOTMgNDguMjMzOVY1OC42MDY5QzM0LjUyOTMgNjAuMDM0OSAzNS43MTIzIDYxLjIyNiAzNy4yMDAyIDYxLjIyNjFINTYuODA0N0M1OC4yOTI3IDYxLjIyNjEgNTkuNDc1NiA2MC4wMzUgNTkuNDc1NiA1OC42MDY5VjQ4LjIzNDlDNTkuMzEzNyA0OC4yNDQxIDU5LjE0OTggNDguMjUwNSA1OC45ODU0IDQ4LjI1MDVDNTguNjcxNCA0OC4yNTA1IDU4LjM2MDggNDguMjMyNSA1OC4wNTQ3IDQ4LjE5OTdWNTUuOTg3OEgzNS45NTAyVjQ4LjE5OTdaTTU3LjkzMTYgMzIuNzczOUgzNi4wNzMyQzM1Ljg5NTkgMzIuNzczOSAzNS43NDA2IDMyLjg2NjcgMzUuNjYzMSAzMi45ODc4TDM1LjY2MTEgMzIuOTg5N0wzMi4xNTE0IDM4LjQ3MzFMMzIuMDU2NiAzOC42MjA2QzMwLjgzMTEgNDAuNzQwNCAzMi4wOTU3IDQzLjQ2NzQgMzQuNDQ3MyA0My43NzY5QzM0LjY0ODIgNDMuODAxMyAzNC44Mzc5IDQzLjgxNTkgMzUuMDI1NCA0My44MTU5QzM2LjI1NTUgNDMuODE1OSAzNy4zNDM0IDQzLjI4NzIgMzguMTAwNiA0Mi40NjUzTDM5LjAyMjUgNDEuNDY0NEwzOS45NDE0IDQyLjQ2ODNDNDAuNjkwMyA0My4yODYzIDQxLjc3NyA0My44MTU5IDQzLjAxNDYgNDMuODE1OUM0NC4yNDY3IDQzLjgxNTggNDUuMzM4NiA0My4yODU2IDQ2LjA4NjkgNDIuNDY4M0w0Ny4wMDg4IDQxLjQ2MTRMNDcuOTMwNyA0Mi40NjgzQzQ4LjY3OSA0My4yODU3IDQ5Ljc3MDcgNDMuODE1OSA1MS4wMDI5IDQzLjgxNTlDNTIuMjM1MSA0My44MTU5IDUzLjMyNjggNDMuMjg1NyA1NC4wNzUyIDQyLjQ2ODNMNTQuOTk3MSA0MS40NjE0TDU1LjkxODkgNDIuNDY4M0M1Ni42NjczIDQzLjI4NTcgNTcuNzYgNDMuODE1OSA1OC45OTIyIDQzLjgxNTlDNTkuMTczNiA0My44MTU5IDU5LjM2ODcgNDMuODAyMSA1OS41Njg0IDQzLjc3NzhINTkuNTY3NEM2MS45NjExIDQzLjQ1NzMgNjMuMjI5MyA0MC42MDc4IDYxLjg2MTMgMzguNDczMUw2MS44NjA0IDM4LjQ3NDFMNTguMzQzOCAzMi45OTA3TDU4LjM0MjggMzIuOTg3OEM1OC4yNjUzIDMyLjg2NjUgNTguMTA5MiAzMi43NzM5IDU3LjkzMTYgMzIuNzczOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMi41XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5ObyByZXNwb25zZSBmb3IgdGhpcyBmaXh0dXJlIHlldC48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8IS0tIENvbHVtbiAzOiBTdG9yZSBpbWFnZSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInAtMlwiIFtuZ0NsYXNzXT1cInsnY29sLTYnOiBzaG93QWN0aW9uLCAnY29sJzogIXNob3dBY3Rpb259XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00XCIgW25nU3R5bGVdPVwieydtYXJnaW4tdG9wJzonMTJweCd9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG15LTRcIj5cclxuICAgICAgICAgICAgICA8aDQ+U3RvcmUgSW1hZ2U8L2g0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgQGlmICh6b25lSW1hZ2VVcmwpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpeHR1cmUtaW1hZ2VcIiAoY2xpY2spPVwib25DbGlja0ltYWdlUHJldmlldygkZXZlbnQsIHpvbmVJbWFnZVVybClcIj5cclxuICAgICAgICAgICAgICBAaWYgKGlzSW1hZ2VMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2tlbGV0b25Mb2FkZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInpvbmVJbWFnZVVybFwiIGFsdD1cIlN0b3JlIHJlc3BvbnNlIGltYWdlXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzSW1hZ2VMb2FkaW5nID8gJ25vbmUnIDogJ2Jsb2NrJ1wiIChsb2Fkc3RhcnQpPVwib25JbWFnZUxvYWRTdGFydCgpXCJcclxuICAgICAgICAgICAgICAgIChsb2FkKT1cIm9uSW1hZ2VMb2FkKClcIiAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIiAobG9hZGVuZCk9XCJvbkltYWdlTG9hZEVuZCgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nLXByZXZpZXdcIiAqbmdJZj1cInNlbGVjdGVkSW1hZ2VGb3JQcmV2aWV3XCIgKGNsaWNrKT1cImNsb3NlSW1hZ2VQcmV2aWV3KClcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmV2aWV3LWNsb3NlXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgY2xvc2VJbWFnZVByZXZpZXcoKVwiPiYjeDI3MTU7PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy16b29tLWNvbnRyb2xzXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvblByZXZpZXdab29tT3V0KClcIj4mI3gyMjEyOzwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhbmdlXCIgY2xhc3M9XCJ6b29tLXNsaWRlclwiIG1pbj1cIjI1XCIgbWF4PVwiNTAwXCIgc3RlcD1cIjI1XCIgW3ZhbHVlXT1cImltYWdlUHJldmlld1pvb20gKiAxMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvblByZXZpZXdab29tU2xpZGVyKCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyAoaW1hZ2VQcmV2aWV3Wm9vbSAqIDEwMCkudG9GaXhlZCgwKSB9fSU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9uUHJldmlld1pvb21JbigpXCI+JiN4MkI7PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWltYWdlLWNvbnRhaW5lclwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uUHJldmlld1BhblN0YXJ0KCRldmVudClcIiAobW91c2Vtb3ZlKT1cIm9uUHJldmlld1Bhbk1vdmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChtb3VzZXVwKT1cIm9uUHJldmlld1BhbkVuZCgpXCIgKG1vdXNlbGVhdmUpPVwib25QcmV2aWV3UGFuRW5kKClcIiAod2hlZWwpPVwib25QcmV2aWV3V2hlZWwoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwic2VsZWN0ZWRJbWFnZUZvclByZXZpZXdcIiBjbGFzcz1cImZ1bGwtaW1nXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cIidzY2FsZSgnICsgaW1hZ2VQcmV2aWV3Wm9vbSArICcpIHRyYW5zbGF0ZSgnICsgaW1hZ2VQcmV2aWV3UGFuWCAvIGltYWdlUHJldmlld1pvb20gKyAncHgsJyArIGltYWdlUHJldmlld1BhblkgLyBpbWFnZVByZXZpZXdab29tICsgJ3B4KSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxODZcIiBoZWlnaHQ9XCI4NFwiIHZpZXdCb3g9XCIwIDAgMTg2IDg0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMwLjI1NiAxNS4zMjg0QzE0MC4wOTIgMTUuMzI4NCAxNDguMDY1IDIzLjMwMiAxNDguMDY1IDMzLjEzNzlDMTQ4LjA2NSAzNy4yMTc2IDE1MC44MjYgNDEuODY4NCAxNTQuOTA2IDQxLjg2ODRIMTY3Ljk3MkMxNzcuODA3IDQxLjg2ODcgMTg1Ljc4MSA0OS44NDIyIDE4NS43ODEgNTkuNjc4QzE4NS43ODEgNjkuNTE0MSAxNzcuODA3IDc3LjQ4ODUgMTY3Ljk3MSA3Ny40ODg1SDgxLjM2NjJDNjkuNzE4NiA3Ny40ODgzIDU4LjYzNDkgNjguNDA4NCA0Ni45ODczIDY4LjQwODRINS45MzY1MkMyLjY1NzgyIDY4LjQwODQgMCA2NS43NTA2IDAgNjIuNDcxOUMwLjAwMDEyNzgyMyA1OS4xOTMzIDIuNjU3OSA1Ni41MzU0IDUuOTM2NTIgNTYuNTM1NEg2MS44NzI4QzYzLjAwNjkgNTYuNTM1NCA2My45NjY5IDU1LjY5MjkgNjQuMjg5NyA1NC42MDU2QzY0Ljc5OTQgNTIuODg5MiA2My42MjY3IDUwLjk0ODUgNjEuODM2MSA1MC45NDg1SDQzLjY1MTRDMzMuODE1MyA1MC45NDg1IDI1Ljg0MTggNDIuOTc0IDI1Ljg0MTggMzMuMTM3OUMyNS44NDIgMjMuMzAyIDMzLjgxNTQgMTUuMzI4NCA0My42NTE0IDE1LjMyODRIMTMwLjI1NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNFQUVDRjBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyNi42NjQgMjcuMzM1VjQ4LjY1TDEyMC45NTkgNDMuNzVDMTE4LjIyOSA0MS40MDUgMTEzLjgxOSA0MS40MDUgMTExLjA4OSA0My43NUw5Ni41MjkxIDU2LjI0NUM5My43OTkxIDU4LjU5IDg5LjM4OTEgNTguNTkgODYuNjU5MSA1Ni4yNDVMODUuNDY5MSA1NS4yNjVDODIuOTg0MSA1My4wOTUgNzkuMDI5MSA1Mi44ODUgNzYuMjI5MSA1NC43NzVMNTkuMDA5MSA2Ni4zMjVMNTguNjI0MSA2Ni42MDVDNTcuMzI5MSA2My44MDUgNTYuNjY0MSA2MC40OCA1Ni42NjQxIDU2LjY2NVYyNy4zMzVDNTYuNjY0MSAxNC41OTUgNjQuMjU5MSA3IDc2Ljk5OTEgN0gxMDYuMzI5QzExOS4wNjkgNyAxMjYuNjY0IDE0LjU5NSAxMjYuNjY0IDI3LjMzNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2QkNBRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTgxLjE2NCAzNi4zMjk5Qzg1Ljc2NDUgMzYuMzI5OSA4OS40OTQgMzIuNjAwNSA4OS40OTQgMjcuOTk5OUM4OS40OTQgMjMuMzk5NCA4NS43NjQ1IDE5LjY2OTkgODEuMTY0IDE5LjY2OTlDNzYuNTYzNSAxOS42Njk5IDcyLjgzNCAyMy4zOTk0IDcyLjgzNCAyNy45OTk5QzcyLjgzNCAzMi42MDA1IDc2LjU2MzUgMzYuMzI5OSA4MS4xNjQgMzYuMzI5OVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMEEzRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyNi42NjUgNDguNjVWNTYuNjY1QzEyNi42NjUgNjkuNDA1IDExOS4wNyA3NyAxMDYuMzMgNzdINzdDNjguMDc1IDc3IDYxLjYzNSA3My4yNTUgNTguNjI1IDY2LjYwNUw1OS4wMSA2Ni4zMjVMNzYuMjMgNTQuNzc1Qzc5LjAzIDUyLjg4NSA4Mi45ODUgNTMuMDk1IDg1LjQ3IDU1LjI2NUw4Ni42NiA1Ni4yNDVDODkuMzkgNTguNTkgOTMuOCA1OC41OSA5Ni41MyA1Ni4yNDVMMTExLjA5IDQzLjc1QzExMy44MiA0MS40MDUgMTE4LjIzIDQxLjQwNSAxMjAuOTYgNDMuNzVMMTI2LjY2NSA0OC42NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMEEzRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMzguMDY0XCIgY3k9XCIyOC4zMTI4XCIgcj1cIjQuNDAwNDJcIiBmaWxsPVwiIzZCQ0FGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjQ3LjgyNTZcIiBjeT1cIjM5LjI0MDlcIiByPVwiMi40NTI1NVwiIGZpbGw9XCIjNkJDQUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBjeD1cIjEzOS4xODNcIiBjeT1cIjYxLjAwNzJcIiByeD1cIjQuMjkxOTdcIiByeT1cIjQuNTk4NTRcIiBmaWxsPVwiIzAwQTNGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKHpvbmVGZWVkYmFjaz8uYW5zd2Vycz8uWzBdPy5jb21tZW50cz8ubGVuZ3RoKSB7XHJcbiAgICAgIDxkaXYgaWQ9XCJmaXh0dXJlLWNvbW1lbnRzXCI+XHJcbiAgICAgICAgPGg1IGNsYXNzPVwibWItMlwiPkNvbW1lbnRzPC9oNT5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvZy1ibG9ja1wiICpuZ0Zvcj1cImxldCBjIG9mIHpvbmVGZWVkYmFjaz8uYW5zd2Vycz8uWzBdPy5jb21tZW50czsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0VBRjhGRlwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0yMi42NjczIDIzLjVWMjEuODMzM0MyMi42NjczIDIwLjk0OTMgMjIuMzE2MSAyMC4xMDE0IDIxLjY5MSAxOS40NzYzQzIxLjA2NTkgMTguODUxMiAyMC4yMTggMTguNSAxOS4zMzQgMTguNUgxMi42NjczQzExLjc4MzMgMTguNSAxMC45MzU0IDE4Ljg1MTIgMTAuMzEwMyAxOS40NzYzQzkuNjg1MTcgMjAuMTAxNCA5LjMzMzk4IDIwLjk0OTMgOS4zMzM5OCAyMS44MzMzVjIzLjVNMTkuMzM0IDExLjgzMzNDMTkuMzM0IDEzLjY3NDMgMTcuODQxNiAxNS4xNjY3IDE2LjAwMDcgMTUuMTY2N0MxNC4xNTk3IDE1LjE2NjcgMTIuNjY3MyAxMy42NzQzIDEyLjY2NzMgMTEuODMzM0MxMi42NjczIDkuOTkyMzggMTQuMTU5NyA4LjUgMTYuMDAwNyA4LjVDMTcuODQxNiA4LjUgMTkuMzM0IDkuOTkyMzggMTkuMzM0IDExLjgzMzNaXCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTEgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8aDQ+e3sgYz8udXNlck5hbWUgfX08L2g0PlxyXG4gICAgICAgICAgICAgIDxwPnt7IGM/LnRpbWVTdGFtcCB8IGRhdGU6J2hoOm1tOnNzIGEgLSBkZCBNTU0geXl5eScgfX08L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgQGlmIChjPy5yZXNwb25zZXR5cGUgPT09ICdjb21tZW50Jykge1xyXG4gICAgICAgICAgICAgIDxoNT57eyBjPy5jb21tZW50IH19PC9oNT5cclxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoYz8ucmVzcG9uc2V0eXBlID09PSAnYWdyZWUnKSB7XHJcbiAgICAgICAgICAgICAgPGg1ICpuZ0lmPVwiem9uZUZlZWRiYWNrPy5hbnN3ZXJzPy5bMF0/LnVzZXJBY3Rpb24gPT09ICdrZWVwUGxhbm8nXCI+XHJcbiAgICAgICAgICAgICAgICBNYXJrZWQgYXMgXCJLZWVwIFBsYW5vXCIuXHJcbiAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICA8aDUgKm5nSWY9XCJ6b25lRmVlZGJhY2s/LmFuc3dlcnM/LlswXT8udXNlckFjdGlvbiA9PT0gJ2FjY2VwdFJlc3BvbnNlJ1wiPlxyXG4gICAgICAgICAgICAgICAgTWFya2VkIGFzIFwiQWNjZXB0IFJlc3BvbnNlXCIuXHJcbiAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICA8aDUgKm5nSWY9XCJ6b25lRmVlZGJhY2s/LmFuc3dlcnM/LlswXT8udXNlckFjdGlvbiA9PT0gJ2VkaXRBY2NlcHRlZCdcIj5cclxuICAgICAgICAgICAgICAgIE1hcmtlZCBhcyBcIkFjY2VwdCBSZXNwb25zZSB3aXRoIE1vZGlmaWNhdGlvblwiLlxyXG4gICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgPGg1ICpuZ0lmPVwiYz8uY29tbWVudFwiPk5vdGU6IHt7IGMuY29tbWVudCB9fTwvaDU+XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKGM/LnJlc3BvbnNldHlwZSA9PT0gJ2Rpc2FncmVlJykge1xyXG4gICAgICAgICAgICAgIDxoNT5NYXJrZWQgYXMgXCJSZWRvXCI8L2g1PlxyXG4gICAgICAgICAgICAgIDxoNSAqbmdJZj1cImM/LmNvbW1lbnRcIj5Ob3RlOiB7eyBjLmNvbW1lbnQgfX08L2g1PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25Mb2FkZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyIHJvdW5kZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8YnIgLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9zZWN0aW9uPiJdfQ==
|