@datarailsshared/datarailsshared 1.6.367 → 1.6.369
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/datarailsshared-datarailsshared-1.6.369.tgz +0 -0
- package/esm2022/lib/dr-cron-field/dr-cron-field.component.mjs +206 -124
- package/fesm2022/datarailsshared-datarailsshared.mjs +206 -124
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-cron-field/dr-cron-field.component.d.ts +14 -3
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.6.367.tgz +0 -0
|
@@ -46,12 +46,12 @@ function DrCronFieldComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
46
46
|
i0.ɵɵproperty("ngTemplateOutlet", _r3);
|
|
47
47
|
} }
|
|
48
48
|
function DrCronFieldComponent_ng_template_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
-
const
|
|
49
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
50
50
|
i0.ɵɵelementStart(0, "span");
|
|
51
51
|
i0.ɵɵtext(1, "Repeat every quarter on");
|
|
52
52
|
i0.ɵɵelementEnd();
|
|
53
53
|
i0.ɵɵelementStart(2, "dr-select", 21);
|
|
54
|
-
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_0_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(
|
|
54
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_0_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.cronModel.month = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_0_Template_dr_select_ngModelChange_2_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r27.onSelectionChange()); });
|
|
55
55
|
i0.ɵɵelementEnd();
|
|
56
56
|
i0.ɵɵelementStart(3, "span");
|
|
57
57
|
i0.ɵɵtext(4, "month of the quarter");
|
|
@@ -62,12 +62,12 @@ function DrCronFieldComponent_ng_template_3_ng_template_0_Template(rf, ctx) { if
|
|
|
62
62
|
i0.ɵɵproperty("ngModel", ctx_r13.cronModel.month)("items", ctx_r13.MONTH_OF_QUARTER_ARRAY);
|
|
63
63
|
} }
|
|
64
64
|
function DrCronFieldComponent_ng_template_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
-
const
|
|
65
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
66
66
|
i0.ɵɵelementStart(0, "span");
|
|
67
67
|
i0.ɵɵtext(1, "Repeat every");
|
|
68
68
|
i0.ɵɵelementEnd();
|
|
69
69
|
i0.ɵɵelementStart(2, "dr-select", 22);
|
|
70
|
-
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_2_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(
|
|
70
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_2_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r28.cronModel.everyXHours = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_2_Template_dr_select_ngModelChange_2_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r30.onSelectionChange()); });
|
|
71
71
|
i0.ɵɵelementEnd();
|
|
72
72
|
i0.ɵɵelementStart(3, "span");
|
|
73
73
|
i0.ɵɵtext(4, "hour(s)");
|
|
@@ -78,12 +78,12 @@ function DrCronFieldComponent_ng_template_3_ng_template_2_Template(rf, ctx) { if
|
|
|
78
78
|
i0.ɵɵproperty("ngModel", ctx_r15.cronModel.everyXHours)("items", ctx_r15.HOURS_DIVISIBLE_INTO_DAY);
|
|
79
79
|
} }
|
|
80
80
|
function DrCronFieldComponent_ng_template_3_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
-
const
|
|
81
|
+
const _r32 = i0.ɵɵgetCurrentView();
|
|
82
82
|
i0.ɵɵelementStart(0, "span");
|
|
83
83
|
i0.ɵɵtext(1, "Repeat every");
|
|
84
84
|
i0.ɵɵelementEnd();
|
|
85
85
|
i0.ɵɵelementStart(2, "dr-select", 23);
|
|
86
|
-
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_4_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(
|
|
86
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_4_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r31.cronModel.dayOfWeek = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_4_Template_dr_select_ngModelChange_2_listener() { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r33.onSelectionChange()); });
|
|
87
87
|
i0.ɵɵelementEnd();
|
|
88
88
|
} if (rf & 2) {
|
|
89
89
|
const ctx_r17 = i0.ɵɵnextContext(2);
|
|
@@ -91,21 +91,21 @@ function DrCronFieldComponent_ng_template_3_ng_template_4_Template(rf, ctx) { if
|
|
|
91
91
|
i0.ɵɵproperty("ngModel", ctx_r17.cronModel.dayOfWeek)("items", ctx_r17.DAY_OF_WEEK_ARRAY);
|
|
92
92
|
} }
|
|
93
93
|
function DrCronFieldComponent_ng_template_3_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
-
const
|
|
94
|
+
const _r35 = i0.ɵɵgetCurrentView();
|
|
95
95
|
i0.ɵɵelementStart(0, "dr-select", 24);
|
|
96
|
-
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_6_Template_dr_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
96
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_6_Template_dr_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r34.cronModel.dayOfMonth = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_6_Template_dr_select_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r35); const ctx_r36 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r36.onSelectionChange()); });
|
|
97
97
|
i0.ɵɵelementEnd();
|
|
98
98
|
} if (rf & 2) {
|
|
99
99
|
const ctx_r19 = i0.ɵɵnextContext(2);
|
|
100
100
|
i0.ɵɵproperty("ngModel", ctx_r19.cronModel.dayOfMonth)("items", ctx_r19.DAY_OF_MONTH_ARRAY)("searchable", true);
|
|
101
101
|
} }
|
|
102
102
|
function DrCronFieldComponent_ng_template_3_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
103
|
-
const
|
|
103
|
+
const _r38 = i0.ɵɵgetCurrentView();
|
|
104
104
|
i0.ɵɵelementStart(0, "span");
|
|
105
105
|
i0.ɵɵtext(1, "Repeat every");
|
|
106
106
|
i0.ɵɵelementEnd();
|
|
107
107
|
i0.ɵɵelementStart(2, "dr-select", 25);
|
|
108
|
-
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_8_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(
|
|
108
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_8_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r37.cronModel.month = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_template_8_Template_dr_select_ngModelChange_2_listener() { i0.ɵɵrestoreView(_r38); const ctx_r39 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r39.onSelectionChange()); });
|
|
109
109
|
i0.ɵɵelementEnd();
|
|
110
110
|
} if (rf & 2) {
|
|
111
111
|
const ctx_r21 = i0.ɵɵnextContext(2);
|
|
@@ -117,56 +117,85 @@ function DrCronFieldComponent_ng_template_3_dr_radio_group_11_dr_radio_button_1_
|
|
|
117
117
|
i0.ɵɵtext(1);
|
|
118
118
|
i0.ɵɵelementEnd();
|
|
119
119
|
} if (rf & 2) {
|
|
120
|
-
const
|
|
121
|
-
i0.ɵɵproperty("value",
|
|
122
|
-
i0.ɵɵattribute("data-analytics", "dr-cron-field_radio-button-" +
|
|
120
|
+
const option_r41 = ctx.$implicit;
|
|
121
|
+
i0.ɵɵproperty("value", option_r41.value);
|
|
122
|
+
i0.ɵɵattribute("data-analytics", "dr-cron-field_radio-button-" + option_r41.value);
|
|
123
123
|
i0.ɵɵadvance(1);
|
|
124
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
124
|
+
i0.ɵɵtextInterpolate1(" ", option_r41.label, " ");
|
|
125
125
|
} }
|
|
126
126
|
function DrCronFieldComponent_ng_template_3_dr_radio_group_11_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
-
const
|
|
127
|
+
const _r43 = i0.ɵɵgetCurrentView();
|
|
128
128
|
i0.ɵɵelementStart(0, "dr-radio-group", 26);
|
|
129
|
-
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_dr_radio_group_11_Template_dr_radio_group_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
129
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_dr_radio_group_11_Template_dr_radio_group_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r43); const ctx_r42 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r42.onEveryChange($event)); });
|
|
130
130
|
i0.ɵɵtemplate(1, DrCronFieldComponent_ng_template_3_dr_radio_group_11_dr_radio_button_1_Template, 2, 3, "dr-radio-button", 27);
|
|
131
131
|
i0.ɵɵelementEnd();
|
|
132
132
|
} if (rf & 2) {
|
|
133
133
|
const ctx_r22 = i0.ɵɵnextContext(2);
|
|
134
|
-
i0.ɵɵproperty("ngModel", ctx_r22.cronModel.every);
|
|
134
|
+
i0.ɵɵproperty("ngModel", ctx_r22.isAdvancedMode ? "advanced" : ctx_r22.cronModel.every);
|
|
135
135
|
i0.ɵɵadvance(1);
|
|
136
136
|
i0.ɵɵproperty("ngForOf", ctx_r22.cronEditorPeriodArray);
|
|
137
137
|
} }
|
|
138
|
-
function
|
|
138
|
+
function DrCronFieldComponent_ng_template_3_div_12_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
140
|
+
i0.ɵɵtext(1);
|
|
141
|
+
i0.ɵɵelementEnd();
|
|
142
|
+
} if (rf & 2) {
|
|
143
|
+
const ctx_r44 = i0.ɵɵnextContext(3);
|
|
144
|
+
i0.ɵɵadvance(1);
|
|
145
|
+
i0.ɵɵtextInterpolate(ctx_r44.advancedError);
|
|
146
|
+
} }
|
|
147
|
+
function DrCronFieldComponent_ng_template_3_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
148
|
+
const _r46 = i0.ɵɵgetCurrentView();
|
|
149
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "div", 30);
|
|
150
|
+
i0.ɵɵtext(2, " Use crontab to set custom time intervals for sync frequency, such as every two weeks at 10:05. ");
|
|
151
|
+
i0.ɵɵelementEnd();
|
|
152
|
+
i0.ɵɵelementStart(3, "div", 31);
|
|
153
|
+
i0.ɵɵtext(4, "Enter your cron expression:");
|
|
154
|
+
i0.ɵɵelementEnd();
|
|
155
|
+
i0.ɵɵelementStart(5, "dr-input", 32);
|
|
156
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_div_12_Template_dr_input_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r46); const ctx_r45 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r45.advancedCron = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_div_12_Template_dr_input_ngModelChange_5_listener() { i0.ɵɵrestoreView(_r46); const ctx_r47 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r47.onAdvancedChange()); });
|
|
157
|
+
i0.ɵɵelementEnd();
|
|
158
|
+
i0.ɵɵtemplate(6, DrCronFieldComponent_ng_template_3_div_12_div_6_Template, 2, 1, "div", 33);
|
|
159
|
+
i0.ɵɵelementEnd();
|
|
160
|
+
} if (rf & 2) {
|
|
161
|
+
const ctx_r23 = i0.ɵɵnextContext(2);
|
|
162
|
+
i0.ɵɵadvance(5);
|
|
163
|
+
i0.ɵɵproperty("ngModel", ctx_r23.advancedCron);
|
|
164
|
+
i0.ɵɵadvance(1);
|
|
165
|
+
i0.ɵɵproperty("ngIf", ctx_r23.advancedError);
|
|
166
|
+
} }
|
|
167
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
139
168
|
i0.ɵɵelementContainer(0, 8);
|
|
140
169
|
} if (rf & 2) {
|
|
141
|
-
i0.ɵɵnextContext(
|
|
170
|
+
i0.ɵɵnextContext(3);
|
|
142
171
|
const _r12 = i0.ɵɵreference(1);
|
|
143
172
|
i0.ɵɵproperty("ngTemplateOutlet", _r12);
|
|
144
173
|
} }
|
|
145
|
-
function
|
|
174
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
146
175
|
i0.ɵɵelementStart(0, "span");
|
|
147
176
|
i0.ɵɵtext(1, "Repeat every day");
|
|
148
177
|
i0.ɵɵelementEnd();
|
|
149
178
|
} }
|
|
150
|
-
function
|
|
179
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
151
180
|
i0.ɵɵelementContainer(0, 8);
|
|
152
181
|
} if (rf & 2) {
|
|
153
|
-
i0.ɵɵnextContext(
|
|
182
|
+
i0.ɵɵnextContext(3);
|
|
154
183
|
const _r14 = i0.ɵɵreference(3);
|
|
155
184
|
i0.ɵɵproperty("ngTemplateOutlet", _r14);
|
|
156
185
|
} }
|
|
157
|
-
function
|
|
186
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
158
187
|
i0.ɵɵelementContainer(0, 8);
|
|
159
188
|
} if (rf & 2) {
|
|
160
|
-
i0.ɵɵnextContext(
|
|
189
|
+
i0.ɵɵnextContext(3);
|
|
161
190
|
const _r16 = i0.ɵɵreference(5);
|
|
162
191
|
i0.ɵɵproperty("ngTemplateOutlet", _r16);
|
|
163
192
|
} }
|
|
164
|
-
function
|
|
193
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
165
194
|
i0.ɵɵelementContainerStart(0);
|
|
166
195
|
i0.ɵɵelementContainer(1, 8)(2, 8);
|
|
167
196
|
i0.ɵɵelementContainerEnd();
|
|
168
197
|
} if (rf & 2) {
|
|
169
|
-
i0.ɵɵnextContext(
|
|
198
|
+
i0.ɵɵnextContext(3);
|
|
170
199
|
const _r20 = i0.ɵɵreference(9);
|
|
171
200
|
const _r18 = i0.ɵɵreference(7);
|
|
172
201
|
i0.ɵɵadvance(1);
|
|
@@ -174,7 +203,7 @@ function DrCronFieldComponent_ng_template_3_ng_container_12_ng_container_6_Templ
|
|
|
174
203
|
i0.ɵɵadvance(1);
|
|
175
204
|
i0.ɵɵproperty("ngTemplateOutlet", _r18);
|
|
176
205
|
} }
|
|
177
|
-
function
|
|
206
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
178
207
|
i0.ɵɵelementContainerStart(0);
|
|
179
208
|
i0.ɵɵelementStart(1, "span");
|
|
180
209
|
i0.ɵɵtext(2, "Repeat on");
|
|
@@ -185,13 +214,13 @@ function DrCronFieldComponent_ng_template_3_ng_container_12_ng_container_7_Templ
|
|
|
185
214
|
i0.ɵɵelementEnd();
|
|
186
215
|
i0.ɵɵelementContainerEnd();
|
|
187
216
|
} if (rf & 2) {
|
|
188
|
-
i0.ɵɵnextContext(
|
|
217
|
+
i0.ɵɵnextContext(3);
|
|
189
218
|
const _r18 = i0.ɵɵreference(7);
|
|
190
219
|
i0.ɵɵadvance(3);
|
|
191
220
|
i0.ɵɵproperty("ngTemplateOutlet", _r18);
|
|
192
221
|
} }
|
|
193
|
-
function
|
|
194
|
-
i0.ɵɵelementStart(0, "div",
|
|
222
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
223
|
+
i0.ɵɵelementStart(0, "div", 37)(1, "span");
|
|
195
224
|
i0.ɵɵtext(2, "on");
|
|
196
225
|
i0.ɵɵelementEnd();
|
|
197
226
|
i0.ɵɵelementContainer(3, 8);
|
|
@@ -199,184 +228,195 @@ function DrCronFieldComponent_ng_template_3_ng_container_12_div_8_Template(rf, c
|
|
|
199
228
|
i0.ɵɵtext(5, "day of the month");
|
|
200
229
|
i0.ɵɵelementEnd()();
|
|
201
230
|
} if (rf & 2) {
|
|
202
|
-
i0.ɵɵnextContext(
|
|
231
|
+
i0.ɵɵnextContext(3);
|
|
203
232
|
const _r18 = i0.ɵɵreference(7);
|
|
204
233
|
i0.ɵɵadvance(3);
|
|
205
234
|
i0.ɵɵproperty("ngTemplateOutlet", _r18);
|
|
206
235
|
} }
|
|
207
|
-
function
|
|
208
|
-
const
|
|
236
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
237
|
+
const _r59 = i0.ɵɵgetCurrentView();
|
|
209
238
|
i0.ɵɵelementContainerStart(0);
|
|
210
|
-
i0.ɵɵelementStart(1, "div",
|
|
211
|
-
i0.ɵɵtemplate(2,
|
|
212
|
-
i0.ɵɵtemplate(3,
|
|
213
|
-
i0.ɵɵtemplate(4,
|
|
214
|
-
i0.ɵɵtemplate(5,
|
|
215
|
-
i0.ɵɵtemplate(6,
|
|
216
|
-
i0.ɵɵtemplate(7,
|
|
217
|
-
i0.ɵɵelementEnd();
|
|
218
|
-
i0.ɵɵtemplate(8,
|
|
219
|
-
i0.ɵɵelementStart(9, "div",
|
|
239
|
+
i0.ɵɵelementStart(1, "div", 37);
|
|
240
|
+
i0.ɵɵtemplate(2, DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_2_Template, 1, 1, "ng-container", 38);
|
|
241
|
+
i0.ɵɵtemplate(3, DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_span_3_Template, 2, 0, "span", 20);
|
|
242
|
+
i0.ɵɵtemplate(4, DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_4_Template, 1, 1, "ng-container", 38);
|
|
243
|
+
i0.ɵɵtemplate(5, DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_5_Template, 1, 1, "ng-container", 38);
|
|
244
|
+
i0.ɵɵtemplate(6, DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_6_Template, 3, 2, "ng-container", 20);
|
|
245
|
+
i0.ɵɵtemplate(7, DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_ng_container_7_Template, 6, 1, "ng-container", 20);
|
|
246
|
+
i0.ɵɵelementEnd();
|
|
247
|
+
i0.ɵɵtemplate(8, DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_div_8_Template, 6, 1, "div", 39);
|
|
248
|
+
i0.ɵɵelementStart(9, "div", 40)(10, "span", 41);
|
|
220
249
|
i0.ɵɵtext(11, "at");
|
|
221
250
|
i0.ɵɵelementEnd();
|
|
222
|
-
i0.ɵɵelementStart(12, "dr-time-picker",
|
|
223
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
251
|
+
i0.ɵɵelementStart(12, "dr-time-picker", 42);
|
|
252
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_Template_dr_time_picker_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r59); const ctx_r58 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r58.onTimePickerChange($event)); });
|
|
224
253
|
i0.ɵɵelementEnd()();
|
|
225
254
|
i0.ɵɵelementContainerEnd();
|
|
226
255
|
} if (rf & 2) {
|
|
227
|
-
const
|
|
256
|
+
const ctx_r48 = i0.ɵɵnextContext(3);
|
|
228
257
|
i0.ɵɵadvance(2);
|
|
229
|
-
i0.ɵɵproperty("ngIf",
|
|
258
|
+
i0.ɵɵproperty("ngIf", ctx_r48.cronModel.every === ctx_r48.cronEditorPeriod.QUARTER);
|
|
230
259
|
i0.ɵɵadvance(1);
|
|
231
|
-
i0.ɵɵproperty("ngIf",
|
|
260
|
+
i0.ɵɵproperty("ngIf", ctx_r48.cronModel.every === ctx_r48.cronEditorPeriod.DAY);
|
|
232
261
|
i0.ɵɵadvance(1);
|
|
233
|
-
i0.ɵɵproperty("ngIf",
|
|
262
|
+
i0.ɵɵproperty("ngIf", ctx_r48.cronModel.every === ctx_r48.cronEditorPeriod.HOUR);
|
|
234
263
|
i0.ɵɵadvance(1);
|
|
235
|
-
i0.ɵɵproperty("ngIf",
|
|
264
|
+
i0.ɵɵproperty("ngIf", ctx_r48.cronModel.every === ctx_r48.cronEditorPeriod.WEEK);
|
|
236
265
|
i0.ɵɵadvance(1);
|
|
237
|
-
i0.ɵɵproperty("ngIf",
|
|
266
|
+
i0.ɵɵproperty("ngIf", ctx_r48.cronModel.every === ctx_r48.cronEditorPeriod.YEAR);
|
|
238
267
|
i0.ɵɵadvance(1);
|
|
239
|
-
i0.ɵɵproperty("ngIf",
|
|
268
|
+
i0.ɵɵproperty("ngIf", ctx_r48.cronModel.every === ctx_r48.cronEditorPeriod.MONTH);
|
|
240
269
|
i0.ɵɵadvance(1);
|
|
241
|
-
i0.ɵɵproperty("ngIf",
|
|
270
|
+
i0.ɵɵproperty("ngIf", ctx_r48.cronModel.every === ctx_r48.cronEditorPeriod.QUARTER);
|
|
242
271
|
i0.ɵɵadvance(4);
|
|
243
|
-
i0.ɵɵproperty("ngModel",
|
|
272
|
+
i0.ɵɵproperty("ngModel", ctx_r48.cronModel);
|
|
244
273
|
} }
|
|
245
|
-
function
|
|
246
|
-
i0.ɵɵelementStart(0, "div",
|
|
274
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
275
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
247
276
|
i0.ɵɵelementContainer(1, 8);
|
|
248
277
|
i0.ɵɵelementEnd();
|
|
249
278
|
} if (rf & 2) {
|
|
250
|
-
i0.ɵɵnextContext(
|
|
279
|
+
i0.ɵɵnextContext(3);
|
|
251
280
|
const _r12 = i0.ɵɵreference(1);
|
|
252
281
|
i0.ɵɵadvance(1);
|
|
253
282
|
i0.ɵɵproperty("ngTemplateOutlet", _r12);
|
|
254
283
|
} }
|
|
255
|
-
function
|
|
284
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
256
285
|
i0.ɵɵelementStart(0, "span");
|
|
257
286
|
i0.ɵɵtext(1, " Repeat every day ");
|
|
258
287
|
i0.ɵɵelementEnd();
|
|
259
288
|
} }
|
|
260
|
-
function
|
|
289
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
261
290
|
i0.ɵɵelementContainer(0, 8);
|
|
262
291
|
} if (rf & 2) {
|
|
263
|
-
i0.ɵɵnextContext(
|
|
292
|
+
i0.ɵɵnextContext(3);
|
|
264
293
|
const _r14 = i0.ɵɵreference(3);
|
|
265
294
|
i0.ɵɵproperty("ngTemplateOutlet", _r14);
|
|
266
295
|
} }
|
|
267
|
-
function
|
|
296
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
268
297
|
i0.ɵɵelementContainer(0, 8);
|
|
269
298
|
} if (rf & 2) {
|
|
270
|
-
i0.ɵɵnextContext(
|
|
299
|
+
i0.ɵɵnextContext(3);
|
|
271
300
|
const _r16 = i0.ɵɵreference(5);
|
|
272
301
|
i0.ɵɵproperty("ngTemplateOutlet", _r16);
|
|
273
302
|
} }
|
|
274
|
-
function
|
|
303
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
275
304
|
i0.ɵɵelementStart(0, "span");
|
|
276
305
|
i0.ɵɵtext(1, "Repeat on ");
|
|
277
306
|
i0.ɵɵelementEnd();
|
|
278
307
|
} }
|
|
279
|
-
function
|
|
308
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
280
309
|
i0.ɵɵelementStart(0, "span");
|
|
281
310
|
i0.ɵɵtext(1, "on ");
|
|
282
311
|
i0.ɵɵelementEnd();
|
|
283
312
|
} }
|
|
284
|
-
function
|
|
313
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
285
314
|
i0.ɵɵelementContainer(0, 8);
|
|
286
315
|
} if (rf & 2) {
|
|
287
|
-
i0.ɵɵnextContext(
|
|
316
|
+
i0.ɵɵnextContext(4);
|
|
288
317
|
const _r20 = i0.ɵɵreference(9);
|
|
289
318
|
i0.ɵɵproperty("ngTemplateOutlet", _r20);
|
|
290
319
|
} }
|
|
291
|
-
function
|
|
320
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_span_5_Template(rf, ctx) { if (rf & 1) {
|
|
292
321
|
i0.ɵɵelementStart(0, "span");
|
|
293
322
|
i0.ɵɵtext(1, "day of every month ");
|
|
294
323
|
i0.ɵɵelementEnd();
|
|
295
324
|
} }
|
|
296
|
-
function
|
|
325
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
297
326
|
i0.ɵɵelementStart(0, "span");
|
|
298
327
|
i0.ɵɵtext(1, "day of the month ");
|
|
299
328
|
i0.ɵɵelementEnd();
|
|
300
329
|
} }
|
|
301
|
-
function
|
|
330
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
302
331
|
i0.ɵɵelementContainerStart(0);
|
|
303
|
-
i0.ɵɵtemplate(1,
|
|
304
|
-
i0.ɵɵtemplate(2,
|
|
305
|
-
i0.ɵɵtemplate(3,
|
|
332
|
+
i0.ɵɵtemplate(1, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_span_1_Template, 2, 0, "span", 20);
|
|
333
|
+
i0.ɵɵtemplate(2, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_span_2_Template, 2, 0, "span", 20);
|
|
334
|
+
i0.ɵɵtemplate(3, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_ng_container_3_Template, 1, 1, "ng-container", 38);
|
|
306
335
|
i0.ɵɵelementContainer(4, 8);
|
|
307
|
-
i0.ɵɵtemplate(5,
|
|
308
|
-
i0.ɵɵtemplate(6,
|
|
336
|
+
i0.ɵɵtemplate(5, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_span_5_Template, 2, 0, "span", 20);
|
|
337
|
+
i0.ɵɵtemplate(6, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_span_6_Template, 2, 0, "span", 20);
|
|
309
338
|
i0.ɵɵelementContainerEnd();
|
|
310
339
|
} if (rf & 2) {
|
|
311
|
-
i0.ɵɵnextContext(
|
|
340
|
+
i0.ɵɵnextContext(3);
|
|
312
341
|
const _r18 = i0.ɵɵreference(7);
|
|
313
|
-
const
|
|
342
|
+
const ctx_r64 = i0.ɵɵnextContext();
|
|
314
343
|
i0.ɵɵadvance(1);
|
|
315
|
-
i0.ɵɵproperty("ngIf",
|
|
344
|
+
i0.ɵɵproperty("ngIf", ctx_r64.cronModel.every === ctx_r64.cronEditorPeriod.MONTH);
|
|
316
345
|
i0.ɵɵadvance(1);
|
|
317
|
-
i0.ɵɵproperty("ngIf",
|
|
346
|
+
i0.ɵɵproperty("ngIf", ctx_r64.cronModel.every === ctx_r64.cronEditorPeriod.QUARTER);
|
|
318
347
|
i0.ɵɵadvance(1);
|
|
319
|
-
i0.ɵɵproperty("ngIf",
|
|
348
|
+
i0.ɵɵproperty("ngIf", ctx_r64.cronModel.every === ctx_r64.cronEditorPeriod.YEAR);
|
|
320
349
|
i0.ɵɵadvance(1);
|
|
321
350
|
i0.ɵɵproperty("ngTemplateOutlet", _r18);
|
|
322
351
|
i0.ɵɵadvance(1);
|
|
323
|
-
i0.ɵɵproperty("ngIf",
|
|
352
|
+
i0.ɵɵproperty("ngIf", ctx_r64.cronModel.every === ctx_r64.cronEditorPeriod.MONTH);
|
|
324
353
|
i0.ɵɵadvance(1);
|
|
325
|
-
i0.ɵɵproperty("ngIf",
|
|
354
|
+
i0.ɵɵproperty("ngIf", ctx_r64.cronModel.every === ctx_r64.cronEditorPeriod.QUARTER);
|
|
326
355
|
} }
|
|
327
|
-
function
|
|
356
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_template_14_Template(rf, ctx) { if (rf & 1) {
|
|
328
357
|
i0.ɵɵtext(0);
|
|
329
358
|
} if (rf & 2) {
|
|
330
|
-
const
|
|
331
|
-
const
|
|
332
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
359
|
+
const item_r72 = ctx.item;
|
|
360
|
+
const ctx_r66 = i0.ɵɵnextContext(4);
|
|
361
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r66.LOCAL_TIME_ZONE_OFFSET !== ctx_r66.cronModel.timeZone ? item_r72.label : "Local Time", " ");
|
|
333
362
|
} }
|
|
334
|
-
function
|
|
335
|
-
const
|
|
336
|
-
i0.ɵɵtemplate(0,
|
|
337
|
-
i0.ɵɵelementStart(1, "div",
|
|
338
|
-
i0.ɵɵtemplate(2,
|
|
339
|
-
i0.ɵɵtemplate(3,
|
|
340
|
-
i0.ɵɵtemplate(4,
|
|
341
|
-
i0.ɵɵtemplate(5,
|
|
342
|
-
i0.ɵɵelementStart(6, "span",
|
|
363
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
364
|
+
const _r74 = i0.ɵɵgetCurrentView();
|
|
365
|
+
i0.ɵɵtemplate(0, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_div_0_Template, 2, 1, "div", 43);
|
|
366
|
+
i0.ɵɵelementStart(1, "div", 44);
|
|
367
|
+
i0.ɵɵtemplate(2, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_span_2_Template, 2, 0, "span", 20);
|
|
368
|
+
i0.ɵɵtemplate(3, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_3_Template, 1, 1, "ng-container", 38);
|
|
369
|
+
i0.ɵɵtemplate(4, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_4_Template, 1, 1, "ng-container", 38);
|
|
370
|
+
i0.ɵɵtemplate(5, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_container_5_Template, 7, 6, "ng-container", 20);
|
|
371
|
+
i0.ɵɵelementStart(6, "span", 41);
|
|
343
372
|
i0.ɵɵtext(7, "at");
|
|
344
373
|
i0.ɵɵelementEnd();
|
|
345
|
-
i0.ɵɵelementStart(8, "dr-input",
|
|
346
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
374
|
+
i0.ɵɵelementStart(8, "dr-input", 45);
|
|
375
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template_dr_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r74); const ctx_r73 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r73.cronModel.hour = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template_dr_input_ngModelChange_8_listener() { i0.ɵɵrestoreView(_r74); const ctx_r75 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r75.onSelectionChange()); });
|
|
347
376
|
i0.ɵɵelementEnd();
|
|
348
|
-
i0.ɵɵelementStart(9, "span",
|
|
377
|
+
i0.ɵɵelementStart(9, "span", 46);
|
|
349
378
|
i0.ɵɵtext(10, ":");
|
|
350
379
|
i0.ɵɵelementEnd();
|
|
351
|
-
i0.ɵɵelementStart(11, "dr-input",
|
|
352
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
380
|
+
i0.ɵɵelementStart(11, "dr-input", 47);
|
|
381
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template_dr_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r74); const ctx_r76 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r76.cronModel.minute = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template_dr_input_ngModelChange_11_listener() { i0.ɵɵrestoreView(_r74); const ctx_r77 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r77.onSelectionChange()); });
|
|
353
382
|
i0.ɵɵelementEnd();
|
|
354
|
-
i0.ɵɵelementStart(12, "dr-select",
|
|
355
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
383
|
+
i0.ɵɵelementStart(12, "dr-select", 48);
|
|
384
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template_dr_select_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r74); const ctx_r78 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r78.cronModel.timePeriod = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template_dr_select_ngModelChange_12_listener() { i0.ɵɵrestoreView(_r74); const ctx_r79 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r79.onSelectionChange()); });
|
|
356
385
|
i0.ɵɵelementEnd();
|
|
357
|
-
i0.ɵɵelementStart(13, "dr-select",
|
|
358
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
359
|
-
i0.ɵɵtemplate(14,
|
|
386
|
+
i0.ɵɵelementStart(13, "dr-select", 49);
|
|
387
|
+
i0.ɵɵlistener("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template_dr_select_ngModelChange_13_listener($event) { i0.ɵɵrestoreView(_r74); const ctx_r80 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r80.cronModel.timeZone = $event); })("ngModelChange", function DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template_dr_select_ngModelChange_13_listener() { i0.ɵɵrestoreView(_r74); const ctx_r81 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r81.onSelectionChange()); });
|
|
388
|
+
i0.ɵɵtemplate(14, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_ng_template_14_Template, 1, 1, "ng-template", null, 50, i0.ɵɵtemplateRefExtractor);
|
|
360
389
|
i0.ɵɵelementEnd()();
|
|
361
390
|
} if (rf & 2) {
|
|
362
|
-
const
|
|
363
|
-
i0.ɵɵproperty("ngIf",
|
|
391
|
+
const ctx_r50 = i0.ɵɵnextContext(3);
|
|
392
|
+
i0.ɵɵproperty("ngIf", ctx_r50.cronModel.every === ctx_r50.cronEditorPeriod.QUARTER);
|
|
364
393
|
i0.ɵɵadvance(2);
|
|
365
|
-
i0.ɵɵproperty("ngIf",
|
|
394
|
+
i0.ɵɵproperty("ngIf", ctx_r50.cronModel.every === ctx_r50.cronEditorPeriod.DAY);
|
|
366
395
|
i0.ɵɵadvance(1);
|
|
367
|
-
i0.ɵɵproperty("ngIf",
|
|
396
|
+
i0.ɵɵproperty("ngIf", ctx_r50.cronModel.every === ctx_r50.cronEditorPeriod.HOUR);
|
|
368
397
|
i0.ɵɵadvance(1);
|
|
369
|
-
i0.ɵɵproperty("ngIf",
|
|
398
|
+
i0.ɵɵproperty("ngIf", ctx_r50.cronModel.every === ctx_r50.cronEditorPeriod.WEEK);
|
|
370
399
|
i0.ɵɵadvance(1);
|
|
371
|
-
i0.ɵɵproperty("ngIf",
|
|
400
|
+
i0.ɵɵproperty("ngIf", ctx_r50.cronModel.every !== ctx_r50.cronEditorPeriod.WEEK && ctx_r50.cronModel.every !== ctx_r50.cronEditorPeriod.HOUR && ctx_r50.cronModel.every !== ctx_r50.cronEditorPeriod.DAY);
|
|
372
401
|
i0.ɵɵadvance(3);
|
|
373
|
-
i0.ɵɵproperty("ngModel",
|
|
402
|
+
i0.ɵɵproperty("ngModel", ctx_r50.cronModel.hour)("mask", "00")("min", 0)("max", 12);
|
|
374
403
|
i0.ɵɵadvance(3);
|
|
375
|
-
i0.ɵɵproperty("ngModel",
|
|
404
|
+
i0.ɵɵproperty("ngModel", ctx_r50.cronModel.minute)("mask", "00")("min", 0)("max", 59);
|
|
376
405
|
i0.ɵɵadvance(1);
|
|
377
|
-
i0.ɵɵproperty("ngModel",
|
|
406
|
+
i0.ɵɵproperty("ngModel", ctx_r50.cronModel.timePeriod)("items", ctx_r50.CRON_TIME_PERIOD_ARRAY);
|
|
407
|
+
i0.ɵɵadvance(1);
|
|
408
|
+
i0.ɵɵproperty("ngModel", ctx_r50.cronModel.timeZone)("items", ctx_r50.GMT_OFFSETS)("textView", true);
|
|
409
|
+
} }
|
|
410
|
+
function DrCronFieldComponent_ng_template_3_ng_container_13_Template(rf, ctx) { if (rf & 1) {
|
|
411
|
+
i0.ɵɵelementContainerStart(0);
|
|
412
|
+
i0.ɵɵtemplate(1, DrCronFieldComponent_ng_template_3_ng_container_13_ng_container_1_Template, 13, 8, "ng-container", 35);
|
|
413
|
+
i0.ɵɵtemplate(2, DrCronFieldComponent_ng_template_3_ng_container_13_ng_template_2_Template, 16, 18, "ng-template", null, 36, i0.ɵɵtemplateRefExtractor);
|
|
414
|
+
i0.ɵɵelementContainerEnd();
|
|
415
|
+
} if (rf & 2) {
|
|
416
|
+
const _r49 = i0.ɵɵreference(3);
|
|
417
|
+
const ctx_r24 = i0.ɵɵnextContext(2);
|
|
378
418
|
i0.ɵɵadvance(1);
|
|
379
|
-
i0.ɵɵproperty("
|
|
419
|
+
i0.ɵɵproperty("ngIf", ctx_r24.multiRowMode)("ngIfElse", _r49);
|
|
380
420
|
} }
|
|
381
421
|
function DrCronFieldComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
382
422
|
i0.ɵɵtemplate(0, DrCronFieldComponent_ng_template_3_ng_template_0_Template, 5, 2, "ng-template", null, 12, i0.ɵɵtemplateRefExtractor);
|
|
@@ -386,18 +426,19 @@ function DrCronFieldComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
386
426
|
i0.ɵɵtemplate(8, DrCronFieldComponent_ng_template_3_ng_template_8_Template, 3, 2, "ng-template", null, 16, i0.ɵɵtemplateRefExtractor);
|
|
387
427
|
i0.ɵɵelementStart(10, "div", 17);
|
|
388
428
|
i0.ɵɵtemplate(11, DrCronFieldComponent_ng_template_3_dr_radio_group_11_Template, 2, 2, "dr-radio-group", 18);
|
|
389
|
-
i0.ɵɵtemplate(12,
|
|
390
|
-
i0.ɵɵtemplate(13,
|
|
429
|
+
i0.ɵɵtemplate(12, DrCronFieldComponent_ng_template_3_div_12_Template, 7, 2, "div", 19);
|
|
430
|
+
i0.ɵɵtemplate(13, DrCronFieldComponent_ng_template_3_ng_container_13_Template, 4, 2, "ng-container", 20);
|
|
391
431
|
i0.ɵɵelementEnd();
|
|
392
432
|
} if (rf & 2) {
|
|
393
|
-
const _r24 = i0.ɵɵreference(14);
|
|
394
433
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
395
434
|
i0.ɵɵadvance(10);
|
|
396
435
|
i0.ɵɵclassProp("cron-configuration--multi-row", ctx_r4.multiRowMode);
|
|
397
436
|
i0.ɵɵadvance(1);
|
|
398
437
|
i0.ɵɵproperty("ngIf", !ctx_r4.hidePeriodSelector);
|
|
399
438
|
i0.ɵɵadvance(1);
|
|
400
|
-
i0.ɵɵproperty("ngIf", ctx_r4.
|
|
439
|
+
i0.ɵɵproperty("ngIf", ctx_r4.isAdvancedMode);
|
|
440
|
+
i0.ɵɵadvance(1);
|
|
441
|
+
i0.ɵɵproperty("ngIf", !ctx_r4.isAdvancedMode);
|
|
401
442
|
} }
|
|
402
443
|
export class DrCronFieldComponent {
|
|
403
444
|
set value(value) {
|
|
@@ -426,6 +467,7 @@ export class DrCronFieldComponent {
|
|
|
426
467
|
this.hidePeriodSelector = false;
|
|
427
468
|
this.flatMode = false;
|
|
428
469
|
this.multiRowMode = false;
|
|
470
|
+
this.allowAdvanced = false;
|
|
429
471
|
this.DAY_OF_MONTH_ARRAY = DAY_OF_MONTH_ARRAY;
|
|
430
472
|
this.MONTH_OF_QUARTER_ARRAY = MONTH_OF_QUARTER_ARRAY;
|
|
431
473
|
this.MONTH_OF_YEAR_ARRAY = MONTH_OF_YEAR_ARRAY;
|
|
@@ -435,6 +477,9 @@ export class DrCronFieldComponent {
|
|
|
435
477
|
this.LOCAL_TIME_ZONE_OFFSET = LOCAL_TIME_ZONE_OFFSET;
|
|
436
478
|
this.GMT_OFFSETS = GMT_OFFSETS;
|
|
437
479
|
this.cronEditorPeriod = CronEditorPeriod;
|
|
480
|
+
this.isAdvancedMode = false;
|
|
481
|
+
this.advancedCron = '';
|
|
482
|
+
this.advancedError = null;
|
|
438
483
|
this.onChange = () => { };
|
|
439
484
|
this.onTouched = () => { };
|
|
440
485
|
}
|
|
@@ -446,6 +491,9 @@ export class DrCronFieldComponent {
|
|
|
446
491
|
value: period,
|
|
447
492
|
label: capitalize(getCronTypeAsPeriodLabel(period)),
|
|
448
493
|
}));
|
|
494
|
+
if (this.allowAdvanced) {
|
|
495
|
+
this.cronEditorPeriodArray.push({ value: 'advanced', label: 'Advanced' });
|
|
496
|
+
}
|
|
449
497
|
}
|
|
450
498
|
registerOnChange(fn) {
|
|
451
499
|
this.onChange = fn;
|
|
@@ -465,6 +513,15 @@ export class DrCronFieldComponent {
|
|
|
465
513
|
this.cdr.markForCheck();
|
|
466
514
|
}
|
|
467
515
|
update() {
|
|
516
|
+
if (this.isAdvancedMode) {
|
|
517
|
+
this.validateAdvancedCron();
|
|
518
|
+
if (!this.advancedError) {
|
|
519
|
+
this.visibleString = this.advancedCron;
|
|
520
|
+
this.onChange(this.advancedCron);
|
|
521
|
+
}
|
|
522
|
+
this.cdr.markForCheck();
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
468
525
|
this.valueObject.valueObject = this.cronModel;
|
|
469
526
|
this.visibleString = this.valueObject.getReadableString();
|
|
470
527
|
this.cdr.markForCheck();
|
|
@@ -475,6 +532,14 @@ export class DrCronFieldComponent {
|
|
|
475
532
|
this.cronModel = this.valueObject.valueObject;
|
|
476
533
|
}
|
|
477
534
|
onEveryChange($event) {
|
|
535
|
+
if ($event === 'advanced') {
|
|
536
|
+
this.isAdvancedMode = true;
|
|
537
|
+
this.advancedCron = '';
|
|
538
|
+
this.advancedError = null;
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
this.isAdvancedMode = false;
|
|
542
|
+
this.advancedError = null;
|
|
478
543
|
const tempValueObject = new CronEditor(CronEditorDefaultConfigByPeriod[$event](this.fiscalYearStart), this.fiscalYearStart);
|
|
479
544
|
this.cronModel = tempValueObject.valueObject;
|
|
480
545
|
this.onSelectionChange();
|
|
@@ -491,24 +556,36 @@ export class DrCronFieldComponent {
|
|
|
491
556
|
this.update();
|
|
492
557
|
}
|
|
493
558
|
}
|
|
559
|
+
onAdvancedChange() {
|
|
560
|
+
this.validateAdvancedCron();
|
|
561
|
+
this.onSelectionChange();
|
|
562
|
+
}
|
|
563
|
+
validateAdvancedCron() {
|
|
564
|
+
if (!this.validateCron) {
|
|
565
|
+
this.advancedError = null;
|
|
566
|
+
return;
|
|
567
|
+
}
|
|
568
|
+
const validation = this.validateCron(this.advancedCron);
|
|
569
|
+
this.advancedError = validation.valid ? null : validation.error_message;
|
|
570
|
+
}
|
|
494
571
|
/** @nocollapse */ static { this.ɵfac = function DrCronFieldComponent_Factory(t) { return new (t || DrCronFieldComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
495
572
|
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrCronFieldComponent, selectors: [["dr-cron-field"]], hostVars: 3, hostBindings: function DrCronFieldComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
496
573
|
i0.ɵɵattribute("id", ctx.hostId);
|
|
497
574
|
i0.ɵɵclassProp("disabled", ctx.disabled);
|
|
498
|
-
} }, inputs: { id: "id", disabled: "disabled", allowedPeriods: "allowedPeriods", fiscalYearStart: "fiscalYearStart", popoverPosition: "popoverPosition", hidePeriodSelector: ["hidePeriodSelector", "hidePeriodSelector", booleanAttribute], flatMode: ["flatMode", "flatMode", booleanAttribute], multiRowMode: ["multiRowMode", "multiRowMode", booleanAttribute] }, standalone: true, features: [i0.ɵɵProvidersFeature([
|
|
575
|
+
} }, inputs: { id: "id", disabled: "disabled", allowedPeriods: "allowedPeriods", fiscalYearStart: "fiscalYearStart", popoverPosition: "popoverPosition", hidePeriodSelector: ["hidePeriodSelector", "hidePeriodSelector", booleanAttribute], flatMode: ["flatMode", "flatMode", booleanAttribute], multiRowMode: ["multiRowMode", "multiRowMode", booleanAttribute], allowAdvanced: ["allowAdvanced", "allowAdvanced", booleanAttribute], validateCron: "validateCron" }, standalone: true, features: [i0.ɵɵProvidersFeature([
|
|
499
576
|
{
|
|
500
577
|
provide: NG_VALUE_ACCESSOR,
|
|
501
578
|
useExisting: forwardRef((() => DrCronFieldComponent)),
|
|
502
579
|
multi: true,
|
|
503
580
|
},
|
|
504
|
-
]), i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature], decls: 5, vars: 2, consts: [["data-analytics", "dr-cron-field_input-main", "aria-label", "Schedule", "placeholder", "Select...", 3, "id", "ngModel", "drPopover", "drPopoverPosition", "disabled", "readonly", "click", "ngModelChange", 4, "ngIf", "ngIfElse"], ["recurrencePopover", ""], ["cronConfiguration", ""], ["data-analytics", "dr-cron-field_input-main", "aria-label", "Schedule", "placeholder", "Select...", 3, "id", "ngModel", "drPopover", "drPopoverPosition", "disabled", "readonly", "click", "ngModelChange"], ["prefixIcon", "", 1, "dr-icon-date"], ["suffixIcon", "", 1, "dr-icon-arrow-down"], [1, "recurrence-popup"], [1, "recurrence-popup__body"], [3, "ngTemplateOutlet"], [1, "recurrence-popup__footer"], ["data-analytics", "dr-cron-field_button-cancel", "theme", "secondary", 3, "click"], ["data-analytics", "dr-cron-field_button-save", 3, "click"], ["quarterConfig", ""], ["hourConfig", ""], ["weekConfig", ""], ["dayOfMonthSelector", ""], ["yearMonthSelector", ""], [1, "cron-configuration"], ["data-analytics", "dr-cron-field_radio-group-period", "class", "cron-configuration__every", "name", "every", 3, "ngModel", "ngModelChange", 4, "ngIf"], [
|
|
581
|
+
]), i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature], decls: 5, vars: 2, consts: [["data-analytics", "dr-cron-field_input-main", "aria-label", "Schedule", "placeholder", "Select...", 3, "id", "ngModel", "drPopover", "drPopoverPosition", "disabled", "readonly", "click", "ngModelChange", 4, "ngIf", "ngIfElse"], ["recurrencePopover", ""], ["cronConfiguration", ""], ["data-analytics", "dr-cron-field_input-main", "aria-label", "Schedule", "placeholder", "Select...", 3, "id", "ngModel", "drPopover", "drPopoverPosition", "disabled", "readonly", "click", "ngModelChange"], ["prefixIcon", "", 1, "dr-icon-date"], ["suffixIcon", "", 1, "dr-icon-arrow-down"], [1, "recurrence-popup"], [1, "recurrence-popup__body"], [3, "ngTemplateOutlet"], [1, "recurrence-popup__footer"], ["data-analytics", "dr-cron-field_button-cancel", "theme", "secondary", 3, "click"], ["data-analytics", "dr-cron-field_button-save", 3, "click"], ["quarterConfig", ""], ["hourConfig", ""], ["weekConfig", ""], ["dayOfMonthSelector", ""], ["yearMonthSelector", ""], [1, "cron-configuration"], ["data-analytics", "dr-cron-field_radio-group-period", "class", "cron-configuration__every", "name", "every", 3, "ngModel", "ngModelChange", 4, "ngIf"], ["class", "cron-configuration__advanced", 4, "ngIf"], [4, "ngIf"], ["data-analytics", "dr-cron-field_select-quarter-month", "aria-label", "Quarter month", "bindLabel", "label", "bindValue", "value", 1, "month-of-quarter", 3, "ngModel", "items", "ngModelChange"], ["data-analytics", "dr-cron-field_select-every-x-hours", "aria-label", "Hour interval", "bindLabel", "label", "bindValue", "value", 1, "day-of-month", 3, "ngModel", "items", "ngModelChange"], ["data-analytics", "dr-cron-field_select-day-of-week", "aria-label", "Day of week", "bindLabel", "label", "bindValue", "value", 1, "day-of-week", 3, "ngModel", "items", "ngModelChange"], ["data-analytics", "dr-cron-field_select-day-of-month", "aria-label", "Day of month", "bindLabel", "label", "bindValue", "value", 1, "day-of-month", 3, "ngModel", "items", "searchable", "ngModelChange"], ["data-analytics", "dr-cron-field_select-month", "aria-label", "Month", "bindLabel", "label", "bindValue", "value", 1, "month-of-year", 3, "ngModel", "items", "ngModelChange"], ["data-analytics", "dr-cron-field_radio-group-period", "name", "every", 1, "cron-configuration__every", 3, "ngModel", "ngModelChange"], ["data-analytics", "dr-cron-field_radio-button-0", 3, "value", 4, "ngFor", "ngForOf"], ["data-analytics", "dr-cron-field_radio-button-0", 3, "value"], [1, "cron-configuration__advanced"], [1, "cron-configuration__advanced-note"], [1, "cron-configuration__advanced-label"], ["data-analytics", "dr-cron-field_input-advanced", 3, "ngModel", "ngModelChange"], ["class", "cron-configuration__advanced-error", 4, "ngIf"], [1, "cron-configuration__advanced-error"], [4, "ngIf", "ngIfElse"], ["singleRowMode", ""], [1, "cron-configuration__section", "cron-configuration__row"], [3, "ngTemplateOutlet", 4, "ngIf"], ["class", "cron-configuration__section cron-configuration__row", 4, "ngIf"], [1, "cron-configuration__section", "cron-configuration__row", "cron-configuration__row--time"], [1, "time-prefix"], [3, "ngModel", "ngModelChange"], ["class", "cron-configuration__section", 4, "ngIf"], [1, "cron-configuration__section"], ["data-analytics", "dr-cron-field_input-hour", "aria-label", "Hour", "type", "number", 1, "hours-input", 3, "ngModel", "mask", "min", "max", "ngModelChange"], [1, "time-dots"], ["data-analytics", "dr-cron-field_input-minute", "aria-label", "Minute", "type", "number", 1, "minutes-input", 3, "ngModel", "mask", "min", "max", "ngModelChange"], ["data-analytics", "dr-cron-field_select-time-period", "aria-label", "Time period", 1, "time-period-selector", 3, "ngModel", "items", "ngModelChange"], ["data-analytics", "dr-cron-field_select-timezone", "aria-label", "Time zone", "bindLabel", "label", "bindValue", "value", 1, "gmt-offsets", 3, "ngModel", "items", "textView", "ngModelChange"], ["labelTemplate", ""]], template: function DrCronFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
505
582
|
i0.ɵɵtemplate(0, DrCronFieldComponent_dr_input_0_Template, 3, 6, "dr-input", 0);
|
|
506
583
|
i0.ɵɵtemplate(1, DrCronFieldComponent_ng_template_1_Template, 8, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
507
|
-
i0.ɵɵtemplate(3, DrCronFieldComponent_ng_template_3_Template,
|
|
584
|
+
i0.ɵɵtemplate(3, DrCronFieldComponent_ng_template_3_Template, 14, 5, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
|
|
508
585
|
} if (rf & 2) {
|
|
509
586
|
const _r3 = i0.ɵɵreference(4);
|
|
510
587
|
i0.ɵɵproperty("ngIf", !ctx.flatMode)("ngIfElse", _r3);
|
|
511
|
-
} }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, FormsModule, i2.NgControlStatus, i2.NgModel, DrTooltipModule, DrInputsModule, i3.DrButtonComponent, i4.RadioButtonComponent, i5.RadioGroupComponent, i6.DrInputComponent, i7.DrSelectComponent, DrPopoverModule, i8.DrPopoverDirective, TimePickerComponent], styles: ["[_nghost-%COMP%] dr-input[_ngcontent-%COMP%] , [_nghost-%COMP%] dr-input[_ngcontent-%COMP%] input{cursor:pointer;text-overflow:ellipsis}.recurrence-popup__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex-grow:1;padding:16px 32px}.recurrence-popup__footer[_ngcontent-%COMP%]{display:flex;align-items:center;padding:8px 16px;border-top:1px solid #dfe0e3;justify-content:flex-end}.recurrence-popup__footer[_ngcontent-%COMP%] dr-button[_ngcontent-%COMP%]{margin-left:12px}.cron-configuration[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:640px;height:auto;font-size:14px;line-height:24px;font-weight:400}.cron-configuration__every[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;margin:16px 0;gap:24px}.cron-configuration__section[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:nowrap;margin-bottom:8px}.cron-configuration__section[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-shrink:0}.cron-configuration[_ngcontent-%COMP%] .month-of-quarter[_ngcontent-%COMP%]{width:65px;flex-shrink:0;margin:0 8px}.cron-configuration[_ngcontent-%COMP%] .day-of-week[_ngcontent-%COMP%]{width:132px;flex-shrink:0;margin:0 8px}.cron-configuration[_ngcontent-%COMP%] .month-of-year[_ngcontent-%COMP%]{width:125px;flex-shrink:0;margin:0 0 0 8px}.cron-configuration[_ngcontent-%COMP%] .day-of-month[_ngcontent-%COMP%]{width:75px;flex-shrink:0;margin:0 8px}.cron-configuration[_ngcontent-%COMP%] .hours-input[_ngcontent-%COMP%]{width:62px;flex-shrink:0;margin-left:8px}.cron-configuration[_ngcontent-%COMP%] .minutes-input[_ngcontent-%COMP%]{width:62px;flex-shrink:0}.cron-configuration[_ngcontent-%COMP%] .time-period-selector[_ngcontent-%COMP%]{width:64px;flex-shrink:0;margin-left:8px}.cron-configuration[_ngcontent-%COMP%] .time-prefix[_ngcontent-%COMP%]{margin-left:4px}.cron-configuration[_ngcontent-%COMP%] .time-dots[_ngcontent-%COMP%]{margin:0 4px}.cron-configuration[_ngcontent-%COMP%] .gmt-offsets[_ngcontent-%COMP%]{margin-left:16px}.cron-configuration--multi-row[_ngcontent-%COMP%]{width:auto}.cron-configuration--multi-row[_ngcontent-%COMP%] .cron-configuration__row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.cron-configuration--multi-row[_ngcontent-%COMP%] .cron-configuration__row--time[_ngcontent-%COMP%]{margin-top:8px}.cron-configuration--multi-row[_ngcontent-%COMP%] .time-prefix[_ngcontent-%COMP%]{margin-left:0}"], changeDetection: 0 }); }
|
|
588
|
+
} }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, FormsModule, i2.NgControlStatus, i2.NgModel, DrTooltipModule, DrInputsModule, i3.DrButtonComponent, i4.RadioButtonComponent, i5.RadioGroupComponent, i6.DrInputComponent, i7.DrSelectComponent, DrPopoverModule, i8.DrPopoverDirective, TimePickerComponent], styles: ["[_nghost-%COMP%] dr-input[_ngcontent-%COMP%] , [_nghost-%COMP%] dr-input[_ngcontent-%COMP%] input{cursor:pointer;text-overflow:ellipsis}.recurrence-popup__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex-grow:1;padding:16px 32px}.recurrence-popup__footer[_ngcontent-%COMP%]{display:flex;align-items:center;padding:8px 16px;border-top:1px solid #dfe0e3;justify-content:flex-end}.recurrence-popup__footer[_ngcontent-%COMP%] dr-button[_ngcontent-%COMP%]{margin-left:12px}.cron-configuration[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:640px;height:auto;font-size:14px;line-height:24px;font-weight:400}.cron-configuration__every[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;margin:16px 0;gap:24px}.cron-configuration__section[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:nowrap;margin-bottom:8px}.cron-configuration__section[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-shrink:0}.cron-configuration[_ngcontent-%COMP%] .month-of-quarter[_ngcontent-%COMP%]{width:65px;flex-shrink:0;margin:0 8px}.cron-configuration[_ngcontent-%COMP%] .day-of-week[_ngcontent-%COMP%]{width:132px;flex-shrink:0;margin:0 8px}.cron-configuration[_ngcontent-%COMP%] .month-of-year[_ngcontent-%COMP%]{width:125px;flex-shrink:0;margin:0 0 0 8px}.cron-configuration[_ngcontent-%COMP%] .day-of-month[_ngcontent-%COMP%]{width:75px;flex-shrink:0;margin:0 8px}.cron-configuration[_ngcontent-%COMP%] .hours-input[_ngcontent-%COMP%]{width:62px;flex-shrink:0;margin-left:8px}.cron-configuration[_ngcontent-%COMP%] .minutes-input[_ngcontent-%COMP%]{width:62px;flex-shrink:0}.cron-configuration[_ngcontent-%COMP%] .time-period-selector[_ngcontent-%COMP%]{width:64px;flex-shrink:0;margin-left:8px}.cron-configuration[_ngcontent-%COMP%] .time-prefix[_ngcontent-%COMP%]{margin-left:4px}.cron-configuration[_ngcontent-%COMP%] .time-dots[_ngcontent-%COMP%]{margin:0 4px}.cron-configuration[_ngcontent-%COMP%] .gmt-offsets[_ngcontent-%COMP%]{margin-left:16px}.cron-configuration__advanced[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.cron-configuration__advanced[_ngcontent-%COMP%] dr-input[_ngcontent-%COMP%] input{cursor:text}.cron-configuration__advanced-error[_ngcontent-%COMP%]{color:#bf1d30}.cron-configuration--multi-row[_ngcontent-%COMP%]{width:auto}.cron-configuration--multi-row[_ngcontent-%COMP%] .cron-configuration__row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.cron-configuration--multi-row[_ngcontent-%COMP%] .cron-configuration__row--time[_ngcontent-%COMP%]{margin-top:8px}.cron-configuration--multi-row[_ngcontent-%COMP%] .time-prefix[_ngcontent-%COMP%]{margin-left:0}"], changeDetection: 0 }); }
|
|
512
589
|
}
|
|
513
590
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrCronFieldComponent, [{
|
|
514
591
|
type: Component,
|
|
@@ -518,7 +595,7 @@ export class DrCronFieldComponent {
|
|
|
518
595
|
useExisting: forwardRef((() => DrCronFieldComponent)),
|
|
519
596
|
multi: true,
|
|
520
597
|
},
|
|
521
|
-
], imports: [CommonModule, FormsModule, DrTooltipModule, DrInputsModule, DrPopoverModule, TimePickerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dr-input\n [id]=\"id\"\n data-analytics=\"dr-cron-field_input-main\"\n aria-label=\"Schedule\"\n *ngIf=\"!flatMode; else cronConfiguration\"\n placeholder=\"Select...\"\n (click)=\"!disabled ? openPopover() : null\"\n [(ngModel)]=\"visibleString\"\n [drPopover]=\"!disabled ? recurrencePopover : null\"\n [drPopoverPosition]=\"popoverPosition\"\n [disabled]=\"disabled\"\n [readonly]=\"true\">\n <i class=\"dr-icon-date\" prefixIcon></i>\n <i class=\"dr-icon-arrow-down\" suffixIcon></i>\n</dr-input>\n\n<ng-template #recurrencePopover let-closePopover=\"closePopover\">\n <div class=\"recurrence-popup\">\n <div class=\"recurrence-popup__body\">\n <ng-container [ngTemplateOutlet]=\"cronConfiguration\"></ng-container>\n </div>\n <div class=\"recurrence-popup__footer\">\n <dr-button data-analytics=\"dr-cron-field_button-cancel\" theme=\"secondary\" (click)=\"closePopover()\">Cancel</dr-button>\n <dr-button data-analytics=\"dr-cron-field_button-save\" (click)=\"update(); closePopover()\">Save</dr-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cronConfiguration>\n <ng-template #quarterConfig>\n <span>Repeat every quarter on</span>\n <dr-select\n data-analytics=\"dr-cron-field_select-quarter-month\"\n aria-label=\"Quarter month\"\n [(ngModel)]=\"cronModel.month\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"MONTH_OF_QUARTER_ARRAY\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"month-of-quarter\"></dr-select>\n <span>month of the quarter</span>\n </ng-template>\n\n <ng-template #hourConfig>\n <span>Repeat every</span>\n <dr-select\n data-analytics=\"dr-cron-field_select-every-x-hours\"\n aria-label=\"Hour interval\"\n [(ngModel)]=\"cronModel.everyXHours\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"HOURS_DIVISIBLE_INTO_DAY\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"day-of-month\">\n </dr-select>\n <span>hour(s)</span>\n </ng-template>\n\n <ng-template #weekConfig>\n <span>Repeat every</span>\n <dr-select\n data-analytics=\"dr-cron-field_select-day-of-week\"\n aria-label=\"Day of week\"\n [(ngModel)]=\"cronModel.dayOfWeek\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"DAY_OF_WEEK_ARRAY\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"day-of-week\">\n </dr-select>\n </ng-template>\n\n <ng-template #dayOfMonthSelector>\n <dr-select\n data-analytics=\"dr-cron-field_select-day-of-month\"\n aria-label=\"Day of month\"\n [(ngModel)]=\"cronModel.dayOfMonth\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"DAY_OF_MONTH_ARRAY\"\n [searchable]=\"true\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"day-of-month\">\n </dr-select>\n </ng-template>\n\n <ng-template #yearMonthSelector>\n <span>Repeat every</span>\n <dr-select\n data-analytics=\"dr-cron-field_select-month\"\n aria-label=\"Month\"\n [(ngModel)]=\"cronModel.month\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"MONTH_OF_YEAR_ARRAY\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"month-of-year\">\n </dr-select>\n </ng-template>\n\n <div class=\"cron-configuration\" [class.cron-configuration--multi-row]=\"multiRowMode\">\n <dr-radio-group\n data-analytics=\"dr-cron-field_radio-group-period\"\n *ngIf=\"!hidePeriodSelector\"\n class=\"cron-configuration__every\"\n [(ngModel)]=\"cronModel.every\"\n (ngModelChange)=\"onEveryChange($event)\"\n name=\"every\">\n <dr-radio-button\n *ngFor=\"let option of cronEditorPeriodArray\"\n [value]=\"option.value\"\n [attr.data-analytics]=\"'dr-cron-field_radio-button-' + option.value\">\n {{ option.label }}\n </dr-radio-button>\n </dr-radio-group>\n\n <ng-container *ngIf=\"multiRowMode; else singleRowMode\">\n <div class=\"cron-configuration__section cron-configuration__row\">\n <ng-container\n *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\"\n [ngTemplateOutlet]=\"quarterConfig\"></ng-container>\n <span *ngIf=\"cronModel.every === cronEditorPeriod.DAY\">Repeat every day</span>\n <ng-container *ngIf=\"cronModel.every === cronEditorPeriod.HOUR\" [ngTemplateOutlet]=\"hourConfig\"></ng-container>\n <ng-container *ngIf=\"cronModel.every === cronEditorPeriod.WEEK\" [ngTemplateOutlet]=\"weekConfig\"></ng-container>\n <ng-container *ngIf=\"cronModel.every === cronEditorPeriod.YEAR\">\n <ng-container [ngTemplateOutlet]=\"yearMonthSelector\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"dayOfMonthSelector\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"cronModel.every === cronEditorPeriod.MONTH\">\n <span>Repeat on</span>\n <ng-container [ngTemplateOutlet]=\"dayOfMonthSelector\"></ng-container>\n <span>day of every month</span>\n </ng-container>\n </div>\n\n <div class=\"cron-configuration__section cron-configuration__row\" *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\">\n <span>on</span>\n <ng-container [ngTemplateOutlet]=\"dayOfMonthSelector\"></ng-container>\n <span>day of the month</span>\n </div>\n\n <div class=\"cron-configuration__section cron-configuration__row cron-configuration__row--time\">\n <span class=\"time-prefix\">at</span>\n <dr-time-picker [ngModel]=\"cronModel\" (ngModelChange)=\"onTimePickerChange($event)\"> </dr-time-picker>\n </div>\n </ng-container>\n\n <ng-template #singleRowMode>\n <div *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\" class=\"cron-configuration__section\">\n <ng-container [ngTemplateOutlet]=\"quarterConfig\"></ng-container>\n </div>\n <div class=\"cron-configuration__section\">\n <span *ngIf=\"cronModel.every === cronEditorPeriod.DAY\"> Repeat every day </span>\n <ng-container *ngIf=\"cronModel.every === cronEditorPeriod.HOUR\" [ngTemplateOutlet]=\"hourConfig\"></ng-container>\n <ng-container *ngIf=\"cronModel.every === cronEditorPeriod.WEEK\" [ngTemplateOutlet]=\"weekConfig\"></ng-container>\n\n <ng-container\n *ngIf=\"\n cronModel.every !== cronEditorPeriod.WEEK &&\n cronModel.every !== cronEditorPeriod.HOUR &&\n cronModel.every !== cronEditorPeriod.DAY\n \">\n <span *ngIf=\"cronModel.every === cronEditorPeriod.MONTH\">Repeat on </span>\n <span *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\">on </span>\n <ng-container\n *ngIf=\"cronModel.every === cronEditorPeriod.YEAR\"\n [ngTemplateOutlet]=\"yearMonthSelector\"></ng-container>\n\n <ng-container [ngTemplateOutlet]=\"dayOfMonthSelector\"></ng-container>\n\n <span *ngIf=\"cronModel.every === cronEditorPeriod.MONTH\">day of every month </span>\n <span *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\">day of the month </span>\n </ng-container>\n <span class=\"time-prefix\">at</span>\n <dr-input\n data-analytics=\"dr-cron-field_input-hour\"\n aria-label=\"Hour\"\n [(ngModel)]=\"cronModel.hour\"\n (ngModelChange)=\"onSelectionChange()\"\n [mask]=\"'00'\"\n [min]=\"1\"\n [max]=\"12\"\n type=\"number\"\n class=\"hours-input\">\n </dr-input>\n <span class=\"time-dots\">:</span>\n <dr-input\n data-analytics=\"dr-cron-field_input-minute\"\n aria-label=\"Minute\"\n [(ngModel)]=\"cronModel.minute\"\n (ngModelChange)=\"onSelectionChange()\"\n [mask]=\"'00'\"\n [min]=\"0\"\n [max]=\"59\"\n type=\"number\"\n class=\"minutes-input\">\n </dr-input>\n <dr-select\n data-analytics=\"dr-cron-field_select-time-period\"\n aria-label=\"Time period\"\n [(ngModel)]=\"cronModel.timePeriod\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"CRON_TIME_PERIOD_ARRAY\"\n class=\"time-period-selector\"></dr-select>\n <dr-select\n data-analytics=\"dr-cron-field_select-timezone\"\n aria-label=\"Time zone\"\n [(ngModel)]=\"cronModel.timeZone\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"GMT_OFFSETS\"\n [textView]=\"true\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"gmt-offsets\">\n <ng-template #labelTemplate let-item=\"item\">\n {{ LOCAL_TIME_ZONE_OFFSET !== cronModel.timeZone ? item.label : 'Local Time' }}\n </ng-template>\n </dr-select>\n </div>\n </ng-template>\n </div>\n</ng-template>\n", styles: [":host dr-input::ng-deep,:host dr-input::ng-deep input{cursor:pointer;text-overflow:ellipsis}.recurrence-popup__body{display:flex;flex-direction:column;flex-grow:1;padding:16px 32px}.recurrence-popup__footer{display:flex;align-items:center;padding:8px 16px;border-top:1px solid #dfe0e3;justify-content:flex-end}.recurrence-popup__footer dr-button{margin-left:12px}.cron-configuration{display:flex;flex-direction:column;width:640px;height:auto;font-size:14px;line-height:24px;font-weight:400}.cron-configuration__every{display:flex;align-items:center;width:100%;margin:16px 0;gap:24px}.cron-configuration__section{display:flex;align-items:center;flex-wrap:nowrap;margin-bottom:8px}.cron-configuration__section span{flex-shrink:0}.cron-configuration .month-of-quarter{width:65px;flex-shrink:0;margin:0 8px}.cron-configuration .day-of-week{width:132px;flex-shrink:0;margin:0 8px}.cron-configuration .month-of-year{width:125px;flex-shrink:0;margin:0 0 0 8px}.cron-configuration .day-of-month{width:75px;flex-shrink:0;margin:0 8px}.cron-configuration .hours-input{width:62px;flex-shrink:0;margin-left:8px}.cron-configuration .minutes-input{width:62px;flex-shrink:0}.cron-configuration .time-period-selector{width:64px;flex-shrink:0;margin-left:8px}.cron-configuration .time-prefix{margin-left:4px}.cron-configuration .time-dots{margin:0 4px}.cron-configuration .gmt-offsets{margin-left:16px}.cron-configuration--multi-row{width:auto}.cron-configuration--multi-row .cron-configuration__row{display:flex;align-items:center;gap:8px}.cron-configuration--multi-row .cron-configuration__row--time{margin-top:8px}.cron-configuration--multi-row .time-prefix{margin-left:0}\n"] }]
|
|
598
|
+
], imports: [CommonModule, FormsModule, DrTooltipModule, DrInputsModule, DrPopoverModule, TimePickerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dr-input\n [id]=\"id\"\n data-analytics=\"dr-cron-field_input-main\"\n aria-label=\"Schedule\"\n *ngIf=\"!flatMode; else cronConfiguration\"\n placeholder=\"Select...\"\n (click)=\"!disabled ? openPopover() : null\"\n [(ngModel)]=\"visibleString\"\n [drPopover]=\"!disabled ? recurrencePopover : null\"\n [drPopoverPosition]=\"popoverPosition\"\n [disabled]=\"disabled\"\n [readonly]=\"true\">\n <i class=\"dr-icon-date\" prefixIcon></i>\n <i class=\"dr-icon-arrow-down\" suffixIcon></i>\n</dr-input>\n\n<ng-template #recurrencePopover let-closePopover=\"closePopover\">\n <div class=\"recurrence-popup\">\n <div class=\"recurrence-popup__body\">\n <ng-container [ngTemplateOutlet]=\"cronConfiguration\"></ng-container>\n </div>\n <div class=\"recurrence-popup__footer\">\n <dr-button data-analytics=\"dr-cron-field_button-cancel\" theme=\"secondary\" (click)=\"closePopover()\">Cancel</dr-button>\n <dr-button data-analytics=\"dr-cron-field_button-save\" (click)=\"update(); closePopover()\">Save</dr-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cronConfiguration>\n <ng-template #quarterConfig>\n <span>Repeat every quarter on</span>\n <dr-select\n data-analytics=\"dr-cron-field_select-quarter-month\"\n aria-label=\"Quarter month\"\n [(ngModel)]=\"cronModel.month\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"MONTH_OF_QUARTER_ARRAY\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"month-of-quarter\"></dr-select>\n <span>month of the quarter</span>\n </ng-template>\n\n <ng-template #hourConfig>\n <span>Repeat every</span>\n <dr-select\n data-analytics=\"dr-cron-field_select-every-x-hours\"\n aria-label=\"Hour interval\"\n [(ngModel)]=\"cronModel.everyXHours\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"HOURS_DIVISIBLE_INTO_DAY\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"day-of-month\">\n </dr-select>\n <span>hour(s)</span>\n </ng-template>\n\n <ng-template #weekConfig>\n <span>Repeat every</span>\n <dr-select\n data-analytics=\"dr-cron-field_select-day-of-week\"\n aria-label=\"Day of week\"\n [(ngModel)]=\"cronModel.dayOfWeek\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"DAY_OF_WEEK_ARRAY\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"day-of-week\">\n </dr-select>\n </ng-template>\n\n <ng-template #dayOfMonthSelector>\n <dr-select\n data-analytics=\"dr-cron-field_select-day-of-month\"\n aria-label=\"Day of month\"\n [(ngModel)]=\"cronModel.dayOfMonth\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"DAY_OF_MONTH_ARRAY\"\n [searchable]=\"true\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"day-of-month\">\n </dr-select>\n </ng-template>\n\n <ng-template #yearMonthSelector>\n <span>Repeat every</span>\n <dr-select\n data-analytics=\"dr-cron-field_select-month\"\n aria-label=\"Month\"\n [(ngModel)]=\"cronModel.month\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"MONTH_OF_YEAR_ARRAY\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"month-of-year\">\n </dr-select>\n </ng-template>\n\n <div class=\"cron-configuration\" [class.cron-configuration--multi-row]=\"multiRowMode\">\n <dr-radio-group\n data-analytics=\"dr-cron-field_radio-group-period\"\n *ngIf=\"!hidePeriodSelector\"\n class=\"cron-configuration__every\"\n [ngModel]=\"isAdvancedMode ? 'advanced' : cronModel.every\"\n (ngModelChange)=\"onEveryChange($event)\"\n name=\"every\">\n <dr-radio-button\n data-analytics=\"dr-cron-field_radio-button-0\"\n *ngFor=\"let option of cronEditorPeriodArray\"\n [value]=\"option.value\"\n [attr.data-analytics]=\"'dr-cron-field_radio-button-' + option.value\">\n {{ option.label }}\n </dr-radio-button>\n </dr-radio-group>\n <div *ngIf=\"isAdvancedMode\" class=\"cron-configuration__advanced\">\n <div class=\"cron-configuration__advanced-note\">\n Use crontab to set custom time intervals for sync frequency, such as every two weeks at 10:05.\n </div>\n <div class=\"cron-configuration__advanced-label\">Enter your cron expression:</div>\n <dr-input\n data-analytics=\"dr-cron-field_input-advanced\"\n [(ngModel)]=\"advancedCron\"\n (ngModelChange)=\"onAdvancedChange()\">\n </dr-input>\n <div *ngIf=\"advancedError\" class=\"cron-configuration__advanced-error\">{{ advancedError }}</div>\n </div>\n\n <ng-container *ngIf=\"!isAdvancedMode\">\n <ng-container *ngIf=\"multiRowMode; else singleRowMode\">\n <div class=\"cron-configuration__section cron-configuration__row\">\n <ng-container\n *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\"\n [ngTemplateOutlet]=\"quarterConfig\"></ng-container>\n <span *ngIf=\"cronModel.every === cronEditorPeriod.DAY\">Repeat every day</span>\n <ng-container\n *ngIf=\"cronModel.every === cronEditorPeriod.HOUR\"\n [ngTemplateOutlet]=\"hourConfig\"></ng-container>\n <ng-container\n *ngIf=\"cronModel.every === cronEditorPeriod.WEEK\"\n [ngTemplateOutlet]=\"weekConfig\"></ng-container>\n <ng-container *ngIf=\"cronModel.every === cronEditorPeriod.YEAR\">\n <ng-container [ngTemplateOutlet]=\"yearMonthSelector\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"dayOfMonthSelector\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"cronModel.every === cronEditorPeriod.MONTH\">\n <span>Repeat on</span>\n <ng-container [ngTemplateOutlet]=\"dayOfMonthSelector\"></ng-container>\n <span>day of every month</span>\n </ng-container>\n </div>\n\n <div\n class=\"cron-configuration__section cron-configuration__row\"\n *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\">\n <span>on</span>\n <ng-container [ngTemplateOutlet]=\"dayOfMonthSelector\"></ng-container>\n <span>day of the month</span>\n </div>\n\n <div class=\"cron-configuration__section cron-configuration__row cron-configuration__row--time\">\n <span class=\"time-prefix\">at</span>\n <dr-time-picker [ngModel]=\"cronModel\" (ngModelChange)=\"onTimePickerChange($event)\"> </dr-time-picker>\n </div>\n </ng-container>\n\n <ng-template #singleRowMode>\n <div *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\" class=\"cron-configuration__section\">\n <ng-container [ngTemplateOutlet]=\"quarterConfig\"></ng-container>\n </div>\n <div class=\"cron-configuration__section\">\n <span *ngIf=\"cronModel.every === cronEditorPeriod.DAY\"> Repeat every day </span>\n <ng-container\n *ngIf=\"cronModel.every === cronEditorPeriod.HOUR\"\n [ngTemplateOutlet]=\"hourConfig\"></ng-container>\n <ng-container\n *ngIf=\"cronModel.every === cronEditorPeriod.WEEK\"\n [ngTemplateOutlet]=\"weekConfig\"></ng-container>\n\n <ng-container\n *ngIf=\"\n cronModel.every !== cronEditorPeriod.WEEK &&\n cronModel.every !== cronEditorPeriod.HOUR &&\n cronModel.every !== cronEditorPeriod.DAY\n \">\n <span *ngIf=\"cronModel.every === cronEditorPeriod.MONTH\">Repeat on </span>\n <span *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\">on </span>\n <ng-container\n *ngIf=\"cronModel.every === cronEditorPeriod.YEAR\"\n [ngTemplateOutlet]=\"yearMonthSelector\"></ng-container>\n\n <ng-container [ngTemplateOutlet]=\"dayOfMonthSelector\"></ng-container>\n\n <span *ngIf=\"cronModel.every === cronEditorPeriod.MONTH\">day of every month </span>\n <span *ngIf=\"cronModel.every === cronEditorPeriod.QUARTER\">day of the month </span>\n </ng-container>\n <span class=\"time-prefix\">at</span>\n <dr-input\n data-analytics=\"dr-cron-field_input-hour\"\n aria-label=\"Hour\"\n [(ngModel)]=\"cronModel.hour\"\n (ngModelChange)=\"onSelectionChange()\"\n [mask]=\"'00'\"\n [min]=\"0\"\n [max]=\"12\"\n type=\"number\"\n class=\"hours-input\">\n </dr-input>\n <span class=\"time-dots\">:</span>\n <dr-input\n data-analytics=\"dr-cron-field_input-minute\"\n aria-label=\"Minute\"\n [(ngModel)]=\"cronModel.minute\"\n (ngModelChange)=\"onSelectionChange()\"\n [mask]=\"'00'\"\n [min]=\"0\"\n [max]=\"59\"\n type=\"number\"\n class=\"minutes-input\">\n </dr-input>\n <dr-select\n data-analytics=\"dr-cron-field_select-time-period\"\n aria-label=\"Time period\"\n [(ngModel)]=\"cronModel.timePeriod\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"CRON_TIME_PERIOD_ARRAY\"\n class=\"time-period-selector\"></dr-select>\n <dr-select\n data-analytics=\"dr-cron-field_select-timezone\"\n aria-label=\"Time zone\"\n [(ngModel)]=\"cronModel.timeZone\"\n (ngModelChange)=\"onSelectionChange()\"\n [items]=\"GMT_OFFSETS\"\n [textView]=\"true\"\n bindLabel=\"label\"\n bindValue=\"value\"\n class=\"gmt-offsets\">\n <ng-template #labelTemplate let-item=\"item\">\n {{ LOCAL_TIME_ZONE_OFFSET !== cronModel.timeZone ? item.label : 'Local Time' }}\n </ng-template>\n </dr-select>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host dr-input::ng-deep,:host dr-input::ng-deep input{cursor:pointer;text-overflow:ellipsis}.recurrence-popup__body{display:flex;flex-direction:column;flex-grow:1;padding:16px 32px}.recurrence-popup__footer{display:flex;align-items:center;padding:8px 16px;border-top:1px solid #dfe0e3;justify-content:flex-end}.recurrence-popup__footer dr-button{margin-left:12px}.cron-configuration{display:flex;flex-direction:column;width:640px;height:auto;font-size:14px;line-height:24px;font-weight:400}.cron-configuration__every{display:flex;align-items:center;width:100%;margin:16px 0;gap:24px}.cron-configuration__section{display:flex;align-items:center;flex-wrap:nowrap;margin-bottom:8px}.cron-configuration__section span{flex-shrink:0}.cron-configuration .month-of-quarter{width:65px;flex-shrink:0;margin:0 8px}.cron-configuration .day-of-week{width:132px;flex-shrink:0;margin:0 8px}.cron-configuration .month-of-year{width:125px;flex-shrink:0;margin:0 0 0 8px}.cron-configuration .day-of-month{width:75px;flex-shrink:0;margin:0 8px}.cron-configuration .hours-input{width:62px;flex-shrink:0;margin-left:8px}.cron-configuration .minutes-input{width:62px;flex-shrink:0}.cron-configuration .time-period-selector{width:64px;flex-shrink:0;margin-left:8px}.cron-configuration .time-prefix{margin-left:4px}.cron-configuration .time-dots{margin:0 4px}.cron-configuration .gmt-offsets{margin-left:16px}.cron-configuration__advanced{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.cron-configuration__advanced dr-input::ng-deep input{cursor:text}.cron-configuration__advanced-error{color:#bf1d30}.cron-configuration--multi-row{width:auto}.cron-configuration--multi-row .cron-configuration__row{display:flex;align-items:center;gap:8px}.cron-configuration--multi-row .cron-configuration__row--time{margin-top:8px}.cron-configuration--multi-row .time-prefix{margin-left:0}\n"] }]
|
|
522
599
|
}], function () { return [{ type: i0.ChangeDetectorRef }]; }, { id: [{
|
|
523
600
|
type: Input
|
|
524
601
|
}], hostId: [{
|
|
@@ -544,5 +621,10 @@ export class DrCronFieldComponent {
|
|
|
544
621
|
}], multiRowMode: [{
|
|
545
622
|
type: Input,
|
|
546
623
|
args: [{ transform: booleanAttribute }]
|
|
624
|
+
}], allowAdvanced: [{
|
|
625
|
+
type: Input,
|
|
626
|
+
args: [{ transform: booleanAttribute }]
|
|
627
|
+
}], validateCron: [{
|
|
628
|
+
type: Input
|
|
547
629
|
}] }); })();
|
|
548
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY3Jvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jcm9uLWZpZWxkL2RyLWNyb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY3Jvbi1maWVsZC9kci1jcm9uLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCxjQUFjLEVBQ2QsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixtQkFBbUIsR0FFdEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNILGVBQWUsRUFDZixVQUFVLEVBQ1YsK0JBQStCLEVBQy9CLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBRXhCLHNCQUFzQixFQUN0QixtQkFBbUIsR0FDdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0lDM0J0RixtQ0FXc0I7SUFMbEIsd0tBQVMsa0NB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b0hBQUUsZUFBZSx5QkFBRSxtQkFBbUI7O3VGQUtqRyxvQkFBb0I7Y0FmaEMsU0FBUzsyQkFDSSxlQUFlLGNBQ2IsSUFBSSxhQUNMO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHFCQUFxQixFQUFDO3dCQUNuRCxLQUFLLEVBQUUsSUFBSTtxQkFDZDtpQkFDSixXQUNRLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxtQkFDMUYsdUJBQXVCLENBQUMsTUFBTTtvRUFLdEMsRUFBRTtrQkFBVixLQUFLO1lBQ2tCLE1BQU07a0JBQTdCLFdBQVc7bUJBQUMsU0FBUztZQUlmLFFBQVE7a0JBRmQsS0FBSzs7a0JBQ0wsV0FBVzttQkFBQyxnQkFBZ0I7WUFHcEIsY0FBYztrQkFBdEIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyxlQUFlO2tCQUF2QixLQUFLO1lBQ2tDLGtCQUFrQjtrQkFBekQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUNFLFFBQVE7a0JBQS9DLEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFDRSxZQUFZO2tCQUFuRCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEcklucHV0c01vZHVsZSxcbiAgICBHTVRfT0ZGU0VUUyxcbiAgICBMT0NBTF9USU1FX1pPTkVfT0ZGU0VULFxuICAgIFRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgVGltZXBpY2tlck1vZGVsLFxufSBmcm9tICcuLi9kci1pbnB1dHMnO1xuaW1wb3J0IHtcbiAgICBBTExPV0VEX1BFUklPRFMsXG4gICAgQ3JvbkVkaXRvcixcbiAgICBDcm9uRWRpdG9yRGVmYXVsdENvbmZpZ0J5UGVyaW9kLFxuICAgIENyb25FZGl0b3JQZXJpb2QsXG4gICAgQ3JvblRpbWVQZXJpb2QsXG4gICAgREFZX09GX01PTlRIX0FSUkFZLFxuICAgIERBWV9PRl9XRUVLX0FSUkFZLFxuICAgIGdldENyb25UeXBlQXNQZXJpb2RMYWJlbCxcbiAgICBIT1VSU19ESVZJU0lCTEVfSU5UT19EQVksXG4gICAgSUNyb25FZGl0b3IsXG4gICAgTU9OVEhfT0ZfUVVBUlRFUl9BUlJBWSxcbiAgICBNT05USF9PRl9ZRUFSX0FSUkFZLFxufSBmcm9tICcuL2RyLWNyb24tZmllbGQuZWRpdG9yJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Bvc2l0aW9uJztcbmltcG9ydCB7IGNhcGl0YWxpemUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRHJUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vZHItdG9vbHRpcC9kci10b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBEclBvcG92ZXJNb2R1bGUgfSBmcm9tICcuLi9kci1wb3BvdmVyL2RyLXBvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY3Jvbi1maWVsZCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEckNyb25GaWVsZENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBEclRvb2x0aXBNb2R1bGUsIERySW5wdXRzTW9kdWxlLCBEclBvcG92ZXJNb2R1bGUsIFRpbWVQaWNrZXJDb21wb25lbnRdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1jcm9uLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1jcm9uLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERyQ3JvbkZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KCkgaWQ/OiBzdHJpbmc7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgaG9zdElkID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBhbGxvd2VkUGVyaW9kczogQ3JvbkVkaXRvclBlcmlvZFtdID0gQUxMT1dFRF9QRVJJT0RTO1xuICAgIEBJbnB1dCgpIGZpc2NhbFllYXJTdGFydDogbnVtYmVyID0gMTtcbiAgICBASW5wdXQoKSBwb3BvdmVyUG9zaXRpb246IFBvc2l0aW9uID0gJ2JvdHRvbS1sZWZ0JztcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGlkZVBlcmlvZFNlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGZsYXRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG11bHRpUm93TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IERBWV9PRl9NT05USF9BUlJBWSA9IERBWV9PRl9NT05USF9BUlJBWTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgTU9OVEhfT0ZfUVVBUlRFUl9BUlJBWSA9IE1PTlRIX09GX1FVQVJURVJfQVJSQVk7XG4gICAgcHVibGljIHJlYWRvbmx5IE1PTlRIX09GX1lFQVJfQVJSQVkgPSBNT05USF9PRl9ZRUFSX0FSUkFZO1xuICAgIHB1YmxpYyByZWFkb25seSBEQVlfT0ZfV0VFS19BUlJBWSA9IERBWV9PRl9XRUVLX0FSUkFZO1xuICAgIHB1YmxpYyByZWFkb25seSBIT1VSU19ESVZJU0lCTEVfSU5UT19EQVkgPSBIT1VSU19ESVZJU0lCTEVfSU5UT19EQVk7XG4gICAgcHVibGljIHJlYWRvbmx5IENST05fVElNRV9QRVJJT0RfQVJSQVkgPSBbQ3JvblRpbWVQZXJpb2QuQU0sIENyb25UaW1lUGVyaW9kLlBNXTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgTE9DQUxfVElNRV9aT05FX09GRlNFVCA9IExPQ0FMX1RJTUVfWk9ORV9PRkZTRVQ7XG4gICAgcHVibGljIHJlYWRvbmx5IEdNVF9PRkZTRVRTID0gR01UX09GRlNFVFM7XG4gICAgcHVibGljIHJlYWRvbmx5IGNyb25FZGl0b3JQZXJpb2QgPSBDcm9uRWRpdG9yUGVyaW9kO1xuXG4gICAgcHVibGljIGNyb25FZGl0b3JQZXJpb2RBcnJheTogeyB2YWx1ZTogQ3JvbkVkaXRvclBlcmlvZDsgbGFiZWw6IHN0cmluZyB9W107XG4gICAgcHVibGljIHZpc2libGVTdHJpbmc6IHN0cmluZztcbiAgICBwdWJsaWMgdmFsdWVPYmplY3Q6IENyb25FZGl0b3I7XG4gICAgcHVibGljIGNyb25Nb2RlbDogSUNyb25FZGl0b3I7XG5cbiAgICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVTdHJpbmcgPSAnJztcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVPYmplY3QudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52aXNpYmxlU3RyaW5nID0gdGhpcy52YWx1ZU9iamVjdC5nZXRSZWFkYWJsZVN0cmluZygpO1xuICAgICAgICBpZiAodGhpcy5mbGF0TW9kZSAmJiAhdGhpcy5jcm9uTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuY3Jvbk1vZGVsID0gdGhpcy52YWx1ZU9iamVjdC52YWx1ZU9iamVjdDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPYmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVPYmplY3QgPSBuZXcgQ3JvbkVkaXRvcihudWxsLCB0aGlzLmZpc2NhbFllYXJTdGFydCk7XG4gICAgICAgIHRoaXMudmFsdWVPYmplY3QuZXZlcnkgPSB0aGlzLmFsbG93ZWRQZXJpb2RzW3RoaXMuYWxsb3dlZFBlcmlvZHMubGVuZ3RoIC0gMV0gPz8gQ3JvbkVkaXRvclBlcmlvZC5ZRUFSO1xuICAgICAgICB0aGlzLmNyb25Nb2RlbCA9IHRoaXMudmFsdWVPYmplY3QudmFsdWVPYmplY3Q7XG4gICAgICAgIHRoaXMuY3JvbkVkaXRvclBlcmlvZEFycmF5ID0gdGhpcy5hbGxvd2VkUGVyaW9kcy5tYXAoKHBlcmlvZCkgPT4gKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcGVyaW9kLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBjYXBpdGFsaXplKGdldENyb25UeXBlQXNQZXJpb2RMYWJlbChwZXJpb2QpKSxcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5mbGF0TW9kZSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jcm9uTW9kZWwgPSB0aGlzLnZhbHVlT2JqZWN0LnZhbHVlT2JqZWN0O1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlU3RyaW5nID0gdGhpcy52YWx1ZU9iamVjdC5nZXRSZWFkYWJsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKCkge1xuICAgICAgICB0aGlzLnZhbHVlT2JqZWN0LnZhbHVlT2JqZWN0ID0gdGhpcy5jcm9uTW9kZWw7XG4gICAgICAgIHRoaXMudmlzaWJsZVN0cmluZyA9IHRoaXMudmFsdWVPYmplY3QuZ2V0UmVhZGFibGVTdHJpbmcoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZU9iamVjdC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5Qb3BvdmVyKCkge1xuICAgICAgICB0aGlzLmNyb25Nb2RlbCA9IHRoaXMudmFsdWVPYmplY3QudmFsdWVPYmplY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXZlcnlDaGFuZ2UoJGV2ZW50OiBDcm9uRWRpdG9yUGVyaW9kKSB7XG4gICAgICAgIGNvbnN0IHRlbXBWYWx1ZU9iamVjdCA9IG5ldyBDcm9uRWRpdG9yKFxuICAgICAgICAgICAgQ3JvbkVkaXRvckRlZmF1bHRDb25maWdCeVBlcmlvZFskZXZlbnRdKHRoaXMuZmlzY2FsWWVhclN0YXJ0KSxcbiAgICAgICAgICAgIHRoaXMuZmlzY2FsWWVhclN0YXJ0LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNyb25Nb2RlbCA9IHRlbXBWYWx1ZU9iamVjdC52YWx1ZU9iamVjdDtcbiAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRpbWVQaWNrZXJDaGFuZ2UodGltZTogVGltZXBpY2tlck1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3Jvbk1vZGVsLmhvdXIgPSB0aW1lLmhvdXI7XG4gICAgICAgIHRoaXMuY3Jvbk1vZGVsLm1pbnV0ZSA9IHRpbWUubWludXRlO1xuICAgICAgICB0aGlzLmNyb25Nb2RlbC50aW1lUGVyaW9kID0gdGltZS50aW1lUGVyaW9kIGFzIENyb25UaW1lUGVyaW9kO1xuICAgICAgICB0aGlzLmNyb25Nb2RlbC50aW1lWm9uZSA9IHRpbWUudGltZVpvbmU7XG4gICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLmZsYXRNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRyLWlucHV0XG4gICAgW2lkXT1cImlkXCJcbiAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfaW5wdXQtbWFpblwiXG4gICAgYXJpYS1sYWJlbD1cIlNjaGVkdWxlXCJcbiAgICAqbmdJZj1cIiFmbGF0TW9kZTsgZWxzZSBjcm9uQ29uZmlndXJhdGlvblwiXG4gICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QuLi5cIlxuICAgIChjbGljayk9XCIhZGlzYWJsZWQgPyBvcGVuUG9wb3ZlcigpIDogbnVsbFwiXG4gICAgWyhuZ01vZGVsKV09XCJ2aXNpYmxlU3RyaW5nXCJcbiAgICBbZHJQb3BvdmVyXT1cIiFkaXNhYmxlZCA/IHJlY3VycmVuY2VQb3BvdmVyIDogbnVsbFwiXG4gICAgW2RyUG9wb3ZlclBvc2l0aW9uXT1cInBvcG92ZXJQb3NpdGlvblwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZG9ubHldPVwidHJ1ZVwiPlxuICAgIDxpIGNsYXNzPVwiZHItaWNvbi1kYXRlXCIgcHJlZml4SWNvbj48L2k+XG4gICAgPGkgY2xhc3M9XCJkci1pY29uLWFycm93LWRvd25cIiBzdWZmaXhJY29uPjwvaT5cbjwvZHItaW5wdXQ+XG5cbjxuZy10ZW1wbGF0ZSAjcmVjdXJyZW5jZVBvcG92ZXIgbGV0LWNsb3NlUG9wb3Zlcj1cImNsb3NlUG9wb3ZlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJyZWN1cnJlbmNlLXBvcHVwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWN1cnJlbmNlLXBvcHVwX19ib2R5XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNyb25Db25maWd1cmF0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVjdXJyZW5jZS1wb3B1cF9fZm9vdGVyXCI+XG4gICAgICAgICAgICA8ZHItYnV0dG9uIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9idXR0b24tY2FuY2VsXCIgdGhlbWU9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKClcIj5DYW5jZWw8L2RyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkci1idXR0b24gZGF0YS1hbmFseXRpY3M9XCJkci1jcm9uLWZpZWxkX2J1dHRvbi1zYXZlXCIgKGNsaWNrKT1cInVwZGF0ZSgpOyBjbG9zZVBvcG92ZXIoKVwiPlNhdmU8L2RyLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Nyb25Db25maWd1cmF0aW9uPlxuICAgIDxuZy10ZW1wbGF0ZSAjcXVhcnRlckNvbmZpZz5cbiAgICAgICAgPHNwYW4+UmVwZWF0IGV2ZXJ5IHF1YXJ0ZXIgb248L3NwYW4+XG4gICAgICAgIDxkci1zZWxlY3RcbiAgICAgICAgICAgIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9zZWxlY3QtcXVhcnRlci1tb250aFwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiUXVhcnRlciBtb250aFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC5tb250aFwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJNT05USF9PRl9RVUFSVEVSX0FSUkFZXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwibW9udGgtb2YtcXVhcnRlclwiPjwvZHItc2VsZWN0PlxuICAgICAgICA8c3Bhbj5tb250aCBvZiB0aGUgcXVhcnRlcjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNob3VyQ29uZmlnPlxuICAgICAgICA8c3Bhbj5SZXBlYXQgZXZlcnk8L3NwYW4+XG4gICAgICAgIDxkci1zZWxlY3RcbiAgICAgICAgICAgIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9zZWxlY3QtZXZlcnkteC1ob3Vyc1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiSG91ciBpbnRlcnZhbFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC5ldmVyeVhIb3Vyc1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJIT1VSU19ESVZJU0lCTEVfSU5UT19EQVlcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkYXktb2YtbW9udGhcIj5cbiAgICAgICAgPC9kci1zZWxlY3Q+XG4gICAgICAgIDxzcGFuPmhvdXIocyk8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjd2Vla0NvbmZpZz5cbiAgICAgICAgPHNwYW4+UmVwZWF0IGV2ZXJ5PC9zcGFuPlxuICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfc2VsZWN0LWRheS1vZi13ZWVrXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEYXkgb2Ygd2Vla1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC5kYXlPZldlZWtcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiREFZX09GX1dFRUtfQVJSQVlcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkYXktb2Ytd2Vla1wiPlxuICAgICAgICA8L2RyLXNlbGVjdD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNkYXlPZk1vbnRoU2VsZWN0b3I+XG4gICAgICAgIDxkci1zZWxlY3RcbiAgICAgICAgICAgIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9zZWxlY3QtZGF5LW9mLW1vbnRoXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEYXkgb2YgbW9udGhcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjcm9uTW9kZWwuZGF5T2ZNb250aFwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJEQVlfT0ZfTU9OVEhfQVJSQVlcIlxuICAgICAgICAgICAgW3NlYXJjaGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImRheS1vZi1tb250aFwiPlxuICAgICAgICA8L2RyLXNlbGVjdD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICN5ZWFyTW9udGhTZWxlY3Rvcj5cbiAgICAgICAgPHNwYW4+UmVwZWF0IGV2ZXJ5PC9zcGFuPlxuICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfc2VsZWN0LW1vbnRoXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJNb250aFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC5tb250aFwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJNT05USF9PRl9ZRUFSX0FSUkFZXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwibW9udGgtb2YteWVhclwiPlxuICAgICAgICA8L2RyLXNlbGVjdD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiBjbGFzcz1cImNyb24tY29uZmlndXJhdGlvblwiIFtjbGFzcy5jcm9uLWNvbmZpZ3VyYXRpb24tLW11bHRpLXJvd109XCJtdWx0aVJvd01vZGVcIj5cbiAgICAgICAgPGRyLXJhZGlvLWdyb3VwXG4gICAgICAgICAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfcmFkaW8tZ3JvdXAtcGVyaW9kXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWhpZGVQZXJpb2RTZWxlY3RvclwiXG4gICAgICAgICAgICBjbGFzcz1cImNyb24tY29uZmlndXJhdGlvbl9fZXZlcnlcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjcm9uTW9kZWwuZXZlcnlcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FdmVyeUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIG5hbWU9XCJldmVyeVwiPlxuICAgICAgICAgICAgPGRyLXJhZGlvLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY3JvbkVkaXRvclBlcmlvZEFycmF5XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWFuYWx5dGljc109XCInZHItY3Jvbi1maWVsZF9yYWRpby1idXR0b24tJyArIG9wdGlvbi52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgICAgICAgICAgPC9kci1yYWRpby1idXR0b24+XG4gICAgICAgIDwvZHItcmFkaW8tZ3JvdXA+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpUm93TW9kZTsgZWxzZSBzaW5nbGVSb3dNb2RlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Jvbi1jb25maWd1cmF0aW9uX19zZWN0aW9uIGNyb24tY29uZmlndXJhdGlvbl9fcm93XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5RVUFSVEVSXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicXVhcnRlckNvbmZpZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLkRBWVwiPlJlcGVhdCBldmVyeSBkYXk8L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5IT1VSXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG91ckNvbmZpZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuV0VFS1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndlZWtDb25maWdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLllFQVJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ5ZWFyTW9udGhTZWxlY3RvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRheU9mTW9udGhTZWxlY3RvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5NT05USFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5SZXBlYXQgb248L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5T2ZNb250aFNlbGVjdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPmRheSBvZiBldmVyeSBtb250aDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Jvbi1jb25maWd1cmF0aW9uX19zZWN0aW9uIGNyb24tY29uZmlndXJhdGlvbl9fcm93XCIgKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuUVVBUlRFUlwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPm9uPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5T2ZNb250aFNlbGVjdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPHNwYW4+ZGF5IG9mIHRoZSBtb250aDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Jvbi1jb25maWd1cmF0aW9uX19zZWN0aW9uIGNyb24tY29uZmlndXJhdGlvbl9fcm93IGNyb24tY29uZmlndXJhdGlvbl9fcm93LS10aW1lXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lLXByZWZpeFwiPmF0PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkci10aW1lLXBpY2tlciBbbmdNb2RlbF09XCJjcm9uTW9kZWxcIiAobmdNb2RlbENoYW5nZSk9XCJvblRpbWVQaWNrZXJDaGFuZ2UoJGV2ZW50KVwiPiA8L2RyLXRpbWUtcGlja2VyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlUm93TW9kZT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuUVVBUlRFUlwiIGNsYXNzPVwiY3Jvbi1jb25maWd1cmF0aW9uX19zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJxdWFydGVyQ29uZmlnXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcm9uLWNvbmZpZ3VyYXRpb25fX3NlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5EQVlcIj4gUmVwZWF0IGV2ZXJ5IGRheSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5IT1VSXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG91ckNvbmZpZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuV0VFS1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndlZWtDb25maWdcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyb25Nb2RlbC5ldmVyeSAhPT0gY3JvbkVkaXRvclBlcmlvZC5XRUVLICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjcm9uTW9kZWwuZXZlcnkgIT09IGNyb25FZGl0b3JQZXJpb2QuSE9VUiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY3Jvbk1vZGVsLmV2ZXJ5ICE9PSBjcm9uRWRpdG9yUGVyaW9kLkRBWVxuICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuTU9OVEhcIj5SZXBlYXQgb24gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5RVUFSVEVSXCI+b24gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5ZRUFSXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInllYXJNb250aFNlbGVjdG9yXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkYXlPZk1vbnRoU2VsZWN0b3JcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5NT05USFwiPmRheSBvZiBldmVyeSBtb250aCA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLlFVQVJURVJcIj5kYXkgb2YgdGhlIG1vbnRoIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWUtcHJlZml4XCI+YXQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRyLWlucHV0XG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9pbnB1dC1ob3VyXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkhvdXJcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC5ob3VyXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXNrXT1cIicwMCdcIlxuICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjEyXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaG91cnMtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICA8L2RyLWlucHV0PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZS1kb3RzXCI+Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZHItaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmFseXRpY3M9XCJkci1jcm9uLWZpZWxkX2lucHV0LW1pbnV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJNaW51dGVcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC5taW51dGVcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW21hc2tdPVwiJzAwJ1wiXG4gICAgICAgICAgICAgICAgICAgIFttaW5dPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW51dGVzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPC9kci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9zZWxlY3QtdGltZS1wZXJpb2RcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiVGltZSBwZXJpb2RcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC50aW1lUGVyaW9kXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJDUk9OX1RJTUVfUEVSSU9EX0FSUkFZXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLXBlcmlvZC1zZWxlY3RvclwiPjwvZHItc2VsZWN0PlxuICAgICAgICAgICAgICAgIDxkci1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmFseXRpY3M9XCJkci1jcm9uLWZpZWxkX3NlbGVjdC10aW1lem9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJUaW1lIHpvbmVcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC50aW1lWm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiR01UX09GRlNFVFNcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dFZpZXddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdtdC1vZmZzZXRzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWxUZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IExPQ0FMX1RJTUVfWk9ORV9PRkZTRVQgIT09IGNyb25Nb2RlbC50aW1lWm9uZSA/IGl0ZW0ubGFiZWwgOiAnTG9jYWwgVGltZScgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2RyLXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
630
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY3Jvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jcm9uLWZpZWxkL2RyLWNyb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY3Jvbi1maWVsZC9kci1jcm9uLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCxjQUFjLEVBQ2QsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixtQkFBbUIsR0FFdEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNILGVBQWUsRUFDZixVQUFVLEVBQ1YsK0JBQStCLEVBQy9CLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBRXhCLHNCQUFzQixFQUN0QixtQkFBbUIsR0FDdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0lDM0J0RixtQ0FXc0I7SUFMbEIsd0tBQVMsa0NB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VzttQkFBQyxTQUFTO1lBSWYsUUFBUTtrQkFGZCxLQUFLOztrQkFDTCxXQUFXO21CQUFDLGdCQUFnQjtZQUdwQixjQUFjO2tCQUF0QixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDa0Msa0JBQWtCO2tCQUF6RCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBQ0UsUUFBUTtrQkFBL0MsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUNFLFlBQVk7a0JBQW5ELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFDRSxhQUFhO2tCQUFwRCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBQzdCLFlBQVk7a0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERySW5wdXRzTW9kdWxlLFxuICAgIEdNVF9PRkZTRVRTLFxuICAgIExPQ0FMX1RJTUVfWk9ORV9PRkZTRVQsXG4gICAgVGltZVBpY2tlckNvbXBvbmVudCxcbiAgICBUaW1lcGlja2VyTW9kZWwsXG59IGZyb20gJy4uL2RyLWlucHV0cyc7XG5pbXBvcnQge1xuICAgIEFMTE9XRURfUEVSSU9EUyxcbiAgICBDcm9uRWRpdG9yLFxuICAgIENyb25FZGl0b3JEZWZhdWx0Q29uZmlnQnlQZXJpb2QsXG4gICAgQ3JvbkVkaXRvclBlcmlvZCxcbiAgICBDcm9uVGltZVBlcmlvZCxcbiAgICBEQVlfT0ZfTU9OVEhfQVJSQVksXG4gICAgREFZX09GX1dFRUtfQVJSQVksXG4gICAgZ2V0Q3JvblR5cGVBc1BlcmlvZExhYmVsLFxuICAgIEhPVVJTX0RJVklTSUJMRV9JTlRPX0RBWSxcbiAgICBJQ3JvbkVkaXRvcixcbiAgICBNT05USF9PRl9RVUFSVEVSX0FSUkFZLFxuICAgIE1PTlRIX09GX1lFQVJfQVJSQVksXG59IGZyb20gJy4vZHItY3Jvbi1maWVsZC5lZGl0b3InO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvcG9zaXRpb24nO1xuaW1wb3J0IHsgY2FwaXRhbGl6ZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEclRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi9kci10b29sdGlwL2RyLXRvb2x0aXAubW9kdWxlJztcbmltcG9ydCB7IERyUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uL2RyLXBvcG92ZXIvZHItcG9wb3Zlci5tb2R1bGUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1jcm9uLWZpZWxkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyQ3JvbkZpZWxkQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIERyVG9vbHRpcE1vZHVsZSwgRHJJbnB1dHNNb2R1bGUsIERyUG9wb3Zlck1vZHVsZSwgVGltZVBpY2tlckNvbXBvbmVudF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWNyb24tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWNyb24tZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJDcm9uRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASW5wdXQoKSBpZD86IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBob3N0SWQgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJylcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGFsbG93ZWRQZXJpb2RzOiBDcm9uRWRpdG9yUGVyaW9kW10gPSBBTExPV0VEX1BFUklPRFM7XG4gICAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0OiBudW1iZXIgPSAxO1xuICAgIEBJbnB1dCgpIHBvcG92ZXJQb3NpdGlvbjogUG9zaXRpb24gPSAnYm90dG9tLWxlZnQnO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoaWRlUGVyaW9kU2VsZWN0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZmxhdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbXVsdGlSb3dNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsbG93QWR2YW5jZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB2YWxpZGF0ZUNyb24/OiAoY3Jvbjogc3RyaW5nKSA9PiB7IHZhbGlkOiBib29sZWFuOyBlcnJvcl9tZXNzYWdlPzogc3RyaW5nIH07XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgREFZX09GX01PTlRIX0FSUkFZID0gREFZX09GX01PTlRIX0FSUkFZO1xuICAgIHB1YmxpYyByZWFkb25seSBNT05USF9PRl9RVUFSVEVSX0FSUkFZID0gTU9OVEhfT0ZfUVVBUlRFUl9BUlJBWTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgTU9OVEhfT0ZfWUVBUl9BUlJBWSA9IE1PTlRIX09GX1lFQVJfQVJSQVk7XG4gICAgcHVibGljIHJlYWRvbmx5IERBWV9PRl9XRUVLX0FSUkFZID0gREFZX09GX1dFRUtfQVJSQVk7XG4gICAgcHVibGljIHJlYWRvbmx5IEhPVVJTX0RJVklTSUJMRV9JTlRPX0RBWSA9IEhPVVJTX0RJVklTSUJMRV9JTlRPX0RBWTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgQ1JPTl9USU1FX1BFUklPRF9BUlJBWSA9IFtDcm9uVGltZVBlcmlvZC5BTSwgQ3JvblRpbWVQZXJpb2QuUE1dO1xuICAgIHB1YmxpYyByZWFkb25seSBMT0NBTF9USU1FX1pPTkVfT0ZGU0VUID0gTE9DQUxfVElNRV9aT05FX09GRlNFVDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgR01UX09GRlNFVFMgPSBHTVRfT0ZGU0VUUztcbiAgICBwdWJsaWMgcmVhZG9ubHkgY3JvbkVkaXRvclBlcmlvZCA9IENyb25FZGl0b3JQZXJpb2Q7XG5cbiAgICBwdWJsaWMgY3JvbkVkaXRvclBlcmlvZEFycmF5OiB7IHZhbHVlOiBDcm9uRWRpdG9yUGVyaW9kIHwgJ2FkdmFuY2VkJzsgbGFiZWw6IHN0cmluZyB9W107XG4gICAgcHVibGljIHZpc2libGVTdHJpbmc6IHN0cmluZztcbiAgICBwdWJsaWMgdmFsdWVPYmplY3Q6IENyb25FZGl0b3I7XG4gICAgcHVibGljIGNyb25Nb2RlbDogSUNyb25FZGl0b3I7XG4gICAgcHVibGljIGlzQWR2YW5jZWRNb2RlID0gZmFsc2U7XG4gICAgcHVibGljIGFkdmFuY2VkQ3JvbiA9ICcnO1xuICAgIHB1YmxpYyBhZHZhbmNlZEVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZVN0cmluZyA9ICcnO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZU9iamVjdC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZpc2libGVTdHJpbmcgPSB0aGlzLnZhbHVlT2JqZWN0LmdldFJlYWRhYmxlU3RyaW5nKCk7XG4gICAgICAgIGlmICh0aGlzLmZsYXRNb2RlICYmICF0aGlzLmNyb25Nb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5jcm9uTW9kZWwgPSB0aGlzLnZhbHVlT2JqZWN0LnZhbHVlT2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9iamVjdC52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZU9iamVjdCA9IG5ldyBDcm9uRWRpdG9yKG51bGwsIHRoaXMuZmlzY2FsWWVhclN0YXJ0KTtcbiAgICAgICAgdGhpcy52YWx1ZU9iamVjdC5ldmVyeSA9IHRoaXMuYWxsb3dlZFBlcmlvZHNbdGhpcy5hbGxvd2VkUGVyaW9kcy5sZW5ndGggLSAxXSA/PyBDcm9uRWRpdG9yUGVyaW9kLllFQVI7XG4gICAgICAgIHRoaXMuY3Jvbk1vZGVsID0gdGhpcy52YWx1ZU9iamVjdC52YWx1ZU9iamVjdDtcbiAgICAgICAgdGhpcy5jcm9uRWRpdG9yUGVyaW9kQXJyYXkgPSB0aGlzLmFsbG93ZWRQZXJpb2RzLm1hcCgocGVyaW9kKSA9PiAoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBwZXJpb2QsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGNhcGl0YWxpemUoZ2V0Q3JvblR5cGVBc1BlcmlvZExhYmVsKHBlcmlvZCkpLFxuICAgICAgICAgICAgfSkpO1xuICAgICAgICBpZiAodGhpcy5hbGxvd0FkdmFuY2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNyb25FZGl0b3JQZXJpb2RBcnJheS5wdXNoKHsgdmFsdWU6ICdhZHZhbmNlZCcsIGxhYmVsOiAnQWR2YW5jZWQnIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuZmxhdE1vZGUgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY3Jvbk1vZGVsID0gdGhpcy52YWx1ZU9iamVjdC52YWx1ZU9iamVjdDtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZVN0cmluZyA9IHRoaXMudmFsdWVPYmplY3QuZ2V0UmVhZGFibGVTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNBZHZhbmNlZE1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBZHZhbmNlZENyb24oKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5hZHZhbmNlZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlU3RyaW5nID0gdGhpcy5hZHZhbmNlZENyb247XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmFkdmFuY2VkQ3Jvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlT2JqZWN0LnZhbHVlT2JqZWN0ID0gdGhpcy5jcm9uTW9kZWw7XG4gICAgICAgIHRoaXMudmlzaWJsZVN0cmluZyA9IHRoaXMudmFsdWVPYmplY3QuZ2V0UmVhZGFibGVTdHJpbmcoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZU9iamVjdC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5Qb3BvdmVyKCkge1xuICAgICAgICB0aGlzLmNyb25Nb2RlbCA9IHRoaXMudmFsdWVPYmplY3QudmFsdWVPYmplY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXZlcnlDaGFuZ2UoJGV2ZW50OiBDcm9uRWRpdG9yUGVyaW9kIHwgJ2FkdmFuY2VkJykge1xuICAgICAgICBpZiAoJGV2ZW50ID09PSAnYWR2YW5jZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmlzQWR2YW5jZWRNb2RlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZWRDcm9uID0gJyc7XG4gICAgICAgICAgICB0aGlzLmFkdmFuY2VkRXJyb3IgPSBudWxsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNBZHZhbmNlZE1vZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZHZhbmNlZEVycm9yID0gbnVsbDtcbiAgICAgICAgY29uc3QgdGVtcFZhbHVlT2JqZWN0ID0gbmV3IENyb25FZGl0b3IoXG4gICAgICAgICAgICBDcm9uRWRpdG9yRGVmYXVsdENvbmZpZ0J5UGVyaW9kWyRldmVudF0odGhpcy5maXNjYWxZZWFyU3RhcnQpLFxuICAgICAgICAgICAgdGhpcy5maXNjYWxZZWFyU3RhcnQsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY3Jvbk1vZGVsID0gdGVtcFZhbHVlT2JqZWN0LnZhbHVlT2JqZWN0O1xuICAgICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGltZVBpY2tlckNoYW5nZSh0aW1lOiBUaW1lcGlja2VyTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcm9uTW9kZWwuaG91ciA9IHRpbWUuaG91cjtcbiAgICAgICAgdGhpcy5jcm9uTW9kZWwubWludXRlID0gdGltZS5taW51dGU7XG4gICAgICAgIHRoaXMuY3Jvbk1vZGVsLnRpbWVQZXJpb2QgPSB0aW1lLnRpbWVQZXJpb2QgYXMgQ3JvblRpbWVQZXJpb2Q7XG4gICAgICAgIHRoaXMuY3Jvbk1vZGVsLnRpbWVab25lID0gdGltZS50aW1lWm9uZTtcbiAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZmxhdE1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25BZHZhbmNlZENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFkdmFuY2VkQ3JvbigpO1xuICAgICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFkdmFuY2VkQ3JvbigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlQ3Jvbikge1xuICAgICAgICAgICAgdGhpcy5hZHZhbmNlZEVycm9yID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb24gPSB0aGlzLnZhbGlkYXRlQ3Jvbih0aGlzLmFkdmFuY2VkQ3Jvbik7XG4gICAgICAgIHRoaXMuYWR2YW5jZWRFcnJvciA9IHZhbGlkYXRpb24udmFsaWQgPyBudWxsIDogdmFsaWRhdGlvbi5lcnJvcl9tZXNzYWdlO1xuICAgIH1cbn1cbiIsIjxkci1pbnB1dFxuICAgIFtpZF09XCJpZFwiXG4gICAgZGF0YS1hbmFseXRpY3M9XCJkci1jcm9uLWZpZWxkX2lucHV0LW1haW5cIlxuICAgIGFyaWEtbGFiZWw9XCJTY2hlZHVsZVwiXG4gICAgKm5nSWY9XCIhZmxhdE1vZGU7IGVsc2UgY3JvbkNvbmZpZ3VyYXRpb25cIlxuICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0Li4uXCJcbiAgICAoY2xpY2spPVwiIWRpc2FibGVkID8gb3BlblBvcG92ZXIoKSA6IG51bGxcIlxuICAgIFsobmdNb2RlbCldPVwidmlzaWJsZVN0cmluZ1wiXG4gICAgW2RyUG9wb3Zlcl09XCIhZGlzYWJsZWQgPyByZWN1cnJlbmNlUG9wb3ZlciA6IG51bGxcIlxuICAgIFtkclBvcG92ZXJQb3NpdGlvbl09XCJwb3BvdmVyUG9zaXRpb25cIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlYWRvbmx5XT1cInRydWVcIj5cbiAgICA8aSBjbGFzcz1cImRyLWljb24tZGF0ZVwiIHByZWZpeEljb24+PC9pPlxuICAgIDxpIGNsYXNzPVwiZHItaWNvbi1hcnJvdy1kb3duXCIgc3VmZml4SWNvbj48L2k+XG48L2RyLWlucHV0PlxuXG48bmctdGVtcGxhdGUgI3JlY3VycmVuY2VQb3BvdmVyIGxldC1jbG9zZVBvcG92ZXI9XCJjbG9zZVBvcG92ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmVjdXJyZW5jZS1wb3B1cFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVjdXJyZW5jZS1wb3B1cF9fYm9keVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjcm9uQ29uZmlndXJhdGlvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY3VycmVuY2UtcG9wdXBfX2Zvb3RlclwiPlxuICAgICAgICAgICAgPGRyLWJ1dHRvbiBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfYnV0dG9uLWNhbmNlbFwiIHRoZW1lPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNsb3NlUG9wb3ZlcigpXCI+Q2FuY2VsPC9kci1idXR0b24+XG4gICAgICAgICAgICA8ZHItYnV0dG9uIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9idXR0b24tc2F2ZVwiIChjbGljayk9XCJ1cGRhdGUoKTsgY2xvc2VQb3BvdmVyKClcIj5TYXZlPC9kci1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjcm9uQ29uZmlndXJhdGlvbj5cbiAgICA8bmctdGVtcGxhdGUgI3F1YXJ0ZXJDb25maWc+XG4gICAgICAgIDxzcGFuPlJlcGVhdCBldmVyeSBxdWFydGVyIG9uPC9zcGFuPlxuICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfc2VsZWN0LXF1YXJ0ZXItbW9udGhcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlF1YXJ0ZXIgbW9udGhcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjcm9uTW9kZWwubW9udGhcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiTU9OVEhfT0ZfUVVBUlRFUl9BUlJBWVwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1vbnRoLW9mLXF1YXJ0ZXJcIj48L2RyLXNlbGVjdD5cbiAgICAgICAgPHNwYW4+bW9udGggb2YgdGhlIHF1YXJ0ZXI8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaG91ckNvbmZpZz5cbiAgICAgICAgPHNwYW4+UmVwZWF0IGV2ZXJ5PC9zcGFuPlxuICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfc2VsZWN0LWV2ZXJ5LXgtaG91cnNcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkhvdXIgaW50ZXJ2YWxcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjcm9uTW9kZWwuZXZlcnlYSG91cnNcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiSE9VUlNfRElWSVNJQkxFX0lOVE9fREFZXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZGF5LW9mLW1vbnRoXCI+XG4gICAgICAgIDwvZHItc2VsZWN0PlxuICAgICAgICA8c3Bhbj5ob3VyKHMpPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI3dlZWtDb25maWc+XG4gICAgICAgIDxzcGFuPlJlcGVhdCBldmVyeTwvc3Bhbj5cbiAgICAgICAgPGRyLXNlbGVjdFxuICAgICAgICAgICAgZGF0YS1hbmFseXRpY3M9XCJkci1jcm9uLWZpZWxkX3NlbGVjdC1kYXktb2Ytd2Vla1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGF5IG9mIHdlZWtcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjcm9uTW9kZWwuZGF5T2ZXZWVrXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKClcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cIkRBWV9PRl9XRUVLX0FSUkFZXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZGF5LW9mLXdlZWtcIj5cbiAgICAgICAgPC9kci1zZWxlY3Q+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZGF5T2ZNb250aFNlbGVjdG9yPlxuICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfc2VsZWN0LWRheS1vZi1tb250aFwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGF5IG9mIG1vbnRoXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3Jvbk1vZGVsLmRheU9mTW9udGhcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiREFZX09GX01PTlRIX0FSUkFZXCJcbiAgICAgICAgICAgIFtzZWFyY2hhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkYXktb2YtbW9udGhcIj5cbiAgICAgICAgPC9kci1zZWxlY3Q+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjeWVhck1vbnRoU2VsZWN0b3I+XG4gICAgICAgIDxzcGFuPlJlcGVhdCBldmVyeTwvc3Bhbj5cbiAgICAgICAgPGRyLXNlbGVjdFxuICAgICAgICAgICAgZGF0YS1hbmFseXRpY3M9XCJkci1jcm9uLWZpZWxkX3NlbGVjdC1tb250aFwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiTW9udGhcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjcm9uTW9kZWwubW9udGhcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiTU9OVEhfT0ZfWUVBUl9BUlJBWVwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1vbnRoLW9mLXllYXJcIj5cbiAgICAgICAgPC9kci1zZWxlY3Q+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxkaXYgY2xhc3M9XCJjcm9uLWNvbmZpZ3VyYXRpb25cIiBbY2xhc3MuY3Jvbi1jb25maWd1cmF0aW9uLS1tdWx0aS1yb3ddPVwibXVsdGlSb3dNb2RlXCI+XG4gICAgICAgIDxkci1yYWRpby1ncm91cFxuICAgICAgICAgICAgZGF0YS1hbmFseXRpY3M9XCJkci1jcm9uLWZpZWxkX3JhZGlvLWdyb3VwLXBlcmlvZFwiXG4gICAgICAgICAgICAqbmdJZj1cIiFoaWRlUGVyaW9kU2VsZWN0b3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcm9uLWNvbmZpZ3VyYXRpb25fX2V2ZXJ5XCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzQWR2YW5jZWRNb2RlID8gJ2FkdmFuY2VkJyA6IGNyb25Nb2RlbC5ldmVyeVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkV2ZXJ5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgbmFtZT1cImV2ZXJ5XCI+XG4gICAgICAgICAgICA8ZHItcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgZGF0YS1hbmFseXRpY3M9XCJkci1jcm9uLWZpZWxkX3JhZGlvLWJ1dHRvbi0wXCJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGNyb25FZGl0b3JQZXJpb2RBcnJheVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hbmFseXRpY3NdPVwiJ2RyLWNyb24tZmllbGRfcmFkaW8tYnV0dG9uLScgKyBvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvZHItcmFkaW8tYnV0dG9uPlxuICAgICAgICA8L2RyLXJhZGlvLWdyb3VwPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNBZHZhbmNlZE1vZGVcIiBjbGFzcz1cImNyb24tY29uZmlndXJhdGlvbl9fYWR2YW5jZWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcm9uLWNvbmZpZ3VyYXRpb25fX2FkdmFuY2VkLW5vdGVcIj5cbiAgICAgICAgICAgICAgICBVc2UgY3JvbnRhYiB0byBzZXQgY3VzdG9tIHRpbWUgaW50ZXJ2YWxzIGZvciBzeW5jIGZyZXF1ZW5jeSwgc3VjaCBhcyBldmVyeSB0d28gd2Vla3MgYXQgMTA6MDUuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcm9uLWNvbmZpZ3VyYXRpb25fX2FkdmFuY2VkLWxhYmVsXCI+RW50ZXIgeW91ciBjcm9uIGV4cHJlc3Npb246PC9kaXY+XG4gICAgICAgICAgICA8ZHItaW5wdXRcbiAgICAgICAgICAgICAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfaW5wdXQtYWR2YW5jZWRcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWR2YW5jZWRDcm9uXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkFkdmFuY2VkQ2hhbmdlKClcIj5cbiAgICAgICAgICAgIDwvZHItaW5wdXQ+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWR2YW5jZWRFcnJvclwiIGNsYXNzPVwiY3Jvbi1jb25maWd1cmF0aW9uX19hZHZhbmNlZC1lcnJvclwiPnt7IGFkdmFuY2VkRXJyb3IgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FkdmFuY2VkTW9kZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpUm93TW9kZTsgZWxzZSBzaW5nbGVSb3dNb2RlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyb24tY29uZmlndXJhdGlvbl9fc2VjdGlvbiBjcm9uLWNvbmZpZ3VyYXRpb25fX3Jvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5RVUFSVEVSXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInF1YXJ0ZXJDb25maWdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuREFZXCI+UmVwZWF0IGV2ZXJ5IGRheTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuSE9VUlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJob3VyQ29uZmlnXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLldFRUtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwid2Vla0NvbmZpZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLllFQVJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhck1vbnRoU2VsZWN0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5T2ZNb250aFNlbGVjdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuTU9OVEhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlJlcGVhdCBvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5T2ZNb250aFNlbGVjdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5kYXkgb2YgZXZlcnkgbW9udGg8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNyb24tY29uZmlndXJhdGlvbl9fc2VjdGlvbiBjcm9uLWNvbmZpZ3VyYXRpb25fX3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLlFVQVJURVJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+b248L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5T2ZNb250aFNlbGVjdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPmRheSBvZiB0aGUgbW9udGg8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Jvbi1jb25maWd1cmF0aW9uX19zZWN0aW9uIGNyb24tY29uZmlndXJhdGlvbl9fcm93IGNyb24tY29uZmlndXJhdGlvbl9fcm93LS10aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZS1wcmVmaXhcIj5hdDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRyLXRpbWUtcGlja2VyIFtuZ01vZGVsXT1cImNyb25Nb2RlbFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGltZVBpY2tlckNoYW5nZSgkZXZlbnQpXCI+IDwvZHItdGltZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVSb3dNb2RlPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuUVVBUlRFUlwiIGNsYXNzPVwiY3Jvbi1jb25maWd1cmF0aW9uX19zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicXVhcnRlckNvbmZpZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcm9uLWNvbmZpZ3VyYXRpb25fX3NlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuREFZXCI+IFJlcGVhdCBldmVyeSBkYXkgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5IT1VSXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvdXJDb25maWdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcm9uTW9kZWwuZXZlcnkgPT09IGNyb25FZGl0b3JQZXJpb2QuV0VFS1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ3ZWVrQ29uZmlnXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcm9uTW9kZWwuZXZlcnkgIT09IGNyb25FZGl0b3JQZXJpb2QuV0VFSyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyb25Nb2RlbC5ldmVyeSAhPT0gY3JvbkVkaXRvclBlcmlvZC5IT1VSICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvbk1vZGVsLmV2ZXJ5ICE9PSBjcm9uRWRpdG9yUGVyaW9kLkRBWVxuICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5NT05USFwiPlJlcGVhdCBvbiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNyb25Nb2RlbC5ldmVyeSA9PT0gY3JvbkVkaXRvclBlcmlvZC5RVUFSVEVSXCI+b24gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLllFQVJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInllYXJNb250aFNlbGVjdG9yXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5T2ZNb250aFNlbGVjdG9yXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLk1PTlRIXCI+ZGF5IG9mIGV2ZXJ5IG1vbnRoIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3Jvbk1vZGVsLmV2ZXJ5ID09PSBjcm9uRWRpdG9yUGVyaW9kLlFVQVJURVJcIj5kYXkgb2YgdGhlIG1vbnRoIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZS1wcmVmaXhcIj5hdDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRyLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWFuYWx5dGljcz1cImRyLWNyb24tZmllbGRfaW5wdXQtaG91clwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiSG91clwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC5ob3VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hc2tdPVwiJzAwJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCIxMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaG91cnMtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kci1pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lLWRvdHNcIj46PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZHItaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9pbnB1dC1taW51dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk1pbnV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC5taW51dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWFza109XCInMDAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjU5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW51dGVzLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZHItaW5wdXQ+XG4gICAgICAgICAgICAgICAgICAgIDxkci1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9zZWxlY3QtdGltZS1wZXJpb2RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlRpbWUgcGVyaW9kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3Jvbk1vZGVsLnRpbWVQZXJpb2RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiQ1JPTl9USU1FX1BFUklPRF9BUlJBWVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWUtcGVyaW9kLXNlbGVjdG9yXCI+PC9kci1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDxkci1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYW5hbHl0aWNzPVwiZHItY3Jvbi1maWVsZF9zZWxlY3QtdGltZXpvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlRpbWUgem9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyb25Nb2RlbC50aW1lWm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJHTVRfT0ZGU0VUU1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGV4dFZpZXddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdtdC1vZmZzZXRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgTE9DQUxfVElNRV9aT05FX09GRlNFVCAhPT0gY3Jvbk1vZGVsLnRpbWVab25lID8gaXRlbS5sYWJlbCA6ICdMb2NhbCBUaW1lJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kci1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|