vc-layout 0.0.1 → 0.0.3
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/global-alert/global-alert/global-alert.component.mjs +180 -8
- package/esm2022/lib/components/header/business-cycle/business-cycle.component.mjs +4 -4
- package/esm2022/lib/components/header/header-container/header-container.component.mjs +27 -6
- package/esm2022/lib/components/header/search/search.component.mjs +2 -2
- package/esm2022/lib/components/product-list/module-list/module-list.component.mjs +33 -7
- package/esm2022/lib/components/product-list/preference-list/preference-list.component.mjs +26 -46
- package/esm2022/lib/components/product-list/product-list-container/product-list-container.component.mjs +2 -2
- package/esm2022/lib/components/product-list/product-list.module.mjs +5 -4
- package/esm2022/lib/constants/alerts.constant.mjs +7 -0
- package/esm2022/lib/constants/app-url.constant.mjs +9 -7
- package/esm2022/lib/constants/assets.constants.mjs +17 -17
- package/esm2022/lib/constants/product-list.constant.mjs +29 -8
- package/esm2022/lib/shared/pipe/get-module-icon.pipe.mjs +22 -0
- package/esm2022/lib/shared/pipe/pipes.module.mjs +21 -4
- package/esm2022/lib/shared/services/business-cycle.service.mjs +3 -5
- package/esm2022/lib/shared/services/layout.service.mjs +2 -1
- package/esm2022/lib/shared/services/product-list.service.mjs +7 -7
- package/fesm2022/vc-layout.mjs +390 -135
- package/fesm2022/vc-layout.mjs.map +1 -1
- package/lib/components/global-alert/global-alert/global-alert.component.d.ts +24 -5
- package/lib/components/header/header-container/header-container.component.d.ts +2 -1
- package/lib/components/product-list/module-list/module-list.component.d.ts +3 -1
- package/lib/components/product-list/preference-list/preference-list.component.d.ts +5 -2
- package/lib/components/product-list/product-list.module.d.ts +2 -1
- package/lib/constants/alerts.constant.d.ts +1 -0
- package/lib/constants/assets.constants.d.ts +1 -30
- package/lib/constants/product-list.constant.d.ts +1 -0
- package/lib/shared/pipe/get-module-icon.pipe.d.ts +7 -0
- package/lib/shared/pipe/pipes.module.d.ts +3 -2
- package/lib/shared/services/layout.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,13 +1,185 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { GLOBAL_ALERTS } from '../../../constants/alerts.constant';
|
|
3
|
+
import { IN_APP_URL } from '../../../constants/app-url.constant';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../shared/services/api.service";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
3
7
|
export class GlobalAlertComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
constructor(apiService) {
|
|
9
|
+
this.apiService = apiService;
|
|
10
|
+
this.activeIndex = 0;
|
|
11
|
+
this.messages = [];
|
|
12
|
+
this.isNotificationVisible = false;
|
|
13
|
+
this.subscriptionStatus = new EventEmitter();
|
|
14
|
+
this.setSubscriptionInfo();
|
|
15
|
+
this.getOrgDetails();
|
|
16
|
+
}
|
|
17
|
+
setSubscriptionInfo() {
|
|
18
|
+
this.apiService.subscriptionDetail$.subscribe((res) => {
|
|
19
|
+
console.log('this.subscriptionData ==>', res);
|
|
20
|
+
if (res) {
|
|
21
|
+
this.subscriptionData = res;
|
|
22
|
+
console.log('this.subscriptionData ==>', this.subscriptionData);
|
|
23
|
+
this.setMessages(this.subscriptionData);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
getOrgDetails() {
|
|
28
|
+
this.apiService.organizationDetail$.subscribe((res) => {
|
|
29
|
+
if (res) {
|
|
30
|
+
this.setMailAlert(res);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
setMessages(subscriptionData) {
|
|
35
|
+
const messages = [];
|
|
36
|
+
this.activeIndex = 0;
|
|
37
|
+
if (subscriptionData) {
|
|
38
|
+
const { trial_flag, no_of_days_left, after_expired_days_allow, no_of_days_for_password_expire, } = subscriptionData;
|
|
39
|
+
if (trial_flag && no_of_days_left <= 0) {
|
|
40
|
+
messages.push({
|
|
41
|
+
message: GLOBAL_ALERTS.trialUserExpired + GLOBAL_ALERTS.contactUs,
|
|
42
|
+
class: 'HIGH',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else if (no_of_days_left > 0 && no_of_days_left <= 30) {
|
|
46
|
+
messages.push({
|
|
47
|
+
message: `YOUR SUBSCRIPTION EXPIRES IN ${no_of_days_left} DAYS. ${GLOBAL_ALERTS.contactUs}`,
|
|
48
|
+
class: no_of_days_left <= 10 ? 'HIGH' : 'MEDIUM',
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else if (no_of_days_left <= 0) {
|
|
52
|
+
messages.push({
|
|
53
|
+
message: `SUBSCRIPTION EXPIRED: YOU WILL NOT BE ABLE TO LOGIN TO YOUR ACCOUNT AFTER ${after_expired_days_allow} DAYS. ${GLOBAL_ALERTS.contactUs}`,
|
|
54
|
+
class: 'HIGH',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (no_of_days_for_password_expire < 1) {
|
|
58
|
+
messages.push({
|
|
59
|
+
message: `YOUR PASSWORD HAS EXPIRED. PLEASE <a href="${this.getPasswordResetUrl()}" target="_blank">CLICK HERE</a> TO RESET YOUR PASSWORD.`,
|
|
60
|
+
class: 'HIGH',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
else if (no_of_days_for_password_expire < 30) {
|
|
64
|
+
messages.push({
|
|
65
|
+
message: `YOUR PASSWORD IS GOING TO EXPIRE IN ${no_of_days_for_password_expire} DAYS. <a href="${this.getPasswordResetUrl()}" target="_blank">CLICK HERE</a> TO RESET YOUR PASSWORD.`,
|
|
66
|
+
class: 'MEDIUM',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
this.messages = messages;
|
|
71
|
+
this.isNotificationVisible = this.messages.length > 0;
|
|
72
|
+
this.subscriptionStatus.emit(this.isNotificationVisible);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* If the response is true, then push the message to the array. If the response is false, then remove
|
|
76
|
+
* the message from the array.
|
|
77
|
+
* </code>
|
|
78
|
+
* @param {any} res - any = {
|
|
79
|
+
*/
|
|
80
|
+
setMailAlert(res) {
|
|
81
|
+
const emailPausedMessage = this.feature.isFeatureEnabled('ff_email_alert_update')
|
|
82
|
+
? GLOBAL_ALERTS.NOTIF_PAUSE_MESSAGE
|
|
83
|
+
: GLOBAL_ALERTS.EMAIL_PAUSE;
|
|
84
|
+
const index = this.messages.findIndex((message) => message?.message?.includes(emailPausedMessage));
|
|
85
|
+
if (res?.is_mail_block === 1 && index === -1) {
|
|
86
|
+
this.messages.push({
|
|
87
|
+
message: emailPausedMessage,
|
|
88
|
+
class: 'MEDIUM',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else if (res?.is_mail_block === 0 && index >= 0) {
|
|
92
|
+
this.setMessages(this.subscriptionData);
|
|
93
|
+
}
|
|
94
|
+
this.isNotificationVisible = this.messages.length > 0;
|
|
95
|
+
this.subscriptionStatus.emit(this.isNotificationVisible);
|
|
96
|
+
}
|
|
97
|
+
getPasswordResetUrl() {
|
|
98
|
+
return `https://${window.location.host}${IN_APP_URL.PASSWORD_RESET}`;
|
|
99
|
+
}
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalAlertComponent, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GlobalAlertComponent, selector: "vc-global-alert", inputs: { feature: "feature" }, outputs: { subscriptionStatus: "subscriptionStatus" }, ngImport: i0, template: `
|
|
102
|
+
<div
|
|
103
|
+
*ngIf="messages.length > 0"
|
|
104
|
+
class="global-alert vx-d-flex vx-align-center vx-justify-center"
|
|
105
|
+
[class.expired]="messages[activeIndex]?.class === 'HIGH'"
|
|
106
|
+
>
|
|
107
|
+
<i class="icons vx-fs-12 vx-mr-2"></i>
|
|
108
|
+
<!-- <span class="vx-fs-13"
|
|
109
|
+
>Email notifications have been paused by the Key Admin. You will not be able
|
|
110
|
+
to edit your email notifications until the Key Admin turns it back on.</span
|
|
111
|
+
> -->
|
|
112
|
+
<span
|
|
113
|
+
class="vx-fs-13"
|
|
114
|
+
[innerHTML]="messages[activeIndex]?.message"
|
|
115
|
+
></span>
|
|
116
|
+
<div class="global-alert-action vx-d-flex vx-align-center vx-lh-6">
|
|
117
|
+
<button
|
|
118
|
+
[class.disabled]="activeIndex === 0"
|
|
119
|
+
(click)="activeIndex = activeIndex - 1"
|
|
120
|
+
class="vx-fs-12 vx-p-0 vx-m-0 vx-mr-4 vx-d-flex vx-align-center disabled"
|
|
121
|
+
>
|
|
122
|
+
<i class="icons"></i>
|
|
123
|
+
</button>
|
|
124
|
+
<span class="vx-fs-13 vx-txt-white">{{ activeIndex + 1 }}</span>
|
|
125
|
+
<span class="divider vx-fs-11 vx-txt-white">/</span>
|
|
126
|
+
<span class="vx-fs-13 vx-fw-600 vx-txt-white">{{
|
|
127
|
+
messages.length
|
|
128
|
+
}}</span>
|
|
129
|
+
<button
|
|
130
|
+
(click)="activeIndex = activeIndex + 1"
|
|
131
|
+
[class.disabled]="activeIndex === messages.length - 1"
|
|
132
|
+
class="vx-fs-12 vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center"
|
|
133
|
+
>
|
|
134
|
+
<i class="icons"></i>
|
|
135
|
+
</button>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
`, isInline: true, styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";::ng-deep .global-alert{background:#343952;height:2.25rem;color:#f7d873}::ng-deep .global-alert.expired{color:#e38b7a}::ng-deep .global-alert.expired a{color:#fac3b7;margin-left:.5rem}::ng-deep .global-alert a{color:#f7d873}::ng-deep .global-alert-action{position:absolute;right:.75rem;top:.375rem}::ng-deep .global-alert-action span{letter-spacing:2px}::ng-deep .global-alert-action button{background:transparent;border-radius:0;border:none;color:#fff}::ng-deep .global-alert-action button.disabled{pointer-events:none;opacity:.5;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
8
139
|
}
|
|
9
140
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalAlertComponent, decorators: [{
|
|
10
141
|
type: Component,
|
|
11
|
-
args: [{ selector: 'vc-global-alert', template:
|
|
12
|
-
|
|
13
|
-
|
|
142
|
+
args: [{ selector: 'vc-global-alert', template: `
|
|
143
|
+
<div
|
|
144
|
+
*ngIf="messages.length > 0"
|
|
145
|
+
class="global-alert vx-d-flex vx-align-center vx-justify-center"
|
|
146
|
+
[class.expired]="messages[activeIndex]?.class === 'HIGH'"
|
|
147
|
+
>
|
|
148
|
+
<i class="icons vx-fs-12 vx-mr-2"></i>
|
|
149
|
+
<!-- <span class="vx-fs-13"
|
|
150
|
+
>Email notifications have been paused by the Key Admin. You will not be able
|
|
151
|
+
to edit your email notifications until the Key Admin turns it back on.</span
|
|
152
|
+
> -->
|
|
153
|
+
<span
|
|
154
|
+
class="vx-fs-13"
|
|
155
|
+
[innerHTML]="messages[activeIndex]?.message"
|
|
156
|
+
></span>
|
|
157
|
+
<div class="global-alert-action vx-d-flex vx-align-center vx-lh-6">
|
|
158
|
+
<button
|
|
159
|
+
[class.disabled]="activeIndex === 0"
|
|
160
|
+
(click)="activeIndex = activeIndex - 1"
|
|
161
|
+
class="vx-fs-12 vx-p-0 vx-m-0 vx-mr-4 vx-d-flex vx-align-center disabled"
|
|
162
|
+
>
|
|
163
|
+
<i class="icons"></i>
|
|
164
|
+
</button>
|
|
165
|
+
<span class="vx-fs-13 vx-txt-white">{{ activeIndex + 1 }}</span>
|
|
166
|
+
<span class="divider vx-fs-11 vx-txt-white">/</span>
|
|
167
|
+
<span class="vx-fs-13 vx-fw-600 vx-txt-white">{{
|
|
168
|
+
messages.length
|
|
169
|
+
}}</span>
|
|
170
|
+
<button
|
|
171
|
+
(click)="activeIndex = activeIndex + 1"
|
|
172
|
+
[class.disabled]="activeIndex === messages.length - 1"
|
|
173
|
+
class="vx-fs-12 vx-p-0 vx-m-0 vx-ml-4 vx-d-flex vx-align-center"
|
|
174
|
+
>
|
|
175
|
+
<i class="icons"></i>
|
|
176
|
+
</button>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
`, styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";::ng-deep .global-alert{background:#343952;height:2.25rem;color:#f7d873}::ng-deep .global-alert.expired{color:#e38b7a}::ng-deep .global-alert.expired a{color:#fac3b7;margin-left:.5rem}::ng-deep .global-alert a{color:#f7d873}::ng-deep .global-alert-action{position:absolute;right:.75rem;top:.375rem}::ng-deep .global-alert-action span{letter-spacing:2px}::ng-deep .global-alert-action button{background:transparent;border-radius:0;border:none;color:#fff}::ng-deep .global-alert-action button.disabled{pointer-events:none;opacity:.5;color:#fff}\n"] }]
|
|
180
|
+
}], ctorParameters: function () { return [{ type: i1.ApiService }]; }, propDecorators: { feature: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], subscriptionStatus: [{
|
|
183
|
+
type: Output
|
|
184
|
+
}] } });
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWxheW91dC9zcmMvbGliL2NvbXBvbmVudHMvZ2xvYmFsLWFsZXJ0L2dsb2JhbC1hbGVydC9nbG9iYWwtYWxlcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7OztBQTZDakUsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUjFDLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFFMUIsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBRzdCLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHaEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ2hFLElB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O1FBRUYsSUFBSSxHQUFHLEVBQUUsYUFBYSxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pCLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLEtBQUssRUFBRSxRQUFRO2FBQ2hCLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxHQUFHLEVBQUUsYUFBYSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLFdBQVcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7K0dBaEhVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDhJQXhDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ1Q7OzRGQUdVLG9CQUFvQjtrQkExQ2hDLFNBQVM7K0JBQ0UsaUJBQWlCLFlBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNUO2lHQVNRLE9BQU87c0JBQWYsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHTE9CQUxfQUxFUlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0cy5jb25zdGFudCc7XHJcbmltcG9ydCB7IElOX0FQUF9VUkwgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXBwLXVybC5jb25zdGFudCc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvYXBpLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2Yy1nbG9iYWwtYWxlcnQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwibWVzc2FnZXMubGVuZ3RoID4gMFwiXHJcbiAgICAgIGNsYXNzPVwiZ2xvYmFsLWFsZXJ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxyXG4gICAgICBbY2xhc3MuZXhwaXJlZF09XCJtZXNzYWdlc1thY3RpdmVJbmRleF0/LmNsYXNzID09PSAnSElHSCdcIlxyXG4gICAgPlxyXG4gICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LW1yLTJcIj4mI3hlOTMwOzwvaT5cclxuICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInZ4LWZzLTEzXCJcclxuICAgID5FbWFpbCBub3RpZmljYXRpb25zIGhhdmUgYmVlbiBwYXVzZWQgYnkgdGhlIEtleSBBZG1pbi4gWW91IHdpbGwgbm90IGJlIGFibGVcclxuICAgIHRvIGVkaXQgeW91ciBlbWFpbCBub3RpZmljYXRpb25zIHVudGlsIHRoZSBLZXkgQWRtaW4gdHVybnMgaXQgYmFjayBvbi48L3NwYW5cclxuICA+IC0tPlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwidngtZnMtMTNcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZXNbYWN0aXZlSW5kZXhdPy5tZXNzYWdlXCJcclxuICAgICAgPjwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImdsb2JhbC1hbGVydC1hY3Rpb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUluZGV4ID09PSAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJhY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4IC0gMVwiXHJcbiAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXAtMCB2eC1tLTAgdngtbXItNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGRpc2FibGVkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk2Yjs8L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMyB2eC10eHQtd2hpdGVcIj57eyBhY3RpdmVJbmRleCArIDEgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyIHZ4LWZzLTExIHZ4LXR4dC13aGl0ZVwiPi88L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMyB2eC1mdy02MDAgdngtdHh0LXdoaXRlXCI+e3tcclxuICAgICAgICAgIG1lc3NhZ2VzLmxlbmd0aFxyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIChjbGljayk9XCJhY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4ICsgMVwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlSW5kZXggPT09IG1lc3NhZ2VzLmxlbmd0aCAtIDFcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMiB2eC1wLTAgdngtbS0wIHZ4LW1sLTQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5NzA7PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2xvYmFsLWFsZXJ0LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxBbGVydENvbXBvbmVudCB7XHJcbiAgYWN0aXZlSW5kZXggPSAwO1xyXG4gIG1lc3NhZ2VzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgbWFpbEFsZXJ0OiBhbnk7XHJcbiAgaXNOb3RpZmljYXRpb25WaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3Vic2NyaXB0aW9uRGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcclxuICBAT3V0cHV0KCkgc3Vic2NyaXB0aW9uU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHtcclxuICAgIHRoaXMuc2V0U3Vic2NyaXB0aW9uSW5mbygpO1xyXG4gICAgdGhpcy5nZXRPcmdEZXRhaWxzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJzY3JpcHRpb25JbmZvKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLnN1YnNjcmlwdGlvbkRldGFpbCQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ3RoaXMuc3Vic2NyaXB0aW9uRGF0YSA9PT4nLCByZXMpO1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25EYXRhID0gcmVzO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnN1YnNjcmlwdGlvbkRhdGEgPT0+JywgdGhpcy5zdWJzY3JpcHRpb25EYXRhKTtcclxuICAgICAgICB0aGlzLnNldE1lc3NhZ2VzKHRoaXMuc3Vic2NyaXB0aW9uRGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JnRGV0YWlscygpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5vcmdhbml6YXRpb25EZXRhaWwkLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLnNldE1haWxBbGVydChyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldE1lc3NhZ2VzKHN1YnNjcmlwdGlvbkRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgbWVzc2FnZXMgPSBbXTtcclxuICAgIHRoaXMuYWN0aXZlSW5kZXggPSAwO1xyXG5cclxuICAgIGlmIChzdWJzY3JpcHRpb25EYXRhKSB7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICB0cmlhbF9mbGFnLFxyXG4gICAgICAgIG5vX29mX2RheXNfbGVmdCxcclxuICAgICAgICBhZnRlcl9leHBpcmVkX2RheXNfYWxsb3csXHJcbiAgICAgICAgbm9fb2ZfZGF5c19mb3JfcGFzc3dvcmRfZXhwaXJlLFxyXG4gICAgICB9ID0gc3Vic2NyaXB0aW9uRGF0YTtcclxuXHJcbiAgICAgIGlmICh0cmlhbF9mbGFnICYmIG5vX29mX2RheXNfbGVmdCA8PSAwKSB7XHJcbiAgICAgICAgbWVzc2FnZXMucHVzaCh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBHTE9CQUxfQUxFUlRTLnRyaWFsVXNlckV4cGlyZWQgKyBHTE9CQUxfQUxFUlRTLmNvbnRhY3RVcyxcclxuICAgICAgICAgIGNsYXNzOiAnSElHSCcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAobm9fb2ZfZGF5c19sZWZ0ID4gMCAmJiBub19vZl9kYXlzX2xlZnQgPD0gMzApIHtcclxuICAgICAgICBtZXNzYWdlcy5wdXNoKHtcclxuICAgICAgICAgIG1lc3NhZ2U6IGBZT1VSIFNVQlNDUklQVElPTiBFWFBJUkVTIElOICR7bm9fb2ZfZGF5c19sZWZ0fSBEQVlTLiAke0dMT0JBTF9BTEVSVFMuY29udGFjdFVzfWAsXHJcbiAgICAgICAgICBjbGFzczogbm9fb2ZfZGF5c19sZWZ0IDw9IDEwID8gJ0hJR0gnIDogJ01FRElVTScsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAobm9fb2ZfZGF5c19sZWZ0IDw9IDApIHtcclxuICAgICAgICBtZXNzYWdlcy5wdXNoKHtcclxuICAgICAgICAgIG1lc3NhZ2U6IGBTVUJTQ1JJUFRJT04gRVhQSVJFRDogWU9VIFdJTEwgTk9UIEJFIEFCTEUgVE8gTE9HSU4gVE8gWU9VUiBBQ0NPVU5UIEFGVEVSICR7YWZ0ZXJfZXhwaXJlZF9kYXlzX2FsbG93fSBEQVlTLiAke0dMT0JBTF9BTEVSVFMuY29udGFjdFVzfWAsXHJcbiAgICAgICAgICBjbGFzczogJ0hJR0gnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAobm9fb2ZfZGF5c19mb3JfcGFzc3dvcmRfZXhwaXJlIDwgMSkge1xyXG4gICAgICAgIG1lc3NhZ2VzLnB1c2goe1xyXG4gICAgICAgICAgbWVzc2FnZTogYFlPVVIgUEFTU1dPUkQgSEFTIEVYUElSRUQuIFBMRUFTRSA8YSBocmVmPVwiJHt0aGlzLmdldFBhc3N3b3JkUmVzZXRVcmwoKX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5DTElDSyBIRVJFPC9hPiBUTyBSRVNFVCBZT1VSIFBBU1NXT1JELmAsXHJcbiAgICAgICAgICBjbGFzczogJ0hJR0gnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKG5vX29mX2RheXNfZm9yX3Bhc3N3b3JkX2V4cGlyZSA8IDMwKSB7XHJcbiAgICAgICAgbWVzc2FnZXMucHVzaCh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBgWU9VUiBQQVNTV09SRCBJUyBHT0lORyBUTyBFWFBJUkUgSU4gJHtub19vZl9kYXlzX2Zvcl9wYXNzd29yZF9leHBpcmV9IERBWVMuIDxhIGhyZWY9XCIke3RoaXMuZ2V0UGFzc3dvcmRSZXNldFVybCgpfVwiIHRhcmdldD1cIl9ibGFua1wiPkNMSUNLIEhFUkU8L2E+IFRPIFJFU0VUIFlPVVIgUEFTU1dPUkQuYCxcclxuICAgICAgICAgIGNsYXNzOiAnTUVESVVNJyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWVzc2FnZXMgPSBtZXNzYWdlcztcclxuICAgIHRoaXMuaXNOb3RpZmljYXRpb25WaXNpYmxlID0gdGhpcy5tZXNzYWdlcy5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25TdGF0dXMuZW1pdCh0aGlzLmlzTm90aWZpY2F0aW9uVmlzaWJsZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiB0aGUgcmVzcG9uc2UgaXMgdHJ1ZSwgdGhlbiBwdXNoIHRoZSBtZXNzYWdlIHRvIHRoZSBhcnJheS4gSWYgdGhlIHJlc3BvbnNlIGlzIGZhbHNlLCB0aGVuIHJlbW92ZVxyXG4gICAqIHRoZSBtZXNzYWdlIGZyb20gdGhlIGFycmF5LlxyXG4gICAqIDwvY29kZT5cclxuICAgKiBAcGFyYW0ge2FueX0gcmVzIC0gYW55ID0ge1xyXG4gICAqL1xyXG4gIHNldE1haWxBbGVydChyZXM6IGFueSkge1xyXG4gICAgY29uc3QgZW1haWxQYXVzZWRNZXNzYWdlID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXHJcbiAgICAgICdmZl9lbWFpbF9hbGVydF91cGRhdGUnXHJcbiAgICApXHJcbiAgICAgID8gR0xPQkFMX0FMRVJUUy5OT1RJRl9QQVVTRV9NRVNTQUdFXHJcbiAgICAgIDogR0xPQkFMX0FMRVJUUy5FTUFJTF9QQVVTRTtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubWVzc2FnZXMuZmluZEluZGV4KChtZXNzYWdlOiBhbnkpID0+XHJcbiAgICAgIG1lc3NhZ2U/Lm1lc3NhZ2U/LmluY2x1ZGVzKGVtYWlsUGF1c2VkTWVzc2FnZSlcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHJlcz8uaXNfbWFpbF9ibG9jayA9PT0gMSAmJiBpbmRleCA9PT0gLTEpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHtcclxuICAgICAgICBtZXNzYWdlOiBlbWFpbFBhdXNlZE1lc3NhZ2UsXHJcbiAgICAgICAgY2xhc3M6ICdNRURJVU0nLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAocmVzPy5pc19tYWlsX2Jsb2NrID09PSAwICYmIGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5zZXRNZXNzYWdlcyh0aGlzLnN1YnNjcmlwdGlvbkRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNOb3RpZmljYXRpb25WaXNpYmxlID0gdGhpcy5tZXNzYWdlcy5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25TdGF0dXMuZW1pdCh0aGlzLmlzTm90aWZpY2F0aW9uVmlzaWJsZSk7XHJcbiAgfVxyXG5cclxuICBnZXRQYXNzd29yZFJlc2V0VXJsKCkge1xyXG4gICAgcmV0dXJuIGBodHRwczovLyR7d2luZG93LmxvY2F0aW9uLmhvc3R9JHtJTl9BUFBfVVJMLlBBU1NXT1JEX1JFU0VUfWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -162,7 +162,7 @@ export class BusinessCycleComponent {
|
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
164
|
else {
|
|
165
|
-
this.businessCycleList
|
|
165
|
+
this.businessCycleList?.forEach((cycle) => {
|
|
166
166
|
let isDisabled = true;
|
|
167
167
|
this.tempSelectedCycle.forEach((el) => {
|
|
168
168
|
if (cycle.start_date == el.start_date) {
|
|
@@ -266,14 +266,14 @@ export class BusinessCycleComponent {
|
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
268
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BusinessCycleComponent, deps: [{ token: i1.AuthorizerService }, { token: i2.BusinessCycleService }, { token: i3.ApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
269
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BusinessCycleComponent, selector: "vc-business-cycle", inputs: { orgDetails: "orgDetails" }, outputs: { businessCycleChange: "businessCycleChange" }, ngImport: i0, template: "<div\r\n class=\"vc-business-cycle vx-pt-2 vx-pb-2\"\r\n appPopover\r\n (click)=\"businessCyclePop.popover()\"\r\n position=\"left\"\r\n>\r\n <div class=\"heading vx-fs-9 vx-tt-uppercase vx-mb-1 vx-lh-3\">\r\n SHOWING DATA {{ cycleToShow === \"Show Future Due Dates\" ? \"For\" : \"From\" }}\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-lh-4\">\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <i class=\"icons calendar vx-fs-12 vx-mr-2\"></i>\r\n <span class=\"vx-fs-11 vx-txt-white vx-d-inline-block\">{{\r\n cycleToShow === \"Show Future Due Dates\"\r\n ? \"Future Due Dates\"\r\n : cycleToShow\r\n }}</span>\r\n </div>\r\n <i class=\"icons arrow vx-fs-10 vx-mr-2\"></i>\r\n </div>\r\n</div>\r\n\r\n<vui-popover #businessCyclePop [dontCloseonClick]=\"true\">\r\n <div class=\"vc-business-cycle-popover-container\">\r\n <div\r\n class=\"vc-business-cycle-popover-container-top vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n >\r\n <p class=\"vx-fs-11 vx-fw-400 vx-label-txt vx-p-0 vx-m-0\">\r\n You can select upto a max of two consecutive years\r\n </p>\r\n </div>\r\n <div class=\"vc-business-cycle-popover-container-body\">\r\n <ul class=\"vx-p-0 vx-m-0\">\r\n <ng-container\r\n *ngFor=\"let eachCycle of businessCycleList; let i = index\"\r\n >\r\n <li\r\n *ngIf=\"\r\n eachCycle?.business_cycle?.toLowerCase() ===\r\n 'show future due dates'\r\n \"\r\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n [class.future-cycle]=\"true\"\r\n >\r\n <app-cs-checkbox\r\n [ngValue]=\"
|
|
269
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BusinessCycleComponent, selector: "vc-business-cycle", inputs: { orgDetails: "orgDetails" }, outputs: { businessCycleChange: "businessCycleChange" }, ngImport: i0, template: "<div\r\n class=\"vc-business-cycle vx-pt-2 vx-pb-2\"\r\n appPopover\r\n (click)=\"businessCyclePop.popover()\"\r\n position=\"left\"\r\n>\r\n <div class=\"heading vx-fs-9 vx-tt-uppercase vx-mb-1 vx-lh-3\">\r\n SHOWING DATA {{ cycleToShow === \"Show Future Due Dates\" ? \"For\" : \"From\" }}\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-lh-4\">\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <i class=\"icons calendar vx-fs-12 vx-mr-2\"></i>\r\n <span class=\"vx-fs-11 vx-txt-white vx-d-inline-block\">{{\r\n cycleToShow === \"Show Future Due Dates\"\r\n ? \"Future Due Dates\"\r\n : cycleToShow\r\n }}</span>\r\n </div>\r\n <i class=\"icons arrow vx-fs-10 vx-mr-2\"></i>\r\n </div>\r\n</div>\r\n\r\n<vui-popover #businessCyclePop [dontCloseonClick]=\"true\">\r\n <div class=\"vc-business-cycle-popover-container\">\r\n <div\r\n class=\"vc-business-cycle-popover-container-top vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n >\r\n <p class=\"vx-fs-11 vx-fw-400 vx-label-txt vx-p-0 vx-m-0\">\r\n You can select upto a max of two consecutive years\r\n </p>\r\n </div>\r\n <div class=\"vc-business-cycle-popover-container-body\">\r\n <ul class=\"vx-p-0 vx-m-0\">\r\n <ng-container\r\n *ngFor=\"let eachCycle of businessCycleList; let i = index\"\r\n >\r\n <li\r\n *ngIf=\"\r\n eachCycle?.business_cycle?.toLowerCase() ===\r\n 'show future due dates'\r\n \"\r\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n [class.future-cycle]=\"true\"\r\n >\r\n <app-cs-checkbox\r\n [ngValue]=\"isSelectedCycle(tempSelectedCycle, eachCycle)\"\r\n (ngValueChange)=\"selectCycle(eachCycle, i)\"\r\n [disabled]=\"eachCycle?.isDisabled\"\r\n >Show Future Due Dates</app-cs-checkbox\r\n >\r\n <i\r\n class=\"icons info-icon vx-fs-12\"\r\n [arTooltip]=\"\r\n 'This option lets you view data that lies outside the current business cycle and are due in the future.'\r\n \"\r\n placement=\"bottom\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </li>\r\n <li\r\n *ngIf=\"\r\n eachCycle?.business_cycle?.toLowerCase() !==\r\n 'show future due dates'\r\n \"\r\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n >\r\n <app-cs-checkbox\r\n [ngValue]=\"isSelectedCycle(tempSelectedCycle, eachCycle)\"\r\n (ngValueChange)=\"selectCycle(eachCycle, i)\"\r\n [disabled]=\"eachCycle?.isDisabled\"\r\n >{{ eachCycle?.start_date | dateFormat }} -\r\n <ng-container>\r\n {{ eachCycle?.end_date | dateFormat }}</ng-container\r\n >\r\n </app-cs-checkbox>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div\r\n class=\"vc-business-cycle-popover-container-footer vx-d-flex vx-justify-between vx-p-3\"\r\n >\r\n <button\r\n (click)=\"businessCyclePop.closePopover('top')\"\r\n class=\"white vx-fs-11 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-tt-uppercase vx-p-0 vx-m-0 vx-txt-blue\"\r\n >\r\n CANCEL\r\n </button>\r\n <button\r\n (click)=\"setBusinessCycle(); businessCyclePop.closePopover('top')\"\r\n [class.disabled]=\"false\"\r\n class=\"blue vx-fs-11 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-tt-uppercase vx-p-0 vx-m-0 vx-txt-white\"\r\n >\r\n APPLY\r\n </button>\r\n </div>\r\n </div>\r\n</vui-popover>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";::ng-deep .vc-business-cycle{position:relative;width:12.5rem;height:3rem;cursor:pointer;z-index:1}::ng-deep .vc-business-cycle .heading{color:#e3e3e9}::ng-deep .vc-business-cycle i.calendar{color:#e3e3e9}::ng-deep .vc-business-cycle i.arrow{color:#f1f1f1}::ng-deep .vc-business-cycle-popover-container{width:15.625rem;background:#fff;box-shadow:0 4px 8px #1e5dd326;border:1px solid #e3e3e9;border-radius:.25rem;z-index:4}::ng-deep .vc-business-cycle-popover-container-top{background:#f8f8f8}::ng-deep .vc-business-cycle-popover-container-top p{line-height:.875rem}::ng-deep .vc-business-cycle-popover-container-body{background:#fff}::ng-deep .vc-business-cycle-popover-container-body ul li{list-style:none;margin:0;position:relative}::ng-deep .vc-business-cycle-popover-container-body ul li:before{background:#f1f1f1;content:\"\";position:absolute;left:.75rem;right:.75rem;bottom:0;height:.0625rem;width:calc(100% - 1.5rem)}::ng-deep .vc-business-cycle-popover-container-body ul li:last-of-type:before{display:none}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle{background:#fadd8a}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle:before{display:none}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle app-cs-checkbox label.checkbox-item span.checkbox{background:#fff}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle app-cs-checkbox label.checkbox-item span.value i{margin-left:.375rem}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle .info-icon{margin-left:.375rem;cursor:context-menu}::ng-deep .vc-business-cycle-popover-container-body ul li app-cs-checkbox{display:flex}::ng-deep .vc-business-cycle-popover-container-body ul li app-cs-checkbox label.checkbox-item span.value{font-size:12px!important;color:#161b2f!important;max-width:100%!important}::ng-deep .vc-business-cycle-popover-container-footer{background:#f8f8f8;border-radius:0 0 .25rem .25rem}::ng-deep .vc-business-cycle-popover-container-footer button{width:calc(50% - .125rem);height:1.5rem;border:1px solid transparent;text-transform:uppercase;border-radius:.125rem;line-height:1.375rem}::ng-deep .vc-business-cycle-popover-container-footer button.white{background:#fff;border-color:#dbdbdb}::ng-deep .vc-business-cycle-popover-container-footer button.blue{background:#1e5dd3;border-color:#1e5dd3}::ng-deep .vc-business-cycle-popover-container-footer button.disabled{background:#dbdbdb;color:#747576;border:none;pointer-events:none!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i6.PopoverComponent, selector: "vui-popover", inputs: ["dontCloseonClick"], outputs: ["closedOnOverlay"] }, { kind: "directive", type: i7.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "position"] }, { kind: "component", type: i8.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "pipe", type: i9.DateFormatPipe, name: "dateFormat" }] }); }
|
|
270
270
|
}
|
|
271
271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BusinessCycleComponent, decorators: [{
|
|
272
272
|
type: Component,
|
|
273
|
-
args: [{ selector: 'vc-business-cycle', template: "<div\r\n class=\"vc-business-cycle vx-pt-2 vx-pb-2\"\r\n appPopover\r\n (click)=\"businessCyclePop.popover()\"\r\n position=\"left\"\r\n>\r\n <div class=\"heading vx-fs-9 vx-tt-uppercase vx-mb-1 vx-lh-3\">\r\n SHOWING DATA {{ cycleToShow === \"Show Future Due Dates\" ? \"For\" : \"From\" }}\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-lh-4\">\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <i class=\"icons calendar vx-fs-12 vx-mr-2\"></i>\r\n <span class=\"vx-fs-11 vx-txt-white vx-d-inline-block\">{{\r\n cycleToShow === \"Show Future Due Dates\"\r\n ? \"Future Due Dates\"\r\n : cycleToShow\r\n }}</span>\r\n </div>\r\n <i class=\"icons arrow vx-fs-10 vx-mr-2\"></i>\r\n </div>\r\n</div>\r\n\r\n<vui-popover #businessCyclePop [dontCloseonClick]=\"true\">\r\n <div class=\"vc-business-cycle-popover-container\">\r\n <div\r\n class=\"vc-business-cycle-popover-container-top vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n >\r\n <p class=\"vx-fs-11 vx-fw-400 vx-label-txt vx-p-0 vx-m-0\">\r\n You can select upto a max of two consecutive years\r\n </p>\r\n </div>\r\n <div class=\"vc-business-cycle-popover-container-body\">\r\n <ul class=\"vx-p-0 vx-m-0\">\r\n <ng-container\r\n *ngFor=\"let eachCycle of businessCycleList; let i = index\"\r\n >\r\n <li\r\n *ngIf=\"\r\n eachCycle?.business_cycle?.toLowerCase() ===\r\n 'show future due dates'\r\n \"\r\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n [class.future-cycle]=\"true\"\r\n >\r\n <app-cs-checkbox\r\n [ngValue]=\"
|
|
273
|
+
args: [{ selector: 'vc-business-cycle', template: "<div\r\n class=\"vc-business-cycle vx-pt-2 vx-pb-2\"\r\n appPopover\r\n (click)=\"businessCyclePop.popover()\"\r\n position=\"left\"\r\n>\r\n <div class=\"heading vx-fs-9 vx-tt-uppercase vx-mb-1 vx-lh-3\">\r\n SHOWING DATA {{ cycleToShow === \"Show Future Due Dates\" ? \"For\" : \"From\" }}\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-between vx-lh-4\">\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <i class=\"icons calendar vx-fs-12 vx-mr-2\"></i>\r\n <span class=\"vx-fs-11 vx-txt-white vx-d-inline-block\">{{\r\n cycleToShow === \"Show Future Due Dates\"\r\n ? \"Future Due Dates\"\r\n : cycleToShow\r\n }}</span>\r\n </div>\r\n <i class=\"icons arrow vx-fs-10 vx-mr-2\"></i>\r\n </div>\r\n</div>\r\n\r\n<vui-popover #businessCyclePop [dontCloseonClick]=\"true\">\r\n <div class=\"vc-business-cycle-popover-container\">\r\n <div\r\n class=\"vc-business-cycle-popover-container-top vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n >\r\n <p class=\"vx-fs-11 vx-fw-400 vx-label-txt vx-p-0 vx-m-0\">\r\n You can select upto a max of two consecutive years\r\n </p>\r\n </div>\r\n <div class=\"vc-business-cycle-popover-container-body\">\r\n <ul class=\"vx-p-0 vx-m-0\">\r\n <ng-container\r\n *ngFor=\"let eachCycle of businessCycleList; let i = index\"\r\n >\r\n <li\r\n *ngIf=\"\r\n eachCycle?.business_cycle?.toLowerCase() ===\r\n 'show future due dates'\r\n \"\r\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n [class.future-cycle]=\"true\"\r\n >\r\n <app-cs-checkbox\r\n [ngValue]=\"isSelectedCycle(tempSelectedCycle, eachCycle)\"\r\n (ngValueChange)=\"selectCycle(eachCycle, i)\"\r\n [disabled]=\"eachCycle?.isDisabled\"\r\n >Show Future Due Dates</app-cs-checkbox\r\n >\r\n <i\r\n class=\"icons info-icon vx-fs-12\"\r\n [arTooltip]=\"\r\n 'This option lets you view data that lies outside the current business cycle and are due in the future.'\r\n \"\r\n placement=\"bottom\"\r\n type=\"black\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n ></i\r\n >\r\n </li>\r\n <li\r\n *ngIf=\"\r\n eachCycle?.business_cycle?.toLowerCase() !==\r\n 'show future due dates'\r\n \"\r\n class=\"vx-d-flex vx-align-center vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3\"\r\n >\r\n <app-cs-checkbox\r\n [ngValue]=\"isSelectedCycle(tempSelectedCycle, eachCycle)\"\r\n (ngValueChange)=\"selectCycle(eachCycle, i)\"\r\n [disabled]=\"eachCycle?.isDisabled\"\r\n >{{ eachCycle?.start_date | dateFormat }} -\r\n <ng-container>\r\n {{ eachCycle?.end_date | dateFormat }}</ng-container\r\n >\r\n </app-cs-checkbox>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <div\r\n class=\"vc-business-cycle-popover-container-footer vx-d-flex vx-justify-between vx-p-3\"\r\n >\r\n <button\r\n (click)=\"businessCyclePop.closePopover('top')\"\r\n class=\"white vx-fs-11 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-tt-uppercase vx-p-0 vx-m-0 vx-txt-blue\"\r\n >\r\n CANCEL\r\n </button>\r\n <button\r\n (click)=\"setBusinessCycle(); businessCyclePop.closePopover('top')\"\r\n [class.disabled]=\"false\"\r\n class=\"blue vx-fs-11 vx-fw-500 vx-d-flex vx-align-center vx-justify-center vx-tt-uppercase vx-p-0 vx-m-0 vx-txt-white\"\r\n >\r\n APPLY\r\n </button>\r\n </div>\r\n </div>\r\n</vui-popover>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";::ng-deep .vc-business-cycle{position:relative;width:12.5rem;height:3rem;cursor:pointer;z-index:1}::ng-deep .vc-business-cycle .heading{color:#e3e3e9}::ng-deep .vc-business-cycle i.calendar{color:#e3e3e9}::ng-deep .vc-business-cycle i.arrow{color:#f1f1f1}::ng-deep .vc-business-cycle-popover-container{width:15.625rem;background:#fff;box-shadow:0 4px 8px #1e5dd326;border:1px solid #e3e3e9;border-radius:.25rem;z-index:4}::ng-deep .vc-business-cycle-popover-container-top{background:#f8f8f8}::ng-deep .vc-business-cycle-popover-container-top p{line-height:.875rem}::ng-deep .vc-business-cycle-popover-container-body{background:#fff}::ng-deep .vc-business-cycle-popover-container-body ul li{list-style:none;margin:0;position:relative}::ng-deep .vc-business-cycle-popover-container-body ul li:before{background:#f1f1f1;content:\"\";position:absolute;left:.75rem;right:.75rem;bottom:0;height:.0625rem;width:calc(100% - 1.5rem)}::ng-deep .vc-business-cycle-popover-container-body ul li:last-of-type:before{display:none}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle{background:#fadd8a}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle:before{display:none}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle app-cs-checkbox label.checkbox-item span.checkbox{background:#fff}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle app-cs-checkbox label.checkbox-item span.value i{margin-left:.375rem}::ng-deep .vc-business-cycle-popover-container-body ul li.future-cycle .info-icon{margin-left:.375rem;cursor:context-menu}::ng-deep .vc-business-cycle-popover-container-body ul li app-cs-checkbox{display:flex}::ng-deep .vc-business-cycle-popover-container-body ul li app-cs-checkbox label.checkbox-item span.value{font-size:12px!important;color:#161b2f!important;max-width:100%!important}::ng-deep .vc-business-cycle-popover-container-footer{background:#f8f8f8;border-radius:0 0 .25rem .25rem}::ng-deep .vc-business-cycle-popover-container-footer button{width:calc(50% - .125rem);height:1.5rem;border:1px solid transparent;text-transform:uppercase;border-radius:.125rem;line-height:1.375rem}::ng-deep .vc-business-cycle-popover-container-footer button.white{background:#fff;border-color:#dbdbdb}::ng-deep .vc-business-cycle-popover-container-footer button.blue{background:#1e5dd3;border-color:#1e5dd3}::ng-deep .vc-business-cycle-popover-container-footer button.disabled{background:#dbdbdb;color:#747576;border:none;pointer-events:none!important}\n"] }]
|
|
274
274
|
}], ctorParameters: function () { return [{ type: i1.AuthorizerService }, { type: i2.BusinessCycleService }, { type: i3.ApiService }]; }, propDecorators: { businessCycleChange: [{
|
|
275
275
|
type: Output
|
|
276
276
|
}], orgDetails: [{
|
|
277
277
|
type: Input
|
|
278
278
|
}] } });
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvYnVzaW5lc3MtY3ljbGUvYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvYnVzaW5lc3MtY3ljbGUvYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFVL0UsTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxZQUNVLFdBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxVQUFzQjtRQUZ0QixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBaEJoQyxnQkFBVyxHQUFXLGdCQUFnQixDQUFDO1FBQ3ZDLHFCQUFnQixHQUFrQixFQUFFLENBQUM7UUFDckMsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLHlCQUFvQixHQUFrQixFQUFFLENBQUM7UUFDekMsb0JBQWUsR0FBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyx1QkFBa0IsR0FBZSxFQUFFLENBQUM7UUFFcEMsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFFVix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBUWpELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7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QUMsU0FBUyxDQUNoQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQ3JDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUNoQyxDQUFDO2FBQ0w7U0FDRjtJQUNILENBQUM7K0dBbFJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHdKQ1ZuQyxxNkhBcUdBOzs0RkQzRmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjtvS0FlbkIsbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhvcml6ZXJTZXJ2aWNlIH0gZnJvbSAnQHZjb21wbHkvYXV0aG9yaXplcic7XHJcbmltcG9ydCB7IEJ1c2luZXNzQ3ljbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2J1c2luZXNzLWN5Y2xlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmMtYnVzaW5lc3MtY3ljbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXNpbmVzcy1jeWNsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1c2luZXNzQ3ljbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGN5Y2xlVG9TaG93OiBzdHJpbmcgPSAnQnVzaW5lc3MgQ3ljbGUnO1xyXG4gIGJ1c2luZXNzQ3ljbGVBcnI6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICBoaWRkZW5DeWNsZTogQXJyYXk8bnVtYmVyPiA9IFtdO1xyXG4gIHRlbXBCdXNpbmVzc0N5Y2xlQXJyOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgdGVtcEhpZGRlbkN5Y2xlOiBBcnJheTxudW1iZXI+ID0gWzBdO1xyXG4gIGJ1c2luZXNzQ3ljbGVzTGlzdDogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGJ1c2luZXNzQ3ljbGVMaXN0ITogQXJyYXk8YW55PjtcclxuICB0ZW1wU2VsZWN0ZWRDeWNsZTogYW55W10gPSBbXTtcclxuICB1c2VySWQ6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkQnVzaW5lc3NDeWNsZSE6IGFueTtcclxuICBAT3V0cHV0KCkgYnVzaW5lc3NDeWNsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgb3JnRGV0YWlsczogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aG9yaXplclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJ1c2luZXNzQ3ljbGVTZXJ2aWNlOiBCdXNpbmVzc0N5Y2xlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy51c2VySWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE1lbWJlcklkKCkgPz8gJyc7XHJcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVTZXJ2aWNlLmlzQnVzaW5lc3NDeWNsZUF2YWlsYWJsZSgpO1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZEJ1c2luZXNzQ3ljbGUoKTtcclxuICAgIHRoaXMuZ2V0T3JnRGV0YWlscygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICBnZXRPcmdEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLm9yZ2FuaXphdGlvbkRldGFpbCQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnb3JnIERldGFpbHMnLCByZXMpO1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5zZXRCdXNpbmVzc0N5Y2xlS2V5KHJlcy5idXNpbmVzc19jeWNsZXNfYXJyKTtcclxuICAgICAgICB0aGlzLnNldEJ1c2luZXNzQ3ljbGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZEJ1c2luZXNzQ3ljbGUoKSB7XHJcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVTZXJ2aWNlLnNlbGVjdGVkQnVzaW5lc3NDeWNsZSQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3JlcyA9PT4nLCByZXMpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRCdXNpbmVzc0N5Y2xlID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0VGVtcFNlbGVjdGVkQ3ljbGUocmVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogaXQgd2lsbCBzZXQgYSBuZXcga2V5IGluIGV2ZXJ5IGN5Y2xlXHJcbiAgICoga2V5IHdpbGwgdXNlIGZvciBkaXNhYmxlZCBvciBlbmFibGUgdGhlIGN5Y2xlIGZyb20gYnVzaW5lc3MgY3ljbGUgbGlzdC5cclxuICAgKiBAcGFyYW0gYnVzaW5lc3NDeWNsZSB0aGlzIHRoZSBidXNpbmVzcyBjeWNsZSBsaXN0XHJcbiAgICovXHJcbiAgc2V0QnVzaW5lc3NDeWNsZUtleShidXNpbmVzc0N5Y2xlOiBhbnkpIHtcclxuICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QgPSBidXNpbmVzc0N5Y2xlO1xyXG4gICAgaWYgKHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QubGVuZ3RoKVxyXG4gICAgICB0aGlzLmJ1c2luZXNzQ3ljbGVMaXN0Lm1hcCgoY3ljbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGN5Y2xlWydpc0Rpc2FibGVkJ10gPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogaXQgd2lsbCBjaGVjayB0aGUgY3ljbGUgaWYgaXQgaXMgbm90IGNoZWNrZWQuXHJcbiAgICogaWYgaXQgaGFzIGNoZWNrZWQgdGhlbiBpdCB3aWxsIHVuY2hlY2sgdGhhdCBjeWNsZS5cclxuICAgKiBAcGFyYW0gY3ljbGUgY2hlY2tlZCBvciB1bmNoZWNrZWQgY3ljbGUgZnJvbSBidXNpbmVzcyBjeWNsZSBsaXN0LlxyXG4gICAqIEBwYXJhbSBpbmRleCBpdCBnaXZlIHRoZSBpbmRleCB2YWx1ZSBvZiBidXNpbmVzcyBjeWNsZSBsaXN0IHdoaWNoIGlzIHNlbGVjdGVkLlxyXG4gICAqL1xyXG4gIHNlbGVjdEN5Y2xlKGN5Y2xlOiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGlzRXhpc3QgPSB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLmZpbmRJbmRleChcclxuICAgICAgKGVsOiBhbnkpID0+IGVsLnN0YXJ0X2RhdGUgPT0gY3ljbGUuc3RhcnRfZGF0ZVxyXG4gICAgKTtcclxuICAgIGlmIChpc0V4aXN0ID49IDApIHtcclxuICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5zcGxpY2UoaXNFeGlzdCwgMSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLnB1c2goY3ljbGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QuZmluZEluZGV4KFxyXG4gICAgICAgIChlbDogYW55KSA9PiBlbC5zdGFydF9kYXRlID09IHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LnN0YXJ0X2RhdGVcclxuICAgICAgKTtcclxuICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBpbmRleCkge1xyXG4gICAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGUudW5zaGlmdChjeWNsZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5wdXNoKGN5Y2xlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRDeWNsZUVuYWJsZURpc2FibGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIG5lZWQgdG8gY2hlY2sgY3ljbGUgaW5jbHVkZXMgaW4gc2VsZWN0ZWQgY3ljbGUgYXJyYXlcclxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgc2VsZWN0ZWQgY3ljbGUgaXNcclxuICAgKiBAcGFyYW0gc2VsZWN0ZWRDeWNsZSBzZWxlY3RlZCBDeWNsZSB3aGljaCB1c2VyIGNoZWNrZWQgb3IgYXV0byBzZWxlY3RlZCBjeWNsZS5cclxuICAgKiBAcGFyYW0gY3ljbGUgYWxsIGluZGl2aXNpYmxlIGN5Y2xlIG9mIGJ1c2luZXNzIGN5Y2xlIG9mIHRoZSBvcmdhbml6YXRpb24uXHJcbiAgICogQHJldHVybnMgYm9vbGVhbiB2YWx1ZSBpcyBjeWNsZSBleGlzdCBpbiBzZWxlY3RlZCBjeWNsZSBvciBub3QuXHJcbiAgICovXHJcblxyXG4gIGlzU2VsZWN0ZWRDeWNsZShzZWxlY3RlZEN5Y2xlOiBhbnksIGN5Y2xlOiBhbnkpIHtcclxuICAgIGxldCBpc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZEN5Y2xlLmZvckVhY2goKGVsOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICBpZiAoZWwuc3RhcnRfZGF0ZSA9PSBjeWNsZS5zdGFydF9kYXRlKSB7XHJcbiAgICAgICAgaXNTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGlzU2VsZWN0ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBzZXQgc2VsZWN0ZWQgYnVzaW5lc3NDeWNsZSB0byB0ZW1wIGJ1c2luZXNzIGN5Y2xlIGluZGl2aXNpYmxlIGlmIHRoZXJlIGlzIHR3byBzZWxlY3RlZCBjeWNsZVxyXG4gICAqIFNldHMgdGVtcCBzZWxlY3RlZCBjeWNsZVxyXG4gICAqIEBwYXJhbSBjeWNsZSBzZWxlY3RlZCBidXNpbmVzcyBjeWNsZSBmcm9tIGxvY2FsIHN0b3JhZ2VcclxuICAgKi9cclxuICBzZXRUZW1wU2VsZWN0ZWRDeWNsZShjeWNsZTogYW55KSB7XHJcbiAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlID0gW107XHJcbiAgICBpZiAoY3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2Fycj8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGUucHVzaChjeWNsZSk7XHJcbiAgICAgIHRoaXMuc2V0Q3ljbGVUb1Nob3coY3ljbGUpO1xyXG4gICAgICAvLyB0aGlzLmN5Y2xlVG9TaG93ID0gY3ljbGUuYnVzaW5lc3NfY3ljbGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyPy5mb3JFYWNoKChlbDogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgICAgIHN0YXJ0X2RhdGU6IGVsLnN1YnN0cmluZygwLCAxMCksXHJcbiAgICAgICAgICBlbmRfZGF0ZTogZWwuc3Vic3RyaW5nKGVsPy5sZW5ndGggLSAxMCwgZWw/LmxlbnRoKSxcclxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxyXG4gICAgICAgICAgYnVzaW5lc3NfY3ljbGU6IGN5Y2xlPy5idXNpbmVzc19jeWNsZVtpXSxcclxuICAgICAgICAgIHNlbGVjdGVkX2N5Y2xlOiBjeWNsZT8uc2VsZWN0ZWRfY3ljbGVbaV0sXHJcbiAgICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IFtlbF0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLnB1c2gocGF5bG9hZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldEN5Y2xlVG9TaG93KGN5Y2xlKTtcclxuICAgICAgLy8gdGhpcy5jeWNsZVRvU2hvdyA9IGN5Y2xlPy5idXNpbmVzc19jeWNsZVswXT8uc3Vic3RyaW5nKDAsMTEpICsgXCIgLSBcIiArIGN5Y2xlPy5idXNpbmVzc19jeWNsZVsxXS5zdWJzdHJpbmcoY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdPy5sZW5ndGgtMTEsIGN5Y2xlPy5idXNpbmVzc19jeWNsZVsxXT8ubGVudGgpO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5zZXRDeWNsZVRvU2hvdyhjeWNsZSk7XHJcbiAgICB0aGlzLnNldEN5Y2xlRW5hYmxlRGlzYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqICB3aGVuIHVzZXIgc2VsZWN0IG9uZSBjeWNsZSB0aGVuIHRoZWlyIGJlc2lkZXMgY3ljbGVzIGFyZSBlbmFibGUgYW5kIG90aGVyIGFyZSBkaXNhYmxlZC5cclxuICAgKiAgaWYgdXNlciBzZWxlY3QgdHdvIGN5Y2xlcyB0aGVuIGFsbCB0aGUgY3ljbGVzIGdldCBkaXNhYmxlZCBleGNlcHQgc2VsZWN0ZWQgY3ljbGVzLlxyXG4gICAqXHJcbiAgICogIEluIGJ1c2luZXNzQ3ljbGVMaXN0IGFycmF5IHdlIHNldCBhIGlzRGlzYWJsZWQga2V5LCB3ZSBhcmUgc2V0IGl0IHRydWUgd2hlbiBuZWVkIHRvIGRpc2FibGVkIHRoZSBjeWNsZS5cclxuICAgKi9cclxuICBzZXRDeWNsZUVuYWJsZURpc2FibGUoKSB7XHJcbiAgICBpZiAoIXRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5idXNpbmVzc0N5Y2xlTGlzdD8ubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QubWFwKChjeWNsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBjeWNsZVsnaXNEaXNhYmxlZCddID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuYnVzaW5lc3NDeWNsZUxpc3Q/LmZpbmRJbmRleChcclxuICAgICAgICAoZWw6IGFueSkgPT4gZWwuc3RhcnRfZGF0ZSA9PSB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdLnN0YXJ0X2RhdGVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5idXNpbmVzc0N5Y2xlTGlzdD8uZm9yRWFjaCgoY3ljbGU6IGFueSwgaTogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4IC0gMSA9PT0gaSB8fCBpbmRleCA9PT0gaSB8fCBpbmRleCArIDEgPT09IGkpIHtcclxuICAgICAgICAgIGN5Y2xlLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY3ljbGUuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QuZm9yRWFjaCgoY3ljbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBpc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLmZvckVhY2goKGVsOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjeWNsZS5zdGFydF9kYXRlID09IGVsLnN0YXJ0X2RhdGUpIHtcclxuICAgICAgICAgICAgaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGN5Y2xlLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKiAgV2hlbiB1c2VyIGNsaWNrIGFwcGx5IHRoZW4gc2VsZWN0ZWQgY3ljbGUgaXMgc2V0IGluIGxvY2FsIHN0b3JhZ2UuXHJcbiAgICpcclxuICAgKi9cclxuICBzZXRCdXNpbmVzc0N5Y2xlKCkge1xyXG4gICAgbGV0IGJ1c2luZXNzQ3ljbGVPYmplY3Q6IGFueSA9IHt9O1xyXG4gICAgaWYgKHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBidXNpbmVzc0N5Y2xlT2JqZWN0ID0ge1xyXG4gICAgICAgIHVzZXJJZDogdGhpcy51c2VySWQsXHJcbiAgICAgICAgc2VsZWN0ZWRDeWNsZToge1xyXG4gICAgICAgICAgc3RhcnRfZGF0ZTogdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVswXT8uc3RhcnRfZGF0ZSxcclxuICAgICAgICAgIGVuZF9kYXRlOiB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdPy5lbmRfZGF0ZSxcclxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxyXG4gICAgICAgICAgYnVzaW5lc3NfY3ljbGU6IHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LmJ1c2luZXNzX2N5Y2xlLFxyXG4gICAgICAgICAgc2VsZWN0ZWRfY3ljbGU6XHJcbiAgICAgICAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LnN0YXJ0X2RhdGUgK1xyXG4gICAgICAgICAgICAnLScgK1xyXG4gICAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdPy5lbmRfZGF0ZSxcclxuICAgICAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogW1xyXG4gICAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdPy5zdGFydF9kYXRlICtcclxuICAgICAgICAgICAgICAnLScgK1xyXG4gICAgICAgICAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LmVuZF9kYXRlLFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldEN5Y2xlVG9TaG93KGJ1c2luZXNzQ3ljbGVPYmplY3Q/LnNlbGVjdGVkQ3ljbGUpO1xyXG4gICAgICAvLyB0aGlzLmN5Y2xlVG9TaG93ID0gdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVswXT8uYnVzaW5lc3NfY3ljbGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgYnVzaW5lc3NfY3ljbGU6IGFueSA9IFtdO1xyXG4gICAgICBsZXQgc2VsZWN0ZWRfY3ljbGVfYXJyOiBhbnkgPSBbXTtcclxuICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZT8uZm9yRWFjaCgoZWw6IGFueSkgPT4ge1xyXG4gICAgICAgIGJ1c2luZXNzX2N5Y2xlLnB1c2goZWw/LmJ1c2luZXNzX2N5Y2xlKTtcclxuICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnIucHVzaChlbD8uc3RhcnRfZGF0ZSArICctJyArIGVsPy5lbmRfZGF0ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBidXNpbmVzc0N5Y2xlT2JqZWN0ID0ge1xyXG4gICAgICAgIHVzZXJJZDogdGhpcy51c2VySWQsXHJcbiAgICAgICAgc2VsZWN0ZWRDeWNsZToge1xyXG4gICAgICAgICAgc3RhcnRfZGF0ZTogdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVswXT8uc3RhcnRfZGF0ZSxcclxuICAgICAgICAgIGVuZF9kYXRlOiB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzFdPy5lbmRfZGF0ZSxcclxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxyXG4gICAgICAgICAgYnVzaW5lc3NfY3ljbGU6IGJ1c2luZXNzX2N5Y2xlLFxyXG4gICAgICAgICAgc2VsZWN0ZWRfY3ljbGU6XHJcbiAgICAgICAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LnN0YXJ0X2RhdGUgK1xyXG4gICAgICAgICAgICAnLScgK1xyXG4gICAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzFdPy5lbmRfZGF0ZSxcclxuICAgICAgICAgIHNlbGVjdGVkX2N5Y2xlX2Fycjogc2VsZWN0ZWRfY3ljbGVfYXJyLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc2V0Q3ljbGVUb1Nob3coYnVzaW5lc3NDeWNsZU9iamVjdD8uc2VsZWN0ZWRDeWNsZSk7XHJcbiAgICAgIC8vIHRoaXMuY3ljbGVUb1Nob3cgPSBidXNpbmVzc19jeWNsZVswXS5zdWJzdHJpbmcoMCwxMSkgKyBcIiAtIFwiICsgYnVzaW5lc3NfY3ljbGVbMV0uc3Vic3RyaW5nKGJ1c2luZXNzX2N5Y2xlWzFdPy5sZW5ndGgtMTEsIGJ1c2luZXNzX2N5Y2xlWzFdPy5sZW50aCk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnNldEN5Y2xlVG9TaG93KGJ1c2luZXNzQ3ljbGVPYmplY3Q/LnNlbGVjdGVkQ3ljbGUpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2J1c2luZXNzQ3ljbGUnLCBKU09OLnN0cmluZ2lmeShidXNpbmVzc0N5Y2xlT2JqZWN0KSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQnVzaW5lc3NDeWNsZSA9IGJ1c2luZXNzQ3ljbGVPYmplY3Q/LnNlbGVjdGVkQ3ljbGU7XHJcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkQnVzaW5lc3NDeWNsZSk7XHJcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVTZXJ2aWNlLmNoYW5nZUJ1c2luZXNzQ3ljbGUkLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogd2hlbiB1c2VyIGNsaWNrIGNhbmNlbCB0aGVuIGl0IHdpbGwgY2xvc2UgdGhlIHBvcG92ZXIuXHJcbiAgICogcmVtb3ZlIHRlbXAgdmFsdWUgZnJvbSB0ZXJtIHNlbGVjdGVkIGFycmF5IGFuZCBzZXQgdGhlIHByZXZpb3VzIHNlbGVjdGVkIGN5Y2xlIGluIGl0LlxyXG4gICAqL1xyXG4gIGNhbmNlbEJ1c2luZXNzQ3ljbGUoKSB7XHJcbiAgICB0aGlzLnNldFRlbXBTZWxlY3RlZEN5Y2xlKHRoaXMuc2VsZWN0ZWRCdXNpbmVzc0N5Y2xlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKiB0aGlzIHdpbGwgc2V0IHRoZSBzdHJpbmcgb2YgYnVzaW5lc3MgY3ljbGUgd2hpY2ggIHdpbGwgZGlzcGxheSBpbiB0aGUgaGVhZGVyLlxyXG4gICAqIEBwYXJhbSBjeWNsZSBvYmplY3Qgd2hpY2ggaXMgc2VsZWN0ZWQgYW5kIGFwcGx5LiB0aGUgc2FtZSBvYmplY3Qgd2lsbCBzdG9yZSBpbiBsb2NhbCBzdG9yYWdlLlxyXG4gICAqL1xyXG4gIHNldEN5Y2xlVG9TaG93KGN5Y2xlOiBhbnkpIHtcclxuICAgIGlmIChjeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyPy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgaWYgKGN5Y2xlPy5idXNpbmVzc19jeWNsZT8udG9Mb3dlckNhc2UoKSA9PSAnc2hvdyBmdXR1cmUgZHVlIGRhdGVzJykge1xyXG4gICAgICAgIHRoaXMuY3ljbGVUb1Nob3cgPSAnRnV0dXJlIER1ZSBEYXRlcyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jeWNsZVRvU2hvdyA9IGN5Y2xlLmJ1c2luZXNzX2N5Y2xlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgY3ljbGU/LmJ1c2luZXNzX2N5Y2xlPy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdPy50b0xvd2VyQ2FzZSgpID09ICdzaG93IGZ1dHVyZSBkdWUgZGF0ZXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY3ljbGVUb1Nob3cgPSBjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMF0/LnN1YnN0cmluZygwLCAxMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY3ljbGU/LmJ1c2luZXNzX2N5Y2xlPy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmN5Y2xlVG9TaG93ID1cclxuICAgICAgICAgIGN5Y2xlPy5idXNpbmVzc19jeWNsZVswXT8uc3Vic3RyaW5nKDAsIDExKSArXHJcbiAgICAgICAgICAnIC0gJyArXHJcbiAgICAgICAgICBjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMV0uc3Vic3RyaW5nKFxyXG4gICAgICAgICAgICBjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMV0/Lmxlbmd0aCAtIDExLFxyXG4gICAgICAgICAgICBjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMV0/LmxlbnRoXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cInZjLWJ1c2luZXNzLWN5Y2xlIHZ4LXB0LTIgdngtcGItMlwiXHJcbiAgYXBwUG9wb3ZlclxyXG4gIChjbGljayk9XCJidXNpbmVzc0N5Y2xlUG9wLnBvcG92ZXIoKVwiXHJcbiAgcG9zaXRpb249XCJsZWZ0XCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkaW5nIHZ4LWZzLTkgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTEgdngtbGgtM1wiPlxyXG4gICAgU0hPV0lORyBEQVRBIHt7IGN5Y2xlVG9TaG93ID09PSBcIlNob3cgRnV0dXJlIER1ZSBEYXRlc1wiID8gXCJGb3JcIiA6IFwiRnJvbVwiIH19XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWxoLTRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY2FsZW5kYXIgdngtZnMtMTIgdngtbXItMlwiPiYjeGU5OTY7PC9pPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXR4dC13aGl0ZSB2eC1kLWlubGluZS1ibG9ja1wiPnt7XHJcbiAgICAgICAgY3ljbGVUb1Nob3cgPT09IFwiU2hvdyBGdXR1cmUgRHVlIERhdGVzXCJcclxuICAgICAgICAgID8gXCJGdXR1cmUgRHVlIERhdGVzXCJcclxuICAgICAgICAgIDogY3ljbGVUb1Nob3dcclxuICAgICAgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpIGNsYXNzPVwiaWNvbnMgYXJyb3cgdngtZnMtMTAgdngtbXItMlwiPiYjeGU5ZTg7PC9pPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjx2dWktcG9wb3ZlciAjYnVzaW5lc3NDeWNsZVBvcCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgPGRpdiBjbGFzcz1cInZjLWJ1c2luZXNzLWN5Y2xlLXBvcG92ZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidmMtYnVzaW5lc3MtY3ljbGUtcG9wb3Zlci1jb250YWluZXItdG9wIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTNcIlxyXG4gICAgPlxyXG4gICAgICA8cCBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTQwMCB2eC1sYWJlbC10eHQgdngtcC0wIHZ4LW0tMFwiPlxyXG4gICAgICAgIFlvdSBjYW4gc2VsZWN0IHVwdG8gYSBtYXggb2YgdHdvIGNvbnNlY3V0aXZlIHllYXJzXHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZjLWJ1c2luZXNzLWN5Y2xlLXBvcG92ZXItY29udGFpbmVyLWJvZHlcIj5cclxuICAgICAgPHVsIGNsYXNzPVwidngtcC0wIHZ4LW0tMFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBlYWNoQ3ljbGUgb2YgYnVzaW5lc3NDeWNsZUxpc3Q7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGVhY2hDeWNsZT8uYnVzaW5lc3NfY3ljbGU/LnRvTG93ZXJDYXNlKCkgPT09XHJcbiAgICAgICAgICAgICAgJ3Nob3cgZnV0dXJlIGR1ZSBkYXRlcydcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTNcIlxyXG4gICAgICAgICAgICBbY2xhc3MuZnV0dXJlLWN5Y2xlXT1cInRydWVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwiYnVzaW5lc3NDeWNsZUFyci5pbmNsdWRlcyhlYWNoQ3ljbGU/LmJ1c2luZXNzX2N5Y2xlKVwiXHJcbiAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0Q3ljbGUoZWFjaEN5Y2xlLCBpKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVhY2hDeWNsZT8uaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgPlNob3cgRnV0dXJlIER1ZSBEYXRlczwvYXBwLWNzLWNoZWNrYm94XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8taWNvbiB2eC1mcy0xMlwiXHJcbiAgICAgICAgICAgICAgW2FyVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICdUaGlzIG9wdGlvbiBsZXRzIHlvdSB2aWV3IGRhdGEgdGhhdCBsaWVzIG91dHNpZGUgdGhlIGN1cnJlbnQgYnVzaW5lc3MgY3ljbGUgYW5kIGFyZSBkdWUgaW4gdGhlIGZ1dHVyZS4nXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGVhY2hDeWNsZT8uYnVzaW5lc3NfY3ljbGU/LnRvTG93ZXJDYXNlKCkgIT09XHJcbiAgICAgICAgICAgICAgJ3Nob3cgZnV0dXJlIGR1ZSBkYXRlcydcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwiYnVzaW5lc3NDeWNsZUFyci5pbmNsdWRlcyhlYWNoQ3ljbGU/LmJ1c2luZXNzX2N5Y2xlKVwiXHJcbiAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0Q3ljbGUoZWFjaEN5Y2xlLCBpKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVhY2hDeWNsZT8uaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgPnt7IGVhY2hDeWNsZT8uc3RhcnRfZGF0ZSB8IGRhdGVGb3JtYXQgfX0gLVxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICB7eyBlYWNoQ3ljbGU/LmVuZF9kYXRlIHwgZGF0ZUZvcm1hdCB9fTwvbmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ2Yy1idXNpbmVzcy1jeWNsZS1wb3BvdmVyLWNvbnRhaW5lci1mb290ZXIgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wLTNcIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKGNsaWNrKT1cImJ1c2luZXNzQ3ljbGVQb3AuY2xvc2VQb3BvdmVyKCd0b3AnKVwiXHJcbiAgICAgICAgY2xhc3M9XCJ3aGl0ZSB2eC1mcy0xMSB2eC1mdy01MDAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC10eHQtYmx1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICBDQU5DRUxcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAoY2xpY2spPVwic2V0QnVzaW5lc3NDeWNsZSgpOyBidXNpbmVzc0N5Y2xlUG9wLmNsb3NlUG9wb3ZlcigndG9wJylcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgY2xhc3M9XCJibHVlIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LXR4dC13aGl0ZVwiXHJcbiAgICAgID5cclxuICAgICAgICBBUFBMWVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3Z1aS1wb3BvdmVyPlxyXG4iXX0=
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvYnVzaW5lc3MtY3ljbGUvYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvYnVzaW5lc3MtY3ljbGUvYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFVL0UsTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxZQUNVLFdBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxVQUFzQjtRQUZ0QixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBaEJoQyxnQkFBVyxHQUFXLGdCQUFnQixDQUFDO1FBQ3ZDLHFCQUFnQixHQUFrQixFQUFFLENBQUM7UUFDckMsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLHlCQUFvQixHQUFrQixFQUFFLENBQUM7UUFDekMsb0JBQWUsR0FBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyx1QkFBa0IsR0FBZSxFQUFFLENBQUM7UUFFcEMsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFFVix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBUWpELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7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QUMsU0FBUyxDQUNoQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQ3JDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUNoQyxDQUFDO2FBQ0w7U0FDRjtJQUNILENBQUM7K0dBbFJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHdKQ1ZuQyx1NUhBcUdBOzs0RkQzRmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjtvS0FlbkIsbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhvcml6ZXJTZXJ2aWNlIH0gZnJvbSAnQHZjb21wbHkvYXV0aG9yaXplcic7XHJcbmltcG9ydCB7IEJ1c2luZXNzQ3ljbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2J1c2luZXNzLWN5Y2xlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmMtYnVzaW5lc3MtY3ljbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXNpbmVzcy1jeWNsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYnVzaW5lc3MtY3ljbGUuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1c2luZXNzQ3ljbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGN5Y2xlVG9TaG93OiBzdHJpbmcgPSAnQnVzaW5lc3MgQ3ljbGUnO1xyXG4gIGJ1c2luZXNzQ3ljbGVBcnI6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICBoaWRkZW5DeWNsZTogQXJyYXk8bnVtYmVyPiA9IFtdO1xyXG4gIHRlbXBCdXNpbmVzc0N5Y2xlQXJyOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgdGVtcEhpZGRlbkN5Y2xlOiBBcnJheTxudW1iZXI+ID0gWzBdO1xyXG4gIGJ1c2luZXNzQ3ljbGVzTGlzdDogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGJ1c2luZXNzQ3ljbGVMaXN0ITogQXJyYXk8YW55PjtcclxuICB0ZW1wU2VsZWN0ZWRDeWNsZTogYW55W10gPSBbXTtcclxuICB1c2VySWQ6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkQnVzaW5lc3NDeWNsZSE6IGFueTtcclxuICBAT3V0cHV0KCkgYnVzaW5lc3NDeWNsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgb3JnRGV0YWlsczogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aG9yaXplclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJ1c2luZXNzQ3ljbGVTZXJ2aWNlOiBCdXNpbmVzc0N5Y2xlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy51c2VySWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE1lbWJlcklkKCkgPz8gJyc7XHJcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVTZXJ2aWNlLmlzQnVzaW5lc3NDeWNsZUF2YWlsYWJsZSgpO1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZEJ1c2luZXNzQ3ljbGUoKTtcclxuICAgIHRoaXMuZ2V0T3JnRGV0YWlscygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICBnZXRPcmdEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLm9yZ2FuaXphdGlvbkRldGFpbCQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnb3JnIERldGFpbHMnLCByZXMpO1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5zZXRCdXNpbmVzc0N5Y2xlS2V5KHJlcy5idXNpbmVzc19jeWNsZXNfYXJyKTtcclxuICAgICAgICB0aGlzLnNldEJ1c2luZXNzQ3ljbGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZEJ1c2luZXNzQ3ljbGUoKSB7XHJcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGVTZXJ2aWNlLnNlbGVjdGVkQnVzaW5lc3NDeWNsZSQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3JlcyA9PT4nLCByZXMpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRCdXNpbmVzc0N5Y2xlID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0VGVtcFNlbGVjdGVkQ3ljbGUocmVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogaXQgd2lsbCBzZXQgYSBuZXcga2V5IGluIGV2ZXJ5IGN5Y2xlXHJcbiAgICoga2V5IHdpbGwgdXNlIGZvciBkaXNhYmxlZCBvciBlbmFibGUgdGhlIGN5Y2xlIGZyb20gYnVzaW5lc3MgY3ljbGUgbGlzdC5cclxuICAgKiBAcGFyYW0gYnVzaW5lc3NDeWNsZSB0aGlzIHRoZSBidXNpbmVzcyBjeWNsZSBsaXN0XHJcbiAgICovXHJcbiAgc2V0QnVzaW5lc3NDeWNsZUtleShidXNpbmVzc0N5Y2xlOiBhbnkpIHtcclxuICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QgPSBidXNpbmVzc0N5Y2xlO1xyXG4gICAgaWYgKHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QubGVuZ3RoKVxyXG4gICAgICB0aGlzLmJ1c2luZXNzQ3ljbGVMaXN0Lm1hcCgoY3ljbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGN5Y2xlWydpc0Rpc2FibGVkJ10gPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogaXQgd2lsbCBjaGVjayB0aGUgY3ljbGUgaWYgaXQgaXMgbm90IGNoZWNrZWQuXHJcbiAgICogaWYgaXQgaGFzIGNoZWNrZWQgdGhlbiBpdCB3aWxsIHVuY2hlY2sgdGhhdCBjeWNsZS5cclxuICAgKiBAcGFyYW0gY3ljbGUgY2hlY2tlZCBvciB1bmNoZWNrZWQgY3ljbGUgZnJvbSBidXNpbmVzcyBjeWNsZSBsaXN0LlxyXG4gICAqIEBwYXJhbSBpbmRleCBpdCBnaXZlIHRoZSBpbmRleCB2YWx1ZSBvZiBidXNpbmVzcyBjeWNsZSBsaXN0IHdoaWNoIGlzIHNlbGVjdGVkLlxyXG4gICAqL1xyXG4gIHNlbGVjdEN5Y2xlKGN5Y2xlOiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGlzRXhpc3QgPSB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLmZpbmRJbmRleChcclxuICAgICAgKGVsOiBhbnkpID0+IGVsLnN0YXJ0X2RhdGUgPT0gY3ljbGUuc3RhcnRfZGF0ZVxyXG4gICAgKTtcclxuICAgIGlmIChpc0V4aXN0ID49IDApIHtcclxuICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5zcGxpY2UoaXNFeGlzdCwgMSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLnB1c2goY3ljbGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QuZmluZEluZGV4KFxyXG4gICAgICAgIChlbDogYW55KSA9PiBlbC5zdGFydF9kYXRlID09IHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LnN0YXJ0X2RhdGVcclxuICAgICAgKTtcclxuICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBpbmRleCkge1xyXG4gICAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGUudW5zaGlmdChjeWNsZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5wdXNoKGN5Y2xlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRDeWNsZUVuYWJsZURpc2FibGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIG5lZWQgdG8gY2hlY2sgY3ljbGUgaW5jbHVkZXMgaW4gc2VsZWN0ZWQgY3ljbGUgYXJyYXlcclxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgc2VsZWN0ZWQgY3ljbGUgaXNcclxuICAgKiBAcGFyYW0gc2VsZWN0ZWRDeWNsZSBzZWxlY3RlZCBDeWNsZSB3aGljaCB1c2VyIGNoZWNrZWQgb3IgYXV0byBzZWxlY3RlZCBjeWNsZS5cclxuICAgKiBAcGFyYW0gY3ljbGUgYWxsIGluZGl2aXNpYmxlIGN5Y2xlIG9mIGJ1c2luZXNzIGN5Y2xlIG9mIHRoZSBvcmdhbml6YXRpb24uXHJcbiAgICogQHJldHVybnMgYm9vbGVhbiB2YWx1ZSBpcyBjeWNsZSBleGlzdCBpbiBzZWxlY3RlZCBjeWNsZSBvciBub3QuXHJcbiAgICovXHJcblxyXG4gIGlzU2VsZWN0ZWRDeWNsZShzZWxlY3RlZEN5Y2xlOiBhbnksIGN5Y2xlOiBhbnkpIHtcclxuICAgIGxldCBpc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZEN5Y2xlLmZvckVhY2goKGVsOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICBpZiAoZWwuc3RhcnRfZGF0ZSA9PSBjeWNsZS5zdGFydF9kYXRlKSB7XHJcbiAgICAgICAgaXNTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGlzU2VsZWN0ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBzZXQgc2VsZWN0ZWQgYnVzaW5lc3NDeWNsZSB0byB0ZW1wIGJ1c2luZXNzIGN5Y2xlIGluZGl2aXNpYmxlIGlmIHRoZXJlIGlzIHR3byBzZWxlY3RlZCBjeWNsZVxyXG4gICAqIFNldHMgdGVtcCBzZWxlY3RlZCBjeWNsZVxyXG4gICAqIEBwYXJhbSBjeWNsZSBzZWxlY3RlZCBidXNpbmVzcyBjeWNsZSBmcm9tIGxvY2FsIHN0b3JhZ2VcclxuICAgKi9cclxuICBzZXRUZW1wU2VsZWN0ZWRDeWNsZShjeWNsZTogYW55KSB7XHJcbiAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlID0gW107XHJcbiAgICBpZiAoY3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2Fycj8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGUucHVzaChjeWNsZSk7XHJcbiAgICAgIHRoaXMuc2V0Q3ljbGVUb1Nob3coY3ljbGUpO1xyXG4gICAgICAvLyB0aGlzLmN5Y2xlVG9TaG93ID0gY3ljbGUuYnVzaW5lc3NfY3ljbGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyPy5mb3JFYWNoKChlbDogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgICAgIHN0YXJ0X2RhdGU6IGVsLnN1YnN0cmluZygwLCAxMCksXHJcbiAgICAgICAgICBlbmRfZGF0ZTogZWwuc3Vic3RyaW5nKGVsPy5sZW5ndGggLSAxMCwgZWw/LmxlbnRoKSxcclxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxyXG4gICAgICAgICAgYnVzaW5lc3NfY3ljbGU6IGN5Y2xlPy5idXNpbmVzc19jeWNsZVtpXSxcclxuICAgICAgICAgIHNlbGVjdGVkX2N5Y2xlOiBjeWNsZT8uc2VsZWN0ZWRfY3ljbGVbaV0sXHJcbiAgICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IFtlbF0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlLnB1c2gocGF5bG9hZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldEN5Y2xlVG9TaG93KGN5Y2xlKTtcclxuICAgICAgLy8gdGhpcy5jeWNsZVRvU2hvdyA9IGN5Y2xlPy5idXNpbmVzc19jeWNsZVswXT8uc3Vic3RyaW5nKDAsMTEpICsgXCIgLSBcIiArIGN5Y2xlPy5idXNpbmVzc19jeWNsZVsxXS5zdWJzdHJpbmcoY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdPy5sZW5ndGgtMTEsIGN5Y2xlPy5idXNpbmVzc19jeWNsZVsxXT8ubGVudGgpO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5zZXRDeWNsZVRvU2hvdyhjeWNsZSk7XHJcbiAgICB0aGlzLnNldEN5Y2xlRW5hYmxlRGlzYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqICB3aGVuIHVzZXIgc2VsZWN0IG9uZSBjeWNsZSB0aGVuIHRoZWlyIGJlc2lkZXMgY3ljbGVzIGFyZSBlbmFibGUgYW5kIG90aGVyIGFyZSBkaXNhYmxlZC5cclxuICAgKiAgaWYgdXNlciBzZWxlY3QgdHdvIGN5Y2xlcyB0aGVuIGFsbCB0aGUgY3ljbGVzIGdldCBkaXNhYmxlZCBleGNlcHQgc2VsZWN0ZWQgY3ljbGVzLlxyXG4gICAqXHJcbiAgICogIEluIGJ1c2luZXNzQ3ljbGVMaXN0IGFycmF5IHdlIHNldCBhIGlzRGlzYWJsZWQga2V5LCB3ZSBhcmUgc2V0IGl0IHRydWUgd2hlbiBuZWVkIHRvIGRpc2FibGVkIHRoZSBjeWNsZS5cclxuICAgKi9cclxuICBzZXRDeWNsZUVuYWJsZURpc2FibGUoKSB7XHJcbiAgICBpZiAoIXRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5idXNpbmVzc0N5Y2xlTGlzdD8ubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3QubWFwKChjeWNsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBjeWNsZVsnaXNEaXNhYmxlZCddID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuYnVzaW5lc3NDeWNsZUxpc3Q/LmZpbmRJbmRleChcclxuICAgICAgICAoZWw6IGFueSkgPT4gZWwuc3RhcnRfZGF0ZSA9PSB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdLnN0YXJ0X2RhdGVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5idXNpbmVzc0N5Y2xlTGlzdD8uZm9yRWFjaCgoY3ljbGU6IGFueSwgaTogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4IC0gMSA9PT0gaSB8fCBpbmRleCA9PT0gaSB8fCBpbmRleCArIDEgPT09IGkpIHtcclxuICAgICAgICAgIGN5Y2xlLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY3ljbGUuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZUxpc3Q/LmZvckVhY2goKGN5Y2xlOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZS5mb3JFYWNoKChlbDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY3ljbGUuc3RhcnRfZGF0ZSA9PSBlbC5zdGFydF9kYXRlKSB7XHJcbiAgICAgICAgICAgIGlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBjeWNsZS5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogIFdoZW4gdXNlciBjbGljayBhcHBseSB0aGVuIHNlbGVjdGVkIGN5Y2xlIGlzIHNldCBpbiBsb2NhbCBzdG9yYWdlLlxyXG4gICAqXHJcbiAgICovXHJcbiAgc2V0QnVzaW5lc3NDeWNsZSgpIHtcclxuICAgIGxldCBidXNpbmVzc0N5Y2xlT2JqZWN0OiBhbnkgPSB7fTtcclxuICAgIGlmICh0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlPy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgYnVzaW5lc3NDeWNsZU9iamVjdCA9IHtcclxuICAgICAgICB1c2VySWQ6IHRoaXMudXNlcklkLFxyXG4gICAgICAgIHNlbGVjdGVkQ3ljbGU6IHtcclxuICAgICAgICAgIHN0YXJ0X2RhdGU6IHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LnN0YXJ0X2RhdGUsXHJcbiAgICAgICAgICBlbmRfZGF0ZTogdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVswXT8uZW5kX2RhdGUsXHJcbiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgICAgIGJ1c2luZXNzX2N5Y2xlOiB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdPy5idXNpbmVzc19jeWNsZSxcclxuICAgICAgICAgIHNlbGVjdGVkX2N5Y2xlOlxyXG4gICAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdPy5zdGFydF9kYXRlICtcclxuICAgICAgICAgICAgJy0nICtcclxuICAgICAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVswXT8uZW5kX2RhdGUsXHJcbiAgICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IFtcclxuICAgICAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVswXT8uc3RhcnRfZGF0ZSArXHJcbiAgICAgICAgICAgICAgJy0nICtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdPy5lbmRfZGF0ZSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZXRDeWNsZVRvU2hvdyhidXNpbmVzc0N5Y2xlT2JqZWN0Py5zZWxlY3RlZEN5Y2xlKTtcclxuICAgICAgLy8gdGhpcy5jeWNsZVRvU2hvdyA9IHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LmJ1c2luZXNzX2N5Y2xlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGJ1c2luZXNzX2N5Y2xlOiBhbnkgPSBbXTtcclxuICAgICAgbGV0IHNlbGVjdGVkX2N5Y2xlX2FycjogYW55ID0gW107XHJcbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkQ3ljbGU/LmZvckVhY2goKGVsOiBhbnkpID0+IHtcclxuICAgICAgICBidXNpbmVzc19jeWNsZS5wdXNoKGVsPy5idXNpbmVzc19jeWNsZSk7XHJcbiAgICAgICAgc2VsZWN0ZWRfY3ljbGVfYXJyLnB1c2goZWw/LnN0YXJ0X2RhdGUgKyAnLScgKyBlbD8uZW5kX2RhdGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgYnVzaW5lc3NDeWNsZU9iamVjdCA9IHtcclxuICAgICAgICB1c2VySWQ6IHRoaXMudXNlcklkLFxyXG4gICAgICAgIHNlbGVjdGVkQ3ljbGU6IHtcclxuICAgICAgICAgIHN0YXJ0X2RhdGU6IHRoaXMudGVtcFNlbGVjdGVkQ3ljbGVbMF0/LnN0YXJ0X2RhdGUsXHJcbiAgICAgICAgICBlbmRfZGF0ZTogdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVsxXT8uZW5kX2RhdGUsXHJcbiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgICAgIGJ1c2luZXNzX2N5Y2xlOiBidXNpbmVzc19jeWNsZSxcclxuICAgICAgICAgIHNlbGVjdGVkX2N5Y2xlOlxyXG4gICAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZEN5Y2xlWzBdPy5zdGFydF9kYXRlICtcclxuICAgICAgICAgICAgJy0nICtcclxuICAgICAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRDeWNsZVsxXT8uZW5kX2RhdGUsXHJcbiAgICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IHNlbGVjdGVkX2N5Y2xlX2FycixcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldEN5Y2xlVG9TaG93KGJ1c2luZXNzQ3ljbGVPYmplY3Q/LnNlbGVjdGVkQ3ljbGUpO1xyXG4gICAgICAvLyB0aGlzLmN5Y2xlVG9TaG93ID0gYnVzaW5lc3NfY3ljbGVbMF0uc3Vic3RyaW5nKDAsMTEpICsgXCIgLSBcIiArIGJ1c2luZXNzX2N5Y2xlWzFdLnN1YnN0cmluZyhidXNpbmVzc19jeWNsZVsxXT8ubGVuZ3RoLTExLCBidXNpbmVzc19jeWNsZVsxXT8ubGVudGgpO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5zZXRDeWNsZVRvU2hvdyhidXNpbmVzc0N5Y2xlT2JqZWN0Py5zZWxlY3RlZEN5Y2xlKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdidXNpbmVzc0N5Y2xlJywgSlNPTi5zdHJpbmdpZnkoYnVzaW5lc3NDeWNsZU9iamVjdCkpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEJ1c2luZXNzQ3ljbGUgPSBidXNpbmVzc0N5Y2xlT2JqZWN0Py5zZWxlY3RlZEN5Y2xlO1xyXG4gICAgdGhpcy5idXNpbmVzc0N5Y2xlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEJ1c2luZXNzQ3ljbGUpO1xyXG4gICAgdGhpcy5idXNpbmVzc0N5Y2xlU2VydmljZS5jaGFuZ2VCdXNpbmVzc0N5Y2xlJC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIHdoZW4gdXNlciBjbGljayBjYW5jZWwgdGhlbiBpdCB3aWxsIGNsb3NlIHRoZSBwb3BvdmVyLlxyXG4gICAqIHJlbW92ZSB0ZW1wIHZhbHVlIGZyb20gdGVybSBzZWxlY3RlZCBhcnJheSBhbmQgc2V0IHRoZSBwcmV2aW91cyBzZWxlY3RlZCBjeWNsZSBpbiBpdC5cclxuICAgKi9cclxuICBjYW5jZWxCdXNpbmVzc0N5Y2xlKCkge1xyXG4gICAgdGhpcy5zZXRUZW1wU2VsZWN0ZWRDeWNsZSh0aGlzLnNlbGVjdGVkQnVzaW5lc3NDeWNsZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogdGhpcyB3aWxsIHNldCB0aGUgc3RyaW5nIG9mIGJ1c2luZXNzIGN5Y2xlIHdoaWNoICB3aWxsIGRpc3BsYXkgaW4gdGhlIGhlYWRlci5cclxuICAgKiBAcGFyYW0gY3ljbGUgb2JqZWN0IHdoaWNoIGlzIHNlbGVjdGVkIGFuZCBhcHBseS4gdGhlIHNhbWUgb2JqZWN0IHdpbGwgc3RvcmUgaW4gbG9jYWwgc3RvcmFnZS5cclxuICAgKi9cclxuICBzZXRDeWNsZVRvU2hvdyhjeWNsZTogYW55KSB7XHJcbiAgICBpZiAoY3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2Fycj8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIGlmIChjeWNsZT8uYnVzaW5lc3NfY3ljbGU/LnRvTG93ZXJDYXNlKCkgPT0gJ3Nob3cgZnV0dXJlIGR1ZSBkYXRlcycpIHtcclxuICAgICAgICB0aGlzLmN5Y2xlVG9TaG93ID0gJ0Z1dHVyZSBEdWUgRGF0ZXMnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3ljbGVUb1Nob3cgPSBjeWNsZS5idXNpbmVzc19jeWNsZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGN5Y2xlPy5idXNpbmVzc19jeWNsZT8ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgIGN5Y2xlPy5idXNpbmVzc19jeWNsZVsxXT8udG9Mb3dlckNhc2UoKSA9PSAnc2hvdyBmdXR1cmUgZHVlIGRhdGVzJ1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmN5Y2xlVG9TaG93ID0gY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzBdPy5zdWJzdHJpbmcoMCwgMTEpO1xyXG4gICAgICB9IGVsc2UgaWYgKGN5Y2xlPy5idXNpbmVzc19jeWNsZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5jeWNsZVRvU2hvdyA9XHJcbiAgICAgICAgICBjeWNsZT8uYnVzaW5lc3NfY3ljbGVbMF0/LnN1YnN0cmluZygwLCAxMSkgK1xyXG4gICAgICAgICAgJyAtICcgK1xyXG4gICAgICAgICAgY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdLnN1YnN0cmluZyhcclxuICAgICAgICAgICAgY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdPy5sZW5ndGggLSAxMSxcclxuICAgICAgICAgICAgY3ljbGU/LmJ1c2luZXNzX2N5Y2xlWzFdPy5sZW50aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJ2Yy1idXNpbmVzcy1jeWNsZSB2eC1wdC0yIHZ4LXBiLTJcIlxyXG4gIGFwcFBvcG92ZXJcclxuICAoY2xpY2spPVwiYnVzaW5lc3NDeWNsZVBvcC5wb3BvdmVyKClcIlxyXG4gIHBvc2l0aW9uPVwibGVmdFwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGluZyB2eC1mcy05IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xIHZ4LWxoLTNcIj5cclxuICAgIFNIT1dJTkcgREFUQSB7eyBjeWNsZVRvU2hvdyA9PT0gXCJTaG93IEZ1dHVyZSBEdWUgRGF0ZXNcIiA/IFwiRm9yXCIgOiBcIkZyb21cIiB9fVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1saC00XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICA8aSBjbGFzcz1cImljb25zIGNhbGVuZGFyIHZ4LWZzLTEyIHZ4LW1yLTJcIj4mI3hlOTk2OzwvaT5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC10eHQtd2hpdGUgdngtZC1pbmxpbmUtYmxvY2tcIj57e1xyXG4gICAgICAgIGN5Y2xlVG9TaG93ID09PSBcIlNob3cgRnV0dXJlIER1ZSBEYXRlc1wiXHJcbiAgICAgICAgICA/IFwiRnV0dXJlIER1ZSBEYXRlc1wiXHJcbiAgICAgICAgICA6IGN5Y2xlVG9TaG93XHJcbiAgICAgIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aSBjbGFzcz1cImljb25zIGFycm93IHZ4LWZzLTEwIHZ4LW1yLTJcIj4mI3hlOWU4OzwvaT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48dnVpLXBvcG92ZXIgI2J1c2luZXNzQ3ljbGVQb3AgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2Yy1idXNpbmVzcy1jeWNsZS1wb3BvdmVyLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInZjLWJ1c2luZXNzLWN5Y2xlLXBvcG92ZXItY29udGFpbmVyLXRvcCB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zXCJcclxuICAgID5cclxuICAgICAgPHAgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy00MDAgdngtbGFiZWwtdHh0IHZ4LXAtMCB2eC1tLTBcIj5cclxuICAgICAgICBZb3UgY2FuIHNlbGVjdCB1cHRvIGEgbWF4IG9mIHR3byBjb25zZWN1dGl2ZSB5ZWFyc1xyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2Yy1idXNpbmVzcy1jeWNsZS1wb3BvdmVyLWNvbnRhaW5lci1ib2R5XCI+XHJcbiAgICAgIDx1bCBjbGFzcz1cInZ4LXAtMCB2eC1tLTBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZWFjaEN5Y2xlIG9mIGJ1c2luZXNzQ3ljbGVMaXN0OyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICBlYWNoQ3ljbGU/LmJ1c2luZXNzX2N5Y2xlPy50b0xvd2VyQ2FzZSgpID09PVxyXG4gICAgICAgICAgICAgICdzaG93IGZ1dHVyZSBkdWUgZGF0ZXMnXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zXCJcclxuICAgICAgICAgICAgW2NsYXNzLmZ1dHVyZS1jeWNsZV09XCJ0cnVlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImlzU2VsZWN0ZWRDeWNsZSh0ZW1wU2VsZWN0ZWRDeWNsZSwgZWFjaEN5Y2xlKVwiXHJcbiAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0Q3ljbGUoZWFjaEN5Y2xlLCBpKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVhY2hDeWNsZT8uaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgPlNob3cgRnV0dXJlIER1ZSBEYXRlczwvYXBwLWNzLWNoZWNrYm94XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm8taWNvbiB2eC1mcy0xMlwiXHJcbiAgICAgICAgICAgICAgW2FyVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICdUaGlzIG9wdGlvbiBsZXRzIHlvdSB2aWV3IGRhdGEgdGhhdCBsaWVzIG91dHNpZGUgdGhlIGN1cnJlbnQgYnVzaW5lc3MgY3ljbGUgYW5kIGFyZSBkdWUgaW4gdGhlIGZ1dHVyZS4nXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGVhY2hDeWNsZT8uYnVzaW5lc3NfY3ljbGU/LnRvTG93ZXJDYXNlKCkgIT09XHJcbiAgICAgICAgICAgICAgJ3Nob3cgZnV0dXJlIGR1ZSBkYXRlcydcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgW25nVmFsdWVdPVwiaXNTZWxlY3RlZEN5Y2xlKHRlbXBTZWxlY3RlZEN5Y2xlLCBlYWNoQ3ljbGUpXCJcclxuICAgICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RDeWNsZShlYWNoQ3ljbGUsIGkpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZWFjaEN5Y2xlPy5pc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICA+e3sgZWFjaEN5Y2xlPy5zdGFydF9kYXRlIHwgZGF0ZUZvcm1hdCB9fSAtXHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIHt7IGVhY2hDeWNsZT8uZW5kX2RhdGUgfCBkYXRlRm9ybWF0IH19PC9uZy1jb250YWluZXJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInZjLWJ1c2luZXNzLWN5Y2xlLXBvcG92ZXItY29udGFpbmVyLWZvb3RlciB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXAtM1wiXHJcbiAgICA+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAoY2xpY2spPVwiYnVzaW5lc3NDeWNsZVBvcC5jbG9zZVBvcG92ZXIoJ3RvcCcpXCJcclxuICAgICAgICBjbGFzcz1cIndoaXRlIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LXR4dC1ibHVlXCJcclxuICAgICAgPlxyXG4gICAgICAgIENBTkNFTFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJzZXRCdXNpbmVzc0N5Y2xlKCk7IGJ1c2luZXNzQ3ljbGVQb3AuY2xvc2VQb3BvdmVyKCd0b3AnKVwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICBjbGFzcz1cImJsdWUgdngtZnMtMTEgdngtZnctNTAwIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtdHh0LXdoaXRlXCJcclxuICAgICAgPlxyXG4gICAgICAgIEFQUExZXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdnVpLXBvcG92ZXI+XHJcbiJdfQ==
|