@alauda-fe/storage 0.0.10 → 0.0.12

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.
@@ -106,6 +106,15 @@ function PersistentVolumeClaimFormComponent_aui_form_item_4_Template(rf, ctx) {
106
106
  i0.ɵɵadvance();
107
107
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 12, "storage.static_match"), " ");
108
108
  } }
109
+ function PersistentVolumeClaimFormComponent_ng_container_6_aui_form_item_1_div_9_Template(rf, ctx) { if (rf & 1) {
110
+ i0.ɵɵelementStart(0, "div", 22);
111
+ i0.ɵɵtext(1);
112
+ i0.ɵɵpipe(2, "translate");
113
+ i0.ɵɵelementEnd();
114
+ } if (rf & 2) {
115
+ i0.ɵɵadvance();
116
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "storage.restore_pvc_storageclass_hint"), " ");
117
+ } }
109
118
  function PersistentVolumeClaimFormComponent_ng_container_6_aui_form_item_1_Template(rf, ctx) { if (rf & 1) {
110
119
  const _r7 = i0.ɵɵgetCurrentView();
111
120
  i0.ɵɵelementStart(0, "aui-form-item", 18)(1, "label", 13);
@@ -119,29 +128,32 @@ function PersistentVolumeClaimFormComponent_ng_container_6_aui_form_item_1_Templ
119
128
  i0.ɵɵlistener("storageClassChange", function PersistentVolumeClaimFormComponent_ng_container_6_aui_form_item_1_Template_acl_storageclass_select_storageClassChange_4_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.storageclassChange($event)); });
120
129
  i0.ɵɵelementEnd();
121
130
  i0.ɵɵelement(8, "acl-errors-mapper", 20);
131
+ i0.ɵɵtemplate(9, PersistentVolumeClaimFormComponent_ng_container_6_aui_form_item_1_div_9_Template, 3, 3, "div", 21);
122
132
  i0.ɵɵelementEnd();
123
133
  } if (rf & 2) {
124
134
  const storageClassName_r8 = i0.ɵɵreference(5);
125
135
  const ctx_r1 = i0.ɵɵnextContext(2);
126
136
  i0.ɵɵadvance(2);
127
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 6, "storageclass"));
137
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "storageclass"));
128
138
  i0.ɵɵadvance(2);
129
- i0.ɵɵproperty("storageClasses", i0.ɵɵpipeBind1(6, 8, ctx_r1.storageClassList$))("volumeSnapshotClasses", i0.ɵɵpipeBind1(7, 10, ctx_r1.volumeSnapshotClassList$))("isFromSnapshot", ctx_r1.isFromSnapshot);
139
+ i0.ɵɵproperty("storageClasses", i0.ɵɵpipeBind1(6, 10, ctx_r1.storageClassList$))("volumeSnapshotClasses", i0.ɵɵpipeBind1(7, 12, ctx_r1.volumeSnapshotClassList$))("isFromSnapshot", ctx_r1.isFromSnapshotAndSourcePVCExist)("selectDefault", ctx_r1.selectDefault);
130
140
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.model.storageClassName);
131
141
  i0.ɵɵadvance(4);
132
142
  i0.ɵɵproperty("errors", storageClassName_r8.errors);
143
+ i0.ɵɵadvance();
144
+ i0.ɵɵproperty("ngIf", ctx_r1.showStorageClassHintWhenFromSnapshot);
133
145
  } }
134
146
  function PersistentVolumeClaimFormComponent_ng_container_6_Template(rf, ctx) { if (rf & 1) {
135
147
  i0.ɵɵelementContainerStart(0);
136
- i0.ɵɵtemplate(1, PersistentVolumeClaimFormComponent_ng_container_6_aui_form_item_1_Template, 9, 12, "aui-form-item", 11);
148
+ i0.ɵɵtemplate(1, PersistentVolumeClaimFormComponent_ng_container_6_aui_form_item_1_Template, 10, 14, "aui-form-item", 11);
137
149
  i0.ɵɵelementContainerEnd();
138
150
  } if (rf & 2) {
139
151
  const ctx_r1 = i0.ɵɵnextContext();
140
152
  i0.ɵɵadvance();
141
153
  i0.ɵɵproperty("ngIf", ctx_r1.createMethod !== ctx_r1.PvcStorageClassCreateType.STATIC);
142
154
  } }
143
- function PersistentVolumeClaimFormComponent_aui_form_item_8_aui_radio_button_6_Template(rf, ctx) { if (rf & 1) {
144
- i0.ɵɵelementStart(0, "aui-radio-button", 25);
155
+ function PersistentVolumeClaimFormComponent_aui_form_item_8_aui_radio_button_5_Template(rf, ctx) { if (rf & 1) {
156
+ i0.ɵɵelementStart(0, "aui-radio-button", 26);
145
157
  i0.ɵɵpipe(1, "translate");
146
158
  i0.ɵɵpipe(2, "pure");
147
159
  i0.ɵɵpipe(3, "pure");
@@ -151,12 +163,85 @@ function PersistentVolumeClaimFormComponent_aui_form_item_8_aui_radio_button_6_T
151
163
  } if (rf & 2) {
152
164
  const mode_r10 = ctx.$implicit;
153
165
  const ctx_r1 = i0.ɵɵnextContext(2);
154
- i0.ɵɵproperty("auiTooltip", i0.ɵɵpipeBind1(1, 5, "storage.storage_forbid_select_access_mode"))("auiTooltipDisabled", !i0.ɵɵpipeBind3(2, 7, mode_r10, ctx_r1.storageCommonUtil.isAccessModeDisabled, ctx_r1.selectedStorageSelectOption))("value", mode_r10)("disabled", i0.ɵɵpipeBind3(3, 11, mode_r10, ctx_r1.storageCommonUtil.isAccessModeDisabled, ctx_r1.selectedStorageSelectOption));
166
+ i0.ɵɵproperty("auiTooltip", i0.ɵɵpipeBind1(1, 5, "storage.storage_forbid_select_volume_mode"))("auiTooltipDisabled", !i0.ɵɵpipeBind3(2, 7, mode_r10, ctx_r1.storageCommonUtil.isVolumeModeDisabled, ctx_r1.selectedStorageSelectOption))("disabled", i0.ɵɵpipeBind3(3, 11, mode_r10, ctx_r1.storageCommonUtil.isVolumeModeDisabled, ctx_r1.selectedStorageSelectOption))("value", mode_r10);
155
167
  i0.ɵɵadvance(4);
156
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 15, "storage." + ctx_r1.AccessModeTranslateKey[mode_r10]), " ");
168
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 15, "storage." + ctx_r1.VolumeModeTranslateKey[mode_r10]), " ");
157
169
  } }
158
- function PersistentVolumeClaimFormComponent_aui_form_item_8_ng_template_10_Template(rf, ctx) { if (rf & 1) {
159
- i0.ɵɵelementStart(0, "ul", 26)(1, "li");
170
+ function PersistentVolumeClaimFormComponent_aui_form_item_8_div_6_Template(rf, ctx) { if (rf & 1) {
171
+ i0.ɵɵelementStart(0, "div", 27);
172
+ i0.ɵɵelement(1, "aui-icon", 28);
173
+ i0.ɵɵelementEnd();
174
+ } if (rf & 2) {
175
+ i0.ɵɵnextContext();
176
+ const volumeModeTip_r11 = i0.ɵɵreference(8);
177
+ i0.ɵɵadvance();
178
+ i0.ɵɵproperty("auiTooltip", volumeModeTip_r11)("auiTooltipPosition", "top center");
179
+ } }
180
+ function PersistentVolumeClaimFormComponent_aui_form_item_8_ng_template_7_Template(rf, ctx) { if (rf & 1) {
181
+ i0.ɵɵelementStart(0, "ul", 29)(1, "li");
182
+ i0.ɵɵtext(2);
183
+ i0.ɵɵpipe(3, "translate");
184
+ i0.ɵɵelementEnd();
185
+ i0.ɵɵelementStart(4, "li");
186
+ i0.ɵɵtext(5);
187
+ i0.ɵɵpipe(6, "translate");
188
+ i0.ɵɵelementEnd()();
189
+ } if (rf & 2) {
190
+ i0.ɵɵadvance(2);
191
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "storage.volume_mode_file_system_hint"));
192
+ i0.ɵɵadvance(3);
193
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "storage.volume_mode_block_device_hint"));
194
+ } }
195
+ function PersistentVolumeClaimFormComponent_aui_form_item_8_ng_template_9_Template(rf, ctx) { if (rf & 1) {
196
+ i0.ɵɵtext(0);
197
+ i0.ɵɵpipe(1, "translate");
198
+ } if (rf & 2) {
199
+ const ctx_r1 = i0.ɵɵnextContext(2);
200
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(1, 1, ctx_r1.model.volumeMode === "Filesystem" ? "storage.file_system" : "storage.block_device"), " ");
201
+ } }
202
+ function PersistentVolumeClaimFormComponent_aui_form_item_8_Template(rf, ctx) { if (rf & 1) {
203
+ const _r9 = i0.ɵɵgetCurrentView();
204
+ i0.ɵɵelementStart(0, "aui-form-item")(1, "label", 13);
205
+ i0.ɵɵtext(2);
206
+ i0.ɵɵpipe(3, "translate");
207
+ i0.ɵɵelementEnd();
208
+ i0.ɵɵelementStart(4, "aui-radio-group", 23);
209
+ i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_8_Template_aui_radio_group_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.model.volumeMode, $event) || (ctx_r1.model.volumeMode = $event); return i0.ɵɵresetView($event); });
210
+ i0.ɵɵlistener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_8_Template_aui_radio_group_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.volumeModeChange($event)); });
211
+ i0.ɵɵtemplate(5, PersistentVolumeClaimFormComponent_aui_form_item_8_aui_radio_button_5_Template, 6, 17, "aui-radio-button", 24);
212
+ i0.ɵɵelementEnd();
213
+ i0.ɵɵtemplate(6, PersistentVolumeClaimFormComponent_aui_form_item_8_div_6_Template, 2, 2, "div", 25)(7, PersistentVolumeClaimFormComponent_aui_form_item_8_ng_template_7_Template, 7, 6, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor)(9, PersistentVolumeClaimFormComponent_aui_form_item_8_ng_template_9_Template, 2, 3, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
214
+ i0.ɵɵelementEnd();
215
+ } if (rf & 2) {
216
+ const volumeModeTmpl_r12 = i0.ɵɵreference(10);
217
+ const ctx_r1 = i0.ɵɵnextContext();
218
+ i0.ɵɵadvance(2);
219
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 6, "storage.volume_mode"));
220
+ i0.ɵɵadvance(2);
221
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.model.volumeMode);
222
+ i0.ɵɵproperty("aclReadonlyField", ctx_r1.isFromSnapshotAndSourcePVCExist || !!ctx_r1.volumeMode)("aclReadonlyFieldTemplate", volumeModeTmpl_r12);
223
+ i0.ɵɵadvance();
224
+ i0.ɵɵproperty("ngForOf", ctx_r1.volumeModes);
225
+ i0.ɵɵadvance();
226
+ i0.ɵɵproperty("ngIf", !ctx_r1.volumeMode);
227
+ } }
228
+ function PersistentVolumeClaimFormComponent_aui_form_item_10_aui_radio_button_6_Template(rf, ctx) { if (rf & 1) {
229
+ i0.ɵɵelementStart(0, "aui-radio-button", 32);
230
+ i0.ɵɵpipe(1, "translate");
231
+ i0.ɵɵpipe(2, "pure");
232
+ i0.ɵɵpipe(3, "pure");
233
+ i0.ɵɵtext(4);
234
+ i0.ɵɵpipe(5, "translate");
235
+ i0.ɵɵelementEnd();
236
+ } if (rf & 2) {
237
+ const mode_r14 = ctx.$implicit;
238
+ const ctx_r1 = i0.ɵɵnextContext(2);
239
+ i0.ɵɵproperty("auiTooltip", i0.ɵɵpipeBind1(1, 5, "storage.storage_forbid_select_access_mode"))("auiTooltipDisabled", !i0.ɵɵpipeBind4(2, 7, mode_r14, ctx_r1.storageCommonUtil.isAccessModeDisabled, ctx_r1.selectedStorageSelectOption, ctx_r1.model.volumeMode === "Block"))("value", mode_r14)("disabled", i0.ɵɵpipeBind4(3, 12, mode_r14, ctx_r1.storageCommonUtil.isAccessModeDisabled, ctx_r1.selectedStorageSelectOption, ctx_r1.model.volumeMode === "Block"));
240
+ i0.ɵɵadvance(4);
241
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 17, "storage." + ctx_r1.AccessModeTranslateKey[mode_r14]), " ");
242
+ } }
243
+ function PersistentVolumeClaimFormComponent_aui_form_item_10_ng_template_10_Template(rf, ctx) { if (rf & 1) {
244
+ i0.ɵɵelementStart(0, "ul", 29)(1, "li");
160
245
  i0.ɵɵtext(2);
161
246
  i0.ɵɵpipe(3, "translate");
162
247
  i0.ɵɵelementEnd();
@@ -176,25 +261,25 @@ function PersistentVolumeClaimFormComponent_aui_form_item_8_ng_template_10_Templ
176
261
  i0.ɵɵadvance(3);
177
262
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 7, "storage.access_mode_rwx"));
178
263
  } }
179
- function PersistentVolumeClaimFormComponent_aui_form_item_8_Template(rf, ctx) { if (rf & 1) {
180
- const _r9 = i0.ɵɵgetCurrentView();
264
+ function PersistentVolumeClaimFormComponent_aui_form_item_10_Template(rf, ctx) { if (rf & 1) {
265
+ const _r13 = i0.ɵɵgetCurrentView();
181
266
  i0.ɵɵelementStart(0, "aui-form-item")(1, "label", 13);
182
267
  i0.ɵɵtext(2);
183
268
  i0.ɵɵpipe(3, "translate");
184
269
  i0.ɵɵelementEnd();
185
- i0.ɵɵelementStart(4, "aui-radio-group", 21, 3);
186
- i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_8_Template_aui_radio_group_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.model.accessModes, $event) || (ctx_r1.model.accessModes = $event); return i0.ɵɵresetView($event); });
187
- i0.ɵɵtemplate(6, PersistentVolumeClaimFormComponent_aui_form_item_8_aui_radio_button_6_Template, 6, 17, "aui-radio-button", 22);
270
+ i0.ɵɵelementStart(4, "aui-radio-group", 30, 5);
271
+ i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_10_Template_aui_radio_group_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.model.accessModes, $event) || (ctx_r1.model.accessModes = $event); return i0.ɵɵresetView($event); });
272
+ i0.ɵɵtemplate(6, PersistentVolumeClaimFormComponent_aui_form_item_10_aui_radio_button_6_Template, 6, 19, "aui-radio-button", 31);
188
273
  i0.ɵɵelementEnd();
189
- i0.ɵɵelementStart(7, "div", 23);
190
- i0.ɵɵelement(8, "aui-icon", 24);
274
+ i0.ɵɵelementStart(7, "div", 27);
275
+ i0.ɵɵelement(8, "aui-icon", 28);
191
276
  i0.ɵɵelementEnd();
192
277
  i0.ɵɵelement(9, "acl-errors-mapper", 20);
193
- i0.ɵɵtemplate(10, PersistentVolumeClaimFormComponent_aui_form_item_8_ng_template_10_Template, 10, 9, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
278
+ i0.ɵɵtemplate(10, PersistentVolumeClaimFormComponent_aui_form_item_10_ng_template_10_Template, 10, 9, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
194
279
  i0.ɵɵelementEnd();
195
280
  } if (rf & 2) {
196
- const accessMode_r11 = i0.ɵɵreference(5);
197
- const accessModeTip_r12 = i0.ɵɵreference(11);
281
+ const accessMode_r15 = i0.ɵɵreference(5);
282
+ const accessModeTip_r16 = i0.ɵɵreference(11);
198
283
  const ctx_r1 = i0.ɵɵnextContext();
199
284
  i0.ɵɵadvance(2);
200
285
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 6, "storage.access_mode"));
@@ -203,25 +288,25 @@ function PersistentVolumeClaimFormComponent_aui_form_item_8_Template(rf, ctx) {
203
288
  i0.ɵɵadvance(2);
204
289
  i0.ɵɵproperty("ngForOf", ctx_r1.accessModes);
205
290
  i0.ɵɵadvance(2);
206
- i0.ɵɵproperty("auiTooltip", accessModeTip_r12)("auiTooltipPosition", "top center");
291
+ i0.ɵɵproperty("auiTooltip", accessModeTip_r16)("auiTooltipPosition", "top center");
207
292
  i0.ɵɵadvance();
208
- i0.ɵɵproperty("errors", accessMode_r11.errors);
293
+ i0.ɵɵproperty("errors", accessMode_r15.errors);
209
294
  } }
210
- function PersistentVolumeClaimFormComponent_aui_form_item_10_aui_select_6_aui_option_1_Template(rf, ctx) { if (rf & 1) {
211
- i0.ɵɵelementStart(0, "aui-option", 31);
295
+ function PersistentVolumeClaimFormComponent_aui_form_item_12_aui_select_6_aui_option_1_Template(rf, ctx) { if (rf & 1) {
296
+ i0.ɵɵelementStart(0, "aui-option", 37);
212
297
  i0.ɵɵtext(1);
213
298
  i0.ɵɵelementEnd();
214
299
  } if (rf & 2) {
215
- const item_r15 = ctx.$implicit;
216
- i0.ɵɵproperty("label", item_r15)("value", item_r15);
300
+ const item_r19 = ctx.$implicit;
301
+ i0.ɵɵproperty("label", item_r19)("value", item_r19);
217
302
  i0.ɵɵadvance();
218
- i0.ɵɵtextInterpolate1(" ", item_r15, " ");
303
+ i0.ɵɵtextInterpolate1(" ", item_r19, " ");
219
304
  } }
220
- function PersistentVolumeClaimFormComponent_aui_form_item_10_aui_select_6_Template(rf, ctx) { if (rf & 1) {
221
- const _r14 = i0.ɵɵgetCurrentView();
222
- i0.ɵɵelementStart(0, "aui-select", 29);
223
- i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_10_aui_select_6_Template_aui_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.unit, $event) || (ctx_r1.unit = $event); return i0.ɵɵresetView($event); });
224
- i0.ɵɵtemplate(1, PersistentVolumeClaimFormComponent_aui_form_item_10_aui_select_6_aui_option_1_Template, 2, 3, "aui-option", 30);
305
+ function PersistentVolumeClaimFormComponent_aui_form_item_12_aui_select_6_Template(rf, ctx) { if (rf & 1) {
306
+ const _r18 = i0.ɵɵgetCurrentView();
307
+ i0.ɵɵelementStart(0, "aui-select", 35);
308
+ i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_12_aui_select_6_Template_aui_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.unit, $event) || (ctx_r1.unit = $event); return i0.ɵɵresetView($event); });
309
+ i0.ɵɵtemplate(1, PersistentVolumeClaimFormComponent_aui_form_item_12_aui_select_6_aui_option_1_Template, 2, 3, "aui-option", 36);
225
310
  i0.ɵɵelementEnd();
226
311
  } if (rf & 2) {
227
312
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -229,119 +314,47 @@ function PersistentVolumeClaimFormComponent_aui_form_item_10_aui_select_6_Templa
229
314
  i0.ɵɵadvance();
230
315
  i0.ɵɵproperty("ngForOf", ctx_r1.UNITS);
231
316
  } }
232
- function PersistentVolumeClaimFormComponent_aui_form_item_10_ng_template_7_Template(rf, ctx) { if (rf & 1) {
317
+ function PersistentVolumeClaimFormComponent_aui_form_item_12_ng_template_7_Template(rf, ctx) { if (rf & 1) {
233
318
  i0.ɵɵtext(0);
234
319
  } if (rf & 2) {
235
320
  const ctx_r1 = i0.ɵɵnextContext(2);
236
321
  i0.ɵɵtextInterpolate1(" ", ctx_r1.model.storage, "Gi ");
237
322
  } }
238
- function PersistentVolumeClaimFormComponent_aui_form_item_10_Template(rf, ctx) { if (rf & 1) {
239
- const _r13 = i0.ɵɵgetCurrentView();
323
+ function PersistentVolumeClaimFormComponent_aui_form_item_12_Template(rf, ctx) { if (rf & 1) {
324
+ const _r17 = i0.ɵɵgetCurrentView();
240
325
  i0.ɵɵelementStart(0, "aui-form-item", 18)(1, "label", 13);
241
326
  i0.ɵɵtext(2);
242
327
  i0.ɵɵpipe(3, "translate");
243
328
  i0.ɵɵelementEnd();
244
- i0.ɵɵelementStart(4, "input", 27, 5);
245
- i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_10_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.model.storage, $event) || (ctx_r1.model.storage = $event); return i0.ɵɵresetView($event); });
329
+ i0.ɵɵelementStart(4, "input", 33, 7);
330
+ i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_12_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.model.storage, $event) || (ctx_r1.model.storage = $event); return i0.ɵɵresetView($event); });
246
331
  i0.ɵɵelementEnd();
247
- i0.ɵɵtemplate(6, PersistentVolumeClaimFormComponent_aui_form_item_10_aui_select_6_Template, 2, 2, "aui-select", 28)(7, PersistentVolumeClaimFormComponent_aui_form_item_10_ng_template_7_Template, 1, 1, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
332
+ i0.ɵɵtemplate(6, PersistentVolumeClaimFormComponent_aui_form_item_12_aui_select_6_Template, 2, 2, "aui-select", 34)(7, PersistentVolumeClaimFormComponent_aui_form_item_12_ng_template_7_Template, 1, 1, "ng-template", null, 8, i0.ɵɵtemplateRefExtractor);
248
333
  i0.ɵɵelement(9, "acl-errors-mapper", 15);
249
334
  i0.ɵɵpipe(10, "translate");
250
335
  i0.ɵɵelementEnd();
251
336
  } if (rf & 2) {
252
- const storage_r16 = i0.ɵɵreference(5);
253
- const capacityTpl_r17 = i0.ɵɵreference(8);
337
+ const storage_r20 = i0.ɵɵreference(5);
338
+ const capacityTpl_r21 = i0.ɵɵreference(8);
254
339
  const ctx_r1 = i0.ɵɵnextContext();
255
340
  i0.ɵɵadvance(2);
256
341
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 8, "storage.capacity"));
257
342
  i0.ɵɵadvance(2);
258
343
  i0.ɵɵproperty("pattern", ctx_r1.POSITIVE_INT_PATTERN.pattern);
259
344
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.model.storage);
260
- i0.ɵɵproperty("aclReadonlyField", ctx_r1.isFromSnapshot)("aclReadonlyFieldTemplate", capacityTpl_r17);
345
+ i0.ɵɵproperty("aclReadonlyField", ctx_r1.isFromSnapshot)("aclReadonlyFieldTemplate", capacityTpl_r21);
261
346
  i0.ɵɵadvance(2);
262
347
  i0.ɵɵproperty("ngIf", !ctx_r1.isFromSnapshot);
263
348
  i0.ɵɵadvance(3);
264
- i0.ɵɵproperty("errors", storage_r16.errors)("errorsMapper", i0.ɵɵpureFunction1(12, _c0, i0.ɵɵpipeBind1(10, 10, ctx_r1.POSITIVE_INT_PATTERN.tip)));
265
- } }
266
- function PersistentVolumeClaimFormComponent_aui_form_item_12_aui_radio_button_5_Template(rf, ctx) { if (rf & 1) {
267
- i0.ɵɵelementStart(0, "aui-radio-button", 35);
268
- i0.ɵɵpipe(1, "translate");
269
- i0.ɵɵpipe(2, "pure");
270
- i0.ɵɵpipe(3, "pure");
271
- i0.ɵɵtext(4);
272
- i0.ɵɵpipe(5, "translate");
273
- i0.ɵɵelementEnd();
274
- } if (rf & 2) {
275
- const mode_r19 = ctx.$implicit;
276
- const ctx_r1 = i0.ɵɵnextContext(2);
277
- i0.ɵɵproperty("auiTooltip", i0.ɵɵpipeBind1(1, 5, "storage.storage_forbid_select_volume_mode"))("auiTooltipDisabled", !i0.ɵɵpipeBind3(2, 7, mode_r19, ctx_r1.storageCommonUtil.isVolumeModeDisabled, ctx_r1.selectedStorageSelectOption))("disabled", i0.ɵɵpipeBind3(3, 11, mode_r19, ctx_r1.storageCommonUtil.isVolumeModeDisabled, ctx_r1.selectedStorageSelectOption))("value", mode_r19);
278
- i0.ɵɵadvance(4);
279
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 15, "storage." + ctx_r1.VolumeModeTranslateKey[mode_r19]), " ");
280
- } }
281
- function PersistentVolumeClaimFormComponent_aui_form_item_12_div_6_Template(rf, ctx) { if (rf & 1) {
282
- i0.ɵɵelementStart(0, "div", 23);
283
- i0.ɵɵelement(1, "aui-icon", 24);
284
- i0.ɵɵelementEnd();
285
- } if (rf & 2) {
286
- i0.ɵɵnextContext();
287
- const volumeModeTip_r20 = i0.ɵɵreference(8);
288
- i0.ɵɵadvance();
289
- i0.ɵɵproperty("auiTooltip", volumeModeTip_r20)("auiTooltipPosition", "top center");
290
- } }
291
- function PersistentVolumeClaimFormComponent_aui_form_item_12_ng_template_7_Template(rf, ctx) { if (rf & 1) {
292
- i0.ɵɵelementStart(0, "ul", 26)(1, "li");
293
- i0.ɵɵtext(2);
294
- i0.ɵɵpipe(3, "translate");
295
- i0.ɵɵelementEnd();
296
- i0.ɵɵelementStart(4, "li");
297
- i0.ɵɵtext(5);
298
- i0.ɵɵpipe(6, "translate");
299
- i0.ɵɵelementEnd()();
300
- } if (rf & 2) {
301
- i0.ɵɵadvance(2);
302
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "storage.volume_mode_file_system_hint"));
303
- i0.ɵɵadvance(3);
304
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "storage.volume_mode_block_device_hint"));
305
- } }
306
- function PersistentVolumeClaimFormComponent_aui_form_item_12_ng_template_9_Template(rf, ctx) { if (rf & 1) {
307
- i0.ɵɵtext(0);
308
- i0.ɵɵpipe(1, "translate");
309
- } if (rf & 2) {
310
- const ctx_r1 = i0.ɵɵnextContext(2);
311
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(1, 1, ctx_r1.model.volumeMode === "Filesystem" ? "storage.file_system" : "storage.block_device"), " ");
312
- } }
313
- function PersistentVolumeClaimFormComponent_aui_form_item_12_Template(rf, ctx) { if (rf & 1) {
314
- const _r18 = i0.ɵɵgetCurrentView();
315
- i0.ɵɵelementStart(0, "aui-form-item")(1, "label", 13);
316
- i0.ɵɵtext(2);
317
- i0.ɵɵpipe(3, "translate");
318
- i0.ɵɵelementEnd();
319
- i0.ɵɵelementStart(4, "aui-radio-group", 32);
320
- i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_aui_form_item_12_Template_aui_radio_group_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.model.volumeMode, $event) || (ctx_r1.model.volumeMode = $event); return i0.ɵɵresetView($event); });
321
- i0.ɵɵtemplate(5, PersistentVolumeClaimFormComponent_aui_form_item_12_aui_radio_button_5_Template, 6, 17, "aui-radio-button", 33);
322
- i0.ɵɵelementEnd();
323
- i0.ɵɵtemplate(6, PersistentVolumeClaimFormComponent_aui_form_item_12_div_6_Template, 2, 2, "div", 34)(7, PersistentVolumeClaimFormComponent_aui_form_item_12_ng_template_7_Template, 7, 6, "ng-template", null, 7, i0.ɵɵtemplateRefExtractor)(9, PersistentVolumeClaimFormComponent_aui_form_item_12_ng_template_9_Template, 2, 3, "ng-template", null, 8, i0.ɵɵtemplateRefExtractor);
324
- i0.ɵɵelementEnd();
325
- } if (rf & 2) {
326
- const volumeModeTmpl_r21 = i0.ɵɵreference(10);
327
- const ctx_r1 = i0.ɵɵnextContext();
328
- i0.ɵɵadvance(2);
329
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 6, "storage.volume_mode"));
330
- i0.ɵɵadvance(2);
331
- i0.ɵɵtwoWayProperty("ngModel", ctx_r1.model.volumeMode);
332
- i0.ɵɵproperty("aclReadonlyField", ctx_r1.isFromSnapshot || !!ctx_r1.volumeMode)("aclReadonlyFieldTemplate", volumeModeTmpl_r21);
333
- i0.ɵɵadvance();
334
- i0.ɵɵproperty("ngForOf", ctx_r1.volumeModes);
335
- i0.ɵɵadvance();
336
- i0.ɵɵproperty("ngIf", !ctx_r1.volumeMode);
349
+ i0.ɵɵproperty("errors", storage_r20.errors)("errorsMapper", i0.ɵɵpureFunction1(12, _c0, i0.ɵɵpipeBind1(10, 10, ctx_r1.POSITIVE_INT_PATTERN.tip)));
337
350
  } }
338
351
  function PersistentVolumeClaimFormComponent_ng_container_14_aui_form_item_3_Template(rf, ctx) { if (rf & 1) {
339
352
  const _r22 = i0.ɵɵgetCurrentView();
340
- i0.ɵɵelementStart(0, "aui-form-item", 38)(1, "label", 13);
353
+ i0.ɵɵelementStart(0, "aui-form-item", 40)(1, "label", 13);
341
354
  i0.ɵɵtext(2);
342
355
  i0.ɵɵpipe(3, "translate");
343
356
  i0.ɵɵelementEnd();
344
- i0.ɵɵelementStart(4, "acl-key-value-form-table", 39);
357
+ i0.ɵɵelementStart(4, "acl-key-value-form-table", 41);
345
358
  i0.ɵɵpipe(5, "translate");
346
359
  i0.ɵɵpipe(6, "lowercase");
347
360
  i0.ɵɵpipe(7, "async");
@@ -357,11 +370,11 @@ function PersistentVolumeClaimFormComponent_ng_container_14_aui_form_item_3_Temp
357
370
  } }
358
371
  function PersistentVolumeClaimFormComponent_ng_container_14_aui_form_item_5_Template(rf, ctx) { if (rf & 1) {
359
372
  const _r23 = i0.ɵɵgetCurrentView();
360
- i0.ɵɵelementStart(0, "aui-form-item", 38)(1, "label", 13);
373
+ i0.ɵɵelementStart(0, "aui-form-item", 40)(1, "label", 13);
361
374
  i0.ɵɵtext(2);
362
375
  i0.ɵɵpipe(3, "translate");
363
376
  i0.ɵɵelementEnd();
364
- i0.ɵɵelementStart(4, "acl-key-value-form-table", 40);
377
+ i0.ɵɵelementStart(4, "acl-key-value-form-table", 42);
365
378
  i0.ɵɵpipe(5, "translate");
366
379
  i0.ɵɵpipe(6, "lowercase");
367
380
  i0.ɵɵpipe(7, "async");
@@ -379,11 +392,11 @@ function PersistentVolumeClaimFormComponent_ng_container_14_aui_form_item_5_Temp
379
392
  function PersistentVolumeClaimFormComponent_ng_container_14_ng_container_7_Template(rf, ctx) { if (rf & 1) {
380
393
  const _r24 = i0.ɵɵgetCurrentView();
381
394
  i0.ɵɵelementContainerStart(0);
382
- i0.ɵɵelementStart(1, "aui-form-item", 41)(2, "label", 13);
395
+ i0.ɵɵelementStart(1, "aui-form-item", 43)(2, "label", 13);
383
396
  i0.ɵɵtext(3);
384
397
  i0.ɵɵpipe(4, "translate");
385
398
  i0.ɵɵelementEnd();
386
- i0.ɵɵelementStart(5, "acl-key-value-form-table", 42);
399
+ i0.ɵɵelementStart(5, "acl-key-value-form-table", 44);
387
400
  i0.ɵɵtwoWayListener("ngModelChange", function PersistentVolumeClaimFormComponent_ng_container_14_ng_container_7_Template_acl_key_value_form_table_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.model.selector, $event) || (ctx_r1.model.selector = $event); return i0.ɵɵresetView($event); });
388
401
  i0.ɵɵelementEnd()();
389
402
  i0.ɵɵelementContainerEnd();
@@ -398,11 +411,11 @@ function PersistentVolumeClaimFormComponent_ng_container_14_ng_container_7_Templ
398
411
  } }
399
412
  function PersistentVolumeClaimFormComponent_ng_container_14_Template(rf, ctx) { if (rf & 1) {
400
413
  i0.ɵɵelementContainerStart(0);
401
- i0.ɵɵelementStart(1, "acl-foldable-block", 36);
414
+ i0.ɵɵelementStart(1, "acl-foldable-block", 38);
402
415
  i0.ɵɵpipe(2, "translate");
403
- i0.ɵɵtemplate(3, PersistentVolumeClaimFormComponent_ng_container_14_aui_form_item_3_Template, 8, 13, "aui-form-item", 37);
416
+ i0.ɵɵtemplate(3, PersistentVolumeClaimFormComponent_ng_container_14_aui_form_item_3_Template, 8, 13, "aui-form-item", 39);
404
417
  i0.ɵɵpipe(4, "pure");
405
- i0.ɵɵtemplate(5, PersistentVolumeClaimFormComponent_ng_container_14_aui_form_item_5_Template, 8, 13, "aui-form-item", 37);
418
+ i0.ɵɵtemplate(5, PersistentVolumeClaimFormComponent_ng_container_14_aui_form_item_5_Template, 8, 13, "aui-form-item", 39);
406
419
  i0.ɵɵpipe(6, "pure");
407
420
  i0.ɵɵtemplate(7, PersistentVolumeClaimFormComponent_ng_container_14_ng_container_7_Template, 6, 5, "ng-container", 10);
408
421
  i0.ɵɵpipe(8, "pure");
@@ -433,7 +446,19 @@ export class PersistentVolumeClaimFormComponent extends createNestedFormControl(
433
446
  }
434
447
  return this.displayFields?.some(field => ['labels', 'annotations', 'selector'].includes(field));
435
448
  }
449
+ get isFromSnapshotAndSourcePVCExist() {
450
+ return this.isFromSnapshot && !!this.originResource?.spec?.storageClassName;
451
+ }
452
+ get selectDefault() {
453
+ return this.isFromSnapshot
454
+ ? !!this.originResource?.spec?.storageClassName
455
+ : true;
456
+ }
457
+ get showStorageClassHintWhenFromSnapshot() {
458
+ return this.isFromSnapshot && !this.originResource?.spec?.storageClassName;
459
+ }
436
460
  writeValue(value) {
461
+ this.originResource = value;
437
462
  this.model = this.valueIn(value ??
438
463
  buildPvcResource({
439
464
  namespace: this.baseParams.namespace,
@@ -532,8 +557,11 @@ export class PersistentVolumeClaimFormComponent extends createNestedFormControl(
532
557
  }
533
558
  storageclassChange(selectedOption) {
534
559
  this.selectedStorageSelectOption = selectedOption;
535
- this.setAccessModeToSupportValueIfNeed();
536
560
  this.setVolumeModeToSupportValueIfNeed();
561
+ this.setAccessModeToSupportValueIfNeed();
562
+ }
563
+ volumeModeChange(volumeMode) {
564
+ this.setAccessModeToSupportValueIfNeed(volumeMode);
537
565
  }
538
566
  displayFieldSupported(fieldName) {
539
567
  if (!this.displayFields?.length) {
@@ -541,9 +569,9 @@ export class PersistentVolumeClaimFormComponent extends createNestedFormControl(
541
569
  }
542
570
  return this.displayFields.includes(fieldName);
543
571
  }
544
- setAccessModeToSupportValueIfNeed() {
545
- if (this.storageCommonUtil.isAccessModeDisabled(this.model.accessModes, this.selectedStorageSelectOption)) {
546
- this.model.accessModes = this.accessModes.find(accessMode => !this.storageCommonUtil.isAccessModeDisabled(accessMode, this.selectedStorageSelectOption));
572
+ setAccessModeToSupportValueIfNeed(volumeMode = this.volumeMode) {
573
+ if (this.storageCommonUtil.isAccessModeDisabled(this.model.accessModes, this.selectedStorageSelectOption, volumeMode === 'Block')) {
574
+ this.model.accessModes = this.accessModes.find(accessMode => !this.storageCommonUtil.isAccessModeDisabled(accessMode, this.selectedStorageSelectOption, this.volumeMode === 'Block'));
547
575
  }
548
576
  }
549
577
  setVolumeModeToSupportValueIfNeed() {
@@ -563,7 +591,7 @@ export class PersistentVolumeClaimFormComponent extends createNestedFormControl(
563
591
  useExisting: forwardRef(() => PersistentVolumeClaimFormComponent),
564
592
  multi: true,
565
593
  },
566
- ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 15, vars: 29, consts: [["name", "ngModel"], ["createTypeTmpl", ""], ["storageClassName", "ngModel"], ["accessMode", "ngModel"], ["accessModeTip", ""], ["storage", "ngModel"], ["capacityTpl", ""], ["volumeModeTip", ""], ["volumeModeTmpl", ""], ["width", "large", 4, "ngIf"], [4, "ngIf"], ["width", "medium", 4, "ngIf"], ["width", "large"], ["auiFormItemLabel", ""], ["aui-input", "", "auiFormItemControl", "", "name", "name", "maxlength", "63", "required", "", 3, "ngModelChange", "ngModel", "placeholder", "pattern"], ["auiFormItemError", "", 3, "errors", "errorsMapper"], ["size", "medium", "name", "createMethod", 3, "ngModelChange", "ngModel", "aclReadonlyField", "aclReadonlyFieldTemplate"], [3, "value"], ["width", "medium"], ["auiFormItemControl", "", "required", "", "name", "storageClassName", 3, "ngModelChange", "storageClassChange", "storageClasses", "volumeSnapshotClasses", "isFromSnapshot", "ngModel"], ["auiFormItemError", "", 3, "errors"], ["auiFormItemControl", "", "required", "", "name", "accessModes", 3, "ngModelChange", "ngModel"], [3, "auiTooltip", "auiTooltipDisabled", "value", "disabled", 4, "ngFor", "ngForOf"], ["auiFormItemAddon", ""], ["icon", "question_circle", 1, "icon--help", 3, "auiTooltip", "auiTooltipPosition"], [3, "auiTooltip", "auiTooltipDisabled", "value", "disabled"], [1, "d-list"], ["aui-input", "", "type", "text", "name", "storage", "required", "", "auiFormItemControl", "", "required", "", 3, "ngModelChange", "pattern", "ngModel", "aclReadonlyField", "aclReadonlyFieldTemplate"], ["class", "tw-max-w-[60px] tw-ml-[-60px]", 3, "ngModel", "ngModelChange", 4, "ngIf"], [1, "tw-max-w-[60px]", "tw-ml-[-60px]", 3, "ngModelChange", "ngModel"], [3, "label", "value", 4, "ngFor", "ngForOf"], [3, "label", "value"], ["size", "medium", "name", "volumeMode", 3, "ngModelChange", "ngModel", "aclReadonlyField", "aclReadonlyFieldTemplate"], [3, "auiTooltip", "auiTooltipDisabled", "disabled", "value", 4, "ngFor", "ngForOf"], ["auiFormItemAddon", "", 4, "ngIf"], [3, "auiTooltip", "auiTooltipDisabled", "disabled", "value"], [3, "hint"], ["formGroupName", "metadata", 4, "ngIf"], ["formGroupName", "metadata"], ["auiFormItemControl", "", "name", "labels", 3, "ngModelChange", "ngModel", "resourceNameTranslated", "validator", "errorMapper"], ["auiFormItemControl", "", "name", "annotations", 3, "ngModelChange", "resourceNameTranslated", "ngModel", "validator", "errorMapper"], [3, "hidden"], ["auiFormItemControl", "", "name", "selector", 3, "ngModelChange", "ngModel"]], template: function PersistentVolumeClaimFormComponent_Template(rf, ctx) { if (rf & 1) {
594
+ ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 15, vars: 29, consts: [["name", "ngModel"], ["createTypeTmpl", ""], ["storageClassName", "ngModel"], ["volumeModeTip", ""], ["volumeModeTmpl", ""], ["accessMode", "ngModel"], ["accessModeTip", ""], ["storage", "ngModel"], ["capacityTpl", ""], ["width", "large", 4, "ngIf"], [4, "ngIf"], ["width", "medium", 4, "ngIf"], ["width", "large"], ["auiFormItemLabel", ""], ["aui-input", "", "auiFormItemControl", "", "name", "name", "maxlength", "63", "required", "", 3, "ngModelChange", "ngModel", "placeholder", "pattern"], ["auiFormItemError", "", 3, "errors", "errorsMapper"], ["size", "medium", "name", "createMethod", 3, "ngModelChange", "ngModel", "aclReadonlyField", "aclReadonlyFieldTemplate"], [3, "value"], ["width", "medium"], ["auiFormItemControl", "", "required", "", "name", "storageClassName", 3, "ngModelChange", "storageClassChange", "storageClasses", "volumeSnapshotClasses", "isFromSnapshot", "selectDefault", "ngModel"], ["auiFormItemError", "", 3, "errors"], ["auiFormItemHint", "", "class", "tw-text-yellow", 4, "ngIf"], ["auiFormItemHint", "", 1, "tw-text-yellow"], ["size", "medium", "name", "volumeMode", 3, "ngModelChange", "ngModel", "aclReadonlyField", "aclReadonlyFieldTemplate"], [3, "auiTooltip", "auiTooltipDisabled", "disabled", "value", 4, "ngFor", "ngForOf"], ["auiFormItemAddon", "", 4, "ngIf"], [3, "auiTooltip", "auiTooltipDisabled", "disabled", "value"], ["auiFormItemAddon", ""], ["icon", "question_circle", 1, "icon--help", 3, "auiTooltip", "auiTooltipPosition"], [1, "d-list"], ["auiFormItemControl", "", "name", "accessModes", 3, "ngModelChange", "ngModel"], [3, "auiTooltip", "auiTooltipDisabled", "value", "disabled", 4, "ngFor", "ngForOf"], [3, "auiTooltip", "auiTooltipDisabled", "value", "disabled"], ["aui-input", "", "type", "text", "name", "storage", "required", "", "auiFormItemControl", "", "required", "", 3, "ngModelChange", "pattern", "ngModel", "aclReadonlyField", "aclReadonlyFieldTemplate"], ["class", "tw-max-w-[60px] tw-ml-[-60px]", 3, "ngModel", "ngModelChange", 4, "ngIf"], [1, "tw-max-w-[60px]", "tw-ml-[-60px]", 3, "ngModelChange", "ngModel"], [3, "label", "value", 4, "ngFor", "ngForOf"], [3, "label", "value"], [3, "hint"], ["formGroupName", "metadata", 4, "ngIf"], ["formGroupName", "metadata"], ["auiFormItemControl", "", "name", "labels", 3, "ngModelChange", "ngModel", "resourceNameTranslated", "validator", "errorMapper"], ["auiFormItemControl", "", "name", "annotations", 3, "ngModelChange", "resourceNameTranslated", "ngModel", "validator", "errorMapper"], [3, "hidden"], ["auiFormItemControl", "", "name", "selector", 3, "ngModelChange", "ngModel"]], template: function PersistentVolumeClaimFormComponent_Template(rf, ctx) { if (rf & 1) {
567
595
  i0.ɵɵtemplate(0, PersistentVolumeClaimFormComponent_aui_form_item_0_Template, 9, 14, "aui-form-item", 9);
568
596
  i0.ɵɵpipe(1, "pure");
569
597
  i0.ɵɵtemplate(2, PersistentVolumeClaimFormComponent_ng_container_2_Template, 2, 1, "ng-container", 10);
@@ -572,11 +600,11 @@ export class PersistentVolumeClaimFormComponent extends createNestedFormControl(
572
600
  i0.ɵɵpipe(5, "pure");
573
601
  i0.ɵɵtemplate(6, PersistentVolumeClaimFormComponent_ng_container_6_Template, 2, 1, "ng-container", 10);
574
602
  i0.ɵɵpipe(7, "pure");
575
- i0.ɵɵtemplate(8, PersistentVolumeClaimFormComponent_aui_form_item_8_Template, 12, 8, "aui-form-item", 10);
603
+ i0.ɵɵtemplate(8, PersistentVolumeClaimFormComponent_aui_form_item_8_Template, 11, 8, "aui-form-item", 10);
576
604
  i0.ɵɵpipe(9, "pure");
577
- i0.ɵɵtemplate(10, PersistentVolumeClaimFormComponent_aui_form_item_10_Template, 11, 14, "aui-form-item", 11);
605
+ i0.ɵɵtemplate(10, PersistentVolumeClaimFormComponent_aui_form_item_10_Template, 12, 8, "aui-form-item", 10);
578
606
  i0.ɵɵpipe(11, "pure");
579
- i0.ɵɵtemplate(12, PersistentVolumeClaimFormComponent_aui_form_item_12_Template, 11, 8, "aui-form-item", 10);
607
+ i0.ɵɵtemplate(12, PersistentVolumeClaimFormComponent_aui_form_item_12_Template, 11, 14, "aui-form-item", 11);
580
608
  i0.ɵɵpipe(13, "pure");
581
609
  i0.ɵɵtemplate(14, PersistentVolumeClaimFormComponent_ng_container_14_Template, 9, 15, "ng-container", 10);
582
610
  } if (rf & 2) {
@@ -588,16 +616,16 @@ export class PersistentVolumeClaimFormComponent extends createNestedFormControl(
588
616
  i0.ɵɵadvance(2);
589
617
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(7, 17, "storageClassName", ctx.displayFieldSupported));
590
618
  i0.ɵɵadvance(2);
591
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(9, 20, "accessModes", ctx.displayFieldSupported));
619
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(9, 20, "volumeMode", ctx.displayFieldSupported));
592
620
  i0.ɵɵadvance(2);
593
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(11, 23, "storage", ctx.displayFieldSupported));
621
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(11, 23, "accessModes", ctx.displayFieldSupported));
594
622
  i0.ɵɵadvance(2);
595
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(13, 26, "volumeMode", ctx.displayFieldSupported));
623
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(13, 26, "storage", ctx.displayFieldSupported));
596
624
  i0.ɵɵadvance(2);
597
625
  i0.ɵɵproperty("ngIf", ctx.showAdvancedField);
598
626
  } }, dependencies: [NgIf,
599
627
  NgFor,
600
- FormsModule, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.RequiredValidator, i3.MaxLengthValidator, i3.PatternValidator, i3.NgModel, FormModule, i4.FormItemComponent, i4.FormItemAddonDirective, i4.FormItemErrorDirective, i4.FormItemLabelDirective, i4.FormItemControlDirective, RadioModule, i4.RadioGroupComponent, i4.RadioButtonComponent, InputModule, i4.InputComponent, SelectModule, i4.SelectComponent, i4.OptionComponent, TooltipModule, i4.TooltipDirective, IconModule, i4.IconComponent, PurePipe,
628
+ FormsModule, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.RequiredValidator, i3.MaxLengthValidator, i3.PatternValidator, i3.NgModel, FormModule, i4.FormItemComponent, i4.FormItemAddonDirective, i4.FormItemErrorDirective, i4.FormItemHintDirective, i4.FormItemLabelDirective, i4.FormItemControlDirective, RadioModule, i4.RadioGroupComponent, i4.RadioButtonComponent, InputModule, i4.InputComponent, SelectModule, i4.SelectComponent, i4.OptionComponent, TooltipModule, i4.TooltipDirective, IconModule, i4.IconComponent, PurePipe,
601
629
  AsyncPipe,
602
630
  LowerCasePipe,
603
631
  ReadonlyFieldDirective,
@@ -651,7 +679,7 @@ __decorate([
651
679
  useExisting: forwardRef(() => PersistentVolumeClaimFormComponent),
652
680
  multi: true,
653
681
  },
654
- ], template: "<aui-form-item\n width=\"large\"\n *ngIf=\"'name' | pure: displayFieldSupported\"\n>\n <label auiFormItemLabel>{{ 'name' | translate }}</label>\n <input\n aui-input\n auiFormItemControl\n [(ngModel)]=\"model.name\"\n name=\"name\"\n #name=\"ngModel\"\n maxlength=\"63\"\n [placeholder]=\"resourceNameReg.tip | translate\"\n [pattern]=\"resourceNameReg.pattern\"\n required\n />\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"name.errors\"\n [errorsMapper]=\"{\n pattern: resourceNameReg.tip | translate,\n }\"\n ></acl-errors-mapper>\n</aui-form-item>\n\n<ng-container *ngIf=\"'dataSource' | pure: displayFieldSupported\">\n <aui-form-item *ngIf=\"model.dataSource as dataSource\">\n <label auiFormItemLabel>{{ 'storage.data_source' | translate }}</label>\n {{ dataSource.name }}\n </aui-form-item>\n</ng-container>\n\n<aui-form-item *ngIf=\"'createType' | pure: displayFieldSupported\">\n <label auiFormItemLabel>{{ 'storage.create_method' | translate }}</label>\n <aui-radio-group\n size=\"medium\"\n [(ngModel)]=\"createMethod\"\n name=\"createMethod\"\n [aclReadonlyField]=\"isFromSnapshot || !!createType\"\n [aclReadonlyFieldTemplate]=\"createTypeTmpl\"\n (ngModelChange)=\"createMethodChange($event)\"\n >\n <aui-radio-button [value]=\"PvcStorageClassCreateType.DYNAMIC\">\n {{ 'storage.dynamic_create' | translate }}\n </aui-radio-button>\n <aui-radio-button [value]=\"PvcStorageClassCreateType.STATIC\">\n {{ 'storage.static_match' | translate }}\n </aui-radio-button>\n </aui-radio-group>\n <ng-template #createTypeTmpl>\n {{\n (createMethod === PvcStorageClassCreateType.DYNAMIC\n ? 'storage.dynamic_create'\n : 'storage.static_match'\n ) | translate\n }}\n </ng-template>\n</aui-form-item>\n\n<ng-container *ngIf=\"'storageClassName' | pure: displayFieldSupported\">\n <aui-form-item\n *ngIf=\"createMethod !== PvcStorageClassCreateType.STATIC\"\n width=\"medium\"\n >\n <label auiFormItemLabel>{{ 'storageclass' | translate }}</label>\n <acl-storageclass-select\n [storageClasses]=\"storageClassList$ | async\"\n [volumeSnapshotClasses]=\"volumeSnapshotClassList$ | async\"\n [isFromSnapshot]=\"isFromSnapshot\"\n auiFormItemControl\n required\n [(ngModel)]=\"model.storageClassName\"\n name=\"storageClassName\"\n #storageClassName=\"ngModel\"\n (storageClassChange)=\"storageclassChange($event)\"\n ></acl-storageclass-select>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"storageClassName.errors\"\n ></acl-errors-mapper>\n </aui-form-item>\n</ng-container>\n\n<aui-form-item *ngIf=\"'accessModes' | pure: displayFieldSupported\">\n <label auiFormItemLabel>{{ 'storage.access_mode' | translate }}</label>\n <aui-radio-group\n auiFormItemControl\n [(ngModel)]=\"model.accessModes\"\n required\n name=\"accessModes\"\n #accessMode=\"ngModel\"\n >\n <aui-radio-button\n *ngFor=\"let mode of accessModes\"\n [auiTooltip]=\"'storage.storage_forbid_select_access_mode' | translate\"\n [auiTooltipDisabled]=\"\n !(\n mode\n | pure\n : storageCommonUtil.isAccessModeDisabled\n : selectedStorageSelectOption\n )\n \"\n [value]=\"mode\"\n [disabled]=\"\n mode\n | pure\n : storageCommonUtil.isAccessModeDisabled\n : selectedStorageSelectOption\n \"\n >\n {{ 'storage.' + AccessModeTranslateKey[mode] | translate }}\n </aui-radio-button>\n </aui-radio-group>\n <div auiFormItemAddon>\n <aui-icon\n [auiTooltip]=\"accessModeTip\"\n [auiTooltipPosition]=\"'top center'\"\n icon=\"question_circle\"\n class=\"icon--help\"\n ></aui-icon>\n </div>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"accessMode.errors\"\n ></acl-errors-mapper>\n <ng-template #accessModeTip>\n <ul class=\"d-list\">\n <li>{{ 'storage.access_mode_rwo' | translate }}</li>\n <li>{{ 'storage.access_mode_rox' | translate }}</li>\n <li>{{ 'storage.access_mode_rwx' | translate }}</li>\n </ul>\n </ng-template>\n</aui-form-item>\n\n<aui-form-item\n width=\"medium\"\n *ngIf=\"'storage' | pure: displayFieldSupported\"\n>\n <label auiFormItemLabel>{{ 'storage.capacity' | translate }}</label>\n <input\n aui-input\n type=\"text\"\n [pattern]=\"POSITIVE_INT_PATTERN.pattern\"\n [(ngModel)]=\"model.storage\"\n name=\"storage\"\n #storage=\"ngModel\"\n required\n auiFormItemControl\n required\n [aclReadonlyField]=\"isFromSnapshot\"\n [aclReadonlyFieldTemplate]=\"capacityTpl\"\n />\n <aui-select\n *ngIf=\"!isFromSnapshot\"\n [(ngModel)]=\"unit\"\n class=\"tw-max-w-[60px] tw-ml-[-60px]\"\n >\n <aui-option\n *ngFor=\"let item of UNITS\"\n [label]=\"item\"\n [value]=\"item\"\n >\n {{ item }}\n </aui-option>\n </aui-select>\n <ng-template #capacityTpl> {{ model.storage }}Gi </ng-template>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"storage.errors\"\n [errorsMapper]=\"{\n pattern: POSITIVE_INT_PATTERN.tip | translate,\n }\"\n ></acl-errors-mapper>\n</aui-form-item>\n\n<aui-form-item *ngIf=\"'volumeMode' | pure: displayFieldSupported\">\n <label auiFormItemLabel>{{ 'storage.volume_mode' | translate }}</label>\n <aui-radio-group\n size=\"medium\"\n [(ngModel)]=\"model.volumeMode\"\n name=\"volumeMode\"\n [aclReadonlyField]=\"isFromSnapshot || !!volumeMode\"\n [aclReadonlyFieldTemplate]=\"volumeModeTmpl\"\n >\n <aui-radio-button\n *ngFor=\"let mode of volumeModes\"\n [auiTooltip]=\"'storage.storage_forbid_select_volume_mode' | translate\"\n [auiTooltipDisabled]=\"\n !(\n mode\n | pure\n : storageCommonUtil.isVolumeModeDisabled\n : selectedStorageSelectOption\n )\n \"\n [disabled]=\"\n mode\n | pure\n : storageCommonUtil.isVolumeModeDisabled\n : selectedStorageSelectOption\n \"\n [value]=\"mode\"\n >\n {{ 'storage.' + VolumeModeTranslateKey[mode] | translate }}\n </aui-radio-button>\n </aui-radio-group>\n <div\n auiFormItemAddon\n *ngIf=\"!volumeMode\"\n >\n <aui-icon\n [auiTooltip]=\"volumeModeTip\"\n [auiTooltipPosition]=\"'top center'\"\n icon=\"question_circle\"\n class=\"icon--help\"\n ></aui-icon>\n </div>\n <ng-template #volumeModeTip>\n <ul class=\"d-list\">\n <li>{{ 'storage.volume_mode_file_system_hint' | translate }}</li>\n <li>{{ 'storage.volume_mode_block_device_hint' | translate }}</li>\n </ul>\n </ng-template>\n <ng-template #volumeModeTmpl>\n {{\n (model.volumeMode === 'Filesystem'\n ? 'storage.file_system'\n : 'storage.block_device'\n ) | translate\n }}\n </ng-template>\n</aui-form-item>\n\n<ng-container *ngIf=\"showAdvancedField\">\n <acl-foldable-block hint=\"{{ 'storage.advanced' | translate }}\">\n <aui-form-item\n formGroupName=\"metadata\"\n *ngIf=\"'labels' | pure: displayFieldSupported\"\n >\n <label auiFormItemLabel>{{ 'label' | translate }}</label>\n <acl-key-value-form-table\n auiFormItemControl\n [(ngModel)]=\"model.labels\"\n name=\"labels\"\n [resourceNameTranslated]=\"'storage.labels' | translate | lowercase\"\n [validator]=\"labelValidator\"\n [errorMapper]=\"labelErrorMapper$ | async\"\n ></acl-key-value-form-table>\n </aui-form-item>\n <aui-form-item\n formGroupName=\"metadata\"\n *ngIf=\"'annotations' | pure: displayFieldSupported\"\n >\n <label auiFormItemLabel>{{ 'storage.k8s_annotation' | translate }}</label>\n <acl-key-value-form-table\n auiFormItemControl\n [resourceNameTranslated]=\"\n 'storage.k8s_annotation' | translate | lowercase\n \"\n [(ngModel)]=\"model.annotations\"\n name=\"annotations\"\n [validator]=\"annotationValidator\"\n [errorMapper]=\"annotationErrorMapper$ | async\"\n ></acl-key-value-form-table>\n </aui-form-item>\n <ng-container *ngIf=\"'selector' | pure: displayFieldSupported\">\n <aui-form-item\n [hidden]=\"createMethod === PvcStorageClassCreateType.DYNAMIC\"\n >\n <label auiFormItemLabel>{{ 'storage.selector' | translate }}</label>\n <acl-key-value-form-table\n auiFormItemControl\n [(ngModel)]=\"model.selector\"\n name=\"selector\"\n ></acl-key-value-form-table>\n </aui-form-item>\n </ng-container>\n </acl-foldable-block>\n</ng-container>\n" }]
682
+ ], template: "<aui-form-item\n width=\"large\"\n *ngIf=\"'name' | pure: displayFieldSupported\"\n>\n <label auiFormItemLabel>{{ 'name' | translate }}</label>\n <input\n aui-input\n auiFormItemControl\n [(ngModel)]=\"model.name\"\n name=\"name\"\n #name=\"ngModel\"\n maxlength=\"63\"\n [placeholder]=\"resourceNameReg.tip | translate\"\n [pattern]=\"resourceNameReg.pattern\"\n required\n />\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"name.errors\"\n [errorsMapper]=\"{\n pattern: resourceNameReg.tip | translate,\n }\"\n ></acl-errors-mapper>\n</aui-form-item>\n\n<ng-container *ngIf=\"'dataSource' | pure: displayFieldSupported\">\n <aui-form-item *ngIf=\"model.dataSource as dataSource\">\n <label auiFormItemLabel>{{ 'storage.data_source' | translate }}</label>\n {{ dataSource.name }}\n </aui-form-item>\n</ng-container>\n\n<aui-form-item *ngIf=\"'createType' | pure: displayFieldSupported\">\n <label auiFormItemLabel>{{ 'storage.create_method' | translate }}</label>\n <aui-radio-group\n size=\"medium\"\n [(ngModel)]=\"createMethod\"\n name=\"createMethod\"\n [aclReadonlyField]=\"isFromSnapshot || !!createType\"\n [aclReadonlyFieldTemplate]=\"createTypeTmpl\"\n (ngModelChange)=\"createMethodChange($event)\"\n >\n <aui-radio-button [value]=\"PvcStorageClassCreateType.DYNAMIC\">\n {{ 'storage.dynamic_create' | translate }}\n </aui-radio-button>\n <aui-radio-button [value]=\"PvcStorageClassCreateType.STATIC\">\n {{ 'storage.static_match' | translate }}\n </aui-radio-button>\n </aui-radio-group>\n <ng-template #createTypeTmpl>\n {{\n (createMethod === PvcStorageClassCreateType.DYNAMIC\n ? 'storage.dynamic_create'\n : 'storage.static_match'\n ) | translate\n }}\n </ng-template>\n</aui-form-item>\n\n<ng-container *ngIf=\"'storageClassName' | pure: displayFieldSupported\">\n <aui-form-item\n *ngIf=\"createMethod !== PvcStorageClassCreateType.STATIC\"\n width=\"medium\"\n >\n <label auiFormItemLabel>{{ 'storageclass' | translate }}</label>\n <acl-storageclass-select\n [storageClasses]=\"storageClassList$ | async\"\n [volumeSnapshotClasses]=\"volumeSnapshotClassList$ | async\"\n [isFromSnapshot]=\"isFromSnapshotAndSourcePVCExist\"\n [selectDefault]=\"selectDefault\"\n auiFormItemControl\n required\n [(ngModel)]=\"model.storageClassName\"\n name=\"storageClassName\"\n #storageClassName=\"ngModel\"\n (storageClassChange)=\"storageclassChange($event)\"\n ></acl-storageclass-select>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"storageClassName.errors\"\n ></acl-errors-mapper>\n <div\n auiFormItemHint\n class=\"tw-text-yellow\"\n *ngIf=\"showStorageClassHintWhenFromSnapshot\"\n >\n {{ 'storage.restore_pvc_storageclass_hint' | translate }}\n </div>\n </aui-form-item>\n</ng-container>\n\n<aui-form-item *ngIf=\"'volumeMode' | pure: displayFieldSupported\">\n <label auiFormItemLabel>{{ 'storage.volume_mode' | translate }}</label>\n <aui-radio-group\n size=\"medium\"\n [(ngModel)]=\"model.volumeMode\"\n name=\"volumeMode\"\n [aclReadonlyField]=\"isFromSnapshotAndSourcePVCExist || !!volumeMode\"\n [aclReadonlyFieldTemplate]=\"volumeModeTmpl\"\n (ngModelChange)=\"volumeModeChange($event)\"\n >\n <aui-radio-button\n *ngFor=\"let mode of volumeModes\"\n [auiTooltip]=\"'storage.storage_forbid_select_volume_mode' | translate\"\n [auiTooltipDisabled]=\"\n !(\n mode\n | pure\n : storageCommonUtil.isVolumeModeDisabled\n : selectedStorageSelectOption\n )\n \"\n [disabled]=\"\n mode\n | pure\n : storageCommonUtil.isVolumeModeDisabled\n : selectedStorageSelectOption\n \"\n [value]=\"mode\"\n >\n {{ 'storage.' + VolumeModeTranslateKey[mode] | translate }}\n </aui-radio-button>\n </aui-radio-group>\n <div\n auiFormItemAddon\n *ngIf=\"!volumeMode\"\n >\n <aui-icon\n [auiTooltip]=\"volumeModeTip\"\n [auiTooltipPosition]=\"'top center'\"\n icon=\"question_circle\"\n class=\"icon--help\"\n ></aui-icon>\n </div>\n <ng-template #volumeModeTip>\n <ul class=\"d-list\">\n <li>{{ 'storage.volume_mode_file_system_hint' | translate }}</li>\n <li>{{ 'storage.volume_mode_block_device_hint' | translate }}</li>\n </ul>\n </ng-template>\n <ng-template #volumeModeTmpl>\n {{\n (model.volumeMode === 'Filesystem'\n ? 'storage.file_system'\n : 'storage.block_device'\n ) | translate\n }}\n </ng-template>\n</aui-form-item>\n\n<aui-form-item *ngIf=\"'accessModes' | pure: displayFieldSupported\">\n <label auiFormItemLabel>{{ 'storage.access_mode' | translate }}</label>\n <aui-radio-group\n auiFormItemControl\n [(ngModel)]=\"model.accessModes\"\n name=\"accessModes\"\n #accessMode=\"ngModel\"\n >\n <aui-radio-button\n *ngFor=\"let mode of accessModes\"\n [auiTooltip]=\"'storage.storage_forbid_select_access_mode' | translate\"\n [auiTooltipDisabled]=\"\n !(\n mode\n | pure\n : storageCommonUtil.isAccessModeDisabled\n : selectedStorageSelectOption\n : model.volumeMode === 'Block'\n )\n \"\n [value]=\"mode\"\n [disabled]=\"\n mode\n | pure\n : storageCommonUtil.isAccessModeDisabled\n : selectedStorageSelectOption\n : model.volumeMode === 'Block'\n \"\n >\n {{ 'storage.' + AccessModeTranslateKey[mode] | translate }}\n </aui-radio-button>\n </aui-radio-group>\n <div auiFormItemAddon>\n <aui-icon\n [auiTooltip]=\"accessModeTip\"\n [auiTooltipPosition]=\"'top center'\"\n icon=\"question_circle\"\n class=\"icon--help\"\n ></aui-icon>\n </div>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"accessMode.errors\"\n ></acl-errors-mapper>\n <ng-template #accessModeTip>\n <ul class=\"d-list\">\n <li>{{ 'storage.access_mode_rwo' | translate }}</li>\n <li>{{ 'storage.access_mode_rox' | translate }}</li>\n <li>{{ 'storage.access_mode_rwx' | translate }}</li>\n </ul>\n </ng-template>\n</aui-form-item>\n\n<aui-form-item\n width=\"medium\"\n *ngIf=\"'storage' | pure: displayFieldSupported\"\n>\n <label auiFormItemLabel>{{ 'storage.capacity' | translate }}</label>\n <input\n aui-input\n type=\"text\"\n [pattern]=\"POSITIVE_INT_PATTERN.pattern\"\n [(ngModel)]=\"model.storage\"\n name=\"storage\"\n #storage=\"ngModel\"\n required\n auiFormItemControl\n required\n [aclReadonlyField]=\"isFromSnapshot\"\n [aclReadonlyFieldTemplate]=\"capacityTpl\"\n />\n <aui-select\n *ngIf=\"!isFromSnapshot\"\n [(ngModel)]=\"unit\"\n class=\"tw-max-w-[60px] tw-ml-[-60px]\"\n >\n <aui-option\n *ngFor=\"let item of UNITS\"\n [label]=\"item\"\n [value]=\"item\"\n >\n {{ item }}\n </aui-option>\n </aui-select>\n <ng-template #capacityTpl> {{ model.storage }}Gi </ng-template>\n <acl-errors-mapper\n auiFormItemError\n [errors]=\"storage.errors\"\n [errorsMapper]=\"{\n pattern: POSITIVE_INT_PATTERN.tip | translate,\n }\"\n ></acl-errors-mapper>\n</aui-form-item>\n\n<ng-container *ngIf=\"showAdvancedField\">\n <acl-foldable-block hint=\"{{ 'storage.advanced' | translate }}\">\n <aui-form-item\n formGroupName=\"metadata\"\n *ngIf=\"'labels' | pure: displayFieldSupported\"\n >\n <label auiFormItemLabel>{{ 'label' | translate }}</label>\n <acl-key-value-form-table\n auiFormItemControl\n [(ngModel)]=\"model.labels\"\n name=\"labels\"\n [resourceNameTranslated]=\"'storage.labels' | translate | lowercase\"\n [validator]=\"labelValidator\"\n [errorMapper]=\"labelErrorMapper$ | async\"\n ></acl-key-value-form-table>\n </aui-form-item>\n <aui-form-item\n formGroupName=\"metadata\"\n *ngIf=\"'annotations' | pure: displayFieldSupported\"\n >\n <label auiFormItemLabel>{{ 'storage.k8s_annotation' | translate }}</label>\n <acl-key-value-form-table\n auiFormItemControl\n [resourceNameTranslated]=\"\n 'storage.k8s_annotation' | translate | lowercase\n \"\n [(ngModel)]=\"model.annotations\"\n name=\"annotations\"\n [validator]=\"annotationValidator\"\n [errorMapper]=\"annotationErrorMapper$ | async\"\n ></acl-key-value-form-table>\n </aui-form-item>\n <ng-container *ngIf=\"'selector' | pure: displayFieldSupported\">\n <aui-form-item\n [hidden]=\"createMethod === PvcStorageClassCreateType.DYNAMIC\"\n >\n <label auiFormItemLabel>{{ 'storage.selector' | translate }}</label>\n <acl-key-value-form-table\n auiFormItemControl\n [(ngModel)]=\"model.selector\"\n name=\"selector\"\n ></acl-key-value-form-table>\n </aui-form-item>\n </ng-container>\n </acl-foldable-block>\n</ng-container>\n" }]
655
683
  }], () => [{ type: i1.StorageCommonUtilService }, { type: i2.TranslateService }, { type: i2.K8sApiService }], { baseParams: [{
656
684
  type: Input,
657
685
  args: [{ required: true }]
@@ -667,4 +695,4 @@ __decorate([
667
695
  type: Input
668
696
  }], displayFieldSupported: [] }); })();
669
697
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PersistentVolumeClaimFormComponent, { className: "PersistentVolumeClaimFormComponent", filePath: "lib/components/pvc-form/component.ts", lineNumber: 128 }); })();
670
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zdG9yYWdlL3NyYy9saWIvY29tcG9uZW50cy9wdmMtZm9ybS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3N0b3JhZ2Uvc3JjL2xpYi9jb21wb25lbnRzL3B2Yy1mb3JtL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBRUwsV0FBVyxFQUNYLG9DQUFvQyxFQUNwQyw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixVQUFVLEVBRVYsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUcxQix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixhQUFhLEVBQ2IsY0FBYyxFQUNkLFNBQVMsRUFDVCxXQUFXLEVBRVgsVUFBVSxFQUVWLElBQUksRUFFSixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixvQkFBb0IsR0FDckIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENB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LEVBQUUsSUFBSTtxQkFDWjtvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUNBQW1DLENBQUM7d0JBQ2pFLEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO29IQVNELFVBQVU7a0JBRFQsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsV0FBVyxNQUdYLGNBQWM7a0JBRGIsS0FBSztZQUlOLGVBQWUsTUFJZixjQUFjO2tCQURiLEtBQUs7WUFLTixVQUFVO2tCQURULEtBQUs7WUFLTixVQUFVO2tCQURULEtBQUs7WUFLTixhQUFhO2tCQURaLEtBQUs7WUEySE4scUJBQXFCO2tGQTFKVixrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGb3JtTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgUmFkaW9Nb2R1bGUsXG4gIFNlbGVjdE1vZHVsZSxcbiAgVG9vbHRpcE1vZHVsZSxcbn0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBBY2Nlc3NNb2RlLFxuICBBY2Nlc3NNb2RlcyxcbiAgZ2V0SzhzUmVzb3VyY2VBbm5vdGF0aW9uRXJyb3JNYXBwZXIkLFxuICBrOHNSZXNvdXJjZUFubm90YXRpb25WYWxpZGF0b3IsXG4gIGdldEs4c1Jlc291cmNlTGFiZWxFcnJvck1hcHBlciQsXG4gIGs4c1Jlc291cmNlTGFiZWxWYWxpZGF0b3IsXG4gIFZvbHVtZU1vZGUsXG4gIExhYmVsU2VsZWN0b3IsXG4gIEZvbGRhYmxlQmxvY2tDb21wb25lbnQsXG4gIEtleVZhbHVlRm9ybVRhYmxlQ29tcG9uZW50LFxuICBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sXG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbURhdGFTb3VyY2UsXG4gIGNyZWF0ZU5lc3RlZEZvcm1Db250cm9sLFxuICBkYXRhVHJhbnNmZXIsXG4gIFJlYWRvbmx5RmllbGREaXJlY3RpdmUsXG4gIEs4U19SRVNPVVJDRV9OQU1FX0JBU0UsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgSzhzQXBpU2VydmljZSxcbiAgUkVTT1VSQ0VfVFlQRVMsXG4gIHNraXBFcnJvcixcbiAgVm9sdW1lTW9kZXMsXG4gIFZhbHVlT2YsXG4gIHB1Ymxpc2hSZWYsXG4gIFN0cmluZ01hcCxcbiAgYmluZCxcbiAgV29ya3NwYWNlUGFyYW1zLFxuICBUUkFOU0xBVEVfTU9EVUxFLFxuICBFUlJPUlNfTUFQUEVSX01PRFVMRSxcbiAgUHVyZVBpcGUsXG4gIFBPU0lUSVZFX0lOVF9QQVRURVJOLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBBc3luY1BpcGUsIExvd2VyQ2FzZVBpcGUsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbXBvc2UgfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBtYXAsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgU3RvcmFnZVNlbGVjdE9wdGlvbixcbiAgU3RvcmFnZUNvbW1vblV0aWxTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24tdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2VDbGFzcywgVm9sdW1lU25hcHNob3RDbGFzcyB9IGZyb20gJy4uLy4uL3R5cGVzL2s4cyc7XG5pbXBvcnQge1xuICBBY2Nlc3NNb2RlVHJhbnNsYXRlS2V5LFxuICBWb2x1bWVNb2RlVHJhbnNsYXRlS2V5LFxufSBmcm9tICcuLi8uLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRQdmNSZXNvdXJjZSB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgU3RvcmFnZUNsYXNzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vc3RvcmFnZWNsYXNzLXNlbGVjdC9jb21wb25lbnQnO1xuXG5jb25zdCBQdmNTdG9yYWdlQ2xhc3NDcmVhdGVUeXBlID0ge1xuICBEWU5BTUlDOiAnZHluYW1pYycsXG4gIFNUQVRJQzogJ3N0YXRpYycsXG59IGFzIGNvbnN0O1xuXG50eXBlIFB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGUgPSBWYWx1ZU9mPHR5cGVvZiBQdmNTdG9yYWdlQ2xhc3NDcmVhdGVUeXBlPjtcblxuaW50ZXJmYWNlIFBlcnNpc3RlbnRWb2x1bWVGb3JtTW9kZWwge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsczogU3RyaW5nTWFwO1xuICBhbm5vdGF0aW9uczogU3RyaW5nTWFwO1xuICAvLyBudWxsIOihqOekuuS9v+eUqOm7mOiupCBzY1xuICAvLyBcIlwiIOaIluS4jeWGmeivpeWtl+auteihqOekuuS4jeiuvue9ruWtmOWCqOexu1xuICBzdG9yYWdlQ2xhc3NOYW1lOiBzdHJpbmc7XG4gIGFjY2Vzc01vZGVzOiBBY2Nlc3NNb2RlO1xuICB2b2x1bWVNb2RlOiBWb2x1bWVNb2RlO1xuICBzdG9yYWdlOiBzdHJpbmc7XG4gIGRhdGFTb3VyY2U/OiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1EYXRhU291cmNlO1xuICBzZWxlY3RvcjogTGFiZWxTZWxlY3Rvcjtcbn1cblxudHlwZSBEaXNwbGF5RmllbGQgPSBrZXlvZiBQZXJzaXN0ZW50Vm9sdW1lRm9ybU1vZGVsIHwgJ2NyZWF0ZVR5cGUnO1xuXG5jb25zdCBVTklUUyA9IFsnR2knLCAnVGknXSBhcyBjb25zdDtcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYWNsLXB2Yy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEZvcm1Nb2R1bGUsXG4gICAgUmFkaW9Nb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgU2VsZWN0TW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBQdXJlUGlwZSxcbiAgICBBc3luY1BpcGUsXG4gICAgTG93ZXJDYXNlUGlwZSxcbiAgICBSZWFkb25seUZpZWxkRGlyZWN0aXZlLFxuICAgIEZvbGRhYmxlQmxvY2tDb21wb25lbnQsXG4gICAgU3RvcmFnZUNsYXNzU2VsZWN0Q29tcG9uZW50LFxuICAgIEtleVZhbHVlRm9ybVRhYmxlQ29tcG9uZW50LFxuICAgIFRSQU5TTEFURV9NT0RVTEUsXG4gICAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGVyc2lzdGVudFZvbHVtZUNsYWltRm9ybUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1Gb3JtQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcnNpc3RlbnRWb2x1bWVDbGFpbUZvcm1Db21wb25lbnQgZXh0ZW5kcyBjcmVhdGVOZXN0ZWRGb3JtQ29udHJvbDxcbiAgUGVyc2lzdGVudFZvbHVtZUNsYWltLFxuICBQZXJzaXN0ZW50Vm9sdW1lRm9ybU1vZGVsXG4+KHtcbiAgYXV0b0VtaXRDaGFuZ2U6IHRydWUsXG59KSB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIGJhc2VQYXJhbXM6IFdvcmtzcGFjZVBhcmFtcztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgYmFzZVBhcmFtcyQhOiBPYnNlcnZhYmxlPFdvcmtzcGFjZVBhcmFtcz47XG5cbiAgQElucHV0KClcbiAgc3RvcmFnZUNsYXNzZXM6IFN0b3JhZ2VDbGFzc1tdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBzdG9yYWdlQ2xhc3NlcyQhOiBPYnNlcnZhYmxlPFN0b3JhZ2VDbGFzc1tdPjtcblxuICAvLyDlv6vnhafnsbsgcHZjIOWIm+W7ulxuICBASW5wdXQoKVxuICBpc0Zyb21TbmFwc2hvdDogYm9vbGVhbjtcblxuICAvLyDlpoLmnpzkvKDlhaXnm7jlupTnmoQgY3JlYXRlVHlwZSDooajnpLrlm7rlrprlhbblgLxcbiAgQElucHV0KClcbiAgY3JlYXRlVHlwZTogUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZTtcblxuICAvLyDlpoLmnpzkvKDlhaXnm7jlupTnmoQgdm9sdW1lTW9kZSDooajnpLrlm7rlrprlhbblgLxcbiAgQElucHV0KClcbiAgdm9sdW1lTW9kZTogVm9sdW1lTW9kZTtcblxuICAvLyDlpoLmnpzkvKDlhaXnm7jlupTnmoQgZGlzcGxheUZpZWxkIOihqOekuuWPquS8muWxleekuuWvueW6lOeahCBjb250cm9sXG4gIEBJbnB1dCgpXG4gIGRpc3BsYXlGaWVsZHM6IERpc3BsYXlGaWVsZFtdO1xuXG4gIGdldCBzaG93QWR2YW5jZWRGaWVsZCgpIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheUZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RmllbGRzPy5zb21lKGZpZWxkID0+XG4gICAgICBbJ2xhYmVscycsICdhbm5vdGF0aW9ucycsICdzZWxlY3RvciddLmluY2x1ZGVzKGZpZWxkKSxcbiAgICApO1xuICB9XG5cbiAgYWNjZXNzTW9kZXMgPSBBY2Nlc3NNb2RlcztcbiAgdm9sdW1lTW9kZXMgPSBWb2x1bWVNb2RlcztcbiAgUE9TSVRJVkVfSU5UX1BBVFRFUk4gPSBQT1NJVElWRV9JTlRfUEFUVEVSTjtcblxuICBvdmVycmlkZSBtb2RlbCA9IHt9IGFzIFBlcnNpc3RlbnRWb2x1bWVGb3JtTW9kZWw7XG5cbiAgcmVzb3VyY2VOYW1lUmVnID0gSzhTX1JFU09VUkNFX05BTUVfQkFTRTtcbiAgbGFiZWxWYWxpZGF0b3IgPSBrOHNSZXNvdXJjZUxhYmVsVmFsaWRhdG9yO1xuICBBY2Nlc3NNb2RlVHJhbnNsYXRlS2V5ID0gQWNjZXNzTW9kZVRyYW5zbGF0ZUtleTtcbiAgVm9sdW1lTW9kZVRyYW5zbGF0ZUtleSA9IFZvbHVtZU1vZGVUcmFuc2xhdGVLZXk7XG5cbiAgbGFiZWxFcnJvck1hcHBlciQgPSBnZXRLOHNSZXNvdXJjZUxhYmVsRXJyb3JNYXBwZXIkKHRoaXMudHJhbnNsYXRlKTtcbiAgYW5ub3RhdGlvblZhbGlkYXRvciA9IGs4c1Jlc291cmNlQW5ub3RhdGlvblZhbGlkYXRvcjtcbiAgYW5ub3RhdGlvbkVycm9yTWFwcGVyJCA9IGdldEs4c1Jlc291cmNlQW5ub3RhdGlvbkVycm9yTWFwcGVyJCh0aGlzLnRyYW5zbGF0ZSk7XG5cbiAgY3JlYXRlTWV0aG9kOiBQdmNTdG9yYWdlQ2xhc3NDcmVhdGVUeXBlO1xuICBQdmNTdG9yYWdlQ2xhc3NDcmVhdGVUeXBlID0gUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZTtcbiAgc2VsZWN0ZWRTdG9yYWdlU2VsZWN0T3B0aW9uOiBTdG9yYWdlU2VsZWN0T3B0aW9uO1xuICBVTklUUyA9IFVOSVRTO1xuICB1bml0ID0gJ0dpJztcblxuICBzdG9yYWdlQ2xhc3NMaXN0JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuYmFzZVBhcmFtcyQsXG4gICAgdGhpcy5zdG9yYWdlQ2xhc3NlcyQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbeyBjbHVzdGVyIH0sIHN0b3JhZ2VDbGFzc2VzXSkgPT4ge1xuICAgICAgaWYgKHN0b3JhZ2VDbGFzc2VzKSB7XG4gICAgICAgIHJldHVybiBvZihzdG9yYWdlQ2xhc3Nlcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5rOHNBcGlcbiAgICAgICAgLmdldFJlc291cmNlTGlzdDxTdG9yYWdlQ2xhc3M+KHtcbiAgICAgICAgICB0eXBlOiBSRVNPVVJDRV9UWVBFUy5TVE9SQUdFX0NMQVNTLFxuICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgIGxpbWl0OiAnMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUobWFwKHJlcyA9PiByZXM/Lml0ZW1zKSk7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIHZvbHVtZVNuYXBzaG90Q2xhc3NMaXN0JCA9IHRoaXMuYmFzZVBhcmFtcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoYmFzZVBhcmFtcyA9PlxuICAgICAgdGhpcy5rOHNBcGlcbiAgICAgICAgLmdldFJlc291cmNlTGlzdDxWb2x1bWVTbmFwc2hvdENsYXNzPih7XG4gICAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuVk9MVU1FX1NOQVBTSE9UX0NMQVNTLFxuICAgICAgICAgIGNsdXN0ZXI6IGJhc2VQYXJhbXMuY2x1c3RlcixcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHIgPT4gci5pdGVtcyksXG4gICAgICAgICAgc2tpcEVycm9yKFtdIGFzIFZvbHVtZVNuYXBzaG90Q2xhc3NbXSksXG4gICAgICAgICksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogUGVyc2lzdGVudFZvbHVtZUNsYWltKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbCA9IHRoaXMudmFsdWVJbihcbiAgICAgIHZhbHVlID8/XG4gICAgICAgIGJ1aWxkUHZjUmVzb3VyY2Uoe1xuICAgICAgICAgIG5hbWVzcGFjZTogdGhpcy5iYXNlUGFyYW1zLm5hbWVzcGFjZSxcbiAgICAgICAgICB2b2x1bWVNb2RlOiB0aGlzLnZvbHVtZU1vZGUsXG4gICAgICAgIH0pLFxuICAgICk7XG4gICAgaWYgKHRoaXMuY3JlYXRlVHlwZSkge1xuICAgICAgdGhpcy5jcmVhdGVNZXRob2QgPSB0aGlzLmNyZWF0ZVR5cGU7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHN0b3JhZ2VDb21tb25VdGlsOiBTdG9yYWdlQ29tbW9uVXRpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNBcGk6IEs4c0FwaVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCBbdG9Nb2RlbCwgdG9SZXNvdXJjZV0gPSBkYXRhVHJhbnNmZXI8XG4gICAgICBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sXG4gICAgICBQZXJzaXN0ZW50Vm9sdW1lRm9ybU1vZGVsXG4gICAgPih7XG4gICAgICBuYW1lOiAnbWV0YWRhdGEubmFtZScsXG4gICAgICBsYWJlbHM6ICdtZXRhZGF0YS5sYWJlbHMnLFxuICAgICAgYW5ub3RhdGlvbnM6ICdtZXRhZGF0YS5hbm5vdGF0aW9ucycsXG4gICAgICBzdG9yYWdlQ2xhc3NOYW1lOiAnc3BlYy5zdG9yYWdlQ2xhc3NOYW1lJyxcbiAgICAgIGFjY2Vzc01vZGVzOiBbJ3NwZWMnLCAnYWNjZXNzTW9kZXMnLCAwXSxcbiAgICAgIHZvbHVtZU1vZGU6ICdzcGVjLnZvbHVtZU1vZGUnLFxuICAgICAgc3RvcmFnZTogJ3NwZWMucmVzb3VyY2VzLnJlcXVlc3RzLnN0b3JhZ2UnLFxuICAgICAgZGF0YVNvdXJjZTogJ3NwZWMuZGF0YVNvdXJjZScsXG4gICAgICBzZWxlY3RvcjogJ3NwZWMuc2VsZWN0b3IubWF0Y2hMYWJlbHMnLFxuICAgIH0pO1xuXG4gICAgdGhpcy52YWx1ZUluID0gY29tcG9zZSh0b01vZGVsLCB0aGlzLmFkYXB0UmVzb3VyY2VNb2RlbCk7XG4gICAgdGhpcy5tb2RlbE91dCA9IGNvbXBvc2UodGhpcy5vdmVycmlkZVJlc291cmNlLCB0b1Jlc291cmNlKTtcbiAgfVxuXG4gIGNyZWF0ZU1ldGhvZENoYW5nZShjcmVhdGVUeXBlOiBQdmNTdG9yYWdlQ2xhc3NDcmVhdGVUeXBlKSB7XG4gICAgLy8g6Z2Z5oCB5Yy56YWN5LiN6ZyA6KaB6ZmQ5Yi26K6/6Zeu5qih5byPXG4gICAgaWYgKGNyZWF0ZVR5cGUgPT09ICdzdGF0aWMnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvbiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgc3RvcmFnZWNsYXNzQ2hhbmdlKHNlbGVjdGVkT3B0aW9uOiBTdG9yYWdlU2VsZWN0T3B0aW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZFN0b3JhZ2VTZWxlY3RPcHRpb24gPSBzZWxlY3RlZE9wdGlvbjtcbiAgICB0aGlzLnNldEFjY2Vzc01vZGVUb1N1cHBvcnRWYWx1ZUlmTmVlZCgpO1xuICAgIHRoaXMuc2V0Vm9sdW1lTW9kZVRvU3VwcG9ydFZhbHVlSWZOZWVkKCk7XG4gIH1cblxuICBAYmluZFxuICBkaXNwbGF5RmllbGRTdXBwb3J0ZWQoZmllbGROYW1lOiBEaXNwbGF5RmllbGQpIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheUZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RmllbGRzLmluY2x1ZGVzKGZpZWxkTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHNldEFjY2Vzc01vZGVUb1N1cHBvcnRWYWx1ZUlmTmVlZCgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnN0b3JhZ2VDb21tb25VdGlsLmlzQWNjZXNzTW9kZURpc2FibGVkKFxuICAgICAgICB0aGlzLm1vZGVsLmFjY2Vzc01vZGVzLFxuICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvbixcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMubW9kZWwuYWNjZXNzTW9kZXMgPSB0aGlzLmFjY2Vzc01vZGVzLmZpbmQoXG4gICAgICAgIGFjY2Vzc01vZGUgPT5cbiAgICAgICAgICAhdGhpcy5zdG9yYWdlQ29tbW9uVXRpbC5pc0FjY2Vzc01vZGVEaXNhYmxlZChcbiAgICAgICAgICAgIGFjY2Vzc01vZGUsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvbixcbiAgICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFZvbHVtZU1vZGVUb1N1cHBvcnRWYWx1ZUlmTmVlZCgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnN0b3JhZ2VDb21tb25VdGlsLmlzVm9sdW1lTW9kZURpc2FibGVkKFxuICAgICAgICB0aGlzLm1vZGVsLnZvbHVtZU1vZGUsXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yYWdlU2VsZWN0T3B0aW9uLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5tb2RlbC52b2x1bWVNb2RlID0gdGhpcy52b2x1bWVNb2Rlcy5maW5kKFxuICAgICAgICB2b2x1bWVNb2RlID0+XG4gICAgICAgICAgIXRoaXMuc3RvcmFnZUNvbW1vblV0aWwuaXNWb2x1bWVNb2RlRGlzYWJsZWQoXG4gICAgICAgICAgICB2b2x1bWVNb2RlLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JhZ2VTZWxlY3RPcHRpb24sXG4gICAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhZGFwdFJlc291cmNlTW9kZWwgPSAocHZjOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0pID0+IHtcbiAgICBjb25zdCBzdG9yYWdlID0gcHZjPy5zcGVjPy5yZXNvdXJjZXM/LnJlcXVlc3RzPy5zdG9yYWdlO1xuICAgIGlmIChzdG9yYWdlKSB7XG4gICAgICBjb25zdCByZXMgPSBTdHJpbmcoc3RvcmFnZSkubWF0Y2goL1tBLVphLXpdK3xcXGQrKD86XFwuXFxkKyk/L2cpO1xuICAgICAgcHZjLnNwZWMucmVzb3VyY2VzLnJlcXVlc3RzLnN0b3JhZ2UgPSByZXNbMF0gfHwgJyc7XG4gICAgICB0aGlzLnVuaXQgPSByZXNbMV0gfHwgJ0dpJztcbiAgICB9XG5cbiAgICAvLyBcIlwiIOihqOekuumdmeaAgeWIm+W7ulxuICAgIHRoaXMuY3JlYXRlTWV0aG9kID1cbiAgICAgIHB2Yz8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZSA9PT0gJycgPyAnc3RhdGljJyA6ICdkeW5hbWljJztcblxuICAgIHJldHVybiBwdmM7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvdmVycmlkZVJlc291cmNlID0gKHB2YzogUGVyc2lzdGVudFZvbHVtZUNsYWltKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jcmVhdGVNZXRob2QgPT09ICdkeW5hbWljJyB8fFxuICAgICAgT2JqZWN0LmtleXMocHZjPy5zcGVjPy5zZWxlY3Rvcj8ubWF0Y2hMYWJlbHMgPz8ge30pLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgZGVsZXRlIHB2Yz8uc3BlYz8uc2VsZWN0b3I7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3JlYXRlTWV0aG9kID09PSAnc3RhdGljJykge1xuICAgICAgcHZjLnNwZWMuc3RvcmFnZUNsYXNzTmFtZSA9ICcnO1xuICAgIH1cblxuICAgIGlmIChwdmM/LnNwZWM/LnJlc291cmNlcz8ucmVxdWVzdHM/LnN0b3JhZ2UpIHtcbiAgICAgIHB2Yy5zcGVjLnJlc291cmNlcy5yZXF1ZXN0cy5zdG9yYWdlID0gYCR7cHZjLnNwZWMucmVzb3VyY2VzLnJlcXVlc3RzLnN0b3JhZ2V9JHt0aGlzLnVuaXR9YDtcbiAgICB9XG4gICAgcmV0dXJuIHB2YztcbiAgfTtcbn1cbiIsIjxhdWktZm9ybS1pdGVtXG4gIHdpZHRoPVwibGFyZ2VcIlxuICAqbmdJZj1cIiduYW1lJyB8IHB1cmU6IGRpc3BsYXlGaWVsZFN1cHBvcnRlZFwiXG4+XG4gIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICduYW1lJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gIDxpbnB1dFxuICAgIGF1aS1pbnB1dFxuICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgIFsobmdNb2RlbCldPVwibW9kZWwubmFtZVwiXG4gICAgbmFtZT1cIm5hbWVcIlxuICAgICNuYW1lPVwibmdNb2RlbFwiXG4gICAgbWF4bGVuZ3RoPVwiNjNcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJyZXNvdXJjZU5hbWVSZWcudGlwIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0dGVybl09XCJyZXNvdXJjZU5hbWVSZWcucGF0dGVyblwiXG4gICAgcmVxdWlyZWRcbiAgLz5cbiAgPGFjbC1lcnJvcnMtbWFwcGVyXG4gICAgYXVpRm9ybUl0ZW1FcnJvclxuICAgIFtlcnJvcnNdPVwibmFtZS5lcnJvcnNcIlxuICAgIFtlcnJvcnNNYXBwZXJdPVwie1xuICAgICAgcGF0dGVybjogcmVzb3VyY2VOYW1lUmVnLnRpcCB8IHRyYW5zbGF0ZSxcbiAgICB9XCJcbiAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG48L2F1aS1mb3JtLWl0ZW0+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCInZGF0YVNvdXJjZScgfCBwdXJlOiBkaXNwbGF5RmllbGRTdXBwb3J0ZWRcIj5cbiAgPGF1aS1mb3JtLWl0ZW0gKm5nSWY9XCJtb2RlbC5kYXRhU291cmNlIGFzIGRhdGFTb3VyY2VcIj5cbiAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc3RvcmFnZS5kYXRhX3NvdXJjZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgIHt7IGRhdGFTb3VyY2UubmFtZSB9fVxuICA8L2F1aS1mb3JtLWl0ZW0+XG48L25nLWNvbnRhaW5lcj5cblxuPGF1aS1mb3JtLWl0ZW0gKm5nSWY9XCInY3JlYXRlVHlwZScgfCBwdXJlOiBkaXNwbGF5RmllbGRTdXBwb3J0ZWRcIj5cbiAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ3N0b3JhZ2UuY3JlYXRlX21ldGhvZCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICA8YXVpLXJhZGlvLWdyb3VwXG4gICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgWyhuZ01vZGVsKV09XCJjcmVhdGVNZXRob2RcIlxuICAgIG5hbWU9XCJjcmVhdGVNZXRob2RcIlxuICAgIFthY2xSZWFkb25seUZpZWxkXT1cImlzRnJvbVNuYXBzaG90IHx8ICEhY3JlYXRlVHlwZVwiXG4gICAgW2FjbFJlYWRvbmx5RmllbGRUZW1wbGF0ZV09XCJjcmVhdGVUeXBlVG1wbFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY3JlYXRlTWV0aG9kQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPGF1aS1yYWRpby1idXR0b24gW3ZhbHVlXT1cIlB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGUuRFlOQU1JQ1wiPlxuICAgICAge3sgJ3N0b3JhZ2UuZHluYW1pY19jcmVhdGUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9hdWktcmFkaW8tYnV0dG9uPlxuICAgIDxhdWktcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJQdmNTdG9yYWdlQ2xhc3NDcmVhdGVUeXBlLlNUQVRJQ1wiPlxuICAgICAge3sgJ3N0b3JhZ2Uuc3RhdGljX21hdGNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYXVpLXJhZGlvLWJ1dHRvbj5cbiAgPC9hdWktcmFkaW8tZ3JvdXA+XG4gIDxuZy10ZW1wbGF0ZSAjY3JlYXRlVHlwZVRtcGw+XG4gICAge3tcbiAgICAgIChjcmVhdGVNZXRob2QgPT09IFB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGUuRFlOQU1JQ1xuICAgICAgICA/ICdzdG9yYWdlLmR5bmFtaWNfY3JlYXRlJ1xuICAgICAgICA6ICdzdG9yYWdlLnN0YXRpY19tYXRjaCdcbiAgICAgICkgfCB0cmFuc2xhdGVcbiAgICB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9hdWktZm9ybS1pdGVtPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiJ3N0b3JhZ2VDbGFzc05hbWUnIHwgcHVyZTogZGlzcGxheUZpZWxkU3VwcG9ydGVkXCI+XG4gIDxhdWktZm9ybS1pdGVtXG4gICAgKm5nSWY9XCJjcmVhdGVNZXRob2QgIT09IFB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGUuU1RBVElDXCJcbiAgICB3aWR0aD1cIm1lZGl1bVwiXG4gID5cbiAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc3RvcmFnZWNsYXNzJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGFjbC1zdG9yYWdlY2xhc3Mtc2VsZWN0XG4gICAgICBbc3RvcmFnZUNsYXNzZXNdPVwic3RvcmFnZUNsYXNzTGlzdCQgfCBhc3luY1wiXG4gICAgICBbdm9sdW1lU25hcHNob3RDbGFzc2VzXT1cInZvbHVtZVNuYXBzaG90Q2xhc3NMaXN0JCB8IGFzeW5jXCJcbiAgICAgIFtpc0Zyb21TbmFwc2hvdF09XCJpc0Zyb21TbmFwc2hvdFwiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIHJlcXVpcmVkXG4gICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnN0b3JhZ2VDbGFzc05hbWVcIlxuICAgICAgbmFtZT1cInN0b3JhZ2VDbGFzc05hbWVcIlxuICAgICAgI3N0b3JhZ2VDbGFzc05hbWU9XCJuZ01vZGVsXCJcbiAgICAgIChzdG9yYWdlQ2xhc3NDaGFuZ2UpPVwic3RvcmFnZWNsYXNzQ2hhbmdlKCRldmVudClcIlxuICAgID48L2FjbC1zdG9yYWdlY2xhc3Mtc2VsZWN0PlxuICAgIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgICAgYXVpRm9ybUl0ZW1FcnJvclxuICAgICAgW2Vycm9yc109XCJzdG9yYWdlQ2xhc3NOYW1lLmVycm9yc1wiXG4gICAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG4gIDwvYXVpLWZvcm0taXRlbT5cbjwvbmctY29udGFpbmVyPlxuXG48YXVpLWZvcm0taXRlbSAqbmdJZj1cIidhY2Nlc3NNb2RlcycgfCBwdXJlOiBkaXNwbGF5RmllbGRTdXBwb3J0ZWRcIj5cbiAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ3N0b3JhZ2UuYWNjZXNzX21vZGUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgPGF1aS1yYWRpby1ncm91cFxuICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgIFsobmdNb2RlbCldPVwibW9kZWwuYWNjZXNzTW9kZXNcIlxuICAgIHJlcXVpcmVkXG4gICAgbmFtZT1cImFjY2Vzc01vZGVzXCJcbiAgICAjYWNjZXNzTW9kZT1cIm5nTW9kZWxcIlxuICA+XG4gICAgPGF1aS1yYWRpby1idXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBtb2RlIG9mIGFjY2Vzc01vZGVzXCJcbiAgICAgIFthdWlUb29sdGlwXT1cIidzdG9yYWdlLnN0b3JhZ2VfZm9yYmlkX3NlbGVjdF9hY2Nlc3NfbW9kZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJcbiAgICAgICAgIShcbiAgICAgICAgICBtb2RlXG4gICAgICAgICAgfCBwdXJlXG4gICAgICAgICAgICA6IHN0b3JhZ2VDb21tb25VdGlsLmlzQWNjZXNzTW9kZURpc2FibGVkXG4gICAgICAgICAgICA6IHNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvblxuICAgICAgICApXG4gICAgICBcIlxuICAgICAgW3ZhbHVlXT1cIm1vZGVcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBtb2RlXG4gICAgICAgICAgfCBwdXJlXG4gICAgICAgICAgICA6IHN0b3JhZ2VDb21tb25VdGlsLmlzQWNjZXNzTW9kZURpc2FibGVkXG4gICAgICAgICAgICA6IHNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvblxuICAgICAgXCJcbiAgICA+XG4gICAgICB7eyAnc3RvcmFnZS4nICsgQWNjZXNzTW9kZVRyYW5zbGF0ZUtleVttb2RlXSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYXVpLXJhZGlvLWJ1dHRvbj5cbiAgPC9hdWktcmFkaW8tZ3JvdXA+XG4gIDxkaXYgYXVpRm9ybUl0ZW1BZGRvbj5cbiAgICA8YXVpLWljb25cbiAgICAgIFthdWlUb29sdGlwXT1cImFjY2Vzc01vZGVUaXBcIlxuICAgICAgW2F1aVRvb2x0aXBQb3NpdGlvbl09XCIndG9wIGNlbnRlcidcIlxuICAgICAgaWNvbj1cInF1ZXN0aW9uX2NpcmNsZVwiXG4gICAgICBjbGFzcz1cImljb24tLWhlbHBcIlxuICAgID48L2F1aS1pY29uPlxuICA8L2Rpdj5cbiAgPGFjbC1lcnJvcnMtbWFwcGVyXG4gICAgYXVpRm9ybUl0ZW1FcnJvclxuICAgIFtlcnJvcnNdPVwiYWNjZXNzTW9kZS5lcnJvcnNcIlxuICA+PC9hY2wtZXJyb3JzLW1hcHBlcj5cbiAgPG5nLXRlbXBsYXRlICNhY2Nlc3NNb2RlVGlwPlxuICAgIDx1bCBjbGFzcz1cImQtbGlzdFwiPlxuICAgICAgPGxpPnt7ICdzdG9yYWdlLmFjY2Vzc19tb2RlX3J3bycgfCB0cmFuc2xhdGUgfX08L2xpPlxuICAgICAgPGxpPnt7ICdzdG9yYWdlLmFjY2Vzc19tb2RlX3JveCcgfCB0cmFuc2xhdGUgfX08L2xpPlxuICAgICAgPGxpPnt7ICdzdG9yYWdlLmFjY2Vzc19tb2RlX3J3eCcgfCB0cmFuc2xhdGUgfX08L2xpPlxuICAgIDwvdWw+XG4gIDwvbmctdGVtcGxhdGU+XG48L2F1aS1mb3JtLWl0ZW0+XG5cbjxhdWktZm9ybS1pdGVtXG4gIHdpZHRoPVwibWVkaXVtXCJcbiAgKm5nSWY9XCInc3RvcmFnZScgfCBwdXJlOiBkaXNwbGF5RmllbGRTdXBwb3J0ZWRcIlxuPlxuICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc3RvcmFnZS5jYXBhY2l0eScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICA8aW5wdXRcbiAgICBhdWktaW5wdXRcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgW3BhdHRlcm5dPVwiUE9TSVRJVkVfSU5UX1BBVFRFUk4ucGF0dGVyblwiXG4gICAgWyhuZ01vZGVsKV09XCJtb2RlbC5zdG9yYWdlXCJcbiAgICBuYW1lPVwic3RvcmFnZVwiXG4gICAgI3N0b3JhZ2U9XCJuZ01vZGVsXCJcbiAgICByZXF1aXJlZFxuICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgIHJlcXVpcmVkXG4gICAgW2FjbFJlYWRvbmx5RmllbGRdPVwiaXNGcm9tU25hcHNob3RcIlxuICAgIFthY2xSZWFkb25seUZpZWxkVGVtcGxhdGVdPVwiY2FwYWNpdHlUcGxcIlxuICAvPlxuICA8YXVpLXNlbGVjdFxuICAgICpuZ0lmPVwiIWlzRnJvbVNuYXBzaG90XCJcbiAgICBbKG5nTW9kZWwpXT1cInVuaXRcIlxuICAgIGNsYXNzPVwidHctbWF4LXctWzYwcHhdIHR3LW1sLVstNjBweF1cIlxuICA+XG4gICAgPGF1aS1vcHRpb25cbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIFVOSVRTXCJcbiAgICAgIFtsYWJlbF09XCJpdGVtXCJcbiAgICAgIFt2YWx1ZV09XCJpdGVtXCJcbiAgICA+XG4gICAgICB7eyBpdGVtIH19XG4gICAgPC9hdWktb3B0aW9uPlxuICA8L2F1aS1zZWxlY3Q+XG4gIDxuZy10ZW1wbGF0ZSAjY2FwYWNpdHlUcGw+IHt7IG1vZGVsLnN0b3JhZ2UgfX1HaSA8L25nLXRlbXBsYXRlPlxuICA8YWNsLWVycm9ycy1tYXBwZXJcbiAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgW2Vycm9yc109XCJzdG9yYWdlLmVycm9yc1wiXG4gICAgW2Vycm9yc01hcHBlcl09XCJ7XG4gICAgICBwYXR0ZXJuOiBQT1NJVElWRV9JTlRfUEFUVEVSTi50aXAgfCB0cmFuc2xhdGUsXG4gICAgfVwiXG4gID48L2FjbC1lcnJvcnMtbWFwcGVyPlxuPC9hdWktZm9ybS1pdGVtPlxuXG48YXVpLWZvcm0taXRlbSAqbmdJZj1cIid2b2x1bWVNb2RlJyB8IHB1cmU6IGRpc3BsYXlGaWVsZFN1cHBvcnRlZFwiPlxuICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc3RvcmFnZS52b2x1bWVfbW9kZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICA8YXVpLXJhZGlvLWdyb3VwXG4gICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgWyhuZ01vZGVsKV09XCJtb2RlbC52b2x1bWVNb2RlXCJcbiAgICBuYW1lPVwidm9sdW1lTW9kZVwiXG4gICAgW2FjbFJlYWRvbmx5RmllbGRdPVwiaXNGcm9tU25hcHNob3QgfHwgISF2b2x1bWVNb2RlXCJcbiAgICBbYWNsUmVhZG9ubHlGaWVsZFRlbXBsYXRlXT1cInZvbHVtZU1vZGVUbXBsXCJcbiAgPlxuICAgIDxhdWktcmFkaW8tYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgbW9kZSBvZiB2b2x1bWVNb2Rlc1wiXG4gICAgICBbYXVpVG9vbHRpcF09XCInc3RvcmFnZS5zdG9yYWdlX2ZvcmJpZF9zZWxlY3Rfdm9sdW1lX21vZGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdWlUb29sdGlwRGlzYWJsZWRdPVwiXG4gICAgICAgICEoXG4gICAgICAgICAgbW9kZVxuICAgICAgICAgIHwgcHVyZVxuICAgICAgICAgICAgOiBzdG9yYWdlQ29tbW9uVXRpbC5pc1ZvbHVtZU1vZGVEaXNhYmxlZFxuICAgICAgICAgICAgOiBzZWxlY3RlZFN0b3JhZ2VTZWxlY3RPcHRpb25cbiAgICAgICAgKVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgbW9kZVxuICAgICAgICAgIHwgcHVyZVxuICAgICAgICAgICAgOiBzdG9yYWdlQ29tbW9uVXRpbC5pc1ZvbHVtZU1vZGVEaXNhYmxlZFxuICAgICAgICAgICAgOiBzZWxlY3RlZFN0b3JhZ2VTZWxlY3RPcHRpb25cbiAgICAgIFwiXG4gICAgICBbdmFsdWVdPVwibW9kZVwiXG4gICAgPlxuICAgICAge3sgJ3N0b3JhZ2UuJyArIFZvbHVtZU1vZGVUcmFuc2xhdGVLZXlbbW9kZV0gfCB0cmFuc2xhdGUgfX1cbiAgICA8L2F1aS1yYWRpby1idXR0b24+XG4gIDwvYXVpLXJhZGlvLWdyb3VwPlxuICA8ZGl2XG4gICAgYXVpRm9ybUl0ZW1BZGRvblxuICAgICpuZ0lmPVwiIXZvbHVtZU1vZGVcIlxuICA+XG4gICAgPGF1aS1pY29uXG4gICAgICBbYXVpVG9vbHRpcF09XCJ2b2x1bWVNb2RlVGlwXCJcbiAgICAgIFthdWlUb29sdGlwUG9zaXRpb25dPVwiJ3RvcCBjZW50ZXInXCJcbiAgICAgIGljb249XCJxdWVzdGlvbl9jaXJjbGVcIlxuICAgICAgY2xhc3M9XCJpY29uLS1oZWxwXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjdm9sdW1lTW9kZVRpcD5cbiAgICA8dWwgY2xhc3M9XCJkLWxpc3RcIj5cbiAgICAgIDxsaT57eyAnc3RvcmFnZS52b2x1bWVfbW9kZV9maWxlX3N5c3RlbV9oaW50JyB8IHRyYW5zbGF0ZSB9fTwvbGk+XG4gICAgICA8bGk+e3sgJ3N0b3JhZ2Uudm9sdW1lX21vZGVfYmxvY2tfZGV2aWNlX2hpbnQnIHwgdHJhbnNsYXRlIH19PC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI3ZvbHVtZU1vZGVUbXBsPlxuICAgIHt7XG4gICAgICAobW9kZWwudm9sdW1lTW9kZSA9PT0gJ0ZpbGVzeXN0ZW0nXG4gICAgICAgID8gJ3N0b3JhZ2UuZmlsZV9zeXN0ZW0nXG4gICAgICAgIDogJ3N0b3JhZ2UuYmxvY2tfZGV2aWNlJ1xuICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgIH19XG4gIDwvbmctdGVtcGxhdGU+XG48L2F1aS1mb3JtLWl0ZW0+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93QWR2YW5jZWRGaWVsZFwiPlxuICA8YWNsLWZvbGRhYmxlLWJsb2NrIGhpbnQ9XCJ7eyAnc3RvcmFnZS5hZHZhbmNlZCcgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICA8YXVpLWZvcm0taXRlbVxuICAgICAgZm9ybUdyb3VwTmFtZT1cIm1ldGFkYXRhXCJcbiAgICAgICpuZ0lmPVwiJ2xhYmVscycgfCBwdXJlOiBkaXNwbGF5RmllbGRTdXBwb3J0ZWRcIlxuICAgID5cbiAgICAgIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICdsYWJlbCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgPGFjbC1rZXktdmFsdWUtZm9ybS10YWJsZVxuICAgICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5sYWJlbHNcIlxuICAgICAgICBuYW1lPVwibGFiZWxzXCJcbiAgICAgICAgW3Jlc291cmNlTmFtZVRyYW5zbGF0ZWRdPVwiJ3N0b3JhZ2UubGFiZWxzJyB8IHRyYW5zbGF0ZSB8IGxvd2VyY2FzZVwiXG4gICAgICAgIFt2YWxpZGF0b3JdPVwibGFiZWxWYWxpZGF0b3JcIlxuICAgICAgICBbZXJyb3JNYXBwZXJdPVwibGFiZWxFcnJvck1hcHBlciQgfCBhc3luY1wiXG4gICAgICA+PC9hY2wta2V5LXZhbHVlLWZvcm0tdGFibGU+XG4gICAgPC9hdWktZm9ybS1pdGVtPlxuICAgIDxhdWktZm9ybS1pdGVtXG4gICAgICBmb3JtR3JvdXBOYW1lPVwibWV0YWRhdGFcIlxuICAgICAgKm5nSWY9XCInYW5ub3RhdGlvbnMnIHwgcHVyZTogZGlzcGxheUZpZWxkU3VwcG9ydGVkXCJcbiAgICA+XG4gICAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc3RvcmFnZS5rOHNfYW5ub3RhdGlvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgPGFjbC1rZXktdmFsdWUtZm9ybS10YWJsZVxuICAgICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgICAgW3Jlc291cmNlTmFtZVRyYW5zbGF0ZWRdPVwiXG4gICAgICAgICAgJ3N0b3JhZ2UuazhzX2Fubm90YXRpb24nIHwgdHJhbnNsYXRlIHwgbG93ZXJjYXNlXG4gICAgICAgIFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuYW5ub3RhdGlvbnNcIlxuICAgICAgICBuYW1lPVwiYW5ub3RhdGlvbnNcIlxuICAgICAgICBbdmFsaWRhdG9yXT1cImFubm90YXRpb25WYWxpZGF0b3JcIlxuICAgICAgICBbZXJyb3JNYXBwZXJdPVwiYW5ub3RhdGlvbkVycm9yTWFwcGVyJCB8IGFzeW5jXCJcbiAgICAgID48L2FjbC1rZXktdmFsdWUtZm9ybS10YWJsZT5cbiAgICA8L2F1aS1mb3JtLWl0ZW0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIidzZWxlY3RvcicgfCBwdXJlOiBkaXNwbGF5RmllbGRTdXBwb3J0ZWRcIj5cbiAgICAgIDxhdWktZm9ybS1pdGVtXG4gICAgICAgIFtoaWRkZW5dPVwiY3JlYXRlTWV0aG9kID09PSBQdmNTdG9yYWdlQ2xhc3NDcmVhdGVUeXBlLkRZTkFNSUNcIlxuICAgICAgPlxuICAgICAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc3RvcmFnZS5zZWxlY3RvcicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICA8YWNsLWtleS12YWx1ZS1mb3JtLXRhYmxlXG4gICAgICAgICAgYXVpRm9ybUl0ZW1Db250cm9sXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5zZWxlY3RvclwiXG4gICAgICAgICAgbmFtZT1cInNlbGVjdG9yXCJcbiAgICAgICAgPjwvYWNsLWtleS12YWx1ZS1mb3JtLXRhYmxlPlxuICAgICAgPC9hdWktZm9ybS1pdGVtPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2FjbC1mb2xkYWJsZS1ibG9jaz5cbjwvbmctY29udGFpbmVyPlxuIl19
698
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zdG9yYWdlL3NyYy9saWIvY29tcG9uZW50cy9wdmMtZm9ybS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3N0b3JhZ2Uvc3JjL2xpYi9jb21wb25lbnRzL3B2Yy1mb3JtL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBRUwsV0FBVyxFQUNYLG9DQUFvQyxFQUNwQyw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixVQUFVLEVBRVYsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUcxQix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixhQUFhLEVBQ2IsY0FBYyxFQUNkLFNBQVMsRUFDVCxXQUFXLEVBRVgsVUFBVSxFQUVWLElBQUksRUFFSixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixvQkFBb0IsR0FDckIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENB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QUFlLE1BSWYsY0FBYztrQkFEYixLQUFLO1lBS04sVUFBVTtrQkFEVCxLQUFLO1lBS04sVUFBVTtrQkFEVCxLQUFLO1lBS04sYUFBYTtrQkFEWixLQUFLO1lBK0lOLHFCQUFxQjtrRkE5S1Ysa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRm9ybU1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIFJhZGlvTW9kdWxlLFxuICBTZWxlY3RNb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQWNjZXNzTW9kZSxcbiAgQWNjZXNzTW9kZXMsXG4gIGdldEs4c1Jlc291cmNlQW5ub3RhdGlvbkVycm9yTWFwcGVyJCxcbiAgazhzUmVzb3VyY2VBbm5vdGF0aW9uVmFsaWRhdG9yLFxuICBnZXRLOHNSZXNvdXJjZUxhYmVsRXJyb3JNYXBwZXIkLFxuICBrOHNSZXNvdXJjZUxhYmVsVmFsaWRhdG9yLFxuICBWb2x1bWVNb2RlLFxuICBMYWJlbFNlbGVjdG9yLFxuICBGb2xkYWJsZUJsb2NrQ29tcG9uZW50LFxuICBLZXlWYWx1ZUZvcm1UYWJsZUNvbXBvbmVudCxcbiAgUGVyc2lzdGVudFZvbHVtZUNsYWltLFxuICBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1EYXRhU291cmNlLFxuICBjcmVhdGVOZXN0ZWRGb3JtQ29udHJvbCxcbiAgZGF0YVRyYW5zZmVyLFxuICBSZWFkb25seUZpZWxkRGlyZWN0aXZlLFxuICBLOFNfUkVTT1VSQ0VfTkFNRV9CQVNFLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIEs4c0FwaVNlcnZpY2UsXG4gIFJFU09VUkNFX1RZUEVTLFxuICBza2lwRXJyb3IsXG4gIFZvbHVtZU1vZGVzLFxuICBWYWx1ZU9mLFxuICBwdWJsaXNoUmVmLFxuICBTdHJpbmdNYXAsXG4gIGJpbmQsXG4gIFdvcmtzcGFjZVBhcmFtcyxcbiAgVFJBTlNMQVRFX01PRFVMRSxcbiAgRVJST1JTX01BUFBFUl9NT0RVTEUsXG4gIFB1cmVQaXBlLFxuICBQT1NJVElWRV9JTlRfUEFUVEVSTixcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBMb3dlckNhc2VQaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSAncmFtZGEnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgbWFwLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFN0b3JhZ2VTZWxlY3RPcHRpb24sXG4gIFN0b3JhZ2VDb21tb25VdGlsU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tbW9uLXV0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yYWdlQ2xhc3MsIFZvbHVtZVNuYXBzaG90Q2xhc3MgfSBmcm9tICcuLi8uLi90eXBlcy9rOHMnO1xuaW1wb3J0IHtcbiAgQWNjZXNzTW9kZVRyYW5zbGF0ZUtleSxcbiAgVm9sdW1lTW9kZVRyYW5zbGF0ZUtleSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IGJ1aWxkUHZjUmVzb3VyY2UgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFN0b3JhZ2VDbGFzc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL3N0b3JhZ2VjbGFzcy1zZWxlY3QvY29tcG9uZW50JztcblxuY29uc3QgUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZSA9IHtcbiAgRFlOQU1JQzogJ2R5bmFtaWMnLFxuICBTVEFUSUM6ICdzdGF0aWMnLFxufSBhcyBjb25zdDtcblxudHlwZSBQdmNTdG9yYWdlQ2xhc3NDcmVhdGVUeXBlID0gVmFsdWVPZjx0eXBlb2YgUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZT47XG5cbmludGVyZmFjZSBQZXJzaXN0ZW50Vm9sdW1lRm9ybU1vZGVsIHtcbiAgbmFtZTogc3RyaW5nO1xuICBsYWJlbHM6IFN0cmluZ01hcDtcbiAgYW5ub3RhdGlvbnM6IFN0cmluZ01hcDtcbiAgLy8gbnVsbCDooajnpLrkvb/nlKjpu5jorqQgc2NcbiAgLy8gXCJcIiDmiJbkuI3lhpnor6XlrZfmrrXooajnpLrkuI3orr7nva7lrZjlgqjnsbtcbiAgc3RvcmFnZUNsYXNzTmFtZTogc3RyaW5nO1xuICBhY2Nlc3NNb2RlczogQWNjZXNzTW9kZTtcbiAgdm9sdW1lTW9kZTogVm9sdW1lTW9kZTtcbiAgc3RvcmFnZTogc3RyaW5nO1xuICBkYXRhU291cmNlPzogUGVyc2lzdGVudFZvbHVtZUNsYWltRGF0YVNvdXJjZTtcbiAgc2VsZWN0b3I6IExhYmVsU2VsZWN0b3I7XG59XG5cbnR5cGUgRGlzcGxheUZpZWxkID0ga2V5b2YgUGVyc2lzdGVudFZvbHVtZUZvcm1Nb2RlbCB8ICdjcmVhdGVUeXBlJztcblxuY29uc3QgVU5JVFMgPSBbJ0dpJywgJ1RpJ10gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2FjbC1wdmMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGb3JtTW9kdWxlLFxuICAgIFJhZGlvTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFNlbGVjdE1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgUHVyZVBpcGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIExvd2VyQ2FzZVBpcGUsXG4gICAgUmVhZG9ubHlGaWVsZERpcmVjdGl2ZSxcbiAgICBGb2xkYWJsZUJsb2NrQ29tcG9uZW50LFxuICAgIFN0b3JhZ2VDbGFzc1NlbGVjdENvbXBvbmVudCxcbiAgICBLZXlWYWx1ZUZvcm1UYWJsZUNvbXBvbmVudCxcbiAgICBUUkFOU0xBVEVfTU9EVUxFLFxuICAgIEVSUk9SU19NQVBQRVJfTU9EVUxFLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBlcnNpc3RlbnRWb2x1bWVDbGFpbUZvcm1Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGVyc2lzdGVudFZvbHVtZUNsYWltRm9ybUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1Gb3JtQ29tcG9uZW50IGV4dGVuZHMgY3JlYXRlTmVzdGVkRm9ybUNvbnRyb2w8XG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgUGVyc2lzdGVudFZvbHVtZUZvcm1Nb2RlbFxuPih7XG4gIGF1dG9FbWl0Q2hhbmdlOiB0cnVlLFxufSkge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBiYXNlUGFyYW1zOiBXb3Jrc3BhY2VQYXJhbXM7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGJhc2VQYXJhbXMkITogT2JzZXJ2YWJsZTxXb3Jrc3BhY2VQYXJhbXM+O1xuXG4gIEBJbnB1dCgpXG4gIHN0b3JhZ2VDbGFzc2VzOiBTdG9yYWdlQ2xhc3NbXTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgc3RvcmFnZUNsYXNzZXMkITogT2JzZXJ2YWJsZTxTdG9yYWdlQ2xhc3NbXT47XG5cbiAgLy8g5b+r54Wn57G7IHB2YyDliJvlu7pcbiAgQElucHV0KClcbiAgaXNGcm9tU25hcHNob3Q6IGJvb2xlYW47XG5cbiAgLy8g5aaC5p6c5Lyg5YWl55u45bqU55qEIGNyZWF0ZVR5cGUg6KGo56S65Zu65a6a5YW25YC8XG4gIEBJbnB1dCgpXG4gIGNyZWF0ZVR5cGU6IFB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGU7XG5cbiAgLy8g5aaC5p6c5Lyg5YWl55u45bqU55qEIHZvbHVtZU1vZGUg6KGo56S65Zu65a6a5YW25YC8XG4gIEBJbnB1dCgpXG4gIHZvbHVtZU1vZGU6IFZvbHVtZU1vZGU7XG5cbiAgLy8g5aaC5p6c5Lyg5YWl55u45bqU55qEIGRpc3BsYXlGaWVsZCDooajnpLrlj6rkvJrlsZXnpLrlr7nlupTnmoQgY29udHJvbFxuICBASW5wdXQoKVxuICBkaXNwbGF5RmllbGRzOiBEaXNwbGF5RmllbGRbXTtcblxuICBnZXQgc2hvd0FkdmFuY2VkRmllbGQoKSB7XG4gICAgaWYgKCF0aGlzLmRpc3BsYXlGaWVsZHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUZpZWxkcz8uc29tZShmaWVsZCA9PlxuICAgICAgWydsYWJlbHMnLCAnYW5ub3RhdGlvbnMnLCAnc2VsZWN0b3InXS5pbmNsdWRlcyhmaWVsZCksXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc0Zyb21TbmFwc2hvdEFuZFNvdXJjZVBWQ0V4aXN0KCkge1xuICAgIHJldHVybiB0aGlzLmlzRnJvbVNuYXBzaG90ICYmICEhdGhpcy5vcmlnaW5SZXNvdXJjZT8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZTtcbiAgfVxuXG4gIGdldCBzZWxlY3REZWZhdWx0KCkge1xuICAgIHJldHVybiB0aGlzLmlzRnJvbVNuYXBzaG90XG4gICAgICA/ICEhdGhpcy5vcmlnaW5SZXNvdXJjZT8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZVxuICAgICAgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHNob3dTdG9yYWdlQ2xhc3NIaW50V2hlbkZyb21TbmFwc2hvdCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Zyb21TbmFwc2hvdCAmJiAhdGhpcy5vcmlnaW5SZXNvdXJjZT8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZTtcbiAgfVxuXG4gIGFjY2Vzc01vZGVzID0gQWNjZXNzTW9kZXM7XG4gIHZvbHVtZU1vZGVzID0gVm9sdW1lTW9kZXM7XG4gIFBPU0lUSVZFX0lOVF9QQVRURVJOID0gUE9TSVRJVkVfSU5UX1BBVFRFUk47XG4gIG9yaWdpblJlc291cmNlOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW07XG5cbiAgb3ZlcnJpZGUgbW9kZWwgPSB7fSBhcyBQZXJzaXN0ZW50Vm9sdW1lRm9ybU1vZGVsO1xuXG4gIHJlc291cmNlTmFtZVJlZyA9IEs4U19SRVNPVVJDRV9OQU1FX0JBU0U7XG4gIGxhYmVsVmFsaWRhdG9yID0gazhzUmVzb3VyY2VMYWJlbFZhbGlkYXRvcjtcbiAgQWNjZXNzTW9kZVRyYW5zbGF0ZUtleSA9IEFjY2Vzc01vZGVUcmFuc2xhdGVLZXk7XG4gIFZvbHVtZU1vZGVUcmFuc2xhdGVLZXkgPSBWb2x1bWVNb2RlVHJhbnNsYXRlS2V5O1xuXG4gIGxhYmVsRXJyb3JNYXBwZXIkID0gZ2V0SzhzUmVzb3VyY2VMYWJlbEVycm9yTWFwcGVyJCh0aGlzLnRyYW5zbGF0ZSk7XG4gIGFubm90YXRpb25WYWxpZGF0b3IgPSBrOHNSZXNvdXJjZUFubm90YXRpb25WYWxpZGF0b3I7XG4gIGFubm90YXRpb25FcnJvck1hcHBlciQgPSBnZXRLOHNSZXNvdXJjZUFubm90YXRpb25FcnJvck1hcHBlciQodGhpcy50cmFuc2xhdGUpO1xuXG4gIGNyZWF0ZU1ldGhvZDogUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZTtcbiAgUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZSA9IFB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGU7XG4gIHNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvbjogU3RvcmFnZVNlbGVjdE9wdGlvbjtcbiAgVU5JVFMgPSBVTklUUztcbiAgdW5pdCA9ICdHaSc7XG5cbiAgc3RvcmFnZUNsYXNzTGlzdCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmJhc2VQYXJhbXMkLFxuICAgIHRoaXMuc3RvcmFnZUNsYXNzZXMkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3sgY2x1c3RlciB9LCBzdG9yYWdlQ2xhc3Nlc10pID0+IHtcbiAgICAgIGlmIChzdG9yYWdlQ2xhc3Nlcykge1xuICAgICAgICByZXR1cm4gb2Yoc3RvcmFnZUNsYXNzZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAgIC5nZXRSZXNvdXJjZUxpc3Q8U3RvcmFnZUNsYXNzPih7XG4gICAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuU1RPUkFHRV9DTEFTUyxcbiAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICBsaW1pdDogJzAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzPy5pdGVtcykpO1xuICAgIH0pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICB2b2x1bWVTbmFwc2hvdENsYXNzTGlzdCQgPSB0aGlzLmJhc2VQYXJhbXMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGJhc2VQYXJhbXMgPT5cbiAgICAgIHRoaXMuazhzQXBpXG4gICAgICAgIC5nZXRSZXNvdXJjZUxpc3Q8Vm9sdW1lU25hcHNob3RDbGFzcz4oe1xuICAgICAgICAgIHR5cGU6IFJFU09VUkNFX1RZUEVTLlZPTFVNRV9TTkFQU0hPVF9DTEFTUyxcbiAgICAgICAgICBjbHVzdGVyOiBiYXNlUGFyYW1zLmNsdXN0ZXIsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChyID0+IHIuaXRlbXMpLFxuICAgICAgICAgIHNraXBFcnJvcihbXSBhcyBWb2x1bWVTbmFwc2hvdENsYXNzW10pLFxuICAgICAgICApLFxuICAgICksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSk6IHZvaWQge1xuICAgIHRoaXMub3JpZ2luUmVzb3VyY2UgPSB2YWx1ZTtcbiAgICB0aGlzLm1vZGVsID0gdGhpcy52YWx1ZUluKFxuICAgICAgdmFsdWUgPz9cbiAgICAgICAgYnVpbGRQdmNSZXNvdXJjZSh7XG4gICAgICAgICAgbmFtZXNwYWNlOiB0aGlzLmJhc2VQYXJhbXMubmFtZXNwYWNlLFxuICAgICAgICAgIHZvbHVtZU1vZGU6IHRoaXMudm9sdW1lTW9kZSxcbiAgICAgICAgfSksXG4gICAgKTtcbiAgICBpZiAodGhpcy5jcmVhdGVUeXBlKSB7XG4gICAgICB0aGlzLmNyZWF0ZU1ldGhvZCA9IHRoaXMuY3JlYXRlVHlwZTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RvcmFnZUNvbW1vblV0aWw6IFN0b3JhZ2VDb21tb25VdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c0FwaTogSzhzQXBpU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IFt0b01vZGVsLCB0b1Jlc291cmNlXSA9IGRhdGFUcmFuc2ZlcjxcbiAgICAgIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgICAgIFBlcnNpc3RlbnRWb2x1bWVGb3JtTW9kZWxcbiAgICA+KHtcbiAgICAgIG5hbWU6ICdtZXRhZGF0YS5uYW1lJyxcbiAgICAgIGxhYmVsczogJ21ldGFkYXRhLmxhYmVscycsXG4gICAgICBhbm5vdGF0aW9uczogJ21ldGFkYXRhLmFubm90YXRpb25zJyxcbiAgICAgIHN0b3JhZ2VDbGFzc05hbWU6ICdzcGVjLnN0b3JhZ2VDbGFzc05hbWUnLFxuICAgICAgYWNjZXNzTW9kZXM6IFsnc3BlYycsICdhY2Nlc3NNb2RlcycsIDBdLFxuICAgICAgdm9sdW1lTW9kZTogJ3NwZWMudm9sdW1lTW9kZScsXG4gICAgICBzdG9yYWdlOiAnc3BlYy5yZXNvdXJjZXMucmVxdWVzdHMuc3RvcmFnZScsXG4gICAgICBkYXRhU291cmNlOiAnc3BlYy5kYXRhU291cmNlJyxcbiAgICAgIHNlbGVjdG9yOiAnc3BlYy5zZWxlY3Rvci5tYXRjaExhYmVscycsXG4gICAgfSk7XG5cbiAgICB0aGlzLnZhbHVlSW4gPSBjb21wb3NlKHRvTW9kZWwsIHRoaXMuYWRhcHRSZXNvdXJjZU1vZGVsKTtcbiAgICB0aGlzLm1vZGVsT3V0ID0gY29tcG9zZSh0aGlzLm92ZXJyaWRlUmVzb3VyY2UsIHRvUmVzb3VyY2UpO1xuICB9XG5cbiAgY3JlYXRlTWV0aG9kQ2hhbmdlKGNyZWF0ZVR5cGU6IFB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGUpIHtcbiAgICAvLyDpnZnmgIHljLnphY3kuI3pnIDopoHpmZDliLborr/pl67mqKHlvI9cbiAgICBpZiAoY3JlYXRlVHlwZSA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yYWdlU2VsZWN0T3B0aW9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzdG9yYWdlY2xhc3NDaGFuZ2Uoc2VsZWN0ZWRPcHRpb246IFN0b3JhZ2VTZWxlY3RPcHRpb24pIHtcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvbiA9IHNlbGVjdGVkT3B0aW9uO1xuICAgIHRoaXMuc2V0Vm9sdW1lTW9kZVRvU3VwcG9ydFZhbHVlSWZOZWVkKCk7XG4gICAgdGhpcy5zZXRBY2Nlc3NNb2RlVG9TdXBwb3J0VmFsdWVJZk5lZWQoKTtcbiAgfVxuXG4gIHZvbHVtZU1vZGVDaGFuZ2Uodm9sdW1lTW9kZTogVm9sdW1lTW9kZSkge1xuICAgIHRoaXMuc2V0QWNjZXNzTW9kZVRvU3VwcG9ydFZhbHVlSWZOZWVkKHZvbHVtZU1vZGUpO1xuICB9XG5cbiAgQGJpbmRcbiAgZGlzcGxheUZpZWxkU3VwcG9ydGVkKGZpZWxkTmFtZTogRGlzcGxheUZpZWxkKSB7XG4gICAgaWYgKCF0aGlzLmRpc3BsYXlGaWVsZHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUZpZWxkcy5pbmNsdWRlcyhmaWVsZE5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY2Nlc3NNb2RlVG9TdXBwb3J0VmFsdWVJZk5lZWQodm9sdW1lTW9kZSA9IHRoaXMudm9sdW1lTW9kZSkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc3RvcmFnZUNvbW1vblV0aWwuaXNBY2Nlc3NNb2RlRGlzYWJsZWQoXG4gICAgICAgIHRoaXMubW9kZWwuYWNjZXNzTW9kZXMsXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yYWdlU2VsZWN0T3B0aW9uLFxuICAgICAgICB2b2x1bWVNb2RlID09PSAnQmxvY2snLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5tb2RlbC5hY2Nlc3NNb2RlcyA9IHRoaXMuYWNjZXNzTW9kZXMuZmluZChcbiAgICAgICAgYWNjZXNzTW9kZSA9PlxuICAgICAgICAgICF0aGlzLnN0b3JhZ2VDb21tb25VdGlsLmlzQWNjZXNzTW9kZURpc2FibGVkKFxuICAgICAgICAgICAgYWNjZXNzTW9kZSxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yYWdlU2VsZWN0T3B0aW9uLFxuICAgICAgICAgICAgdGhpcy52b2x1bWVNb2RlID09PSAnQmxvY2snLFxuICAgICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Vm9sdW1lTW9kZVRvU3VwcG9ydFZhbHVlSWZOZWVkKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc3RvcmFnZUNvbW1vblV0aWwuaXNWb2x1bWVNb2RlRGlzYWJsZWQoXG4gICAgICAgIHRoaXMubW9kZWwudm9sdW1lTW9kZSxcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JhZ2VTZWxlY3RPcHRpb24sXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLm1vZGVsLnZvbHVtZU1vZGUgPSB0aGlzLnZvbHVtZU1vZGVzLmZpbmQoXG4gICAgICAgIHZvbHVtZU1vZGUgPT5cbiAgICAgICAgICAhdGhpcy5zdG9yYWdlQ29tbW9uVXRpbC5pc1ZvbHVtZU1vZGVEaXNhYmxlZChcbiAgICAgICAgICAgIHZvbHVtZU1vZGUsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvbixcbiAgICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0UmVzb3VyY2VNb2RlbCA9IChwdmM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbSkgPT4ge1xuICAgIGNvbnN0IHN0b3JhZ2UgPSBwdmM/LnNwZWM/LnJlc291cmNlcz8ucmVxdWVzdHM/LnN0b3JhZ2U7XG4gICAgaWYgKHN0b3JhZ2UpIHtcbiAgICAgIGNvbnN0IHJlcyA9IFN0cmluZyhzdG9yYWdlKS5tYXRjaCgvW0EtWmEtel0rfFxcZCsoPzpcXC5cXGQrKT8vZyk7XG4gICAgICBwdmMuc3BlYy5yZXNvdXJjZXMucmVxdWVzdHMuc3RvcmFnZSA9IHJlc1swXSB8fCAnJztcbiAgICAgIHRoaXMudW5pdCA9IHJlc1sxXSB8fCAnR2knO1xuICAgIH1cblxuICAgIC8vIFwiXCIg6KGo56S66Z2Z5oCB5Yib5bu6XG4gICAgdGhpcy5jcmVhdGVNZXRob2QgPVxuICAgICAgcHZjPy5zcGVjPy5zdG9yYWdlQ2xhc3NOYW1lID09PSAnJyA/ICdzdGF0aWMnIDogJ2R5bmFtaWMnO1xuXG4gICAgcmV0dXJuIHB2YztcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG92ZXJyaWRlUmVzb3VyY2UgPSAocHZjOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0pID0+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmNyZWF0ZU1ldGhvZCA9PT0gJ2R5bmFtaWMnIHx8XG4gICAgICBPYmplY3Qua2V5cyhwdmM/LnNwZWM/LnNlbGVjdG9yPy5tYXRjaExhYmVscyA/PyB7fSkubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICBkZWxldGUgcHZjPy5zcGVjPy5zZWxlY3RvcjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jcmVhdGVNZXRob2QgPT09ICdzdGF0aWMnKSB7XG4gICAgICBwdmMuc3BlYy5zdG9yYWdlQ2xhc3NOYW1lID0gJyc7XG4gICAgfVxuXG4gICAgaWYgKHB2Yz8uc3BlYz8ucmVzb3VyY2VzPy5yZXF1ZXN0cz8uc3RvcmFnZSkge1xuICAgICAgcHZjLnNwZWMucmVzb3VyY2VzLnJlcXVlc3RzLnN0b3JhZ2UgPSBgJHtwdmMuc3BlYy5yZXNvdXJjZXMucmVxdWVzdHMuc3RvcmFnZX0ke3RoaXMudW5pdH1gO1xuICAgIH1cbiAgICByZXR1cm4gcHZjO1xuICB9O1xufVxuIiwiPGF1aS1mb3JtLWl0ZW1cbiAgd2lkdGg9XCJsYXJnZVwiXG4gICpuZ0lmPVwiJ25hbWUnIHwgcHVyZTogZGlzcGxheUZpZWxkU3VwcG9ydGVkXCJcbj5cbiAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ25hbWUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgPGlucHV0XG4gICAgYXVpLWlucHV0XG4gICAgYXVpRm9ybUl0ZW1Db250cm9sXG4gICAgWyhuZ01vZGVsKV09XCJtb2RlbC5uYW1lXCJcbiAgICBuYW1lPVwibmFtZVwiXG4gICAgI25hbWU9XCJuZ01vZGVsXCJcbiAgICBtYXhsZW5ndGg9XCI2M1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInJlc291cmNlTmFtZVJlZy50aXAgfCB0cmFuc2xhdGVcIlxuICAgIFtwYXR0ZXJuXT1cInJlc291cmNlTmFtZVJlZy5wYXR0ZXJuXCJcbiAgICByZXF1aXJlZFxuICAvPlxuICA8YWNsLWVycm9ycy1tYXBwZXJcbiAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgW2Vycm9yc109XCJuYW1lLmVycm9yc1wiXG4gICAgW2Vycm9yc01hcHBlcl09XCJ7XG4gICAgICBwYXR0ZXJuOiByZXNvdXJjZU5hbWVSZWcudGlwIHwgdHJhbnNsYXRlLFxuICAgIH1cIlxuICA+PC9hY2wtZXJyb3JzLW1hcHBlcj5cbjwvYXVpLWZvcm0taXRlbT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIidkYXRhU291cmNlJyB8IHB1cmU6IGRpc3BsYXlGaWVsZFN1cHBvcnRlZFwiPlxuICA8YXVpLWZvcm0taXRlbSAqbmdJZj1cIm1vZGVsLmRhdGFTb3VyY2UgYXMgZGF0YVNvdXJjZVwiPlxuICAgIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICdzdG9yYWdlLmRhdGFfc291cmNlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAge3sgZGF0YVNvdXJjZS5uYW1lIH19XG4gIDwvYXVpLWZvcm0taXRlbT5cbjwvbmctY29udGFpbmVyPlxuXG48YXVpLWZvcm0taXRlbSAqbmdJZj1cIidjcmVhdGVUeXBlJyB8IHB1cmU6IGRpc3BsYXlGaWVsZFN1cHBvcnRlZFwiPlxuICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc3RvcmFnZS5jcmVhdGVfbWV0aG9kJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gIDxhdWktcmFkaW8tZ3JvdXBcbiAgICBzaXplPVwibWVkaXVtXCJcbiAgICBbKG5nTW9kZWwpXT1cImNyZWF0ZU1ldGhvZFwiXG4gICAgbmFtZT1cImNyZWF0ZU1ldGhvZFwiXG4gICAgW2FjbFJlYWRvbmx5RmllbGRdPVwiaXNGcm9tU25hcHNob3QgfHwgISFjcmVhdGVUeXBlXCJcbiAgICBbYWNsUmVhZG9ubHlGaWVsZFRlbXBsYXRlXT1cImNyZWF0ZVR5cGVUbXBsXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjcmVhdGVNZXRob2RDaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8YXVpLXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZS5EWU5BTUlDXCI+XG4gICAgICB7eyAnc3RvcmFnZS5keW5hbWljX2NyZWF0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2F1aS1yYWRpby1idXR0b24+XG4gICAgPGF1aS1yYWRpby1idXR0b24gW3ZhbHVlXT1cIlB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGUuU1RBVElDXCI+XG4gICAgICB7eyAnc3RvcmFnZS5zdGF0aWNfbWF0Y2gnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9hdWktcmFkaW8tYnV0dG9uPlxuICA8L2F1aS1yYWRpby1ncm91cD5cbiAgPG5nLXRlbXBsYXRlICNjcmVhdGVUeXBlVG1wbD5cbiAgICB7e1xuICAgICAgKGNyZWF0ZU1ldGhvZCA9PT0gUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZS5EWU5BTUlDXG4gICAgICAgID8gJ3N0b3JhZ2UuZHluYW1pY19jcmVhdGUnXG4gICAgICAgIDogJ3N0b3JhZ2Uuc3RhdGljX21hdGNoJ1xuICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgIH19XG4gIDwvbmctdGVtcGxhdGU+XG48L2F1aS1mb3JtLWl0ZW0+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCInc3RvcmFnZUNsYXNzTmFtZScgfCBwdXJlOiBkaXNwbGF5RmllbGRTdXBwb3J0ZWRcIj5cbiAgPGF1aS1mb3JtLWl0ZW1cbiAgICAqbmdJZj1cImNyZWF0ZU1ldGhvZCAhPT0gUHZjU3RvcmFnZUNsYXNzQ3JlYXRlVHlwZS5TVEFUSUNcIlxuICAgIHdpZHRoPVwibWVkaXVtXCJcbiAgPlxuICAgIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICdzdG9yYWdlY2xhc3MnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YWNsLXN0b3JhZ2VjbGFzcy1zZWxlY3RcbiAgICAgIFtzdG9yYWdlQ2xhc3Nlc109XCJzdG9yYWdlQ2xhc3NMaXN0JCB8IGFzeW5jXCJcbiAgICAgIFt2b2x1bWVTbmFwc2hvdENsYXNzZXNdPVwidm9sdW1lU25hcHNob3RDbGFzc0xpc3QkIHwgYXN5bmNcIlxuICAgICAgW2lzRnJvbVNuYXBzaG90XT1cImlzRnJvbVNuYXBzaG90QW5kU291cmNlUFZDRXhpc3RcIlxuICAgICAgW3NlbGVjdERlZmF1bHRdPVwic2VsZWN0RGVmYXVsdFwiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIHJlcXVpcmVkXG4gICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnN0b3JhZ2VDbGFzc05hbWVcIlxuICAgICAgbmFtZT1cInN0b3JhZ2VDbGFzc05hbWVcIlxuICAgICAgI3N0b3JhZ2VDbGFzc05hbWU9XCJuZ01vZGVsXCJcbiAgICAgIChzdG9yYWdlQ2xhc3NDaGFuZ2UpPVwic3RvcmFnZWNsYXNzQ2hhbmdlKCRldmVudClcIlxuICAgID48L2FjbC1zdG9yYWdlY2xhc3Mtc2VsZWN0PlxuICAgIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgICAgYXVpRm9ybUl0ZW1FcnJvclxuICAgICAgW2Vycm9yc109XCJzdG9yYWdlQ2xhc3NOYW1lLmVycm9yc1wiXG4gICAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG4gICAgPGRpdlxuICAgICAgYXVpRm9ybUl0ZW1IaW50XG4gICAgICBjbGFzcz1cInR3LXRleHQteWVsbG93XCJcbiAgICAgICpuZ0lmPVwic2hvd1N0b3JhZ2VDbGFzc0hpbnRXaGVuRnJvbVNuYXBzaG90XCJcbiAgICA+XG4gICAgICB7eyAnc3RvcmFnZS5yZXN0b3JlX3B2Y19zdG9yYWdlY2xhc3NfaGludCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgPC9hdWktZm9ybS1pdGVtPlxuPC9uZy1jb250YWluZXI+XG5cbjxhdWktZm9ybS1pdGVtICpuZ0lmPVwiJ3ZvbHVtZU1vZGUnIHwgcHVyZTogZGlzcGxheUZpZWxkU3VwcG9ydGVkXCI+XG4gIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICdzdG9yYWdlLnZvbHVtZV9tb2RlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gIDxhdWktcmFkaW8tZ3JvdXBcbiAgICBzaXplPVwibWVkaXVtXCJcbiAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnZvbHVtZU1vZGVcIlxuICAgIG5hbWU9XCJ2b2x1bWVNb2RlXCJcbiAgICBbYWNsUmVhZG9ubHlGaWVsZF09XCJpc0Zyb21TbmFwc2hvdEFuZFNvdXJjZVBWQ0V4aXN0IHx8ICEhdm9sdW1lTW9kZVwiXG4gICAgW2FjbFJlYWRvbmx5RmllbGRUZW1wbGF0ZV09XCJ2b2x1bWVNb2RlVG1wbFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidm9sdW1lTW9kZUNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxhdWktcmFkaW8tYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgbW9kZSBvZiB2b2x1bWVNb2Rlc1wiXG4gICAgICBbYXVpVG9vbHRpcF09XCInc3RvcmFnZS5zdG9yYWdlX2ZvcmJpZF9zZWxlY3Rfdm9sdW1lX21vZGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdWlUb29sdGlwRGlzYWJsZWRdPVwiXG4gICAgICAgICEoXG4gICAgICAgICAgbW9kZVxuICAgICAgICAgIHwgcHVyZVxuICAgICAgICAgICAgOiBzdG9yYWdlQ29tbW9uVXRpbC5pc1ZvbHVtZU1vZGVEaXNhYmxlZFxuICAgICAgICAgICAgOiBzZWxlY3RlZFN0b3JhZ2VTZWxlY3RPcHRpb25cbiAgICAgICAgKVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgbW9kZVxuICAgICAgICAgIHwgcHVyZVxuICAgICAgICAgICAgOiBzdG9yYWdlQ29tbW9uVXRpbC5pc1ZvbHVtZU1vZGVEaXNhYmxlZFxuICAgICAgICAgICAgOiBzZWxlY3RlZFN0b3JhZ2VTZWxlY3RPcHRpb25cbiAgICAgIFwiXG4gICAgICBbdmFsdWVdPVwibW9kZVwiXG4gICAgPlxuICAgICAge3sgJ3N0b3JhZ2UuJyArIFZvbHVtZU1vZGVUcmFuc2xhdGVLZXlbbW9kZV0gfCB0cmFuc2xhdGUgfX1cbiAgICA8L2F1aS1yYWRpby1idXR0b24+XG4gIDwvYXVpLXJhZGlvLWdyb3VwPlxuICA8ZGl2XG4gICAgYXVpRm9ybUl0ZW1BZGRvblxuICAgICpuZ0lmPVwiIXZvbHVtZU1vZGVcIlxuICA+XG4gICAgPGF1aS1pY29uXG4gICAgICBbYXVpVG9vbHRpcF09XCJ2b2x1bWVNb2RlVGlwXCJcbiAgICAgIFthdWlUb29sdGlwUG9zaXRpb25dPVwiJ3RvcCBjZW50ZXInXCJcbiAgICAgIGljb249XCJxdWVzdGlvbl9jaXJjbGVcIlxuICAgICAgY2xhc3M9XCJpY29uLS1oZWxwXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjdm9sdW1lTW9kZVRpcD5cbiAgICA8dWwgY2xhc3M9XCJkLWxpc3RcIj5cbiAgICAgIDxsaT57eyAnc3RvcmFnZS52b2x1bWVfbW9kZV9maWxlX3N5c3RlbV9oaW50JyB8IHRyYW5zbGF0ZSB9fTwvbGk+XG4gICAgICA8bGk+e3sgJ3N0b3JhZ2Uudm9sdW1lX21vZGVfYmxvY2tfZGV2aWNlX2hpbnQnIHwgdHJhbnNsYXRlIH19PC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI3ZvbHVtZU1vZGVUbXBsPlxuICAgIHt7XG4gICAgICAobW9kZWwudm9sdW1lTW9kZSA9PT0gJ0ZpbGVzeXN0ZW0nXG4gICAgICAgID8gJ3N0b3JhZ2UuZmlsZV9zeXN0ZW0nXG4gICAgICAgIDogJ3N0b3JhZ2UuYmxvY2tfZGV2aWNlJ1xuICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgIH19XG4gIDwvbmctdGVtcGxhdGU+XG48L2F1aS1mb3JtLWl0ZW0+XG5cbjxhdWktZm9ybS1pdGVtICpuZ0lmPVwiJ2FjY2Vzc01vZGVzJyB8IHB1cmU6IGRpc3BsYXlGaWVsZFN1cHBvcnRlZFwiPlxuICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc3RvcmFnZS5hY2Nlc3NfbW9kZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICA8YXVpLXJhZGlvLWdyb3VwXG4gICAgYXVpRm9ybUl0ZW1Db250cm9sXG4gICAgWyhuZ01vZGVsKV09XCJtb2RlbC5hY2Nlc3NNb2Rlc1wiXG4gICAgbmFtZT1cImFjY2Vzc01vZGVzXCJcbiAgICAjYWNjZXNzTW9kZT1cIm5nTW9kZWxcIlxuICA+XG4gICAgPGF1aS1yYWRpby1idXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBtb2RlIG9mIGFjY2Vzc01vZGVzXCJcbiAgICAgIFthdWlUb29sdGlwXT1cIidzdG9yYWdlLnN0b3JhZ2VfZm9yYmlkX3NlbGVjdF9hY2Nlc3NfbW9kZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJcbiAgICAgICAgIShcbiAgICAgICAgICBtb2RlXG4gICAgICAgICAgfCBwdXJlXG4gICAgICAgICAgICA6IHN0b3JhZ2VDb21tb25VdGlsLmlzQWNjZXNzTW9kZURpc2FibGVkXG4gICAgICAgICAgICA6IHNlbGVjdGVkU3RvcmFnZVNlbGVjdE9wdGlvblxuICAgICAgICAgICAgOiBtb2RlbC52b2x1bWVNb2RlID09PSAnQmxvY2snXG4gICAgICAgIClcbiAgICAgIFwiXG4gICAgICBbdmFsdWVdPVwibW9kZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgIG1vZGVcbiAgICAgICAgICB8IHB1cmVcbiAgICAgICAgICAgIDogc3RvcmFnZUNvbW1vblV0aWwuaXNBY2Nlc3NNb2RlRGlzYWJsZWRcbiAgICAgICAgICAgIDogc2VsZWN0ZWRTdG9yYWdlU2VsZWN0T3B0aW9uXG4gICAgICAgICAgICA6IG1vZGVsLnZvbHVtZU1vZGUgPT09ICdCbG9jaydcbiAgICAgIFwiXG4gICAgPlxuICAgICAge3sgJ3N0b3JhZ2UuJyArIEFjY2Vzc01vZGVUcmFuc2xhdGVLZXlbbW9kZV0gfCB0cmFuc2xhdGUgfX1cbiAgICA8L2F1aS1yYWRpby1idXR0b24+XG4gIDwvYXVpLXJhZGlvLWdyb3VwPlxuICA8ZGl2IGF1aUZvcm1JdGVtQWRkb24+XG4gICAgPGF1aS1pY29uXG4gICAgICBbYXVpVG9vbHRpcF09XCJhY2Nlc3NNb2RlVGlwXCJcbiAgICAgIFthdWlUb29sdGlwUG9zaXRpb25dPVwiJ3RvcCBjZW50ZXInXCJcbiAgICAgIGljb249XCJxdWVzdGlvbl9jaXJjbGVcIlxuICAgICAgY2xhc3M9XCJpY29uLS1oZWxwXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9kaXY+XG4gIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgIGF1aUZvcm1JdGVtRXJyb3JcbiAgICBbZXJyb3JzXT1cImFjY2Vzc01vZGUuZXJyb3JzXCJcbiAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG4gIDxuZy10ZW1wbGF0ZSAjYWNjZXNzTW9kZVRpcD5cbiAgICA8dWwgY2xhc3M9XCJkLWxpc3RcIj5cbiAgICAgIDxsaT57eyAnc3RvcmFnZS5hY2Nlc3NfbW9kZV9yd28nIHwgdHJhbnNsYXRlIH19PC9saT5cbiAgICAgIDxsaT57eyAnc3RvcmFnZS5hY2Nlc3NfbW9kZV9yb3gnIHwgdHJhbnNsYXRlIH19PC9saT5cbiAgICAgIDxsaT57eyAnc3RvcmFnZS5hY2Nlc3NfbW9kZV9yd3gnIHwgdHJhbnNsYXRlIH19PC9saT5cbiAgICA8L3VsPlxuICA8L25nLXRlbXBsYXRlPlxuPC9hdWktZm9ybS1pdGVtPlxuXG48YXVpLWZvcm0taXRlbVxuICB3aWR0aD1cIm1lZGl1bVwiXG4gICpuZ0lmPVwiJ3N0b3JhZ2UnIHwgcHVyZTogZGlzcGxheUZpZWxkU3VwcG9ydGVkXCJcbj5cbiAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ3N0b3JhZ2UuY2FwYWNpdHknIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgPGlucHV0XG4gICAgYXVpLWlucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIFtwYXR0ZXJuXT1cIlBPU0lUSVZFX0lOVF9QQVRURVJOLnBhdHRlcm5cIlxuICAgIFsobmdNb2RlbCldPVwibW9kZWwuc3RvcmFnZVwiXG4gICAgbmFtZT1cInN0b3JhZ2VcIlxuICAgICNzdG9yYWdlPVwibmdNb2RlbFwiXG4gICAgcmVxdWlyZWRcbiAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICByZXF1aXJlZFxuICAgIFthY2xSZWFkb25seUZpZWxkXT1cImlzRnJvbVNuYXBzaG90XCJcbiAgICBbYWNsUmVhZG9ubHlGaWVsZFRlbXBsYXRlXT1cImNhcGFjaXR5VHBsXCJcbiAgLz5cbiAgPGF1aS1zZWxlY3RcbiAgICAqbmdJZj1cIiFpc0Zyb21TbmFwc2hvdFwiXG4gICAgWyhuZ01vZGVsKV09XCJ1bml0XCJcbiAgICBjbGFzcz1cInR3LW1heC13LVs2MHB4XSB0dy1tbC1bLTYwcHhdXCJcbiAgPlxuICAgIDxhdWktb3B0aW9uXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBVTklUU1wiXG4gICAgICBbbGFiZWxdPVwiaXRlbVwiXG4gICAgICBbdmFsdWVdPVwiaXRlbVwiXG4gICAgPlxuICAgICAge3sgaXRlbSB9fVxuICAgIDwvYXVpLW9wdGlvbj5cbiAgPC9hdWktc2VsZWN0PlxuICA8bmctdGVtcGxhdGUgI2NhcGFjaXR5VHBsPiB7eyBtb2RlbC5zdG9yYWdlIH19R2kgPC9uZy10ZW1wbGF0ZT5cbiAgPGFjbC1lcnJvcnMtbWFwcGVyXG4gICAgYXVpRm9ybUl0ZW1FcnJvclxuICAgIFtlcnJvcnNdPVwic3RvcmFnZS5lcnJvcnNcIlxuICAgIFtlcnJvcnNNYXBwZXJdPVwie1xuICAgICAgcGF0dGVybjogUE9TSVRJVkVfSU5UX1BBVFRFUk4udGlwIHwgdHJhbnNsYXRlLFxuICAgIH1cIlxuICA+PC9hY2wtZXJyb3JzLW1hcHBlcj5cbjwvYXVpLWZvcm0taXRlbT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dBZHZhbmNlZEZpZWxkXCI+XG4gIDxhY2wtZm9sZGFibGUtYmxvY2sgaGludD1cInt7ICdzdG9yYWdlLmFkdmFuY2VkJyB8IHRyYW5zbGF0ZSB9fVwiPlxuICAgIDxhdWktZm9ybS1pdGVtXG4gICAgICBmb3JtR3JvdXBOYW1lPVwibWV0YWRhdGFcIlxuICAgICAgKm5nSWY9XCInbGFiZWxzJyB8IHB1cmU6IGRpc3BsYXlGaWVsZFN1cHBvcnRlZFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ2xhYmVsJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICA8YWNsLWtleS12YWx1ZS1mb3JtLXRhYmxlXG4gICAgICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmxhYmVsc1wiXG4gICAgICAgIG5hbWU9XCJsYWJlbHNcIlxuICAgICAgICBbcmVzb3VyY2VOYW1lVHJhbnNsYXRlZF09XCInc3RvcmFnZS5sYWJlbHMnIHwgdHJhbnNsYXRlIHwgbG93ZXJjYXNlXCJcbiAgICAgICAgW3ZhbGlkYXRvcl09XCJsYWJlbFZhbGlkYXRvclwiXG4gICAgICAgIFtlcnJvck1hcHBlcl09XCJsYWJlbEVycm9yTWFwcGVyJCB8IGFzeW5jXCJcbiAgICAgID48L2FjbC1rZXktdmFsdWUtZm9ybS10YWJsZT5cbiAgICA8L2F1aS1mb3JtLWl0ZW0+XG4gICAgPGF1aS1mb3JtLWl0ZW1cbiAgICAgIGZvcm1Hcm91cE5hbWU9XCJtZXRhZGF0YVwiXG4gICAgICAqbmdJZj1cIidhbm5vdGF0aW9ucycgfCBwdXJlOiBkaXNwbGF5RmllbGRTdXBwb3J0ZWRcIlxuICAgID5cbiAgICAgIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICdzdG9yYWdlLms4c19hbm5vdGF0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICA8YWNsLWtleS12YWx1ZS1mb3JtLXRhYmxlXG4gICAgICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgICAgICBbcmVzb3VyY2VOYW1lVHJhbnNsYXRlZF09XCJcbiAgICAgICAgICAnc3RvcmFnZS5rOHNfYW5ub3RhdGlvbicgfCB0cmFuc2xhdGUgfCBsb3dlcmNhc2VcbiAgICAgICAgXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5hbm5vdGF0aW9uc1wiXG4gICAgICAgIG5hbWU9XCJhbm5vdGF0aW9uc1wiXG4gICAgICAgIFt2YWxpZGF0b3JdPVwiYW5ub3RhdGlvblZhbGlkYXRvclwiXG4gICAgICAgIFtlcnJvck1hcHBlcl09XCJhbm5vdGF0aW9uRXJyb3JNYXBwZXIkIHwgYXN5bmNcIlxuICAgICAgPjwvYWNsLWtleS12YWx1ZS1mb3JtLXRhYmxlPlxuICAgIDwvYXVpLWZvcm0taXRlbT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiJ3NlbGVjdG9yJyB8IHB1cmU6IGRpc3BsYXlGaWVsZFN1cHBvcnRlZFwiPlxuICAgICAgPGF1aS1mb3JtLWl0ZW1cbiAgICAgICAgW2hpZGRlbl09XCJjcmVhdGVNZXRob2QgPT09IFB2Y1N0b3JhZ2VDbGFzc0NyZWF0ZVR5cGUuRFlOQU1JQ1wiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7ICdzdG9yYWdlLnNlbGVjdG9yJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgIDxhY2wta2V5LXZhbHVlLWZvcm0tdGFibGVcbiAgICAgICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnNlbGVjdG9yXCJcbiAgICAgICAgICBuYW1lPVwic2VsZWN0b3JcIlxuICAgICAgICA+PC9hY2wta2V5LXZhbHVlLWZvcm0tdGFibGU+XG4gICAgICA8L2F1aS1mb3JtLWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYWNsLWZvbGRhYmxlLWJsb2NrPlxuPC9uZy1jb250YWluZXI+XG4iXX0=