@po-ui/ng-components 14.5.0 → 14.7.0

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.
Files changed (49) hide show
  1. package/esm2020/lib/components/components.module.mjs +14 -7
  2. package/esm2020/lib/components/index.mjs +2 -1
  3. package/esm2020/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.mjs +1 -1
  4. package/esm2020/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.mjs +5 -5
  5. package/esm2020/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.mjs +1 -1
  6. package/esm2020/lib/components/po-field/index.mjs +2 -1
  7. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox-base.component.mjs +27 -2
  8. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox-size.enum.mjs +15 -0
  9. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox.component.mjs +4 -4
  10. package/esm2020/lib/components/po-field/po-lookup/interfaces/po-lookup-column.interface.mjs +1 -1
  11. package/esm2020/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.mjs +2 -2
  12. package/esm2020/lib/components/po-field/po-select/po-select.component.mjs +5 -1
  13. package/esm2020/lib/components/po-link/index.mjs +3 -0
  14. package/esm2020/lib/components/po-link/po-link-base.component.mjs +54 -0
  15. package/esm2020/lib/components/po-link/po-link.component.mjs +40 -0
  16. package/esm2020/lib/components/po-link/po-link.module.mjs +24 -0
  17. package/esm2020/lib/components/po-table/interfaces/po-table-column.interface.mjs +1 -1
  18. package/esm2020/lib/components/po-table/po-table-detail/po-table-detail-column.interface.mjs +1 -1
  19. package/esm2020/lib/components/po-table/po-table.component.mjs +355 -356
  20. package/esm2020/lib/services/po-language/po-language.service.mjs +3 -1
  21. package/fesm2015/po-ui-ng-components.mjs +523 -355
  22. package/fesm2015/po-ui-ng-components.mjs.map +1 -1
  23. package/fesm2020/po-ui-ng-components.mjs +513 -355
  24. package/fesm2020/po-ui-ng-components.mjs.map +1 -1
  25. package/lib/components/components.module.d.ts +2 -1
  26. package/lib/components/index.d.ts +1 -0
  27. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +3 -3
  28. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.d.ts +7 -4
  29. package/lib/components/po-field/index.d.ts +1 -0
  30. package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +18 -1
  31. package/lib/components/po-field/po-checkbox/po-checkbox-size.enum.d.ts +13 -0
  32. package/lib/components/po-field/po-lookup/interfaces/po-lookup-column.interface.d.ts +1 -1
  33. package/lib/components/po-field/po-select/po-select.component.d.ts +2 -1
  34. package/lib/components/po-link/index.d.ts +2 -0
  35. package/lib/components/po-link/po-link-base.component.d.ts +37 -0
  36. package/lib/components/po-link/po-link.component.d.ts +26 -0
  37. package/lib/components/po-link/po-link.module.d.ts +13 -0
  38. package/lib/components/po-table/interfaces/po-table-column.interface.d.ts +1 -1
  39. package/lib/components/po-table/po-table-detail/po-table-detail-column.interface.d.ts +1 -1
  40. package/package.json +4 -4
  41. package/po-ui-ng-components-14.7.0.tgz +0 -0
  42. package/schematics/ng-add/index.js +1 -1
  43. package/schematics/ng-update/v14/index.js +1 -1
  44. package/schematics/ng-update/v2/index.js +1 -1
  45. package/schematics/ng-update/v3/index.js +1 -1
  46. package/schematics/ng-update/v4/index.js +1 -1
  47. package/schematics/ng-update/v5/index.js +1 -1
  48. package/schematics/ng-update/v6/index.js +1 -1
  49. package/po-ui-ng-components-14.5.0.tgz +0 -0
@@ -12,23 +12,22 @@ import * as i2 from "../../services/po-language/po-language.service";
12
12
  import * as i3 from "@angular/common";
13
13
  import * as i4 from "@angular/router";
14
14
  import * as i5 from "./services/po-table.service";
15
- import * as i6 from "@angular/forms";
16
- import * as i7 from "@angular/cdk/scrolling";
17
- import * as i8 from "../po-button/po-button.component";
18
- import * as i9 from "../po-container/po-container.component";
19
- import * as i10 from "../po-loading/po-loading.component";
20
- import * as i11 from "../po-popup/po-popup.component";
21
- import * as i12 from "../../directives/po-tooltip/po-tooltip.directive";
22
- import * as i13 from "../po-icon/po-icon.component";
23
- import * as i14 from "../po-field/po-checkbox/po-checkbox.component";
24
- import * as i15 from "./po-table-column-icon/po-table-column-icon.component";
25
- import * as i16 from "./po-table-column-label/po-table-column-label.component";
26
- import * as i17 from "./po-table-column-link/po-table-column-link.component";
27
- import * as i18 from "./po-table-column-manager/po-table-column-manager.component";
28
- import * as i19 from "./po-table-detail/po-table-detail.component";
29
- import * as i20 from "./po-table-subtitle-circle/po-table-subtitle-circle.component";
30
- import * as i21 from "./po-table-subtitle-footer/po-table-subtitle-footer.component";
31
- import * as i22 from "../../pipes/po-time/po-time.pipe";
15
+ import * as i6 from "@angular/cdk/scrolling";
16
+ import * as i7 from "../po-button/po-button.component";
17
+ import * as i8 from "../po-container/po-container.component";
18
+ import * as i9 from "../po-loading/po-loading.component";
19
+ import * as i10 from "../po-popup/po-popup.component";
20
+ import * as i11 from "../../directives/po-tooltip/po-tooltip.directive";
21
+ import * as i12 from "../po-icon/po-icon.component";
22
+ import * as i13 from "../po-field/po-checkbox/po-checkbox.component";
23
+ import * as i14 from "./po-table-column-icon/po-table-column-icon.component";
24
+ import * as i15 from "./po-table-column-label/po-table-column-label.component";
25
+ import * as i16 from "./po-table-column-link/po-table-column-link.component";
26
+ import * as i17 from "./po-table-column-manager/po-table-column-manager.component";
27
+ import * as i18 from "./po-table-detail/po-table-detail.component";
28
+ import * as i19 from "./po-table-subtitle-circle/po-table-subtitle-circle.component";
29
+ import * as i20 from "./po-table-subtitle-footer/po-table-subtitle-footer.component";
30
+ import * as i21 from "../../pipes/po-time/po-time.pipe";
32
31
  const _c0 = ["noColumnsHeader"];
33
32
  const _c1 = ["noColumnsHeaderFixed"];
34
33
  const _c2 = ["popup"];
@@ -161,11 +160,11 @@ function PoTableComponent_div_3_Template(rf, ctx) { if (rf & 1) {
161
160
  function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template(rf, ctx) { if (rf & 1) {
162
161
  const _r52 = i0.ɵɵgetCurrentView();
163
162
  i0.ɵɵelementStart(0, "po-checkbox", 49);
164
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template_po_checkbox_click_0_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r51.selectAllRows()); })("p-change", function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template_po_checkbox_p_change_0_listener() { i0.ɵɵrestoreView(_r52); const ctx_r53 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r53.selectAllRows()); })("ngModelChange", function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template_po_checkbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r52); const ctx_r54 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r54.selectAll = $event); });
163
+ i0.ɵɵlistener("p-change", function PoTableComponent_ng_template_4_th_3_po_checkbox_2_Template_po_checkbox_p_change_0_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r51.selectAllRows()); });
165
164
  i0.ɵɵelementEnd();
166
165
  } if (rf & 2) {
167
166
  const ctx_r50 = i0.ɵɵnextContext(3);
168
- i0.ɵɵproperty("ngModel", ctx_r50.selectAll);
167
+ i0.ɵɵproperty("p-checkboxValue", ctx_r50.selectAll === null ? "mixed" : ctx_r50.selectAll);
169
168
  } }
170
169
  function PoTableComponent_ng_template_4_th_3_Template(rf, ctx) { if (rf & 1) {
171
170
  i0.ɵɵelementStart(0, "th", 47)(1, "div");
@@ -206,22 +205,22 @@ function PoTableComponent_ng_template_4_th_7_ng_container_2_Template(rf, ctx) {
206
205
  } }
207
206
  const _c16 = function (a0) { return { $implicit: a0 }; };
208
207
  function PoTableComponent_ng_template_4_th_7_Template(rf, ctx) { if (rf & 1) {
209
- const _r62 = i0.ɵɵgetCurrentView();
208
+ const _r60 = i0.ɵɵgetCurrentView();
210
209
  i0.ɵɵelementStart(0, "th", 54);
211
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_7_Template_th_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r62); const column_r58 = restoredCtx.$implicit; const ctx_r61 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r61.sortColumn(column_r58)); });
210
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_7_Template_th_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r60); const column_r56 = restoredCtx.$implicit; const ctx_r59 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r59.sortColumn(column_r56)); });
212
211
  i0.ɵɵelementStart(1, "div", 55);
213
212
  i0.ɵɵtemplate(2, PoTableComponent_ng_template_4_th_7_ng_container_2_Template, 1, 0, "ng-container", 56);
214
213
  i0.ɵɵelementEnd()();
215
214
  } if (rf & 2) {
216
- const column_r58 = ctx.$implicit;
215
+ const column_r56 = ctx.$implicit;
217
216
  const ctx_r46 = i0.ɵɵnextContext(2);
218
217
  const _r17 = i0.ɵɵreference(19);
219
- i0.ɵɵstyleProp("width", column_r58.width)("max-width", column_r58.width)("min-width", column_r58.width);
220
- i0.ɵɵclassProp("po-clickable", ctx_r46.sort && column_r58.sortable !== false || ctx_r46.hasService)("po-table-header-subtitle", column_r58.type === "subtitle");
218
+ i0.ɵɵstyleProp("width", column_r56.width)("max-width", column_r56.width)("min-width", column_r56.width);
219
+ i0.ɵɵclassProp("po-clickable", ctx_r46.sort && column_r56.sortable !== false || ctx_r46.hasService)("po-table-header-subtitle", column_r56.type === "subtitle");
221
220
  i0.ɵɵadvance(1);
222
- i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r46.height)("po-table-header-flex-right", column_r58.type === "currency" || column_r58.type === "number")("po-table-header-flex-center", column_r58.type === "subtitle");
221
+ i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r46.height)("po-table-header-flex-right", column_r56.type === "currency" || column_r56.type === "number")("po-table-header-flex-center", column_r56.type === "subtitle");
223
222
  i0.ɵɵadvance(1);
224
- i0.ɵɵproperty("ngTemplateOutlet", _r17)("ngTemplateOutletContext", i0.ɵɵpureFunction1(18, _c16, column_r58));
223
+ i0.ɵɵproperty("ngTemplateOutlet", _r17)("ngTemplateOutletContext", i0.ɵɵpureFunction1(18, _c16, column_r56));
225
224
  } }
226
225
  function PoTableComponent_ng_template_4_th_8_Template(rf, ctx) { if (rf & 1) {
227
226
  i0.ɵɵelement(0, "th", 50);
@@ -233,16 +232,16 @@ function PoTableComponent_ng_template_4_th_9_Template(rf, ctx) { if (rf & 1) {
233
232
  i0.ɵɵclassProp("po-table-header-single-action", ctx_r48.isSingleAction && !ctx_r48.hideColumnsManager)("po-table-header-actions", !ctx_r48.isSingleAction);
234
233
  } }
235
234
  function PoTableComponent_ng_template_4_th_10_Template(rf, ctx) { if (rf & 1) {
236
- const _r66 = i0.ɵɵgetCurrentView();
235
+ const _r64 = i0.ɵɵgetCurrentView();
237
236
  i0.ɵɵelementStart(0, "th", null, 57)(2, "div")(3, "button", 58, 59);
238
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_10_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r66); const ctx_r65 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r65.onOpenColumnManager()); });
237
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_4_th_10_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r64); const ctx_r63 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r63.onOpenColumnManager()); });
239
238
  i0.ɵɵelementEnd()()();
240
239
  } if (rf & 2) {
241
- const _r63 = i0.ɵɵreference(1);
240
+ const _r61 = i0.ɵɵreference(1);
242
241
  const ctx_r49 = i0.ɵɵnextContext(2);
243
242
  i0.ɵɵclassProp("po-table-header-column-manager", !ctx_r49.isSingleAction || !ctx_r49.actionRight)("po-table-header-column-manager-border", !ctx_r49.height && ctx_r49.container)("po-table-header-single-action", ctx_r49.isSingleAction && ctx_r49.actionRight);
244
243
  i0.ɵɵadvance(2);
245
- i0.ɵɵstyleProp("width", ctx_r49.height && ctx_r49.visibleActions.length ? _r63.offsetWidth : undefined, "px");
244
+ i0.ɵɵstyleProp("width", ctx_r49.height && ctx_r49.visibleActions.length ? _r61.offsetWidth : undefined, "px");
246
245
  i0.ɵɵclassProp("po-table-header-column-manager-border", ctx_r49.height && ctx_r49.container)("po-table-header-column-manager-fixed-inner", ctx_r49.height);
247
246
  i0.ɵɵadvance(1);
248
247
  i0.ɵɵproperty("p-tooltip", ctx_r49.literals.columnsManager);
@@ -286,11 +285,11 @@ function PoTableComponent_ng_template_6_tbody_3_Template(rf, ctx) { if (rf & 1)
286
285
  i0.ɵɵtext(4);
287
286
  i0.ɵɵelementEnd()()()();
288
287
  } if (rf & 2) {
289
- const ctx_r68 = i0.ɵɵnextContext(2);
288
+ const ctx_r66 = i0.ɵɵnextContext(2);
290
289
  i0.ɵɵadvance(2);
291
- i0.ɵɵproperty("colSpan", ctx_r68.columnCount);
290
+ i0.ɵɵproperty("colSpan", ctx_r66.columnCount);
292
291
  i0.ɵɵadvance(2);
293
- i0.ɵɵtextInterpolate1(" ", ctx_r68.literals.noData, " ");
292
+ i0.ɵɵtextInterpolate1(" ", ctx_r66.literals.noData, " ");
294
293
  } }
295
294
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
296
295
  i0.ɵɵelementContainer(0);
@@ -300,56 +299,56 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_2_Template(rf,
300
299
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_2_ng_container_1_Template, 1, 0, "ng-container", 56);
301
300
  i0.ɵɵelementEnd();
302
301
  } if (rf & 2) {
303
- const row_r71 = i0.ɵɵnextContext().$implicit;
304
- const ctx_r73 = i0.ɵɵnextContext(3);
302
+ const row_r69 = i0.ɵɵnextContext().$implicit;
303
+ const ctx_r71 = i0.ɵɵnextContext(3);
305
304
  const _r13 = i0.ɵɵreference(15);
306
305
  const _r15 = i0.ɵɵreference(17);
307
306
  i0.ɵɵadvance(1);
308
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r73.singleSelect ? _r13 : _r15)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c16, row_r71));
307
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r71.singleSelect ? _r13 : _r15)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c16, row_r69));
309
308
  } }
310
309
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_ng_template_1_Template(rf, ctx) { }
311
310
  const _c17 = function (a0, a1) { return { row: a0, rowIndex: a1 }; };
312
311
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_Template(rf, ctx) { if (rf & 1) {
313
- const _r89 = i0.ɵɵgetCurrentView();
312
+ const _r87 = i0.ɵɵgetCurrentView();
314
313
  i0.ɵɵelementStart(0, "td", 71);
315
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r89); const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r87 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r87.toggleDetail(row_r71)); });
314
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r87); const row_r69 = i0.ɵɵnextContext().$implicit; const ctx_r85 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r85.toggleDetail(row_r69)); });
316
315
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_3_ng_template_1_Template, 0, 0, "ng-template", 72);
317
316
  i0.ɵɵelementEnd();
318
317
  } if (rf & 2) {
319
- const ctx_r90 = i0.ɵɵnextContext();
320
- const row_r71 = ctx_r90.$implicit;
321
- const rowIndex_r72 = ctx_r90.index;
318
+ const ctx_r88 = i0.ɵɵnextContext();
319
+ const row_r69 = ctx_r88.$implicit;
320
+ const rowIndex_r70 = ctx_r88.index;
322
321
  i0.ɵɵnextContext(3);
323
322
  const _r11 = i0.ɵɵreference(13);
324
323
  i0.ɵɵadvance(1);
325
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r71, rowIndex_r72));
324
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r69, rowIndex_r70));
326
325
  } }
327
326
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_4_ng_template_0_Template(rf, ctx) { }
328
327
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_4_Template(rf, ctx) { if (rf & 1) {
329
328
  i0.ɵɵtemplate(0, PoTableComponent_ng_template_6_ng_container_4_tbody_1_4_ng_template_0_Template, 0, 0, "ng-template", 72);
330
329
  } if (rf & 2) {
331
- const ctx_r92 = i0.ɵɵnextContext();
332
- const row_r71 = ctx_r92.$implicit;
333
- const rowIndex_r72 = ctx_r92.index;
330
+ const ctx_r90 = i0.ɵɵnextContext();
331
+ const row_r69 = ctx_r90.$implicit;
332
+ const rowIndex_r70 = ctx_r90.index;
334
333
  i0.ɵɵnextContext(3);
335
334
  const _r23 = i0.ɵɵreference(25);
336
- i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r71, rowIndex_r72));
335
+ i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r69, rowIndex_r70));
337
336
  } }
338
337
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_ng_template_1_Template(rf, ctx) { }
339
338
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_Template(rf, ctx) { if (rf & 1) {
340
- const _r96 = i0.ɵɵgetCurrentView();
339
+ const _r94 = i0.ɵɵgetCurrentView();
341
340
  i0.ɵɵelementStart(0, "td", 71);
342
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r96); const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r94 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r94.toggleDetail(row_r71)); });
341
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r94); const row_r69 = i0.ɵɵnextContext().$implicit; const ctx_r92 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r92.toggleDetail(row_r69)); });
343
342
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_5_ng_template_1_Template, 0, 0, "ng-template", 72);
344
343
  i0.ɵɵelementEnd();
345
344
  } if (rf & 2) {
346
- const ctx_r97 = i0.ɵɵnextContext();
347
- const row_r71 = ctx_r97.$implicit;
348
- const rowIndex_r72 = ctx_r97.index;
345
+ const ctx_r95 = i0.ɵɵnextContext();
346
+ const row_r69 = ctx_r95.$implicit;
347
+ const rowIndex_r70 = ctx_r95.index;
349
348
  i0.ɵɵnextContext(3);
350
349
  const _r11 = i0.ɵɵreference(13);
351
350
  i0.ɵɵadvance(1);
352
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r71, rowIndex_r72));
351
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r69, rowIndex_r70));
353
352
  } }
354
353
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
355
354
  i0.ɵɵelementContainer(0);
@@ -359,11 +358,11 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_2_Templ
359
358
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_2_ng_container_1_Template, 1, 0, "ng-container", 56);
360
359
  i0.ɵɵelementEnd();
361
360
  } if (rf & 2) {
362
- const column_r98 = i0.ɵɵnextContext().$implicit;
363
- const row_r71 = i0.ɵɵnextContext().$implicit;
364
- const ctx_r100 = i0.ɵɵnextContext(3);
361
+ const column_r96 = i0.ɵɵnextContext().$implicit;
362
+ const row_r69 = i0.ɵɵnextContext().$implicit;
363
+ const ctx_r98 = i0.ɵɵnextContext(3);
365
364
  i0.ɵɵadvance(1);
366
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r100.getTemplate(column_r98))("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c16, ctx_r100.getCellData(row_r71, column_r98)));
365
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r98.getTemplate(column_r96))("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c16, ctx_r98.getCellData(row_r69, column_r96)));
367
366
  } }
368
367
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
369
368
  i0.ɵɵelementContainer(0);
@@ -374,22 +373,22 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_3_Templ
374
373
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_3_ng_container_1_Template, 1, 0, "ng-container", 56);
375
374
  i0.ɵɵelementEnd();
376
375
  } if (rf & 2) {
377
- const column_r98 = i0.ɵɵnextContext().$implicit;
378
- const row_r71 = i0.ɵɵnextContext().$implicit;
379
- const ctx_r101 = i0.ɵɵnextContext(3);
376
+ const column_r96 = i0.ɵɵnextContext().$implicit;
377
+ const row_r69 = i0.ɵɵnextContext().$implicit;
378
+ const ctx_r99 = i0.ɵɵnextContext(3);
380
379
  i0.ɵɵadvance(1);
381
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r101.tableCellTemplate == null ? null : ctx_r101.tableCellTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c18, row_r71, column_r98));
380
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r99.tableCellTemplate == null ? null : ctx_r99.tableCellTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c18, row_r69, column_r96));
382
381
  } }
383
382
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_4_Template(rf, ctx) { if (rf & 1) {
384
383
  i0.ɵɵelementStart(0, "span");
385
384
  i0.ɵɵtext(1);
386
385
  i0.ɵɵelementEnd();
387
386
  } if (rf & 2) {
388
- const column_r98 = i0.ɵɵnextContext().$implicit;
389
- const row_r71 = i0.ɵɵnextContext().$implicit;
390
- const ctx_r102 = i0.ɵɵnextContext(3);
387
+ const column_r96 = i0.ɵɵnextContext().$implicit;
388
+ const row_r69 = i0.ɵɵnextContext().$implicit;
389
+ const ctx_r100 = i0.ɵɵnextContext(3);
391
390
  i0.ɵɵadvance(1);
392
- i0.ɵɵtextInterpolate1(" ", ctx_r102.getBooleanLabel(ctx_r102.getCellData(row_r71, column_r98), column_r98), " ");
391
+ i0.ɵɵtextInterpolate1(" ", ctx_r100.getBooleanLabel(ctx_r100.getCellData(row_r69, column_r96), column_r96), " ");
393
392
  } }
394
393
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_5_Template(rf, ctx) { if (rf & 1) {
395
394
  i0.ɵɵelementStart(0, "span");
@@ -397,11 +396,11 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_5_Templ
397
396
  i0.ɵɵpipe(2, "currency");
398
397
  i0.ɵɵelementEnd();
399
398
  } if (rf & 2) {
400
- const column_r98 = i0.ɵɵnextContext().$implicit;
401
- const row_r71 = i0.ɵɵnextContext().$implicit;
402
- const ctx_r103 = i0.ɵɵnextContext(3);
399
+ const column_r96 = i0.ɵɵnextContext().$implicit;
400
+ const row_r69 = i0.ɵɵnextContext().$implicit;
401
+ const ctx_r101 = i0.ɵɵnextContext(3);
403
402
  i0.ɵɵadvance(1);
404
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind4(2, 1, ctx_r103.getCellData(row_r71, column_r98), column_r98.format, "symbol", "1.2-2"), " ");
403
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind4(2, 1, ctx_r101.getCellData(row_r69, column_r96), column_r96.format, "symbol", "1.2-2"), " ");
405
404
  } }
406
405
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_6_Template(rf, ctx) { if (rf & 1) {
407
406
  i0.ɵɵelementStart(0, "span");
@@ -409,11 +408,11 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_6_Templ
409
408
  i0.ɵɵpipe(2, "date");
410
409
  i0.ɵɵelementEnd();
411
410
  } if (rf & 2) {
412
- const column_r98 = i0.ɵɵnextContext().$implicit;
413
- const row_r71 = i0.ɵɵnextContext().$implicit;
414
- const ctx_r104 = i0.ɵɵnextContext(3);
411
+ const column_r96 = i0.ɵɵnextContext().$implicit;
412
+ const row_r69 = i0.ɵɵnextContext().$implicit;
413
+ const ctx_r102 = i0.ɵɵnextContext(3);
415
414
  i0.ɵɵadvance(1);
416
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r104.getCellData(row_r71, column_r98), column_r98.format || "dd/MM/yyyy"), " ");
415
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r102.getCellData(row_r69, column_r96), column_r96.format || "dd/MM/yyyy"), " ");
417
416
  } }
418
417
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_7_Template(rf, ctx) { if (rf & 1) {
419
418
  i0.ɵɵelementStart(0, "span");
@@ -421,11 +420,11 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_7_Templ
421
420
  i0.ɵɵpipe(2, "po_time");
422
421
  i0.ɵɵelementEnd();
423
422
  } if (rf & 2) {
424
- const column_r98 = i0.ɵɵnextContext().$implicit;
425
- const row_r71 = i0.ɵɵnextContext().$implicit;
426
- const ctx_r105 = i0.ɵɵnextContext(3);
423
+ const column_r96 = i0.ɵɵnextContext().$implicit;
424
+ const row_r69 = i0.ɵɵnextContext().$implicit;
425
+ const ctx_r103 = i0.ɵɵnextContext(3);
427
426
  i0.ɵɵadvance(1);
428
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r105.getCellData(row_r71, column_r98), column_r98.format || "HH:mm:ss.ffffff"), " ");
427
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r103.getCellData(row_r69, column_r96), column_r96.format || "HH:mm:ss.ffffff"), " ");
429
428
  } }
430
429
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_8_Template(rf, ctx) { if (rf & 1) {
431
430
  i0.ɵɵelementStart(0, "span");
@@ -433,81 +432,81 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_8_Templ
433
432
  i0.ɵɵpipe(2, "date");
434
433
  i0.ɵɵelementEnd();
435
434
  } if (rf & 2) {
436
- const column_r98 = i0.ɵɵnextContext().$implicit;
437
- const row_r71 = i0.ɵɵnextContext().$implicit;
438
- const ctx_r106 = i0.ɵɵnextContext(3);
435
+ const column_r96 = i0.ɵɵnextContext().$implicit;
436
+ const row_r69 = i0.ɵɵnextContext().$implicit;
437
+ const ctx_r104 = i0.ɵɵnextContext(3);
439
438
  i0.ɵɵadvance(1);
440
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r106.getCellData(row_r71, column_r98), column_r98.format || "dd/MM/yyyy HH:mm:ss"), " ");
439
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r104.getCellData(row_r69, column_r96), column_r96.format || "dd/MM/yyyy HH:mm:ss"), " ");
441
440
  } }
442
441
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_9_Template(rf, ctx) { if (rf & 1) {
443
442
  i0.ɵɵelementStart(0, "span");
444
443
  i0.ɵɵtext(1);
445
444
  i0.ɵɵelementEnd();
446
445
  } if (rf & 2) {
447
- const column_r98 = i0.ɵɵnextContext().$implicit;
448
- const row_r71 = i0.ɵɵnextContext().$implicit;
449
- const ctx_r107 = i0.ɵɵnextContext(3);
446
+ const column_r96 = i0.ɵɵnextContext().$implicit;
447
+ const row_r69 = i0.ɵɵnextContext().$implicit;
448
+ const ctx_r105 = i0.ɵɵnextContext(3);
450
449
  i0.ɵɵadvance(1);
451
- i0.ɵɵtextInterpolate1(" ", ctx_r107.formatNumber(ctx_r107.getCellData(row_r71, column_r98), column_r98.format), " ");
450
+ i0.ɵɵtextInterpolate1(" ", ctx_r105.formatNumber(ctx_r105.getCellData(row_r69, column_r96), column_r96.format), " ");
452
451
  } }
453
452
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_link_10_Template(rf, ctx) { if (rf & 1) {
454
- const _r133 = i0.ɵɵgetCurrentView();
453
+ const _r131 = i0.ɵɵgetCurrentView();
455
454
  i0.ɵɵelementStart(0, "po-table-column-link", 79);
456
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_link_10_Template_po_table_column_link_click_0_listener($event) { i0.ɵɵrestoreView(_r133); const column_r98 = i0.ɵɵnextContext().$implicit; const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r131 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r131.onClickLink($event, row_r71, column_r98)); });
455
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_link_10_Template_po_table_column_link_click_0_listener($event) { i0.ɵɵrestoreView(_r131); const column_r96 = i0.ɵɵnextContext().$implicit; const row_r69 = i0.ɵɵnextContext().$implicit; const ctx_r129 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r129.onClickLink($event, row_r69, column_r96)); });
457
456
  i0.ɵɵelementEnd();
458
457
  } if (rf & 2) {
459
- const column_r98 = i0.ɵɵnextContext().$implicit;
460
- const row_r71 = i0.ɵɵnextContext().$implicit;
461
- const ctx_r108 = i0.ɵɵnextContext(3);
462
- i0.ɵɵproperty("p-action", column_r98.action)("p-disabled", ctx_r108.checkDisabled(row_r71, column_r98))("p-link", row_r71[column_r98.link])("p-row", row_r71)("p-value", ctx_r108.getCellData(row_r71, column_r98));
458
+ const column_r96 = i0.ɵɵnextContext().$implicit;
459
+ const row_r69 = i0.ɵɵnextContext().$implicit;
460
+ const ctx_r106 = i0.ɵɵnextContext(3);
461
+ i0.ɵɵproperty("p-action", column_r96.action)("p-disabled", ctx_r106.checkDisabled(row_r69, column_r96))("p-link", row_r69[column_r96.link])("p-row", row_r69)("p-value", ctx_r106.getCellData(row_r69, column_r96));
463
462
  } }
464
463
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_po_table_column_icon_11_Template(rf, ctx) { if (rf & 1) {
465
464
  i0.ɵɵelement(0, "po-table-column-icon", 80);
466
465
  } if (rf & 2) {
467
- const column_r98 = i0.ɵɵnextContext().$implicit;
468
- const row_r71 = i0.ɵɵnextContext().$implicit;
469
- const ctx_r109 = i0.ɵɵnextContext(3);
470
- i0.ɵɵproperty("p-column", column_r98)("p-icons", ctx_r109.getColumnIcons(row_r71, column_r98))("p-row", row_r71);
466
+ const column_r96 = i0.ɵɵnextContext().$implicit;
467
+ const row_r69 = i0.ɵɵnextContext().$implicit;
468
+ const ctx_r107 = i0.ɵɵnextContext(3);
469
+ i0.ɵɵproperty("p-column", column_r96)("p-icons", ctx_r107.getColumnIcons(row_r69, column_r96))("p-row", row_r69);
471
470
  } }
472
471
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_12_Template(rf, ctx) { if (rf & 1) {
473
472
  i0.ɵɵelementStart(0, "span");
474
473
  i0.ɵɵelement(1, "po-table-subtitle-circle", 81);
475
474
  i0.ɵɵelementEnd();
476
475
  } if (rf & 2) {
477
- const column_r98 = i0.ɵɵnextContext().$implicit;
478
- const row_r71 = i0.ɵɵnextContext().$implicit;
479
- const ctx_r110 = i0.ɵɵnextContext(3);
476
+ const column_r96 = i0.ɵɵnextContext().$implicit;
477
+ const row_r69 = i0.ɵɵnextContext().$implicit;
478
+ const ctx_r108 = i0.ɵɵnextContext(3);
480
479
  i0.ɵɵadvance(1);
481
- i0.ɵɵproperty("p-subtitle", ctx_r110.getSubtitleColumn(row_r71, column_r98));
480
+ i0.ɵɵproperty("p-subtitle", ctx_r108.getSubtitleColumn(row_r69, column_r96));
482
481
  } }
483
482
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_13_Template(rf, ctx) { if (rf & 1) {
484
483
  i0.ɵɵelementStart(0, "span");
485
484
  i0.ɵɵelement(1, "po-table-column-label", 82);
486
485
  i0.ɵɵelementEnd();
487
486
  } if (rf & 2) {
488
- const column_r98 = i0.ɵɵnextContext().$implicit;
489
- const row_r71 = i0.ɵɵnextContext().$implicit;
490
- const ctx_r111 = i0.ɵɵnextContext(3);
487
+ const column_r96 = i0.ɵɵnextContext().$implicit;
488
+ const row_r69 = i0.ɵɵnextContext().$implicit;
489
+ const ctx_r109 = i0.ɵɵnextContext(3);
491
490
  i0.ɵɵadvance(1);
492
- i0.ɵɵproperty("p-value", ctx_r111.getColumnLabel(row_r71, column_r98));
491
+ i0.ɵɵproperty("p-value", ctx_r109.getColumnLabel(row_r69, column_r96));
493
492
  } }
494
493
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_14_Template(rf, ctx) { if (rf & 1) {
495
494
  i0.ɵɵelementStart(0, "span");
496
495
  i0.ɵɵtext(1);
497
496
  i0.ɵɵelementEnd();
498
497
  } if (rf & 2) {
499
- const column_r98 = i0.ɵɵnextContext().$implicit;
500
- const row_r71 = i0.ɵɵnextContext().$implicit;
501
- const ctx_r112 = i0.ɵɵnextContext(3);
498
+ const column_r96 = i0.ɵɵnextContext().$implicit;
499
+ const row_r69 = i0.ɵɵnextContext().$implicit;
500
+ const ctx_r110 = i0.ɵɵnextContext(3);
502
501
  i0.ɵɵadvance(1);
503
- i0.ɵɵtextInterpolate(ctx_r112.getCellData(row_r71, column_r98));
502
+ i0.ɵɵtextInterpolate(ctx_r110.getCellData(row_r69, column_r96));
504
503
  } }
505
504
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template(rf, ctx) { if (rf & 1) {
506
- const _r146 = i0.ɵɵgetCurrentView();
505
+ const _r144 = i0.ɵɵgetCurrentView();
507
506
  i0.ɵɵelementStart(0, "td", 73);
508
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r146); const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r145 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r145.hasSelectableRow() ? ctx_r145.selectRow(row_r71) : "javascript:;"); });
507
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r144); const row_r69 = i0.ɵɵnextContext().$implicit; const ctx_r143 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r143.hasSelectableRow() ? ctx_r143.selectRow(row_r69) : "javascript:;"); });
509
508
  i0.ɵɵelementStart(1, "div", 74);
510
- i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_div_mouseenter_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r146); const column_r98 = restoredCtx.$implicit; const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r148 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r148.tooltipMouseEnter($event, column_r98, row_r71)); })("mouseleave", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r146); const ctx_r150 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r150.tooltipMouseLeave()); });
509
+ i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_div_mouseenter_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r144); const column_r96 = restoredCtx.$implicit; const row_r69 = i0.ɵɵnextContext().$implicit; const ctx_r146 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r146.tooltipMouseEnter($event, column_r96, row_r69)); })("mouseleave", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r144); const ctx_r148 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r148.tooltipMouseLeave()); });
511
510
  i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_2_Template, 2, 4, "span", 75);
512
511
  i0.ɵɵtemplate(3, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_3_Template, 2, 5, "span", 75);
513
512
  i0.ɵɵtemplate(4, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_4_Template, 2, 1, "span", 75);
@@ -523,16 +522,16 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template(rf,
523
522
  i0.ɵɵtemplate(14, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_span_14_Template, 2, 1, "span", 78);
524
523
  i0.ɵɵelementEnd()();
525
524
  } if (rf & 2) {
526
- const column_r98 = ctx.$implicit;
527
- const row_r71 = i0.ɵɵnextContext().$implicit;
528
- const ctx_r77 = i0.ɵɵnextContext(3);
529
- i0.ɵɵstyleProp("width", column_r98.width)("max-width", column_r98.width)("min-width", column_r98.width);
530
- i0.ɵɵclassProp("po-table-column", column_r98.type !== "icon")("po-table-column-right", column_r98.type === "currency" || column_r98.type === "number")("po-table-column-center", column_r98.type === "subtitle")("po-table-column-icons", column_r98.type === "icon");
531
- i0.ɵɵproperty("ngClass", ctx_r77.getClassColor(row_r71, column_r98));
525
+ const column_r96 = ctx.$implicit;
526
+ const row_r69 = i0.ɵɵnextContext().$implicit;
527
+ const ctx_r75 = i0.ɵɵnextContext(3);
528
+ i0.ɵɵstyleProp("width", column_r96.width)("max-width", column_r96.width)("min-width", column_r96.width);
529
+ i0.ɵɵclassProp("po-table-column", column_r96.type !== "icon")("po-table-column-right", column_r96.type === "currency" || column_r96.type === "number")("po-table-column-center", column_r96.type === "subtitle")("po-table-column-icons", column_r96.type === "icon");
530
+ i0.ɵɵproperty("ngClass", ctx_r75.getClassColor(row_r69, column_r96));
532
531
  i0.ɵɵadvance(1);
533
- i0.ɵɵstyleProp("width", ctx_r77.noColumnsHeaderFixed == null ? null : ctx_r77.noColumnsHeaderFixed.nativeElement.parentElement == null ? null : ctx_r77.noColumnsHeaderFixed.nativeElement.parentElement.offsetWidth, "px");
534
- i0.ɵɵclassProp("po-table-body-ellipsis", ctx_r77.hideTextOverflow);
535
- i0.ɵɵproperty("ngSwitch", column_r98.type)("p-tooltip", ctx_r77.tooltipText);
532
+ i0.ɵɵstyleProp("width", ctx_r75.noColumnsHeaderFixed == null ? null : ctx_r75.noColumnsHeaderFixed.nativeElement.parentElement == null ? null : ctx_r75.noColumnsHeaderFixed.nativeElement.parentElement.offsetWidth, "px");
533
+ i0.ɵɵclassProp("po-table-body-ellipsis", ctx_r75.hideTextOverflow);
534
+ i0.ɵɵproperty("ngSwitch", column_r96.type)("p-tooltip", ctx_r75.tooltipText);
536
535
  i0.ɵɵadvance(1);
537
536
  i0.ɵɵproperty("ngSwitchCase", "columnTemplate");
538
537
  i0.ɵɵadvance(1);
@@ -560,30 +559,30 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_6_Template(rf,
560
559
  } }
561
560
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_ng_template_1_Template(rf, ctx) { }
562
561
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_Template(rf, ctx) { if (rf & 1) {
563
- const _r155 = i0.ɵɵgetCurrentView();
562
+ const _r153 = i0.ɵɵgetCurrentView();
564
563
  i0.ɵɵelementStart(0, "td", 71);
565
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r155); const row_r71 = i0.ɵɵnextContext().$implicit; const ctx_r153 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r153.toggleDetail(row_r71)); });
564
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r153); const row_r69 = i0.ɵɵnextContext().$implicit; const ctx_r151 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r151.toggleDetail(row_r69)); });
566
565
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_td_7_ng_template_1_Template, 0, 0, "ng-template", 72);
567
566
  i0.ɵɵelementEnd();
568
567
  } if (rf & 2) {
569
- const ctx_r156 = i0.ɵɵnextContext();
570
- const row_r71 = ctx_r156.$implicit;
571
- const rowIndex_r72 = ctx_r156.index;
568
+ const ctx_r154 = i0.ɵɵnextContext();
569
+ const row_r69 = ctx_r154.$implicit;
570
+ const rowIndex_r70 = ctx_r154.index;
572
571
  i0.ɵɵnextContext(3);
573
572
  const _r11 = i0.ɵɵreference(13);
574
573
  i0.ɵɵadvance(1);
575
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r71, rowIndex_r72));
574
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r69, rowIndex_r70));
576
575
  } }
577
576
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_8_ng_template_0_Template(rf, ctx) { }
578
577
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_8_Template(rf, ctx) { if (rf & 1) {
579
578
  i0.ɵɵtemplate(0, PoTableComponent_ng_template_6_ng_container_4_tbody_1_8_ng_template_0_Template, 0, 0, "ng-template", 72);
580
579
  } if (rf & 2) {
581
- const ctx_r158 = i0.ɵɵnextContext();
582
- const row_r71 = ctx_r158.$implicit;
583
- const rowIndex_r72 = ctx_r158.index;
580
+ const ctx_r156 = i0.ɵɵnextContext();
581
+ const row_r69 = ctx_r156.$implicit;
582
+ const rowIndex_r70 = ctx_r156.index;
584
583
  i0.ɵɵnextContext(3);
585
584
  const _r23 = i0.ɵɵreference(25);
586
- i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r71, rowIndex_r72));
585
+ i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r69, rowIndex_r70));
587
586
  } }
588
587
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_ng_container_9_Template(rf, ctx) { if (rf & 1) {
589
588
  i0.ɵɵelementContainerStart(0);
@@ -600,27 +599,27 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_11_Template(rf
600
599
  i0.ɵɵtemplate(2, PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_11_ng_template_2_Template, 0, 0, "ng-template", 72);
601
600
  i0.ɵɵelementEnd()();
602
601
  } if (rf & 2) {
603
- const ctx_r160 = i0.ɵɵnextContext();
604
- const row_r71 = ctx_r160.$implicit;
605
- const rowIndex_r72 = ctx_r160.index;
606
- const ctx_r82 = i0.ɵɵnextContext(3);
602
+ const ctx_r158 = i0.ɵɵnextContext();
603
+ const row_r69 = ctx_r158.$implicit;
604
+ const rowIndex_r70 = ctx_r158.index;
605
+ const ctx_r80 = i0.ɵɵnextContext(3);
607
606
  i0.ɵɵadvance(1);
608
- i0.ɵɵproperty("colSpan", ctx_r82.columnCountForMasterDetail);
607
+ i0.ɵɵproperty("colSpan", ctx_r80.columnCountForMasterDetail);
609
608
  i0.ɵɵadvance(1);
610
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r82.tableRowTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c19, row_r71, rowIndex_r72));
609
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r80.tableRowTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c19, row_r69, rowIndex_r70));
611
610
  } }
612
611
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_12_Template(rf, ctx) { if (rf & 1) {
613
- const _r162 = i0.ɵɵgetCurrentView();
612
+ const _r160 = i0.ɵɵgetCurrentView();
614
613
  i0.ɵɵelementStart(0, "tr")(1, "td", 86)(2, "po-table-detail", 87);
615
- i0.ɵɵlistener("p-select-row", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_12_Template_po_table_detail_p_select_row_2_listener($event) { i0.ɵɵrestoreView(_r162); const ctx_r161 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r161.selectDetailRow($event)); });
614
+ i0.ɵɵlistener("p-select-row", function PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_12_Template_po_table_detail_p_select_row_2_listener($event) { i0.ɵɵrestoreView(_r160); const ctx_r159 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r159.selectDetailRow($event)); });
616
615
  i0.ɵɵelementEnd()()();
617
616
  } if (rf & 2) {
618
- const row_r71 = i0.ɵɵnextContext().$implicit;
619
- const ctx_r83 = i0.ɵɵnextContext(3);
617
+ const row_r69 = i0.ɵɵnextContext().$implicit;
618
+ const ctx_r81 = i0.ɵɵnextContext(3);
620
619
  i0.ɵɵadvance(1);
621
- i0.ɵɵproperty("colSpan", ctx_r83.columnCountForMasterDetail);
620
+ i0.ɵɵproperty("colSpan", ctx_r81.columnCountForMasterDetail);
622
621
  i0.ɵɵadvance(1);
623
- i0.ɵɵproperty("p-selectable", ctx_r83.selectable && !ctx_r83.detailHideSelect)("p-detail", ctx_r83.columnMasterDetail.detail)("p-items", row_r71[ctx_r83.nameColumnDetail]);
622
+ i0.ɵɵproperty("p-selectable", ctx_r81.selectable && !ctx_r81.detailHideSelect)("p-detail", ctx_r81.columnMasterDetail.detail)("p-items", row_r69[ctx_r81.nameColumnDetail]);
624
623
  } }
625
624
  function PoTableComponent_ng_template_6_ng_container_4_tbody_1_Template(rf, ctx) { if (rf & 1) {
626
625
  i0.ɵɵelementStart(0, "tbody", 63)(1, "tr", 67);
@@ -638,47 +637,47 @@ function PoTableComponent_ng_template_6_ng_container_4_tbody_1_Template(rf, ctx)
638
637
  i0.ɵɵtemplate(12, PoTableComponent_ng_template_6_ng_container_4_tbody_1_tr_12_Template, 3, 4, "tr", 23);
639
638
  i0.ɵɵelementEnd();
640
639
  } if (rf & 2) {
641
- const row_r71 = ctx.$implicit;
642
- const rowIndex_r72 = ctx.index;
643
- const ctx_r70 = i0.ɵɵnextContext(3);
640
+ const row_r69 = ctx.$implicit;
641
+ const rowIndex_r70 = ctx.index;
642
+ const ctx_r68 = i0.ɵɵnextContext(3);
644
643
  i0.ɵɵadvance(1);
645
- i0.ɵɵclassProp("po-table-row-active", row_r71.$selected || row_r71.$selected === null && ctx_r70.selectable);
644
+ i0.ɵɵclassProp("po-table-row-active", row_r69.$selected || row_r69.$selected === null && ctx_r68.selectable);
646
645
  i0.ɵɵadvance(1);
647
- i0.ɵɵproperty("ngIf", ctx_r70.selectable);
646
+ i0.ɵɵproperty("ngIf", ctx_r68.selectable);
648
647
  i0.ɵɵadvance(1);
649
- i0.ɵɵproperty("ngIf", ctx_r70.columnMasterDetail && !ctx_r70.hideDetail && !ctx_r70.hasRowTemplate);
648
+ i0.ɵɵproperty("ngIf", ctx_r68.columnMasterDetail && !ctx_r68.hideDetail && !ctx_r68.hasRowTemplate);
650
649
  i0.ɵɵadvance(1);
651
- i0.ɵɵproperty("ngIf", !ctx_r70.actionRight && (ctx_r70.visibleActions.length > 1 || ctx_r70.isSingleAction));
650
+ i0.ɵɵproperty("ngIf", !ctx_r68.actionRight && (ctx_r68.visibleActions.length > 1 || ctx_r68.isSingleAction));
652
651
  i0.ɵɵadvance(1);
653
- i0.ɵɵproperty("ngIf", ctx_r70.hasRowTemplate && !ctx_r70.hasRowTemplateWithArrowDirectionRight);
652
+ i0.ɵɵproperty("ngIf", ctx_r68.hasRowTemplate && !ctx_r68.hasRowTemplateWithArrowDirectionRight);
654
653
  i0.ɵɵadvance(1);
655
- i0.ɵɵproperty("ngForOf", ctx_r70.mainColumns)("ngForTrackBy", ctx_r70.trackBy);
654
+ i0.ɵɵproperty("ngForOf", ctx_r68.mainColumns)("ngForTrackBy", ctx_r68.trackBy);
656
655
  i0.ɵɵadvance(1);
657
- i0.ɵɵproperty("ngIf", ctx_r70.hasRowTemplateWithArrowDirectionRight);
656
+ i0.ɵɵproperty("ngIf", ctx_r68.hasRowTemplateWithArrowDirectionRight);
658
657
  i0.ɵɵadvance(1);
659
- i0.ɵɵproperty("ngIf", ctx_r70.actionRight);
658
+ i0.ɵɵproperty("ngIf", ctx_r68.actionRight);
660
659
  i0.ɵɵadvance(1);
661
- i0.ɵɵproperty("ngIf", !ctx_r70.actionRight && (ctx_r70.visibleActions.length > 1 || ctx_r70.isSingleAction) && !ctx_r70.hideColumnsManager);
660
+ i0.ɵɵproperty("ngIf", !ctx_r68.actionRight && (ctx_r68.visibleActions.length > 1 || ctx_r68.isSingleAction) && !ctx_r68.hideColumnsManager);
662
661
  i0.ɵɵadvance(1);
663
- i0.ɵɵproperty("ngIf", !ctx_r70.hasVisibleActions && !ctx_r70.hideColumnsManager && !ctx_r70.hasRowTemplateWithArrowDirectionRight);
662
+ i0.ɵɵproperty("ngIf", !ctx_r68.hasVisibleActions && !ctx_r68.hideColumnsManager && !ctx_r68.hasRowTemplateWithArrowDirectionRight);
664
663
  i0.ɵɵadvance(1);
665
- i0.ɵɵproperty("ngIf", ctx_r70.hasMainColumns && ctx_r70.hasRowTemplate && row_r71.$showDetail && ctx_r70.isShowRowTemplate(row_r71, rowIndex_r72));
664
+ i0.ɵɵproperty("ngIf", ctx_r68.hasMainColumns && ctx_r68.hasRowTemplate && row_r69.$showDetail && ctx_r68.isShowRowTemplate(row_r69, rowIndex_r70));
666
665
  i0.ɵɵadvance(1);
667
- i0.ɵɵproperty("ngIf", ctx_r70.hasMainColumns && ctx_r70.isShowMasterDetail(row_r71));
666
+ i0.ɵɵproperty("ngIf", ctx_r68.hasMainColumns && ctx_r68.isShowMasterDetail(row_r69));
668
667
  } }
669
668
  function PoTableComponent_ng_template_6_ng_container_4_Template(rf, ctx) { if (rf & 1) {
670
669
  i0.ɵɵelementContainerStart(0);
671
670
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_6_ng_container_4_tbody_1_Template, 13, 14, "tbody", 66);
672
671
  i0.ɵɵelementContainerEnd();
673
672
  } if (rf & 2) {
674
- const ctx_r69 = i0.ɵɵnextContext(2);
673
+ const ctx_r67 = i0.ɵɵnextContext(2);
675
674
  i0.ɵɵadvance(1);
676
- i0.ɵɵproperty("cdkVirtualForOf", ctx_r69.items)("cdkVirtualForTrackBy", ctx_r69.trackBy);
675
+ i0.ɵɵproperty("cdkVirtualForOf", ctx_r67.items)("cdkVirtualForTrackBy", ctx_r67.trackBy);
677
676
  } }
678
677
  function PoTableComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
679
- const _r165 = i0.ɵɵgetCurrentView();
678
+ const _r163 = i0.ɵɵgetCurrentView();
680
679
  i0.ɵɵelementStart(0, "cdk-virtual-scroll-viewport", 60, 61);
681
- i0.ɵɵlistener("scroll", function PoTableComponent_ng_template_6_Template_cdk_virtual_scroll_viewport_scroll_0_listener() { i0.ɵɵrestoreView(_r165); const ctx_r164 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r164.syncronizeHorizontalScroll()); });
680
+ i0.ɵɵlistener("scroll", function PoTableComponent_ng_template_6_Template_cdk_virtual_scroll_viewport_scroll_0_listener() { i0.ɵɵrestoreView(_r163); const ctx_r162 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r162.syncronizeHorizontalScroll()); });
682
681
  i0.ɵɵelementStart(2, "table", 39);
683
682
  i0.ɵɵtemplate(3, PoTableComponent_ng_template_6_tbody_3_Template, 5, 2, "tbody", 62);
684
683
  i0.ɵɵtemplate(4, PoTableComponent_ng_template_6_ng_container_4_Template, 2, 2, "ng-container", 23);
@@ -695,24 +694,24 @@ function PoTableComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
695
694
  i0.ɵɵproperty("ngIf", ctx_r7.hasMainColumns);
696
695
  } }
697
696
  function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template(rf, ctx) { if (rf & 1) {
698
- const _r178 = i0.ɵɵgetCurrentView();
697
+ const _r176 = i0.ɵɵgetCurrentView();
699
698
  i0.ɵɵelementStart(0, "po-checkbox", 49);
700
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template_po_checkbox_click_0_listener() { i0.ɵɵrestoreView(_r178); const ctx_r177 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r177.selectAllRows()); })("p-change", function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template_po_checkbox_p_change_0_listener() { i0.ɵɵrestoreView(_r178); const ctx_r179 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r179.selectAllRows()); })("ngModelChange", function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template_po_checkbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r178); const ctx_r180 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r180.selectAll = $event); });
699
+ i0.ɵɵlistener("p-change", function PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template_po_checkbox_p_change_0_listener() { i0.ɵɵrestoreView(_r176); const ctx_r175 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r175.selectAllRows()); });
701
700
  i0.ɵɵelementEnd();
702
701
  } if (rf & 2) {
703
- const ctx_r176 = i0.ɵɵnextContext(3);
704
- i0.ɵɵproperty("ngModel", ctx_r176.selectAll);
702
+ const ctx_r174 = i0.ɵɵnextContext(3);
703
+ i0.ɵɵproperty("p-checkboxValue", ctx_r174.selectAll === null ? "mixed" : ctx_r174.selectAll);
705
704
  } }
706
705
  function PoTableComponent_ng_template_8_th_3_Template(rf, ctx) { if (rf & 1) {
707
706
  i0.ɵɵelementStart(0, "th", 47)(1, "div");
708
707
  i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_th_3_po_checkbox_2_Template, 1, 1, "po-checkbox", 48);
709
708
  i0.ɵɵelementEnd()();
710
709
  } if (rf & 2) {
711
- const ctx_r166 = i0.ɵɵnextContext(2);
710
+ const ctx_r164 = i0.ɵɵnextContext(2);
712
711
  i0.ɵɵadvance(1);
713
- i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r166.height);
712
+ i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r164.height);
714
713
  i0.ɵɵadvance(1);
715
- i0.ɵɵproperty("ngIf", !ctx_r166.hideSelectAll);
714
+ i0.ɵɵproperty("ngIf", !ctx_r164.hideSelectAll);
716
715
  } }
717
716
  function PoTableComponent_ng_template_8_th_4_Template(rf, ctx) { if (rf & 1) {
718
717
  i0.ɵɵelement(0, "th", 50);
@@ -720,8 +719,8 @@ function PoTableComponent_ng_template_8_th_4_Template(rf, ctx) { if (rf & 1) {
720
719
  function PoTableComponent_ng_template_8_th_5_Template(rf, ctx) { if (rf & 1) {
721
720
  i0.ɵɵelement(0, "th", null, 88);
722
721
  } if (rf & 2) {
723
- const ctx_r168 = i0.ɵɵnextContext(2);
724
- i0.ɵɵclassProp("po-table-header-master-detail", !ctx_r168.isSingleAction)("po-table-header-single-action", ctx_r168.isSingleAction);
722
+ const ctx_r166 = i0.ɵɵnextContext(2);
723
+ i0.ɵɵclassProp("po-table-header-master-detail", !ctx_r166.isSingleAction)("po-table-header-single-action", ctx_r166.isSingleAction);
725
724
  } }
726
725
  function PoTableComponent_ng_template_8_th_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {
727
726
  i0.ɵɵelementContainer(0);
@@ -731,32 +730,32 @@ function PoTableComponent_ng_template_8_th_6_Template(rf, ctx) { if (rf & 1) {
731
730
  i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_th_6_ng_container_2_Template, 1, 0, "ng-container", 32);
732
731
  i0.ɵɵelementEnd();
733
732
  } if (rf & 2) {
734
- const ctx_r169 = i0.ɵɵnextContext(2);
733
+ const ctx_r167 = i0.ɵɵnextContext(2);
735
734
  const _r19 = i0.ɵɵreference(21);
736
735
  const _r21 = i0.ɵɵreference(23);
737
736
  i0.ɵɵadvance(2);
738
- i0.ɵɵproperty("ngIf", ctx_r169.height)("ngIfThen", _r19)("ngIfElse", _r21);
737
+ i0.ɵɵproperty("ngIf", ctx_r167.height)("ngIfThen", _r19)("ngIfElse", _r21);
739
738
  } }
740
739
  function PoTableComponent_ng_template_8_th_7_ng_container_2_Template(rf, ctx) { if (rf & 1) {
741
740
  i0.ɵɵelementContainer(0);
742
741
  } }
743
742
  function PoTableComponent_ng_template_8_th_7_Template(rf, ctx) { if (rf & 1) {
744
- const _r188 = i0.ɵɵgetCurrentView();
743
+ const _r184 = i0.ɵɵgetCurrentView();
745
744
  i0.ɵɵelementStart(0, "th", 54);
746
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_7_Template_th_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r188); const column_r184 = restoredCtx.$implicit; const ctx_r187 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r187.sortColumn(column_r184)); });
745
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_7_Template_th_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r184); const column_r180 = restoredCtx.$implicit; const ctx_r183 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r183.sortColumn(column_r180)); });
747
746
  i0.ɵɵelementStart(1, "div", 55);
748
747
  i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_th_7_ng_container_2_Template, 1, 0, "ng-container", 56);
749
748
  i0.ɵɵelementEnd()();
750
749
  } if (rf & 2) {
751
- const column_r184 = ctx.$implicit;
752
- const ctx_r170 = i0.ɵɵnextContext(2);
750
+ const column_r180 = ctx.$implicit;
751
+ const ctx_r168 = i0.ɵɵnextContext(2);
753
752
  const _r17 = i0.ɵɵreference(19);
754
- i0.ɵɵstyleProp("width", column_r184.width)("max-width", column_r184.width)("min-width", column_r184.width);
755
- i0.ɵɵclassProp("po-clickable", ctx_r170.sort && column_r184.sortable !== false || ctx_r170.hasService)("po-table-header-subtitle", column_r184.type === "subtitle");
753
+ i0.ɵɵstyleProp("width", column_r180.width)("max-width", column_r180.width)("min-width", column_r180.width);
754
+ i0.ɵɵclassProp("po-clickable", ctx_r168.sort && column_r180.sortable !== false || ctx_r168.hasService)("po-table-header-subtitle", column_r180.type === "subtitle");
756
755
  i0.ɵɵadvance(1);
757
- i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r170.height)("po-table-header-flex-right", column_r184.type === "currency" || column_r184.type === "number")("po-table-header-flex-center", column_r184.type === "subtitle");
756
+ i0.ɵɵclassProp("po-table-header-fixed-inner", ctx_r168.height)("po-table-header-flex-right", column_r180.type === "currency" || column_r180.type === "number")("po-table-header-flex-center", column_r180.type === "subtitle");
758
757
  i0.ɵɵadvance(1);
759
- i0.ɵɵproperty("ngTemplateOutlet", _r17)("ngTemplateOutletContext", i0.ɵɵpureFunction1(18, _c16, column_r184));
758
+ i0.ɵɵproperty("ngTemplateOutlet", _r17)("ngTemplateOutletContext", i0.ɵɵpureFunction1(18, _c16, column_r180));
760
759
  } }
761
760
  function PoTableComponent_ng_template_8_th_8_Template(rf, ctx) { if (rf & 1) {
762
761
  i0.ɵɵelement(0, "th", 50);
@@ -764,35 +763,35 @@ function PoTableComponent_ng_template_8_th_8_Template(rf, ctx) { if (rf & 1) {
764
763
  function PoTableComponent_ng_template_8_th_9_Template(rf, ctx) { if (rf & 1) {
765
764
  i0.ɵɵelement(0, "th");
766
765
  } if (rf & 2) {
767
- const ctx_r172 = i0.ɵɵnextContext(2);
768
- i0.ɵɵclassProp("po-table-header-single-action", ctx_r172.isSingleAction)("po-table-header-actions", !ctx_r172.isSingleAction);
766
+ const ctx_r170 = i0.ɵɵnextContext(2);
767
+ i0.ɵɵclassProp("po-table-header-single-action", ctx_r170.isSingleAction)("po-table-header-actions", !ctx_r170.isSingleAction);
769
768
  } }
770
769
  function PoTableComponent_ng_template_8_th_10_Template(rf, ctx) { if (rf & 1) {
771
- const _r192 = i0.ɵɵgetCurrentView();
770
+ const _r188 = i0.ɵɵgetCurrentView();
772
771
  i0.ɵɵelementStart(0, "th", null, 90)(2, "div")(3, "button", 58, 91);
773
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_10_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r192); const ctx_r191 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r191.onOpenColumnManager()); });
772
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_th_10_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r188); const ctx_r187 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r187.onOpenColumnManager()); });
774
773
  i0.ɵɵelementEnd()()();
775
774
  } if (rf & 2) {
776
- const _r189 = i0.ɵɵreference(1);
777
- const ctx_r173 = i0.ɵɵnextContext(2);
778
- i0.ɵɵclassProp("po-table-header-column-manager", !ctx_r173.isSingleAction || !ctx_r173.actionRight)("po-table-header-column-manager-border", !ctx_r173.height && ctx_r173.container)("po-table-header-single-action", ctx_r173.isSingleAction && ctx_r173.actionRight);
775
+ const _r185 = i0.ɵɵreference(1);
776
+ const ctx_r171 = i0.ɵɵnextContext(2);
777
+ i0.ɵɵclassProp("po-table-header-column-manager", !ctx_r171.isSingleAction || !ctx_r171.actionRight)("po-table-header-column-manager-border", !ctx_r171.height && ctx_r171.container)("po-table-header-single-action", ctx_r171.isSingleAction && ctx_r171.actionRight);
779
778
  i0.ɵɵadvance(2);
780
- i0.ɵɵstyleProp("width", ctx_r173.height && ctx_r173.visibleActions.length ? _r189.offsetWidth : undefined, "px");
781
- i0.ɵɵclassProp("po-table-header-column-manager-border", ctx_r173.height && ctx_r173.container)("po-table-header-column-manager-fixed-inner", ctx_r173.height);
779
+ i0.ɵɵstyleProp("width", ctx_r171.height && ctx_r171.visibleActions.length ? _r185.offsetWidth : undefined, "px");
780
+ i0.ɵɵclassProp("po-table-header-column-manager-border", ctx_r171.height && ctx_r171.container)("po-table-header-column-manager-fixed-inner", ctx_r171.height);
782
781
  i0.ɵɵadvance(1);
783
- i0.ɵɵproperty("p-tooltip", ctx_r173.literals.columnsManager);
784
- i0.ɵɵattribute("aria-label", ctx_r173.literals.columnsManager);
782
+ i0.ɵɵproperty("p-tooltip", ctx_r171.literals.columnsManager);
783
+ i0.ɵɵattribute("aria-label", ctx_r171.literals.columnsManager);
785
784
  } }
786
785
  function PoTableComponent_ng_template_8_tbody_11_Template(rf, ctx) { if (rf & 1) {
787
786
  i0.ɵɵelementStart(0, "tbody", 63)(1, "tr", 64)(2, "td", 65)(3, "span");
788
787
  i0.ɵɵtext(4);
789
788
  i0.ɵɵelementEnd()()()();
790
789
  } if (rf & 2) {
791
- const ctx_r174 = i0.ɵɵnextContext(2);
790
+ const ctx_r172 = i0.ɵɵnextContext(2);
792
791
  i0.ɵɵadvance(2);
793
- i0.ɵɵproperty("colSpan", ctx_r174.columnCount);
792
+ i0.ɵɵproperty("colSpan", ctx_r172.columnCount);
794
793
  i0.ɵɵadvance(2);
795
- i0.ɵɵtextInterpolate1(" ", ctx_r174.literals.noData, " ");
794
+ i0.ɵɵtextInterpolate1(" ", ctx_r172.literals.noData, " ");
796
795
  } }
797
796
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
798
797
  i0.ɵɵelementContainer(0);
@@ -802,55 +801,55 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_Template(rf
802
801
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_2_ng_container_1_Template, 1, 0, "ng-container", 56);
803
802
  i0.ɵɵelementEnd();
804
803
  } if (rf & 2) {
805
- const row_r194 = i0.ɵɵnextContext().$implicit;
806
- const ctx_r196 = i0.ɵɵnextContext(3);
804
+ const row_r190 = i0.ɵɵnextContext().$implicit;
805
+ const ctx_r192 = i0.ɵɵnextContext(3);
807
806
  const _r13 = i0.ɵɵreference(15);
808
807
  const _r15 = i0.ɵɵreference(17);
809
808
  i0.ɵɵadvance(1);
810
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r196.singleSelect ? _r13 : _r15)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c16, row_r194));
809
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r192.singleSelect ? _r13 : _r15)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c16, row_r190));
811
810
  } }
812
811
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_ng_template_1_Template(rf, ctx) { }
813
812
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_Template(rf, ctx) { if (rf & 1) {
814
- const _r212 = i0.ɵɵgetCurrentView();
813
+ const _r208 = i0.ɵɵgetCurrentView();
815
814
  i0.ɵɵelementStart(0, "td", 71);
816
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r212); const row_r194 = i0.ɵɵnextContext().$implicit; const ctx_r210 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r210.toggleDetail(row_r194)); });
815
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r208); const row_r190 = i0.ɵɵnextContext().$implicit; const ctx_r206 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r206.toggleDetail(row_r190)); });
817
816
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_3_ng_template_1_Template, 0, 0, "ng-template", 72);
818
817
  i0.ɵɵelementEnd();
819
818
  } if (rf & 2) {
820
- const ctx_r213 = i0.ɵɵnextContext();
821
- const row_r194 = ctx_r213.$implicit;
822
- const rowIndex_r195 = ctx_r213.index;
819
+ const ctx_r209 = i0.ɵɵnextContext();
820
+ const row_r190 = ctx_r209.$implicit;
821
+ const rowIndex_r191 = ctx_r209.index;
823
822
  i0.ɵɵnextContext(3);
824
823
  const _r11 = i0.ɵɵreference(13);
825
824
  i0.ɵɵadvance(1);
826
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r194, rowIndex_r195));
825
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r190, rowIndex_r191));
827
826
  } }
828
827
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_4_ng_template_0_Template(rf, ctx) { }
829
828
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_4_Template(rf, ctx) { if (rf & 1) {
830
829
  i0.ɵɵtemplate(0, PoTableComponent_ng_template_8_ng_container_12_tbody_1_4_ng_template_0_Template, 0, 0, "ng-template", 72);
831
830
  } if (rf & 2) {
832
- const ctx_r215 = i0.ɵɵnextContext();
833
- const row_r194 = ctx_r215.$implicit;
834
- const rowIndex_r195 = ctx_r215.index;
831
+ const ctx_r211 = i0.ɵɵnextContext();
832
+ const row_r190 = ctx_r211.$implicit;
833
+ const rowIndex_r191 = ctx_r211.index;
835
834
  i0.ɵɵnextContext(3);
836
835
  const _r23 = i0.ɵɵreference(25);
837
- i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r194, rowIndex_r195));
836
+ i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r190, rowIndex_r191));
838
837
  } }
839
838
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_ng_template_1_Template(rf, ctx) { }
840
839
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_Template(rf, ctx) { if (rf & 1) {
841
- const _r219 = i0.ɵɵgetCurrentView();
840
+ const _r215 = i0.ɵɵgetCurrentView();
842
841
  i0.ɵɵelementStart(0, "td", 71);
843
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r219); const row_r194 = i0.ɵɵnextContext().$implicit; const ctx_r217 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r217.toggleDetail(row_r194)); });
842
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r215); const row_r190 = i0.ɵɵnextContext().$implicit; const ctx_r213 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r213.toggleDetail(row_r190)); });
844
843
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_5_ng_template_1_Template, 0, 0, "ng-template", 72);
845
844
  i0.ɵɵelementEnd();
846
845
  } if (rf & 2) {
847
- const ctx_r220 = i0.ɵɵnextContext();
848
- const row_r194 = ctx_r220.$implicit;
849
- const rowIndex_r195 = ctx_r220.index;
846
+ const ctx_r216 = i0.ɵɵnextContext();
847
+ const row_r190 = ctx_r216.$implicit;
848
+ const rowIndex_r191 = ctx_r216.index;
850
849
  i0.ɵɵnextContext(3);
851
850
  const _r11 = i0.ɵɵreference(13);
852
851
  i0.ɵɵadvance(1);
853
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r194, rowIndex_r195));
852
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r190, rowIndex_r191));
854
853
  } }
855
854
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
856
855
  i0.ɵɵelementContainer(0);
@@ -860,11 +859,11 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_Temp
860
859
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_ng_container_1_Template, 1, 0, "ng-container", 56);
861
860
  i0.ɵɵelementEnd();
862
861
  } if (rf & 2) {
863
- const column_r221 = i0.ɵɵnextContext().$implicit;
864
- const row_r194 = i0.ɵɵnextContext().$implicit;
865
- const ctx_r223 = i0.ɵɵnextContext(3);
862
+ const column_r217 = i0.ɵɵnextContext().$implicit;
863
+ const row_r190 = i0.ɵɵnextContext().$implicit;
864
+ const ctx_r219 = i0.ɵɵnextContext(3);
866
865
  i0.ɵɵadvance(1);
867
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r223.getTemplate(column_r221))("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c16, ctx_r223.getCellData(row_r194, column_r221)));
866
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r219.getTemplate(column_r217))("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c16, ctx_r219.getCellData(row_r190, column_r217)));
868
867
  } }
869
868
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
870
869
  i0.ɵɵelementContainer(0);
@@ -874,22 +873,22 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_Temp
874
873
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_ng_container_1_Template, 1, 0, "ng-container", 56);
875
874
  i0.ɵɵelementEnd();
876
875
  } if (rf & 2) {
877
- const column_r221 = i0.ɵɵnextContext().$implicit;
878
- const row_r194 = i0.ɵɵnextContext().$implicit;
879
- const ctx_r224 = i0.ɵɵnextContext(3);
876
+ const column_r217 = i0.ɵɵnextContext().$implicit;
877
+ const row_r190 = i0.ɵɵnextContext().$implicit;
878
+ const ctx_r220 = i0.ɵɵnextContext(3);
880
879
  i0.ɵɵadvance(1);
881
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r224.tableCellTemplate == null ? null : ctx_r224.tableCellTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c18, row_r194, column_r221));
880
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r220.tableCellTemplate == null ? null : ctx_r220.tableCellTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c18, row_r190, column_r217));
882
881
  } }
883
882
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_4_Template(rf, ctx) { if (rf & 1) {
884
883
  i0.ɵɵelementStart(0, "span");
885
884
  i0.ɵɵtext(1);
886
885
  i0.ɵɵelementEnd();
887
886
  } if (rf & 2) {
888
- const column_r221 = i0.ɵɵnextContext().$implicit;
889
- const row_r194 = i0.ɵɵnextContext().$implicit;
890
- const ctx_r225 = i0.ɵɵnextContext(3);
887
+ const column_r217 = i0.ɵɵnextContext().$implicit;
888
+ const row_r190 = i0.ɵɵnextContext().$implicit;
889
+ const ctx_r221 = i0.ɵɵnextContext(3);
891
890
  i0.ɵɵadvance(1);
892
- i0.ɵɵtextInterpolate1(" ", ctx_r225.getBooleanLabel(ctx_r225.getCellData(row_r194, column_r221), column_r221), " ");
891
+ i0.ɵɵtextInterpolate1(" ", ctx_r221.getBooleanLabel(ctx_r221.getCellData(row_r190, column_r217), column_r217), " ");
893
892
  } }
894
893
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_5_Template(rf, ctx) { if (rf & 1) {
895
894
  i0.ɵɵelementStart(0, "span");
@@ -897,11 +896,11 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_5_Temp
897
896
  i0.ɵɵpipe(2, "currency");
898
897
  i0.ɵɵelementEnd();
899
898
  } if (rf & 2) {
900
- const column_r221 = i0.ɵɵnextContext().$implicit;
901
- const row_r194 = i0.ɵɵnextContext().$implicit;
902
- const ctx_r226 = i0.ɵɵnextContext(3);
899
+ const column_r217 = i0.ɵɵnextContext().$implicit;
900
+ const row_r190 = i0.ɵɵnextContext().$implicit;
901
+ const ctx_r222 = i0.ɵɵnextContext(3);
903
902
  i0.ɵɵadvance(1);
904
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind4(2, 1, ctx_r226.getCellData(row_r194, column_r221), column_r221.format, "symbol", "1.2-2"), " ");
903
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind4(2, 1, ctx_r222.getCellData(row_r190, column_r217), column_r217.format, "symbol", "1.2-2"), " ");
905
904
  } }
906
905
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_6_Template(rf, ctx) { if (rf & 1) {
907
906
  i0.ɵɵelementStart(0, "span");
@@ -909,11 +908,11 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_6_Temp
909
908
  i0.ɵɵpipe(2, "date");
910
909
  i0.ɵɵelementEnd();
911
910
  } if (rf & 2) {
912
- const column_r221 = i0.ɵɵnextContext().$implicit;
913
- const row_r194 = i0.ɵɵnextContext().$implicit;
914
- const ctx_r227 = i0.ɵɵnextContext(3);
911
+ const column_r217 = i0.ɵɵnextContext().$implicit;
912
+ const row_r190 = i0.ɵɵnextContext().$implicit;
913
+ const ctx_r223 = i0.ɵɵnextContext(3);
915
914
  i0.ɵɵadvance(1);
916
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r227.getCellData(row_r194, column_r221), column_r221.format || "dd/MM/yyyy"), " ");
915
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r223.getCellData(row_r190, column_r217), column_r217.format || "dd/MM/yyyy"), " ");
917
916
  } }
918
917
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_7_Template(rf, ctx) { if (rf & 1) {
919
918
  i0.ɵɵelementStart(0, "span");
@@ -921,11 +920,11 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_7_Temp
921
920
  i0.ɵɵpipe(2, "po_time");
922
921
  i0.ɵɵelementEnd();
923
922
  } if (rf & 2) {
924
- const column_r221 = i0.ɵɵnextContext().$implicit;
925
- const row_r194 = i0.ɵɵnextContext().$implicit;
926
- const ctx_r228 = i0.ɵɵnextContext(3);
923
+ const column_r217 = i0.ɵɵnextContext().$implicit;
924
+ const row_r190 = i0.ɵɵnextContext().$implicit;
925
+ const ctx_r224 = i0.ɵɵnextContext(3);
927
926
  i0.ɵɵadvance(1);
928
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r228.getCellData(row_r194, column_r221), column_r221.format || "HH:mm:ss.ffffff"), " ");
927
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r224.getCellData(row_r190, column_r217), column_r217.format || "HH:mm:ss.ffffff"), " ");
929
928
  } }
930
929
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_8_Template(rf, ctx) { if (rf & 1) {
931
930
  i0.ɵɵelementStart(0, "span");
@@ -933,81 +932,81 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_8_Temp
933
932
  i0.ɵɵpipe(2, "date");
934
933
  i0.ɵɵelementEnd();
935
934
  } if (rf & 2) {
936
- const column_r221 = i0.ɵɵnextContext().$implicit;
937
- const row_r194 = i0.ɵɵnextContext().$implicit;
938
- const ctx_r229 = i0.ɵɵnextContext(3);
935
+ const column_r217 = i0.ɵɵnextContext().$implicit;
936
+ const row_r190 = i0.ɵɵnextContext().$implicit;
937
+ const ctx_r225 = i0.ɵɵnextContext(3);
939
938
  i0.ɵɵadvance(1);
940
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r229.getCellData(row_r194, column_r221), column_r221.format || "dd/MM/yyyy HH:mm:ss"), " ");
939
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r225.getCellData(row_r190, column_r217), column_r217.format || "dd/MM/yyyy HH:mm:ss"), " ");
941
940
  } }
942
941
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_9_Template(rf, ctx) { if (rf & 1) {
943
942
  i0.ɵɵelementStart(0, "span");
944
943
  i0.ɵɵtext(1);
945
944
  i0.ɵɵelementEnd();
946
945
  } if (rf & 2) {
947
- const column_r221 = i0.ɵɵnextContext().$implicit;
948
- const row_r194 = i0.ɵɵnextContext().$implicit;
949
- const ctx_r230 = i0.ɵɵnextContext(3);
946
+ const column_r217 = i0.ɵɵnextContext().$implicit;
947
+ const row_r190 = i0.ɵɵnextContext().$implicit;
948
+ const ctx_r226 = i0.ɵɵnextContext(3);
950
949
  i0.ɵɵadvance(1);
951
- i0.ɵɵtextInterpolate1(" ", ctx_r230.formatNumber(ctx_r230.getCellData(row_r194, column_r221), column_r221.format), " ");
950
+ i0.ɵɵtextInterpolate1(" ", ctx_r226.formatNumber(ctx_r226.getCellData(row_r190, column_r217), column_r217.format), " ");
952
951
  } }
953
952
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_link_10_Template(rf, ctx) { if (rf & 1) {
954
- const _r256 = i0.ɵɵgetCurrentView();
953
+ const _r252 = i0.ɵɵgetCurrentView();
955
954
  i0.ɵɵelementStart(0, "po-table-column-link", 79);
956
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_link_10_Template_po_table_column_link_click_0_listener($event) { i0.ɵɵrestoreView(_r256); const column_r221 = i0.ɵɵnextContext().$implicit; const row_r194 = i0.ɵɵnextContext().$implicit; const ctx_r254 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r254.onClickLink($event, row_r194, column_r221)); });
955
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_link_10_Template_po_table_column_link_click_0_listener($event) { i0.ɵɵrestoreView(_r252); const column_r217 = i0.ɵɵnextContext().$implicit; const row_r190 = i0.ɵɵnextContext().$implicit; const ctx_r250 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r250.onClickLink($event, row_r190, column_r217)); });
957
956
  i0.ɵɵelementEnd();
958
957
  } if (rf & 2) {
959
- const column_r221 = i0.ɵɵnextContext().$implicit;
960
- const row_r194 = i0.ɵɵnextContext().$implicit;
961
- const ctx_r231 = i0.ɵɵnextContext(3);
962
- i0.ɵɵproperty("p-action", column_r221.action)("p-disabled", ctx_r231.checkDisabled(row_r194, column_r221))("p-link", row_r194[column_r221.link])("p-row", row_r194)("p-value", ctx_r231.getCellData(row_r194, column_r221));
958
+ const column_r217 = i0.ɵɵnextContext().$implicit;
959
+ const row_r190 = i0.ɵɵnextContext().$implicit;
960
+ const ctx_r227 = i0.ɵɵnextContext(3);
961
+ i0.ɵɵproperty("p-action", column_r217.action)("p-disabled", ctx_r227.checkDisabled(row_r190, column_r217))("p-link", row_r190[column_r217.link])("p-row", row_r190)("p-value", ctx_r227.getCellData(row_r190, column_r217));
963
962
  } }
964
963
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_po_table_column_icon_11_Template(rf, ctx) { if (rf & 1) {
965
964
  i0.ɵɵelement(0, "po-table-column-icon", 80);
966
965
  } if (rf & 2) {
967
- const column_r221 = i0.ɵɵnextContext().$implicit;
968
- const row_r194 = i0.ɵɵnextContext().$implicit;
969
- const ctx_r232 = i0.ɵɵnextContext(3);
970
- i0.ɵɵproperty("p-column", column_r221)("p-icons", ctx_r232.getColumnIcons(row_r194, column_r221))("p-row", row_r194);
966
+ const column_r217 = i0.ɵɵnextContext().$implicit;
967
+ const row_r190 = i0.ɵɵnextContext().$implicit;
968
+ const ctx_r228 = i0.ɵɵnextContext(3);
969
+ i0.ɵɵproperty("p-column", column_r217)("p-icons", ctx_r228.getColumnIcons(row_r190, column_r217))("p-row", row_r190);
971
970
  } }
972
971
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_12_Template(rf, ctx) { if (rf & 1) {
973
972
  i0.ɵɵelementStart(0, "span");
974
973
  i0.ɵɵelement(1, "po-table-subtitle-circle", 81);
975
974
  i0.ɵɵelementEnd();
976
975
  } if (rf & 2) {
977
- const column_r221 = i0.ɵɵnextContext().$implicit;
978
- const row_r194 = i0.ɵɵnextContext().$implicit;
979
- const ctx_r233 = i0.ɵɵnextContext(3);
976
+ const column_r217 = i0.ɵɵnextContext().$implicit;
977
+ const row_r190 = i0.ɵɵnextContext().$implicit;
978
+ const ctx_r229 = i0.ɵɵnextContext(3);
980
979
  i0.ɵɵadvance(1);
981
- i0.ɵɵproperty("p-subtitle", ctx_r233.getSubtitleColumn(row_r194, column_r221));
980
+ i0.ɵɵproperty("p-subtitle", ctx_r229.getSubtitleColumn(row_r190, column_r217));
982
981
  } }
983
982
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_13_Template(rf, ctx) { if (rf & 1) {
984
983
  i0.ɵɵelementStart(0, "span");
985
984
  i0.ɵɵelement(1, "po-table-column-label", 82);
986
985
  i0.ɵɵelementEnd();
987
986
  } if (rf & 2) {
988
- const column_r221 = i0.ɵɵnextContext().$implicit;
989
- const row_r194 = i0.ɵɵnextContext().$implicit;
990
- const ctx_r234 = i0.ɵɵnextContext(3);
987
+ const column_r217 = i0.ɵɵnextContext().$implicit;
988
+ const row_r190 = i0.ɵɵnextContext().$implicit;
989
+ const ctx_r230 = i0.ɵɵnextContext(3);
991
990
  i0.ɵɵadvance(1);
992
- i0.ɵɵproperty("p-value", ctx_r234.getColumnLabel(row_r194, column_r221));
991
+ i0.ɵɵproperty("p-value", ctx_r230.getColumnLabel(row_r190, column_r217));
993
992
  } }
994
993
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_14_Template(rf, ctx) { if (rf & 1) {
995
994
  i0.ɵɵelementStart(0, "span");
996
995
  i0.ɵɵtext(1);
997
996
  i0.ɵɵelementEnd();
998
997
  } if (rf & 2) {
999
- const column_r221 = i0.ɵɵnextContext().$implicit;
1000
- const row_r194 = i0.ɵɵnextContext().$implicit;
1001
- const ctx_r235 = i0.ɵɵnextContext(3);
998
+ const column_r217 = i0.ɵɵnextContext().$implicit;
999
+ const row_r190 = i0.ɵɵnextContext().$implicit;
1000
+ const ctx_r231 = i0.ɵɵnextContext(3);
1002
1001
  i0.ɵɵadvance(1);
1003
- i0.ɵɵtextInterpolate(ctx_r235.getCellData(row_r194, column_r221));
1002
+ i0.ɵɵtextInterpolate(ctx_r231.getCellData(row_r190, column_r217));
1004
1003
  } }
1005
1004
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template(rf, ctx) { if (rf & 1) {
1006
- const _r269 = i0.ɵɵgetCurrentView();
1005
+ const _r265 = i0.ɵɵgetCurrentView();
1007
1006
  i0.ɵɵelementStart(0, "td", 73);
1008
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r269); const row_r194 = i0.ɵɵnextContext().$implicit; const ctx_r268 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r268.hasSelectableRow() ? ctx_r268.selectRow(row_r194) : "javascript:;"); });
1007
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r265); const row_r190 = i0.ɵɵnextContext().$implicit; const ctx_r264 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r264.hasSelectableRow() ? ctx_r264.selectRow(row_r190) : "javascript:;"); });
1009
1008
  i0.ɵɵelementStart(1, "div", 74);
1010
- i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_div_mouseenter_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r269); const column_r221 = restoredCtx.$implicit; const row_r194 = i0.ɵɵnextContext().$implicit; const ctx_r271 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r271.tooltipMouseEnter($event, column_r221, row_r194)); })("mouseleave", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r269); const ctx_r273 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r273.tooltipMouseLeave()); });
1009
+ i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_div_mouseenter_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r265); const column_r217 = restoredCtx.$implicit; const row_r190 = i0.ɵɵnextContext().$implicit; const ctx_r267 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r267.tooltipMouseEnter($event, column_r217, row_r190)); })("mouseleave", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r265); const ctx_r269 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r269.tooltipMouseLeave()); });
1011
1010
  i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_2_Template, 2, 4, "span", 75);
1012
1011
  i0.ɵɵtemplate(3, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_3_Template, 2, 5, "span", 75);
1013
1012
  i0.ɵɵtemplate(4, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_4_Template, 2, 1, "span", 75);
@@ -1023,15 +1022,15 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template(rf
1023
1022
  i0.ɵɵtemplate(14, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_span_14_Template, 2, 1, "span", 78);
1024
1023
  i0.ɵɵelementEnd()();
1025
1024
  } if (rf & 2) {
1026
- const column_r221 = ctx.$implicit;
1027
- const row_r194 = i0.ɵɵnextContext().$implicit;
1028
- const ctx_r200 = i0.ɵɵnextContext(3);
1029
- i0.ɵɵstyleProp("width", column_r221.width)("max-width", column_r221.width)("min-width", column_r221.width);
1030
- i0.ɵɵclassProp("po-table-column", column_r221.type !== "icon")("po-table-column-right", column_r221.type === "currency" || column_r221.type === "number")("po-table-column-center", column_r221.type === "subtitle")("po-table-column-icons", column_r221.type === "icon");
1031
- i0.ɵɵproperty("ngClass", ctx_r200.getClassColor(row_r194, column_r221));
1025
+ const column_r217 = ctx.$implicit;
1026
+ const row_r190 = i0.ɵɵnextContext().$implicit;
1027
+ const ctx_r196 = i0.ɵɵnextContext(3);
1028
+ i0.ɵɵstyleProp("width", column_r217.width)("max-width", column_r217.width)("min-width", column_r217.width);
1029
+ i0.ɵɵclassProp("po-table-column", column_r217.type !== "icon")("po-table-column-right", column_r217.type === "currency" || column_r217.type === "number")("po-table-column-center", column_r217.type === "subtitle")("po-table-column-icons", column_r217.type === "icon");
1030
+ i0.ɵɵproperty("ngClass", ctx_r196.getClassColor(row_r190, column_r217));
1032
1031
  i0.ɵɵadvance(1);
1033
- i0.ɵɵclassProp("po-table-body-ellipsis", ctx_r200.hideTextOverflow);
1034
- i0.ɵɵproperty("ngSwitch", column_r221.type)("p-tooltip", ctx_r200.tooltipText);
1032
+ i0.ɵɵclassProp("po-table-body-ellipsis", ctx_r196.hideTextOverflow);
1033
+ i0.ɵɵproperty("ngSwitch", column_r217.type)("p-tooltip", ctx_r196.tooltipText);
1035
1034
  i0.ɵɵadvance(1);
1036
1035
  i0.ɵɵproperty("ngSwitchCase", "columnTemplate");
1037
1036
  i0.ɵɵadvance(1);
@@ -1059,30 +1058,30 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_6_Template(rf
1059
1058
  } }
1060
1059
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_ng_template_1_Template(rf, ctx) { }
1061
1060
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_Template(rf, ctx) { if (rf & 1) {
1062
- const _r278 = i0.ɵɵgetCurrentView();
1061
+ const _r274 = i0.ɵɵgetCurrentView();
1063
1062
  i0.ɵɵelementStart(0, "td", 71);
1064
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r278); const row_r194 = i0.ɵɵnextContext().$implicit; const ctx_r276 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r276.toggleDetail(row_r194)); });
1063
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r274); const row_r190 = i0.ɵɵnextContext().$implicit; const ctx_r272 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r272.toggleDetail(row_r190)); });
1065
1064
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_td_7_ng_template_1_Template, 0, 0, "ng-template", 72);
1066
1065
  i0.ɵɵelementEnd();
1067
1066
  } if (rf & 2) {
1068
- const ctx_r279 = i0.ɵɵnextContext();
1069
- const row_r194 = ctx_r279.$implicit;
1070
- const rowIndex_r195 = ctx_r279.index;
1067
+ const ctx_r275 = i0.ɵɵnextContext();
1068
+ const row_r190 = ctx_r275.$implicit;
1069
+ const rowIndex_r191 = ctx_r275.index;
1071
1070
  i0.ɵɵnextContext(3);
1072
1071
  const _r11 = i0.ɵɵreference(13);
1073
1072
  i0.ɵɵadvance(1);
1074
- i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r194, rowIndex_r195));
1073
+ i0.ɵɵproperty("ngTemplateOutlet", _r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r190, rowIndex_r191));
1075
1074
  } }
1076
1075
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_8_ng_template_0_Template(rf, ctx) { }
1077
1076
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_8_Template(rf, ctx) { if (rf & 1) {
1078
1077
  i0.ɵɵtemplate(0, PoTableComponent_ng_template_8_ng_container_12_tbody_1_8_ng_template_0_Template, 0, 0, "ng-template", 72);
1079
1078
  } if (rf & 2) {
1080
- const ctx_r281 = i0.ɵɵnextContext();
1081
- const row_r194 = ctx_r281.$implicit;
1082
- const rowIndex_r195 = ctx_r281.index;
1079
+ const ctx_r277 = i0.ɵɵnextContext();
1080
+ const row_r190 = ctx_r277.$implicit;
1081
+ const rowIndex_r191 = ctx_r277.index;
1083
1082
  i0.ɵɵnextContext(3);
1084
1083
  const _r23 = i0.ɵɵreference(25);
1085
- i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r194, rowIndex_r195));
1084
+ i0.ɵɵproperty("ngTemplateOutlet", _r23)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c17, row_r190, rowIndex_r191));
1086
1085
  } }
1087
1086
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_ng_container_9_Template(rf, ctx) { if (rf & 1) {
1088
1087
  i0.ɵɵelementContainerStart(0);
@@ -1098,27 +1097,27 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_11_Template(r
1098
1097
  i0.ɵɵtemplate(2, PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_11_ng_template_2_Template, 0, 0, "ng-template", 72);
1099
1098
  i0.ɵɵelementEnd()();
1100
1099
  } if (rf & 2) {
1101
- const ctx_r283 = i0.ɵɵnextContext();
1102
- const row_r194 = ctx_r283.$implicit;
1103
- const rowIndex_r195 = ctx_r283.index;
1104
- const ctx_r205 = i0.ɵɵnextContext(3);
1100
+ const ctx_r279 = i0.ɵɵnextContext();
1101
+ const row_r190 = ctx_r279.$implicit;
1102
+ const rowIndex_r191 = ctx_r279.index;
1103
+ const ctx_r201 = i0.ɵɵnextContext(3);
1105
1104
  i0.ɵɵadvance(1);
1106
- i0.ɵɵproperty("colSpan", ctx_r205.columnCountForMasterDetail);
1105
+ i0.ɵɵproperty("colSpan", ctx_r201.columnCountForMasterDetail);
1107
1106
  i0.ɵɵadvance(1);
1108
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r205.tableRowTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c19, row_r194, rowIndex_r195));
1107
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r201.tableRowTemplate.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c19, row_r190, rowIndex_r191));
1109
1108
  } }
1110
1109
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_12_Template(rf, ctx) { if (rf & 1) {
1111
- const _r285 = i0.ɵɵgetCurrentView();
1110
+ const _r281 = i0.ɵɵgetCurrentView();
1112
1111
  i0.ɵɵelementStart(0, "tr")(1, "td", 86)(2, "po-table-detail", 87);
1113
- i0.ɵɵlistener("p-select-row", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_12_Template_po_table_detail_p_select_row_2_listener($event) { i0.ɵɵrestoreView(_r285); const ctx_r284 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r284.selectDetailRow($event)); });
1112
+ i0.ɵɵlistener("p-select-row", function PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_12_Template_po_table_detail_p_select_row_2_listener($event) { i0.ɵɵrestoreView(_r281); const ctx_r280 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r280.selectDetailRow($event)); });
1114
1113
  i0.ɵɵelementEnd()()();
1115
1114
  } if (rf & 2) {
1116
- const row_r194 = i0.ɵɵnextContext().$implicit;
1117
- const ctx_r206 = i0.ɵɵnextContext(3);
1115
+ const row_r190 = i0.ɵɵnextContext().$implicit;
1116
+ const ctx_r202 = i0.ɵɵnextContext(3);
1118
1117
  i0.ɵɵadvance(1);
1119
- i0.ɵɵproperty("colSpan", ctx_r206.columnCountForMasterDetail);
1118
+ i0.ɵɵproperty("colSpan", ctx_r202.columnCountForMasterDetail);
1120
1119
  i0.ɵɵadvance(1);
1121
- i0.ɵɵproperty("p-selectable", ctx_r206.selectable && !ctx_r206.detailHideSelect)("p-detail", ctx_r206.columnMasterDetail.detail)("p-items", row_r194[ctx_r206.nameColumnDetail]);
1120
+ i0.ɵɵproperty("p-selectable", ctx_r202.selectable && !ctx_r202.detailHideSelect)("p-detail", ctx_r202.columnMasterDetail.detail)("p-items", row_r190[ctx_r202.nameColumnDetail]);
1122
1121
  } }
1123
1122
  function PoTableComponent_ng_template_8_ng_container_12_tbody_1_Template(rf, ctx) { if (rf & 1) {
1124
1123
  i0.ɵɵelementStart(0, "tbody", 63)(1, "tr", 67);
@@ -1136,42 +1135,42 @@ function PoTableComponent_ng_template_8_ng_container_12_tbody_1_Template(rf, ctx
1136
1135
  i0.ɵɵtemplate(12, PoTableComponent_ng_template_8_ng_container_12_tbody_1_tr_12_Template, 3, 4, "tr", 23);
1137
1136
  i0.ɵɵelementEnd();
1138
1137
  } if (rf & 2) {
1139
- const row_r194 = ctx.$implicit;
1140
- const rowIndex_r195 = ctx.index;
1141
- const ctx_r193 = i0.ɵɵnextContext(3);
1138
+ const row_r190 = ctx.$implicit;
1139
+ const rowIndex_r191 = ctx.index;
1140
+ const ctx_r189 = i0.ɵɵnextContext(3);
1142
1141
  i0.ɵɵadvance(1);
1143
- i0.ɵɵclassProp("po-table-row-active", row_r194.$selected || row_r194.$selected === null && ctx_r193.selectable);
1142
+ i0.ɵɵclassProp("po-table-row-active", row_r190.$selected || row_r190.$selected === null && ctx_r189.selectable);
1144
1143
  i0.ɵɵadvance(1);
1145
- i0.ɵɵproperty("ngIf", ctx_r193.selectable);
1144
+ i0.ɵɵproperty("ngIf", ctx_r189.selectable);
1146
1145
  i0.ɵɵadvance(1);
1147
- i0.ɵɵproperty("ngIf", ctx_r193.columnMasterDetail && !ctx_r193.hideDetail && !ctx_r193.hasRowTemplate);
1146
+ i0.ɵɵproperty("ngIf", ctx_r189.columnMasterDetail && !ctx_r189.hideDetail && !ctx_r189.hasRowTemplate);
1148
1147
  i0.ɵɵadvance(1);
1149
- i0.ɵɵproperty("ngIf", !ctx_r193.actionRight && (ctx_r193.visibleActions.length > 1 || ctx_r193.isSingleAction));
1148
+ i0.ɵɵproperty("ngIf", !ctx_r189.actionRight && (ctx_r189.visibleActions.length > 1 || ctx_r189.isSingleAction));
1150
1149
  i0.ɵɵadvance(1);
1151
- i0.ɵɵproperty("ngIf", ctx_r193.hasRowTemplate && !ctx_r193.hasRowTemplateWithArrowDirectionRight);
1150
+ i0.ɵɵproperty("ngIf", ctx_r189.hasRowTemplate && !ctx_r189.hasRowTemplateWithArrowDirectionRight);
1152
1151
  i0.ɵɵadvance(1);
1153
- i0.ɵɵproperty("ngForOf", ctx_r193.mainColumns)("ngForTrackBy", ctx_r193.trackBy);
1152
+ i0.ɵɵproperty("ngForOf", ctx_r189.mainColumns)("ngForTrackBy", ctx_r189.trackBy);
1154
1153
  i0.ɵɵadvance(1);
1155
- i0.ɵɵproperty("ngIf", ctx_r193.hasRowTemplateWithArrowDirectionRight);
1154
+ i0.ɵɵproperty("ngIf", ctx_r189.hasRowTemplateWithArrowDirectionRight);
1156
1155
  i0.ɵɵadvance(1);
1157
- i0.ɵɵproperty("ngIf", ctx_r193.actionRight);
1156
+ i0.ɵɵproperty("ngIf", ctx_r189.actionRight);
1158
1157
  i0.ɵɵadvance(1);
1159
- i0.ɵɵproperty("ngIf", !ctx_r193.actionRight && (ctx_r193.visibleActions.length > 1 || ctx_r193.isSingleAction) && !ctx_r193.hideColumnsManager);
1158
+ i0.ɵɵproperty("ngIf", !ctx_r189.actionRight && (ctx_r189.visibleActions.length > 1 || ctx_r189.isSingleAction) && !ctx_r189.hideColumnsManager);
1160
1159
  i0.ɵɵadvance(1);
1161
- i0.ɵɵproperty("ngIf", !ctx_r193.hasVisibleActions && !ctx_r193.hideColumnsManager && !ctx_r193.hasRowTemplateWithArrowDirectionRight);
1160
+ i0.ɵɵproperty("ngIf", !ctx_r189.hasVisibleActions && !ctx_r189.hideColumnsManager && !ctx_r189.hasRowTemplateWithArrowDirectionRight);
1162
1161
  i0.ɵɵadvance(1);
1163
- i0.ɵɵproperty("ngIf", ctx_r193.hasMainColumns && ctx_r193.hasRowTemplate && row_r194.$showDetail && ctx_r193.isShowRowTemplate(row_r194, rowIndex_r195));
1162
+ i0.ɵɵproperty("ngIf", ctx_r189.hasMainColumns && ctx_r189.hasRowTemplate && row_r190.$showDetail && ctx_r189.isShowRowTemplate(row_r190, rowIndex_r191));
1164
1163
  i0.ɵɵadvance(1);
1165
- i0.ɵɵproperty("ngIf", ctx_r193.hasMainColumns && ctx_r193.isShowMasterDetail(row_r194));
1164
+ i0.ɵɵproperty("ngIf", ctx_r189.hasMainColumns && ctx_r189.isShowMasterDetail(row_r190));
1166
1165
  } }
1167
1166
  function PoTableComponent_ng_template_8_ng_container_12_Template(rf, ctx) { if (rf & 1) {
1168
1167
  i0.ɵɵelementContainerStart(0);
1169
1168
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_8_ng_container_12_tbody_1_Template, 13, 14, "tbody", 92);
1170
1169
  i0.ɵɵelementContainerEnd();
1171
1170
  } if (rf & 2) {
1172
- const ctx_r175 = i0.ɵɵnextContext(2);
1171
+ const ctx_r173 = i0.ɵɵnextContext(2);
1173
1172
  i0.ɵɵadvance(1);
1174
- i0.ɵɵproperty("ngForOf", ctx_r175.items)("ngForTrackBy", ctx_r175.trackBy);
1173
+ i0.ɵɵproperty("ngForOf", ctx_r173.items)("ngForTrackBy", ctx_r173.trackBy);
1175
1174
  } }
1176
1175
  function PoTableComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
1177
1176
  i0.ɵɵelementStart(0, "table", 39)(1, "thead")(2, "tr");
@@ -1216,59 +1215,59 @@ function PoTableComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
1216
1215
  function PoTableComponent_ng_template_12_span_0_Template(rf, ctx) { if (rf & 1) {
1217
1216
  i0.ɵɵelement(0, "span", 95);
1218
1217
  } if (rf & 2) {
1219
- const row_r287 = i0.ɵɵnextContext().row;
1220
- i0.ɵɵclassProp("po-icon-arrow-up", row_r287.$showDetail)("po-icon-arrow-down", !row_r287.$showDetail);
1218
+ const row_r283 = i0.ɵɵnextContext().row;
1219
+ i0.ɵɵclassProp("po-icon-arrow-up", row_r283.$showDetail)("po-icon-arrow-down", !row_r283.$showDetail);
1221
1220
  } }
1222
1221
  function PoTableComponent_ng_template_12_Template(rf, ctx) { if (rf & 1) {
1223
1222
  i0.ɵɵtemplate(0, PoTableComponent_ng_template_12_span_0_Template, 1, 4, "span", 94);
1224
1223
  } if (rf & 2) {
1225
- const row_r287 = ctx.row;
1226
- const rowIndex_r288 = ctx.rowIndex;
1224
+ const row_r283 = ctx.row;
1225
+ const rowIndex_r284 = ctx.rowIndex;
1227
1226
  const ctx_r12 = i0.ɵɵnextContext();
1228
- i0.ɵɵproperty("ngIf", ctx_r12.containsMasterDetail(row_r287) && !ctx_r12.hasRowTemplate || ctx_r12.isShowRowTemplate(row_r287, rowIndex_r288) && ctx_r12.hasRowTemplate);
1227
+ i0.ɵɵproperty("ngIf", ctx_r12.containsMasterDetail(row_r283) && !ctx_r12.hasRowTemplate || ctx_r12.isShowRowTemplate(row_r283, rowIndex_r284) && ctx_r12.hasRowTemplate);
1229
1228
  } }
1230
1229
  function PoTableComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) {
1231
- const _r293 = i0.ɵɵgetCurrentView();
1230
+ const _r289 = i0.ɵɵgetCurrentView();
1232
1231
  i0.ɵɵelement(0, "input", 96);
1233
1232
  i0.ɵɵelementStart(1, "label", 97);
1234
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_14_Template_label_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r293); const row_r291 = restoredCtx.$implicit; const ctx_r292 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r292.selectable ? ctx_r292.selectRow(row_r291) : "javascript:;"); });
1233
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_14_Template_label_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r289); const row_r287 = restoredCtx.$implicit; const ctx_r288 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r288.selectable ? ctx_r288.selectRow(row_r287) : "javascript:;"); });
1235
1234
  i0.ɵɵelementEnd();
1236
1235
  } if (rf & 2) {
1237
- const row_r291 = ctx.$implicit;
1238
- i0.ɵɵclassProp("po-table-radio-checked", row_r291.$selected);
1236
+ const row_r287 = ctx.$implicit;
1237
+ i0.ɵɵclassProp("po-table-radio-checked", row_r287.$selected);
1239
1238
  } }
1240
1239
  function PoTableComponent_ng_template_16_Template(rf, ctx) { if (rf & 1) {
1241
- const _r296 = i0.ɵɵgetCurrentView();
1240
+ const _r292 = i0.ɵɵgetCurrentView();
1242
1241
  i0.ɵɵelementStart(0, "po-checkbox", 98);
1243
- i0.ɵɵlistener("p-change", function PoTableComponent_ng_template_16_Template_po_checkbox_p_change_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r296); const row_r294 = restoredCtx.$implicit; const ctx_r295 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r295.selectable ? ctx_r295.selectRow(row_r294) : "javascript:;"); })("ngModelChange", function PoTableComponent_ng_template_16_Template_po_checkbox_ngModelChange_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r296); const row_r294 = restoredCtx.$implicit; return i0.ɵɵresetView(row_r294.$selected = $event); })("click", function PoTableComponent_ng_template_16_Template_po_checkbox_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r296); const row_r294 = restoredCtx.$implicit; const ctx_r298 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r298.selectable ? ctx_r298.selectRow(row_r294) : "javascript:;"); });
1242
+ i0.ɵɵlistener("p-change", function PoTableComponent_ng_template_16_Template_po_checkbox_p_change_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r292); const row_r290 = restoredCtx.$implicit; const ctx_r291 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r291.selectable ? ctx_r291.selectRow(row_r290) : "javascript:;"); });
1244
1243
  i0.ɵɵelementEnd();
1245
1244
  } if (rf & 2) {
1246
- const row_r294 = ctx.$implicit;
1247
- i0.ɵɵproperty("ngModel", row_r294.$selected);
1245
+ const row_r290 = ctx.$implicit;
1246
+ i0.ɵɵproperty("p-checkboxValue", row_r290.$selected);
1248
1247
  } }
1249
1248
  function PoTableComponent_ng_template_18_span_4_Template(rf, ctx) { if (rf & 1) {
1250
1249
  i0.ɵɵelement(0, "span");
1251
1250
  } if (rf & 2) {
1252
- const column_r299 = i0.ɵɵnextContext().$implicit;
1253
- const ctx_r301 = i0.ɵɵnextContext();
1254
- i0.ɵɵclassProp("po-table-header-icon-unselected", ctx_r301.JSON.stringify(ctx_r301.sortedColumn == null ? null : ctx_r301.sortedColumn.property) !== ctx_r301.JSON.stringify(column_r299))("po-table-header-icon-descending", ctx_r301.JSON.stringify(ctx_r301.sortedColumn == null ? null : ctx_r301.sortedColumn.property) === ctx_r301.JSON.stringify(column_r299) && ctx_r301.sortedColumn.ascending)("po-table-header-icon-ascending", ctx_r301.JSON.stringify(ctx_r301.sortedColumn == null ? null : ctx_r301.sortedColumn.property) === ctx_r301.JSON.stringify(column_r299) && !ctx_r301.sortedColumn.ascending);
1251
+ const column_r293 = i0.ɵɵnextContext().$implicit;
1252
+ const ctx_r295 = i0.ɵɵnextContext();
1253
+ i0.ɵɵclassProp("po-table-header-icon-unselected", ctx_r295.JSON.stringify(ctx_r295.sortedColumn == null ? null : ctx_r295.sortedColumn.property) !== ctx_r295.JSON.stringify(column_r293))("po-table-header-icon-descending", ctx_r295.JSON.stringify(ctx_r295.sortedColumn == null ? null : ctx_r295.sortedColumn.property) === ctx_r295.JSON.stringify(column_r293) && ctx_r295.sortedColumn.ascending)("po-table-header-icon-ascending", ctx_r295.JSON.stringify(ctx_r295.sortedColumn == null ? null : ctx_r295.sortedColumn.property) === ctx_r295.JSON.stringify(column_r293) && !ctx_r295.sortedColumn.ascending);
1255
1254
  } }
1256
1255
  function PoTableComponent_ng_template_18_Template(rf, ctx) { if (rf & 1) {
1257
- const _r304 = i0.ɵɵgetCurrentView();
1256
+ const _r298 = i0.ɵɵgetCurrentView();
1258
1257
  i0.ɵɵelementStart(0, "span", 99, 100);
1259
- i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_18_Template_span_mouseenter_0_listener($event) { i0.ɵɵrestoreView(_r304); const ctx_r303 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r303.tooltipMouseEnter($event)); })("mouseleave", function PoTableComponent_ng_template_18_Template_span_mouseleave_0_listener() { i0.ɵɵrestoreView(_r304); const ctx_r305 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r305.tooltipMouseLeave()); });
1258
+ i0.ɵɵlistener("mouseenter", function PoTableComponent_ng_template_18_Template_span_mouseenter_0_listener($event) { i0.ɵɵrestoreView(_r298); const ctx_r297 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r297.tooltipMouseEnter($event)); })("mouseleave", function PoTableComponent_ng_template_18_Template_span_mouseleave_0_listener() { i0.ɵɵrestoreView(_r298); const ctx_r299 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r299.tooltipMouseLeave()); });
1260
1259
  i0.ɵɵtext(2);
1261
1260
  i0.ɵɵpipe(3, "titlecase");
1262
1261
  i0.ɵɵelementEnd();
1263
1262
  i0.ɵɵtemplate(4, PoTableComponent_ng_template_18_span_4_Template, 1, 6, "span", 101);
1264
1263
  } if (rf & 2) {
1265
- const column_r299 = ctx.$implicit;
1264
+ const column_r293 = ctx.$implicit;
1266
1265
  const ctx_r18 = i0.ɵɵnextContext();
1267
1266
  i0.ɵɵproperty("p-tooltip", ctx_r18.tooltipText);
1268
1267
  i0.ɵɵadvance(2);
1269
- i0.ɵɵtextInterpolate1(" ", column_r299.label || i0.ɵɵpipeBind1(3, 3, column_r299.property), " ");
1268
+ i0.ɵɵtextInterpolate1(" ", column_r293.label || i0.ɵɵpipeBind1(3, 3, column_r293.property), " ");
1270
1269
  i0.ɵɵadvance(2);
1271
- i0.ɵɵproperty("ngIf", ctx_r18.sort && column_r299.sortable !== false);
1270
+ i0.ɵɵproperty("ngIf", ctx_r18.sort && column_r293.sortable !== false);
1272
1271
  } }
1273
1272
  function PoTableComponent_ng_template_20_Template(rf, ctx) { if (rf & 1) {
1274
1273
  i0.ɵɵelementStart(0, "div", 102);
@@ -1289,39 +1288,39 @@ function PoTableComponent_ng_template_22_Template(rf, ctx) { if (rf & 1) {
1289
1288
  function PoTableComponent_ng_template_24_td_0_div_1_po_icon_1_Template(rf, ctx) { if (rf & 1) {
1290
1289
  i0.ɵɵelement(0, "po-icon", 109);
1291
1290
  } if (rf & 2) {
1292
- const ctx_r311 = i0.ɵɵnextContext(4);
1293
- i0.ɵɵproperty("p-icon", ctx_r311.firstAction.icon);
1291
+ const ctx_r305 = i0.ɵɵnextContext(4);
1292
+ i0.ɵɵproperty("p-icon", ctx_r305.firstAction.icon);
1294
1293
  } }
1295
1294
  function PoTableComponent_ng_template_24_td_0_div_1_Template(rf, ctx) { if (rf & 1) {
1296
- const _r314 = i0.ɵɵgetCurrentView();
1295
+ const _r308 = i0.ɵɵgetCurrentView();
1297
1296
  i0.ɵɵelementStart(0, "div", 107);
1298
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_24_td_0_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r314); const row_r306 = i0.ɵɵnextContext(2).row; const ctx_r312 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r312.executeTableAction(row_r306, ctx_r312.firstAction)); });
1297
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_24_td_0_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r308); const row_r300 = i0.ɵɵnextContext(2).row; const ctx_r306 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r306.executeTableAction(row_r300, ctx_r306.firstAction)); });
1299
1298
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_24_td_0_div_1_po_icon_1_Template, 1, 1, "po-icon", 108);
1300
1299
  i0.ɵɵtext(2);
1301
1300
  i0.ɵɵelementEnd();
1302
1301
  } if (rf & 2) {
1303
- const row_r306 = i0.ɵɵnextContext(2).row;
1304
- const ctx_r310 = i0.ɵɵnextContext();
1305
- i0.ɵɵclassProp("po-table-action-disabled", ctx_r310.firstAction.disabled ? ctx_r310.validateTableAction(row_r306, ctx_r310.firstAction) : false);
1302
+ const row_r300 = i0.ɵɵnextContext(2).row;
1303
+ const ctx_r304 = i0.ɵɵnextContext();
1304
+ i0.ɵɵclassProp("po-table-action-disabled", ctx_r304.firstAction.disabled ? ctx_r304.validateTableAction(row_r300, ctx_r304.firstAction) : false);
1306
1305
  i0.ɵɵadvance(1);
1307
- i0.ɵɵproperty("ngIf", ctx_r310.firstAction.icon);
1306
+ i0.ɵɵproperty("ngIf", ctx_r304.firstAction.icon);
1308
1307
  i0.ɵɵadvance(1);
1309
- i0.ɵɵtextInterpolate1(" ", ctx_r310.firstAction.label, " ");
1308
+ i0.ɵɵtextInterpolate1(" ", ctx_r304.firstAction.label, " ");
1310
1309
  } }
1311
1310
  function PoTableComponent_ng_template_24_td_0_Template(rf, ctx) { if (rf & 1) {
1312
1311
  i0.ɵɵelementStart(0, "td", 105);
1313
1312
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_24_td_0_div_1_Template, 3, 4, "div", 106);
1314
1313
  i0.ɵɵelementEnd();
1315
1314
  } if (rf & 2) {
1316
- const ctx_r308 = i0.ɵɵnextContext(2);
1317
- i0.ɵɵstyleProp("width", ctx_r308.height && ctx_r308.actionRight ? ctx_r308.getWidthColumnManager() : "", "px")("max-width", ctx_r308.height && !ctx_r308.actionRight ? ctx_r308.getColumnWidthActionsLeft() : "", "px")("width", ctx_r308.height && !ctx_r308.actionRight ? ctx_r308.getColumnWidthActionsLeft() : "", "px");
1315
+ const ctx_r302 = i0.ɵɵnextContext(2);
1316
+ i0.ɵɵstyleProp("width", ctx_r302.height && ctx_r302.actionRight ? ctx_r302.getWidthColumnManager() : "", "px")("max-width", ctx_r302.height && !ctx_r302.actionRight ? ctx_r302.getColumnWidthActionsLeft() : "", "px")("width", ctx_r302.height && !ctx_r302.actionRight ? ctx_r302.getColumnWidthActionsLeft() : "", "px");
1318
1317
  i0.ɵɵadvance(1);
1319
- i0.ɵɵproperty("ngIf", ctx_r308.firstAction.visible !== false);
1318
+ i0.ɵɵproperty("ngIf", ctx_r302.firstAction.visible !== false);
1320
1319
  } }
1321
1320
  function PoTableComponent_ng_template_24_td_1_Template(rf, ctx) { if (rf & 1) {
1322
- const _r319 = i0.ɵɵgetCurrentView();
1321
+ const _r313 = i0.ɵɵgetCurrentView();
1323
1322
  i0.ɵɵelementStart(0, "td", 110)(1, "span", 111, 112);
1324
- i0.ɵɵlistener("click", function PoTableComponent_ng_template_24_td_1_Template_span_click_1_listener() { i0.ɵɵrestoreView(_r319); const _r316 = i0.ɵɵreference(2); const row_r306 = i0.ɵɵnextContext().row; const ctx_r317 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r317.togglePopup(row_r306, _r316)); });
1323
+ i0.ɵɵlistener("click", function PoTableComponent_ng_template_24_td_1_Template_span_click_1_listener() { i0.ɵɵrestoreView(_r313); const _r310 = i0.ɵɵreference(2); const row_r300 = i0.ɵɵnextContext().row; const ctx_r311 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r311.togglePopup(row_r300, _r310)); });
1325
1324
  i0.ɵɵelementEnd()();
1326
1325
  } }
1327
1326
  function PoTableComponent_ng_template_24_Template(rf, ctx) { if (rf & 1) {
@@ -1334,9 +1333,9 @@ function PoTableComponent_ng_template_24_Template(rf, ctx) { if (rf & 1) {
1334
1333
  i0.ɵɵproperty("ngIf", ctx_r24.visibleActions.length > 1);
1335
1334
  } }
1336
1335
  function PoTableComponent_po_table_column_manager_26_Template(rf, ctx) { if (rf & 1) {
1337
- const _r321 = i0.ɵɵgetCurrentView();
1336
+ const _r315 = i0.ɵɵgetCurrentView();
1338
1337
  i0.ɵɵelementStart(0, "po-table-column-manager", 113);
1339
- i0.ɵɵlistener("p-visible-columns-change", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_visible_columns_change_0_listener($event) { i0.ɵɵrestoreView(_r321); const ctx_r320 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r320.onVisibleColumnsChange($event)); })("p-change-visible-columns", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_change_visible_columns_0_listener($event) { i0.ɵɵrestoreView(_r321); const ctx_r322 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r322.onChangeVisibleColumns($event)); })("p-initial-columns", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_initial_columns_0_listener($event) { i0.ɵɵrestoreView(_r321); const ctx_r323 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r323.onColumnRestoreManager($event)); });
1338
+ i0.ɵɵlistener("p-visible-columns-change", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_visible_columns_change_0_listener($event) { i0.ɵɵrestoreView(_r315); const ctx_r314 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r314.onVisibleColumnsChange($event)); })("p-change-visible-columns", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_change_visible_columns_0_listener($event) { i0.ɵɵrestoreView(_r315); const ctx_r316 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r316.onChangeVisibleColumns($event)); })("p-initial-columns", function PoTableComponent_po_table_column_manager_26_Template_po_table_column_manager_p_initial_columns_0_listener($event) { i0.ɵɵrestoreView(_r315); const ctx_r317 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r317.onColumnRestoreManager($event)); });
1340
1339
  i0.ɵɵelementEnd();
1341
1340
  } if (rf & 2) {
1342
1341
  const ctx_r25 = i0.ɵɵnextContext();
@@ -1925,7 +1924,7 @@ PoTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableCom
1925
1924
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnManagerTargetFixed = _t.first);
1926
1925
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.actionsIconElement = _t);
1927
1926
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.actionsElement = _t);
1928
- } }, features: [i0.ɵɵProvidersFeature([PoDateService]), i0.ɵɵInheritDefinitionFeature], decls: 27, vars: 6, consts: [["p-no-padding", "", 3, "p-no-shadow", 4, "ngIf", "ngIfElse"], ["tableContainerTemplate", ""], ["class", "po-row po-table-footer-show-more", 3, "po-invisible", 4, "ngIf"], ["tableHeaderTemplate", ""], ["tableBodyTemplate", ""], ["tableTemplate", ""], [3, "p-actions", "p-target"], ["popup", ""], ["poTableColumnDetail", ""], ["inputRadio", ""], ["inputCheckbox", ""], ["contentHeaderTemplate", ""], ["noColumnsWithHeight", ""], ["noColumnsWithoutHeight", ""], ["ActionsColumnTemplate", ""], [3, "p-columns", "p-max-columns", "p-target", "p-last-visible-columns-selected", "p-columns-default", "p-visible-columns-change", "p-change-visible-columns", "p-initial-columns", 4, "ngIf"], ["p-no-padding", "", 3, "p-no-shadow"], [4, "ngTemplateOutlet"], ["class", "po-table-overlay", 4, "ngIf"], [1, "po-table-main-container"], [1, "po-table-wrapper"], ["tableWrapper", ""], ["class", "po-table-container", 3, "height", 4, "ngIf"], [4, "ngIf"], ["class", "po-table-footer", 4, "ngIf"], [1, "po-table-overlay"], [1, "po-table-overlay-content", 3, "p-text"], [1, "po-table-container"], [1, "po-table-header-fixed", "po-table-header"], ["poTableThead", ""], [1, "po-table-container-fixed-inner"], ["poTableTbody", ""], [4, "ngIf", "ngIfThen", "ngIfElse"], [1, "po-table-footer"], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "p-literals", "p-subtitles"], [1, "po-row", "po-table-footer-show-more"], ["tableFooter", ""], [1, "po-offset-xl-4", "po-offset-lg-4", "po-offset-md-3", "po-lg-4", "po-md-6", 3, "p-disabled", "p-label", "p-loading", "p-click"], [1, "po-table"], ["class", "po-table-column-selectable", 4, "ngIf"], ["class", "po-table-header-column po-table-header-master-detail", 4, "ngIf"], [3, "po-table-header-master-detail", "po-table-header-single-action", 4, "ngIf"], ["class", "po-table-header-column po-text-center", 4, "ngIf"], ["class", "po-table-header-ellipsis", 3, "width", "max-width", "min-width", "po-clickable", "po-table-header-subtitle", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "po-table-header-single-action", "po-table-header-actions", 4, "ngIf"], [3, "po-table-header-column-manager", "po-table-header-column-manager-border", "po-table-header-single-action", 4, "ngIf"], [1, "po-table-column-selectable"], ["name", "selectAll", 3, "ngModel", "click", "p-change", "ngModelChange", 4, "ngIf"], ["name", "selectAll", 3, "ngModel", "click", "p-change", "ngModelChange"], [1, "po-table-header-column", "po-table-header-master-detail"], ["columnActionLeftFixed", ""], [1, "po-table-header-column", "po-text-center"], ["noColumnsHeaderFixed", ""], [1, "po-table-header-ellipsis", 3, "click"], [1, "po-table-header-flex"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["columnManagerFixed", ""], ["type", "button", "p-tooltip-position", "left", 1, "po-table-header-column-manager-button", "po-icon", "po-icon-settings", "po-clickable", 3, "p-tooltip", "click"], ["columnManagerTargetFixed", ""], [3, "itemSize", "minBufferPx", "maxBufferPx", "scroll"], ["poTableTbodyVirtual", ""], ["class", "po-table-group-row", 4, "ngIf"], [1, "po-table-group-row"], [1, "po-table-row", "po-table-row-no-data"], [1, "po-table-no-data", "po-text-center", 3, "colSpan"], ["class", "po-table-group-row", 4, "cdkVirtualFor", "cdkVirtualForOf", "cdkVirtualForTrackBy"], [1, "po-table-row"], ["class", "po-table-column-detail-toggle", 3, "click", 4, "ngIf"], [3, "width", "max-width", "min-width", "po-table-column", "po-table-column-right", "po-table-column-center", "po-table-column-icons", "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "po-table-column", 4, "ngIf"], [1, "po-table-column-detail-toggle", 3, "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngClass", "click"], [1, "po-table-column-cell", "notranslate", 3, "ngSwitch", "p-tooltip", "mouseenter", "mouseleave"], [4, "ngSwitchCase"], [3, "p-action", "p-disabled", "p-link", "p-row", "p-value", "click", 4, "ngSwitchCase"], [3, "p-column", "p-icons", "p-row", 4, "ngSwitchCase"], [4, "ngSwitchDefault"], [3, "p-action", "p-disabled", "p-link", "p-row", "p-value", "click"], [3, "p-column", "p-icons", "p-row"], [3, "p-subtitle"], [3, "p-value"], [1, "po-table-column", "po-table-column-empty"], [1, "po-table-column"], [1, "po-table-row-template-container", 3, "colSpan"], [1, "po-table-column-detail", 3, "colSpan"], [3, "p-selectable", "p-detail", "p-items", "p-select-row"], ["columnActionLeft", ""], ["noColumnsHeader", ""], ["columnManager", ""], ["columnManagerTarget", ""], ["class", "po-table-group-row", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "po-table-row-no-data", "po-table-column-empty"], ["class", "po-icon po-clickable", 3, "po-icon-arrow-up", "po-icon-arrow-down", 4, "ngIf"], [1, "po-icon", "po-clickable"], ["type", "radio", 1, "po-table-radio"], [1, "po-table-radio-label", "po-clickable", 3, "click"], ["name", "checkbox", 3, "ngModel", "p-change", "ngModelChange", "click"], [1, "po-table-header-ellipsis", 3, "p-tooltip", "mouseenter", "mouseleave"], ["columnHeader", ""], [3, "po-table-header-icon-unselected", "po-table-header-icon-descending", "po-table-header-icon-ascending", 4, "ngIf"], [1, "po-table-header-fixed-inner"], ["class", "po-table-column po-table-column-single-action", 3, "width", "max-width", 4, "ngIf"], ["class", "po-table-column-actions", 4, "ngIf"], [1, "po-table-column", "po-table-column-single-action"], ["class", "po-table-single-action po-clickable", 3, "po-table-action-disabled", "click", 4, "ngIf"], [1, "po-table-single-action", "po-clickable", 3, "click"], ["class", "po-table-single-action-content", 3, "p-icon", 4, "ngIf"], [1, "po-table-single-action-content", 3, "p-icon"], [1, "po-table-column-actions"], [1, "po-icon", "po-icon-more", "po-clickable", 3, "click"], ["popupTarget", ""], [3, "p-columns", "p-max-columns", "p-target", "p-last-visible-columns-selected", "p-columns-default", "p-visible-columns-change", "p-change-visible-columns", "p-initial-columns"]], template: function PoTableComponent_Template(rf, ctx) { if (rf & 1) {
1927
+ } }, features: [i0.ɵɵProvidersFeature([PoDateService]), i0.ɵɵInheritDefinitionFeature], decls: 27, vars: 6, consts: [["p-no-padding", "", 3, "p-no-shadow", 4, "ngIf", "ngIfElse"], ["tableContainerTemplate", ""], ["class", "po-row po-table-footer-show-more", 3, "po-invisible", 4, "ngIf"], ["tableHeaderTemplate", ""], ["tableBodyTemplate", ""], ["tableTemplate", ""], [3, "p-actions", "p-target"], ["popup", ""], ["poTableColumnDetail", ""], ["inputRadio", ""], ["inputCheckbox", ""], ["contentHeaderTemplate", ""], ["noColumnsWithHeight", ""], ["noColumnsWithoutHeight", ""], ["ActionsColumnTemplate", ""], [3, "p-columns", "p-max-columns", "p-target", "p-last-visible-columns-selected", "p-columns-default", "p-visible-columns-change", "p-change-visible-columns", "p-initial-columns", 4, "ngIf"], ["p-no-padding", "", 3, "p-no-shadow"], [4, "ngTemplateOutlet"], ["class", "po-table-overlay", 4, "ngIf"], [1, "po-table-main-container"], [1, "po-table-wrapper"], ["tableWrapper", ""], ["class", "po-table-container", 3, "height", 4, "ngIf"], [4, "ngIf"], ["class", "po-table-footer", 4, "ngIf"], [1, "po-table-overlay"], [1, "po-table-overlay-content", 3, "p-text"], [1, "po-table-container"], [1, "po-table-header-fixed", "po-table-header"], ["poTableThead", ""], [1, "po-table-container-fixed-inner"], ["poTableTbody", ""], [4, "ngIf", "ngIfThen", "ngIfElse"], [1, "po-table-footer"], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "p-literals", "p-subtitles"], [1, "po-row", "po-table-footer-show-more"], ["tableFooter", ""], [1, "po-offset-xl-4", "po-offset-lg-4", "po-offset-md-3", "po-lg-4", "po-md-6", 3, "p-disabled", "p-label", "p-loading", "p-click"], [1, "po-table"], ["class", "po-table-column-selectable", 4, "ngIf"], ["class", "po-table-header-column po-table-header-master-detail", 4, "ngIf"], [3, "po-table-header-master-detail", "po-table-header-single-action", 4, "ngIf"], ["class", "po-table-header-column po-text-center", 4, "ngIf"], ["class", "po-table-header-ellipsis", 3, "width", "max-width", "min-width", "po-clickable", "po-table-header-subtitle", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "po-table-header-single-action", "po-table-header-actions", 4, "ngIf"], [3, "po-table-header-column-manager", "po-table-header-column-manager-border", "po-table-header-single-action", 4, "ngIf"], [1, "po-table-column-selectable"], ["name", "selectAll", 3, "p-checkboxValue", "p-change", 4, "ngIf"], ["name", "selectAll", 3, "p-checkboxValue", "p-change"], [1, "po-table-header-column", "po-table-header-master-detail"], ["columnActionLeftFixed", ""], [1, "po-table-header-column", "po-text-center"], ["noColumnsHeaderFixed", ""], [1, "po-table-header-ellipsis", 3, "click"], [1, "po-table-header-flex"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["columnManagerFixed", ""], ["type", "button", "p-tooltip-position", "left", 1, "po-table-header-column-manager-button", "po-icon", "po-icon-settings", "po-clickable", 3, "p-tooltip", "click"], ["columnManagerTargetFixed", ""], [3, "itemSize", "minBufferPx", "maxBufferPx", "scroll"], ["poTableTbodyVirtual", ""], ["class", "po-table-group-row", 4, "ngIf"], [1, "po-table-group-row"], [1, "po-table-row", "po-table-row-no-data"], [1, "po-table-no-data", "po-text-center", 3, "colSpan"], ["class", "po-table-group-row", 4, "cdkVirtualFor", "cdkVirtualForOf", "cdkVirtualForTrackBy"], [1, "po-table-row"], ["class", "po-table-column-detail-toggle", 3, "click", 4, "ngIf"], [3, "width", "max-width", "min-width", "po-table-column", "po-table-column-right", "po-table-column-center", "po-table-column-icons", "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "po-table-column", 4, "ngIf"], [1, "po-table-column-detail-toggle", 3, "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngClass", "click"], [1, "po-table-column-cell", "notranslate", 3, "ngSwitch", "p-tooltip", "mouseenter", "mouseleave"], [4, "ngSwitchCase"], [3, "p-action", "p-disabled", "p-link", "p-row", "p-value", "click", 4, "ngSwitchCase"], [3, "p-column", "p-icons", "p-row", 4, "ngSwitchCase"], [4, "ngSwitchDefault"], [3, "p-action", "p-disabled", "p-link", "p-row", "p-value", "click"], [3, "p-column", "p-icons", "p-row"], [3, "p-subtitle"], [3, "p-value"], [1, "po-table-column", "po-table-column-empty"], [1, "po-table-column"], [1, "po-table-row-template-container", 3, "colSpan"], [1, "po-table-column-detail", 3, "colSpan"], [3, "p-selectable", "p-detail", "p-items", "p-select-row"], ["columnActionLeft", ""], ["noColumnsHeader", ""], ["columnManager", ""], ["columnManagerTarget", ""], ["class", "po-table-group-row", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "po-table-row-no-data", "po-table-column-empty"], ["class", "po-icon po-clickable", 3, "po-icon-arrow-up", "po-icon-arrow-down", 4, "ngIf"], [1, "po-icon", "po-clickable"], ["type", "radio", 1, "po-table-radio"], [1, "po-table-radio-label", "po-clickable", 3, "click"], ["name", "checkbox", 3, "p-checkboxValue", "p-change"], [1, "po-table-header-ellipsis", 3, "p-tooltip", "mouseenter", "mouseleave"], ["columnHeader", ""], [3, "po-table-header-icon-unselected", "po-table-header-icon-descending", "po-table-header-icon-ascending", 4, "ngIf"], [1, "po-table-header-fixed-inner"], ["class", "po-table-column po-table-column-single-action", 3, "width", "max-width", 4, "ngIf"], ["class", "po-table-column-actions", 4, "ngIf"], [1, "po-table-column", "po-table-column-single-action"], ["class", "po-table-single-action po-clickable", 3, "po-table-action-disabled", "click", 4, "ngIf"], [1, "po-table-single-action", "po-clickable", 3, "click"], ["class", "po-table-single-action-content", 3, "p-icon", 4, "ngIf"], [1, "po-table-single-action-content", 3, "p-icon"], [1, "po-table-column-actions"], [1, "po-icon", "po-icon-more", "po-clickable", 3, "click"], ["popupTarget", ""], [3, "p-columns", "p-max-columns", "p-target", "p-last-visible-columns-selected", "p-columns-default", "p-visible-columns-change", "p-change-visible-columns", "p-initial-columns"]], template: function PoTableComponent_Template(rf, ctx) { if (rf & 1) {
1929
1928
  i0.ɵɵtemplate(0, PoTableComponent_po_container_0_Template, 2, 2, "po-container", 0);
1930
1929
  i0.ɵɵtemplate(1, PoTableComponent_ng_template_1_Template, 8, 10, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
1931
1930
  i0.ɵɵtemplate(3, PoTableComponent_div_3_Template, 3, 5, "div", 2);
@@ -1950,10 +1949,10 @@ PoTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableCom
1950
1949
  i0.ɵɵproperty("p-actions", ctx.actions)("p-target", ctx.popupTarget);
1951
1950
  i0.ɵɵadvance(16);
1952
1951
  i0.ɵɵproperty("ngIf", !ctx.hideColumnsManager);
1953
- } }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i3.NgTemplateOutlet, i3.NgSwitch, i3.NgSwitchCase, i3.NgSwitchDefault, i6.NgControlStatus, i6.NgModel, i7.CdkFixedSizeVirtualScroll, i7.CdkVirtualForOf, i7.CdkVirtualScrollViewport, i8.PoButtonComponent, i9.PoContainerComponent, i10.PoLoadingComponent, i11.PoPopupComponent, i12.PoTooltipDirective, i13.PoIconComponent, i14.PoCheckboxComponent, i15.PoTableColumnIconComponent, i16.PoTableColumnLabelComponent, i17.PoTableColumnLinkComponent, i18.PoTableColumnManagerComponent, i19.PoTableDetailComponent, i20.PoTableSubtitleCircleComponent, i21.PoTableSubtitleFooterComponent, i3.TitleCasePipe, i3.CurrencyPipe, i3.DatePipe, i22.PoTimePipe], encapsulation: 2 });
1952
+ } }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i3.NgTemplateOutlet, i3.NgSwitch, i3.NgSwitchCase, i3.NgSwitchDefault, i6.CdkFixedSizeVirtualScroll, i6.CdkVirtualForOf, i6.CdkVirtualScrollViewport, i7.PoButtonComponent, i8.PoContainerComponent, i9.PoLoadingComponent, i10.PoPopupComponent, i11.PoTooltipDirective, i12.PoIconComponent, i13.PoCheckboxComponent, i14.PoTableColumnIconComponent, i15.PoTableColumnLabelComponent, i16.PoTableColumnLinkComponent, i17.PoTableColumnManagerComponent, i18.PoTableDetailComponent, i19.PoTableSubtitleCircleComponent, i20.PoTableSubtitleFooterComponent, i3.TitleCasePipe, i3.CurrencyPipe, i3.DatePipe, i21.PoTimePipe], encapsulation: 2 });
1954
1953
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoTableComponent, [{
1955
1954
  type: Component,
1956
- args: [{ selector: 'po-table', providers: [PoDateService], template: "<po-container *ngIf=\"container; else tableContainerTemplate\" p-no-padding [p-no-shadow]=\"container === 'border'\">\n <ng-container *ngTemplateOutlet=\"tableContainerTemplate\"></ng-container>\n</po-container>\n\n<ng-template #tableContainerTemplate>\n <div [class.po-table-container-relative]=\"loading\">\n <div *ngIf=\"loading\" class=\"po-table-overlay\">\n <po-loading class=\"po-table-overlay-content\" [p-text]=\"literals.loadingData\"></po-loading>\n </div>\n\n <div class=\"po-table-main-container\">\n <div\n #tableWrapper\n class=\"po-table-wrapper\"\n [class.po-table-header-fixed-columns-pixels]=\"allColumnsWidthPixels\"\n [style.opacity]=\"tableOpacity\"\n >\n <div *ngIf=\"height\" class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div #poTableThead class=\"po-table-header-fixed po-table-header\">\n <ng-container *ngTemplateOutlet=\"tableHeaderTemplate\"></ng-container>\n </div>\n\n <div #poTableTbody class=\"po-table-container-fixed-inner\">\n <ng-container *ngIf=\"height; then tableBodyTemplate; else tableTemplate\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"!height\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"po-table-footer\" *ngIf=\"hasFooter\">\n <ng-container *ngFor=\"let column of subtitleColumns; trackBy: trackBy\">\n <po-table-subtitle-footer [p-literals]=\"literals\" [p-subtitles]=\"column.subtitles\"> </po-table-subtitle-footer>\n </ng-container>\n </div>\n</ng-template>\n\n<div\n *ngIf=\"!infiniteScroll\"\n class=\"po-row po-table-footer-show-more\"\n [class.po-invisible]=\"showMore.observers.length === 0 && !hasService\"\n #tableFooter\n>\n <po-button\n class=\"po-offset-xl-4 po-offset-lg-4 po-offset-md-3 po-lg-4 po-md-6\"\n [p-disabled]=\"showMoreDisabled\"\n [p-label]=\"literals.loadMoreData\"\n [p-loading]=\"loadingShowMore\"\n (p-click)=\"onShowMore()\"\n >\n </po-button>\n</div>\n\n<ng-template #tableHeaderTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <po-checkbox\n name=\"selectAll\"\n *ngIf=\"!hideSelectAll\"\n (click)=\"selectAllRows()\"\n (p-change)=\"selectAllRows()\"\n [(ngModel)]=\"selectAll\"\n ></po-checkbox>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n <th\n #columnActionLeftFixed\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeaderFixed class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n\n <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager && actionRight\"\n [class.po-table-header-single-action]=\"isSingleAction && !hideColumnsManager\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManagerFixed\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction || !actionRight\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction && actionRight\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManagerFixed.offsetWidth : undefined\"\n >\n <button\n #columnManagerTargetFixed\n type=\"button\"\n [attr.aria-label]=\"literals.columnsManager\"\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n </table>\n</ng-template>\n\n<!-- s\u00F3 virtual -->\n<ng-template #tableBodyTemplate>\n <cdk-virtual-scroll-viewport\n #poTableTbodyVirtual\n [itemSize]=\"itemSize\"\n [style.height.px]=\"heightTableVirtual\"\n [minBufferPx]=\"heightTableVirtual < 100 ? 100 : heightTableVirtual\"\n [maxBufferPx]=\"heightTableVirtual < 200 ? 200 : heightTableVirtual\"\n (scroll)=\"syncronizeHorizontalScroll()\"\n >\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *cdkVirtualFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr\n class=\"po-table-row\"\n [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\"\n >\n <td *ngIf=\"selectable\" class=\"po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n <ng-template\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"hasSelectableRow() ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n [style.width.px]=\"noColumnsHeaderFixed?.nativeElement.parentElement?.offsetWidth\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container\n *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\"\n >\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container\n *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\"\n >\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ getCellData(row, column) | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'link'\"\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ getCellData(row, column) }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna de a\u00E7oes na direita -->\n <ng-template\n *ngIf=\"actionRight\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Coluna para n\u00E3o ficar em branco nas linhas de gerenciamento -->\n <ng-container *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction) && !hideColumnsManager\">\n <td class=\"po-table-column po-table-column-empty\"></td>\n </ng-container>\n\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n </cdk-virtual-scroll-viewport>\n</ng-template>\n\n<ng-template #tableTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"!height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <po-checkbox\n name=\"selectAll\"\n *ngIf=\"!hideSelectAll\"\n (click)=\"selectAllRows()\"\n (p-change)=\"selectAllRows()\"\n [(ngModel)]=\"selectAll\"\n ></po-checkbox>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n <th\n #columnActionLeft\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeader class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n\n <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager && actionRight\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManager\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction || !actionRight\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction && actionRight\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManager.offsetWidth : undefined\"\n >\n <button\n #columnManagerTarget\n type=\"button\"\n [attr.aria-label]=\"literals.columnsManager\"\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n\n <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *ngFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr class=\"po-table-row\" [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\">\n <td *ngIf=\"selectable\" class=\"po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n <ng-template\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"hasSelectableRow() ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ getCellData(row, column) | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'link'\"\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ getCellData(row, column) }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna de a\u00E7oes na direita -->\n <ng-template\n *ngIf=\"actionRight\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Coluna para n\u00E3o ficar em branco nas linhas de gerenciamento -->\n <ng-container *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction) && !hideColumnsManager\">\n <td class=\"po-table-row-no-data po-table-column-empty\"></td>\n </ng-container>\n\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</ng-template>\n\n<po-popup #popup [p-actions]=\"actions\" [p-target]=\"popupTarget\"> </po-popup>\n\n<ng-template #poTableColumnDetail let-row=\"row\" let-rowIndex=\"rowIndex\">\n <span\n *ngIf=\"(containsMasterDetail(row) && !hasRowTemplate) || (isShowRowTemplate(row, rowIndex) && hasRowTemplate)\"\n class=\"po-icon po-clickable\"\n [class.po-icon-arrow-up]=\"row.$showDetail\"\n [class.po-icon-arrow-down]=\"!row.$showDetail\"\n >\n </span>\n</ng-template>\n\n<ng-template #inputRadio let-row>\n <input type=\"radio\" class=\"po-table-radio\" [class.po-table-radio-checked]=\"row.$selected\" />\n <label class=\"po-table-radio-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\n</ng-template>\n\n<ng-template #inputCheckbox let-row>\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"selectable ? selectRow(row) : 'javascript:;'\"\n [(ngModel)]=\"row.$selected\"\n (click)=\"selectable ? selectRow(row) : 'javascript:;'\"\n ></po-checkbox>\n</ng-template>\n\n<ng-template #contentHeaderTemplate let-column>\n <span\n #columnHeader\n class=\"po-table-header-ellipsis\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n {{ column.label || (column.property | titlecase) }}\n </span>\n <span\n *ngIf=\"sort && column.sortable !== false\"\n [class.po-table-header-icon-unselected]=\"JSON.stringify(sortedColumn?.property) !== JSON.stringify(column)\"\n [class.po-table-header-icon-descending]=\"\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && sortedColumn.ascending\n \"\n [class.po-table-header-icon-ascending]=\"\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && !sortedColumn.ascending\n \"\n >\n </span>\n</ng-template>\n\n<ng-template #noColumnsWithHeight>\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"noColumnsHeader?.nativeElement.offsetWidth\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n</ng-template>\n\n<ng-template #noColumnsWithoutHeight>\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n</ng-template>\n\n<!-- Template de a\u00E7\u00F5es -->\n<ng-template #ActionsColumnTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <td\n *ngIf=\"isSingleAction\"\n class=\"po-table-column po-table-column-single-action\"\n [style.width.px]=\"height && actionRight ? getWidthColumnManager() : ''\"\n [style.max-width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n [style.width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n >\n <div\n *ngIf=\"firstAction.visible !== false\"\n class=\"po-table-single-action po-clickable\"\n [class.po-table-action-disabled]=\"firstAction.disabled ? validateTableAction(row, firstAction) : false\"\n (click)=\"executeTableAction(row, firstAction)\"\n >\n <po-icon *ngIf=\"firstAction.icon\" class=\"po-table-single-action-content\" [p-icon]=\"firstAction.icon\"></po-icon>\n {{ firstAction.label }}\n </div>\n </td>\n\n <td *ngIf=\"visibleActions.length > 1\" class=\"po-table-column-actions\">\n <span #popupTarget class=\"po-icon po-icon-more po-clickable\" (click)=\"togglePopup(row, popupTarget)\"></span>\n </td>\n</ng-template>\n\n<po-table-column-manager\n *ngIf=\"!hideColumnsManager\"\n [p-columns]=\"columns\"\n [p-max-columns]=\"maxColumns\"\n [p-target]=\"height ? columnManagerTargetFixed : columnManagerTarget\"\n [p-last-visible-columns-selected]=\"lastVisibleColumnsSelected\"\n (p-visible-columns-change)=\"onVisibleColumnsChange($event)\"\n (p-change-visible-columns)=\"onChangeVisibleColumns($event)\"\n [p-columns-default]=\"initialColumns\"\n (p-initial-columns)=\"onColumnRestoreManager($event)\"\n>\n</po-table-column-manager>\n" }]
1955
+ args: [{ selector: 'po-table', providers: [PoDateService], template: "<po-container *ngIf=\"container; else tableContainerTemplate\" p-no-padding [p-no-shadow]=\"container === 'border'\">\n <ng-container *ngTemplateOutlet=\"tableContainerTemplate\"></ng-container>\n</po-container>\n\n<ng-template #tableContainerTemplate>\n <div [class.po-table-container-relative]=\"loading\">\n <div *ngIf=\"loading\" class=\"po-table-overlay\">\n <po-loading class=\"po-table-overlay-content\" [p-text]=\"literals.loadingData\"></po-loading>\n </div>\n\n <div class=\"po-table-main-container\">\n <div\n #tableWrapper\n class=\"po-table-wrapper\"\n [class.po-table-header-fixed-columns-pixels]=\"allColumnsWidthPixels\"\n [style.opacity]=\"tableOpacity\"\n >\n <div *ngIf=\"height\" class=\"po-table-container\" [style.height.px]=\"heightTableContainer\">\n <div #poTableThead class=\"po-table-header-fixed po-table-header\">\n <ng-container *ngTemplateOutlet=\"tableHeaderTemplate\"></ng-container>\n </div>\n\n <div #poTableTbody class=\"po-table-container-fixed-inner\">\n <ng-container *ngIf=\"height; then tableBodyTemplate; else tableTemplate\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"!height\">\n <ng-container *ngTemplateOutlet=\"tableTemplate\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"po-table-footer\" *ngIf=\"hasFooter\">\n <ng-container *ngFor=\"let column of subtitleColumns; trackBy: trackBy\">\n <po-table-subtitle-footer [p-literals]=\"literals\" [p-subtitles]=\"column.subtitles\"> </po-table-subtitle-footer>\n </ng-container>\n </div>\n</ng-template>\n\n<div\n *ngIf=\"!infiniteScroll\"\n class=\"po-row po-table-footer-show-more\"\n [class.po-invisible]=\"showMore.observers.length === 0 && !hasService\"\n #tableFooter\n>\n <po-button\n class=\"po-offset-xl-4 po-offset-lg-4 po-offset-md-3 po-lg-4 po-md-6\"\n [p-disabled]=\"showMoreDisabled\"\n [p-label]=\"literals.loadMoreData\"\n [p-loading]=\"loadingShowMore\"\n (p-click)=\"onShowMore()\"\n >\n </po-button>\n</div>\n\n<ng-template #tableHeaderTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <po-checkbox\n name=\"selectAll\"\n *ngIf=\"!hideSelectAll\"\n (p-change)=\"selectAllRows()\"\n [p-checkboxValue]=\"selectAll === null ? 'mixed' : selectAll\"\n ></po-checkbox>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n <th\n #columnActionLeftFixed\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeaderFixed class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n\n <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager && actionRight\"\n [class.po-table-header-single-action]=\"isSingleAction && !hideColumnsManager\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManagerFixed\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction || !actionRight\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction && actionRight\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManagerFixed.offsetWidth : undefined\"\n >\n <button\n #columnManagerTargetFixed\n type=\"button\"\n [attr.aria-label]=\"literals.columnsManager\"\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n </table>\n</ng-template>\n\n<!-- s\u00F3 virtual -->\n<ng-template #tableBodyTemplate>\n <cdk-virtual-scroll-viewport\n #poTableTbodyVirtual\n [itemSize]=\"itemSize\"\n [style.height.px]=\"heightTableVirtual\"\n [minBufferPx]=\"heightTableVirtual < 100 ? 100 : heightTableVirtual\"\n [maxBufferPx]=\"heightTableVirtual < 200 ? 200 : heightTableVirtual\"\n (scroll)=\"syncronizeHorizontalScroll()\"\n >\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *cdkVirtualFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr\n class=\"po-table-row\"\n [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\"\n >\n <td *ngIf=\"selectable\" class=\"po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n <ng-template\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"hasSelectableRow() ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n [style.width.px]=\"noColumnsHeaderFixed?.nativeElement.parentElement?.offsetWidth\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container\n *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\"\n >\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container\n *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\"\n >\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ getCellData(row, column) | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'link'\"\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ getCellData(row, column) }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna de a\u00E7oes na direita -->\n <ng-template\n *ngIf=\"actionRight\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Coluna para n\u00E3o ficar em branco nas linhas de gerenciamento -->\n <ng-container *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction) && !hideColumnsManager\">\n <td class=\"po-table-column po-table-column-empty\"></td>\n </ng-container>\n\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n </cdk-virtual-scroll-viewport>\n</ng-template>\n\n<ng-template #tableTemplate>\n <table class=\"po-table\" [class.po-table-striped]=\"striped\" [class.po-table-layout-fixed]=\"hideTextOverflow\">\n <thead>\n <tr [class.po-table-header]=\"!height\">\n <th *ngIf=\"hasSelectableColumn\" class=\"po-table-column-selectable\">\n <div [class.po-table-header-fixed-inner]=\"height\">\n <po-checkbox\n name=\"selectAll\"\n *ngIf=\"!hideSelectAll\"\n (p-change)=\"selectAllRows()\"\n [p-checkboxValue]=\"selectAll === null ? 'mixed' : selectAll\"\n ></po-checkbox>\n </div>\n </th>\n\n <th\n *ngIf=\"(hasMasterDetailColumn || hasRowTemplate) && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <!-- Coluna criada para caso as a\u00E7\u00F5es fiquem no lado esquerdo -->\n <th\n #columnActionLeft\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [class.po-table-header-master-detail]=\"!isSingleAction\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n ></th>\n\n <th *ngIf=\"!hasMainColumns\" #noColumnsHeader class=\"po-table-header-column po-text-center\">\n <ng-container *ngIf=\"height; then noColumnsWithHeight; else noColumnsWithoutHeight\"> </ng-container>\n </th>\n\n <th\n *ngFor=\"let column of mainColumns; let i = index; trackBy: trackBy\"\n class=\"po-table-header-ellipsis\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-clickable]=\"(sort && column.sortable !== false) || hasService\"\n [class.po-table-header-subtitle]=\"column.type === 'subtitle'\"\n (click)=\"sortColumn(column)\"\n >\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-fixed-inner]=\"height\"\n [class.po-table-header-flex-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-header-flex-center]=\"column.type === 'subtitle'\"\n >\n <ng-container *ngTemplateOutlet=\"contentHeaderTemplate; context: { $implicit: column }\"> </ng-container>\n </div>\n </th>\n\n <th\n *ngIf=\"hasRowTemplateWithArrowDirectionRight && (hasVisibleActions || hideColumnsManager)\"\n class=\"po-table-header-column po-table-header-master-detail\"\n ></th>\n\n <th\n *ngIf=\"hasVisibleActions && hideColumnsManager && actionRight\"\n [class.po-table-header-single-action]=\"isSingleAction\"\n [class.po-table-header-actions]=\"!isSingleAction\"\n ></th>\n\n <th\n #columnManager\n *ngIf=\"hasValidColumns && !hideColumnsManager\"\n [class.po-table-header-column-manager]=\"!isSingleAction || !actionRight\"\n [class.po-table-header-column-manager-border]=\"!height && container\"\n [class.po-table-header-single-action]=\"isSingleAction && actionRight\"\n >\n <div\n [class.po-table-header-column-manager-border]=\"height && container\"\n [class.po-table-header-column-manager-fixed-inner]=\"height\"\n [style.width.px]=\"height && visibleActions.length ? columnManager.offsetWidth : undefined\"\n >\n <button\n #columnManagerTarget\n type=\"button\"\n [attr.aria-label]=\"literals.columnsManager\"\n class=\"po-table-header-column-manager-button po-icon po-icon-settings po-clickable\"\n p-tooltip-position=\"left\"\n [p-tooltip]=\"literals.columnsManager\"\n (click)=\"onOpenColumnManager()\"\n ></button>\n </div>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"po-table-group-row\" *ngIf=\"!hasItems || !hasMainColumns\">\n <tr class=\"po-table-row po-table-row-no-data\">\n <td [colSpan]=\"columnCount\" class=\"po-table-no-data po-text-center\">\n <span> {{ literals.noData }} </span>\n </td>\n </tr>\n </tbody>\n\n <ng-container *ngIf=\"hasMainColumns\">\n <tbody class=\"po-table-group-row\" *ngFor=\"let row of items; let rowIndex = index; trackBy: trackBy\">\n <tr class=\"po-table-row\" [class.po-table-row-active]=\"row.$selected || (row.$selected === null && selectable)\">\n <td *ngIf=\"selectable\" class=\"po-table-column-selectable\">\n <ng-container *ngTemplateOutlet=\"singleSelect ? inputRadio : inputCheckbox; context: { $implicit: row }\">\n </ng-container>\n </td>\n\n <!-- Valida se a origem do detail \u00E9 pelo input do po-table -->\n <td\n *ngIf=\"columnMasterDetail && !hideDetail && !hasRowTemplate\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna com as a\u00E7\u00F5es na esquerda (padr\u00E3o)-->\n <ng-template\n *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction)\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Valida se a origem do detail \u00E9 pela diretiva -->\n <td\n *ngIf=\"hasRowTemplate && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <td\n *ngFor=\"let column of mainColumns; let columnIndex = index; trackBy: trackBy\"\n [style.width]=\"column.width\"\n [style.max-width]=\"column.width\"\n [style.min-width]=\"column.width\"\n [class.po-table-column]=\"column.type !== 'icon'\"\n [class.po-table-column-right]=\"column.type === 'currency' || column.type === 'number'\"\n [class.po-table-column-center]=\"column.type === 'subtitle'\"\n [class.po-table-column-icons]=\"column.type === 'icon'\"\n [ngClass]=\"getClassColor(row, column)\"\n (click)=\"hasSelectableRow() ? selectRow(row) : 'javascript:;'\"\n >\n <div\n class=\"po-table-column-cell notranslate\"\n [class.po-table-body-ellipsis]=\"hideTextOverflow\"\n [ngSwitch]=\"column.type\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event, column, row)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n <span *ngSwitchCase=\"'columnTemplate'\">\n <ng-container *ngTemplateOutlet=\"getTemplate(column); context: { $implicit: getCellData(row, column) }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'cellTemplate'\">\n <ng-container *ngTemplateOutlet=\"tableCellTemplate?.templateRef; context: { row: row, column: column }\">\n </ng-container>\n </span>\n\n <span *ngSwitchCase=\"'boolean'\">\n {{ getBooleanLabel(getCellData(row, column), column) }}\n </span>\n\n <span *ngSwitchCase=\"'currency'\">\n {{ getCellData(row, column) | currency: column.format:'symbol':'1.2-2' }}\n </span>\n\n <span *ngSwitchCase=\"'date'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy' }}\n </span>\n\n <span *ngSwitchCase=\"'time'\">\n {{ getCellData(row, column) | po_time: column.format || 'HH:mm:ss.ffffff' }}\n </span>\n\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getCellData(row, column) | date: column.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n\n <span *ngSwitchCase=\"'number'\">\n {{ formatNumber(getCellData(row, column), column.format) }}\n </span>\n\n <po-table-column-link\n *ngSwitchCase=\"'link'\"\n [p-action]=\"column.action\"\n [p-disabled]=\"checkDisabled(row, column)\"\n [p-link]=\"row[column.link]\"\n [p-row]=\"row\"\n [p-value]=\"getCellData(row, column)\"\n (click)=\"onClickLink($event, row, column)\"\n >\n </po-table-column-link>\n\n <po-table-column-icon\n *ngSwitchCase=\"'icon'\"\n [p-column]=\"column\"\n [p-icons]=\"getColumnIcons(row, column)\"\n [p-row]=\"row\"\n >\n </po-table-column-icon>\n\n <span *ngSwitchCase=\"'subtitle'\">\n <po-table-subtitle-circle [p-subtitle]=\"getSubtitleColumn(row, column)\"></po-table-subtitle-circle>\n </span>\n <span *ngSwitchCase=\"'label'\">\n <po-table-column-label [p-value]=\"getColumnLabel(row, column)\"> </po-table-column-label>\n </span>\n <span *ngSwitchDefault>{{ getCellData(row, column) }}</span>\n </div>\n </td>\n\n <td\n *ngIf=\"hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column-detail-toggle\"\n (click)=\"toggleDetail(row)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"poTableColumnDetail\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n\n <!-- Coluna de a\u00E7oes na direita -->\n <ng-template\n *ngIf=\"actionRight\"\n [ngTemplateOutlet]=\"ActionsColumnTemplate\"\n [ngTemplateOutletContext]=\"{ row: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n\n <!-- Coluna para n\u00E3o ficar em branco nas linhas de gerenciamento -->\n <ng-container *ngIf=\"!actionRight && (visibleActions.length > 1 || isSingleAction) && !hideColumnsManager\">\n <td class=\"po-table-row-no-data po-table-column-empty\"></td>\n </ng-container>\n\n <!-- Column Manager -->\n <td\n *ngIf=\"!hasVisibleActions && !hideColumnsManager && !hasRowTemplateWithArrowDirectionRight\"\n class=\"po-table-column\"\n ></td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && hasRowTemplate && row.$showDetail && isShowRowTemplate(row, rowIndex)\">\n <td class=\"po-table-row-template-container\" [colSpan]=\"columnCountForMasterDetail\">\n <ng-template\n [ngTemplateOutlet]=\"tableRowTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: row, rowIndex: rowIndex }\"\n >\n </ng-template>\n </td>\n </tr>\n\n <tr *ngIf=\"hasMainColumns && isShowMasterDetail(row)\">\n <td class=\"po-table-column-detail\" [colSpan]=\"columnCountForMasterDetail\">\n <po-table-detail\n [p-selectable]=\"selectable && !detailHideSelect\"\n [p-detail]=\"columnMasterDetail.detail\"\n [p-items]=\"row[nameColumnDetail]\"\n (p-select-row)=\"selectDetailRow($event)\"\n >\n </po-table-detail>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</ng-template>\n\n<po-popup #popup [p-actions]=\"actions\" [p-target]=\"popupTarget\"> </po-popup>\n\n<ng-template #poTableColumnDetail let-row=\"row\" let-rowIndex=\"rowIndex\">\n <span\n *ngIf=\"(containsMasterDetail(row) && !hasRowTemplate) || (isShowRowTemplate(row, rowIndex) && hasRowTemplate)\"\n class=\"po-icon po-clickable\"\n [class.po-icon-arrow-up]=\"row.$showDetail\"\n [class.po-icon-arrow-down]=\"!row.$showDetail\"\n >\n </span>\n</ng-template>\n\n<ng-template #inputRadio let-row>\n <input type=\"radio\" class=\"po-table-radio\" [class.po-table-radio-checked]=\"row.$selected\" />\n <label class=\"po-table-radio-label po-clickable\" (click)=\"selectable ? selectRow(row) : 'javascript:;'\"></label>\n</ng-template>\n\n<ng-template #inputCheckbox let-row>\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"selectable ? selectRow(row) : 'javascript:;'\"\n [p-checkboxValue]=\"row.$selected\"\n ></po-checkbox>\n</ng-template>\n\n<ng-template #contentHeaderTemplate let-column>\n <span\n #columnHeader\n class=\"po-table-header-ellipsis\"\n [p-tooltip]=\"tooltipText\"\n (mouseenter)=\"tooltipMouseEnter($event)\"\n (mouseleave)=\"tooltipMouseLeave()\"\n >\n {{ column.label || (column.property | titlecase) }}\n </span>\n <span\n *ngIf=\"sort && column.sortable !== false\"\n [class.po-table-header-icon-unselected]=\"JSON.stringify(sortedColumn?.property) !== JSON.stringify(column)\"\n [class.po-table-header-icon-descending]=\"\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && sortedColumn.ascending\n \"\n [class.po-table-header-icon-ascending]=\"\n JSON.stringify(sortedColumn?.property) === JSON.stringify(column) && !sortedColumn.ascending\n \"\n >\n </span>\n</ng-template>\n\n<ng-template #noColumnsWithHeight>\n <div class=\"po-table-header-fixed-inner\" [style.width.px]=\"noColumnsHeader?.nativeElement.offsetWidth\">\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n </div>\n</ng-template>\n\n<ng-template #noColumnsWithoutHeight>\n {{ hasValidColumns ? literals.noVisibleColumn : literals.noColumns }}\n</ng-template>\n\n<!-- Template de a\u00E7\u00F5es -->\n<ng-template #ActionsColumnTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <td\n *ngIf=\"isSingleAction\"\n class=\"po-table-column po-table-column-single-action\"\n [style.width.px]=\"height && actionRight ? getWidthColumnManager() : ''\"\n [style.max-width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n [style.width.px]=\"height && !actionRight ? getColumnWidthActionsLeft() : ''\"\n >\n <div\n *ngIf=\"firstAction.visible !== false\"\n class=\"po-table-single-action po-clickable\"\n [class.po-table-action-disabled]=\"firstAction.disabled ? validateTableAction(row, firstAction) : false\"\n (click)=\"executeTableAction(row, firstAction)\"\n >\n <po-icon *ngIf=\"firstAction.icon\" class=\"po-table-single-action-content\" [p-icon]=\"firstAction.icon\"></po-icon>\n {{ firstAction.label }}\n </div>\n </td>\n\n <td *ngIf=\"visibleActions.length > 1\" class=\"po-table-column-actions\">\n <span #popupTarget class=\"po-icon po-icon-more po-clickable\" (click)=\"togglePopup(row, popupTarget)\"></span>\n </td>\n</ng-template>\n\n<po-table-column-manager\n *ngIf=\"!hideColumnsManager\"\n [p-columns]=\"columns\"\n [p-max-columns]=\"maxColumns\"\n [p-target]=\"height ? columnManagerTargetFixed : columnManagerTarget\"\n [p-last-visible-columns-selected]=\"lastVisibleColumnsSelected\"\n (p-visible-columns-change)=\"onVisibleColumnsChange($event)\"\n (p-change-visible-columns)=\"onChangeVisibleColumns($event)\"\n [p-columns-default]=\"initialColumns\"\n (p-initial-columns)=\"onColumnRestoreManager($event)\"\n>\n</po-table-column-manager>\n" }]
1957
1956
  }], function () { return [{ type: i1.PoDateService }, { type: i0.IterableDiffers }, { type: i0.Renderer2 }, { type: i2.PoLanguageService }, { type: i0.ChangeDetectorRef }, { type: i3.DecimalPipe }, { type: i4.Router }, { type: i5.PoTableService }]; }, { tableRowTemplate: [{
1958
1957
  type: ContentChild,
1959
1958
  args: [PoTableRowTemplateDirective, { static: true }]
@@ -2012,4 +2011,4 @@ PoTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableCom
2012
2011
  type: ViewChild,
2013
2012
  args: ['columnManagerTargetFixed']
2014
2013
  }] }); })();
2015
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXRhYmxlL3BvLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixVQUFVLEVBS1YsU0FBUyxFQUNULFlBQVksRUFFWixlQUFlLEVBRWhCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUt2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFHbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFdEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDL0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDakNwRyx3QkFBd0U7OztJQUQxRSx3Q0FBaUg7SUFDL0csbUdBQXdFO0lBQzFFLGlCQUFlOzs7O0lBRjJELDJEQUFzQztJQUMvRixlQUF3QztJQUF4QyxzQ0FBd0M7OztJQUtyRCwrQkFBOEM7SUFDNUMsaUNBQTBGO0lBQzVGLGlCQUFNOzs7SUFEeUMsZUFBK0I7SUFBL0IscURBQStCOzs7SUFZdEUsd0JBQXFFOzs7SUFJckUsd0JBQXdGOzs7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QUFLLEVBQUU7WUFDRSxZQUFZO2tCQUEzRSxTQUFTO21CQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNTLG1CQUFtQjtrQkFBekYsU0FBUzttQkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNKLGFBQWE7a0JBQTdFLFNBQVM7bUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ08sa0JBQWtCO2tCQUF2RixTQUFTO21CQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ0EsZ0JBQWdCO2tCQUFuRixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ08scUJBQXFCO2tCQUE3RixTQUFTO21CQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBRWIsa0JBQWtCO2tCQUEzRSxZQUFZO21CQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNGLGNBQWM7a0JBQW5FLFlBQVk7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBeUJkLG1CQUFtQjtrQkFBeEQsU0FBUzttQkFBQyxxQkFBcUI7WUFTVyx3QkFBd0I7a0JBQWxFLFNBQVM7bUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEl0ZXJhYmxlRGlmZmVycyxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb0RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tZGF0ZS9wby1kYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9wby1wb3B1cC9wby1wb3B1cC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBQb1RhYmxlQWN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRhYmxlLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZUJhc2VDb21wb25lbnQsIFF1ZXJ5UGFyYW1zVHlwZSB9IGZyb20gJy4vcG8tdGFibGUtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10YWJsZS1jb2x1bW4uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5MYWJlbCB9IGZyb20gJy4vcG8tdGFibGUtY29sdW1uLWxhYmVsL3BvLXRhYmxlLWNvbHVtbi1sYWJlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZVJvd1RlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9wby10YWJsZS1yb3ctdGVtcGxhdGUvcG8tdGFibGUtcm93LXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb1RhYmxlU3VidGl0bGVDb2x1bW4gfSBmcm9tICcuL3BvLXRhYmxlLXN1YnRpdGxlLWZvb3Rlci9wby10YWJsZS1zdWJ0aXRsZS1jb2x1bW4uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVDZWxsVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL3BvLXRhYmxlLWNlbGwtdGVtcGxhdGUvcG8tdGFibGUtY2VsbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9wby10YWJsZS1jb2x1bW4tdGVtcGxhdGUvcG8tdGFibGUtY29sdW1uLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb1RhYmxlUm93VGVtcGxhdGVBcnJvd0RpcmVjdGlvbiB9IGZyb20gJy4vZW51bXMvcG8tdGFibGUtcm93LXRlbXBsYXRlLWFycm93LWRpcmVjdGlvbi5lbnVtJztcbmltcG9ydCB7IFBvVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby10YWJsZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9UYWJsZUJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJsZS1iYXNpY1wiIHRpdGxlPVwiUE8gVGFibGUgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWJhc2ljL3NhbXBsZS1wby10YWJsZS1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtYmFzaWMvc2FtcGxlLXBvLXRhYmxlLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFibGUtbGFic1wiIHRpdGxlPVwiUE8gVGFibGUgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtbGFicy9zYW1wbGUtcG8tdGFibGUtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtbGFicy9zYW1wbGUtcG8tdGFibGUtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1sYWJzL3NhbXBsZS1wby10YWJsZS1sYWJzLmNvbXBvbmVudC5lMmUtc3BlYy50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1sYWJzL3NhbXBsZS1wby10YWJsZS1sYWJzLmNvbXBvbmVudC5wby50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1sYWJzL3NhbXBsZS1wby10YWJsZS1sYWJzLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJsZS13aXRoLWFwaVwiIHRpdGxlPVwiUE8gVGFibGUgdXNpbmcgQVBJXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS13aXRoLWFwaS9zYW1wbGUtcG8tdGFibGUtd2l0aC1hcGkuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLXdpdGgtYXBpL3NhbXBsZS1wby10YWJsZS13aXRoLWFwaS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYmxlLXRyYW5zcG9ydFwiIHRpdGxlPVwiUE8gVGFibGUgLSBUcmFuc3BvcnRcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLXRyYW5zcG9ydC9zYW1wbGUtcG8tdGFibGUtdHJhbnNwb3J0LmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS10cmFuc3BvcnQvc2FtcGxlLXBvLXRhYmxlLXRyYW5zcG9ydC5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS10cmFuc3BvcnQvc2FtcGxlLXBvLXRhYmxlLXRyYW5zcG9ydC5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFibGUtYWlyZmFyZVwiIHRpdGxlPVwiUE8gVGFibGUgLSBBaXJmYXJlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1haXJmYXJlL3NhbXBsZS1wby10YWJsZS1haXJmYXJlLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1haXJmYXJlL3NhbXBsZS1wby10YWJsZS1haXJmYXJlLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWFpcmZhcmUvc2FtcGxlLXBvLXRhYmxlLWFpcmZhcmUuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYmxlLWNvbXBvbmVudHNcIiB0aXRsZT1cIlBPIFRhYmxlIC0gUG8gRmllbGQgQ29tcG9uZW50c1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy9zYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy9zYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy5lbnVtLnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMvc2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy9zYW1wbGUtcG8tdGFibGUtY29tcG9uZW50cy5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMvc2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMuY29tcG9uZW50LmNzc1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1BvRGF0ZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFBvVGFibGVDb21wb25lbnQgZXh0ZW5kcyBQb1RhYmxlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIERvQ2hlY2ssIE9uRGVzdHJveSB7XG4gIEBDb250ZW50Q2hpbGQoUG9UYWJsZVJvd1RlbXBsYXRlRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZVJvd1RlbXBsYXRlOiBQb1RhYmxlUm93VGVtcGxhdGVEaXJlY3RpdmU7XG4gIEBDb250ZW50Q2hpbGQoUG9UYWJsZUNlbGxUZW1wbGF0ZURpcmVjdGl2ZSkgdGFibGVDZWxsVGVtcGxhdGU6IFBvVGFibGVDZWxsVGVtcGxhdGVEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihQb1RhYmxlQ29sdW1uVGVtcGxhdGVEaXJlY3RpdmUpIHRhYmxlQ29sdW1uVGVtcGxhdGVzOiBRdWVyeUxpc3Q8UG9UYWJsZUNvbHVtblRlbXBsYXRlRGlyZWN0aXZlPjtcblxuICBAVmlld0NoaWxkKCdub0NvbHVtbnNIZWFkZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbm9Db2x1bW5zSGVhZGVyO1xuICBAVmlld0NoaWxkKCdub0NvbHVtbnNIZWFkZXJGaXhlZCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBub0NvbHVtbnNIZWFkZXJGaXhlZDtcbiAgQFZpZXdDaGlsZCgncG9wdXAnKSBwb1BvcHVwQ29tcG9uZW50OiBQb1BvcHVwQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd0YWJsZUZvb3RlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSB0YWJsZUZvb3RlckVsZW1lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlV3JhcHBlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSB0YWJsZVdyYXBwZXJFbGVtZW50O1xuICBAVmlld0NoaWxkKCdwb1RhYmxlVGJvZHknLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgcG9UYWJsZVRib2R5O1xuICBAVmlld0NoaWxkKCdwb1RhYmxlVGhlYWQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgcG9UYWJsZVRoZWFkO1xuICBAVmlld0NoaWxkKCdwb1RhYmxlVGJvZHlWaXJ0dWFsJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIHBvVGFibGVUYm9keVZpcnR1YWw7XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbk1hbmFnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgY29sdW1uTWFuYWdlcjtcbiAgQFZpZXdDaGlsZCgnY29sdW1uTWFuYWdlckZpeGVkJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGNvbHVtbk1hbmFnZXJGaXhlZDtcbiAgQFZpZXdDaGlsZCgnY29sdW1uQWN0aW9uTGVmdCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSBjb2x1bW5BY3Rpb25MZWZ0O1xuICBAVmlld0NoaWxkKCdjb2x1bW5BY3Rpb25MZWZ0Rml4ZWQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgY29sdW1uQWN0aW9uTGVmdEZpeGVkO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2FjdGlvbnNJY29uRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBhY3Rpb25zSWNvbkVsZW1lbnQ6IFF1ZXJ5TGlzdDxhbnk+O1xuICBAVmlld0NoaWxkcmVuKCdhY3Rpb25zRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBhY3Rpb25zRWxlbWVudDogUXVlcnlMaXN0PGFueT47XG5cbiAgaGVpZ2h0VGFibGVDb250YWluZXI6IG51bWJlcjtcbiAgaGVpZ2h0VGFibGVWaXJ0dWFsOiBudW1iZXI7XG4gIHBvcHVwVGFyZ2V0O1xuICB0YWJsZU9wYWNpdHk6IG51bWJlciA9IDA7XG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc7XG4gIGl0ZW1TaXplOiBudW1iZXIgPSAzMjtcbiAgbGFzdFZpc2libGVDb2x1bW5zU2VsZWN0ZWQ6IEFycmF5PFBvVGFibGVDb2x1bW4+O1xuXG4gIHByaXZhdGUgX2NvbHVtbk1hbmFnZXJUYXJnZXQ6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgX2NvbHVtbk1hbmFnZXJUYXJnZXRGaXhlZDogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBkaWZmZXI7XG4gIHByaXZhdGUgZm9vdGVySGVpZ2h0O1xuICBwcml2YXRlIGhlYWRlckhlaWdodDtcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIHRpbWVvdXRSZXNpemU7XG4gIHByaXZhdGUgdmlzaWJsZUVsZW1lbnQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzY3JvbGxFdmVudCQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25TY3JvbGxFdmVudDogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgY2xpY2tMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZXNpemVMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgSlNPTjogSlNPTjtcblxuICBAVmlld0NoaWxkKCdjb2x1bW5NYW5hZ2VyVGFyZ2V0Jykgc2V0IGNvbHVtbk1hbmFnZXJUYXJnZXQodmFsdWU6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLl9jb2x1bW5NYW5hZ2VyVGFyZ2V0ID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXQgY29sdW1uTWFuYWdlclRhcmdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uTWFuYWdlclRhcmdldDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbk1hbmFnZXJUYXJnZXRGaXhlZCcpIHNldCBjb2x1bW5NYW5hZ2VyVGFyZ2V0Rml4ZWQodmFsdWU6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLl9jb2x1bW5NYW5hZ2VyVGFyZ2V0Rml4ZWQgPSB2YWx1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGdldCBjb2x1bW5NYW5hZ2VyVGFyZ2V0Rml4ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbk1hbmFnZXJUYXJnZXRGaXhlZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHBvRGF0ZTogUG9EYXRlU2VydmljZSxcbiAgICBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwb0xhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGRlZmF1bHRTZXJ2aWNlOiBQb1RhYmxlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihwb0RhdGUsIHBvTGFuZ3VhZ2VTZXJ2aWNlLCBkZWZhdWx0U2VydmljZSk7XG4gICAgdGhpcy5KU09OID0gSlNPTjtcbiAgICB0aGlzLmRpZmZlciA9IGRpZmZlcnMuZmluZChbXSkuY3JlYXRlKG51bGwpO1xuXG4gICAgLy8gVE9ETzogIzU1NTAgYW8gcmVtb3ZlciBlc3RlIGxpc3RlbmVyLCBubyBwb3J0YWwsIHF1YW5kbyBhcyBjb2x1bmFzIGZvcmVtIGZpeGFzIG7Do28gc29mcmVtXG4gICAgLy8gYWx0ZXJhw6fDo28gZGUgbGFyZ3VyYSwgcG9pcyBvIG5nRG9DaGVjayBuw6NvIMOpIGV4ZWN1dGFkby5cbiAgICB0aGlzLmNsaWNrTGlzdGVuZXIgPSByZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKCkgPT4ge30pO1xuXG4gICAgdGhpcy5yZXNpemVMaXN0ZW5lciA9IHJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsIChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLmRlYm91bmNlUmVzaXplKCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZVJvd1RlbXBsYXRlPy50YWJsZVJvd1RlbXBsYXRlQXJyb3dEaXJlY3Rpb24gPT09IFBvVGFibGVSb3dUZW1wbGF0ZUFycm93RGlyZWN0aW9uLlJpZ2h0O1xuICB9XG5cbiAgZ2V0IGNvbHVtbkNvdW50KCkge1xuICAgIGNvbnN0IGNvbHVtbkNvdW50ID1cbiAgICAgIHRoaXMubWFpbkNvbHVtbnMubGVuZ3RoICtcbiAgICAgICh0aGlzLmFjdGlvbnMubGVuZ3RoID4gMCA/IDEgOiAwKSArXG4gICAgICAodGhpcy5zZWxlY3RhYmxlID8gMSA6IDApICtcbiAgICAgICghdGhpcy5oaWRlRGV0YWlsICYmIHRoaXMuY29sdW1uTWFzdGVyRGV0YWlsICE9PSB1bmRlZmluZWQgPyAxIDogMCk7XG5cbiAgICByZXR1cm4gY29sdW1uQ291bnQgfHwgMTtcbiAgfVxuXG4gIGdldCBjb2x1bW5Db3VudEZvck1hc3RlckRldGFpbCgpIHtcbiAgICAvLyBjYXNvIHRpdmVyIGHDp8O1ZXMgc2Vyw6EgdXRpbGl6YWRvIGEgc3VhIGNvbHVuYSBwYXJhIGV4aWJpciBvIGNvbHVtbk1hbmFnZXJcbiAgICBjb25zdCBjb2x1bW5NYW5hZ2VyID0gdGhpcy5hY3Rpb25zLmxlbmd0aCA/IDAgOiAxO1xuXG4gICAgcmV0dXJuIHRoaXMubWFpbkNvbHVtbnMubGVuZ3RoICsgMSArICh0aGlzLmFjdGlvbnMubGVuZ3RoID4gMCA/IDEgOiAwKSArICh0aGlzLnNlbGVjdGFibGUgPyAxIDogMCkgKyBjb2x1bW5NYW5hZ2VyO1xuICB9XG5cbiAgZ2V0IGRldGFpbEhpZGVTZWxlY3QoKSB7XG4gICAgY29uc3QgbWFzdGVyRGV0YWlsID0gdGhpcy5jb2x1bW5NYXN0ZXJEZXRhaWw7XG4gICAgcmV0dXJuIG1hc3RlckRldGFpbCAmJiBtYXN0ZXJEZXRhaWwuZGV0YWlsID8gbWFzdGVyRGV0YWlsLmRldGFpbC5oaWRlU2VsZWN0IDogZmFsc2U7XG4gIH1cblxuICBnZXQgaGFzVmlzaWJsZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy52aXNpYmxlQWN0aW9ucy5sZW5ndGg7XG4gIH1cblxuICBnZXQgZmlyc3RBY3Rpb24oKTogUG9UYWJsZUFjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUFjdGlvbnMgJiYgdGhpcy52aXNpYmxlQWN0aW9uc1swXTtcbiAgfVxuXG4gIGdldCBoYXNGb290ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzSXRlbXMgJiYgdGhpcy5oYXNWaXNpYmxlU3VidGl0bGVDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IGhhc01hc3RlckRldGFpbENvbHVtbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5oYXNNYWluQ29sdW1ucyAmJiB0aGlzLmhhc0l0ZW1zICYmICF0aGlzLmhpZGVEZXRhaWwgJiYgISEodGhpcy5jb2x1bW5NYXN0ZXJEZXRhaWwgfHwgdGhpcy5oYXNSb3dUZW1wbGF0ZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGhhc1Jvd1RlbXBsYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudGFibGVSb3dUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCBoYXNTZWxlY3RhYmxlQ29sdW1uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGFibGUgJiYgdGhpcy5oYXNJdGVtcyAmJiB0aGlzLmhhc01haW5Db2x1bW5zO1xuICB9XG5cbiAgZ2V0IGhhc1ZhbGlkQ29sdW1ucygpIHtcbiAgICByZXR1cm4gISF0aGlzLnZhbGlkQ29sdW1ucy5sZW5ndGg7XG4gIH1cblxuICBnZXQgaGFzVmlzaWJsZVN1YnRpdGxlQ29sdW1ucygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJ0aXRsZUNvbHVtbnMuc29tZShjb2x1bW4gPT4gY29sdW1uLnZpc2libGUgIT09IGZhbHNlKTtcbiAgfVxuXG4gIGdldCBpc1NpbmdsZUFjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlQWN0aW9ucy5sZW5ndGggPT09IDE7XG4gIH1cblxuICBnZXQgdmlzaWJsZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucyAmJiB0aGlzLmFjdGlvbnMuZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24gJiYgYWN0aW9uLnZpc2libGUgIT09IGZhbHNlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNob3dNb3JlSW5maW5pdGVTY3JvbGwoeyB0YXJnZXQgfSk6IHZvaWQge1xuICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gdGFyZ2V0Lm9mZnNldEhlaWdodCArIHRhcmdldC5zY3JvbGxUb3A7XG4gICAgaWYgKCF0aGlzLnNob3dNb3JlRGlzYWJsZWQgJiYgc2Nyb2xsUG9zaXRpb24gPj0gdGFyZ2V0LnNjcm9sbEhlaWdodCAqICh0aGlzLmluZmluaXRlU2Nyb2xsRGlzdGFuY2UgLyAxMTApKSB7XG4gICAgICB0aGlzLm9uU2hvd01vcmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgdGhpcy5jaGVja0NoYW5nZXNJdGVtcygpO1xuICAgIHRoaXMudmVyaWZ5Q2FsY3VsYXRlSGVpZ2h0VGFibGVDb250YWluZXIoKTtcbiAgICAvLyBQZXJtaXRlIHF1ZSBvcyBjYWJlw6dhbGhvcyBzZWphbSBjYWxjdWxhZG9zIG5hIHByaW1laXJhIHZleiBxdWUgbyBjb21wb25lbnRlIHRvcm5hLXNlIHZpc8OtdmVsLFxuICAgIC8vIGV2aXRhbmRvIGNvbSBpc3NvLCBwcm9ibGVtYXMgY29tIFRhYnMgb3UgRGl2cyBxdWUgaW5pY2llbSBlc2NvbmRpZGFzLlxuICAgIGlmICh0aGlzLnRhYmxlV3JhcHBlckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggJiYgIXRoaXMudmlzaWJsZUVsZW1lbnQgJiYgdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5kZWJvdW5jZVJlc2l6ZSgpO1xuICAgICAgdGhpcy5jaGVja0luZmluaXRlU2Nyb2xsKCk7XG4gICAgICB0aGlzLnZpc2libGVFbGVtZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLml0ZW1TaXplID0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCA+IDEzNjYgPyA0NCA6IDMyO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3IgcmVhbGl6YXIgYnVzY2Egbm8gc2VydmnDp28gZGUgZGFkb3MgcG9kZW5kbyBpbmZvcm1hciBmaWx0cm9zIGUgY29tIG8gcmV0b3JubywgYXR1YWxpemEgYSB0YWJlbGEuXG4gICAqXG4gICAqIENhc28gbsOjbyBzZWphIGluZm9ybWFkbyBwYXLDom1ldHJvLCBuYWRhIHNlcsOhIGFkaWNpb25hZG8gYW8gR0VULCBjb25mb3JtZSBhYmFpeG86XG4gICAqIGBgYFxuICAgKiB1cmwgKyA/cGFnZT0xJnBhZ2VTaXplPTEwXG4gICAqIGBgYFxuICAgKiA+IE9iczogb3MgcGFyw6JtZXRyb3MgYHBhZ2VgIGUgYHBhZ2VTaXplYCBzZW1wcmUgc2Vyw6NvIGNoYW1hZG9zIGluZGVwZW5kZW50ZSBkZSBzZXIgZW52aWFkb3Mgb3V0cm9zIHBhcsOibWV0cm9zLlxuICAgKlxuICAgKiBDYXNvIHNlamFtIGluZm9ybWFkb3Mgb3MgcGFyw6JtZXRyb3MgYHsgbmFtZTogJ0pPSE4nLCBhZ2U6ICcyMycgfWAsIHRvZG9zIHNlcsOjbyBhZGljaW9uYWRvcyBhbyBHRVQsIGNvbmZvcm1lIGFiYWl4bzpcbiAgICogYGBgXG4gICAqIHVybCArID9wYWdlPTEmcGFnZVNpemU9MTAmbmFtZT1KT0hOJmFnZT0yM1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHsgeyBrZXk6IHZhbHVlIH0gfSBxdWVyeVBhcmFtcyBGb3JtYXRvIGRvIG9iamV0byBhIHNlciBlbnZpYWRvLlxuICAgKiA+IFBvZGUgc2VyIHV0aWxpemFkYSBxdWFscXVlciBzdHJpbmcgY29tbyBrZXksIGUgcXVhbHF1ZXIgc3RyaW5nIG91IG51bWJlciBjb21vIHZhbHVlLlxuICAgKi9cbiAgYXBwbHlGaWx0ZXJzKHF1ZXJ5UGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBRdWVyeVBhcmFtc1R5cGUgfSkge1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5pbml0aWFsaXplRGF0YShxdWVyeVBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyBxdWUgY29sYXBzYSB1bWEgbGluaGEgY29tIGRldGFsaGUgcXVhbmRvIGV4ZWN1dGFkYS5cbiAgICpcbiAgICogQHBhcmFtIHsgbnVtYmVyIH0gcm93SW5kZXggw41uZGljZSBkYSBsaW5oYSBxdWUgc2Vyw6EgY29sYXBzYWRhLlxuICAgKiA+IEFvIHJlb3JkZW5hciBvcyBkYWRvcyBkYSB0YWJlbGEsIG8gdmFsb3IgY29udGlkbyBuZXN0ZSDDrW5kaWNlIHNlcsOhIGFsdGVyYWRvIGNvbmZvcm1lIGEgb3JkZW5hw6fDo28uXG4gICAqL1xuICBjb2xsYXBzZShyb3dJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRTaG93RGV0YWlsKHJvd0luZGV4LCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyBxdWUgZXhwYW5kZSB1bWEgbGluaGEgY29tIGRldGFsaGUgcXVhbmRvIGV4ZWN1dGFkYS5cbiAgICpcbiAgICogQHBhcmFtIHsgbnVtYmVyIH0gcm93SW5kZXggw41uZGljZSBkYSBsaW5oYSBxdWUgc2Vyw6EgZXhwYW5kaWRhLlxuICAgKiA+IEFvIHJlb3JkZW5hciBvcyBkYWRvcyBkYSB0YWJlbGEsIG8gdmFsb3IgY29udGlkbyBuZXN0ZSDDrW5kaWNlIHNlcsOhIGFsdGVyYWRvIGNvbmZvcm1lIGEgb3JkZW5hw6fDo28uXG4gICAqL1xuICBleHBhbmQocm93SW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2V0U2hvd0RldGFpbChyb3dJbmRleCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0b3JuYSBhcyBsaW5oYXMgZG8gYHBvLXRhYmxlYCBxdWUgZXN0w6NvIHNlbGVjaW9uYWRhcy5cbiAgICovXG4gIGdldFNlbGVjdGVkUm93cygpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLiRzZWxlY3RlZCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0b3JuYSBhcyBsaW5oYXMgZG8gYHBvLXRhYmxlYCBxdWUgbsOjbyBlc3TDo28gc2VsZWNpb25hZGFzLlxuICAgKi9cbiAgZ2V0VW5zZWxlY3RlZFJvd3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uJHNlbGVjdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNtYXJjYSBhcyBsaW5oYXMgcXVlIGVzdMOjbyBzZWxlY2lvbmFkYXMuXG4gICAqL1xuICB1bnNlbGVjdFJvd3MoKSB7XG4gICAgY29uc3QgY29sdW1uRGV0YWlsID0gdGhpcy5uYW1lQ29sdW1uRGV0YWlsO1xuXG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgZGV0YWlsSXRlbXMgPSBjb2x1bW5EZXRhaWwgPyBpdGVtW2NvbHVtbkRldGFpbF0gOiBudWxsO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShkZXRhaWxJdGVtcykpIHtcbiAgICAgICAgZGV0YWlsSXRlbXMuZm9yRWFjaChkZXRhaWxJdGVtID0+IHtcbiAgICAgICAgICBkZXRhaWxJdGVtLiRzZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaXRlbS4kc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7XG4gIH1cblxuICBjaGVja0Rpc2FibGVkKHJvdywgY29sdW1uOiBQb1RhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIGNvbHVtbi5kaXNhYmxlZCA/IGNvbHVtbi5kaXNhYmxlZChyb3cpIDogZmFsc2U7XG4gIH1cblxuICBjb250YWluc01hc3RlckRldGFpbChyb3cpIHtcbiAgICByZXR1cm4gcm93W3RoaXMubmFtZUNvbHVtbkRldGFpbF0gJiYgcm93W3RoaXMubmFtZUNvbHVtbkRldGFpbF0ubGVuZ3RoO1xuICB9XG5cbiAgZXhlY3V0ZVRhYmxlQWN0aW9uKHJvdzogYW55LCB0YWJsZUFjdGlvbjogYW55KSB7XG4gICAgaWYgKCFyb3cuZGlzYWJsZWQgJiYgIXRoaXMudmFsaWRhdGVUYWJsZUFjdGlvbihyb3csIHRhYmxlQWN0aW9uKSkge1xuICAgICAgdGFibGVBY3Rpb24uYWN0aW9uKHJvdyk7XG4gICAgICB0aGlzLnRvZ2dsZVJvd0FjdGlvbihyb3cpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNtYXJjYSB1bWEgbGluaGEgcXVlIGVzdMOhIHNlbGVjaW9uYWRhLlxuICAgKi9cbiAgdW5zZWxlY3RSb3dJdGVtKGl0ZW1mbjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8ICgoaXRlbSkgPT4gYm9vbGVhbikpIHtcbiAgICB0aGlzLnRvZ2dsZVNlbGVjdChpdGVtZm4sIGZhbHNlKTtcblxuICAgIGlmICh0aGlzLml0ZW1zLmV2ZXJ5KGl0ZW0gPT4gIWl0ZW0uJHNlbGVjdGVkKSkge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY2lvbmEgdW1hIGxpbmhhIGRvICdwby10YWJsZScuXG4gICAqL1xuICBzZWxlY3RSb3dJdGVtKGl0ZW1mbjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8ICgoaXRlbSkgPT4gYm9vbGVhbikpIHtcbiAgICB0aGlzLnRvZ2dsZVNlbGVjdChpdGVtZm4sIHRydWUpO1xuXG4gICAgaWYgKHRoaXMuaXRlbXMuZXZlcnkoaXRlbSA9PiBpdGVtLiRzZWxlY3RlZCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdE51bWJlcih2YWx1ZTogYW55LCBmb3JtYXQ6IHN0cmluZykge1xuICAgIGlmICghZm9ybWF0KSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLCBmb3JtYXQpO1xuICB9XG5cbiAgZ2V0Q2VsbERhdGEocm93OiBhbnksIGNvbHVtbjogUG9UYWJsZUNvbHVtbik6IGFueSB7XG4gICAgY29uc3QgYXJyYXlQcm9wZXJ0eSA9IGNvbHVtbi5wcm9wZXJ0eS5zcGxpdCgnLicpO1xuICAgIGlmIChhcnJheVByb3BlcnR5Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IG5lc3RlZFByb3BlcnRpZXMgPSBhcnJheVByb3BlcnR5O1xuICAgICAgbGV0IHZhbHVlOiBhbnkgPSByb3c7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIG5lc3RlZFByb3BlcnRpZXMpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZVtwcm9wZXJ0eV0gfHwgdmFsdWVbcHJvcGVydHldID09PSAwID8gdmFsdWVbcHJvcGVydHldIDogJyc7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XTtcbiAgICB9XG4gIH1cblxuICBnZXRCb29sZWFuTGFiZWwocm93VmFsdWU6IGFueSwgY29sdW1uQm9vbGVhbjogUG9UYWJsZUNvbHVtbik6IHN0cmluZyB7XG4gICAgaWYgKHJvd1ZhbHVlIHx8IHJvd1ZhbHVlID09PSBmYWxzZSB8fCByb3dWYWx1ZSA9PT0gMCkge1xuICAgICAgcm93VmFsdWUgPSBjb252ZXJ0VG9Cb29sZWFuKHJvd1ZhbHVlKTtcblxuICAgICAgaWYgKGNvbHVtbkJvb2xlYW4uYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gcm93VmFsdWUgPyBjb2x1bW5Cb29sZWFuLmJvb2xlYW4udHJ1ZUxhYmVsIHx8ICdTaW0nIDogY29sdW1uQm9vbGVhbi5ib29sZWFuLmZhbHNlTGFiZWwgfHwgJ07Do28nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJvd1ZhbHVlID8gJ1NpbScgOiAnTsOjbyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvd1ZhbHVlO1xuICB9XG5cbiAgZ2V0Q29sdW1uSWNvbnMocm93OiBhbnksIGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IHJvd0ljb25zID0gdGhpcy5nZXRDZWxsRGF0YShyb3csIGNvbHVtbik7XG5cbiAgICBpZiAoY29sdW1uLmljb25zKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dJY29ucykpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVyZ2VDdXN0b21JY29ucyhyb3dJY29ucywgY29sdW1uLmljb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRDdXN0b21JY29uKHJvd0ljb25zLCBjb2x1bW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByb3dJY29ucztcbiAgfVxuXG4gIGdldENvbHVtbkxhYmVsKHJvdzogYW55LCBjb2x1bW5MYWJlbDogUG9UYWJsZUNvbHVtbik6IFBvVGFibGVDb2x1bW5MYWJlbCB7XG4gICAgcmV0dXJuIGNvbHVtbkxhYmVsLmxhYmVscy5maW5kKGxhYmVsSXRlbSA9PiB0aGlzLmdldENlbGxEYXRhKHJvdywgY29sdW1uTGFiZWwpID09PSBsYWJlbEl0ZW0udmFsdWUpO1xuICB9XG5cbiAgZ2V0U3VidGl0bGVDb2x1bW4ocm93OiBhbnksIHN1YnRpdGxlQ29sdW1uOiBQb1RhYmxlQ29sdW1uKTogUG9UYWJsZVN1YnRpdGxlQ29sdW1uIHtcbiAgICByZXR1cm4gc3VidGl0bGVDb2x1bW4uc3VidGl0bGVzLmZpbmQoc3VidGl0bGVJdGVtID0+IHRoaXMuZ2V0Q2VsbERhdGEocm93LCBzdWJ0aXRsZUNvbHVtbikgPT09IHN1YnRpdGxlSXRlbS52YWx1ZSk7XG4gIH1cblxuICBpc1Nob3dNYXN0ZXJEZXRhaWwocm93KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLmhpZGVEZXRhaWwgJiZcbiAgICAgIHRoaXMubmFtZUNvbHVtbkRldGFpbCAmJlxuICAgICAgcm93LiRzaG93RGV0YWlsICYmXG4gICAgICB0aGlzLmNvbnRhaW5zTWFzdGVyRGV0YWlsKHJvdykgJiZcbiAgICAgICF0aGlzLmhhc1Jvd1RlbXBsYXRlXG4gICAgKTtcbiAgfVxuXG4gIGlzU2hvd1Jvd1RlbXBsYXRlKHJvdywgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnRhYmxlUm93VGVtcGxhdGUgJiYgdGhpcy50YWJsZVJvd1RlbXBsYXRlLnBvVGFibGVSb3dUZW1wbGF0ZVNob3cpIHtcbiAgICAgIHJldHVybiB0aGlzLnRhYmxlUm93VGVtcGxhdGUucG9UYWJsZVJvd1RlbXBsYXRlU2hvdyhyb3csIGluZGV4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG9uQ2xpY2tMaW5rKGV2ZW50LCByb3csIGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIGlmICghdGhpcy5jaGVja0Rpc2FibGVkKHJvdywgY29sdW1uKSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2VWaXNpYmxlQ29sdW1ucyhjb2x1bW5zOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5jaGFuZ2VWaXNpYmxlQ29sdW1ucy5lbWl0KGNvbHVtbnMpO1xuICB9XG5cbiAgb25Db2x1bW5SZXN0b3JlTWFuYWdlcih2YWx1ZTogQXJyYXk8U3RyaW5nPikge1xuICAgIHRoaXMuY29sdW1uUmVzdG9yZU1hbmFnZXIuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBvblZpc2libGVDb2x1bW5zQ2hhbmdlKGNvbHVtbnM6IEFycmF5PFBvVGFibGVDb2x1bW4+KSB7XG4gICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9vbHRpcE1vdXNlRW50ZXIoZXZlbnQ6IGFueSwgY29sdW1uPzogUG9UYWJsZUNvbHVtbiwgcm93PzogYW55KSB7XG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHVuZGVmaW5lZDtcblxuICAgIGlmICh0aGlzLmhpZGVUZXh0T3ZlcmZsb3cgJiYgZXZlbnQudGFyZ2V0Lm9mZnNldFdpZHRoIDwgZXZlbnQudGFyZ2V0LnNjcm9sbFdpZHRoICYmIGV2ZW50LnRhcmdldC5pbm5lclRleHQudHJpbSgpKSB7XG4gICAgICByZXR1cm4gKHRoaXMudG9vbHRpcFRleHQgPSBldmVudC50YXJnZXQuaW5uZXJUZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoY29sdW1uKSB7XG4gICAgICB0aGlzLmNoZWNraW5nSWZDb2x1bW5IYXNUb29sdGlwKGNvbHVtbiwgcm93KTtcbiAgICB9XG4gIH1cblxuICB0b29sdGlwTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLnRvb2x0aXBUZXh0ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgdG9nZ2xlUG9wdXAocm93LCB0YXJnZXRSZWYpIHtcbiAgICB0aGlzLnBvcHVwVGFyZ2V0ID0gdGFyZ2V0UmVmO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgdGhpcy5wb1BvcHVwQ29tcG9uZW50LnRvZ2dsZShyb3cpO1xuICB9XG5cbiAgdHJhY2tCeShpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgdmFsaWRhdGVUYWJsZUFjdGlvbihyb3c6IGFueSwgdGFibGVBY3Rpb246IGFueSkge1xuICAgIGlmICh0eXBlb2YgdGFibGVBY3Rpb24uZGlzYWJsZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0YWJsZUFjdGlvbi5kaXNhYmxlZChyb3cpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGFibGVBY3Rpb24uZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgb25PcGVuQ29sdW1uTWFuYWdlcigpIHtcbiAgICB0aGlzLmxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkID0gWy4uLnRoaXMuY29sdW1uc107XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyBxdWUgcmVtb3ZlIHVtIGl0ZW0gZGEgdGFiZWxhLlxuICAgKlxuICAgKiBAcGFyYW0geyBudW1iZXIgfCB7IGtleTogdmFsdWUgfSB9IGl0ZW0gw41uZGljZSBkYSBsaW5oYSBvdSBvIGl0ZW0gcXVlIHNlcsOhIHJlbW92aWRvLlxuICAgKiA+IEFvIHJlbW92ZXIgbyBpdGVtLCBhIGxpbmhhIHF1ZSBvIHJlcHJlc2VudGEgc2Vyw6EgZXhjbHXDrWRhIGRhIHRhYmVsYS5cbiAgICovXG4gIHJlbW92ZUl0ZW0oaXRlbTogbnVtYmVyIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoZmlsdGVySXRlbSA9PiBmaWx0ZXJJdGVtICE9PSBpdGVtKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBpdGVtID09PSAnbnVtYmVyJykge1xuICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IGl0ZW07XG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIGF0dWFsaXphIHVtIGl0ZW0gZGEgdGFiZWxhLlxuICAgKlxuICAgKiBAcGFyYW0geyBudW1iZXIgfCB7IGtleTogdmFsdWUgfSB9IGl0ZW0gw41uZGljZSBkYSBsaW5oYSBvdSBvIGl0ZW0gcXVlIHNlcsOhIGF0dWFsaXphZG8uXG4gICAqIEBwYXJhbSB7IHsga2V5OiB2YWx1ZSB9IH0gdXBkYXRlZEl0ZW0gSXRlbSBxdWUgZm9pIGF0dWFsaXphZG8uXG4gICAqID4gQW8gYXR1YWxpemFyIG8gaXRlbSwgYSBpbmZvcm1hw6fDo28gc2Vyw6EgYWx0ZXJhZGEgbmEgdGFiZWxhLlxuICAgKi9cbiAgdXBkYXRlSXRlbShpdGVtOiBudW1iZXIgfCB7IFtrZXk6IHN0cmluZ106IGFueSB9LCB1cGRhdGVkSXRlbTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGl0ZW0sIDEsIHVwZGF0ZWRJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLml0ZW1zLmZpbmRJbmRleChpbmRleEl0ZW0gPT4gaW5kZXhJdGVtID09PSBpdGVtKTtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVkSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRlbXBsYXRlKGNvbHVtbjogUG9UYWJsZUNvbHVtbik6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlOiBQb1RhYmxlQ29sdW1uVGVtcGxhdGVEaXJlY3RpdmUgPSB0aGlzLnRhYmxlQ29sdW1uVGVtcGxhdGVzLmZpbmQoXG4gICAgICB0YWJsZUNvbHVtblRlbXBsYXRlID0+IHRhYmxlQ29sdW1uVGVtcGxhdGUudGFyZ2V0UHJvcGVydHkgPT09IGNvbHVtbi5wcm9wZXJ0eVxuICAgICk7XG4gICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTsOjbyBmb2kgcG9zc8OtdmVsIGVuY29udHJhciBvIHRlbXBsYXRlIHBhcmEgYSBjb2x1bmE6ICR7Y29sdW1uLnByb3BlcnR5fSwgcG9yIGdlbnRpbGV6YSBpbmZvcm1lIGEgcHJvcHJpZWRhZGUgW3AtcHJvcGVydHldYFxuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGVtcGxhdGUudGVtcGxhdGVSZWY7XG4gIH1cblxuICBwdWJsaWMgc3luY3Jvbml6ZUhvcml6b250YWxTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5wb1RhYmxlVGhlYWQubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5wb1RhYmxlVGJvZHlWaXJ0dWFsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRXaWR0aENvbHVtbk1hbmFnZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVpZ2h0XG4gICAgICA/IHRoaXMuY29sdW1uTWFuYWdlckZpeGVkPy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXG4gICAgICA6IHRoaXMuY29sdW1uTWFuYWdlcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5XaWR0aEFjdGlvbnNMZWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmhlaWdodFxuICAgICAgPyB0aGlzLmNvbHVtbkFjdGlvbkxlZnRGaXhlZD8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aFxuICAgICAgOiB0aGlzLmNvbHVtbkFjdGlvbkxlZnQ/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FsY3VsYXRlSGVpZ2h0VGFibGVDb250YWluZXIoaGVpZ2h0KSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJzZUZsb2F0KGhlaWdodCk7XG4gICAgdGhpcy5oZWlnaHRUYWJsZUNvbnRhaW5lciA9IHZhbHVlID8gdmFsdWUgLSB0aGlzLmdldEhlaWdodFRhYmxlRm9vdGVyKCkgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5oZWlnaHRUYWJsZVZpcnR1YWwgPSB0aGlzLmhlaWdodFRhYmxlQ29udGFpbmVyXG4gICAgICA/IHRoaXMuaGVpZ2h0VGFibGVDb250YWluZXIgLSB0aGlzLmdldEhlaWdodFRhYmxlSGVhZGVyKClcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2V0VGFibGVPcGFjaXR5KDEpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzSW5maW5pdGVTY3JvbGwoKSkge1xuICAgICAgaWYgKHRoaXMucG9UYWJsZVRib2R5VmlydHVhbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCA+PSB0aGlzLmhlaWdodCkge1xuICAgICAgICB0aGlzLmluY2x1ZGVJbmZpbml0ZVNjcm9sbCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbmZpbml0ZVNjcm9sbCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tDaGFuZ2VzSXRlbXMoKSB7XG4gICAgY29uc3QgY2hhbmdlc0l0ZW1zID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLml0ZW1zKTtcblxuICAgIGlmIChjaGFuZ2VzSXRlbXMgJiYgdGhpcy5zZWxlY3RBbGwpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc0l0ZW1zICYmICF0aGlzLmhhc0NvbHVtbnMgJiYgdGhpcy5oYXNJdGVtcykge1xuICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy5nZXREZWZhdWx0Q29sdW1ucyh0aGlzLml0ZW1zWzBdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNraW5nSWZDb2x1bW5IYXNUb29sdGlwKGNvbHVtbiwgcm93KSB7XG4gICAgaWYgKGNvbHVtbi50eXBlID09PSAnbGluaycgJiYgY29sdW1uLnRvb2x0aXAgJiYgIXRoaXMuY2hlY2tEaXNhYmxlZChyb3csIGNvbHVtbikpIHtcbiAgICAgIHJldHVybiAodGhpcy50b29sdGlwVGV4dCA9IGNvbHVtbi50b29sdGlwKTtcbiAgICB9XG5cbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdsYWJlbCcpIHtcbiAgICAgIGNvbnN0IGNvbHVtbkxhYmVsID0gdGhpcy5nZXRDb2x1bW5MYWJlbChyb3csIGNvbHVtbik7XG4gICAgICByZXR1cm4gKHRoaXMudG9vbHRpcFRleHQgPSBjb2x1bW5MYWJlbD8udG9vbHRpcCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWJvdW5jZVJlc2l6ZSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0UmVzaXplKTtcbiAgICB0aGlzLnRpbWVvdXRSZXNpemUgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIHNob3cgdGhlIHRhYmxlXG4gICAgICB0aGlzLnNldFRhYmxlT3BhY2l0eSgxKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEN1c3RvbUljb24ocm93SWNvbnMsIGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IGN1c3RvbUljb24gPSBjb2x1bW4uaWNvbnMuZmluZChpY29uID0+IHJvd0ljb25zID09PSBpY29uLnZhbHVlKTtcbiAgICByZXR1cm4gY3VzdG9tSWNvbiA/IFtjdXN0b21JY29uXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGVpZ2h0VGFibGVGb290ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVGb290ZXJFbGVtZW50ID8gdGhpcy50YWJsZUZvb3RlckVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIZWlnaHRUYWJsZUhlYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wb1RhYmxlVGhlYWQ/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldEhlaWdodFxuICAgICAgPyB0aGlzLnBvVGFibGVUaGVhZC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodFxuICAgICAgOiB0aGlzLml0ZW1TaXplO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNJbmZpbml0ZVNjcm9sbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbmZpbml0ZVNjcm9sbCAmJlxuICAgICAgdGhpcy5oYXNJdGVtcyAmJlxuICAgICAgIXRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQgJiZcbiAgICAgIHRoaXMuaGVpZ2h0ICYmXG4gICAgICB0aGlzLnBvVGFibGVUYm9keVZpcnR1YWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmNsdWRlSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxFdmVudCQgPSB0aGlzLmRlZmF1bHRTZXJ2aWNlLnNjcm9sbExpc3RlbmVyKHRoaXMucG9UYWJsZVRib2R5VmlydHVhbC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvblNjcm9sbEV2ZW50ID0gdGhpcy5zY3JvbGxFdmVudCQuc3Vic2NyaWJlKGV2ZW50ID0+IHRoaXMuc2hvd01vcmVJbmZpbml0ZVNjcm9sbChldmVudCkpO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlQ3VzdG9tSWNvbnMocm93SWNvbnM6IEFycmF5PHN0cmluZz4sIGN1c3RvbUljb25zOiBBcnJheTxhbnk+KSB7XG4gICAgY29uc3QgbWVyZ2VkSWNvbnMgPSBbXTtcblxuICAgIHJvd0ljb25zLmZvckVhY2goY29sdW1uVmFsdWUgPT4ge1xuICAgICAgY29uc3QgZm91bmRDdXN0b21JY29uID0gY3VzdG9tSWNvbnMuZmluZChcbiAgICAgICAgY3VzdG9tSWNvbiA9PiBjb2x1bW5WYWx1ZSA9PT0gY3VzdG9tSWNvbi5pY29uIHx8IGNvbHVtblZhbHVlID09PSBjdXN0b21JY29uLnZhbHVlXG4gICAgICApO1xuICAgICAgZm91bmRDdXN0b21JY29uID8gbWVyZ2VkSWNvbnMucHVzaChmb3VuZEN1c3RvbUljb24pIDogbWVyZ2VkSWNvbnMucHVzaChjb2x1bW5WYWx1ZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWVyZ2VkSWNvbnM7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxpc3RlbmVycygpIHtcbiAgICBpZiAodGhpcy5yZXNpemVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5yZXNpemVMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsaWNrTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuY2xpY2tMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvblNjcm9sbEV2ZW50KSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvblNjcm9sbEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRUYWJsZU9wYWNpdHkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMudGFibGVPcGFjaXR5ID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHZlcmlmeUNoYW5nZUhlaWdodEluRm9vdGVyKCkge1xuICAgIHJldHVybiB0aGlzLmZvb3RlckhlaWdodCAhPT0gdGhpcy5nZXRIZWlnaHRUYWJsZUZvb3RlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlDaGFuZ2VIZWlnaHRJbkhlYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJIZWlnaHQgIT09IHRoaXMuZ2V0SGVpZ2h0VGFibGVIZWFkZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2ZXJpZnlDYWxjdWxhdGVIZWlnaHRUYWJsZUNvbnRhaW5lcigpIHtcbiAgICBpZiAodGhpcy5oZWlnaHQgJiYgdGhpcy52ZXJpZnlDaGFuZ2VIZWlnaHRJbkZvb3RlcigpKSB7XG4gICAgICB0aGlzLmZvb3RlckhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0VGFibGVGb290ZXIoKTtcblxuICAgICAgaWYgKHRoaXMudmVyaWZ5Q2hhbmdlSGVpZ2h0SW5IZWFkZXIoKSkge1xuICAgICAgICB0aGlzLmhlYWRlckhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0VGFibGVIZWFkZXIoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jYWxjdWxhdGVIZWlnaHRUYWJsZUNvbnRhaW5lcih0aGlzLmhlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVTZWxlY3QoY29tcGFyZSwgc2VsZWN0VmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIGNvbXBhcmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW0gPT09IGNvbXBhcmUpIHtcbiAgICAgICAgICBpdGVtLiRzZWxlY3RlZCA9IHNlbGVjdFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoY29tcGFyZShpdGVtKSkge1xuICAgICAgICAgIGl0ZW0uJHNlbGVjdGVkID0gc2VsZWN0VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPHBvLWNvbnRhaW5lciAqbmdJZj1cImNvbnRhaW5lcjsgZWxzZSB0YWJsZUNvbnRhaW5lclRlbXBsYXRlXCIgcC1uby1wYWRkaW5nIFtwLW5vLXNoYWRvd109XCJjb250YWluZXIgPT09ICdib3JkZXInXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUNvbnRhaW5lclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L3BvLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN0YWJsZUNvbnRhaW5lclRlbXBsYXRlPlxuICA8ZGl2IFtjbGFzcy5wby10YWJsZS1jb250YWluZXItcmVsYXRpdmVdPVwibG9hZGluZ1wiPlxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJwby10YWJsZS1vdmVybGF5XCI+XG4gICAgICA8cG8tbG9hZGluZyBjbGFzcz1cInBvLXRhYmxlLW92ZXJsYXktY29udGVudFwiIFtwLXRleHRdPVwibGl0ZXJhbHMubG9hZGluZ0RhdGFcIj48L3BvLWxvYWRpbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tdGFibGUtbWFpbi1jb250YWluZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgI3RhYmxlV3JhcHBlclxuICAgICAgICBjbGFzcz1cInBvLXRhYmxlLXdyYXBwZXJcIlxuICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWNvbHVtbnMtcGl4ZWxzXT1cImFsbENvbHVtbnNXaWR0aFBpeGVsc1wiXG4gICAgICAgIFtzdHlsZS5vcGFjaXR5XT1cInRhYmxlT3BhY2l0eVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJoZWlnaHRcIiBjbGFzcz1cInBvLXRhYmxlLWNvbnRhaW5lclwiIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0VGFibGVDb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2ICNwb1RhYmxlVGhlYWQgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItZml4ZWQgcG8tdGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVIZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiAjcG9UYWJsZVRib2R5IGNsYXNzPVwicG8tdGFibGUtY29udGFpbmVyLWZpeGVkLWlubmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVpZ2h0OyB0aGVuIHRhYmxlQm9keVRlbXBsYXRlOyBlbHNlIHRhYmxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFoZWlnaHRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicG8tdGFibGUtZm9vdGVyXCIgKm5nSWY9XCJoYXNGb290ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc3VidGl0bGVDb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICA8cG8tdGFibGUtc3VidGl0bGUtZm9vdGVyIFtwLWxpdGVyYWxzXT1cImxpdGVyYWxzXCIgW3Atc3VidGl0bGVzXT1cImNvbHVtbi5zdWJ0aXRsZXNcIj4gPC9wby10YWJsZS1zdWJ0aXRsZS1mb290ZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdlxuICAqbmdJZj1cIiFpbmZpbml0ZVNjcm9sbFwiXG4gIGNsYXNzPVwicG8tcm93IHBvLXRhYmxlLWZvb3Rlci1zaG93LW1vcmVcIlxuICBbY2xhc3MucG8taW52aXNpYmxlXT1cInNob3dNb3JlLm9ic2VydmVycy5sZW5ndGggPT09IDAgJiYgIWhhc1NlcnZpY2VcIlxuICAjdGFibGVGb290ZXJcbj5cbiAgPHBvLWJ1dHRvblxuICAgIGNsYXNzPVwicG8tb2Zmc2V0LXhsLTQgcG8tb2Zmc2V0LWxnLTQgcG8tb2Zmc2V0LW1kLTMgcG8tbGctNCBwby1tZC02XCJcbiAgICBbcC1kaXNhYmxlZF09XCJzaG93TW9yZURpc2FibGVkXCJcbiAgICBbcC1sYWJlbF09XCJsaXRlcmFscy5sb2FkTW9yZURhdGFcIlxuICAgIFtwLWxvYWRpbmddPVwibG9hZGluZ1Nob3dNb3JlXCJcbiAgICAocC1jbGljayk9XCJvblNob3dNb3JlKClcIlxuICA+XG4gIDwvcG8tYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVIZWFkZXJUZW1wbGF0ZT5cbiAgPHRhYmxlIGNsYXNzPVwicG8tdGFibGVcIiBbY2xhc3MucG8tdGFibGUtc3RyaXBlZF09XCJzdHJpcGVkXCIgW2NsYXNzLnBvLXRhYmxlLWxheW91dC1maXhlZF09XCJoaWRlVGV4dE92ZXJmbG93XCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyIFtjbGFzcy5wby10YWJsZS1oZWFkZXJdPVwiaGVpZ2h0XCI+XG4gICAgICAgIDx0aCAqbmdJZj1cImhhc1NlbGVjdGFibGVDb2x1bW5cIiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1zZWxlY3RhYmxlXCI+XG4gICAgICAgICAgPGRpdiBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiPlxuICAgICAgICAgICAgPHBvLWNoZWNrYm94XG4gICAgICAgICAgICAgIG5hbWU9XCJzZWxlY3RBbGxcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFoaWRlU2VsZWN0QWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbFJvd3MoKVwiXG4gICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJzZWxlY3RBbGxSb3dzKClcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdEFsbFwiXG4gICAgICAgICAgICA+PC9wby1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cIihoYXNNYXN0ZXJEZXRhaWxDb2x1bW4gfHwgaGFzUm93VGVtcGxhdGUpICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxcIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8IS0tIENvbHVuYSBjcmlhZGEgcGFyYSBjYXNvIGFzIGHDp8O1ZXMgZmlxdWVtIG5vIGxhZG8gZXNxdWVyZG8gLS0+XG4gICAgICAgIDx0aFxuICAgICAgICAgICNjb2x1bW5BY3Rpb25MZWZ0Rml4ZWRcbiAgICAgICAgICAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbilcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItbWFzdGVyLWRldGFpbF09XCIhaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc2luZ2xlLWFjdGlvbl09XCJpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aCAqbmdJZj1cIiFoYXNNYWluQ29sdW1uc1wiICNub0NvbHVtbnNIZWFkZXJGaXhlZCBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVpZ2h0OyB0aGVuIG5vQ29sdW1uc1dpdGhIZWlnaHQ7IGVsc2Ugbm9Db2x1bW5zV2l0aG91dEhlaWdodFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIG1haW5Db2x1bW5zOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1lbGxpcHNpc1wiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICBbY2xhc3MucG8tY2xpY2thYmxlXT1cIihzb3J0ICYmIGNvbHVtbi5zb3J0YWJsZSAhPT0gZmFsc2UpIHx8IGhhc1NlcnZpY2VcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc3VidGl0bGVdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgIChjbGljayk9XCJzb3J0Q29sdW1uKGNvbHVtbilcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItZmxleFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZsZXgtcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZmxleC1jZW50ZXJdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50SGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHQgJiYgKGhhc1Zpc2libGVBY3Rpb25zIHx8IGhpZGVDb2x1bW5zTWFuYWdlcilcIlxuICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbiBwby10YWJsZS1oZWFkZXItbWFzdGVyLWRldGFpbFwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwiaGFzVmlzaWJsZUFjdGlvbnMgJiYgaGlkZUNvbHVtbnNNYW5hZ2VyICYmIGFjdGlvblJpZ2h0XCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXNpbmdsZS1hY3Rpb25dPVwiaXNTaW5nbGVBY3Rpb24gJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1hY3Rpb25zXT1cIiFpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICNjb2x1bW5NYW5hZ2VyRml4ZWRcbiAgICAgICAgICAqbmdJZj1cImhhc1ZhbGlkQ29sdW1ucyAmJiAhaGlkZUNvbHVtbnNNYW5hZ2VyXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyXT1cIiFpc1NpbmdsZUFjdGlvbiB8fCAhYWN0aW9uUmlnaHRcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYm9yZGVyXT1cIiFoZWlnaHQgJiYgY29udGFpbmVyXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXNpbmdsZS1hY3Rpb25dPVwiaXNTaW5nbGVBY3Rpb24gJiYgYWN0aW9uUmlnaHRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1ib3JkZXJdPVwiaGVpZ2h0ICYmIGNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiaGVpZ2h0ICYmIHZpc2libGVBY3Rpb25zLmxlbmd0aCA/IGNvbHVtbk1hbmFnZXJGaXhlZC5vZmZzZXRXaWR0aCA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAjY29sdW1uTWFuYWdlclRhcmdldEZpeGVkXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpdGVyYWxzLmNvbHVtbnNNYW5hZ2VyXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYnV0dG9uIHBvLWljb24gcG8taWNvbi1zZXR0aW5ncyBwby1jbGlja2FibGVcIlxuICAgICAgICAgICAgICBwLXRvb2x0aXAtcG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgW3AtdG9vbHRpcF09XCJsaXRlcmFscy5jb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbk9wZW5Db2x1bW5NYW5hZ2VyKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICA8L3RhYmxlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBzw7MgdmlydHVhbCAtLT5cbjxuZy10ZW1wbGF0ZSAjdGFibGVCb2R5VGVtcGxhdGU+XG4gIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcbiAgICAjcG9UYWJsZVRib2R5VmlydHVhbFxuICAgIFtpdGVtU2l6ZV09XCJpdGVtU2l6ZVwiXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRUYWJsZVZpcnR1YWxcIlxuICAgIFttaW5CdWZmZXJQeF09XCJoZWlnaHRUYWJsZVZpcnR1YWwgPCAxMDAgPyAxMDAgOiBoZWlnaHRUYWJsZVZpcnR1YWxcIlxuICAgIFttYXhCdWZmZXJQeF09XCJoZWlnaHRUYWJsZVZpcnR1YWwgPCAyMDAgPyAyMDAgOiBoZWlnaHRUYWJsZVZpcnR1YWxcIlxuICAgIChzY3JvbGwpPVwic3luY3Jvbml6ZUhvcml6b250YWxTY3JvbGwoKVwiXG4gID5cbiAgICA8dGFibGUgY2xhc3M9XCJwby10YWJsZVwiIFtjbGFzcy5wby10YWJsZS1zdHJpcGVkXT1cInN0cmlwZWRcIiBbY2xhc3MucG8tdGFibGUtbGF5b3V0LWZpeGVkXT1cImhpZGVUZXh0T3ZlcmZsb3dcIj5cbiAgICAgIDx0Ym9keSBjbGFzcz1cInBvLXRhYmxlLWdyb3VwLXJvd1wiICpuZ0lmPVwiIWhhc0l0ZW1zIHx8ICFoYXNNYWluQ29sdW1uc1wiPlxuICAgICAgICA8dHIgY2xhc3M9XCJwby10YWJsZS1yb3cgcG8tdGFibGUtcm93LW5vLWRhdGFcIj5cbiAgICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sdW1uQ291bnRcIiBjbGFzcz1cInBvLXRhYmxlLW5vLWRhdGEgcG8tdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuPiB7eyBsaXRlcmFscy5ub0RhdGEgfX0gPC9zcGFuPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc01haW5Db2x1bW5zXCI+XG4gICAgICAgIDx0Ym9keSBjbGFzcz1cInBvLXRhYmxlLWdyb3VwLXJvd1wiICpjZGtWaXJ0dWFsRm9yPVwibGV0IHJvdyBvZiBpdGVtczsgbGV0IHJvd0luZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIj5cbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtcm93XCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1yb3ctYWN0aXZlXT1cInJvdy4kc2VsZWN0ZWQgfHwgKHJvdy4kc2VsZWN0ZWQgPT09IG51bGwgJiYgc2VsZWN0YWJsZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGFibGVcIiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1zZWxlY3RhYmxlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW5nbGVTZWxlY3QgPyBpbnB1dFJhZGlvIDogaW5wdXRDaGVja2JveDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdyB9XCI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cblxuICAgICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbG8gaW5wdXQgZG8gcG8tdGFibGUgLS0+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW5NYXN0ZXJEZXRhaWwgJiYgIWhpZGVEZXRhaWwgJiYgIWhhc1Jvd1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEZXRhaWwocm93KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvVGFibGVDb2x1bW5EZXRhaWxcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgIDwhLS0gQ29sdW5hIGNvbSBhcyBhw6fDtWVzIG5hIGVzcXVlcmRhIChwYWRyw6NvKS0tPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWFjdGlvblJpZ2h0ICYmICh2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAxIHx8IGlzU2luZ2xlQWN0aW9uKVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIkFjdGlvbnNDb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8IS0tIFZhbGlkYSBzZSBhIG9yaWdlbSBkbyBkZXRhaWwgw6kgcGVsYSBkaXJldGl2YSAtLT5cbiAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEZXRhaWwocm93KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvVGFibGVDb2x1bW5EZXRhaWxcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIG1haW5Db2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbl09XCJjb2x1bW4udHlwZSAhPT0gJ2ljb24nXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbi1yaWdodF09XCJjb2x1bW4udHlwZSA9PT0gJ2N1cnJlbmN5JyB8fCBjb2x1bW4udHlwZSA9PT0gJ251bWJlcidcIlxuICAgICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtY29sdW1uLWNlbnRlcl09XCJjb2x1bW4udHlwZSA9PT0gJ3N1YnRpdGxlJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4taWNvbnNdPVwiY29sdW1uLnR5cGUgPT09ICdpY29uJ1wiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldENsYXNzQ29sb3Iocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhc1NlbGVjdGFibGVSb3coKSA/IHNlbGVjdFJvdyhyb3cpIDogJ2phdmFzY3JpcHQ6OydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tY2VsbCBub3RyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWJvZHktZWxsaXBzaXNdPVwiaGlkZVRleHRPdmVyZmxvd1wiXG4gICAgICAgICAgICAgICAgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCJcbiAgICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInRvb2x0aXBUZXh0XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwibm9Db2x1bW5zSGVhZGVyRml4ZWQ/Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8ub2Zmc2V0V2lkdGhcIlxuICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInRvb2x0aXBNb3VzZUVudGVyKCRldmVudCwgY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJ0b29sdGlwTW91c2VMZWF2ZSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY29sdW1uVGVtcGxhdGUnXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2V0VGVtcGxhdGUoY29sdW1uKTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB9XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY2VsbFRlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQ2VsbFRlbXBsYXRlPy50ZW1wbGF0ZVJlZjsgY29udGV4dDogeyByb3c6IHJvdywgY29sdW1uOiBjb2x1bW4gfVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRCb29sZWFuTGFiZWwoZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pLCBjb2x1bW4pIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IGN1cnJlbmN5OiBjb2x1bW4uZm9ybWF0OidzeW1ib2wnOicxLjItMicgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBkYXRlOiBjb2x1bW4uZm9ybWF0IHx8ICdkZC9NTS95eXl5JyB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGltZSdcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IHBvX3RpbWU6IGNvbHVtbi5mb3JtYXQgfHwgJ0hIOm1tOnNzLmZmZmZmZicgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVUaW1lJ1wiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgZGF0ZTogY29sdW1uLmZvcm1hdCB8fCAnZGQvTU0veXl5eSBISDptbTpzcycgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdE51bWJlcihnZXRDZWxsRGF0YShyb3csIGNvbHVtbiksIGNvbHVtbi5mb3JtYXQpIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1saW5rXG4gICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCJcbiAgICAgICAgICAgICAgICAgIFtwLWFjdGlvbl09XCJjb2x1bW4uYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImNoZWNrRGlzYWJsZWQocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgIFtwLWxpbmtdPVwicm93W2NvbHVtbi5saW5rXVwiXG4gICAgICAgICAgICAgICAgICBbcC1yb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIFtwLXZhbHVlXT1cImdldENlbGxEYXRhKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0xpbmsoJGV2ZW50LCByb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3BvLXRhYmxlLWNvbHVtbi1saW5rPlxuXG4gICAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1pY29uXG4gICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCJcbiAgICAgICAgICAgICAgICAgIFtwLWNvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgW3AtaWNvbnNdPVwiZ2V0Q29sdW1uSWNvbnMocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgIFtwLXJvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3BvLXRhYmxlLWNvbHVtbi1pY29uPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidzdWJ0aXRsZSdcIj5cbiAgICAgICAgICAgICAgICAgIDxwby10YWJsZS1zdWJ0aXRsZS1jaXJjbGUgW3Atc3VidGl0bGVdPVwiZ2V0U3VidGl0bGVDb2x1bW4ocm93LCBjb2x1bW4pXCI+PC9wby10YWJsZS1zdWJ0aXRsZS1jaXJjbGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCI+XG4gICAgICAgICAgICAgICAgICA8cG8tdGFibGUtY29sdW1uLWxhYmVsIFtwLXZhbHVlXT1cImdldENvbHVtbkxhYmVsKHJvdywgY29sdW1uKVwiPiA8L3BvLXRhYmxlLWNvbHVtbi1sYWJlbD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD57eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cblxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICA8IS0tIENvbHVuYSBkZSBhw6dvZXMgbmEgZGlyZWl0YSAtLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiQWN0aW9uc0NvbHVtblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDwhLS0gQ29sdW5hIHBhcmEgbsOjbyBmaWNhciBlbSBicmFuY28gbmFzIGxpbmhhcyBkZSBnZXJlbmNpYW1lbnRvIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbikgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4gcG8tdGFibGUtY29sdW1uLWVtcHR5XCI+PC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIENvbHVtbiBNYW5hZ2VyIC0tPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWhhc1Zpc2libGVBY3Rpb25zICYmICFoaWRlQ29sdW1uc01hbmFnZXIgJiYgIWhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtblwiXG4gICAgICAgICAgICA+PC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPHRyICpuZ0lmPVwiaGFzTWFpbkNvbHVtbnMgJiYgaGFzUm93VGVtcGxhdGUgJiYgcm93LiRzaG93RGV0YWlsICYmIGlzU2hvd1Jvd1RlbXBsYXRlKHJvdywgcm93SW5kZXgpXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1yb3ctdGVtcGxhdGUtY29udGFpbmVyXCIgW2NvbFNwYW5dPVwiY29sdW1uQ291bnRGb3JNYXN0ZXJEZXRhaWxcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVSb3dUZW1wbGF0ZS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPHRyICpuZ0lmPVwiaGFzTWFpbkNvbHVtbnMgJiYgaXNTaG93TWFzdGVyRGV0YWlsKHJvdylcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1kZXRhaWxcIiBbY29sU3Bhbl09XCJjb2x1bW5Db3VudEZvck1hc3RlckRldGFpbFwiPlxuICAgICAgICAgICAgICA8cG8tdGFibGUtZGV0YWlsXG4gICAgICAgICAgICAgICAgW3Atc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlICYmICFkZXRhaWxIaWRlU2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbcC1kZXRhaWxdPVwiY29sdW1uTWFzdGVyRGV0YWlsLmRldGFpbFwiXG4gICAgICAgICAgICAgICAgW3AtaXRlbXNdPVwicm93W25hbWVDb2x1bW5EZXRhaWxdXCJcbiAgICAgICAgICAgICAgICAocC1zZWxlY3Qtcm93KT1cInNlbGVjdERldGFpbFJvdygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3BvLXRhYmxlLWRldGFpbD5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGFibGU+XG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJsZVRlbXBsYXRlPlxuICA8dGFibGUgY2xhc3M9XCJwby10YWJsZVwiIFtjbGFzcy5wby10YWJsZS1zdHJpcGVkXT1cInN0cmlwZWRcIiBbY2xhc3MucG8tdGFibGUtbGF5b3V0LWZpeGVkXT1cImhpZGVUZXh0T3ZlcmZsb3dcIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHIgW2NsYXNzLnBvLXRhYmxlLWhlYWRlcl09XCIhaGVpZ2h0XCI+XG4gICAgICAgIDx0aCAqbmdJZj1cImhhc1NlbGVjdGFibGVDb2x1bW5cIiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1zZWxlY3RhYmxlXCI+XG4gICAgICAgICAgPGRpdiBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiPlxuICAgICAgICAgICAgPHBvLWNoZWNrYm94XG4gICAgICAgICAgICAgIG5hbWU9XCJzZWxlY3RBbGxcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFoaWRlU2VsZWN0QWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbFJvd3MoKVwiXG4gICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJzZWxlY3RBbGxSb3dzKClcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdEFsbFwiXG4gICAgICAgICAgICA+PC9wby1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cIihoYXNNYXN0ZXJEZXRhaWxDb2x1bW4gfHwgaGFzUm93VGVtcGxhdGUpICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxcIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8IS0tIENvbHVuYSBjcmlhZGEgcGFyYSBjYXNvIGFzIGHDp8O1ZXMgZmlxdWVtIG5vIGxhZG8gZXNxdWVyZG8gLS0+XG4gICAgICAgIDx0aFxuICAgICAgICAgICNjb2x1bW5BY3Rpb25MZWZ0XG4gICAgICAgICAgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxdPVwiIWlzU2luZ2xlQWN0aW9uXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXNpbmdsZS1hY3Rpb25dPVwiaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8dGggKm5nSWY9XCIhaGFzTWFpbkNvbHVtbnNcIiAjbm9Db2x1bW5zSGVhZGVyIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbiBwby10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWlnaHQ7IHRoZW4gbm9Db2x1bW5zV2l0aEhlaWdodDsgZWxzZSBub0NvbHVtbnNXaXRob3V0SGVpZ2h0XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgbWFpbkNvbHVtbnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWVsbGlwc2lzXCJcbiAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgIFtjbGFzcy5wby1jbGlja2FibGVdPVwiKHNvcnQgJiYgY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSkgfHwgaGFzU2VydmljZVwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zdWJ0aXRsZV09XCJjb2x1bW4udHlwZSA9PT0gJ3N1YnRpdGxlJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInNvcnRDb2x1bW4oY29sdW1uKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1mbGV4XCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZml4ZWQtaW5uZXJdPVwiaGVpZ2h0XCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZmxleC1yaWdodF09XCJjb2x1bW4udHlwZSA9PT0gJ2N1cnJlbmN5JyB8fCBjb2x1bW4udHlwZSA9PT0gJ251bWJlcidcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1mbGV4LWNlbnRlcl09XCJjb2x1bW4udHlwZSA9PT0gJ3N1YnRpdGxlJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRIZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwiaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodCAmJiAoaGFzVmlzaWJsZUFjdGlvbnMgfHwgaGlkZUNvbHVtbnNNYW5hZ2VyKVwiXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCJoYXNWaXNpYmxlQWN0aW9ucyAmJiBoaWRlQ29sdW1uc01hbmFnZXIgJiYgYWN0aW9uUmlnaHRcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc2luZ2xlLWFjdGlvbl09XCJpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1hY3Rpb25zXT1cIiFpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICNjb2x1bW5NYW5hZ2VyXG4gICAgICAgICAgKm5nSWY9XCJoYXNWYWxpZENvbHVtbnMgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlcl09XCIhaXNTaW5nbGVBY3Rpb24gfHwgIWFjdGlvblJpZ2h0XCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJvcmRlcl09XCIhaGVpZ2h0ICYmIGNvbnRhaW5lclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uICYmIGFjdGlvblJpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYm9yZGVyXT1cImhlaWdodCAmJiBjb250YWluZXJcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImhlaWdodCAmJiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPyBjb2x1bW5NYW5hZ2VyLm9mZnNldFdpZHRoIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICNjb2x1bW5NYW5hZ2VyVGFyZ2V0XG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpdGVyYWxzLmNvbHVtbnNNYW5hZ2VyXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYnV0dG9uIHBvLWljb24gcG8taWNvbi1zZXR0aW5ncyBwby1jbGlja2FibGVcIlxuICAgICAgICAgICAgICBwLXRvb2x0aXAtcG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgW3AtdG9vbHRpcF09XCJsaXRlcmFscy5jb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbk9wZW5Db2x1bW5NYW5hZ2VyKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuXG4gICAgPHRib2R5IGNsYXNzPVwicG8tdGFibGUtZ3JvdXAtcm93XCIgKm5nSWY9XCIhaGFzSXRlbXMgfHwgIWhhc01haW5Db2x1bW5zXCI+XG4gICAgICA8dHIgY2xhc3M9XCJwby10YWJsZS1yb3cgcG8tdGFibGUtcm93LW5vLWRhdGFcIj5cbiAgICAgICAgPHRkIFtjb2xTcGFuXT1cImNvbHVtbkNvdW50XCIgY2xhc3M9XCJwby10YWJsZS1uby1kYXRhIHBvLXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPHNwYW4+IHt7IGxpdGVyYWxzLm5vRGF0YSB9fSA8L3NwYW4+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzTWFpbkNvbHVtbnNcIj5cbiAgICAgIDx0Ym9keSBjbGFzcz1cInBvLXRhYmxlLWdyb3VwLXJvd1wiICpuZ0Zvcj1cImxldCByb3cgb2YgaXRlbXM7IGxldCByb3dJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICAgIDx0ciBjbGFzcz1cInBvLXRhYmxlLXJvd1wiIFtjbGFzcy5wby10YWJsZS1yb3ctYWN0aXZlXT1cInJvdy4kc2VsZWN0ZWQgfHwgKHJvdy4kc2VsZWN0ZWQgPT09IG51bGwgJiYgc2VsZWN0YWJsZSlcIj5cbiAgICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3RhYmxlXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpbmdsZVNlbGVjdCA/IGlucHV0UmFkaW8gOiBpbnB1dENoZWNrYm94OyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93IH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8IS0tIFZhbGlkYSBzZSBhIG9yaWdlbSBkbyBkZXRhaWwgw6kgcGVsbyBpbnB1dCBkbyBwby10YWJsZSAtLT5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uTWFzdGVyRGV0YWlsICYmICFoaWRlRGV0YWlsICYmICFoYXNSb3dUZW1wbGF0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1kZXRhaWwtdG9nZ2xlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEZXRhaWwocm93KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvVGFibGVDb2x1bW5EZXRhaWxcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPCEtLSBDb2x1bmEgY29tIGFzIGHDp8O1ZXMgbmEgZXNxdWVyZGEgKHBhZHLDo28pLS0+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbilcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiQWN0aW9uc0NvbHVtblRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8IS0tIFZhbGlkYSBzZSBhIG9yaWdlbSBkbyBkZXRhaWwgw6kgcGVsYSBkaXJldGl2YSAtLT5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzUm93VGVtcGxhdGUgJiYgIWhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBtYWluQ29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtY29sdW1uXT1cImNvbHVtbi50eXBlICE9PSAnaWNvbidcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbi1yaWdodF09XCJjb2x1bW4udHlwZSA9PT0gJ2N1cnJlbmN5JyB8fCBjb2x1bW4udHlwZSA9PT0gJ251bWJlcidcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbi1jZW50ZXJdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbi1pY29uc109XCJjb2x1bW4udHlwZSA9PT0gJ2ljb24nXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldENsYXNzQ29sb3Iocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoYXNTZWxlY3RhYmxlUm93KCkgPyBzZWxlY3RSb3cocm93KSA6ICdqYXZhc2NyaXB0OjsnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWNlbGwgbm90cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtYm9keS1lbGxpcHNpc109XCJoaWRlVGV4dE92ZXJmbG93XCJcbiAgICAgICAgICAgICAgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCJcbiAgICAgICAgICAgICAgW3AtdG9vbHRpcF09XCJ0b29sdGlwVGV4dFwiXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInRvb2x0aXBNb3VzZUVudGVyKCRldmVudCwgY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9vbHRpcE1vdXNlTGVhdmUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY29sdW1uVGVtcGxhdGUnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdldFRlbXBsYXRlKGNvbHVtbik7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjZWxsVGVtcGxhdGUnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlQ2VsbFRlbXBsYXRlPy50ZW1wbGF0ZVJlZjsgY29udGV4dDogeyByb3c6IHJvdywgY29sdW1uOiBjb2x1bW4gfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGdldEJvb2xlYW5MYWJlbChnZXRDZWxsRGF0YShyb3csIGNvbHVtbiksIGNvbHVtbikgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3knXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgY3VycmVuY3k6IGNvbHVtbi5mb3JtYXQ6J3N5bWJvbCc6JzEuMi0yJyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IGRhdGU6IGNvbHVtbi5mb3JtYXQgfHwgJ2RkL01NL3l5eXknIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3RpbWUnXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgcG9fdGltZTogY29sdW1uLmZvcm1hdCB8fCAnSEg6bW06c3MuZmZmZmZmJyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkYXRlVGltZSdcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBkYXRlOiBjb2x1bW4uZm9ybWF0IHx8ICdkZC9NTS95eXl5IEhIOm1tOnNzJyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XG4gICAgICAgICAgICAgICAge3sgZm9ybWF0TnVtYmVyKGdldENlbGxEYXRhKHJvdywgY29sdW1uKSwgY29sdW1uLmZvcm1hdCkgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxwby10YWJsZS1jb2x1bW4tbGlua1xuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbGluaydcIlxuICAgICAgICAgICAgICAgIFtwLWFjdGlvbl09XCJjb2x1bW4uYWN0aW9uXCJcbiAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJjaGVja0Rpc2FibGVkKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgW3AtbGlua109XCJyb3dbY29sdW1uLmxpbmtdXCJcbiAgICAgICAgICAgICAgICBbcC1yb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgICBbcC12YWx1ZV09XCJnZXRDZWxsRGF0YShyb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrTGluaygkZXZlbnQsIHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9wby10YWJsZS1jb2x1bW4tbGluaz5cblxuICAgICAgICAgICAgICA8cG8tdGFibGUtY29sdW1uLWljb25cbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCJcbiAgICAgICAgICAgICAgICBbcC1jb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbcC1pY29uc109XCJnZXRDb2x1bW5JY29ucyhyb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgIFtwLXJvd109XCJyb3dcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvcG8tdGFibGUtY29sdW1uLWljb24+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidzdWJ0aXRsZSdcIj5cbiAgICAgICAgICAgICAgICA8cG8tdGFibGUtc3VidGl0bGUtY2lyY2xlIFtwLXN1YnRpdGxlXT1cImdldFN1YnRpdGxlQ29sdW1uKHJvdywgY29sdW1uKVwiPjwvcG8tdGFibGUtc3VidGl0bGUtY2lyY2xlPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCI+XG4gICAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1sYWJlbCBbcC12YWx1ZV09XCJnZXRDb2x1bW5MYWJlbChyb3csIGNvbHVtbilcIj4gPC9wby10YWJsZS1jb2x1bW4tbGFiZWw+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD57eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDwhLS0gQ29sdW5hIGRlIGHDp29lcyBuYSBkaXJlaXRhIC0tPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb25SaWdodFwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJBY3Rpb25zQ29sdW1uVGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDwhLS0gQ29sdW5hIHBhcmEgbsOjbyBmaWNhciBlbSBicmFuY28gbmFzIGxpbmhhcyBkZSBnZXJlbmNpYW1lbnRvIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pICYmICFoaWRlQ29sdW1uc01hbmFnZXJcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLXJvdy1uby1kYXRhIHBvLXRhYmxlLWNvbHVtbi1lbXB0eVwiPjwvdGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8IS0tIENvbHVtbiBNYW5hZ2VyIC0tPlxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nSWY9XCIhaGFzVmlzaWJsZUFjdGlvbnMgJiYgIWhpZGVDb2x1bW5zTWFuYWdlciAmJiAhaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtblwiXG4gICAgICAgICAgPjwvdGQ+XG4gICAgICAgIDwvdHI+XG5cbiAgICAgICAgPHRyICpuZ0lmPVwiaGFzTWFpbkNvbHVtbnMgJiYgaGFzUm93VGVtcGxhdGUgJiYgcm93LiRzaG93RGV0YWlsICYmIGlzU2hvd1Jvd1RlbXBsYXRlKHJvdywgcm93SW5kZXgpXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtcm93LXRlbXBsYXRlLWNvbnRhaW5lclwiIFtjb2xTcGFuXT1cImNvbHVtbkNvdW50Rm9yTWFzdGVyRGV0YWlsXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVSb3dUZW1wbGF0ZS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG5cbiAgICAgICAgPHRyICpuZ0lmPVwiaGFzTWFpbkNvbHVtbnMgJiYgaXNTaG93TWFzdGVyRGV0YWlsKHJvdylcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsXCIgW2NvbFNwYW5dPVwiY29sdW1uQ291bnRGb3JNYXN0ZXJEZXRhaWxcIj5cbiAgICAgICAgICAgIDxwby10YWJsZS1kZXRhaWxcbiAgICAgICAgICAgICAgW3Atc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlICYmICFkZXRhaWxIaWRlU2VsZWN0XCJcbiAgICAgICAgICAgICAgW3AtZGV0YWlsXT1cImNvbHVtbk1hc3RlckRldGFpbC5kZXRhaWxcIlxuICAgICAgICAgICAgICBbcC1pdGVtc109XCJyb3dbbmFtZUNvbHVtbkRldGFpbF1cIlxuICAgICAgICAgICAgICAocC1zZWxlY3Qtcm93KT1cInNlbGVjdERldGFpbFJvdygkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8tdGFibGUtZGV0YWlsPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3RhYmxlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPHBvLXBvcHVwICNwb3B1cCBbcC1hY3Rpb25zXT1cImFjdGlvbnNcIiBbcC10YXJnZXRdPVwicG9wdXBUYXJnZXRcIj4gPC9wby1wb3B1cD5cblxuPG5nLXRlbXBsYXRlICNwb1RhYmxlQ29sdW1uRGV0YWlsIGxldC1yb3c9XCJyb3dcIiBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICA8c3BhblxuICAgICpuZ0lmPVwiKGNvbnRhaW5zTWFzdGVyRGV0YWlsKHJvdykgJiYgIWhhc1Jvd1RlbXBsYXRlKSB8fCAoaXNTaG93Um93VGVtcGxhdGUocm93LCByb3dJbmRleCkgJiYgaGFzUm93VGVtcGxhdGUpXCJcbiAgICBjbGFzcz1cInBvLWljb24gcG8tY2xpY2thYmxlXCJcbiAgICBbY2xhc3MucG8taWNvbi1hcnJvdy11cF09XCJyb3cuJHNob3dEZXRhaWxcIlxuICAgIFtjbGFzcy5wby1pY29uLWFycm93LWRvd25dPVwiIXJvdy4kc2hvd0RldGFpbFwiXG4gID5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dFJhZGlvIGxldC1yb3c+XG4gIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBjbGFzcz1cInBvLXRhYmxlLXJhZGlvXCIgW2NsYXNzLnBvLXRhYmxlLXJhZGlvLWNoZWNrZWRdPVwicm93LiRzZWxlY3RlZFwiIC8+XG4gIDxsYWJlbCBjbGFzcz1cInBvLXRhYmxlLXJhZGlvLWxhYmVsIHBvLWNsaWNrYWJsZVwiIChjbGljayk9XCJzZWxlY3RhYmxlID8gc2VsZWN0Um93KHJvdykgOiAnamF2YXNjcmlwdDo7J1wiPjwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0Q2hlY2tib3ggbGV0LXJvdz5cbiAgPHBvLWNoZWNrYm94XG4gICAgbmFtZT1cImNoZWNrYm94XCJcbiAgICAocC1jaGFuZ2UpPVwic2VsZWN0YWJsZSA/IHNlbGVjdFJvdyhyb3cpIDogJ2phdmFzY3JpcHQ6OydcIlxuICAgIFsobmdNb2RlbCldPVwicm93LiRzZWxlY3RlZFwiXG4gICAgKGNsaWNrKT1cInNlbGVjdGFibGUgPyBzZWxlY3RSb3cocm93KSA6ICdqYXZhc2NyaXB0OjsnXCJcbiAgPjwvcG8tY2hlY2tib3g+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnRIZWFkZXJUZW1wbGF0ZSBsZXQtY29sdW1uPlxuICA8c3BhblxuICAgICNjb2x1bW5IZWFkZXJcbiAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1lbGxpcHNpc1wiXG4gICAgW3AtdG9vbHRpcF09XCJ0b29sdGlwVGV4dFwiXG4gICAgKG1vdXNlZW50ZXIpPVwidG9vbHRpcE1vdXNlRW50ZXIoJGV2ZW50KVwiXG4gICAgKG1vdXNlbGVhdmUpPVwidG9vbHRpcE1vdXNlTGVhdmUoKVwiXG4gID5cbiAgICB7eyBjb2x1bW4ubGFiZWwgfHwgKGNvbHVtbi5wcm9wZXJ0eSB8IHRpdGxlY2FzZSkgfX1cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ0lmPVwic29ydCAmJiBjb2x1bW4uc29ydGFibGUgIT09IGZhbHNlXCJcbiAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWljb24tdW5zZWxlY3RlZF09XCJKU09OLnN0cmluZ2lmeShzb3J0ZWRDb2x1bW4/LnByb3BlcnR5KSAhPT0gSlNPTi5zdHJpbmdpZnkoY29sdW1uKVwiXG4gICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1pY29uLWRlc2NlbmRpbmddPVwiXG4gICAgICBKU09OLnN0cmluZ2lmeShzb3J0ZWRDb2x1bW4/LnByb3BlcnR5KSA9PT0gSlNPTi5zdHJpbmdpZnkoY29sdW1uKSAmJiBzb3J0ZWRDb2x1bW4uYXNjZW5kaW5nXG4gICAgXCJcbiAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWljb24tYXNjZW5kaW5nXT1cIlxuICAgICAgSlNPTi5zdHJpbmdpZnkoc29ydGVkQ29sdW1uPy5wcm9wZXJ0eSkgPT09IEpTT04uc3RyaW5naWZ5KGNvbHVtbikgJiYgIXNvcnRlZENvbHVtbi5hc2NlbmRpbmdcbiAgICBcIlxuICA+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbm9Db2x1bW5zV2l0aEhlaWdodD5cbiAgPGRpdiBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lclwiIFtzdHlsZS53aWR0aC5weF09XCJub0NvbHVtbnNIZWFkZXI/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGhcIj5cbiAgICB7eyBoYXNWYWxpZENvbHVtbnMgPyBsaXRlcmFscy5ub1Zpc2libGVDb2x1bW4gOiBsaXRlcmFscy5ub0NvbHVtbnMgfX1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25vQ29sdW1uc1dpdGhvdXRIZWlnaHQ+XG4gIHt7IGhhc1ZhbGlkQ29sdW1ucyA/IGxpdGVyYWxzLm5vVmlzaWJsZUNvbHVtbiA6IGxpdGVyYWxzLm5vQ29sdW1ucyB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBUZW1wbGF0ZSBkZSBhw6fDtWVzIC0tPlxuPG5nLXRlbXBsYXRlICNBY3Rpb25zQ29sdW1uVGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gIDx0ZFxuICAgICpuZ0lmPVwiaXNTaW5nbGVBY3Rpb25cIlxuICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uIHBvLXRhYmxlLWNvbHVtbi1zaW5nbGUtYWN0aW9uXCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwiaGVpZ2h0ICYmIGFjdGlvblJpZ2h0ID8gZ2V0V2lkdGhDb2x1bW5NYW5hZ2VyKCkgOiAnJ1wiXG4gICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJoZWlnaHQgJiYgIWFjdGlvblJpZ2h0ID8gZ2V0Q29sdW1uV2lkdGhBY3Rpb25zTGVmdCgpIDogJydcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJoZWlnaHQgJiYgIWFjdGlvblJpZ2h0ID8gZ2V0Q29sdW1uV2lkdGhBY3Rpb25zTGVmdCgpIDogJydcIlxuICA+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJmaXJzdEFjdGlvbi52aXNpYmxlICE9PSBmYWxzZVwiXG4gICAgICBjbGFzcz1cInBvLXRhYmxlLXNpbmdsZS1hY3Rpb24gcG8tY2xpY2thYmxlXCJcbiAgICAgIFtjbGFzcy5wby10YWJsZS1hY3Rpb24tZGlzYWJsZWRdPVwiZmlyc3RBY3Rpb24uZGlzYWJsZWQgPyB2YWxpZGF0ZVRhYmxlQWN0aW9uKHJvdywgZmlyc3RBY3Rpb24pIDogZmFsc2VcIlxuICAgICAgKGNsaWNrKT1cImV4ZWN1dGVUYWJsZUFjdGlvbihyb3csIGZpcnN0QWN0aW9uKVwiXG4gICAgPlxuICAgICAgPHBvLWljb24gKm5nSWY9XCJmaXJzdEFjdGlvbi5pY29uXCIgY2xhc3M9XCJwby10YWJsZS1zaW5nbGUtYWN0aW9uLWNvbnRlbnRcIiBbcC1pY29uXT1cImZpcnN0QWN0aW9uLmljb25cIj48L3BvLWljb24+XG4gICAgICB7eyBmaXJzdEFjdGlvbi5sYWJlbCB9fVxuICAgIDwvZGl2PlxuICA8L3RkPlxuXG4gIDx0ZCAqbmdJZj1cInZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDFcIiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1hY3Rpb25zXCI+XG4gICAgPHNwYW4gI3BvcHVwVGFyZ2V0IGNsYXNzPVwicG8taWNvbiBwby1pY29uLW1vcmUgcG8tY2xpY2thYmxlXCIgKGNsaWNrKT1cInRvZ2dsZVBvcHVwKHJvdywgcG9wdXBUYXJnZXQpXCI+PC9zcGFuPlxuICA8L3RkPlxuPC9uZy10ZW1wbGF0ZT5cblxuPHBvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyXG4gICpuZ0lmPVwiIWhpZGVDb2x1bW5zTWFuYWdlclwiXG4gIFtwLWNvbHVtbnNdPVwiY29sdW1uc1wiXG4gIFtwLW1heC1jb2x1bW5zXT1cIm1heENvbHVtbnNcIlxuICBbcC10YXJnZXRdPVwiaGVpZ2h0ID8gY29sdW1uTWFuYWdlclRhcmdldEZpeGVkIDogY29sdW1uTWFuYWdlclRhcmdldFwiXG4gIFtwLWxhc3QtdmlzaWJsZS1jb2x1bW5zLXNlbGVjdGVkXT1cImxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkXCJcbiAgKHAtdmlzaWJsZS1jb2x1bW5zLWNoYW5nZSk9XCJvblZpc2libGVDb2x1bW5zQ2hhbmdlKCRldmVudClcIlxuICAocC1jaGFuZ2UtdmlzaWJsZS1jb2x1bW5zKT1cIm9uQ2hhbmdlVmlzaWJsZUNvbHVtbnMoJGV2ZW50KVwiXG4gIFtwLWNvbHVtbnMtZGVmYXVsdF09XCJpbml0aWFsQ29sdW1uc1wiXG4gIChwLWluaXRpYWwtY29sdW1ucyk9XCJvbkNvbHVtblJlc3RvcmVNYW5hZ2VyKCRldmVudClcIlxuPlxuPC9wby10YWJsZS1jb2x1bW4tbWFuYWdlcj5cbiJdfQ==
2014
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXRhYmxlL3BvLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixVQUFVLEVBS1YsU0FBUyxFQUNULFlBQVksRUFFWixlQUFlLEVBRWhCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUt2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFHbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFdEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDL0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNqQ3BHLHdCQUF3RTs7O0lBRDFFLHdDQUFpSDtJQUMvRyxtR0FBd0U7SUFDMUUsaUJBQWU7Ozs7SUFGMkQsMkRBQXNDO0lBQy9GLGVBQXdDO0lBQXhDLHNDQUF3Qzs7O0lBS3JELCtCQUE4QztJQUM1QyxpQ0FBMEY7SUFDNUYsaUJBQU07OztJQUR5QyxlQUErQjtJQUEvQixxREFBK0I7OztJQVl0RSx3QkFBcUU7OztJQUlyRSx3QkFBd0Y7OztJQU41RiwrQkFBd0Ysa0JBQUE7SUFFcEYsd0dBQXFFO0lBQ3ZFLGlCQUFNO0lBRU4sbUNBQTBEO0lBQ3hELHdHQUF3RjtJQUMxRixpQkFBTSxFQUFBOzs7Ozs7SUFQdUMsNERBQXdDO0lBRXBFLGVBQXFDO0lBQXJDLHNDQUFxQztJQUlyQyxlQUFjO0lBQWQscUNBQWMsaUJBQUEsaUJBQUE7OztJQUsvQix3QkFBK0Q7OztJQURqRSwyQkFBcUI7SUFDbkIsd0dBQStEO0lBQ2pFLGlCQUFNOzs7O0lBRFcsZUFBK0I7SUFBL0Isc0NBQStCOzs7SUFPcEQsNkJBQXVFO0lBQ3JFLCtDQUErRztJQUNqSCwwQkFBZTs7OztJQURhLGVBQXVCO0lBQXZCLDZDQUF1QixxQ0FBQTs7O0lBRnJELCtCQUErQztJQUM3Qyx3R0FFZTtJQUNqQixpQkFBTTs7O0lBSDZCLGVBQW9CO0lBQXBCLGlEQUFvQixpQ0FBQTs7O0lBOUJ2RCwyQkFBbUQ7SUFDakQsZ0ZBRU07SUFFTiwrQkFBcUMsa0JBQUE7SUFPakMsZ0ZBUU07SUFFTixnRkFFTTtJQUNSLGlCQUFNLEVBQUEsRUFBQTtJQUlWLGdGQUlNOzs7SUFqQ0QsNkRBQTZDO0lBQzFDLGVBQWE7SUFBYixxQ0FBYTtJQVNmLGVBQThCO0lBQTlCLDhDQUE4QjtJQUQ5QixvRkFBb0U7SUFHOUQsZUFBWTtJQUFaLG9DQUFZO0lBVVosZUFBYTtJQUFiLHFDQUFhO0lBT0ssZUFBZTtJQUFmLHVDQUFlOzs7O0lBTy9DLG1DQUtDLG9CQUFBO0lBTUcsc0tBQVcsZUFBQSxvQkFBWSxDQUFBLElBQUM7SUFFMUIsaUJBQVksRUFBQTs7O0lBVlosNEZBQXFFO0lBS25FLGVBQStCO0lBQS9CLG9EQUErQix5Q0FBQSxxQ0FBQTs7OztJQWN2Qix1Q0FLQztJQUZDLHNNQUFZLGVBQUEsdUJBQWUsQ0FBQSxJQUFDO0lBRTdCLGlCQUFjOzs7SUFEYiwwRkFBNEQ7OztJQU5sRSw4QkFBbUUsVUFBQTtJQUUvRCxxR0FLZTtJQUNqQixpQkFBTSxFQUFBOzs7SUFQRCxlQUE0QztJQUE1Qyw2REFBNEM7SUFHNUMsZUFBb0I7SUFBcEIsNkNBQW9COzs7SUFPM0IseUJBR007OztJQUdOLCtCQUtNOzs7SUFGSix3RUFBdUQseURBQUE7OztJQUt2RCx3QkFBb0c7OztJQUR0RyxrQ0FBZ0c7SUFDOUYsdUdBQW9HO0lBQ3RHLGlCQUFLOzs7OztJQURZLGVBQWM7SUFBZCxxQ0FBYyxrQkFBQSxrQkFBQTs7O0lBbUIzQix3QkFBd0c7Ozs7O0lBaEI1Ryw4QkFTQztJQURDLHVPQUFTLGVBQUEsOEJBQWtCLENBQUEsSUFBQztJQUU1QiwrQkFLQztJQUNDLHVHQUF3RztJQUMxRyxpQkFBTSxFQUFBOzs7OztJQWROLHlDQUE0QiwrQkFBQSwrQkFBQTtJQUc1QixtR0FBd0UsNERBQUE7SUFNdEUsZUFBNEM7SUFBNUMsNkRBQTRDLDhGQUFBLCtEQUFBO0lBSTdCLGVBQXlDO0lBQXpDLHVDQUF5QyxxRUFBQTs7O0lBSTVELHlCQUdNOzs7SUFFTixxQkFJTTs7O0lBRkosc0dBQTZFLG9EQUFBOzs7O0lBSS9FLG9DQU1DLFVBQUEscUJBQUE7SUFhSyw4S0FBUyxlQUFBLDZCQUFxQixDQUFBLElBQUM7SUFDaEMsaUJBQVMsRUFBQSxFQUFBOzs7O0lBakJaLGlHQUF3RSwrRUFBQSxnRkFBQTtJQU90RSxlQUErRjtJQUEvRiw2R0FBK0Y7SUFGL0YsNEZBQW1FLDhEQUFBO0lBVWpFLGVBQXFDO0lBQXJDLDJEQUFxQztJQUhyQyw2REFBMkM7OztJQTdFdkQsaUNBQTRHLFlBQUEsU0FBQTtJQUd0Ryw4RUFTSztJQUVMLDhFQUdNO0lBR04sOEVBS007SUFFTiw4RUFFSztJQUVMLCtFQWtCSztJQUVMLDhFQUdNO0lBRU4sOEVBSU07SUFFTixpRkFzQks7SUFDUCxpQkFBSyxFQUFBLEVBQUE7OztJQXJGZSxrREFBa0Msa0RBQUE7SUFFbEQsZUFBZ0M7SUFBaEMsZ0RBQWdDO0lBQzdCLGVBQXlCO0lBQXpCLGlEQUF5QjtJQVkzQixlQUF5RjtJQUF6RiwrSEFBeUY7SUFPekYsZUFBbUU7SUFBbkUseUdBQW1FO0lBS2pFLGVBQXFCO0lBQXJCLDZDQUFxQjtJQUtMLGVBQWdCO0lBQWhCLDRDQUFnQixnQ0FBQTtJQW9CbEMsZUFBd0Y7SUFBeEYsOEhBQXdGO0lBS3hGLGVBQTREO0lBQTVELGtHQUE0RDtJQU81RCxlQUE0QztJQUE1QywyRUFBNEM7OztJQXFDakQsaUNBQXVFLGFBQUEsYUFBQSxXQUFBO0lBRzFELFlBQXNCO0lBQUEsaUJBQU8sRUFBQSxFQUFBLEVBQUE7OztJQURsQyxlQUF1QjtJQUF2Qiw2Q0FBdUI7SUFDbEIsZUFBc0I7SUFBdEIsd0RBQXNCOzs7SUFXM0Isd0JBQ2U7OztJQUZqQiw4QkFBMEQ7SUFDeEQsOEhBQ2U7SUFDakIsaUJBQUs7Ozs7OztJQUZZLGVBQTZEO0lBQTdELHFFQUE2RCxpRUFBQTs7Ozs7O0lBSzlFLDhCQUlDO0lBREMsOE9BQVMsZUFBQSw2QkFBaUIsQ0FBQSxJQUFDO0lBRTNCLDRIQUljO0lBQ2hCLGlCQUFLOzs7Ozs7O0lBSkQsZUFBd0M7SUFBeEMsdUNBQXdDLCtFQUFBOzs7O0lBTzVDLHlIQUtjOzs7Ozs7O0lBSFosdUNBQTBDLCtFQUFBOzs7OztJQU01Qyw4QkFJQztJQURDLDhPQUFTLGVBQUEsNkJBQWlCLENBQUEsSUFBQztJQUUzQiw0SEFJYztJQUNoQixpQkFBSzs7Ozs7OztJQUpELGVBQXdDO0lBQXhDLHVDQUF3QywrRUFBQTs7O0lBNEJ0Qyx3QkFHZTs7O0lBSmpCLDRCQUF1QztJQUNyQyxxSUFHZTtJQUNqQixpQkFBTzs7Ozs7SUFIRixlQUF1QztJQUF2QyxrRUFBdUMsa0dBQUE7OztJQU0xQyx3QkFHZTs7OztJQUpqQiw0QkFBcUM7SUFDbkMscUlBR2U7SUFDakIsaUJBQU87Ozs7O0lBSEYsZUFBa0Q7SUFBbEQsbUhBQWtELDZFQUFBOzs7SUFLdkQsNEJBQWdDO0lBQzlCLFlBQ0Y7SUFBQSxpQkFBTzs7Ozs7SUFETCxlQUNGO0lBREUsZ0hBQ0Y7OztJQUVBLDRCQUFpQztJQUMvQixZQUNGOztJQUFBLGlCQUFPOzs7OztJQURMLGVBQ0Y7SUFERSxzSUFDRjs7O0lBRUEsNEJBQTZCO0lBQzNCLFlBQ0Y7O0lBQUEsaUJBQU87Ozs7O0lBREwsZUFDRjtJQURFLG1JQUNGOzs7SUFFQSw0QkFBNkI7SUFDM0IsWUFDRjs7SUFBQSxpQkFBTzs7Ozs7SUFETCxlQUNGO0lBREUsd0lBQ0Y7OztJQUVBLDRCQUFpQztJQUMvQixZQUNGOztJQUFBLGlCQUFPOzs7OztJQURMLGVBQ0Y7SUFERSw0SUFDRjs7O0lBRUEsNEJBQStCO0lBQzdCLFlBQ0Y7SUFBQSxpQkFBTzs7Ozs7SUFETCxlQUNGO0lBREUsb0hBQ0Y7Ozs7SUFFQSxnREFRQztJQURDLGlWQUFTLGVBQUEsaURBQWdDLENBQUEsSUFBQztJQUU1QyxpQkFBdUI7Ozs7O0lBUHJCLDRDQUEwQiwyREFBQSxvQ0FBQSxrQkFBQSxzREFBQTs7O0lBUzVCLDJDQU11Qjs7Ozs7SUFKckIscUNBQW1CLHlEQUFBLGtCQUFBOzs7SUFNckIsNEJBQWlDO0lBQy9CLCtDQUFtRztJQUNyRyxpQkFBTzs7Ozs7SUFEcUIsZUFBNkM7SUFBN0MsNEVBQTZDOzs7SUFFekUsNEJBQThCO0lBQzVCLDRDQUF3RjtJQUMxRixpQkFBTzs7Ozs7SUFEa0IsZUFBdUM7SUFBdkMsc0VBQXVDOzs7SUFFaEUsNEJBQXVCO0lBQUEsWUFBOEI7SUFBQSxpQkFBTzs7Ozs7SUFBckMsZUFBOEI7SUFBOUIsK0RBQThCOzs7O0lBcEZ6RCw4QkFXQztJQURDLGdQQUFTLGVBQUEsMkJBQWtCLEdBQUcsMkJBQWMsR0FBRyxjQUFjLENBQUEsSUFBQztJQUU5RCwrQkFRQztJQUZDLCtUQUFjLGVBQUEsdURBQXNDLENBQUEsSUFBQyxnTUFDdkMsZUFBQSw0QkFBbUIsQ0FBQSxJQURvQjtJQUdyRCw4R0FLTztJQUVQLDhHQUtPO0lBRVAsOEdBRU87SUFFUCw4R0FFTztJQUVQLDhHQUVPO0lBRVAsOEdBRU87SUFFUCw4R0FFTztJQUVQLDhHQUVPO0lBRVAsZ0pBU3VCO0lBRXZCLGdKQU11QjtJQUV2QixnSEFFTztJQUNQLGdIQUVPO0lBQ1AsZ0hBQTREO0lBQzlELGlCQUFNLEVBQUE7Ozs7O0lBbkZOLHlDQUE0QiwrQkFBQSwrQkFBQTtJQUc1Qiw2REFBZ0QseUZBQUEsMERBQUEscURBQUE7SUFJaEQsb0VBQXNDO0lBUXBDLGVBQWlGO0lBQWpGLDJOQUFpRjtJQUhqRixrRUFBaUQ7SUFDakQsMENBQXdCLGtDQUFBO0lBTWpCLGVBQThCO0lBQTlCLCtDQUE4QjtJQU85QixlQUE0QjtJQUE1Qiw2Q0FBNEI7SUFPNUIsZUFBdUI7SUFBdkIsd0NBQXVCO0lBSXZCLGVBQXdCO0lBQXhCLHlDQUF3QjtJQUl4QixlQUFvQjtJQUFwQixxQ0FBb0I7SUFJcEIsZUFBb0I7SUFBcEIscUNBQW9CO0lBSXBCLGVBQXdCO0lBQXhCLHlDQUF3QjtJQUl4QixlQUFzQjtJQUF0Qix1Q0FBc0I7SUFLMUIsZUFBb0I7SUFBcEIscUNBQW9CO0lBV3BCLGVBQW9CO0lBQXBCLHFDQUFvQjtJQU9oQixlQUF3QjtJQUF4Qix5Q0FBd0I7SUFHeEIsZUFBcUI7SUFBckIsc0NBQXFCOzs7OztJQU9oQyw4QkFJQztJQURDLGdQQUFTLGVBQUEsOEJBQWlCLENBQUEsSUFBQztJQUUzQiw0SEFJYztJQUNoQixpQkFBSzs7Ozs7OztJQUpELGVBQXdDO0lBQXhDLHVDQUF3QywrRUFBQTs7OztJQU81Qyx5SEFLYzs7Ozs7OztJQUhaLHVDQUEwQywrRUFBQTs7O0lBTTVDLDZCQUEyRztJQUN6Ryx5QkFBdUQ7SUFDekQsMEJBQWU7OztJQUdmLHlCQUdNOzs7OztJQUdSLDBCQUFvRyxhQUFBO0lBRWhHLDZIQUljO0lBQ2hCLGlCQUFLLEVBQUE7Ozs7OztJQU51QyxlQUFzQztJQUF0Qyw0REFBc0M7SUFFOUUsZUFBaUQ7SUFBakQsdUVBQWlELCtFQUFBOzs7O0lBT3ZELDBCQUFzRCxhQUFBLDBCQUFBO0lBTWhELG9PQUFnQixlQUFBLGdDQUF1QixDQUFBLElBQUM7SUFFMUMsaUJBQWtCLEVBQUEsRUFBQTs7OztJQVBlLGVBQXNDO0lBQXRDLDREQUFzQztJQUVyRSxlQUFnRDtJQUFoRCw4RUFBZ0QsK0NBQUEsOENBQUE7OztJQWpMeEQsaUNBQTRHLGFBQUE7SUFLeEcscUdBR0s7SUFHTCxxR0FVSztJQUdMLGtHQUtjO0lBR2QscUdBVUs7SUFFTCx1R0FzRks7SUFFTCxxR0FVSztJQUdMLGtHQUtjO0lBR2QseUhBRWU7SUFHZix1R0FHTTtJQUNSLGlCQUFLO0lBRUwsdUdBUUs7SUFFTCx1R0FVSztJQUNQLGlCQUFROzs7OztJQXRMSixlQUFxRjtJQUFyRiw0R0FBcUY7SUFFaEYsZUFBZ0I7SUFBaEIseUNBQWdCO0lBT2xCLGVBQTBEO0lBQTFELG1HQUEwRDtJQWExRCxlQUFtRTtJQUFuRSw0R0FBbUU7SUFRbkUsZUFBOEQ7SUFBOUQsK0ZBQThEO0lBWTVDLGVBQWdCO0lBQWhCLDZDQUFnQixpQ0FBQTtJQXdGbEMsZUFBMkM7SUFBM0Msb0VBQTJDO0lBYTNDLGVBQWlCO0lBQWpCLDBDQUFpQjtJQU9MLGVBQTBGO0lBQTFGLDJJQUEwRjtJQU10RyxlQUF5RjtJQUF6RixrSUFBeUY7SUFLekYsZUFBNkY7SUFBN0Ysa0pBQTZGO0lBVTdGLGVBQStDO0lBQS9DLG9GQUErQzs7O0lBL0t4RCw2QkFBcUM7SUFDbkMscUdBeUxRO0lBQ1YsMEJBQWU7OztJQTFMNkMsZUFBVTtJQUFWLCtDQUFVLHlDQUFBOzs7O0lBakIxRSwyREFPQztJQURDLGdNQUFVLGVBQUEscUNBQTRCLENBQUEsSUFBQztJQUV2QyxpQ0FBNEc7SUFDMUcsb0ZBTVE7SUFDUixrR0EyTGU7SUFDakIsaUJBQVEsRUFBQTs7O0lBek1SLHlEQUFzQztJQUR0QywwQ0FBcUIsa0ZBQUEsa0ZBQUE7SUFNRyxlQUFrQztJQUFsQyxrREFBa0Msa0RBQUE7SUFDckIsZUFBa0M7SUFBbEMsaUVBQWtDO0lBT3RELGVBQW9CO0lBQXBCLDRDQUFvQjs7OztJQXNNN0IsdUNBS0M7SUFGQyx3TUFBWSxlQUFBLHdCQUFlLENBQUEsSUFBQztJQUU3QixpQkFBYzs7O0lBRGIsNEZBQTREOzs7SUFObEUsOEJBQW1FLFVBQUE7SUFFL0QscUdBS2U7SUFDakIsaUJBQU0sRUFBQTs7O0lBUEQsZUFBNEM7SUFBNUMsOERBQTRDO0lBRzVDLGVBQW9CO0lBQXBCLDhDQUFvQjs7O0lBTzNCLHlCQUdNOzs7SUFHTiwrQkFLTTs7O0lBRkoseUVBQXVELDBEQUFBOzs7SUFLdkQsd0JBQW9HOzs7SUFEdEcsa0NBQTJGO0lBQ3pGLHVHQUFvRztJQUN0RyxpQkFBSzs7Ozs7SUFEWSxlQUFjO0lBQWQsc0NBQWMsa0JBQUEsa0JBQUE7OztJQW1CM0Isd0JBQXdHOzs7O0lBaEI1Ryw4QkFTQztJQURDLDBPQUFTLGVBQUEsZ0NBQWtCLENBQUEsSUFBQztJQUU1QiwrQkFLQztJQUNDLHVHQUF3RztJQUMxRyxpQkFBTSxFQUFBOzs7OztJQWROLDBDQUE0QixnQ0FBQSxnQ0FBQTtJQUc1QixzR0FBd0UsNkRBQUE7SUFNdEUsZUFBNEM7SUFBNUMsOERBQTRDLGdHQUFBLGdFQUFBO0lBSTdCLGVBQXlDO0lBQXpDLHVDQUF5QyxzRUFBQTs7O0lBSTVELHlCQUdNOzs7SUFFTixxQkFJTTs7O0lBRkosd0VBQXNELHFEQUFBOzs7O0lBSXhELG9DQU1DLFVBQUEscUJBQUE7SUFhSyxnTEFBUyxlQUFBLDhCQUFxQixDQUFBLElBQUM7SUFDaEMsaUJBQVMsRUFBQSxFQUFBOzs7O0lBakJaLG1HQUF3RSxpRkFBQSxrRkFBQTtJQU90RSxlQUEwRjtJQUExRixnSEFBMEY7SUFGMUYsOEZBQW1FLCtEQUFBO0lBVWpFLGVBQXFDO0lBQXJDLDREQUFxQztJQUhyQyw4REFBMkM7OztJQVdyRCxpQ0FBdUUsYUFBQSxhQUFBLFdBQUE7SUFHMUQsWUFBc0I7SUFBQSxpQkFBTyxFQUFBLEVBQUEsRUFBQTs7O0lBRGxDLGVBQXVCO0lBQXZCLDhDQUF1QjtJQUNsQixlQUFzQjtJQUF0Qix5REFBc0I7OztJQVMzQix3QkFDZTs7O0lBRmpCLDhCQUEwRDtJQUN4RCwrSEFDZTtJQUNqQixpQkFBSzs7Ozs7O0lBRlksZUFBNkQ7SUFBN0Qsc0VBQTZELGtFQUFBOzs7OztJQUs5RSw4QkFJQztJQURDLGtQQUFTLGVBQUEsK0JBQWlCLENBQUEsSUFBQztJQUUzQiw2SEFJYztJQUNoQixpQkFBSzs7Ozs7OztJQUpELGVBQXdDO0lBQXhDLHVDQUF3QyxpRkFBQTs7OztJQU81QywwSEFLYzs7Ozs7OztJQUhaLHVDQUEwQyxpRkFBQTs7Ozs7SUFNNUMsOEJBSUM7SUFEQyxrUEFBUyxlQUFBLCtCQUFpQixDQUFBLElBQUM7SUFFM0IsNkhBSWM7SUFDaEIsaUJBQUs7Ozs7Ozs7SUFKRCxlQUF3QztJQUF4Qyx1Q0FBd0MsaUZBQUE7OztJQTJCdEMsd0JBQ2U7OztJQUZqQiw0QkFBdUM7SUFDckMsc0lBQ2U7SUFDakIsaUJBQU87Ozs7O0lBRlUsZUFBdUM7SUFBdkMsb0VBQXVDLHFHQUFBOzs7SUFLdEQsd0JBQ2U7OztJQUZqQiw0QkFBcUM7SUFDbkMsc0lBQ2U7SUFDakIsaUJBQU87Ozs7O0lBRlUsZUFBa0Q7SUFBbEQscUhBQWtELCtFQUFBOzs7SUFJbkUsNEJBQWdDO0lBQzlCLFlBQ0Y7SUFBQSxpQkFBTzs7Ozs7SUFETCxlQUNGO0lBREUsbUhBQ0Y7OztJQUVBLDRCQUFpQztJQUMvQixZQUNGOztJQUFBLGlCQUFPOzs7OztJQURMLGVBQ0Y7SUFERSx5SUFDRjs7O0lBRUEsNEJBQTZCO0lBQzNCLFlBQ0Y7O0lBQUEsaUJBQU87Ozs7O0lBREwsZUFDRjtJQURFLHNJQUNGOzs7SUFFQSw0QkFBNkI7SUFDM0IsWUFDRjs7SUFBQSxpQkFBTzs7Ozs7SUFETCxlQUNGO0lBREUsMklBQ0Y7OztJQUVBLDRCQUFpQztJQUMvQixZQUNGOztJQUFBLGlCQUFPOzs7OztJQURMLGVBQ0Y7SUFERSwrSUFDRjs7O0lBRUEsNEJBQStCO0lBQzdCLFlBQ0Y7SUFBQSxpQkFBTzs7Ozs7SUFETCxlQUNGO0lBREUsdUhBQ0Y7Ozs7SUFFQSxnREFRQztJQURDLG9WQUFTLGVBQUEsbURBQWdDLENBQUEsSUFBQztJQUU1QyxpQkFBdUI7Ozs7O0lBUHJCLDZDQUEwQiw2REFBQSxzQ0FBQSxtQkFBQSx3REFBQTs7O0lBUzVCLDJDQU11Qjs7Ozs7SUFKckIsc0NBQW1CLDJEQUFBLG1CQUFBOzs7SUFNckIsNEJBQWlDO0lBQy9CLCtDQUFtRztJQUNyRyxpQkFBTzs7Ozs7SUFEcUIsZUFBNkM7SUFBN0MsOEVBQTZDOzs7SUFFekUsNEJBQThCO0lBQzVCLDRDQUF3RjtJQUMxRixpQkFBTzs7Ozs7SUFEa0IsZUFBdUM7SUFBdkMsd0VBQXVDOzs7SUFFaEUsNEJBQXVCO0lBQUEsWUFBOEI7SUFBQSxpQkFBTzs7Ozs7SUFBckMsZUFBOEI7SUFBOUIsaUVBQThCOzs7O0lBL0V6RCw4QkFXQztJQURDLGtQQUFTLGVBQUEsMkJBQWtCLEdBQUcsNEJBQWMsR0FBRyxjQUFjLENBQUEsSUFBQztJQUU5RCwrQkFPQztJQUZDLGtVQUFjLGVBQUEseURBQXNDLENBQUEsSUFBQyxpTUFDdkMsZUFBQSw0QkFBbUIsQ0FBQSxJQURvQjtJQUdyRCwrR0FHTztJQUVQLCtHQUdPO0lBRVAsK0dBRU87SUFFUCwrR0FFTztJQUVQLCtHQUVPO0lBRVAsK0dBRU87SUFFUCwrR0FFTztJQUVQLCtHQUVPO0lBRVAsaUpBU3VCO0lBRXZCLGlKQU11QjtJQUV2QixpSEFFTztJQUNQLGlIQUVPO0lBQ1AsaUhBQTREO0lBQzlELGlCQUFNLEVBQUE7Ozs7O0lBOUVOLDBDQUE0QixnQ0FBQSxnQ0FBQTtJQUc1Qiw4REFBZ0QsMkZBQUEsMkRBQUEsc0RBQUE7SUFJaEQsdUVBQXNDO0lBS3BDLGVBQWlEO0lBQWpELG1FQUFpRDtJQUNqRCwyQ0FBd0IsbUNBQUE7SUFLakIsZUFBOEI7SUFBOUIsK0NBQThCO0lBSzlCLGVBQTRCO0lBQTVCLDZDQUE0QjtJQUs1QixlQUF1QjtJQUF2Qix3Q0FBdUI7SUFJdkIsZUFBd0I7SUFBeEIseUNBQXdCO0lBSXhCLGVBQW9CO0lBQXBCLHFDQUFvQjtJQUlwQixlQUFvQjtJQUFwQixxQ0FBb0I7SUFJcEIsZUFBd0I7SUFBeEIseUNBQXdCO0lBSXhCLGVBQXNCO0lBQXRCLHVDQUFzQjtJQUsxQixlQUFvQjtJQUFwQixxQ0FBb0I7SUFXcEIsZUFBb0I7SUFBcEIscUNBQW9CO0lBT2hCLGVBQXdCO0lBQXhCLHlDQUF3QjtJQUd4QixlQUFxQjtJQUFyQixzQ0FBcUI7Ozs7O0lBT2hDLDhCQUlDO0lBREMsa1BBQVMsZUFBQSwrQkFBaUIsQ0FBQSxJQUFDO0lBRTNCLDZIQUljO0lBQ2hCLGlCQUFLOzs7Ozs7O0lBSkQsZUFBd0M7SUFBeEMsdUNBQXdDLGlGQUFBOzs7O0lBTzVDLDBIQUtjOzs7Ozs7O0lBSFosdUNBQTBDLGlGQUFBOzs7SUFNNUMsNkJBQTJHO0lBQ3pHLHlCQUE0RDtJQUM5RCwwQkFBZTs7O0lBR2YseUJBR007Ozs7SUFHUiwwQkFBb0csYUFBQTtJQUVoRyw4SEFJYztJQUNoQixpQkFBSyxFQUFBOzs7Ozs7SUFOdUMsZUFBc0M7SUFBdEMsNkRBQXNDO0lBRTlFLGVBQWlEO0lBQWpELHdFQUFpRCxpRkFBQTs7OztJQU92RCwwQkFBc0QsYUFBQSwwQkFBQTtJQU1oRCxxT0FBZ0IsZUFBQSxnQ0FBdUIsQ0FBQSxJQUFDO0lBRTFDLGlCQUFrQixFQUFBLEVBQUE7Ozs7SUFQZSxlQUFzQztJQUF0Qyw2REFBc0M7SUFFckUsZUFBZ0Q7SUFBaEQsZ0ZBQWdELGdEQUFBLGdEQUFBOzs7SUF6S3hELGlDQUFvRyxhQUFBO0lBRWhHLHNHQUdLO0lBR0wsc0dBVUs7SUFHTCxtR0FLYztJQUdkLHNHQVVLO0lBRUwsd0dBaUZLO0lBRUwsc0dBVUs7SUFHTCxtR0FLYztJQUdkLDBIQUVlO0lBR2Ysd0dBR007SUFDUixpQkFBSztJQUVMLHdHQVFLO0lBRUwsd0dBVUs7SUFDUCxpQkFBUTs7Ozs7SUFoTG1CLGVBQXFGO0lBQXJGLCtHQUFxRjtJQUN2RyxlQUFnQjtJQUFoQiwwQ0FBZ0I7SUFPbEIsZUFBMEQ7SUFBMUQsc0dBQTBEO0lBYTFELGVBQW1FO0lBQW5FLCtHQUFtRTtJQVFuRSxlQUE4RDtJQUE5RCxpR0FBOEQ7SUFZNUMsZUFBZ0I7SUFBaEIsOENBQWdCLGtDQUFBO0lBbUZsQyxlQUEyQztJQUEzQyxxRUFBMkM7SUFhM0MsZUFBaUI7SUFBakIsMkNBQWlCO0lBT0wsZUFBMEY7SUFBMUYsK0lBQTBGO0lBTXRHLGVBQXlGO0lBQXpGLHFJQUF5RjtJQUt6RixlQUE2RjtJQUE3Rix3SkFBNkY7SUFVN0YsZUFBK0M7SUFBL0MsdUZBQStDOzs7SUF2S3hELDZCQUFxQztJQUNuQyxzR0FpTFE7SUFDViwwQkFBZTs7O0lBbExxQyxlQUFVO0lBQVYsd0NBQVUsa0NBQUE7OztJQWpHaEUsaUNBQTRHLFlBQUEsU0FBQTtJQUd0Ryw4RUFTSztJQUVMLDhFQUdNO0lBR04sOEVBS007SUFFTiw4RUFFSztJQUVMLCtFQWtCSztJQUVMLDhFQUdNO0lBRU4sOEVBSU07SUFFTixpRkFzQks7SUFDUCxpQkFBSyxFQUFBO0lBR1Asc0ZBTVE7SUFFUixvR0FtTGU7SUFDakIsaUJBQVE7OztJQXBSZ0Isa0RBQWtDLGtEQUFBO0lBRWxELGVBQWlDO0lBQWpDLGlEQUFpQztJQUM5QixlQUF5QjtJQUF6QixpREFBeUI7SUFZM0IsZUFBeUY7SUFBekYsK0hBQXlGO0lBT3pGLGVBQW1FO0lBQW5FLHlHQUFtRTtJQUtqRSxlQUFxQjtJQUFyQiw2Q0FBcUI7SUFLTCxlQUFnQjtJQUFoQiw0Q0FBZ0IsZ0NBQUE7SUFvQmxDLGVBQXdGO0lBQXhGLDhIQUF3RjtJQUt4RixlQUE0RDtJQUE1RCxrR0FBNEQ7SUFPNUQsZUFBNEM7SUFBNUMsMkVBQTRDO0lBd0JoQixlQUFrQztJQUFsQyxpRUFBa0M7SUFRdEQsZUFBb0I7SUFBcEIsNENBQW9COzs7SUEwTHJDLDJCQU1POzs7SUFITCx3REFBMEMsNkNBQUE7OztJQUg1QyxtRkFNTzs7Ozs7SUFMSix3S0FBNEc7Ozs7SUFTL0csNEJBQTRGO0lBQzVGLGlDQUF3RztJQUF2RCxxT0FBUyxxQ0FBYSw0QkFBYyxHQUFHLGNBQWMsQ0FBQSxJQUFDO0lBQUMsaUJBQVE7OztJQURyRSw0REFBOEM7Ozs7SUFLekYsdUNBSUM7SUFGQyxpUEFBWSxxQ0FBYSw0QkFBYyxHQUFHLGNBQWMsQ0FBQSxJQUFDO0lBRTFELGlCQUFjOzs7SUFEYixvREFBaUM7OztJQWNuQyx1QkFVTzs7OztJQVJMLDBMQUEyRywrTUFBQSwrTUFBQTs7OztJQVg3RyxxQ0FNQztJQUZDLHdMQUFjLGVBQUEsa0NBQXlCLENBQUEsSUFBQyxxS0FDMUIsZUFBQSw0QkFBbUIsQ0FBQSxJQURPO0lBR3hDLFlBQ0Y7O0lBQUEsaUJBQU87SUFDUCxvRkFVTzs7OztJQWhCTCwrQ0FBeUI7SUFJekIsZUFDRjtJQURFLGdHQUNGO0lBRUcsZUFBdUM7SUFBdkMscUVBQXVDOzs7SUFhMUMsZ0NBQXVHO0lBQ3JHLFlBQ0Y7SUFBQSxpQkFBTTs7O0lBRm1DLHlIQUE2RDtJQUNwRyxlQUNGO0lBREUsd0hBQ0Y7OztJQUlBLFlBQ0Y7OztJQURFLHlIQUNGOzs7SUFpQk0sK0JBQStHOzs7SUFBdEMsa0RBQTJCOzs7O0lBTnRHLGdDQUtDO0lBREMsNE5BQVMsZUFBQSwyREFBb0MsQ0FBQSxJQUFDO0lBRTlDLHFHQUErRztJQUMvRyxZQUNGO0lBQUEsaUJBQU07Ozs7SUFMSixnSkFBdUc7SUFHN0YsZUFBc0I7SUFBdEIsZ0RBQXNCO0lBQ2hDLGVBQ0Y7SUFERSwyREFDRjs7O0lBZkYsK0JBTUM7SUFDQyx1RkFRTTtJQUNSLGlCQUFLOzs7SUFiSCw4R0FBdUUseUdBQUEscUdBQUE7SUFLcEUsZUFBbUM7SUFBbkMsNkRBQW1DOzs7O0lBVXhDLCtCQUFzRSxxQkFBQTtJQUNQLHVQQUFTLGVBQUEscUNBQTZCLENBQUEsSUFBQztJQUFDLGlCQUFPLEVBQUE7OztJQW5COUcsZ0ZBZ0JLO0lBRUwsZ0ZBRUs7OztJQW5CRiw2Q0FBb0I7SUFpQmxCLGVBQStCO0lBQS9CLHdEQUErQjs7OztJQUt0QyxvREFVQztJQUpDLG1QQUE0QixlQUFBLHVDQUE4QixDQUFBLElBQUMsc09BQy9CLGVBQUEsdUNBQThCLENBQUEsSUFEQyx3TkFHdEMsZUFBQSx1Q0FBOEIsQ0FBQSxJQUhRO0lBSzdELGlCQUEwQjs7O0lBVHhCLDJDQUFxQixxQ0FBQSw2RkFBQSx1RUFBQSw2Q0FBQTs7QUQ5cUJ2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJDRztBQU1ILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBb0I7SUErRHhELFlBQ0UsTUFBcUIsRUFDckIsT0FBd0IsRUFDeEIsUUFBbUIsRUFDbkIsaUJBQW9DLEVBQzVCLGNBQWlDLEVBQ2pDLFdBQXdCLEVBQ3hCLE1BQWMsRUFDZCxjQUE4QjtRQUV0QyxLQUFLLENBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBTHpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBOUN4QyxpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUV6QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBUWQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFxQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUMsNEZBQTRGO1FBQzVGLDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUF2Q0QsSUFBc0MsbUJBQW1CLENBQUMsS0FBaUI7UUFDekUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBMkMsd0JBQXdCLENBQUMsS0FBaUI7UUFDbkYsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLHdCQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztJQUN4QyxDQUFDO0lBeUJELElBQUkscUNBQXFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLDhCQUE4QixLQUFLLGdDQUFnQyxDQUFDLEtBQUssQ0FBQztJQUMxRyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsTUFBTSxXQUFXLEdBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO1lBQ3ZCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEUsT0FBTyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLDBCQUEwQjtRQUM1QiwyRUFBMkU7UUFDM0UsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUM7SUFDckgsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUM3QyxPQUFPLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sQ0FDTCxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQy9HLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsRUFBRSxNQUFNLEVBQUU7UUFDL0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksY0FBYyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLEVBQUU7WUFDekcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsbUNBQW1DLEVBQUUsQ0FBQztRQUMzQyxnR0FBZ0c7UUFDaEcsd0VBQXdFO1FBQ3hFLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILFlBQVksQ0FBQyxXQUFnRDtRQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFDLFFBQWdCO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxRQUFnQjtRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUUzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRTdELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDOUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDL0IsVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBRyxFQUFFLE1BQXFCO1FBQ3RDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3hELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFHO1FBQ3RCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekUsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQVEsRUFBRSxXQUFnQjtRQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDaEUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLE1BQW9EO1FBQ2xFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsTUFBb0Q7UUFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN2QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVUsRUFBRSxNQUFjO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFRLEVBQUUsTUFBcUI7UUFDekMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztZQUN2QyxJQUFJLEtBQUssR0FBUSxHQUFHLENBQUM7WUFDckIsS0FBSyxNQUFNLFFBQVEsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDdkMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUN6RTtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTTtZQUNMLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsUUFBYSxFQUFFLGFBQTRCO1FBQ3pELElBQUksUUFBUSxJQUFJLFFBQVEsS0FBSyxLQUFLLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtZQUNwRCxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdEMsSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFO2dCQUN6QixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7YUFDeEc7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQ2pDO1NBQ0Y7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVEsRUFBRSxNQUFxQjtRQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDaEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMzQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3REO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDOUM7U0FDRjtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBUSxFQUFFLFdBQTBCO1FBQ2pELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVEsRUFBRSxjQUE2QjtRQUN2RCxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFHO1FBQ3BCLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0I7WUFDckIsR0FBRyxDQUFDLFdBQVc7WUFDZixJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDO1lBQzlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsS0FBYTtRQUNsQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUU7WUFDekUsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBcUI7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFzQjtRQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUE2QjtRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVLEVBQUUsTUFBc0IsRUFBRSxHQUFTO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pILE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFHLEVBQUUsU0FBUztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXBDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFhO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELG1CQUFtQixDQUFDLEdBQVEsRUFBRSxXQUFnQjtRQUM1QyxJQUFJLE9BQU8sV0FBVyxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDOUMsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQywwQkFBMEIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxJQUFxQztRQUM5QyxJQUFJLElBQUksWUFBWSxNQUFNLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQztTQUNuRTthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ25DLE1BQU0sS0FBSyxHQUFXLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsVUFBVSxDQUFDLElBQXFDLEVBQUUsV0FBbUM7UUFDbkYsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0wsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsTUFBcUI7UUFDdEMsTUFBTSxRQUFRLEdBQW1DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQzdFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FDOUUsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixPQUFPLENBQUMsSUFBSSxDQUNWLHdEQUF3RCxNQUFNLENBQUMsUUFBUSxvREFBb0QsQ0FDNUgsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDOUIsQ0FBQztJQUVNLDBCQUEwQjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7SUFDakcsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLFdBQVc7WUFDcEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNwRCxDQUFDO0lBRU0seUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU07WUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsV0FBVztZQUN2RCxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVTLDZCQUE2QixDQUFDLE1BQU07UUFDNUMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CO1lBQ2pELENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ3pELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVTLG1CQUFtQjtRQUMzQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDdEUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7YUFDN0I7U0FDRjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEQsSUFBSSxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUVELElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFTywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsR0FBRztRQUM1QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNoRixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQzNCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ25DLGlCQUFpQjtZQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBcUI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDL0MsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWTtZQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsWUFBWTtZQUM5QyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sQ0FDTCxJQUFJLENBQUMsY0FBYztZQUNuQixJQUFJLENBQUMsUUFBUTtZQUNiLENBQUMsSUFBSSxDQUFDLHVCQUF1QjtZQUM3QixJQUFJLENBQUMsTUFBTTtZQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNwRCxDQUFDO0lBQ0osQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV4RyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUF1QixFQUFFLFdBQXVCO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUV2QixRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQ3RDLFVBQVUsQ0FBQyxFQUFFLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQyxJQUFJLElBQUksV0FBVyxLQUFLLFVBQVUsQ0FBQyxLQUFLLENBQ2xGLENBQUM7WUFDRixlQUFlLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtRQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2hDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRVMsbUNBQW1DO1FBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBRWhELElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDakQ7WUFFRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUFPLEVBQUUsV0FBb0I7UUFDaEQsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUU7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7aUJBQzlCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztpQkFDOUI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Z0ZBcm9CVSxnQkFBZ0I7bUVBQWhCLGdCQUFnQjtvQ0FDYiwyQkFBMkI7b0NBQzNCLDRCQUE0QjtvQ0FFekIsOEJBQThCOzs7Ozs7OytCQUVULFVBQVU7K0JBQ0wsVUFBVTs7K0JBRW5CLFVBQVU7K0JBQ1QsVUFBVTsrQkFDVixVQUFVOytCQUNWLFVBQVU7K0JBQ0gsVUFBVTsrQkFDaEIsVUFBVTsrQkFDTCxVQUFVO2dDQUNaLFVBQVU7Z0NBQ0wsVUFBVTs7O2dDQUVWLFVBQVU7Z0NBQ2QsVUFBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQ0F0QnZDLENBQUMsYUFBYSxDQUFDO1FDcEY1QixtRkFFZTtRQUVmLG1IQW1DYztRQUVkLGlFQWNNO1FBRU4sb0hBeUZjO1FBR2QsbUhBK01jO1FBRWQsb0hBc1JjO1FBRWQsa0NBQTRFO1FBRTVFLG9IQVFjO1FBRWQsb0hBR2M7UUFFZCxxSEFNYztRQUVkLHFIQXFCYztRQUVkLHFIQUljO1FBRWQscUhBRWM7UUFHZCxxSEFzQmM7UUFFZCw0R0FXMEI7OztRQTV0Qlgsb0NBQWlCLGlCQUFBO1FBMEM3QixlQUFxQjtRQUFyQiwwQ0FBcUI7UUFvbEJQLGVBQXFCO1FBQXJCLHVDQUFxQiw2QkFBQTtRQW9GbkMsZ0JBQXlCO1FBQXpCLDhDQUF5Qjs7dUZENW5CZixnQkFBZ0I7Y0FMNUIsU0FBUzsyQkFDRSxVQUFVLGFBRVQsQ0FBQyxhQUFhLENBQUM7a1FBR21DLGdCQUFnQjtrQkFBNUUsWUFBWTttQkFBQywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDZixpQkFBaUI7a0JBQTVELFlBQVk7bUJBQUMsNEJBQTRCO1lBRU8sb0JBQW9CO2tCQUFwRSxlQUFlO21CQUFDLDhCQUE4QjtZQUVLLGVBQWU7a0JBQWxFLFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ08sb0JBQW9CO2tCQUE1RSxTQUFTO21CQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNuQyxnQkFBZ0I7a0JBQW5DLFNBQVM7bUJBQUMsT0FBTztZQUM2QyxrQkFBa0I7a0JBQWhGLFNBQVM7bUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ0csbUJBQW1CO2tCQUFsRixTQUFTO21CQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNFLFlBQVk7a0JBQTNFLFNBQVM7bUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ0UsWUFBWTtrQkFBM0UsU0FBUzttQkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDUyxtQkFBbUI7a0JBQXpGLFNBQVM7bUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDSixhQUFhO2tCQUE3RSxTQUFTO21CQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNPLGtCQUFrQjtrQkFBdkYsU0FBUzttQkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNBLGdCQUFnQjtrQkFBbkYsU0FBUzttQkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNPLHFCQUFxQjtrQkFBN0YsU0FBUzttQkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUViLGtCQUFrQjtrQkFBM0UsWUFBWTttQkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDRixjQUFjO2tCQUFuRSxZQUFZO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQXlCZCxtQkFBbUI7a0JBQXhELFNBQVM7bUJBQUMscUJBQXFCO1lBU1csd0JBQXdCO2tCQUFsRSxTQUFTO21CQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBJdGVyYWJsZURpZmZlcnMsXG4gIE9uRGVzdHJveSxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9EYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWRhdGUvcG8tZGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQb1BvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vcG8tcG9wdXAvcG8tcG9wdXAuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUG9UYWJsZUFjdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10YWJsZS1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVCYXNlQ29tcG9uZW50LCBRdWVyeVBhcmFtc1R5cGUgfSBmcm9tICcuL3BvLXRhYmxlLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ29sdW1uTGFiZWwgfSBmcm9tICcuL3BvLXRhYmxlLWNvbHVtbi1sYWJlbC9wby10YWJsZS1jb2x1bW4tbGFiZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVSb3dUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tdGFibGUtcm93LXRlbXBsYXRlL3BvLXRhYmxlLXJvdy10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9UYWJsZVN1YnRpdGxlQ29sdW1uIH0gZnJvbSAnLi9wby10YWJsZS1zdWJ0aXRsZS1mb290ZXIvcG8tdGFibGUtc3VidGl0bGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ2VsbFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9wby10YWJsZS1jZWxsLXRlbXBsYXRlL3BvLXRhYmxlLWNlbGwtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tdGFibGUtY29sdW1uLXRlbXBsYXRlL3BvLXRhYmxlLWNvbHVtbi10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9UYWJsZVJvd1RlbXBsYXRlQXJyb3dEaXJlY3Rpb24gfSBmcm9tICcuL2VudW1zL3BvLXRhYmxlLXJvdy10ZW1wbGF0ZS1hcnJvdy1kaXJlY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBQb1RhYmxlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcG8tdGFibGUuc2VydmljZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvVGFibGVCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFibGUtYmFzaWNcIiB0aXRsZT1cIlBPIFRhYmxlIEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1iYXNpYy9zYW1wbGUtcG8tdGFibGUtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWJhc2ljL3NhbXBsZS1wby10YWJsZS1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYmxlLWxhYnNcIiB0aXRsZT1cIlBPIFRhYmxlIExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWxhYnMvc2FtcGxlLXBvLXRhYmxlLWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWxhYnMvc2FtcGxlLXBvLXRhYmxlLWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtbGFicy9zYW1wbGUtcG8tdGFibGUtbGFicy5jb21wb25lbnQuZTJlLXNwZWMudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtbGFicy9zYW1wbGUtcG8tdGFibGUtbGFicy5jb21wb25lbnQucG8udHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtbGFicy9zYW1wbGUtcG8tdGFibGUtbGFicy5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFibGUtd2l0aC1hcGlcIiB0aXRsZT1cIlBPIFRhYmxlIHVzaW5nIEFQSVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtd2l0aC1hcGkvc2FtcGxlLXBvLXRhYmxlLXdpdGgtYXBpLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS13aXRoLWFwaS9zYW1wbGUtcG8tdGFibGUtd2l0aC1hcGkuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJsZS10cmFuc3BvcnRcIiB0aXRsZT1cIlBPIFRhYmxlIC0gVHJhbnNwb3J0XCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS10cmFuc3BvcnQvc2FtcGxlLXBvLXRhYmxlLXRyYW5zcG9ydC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtdHJhbnNwb3J0L3NhbXBsZS1wby10YWJsZS10cmFuc3BvcnQuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtdHJhbnNwb3J0L3NhbXBsZS1wby10YWJsZS10cmFuc3BvcnQuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYmxlLWFpcmZhcmVcIiB0aXRsZT1cIlBPIFRhYmxlIC0gQWlyZmFyZVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtYWlyZmFyZS9zYW1wbGUtcG8tdGFibGUtYWlyZmFyZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFibGUtYWlyZmFyZS9zYW1wbGUtcG8tdGFibGUtYWlyZmFyZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1haXJmYXJlL3NhbXBsZS1wby10YWJsZS1haXJmYXJlLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJsZS1jb21wb25lbnRzXCIgdGl0bGU9XCJQTyBUYWJsZSAtIFBvIEZpZWxkIENvbXBvbmVudHNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMvc2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMvc2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMuZW51bS50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1jb21wb25lbnRzL3NhbXBsZS1wby10YWJsZS1jb21wb25lbnRzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMvc2FtcGxlLXBvLXRhYmxlLWNvbXBvbmVudHMuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJsZS1jb21wb25lbnRzL3NhbXBsZS1wby10YWJsZS1jb21wb25lbnRzLmNvbXBvbmVudC5jc3NcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtQb0RhdGVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQb1RhYmxlQ29tcG9uZW50IGV4dGVuZHMgUG9UYWJsZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICBAQ29udGVudENoaWxkKFBvVGFibGVSb3dUZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgdGFibGVSb3dUZW1wbGF0ZTogUG9UYWJsZVJvd1RlbXBsYXRlRGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkKFBvVGFibGVDZWxsVGVtcGxhdGVEaXJlY3RpdmUpIHRhYmxlQ2VsbFRlbXBsYXRlOiBQb1RhYmxlQ2VsbFRlbXBsYXRlRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oUG9UYWJsZUNvbHVtblRlbXBsYXRlRGlyZWN0aXZlKSB0YWJsZUNvbHVtblRlbXBsYXRlczogUXVlcnlMaXN0PFBvVGFibGVDb2x1bW5UZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgQFZpZXdDaGlsZCgnbm9Db2x1bW5zSGVhZGVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG5vQ29sdW1uc0hlYWRlcjtcbiAgQFZpZXdDaGlsZCgnbm9Db2x1bW5zSGVhZGVyRml4ZWQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbm9Db2x1bW5zSGVhZGVyRml4ZWQ7XG4gIEBWaWV3Q2hpbGQoJ3BvcHVwJykgcG9Qb3B1cENvbXBvbmVudDogUG9Qb3B1cENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgndGFibGVGb290ZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgdGFibGVGb290ZXJFbGVtZW50O1xuICBAVmlld0NoaWxkKCd0YWJsZVdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgdGFibGVXcmFwcGVyRWxlbWVudDtcbiAgQFZpZXdDaGlsZCgncG9UYWJsZVRib2R5JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIHBvVGFibGVUYm9keTtcbiAgQFZpZXdDaGlsZCgncG9UYWJsZVRoZWFkJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIHBvVGFibGVUaGVhZDtcbiAgQFZpZXdDaGlsZCgncG9UYWJsZVRib2R5VmlydHVhbCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSBwb1RhYmxlVGJvZHlWaXJ0dWFsO1xuICBAVmlld0NoaWxkKCdjb2x1bW5NYW5hZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGNvbHVtbk1hbmFnZXI7XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbk1hbmFnZXJGaXhlZCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSBjb2x1bW5NYW5hZ2VyRml4ZWQ7XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbkFjdGlvbkxlZnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgY29sdW1uQWN0aW9uTGVmdDtcbiAgQFZpZXdDaGlsZCgnY29sdW1uQWN0aW9uTGVmdEZpeGVkJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGNvbHVtbkFjdGlvbkxlZnRGaXhlZDtcblxuICBAVmlld0NoaWxkcmVuKCdhY3Rpb25zSWNvbkVsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgYWN0aW9uc0ljb25FbGVtZW50OiBRdWVyeUxpc3Q8YW55PjtcbiAgQFZpZXdDaGlsZHJlbignYWN0aW9uc0VsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgYWN0aW9uc0VsZW1lbnQ6IFF1ZXJ5TGlzdDxhbnk+O1xuXG4gIGhlaWdodFRhYmxlQ29udGFpbmVyOiBudW1iZXI7XG4gIGhlaWdodFRhYmxlVmlydHVhbDogbnVtYmVyO1xuICBwb3B1cFRhcmdldDtcbiAgdGFibGVPcGFjaXR5OiBudW1iZXIgPSAwO1xuICB0b29sdGlwVGV4dDogc3RyaW5nO1xuICBpdGVtU2l6ZTogbnVtYmVyID0gMzI7XG4gIGxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkOiBBcnJheTxQb1RhYmxlQ29sdW1uPjtcblxuICBwcml2YXRlIF9jb2x1bW5NYW5hZ2VyVGFyZ2V0OiBFbGVtZW50UmVmO1xuICBwcml2YXRlIF9jb2x1bW5NYW5hZ2VyVGFyZ2V0Rml4ZWQ6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgZGlmZmVyO1xuICBwcml2YXRlIGZvb3RlckhlaWdodDtcbiAgcHJpdmF0ZSBoZWFkZXJIZWlnaHQ7XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSB0aW1lb3V0UmVzaXplO1xuICBwcml2YXRlIHZpc2libGVFbGVtZW50ID0gZmFsc2U7XG4gIHByaXZhdGUgc2Nyb2xsRXZlbnQkOiBPYnNlcnZhYmxlPGFueT47XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQ6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGNsaWNrTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgcmVzaXplTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIEpTT046IEpTT047XG5cbiAgQFZpZXdDaGlsZCgnY29sdW1uTWFuYWdlclRhcmdldCcpIHNldCBjb2x1bW5NYW5hZ2VyVGFyZ2V0KHZhbHVlOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5fY29sdW1uTWFuYWdlclRhcmdldCA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbk1hbmFnZXJUYXJnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbk1hbmFnZXJUYXJnZXQ7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjb2x1bW5NYW5hZ2VyVGFyZ2V0Rml4ZWQnKSBzZXQgY29sdW1uTWFuYWdlclRhcmdldEZpeGVkKHZhbHVlOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5fY29sdW1uTWFuYWdlclRhcmdldEZpeGVkID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXQgY29sdW1uTWFuYWdlclRhcmdldEZpeGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5NYW5hZ2VyVGFyZ2V0Rml4ZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwb0RhdGU6IFBvRGF0ZVNlcnZpY2UsXG4gICAgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcG9MYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBkZWZhdWx0U2VydmljZTogUG9UYWJsZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocG9EYXRlLCBwb0xhbmd1YWdlU2VydmljZSwgZGVmYXVsdFNlcnZpY2UpO1xuICAgIHRoaXMuSlNPTiA9IEpTT047XG4gICAgdGhpcy5kaWZmZXIgPSBkaWZmZXJzLmZpbmQoW10pLmNyZWF0ZShudWxsKTtcblxuICAgIC8vIFRPRE86ICM1NTUwIGFvIHJlbW92ZXIgZXN0ZSBsaXN0ZW5lciwgbm8gcG9ydGFsLCBxdWFuZG8gYXMgY29sdW5hcyBmb3JlbSBmaXhhcyBuw6NvIHNvZnJlbVxuICAgIC8vIGFsdGVyYcOnw6NvIGRlIGxhcmd1cmEsIHBvaXMgbyBuZ0RvQ2hlY2sgbsOjbyDDqSBleGVjdXRhZG8uXG4gICAgdGhpcy5jbGlja0xpc3RlbmVyID0gcmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsICgpID0+IHt9KTtcblxuICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSByZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5kZWJvdW5jZVJlc2l6ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVSb3dUZW1wbGF0ZT8udGFibGVSb3dUZW1wbGF0ZUFycm93RGlyZWN0aW9uID09PSBQb1RhYmxlUm93VGVtcGxhdGVBcnJvd0RpcmVjdGlvbi5SaWdodDtcbiAgfVxuXG4gIGdldCBjb2x1bW5Db3VudCgpIHtcbiAgICBjb25zdCBjb2x1bW5Db3VudCA9XG4gICAgICB0aGlzLm1haW5Db2x1bW5zLmxlbmd0aCArXG4gICAgICAodGhpcy5hY3Rpb25zLmxlbmd0aCA+IDAgPyAxIDogMCkgK1xuICAgICAgKHRoaXMuc2VsZWN0YWJsZSA/IDEgOiAwKSArXG4gICAgICAoIXRoaXMuaGlkZURldGFpbCAmJiB0aGlzLmNvbHVtbk1hc3RlckRldGFpbCAhPT0gdW5kZWZpbmVkID8gMSA6IDApO1xuXG4gICAgcmV0dXJuIGNvbHVtbkNvdW50IHx8IDE7XG4gIH1cblxuICBnZXQgY29sdW1uQ291bnRGb3JNYXN0ZXJEZXRhaWwoKSB7XG4gICAgLy8gY2FzbyB0aXZlciBhw6fDtWVzIHNlcsOhIHV0aWxpemFkbyBhIHN1YSBjb2x1bmEgcGFyYSBleGliaXIgbyBjb2x1bW5NYW5hZ2VyXG4gICAgY29uc3QgY29sdW1uTWFuYWdlciA9IHRoaXMuYWN0aW9ucy5sZW5ndGggPyAwIDogMTtcblxuICAgIHJldHVybiB0aGlzLm1haW5Db2x1bW5zLmxlbmd0aCArIDEgKyAodGhpcy5hY3Rpb25zLmxlbmd0aCA+IDAgPyAxIDogMCkgKyAodGhpcy5zZWxlY3RhYmxlID8gMSA6IDApICsgY29sdW1uTWFuYWdlcjtcbiAgfVxuXG4gIGdldCBkZXRhaWxIaWRlU2VsZWN0KCkge1xuICAgIGNvbnN0IG1hc3RlckRldGFpbCA9IHRoaXMuY29sdW1uTWFzdGVyRGV0YWlsO1xuICAgIHJldHVybiBtYXN0ZXJEZXRhaWwgJiYgbWFzdGVyRGV0YWlsLmRldGFpbCA/IG1hc3RlckRldGFpbC5kZXRhaWwuaGlkZVNlbGVjdCA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGhhc1Zpc2libGVBY3Rpb25zKCkge1xuICAgIHJldHVybiAhIXRoaXMudmlzaWJsZUFjdGlvbnMubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGZpcnN0QWN0aW9uKCk6IFBvVGFibGVBY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVBY3Rpb25zICYmIHRoaXMudmlzaWJsZUFjdGlvbnNbMF07XG4gIH1cblxuICBnZXQgaGFzRm9vdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0l0ZW1zICYmIHRoaXMuaGFzVmlzaWJsZVN1YnRpdGxlQ29sdW1ucztcbiAgfVxuXG4gIGdldCBoYXNNYXN0ZXJEZXRhaWxDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaGFzTWFpbkNvbHVtbnMgJiYgdGhpcy5oYXNJdGVtcyAmJiAhdGhpcy5oaWRlRGV0YWlsICYmICEhKHRoaXMuY29sdW1uTWFzdGVyRGV0YWlsIHx8IHRoaXMuaGFzUm93VGVtcGxhdGUpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBoYXNSb3dUZW1wbGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnRhYmxlUm93VGVtcGxhdGU7XG4gIH1cblxuICBnZXQgaGFzU2VsZWN0YWJsZUNvbHVtbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RhYmxlICYmIHRoaXMuaGFzSXRlbXMgJiYgdGhpcy5oYXNNYWluQ29sdW1ucztcbiAgfVxuXG4gIGdldCBoYXNWYWxpZENvbHVtbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy52YWxpZENvbHVtbnMubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGhhc1Zpc2libGVTdWJ0aXRsZUNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VidGl0bGVDb2x1bW5zLnNvbWUoY29sdW1uID0+IGNvbHVtbi52aXNpYmxlICE9PSBmYWxzZSk7XG4gIH1cblxuICBnZXQgaXNTaW5nbGVBY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUFjdGlvbnMubGVuZ3RoID09PSAxO1xuICB9XG5cbiAgZ2V0IHZpc2libGVBY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMgJiYgdGhpcy5hY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4gYWN0aW9uICYmIGFjdGlvbi52aXNpYmxlICE9PSBmYWxzZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBzaG93TW9yZUluZmluaXRlU2Nyb2xsKHsgdGFyZ2V0IH0pOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHRhcmdldC5vZmZzZXRIZWlnaHQgKyB0YXJnZXQuc2Nyb2xsVG9wO1xuICAgIGlmICghdGhpcy5zaG93TW9yZURpc2FibGVkICYmIHNjcm9sbFBvc2l0aW9uID49IHRhcmdldC5zY3JvbGxIZWlnaHQgKiAodGhpcy5pbmZpbml0ZVNjcm9sbERpc3RhbmNlIC8gMTEwKSkge1xuICAgICAgdGhpcy5vblNob3dNb3JlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIHRoaXMuY2hlY2tDaGFuZ2VzSXRlbXMoKTtcbiAgICB0aGlzLnZlcmlmeUNhbGN1bGF0ZUhlaWdodFRhYmxlQ29udGFpbmVyKCk7XG4gICAgLy8gUGVybWl0ZSBxdWUgb3MgY2FiZcOnYWxob3Mgc2VqYW0gY2FsY3VsYWRvcyBuYSBwcmltZWlyYSB2ZXogcXVlIG8gY29tcG9uZW50ZSB0b3JuYS1zZSB2aXPDrXZlbCxcbiAgICAvLyBldml0YW5kbyBjb20gaXNzbywgcHJvYmxlbWFzIGNvbSBUYWJzIG91IERpdnMgcXVlIGluaWNpZW0gZXNjb25kaWRhcy5cbiAgICBpZiAodGhpcy50YWJsZVdyYXBwZXJFbGVtZW50Py5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICYmICF0aGlzLnZpc2libGVFbGVtZW50ICYmIHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuZGVib3VuY2VSZXNpemUoKTtcbiAgICAgIHRoaXMuY2hlY2tJbmZpbml0ZVNjcm9sbCgpO1xuICAgICAgdGhpcy52aXNpYmxlRWxlbWVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5pdGVtU2l6ZSA9IGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggPiAxMzY2ID8gNDQgOiAzMjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIHJlYWxpemFyIGJ1c2NhIG5vIHNlcnZpw6dvIGRlIGRhZG9zIHBvZGVuZG8gaW5mb3JtYXIgZmlsdHJvcyBlIGNvbSBvIHJldG9ybm8sIGF0dWFsaXphIGEgdGFiZWxhLlxuICAgKlxuICAgKiBDYXNvIG7Do28gc2VqYSBpbmZvcm1hZG8gcGFyw6JtZXRybywgbmFkYSBzZXLDoSBhZGljaW9uYWRvIGFvIEdFVCwgY29uZm9ybWUgYWJhaXhvOlxuICAgKiBgYGBcbiAgICogdXJsICsgP3BhZ2U9MSZwYWdlU2l6ZT0xMFxuICAgKiBgYGBcbiAgICogPiBPYnM6IG9zIHBhcsOibWV0cm9zIGBwYWdlYCBlIGBwYWdlU2l6ZWAgc2VtcHJlIHNlcsOjbyBjaGFtYWRvcyBpbmRlcGVuZGVudGUgZGUgc2VyIGVudmlhZG9zIG91dHJvcyBwYXLDom1ldHJvcy5cbiAgICpcbiAgICogQ2FzbyBzZWphbSBpbmZvcm1hZG9zIG9zIHBhcsOibWV0cm9zIGB7IG5hbWU6ICdKT0hOJywgYWdlOiAnMjMnIH1gLCB0b2RvcyBzZXLDo28gYWRpY2lvbmFkb3MgYW8gR0VULCBjb25mb3JtZSBhYmFpeG86XG4gICAqIGBgYFxuICAgKiB1cmwgKyA/cGFnZT0xJnBhZ2VTaXplPTEwJm5hbWU9Sk9ITiZhZ2U9MjNcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7IHsga2V5OiB2YWx1ZSB9IH0gcXVlcnlQYXJhbXMgRm9ybWF0byBkbyBvYmpldG8gYSBzZXIgZW52aWFkby5cbiAgICogPiBQb2RlIHNlciB1dGlsaXphZGEgcXVhbHF1ZXIgc3RyaW5nIGNvbW8ga2V5LCBlIHF1YWxxdWVyIHN0cmluZyBvdSBudW1iZXIgY29tbyB2YWx1ZS5cbiAgICovXG4gIGFwcGx5RmlsdGVycyhxdWVyeVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogUXVlcnlQYXJhbXNUeXBlIH0pIHtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEocXVlcnlQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIGNvbGFwc2EgdW1hIGxpbmhhIGNvbSBkZXRhbGhlIHF1YW5kbyBleGVjdXRhZGEuXG4gICAqXG4gICAqIEBwYXJhbSB7IG51bWJlciB9IHJvd0luZGV4IMONbmRpY2UgZGEgbGluaGEgcXVlIHNlcsOhIGNvbGFwc2FkYS5cbiAgICogPiBBbyByZW9yZGVuYXIgb3MgZGFkb3MgZGEgdGFiZWxhLCBvIHZhbG9yIGNvbnRpZG8gbmVzdGUgw61uZGljZSBzZXLDoSBhbHRlcmFkbyBjb25mb3JtZSBhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgY29sbGFwc2Uocm93SW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2V0U2hvd0RldGFpbChyb3dJbmRleCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIGV4cGFuZGUgdW1hIGxpbmhhIGNvbSBkZXRhbGhlIHF1YW5kbyBleGVjdXRhZGEuXG4gICAqXG4gICAqIEBwYXJhbSB7IG51bWJlciB9IHJvd0luZGV4IMONbmRpY2UgZGEgbGluaGEgcXVlIHNlcsOhIGV4cGFuZGlkYS5cbiAgICogPiBBbyByZW9yZGVuYXIgb3MgZGFkb3MgZGEgdGFiZWxhLCBvIHZhbG9yIGNvbnRpZG8gbmVzdGUgw61uZGljZSBzZXLDoSBhbHRlcmFkbyBjb25mb3JtZSBhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgZXhwYW5kKHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFNob3dEZXRhaWwocm93SW5kZXgsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYXMgbGluaGFzIGRvIGBwby10YWJsZWAgcXVlIGVzdMOjbyBzZWxlY2lvbmFkYXMuXG4gICAqL1xuICBnZXRTZWxlY3RlZFJvd3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS4kc2VsZWN0ZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYXMgbGluaGFzIGRvIGBwby10YWJsZWAgcXVlIG7Do28gZXN0w6NvIHNlbGVjaW9uYWRhcy5cbiAgICovXG4gIGdldFVuc2VsZWN0ZWRSb3dzKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLiRzZWxlY3RlZCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzbWFyY2EgYXMgbGluaGFzIHF1ZSBlc3TDo28gc2VsZWNpb25hZGFzLlxuICAgKi9cbiAgdW5zZWxlY3RSb3dzKCkge1xuICAgIGNvbnN0IGNvbHVtbkRldGFpbCA9IHRoaXMubmFtZUNvbHVtbkRldGFpbDtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGRldGFpbEl0ZW1zID0gY29sdW1uRGV0YWlsID8gaXRlbVtjb2x1bW5EZXRhaWxdIDogbnVsbDtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGV0YWlsSXRlbXMpKSB7XG4gICAgICAgIGRldGFpbEl0ZW1zLmZvckVhY2goZGV0YWlsSXRlbSA9PiB7XG4gICAgICAgICAgZGV0YWlsSXRlbS4kc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGl0ZW0uJHNlbGVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdEFsbCA9IGZhbHNlO1xuICB9XG5cbiAgY2hlY2tEaXNhYmxlZChyb3csIGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIHJldHVybiBjb2x1bW4uZGlzYWJsZWQgPyBjb2x1bW4uZGlzYWJsZWQocm93KSA6IGZhbHNlO1xuICB9XG5cbiAgY29udGFpbnNNYXN0ZXJEZXRhaWwocm93KSB7XG4gICAgcmV0dXJuIHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdICYmIHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdLmxlbmd0aDtcbiAgfVxuXG4gIGV4ZWN1dGVUYWJsZUFjdGlvbihyb3c6IGFueSwgdGFibGVBY3Rpb246IGFueSkge1xuICAgIGlmICghcm93LmRpc2FibGVkICYmICF0aGlzLnZhbGlkYXRlVGFibGVBY3Rpb24ocm93LCB0YWJsZUFjdGlvbikpIHtcbiAgICAgIHRhYmxlQWN0aW9uLmFjdGlvbihyb3cpO1xuICAgICAgdGhpcy50b2dnbGVSb3dBY3Rpb24ocm93KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVzbWFyY2EgdW1hIGxpbmhhIHF1ZSBlc3TDoSBzZWxlY2lvbmFkYS5cbiAgICovXG4gIHVuc2VsZWN0Um93SXRlbShpdGVtZm46IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCAoKGl0ZW0pID0+IGJvb2xlYW4pKSB7XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbWZuLCBmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5pdGVtcy5ldmVyeShpdGVtID0+ICFpdGVtLiRzZWxlY3RlZCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWNpb25hIHVtYSBsaW5oYSBkbyAncG8tdGFibGUnLlxuICAgKi9cbiAgc2VsZWN0Um93SXRlbShpdGVtZm46IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCAoKGl0ZW0pID0+IGJvb2xlYW4pKSB7XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbWZuLCB0cnVlKTtcblxuICAgIGlmICh0aGlzLml0ZW1zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS4kc2VsZWN0ZWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IGFueSwgZm9ybWF0OiBzdHJpbmcpIHtcbiAgICBpZiAoIWZvcm1hdCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0KTtcbiAgfVxuXG4gIGdldENlbGxEYXRhKHJvdzogYW55LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pOiBhbnkge1xuICAgIGNvbnN0IGFycmF5UHJvcGVydHkgPSBjb2x1bW4ucHJvcGVydHkuc3BsaXQoJy4nKTtcbiAgICBpZiAoYXJyYXlQcm9wZXJ0eS5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBuZXN0ZWRQcm9wZXJ0aWVzID0gYXJyYXlQcm9wZXJ0eTtcbiAgICAgIGxldCB2YWx1ZTogYW55ID0gcm93O1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBuZXN0ZWRQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVbcHJvcGVydHldIHx8IHZhbHVlW3Byb3BlcnR5XSA9PT0gMCA/IHZhbHVlW3Byb3BlcnR5XSA6ICcnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcm93W2NvbHVtbi5wcm9wZXJ0eV07XG4gICAgfVxuICB9XG5cbiAgZ2V0Qm9vbGVhbkxhYmVsKHJvd1ZhbHVlOiBhbnksIGNvbHVtbkJvb2xlYW46IFBvVGFibGVDb2x1bW4pOiBzdHJpbmcge1xuICAgIGlmIChyb3dWYWx1ZSB8fCByb3dWYWx1ZSA9PT0gZmFsc2UgfHwgcm93VmFsdWUgPT09IDApIHtcbiAgICAgIHJvd1ZhbHVlID0gY29udmVydFRvQm9vbGVhbihyb3dWYWx1ZSk7XG5cbiAgICAgIGlmIChjb2x1bW5Cb29sZWFuLmJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIHJvd1ZhbHVlID8gY29sdW1uQm9vbGVhbi5ib29sZWFuLnRydWVMYWJlbCB8fCAnU2ltJyA6IGNvbHVtbkJvb2xlYW4uYm9vbGVhbi5mYWxzZUxhYmVsIHx8ICdOw6NvJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByb3dWYWx1ZSA/ICdTaW0nIDogJ07Do28nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByb3dWYWx1ZTtcbiAgfVxuXG4gIGdldENvbHVtbkljb25zKHJvdzogYW55LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pIHtcbiAgICBjb25zdCByb3dJY29ucyA9IHRoaXMuZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pO1xuXG4gICAgaWYgKGNvbHVtbi5pY29ucykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93SWNvbnMpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lcmdlQ3VzdG9tSWNvbnMocm93SWNvbnMsIGNvbHVtbi5pY29ucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kQ3VzdG9tSWNvbihyb3dJY29ucywgY29sdW1uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcm93SWNvbnM7XG4gIH1cblxuICBnZXRDb2x1bW5MYWJlbChyb3c6IGFueSwgY29sdW1uTGFiZWw6IFBvVGFibGVDb2x1bW4pOiBQb1RhYmxlQ29sdW1uTGFiZWwge1xuICAgIHJldHVybiBjb2x1bW5MYWJlbC5sYWJlbHMuZmluZChsYWJlbEl0ZW0gPT4gdGhpcy5nZXRDZWxsRGF0YShyb3csIGNvbHVtbkxhYmVsKSA9PT0gbGFiZWxJdGVtLnZhbHVlKTtcbiAgfVxuXG4gIGdldFN1YnRpdGxlQ29sdW1uKHJvdzogYW55LCBzdWJ0aXRsZUNvbHVtbjogUG9UYWJsZUNvbHVtbik6IFBvVGFibGVTdWJ0aXRsZUNvbHVtbiB7XG4gICAgcmV0dXJuIHN1YnRpdGxlQ29sdW1uLnN1YnRpdGxlcy5maW5kKHN1YnRpdGxlSXRlbSA9PiB0aGlzLmdldENlbGxEYXRhKHJvdywgc3VidGl0bGVDb2x1bW4pID09PSBzdWJ0aXRsZUl0ZW0udmFsdWUpO1xuICB9XG5cbiAgaXNTaG93TWFzdGVyRGV0YWlsKHJvdykge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5oaWRlRGV0YWlsICYmXG4gICAgICB0aGlzLm5hbWVDb2x1bW5EZXRhaWwgJiZcbiAgICAgIHJvdy4kc2hvd0RldGFpbCAmJlxuICAgICAgdGhpcy5jb250YWluc01hc3RlckRldGFpbChyb3cpICYmXG4gICAgICAhdGhpcy5oYXNSb3dUZW1wbGF0ZVxuICAgICk7XG4gIH1cblxuICBpc1Nob3dSb3dUZW1wbGF0ZShyb3csIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy50YWJsZVJvd1RlbXBsYXRlICYmIHRoaXMudGFibGVSb3dUZW1wbGF0ZS5wb1RhYmxlUm93VGVtcGxhdGVTaG93KSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZVJvd1RlbXBsYXRlLnBvVGFibGVSb3dUZW1wbGF0ZVNob3cocm93LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBvbkNsaWNrTGluayhldmVudCwgcm93LCBjb2x1bW46IFBvVGFibGVDb2x1bW4pIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tEaXNhYmxlZChyb3csIGNvbHVtbikpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlVmlzaWJsZUNvbHVtbnMoY29sdW1uczogQXJyYXk8c3RyaW5nPikge1xuICAgIHRoaXMuY2hhbmdlVmlzaWJsZUNvbHVtbnMuZW1pdChjb2x1bW5zKTtcbiAgfVxuXG4gIG9uQ29sdW1uUmVzdG9yZU1hbmFnZXIodmFsdWU6IEFycmF5PFN0cmluZz4pIHtcbiAgICB0aGlzLmNvbHVtblJlc3RvcmVNYW5hZ2VyLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgb25WaXNpYmxlQ29sdW1uc0NoYW5nZShjb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPikge1xuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvb2x0aXBNb3VzZUVudGVyKGV2ZW50OiBhbnksIGNvbHVtbj86IFBvVGFibGVDb2x1bW4sIHJvdz86IGFueSkge1xuICAgIHRoaXMudG9vbHRpcFRleHQgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5oaWRlVGV4dE92ZXJmbG93ICYmIGV2ZW50LnRhcmdldC5vZmZzZXRXaWR0aCA8IGV2ZW50LnRhcmdldC5zY3JvbGxXaWR0aCAmJiBldmVudC50YXJnZXQuaW5uZXJUZXh0LnRyaW0oKSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRvb2x0aXBUZXh0ID0gZXZlbnQudGFyZ2V0LmlubmVyVGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbikge1xuICAgICAgdGhpcy5jaGVja2luZ0lmQ29sdW1uSGFzVG9vbHRpcChjb2x1bW4sIHJvdyk7XG4gICAgfVxuICB9XG5cbiAgdG9vbHRpcE1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRvZ2dsZVBvcHVwKHJvdywgdGFyZ2V0UmVmKSB7XG4gICAgdGhpcy5wb3B1cFRhcmdldCA9IHRhcmdldFJlZjtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMucG9Qb3B1cENvbXBvbmVudC50b2dnbGUocm93KTtcbiAgfVxuXG4gIHRyYWNrQnkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHZhbGlkYXRlVGFibGVBY3Rpb24ocm93OiBhbnksIHRhYmxlQWN0aW9uOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHRhYmxlQWN0aW9uLmRpc2FibGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGFibGVBY3Rpb24uZGlzYWJsZWQocm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRhYmxlQWN0aW9uLmRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIG9uT3BlbkNvbHVtbk1hbmFnZXIoKSB7XG4gICAgdGhpcy5sYXN0VmlzaWJsZUNvbHVtbnNTZWxlY3RlZCA9IFsuLi50aGlzLmNvbHVtbnNdO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcXVlIHJlbW92ZSB1bSBpdGVtIGRhIHRhYmVsYS5cbiAgICpcbiAgICogQHBhcmFtIHsgbnVtYmVyIHwgeyBrZXk6IHZhbHVlIH0gfSBpdGVtIMONbmRpY2UgZGEgbGluaGEgb3UgbyBpdGVtIHF1ZSBzZXLDoSByZW1vdmlkby5cbiAgICogPiBBbyByZW1vdmVyIG8gaXRlbSwgYSBsaW5oYSBxdWUgbyByZXByZXNlbnRhIHNlcsOhIGV4Y2x1w61kYSBkYSB0YWJlbGEuXG4gICAqL1xuICByZW1vdmVJdGVtKGl0ZW06IG51bWJlciB8IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGZpbHRlckl0ZW0gPT4gZmlsdGVySXRlbSAhPT0gaXRlbSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSBpdGVtO1xuICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNw6l0b2RvIHF1ZSBhdHVhbGl6YSB1bSBpdGVtIGRhIHRhYmVsYS5cbiAgICpcbiAgICogQHBhcmFtIHsgbnVtYmVyIHwgeyBrZXk6IHZhbHVlIH0gfSBpdGVtIMONbmRpY2UgZGEgbGluaGEgb3UgbyBpdGVtIHF1ZSBzZXLDoSBhdHVhbGl6YWRvLlxuICAgKiBAcGFyYW0geyB7IGtleTogdmFsdWUgfSB9IHVwZGF0ZWRJdGVtIEl0ZW0gcXVlIGZvaSBhdHVhbGl6YWRvLlxuICAgKiA+IEFvIGF0dWFsaXphciBvIGl0ZW0sIGEgaW5mb3JtYcOnw6NvIHNlcsOhIGFsdGVyYWRhIG5hIHRhYmVsYS5cbiAgICovXG4gIHVwZGF0ZUl0ZW0oaXRlbTogbnVtYmVyIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgdXBkYXRlZEl0ZW06IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpdGVtLCAxLCB1cGRhdGVkSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaW5kZXhJdGVtID0+IGluZGV4SXRlbSA9PT0gaXRlbSk7XG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleCwgMSwgdXBkYXRlZEl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZShjb2x1bW46IFBvVGFibGVDb2x1bW4pOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZTogUG9UYWJsZUNvbHVtblRlbXBsYXRlRGlyZWN0aXZlID0gdGhpcy50YWJsZUNvbHVtblRlbXBsYXRlcy5maW5kKFxuICAgICAgdGFibGVDb2x1bW5UZW1wbGF0ZSA9PiB0YWJsZUNvbHVtblRlbXBsYXRlLnRhcmdldFByb3BlcnR5ID09PSBjb2x1bW4ucHJvcGVydHlcbiAgICApO1xuICAgIGlmICghdGVtcGxhdGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYE7Do28gZm9pIHBvc3PDrXZlbCBlbmNvbnRyYXIgbyB0ZW1wbGF0ZSBwYXJhIGEgY29sdW5hOiAke2NvbHVtbi5wcm9wZXJ0eX0sIHBvciBnZW50aWxlemEgaW5mb3JtZSBhIHByb3ByaWVkYWRlIFtwLXByb3BlcnR5XWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlLnRlbXBsYXRlUmVmO1xuICB9XG5cbiAgcHVibGljIHN5bmNyb25pemVIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMucG9UYWJsZVRoZWFkLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMucG9UYWJsZVRib2R5VmlydHVhbC5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0V2lkdGhDb2x1bW5NYW5hZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLmhlaWdodFxuICAgICAgPyB0aGlzLmNvbHVtbk1hbmFnZXJGaXhlZD8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aFxuICAgICAgOiB0aGlzLmNvbHVtbk1hbmFnZXI/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sdW1uV2lkdGhBY3Rpb25zTGVmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5oZWlnaHRcbiAgICAgID8gdGhpcy5jb2x1bW5BY3Rpb25MZWZ0Rml4ZWQ/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGhcbiAgICAgIDogdGhpcy5jb2x1bW5BY3Rpb25MZWZ0Py5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbGN1bGF0ZUhlaWdodFRhYmxlQ29udGFpbmVyKGhlaWdodCkge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyc2VGbG9hdChoZWlnaHQpO1xuICAgIHRoaXMuaGVpZ2h0VGFibGVDb250YWluZXIgPSB2YWx1ZSA/IHZhbHVlIC0gdGhpcy5nZXRIZWlnaHRUYWJsZUZvb3RlcigpIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuaGVpZ2h0VGFibGVWaXJ0dWFsID0gdGhpcy5oZWlnaHRUYWJsZUNvbnRhaW5lclxuICAgICAgPyB0aGlzLmhlaWdodFRhYmxlQ29udGFpbmVyIC0gdGhpcy5nZXRIZWlnaHRUYWJsZUhlYWRlcigpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNldFRhYmxlT3BhY2l0eSgxKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0luZmluaXRlU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc0luZmluaXRlU2Nyb2xsKCkpIHtcbiAgICAgIGlmICh0aGlzLnBvVGFibGVUYm9keVZpcnR1YWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgPj0gdGhpcy5oZWlnaHQpIHtcbiAgICAgICAgdGhpcy5pbmNsdWRlSW5maW5pdGVTY3JvbGwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5maW5pdGVTY3JvbGwgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ2hhbmdlc0l0ZW1zKCkge1xuICAgIGNvbnN0IGNoYW5nZXNJdGVtcyA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5pdGVtcyk7XG5cbiAgICBpZiAoY2hhbmdlc0l0ZW1zICYmIHRoaXMuc2VsZWN0QWxsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNJdGVtcyAmJiAhdGhpcy5oYXNDb2x1bW5zICYmIHRoaXMuaGFzSXRlbXMpIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuZ2V0RGVmYXVsdENvbHVtbnModGhpcy5pdGVtc1swXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja2luZ0lmQ29sdW1uSGFzVG9vbHRpcChjb2x1bW4sIHJvdykge1xuICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2xpbmsnICYmIGNvbHVtbi50b29sdGlwICYmICF0aGlzLmNoZWNrRGlzYWJsZWQocm93LCBjb2x1bW4pKSB7XG4gICAgICByZXR1cm4gKHRoaXMudG9vbHRpcFRleHQgPSBjb2x1bW4udG9vbHRpcCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbi50eXBlID09PSAnbGFiZWwnKSB7XG4gICAgICBjb25zdCBjb2x1bW5MYWJlbCA9IHRoaXMuZ2V0Q29sdW1uTGFiZWwocm93LCBjb2x1bW4pO1xuICAgICAgcmV0dXJuICh0aGlzLnRvb2x0aXBUZXh0ID0gY29sdW1uTGFiZWw/LnRvb2x0aXApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVib3VuY2VSZXNpemUoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFJlc2l6ZSk7XG4gICAgdGhpcy50aW1lb3V0UmVzaXplID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBzaG93IHRoZSB0YWJsZVxuICAgICAgdGhpcy5zZXRUYWJsZU9wYWNpdHkoMSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRDdXN0b21JY29uKHJvd0ljb25zLCBjb2x1bW46IFBvVGFibGVDb2x1bW4pIHtcbiAgICBjb25zdCBjdXN0b21JY29uID0gY29sdW1uLmljb25zLmZpbmQoaWNvbiA9PiByb3dJY29ucyA9PT0gaWNvbi52YWx1ZSk7XG4gICAgcmV0dXJuIGN1c3RvbUljb24gPyBbY3VzdG9tSWNvbl0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEhlaWdodFRhYmxlRm9vdGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlRm9vdGVyRWxlbWVudCA/IHRoaXMudGFibGVGb290ZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGVpZ2h0VGFibGVIZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucG9UYWJsZVRoZWFkPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRIZWlnaHRcbiAgICAgID8gdGhpcy5wb1RhYmxlVGhlYWQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHRcbiAgICAgIDogdGhpcy5pdGVtU2l6ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzSW5maW5pdGVTY3JvbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaW5maW5pdGVTY3JvbGwgJiZcbiAgICAgIHRoaXMuaGFzSXRlbXMgJiZcbiAgICAgICF0aGlzLnN1YnNjcmlwdGlvblNjcm9sbEV2ZW50ICYmXG4gICAgICB0aGlzLmhlaWdodCAmJlxuICAgICAgdGhpcy5wb1RhYmxlVGJvZHlWaXJ0dWFsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5jbHVkZUluZmluaXRlU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsRXZlbnQkID0gdGhpcy5kZWZhdWx0U2VydmljZS5zY3JvbGxMaXN0ZW5lcih0aGlzLnBvVGFibGVUYm9keVZpcnR1YWwubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudCA9IHRoaXMuc2Nyb2xsRXZlbnQkLnN1YnNjcmliZShldmVudCA9PiB0aGlzLnNob3dNb3JlSW5maW5pdGVTY3JvbGwoZXZlbnQpKTtcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUN1c3RvbUljb25zKHJvd0ljb25zOiBBcnJheTxzdHJpbmc+LCBjdXN0b21JY29uczogQXJyYXk8YW55Pikge1xuICAgIGNvbnN0IG1lcmdlZEljb25zID0gW107XG5cbiAgICByb3dJY29ucy5mb3JFYWNoKGNvbHVtblZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZvdW5kQ3VzdG9tSWNvbiA9IGN1c3RvbUljb25zLmZpbmQoXG4gICAgICAgIGN1c3RvbUljb24gPT4gY29sdW1uVmFsdWUgPT09IGN1c3RvbUljb24uaWNvbiB8fCBjb2x1bW5WYWx1ZSA9PT0gY3VzdG9tSWNvbi52YWx1ZVxuICAgICAgKTtcbiAgICAgIGZvdW5kQ3VzdG9tSWNvbiA/IG1lcmdlZEljb25zLnB1c2goZm91bmRDdXN0b21JY29uKSA6IG1lcmdlZEljb25zLnB1c2goY29sdW1uVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lcmdlZEljb25zO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMucmVzaXplTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGlja0xpc3RlbmVyKSB7XG4gICAgICB0aGlzLmNsaWNrTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFibGVPcGFjaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnRhYmxlT3BhY2l0eSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlDaGFuZ2VIZWlnaHRJbkZvb3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy5mb290ZXJIZWlnaHQgIT09IHRoaXMuZ2V0SGVpZ2h0VGFibGVGb290ZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5Q2hhbmdlSGVpZ2h0SW5IZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVySGVpZ2h0ICE9PSB0aGlzLmdldEhlaWdodFRhYmxlSGVhZGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdmVyaWZ5Q2FsY3VsYXRlSGVpZ2h0VGFibGVDb250YWluZXIoKSB7XG4gICAgaWYgKHRoaXMuaGVpZ2h0ICYmIHRoaXMudmVyaWZ5Q2hhbmdlSGVpZ2h0SW5Gb290ZXIoKSkge1xuICAgICAgdGhpcy5mb290ZXJIZWlnaHQgPSB0aGlzLmdldEhlaWdodFRhYmxlRm9vdGVyKCk7XG5cbiAgICAgIGlmICh0aGlzLnZlcmlmeUNoYW5nZUhlaWdodEluSGVhZGVyKCkpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSB0aGlzLmdldEhlaWdodFRhYmxlSGVhZGVyKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2FsY3VsYXRlSGVpZ2h0VGFibGVDb250YWluZXIodGhpcy5oZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlU2VsZWN0KGNvbXBhcmUsIHNlbGVjdFZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiBjb21wYXJlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtID09PSBjb21wYXJlKSB7XG4gICAgICAgICAgaXRlbS4kc2VsZWN0ZWQgPSBzZWxlY3RWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKGNvbXBhcmUoaXRlbSkpIHtcbiAgICAgICAgICBpdGVtLiRzZWxlY3RlZCA9IHNlbGVjdFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxwby1jb250YWluZXIgKm5nSWY9XCJjb250YWluZXI7IGVsc2UgdGFibGVDb250YWluZXJUZW1wbGF0ZVwiIHAtbm8tcGFkZGluZyBbcC1uby1zaGFkb3ddPVwiY29udGFpbmVyID09PSAnYm9yZGVyJ1wiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVDb250YWluZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9wby1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVDb250YWluZXJUZW1wbGF0ZT5cbiAgPGRpdiBbY2xhc3MucG8tdGFibGUtY29udGFpbmVyLXJlbGF0aXZlXT1cImxvYWRpbmdcIj5cbiAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwicG8tdGFibGUtb3ZlcmxheVwiPlxuICAgICAgPHBvLWxvYWRpbmcgY2xhc3M9XCJwby10YWJsZS1vdmVybGF5LWNvbnRlbnRcIiBbcC10ZXh0XT1cImxpdGVyYWxzLmxvYWRpbmdEYXRhXCI+PC9wby1sb2FkaW5nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLXRhYmxlLW1haW4tY29udGFpbmVyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICN0YWJsZVdyYXBwZXJcbiAgICAgICAgY2xhc3M9XCJwby10YWJsZS13cmFwcGVyXCJcbiAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1maXhlZC1jb2x1bW5zLXBpeGVsc109XCJhbGxDb2x1bW5zV2lkdGhQaXhlbHNcIlxuICAgICAgICBbc3R5bGUub3BhY2l0eV09XCJ0YWJsZU9wYWNpdHlcIlxuICAgICAgPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaGVpZ2h0XCIgY2xhc3M9XCJwby10YWJsZS1jb250YWluZXJcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFRhYmxlQ29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiAjcG9UYWJsZVRoZWFkIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWZpeGVkIHBvLXRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlSGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgI3BvVGFibGVUYm9keSBjbGFzcz1cInBvLXRhYmxlLWNvbnRhaW5lci1maXhlZC1pbm5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlaWdodDsgdGhlbiB0YWJsZUJvZHlUZW1wbGF0ZTsgZWxzZSB0YWJsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaGVpZ2h0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInBvLXRhYmxlLWZvb3RlclwiICpuZ0lmPVwiaGFzRm9vdGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHN1YnRpdGxlQ29sdW1uczsgdHJhY2tCeTogdHJhY2tCeVwiPlxuICAgICAgPHBvLXRhYmxlLXN1YnRpdGxlLWZvb3RlciBbcC1saXRlcmFsc109XCJsaXRlcmFsc1wiIFtwLXN1YnRpdGxlc109XCJjb2x1bW4uc3VidGl0bGVzXCI+IDwvcG8tdGFibGUtc3VidGl0bGUtZm9vdGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxkaXZcbiAgKm5nSWY9XCIhaW5maW5pdGVTY3JvbGxcIlxuICBjbGFzcz1cInBvLXJvdyBwby10YWJsZS1mb290ZXItc2hvdy1tb3JlXCJcbiAgW2NsYXNzLnBvLWludmlzaWJsZV09XCJzaG93TW9yZS5vYnNlcnZlcnMubGVuZ3RoID09PSAwICYmICFoYXNTZXJ2aWNlXCJcbiAgI3RhYmxlRm9vdGVyXG4+XG4gIDxwby1idXR0b25cbiAgICBjbGFzcz1cInBvLW9mZnNldC14bC00IHBvLW9mZnNldC1sZy00IHBvLW9mZnNldC1tZC0zIHBvLWxnLTQgcG8tbWQtNlwiXG4gICAgW3AtZGlzYWJsZWRdPVwic2hvd01vcmVEaXNhYmxlZFwiXG4gICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMubG9hZE1vcmVEYXRhXCJcbiAgICBbcC1sb2FkaW5nXT1cImxvYWRpbmdTaG93TW9yZVwiXG4gICAgKHAtY2xpY2spPVwib25TaG93TW9yZSgpXCJcbiAgPlxuICA8L3BvLWJ1dHRvbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RhYmxlSGVhZGVyVGVtcGxhdGU+XG4gIDx0YWJsZSBjbGFzcz1cInBvLXRhYmxlXCIgW2NsYXNzLnBvLXRhYmxlLXN0cmlwZWRdPVwic3RyaXBlZFwiIFtjbGFzcy5wby10YWJsZS1sYXlvdXQtZml4ZWRdPVwiaGlkZVRleHRPdmVyZmxvd1wiPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0ciBbY2xhc3MucG8tdGFibGUtaGVhZGVyXT1cImhlaWdodFwiPlxuICAgICAgICA8dGggKm5nSWY9XCJoYXNTZWxlY3RhYmxlQ29sdW1uXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiPlxuICAgICAgICAgIDxkaXYgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIj5cbiAgICAgICAgICAgIDxwby1jaGVja2JveFxuICAgICAgICAgICAgICBuYW1lPVwic2VsZWN0QWxsXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaGlkZVNlbGVjdEFsbFwiXG4gICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJzZWxlY3RBbGxSb3dzKClcIlxuICAgICAgICAgICAgICBbcC1jaGVja2JveFZhbHVlXT1cInNlbGVjdEFsbCA9PT0gbnVsbCA/ICdtaXhlZCcgOiBzZWxlY3RBbGxcIlxuICAgICAgICAgICAgPjwvcG8tY2hlY2tib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCIoaGFzTWFzdGVyRGV0YWlsQ29sdW1uIHx8IGhhc1Jvd1RlbXBsYXRlKSAmJiAhaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPCEtLSBDb2x1bmEgY3JpYWRhIHBhcmEgY2FzbyBhcyBhw6fDtWVzIGZpcXVlbSBubyBsYWRvIGVzcXVlcmRvIC0tPlxuICAgICAgICA8dGhcbiAgICAgICAgICAjY29sdW1uQWN0aW9uTGVmdEZpeGVkXG4gICAgICAgICAgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxdPVwiIWlzU2luZ2xlQWN0aW9uXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXNpbmdsZS1hY3Rpb25dPVwiaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8dGggKm5nSWY9XCIhaGFzTWFpbkNvbHVtbnNcIiAjbm9Db2x1bW5zSGVhZGVyRml4ZWQgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlaWdodDsgdGhlbiBub0NvbHVtbnNXaXRoSGVpZ2h0OyBlbHNlIG5vQ29sdW1uc1dpdGhvdXRIZWlnaHRcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBtYWluQ29sdW1uczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItZWxsaXBzaXNcIlxuICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgW2NsYXNzLnBvLWNsaWNrYWJsZV09XCIoc29ydCAmJiBjb2x1bW4uc29ydGFibGUgIT09IGZhbHNlKSB8fCBoYXNTZXJ2aWNlXCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXN1YnRpdGxlXT1cImNvbHVtbi50eXBlID09PSAnc3VidGl0bGUnXCJcbiAgICAgICAgICAoY2xpY2spPVwic29ydENvbHVtbihjb2x1bW4pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWZsZXhcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1mbGV4LXJpZ2h0XT1cImNvbHVtbi50eXBlID09PSAnY3VycmVuY3knIHx8IGNvbHVtbi50eXBlID09PSAnbnVtYmVyJ1wiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZsZXgtY2VudGVyXT1cImNvbHVtbi50eXBlID09PSAnc3VidGl0bGUnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudEhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sdW1uIH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCJoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0ICYmIChoYXNWaXNpYmxlQWN0aW9ucyB8fCBoaWRlQ29sdW1uc01hbmFnZXIpXCJcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxcIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cImhhc1Zpc2libGVBY3Rpb25zICYmIGhpZGVDb2x1bW5zTWFuYWdlciAmJiBhY3Rpb25SaWdodFwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uICYmICFoaWRlQ29sdW1uc01hbmFnZXJcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItYWN0aW9uc109XCIhaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAjY29sdW1uTWFuYWdlckZpeGVkXG4gICAgICAgICAgKm5nSWY9XCJoYXNWYWxpZENvbHVtbnMgJiYgIWhpZGVDb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlcl09XCIhaXNTaW5nbGVBY3Rpb24gfHwgIWFjdGlvblJpZ2h0XCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJvcmRlcl09XCIhaGVpZ2h0ICYmIGNvbnRhaW5lclwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uICYmIGFjdGlvblJpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItYm9yZGVyXT1cImhlaWdodCAmJiBjb250YWluZXJcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImhlaWdodCAmJiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPyBjb2x1bW5NYW5hZ2VyRml4ZWQub2Zmc2V0V2lkdGggOiB1bmRlZmluZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgI2NvbHVtbk1hbmFnZXJUYXJnZXRGaXhlZFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaXRlcmFscy5jb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJ1dHRvbiBwby1pY29uIHBvLWljb24tc2V0dGluZ3MgcG8tY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwibGl0ZXJhbHMuY29sdW1uc01hbmFnZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25PcGVuQ29sdW1uTWFuYWdlcigpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgPC90YWJsZT5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gc8OzIHZpcnR1YWwgLS0+XG48bmctdGVtcGxhdGUgI3RhYmxlQm9keVRlbXBsYXRlPlxuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgI3BvVGFibGVUYm9keVZpcnR1YWxcbiAgICBbaXRlbVNpemVdPVwiaXRlbVNpemVcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0VGFibGVWaXJ0dWFsXCJcbiAgICBbbWluQnVmZmVyUHhdPVwiaGVpZ2h0VGFibGVWaXJ0dWFsIDwgMTAwID8gMTAwIDogaGVpZ2h0VGFibGVWaXJ0dWFsXCJcbiAgICBbbWF4QnVmZmVyUHhdPVwiaGVpZ2h0VGFibGVWaXJ0dWFsIDwgMjAwID8gMjAwIDogaGVpZ2h0VGFibGVWaXJ0dWFsXCJcbiAgICAoc2Nyb2xsKT1cInN5bmNyb25pemVIb3Jpem9udGFsU2Nyb2xsKClcIlxuICA+XG4gICAgPHRhYmxlIGNsYXNzPVwicG8tdGFibGVcIiBbY2xhc3MucG8tdGFibGUtc3RyaXBlZF09XCJzdHJpcGVkXCIgW2NsYXNzLnBvLXRhYmxlLWxheW91dC1maXhlZF09XCJoaWRlVGV4dE92ZXJmbG93XCI+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJwby10YWJsZS1ncm91cC1yb3dcIiAqbmdJZj1cIiFoYXNJdGVtcyB8fCAhaGFzTWFpbkNvbHVtbnNcIj5cbiAgICAgICAgPHRyIGNsYXNzPVwicG8tdGFibGUtcm93IHBvLXRhYmxlLXJvdy1uby1kYXRhXCI+XG4gICAgICAgICAgPHRkIFtjb2xTcGFuXT1cImNvbHVtbkNvdW50XCIgY2xhc3M9XCJwby10YWJsZS1uby1kYXRhIHBvLXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3Bhbj4ge3sgbGl0ZXJhbHMubm9EYXRhIH19IDwvc3Bhbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNNYWluQ29sdW1uc1wiPlxuICAgICAgICA8dGJvZHkgY2xhc3M9XCJwby10YWJsZS1ncm91cC1yb3dcIiAqY2RrVmlydHVhbEZvcj1cImxldCByb3cgb2YgaXRlbXM7IGxldCByb3dJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICAgICAgPHRyXG4gICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLXJvd1wiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtcm93LWFjdGl2ZV09XCJyb3cuJHNlbGVjdGVkIHx8IChyb3cuJHNlbGVjdGVkID09PSBudWxsICYmIHNlbGVjdGFibGUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3RhYmxlXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2luZ2xlU2VsZWN0ID8gaW5wdXRSYWRpbyA6IGlucHV0Q2hlY2tib3g7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3cgfVwiPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgIDwhLS0gVmFsaWRhIHNlIGEgb3JpZ2VtIGRvIGRldGFpbCDDqSBwZWxvIGlucHV0IGRvIHBvLXRhYmxlIC0tPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uTWFzdGVyRGV0YWlsICYmICFoaWRlRGV0YWlsICYmICFoYXNSb3dUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICA8IS0tIENvbHVuYSBjb20gYXMgYcOnw7VlcyBuYSBlc3F1ZXJkYSAocGFkcsOjbyktLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAqbmdJZj1cIiFhY3Rpb25SaWdodCAmJiAodmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMSB8fCBpc1NpbmdsZUFjdGlvbilcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJBY3Rpb25zQ29sdW1uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbGEgZGlyZXRpdmEgLS0+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgKm5nSWY9XCJoYXNSb3dUZW1wbGF0ZSAmJiAhaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBtYWluQ29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW5dPVwiY29sdW1uLnR5cGUgIT09ICdpY29uJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbi1jZW50ZXJdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtY29sdW1uLWljb25zXT1cImNvbHVtbi50eXBlID09PSAnaWNvbidcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzc0NvbG9yKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYXNTZWxlY3RhYmxlUm93KCkgPyBzZWxlY3RSb3cocm93KSA6ICdqYXZhc2NyaXB0OjsnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWNlbGwgbm90cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1ib2R5LWVsbGlwc2lzXT1cImhpZGVUZXh0T3ZlcmZsb3dcIlxuICAgICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJjb2x1bW4udHlwZVwiXG4gICAgICAgICAgICAgICAgW3AtdG9vbHRpcF09XCJ0b29sdGlwVGV4dFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIm5vQ29sdW1uc0hlYWRlckZpeGVkPy5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ/Lm9mZnNldFdpZHRoXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJ0b29sdGlwTW91c2VFbnRlcigkZXZlbnQsIGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9vbHRpcE1vdXNlTGVhdmUoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2NvbHVtblRlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImdldFRlbXBsYXRlKGNvbHVtbik7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2NlbGxUZW1wbGF0ZSdcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUNlbGxUZW1wbGF0ZT8udGVtcGxhdGVSZWY7IGNvbnRleHQ6IHsgcm93OiByb3csIGNvbHVtbjogY29sdW1uIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0Qm9vbGVhbkxhYmVsKGdldENlbGxEYXRhKHJvdywgY29sdW1uKSwgY29sdW1uKSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3knXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBjdXJyZW5jeTogY29sdW1uLmZvcm1hdDonc3ltYm9sJzonMS4yLTInIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgZGF0ZTogY29sdW1uLmZvcm1hdCB8fCAnZGQvTU0veXl5eScgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3RpbWUnXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBwb190aW1lOiBjb2x1bW4uZm9ybWF0IHx8ICdISDptbTpzcy5mZmZmZmYnIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkYXRlVGltZSdcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IGRhdGU6IGNvbHVtbi5mb3JtYXQgfHwgJ2RkL01NL3l5eXkgSEg6bW06c3MnIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XG4gICAgICAgICAgICAgICAgICB7eyBmb3JtYXROdW1iZXIoZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pLCBjb2x1bW4uZm9ybWF0KSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxwby10YWJsZS1jb2x1bW4tbGlua1xuICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiXG4gICAgICAgICAgICAgICAgICBbcC1hY3Rpb25dPVwiY29sdW1uLmFjdGlvblwiXG4gICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJjaGVja0Rpc2FibGVkKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICBbcC1saW5rXT1cInJvd1tjb2x1bW4ubGlua11cIlxuICAgICAgICAgICAgICAgICAgW3Atcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBbcC12YWx1ZV09XCJnZXRDZWxsRGF0YShyb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tMaW5rKCRldmVudCwgcm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9wby10YWJsZS1jb2x1bW4tbGluaz5cblxuICAgICAgICAgICAgICAgIDxwby10YWJsZS1jb2x1bW4taWNvblxuICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidpY29uJ1wiXG4gICAgICAgICAgICAgICAgICBbcC1jb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgIFtwLWljb25zXT1cImdldENvbHVtbkljb25zKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICBbcC1yb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9wby10YWJsZS1jb2x1bW4taWNvbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInc3VidGl0bGUnXCI+XG4gICAgICAgICAgICAgICAgICA8cG8tdGFibGUtc3VidGl0bGUtY2lyY2xlIFtwLXN1YnRpdGxlXT1cImdldFN1YnRpdGxlQ29sdW1uKHJvdywgY29sdW1uKVwiPjwvcG8tdGFibGUtc3VidGl0bGUtY2lyY2xlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsJ1wiPlxuICAgICAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1sYWJlbCBbcC12YWx1ZV09XCJnZXRDb2x1bW5MYWJlbChyb3csIGNvbHVtbilcIj4gPC9wby10YWJsZS1jb2x1bW4tbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+e3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1kZXRhaWwtdG9nZ2xlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURldGFpbChyb3cpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9UYWJsZUNvbHVtbkRldGFpbFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90ZD5cblxuICAgICAgICAgICAgPCEtLSBDb2x1bmEgZGUgYcOnb2VzIG5hIGRpcmVpdGEgLS0+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb25SaWdodFwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIkFjdGlvbnNDb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8IS0tIENvbHVuYSBwYXJhIG7Do28gZmljYXIgZW0gYnJhbmNvIG5hcyBsaW5oYXMgZGUgZ2VyZW5jaWFtZW50byAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pICYmICFoaWRlQ29sdW1uc01hbmFnZXJcIj5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtY29sdW1uIHBvLXRhYmxlLWNvbHVtbi1lbXB0eVwiPjwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBDb2x1bW4gTWFuYWdlciAtLT5cbiAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAqbmdJZj1cIiFoYXNWaXNpYmxlQWN0aW9ucyAmJiAhaGlkZUNvbHVtbnNNYW5hZ2VyICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW5cIlxuICAgICAgICAgICAgPjwvdGQ+XG4gICAgICAgICAgPC90cj5cblxuICAgICAgICAgIDx0ciAqbmdJZj1cImhhc01haW5Db2x1bW5zICYmIGhhc1Jvd1RlbXBsYXRlICYmIHJvdy4kc2hvd0RldGFpbCAmJiBpc1Nob3dSb3dUZW1wbGF0ZShyb3csIHJvd0luZGV4KVwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtcm93LXRlbXBsYXRlLWNvbnRhaW5lclwiIFtjb2xTcGFuXT1cImNvbHVtbkNvdW50Rm9yTWFzdGVyRGV0YWlsXCI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlUm93VGVtcGxhdGUudGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cblxuICAgICAgICAgIDx0ciAqbmdJZj1cImhhc01haW5Db2x1bW5zICYmIGlzU2hvd01hc3RlckRldGFpbChyb3cpXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsXCIgW2NvbFNwYW5dPVwiY29sdW1uQ291bnRGb3JNYXN0ZXJEZXRhaWxcIj5cbiAgICAgICAgICAgICAgPHBvLXRhYmxlLWRldGFpbFxuICAgICAgICAgICAgICAgIFtwLXNlbGVjdGFibGVdPVwic2VsZWN0YWJsZSAmJiAhZGV0YWlsSGlkZVNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW3AtZGV0YWlsXT1cImNvbHVtbk1hc3RlckRldGFpbC5kZXRhaWxcIlxuICAgICAgICAgICAgICAgIFtwLWl0ZW1zXT1cInJvd1tuYW1lQ29sdW1uRGV0YWlsXVwiXG4gICAgICAgICAgICAgICAgKHAtc2VsZWN0LXJvdyk9XCJzZWxlY3REZXRhaWxSb3coJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9wby10YWJsZS1kZXRhaWw+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RhYmxlPlxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVUZW1wbGF0ZT5cbiAgPHRhYmxlIGNsYXNzPVwicG8tdGFibGVcIiBbY2xhc3MucG8tdGFibGUtc3RyaXBlZF09XCJzdHJpcGVkXCIgW2NsYXNzLnBvLXRhYmxlLWxheW91dC1maXhlZF09XCJoaWRlVGV4dE92ZXJmbG93XCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyIFtjbGFzcy5wby10YWJsZS1oZWFkZXJdPVwiIWhlaWdodFwiPlxuICAgICAgICA8dGggKm5nSWY9XCJoYXNTZWxlY3RhYmxlQ29sdW1uXCIgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiPlxuICAgICAgICAgIDxkaXYgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1maXhlZC1pbm5lcl09XCJoZWlnaHRcIj5cbiAgICAgICAgICAgIDxwby1jaGVja2JveFxuICAgICAgICAgICAgICBuYW1lPVwic2VsZWN0QWxsXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaGlkZVNlbGVjdEFsbFwiXG4gICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJzZWxlY3RBbGxSb3dzKClcIlxuICAgICAgICAgICAgICBbcC1jaGVja2JveFZhbHVlXT1cInNlbGVjdEFsbCA9PT0gbnVsbCA/ICdtaXhlZCcgOiBzZWxlY3RBbGxcIlxuICAgICAgICAgICAgPjwvcG8tY2hlY2tib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGg+XG5cbiAgICAgICAgPHRoXG4gICAgICAgICAgKm5nSWY9XCIoaGFzTWFzdGVyRGV0YWlsQ29sdW1uIHx8IGhhc1Jvd1RlbXBsYXRlKSAmJiAhaGFzUm93VGVtcGxhdGVXaXRoQXJyb3dEaXJlY3Rpb25SaWdodFwiXG4gICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPCEtLSBDb2x1bmEgY3JpYWRhIHBhcmEgY2FzbyBhcyBhw6fDtWVzIGZpcXVlbSBubyBsYWRvIGVzcXVlcmRvIC0tPlxuICAgICAgICA8dGhcbiAgICAgICAgICAjY29sdW1uQWN0aW9uTGVmdFxuICAgICAgICAgICpuZ0lmPVwiIWFjdGlvblJpZ2h0ICYmICh2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAxIHx8IGlzU2luZ2xlQWN0aW9uKVwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXT1cIiFpc1NpbmdsZUFjdGlvblwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1zaW5nbGUtYWN0aW9uXT1cImlzU2luZ2xlQWN0aW9uXCJcbiAgICAgICAgPjwvdGg+XG5cbiAgICAgICAgPHRoICpuZ0lmPVwiIWhhc01haW5Db2x1bW5zXCIgI25vQ29sdW1uc0hlYWRlciBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVpZ2h0OyB0aGVuIG5vQ29sdW1uc1dpdGhIZWlnaHQ7IGVsc2Ugbm9Db2x1bW5zV2l0aG91dEhlaWdodFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIG1haW5Db2x1bW5zOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWhlYWRlci1lbGxpcHNpc1wiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgICAgICAgICBbY2xhc3MucG8tY2xpY2thYmxlXT1cIihzb3J0ICYmIGNvbHVtbi5zb3J0YWJsZSAhPT0gZmFsc2UpIHx8IGhhc1NlcnZpY2VcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc3VidGl0bGVdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgIChjbGljayk9XCJzb3J0Q29sdW1uKGNvbHVtbilcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1oZWFkZXItZmxleFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZpeGVkLWlubmVyXT1cImhlaWdodFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWZsZXgtcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItZmxleC1jZW50ZXJdPVwiY29sdW1uLnR5cGUgPT09ICdzdWJ0aXRsZSdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50SGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHQgJiYgKGhhc1Zpc2libGVBY3Rpb25zIHx8IGhpZGVDb2x1bW5zTWFuYWdlcilcIlxuICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbiBwby10YWJsZS1oZWFkZXItbWFzdGVyLWRldGFpbFwiXG4gICAgICAgID48L3RoPlxuXG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwiaGFzVmlzaWJsZUFjdGlvbnMgJiYgaGlkZUNvbHVtbnNNYW5hZ2VyICYmIGFjdGlvblJpZ2h0XCJcbiAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLXNpbmdsZS1hY3Rpb25dPVwiaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItYWN0aW9uc109XCIhaXNTaW5nbGVBY3Rpb25cIlxuICAgICAgICA+PC90aD5cblxuICAgICAgICA8dGhcbiAgICAgICAgICAjY29sdW1uTWFuYWdlclxuICAgICAgICAgICpuZ0lmPVwiaGFzVmFsaWRDb2x1bW5zICYmICFoaWRlQ29sdW1uc01hbmFnZXJcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXJdPVwiIWlzU2luZ2xlQWN0aW9uIHx8ICFhY3Rpb25SaWdodFwiXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1jb2x1bW4tbWFuYWdlci1ib3JkZXJdPVwiIWhlaWdodCAmJiBjb250YWluZXJcIlxuICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItc2luZ2xlLWFjdGlvbl09XCJpc1NpbmdsZUFjdGlvbiAmJiBhY3Rpb25SaWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJvcmRlcl09XCJoZWlnaHQgJiYgY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItY29sdW1uLW1hbmFnZXItZml4ZWQtaW5uZXJdPVwiaGVpZ2h0XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJoZWlnaHQgJiYgdmlzaWJsZUFjdGlvbnMubGVuZ3RoID8gY29sdW1uTWFuYWdlci5vZmZzZXRXaWR0aCA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAjY29sdW1uTWFuYWdlclRhcmdldFxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaXRlcmFscy5jb2x1bW5zTWFuYWdlclwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWNvbHVtbi1tYW5hZ2VyLWJ1dHRvbiBwby1pY29uIHBvLWljb24tc2V0dGluZ3MgcG8tY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwibGl0ZXJhbHMuY29sdW1uc01hbmFnZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25PcGVuQ29sdW1uTWFuYWdlcigpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cblxuICAgIDx0Ym9keSBjbGFzcz1cInBvLXRhYmxlLWdyb3VwLXJvd1wiICpuZ0lmPVwiIWhhc0l0ZW1zIHx8ICFoYXNNYWluQ29sdW1uc1wiPlxuICAgICAgPHRyIGNsYXNzPVwicG8tdGFibGUtcm93IHBvLXRhYmxlLXJvdy1uby1kYXRhXCI+XG4gICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5Db3VudFwiIGNsYXNzPVwicG8tdGFibGUtbm8tZGF0YSBwby10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuPiB7eyBsaXRlcmFscy5ub0RhdGEgfX0gPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc01haW5Db2x1bW5zXCI+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJwby10YWJsZS1ncm91cC1yb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIGl0ZW1zOyBsZXQgcm93SW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJwby10YWJsZS1yb3dcIiBbY2xhc3MucG8tdGFibGUtcm93LWFjdGl2ZV09XCJyb3cuJHNlbGVjdGVkIHx8IChyb3cuJHNlbGVjdGVkID09PSBudWxsICYmIHNlbGVjdGFibGUpXCI+XG4gICAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0YWJsZVwiIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLXNlbGVjdGFibGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW5nbGVTZWxlY3QgPyBpbnB1dFJhZGlvIDogaW5wdXRDaGVja2JveDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdyB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbG8gaW5wdXQgZG8gcG8tdGFibGUgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbk1hc3RlckRldGFpbCAmJiAhaGlkZURldGFpbCAmJiAhaGFzUm93VGVtcGxhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tZGV0YWlsLXRvZ2dsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGV0YWlsKHJvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb1RhYmxlQ29sdW1uRGV0YWlsXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcm93OiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDwhLS0gQ29sdW5hIGNvbSBhcyBhw6fDtWVzIG5hIGVzcXVlcmRhIChwYWRyw6NvKS0tPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCIhYWN0aW9uUmlnaHQgJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDEgfHwgaXNTaW5nbGVBY3Rpb24pXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIkFjdGlvbnNDb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyByb3c6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPCEtLSBWYWxpZGEgc2UgYSBvcmlnZW0gZG8gZGV0YWlsIMOpIHBlbGEgZGlyZXRpdmEgLS0+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cImhhc1Jvd1RlbXBsYXRlICYmICFoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURldGFpbChyb3cpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9UYWJsZUNvbHVtbkRldGFpbFwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgbWFpbkNvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWNvbHVtbl09XCJjb2x1bW4udHlwZSAhPT0gJ2ljb24nXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tcmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tY2VudGVyXT1cImNvbHVtbi50eXBlID09PSAnc3VidGl0bGUnXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4taWNvbnNdPVwiY29sdW1uLnR5cGUgPT09ICdpY29uJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzc0NvbG9yKHJvdywgY29sdW1uKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFzU2VsZWN0YWJsZVJvdygpID8gc2VsZWN0Um93KHJvdykgOiAnamF2YXNjcmlwdDo7J1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1jZWxsIG5vdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWJvZHktZWxsaXBzaXNdPVwiaGlkZVRleHRPdmVyZmxvd1wiXG4gICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJjb2x1bW4udHlwZVwiXG4gICAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwidG9vbHRpcFRleHRcIlxuICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJ0b29sdGlwTW91c2VFbnRlcigkZXZlbnQsIGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInRvb2x0aXBNb3VzZUxlYXZlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2NvbHVtblRlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnZXRUZW1wbGF0ZShjb2x1bW4pOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY2VsbFRlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZUNlbGxUZW1wbGF0ZT8udGVtcGxhdGVSZWY7IGNvbnRleHQ6IHsgcm93OiByb3csIGNvbHVtbjogY29sdW1uIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRCb29sZWFuTGFiZWwoZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pLCBjb2x1bW4pIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbmN5J1wiPlxuICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IGN1cnJlbmN5OiBjb2x1bW4uZm9ybWF0OidzeW1ib2wnOicxLjItMicgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cbiAgICAgICAgICAgICAgICB7eyBnZXRDZWxsRGF0YShyb3csIGNvbHVtbikgfCBkYXRlOiBjb2x1bW4uZm9ybWF0IHx8ICdkZC9NTS95eXl5JyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIid0aW1lJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGdldENlbGxEYXRhKHJvdywgY29sdW1uKSB8IHBvX3RpbWU6IGNvbHVtbi5mb3JtYXQgfHwgJ0hIOm1tOnNzLmZmZmZmZicgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGF0ZVRpbWUnXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIHwgZGF0ZTogY29sdW1uLmZvcm1hdCB8fCAnZGQvTU0veXl5eSBISDptbTpzcycgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGZvcm1hdE51bWJlcihnZXRDZWxsRGF0YShyb3csIGNvbHVtbiksIGNvbHVtbi5mb3JtYXQpIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8cG8tdGFibGUtY29sdW1uLWxpbmtcbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCJcbiAgICAgICAgICAgICAgICBbcC1hY3Rpb25dPVwiY29sdW1uLmFjdGlvblwiXG4gICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiY2hlY2tEaXNhYmxlZChyb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICAgIFtwLWxpbmtdPVwicm93W2NvbHVtbi5saW5rXVwiXG4gICAgICAgICAgICAgICAgW3Atcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgW3AtdmFsdWVdPVwiZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0xpbmsoJGV2ZW50LCByb3csIGNvbHVtbilcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvcG8tdGFibGUtY29sdW1uLWxpbms+XG5cbiAgICAgICAgICAgICAgPHBvLXRhYmxlLWNvbHVtbi1pY29uXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidpY29uJ1wiXG4gICAgICAgICAgICAgICAgW3AtY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgW3AtaWNvbnNdPVwiZ2V0Q29sdW1uSWNvbnMocm93LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICBbcC1yb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3BvLXRhYmxlLWNvbHVtbi1pY29uPlxuXG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInc3VidGl0bGUnXCI+XG4gICAgICAgICAgICAgICAgPHBvLXRhYmxlLXN1YnRpdGxlLWNpcmNsZSBbcC1zdWJ0aXRsZV09XCJnZXRTdWJ0aXRsZUNvbHVtbihyb3csIGNvbHVtbilcIj48L3BvLXRhYmxlLXN1YnRpdGxlLWNpcmNsZT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsJ1wiPlxuICAgICAgICAgICAgICAgIDxwby10YWJsZS1jb2x1bW4tbGFiZWwgW3AtdmFsdWVdPVwiZ2V0Q29sdW1uTGFiZWwocm93LCBjb2x1bW4pXCI+IDwvcG8tdGFibGUtY29sdW1uLWxhYmVsPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+e3sgZ2V0Q2VsbERhdGEocm93LCBjb2x1bW4pIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nSWY9XCJoYXNSb3dUZW1wbGF0ZVdpdGhBcnJvd0RpcmVjdGlvblJpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbC10b2dnbGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURldGFpbChyb3cpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9UYWJsZUNvbHVtbkRldGFpbFwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICA8IS0tIENvbHVuYSBkZSBhw6dvZXMgbmEgZGlyZWl0YSAtLT5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiQWN0aW9uc0NvbHVtblRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHJvdzogcm93LCByb3dJbmRleDogcm93SW5kZXggfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8IS0tIENvbHVuYSBwYXJhIG7Do28gZmljYXIgZW0gYnJhbmNvIG5hcyBsaW5oYXMgZGUgZ2VyZW5jaWFtZW50byAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFjdGlvblJpZ2h0ICYmICh2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAxIHx8IGlzU2luZ2xlQWN0aW9uKSAmJiAhaGlkZUNvbHVtbnNNYW5hZ2VyXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1yb3ctbm8tZGF0YSBwby10YWJsZS1jb2x1bW4tZW1wdHlcIj48L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSBDb2x1bW4gTWFuYWdlciAtLT5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0lmPVwiIWhhc1Zpc2libGVBY3Rpb25zICYmICFoaWRlQ29sdW1uc01hbmFnZXIgJiYgIWhhc1Jvd1RlbXBsYXRlV2l0aEFycm93RGlyZWN0aW9uUmlnaHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW5cIlxuICAgICAgICAgID48L3RkPlxuICAgICAgICA8L3RyPlxuXG4gICAgICAgIDx0ciAqbmdJZj1cImhhc01haW5Db2x1bW5zICYmIGhhc1Jvd1RlbXBsYXRlICYmIHJvdy4kc2hvd0RldGFpbCAmJiBpc1Nob3dSb3dUZW1wbGF0ZShyb3csIHJvd0luZGV4KVwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLXJvdy10ZW1wbGF0ZS1jb250YWluZXJcIiBbY29sU3Bhbl09XCJjb2x1bW5Db3VudEZvck1hc3RlckRldGFpbFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlUm93VGVtcGxhdGUudGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvdywgcm93SW5kZXg6IHJvd0luZGV4IH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuXG4gICAgICAgIDx0ciAqbmdJZj1cImhhc01haW5Db2x1bW5zICYmIGlzU2hvd01hc3RlckRldGFpbChyb3cpXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWRldGFpbFwiIFtjb2xTcGFuXT1cImNvbHVtbkNvdW50Rm9yTWFzdGVyRGV0YWlsXCI+XG4gICAgICAgICAgICA8cG8tdGFibGUtZGV0YWlsXG4gICAgICAgICAgICAgIFtwLXNlbGVjdGFibGVdPVwic2VsZWN0YWJsZSAmJiAhZGV0YWlsSGlkZVNlbGVjdFwiXG4gICAgICAgICAgICAgIFtwLWRldGFpbF09XCJjb2x1bW5NYXN0ZXJEZXRhaWwuZGV0YWlsXCJcbiAgICAgICAgICAgICAgW3AtaXRlbXNdPVwicm93W25hbWVDb2x1bW5EZXRhaWxdXCJcbiAgICAgICAgICAgICAgKHAtc2VsZWN0LXJvdyk9XCJzZWxlY3REZXRhaWxSb3coJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3BvLXRhYmxlLWRldGFpbD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC90YWJsZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxwby1wb3B1cCAjcG9wdXAgW3AtYWN0aW9uc109XCJhY3Rpb25zXCIgW3AtdGFyZ2V0XT1cInBvcHVwVGFyZ2V0XCI+IDwvcG8tcG9wdXA+XG5cbjxuZy10ZW1wbGF0ZSAjcG9UYWJsZUNvbHVtbkRldGFpbCBsZXQtcm93PVwicm93XCIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cIihjb250YWluc01hc3RlckRldGFpbChyb3cpICYmICFoYXNSb3dUZW1wbGF0ZSkgfHwgKGlzU2hvd1Jvd1RlbXBsYXRlKHJvdywgcm93SW5kZXgpICYmIGhhc1Jvd1RlbXBsYXRlKVwiXG4gICAgY2xhc3M9XCJwby1pY29uIHBvLWNsaWNrYWJsZVwiXG4gICAgW2NsYXNzLnBvLWljb24tYXJyb3ctdXBdPVwicm93LiRzaG93RGV0YWlsXCJcbiAgICBbY2xhc3MucG8taWNvbi1hcnJvdy1kb3duXT1cIiFyb3cuJHNob3dEZXRhaWxcIlxuICA+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRSYWRpbyBsZXQtcm93PlxuICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgY2xhc3M9XCJwby10YWJsZS1yYWRpb1wiIFtjbGFzcy5wby10YWJsZS1yYWRpby1jaGVja2VkXT1cInJvdy4kc2VsZWN0ZWRcIiAvPlxuICA8bGFiZWwgY2xhc3M9XCJwby10YWJsZS1yYWRpby1sYWJlbCBwby1jbGlja2FibGVcIiAoY2xpY2spPVwic2VsZWN0YWJsZSA/IHNlbGVjdFJvdyhyb3cpIDogJ2phdmFzY3JpcHQ6OydcIj48L2xhYmVsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dENoZWNrYm94IGxldC1yb3c+XG4gIDxwby1jaGVja2JveFxuICAgIG5hbWU9XCJjaGVja2JveFwiXG4gICAgKHAtY2hhbmdlKT1cInNlbGVjdGFibGUgPyBzZWxlY3RSb3cocm93KSA6ICdqYXZhc2NyaXB0OjsnXCJcbiAgICBbcC1jaGVja2JveFZhbHVlXT1cInJvdy4kc2VsZWN0ZWRcIlxuICA+PC9wby1jaGVja2JveD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudEhlYWRlclRlbXBsYXRlIGxldC1jb2x1bW4+XG4gIDxzcGFuXG4gICAgI2NvbHVtbkhlYWRlclxuICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWVsbGlwc2lzXCJcbiAgICBbcC10b29sdGlwXT1cInRvb2x0aXBUZXh0XCJcbiAgICAobW91c2VlbnRlcik9XCJ0b29sdGlwTW91c2VFbnRlcigkZXZlbnQpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJ0b29sdGlwTW91c2VMZWF2ZSgpXCJcbiAgPlxuICAgIHt7IGNvbHVtbi5sYWJlbCB8fCAoY29sdW1uLnByb3BlcnR5IHwgdGl0bGVjYXNlKSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJzb3J0ICYmIGNvbHVtbi5zb3J0YWJsZSAhPT0gZmFsc2VcIlxuICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItaWNvbi11bnNlbGVjdGVkXT1cIkpTT04uc3RyaW5naWZ5KHNvcnRlZENvbHVtbj8ucHJvcGVydHkpICE9PSBKU09OLnN0cmluZ2lmeShjb2x1bW4pXCJcbiAgICBbY2xhc3MucG8tdGFibGUtaGVhZGVyLWljb24tZGVzY2VuZGluZ109XCJcbiAgICAgIEpTT04uc3RyaW5naWZ5KHNvcnRlZENvbHVtbj8ucHJvcGVydHkpID09PSBKU09OLnN0cmluZ2lmeShjb2x1bW4pICYmIHNvcnRlZENvbHVtbi5hc2NlbmRpbmdcbiAgICBcIlxuICAgIFtjbGFzcy5wby10YWJsZS1oZWFkZXItaWNvbi1hc2NlbmRpbmddPVwiXG4gICAgICBKU09OLnN0cmluZ2lmeShzb3J0ZWRDb2x1bW4/LnByb3BlcnR5KSA9PT0gSlNPTi5zdHJpbmdpZnkoY29sdW1uKSAmJiAhc29ydGVkQ29sdW1uLmFzY2VuZGluZ1xuICAgIFwiXG4gID5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNub0NvbHVtbnNXaXRoSGVpZ2h0PlxuICA8ZGl2IGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWZpeGVkLWlubmVyXCIgW3N0eWxlLndpZHRoLnB4XT1cIm5vQ29sdW1uc0hlYWRlcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aFwiPlxuICAgIHt7IGhhc1ZhbGlkQ29sdW1ucyA/IGxpdGVyYWxzLm5vVmlzaWJsZUNvbHVtbiA6IGxpdGVyYWxzLm5vQ29sdW1ucyB9fVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbm9Db2x1bW5zV2l0aG91dEhlaWdodD5cbiAge3sgaGFzVmFsaWRDb2x1bW5zID8gbGl0ZXJhbHMubm9WaXNpYmxlQ29sdW1uIDogbGl0ZXJhbHMubm9Db2x1bW5zIH19XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIFRlbXBsYXRlIGRlIGHDp8O1ZXMgLS0+XG48bmctdGVtcGxhdGUgI0FjdGlvbnNDb2x1bW5UZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgPHRkXG4gICAgKm5nSWY9XCJpc1NpbmdsZUFjdGlvblwiXG4gICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4gcG8tdGFibGUtY29sdW1uLXNpbmdsZS1hY3Rpb25cIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJoZWlnaHQgJiYgYWN0aW9uUmlnaHQgPyBnZXRXaWR0aENvbHVtbk1hbmFnZXIoKSA6ICcnXCJcbiAgICBbc3R5bGUubWF4LXdpZHRoLnB4XT1cImhlaWdodCAmJiAhYWN0aW9uUmlnaHQgPyBnZXRDb2x1bW5XaWR0aEFjdGlvbnNMZWZ0KCkgOiAnJ1wiXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cImhlaWdodCAmJiAhYWN0aW9uUmlnaHQgPyBnZXRDb2x1bW5XaWR0aEFjdGlvbnNMZWZ0KCkgOiAnJ1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImZpcnN0QWN0aW9uLnZpc2libGUgIT09IGZhbHNlXCJcbiAgICAgIGNsYXNzPVwicG8tdGFibGUtc2luZ2xlLWFjdGlvbiBwby1jbGlja2FibGVcIlxuICAgICAgW2NsYXNzLnBvLXRhYmxlLWFjdGlvbi1kaXNhYmxlZF09XCJmaXJzdEFjdGlvbi5kaXNhYmxlZCA/IHZhbGlkYXRlVGFibGVBY3Rpb24ocm93LCBmaXJzdEFjdGlvbikgOiBmYWxzZVwiXG4gICAgICAoY2xpY2spPVwiZXhlY3V0ZVRhYmxlQWN0aW9uKHJvdywgZmlyc3RBY3Rpb24pXCJcbiAgICA+XG4gICAgICA8cG8taWNvbiAqbmdJZj1cImZpcnN0QWN0aW9uLmljb25cIiBjbGFzcz1cInBvLXRhYmxlLXNpbmdsZS1hY3Rpb24tY29udGVudFwiIFtwLWljb25dPVwiZmlyc3RBY3Rpb24uaWNvblwiPjwvcG8taWNvbj5cbiAgICAgIHt7IGZpcnN0QWN0aW9uLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gIDwvdGQ+XG5cbiAgPHRkICpuZ0lmPVwidmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMVwiIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLWFjdGlvbnNcIj5cbiAgICA8c3BhbiAjcG9wdXBUYXJnZXQgY2xhc3M9XCJwby1pY29uIHBvLWljb24tbW9yZSBwby1jbGlja2FibGVcIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAocm93LCBwb3B1cFRhcmdldClcIj48L3NwYW4+XG4gIDwvdGQ+XG48L25nLXRlbXBsYXRlPlxuXG48cG8tdGFibGUtY29sdW1uLW1hbmFnZXJcbiAgKm5nSWY9XCIhaGlkZUNvbHVtbnNNYW5hZ2VyXCJcbiAgW3AtY29sdW1uc109XCJjb2x1bW5zXCJcbiAgW3AtbWF4LWNvbHVtbnNdPVwibWF4Q29sdW1uc1wiXG4gIFtwLXRhcmdldF09XCJoZWlnaHQgPyBjb2x1bW5NYW5hZ2VyVGFyZ2V0Rml4ZWQgOiBjb2x1bW5NYW5hZ2VyVGFyZ2V0XCJcbiAgW3AtbGFzdC12aXNpYmxlLWNvbHVtbnMtc2VsZWN0ZWRdPVwibGFzdFZpc2libGVDb2x1bW5zU2VsZWN0ZWRcIlxuICAocC12aXNpYmxlLWNvbHVtbnMtY2hhbmdlKT1cIm9uVmlzaWJsZUNvbHVtbnNDaGFuZ2UoJGV2ZW50KVwiXG4gIChwLWNoYW5nZS12aXNpYmxlLWNvbHVtbnMpPVwib25DaGFuZ2VWaXNpYmxlQ29sdW1ucygkZXZlbnQpXCJcbiAgW3AtY29sdW1ucy1kZWZhdWx0XT1cImluaXRpYWxDb2x1bW5zXCJcbiAgKHAtaW5pdGlhbC1jb2x1bW5zKT1cIm9uQ29sdW1uUmVzdG9yZU1hbmFnZXIoJGV2ZW50KVwiXG4+XG48L3BvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyPlxuIl19