tango-app-ui-analyse-zone 3.7.1-beta.12 → 3.7.1-beta.13
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/overallcards/overallcards.component.mjs +3 -3
- package/esm2022/lib/components/tango-analyse-zone/tango-analyse-zone.component.mjs +2 -2
- package/esm2022/lib/components/zone-v2/customer-journey/customer-journey.component.mjs +41 -32
- package/esm2022/lib/components/zone-v2/store-heatmap/store-heatmap.component.mjs +4 -5
- package/esm2022/lib/components/zone-v2/summary-table/summary-table.component.mjs +3 -3
- package/esm2022/lib/components/zone-v2/zones-cards/zones-cards.component.mjs +4 -3
- package/fesm2022/tango-app-ui-analyse-zone.mjs +699 -690
- package/fesm2022/tango-app-ui-analyse-zone.mjs.map +1 -1
- package/lib/components/zone-v2/customer-journey/customer-journey.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "../../services/zonev2.service";
|
|
6
6
|
import * as i2 from "tango-app-ui-global";
|
|
7
7
|
import * as i3 from "@angular/router";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
8
9
|
export class ZonesCardsComponent {
|
|
9
10
|
Zonev2Service;
|
|
10
11
|
changeDetector;
|
|
@@ -55,10 +56,10 @@ export class ZonesCardsComponent {
|
|
|
55
56
|
});
|
|
56
57
|
}
|
|
57
58
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ZonesCardsComponent, deps: [{ token: i1.Zonev2Service }, { token: i0.ChangeDetectorRef }, { token: i2.GlobalStateService }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ZonesCardsComponent, selector: "lib-zones-cards", ngImport: i0, template: "<div class=\"col-md-12\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n\r\n <!-- Total Store Footfall Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.footfall?.count ? zoneCardsData?.footfall?.count?.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--'}}</span>\r\n <span class=\"cardtext\">Total Store Footfall</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">{{zoneCardsData?.footfall?.zoneName ? zoneCardsData?.footfall?.zoneName
|
|
59
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ZonesCardsComponent, selector: "lib-zones-cards", ngImport: i0, template: "<div class=\"col-md-12\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n\r\n <!-- Total Store Footfall Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.footfall?.count ? zoneCardsData?.footfall?.count?.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--'}}</span>\r\n <span class=\"cardtext\">Total Store Footfall</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">{{zoneCardsData?.footfall?.zoneName ? (zoneCardsData?.footfall?.zoneName | titlecase) : '--'}}</div>\r\n <div class=\"cardtext\">Zone with the <br> Highest Footfall <span class=\"subcount\">- {{zoneCardsData?.footfall?.zoneFootfallCount ? zoneCardsData?.footfall?.zoneFootfallCount?.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--'}}</span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Highest Impression Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.impression?.rate ? zoneCardsData?.impression?.rate + '%' : '--'}}</span>\r\n <span class=\"cardtext\">Highest Store impression</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">\r\n \r\n {{zoneCardsData?.impression?.zoneName ?(zoneCardsData?.impression?.zoneName | titlecase) : '--'}}\r\n \r\n </div>\r\n <div class=\"cardtext\">Zone with <span class=\"subcount\">{{zoneCardsData?.impression?.zoneImpressionRate ? zoneCardsData?.impression?.zoneImpressionRate + '%' : '--'}}</span> <br> impression</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Total Bounced Rate Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.bounced?.rate ? zoneCardsData?.bounced?.rate + '%' : '--'}}</span>\r\n <span class=\"cardtext\">Top Zone Bounced Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">\r\n \r\n {{zoneCardsData?.bounced?.zoneName ? zoneCardsData?.bounced?.zoneName : '--'}}\r\n \r\n </div>\r\n <div class=\"cardtext\">Zone with the <br> Highest Bounced rate</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Engagers Rate Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.engagers?.rate ? zoneCardsData?.engagers?.rate + '%' : '--'}}</span>\r\n <span class=\"cardtext\">Top Engagers Zone Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">\r\n \r\n {{zoneCardsData?.engagers?.zoneName ? zoneCardsData?.engagers?.zoneName : '--'}}\r\n \r\n </div>\r\n <div class=\"cardtext\">Zone with the <br> Highest Engager Rate</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Average Dwell Time Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.avgDwellTime?.rate ? zoneCardsData?.avgDwellTime?.rate + ' Mins' : '--'}}</span>\r\n <span class=\"cardtext\">Average Top Zone Dwell Time</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">{{zoneCardsData?.avgDwellTime?.zoneName ? zoneCardsData?.avgDwellTime?.zoneName : '--'}}</div>\r\n <div class=\"cardtext\">Zone with the <br> Highest Dwell Time</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [".ellipse1{border-radius:6px;border-bottom:2px solid var(--Gray-200, #EAECF0);background:radial-gradient(206.89% 107.47% at 16.16% 32.77%,#fff6,#45bbfe33),#f2f4f7;box-shadow:0 4px 10px #0000000d}.cardcount{color:var(--Gray-900, #101828);font-size:20px;font-style:normal;font-weight:700;line-height:30px}.cardtext{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:21px}.subcount{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:700;line-height:20px}.card-border{padding:8px;border-radius:12px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.zonecard{width:130%;background:var(--White, #FFF)}\n"], dependencies: [{ kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }] });
|
|
59
60
|
}
|
|
60
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ZonesCardsComponent, decorators: [{
|
|
61
62
|
type: Component,
|
|
62
|
-
args: [{ selector: 'lib-zones-cards', template: "<div class=\"col-md-12\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n\r\n <!-- Total Store Footfall Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.footfall?.count ? zoneCardsData?.footfall?.count?.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--'}}</span>\r\n <span class=\"cardtext\">Total Store Footfall</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">{{zoneCardsData?.footfall?.zoneName ? zoneCardsData?.footfall?.zoneName
|
|
63
|
+
args: [{ selector: 'lib-zones-cards', template: "<div class=\"col-md-12\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n\r\n <!-- Total Store Footfall Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.footfall?.count ? zoneCardsData?.footfall?.count?.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--'}}</span>\r\n <span class=\"cardtext\">Total Store Footfall</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">{{zoneCardsData?.footfall?.zoneName ? (zoneCardsData?.footfall?.zoneName | titlecase) : '--'}}</div>\r\n <div class=\"cardtext\">Zone with the <br> Highest Footfall <span class=\"subcount\">- {{zoneCardsData?.footfall?.zoneFootfallCount ? zoneCardsData?.footfall?.zoneFootfallCount?.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--'}}</span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Highest Impression Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.impression?.rate ? zoneCardsData?.impression?.rate + '%' : '--'}}</span>\r\n <span class=\"cardtext\">Highest Store impression</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">\r\n \r\n {{zoneCardsData?.impression?.zoneName ?(zoneCardsData?.impression?.zoneName | titlecase) : '--'}}\r\n \r\n </div>\r\n <div class=\"cardtext\">Zone with <span class=\"subcount\">{{zoneCardsData?.impression?.zoneImpressionRate ? zoneCardsData?.impression?.zoneImpressionRate + '%' : '--'}}</span> <br> impression</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Total Bounced Rate Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.bounced?.rate ? zoneCardsData?.bounced?.rate + '%' : '--'}}</span>\r\n <span class=\"cardtext\">Top Zone Bounced Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">\r\n \r\n {{zoneCardsData?.bounced?.zoneName ? zoneCardsData?.bounced?.zoneName : '--'}}\r\n \r\n </div>\r\n <div class=\"cardtext\">Zone with the <br> Highest Bounced rate</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Engagers Rate Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.engagers?.rate ? zoneCardsData?.engagers?.rate + '%' : '--'}}</span>\r\n <span class=\"cardtext\">Top Engagers Zone Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">\r\n \r\n {{zoneCardsData?.engagers?.zoneName ? zoneCardsData?.engagers?.zoneName : '--'}}\r\n \r\n </div>\r\n <div class=\"cardtext\">Zone with the <br> Highest Engager Rate</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Average Dwell Time Card -->\r\n <div class=\"col px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{zoneCardsData?.avgDwellTime?.rate ? zoneCardsData?.avgDwellTime?.rate + ' Mins' : '--'}}</span>\r\n <span class=\"cardtext\">Average Top Zone Dwell Time</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-auto py-3 px-3\">\r\n <div class=\"cardcount my-2\">{{zoneCardsData?.avgDwellTime?.zoneName ? zoneCardsData?.avgDwellTime?.zoneName : '--'}}</div>\r\n <div class=\"cardtext\">Zone with the <br> Highest Dwell Time</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [".ellipse1{border-radius:6px;border-bottom:2px solid var(--Gray-200, #EAECF0);background:radial-gradient(206.89% 107.47% at 16.16% 32.77%,#fff6,#45bbfe33),#f2f4f7;box-shadow:0 4px 10px #0000000d}.cardcount{color:var(--Gray-900, #101828);font-size:20px;font-style:normal;font-weight:700;line-height:30px}.cardtext{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:21px}.subcount{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:700;line-height:20px}.card-border{padding:8px;border-radius:12px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.zonecard{width:130%;background:var(--White, #FFF)}\n"] }]
|
|
63
64
|
}], ctorParameters: () => [{ type: i1.Zonev2Service }, { type: i0.ChangeDetectorRef }, { type: i2.GlobalStateService }, { type: i3.Router }, { type: i3.ActivatedRoute }] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMtY2FyZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS16b25lL3NyYy9saWIvY29tcG9uZW50cy96b25lLXYyL3pvbmVzLWNhcmRzL3pvbmVzLWNhcmRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2Utem9uZS9zcmMvbGliL2NvbXBvbmVudHMvem9uZS12Mi96b25lcy1jYXJkcy96b25lcy1jYXJkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBUzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFLVjtJQUFxQztJQUF5QztJQUFnQztJQUF3QjtJQUoxSixhQUFhLENBQU07SUFDbkIsVUFBVSxDQUFNO0lBQ2hCLGlCQUFpQixDQUFxQjtJQUM5QixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUN2QyxZQUFvQixhQUE0QixFQUFTLGNBQWlDLEVBQVEsRUFBc0IsRUFBVSxNQUFjLEVBQVUsY0FBOEI7UUFBcEssa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBUSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBSSxDQUFDO0lBRTdMLFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7YUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2pELFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQTtJQUNBLENBQUM7SUFDRCxXQUFXO1FBRVQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxXQUFXLEdBQUc7WUFDbEIsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDeEMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN0RyxRQUFRLEVBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1NBQ2hDLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN2RixDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ2hCLElBQUksUUFBUSxFQUFFLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUV0RTtpQkFBTztnQkFDTixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQTthQUN4QjtRQUNILENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUE7WUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7d0dBNUNVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHVEQ1poQyw2MExBMkdBOzs0RkQvRmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWm9uZXYyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3pvbmV2Mi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi16b25lcy1jYXJkcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3pvbmVzLWNhcmRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vem9uZXMtY2FyZHMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBab25lc0NhcmRzQ29tcG9uZW50IHtcclxuICB6b25lQ2FyZHNEYXRhOiBhbnk7XHJcbiAgaGVhZGVyRGF0YTogYW55O1xyXG4gIHpvbmVDYXJkc0Zvb3RmYWxsOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBab25ldjJTZXJ2aWNlOiBab25ldjJTZXJ2aWNlLHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIEFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMzAwKSlcclxuICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5nZXRab25lQ2FyZHMoKTtcclxufSlcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRab25lQ2FyZHMoKTogdm9pZCB7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGEuc3RvcmVzLmZpbHRlcigoc3RvcmU6YW55KSA9PiBzdG9yZS5jaGVja2VkKS5tYXAoKHN0b3JlOmFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIGNsaWVudElkOnRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuWm9uZXYyU2VydmljZS5nZXRab25lQ2FyZHNEYXRhKHJlcXVlc3REYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgICAgIHRoaXMuem9uZUNhcmRzRGF0YSA9IHJlc3BvbnNlLmRhdGEuY2FyZDtcclxuICAgICAgICAgIHRoaXMuWm9uZXYyU2VydmljZS51cGRhdGVGb290ZmFsbChyZXNwb25zZS5kYXRhLmNhcmQuZm9vdGZhbGwuY291bnQpO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfSAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnpvbmVDYXJkc0RhdGEgPSBbXVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy56b25lQ2FyZHNEYXRhID0gW11cclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyB6b25lIGNhcmQgZGF0YScsIGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4vLyAgIHJlZGlyZWN0VG9IZWF0bWFwKHpvbmVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuLy8gICAgIGlmICh6b25lTmFtZSkge1xyXG4vLyAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4vLyAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuQWN0aXZhdGVkUm91dGUsXHJcbi8vICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHpvbmVOYW1lIH0gfSk7XHJcbi8vICAgICAgICAgIGNvbnN0IGhlYXRtYXBFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgI2hlYXRtYXBzY3JvbGxgKTtcclxuLy8gIGNvbnNvbGUubG9nKFwiaGVhdG1hcEVsZW1lbnRcIiwgaGVhdG1hcEVsZW1lbnQpXHJcbi8vICAgICAgIGlmIChoZWF0bWFwRWxlbWVudCkge1xyXG4gICAgICAgIFxyXG4vLyAgICAgICAgIGhlYXRtYXBFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICdjZW50ZXInLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbi8vICAgICAgIH1cclxuLy8gICAgIH1cclxuLy8gICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0cmV0Y2hcIj5cclxuXHJcbiAgICAgICAgPCEtLSBUb3RhbCBTdG9yZSBGb290ZmFsbCBDYXJkIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgcHgtMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWJvcmRlciBwdC0yIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZWxsaXBzZTEgYm9yZGVyLTAgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkY291bnRcIj57e3pvbmVDYXJkc0RhdGE/LmZvb3RmYWxsPy5jb3VudCA/IHpvbmVDYXJkc0RhdGE/LmZvb3RmYWxsPy5jb3VudD8udG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAgfSkgOiAnLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZHRleHRcIj5Ub3RhbCBTdG9yZSBGb290ZmFsbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLWF1dG8gcHktMyBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwiY2FyZGNvdW50IG15LTJcIj57e3pvbmVDYXJkc0RhdGE/LmZvb3RmYWxsPy56b25lTmFtZSA/IHpvbmVDYXJkc0RhdGE/LmZvb3RmYWxsPy56b25lTmFtZT8udG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAgfSkgOiAnLS0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmR0ZXh0XCI+Wm9uZSB3aXRoIHRoZSA8YnI+IEhpZ2hlc3QgRm9vdGZhbGwgPHNwYW4gY2xhc3M9XCJzdWJjb3VudFwiPi0ge3t6b25lQ2FyZHNEYXRhPy5mb290ZmFsbD8uem9uZUZvb3RmYWxsQ291bnQgPyB6b25lQ2FyZHNEYXRhPy5mb290ZmFsbD8uem9uZUZvb3RmYWxsQ291bnQgOiAnLS0nfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gSGlnaGVzdCBJbXByZXNzaW9uIENhcmQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBweC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtYm9yZGVyIHB0LTIgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBlbGxpcHNlMSBib3JkZXItMCBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmRjb3VudFwiPnt7em9uZUNhcmRzRGF0YT8uaW1wcmVzc2lvbj8ucmF0ZSA/IHpvbmVDYXJkc0RhdGE/LmltcHJlc3Npb24/LnJhdGUgKyAnJScgOiAnLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZHRleHRcIj5IaWdoZXN0IFN0b3JlIGltcHJlc3Npb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1hdXRvIHB5LTMgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZGNvdW50IG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7em9uZUNhcmRzRGF0YT8uaW1wcmVzc2lvbj8uem9uZU5hbWUgPyB6b25lQ2FyZHNEYXRhPy5pbXByZXNzaW9uPy56b25lTmFtZSA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkdGV4dFwiPlpvbmUgd2l0aCA8c3BhbiBjbGFzcz1cInN1YmNvdW50XCI+e3t6b25lQ2FyZHNEYXRhPy5pbXByZXNzaW9uPy56b25lSW1wcmVzc2lvblJhdGUgPyB6b25lQ2FyZHNEYXRhPy5pbXByZXNzaW9uPy56b25lSW1wcmVzc2lvblJhdGUgKyAnJScgOiAnLS0nfX08L3NwYW4+IDxicj4gaW1wcmVzc2lvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFRvdGFsIEJvdW5jZWQgUmF0ZSBDYXJkIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgcHgtMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWJvcmRlciBwdC0yIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZWxsaXBzZTEgYm9yZGVyLTAgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkY291bnRcIj57e3pvbmVDYXJkc0RhdGE/LmJvdW5jZWQ/LnJhdGUgPyB6b25lQ2FyZHNEYXRhPy5ib3VuY2VkPy5yYXRlICsgJyUnIDogJy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmR0ZXh0XCI+VG9wIFpvbmUgQm91bmNlZCBSYXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtYXV0byBweS0zIHB4LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRjb3VudCBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3pvbmVDYXJkc0RhdGE/LmJvdW5jZWQ/LnpvbmVOYW1lID8gem9uZUNhcmRzRGF0YT8uYm91bmNlZD8uem9uZU5hbWUgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZHRleHRcIj5ab25lIHdpdGggdGhlIDxicj4gSGlnaGVzdCBCb3VuY2VkIHJhdGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBFbmdhZ2VycyBSYXRlIENhcmQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBweC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtYm9yZGVyIHB0LTIgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBlbGxpcHNlMSBib3JkZXItMCBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmRjb3VudFwiPnt7em9uZUNhcmRzRGF0YT8uZW5nYWdlcnM/LnJhdGUgPyB6b25lQ2FyZHNEYXRhPy5lbmdhZ2Vycz8ucmF0ZSArICclJyA6ICctLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkdGV4dFwiPlRvcCBFbmdhZ2VycyBab25lIFJhdGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1hdXRvIHB5LTMgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZGNvdW50IG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7em9uZUNhcmRzRGF0YT8uZW5nYWdlcnM/LnpvbmVOYW1lID8gem9uZUNhcmRzRGF0YT8uZW5nYWdlcnM/LnpvbmVOYW1lIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmR0ZXh0XCI+Wm9uZSB3aXRoIHRoZSA8YnI+IEhpZ2hlc3QgRW5nYWdlciBSYXRlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gQXZlcmFnZSBEd2VsbCBUaW1lIENhcmQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBweC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtYm9yZGVyIHB0LTIgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBlbGxpcHNlMSBib3JkZXItMCBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmRjb3VudFwiPnt7em9uZUNhcmRzRGF0YT8uYXZnRHdlbGxUaW1lPy5yYXRlID8gem9uZUNhcmRzRGF0YT8uYXZnRHdlbGxUaW1lPy5yYXRlICsgJyBNaW5zJyA6ICctLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkdGV4dFwiPkF2ZXJhZ2UgVG9wIFpvbmUgRHdlbGwgVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLWF1dG8gcHktMyBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkY291bnQgbXktMlwiPnt7em9uZUNhcmRzRGF0YT8uYXZnRHdlbGxUaW1lPy56b25lTmFtZSA/IHpvbmVDYXJkc0RhdGE/LmF2Z0R3ZWxsVGltZT8uem9uZU5hbWUgOiAnLS0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmR0ZXh0XCI+Wm9uZSB3aXRoIHRoZSA8YnI+IEhpZ2hlc3QgRHdlbGwgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMtY2FyZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS16b25lL3NyYy9saWIvY29tcG9uZW50cy96b25lLXYyL3pvbmVzLWNhcmRzL3pvbmVzLWNhcmRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2Utem9uZS9zcmMvbGliL2NvbXBvbmVudHMvem9uZS12Mi96b25lcy1jYXJkcy96b25lcy1jYXJkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVMzQyxNQUFNLE9BQU8sbUJBQW1CO0lBS1Y7SUFBcUM7SUFBeUM7SUFBZ0M7SUFBd0I7SUFKMUosYUFBYSxDQUFNO0lBQ25CLFVBQVUsQ0FBTTtJQUNoQixpQkFBaUIsQ0FBcUI7SUFDOUIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDdkMsWUFBb0IsYUFBNEIsRUFBUyxjQUFpQyxFQUFRLEVBQXNCLEVBQVUsTUFBYyxFQUFVLGNBQThCO1FBQXBLLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQVEsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUksQ0FBQztJQUU3TCxRQUFRO1FBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjO2FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNqRCxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUE7SUFDQSxDQUFDO0lBQ0QsV0FBVztRQUVULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ3BDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdEcsUUFBUSxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtTQUNoQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDdkYsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNoQixJQUFJLFFBQVEsRUFBRSxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFFdEU7aUJBQU87Z0JBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUE7YUFDeEI7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFBO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO3dHQTVDVSxtQkFBbUI7NEZBQW5CLG1CQUFtQix1RENaaEMsdzJMQTJHQTs7NEZEL0ZhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFpvbmV2MlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy96b25ldjIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItem9uZXMtY2FyZHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96b25lcy1jYXJkcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3pvbmVzLWNhcmRzLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgWm9uZXNDYXJkc0NvbXBvbmVudCB7XHJcbiAgem9uZUNhcmRzRGF0YTogYW55O1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICB6b25lQ2FyZHNGb290ZmFsbDogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgWm9uZXYyU2VydmljZTogWm9uZXYyU2VydmljZSxwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuZ2V0Wm9uZUNhcmRzKCk7XHJcbn0pXHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Wm9uZUNhcmRzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5oZWFkZXJEYXRhLnN0b3Jlcy5maWx0ZXIoKHN0b3JlOmFueSkgPT4gc3RvcmUuY2hlY2tlZCkubWFwKChzdG9yZTphbnkpID0+IHN0b3JlLnN0b3JlSWQpLFxyXG4gICAgICBjbGllbnRJZDp0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLlpvbmV2MlNlcnZpY2UuZ2V0Wm9uZUNhcmRzRGF0YShyZXF1ZXN0RGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgICB0aGlzLnpvbmVDYXJkc0RhdGEgPSByZXNwb25zZS5kYXRhLmNhcmQ7XHJcbiAgICAgICAgICB0aGlzLlpvbmV2MlNlcnZpY2UudXBkYXRlRm9vdGZhbGwocmVzcG9uc2UuZGF0YS5jYXJkLmZvb3RmYWxsLmNvdW50KTtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH0gIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy56b25lQ2FyZHNEYXRhID0gW11cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuem9uZUNhcmRzRGF0YSA9IFtdXHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgem9uZSBjYXJkIGRhdGEnLCBlcnJvcik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuLy8gICByZWRpcmVjdFRvSGVhdG1hcCh6b25lTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbi8vICAgICBpZiAoem9uZU5hbWUpIHtcclxuLy8gICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuLy8gICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLkFjdGl2YXRlZFJvdXRlLFxyXG4vLyAgICAgICAgICBxdWVyeVBhcmFtczogeyB6b25lTmFtZSB9IH0pO1xyXG4vLyAgICAgICAgICBjb25zdCBoZWF0bWFwRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCNoZWF0bWFwc2Nyb2xsYCk7XHJcbi8vICBjb25zb2xlLmxvZyhcImhlYXRtYXBFbGVtZW50XCIsIGhlYXRtYXBFbGVtZW50KVxyXG4vLyAgICAgICBpZiAoaGVhdG1hcEVsZW1lbnQpIHtcclxuICAgICAgICBcclxuLy8gICAgICAgICBoZWF0bWFwRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4vLyAgICAgICB9XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdHJldGNoXCI+XHJcblxyXG4gICAgICAgIDwhLS0gVG90YWwgU3RvcmUgRm9vdGZhbGwgQ2FyZCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHB4LTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1ib3JkZXIgcHQtMiBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGVsbGlwc2UxIGJvcmRlci0wIHB4LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZGNvdW50XCI+e3t6b25lQ2FyZHNEYXRhPy5mb290ZmFsbD8uY291bnQgPyB6b25lQ2FyZHNEYXRhPy5mb290ZmFsbD8uY291bnQ/LnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwIH0pIDogJy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmR0ZXh0XCI+VG90YWwgU3RvcmUgRm9vdGZhbGw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1hdXRvIHB5LTMgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImNhcmRjb3VudCBteS0yXCI+e3t6b25lQ2FyZHNEYXRhPy5mb290ZmFsbD8uem9uZU5hbWUgPyAoem9uZUNhcmRzRGF0YT8uZm9vdGZhbGw/LnpvbmVOYW1lIHwgdGl0bGVjYXNlKSA6ICctLSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZHRleHRcIj5ab25lIHdpdGggdGhlIDxicj4gSGlnaGVzdCBGb290ZmFsbCA8c3BhbiBjbGFzcz1cInN1YmNvdW50XCI+LSB7e3pvbmVDYXJkc0RhdGE/LmZvb3RmYWxsPy56b25lRm9vdGZhbGxDb3VudCA/IHpvbmVDYXJkc0RhdGE/LmZvb3RmYWxsPy56b25lRm9vdGZhbGxDb3VudD8udG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAgfSkgOiAnLS0nfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gSGlnaGVzdCBJbXByZXNzaW9uIENhcmQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBweC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtYm9yZGVyIHB0LTIgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBlbGxpcHNlMSBib3JkZXItMCBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmRjb3VudFwiPnt7em9uZUNhcmRzRGF0YT8uaW1wcmVzc2lvbj8ucmF0ZSA/IHpvbmVDYXJkc0RhdGE/LmltcHJlc3Npb24/LnJhdGUgKyAnJScgOiAnLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZHRleHRcIj5IaWdoZXN0IFN0b3JlIGltcHJlc3Npb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1hdXRvIHB5LTMgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZGNvdW50IG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7em9uZUNhcmRzRGF0YT8uaW1wcmVzc2lvbj8uem9uZU5hbWUgPyh6b25lQ2FyZHNEYXRhPy5pbXByZXNzaW9uPy56b25lTmFtZSB8IHRpdGxlY2FzZSkgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZHRleHRcIj5ab25lIHdpdGggPHNwYW4gY2xhc3M9XCJzdWJjb3VudFwiPnt7em9uZUNhcmRzRGF0YT8uaW1wcmVzc2lvbj8uem9uZUltcHJlc3Npb25SYXRlID8gem9uZUNhcmRzRGF0YT8uaW1wcmVzc2lvbj8uem9uZUltcHJlc3Npb25SYXRlICsgJyUnIDogJy0tJ319PC9zcGFuPiA8YnI+IGltcHJlc3Npb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBUb3RhbCBCb3VuY2VkIFJhdGUgQ2FyZCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHB4LTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1ib3JkZXIgcHQtMiBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGVsbGlwc2UxIGJvcmRlci0wIHB4LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZGNvdW50XCI+e3t6b25lQ2FyZHNEYXRhPy5ib3VuY2VkPy5yYXRlID8gem9uZUNhcmRzRGF0YT8uYm91bmNlZD8ucmF0ZSArICclJyA6ICctLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkdGV4dFwiPlRvcCBab25lIEJvdW5jZWQgUmF0ZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLWF1dG8gcHktMyBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkY291bnQgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t6b25lQ2FyZHNEYXRhPy5ib3VuY2VkPy56b25lTmFtZSA/IHpvbmVDYXJkc0RhdGE/LmJvdW5jZWQ/LnpvbmVOYW1lIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmR0ZXh0XCI+Wm9uZSB3aXRoIHRoZSA8YnI+IEhpZ2hlc3QgQm91bmNlZCByYXRlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gRW5nYWdlcnMgUmF0ZSBDYXJkIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgcHgtMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWJvcmRlciBwdC0yIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZWxsaXBzZTEgYm9yZGVyLTAgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkY291bnRcIj57e3pvbmVDYXJkc0RhdGE/LmVuZ2FnZXJzPy5yYXRlID8gem9uZUNhcmRzRGF0YT8uZW5nYWdlcnM/LnJhdGUgKyAnJScgOiAnLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZHRleHRcIj5Ub3AgRW5nYWdlcnMgWm9uZSBSYXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtYXV0byBweS0zIHB4LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRjb3VudCBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3pvbmVDYXJkc0RhdGE/LmVuZ2FnZXJzPy56b25lTmFtZSA/IHpvbmVDYXJkc0RhdGE/LmVuZ2FnZXJzPy56b25lTmFtZSA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkdGV4dFwiPlpvbmUgd2l0aCB0aGUgPGJyPiBIaWdoZXN0IEVuZ2FnZXIgUmF0ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIEF2ZXJhZ2UgRHdlbGwgVGltZSBDYXJkIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgcHgtMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWJvcmRlciBwdC0yIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZWxsaXBzZTEgYm9yZGVyLTAgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkY291bnRcIj57e3pvbmVDYXJkc0RhdGE/LmF2Z0R3ZWxsVGltZT8ucmF0ZSA/IHpvbmVDYXJkc0RhdGE/LmF2Z0R3ZWxsVGltZT8ucmF0ZSArICcgTWlucycgOiAnLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZHRleHRcIj5BdmVyYWdlIFRvcCBab25lIER3ZWxsIFRpbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1hdXRvIHB5LTMgcHgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZGNvdW50IG15LTJcIj57e3pvbmVDYXJkc0RhdGE/LmF2Z0R3ZWxsVGltZT8uem9uZU5hbWUgPyB6b25lQ2FyZHNEYXRhPy5hdmdEd2VsbFRpbWU/LnpvbmVOYW1lIDogJy0tJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkdGV4dFwiPlpvbmUgd2l0aCB0aGUgPGJyPiBIaWdoZXN0IER3ZWxsIFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|