ng-miam 6.2.2 → 6.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -145,33 +145,105 @@ function RecipeCardComponent_div_0_div_12_ng_container_4_Template(rf, ctx) { if
145
145
  i0.ɵɵadvance(1);
146
146
  i0.ɵɵproperty("width", 60)("height", 20)("iconName", ctx_r36.icon.DifficultyLow);
147
147
  } }
148
+ function RecipeCardComponent_div_0_div_12_ng_container_6_span_1_Template(rf, ctx) { if (rf & 1) {
149
+ i0.ɵɵelementStart(0, "span", 56);
150
+ i0.ɵɵtext(1);
151
+ i0.ɵɵelementEnd();
152
+ } if (rf & 2) {
153
+ const ctx_r41 = i0.ɵɵnextContext(4);
154
+ i0.ɵɵadvance(1);
155
+ i0.ɵɵtextInterpolate1(" ", ctx_r41.recipeService.difficultyLevels[0].label, " ");
156
+ } }
157
+ function RecipeCardComponent_div_0_div_12_ng_container_6_ng_template_2_Template(rf, ctx) { if (rf & 1) {
158
+ i0.ɵɵelementStart(0, "span", 56);
159
+ i0.ɵɵi18n(1, 57);
160
+ i0.ɵɵelementEnd();
161
+ } }
148
162
  function RecipeCardComponent_div_0_div_12_ng_container_6_Template(rf, ctx) { if (rf & 1) {
149
163
  i0.ɵɵelementContainerStart(0);
150
- i0.ɵɵelementStart(1, "span", 48);
151
- i0.ɵɵi18n(2, 54);
152
- i0.ɵɵelementEnd();
164
+ i0.ɵɵtemplate(1, RecipeCardComponent_div_0_div_12_ng_container_6_span_1_Template, 2, 1, "span", 54);
165
+ i0.ɵɵtemplate(2, RecipeCardComponent_div_0_div_12_ng_container_6_ng_template_2_Template, 2, 0, "ng-template", null, 55, i0.ɵɵtemplateRefExtractor);
153
166
  i0.ɵɵelementContainerEnd();
167
+ } if (rf & 2) {
168
+ const _r42 = i0.ɵɵreference(3);
169
+ const ctx_r37 = i0.ɵɵnextContext(3);
170
+ i0.ɵɵadvance(1);
171
+ i0.ɵɵproperty("ngIf", (ctx_r37.recipeService.difficultyLevels[0] == null ? null : ctx_r37.recipeService.difficultyLevels[0].label) !== "Chef d\u00E9butant")("ngIfElse", _r42);
172
+ } }
173
+ function RecipeCardComponent_div_0_div_12_ng_container_7_span_1_Template(rf, ctx) { if (rf & 1) {
174
+ i0.ɵɵelementStart(0, "span", 60);
175
+ i0.ɵɵtext(1);
176
+ i0.ɵɵelementEnd();
177
+ } if (rf & 2) {
178
+ const ctx_r44 = i0.ɵɵnextContext(4);
179
+ i0.ɵɵadvance(1);
180
+ i0.ɵɵtextInterpolate1(" ", ctx_r44.recipeService.difficultyLevels[1].label, " ");
181
+ } }
182
+ function RecipeCardComponent_div_0_div_12_ng_container_7_ng_template_2_Template(rf, ctx) { if (rf & 1) {
183
+ i0.ɵɵelementStart(0, "span", 60);
184
+ i0.ɵɵi18n(1, 61);
185
+ i0.ɵɵelementEnd();
154
186
  } }
155
187
  function RecipeCardComponent_div_0_div_12_ng_container_7_Template(rf, ctx) { if (rf & 1) {
156
188
  i0.ɵɵelementContainerStart(0);
157
- i0.ɵɵelementStart(1, "span", 48);
158
- i0.ɵɵi18n(2, 55);
159
- i0.ɵɵelementEnd();
189
+ i0.ɵɵtemplate(1, RecipeCardComponent_div_0_div_12_ng_container_7_span_1_Template, 2, 1, "span", 58);
190
+ i0.ɵɵtemplate(2, RecipeCardComponent_div_0_div_12_ng_container_7_ng_template_2_Template, 2, 0, "ng-template", null, 59, i0.ɵɵtemplateRefExtractor);
160
191
  i0.ɵɵelementContainerEnd();
192
+ } if (rf & 2) {
193
+ const _r45 = i0.ɵɵreference(3);
194
+ const ctx_r38 = i0.ɵɵnextContext(3);
195
+ i0.ɵɵadvance(1);
196
+ i0.ɵɵproperty("ngIf", (ctx_r38.recipeService.difficultyLevels[1] == null ? null : ctx_r38.recipeService.difficultyLevels[1].label) !== "Chef interm\u00E9diaire")("ngIfElse", _r45);
197
+ } }
198
+ function RecipeCardComponent_div_0_div_12_ng_container_8_span_1_Template(rf, ctx) { if (rf & 1) {
199
+ i0.ɵɵelementStart(0, "span", 64);
200
+ i0.ɵɵtext(1);
201
+ i0.ɵɵelementEnd();
202
+ } if (rf & 2) {
203
+ const ctx_r47 = i0.ɵɵnextContext(4);
204
+ i0.ɵɵadvance(1);
205
+ i0.ɵɵtextInterpolate1(" ", ctx_r47.recipeService.difficultyLevels[2].label, " ");
206
+ } }
207
+ function RecipeCardComponent_div_0_div_12_ng_container_8_ng_template_2_Template(rf, ctx) { if (rf & 1) {
208
+ i0.ɵɵelementStart(0, "span", 64);
209
+ i0.ɵɵi18n(1, 65);
210
+ i0.ɵɵelementEnd();
161
211
  } }
162
212
  function RecipeCardComponent_div_0_div_12_ng_container_8_Template(rf, ctx) { if (rf & 1) {
163
213
  i0.ɵɵelementContainerStart(0);
164
- i0.ɵɵelementStart(1, "span", 48);
165
- i0.ɵɵi18n(2, 56);
166
- i0.ɵɵelementEnd();
214
+ i0.ɵɵtemplate(1, RecipeCardComponent_div_0_div_12_ng_container_8_span_1_Template, 2, 1, "span", 62);
215
+ i0.ɵɵtemplate(2, RecipeCardComponent_div_0_div_12_ng_container_8_ng_template_2_Template, 2, 0, "ng-template", null, 63, i0.ɵɵtemplateRefExtractor);
167
216
  i0.ɵɵelementContainerEnd();
217
+ } if (rf & 2) {
218
+ const _r48 = i0.ɵɵreference(3);
219
+ const ctx_r39 = i0.ɵɵnextContext(3);
220
+ i0.ɵɵadvance(1);
221
+ i0.ɵɵproperty("ngIf", (ctx_r39.recipeService.difficultyLevels[2] == null ? null : ctx_r39.recipeService.difficultyLevels[2].label) !== "Top chef")("ngIfElse", _r48);
222
+ } }
223
+ function RecipeCardComponent_div_0_div_12_ng_container_9_span_1_Template(rf, ctx) { if (rf & 1) {
224
+ i0.ɵɵelementStart(0, "span", 56);
225
+ i0.ɵɵtext(1);
226
+ i0.ɵɵelementEnd();
227
+ } if (rf & 2) {
228
+ const ctx_r50 = i0.ɵɵnextContext(4);
229
+ i0.ɵɵadvance(1);
230
+ i0.ɵɵtextInterpolate1(" ", ctx_r50.recipeService.difficultyLevels[0].label, " ");
231
+ } }
232
+ function RecipeCardComponent_div_0_div_12_ng_container_9_ng_template_2_Template(rf, ctx) { if (rf & 1) {
233
+ i0.ɵɵelementStart(0, "span", 56);
234
+ i0.ɵɵi18n(1, 67);
235
+ i0.ɵɵelementEnd();
168
236
  } }
169
237
  function RecipeCardComponent_div_0_div_12_ng_container_9_Template(rf, ctx) { if (rf & 1) {
170
238
  i0.ɵɵelementContainerStart(0);
171
- i0.ɵɵelementStart(1, "span", 48);
172
- i0.ɵɵi18n(2, 57);
173
- i0.ɵɵelementEnd();
239
+ i0.ɵɵtemplate(1, RecipeCardComponent_div_0_div_12_ng_container_9_span_1_Template, 2, 1, "span", 54);
240
+ i0.ɵɵtemplate(2, RecipeCardComponent_div_0_div_12_ng_container_9_ng_template_2_Template, 2, 0, "ng-template", null, 66, i0.ɵɵtemplateRefExtractor);
174
241
  i0.ɵɵelementContainerEnd();
242
+ } if (rf & 2) {
243
+ const _r51 = i0.ɵɵreference(3);
244
+ const ctx_r40 = i0.ɵɵnextContext(3);
245
+ i0.ɵɵadvance(1);
246
+ i0.ɵɵproperty("ngIf", (ctx_r40.recipeService.difficultyLevels[0] == null ? null : ctx_r40.recipeService.difficultyLevels[0].label) !== "Chef d\u00E9butant")("ngIfElse", _r51);
175
247
  } }
176
248
  const _c8 = function (a0, a1, a2) { return { "easy": a0, "medium": a1, "hard": a2 }; };
177
249
  function RecipeCardComponent_div_0_div_12_Template(rf, ctx) { if (rf & 1) {
@@ -182,10 +254,10 @@ function RecipeCardComponent_div_0_div_12_Template(rf, ctx) { if (rf & 1) {
182
254
  i0.ɵɵtemplate(4, RecipeCardComponent_div_0_div_12_ng_container_4_Template, 2, 3, "ng-container", 52);
183
255
  i0.ɵɵelementContainerEnd();
184
256
  i0.ɵɵelementContainerStart(5, 50);
185
- i0.ɵɵtemplate(6, RecipeCardComponent_div_0_div_12_ng_container_6_Template, 3, 0, "ng-container", 51);
186
- i0.ɵɵtemplate(7, RecipeCardComponent_div_0_div_12_ng_container_7_Template, 3, 0, "ng-container", 51);
187
- i0.ɵɵtemplate(8, RecipeCardComponent_div_0_div_12_ng_container_8_Template, 3, 0, "ng-container", 51);
188
- i0.ɵɵtemplate(9, RecipeCardComponent_div_0_div_12_ng_container_9_Template, 3, 0, "ng-container", 52);
257
+ i0.ɵɵtemplate(6, RecipeCardComponent_div_0_div_12_ng_container_6_Template, 4, 2, "ng-container", 51);
258
+ i0.ɵɵtemplate(7, RecipeCardComponent_div_0_div_12_ng_container_7_Template, 4, 2, "ng-container", 51);
259
+ i0.ɵɵtemplate(8, RecipeCardComponent_div_0_div_12_ng_container_8_Template, 4, 2, "ng-container", 51);
260
+ i0.ɵɵtemplate(9, RecipeCardComponent_div_0_div_12_ng_container_9_Template, 4, 2, "ng-container", 52);
189
261
  i0.ɵɵelementContainerEnd();
190
262
  i0.ɵɵelementEnd();
191
263
  } if (rf & 2) {
@@ -207,14 +279,14 @@ function RecipeCardComponent_div_0_div_12_Template(rf, ctx) { if (rf & 1) {
207
279
  i0.ɵɵproperty("ngSwitchCase", 3);
208
280
  } }
209
281
  function RecipeCardComponent_div_0_div_13_Template(rf, ctx) { if (rf & 1) {
210
- i0.ɵɵelementStart(0, "div", 58);
211
- i0.ɵɵelement(1, "ng-miam-icon", 59);
282
+ i0.ɵɵelementStart(0, "div", 68);
283
+ i0.ɵɵelement(1, "ng-miam-icon", 69);
212
284
  i0.ɵɵelementStart(2, "span", 48);
213
285
  i0.ɵɵelementStart(3, "span");
214
286
  i0.ɵɵtext(4);
215
287
  i0.ɵɵelementEnd();
216
288
  i0.ɵɵelementStart(5, "span");
217
- i0.ɵɵi18n(6, 60);
289
+ i0.ɵɵi18n(6, 70);
218
290
  i0.ɵɵelementEnd();
219
291
  i0.ɵɵelementEnd();
220
292
  i0.ɵɵelementEnd();
@@ -232,23 +304,23 @@ function RecipeCardComponent_div_0_ng_template_14_Template(rf, ctx) { if (rf & 1
232
304
  i0.ɵɵproperty("type", ctx_r13.skeleton == null ? null : ctx_r13.skeleton.IconWithInfo);
233
305
  } }
234
306
  function RecipeCardComponent_div_0_div_21_div_5_Template(rf, ctx) { if (rf & 1) {
235
- i0.ɵɵelementStart(0, "div", 64);
307
+ i0.ɵɵelementStart(0, "div", 74);
236
308
  i0.ɵɵtext(1);
237
309
  i0.ɵɵelementEnd();
238
310
  } if (rf & 2) {
239
- const ctx_r41 = i0.ɵɵnextContext(3);
311
+ const ctx_r53 = i0.ɵɵnextContext(3);
240
312
  i0.ɵɵadvance(1);
241
- i0.ɵɵtextInterpolate1(" + ", ctx_r41.recipe.modifiedIngredients.length - 2, " ");
313
+ i0.ɵɵtextInterpolate1(" + ", ctx_r53.recipe.modifiedIngredients.length - 2, " ");
242
314
  } }
243
315
  function RecipeCardComponent_div_0_div_21_Template(rf, ctx) { if (rf & 1) {
244
- i0.ɵɵelementStart(0, "div", 61);
245
- i0.ɵɵelementStart(1, "div", 62);
316
+ i0.ɵɵelementStart(0, "div", 71);
317
+ i0.ɵɵelementStart(1, "div", 72);
246
318
  i0.ɵɵelement(2, "img", 42);
247
319
  i0.ɵɵelementEnd();
248
- i0.ɵɵelementStart(3, "div", 62);
320
+ i0.ɵɵelementStart(3, "div", 72);
249
321
  i0.ɵɵelement(4, "img", 42);
250
322
  i0.ɵɵelementEnd();
251
- i0.ɵɵtemplate(5, RecipeCardComponent_div_0_div_21_div_5_Template, 2, 1, "div", 63);
323
+ i0.ɵɵtemplate(5, RecipeCardComponent_div_0_div_21_div_5_Template, 2, 1, "div", 73);
252
324
  i0.ɵɵelementEnd();
253
325
  } if (rf & 2) {
254
326
  const ctx_r14 = i0.ɵɵnextContext(2);
@@ -260,10 +332,10 @@ function RecipeCardComponent_div_0_div_21_Template(rf, ctx) { if (rf & 1) {
260
332
  i0.ɵɵproperty("ngIf", ctx_r14.recipe.modifiedIngredients.length > 2);
261
333
  } }
262
334
  function RecipeCardComponent_div_0_div_22_Template(rf, ctx) { if (rf & 1) {
263
- const _r43 = i0.ɵɵgetCurrentView();
264
- i0.ɵɵelementStart(0, "div", 65);
265
- i0.ɵɵelementStart(1, "ng-miam-counter-input", 66);
266
- i0.ɵɵlistener("counterChange", function RecipeCardComponent_div_0_div_22_Template_ng_miam_counter_input_counterChange_1_listener($event) { i0.ɵɵrestoreView(_r43); const ctx_r42 = i0.ɵɵnextContext(2); return ctx_r42.updateGuests($event); });
335
+ const _r55 = i0.ɵɵgetCurrentView();
336
+ i0.ɵɵelementStart(0, "div", 75);
337
+ i0.ɵɵelementStart(1, "ng-miam-counter-input", 76);
338
+ i0.ɵɵlistener("counterChange", function RecipeCardComponent_div_0_div_22_Template_ng_miam_counter_input_counterChange_1_listener($event) { i0.ɵɵrestoreView(_r55); const ctx_r54 = i0.ɵɵnextContext(2); return ctx_r54.updateGuests($event); });
267
339
  i0.ɵɵelementEnd();
268
340
  i0.ɵɵelementEnd();
269
341
  } if (rf & 2) {
@@ -278,8 +350,8 @@ function RecipeCardComponent_div_0_ng_template_23_Template(rf, ctx) { if (rf & 1
278
350
  i0.ɵɵproperty("type", ctx_r17.skeleton == null ? null : ctx_r17.skeleton.IconWithInfo);
279
351
  } }
280
352
  function RecipeCardComponent_div_0_div_26_Template(rf, ctx) { if (rf & 1) {
281
- i0.ɵɵelementStart(0, "div", 67);
282
- i0.ɵɵelement(1, "ng-miam-recipe-pricing", 68);
353
+ i0.ɵɵelementStart(0, "div", 77);
354
+ i0.ɵɵelement(1, "ng-miam-recipe-pricing", 78);
283
355
  i0.ɵɵelementEnd();
284
356
  } if (rf & 2) {
285
357
  const ctx_r18 = i0.ɵɵnextContext(2);
@@ -288,12 +360,12 @@ function RecipeCardComponent_div_0_div_26_Template(rf, ctx) { if (rf & 1) {
288
360
  } }
289
361
  function RecipeCardComponent_div_0_span_31_Template(rf, ctx) { if (rf & 1) {
290
362
  i0.ɵɵelementStart(0, "span");
291
- i0.ɵɵi18n(1, 69);
363
+ i0.ɵɵi18n(1, 79);
292
364
  i0.ɵɵelementEnd();
293
365
  } }
294
366
  function RecipeCardComponent_div_0_ng_container_33_span_1_Template(rf, ctx) { if (rf & 1) {
295
367
  i0.ɵɵelementStart(0, "span");
296
- i0.ɵɵi18n(1, 70);
368
+ i0.ɵɵi18n(1, 80);
297
369
  i0.ɵɵelementEnd();
298
370
  } }
299
371
  function RecipeCardComponent_div_0_ng_container_33_Template(rf, ctx) { if (rf & 1) {
@@ -308,7 +380,7 @@ function RecipeCardComponent_div_0_ng_container_33_Template(rf, ctx) { if (rf &
308
380
  } }
309
381
  function RecipeCardComponent_div_0_ng_template_34_span_0_Template(rf, ctx) { if (rf & 1) {
310
382
  i0.ɵɵelementStart(0, "span");
311
- i0.ɵɵi18n(1, 71);
383
+ i0.ɵɵi18n(1, 81);
312
384
  i0.ɵɵelementEnd();
313
385
  } }
314
386
  function RecipeCardComponent_div_0_ng_template_34_Template(rf, ctx) { if (rf & 1) {
@@ -319,7 +391,7 @@ function RecipeCardComponent_div_0_ng_template_34_Template(rf, ctx) { if (rf & 1
319
391
  i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(1, 1, ctx_r22.groceriesListsService.recipeIsInList(ctx_r22.recipe == null ? null : ctx_r22.recipe.id)));
320
392
  } }
321
393
  function RecipeCardComponent_div_0_ng_miam_icon_36_Template(rf, ctx) { if (rf & 1) {
322
- i0.ɵɵelement(0, "ng-miam-icon", 72);
394
+ i0.ɵɵelement(0, "ng-miam-icon", 82);
323
395
  i0.ɵɵpipe(1, "async");
324
396
  } if (rf & 2) {
325
397
  const ctx_r23 = i0.ɵɵnextContext(2);
@@ -330,7 +402,7 @@ function RecipeCardComponent_div_0_ng_template_37_Template(rf, ctx) { if (rf & 1
330
402
  } }
331
403
  const _c17 = function (a0, a1) { return { "in-basket": a0, "loading": a1 }; };
332
404
  function RecipeCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
333
- const _r47 = i0.ɵɵgetCurrentView();
405
+ const _r59 = i0.ɵɵgetCurrentView();
334
406
  i0.ɵɵelementStart(0, "div", 2);
335
407
  i0.ɵɵelementStart(1, "div", 3);
336
408
  i0.ɵɵelement(2, "img", 4);
@@ -350,7 +422,7 @@ function RecipeCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
350
422
  i0.ɵɵelementStart(17, "div", 16);
351
423
  i0.ɵɵelementStart(18, "div", 17);
352
424
  i0.ɵɵelementStart(19, "div", 18);
353
- i0.ɵɵlistener("click", function RecipeCardComponent_div_0_Template_div_click_19_listener() { i0.ɵɵrestoreView(_r47); const ctx_r46 = i0.ɵɵnextContext(); return ctx_r46.toggleHelper(); });
425
+ i0.ɵɵlistener("click", function RecipeCardComponent_div_0_Template_div_click_19_listener() { i0.ɵɵrestoreView(_r59); const ctx_r58 = i0.ɵɵnextContext(); return ctx_r58.toggleHelper(); });
354
426
  i0.ɵɵelement(20, "ng-miam-icon", 19);
355
427
  i0.ɵɵelementEnd();
356
428
  i0.ɵɵtemplate(21, RecipeCardComponent_div_0_div_21_Template, 6, 3, "div", 20);
@@ -364,7 +436,7 @@ function RecipeCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
364
436
  i0.ɵɵelementEnd();
365
437
  i0.ɵɵelementStart(27, "div", 25);
366
438
  i0.ɵɵelementStart(28, "button", 26);
367
- i0.ɵɵlistener("click", function RecipeCardComponent_div_0_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r47); const ctx_r48 = i0.ɵɵnextContext(); return ctx_r48.clickPrimary(); });
439
+ i0.ɵɵlistener("click", function RecipeCardComponent_div_0_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r59); const ctx_r60 = i0.ɵɵnextContext(); return ctx_r60.clickPrimary(); });
368
440
  i0.ɵɵpipe(29, "async");
369
441
  i0.ɵɵelementStart(30, "span");
370
442
  i0.ɵɵtemplate(31, RecipeCardComponent_div_0_span_31_Template, 2, 0, "span", 27);
@@ -528,26 +600,26 @@ export class RecipeCardComponent extends AbstractRecipeCardComponent {
528
600
  }
529
601
  RecipeCardComponent.ɵfac = function RecipeCardComponent_Factory(t) { return new (t || RecipeCardComponent)(i0.ɵɵdirectiveInject(ChangeDetectorRef), i0.ɵɵdirectiveInject(RecipesService), i0.ɵɵdirectiveInject(RecipeEventsService), i0.ɵɵdirectiveInject(GroceriesListsService), i0.ɵɵdirectiveInject(UserService), i0.ɵɵdirectiveInject(PointOfSalesService), i0.ɵɵdirectiveInject(ContextService), i0.ɵɵdirectiveInject(i1.AnalyticsService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.ToasterService)); };
530
602
  RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent, selectors: [["ng-miam-recipe-card"]], inputs: { recipeId: "recipeId", recipe: "recipe" }, outputs: { removedFromFavorite: "removedFromFavorite", displayed: "displayed", guestsChanged: "guestsChanged" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 3, vars: 1, consts: function () { var i18n_0; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
531
- const MSG_EXTERNAL_3684169623116339825$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS____1 = goog.getMsg("Chef d\u00E9butant");
532
- i18n_0 = MSG_EXTERNAL_3684169623116339825$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS____1;
603
+ const MSG_EXTERNAL_3684169623116339825$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS_____1 = goog.getMsg("Chef d\u00E9butant");
604
+ i18n_0 = MSG_EXTERNAL_3684169623116339825$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS_____1;
533
605
  }
534
606
  else {
535
607
  i18n_0 = $localize `:␟96cca7cb17582a9b01053a242ca907b721fad7fe␟3684169623116339825:Chef débutant`;
536
608
  } var i18n_2; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
537
- const MSG_EXTERNAL_7733455880752157102$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS____3 = goog.getMsg("Chef interm\u00E9diaire");
538
- i18n_2 = MSG_EXTERNAL_7733455880752157102$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS____3;
609
+ const MSG_EXTERNAL_7733455880752157102$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS_____3 = goog.getMsg("Chef interm\u00E9diaire");
610
+ i18n_2 = MSG_EXTERNAL_7733455880752157102$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS_____3;
539
611
  }
540
612
  else {
541
613
  i18n_2 = $localize `:␟ccfd103e2bbd9a80c6d3a226332a77c93c88d871␟7733455880752157102:Chef intermédiaire`;
542
614
  } var i18n_4; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
543
- const MSG_EXTERNAL_8735393154824887316$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS____5 = goog.getMsg("Top chef");
544
- i18n_4 = MSG_EXTERNAL_8735393154824887316$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS____5;
615
+ const MSG_EXTERNAL_8735393154824887316$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS_____5 = goog.getMsg("Top chef");
616
+ i18n_4 = MSG_EXTERNAL_8735393154824887316$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS_____5;
545
617
  }
546
618
  else {
547
619
  i18n_4 = $localize `:␟fb603a6dffb1bfa95a9b7eda7e134156ab67f0b3␟8735393154824887316:Top chef`;
548
620
  } var i18n_6; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
549
- const MSG_EXTERNAL_3684169623116339825$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS____7 = goog.getMsg("Chef d\u00E9butant");
550
- i18n_6 = MSG_EXTERNAL_3684169623116339825$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS____7;
621
+ const MSG_EXTERNAL_3684169623116339825$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS_____7 = goog.getMsg("Chef d\u00E9butant");
622
+ i18n_6 = MSG_EXTERNAL_3684169623116339825$$LIB__WEB_COMPONENTS_RECIPE_CARD_RECIPE_CARD_COMPONENT_TS_____7;
551
623
  }
552
624
  else {
553
625
  i18n_6 = $localize `:␟96cca7cb17582a9b01053a242ca907b721fad7fe␟3684169623116339825:Chef débutant`;
@@ -575,7 +647,7 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
575
647
  }
576
648
  else {
577
649
  i18n_15 = $localize `:␟e3d3d7039794cbbd2e16e8548bfbf9ee8fa29247␟1225769932237505428:Ajouter les ingrédients`;
578
- } return [["class", "miam-recipe-card", 4, "ngIf"], ["cors", ""], [1, "miam-recipe-card"], [1, "miam-recipe-card__bookmark"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/recipe-card/Bookmark.svg", "alt", "Id\u00E9es repas"], ["class", "miam-recipe-card__picture", 3, "click", 4, "ngIf", "ngIfElse"], ["pictSkeleton", ""], [1, "miam-recipe-card__attributes"], [4, "ngIf", "ngIfElse"], ["textSkeleton", ""], [1, "miam-recipe-card__attributes__infos"], ["class", "miam-recipe-card__attributes__info recipe__total__time", 4, "ngIf", "ngIfElse"], ["class", "miam-recipe-card__attributes__info recipe__difficulty", 3, "ngClass", 4, "ngIf", "ngIfElse"], ["class", "miam-recipe-card__attributes__info recipe__ingredients", 4, "ngIf", "ngIfElse"], ["skeletonInfo", ""], [1, "miam-recipe-card__attributes__control"], [1, "miam-recipe-card__control__left__col"], [1, "miam-recipe-card__left__col__custom"], [1, "miam-recipe-card__help", 3, "click"], ["primaryColor", "var(--m-color-grey02)", "secondaryColor", "var(--m-color-grey07)", 3, "width", "height", "iconName"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], ["class", "miam-recipe-card__left__col__counter", 4, "ngIf", "ngIfElse"], ["skeletoncounter", ""], [1, "miam-recipe-card__control__right__col"], ["class", "miam-recipe-card__right__col__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], [1, "m-button-primary", 3, "disabled", "ngClass", "click"], [4, "ngIf"], ["originalCTA", ""], ["primaryColor", "#fff", 3, "width", "height", "iconName", 4, "ngIf", "ngIfElse"], ["addLoader", ""], [1, "miam-recipe-card__picture", 3, "click"], ["loading", "lazy", 3, "src"], ["class", "miam-recipe-card__picture__video", 4, "ngIf"], [1, "miam-recipe-card__picture__actions"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], ["class", "miam-recipe-card__picture__sponsor", 4, "ngIf"], ["class", "miam-recipe-card__picture__filigrane", 4, "ngIf"], [1, "miam-recipe-card__picture__video"], ["primaryColor", "black", 3, "iconName", "width", "height"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card__picture__sponsor"], [3, "src"], [1, "miam-recipe-card__picture__filigrane"], [3, "type"], [1, "miam-recipe-card__attributes__title", 3, "click"], [1, "miam-recipe-card__attributes__info", "recipe__total__time"], [3, "width", "height", "iconName"], [1, "miam-recipe-card__info__label"], [1, "miam-recipe-card__attributes__info", "recipe__difficulty", 3, "ngClass"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["primaryColor", "var(--m-color-black)", 3, "width", "height", "iconName"], i18n_0, i18n_2, i18n_4, i18n_6, [1, "miam-recipe-card__attributes__info", "recipe__ingredients"], [3, "iconName"], i18n_9, [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__left__col__counter"], [3, "counter", "counterChange"], [1, "miam-recipe-card__right__col__price"], [3, "recipe", "serves"], i18n_11, i18n_13, i18n_15, ["primaryColor", "#fff", 3, "width", "height", "iconName"]]; }, template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
650
+ } return [["class", "miam-recipe-card", 4, "ngIf"], ["cors", ""], [1, "miam-recipe-card"], [1, "miam-recipe-card__bookmark"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/recipe-card/Bookmark.svg", "alt", "Id\u00E9es repas"], ["class", "miam-recipe-card__picture", 3, "click", 4, "ngIf", "ngIfElse"], ["pictSkeleton", ""], [1, "miam-recipe-card__attributes"], [4, "ngIf", "ngIfElse"], ["textSkeleton", ""], [1, "miam-recipe-card__attributes__infos"], ["class", "miam-recipe-card__attributes__info recipe__total__time", 4, "ngIf", "ngIfElse"], ["class", "miam-recipe-card__attributes__info recipe__difficulty", 3, "ngClass", 4, "ngIf", "ngIfElse"], ["class", "miam-recipe-card__attributes__info recipe__ingredients", 4, "ngIf", "ngIfElse"], ["skeletonInfo", ""], [1, "miam-recipe-card__attributes__control"], [1, "miam-recipe-card__control__left__col"], [1, "miam-recipe-card__left__col__custom"], [1, "miam-recipe-card__help", 3, "click"], ["primaryColor", "var(--m-color-grey02)", "secondaryColor", "var(--m-color-grey07)", 3, "width", "height", "iconName"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], ["class", "miam-recipe-card__left__col__counter", 4, "ngIf", "ngIfElse"], ["skeletoncounter", ""], [1, "miam-recipe-card__control__right__col"], ["class", "miam-recipe-card__right__col__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], [1, "m-button-primary", 3, "disabled", "ngClass", "click"], [4, "ngIf"], ["originalCTA", ""], ["primaryColor", "#fff", 3, "width", "height", "iconName", 4, "ngIf", "ngIfElse"], ["addLoader", ""], [1, "miam-recipe-card__picture", 3, "click"], ["loading", "lazy", 3, "src"], ["class", "miam-recipe-card__picture__video", 4, "ngIf"], [1, "miam-recipe-card__picture__actions"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], ["class", "miam-recipe-card__picture__sponsor", 4, "ngIf"], ["class", "miam-recipe-card__picture__filigrane", 4, "ngIf"], [1, "miam-recipe-card__picture__video"], ["primaryColor", "black", 3, "iconName", "width", "height"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card__picture__sponsor"], [3, "src"], [1, "miam-recipe-card__picture__filigrane"], [3, "type"], [1, "miam-recipe-card__attributes__title", 3, "click"], [1, "miam-recipe-card__attributes__info", "recipe__total__time"], [3, "width", "height", "iconName"], [1, "miam-recipe-card__info__label"], [1, "miam-recipe-card__attributes__info", "recipe__difficulty", 3, "ngClass"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["primaryColor", "var(--m-color-black)", 3, "width", "height", "iconName"], ["class", "miam-recipe-card__info__label easy", 4, "ngIf", "ngIfElse"], ["difficultyEasyDefault", ""], [1, "miam-recipe-card__info__label", "easy"], i18n_0, ["class", "miam-recipe-card__info__label medium", 4, "ngIf", "ngIfElse"], ["difficultyMediumDefault", ""], [1, "miam-recipe-card__info__label", "medium"], i18n_2, ["class", "miam-recipe-card__info__label hard", 4, "ngIf", "ngIfElse"], ["difficultyHardDefault", ""], [1, "miam-recipe-card__info__label", "hard"], i18n_4, ["difficultyDefault", ""], i18n_6, [1, "miam-recipe-card__attributes__info", "recipe__ingredients"], [3, "iconName"], i18n_9, [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__left__col__counter"], [3, "counter", "counterChange"], [1, "miam-recipe-card__right__col__price"], [3, "recipe", "serves"], i18n_11, i18n_13, i18n_15, ["primaryColor", "#fff", 3, "width", "height", "iconName"]]; }, template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
579
651
  i0.ɵɵtemplate(0, RecipeCardComponent_div_0_Template, 39, 31, "div", 0);
580
652
  i0.ɵɵtemplate(1, RecipeCardComponent_ng_template_1_Template, 1, 0, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
581
653
  } if (rf & 2) {
@@ -622,4 +694,4 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
622
694
  }], guestsChanged: [{
623
695
  type: Output
624
696
  }] }); })();
625
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZC9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1Y3RCwrQkFDRTtJQUFBLG1DQUF1RztJQUN6RyxpQkFBTTs7O0lBRFUsZUFBdUI7SUFBdkIsNkNBQXVCLGNBQUEsZUFBQTs7O0lBSXJDLDBDQUNzQjs7O0lB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VyxFQUFFLDhCQUE4QjtnQkFDM0MsU0FBUyxFQUFFLENBQUMsOEJBQThCLENBQUM7Z0JBQzNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7c0JBY0ksTUFBTTt1QkFBQyxpQkFBaUI7O3NCQUN4QixNQUFNO3VCQUFDLGNBQWM7O3NCQUNyQixNQUFNO3VCQUFDLG1CQUFtQjs7c0JBQzFCLE1BQU07dUJBQUMscUJBQXFCOztzQkFDNUIsTUFBTTt1QkFBQyxXQUFXOztzQkFDbEIsTUFBTTt1QkFBQyxtQkFBbUI7O3NCQUMxQixNQUFNO3VCQUFDLGNBQWM7NkdBakJmLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDSSxtQkFBbUI7a0JBQTVCLE1BQU07WUFDRyxTQUFTO2tCQUFsQixNQUFNO1lBQ0csYUFBYTtrQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgSW5qZWN0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0UmVjaXBlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9hYnN0cmFjdC1yZWNpcGUtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlc1NlcnZpY2UsIEdyb2Nlcmllc0xpc3RzU2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFJlY2lwZUV2ZW50c1NlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IFBvaW50T2ZTYWxlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvcG9pbnQtb2Ytc2FsZXMuc2VydmljZSc7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3JlY2lwZSc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHNraXBXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRoaXMgaXMgYW4gYW5ndWxhciBjb21wb25lbnQgZGVzaWduIHRvIGJlIGEgd2ViIGNvbXBvbmVudFxuICogdGhhdCdzIHdoeSB3ZSB1c2Ugb25QdXNoU3RyYXRlZ2llIHdpdGggdGhlIGNoYW5nZURldGV0ZWN0b3JSZWZcbiAqIHRvIGF2b2lkIGNvbW1vbiBpc3N1ZVxuICogZ3VpZGUgLT4gaHR0cHM6Ly9uZXRiYXNhbC5jb20vYS1jb21wcmVoZW5zaXZlLWd1aWRlLXRvLWFuZ3VsYXItb25wdXNoLWNoYW5nZS1kZXRlY3Rpb24tc3RyYXRlZ3ktNWJhYzQ5MzA3NGE0XG4gKiBhbmQgYWxzb3cgd2UgdXNlIFNoYWRvd0RvbSB0byBwcm90ZWN0IHN0eWxlIG9mIG91ciBjb21wb25lbnRcbiAqIGFuZCBhbHNvdyBzdHlsZSBvZiB0aGUgcGFyZW50IGFwbGljYXRpb24gdGhhdCB3aWxsIHVzZSBpdFxuICogZG9jIC0+IGh0dHBzOi8vYW5ndWxhci5pby9hcGkvY29yZS9WaWV3RW5jYXBzdWxhdGlvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBSZWNpcGVDYXJkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RSZWNpcGVDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcmVjaXBlSWQ6IHN0cmluZztcbiAgQElucHV0KCkgcmVjaXBlOiBSZWNpcGU7XG4gIEBPdXRwdXQoKSByZW1vdmVkRnJvbUZhdm9yaXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRpc3BsYXllZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGd1ZXN0c0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBpc2xvYWRlZCA9IGZhbHNlO1xuICBjYXJkVHlwZSA9ICdzdWdnZXN0aW9uLWNhcmQnO1xuICBwcmltYXJ5QnV0dG9uQ2xpY2tlZCQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KFJlY2lwZXNTZXJ2aWNlKSByZWNpcGVTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBASW5qZWN0KFJlY2lwZUV2ZW50c1NlcnZpY2UpIHJlY2lwZUV2ZW50c1NlcnZpY2U6IFJlY2lwZUV2ZW50c1NlcnZpY2UsXG4gICAgQEluamVjdChHcm9jZXJpZXNMaXN0c1NlcnZpY2UpIGdyb2Nlcmllc0xpc3RzU2VydmljZTogR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLFxuICAgIEBJbmplY3QoVXNlclNlcnZpY2UpIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBASW5qZWN0KFBvaW50T2ZTYWxlc1NlcnZpY2UpIHBvaW50T2ZTYWxlc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgQEluamVjdChDb250ZXh0U2VydmljZSkgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2VcbiAgICApIHtcbiAgICBzdXBlcihjZHIsIHJlY2lwZVNlcnZpY2UsIHJlY2lwZUV2ZW50c1NlcnZpY2UsIGdyb2Nlcmllc0xpc3RzU2VydmljZSwgdXNlclNlcnZpY2UsIHBvaW50T2ZTYWxlc1NlcnZpY2UsIGNvbnRleHRTZXJ2aWNlLFxuICAgICAgYW5hbHl0aWNzU2VydmljZSwgZWxlbWVudCwgdG9hc3RlclNlcnZpY2UpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yZWNpcGVTZXJ2aWNlLmRpc3BsYXllZFJlY2lwZUNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMucmVjaXBlKSB7XG4gICAgICB0aGlzLnJlY2lwZVdhc0xvYWRlZCgpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0aGlzLnJlY2lwZUlkKSB7XG4gICAgICB0aGlzLmxvYWRSZWNpcGUoKTtcbiAgICB9XG4gIH1cblxuICByZWNpcGVXYXNMb2FkZWQoKSB7XG4gICAgdGhpcy5pbml0SW5ncmVkaWVudHNTdHJpbmcoKTtcbiAgICB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fD0gK3RoaXMucmVjaXBlLmd1ZXN0cztcbiAgICB0aGlzLmlzbG9hZGVkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICByZW1vdmVGcm9tRmF2b3JpdGUoKSB7XG4gICAgdGhpcy5yZW1vdmVkRnJvbUZhdm9yaXRlLmVtaXQodGhpcy5yZWNpcGUpO1xuICB9XG5cbiAgb3BlblJlY2lwZSgpIHtcbiAgICBjb25zdCB2aWRlb0V2ZW50ID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlLnZpZGVvSWQ7XG4gICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmRpc3BsYXlPYmplY3QodGhpcy5yZWNpcGUsIHsgZ3Vlc3RzIDogdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMgfSwgdGhpcy5ldmVudFRyYWNlKCkpO1xuICAgIHRoaXMuZGlzcGxheWVkLmVtaXQoKTtcbiAgfVxuXG4gIHVwZGF0ZUd1ZXN0cyhjb3VudCkge1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gY291bnQ7XG4gICAgaWYgKHRoaXMucmVjaXBlSWQpIHsgdGhpcy5fdXBkYXRlQmFza2V0KCk7IH0gLy8gSWYgcmVjaXBlIHdhcyBsb2FkZWQgaGVyZSwgd2UgbmVlZCB0byBwcm9jZXNzIGJhc2tldCB1cGRhdGVzIGhlcmVcbiAgICB0aGlzLmd1ZXN0c0NoYW5nZWQuZW1pdChjb3VudCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgX3VwZGF0ZUJhc2tldCgpIHtcbiAgICAvLyBJZiByZWNpcGUgYWxyZWFkeSBpbiBiYXNrZXQsIHVwZGF0ZSB0aGUgbnVtYmVyIG9mIGd1ZXN0cyBzbyB0aGF0IHRoZSBwcmljaW5nIGdldHMgdXBkYXRlZCBhcyB3ZWxsXG4gICAgLy8gKGRpc3BsYXkgPSBmYWxzZSBzbyB0aGF0IHRoZSByZWNpcGUgZGV0YWlscyBkb24ndCBzaG93IHVwKVxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5ncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QodGhpcy5yZWNpcGVJZCkuc3Vic2NyaWJlKHJlY2lwZUlzSW5MaXN0ID0+IHtcbiAgICAgICAgaWYgKHJlY2lwZUlzSW5MaXN0KXtcbiAgICAgICAgICB0aGlzLmFkZFJlY2lwZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgcmVjaXBlIHRvIGxpc3Qgb24gcHJpbWFyeSBidXR0b24gY2xpY2sgYW5kIGVtaXQgdHJ1ZSBpZiB0aGUgcmVjaXBlIGlzIGFkZGVkLCBmYWxzZSBpZiByZWNpcGUgaXMgbm90IGFkZGVkXG4gICAqIHNvIGxpYiB1c2VycyBjYW4gZGVjaWRlIHRoYXQgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkLmVtaXQoZmFsc2UpIHJlbW92ZXMgdGhlIHJlY2lwZSBmb3IgZXhhbXBsZVxuICAgKi9cbiAgY2xpY2tQcmltYXJ5KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hZGRCdXR0b25Mb2FkaW5nKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgdGhpcy5ncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QodGhpcy5yZWNpcGUuaWQpLnN1YnNjcmliZShyZWNpcGVJc0luTGlzdCA9PiB7XG4gICAgICAgICAgY29uc3Qgd2FzQWRkZWQgPSAhcmVjaXBlSXNJbkxpc3Q7XG4gICAgICAgICAgaWYgKHRoaXMuY2FyZFR5cGUgPT09ICdzdWdnZXN0aW9uLWNhcmQnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZWNpcGVTZXJ2aWNlLnN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMuYWRkVG9CYXNrZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgcmVjaXBlIGlzIGFkZGVkIHdlIHN0aWxsIHdhbnQgdG8gZGlwbGF5IGRldGFpbHNcbiAgICAgICAgICAgICAgdGhpcy5hZGRSZWNpcGUodGhpcy5yZWNpcGVTZXJ2aWNlLnN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMuZGlzcGxheSB8fCAhd2FzQWRkZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnJlY2lwZVNlcnZpY2Uuc3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9ucy5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuUmVjaXBlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZWNpcGVTZXJ2aWNlLnJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9ucy5hZGRUb0Jhc2tldCkge1xuICAgICAgICAgICAgICAvLyBJZiByZWNpcGUgaXMgYWRkZWQgd2Ugc3RpbGwgd2FudCB0byBkaXBsYXkgZGV0YWlsc1xuICAgICAgICAgICAgICB0aGlzLmFkZFJlY2lwZSh0aGlzLnJlY2lwZVNlcnZpY2UucmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zLmRpc3BsYXkgfHwgIXdhc0FkZGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBpZiAodGhpcy5yZWNpcGVTZXJ2aWNlLnJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9ucy5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuUmVjaXBlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wcmltYXJ5QnV0dG9uQ2xpY2tlZCQuZW1pdCghcmVjaXBlSXNJbkxpc3QpOyAvLyAhcmVjaXBlSXNJbkxpc3QgPSBhZGQgYWN0aW9uLCBzbyB3ZSBlbWl0IHRydWVcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUmVjaXBlKCkge1xuICAgIHRoaXMucmVjaXBlU2VydmljZS5nZXQodGhpcy5yZWNpcGVJZCxcbiAgICAgIHsgaW5jbHVkZTogWydpbmdyZWRpZW50cycsICdyZWNpcGUtc3RlcHMnLCAncmVjaXBlLXN0YXR1cycsICdyZWNpcGUtdHlwZScsICdzcG9uc29ycycsICd0YWdzJyBdIH1cbiAgICAgICkucGlwZShcbiAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICBjYXRjaEVycm9yKCBlcnIgPT4ge1xuICAgICAgdGhpcy5oaWRlLmVtaXQoKTtcbiAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgfSksXG4gICAgKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIHRoaXMucmVjaXBlID0gcmVzdWx0O1xuICAgICAgaWYgKHRoaXMucmVjaXBlKSB7XG4gICAgICAgIHRoaXMucmVjaXBlV2FzTG9hZGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9J2lzbG9hZGVkJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRcIj5cbiAgPCEtLSBCb29rbWFyayAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2Jvb2ttYXJrXCI+XG4gICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL3JlY2lwZS1jYXJkL0Jvb2ttYXJrLnN2Z1wiIGFsdD1cIklkw6llcyByZXBhc1wiPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInJlY2lwZSBlbHNlIHBpY3RTa2VsZXRvblwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZVwiIChjbGljayk9XCJvcGVuUmVjaXBlKClcIj5cbiAgICA8IS0tIFBpY3R1cmUgLS0+XG4gICAgPGltZyBbc3JjXT1cInJlY2lwZT8uYXR0cmlidXRlc1snbWVkaWEtdXJsJ11cIiBsb2FkaW5nPVwibGF6eVwiPlxuICAgIDwhLS0gVmlkZW8gLS0+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLnZpZGVvUmVjaXBlc0VuYWJsZWQgJiYgcmVjaXBlPy52aWRlb0lkXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlX192aWRlb1wiPlxuICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5WaWRlb1wiIFt3aWR0aF09XCIxMDBcIiBbaGVpZ2h0XT1cIjEwMFwiIHByaW1hcnlDb2xvcj0nYmxhY2snPjwvbmctbWlhbS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gTGlrZSBidXR0b24gLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX2FjdGlvbnNcIj5cbiAgICAgIDxuZy1taWFtLWxpa2UtYnV0dG9uICpuZ0lmPVwidXNlclNlcnZpY2UuaXNMb2dnZWQkIHwgYXN5bmNcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX2ljb25cIiBbcmVjaXBlXT0ncmVjaXBlJyBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZSgpXCI+XG4gICAgICA8L25nLW1pYW0tbGlrZS1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTcG9uc29yIGxvZ28gLS0+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZS5zcG9uc29yTG9nb1VybFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fc3BvbnNvclwiPlxuICAgICAgPGltZyBbc3JjXT1cInJlY2lwZS5zcG9uc29yTG9nb1VybFwiPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gRmlsaWdyYW5lIGxvZ28gLS0+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlX19maWxpZ3JhbmVcIj5cbiAgICAgIDxpbWcgW3NyY109XCJyZWNpcGUuZmlsaWdyYW5lTG9nb1VybFwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNwaWN0U2tlbGV0b24+XG4gICAgPG5nLW1pYW0tc2tlbGV0b24gW3R5cGVdPSdza2VsZXRvbi5QaWN0dXJlJz48L25nLW1pYW0tc2tlbGV0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzXCI+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZSBlbHNlIHRleHRTa2VsZXRvblwiPlxuICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX190aXRsZVwiIChjbGljayk9XCJvcGVuUmVjaXBlKClcIj5cbiAgICAgICAge3tyZWNpcGU/LmF0dHJpYnV0ZXNbJ3RpdGxlJ119fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICN0ZXh0U2tlbGV0b24+XG4gICAgICA8bmctbWlhbS1za2VsZXRvbiBbdHlwZV09J3NrZWxldG9uLlRleHQnPjwvbmctbWlhbS1za2VsZXRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmZvc1wiPlxuICAgICAgPCEtLSBUb3RhbCB0aW1lIC0tPlxuICAgICAgPGRpdiAqbmdJZj0ncmVjaXBlIGVsc2Ugc2tlbGV0b25JbmZvJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2luZm8gIHJlY2lwZV9fdG90YWxfX3RpbWVcIj5cbiAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCIgW2ljb25OYW1lXT1cImljb24uVGltZVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9fX2xhYmVsXCI+e3sgcmVjaXBlPy50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gRGlmZmljdWx0eSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9J3JlY2lwZSBlbHNlIHNrZWxldG9uSW5mbycgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmZvIHJlY2lwZV9fZGlmZmljdWx0eVwiIFtuZ0NsYXNzXT1cInsgJ2Vhc3knOiByZWNpcGU/LmRpZmZpY3VsdHkgPT09IDEsXG4gICAgICAnbWVkaXVtJzogcmVjaXBlPy5kaWZmaWN1bHR5ID09PSAyLCAnaGFyZCc6IHJlY2lwZT8uZGlmZmljdWx0eSA9PT0gMyB9XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlY2lwZT8uZGlmZmljdWx0eVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIjJcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjYwXCIgW2hlaWdodF09XCIyMFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1ibGFjayknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlNZWRpdW1cIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIzXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCI2MFwiIFtoZWlnaHRdPVwiMjBcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItYmxhY2spJ1xuICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbi5EaWZmaWN1bHR5SGlnaFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjYwXCIgW2hlaWdodF09XCIyMFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1ibGFjayknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlMb3dcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlY2lwZT8uZGlmZmljdWx0eVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIjFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIiBpMThuPkNoZWYgZMOpYnV0YW50PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIjJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIiBpMThuPkNoZWYgaW50ZXJtw6lkaWFpcmU8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiM1wiPlxuICAgICAgICAgICAgPHNwYW4gIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIiBpMThuPlRvcCBjaGVmPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIiBpMThuPkNoZWYgZMOpYnV0YW50PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBOdW1iZXIgb2YgaW5ncmVkaWVudHMgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGUgZWxzZSBza2VsZXRvbkluZm8nIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc19faW5mbyAgcmVjaXBlX19pbmdyZWRpZW50c1wiPlxuICAgICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLkluZ3JlZGllbnRzXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIj5cbiAgICAgICAgICA8c3Bhbj57eyByZWNpcGU/LmluZ3JlZGllbnRzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBpMThuPmluZ3LDqWRpZW50czwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NrZWxldG9uSW5mbz5cbiAgICAgICAgPG5nLW1pYW0tc2tlbGV0b24gW3R5cGVdPSdza2VsZXRvbj8uSWNvbldpdGhJbmZvJz48L25nLW1pYW0tc2tlbGV0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19jb250cm9sXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY29udHJvbF9fbGVmdF9fY29sXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19sZWZ0X19jb2xfX2N1c3RvbVwiPlxuICAgICAgICAgIDwhLS0gSGVscGVyIC0tPlxuICAgICAgICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZUhlbHBlcigpXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19oZWxwXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItZ3JleTAyKScgc2Vjb25kYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItZ3JleTA3KSdcbiAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkhlbHBcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIEluZ3JlZGllbnQgcGljdHVyZXMgLS0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5kaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkcyAmJiByZWNpcGU/Lm1vZGlmaWVkSW5ncmVkaWVudHM/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZXNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZVwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW5ncmVkaWVudFBpY3R1cmUocmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHNbMF0pXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZVwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW5ncmVkaWVudFBpY3R1cmUocmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHNbMV0pXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fbW9yZVwiICpuZ0lmPVwicmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID4gMlwiPlxuICAgICAgICAgICAgICArIHt7cmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMn19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ291bnRlciBpbnB1dCAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj0ncmVjaXBlIGVsc2Ugc2tlbGV0b25jb3VudGVyJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2xlZnRfX2NvbF9fY291bnRlclwiPlxuICAgICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXQgW2NvdW50ZXJdPVwicmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCIgKGNvdW50ZXJDaGFuZ2UpPVwidXBkYXRlR3Vlc3RzKCRldmVudClcIj48L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25jb3VudGVyPlxuICAgICAgICAgIDxuZy1taWFtLXNrZWxldG9uIFt0eXBlXT0nc2tlbGV0b24/Lkljb25XaXRoSW5mbyc+PC9uZy1taWFtLXNrZWxldG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY29udHJvbF9fcmlnaHRfX2NvbFwiPlxuICAgICAgICA8IS0tIFByaWNlIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlICYmIGRpc3BsYXlQcmljaW5nXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yaWdodF9fY29sX19wcmljZVwiPlxuICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcmljaW5nIFtyZWNpcGVdPVwicmVjaXBlXCIgW3NlcnZlc109XCJyZWNpcGU/Lm1vZGlmaWVkR3Vlc3RzXCI+PC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gQWRkIHRvIGJhc2tldCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY3RhXCI+XG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09JyFyZWNpcGUnIChjbGljayk9XCJjbGlja1ByaW1hcnkoKVwiIGNsYXNzPVwibS1idXR0b24tcHJpbWFyeVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdpbi1iYXNrZXQnOiAoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHJlY2lwZT8uaWQpIHwgYXN5bmMpLCAnbG9hZGluZyc6IGFkZEJ1dHRvbkxvYWRpbmd9XCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCIoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHJlY2lwZT8uaWQpIHwgYXN5bmMpXCI+Vm9pciBsZSBkw6l0YWlsPC9zcGFuPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5yZWNpcGVTZXJ2aWNlLnN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMuZGlzcGxheSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5yZWNpcGVTZXJ2aWNlLnN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMuYWRkVG9CYXNrZXQpIHx8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMucmVjaXBlU2VydmljZS5yZWNpcGVzUHJpbWFyeUJ1dHRvbkFjdGlvbnMuZGlzcGxheSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5yZWNpcGVTZXJ2aWNlLnJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9ucy5hZGRUb0Jhc2tldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIGVsc2Ugb3JpZ2luYWxDVEFcIj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCIhKGdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdChyZWNpcGU/LmlkKSB8IGFzeW5jKVwiPidEw6ljb3V2cmlyIGwnaWTDqWUgcmVwYXM8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNvcmlnaW5hbENUQT5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCIhKGdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdChyZWNpcGU/LmlkKSB8IGFzeW5jKVwiPkFqb3V0ZXIgbGVzIGluZ3LDqWRpZW50czwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxuZy1taWFtLWljb24gKm5nSWY9XCIhYWRkQnV0dG9uTG9hZGluZyBlbHNlIGFkZExvYWRlclwiIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBwcmltYXJ5Q29sb3I9JyNmZmYnXG4gICAgICAgICAgW2ljb25OYW1lXT1cIihncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QocmVjaXBlPy5pZCkgfCBhc3luYykgPyBpY29uLkNoZWNrTGlzdCAgOmljb24uQ2FydFwiPlxuICAgICAgICA8L25nLW1pYW0taWNvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhZGRMb2FkZXI+XG4gICAgICAgICAgPG5nLW1pYW0tbG9hZGVyPjwvbmctbWlhbS1sb2FkZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjY29ycz5cbiAgPG5nLW1pYW0tY29ycy1vdmVybGF5PjwvbmctbWlhbS1jb3JzLW92ZXJsYXk+XG48L25nLXRlbXBsYXRlPiJdfQ==
697
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZC9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1Y3RCwrQkFDRTtJQUFBLG1DQUF1RztJQUN6RyxpQkFBTTs7O0lBRFUsZUFBdUI7SUFBdkIsNkNBQXVCLGNBQUEsZUFBQTs7O0lBSXJDLDBDQUNzQjs7O0lB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IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBJbmplY3QsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RSZWNpcGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2Fic3RyYWN0LXJlY2lwZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGVzU2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSwgUmVjaXBlRXZlbnRzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7XG5cbi8qKlxuICogVGhpcyBpcyBhbiBhbmd1bGFyIGNvbXBvbmVudCBkZXNpZ24gdG8gYmUgYSB3ZWIgY29tcG9uZW50XG4gKiB0aGF0J3Mgd2h5IHdlIHVzZSBvblB1c2hTdHJhdGVnaWUgd2l0aCB0aGUgY2hhbmdlRGV0ZXRlY3RvclJlZlxuICogdG8gYXZvaWQgY29tbW9uIGlzc3VlXG4gKiBndWlkZSAtPiBodHRwczovL25ldGJhc2FsLmNvbS9hLWNvbXByZWhlbnNpdmUtZ3VpZGUtdG8tYW5ndWxhci1vbnB1c2gtY2hhbmdlLWRldGVjdGlvbi1zdHJhdGVneS01YmFjNDkzMDc0YTRcbiAqIGFuZCBhbHNvdyB3ZSB1c2UgU2hhZG93RG9tIHRvIHByb3RlY3Qgc3R5bGUgb2Ygb3VyIGNvbXBvbmVudFxuICogYW5kIGFsc293IHN0eWxlIG9mIHRoZSBwYXJlbnQgYXBsaWNhdGlvbiB0aGF0IHdpbGwgdXNlIGl0XG4gKiBkb2MgLT4gaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb3JlL1ZpZXdFbmNhcHN1bGF0aW9uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIFJlY2lwZUNhcmRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFJlY2lwZUNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWNpcGU6IFJlY2lwZTtcbiAgQE91dHB1dCgpIHJlbW92ZWRGcm9tRmF2b3JpdGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlzcGxheWVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZ3Vlc3RzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGlzbG9hZGVkID0gZmFsc2U7XG4gIGNhcmRUeXBlID0gJ3N1Z2dlc3Rpb24tY2FyZCc7XG4gIHByaW1hcnlCdXR0b25DbGlja2VkJCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoUmVjaXBlc1NlcnZpY2UpIHJlY2lwZVNlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIEBJbmplY3QoUmVjaXBlRXZlbnRzU2VydmljZSkgcmVjaXBlRXZlbnRzU2VydmljZTogUmVjaXBlRXZlbnRzU2VydmljZSxcbiAgICBASW5qZWN0KEdyb2Nlcmllc0xpc3RzU2VydmljZSkgZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlOiBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gICAgQEluamVjdChVc2VyU2VydmljZSkgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoUG9pbnRPZlNhbGVzU2VydmljZSkgcG9pbnRPZlNhbGVzU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBASW5qZWN0KENvbnRleHRTZXJ2aWNlKSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJvdGVjdGVkIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZVxuICAgICkge1xuICAgIHN1cGVyKGNkciwgcmVjaXBlU2VydmljZSwgcmVjaXBlRXZlbnRzU2VydmljZSwgZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCB1c2VyU2VydmljZSwgcG9pbnRPZlNhbGVzU2VydmljZSwgY29udGV4dFNlcnZpY2UsXG4gICAgICBhbmFseXRpY3NTZXJ2aWNlLCBlbGVtZW50LCB0b2FzdGVyU2VydmljZSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UuZGlzcGxheWVkUmVjaXBlQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMucmVjaXBlV2FzTG9hZGVkKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMucmVjaXBlSWQpIHtcbiAgICAgIHRoaXMubG9hZFJlY2lwZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlY2lwZVdhc0xvYWRlZCgpIHtcbiAgICB0aGlzLmluaXRJbmdyZWRpZW50c1N0cmluZygpO1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8PSArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgIHRoaXMuaXNsb2FkZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21GYXZvcml0ZSgpIHtcbiAgICB0aGlzLnJlbW92ZWRGcm9tRmF2b3JpdGUuZW1pdCh0aGlzLnJlY2lwZSk7XG4gIH1cblxuICBvcGVuUmVjaXBlKCkge1xuICAgIGNvbnN0IHZpZGVvRXZlbnQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnZpZGVvUmVjaXBlc0VuYWJsZWQgJiYgdGhpcy5yZWNpcGUudmlkZW9JZDtcbiAgICB0aGlzLnJlY2lwZVNlcnZpY2UuZGlzcGxheU9iamVjdCh0aGlzLnJlY2lwZSwgeyBndWVzdHMgOiB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyB9LCB0aGlzLmV2ZW50VHJhY2UoKSk7XG4gICAgdGhpcy5kaXNwbGF5ZWQuZW1pdCgpO1xuICB9XG5cbiAgdXBkYXRlR3Vlc3RzKGNvdW50KSB7XG4gICAgdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSBjb3VudDtcbiAgICBpZiAodGhpcy5yZWNpcGVJZCkgeyB0aGlzLl91cGRhdGVCYXNrZXQoKTsgfSAvLyBJZiByZWNpcGUgd2FzIGxvYWRlZCBoZXJlLCB3ZSBuZWVkIHRvIHByb2Nlc3MgYmFza2V0IHVwZGF0ZXMgaGVyZVxuICAgIHRoaXMuZ3Vlc3RzQ2hhbmdlZC5lbWl0KGNvdW50KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBfdXBkYXRlQmFza2V0KCkge1xuICAgIC8vIElmIHJlY2lwZSBhbHJlYWR5IGluIGJhc2tldCwgdXBkYXRlIHRoZSBudW1iZXIgb2YgZ3Vlc3RzIHNvIHRoYXQgdGhlIHByaWNpbmcgZ2V0cyB1cGRhdGVkIGFzIHdlbGxcbiAgICAvLyAoZGlzcGxheSA9IGZhbHNlIHNvIHRoYXQgdGhlIHJlY2lwZSBkZXRhaWxzIGRvbid0IHNob3cgdXApXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdCh0aGlzLnJlY2lwZUlkKS5zdWJzY3JpYmUocmVjaXBlSXNJbkxpc3QgPT4ge1xuICAgICAgICBpZiAocmVjaXBlSXNJbkxpc3Qpe1xuICAgICAgICAgIHRoaXMuYWRkUmVjaXBlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCByZWNpcGUgdG8gbGlzdCBvbiBwcmltYXJ5IGJ1dHRvbiBjbGljayBhbmQgZW1pdCB0cnVlIGlmIHRoZSByZWNpcGUgaXMgYWRkZWQsIGZhbHNlIGlmIHJlY2lwZSBpcyBub3QgYWRkZWRcbiAgICogc28gbGliIHVzZXJzIGNhbiBkZWNpZGUgdGhhdCBwcmltYXJ5QnV0dG9uQ2xpY2tlZCQuZW1pdChmYWxzZSkgcmVtb3ZlcyB0aGUgcmVjaXBlIGZvciBleGFtcGxlXG4gICAqL1xuICBjbGlja1ByaW1hcnkoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFkZEJ1dHRvbkxvYWRpbmcpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLmdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdCh0aGlzLnJlY2lwZS5pZCkuc3Vic2NyaWJlKHJlY2lwZUlzSW5MaXN0ID0+IHtcbiAgICAgICAgICBjb25zdCB3YXNBZGRlZCA9ICFyZWNpcGVJc0luTGlzdDtcbiAgICAgICAgICBpZiAodGhpcy5jYXJkVHlwZSA9PT0gJ3N1Z2dlc3Rpb24tY2FyZCcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY2lwZVNlcnZpY2Uuc3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9ucy5hZGRUb0Jhc2tldCkge1xuICAgICAgICAgICAgICAvLyBJZiByZWNpcGUgaXMgYWRkZWQgd2Ugc3RpbGwgd2FudCB0byBkaXBsYXkgZGV0YWlsc1xuICAgICAgICAgICAgICB0aGlzLmFkZFJlY2lwZSh0aGlzLnJlY2lwZVNlcnZpY2Uuc3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9ucy5kaXNwbGF5IHx8ICF3YXNBZGRlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMucmVjaXBlU2VydmljZS5zdWdnZXN0aW9uc1ByaW1hcnlCdXR0b25BY3Rpb25zLmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5SZWNpcGUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY2lwZVNlcnZpY2UucmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zLmFkZFRvQmFza2V0KSB7XG4gICAgICAgICAgICAgIC8vIElmIHJlY2lwZSBpcyBhZGRlZCB3ZSBzdGlsbCB3YW50IHRvIGRpcGxheSBkZXRhaWxzXG4gICAgICAgICAgICAgIHRoaXMuYWRkUmVjaXBlKHRoaXMucmVjaXBlU2VydmljZS5yZWNpcGVzUHJpbWFyeUJ1dHRvbkFjdGlvbnMuZGlzcGxheSB8fCAhd2FzQWRkZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnJlY2lwZVNlcnZpY2UucmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zLmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5SZWNpcGUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnByaW1hcnlCdXR0b25DbGlja2VkJC5lbWl0KCFyZWNpcGVJc0luTGlzdCk7IC8vICFyZWNpcGVJc0luTGlzdCA9IGFkZCBhY3Rpb24sIHNvIHdlIGVtaXQgdHJ1ZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRSZWNpcGUoKSB7XG4gICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmdldCh0aGlzLnJlY2lwZUlkLFxuICAgICAgeyBpbmNsdWRlOiBbJ2luZ3JlZGllbnRzJywgJ3JlY2lwZS1zdGVwcycsICdyZWNpcGUtc3RhdHVzJywgJ3JlY2lwZS10eXBlJywgJ3Nwb25zb3JzJywgJ3RhZ3MnIF0gfVxuICAgICAgKS5waXBlKFxuICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgIGNhdGNoRXJyb3IoIGVyciA9PiB7XG4gICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICB9KSxcbiAgICApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy5yZWNpcGUgPSByZXN1bHQ7XG4gICAgICBpZiAodGhpcy5yZWNpcGUpIHtcbiAgICAgICAgdGhpcy5yZWNpcGVXYXNMb2FkZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj0naXNsb2FkZWQnIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZFwiPlxuICA8IS0tIEJvb2ttYXJrIC0tPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYm9va21hcmtcIj5cbiAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvcmVjaXBlLWNhcmQvQm9va21hcmsuc3ZnXCIgYWx0PVwiSWTDqWVzIHJlcGFzXCI+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwicmVjaXBlIGVsc2UgcGljdFNrZWxldG9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlXCIgKGNsaWNrKT1cIm9wZW5SZWNpcGUoKVwiPlxuICAgIDwhLS0gUGljdHVyZSAtLT5cbiAgICA8aW1nIFtzcmNdPVwicmVjaXBlPy5hdHRyaWJ1dGVzWydtZWRpYS11cmwnXVwiIGxvYWRpbmc9XCJsYXp5XCI+XG4gICAgPCEtLSBWaWRlbyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udGV4dFNlcnZpY2UudmlkZW9SZWNpcGVzRW5hYmxlZCAmJiByZWNpcGU/LnZpZGVvSWRcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX3ZpZGVvXCI+XG4gICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLlZpZGVvXCIgW3dpZHRoXT1cIjEwMFwiIFtoZWlnaHRdPVwiMTAwXCIgcHJpbWFyeUNvbG9yPSdibGFjayc+PC9uZy1taWFtLWljb24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBMaWtlIGJ1dHRvbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fYWN0aW9uc1wiPlxuICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b24gKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luY1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYWN0aW9uc19faWNvblwiIFtyZWNpcGVdPSdyZWNpcGUnIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlKClcIj5cbiAgICAgIDwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFNwb25zb3IgbG9nbyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlLnNwb25zb3JMb2dvVXJsXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlX19zcG9uc29yXCI+XG4gICAgICA8aW1nIFtzcmNdPVwicmVjaXBlLnNwb25zb3JMb2dvVXJsXCI+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBGaWxpZ3JhbmUgbG9nbyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlLmZpbGlncmFuZUxvZ29VcmxcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX2ZpbGlncmFuZVwiPlxuICAgICAgPGltZyBbc3JjXT1cInJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI3BpY3RTa2VsZXRvbj5cbiAgICA8bmctbWlhbS1za2VsZXRvbiBbdHlwZV09J3NrZWxldG9uLlBpY3R1cmUnPjwvbmctbWlhbS1za2VsZXRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNcIj5cbiAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlIGVsc2UgdGV4dFNrZWxldG9uXCI+XG4gICAgICA8IS0tIFRpdGxlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX3RpdGxlXCIgKGNsaWNrKT1cIm9wZW5SZWNpcGUoKVwiPlxuICAgICAgICB7e3JlY2lwZT8uYXR0cmlidXRlc1sndGl0bGUnXX19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3RleHRTa2VsZXRvbj5cbiAgICAgIDxuZy1taWFtLXNrZWxldG9uIFt0eXBlXT0nc2tlbGV0b24uVGV4dCc+PC9uZy1taWFtLXNrZWxldG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2luZm9zXCI+XG4gICAgICA8IS0tIFRvdGFsIHRpbWUgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGUgZWxzZSBza2VsZXRvbkluZm8nIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc19faW5mbyAgcmVjaXBlX190b3RhbF9fdGltZVwiPlxuICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCIyMFwiIFtoZWlnaHRdPVwiMjBcIiBbaWNvbk5hbWVdPVwiaWNvbi5UaW1lXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIj57eyByZWNpcGU/LnRvdGFsVGltZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBEaWZmaWN1bHR5IC0tPlxuICAgICAgPGRpdiAqbmdJZj0ncmVjaXBlIGVsc2Ugc2tlbGV0b25JbmZvJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2luZm8gcmVjaXBlX19kaWZmaWN1bHR5XCIgW25nQ2xhc3NdPVwieyAnZWFzeSc6IHJlY2lwZT8uZGlmZmljdWx0eSA9PT0gMSxcbiAgICAgICdtZWRpdW0nOiByZWNpcGU/LmRpZmZpY3VsdHkgPT09IDIsICdoYXJkJzogcmVjaXBlPy5kaWZmaWN1bHR5ID09PSAzIH1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicmVjaXBlPy5kaWZmaWN1bHR5XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiMlwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiNjBcIiBbaGVpZ2h0XT1cIjIwXCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLWJsYWNrKSdcbiAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImljb24uRGlmZmljdWx0eU1lZGl1bVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIjNcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjYwXCIgW2hlaWdodF09XCIyMFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1ibGFjayknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlIaWdoXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiNjBcIiBbaGVpZ2h0XT1cIjIwXCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLWJsYWNrKSdcbiAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImljb24uRGlmZmljdWx0eUxvd1wiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicmVjaXBlPy5kaWZmaWN1bHR5XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiMVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmZvX19sYWJlbCBlYXN5XCIgKm5nSWY9XCJyZWNpcGVTZXJ2aWNlLmRpZmZpY3VsdHlMZXZlbHNbMF0/LmxhYmVsICE9PSAnQ2hlZiBkw6lidXRhbnQnIGVsc2UgZGlmZmljdWx0eUVhc3lEZWZhdWx0XCI+XG4gICAgICAgICAgICAgIHt7cmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzWzBdLmxhYmVsfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlmZmljdWx0eUVhc3lEZWZhdWx0PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9fX2xhYmVsIGVhc3lcIiBpMThuPkNoZWYgZMOpYnV0YW50PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9fX2xhYmVsIG1lZGl1bVwiICpuZ0lmPVwicmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzWzFdPy5sYWJlbCAhPT0gJ0NoZWYgaW50ZXJtw6lkaWFpcmUnIGVsc2UgZGlmZmljdWx0eU1lZGl1bURlZmF1bHRcIj5cbiAgICAgICAgICAgICAge3tyZWNpcGVTZXJ2aWNlLmRpZmZpY3VsdHlMZXZlbHNbMV0ubGFiZWx9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkaWZmaWN1bHR5TWVkaXVtRGVmYXVsdD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmZvX19sYWJlbCBtZWRpdW1cIiBpMThuPkNoZWYgaW50ZXJtw6lkaWFpcmU8L3NwYW4+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIjNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWwgaGFyZFwiICpuZ0lmPVwicmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzWzJdPy5sYWJlbCAhPT0gJ1RvcCBjaGVmJyBlbHNlIGRpZmZpY3VsdHlIYXJkRGVmYXVsdFwiPlxuICAgICAgICAgICAgICB7e3JlY2lwZVNlcnZpY2UuZGlmZmljdWx0eUxldmVsc1syXS5sYWJlbH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RpZmZpY3VsdHlIYXJkRGVmYXVsdD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmZvX19sYWJlbCBoYXJkXCIgaTE4bj5Ub3AgY2hlZjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmZvX19sYWJlbCBlYXN5XCIgKm5nSWY9XCJyZWNpcGVTZXJ2aWNlLmRpZmZpY3VsdHlMZXZlbHNbMF0/LmxhYmVsICE9PSAnQ2hlZiBkw6lidXRhbnQnIGVsc2UgZGlmZmljdWx0eURlZmF1bHRcIj5cbiAgICAgICAgICAgICAge3tyZWNpcGVTZXJ2aWNlLmRpZmZpY3VsdHlMZXZlbHNbMF0ubGFiZWx9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkaWZmaWN1bHR5RGVmYXVsdD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmZvX19sYWJlbCBlYXN5XCIgaTE4bj5DaGVmIGTDqWJ1dGFudDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIE51bWJlciBvZiBpbmdyZWRpZW50cyAtLT5cbiAgICAgIDxkaXYgKm5nSWY9J3JlY2lwZSBlbHNlIHNrZWxldG9uSW5mbycgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmZvICByZWNpcGVfX2luZ3JlZGllbnRzXCI+XG4gICAgICAgIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uSW5ncmVkaWVudHNcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmZvX19sYWJlbFwiPlxuICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZT8uaW5ncmVkaWVudHMubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGkxOG4+aW5ncsOpZGllbnRzPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25JbmZvPlxuICAgICAgICA8bmctbWlhbS1za2VsZXRvbiBbdHlwZV09J3NrZWxldG9uPy5JY29uV2l0aEluZm8nPjwvbmctbWlhbS1za2VsZXRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2NvbnRyb2xcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250cm9sX19sZWZ0X19jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2xlZnRfX2NvbF9fY3VzdG9tXCI+XG4gICAgICAgICAgPCEtLSBIZWxwZXIgLS0+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwidG9nZ2xlSGVscGVyKClcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2hlbHBcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1ncmV5MDIpJyBzZWNvbmRhcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1ncmV5MDcpJ1xuICAgICAgICAgICAgW2ljb25OYW1lXT1cImljb24uSGVscFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gSW5ncmVkaWVudCBwaWN0dXJlcyAtLT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLmRpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzICYmIHJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50cz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1swXSlcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1sxXSlcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19tb3JlXCIgKm5nSWY9XCJyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggPiAyXCI+XG4gICAgICAgICAgICAgICsge3tyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggLSAyfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBDb3VudGVyIGlucHV0IC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGUgZWxzZSBza2VsZXRvbmNvdW50ZXInIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fbGVmdF9fY29sX19jb3VudGVyXCI+XG4gICAgICAgICAgPG5nLW1pYW0tY291bnRlci1pbnB1dCBbY291bnRlcl09XCJyZWNpcGUubW9kaWZpZWRHdWVzdHNcIiAoY291bnRlckNoYW5nZSk9XCJ1cGRhdGVHdWVzdHMoJGV2ZW50KVwiPjwvbmctbWlhbS1jb3VudGVyLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbmNvdW50ZXI+XG4gICAgICAgICAgPG5nLW1pYW0tc2tlbGV0b24gW3R5cGVdPSdza2VsZXRvbj8uSWNvbldpdGhJbmZvJz48L25nLW1pYW0tc2tlbGV0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250cm9sX19yaWdodF9fY29sXCI+XG4gICAgICAgIDwhLS0gUHJpY2UgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUgJiYgZGlzcGxheVByaWNpbmdcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3JpZ2h0X19jb2xfX3ByaWNlXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByaWNpbmcgW3JlY2lwZV09XCJyZWNpcGVcIiBbc2VydmVzXT1cInJlY2lwZT8ubW9kaWZpZWRHdWVzdHNcIj48L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBBZGQgdG8gYmFza2V0IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jdGFcIj5cbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT0nIXJlY2lwZScgKGNsaWNrKT1cImNsaWNrUHJpbWFyeSgpXCIgY2xhc3M9XCJtLWJ1dHRvbi1wcmltYXJ5XCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2luLWJhc2tldCc6IChncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QocmVjaXBlPy5pZCkgfCBhc3luYyksICdsb2FkaW5nJzogYWRkQnV0dG9uTG9hZGluZ31cIj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cIihncm9jZXJpZXNMaXN0c1NlcnZpY2UucmVjaXBlSXNJbkxpc3QocmVjaXBlPy5pZCkgfCBhc3luYylcIj5Wb2lyIGxlIGTDqXRhaWw8L3NwYW4+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnJlY2lwZVNlcnZpY2Uuc3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9ucy5kaXNwbGF5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnJlY2lwZVNlcnZpY2Uuc3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9ucy5hZGRUb0Jhc2tldCkgfHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5yZWNpcGVTZXJ2aWNlLnJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9ucy5kaXNwbGF5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnJlY2lwZVNlcnZpY2UucmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zLmFkZFRvQmFza2V0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgZWxzZSBvcmlnaW5hbENUQVwiPlxuICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cIiEoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHJlY2lwZT8uaWQpIHwgYXN5bmMpXCI+J0TDqWNvdXZyaXIgbCdpZMOpZSByZXBhczwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI29yaWdpbmFsQ1RBPlxuICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cIiEoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHJlY2lwZT8uaWQpIHwgYXN5bmMpXCI+QWpvdXRlciBsZXMgaW5ncsOpZGllbnRzPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPG5nLW1pYW0taWNvbiAqbmdJZj1cIiFhZGRCdXR0b25Mb2FkaW5nIGVsc2UgYWRkTG9hZGVyXCIgW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0nI2ZmZidcbiAgICAgICAgICBbaWNvbk5hbWVdPVwiKGdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdChyZWNpcGU/LmlkKSB8IGFzeW5jKSA/IGljb24uQ2hlY2tMaXN0ICA6aWNvbi5DYXJ0XCI+XG4gICAgICAgIDwvbmctbWlhbS1pY29uPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2FkZExvYWRlcj5cbiAgICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNjb3JzPlxuICA8bmctbWlhbS1jb3JzLW92ZXJsYXk+PC9uZy1taWFtLWNvcnMtb3ZlcmxheT5cbjwvbmctdGVtcGxhdGU+Il19