ngx-sumax-erp-components 1.0.45 → 1.0.46

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 (30) hide show
  1. package/esm2022/lib/date-picker/date-picker.component.mjs +57 -7
  2. package/esm2022/lib/date-time-picker/date-time-picker.component.mjs +59 -19
  3. package/esm2022/lib/date-time-picker-editable/date-time-picker-editable.component.mjs +63 -15
  4. package/esm2022/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.mjs +26 -1
  5. package/esm2022/lib/error-message/error-message.component.mjs +1 -1
  6. package/esm2022/lib/input-number/input-number.component.mjs +101 -1
  7. package/esm2022/lib/input-text/input-text.component.mjs +131 -1
  8. package/esm2022/lib/ng-select-multiple/ng-select-multiple.component.mjs +183 -2
  9. package/esm2022/lib/ng-select-simple/ng-select-simple.component.mjs +191 -1
  10. package/esm2022/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.mjs +3 -3
  11. package/esm2022/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.mjs +11 -1
  12. package/esm2022/lib/text-area/text-area.component.mjs +91 -1
  13. package/esm2022/lib/tooltip-message/tooltip-message.component.mjs +1 -1
  14. package/fesm2022/ngx-sumax-erp-components.mjs +906 -42
  15. package/fesm2022/ngx-sumax-erp-components.mjs.map +1 -1
  16. package/lib/date-picker/date-picker.component.d.ts +78 -10
  17. package/lib/date-time-picker/date-time-picker.component.d.ts +71 -23
  18. package/lib/date-time-picker-editable/date-time-picker-editable.component.d.ts +71 -15
  19. package/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.d.ts +25 -0
  20. package/lib/error-message/error-message.component.d.ts +25 -0
  21. package/lib/input-number/input-number.component.d.ts +120 -0
  22. package/lib/input-text/input-text.component.d.ts +150 -0
  23. package/lib/ng-select-multiple/ng-select-multiple.component.d.ts +219 -0
  24. package/lib/ng-select-simple/ng-select-simple.component.d.ts +215 -0
  25. package/lib/sc-ag-grid/cell-render/sc-cell-render-config.d.ts +1 -1
  26. package/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.d.ts +2 -2
  27. package/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.d.ts +15 -0
  28. package/lib/text-area/text-area.component.d.ts +110 -0
  29. package/lib/tooltip-message/tooltip-message.component.d.ts +25 -0
  30. package/package.json +1 -1
@@ -22,43 +22,93 @@ export class DatePickerComponent {
22
22
  this.datePickerService = datePickerService;
23
23
  this._render = _render;
24
24
  /**
25
- * @description Parametro de la visualización del texto superior
25
+ * @description Controla la visualización del texto superior (label)
26
26
  * @default true
27
27
  * @type boolean
28
28
  */
29
29
  this.showLabel = true;
30
30
  /**
31
- * @description Texto superion
31
+ * @description Texto a mostrar como etiqueta del campo
32
32
  * @default null
33
33
  * @type any
34
34
  */
35
35
  this.label = null;
36
36
  /**
37
- * @description Parametro de autocompletado
37
+ * @description Valor para el atributo autocomplete del input
38
38
  * @default 'off'
39
39
  * @type string
40
40
  */
41
41
  this.autocomplete = 'off';
42
42
  /**
43
- * @description Parametro de control requerido
43
+ * @description Indica si el campo es obligatorio
44
44
  * @default false
45
45
  * @type boolean
46
46
  */
47
47
  this.required = false;
48
+ /**
49
+ * @description Completa automáticamente con null cuando el valor está vacío
50
+ * @default true
51
+ * @type boolean
52
+ */
48
53
  this.noAutoCompleteNull = true;
54
+ /**
55
+ * @description Establece el control como solo lectura
56
+ * @default false
57
+ * @type boolean
58
+ */
49
59
  this.readonly = false;
60
+ /**
61
+ * @description Muestra mensajes de validación
62
+ * @default false
63
+ * @type boolean
64
+ */
50
65
  this.validatorMessage = false;
66
+ /**
67
+ * @description Muestra mensajes de ayuda como tooltips
68
+ * @default true
69
+ * @type boolean
70
+ */
51
71
  this.tooltipMessage = true;
72
+ /**
73
+ * @description Muestra alertas de validación
74
+ * @default false
75
+ * @type boolean
76
+ */
52
77
  this.validatorAlert = false;
78
+ /**
79
+ * @description Indica si el formulario ha sido enviado para mostrar validaciones
80
+ * @default true
81
+ * @type boolean
82
+ */
53
83
  this.submitted = true;
84
+ /**
85
+ * @description Habilita información adicional para la etiqueta
86
+ * @default false
87
+ * @type boolean
88
+ */
54
89
  this.labelInfo = false;
90
+ /**
91
+ * @description Texto informativo adicional para la etiqueta
92
+ * @default ''
93
+ * @type string
94
+ */
55
95
  this.textLabelInfo = '';
96
+ /**
97
+ * @description Indica si el valor es inválido
98
+ * @default false
99
+ * @type boolean
100
+ */
56
101
  this.invalid = false;
102
+ /**
103
+ * @description Establece el foco inicial en el componente
104
+ * @default false
105
+ * @type boolean
106
+ */
57
107
  this.focusInitial = false;
58
108
  /**
59
- * @description Parametro deshabilitar control
109
+ * @description Deshabilita el control
60
110
  * @default false
61
- * @type {boolean}
111
+ * @type boolean
62
112
  */
63
113
  this.disabled = false;
64
114
  this.onNext = new EventEmitter();
@@ -363,4 +413,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
363
413
  type: ViewChild,
364
414
  args: ['fecha']
365
415
  }] } });
366
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxPQUFPLEVBQ1Asc0JBQXNCLEVBR3RCLGlCQUFpQixHQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBR3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUF1QjdDLDJKQUEySjtBQUMzSixNQUFNLE9BQU8sbUJBQW1CO0lBNkU5QixZQUNVLEVBQWMsRUFDZCxrQkFBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLE9BQWtCO1FBSGxCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQTlFNUI7Ozs7VUFJRTtRQUNPLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDbkM7Ozs7VUFJRTtRQUNPLFVBQUssR0FBUSxJQUFJLENBQUM7UUFDM0I7Ozs7VUFJRTtRQUNPLGlCQUFZLEdBQVcsS0FBSyxDQUFDO1FBaUJ0Qzs7OztVQUlFO1FBQ08sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQix1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFDbkMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRzNCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDdkM7Ozs7VUFJRTtRQUNPLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDekIsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9DLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELFNBQUksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt2RCxjQUFTLEdBQXFCLEVBQUUsQ0FBQztRQUNqQyx5QkFBb0IsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFHbEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBdUNuQixhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMxQix1QkFBa0IsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUIsWUFBTyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUVuQixVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzVFLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDO1FBdkNBLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDckUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEQsTUFBTSxjQUFjLEdBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN2RCxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBWUQsT0FBTyxDQUFDLEdBQVE7UUFDZCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsTUFBTSxjQUFjLEdBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN2RCxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hELElBQUksS0FBSyxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25ELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3BFLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6RSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUUsYUFBc0IsS0FBSztRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXdCO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUJBQXlCLENBQUUsRUFBYztRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLFlBQVksT0FBTyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBTTtRQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUM7WUFDN0QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsTUFBTSxJQUFJLEdBQVMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakQsTUFBTSxPQUFPLEdBQWtCO1lBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JDLENBQUM7UUFDRixrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBb0I7UUFDbEMsTUFBTSxhQUFhLEdBQ2pCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkUsT0FBTyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO1lBQ0YsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQ3JDLFFBQVEsRUFDUixPQUFPLEVBQ1AsU0FBUyxDQUFDLE9BQU8sQ0FDbEIsQ0FBQztnQkFDRixPQUFPO1lBQ1QsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzdCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FDdkQsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsS0FBSyxDQUNYLENBQUM7WUFDRixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FDckMsUUFBUSxFQUNSLE9BQU8sRUFDUCxTQUFTLENBQUMsT0FBTyxDQUNsQixDQUFDO2dCQUNGLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzdDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUs7Z0JBQUUsT0FBTztZQUV0QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLElBQUksS0FBSyxZQUFZLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQ2hDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FDakMsQ0FBQztvQkFDRixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksS0FBSyxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUNoQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQ2pDLENBQUM7d0JBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUU5QixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRO2dCQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMzRSxDQUFDO0lBQ0gsQ0FBQzsrR0E5VFUsbUJBQW1CO21HQUFuQixtQkFBbUIseXJCQWxCbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2xELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxJQUFJO1lBQ0osRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFO1lBQzlELEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRTtTQUN0RSx1SkNwREgsb3FGQXVEQTs7NEZEQ2EsbUJBQW1CO2tCQXRCL0IsU0FBUzsrQkFDRSxhQUFhLGFBR1o7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsSUFBSTt3QkFDSixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7d0JBQzlELEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRTtxQkFDdEU7d0tBWVEsU0FBUztzQkFBakIsS0FBSztnQkFNRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQU9hLGFBQWE7c0JBQWhDLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFic3RyYWN0Q29udHJvbCxcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBOR19WQUxJREFUT1JTLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIE5nYkRhdGUsXHJcbiAgTmdiRGF0ZVBhcnNlckZvcm1hdHRlcixcclxuICBOZ2JEYXRlU3RydWN0LFxyXG4gIE5nYkRhdGVwaWNrZXIsXHJcbiAgTmdiRGF0ZXBpY2tlckkxOG4sXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4vZGF0ZS1waWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL21lc3NhZ2UtdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3VzdG9tRGF0ZXBpY2tlckkxOG4sIEkxOG4gfSBmcm9tICcuL0N1c3RvbURhdGVQaWNrZXJJMThuJztcclxuaW1wb3J0IHsgQ3VzdG9tRGF0ZXBpY2tlckZvcm1hdCB9IGZyb20gJy4vQ3VzdG9tRGF0ZVBpY2tlckZvcm1hdCc7XHJcbmltcG9ydCB7IFNoYXJlZENvbXBvbmVudHNVdGlsIH0gZnJvbSAnLi4vdXRpbHMvU2hhcmVkQ29tcG9uZW50c1V0aWwnO1xyXG5pbXBvcnQgeyBEYXRlVXRpbCB9IGZyb20gJy4uL3V0aWxzL0RhdGVVdGlsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGF0ZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBJMThuLFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlcGlja2VySTE4biwgdXNlQ2xhc3M6IEN1c3RvbURhdGVwaWNrZXJJMThuIH0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIHVzZUNsYXNzOiBDdXN0b21EYXRlcGlja2VyRm9ybWF0IH0sXHJcbiAgXSxcclxufSlcclxuXHJcbi8vIHByb3ZpZGVyczogW0kxOG4sIHsgcHJvdmlkZTogTmdiRGF0ZXBpY2tlckkxOG4sIHVzZUNsYXNzOiBDdXN0b21EYXRlcGlja2VySTE4biB9LCB7IHByb3ZpZGU6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIHVzZUNsYXNzOiBDdXN0b21EYXRlcGlja2VyRm9ybWF0IH1dXHJcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Jcclxue1xyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFBhcmFtZXRybyBkZSBsYSB2aXN1YWxpemFjacOzbiBkZWwgdGV4dG8gc3VwZXJpb3JcclxuICAqIEBkZWZhdWx0IHRydWVcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gVGV4dG8gc3VwZXJpb25cclxuICAqIEBkZWZhdWx0IG51bGxcclxuICAqIEB0eXBlIGFueVxyXG4gICovXHJcbiAgQElucHV0KCkgbGFiZWw6IGFueSA9IG51bGw7XHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gUGFyYW1ldHJvIGRlIGF1dG9jb21wbGV0YWRvXHJcbiAgKiBAZGVmYXVsdCAnb2ZmJ1xyXG4gICogQHR5cGUgc3RyaW5nXHJcbiAgKi9cclxuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IHN0cmluZyA9ICdvZmYnO1xyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFByw7N4aW1vIGNvbnRyb2wgYSBoYWNlciBmb2N1c1xyXG4gICovXHJcbiAgQElucHV0KCkgbmV4dDogYW55O1xyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFByw7N4aW1vIGNvbnRyb2wgYSBoYWNlciBmb2N1cyBlbiBjYXNvIGVsIE5FWFQgZXN0w6kgZGVzaGFiaWxpdGFkb1xyXG4gICovXHJcbiAgQElucHV0KCkgbmV4dElzRGlzYWJsZTogYW55O1xyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIEFudGVyaW9yIGNvbnRyb2wgYSBoYWNlciBmb2N1c1xyXG4gICovXHJcbiAgQElucHV0KCkgYmFjazogYW55O1xyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIEFudGVyaW9yIGNvbnRyb2wgYSBoYWNlciBmb2N1cyBlbiBjYXNvIGVsIEJBQ0sgZXN0w6kgZGVzaGFiaWxpdGFkb1xyXG4gICovXHJcbiAgQElucHV0KCkgYmFja0lzRGlzYWJsZTogYW55O1xyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFBhcmFtZXRybyBkZSBjb250cm9sIHJlcXVlcmlkb1xyXG4gICogQGRlZmF1bHQgZmFsc2VcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbm9BdXRvQ29tcGxldGVOdWxsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yQWxlcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHRMYWJlbEluZm86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG1pbkRhdGUhOiBOZ2JEYXRlU3RydWN0O1xyXG4gIEBJbnB1dCgpIG1heERhdGUhOiBOZ2JEYXRlU3RydWN0O1xyXG4gIEBJbnB1dCgpIGludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmb2N1c0luaXRpYWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBQYXJhbWV0cm8gZGVzaGFiaWxpdGFyIGNvbnRyb2xcclxuICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uTmV4dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQmFjazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGlucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25jaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvLyB4bWluRGF0ZSA9IG51bGw7XHJcbiAgLy8geG1heERhdGUgPSBudWxsO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgY29udHJvbHM6IGFueTtcclxuICBlbWl0VmFsdWU6IE5nYkRhdGUgfCBzdHJpbmcgPSAnJztcclxuICBzaGFyZWRDb21wb25lbnRzVXRpbCA9IG5ldyBTaGFyZWRDb21wb25lbnRzVXRpbCgpO1xyXG4gIEBWaWV3Q2hpbGQoJ2ZlY2hhJykgbmdiRGF0ZXBpY2tlcjogTmdiRGF0ZXBpY2tlciB8IGFueTtcclxuXHJcbiAgX3RlbXBWYWx1ZSA9ICcnO1xyXG4gIF9pbml0VmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlVXRpbFNlcnZpY2U6IE1lc3NhZ2VVdGlsU2VydmljZSxcclxuICAgIHByaXZhdGUgZGF0ZVBpY2tlclNlcnZpY2U6IERhdGVQaWNrZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjJcclxuICApIHtcclxuICAgIHRoaXMuc2hvd0xhYmVsID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRTaG93TGFiZWwoKTtcclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRBdXRvY29tcGxldGUoKTtcclxuICAgIHRoaXMubm9BdXRvQ29tcGxldGVOdWxsID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXROb0F1dG9Db21wbGV0ZU51bGwoKTtcclxuICAgIHRoaXMuZm9jdXNJbml0aWFsID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRGb2N1c0luaXRpYWwoKTtcclxuICAgIHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0VmFsaWRhdG9yTWVzc2FnZSgpO1xyXG4gICAgdGhpcy50b29sdGlwTWVzc2FnZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0VG9vbHRpcE1lc3NhZ2UoKTtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRTdWJtaXR0ZWQoKTtcclxuICAgIHRoaXMudmFsaWRhdG9yQWxlcnQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldFZhbGlkYXRvckFsZXJ0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snc3VibWl0dGVkJ10pIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMgIT09IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydzdWJtaXR0ZWQnXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMubWluRGF0ZSkge1xyXG4gICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLnN0ckRhdGVUb05nYkRhdGUodGhpcy5taW5EYXRlKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvY3VzSW5pdGlhbCA9PSB0cnVlICYmIHRoaXMuZGlzYWJsZWQgPT0gZmFsc2UpIHtcclxuICAgICAgY29uc3QgaW52YWxpZENvbnRyb2wgPVxyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbdHlwZT1cInRleHRcIl0nKTtcclxuICAgICAgaW52YWxpZENvbnRyb2wuZm9jdXMoKTtcclxuICAgICAgaW52YWxpZENvbnRyb2wuc2VsZWN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xyXG4gIG9uVmFsaWRhdGlvbkNoYW5nZSA9ICgpID0+IHt9O1xyXG4gIG9uVG91Y2ggPSAoKSA9PiB7fTtcclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBpbnZhbGlkQ29udHJvbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbdHlwZT1cInRleHRcIl0nKTtcclxuICAgIGludmFsaWRDb250cm9sLmZvY3VzKCk7XHJcbiAgICBpbnZhbGlkQ29udHJvbC5zZWxlY3QoKTtcclxuICB9O1xyXG5cclxuICBvbkZvY3VzKGV2dDogYW55KSB7XHJcbiAgICBpZiAoZXZ0KSB7XHJcbiAgICAgIGNvbnN0IGludmFsaWRDb250cm9sID1cclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3R5cGU9XCJ0ZXh0XCJdJyk7XHJcbiAgICAgIGludmFsaWRDb250cm9sLnNlbGVjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuc3RyRGF0ZVRvTmdiRGF0ZSh2YWx1ZSkgfHwgJyc7XHJcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICB0aGlzLl90ZW1wVmFsdWUgPSBEYXRlVXRpbC5kYXRlQXV0b0NvbXBsZXRlKHZhbHVlKTtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9scykge1xyXG4gICAgICAgICAgdGhpcy5fcmVuZGVyLnNldFByb3BlcnR5KHRoaXMuY29udHJvbHMsICd2YWx1ZScsIHRoaXMuX3RlbXBWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB0aGlzLl90ZW1wVmFsdWUgPSB2YWx1ZS50cmltKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMuX3RlbXBWYWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcclxuICAgIHRoaXMuY29udHJvbHMgPSBjb250cm9sO1xyXG4gICAgaWYgKCF0aGlzLl9pbml0VmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMuX3RlbXBWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eShjb250cm9sLCAndmFsdWUnLCB0aGlzLl90ZW1wVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2luaXRWYWx1ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2U/KGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0KHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuZW1pdFZhbHVlID0gdmFsdWU7XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBOZ2JEYXRlKSB7XHJcbiAgICAgIHRoaXMuZW1pdFZhbHVlID0gdGhpcy5uZ2JEYXRldG9TdHJpbmcodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5lbWl0VmFsdWUpO1xyXG4gICAgdGhpcy5vbmNoYW5nZS5lbWl0KHRoaXMuZW1pdFZhbHVlKTtcclxuICAgIHRoaXMuaW5wdXQuZW1pdCh0aGlzLmVtaXRWYWx1ZSk7XHJcblxyXG4gICAgdGhpcy5fdGVtcFZhbHVlID0gJyc7XHJcbiAgfVxyXG5cclxuICBvbktleVVwRW50ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVudGVyS2V5VXAoKTtcclxuICB9XHJcblxyXG4gIG9ubHlOdW1iZXJzKGU6IGFueSkge1xyXG4gICAgaWYgKCEoZS5rZXlDb2RlID49IDQ4ICYmIGUua2V5Q29kZSA8PSA1NykgJiYgZS5rZXlDb2RlICE9IDQ3KSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0ckRhdGVUb05nYkRhdGUodmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgZGF0ZTogRGF0ZSA9IERhdGVVdGlsLnBhcnNlKHZhbHVlLCAnREFURScpO1xyXG4gICAgY29uc3QgbmdiRGF0ZTogTmdiRGF0ZVN0cnVjdCA9IHtcclxuICAgICAgZGF5OiBOdW1iZXIoRGF0ZVV0aWwuZ2V0RGF5KGRhdGUpKSxcclxuICAgICAgbW9udGg6IE51bWJlcihEYXRlVXRpbC5nZXRNb250aChkYXRlKSksXHJcbiAgICAgIHllYXI6IE51bWJlcihEYXRlVXRpbC5nZXRZZWFyKGRhdGUpKSxcclxuICAgIH07XHJcbiAgICAvLyByZXR1cm4gbmdiRGF0ZTtcclxuICAgIHJldHVybiBuZXcgTmdiRGF0ZShuZ2JEYXRlLnllYXIsIG5nYkRhdGUubW9udGgsIG5nYkRhdGUuZGF5KTtcclxuICB9XHJcblxyXG4gIG5nYkRhdGV0b1N0cmluZyh2YWx1ZTogTmdiRGF0ZVN0cnVjdCk6IE5nYkRhdGUgfCBzdHJpbmcge1xyXG4gICAgY29uc3QgY29uY2F0TmdiRGF0ZSA9XHJcbiAgICAgIGAwJHt2YWx1ZS5kYXl9YC5zbGljZSgtMikgKyBgMCR7dmFsdWUubW9udGh9YC5zbGljZSgtMikgKyB2YWx1ZS55ZWFyO1xyXG4gICAgcmV0dXJuIERhdGVVdGlsLmRhdGVBdXRvQ29tcGxldGUoY29uY2F0TmdiRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBlbnRlcktleVVwKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcihcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yQWxlcnQsXHJcbiAgICAgICAgdGhpcy5sYWJlbFxyXG4gICAgICApO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFxyXG4gICAgICAgICAgJzAwMDA0NicsXHJcbiAgICAgICAgICAnRXJyb3InLFxyXG4gICAgICAgICAgdmFsaWRhdG9yLm1lc3NhZ2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubmV4dCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMubmV4dC5kaXNhYmxlZCB8fCB0aGlzLm5leHQucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubmV4dC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25OZXh0LmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXJyb3dVcEtleVVwKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcihcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yQWxlcnQsXHJcbiAgICAgICAgdGhpcy5sYWJlbFxyXG4gICAgICApO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFxyXG4gICAgICAgICAgJzAwMDA0NicsXHJcbiAgICAgICAgICAnRXJyb3InLFxyXG4gICAgICAgICAgdmFsaWRhdG9yLm1lc3NhZ2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYmFjayAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMuYmFjay5kaXNhYmxlZCB8fCB0aGlzLmJhY2sucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFjay5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25CYWNrLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9jdXNPdXQodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgaWYgKHRoaXMuX3RlbXBWYWx1ZSA9PT0gdmFsdWUpIHJldHVybjtcclxuXHJcbiAgICAgIHRoaXMubmdiRGF0ZXBpY2tlci5jbG9zZSgpO1xyXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOZ2JEYXRlKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLm5nYkRhdGV0b1N0cmluZyh2YWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuZW1pdFZhbHVlID0gdGhpcy5uZ2JEYXRldG9TdHJpbmcodmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmVtaXRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2VBbGwoJy8nLCAnJyk7XHJcbiAgICAgICAgaWYgKHRoaXMubm9BdXRvQ29tcGxldGVOdWxsKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5zdHJEYXRlVG9OZ2JEYXRlKFxyXG4gICAgICAgICAgICBEYXRlVXRpbC5kYXRlQXV0b0NvbXBsZXRlKHZhbHVlKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuZW1pdFZhbHVlID0gRGF0ZVV0aWwuZGF0ZUF1dG9Db21wbGV0ZSh2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh2YWx1ZSAhPSAnJyAmJiB2YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnN0ckRhdGVUb05nYkRhdGUoXHJcbiAgICAgICAgICAgICAgRGF0ZVV0aWwuZGF0ZUF1dG9Db21wbGV0ZSh2YWx1ZSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5lbWl0VmFsdWUgPSBEYXRlVXRpbC5kYXRlQXV0b0NvbXBsZXRlKHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZW1pdFZhbHVlKTtcclxuXHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5lbWl0VmFsdWUgPT09ICdzdHJpbmcnKSB0aGlzLl90ZW1wVmFsdWUgPSB0aGlzLmVtaXRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGxhYmVsICpuZ0lmPVwibGFiZWwgIT0gbnVsbCAmJiBsYWJlbCAhPSAnJyAmJiBzaG93TGFiZWxcIiBjbGFzcz1cImQtZmxleCBzdW1heC1sYWJlbCBtYi0wIHAtMFwiXHJcbiAgPjxzcGFuIFt0aXRsZV09XCJsYWJlbFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXNcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJtcy0xXCIgW2NsYXNzLnRleHQtZGFuZ2VyXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbFwiPiAqPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwibGFiZWxJbmZvXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSB0ZXh0LWluZm8gbXMtMlwiIFttYXRUb29sdGlwXT1cInRleHRMYWJlbEluZm9cIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+PC9pPlxyXG4gIDwvc3Bhbj5cclxuPC9sYWJlbD5cclxuPGRpdlxyXG4gIFtjbGFzcy5pbnB1dC1pY29uXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gIFtjbGFzcy5yaWdodF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCI+XHJcbiAgPCEtLSB0b29sdGlwLW1lc3NhZ2UgZXMgZWwgaWNvbm8gZGUgZXJyb3IgLS0+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggcC0wIGdyb3VwLWlucHV0LWJ1dHRvbiBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgPHRvb2x0aXAtbWVzc2FnZVxyXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgIFtjb250cm9sc109XCJjb250cm9sc1wiXHJcbiAgICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICAgIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuICAgIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiPjwvdG9vbHRpcC1tZXNzYWdlPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXHJcbiAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAoa2V5dXAuZW50ZXIpPVwib25LZXlVcEVudGVyKClcIlxyXG4gICAgICAoa2V5dXAuQXJyb3dVcCk9XCJhcnJvd1VwS2V5VXAoKVwiXHJcbiAgICAgIChrZXlwcmVzcyk9XCJvbmx5TnVtYmVycygkZXZlbnQpXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgICAoZGF0ZVNlbGVjdCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcbiAgICAgIChmb2N1c291dCk9XCJmb2N1c091dCgkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtIHJvdW5kZWQtbGVmdCB1c2UtaW5wdXRcIlxyXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJkZC9tbS95eXl5XCJcclxuICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXHJcbiAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxyXG4gICAgICBuYW1lPVwiZmVjaGFcIlxyXG4gICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICNmZWNoYT1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCIgLz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIHAtMCByb3VuZGVkLTAgdXNlLWJ1dHRvblwiIChjbGljayk9XCJmZWNoYS50b2dnbGUoKVwiPlxyXG4gICAgICA8IS0tIDxtYXQtaWNvbiBjbGFzcz1cInRleHQtd2hpdGUgcHQtMVwiIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4O1wiIFttYXRUb29sdGlwXT1cIidDYWxlbmRhcmlvJ1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj5jYWxlbmRhcl90b2RheTwvbWF0LWljb24+IC0tPlxyXG4gICAgICA8aSBjbGFzcz1cImZhIGZhLWNhbGVuZGFyIHRleHQtd2hpdGUgcHgtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPCEtLSBlcnJvci1tZXNzYWdlIGVzIGVsIG1hbnNhamUgcXVlIGFwYXJlY2UgYWJham8gZGVsIGNvbXBvbmVudGUgLS0+XHJcbjxlcnJvci1tZXNzYWdlXHJcbiAgW2xhYmVsXT1cImxhYmVsXCJcclxuICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gIFt2YWxpZGF0b3JNZXNzYWdlXT1cInZhbGlkYXRvck1lc3NhZ2VcIlxyXG4gIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIj48L2Vycm9yLW1lc3NhZ2U+XHJcbiJdfQ==
416
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxPQUFPLEVBQ1Asc0JBQXNCLEVBR3RCLGlCQUFpQixHQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBR3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUF1QjdDLDJKQUEySjtBQUMzSixNQUFNLE9BQU8sbUJBQW1CO0lBcUs5QixZQUNVLEVBQWMsRUFDZCxrQkFBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLE9BQWtCO1FBSGxCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9B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QU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csYUFBYTtzQkFBckIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBT2EsYUFBYTtzQkFBaEMsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgVmFsaWRhdGlvbkVycm9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgTmdiRGF0ZSxcclxuICBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLFxyXG4gIE5nYkRhdGVTdHJ1Y3QsXHJcbiAgTmdiRGF0ZXBpY2tlcixcclxuICBOZ2JEYXRlcGlja2VySTE4bixcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZVV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvbWVzc2FnZS11dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21EYXRlcGlja2VySTE4biwgSTE4biB9IGZyb20gJy4vQ3VzdG9tRGF0ZVBpY2tlckkxOG4nO1xyXG5pbXBvcnQgeyBDdXN0b21EYXRlcGlja2VyRm9ybWF0IH0gZnJvbSAnLi9DdXN0b21EYXRlUGlja2VyRm9ybWF0JztcclxuaW1wb3J0IHsgU2hhcmVkQ29tcG9uZW50c1V0aWwgfSBmcm9tICcuLi91dGlscy9TaGFyZWRDb21wb25lbnRzVXRpbCc7XHJcbmltcG9ydCB7IERhdGVVdGlsIH0gZnJvbSAnLi4vdXRpbHMvRGF0ZVV0aWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkYXRlLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIEkxOG4sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogQ3VzdG9tRGF0ZXBpY2tlckkxOG4gfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZVBhcnNlckZvcm1hdHRlciwgdXNlQ2xhc3M6IEN1c3RvbURhdGVwaWNrZXJGb3JtYXQgfSxcclxuICBdLFxyXG59KVxyXG5cclxuLy8gcHJvdmlkZXJzOiBbSTE4biwgeyBwcm92aWRlOiBOZ2JEYXRlcGlja2VySTE4biwgdXNlQ2xhc3M6IEN1c3RvbURhdGVwaWNrZXJJMThuIH0sIHsgcHJvdmlkZTogTmdiRGF0ZVBhcnNlckZvcm1hdHRlciwgdXNlQ2xhc3M6IEN1c3RvbURhdGVwaWNrZXJGb3JtYXQgfV1cclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG57XHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gQ29udHJvbGEgbGEgdmlzdWFsaXphY2nDs24gZGVsIHRleHRvIHN1cGVyaW9yIChsYWJlbClcclxuICAqIEBkZWZhdWx0IHRydWVcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gVGV4dG8gYSBtb3N0cmFyIGNvbW8gZXRpcXVldGEgZGVsIGNhbXBvXHJcbiAgKiBAZGVmYXVsdCBudWxsXHJcbiAgKiBAdHlwZSBhbnlcclxuICAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBhbnkgPSBudWxsO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFZhbG9yIHBhcmEgZWwgYXRyaWJ1dG8gYXV0b2NvbXBsZXRlIGRlbCBpbnB1dFxyXG4gICogQGRlZmF1bHQgJ29mZidcclxuICAqIEB0eXBlIHN0cmluZ1xyXG4gICovXHJcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBzdHJpbmcgPSAnb2ZmJztcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2lhIGFsIHNpZ3VpZW50ZSBjb250cm9sIHBhcmEgbmF2ZWdhY2nDs25cclxuICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG4gICogQHR5cGUgYW55XHJcbiAgKi9cclxuICBASW5wdXQoKSBuZXh0OiBhbnk7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNpYSBhbCBjb250cm9sIGFsdGVybmF0aXZvIGN1YW5kbyBlbCBzaWd1aWVudGUgZXN0w6EgZGVzaGFiaWxpdGFkb1xyXG4gICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgKiBAdHlwZSBhbnlcclxuICAqL1xyXG4gIEBJbnB1dCgpIG5leHRJc0Rpc2FibGU6IGFueTtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2lhIGFsIGNvbnRyb2wgYW50ZXJpb3IgcGFyYSBuYXZlZ2FjacOzblxyXG4gICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgKiBAdHlwZSBhbnlcclxuICAqL1xyXG4gIEBJbnB1dCgpIGJhY2s6IGFueTtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2lhIGFsIGNvbnRyb2wgYWx0ZXJuYXRpdm8gY3VhbmRvIGVsIGFudGVyaW9yIGVzdMOhIGRlc2hhYmlsaXRhZG9cclxuICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG4gICogQHR5cGUgYW55XHJcbiAgKi9cclxuICBASW5wdXQoKSBiYWNrSXNEaXNhYmxlOiBhbnk7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gSW5kaWNhIHNpIGVsIGNhbXBvIGVzIG9ibGlnYXRvcmlvXHJcbiAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICogQHR5cGUgYm9vbGVhblxyXG4gICovXHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBDb21wbGV0YSBhdXRvbcOhdGljYW1lbnRlIGNvbiBudWxsIGN1YW5kbyBlbCB2YWxvciBlc3TDoSB2YWPDrW9cclxuICAqIEBkZWZhdWx0IHRydWVcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIG5vQXV0b0NvbXBsZXRlTnVsbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gRXN0YWJsZWNlIGVsIGNvbnRyb2wgY29tbyBzb2xvIGxlY3R1cmFcclxuICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIE11ZXN0cmEgbWVuc2FqZXMgZGUgdmFsaWRhY2nDs25cclxuICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0b3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gTXVlc3RyYSBtZW5zYWplcyBkZSBheXVkYSBjb21vIHRvb2x0aXBzXHJcbiAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gTXVlc3RyYSBhbGVydGFzIGRlIHZhbGlkYWNpw7NuXHJcbiAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICogQHR5cGUgYm9vbGVhblxyXG4gICovXHJcbiAgQElucHV0KCkgdmFsaWRhdG9yQWxlcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBJbmRpY2Egc2kgZWwgZm9ybXVsYXJpbyBoYSBzaWRvIGVudmlhZG8gcGFyYSBtb3N0cmFyIHZhbGlkYWNpb25lc1xyXG4gICogQGRlZmF1bHQgdHJ1ZVxyXG4gICogQHR5cGUgYm9vbGVhblxyXG4gICovXHJcbiAgQElucHV0KCkgc3VibWl0dGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBpbmZvcm1hY2nDs24gYWRpY2lvbmFsIHBhcmEgbGEgZXRpcXVldGFcclxuICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSBsYWJlbEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBUZXh0byBpbmZvcm1hdGl2byBhZGljaW9uYWwgcGFyYSBsYSBldGlxdWV0YVxyXG4gICogQGRlZmF1bHQgJydcclxuICAqIEB0eXBlIHN0cmluZ1xyXG4gICovXHJcbiAgQElucHV0KCkgdGV4dExhYmVsSW5mbzogc3RyaW5nID0gJyc7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gRmVjaGEgbcOtbmltYSBzZWxlY2Npb25hYmxlXHJcbiAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAqIEB0eXBlIE5nYkRhdGVTdHJ1Y3RcclxuICAqL1xyXG4gIEBJbnB1dCgpIG1pbkRhdGUhOiBOZ2JEYXRlU3RydWN0O1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIEZlY2hhIG3DoXhpbWEgc2VsZWNjaW9uYWJsZVxyXG4gICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgKiBAdHlwZSBOZ2JEYXRlU3RydWN0XHJcbiAgKi9cclxuICBASW5wdXQoKSBtYXhEYXRlITogTmdiRGF0ZVN0cnVjdDtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBJbmRpY2Egc2kgZWwgdmFsb3IgZXMgaW52w6FsaWRvXHJcbiAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICogQHR5cGUgYm9vbGVhblxyXG4gICovXHJcbiAgQElucHV0KCkgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIEVzdGFibGVjZSBlbCBmb2NvIGluaWNpYWwgZW4gZWwgY29tcG9uZW50ZVxyXG4gICogQGRlZmF1bHQgZmFsc2VcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIGZvY3VzSW5pdGlhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIERlc2hhYmlsaXRhIGVsIGNvbnRyb2xcclxuICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBvbk5leHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBpbnB1dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLy8geG1pbkRhdGUgPSBudWxsO1xyXG4gIC8vIHhtYXhEYXRlID0gbnVsbDtcclxuICB2YWx1ZTogYW55O1xyXG4gIGNvbnRyb2xzOiBhbnk7XHJcbiAgZW1pdFZhbHVlOiBOZ2JEYXRlIHwgc3RyaW5nID0gJyc7XHJcbiAgc2hhcmVkQ29tcG9uZW50c1V0aWwgPSBuZXcgU2hhcmVkQ29tcG9uZW50c1V0aWwoKTtcclxuICBAVmlld0NoaWxkKCdmZWNoYScpIG5nYkRhdGVwaWNrZXI6IE5nYkRhdGVwaWNrZXIgfCBhbnk7XHJcblxyXG4gIF90ZW1wVmFsdWUgPSAnJztcclxuICBfaW5pdFZhbHVlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgbWVzc2FnZVV0aWxTZXJ2aWNlOiBNZXNzYWdlVXRpbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGVQaWNrZXJTZXJ2aWNlOiBEYXRlUGlja2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlbmRlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNob3dMYWJlbCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0U2hvd0xhYmVsKCk7XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0QXV0b2NvbXBsZXRlKCk7XHJcbiAgICB0aGlzLm5vQXV0b0NvbXBsZXRlTnVsbCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0Tm9BdXRvQ29tcGxldGVOdWxsKCk7XHJcbiAgICB0aGlzLmZvY3VzSW5pdGlhbCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0Rm9jdXNJbml0aWFsKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRvck1lc3NhZ2UgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldFZhbGlkYXRvck1lc3NhZ2UoKTtcclxuICAgIHRoaXMudG9vbHRpcE1lc3NhZ2UgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldFRvb2x0aXBNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0U3VibWl0dGVkKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRvckFsZXJ0ID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRWYWxpZGF0b3JBbGVydCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3N1Ym1pdHRlZCddKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xzICE9PSB1bmRlZmluZWQgJiYgY2hhbmdlc1snc3VibWl0dGVkJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1pbkRhdGUpIHtcclxuICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5zdHJEYXRlVG9OZ2JEYXRlKHRoaXMubWluRGF0ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb2N1c0luaXRpYWwgPT0gdHJ1ZSAmJiB0aGlzLmRpc2FibGVkID09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnN0IGludmFsaWRDb250cm9sID1cclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3R5cGU9XCJ0ZXh0XCJdJyk7XHJcbiAgICAgIGludmFsaWRDb250cm9sLmZvY3VzKCk7XHJcbiAgICAgIGludmFsaWRDb250cm9sLnNlbGVjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcclxuICBvblZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7fTtcclxuICBvblRvdWNoID0gKCkgPT4ge307XHJcblxyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgY29uc3QgaW52YWxpZENvbnRyb2wgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3R5cGU9XCJ0ZXh0XCJdJyk7XHJcbiAgICBpbnZhbGlkQ29udHJvbC5mb2N1cygpO1xyXG4gICAgaW52YWxpZENvbnRyb2wuc2VsZWN0KCk7XHJcbiAgfTtcclxuXHJcbiAgb25Gb2N1cyhldnQ6IGFueSkge1xyXG4gICAgaWYgKGV2dCkge1xyXG4gICAgICBjb25zdCBpbnZhbGlkQ29udHJvbCA9XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0eXBlPVwidGV4dFwiXScpO1xyXG4gICAgICBpbnZhbGlkQ29udHJvbC5zZWxlY3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnN0ckRhdGVUb05nYkRhdGUodmFsdWUpIHx8ICcnO1xyXG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgdGhpcy5fdGVtcFZhbHVlID0gRGF0ZVV0aWwuZGF0ZUF1dG9Db21wbGV0ZSh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbHMpIHtcclxuICAgICAgICAgIHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRyb2xzLCAndmFsdWUnLCB0aGlzLl90ZW1wVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgdGhpcy5fdGVtcFZhbHVlID0gdmFsdWUudHJpbSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLl90ZW1wVmFsdWUgPSAnJztcclxuICAgIH1cclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IGFueSB7XHJcbiAgICB0aGlzLmNvbnRyb2xzID0gY29udHJvbDtcclxuICAgIGlmICghdGhpcy5faW5pdFZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLl90ZW1wVmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXIuc2V0UHJvcGVydHkoY29udHJvbCwgJ3ZhbHVlJywgdGhpcy5fdGVtcFZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9pbml0VmFsdWUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dCh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmVtaXRWYWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLnZhbHVlIGluc3RhbmNlb2YgTmdiRGF0ZSkge1xyXG4gICAgICB0aGlzLmVtaXRWYWx1ZSA9IHRoaXMubmdiRGF0ZXRvU3RyaW5nKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZW1pdFZhbHVlKTtcclxuICAgIHRoaXMub25jaGFuZ2UuZW1pdCh0aGlzLmVtaXRWYWx1ZSk7XHJcbiAgICB0aGlzLmlucHV0LmVtaXQodGhpcy5lbWl0VmFsdWUpO1xyXG5cclxuICAgIHRoaXMuX3RlbXBWYWx1ZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgb25LZXlVcEVudGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbnRlcktleVVwKCk7XHJcbiAgfVxyXG5cclxuICBvbmx5TnVtYmVycyhlOiBhbnkpIHtcclxuICAgIGlmICghKGUua2V5Q29kZSA+PSA0OCAmJiBlLmtleUNvZGUgPD0gNTcpICYmIGUua2V5Q29kZSAhPSA0Nykge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdHJEYXRlVG9OZ2JEYXRlKHZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnN0IGRhdGU6IERhdGUgPSBEYXRlVXRpbC5wYXJzZSh2YWx1ZSwgJ0RBVEUnKTtcclxuICAgIGNvbnN0IG5nYkRhdGU6IE5nYkRhdGVTdHJ1Y3QgPSB7XHJcbiAgICAgIGRheTogTnVtYmVyKERhdGVVdGlsLmdldERheShkYXRlKSksXHJcbiAgICAgIG1vbnRoOiBOdW1iZXIoRGF0ZVV0aWwuZ2V0TW9udGgoZGF0ZSkpLFxyXG4gICAgICB5ZWFyOiBOdW1iZXIoRGF0ZVV0aWwuZ2V0WWVhcihkYXRlKSksXHJcbiAgICB9O1xyXG4gICAgLy8gcmV0dXJuIG5nYkRhdGU7XHJcbiAgICByZXR1cm4gbmV3IE5nYkRhdGUobmdiRGF0ZS55ZWFyLCBuZ2JEYXRlLm1vbnRoLCBuZ2JEYXRlLmRheSk7XHJcbiAgfVxyXG5cclxuICBuZ2JEYXRldG9TdHJpbmcodmFsdWU6IE5nYkRhdGVTdHJ1Y3QpOiBOZ2JEYXRlIHwgc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbmNhdE5nYkRhdGUgPVxyXG4gICAgICBgMCR7dmFsdWUuZGF5fWAuc2xpY2UoLTIpICsgYDAke3ZhbHVlLm1vbnRofWAuc2xpY2UoLTIpICsgdmFsdWUueWVhcjtcclxuICAgIHJldHVybiBEYXRlVXRpbC5kYXRlQXV0b0NvbXBsZXRlKGNvbmNhdE5nYkRhdGUpO1xyXG4gIH1cclxuXHJcbiAgZW50ZXJLZXlVcCgpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yID0gdGhpcy5zaGFyZWRDb21wb25lbnRzVXRpbC5zdG9wQnlWYWxpZGF0b3IoXHJcbiAgICAgICAgdGhpcy5jb250cm9scyxcclxuICAgICAgICB0aGlzLnZhbGlkYXRvckFsZXJ0LFxyXG4gICAgICAgIHRoaXMubGFiZWxcclxuICAgICAgKTtcclxuICAgICAgaWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcihcclxuICAgICAgICAgICcwMDAwNDYnLFxyXG4gICAgICAgICAgJ0Vycm9yJyxcclxuICAgICAgICAgIHZhbGlkYXRvci5tZXNzYWdlXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5leHQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLm5leHQuZGlzYWJsZWQgfHwgdGhpcy5uZXh0LnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMubmV4dElzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5leHQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubmV4dElzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLm5leHRJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uTmV4dC5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFycm93VXBLZXlVcCgpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yID0gdGhpcy5zaGFyZWRDb21wb25lbnRzVXRpbC5zdG9wQnlWYWxpZGF0b3IoXHJcbiAgICAgICAgdGhpcy5jb250cm9scyxcclxuICAgICAgICB0aGlzLnZhbGlkYXRvckFsZXJ0LFxyXG4gICAgICAgIHRoaXMubGFiZWxcclxuICAgICAgKTtcclxuICAgICAgaWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcihcclxuICAgICAgICAgICcwMDAwNDYnLFxyXG4gICAgICAgICAgJ0Vycm9yJyxcclxuICAgICAgICAgIHZhbGlkYXRvci5tZXNzYWdlXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmJhY2sgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2suZGlzYWJsZWQgfHwgdGhpcy5iYWNrLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJhY2suZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmJhY2tJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uQmFjay5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzT3V0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIGlmICh0aGlzLl90ZW1wVmFsdWUgPT09IHZhbHVlKSByZXR1cm47XHJcblxyXG4gICAgICB0aGlzLm5nYkRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTmdiRGF0ZSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5uZ2JEYXRldG9TdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgICAgICB0aGlzLmVtaXRWYWx1ZSA9IHRoaXMubmdiRGF0ZXRvU3RyaW5nKHZhbHVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5lbWl0VmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlQWxsKCcvJywgJycpO1xyXG4gICAgICAgIGlmICh0aGlzLm5vQXV0b0NvbXBsZXRlTnVsbCkge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuc3RyRGF0ZVRvTmdiRGF0ZShcclxuICAgICAgICAgICAgRGF0ZVV0aWwuZGF0ZUF1dG9Db21wbGV0ZSh2YWx1ZSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmVtaXRWYWx1ZSA9IERhdGVVdGlsLmRhdGVBdXRvQ29tcGxldGUodmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodmFsdWUgIT0gJycgJiYgdmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5zdHJEYXRlVG9OZ2JEYXRlKFxyXG4gICAgICAgICAgICAgIERhdGVVdGlsLmRhdGVBdXRvQ29tcGxldGUodmFsdWUpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdFZhbHVlID0gRGF0ZVV0aWwuZGF0ZUF1dG9Db21wbGV0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmVtaXRWYWx1ZSk7XHJcblxyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuZW1pdFZhbHVlID09PSAnc3RyaW5nJykgdGhpcy5fdGVtcFZhbHVlID0gdGhpcy5lbWl0VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxsYWJlbCAqbmdJZj1cImxhYmVsICE9IG51bGwgJiYgbGFiZWwgIT0gJycgJiYgc2hvd0xhYmVsXCIgY2xhc3M9XCJkLWZsZXggc3VtYXgtbGFiZWwgbWItMCBwLTBcIlxyXG4gID48c3BhbiBbdGl0bGVdPVwibGFiZWxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgPHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwibXMtMVwiIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGxcIj4gKjwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cImxhYmVsSW5mb1wiPlxyXG4gICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGUgdGV4dC1pbmZvIG1zLTJcIiBbbWF0VG9vbHRpcF09XCJ0ZXh0TGFiZWxJbmZvXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuICA8L3NwYW4+XHJcbjwvbGFiZWw+XHJcbjxkaXZcclxuICBbY2xhc3MuaW5wdXQtaWNvbl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICBbY2xhc3MucmlnaHRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiPlxyXG4gIDwhLS0gdG9vbHRpcC1tZXNzYWdlIGVzIGVsIGljb25vIGRlIGVycm9yIC0tPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtMCBncm91cC1pbnB1dC1idXR0b24gcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgIDx0b29sdGlwLW1lc3NhZ2VcclxuICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gICAgW3ZhbGlkYXRvck1lc3NhZ2VdPVwidmFsaWRhdG9yTWVzc2FnZVwiXHJcbiAgICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIj48L3Rvb2x0aXAtbWVzc2FnZT5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxyXG4gICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uS2V5VXBFbnRlcigpXCJcclxuICAgICAgKGtleXVwLkFycm93VXApPVwiYXJyb3dVcEtleVVwKClcIlxyXG4gICAgICAoa2V5cHJlc3MpPVwib25seU51bWJlcnMoJGV2ZW50KVwiXHJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcclxuICAgICAgKGRhdGVTZWxlY3QpPVwib25JbnB1dCgkZXZlbnQpXCJcclxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgICAoZm9jdXNvdXQpPVwiZm9jdXNPdXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSByb3VuZGVkLWxlZnQgdXNlLWlucHV0XCJcclxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgIHBsYWNlaG9sZGVyPVwiZGQvbW0veXl5eVwiXHJcbiAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxyXG4gICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcclxuICAgICAgbmFtZT1cImZlY2hhXCJcclxuICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAjZmVjaGE9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIC8+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBjbGFzcz1cImJ0biBidG4taW5mbyBwLTAgcm91bmRlZC0wIHVzZS1idXR0b25cIiAoY2xpY2spPVwiZmVjaGEudG9nZ2xlKClcIj5cclxuICAgICAgPCEtLSA8bWF0LWljb24gY2xhc3M9XCJ0ZXh0LXdoaXRlIHB0LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIiBbbWF0VG9vbHRpcF09XCInQ2FsZW5kYXJpbydcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+Y2FsZW5kYXJfdG9kYXk8L21hdC1pY29uPiAtLT5cclxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhciB0ZXh0LXdoaXRlIHB4LTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwhLS0gZXJyb3ItbWVzc2FnZSBlcyBlbCBtYW5zYWplIHF1ZSBhcGFyZWNlIGFiYWpvIGRlbCBjb21wb25lbnRlIC0tPlxyXG48ZXJyb3ItbWVzc2FnZVxyXG4gIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgW2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgW3Rvb2x0aXBNZXNzYWdlXT1cInRvb2x0aXBNZXNzYWdlXCI+PC9lcnJvci1tZXNzYWdlPlxyXG4iXX0=
@@ -19,37 +19,77 @@ export class DateTimePickerComponent {
19
19
  this.dateTimePickerService = dateTimePickerService;
20
20
  this._render = _render;
21
21
  /**
22
- * @description Formato de la fecha:
23
- * 'dd/MM/yyyy HH:mm' - 'dd/MM/yyyy HH:mm:ss' - 'M/d/yyyy H:mm:ss'
24
- * @default 'dd/MM/yyyy HH:mm'
25
- * @type {string}
26
- */
27
- this.inputDatetimeFormat = 'dd/MM/yyyy HH:mm'; // 'M/d/yyyy H:mm:ss'
22
+ * @description Formato de la fecha:
23
+ * 'dd/MM/yyyy HH:mm' - 'dd/MM/yyyy HH:mm:ss' - 'M/d/yyyy H:mm:ss'
24
+ * @default 'dd/MM/yyyy HH:mm'
25
+ * @type {string}
26
+ */
27
+ this.inputDatetimeFormat = 'dd/MM/yyyy HH:mm';
28
28
  /**
29
- * @description Texto superion
30
- * @default null
31
- * @type any
32
- */
29
+ * @description Texto a mostrar como etiqueta del campo
30
+ * @default ''
31
+ * @type string
32
+ */
33
33
  this.label = '';
34
34
  /**
35
- * @description Parametro de la visualización del texto superior
36
- * @default true
37
- * @type boolean
38
- */
35
+ * @description Controla la visualización del texto superior (label)
36
+ * @default true
37
+ * @type boolean
38
+ */
39
39
  this.showLabel = true;
40
+ /**
41
+ * @description Establece el control como solo lectura
42
+ * @default false
43
+ * @type boolean
44
+ */
40
45
  this.readonly = false;
41
46
  /**
42
- * @description Parametro de control requerido
43
- * @default false
44
- * @type boolean
45
- */
47
+ * @description Indica si el campo es obligatorio
48
+ * @default false
49
+ * @type boolean
50
+ */
46
51
  this.required = false;
52
+ /**
53
+ * @description Muestra mensajes de validación
54
+ * @default false
55
+ * @type boolean
56
+ */
47
57
  this.validatorMessage = false;
58
+ /**
59
+ * @description Muestra mensajes de ayuda como tooltips
60
+ * @default true
61
+ * @type boolean
62
+ */
48
63
  this.tooltipMessage = true;
64
+ /**
65
+ * @description Indica si el formulario ha sido enviado para mostrar validaciones
66
+ * @default true
67
+ * @type boolean
68
+ */
49
69
  this.submitted = true;
70
+ /**
71
+ * @description Habilita información adicional para la etiqueta
72
+ * @default false
73
+ * @type boolean
74
+ */
50
75
  this.labelInfo = false;
76
+ /**
77
+ * @description Texto informativo adicional para la etiqueta
78
+ * @default ''
79
+ * @type string
80
+ */
51
81
  this.textLabelInfo = '';
82
+ /**
83
+ * @description Abre el selector al recibir el foco
84
+ * @default false
85
+ * @type boolean
86
+ */
52
87
  this.openWhenFocus = false;
88
+ /**
89
+ * @description Navega al siguiente control al seleccionar una fecha
90
+ * @default false
91
+ * @type boolean
92
+ */
53
93
  this.goNextWhenSelect = false;
54
94
  this.onNext = new EventEmitter();
55
95
  this.onBack = new EventEmitter();
@@ -308,4 +348,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
308
348
  type: ViewChild,
309
349
  args: ['btnClean']
310
350
  }] } });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBRWxCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUVMLHNCQUFzQixFQUV0QixpQkFBaUIsRUFJbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUF1QnZELE1BQU0sT0FBTyx1QkFBdUI7SUEwRWxDLFlBQ1UsUUFBcUIsRUFDckIsUUFBa0IsRUFDbEIscUJBQTRDLEVBQzVDLE9BQWtCO1FBSGxCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLFlBQU8sR0FBUCxPQUFPLENBQVc7UUEzRTFCOzs7OztRQUtBO1FBQ08sd0JBQW1C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QUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0csUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgZm9yd2FyZFJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICBWYWxpZGF0aW9uRXJyb3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBOZ2JDYWxlbmRhcixcclxuICBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLFxyXG4gIE5nYkRhdGVTdHJ1Y3QsXHJcbiAgTmdiRGF0ZXBpY2tlckkxOG4sXHJcbiAgTmdiSW5wdXREYXRlcGlja2VyLFxyXG4gIE5nYlRpbWVTdHJ1Y3QsXHJcbiAgTmdiVGltZXBpY2tlclxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21EYXRlcGlja2VySTE4biwgSTE4biB9IGZyb20gJy4uL2RhdGUtcGlja2VyL0N1c3RvbURhdGVQaWNrZXJJMThuJztcclxuaW1wb3J0IHsgQ3VzdG9tRGF0ZXBpY2tlckZvcm1hdCB9IGZyb20gJy4uL2RhdGUtcGlja2VyL0N1c3RvbURhdGVQaWNrZXJGb3JtYXQnO1xyXG5pbXBvcnQgeyBEYXRlVGltZU1vZGVsIH0gZnJvbSAnLi4vdXRpbHMvRGF0ZVRpbWVNb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhdGUtdGltZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBJMThuLFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlcGlja2VySTE4biwgdXNlQ2xhc3M6IEN1c3RvbURhdGVwaWNrZXJJMThuIH0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIHVzZUNsYXNzOiBDdXN0b21EYXRlcGlja2VyRm9ybWF0IH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lUGlja2VyQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Jcclxue1xyXG4gICAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gRm9ybWF0byBkZSBsYSBmZWNoYTpcclxuICAqICdkZC9NTS95eXl5IEhIOm1tJyAtICdkZC9NTS95eXl5IEhIOm1tOnNzJyAtICdNL2QveXl5eSBIOm1tOnNzJ1xyXG4gICogQGRlZmF1bHQgJ2RkL01NL3l5eXkgSEg6bW0nXHJcbiAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICovXHJcbiAgQElucHV0KCkgaW5wdXREYXRldGltZUZvcm1hdDogc3RyaW5nID0gJ2RkL01NL3l5eXkgSEg6bW0nOyAvLyAnTS9kL3l5eXkgSDptbTpzcydcclxuICAgIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFRleHRvIHN1cGVyaW9uXHJcbiAgKiBAZGVmYXVsdCBudWxsXHJcbiAgKiBAdHlwZSBhbnlcclxuICAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFBhcmFtZXRybyBkZSBsYSB2aXN1YWxpemFjacOzbiBkZWwgdGV4dG8gc3VwZXJpb3JcclxuICAqIEBkZWZhdWx0IHRydWVcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFBhcmFtZXRybyBkZSBjb250cm9sIHJlcXVlcmlkb1xyXG4gICogQGRlZmF1bHQgZmFsc2VcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXBNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFByw7N4aW1vIGNvbnRyb2wgYSBoYWNlciBmb2N1c1xyXG4gICovXHJcbiAgQElucHV0KCkgbmV4dDogYW55O1xyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFByw7N4aW1vIGNvbnRyb2wgYSBoYWNlciBmb2N1cyBlbiBjYXNvIGVsIE5FWFQgZXN0w6kgZGVzaGFiaWxpdGFkb1xyXG4gICovXHJcbiAgQElucHV0KCkgbmV4dElzRGlzYWJsZTogYW55O1xyXG4gICAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gQW50ZXJpb3IgY29udHJvbCBhIGhhY2VyIGZvY3VzXHJcbiAgKi9cclxuICBASW5wdXQoKSBiYWNrOiBhbnk7XHJcbiAgICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBBbnRlcmlvciBjb250cm9sIGEgaGFjZXIgZm9jdXMgZW4gY2FzbyBlbCBCQUNLIGVzdMOpIGRlc2hhYmlsaXRhZG9cclxuICAqL1xyXG4gIEBJbnB1dCgpIGJhY2tJc0Rpc2FibGU6IGFueTtcclxuICBASW5wdXQoKSBsYWJlbEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0ZXh0TGFiZWxJbmZvOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBvcGVuV2hlbkZvY3VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZ29OZXh0V2hlblNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBvbk5leHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdkJykgbmdiRGF0ZXBpY2tlciE6IE5nYklucHV0RGF0ZXBpY2tlcjtcclxuICBAVmlld0NoaWxkKCd0cCcpIHRpbWVQaWNrZXIhOiBOZ2JUaW1lcGlja2VyO1xyXG4gIEBWaWV3Q2hpbGQoJ2J0bk9wZW4nKSBidG5PcGVuITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdidG5DbGVhbicpIGJ0bkNsZWFuITogRWxlbWVudFJlZjtcclxuXHJcbiAgY29udHJvbHM/OiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgdG9kYXkgPSB0aGlzLmNhbGVuZGFyLmdldFRvZGF5KCk7XHJcbiAgZGF0ZTogTmdiRGF0ZVN0cnVjdCB8IGFueSA9IHRoaXMudG9kYXk7XHJcbiAgdGltZTogTmdiVGltZVN0cnVjdCA9IHtcclxuICAgIGhvdXI6IG5ldyBEYXRlKCkuZ2V0SG91cnMoKSxcclxuICAgIG1pbnV0ZTogbmV3IERhdGUoKS5nZXRNaW51dGVzKCksXHJcbiAgICBzZWNvbmQ6IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpLFxyXG4gIH07XHJcbiAgaW5wdXQ6IGFueSA9IG5ldyBEYXRlVGltZU1vZGVsKE9iamVjdC5hc3NpZ24odGhpcy5kYXRlLCB0aGlzLnRpbWUpKTtcclxuICBpc0Rpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIF90ZW1wVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIF9pbml0VmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhbGVuZGFyOiBOZ2JDYWxlbmRhcixcclxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSBkYXRlVGltZVBpY2tlclNlcnZpY2U6IERhdGVUaW1lUGlja2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlbmRlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmlucHV0RGF0ZXRpbWVGb3JtYXQgPVxyXG4gICAgICB0aGlzLmRhdGVUaW1lUGlja2VyU2VydmljZS5nZXRJbnB1dERhdGV0aW1lRm9ybWF0KCk7XHJcbiAgICB0aGlzLnNob3dMYWJlbCA9IHRoaXMuZGF0ZVRpbWVQaWNrZXJTZXJ2aWNlLmdldFNob3dMYWJlbCgpO1xyXG4gICAgdGhpcy5vcGVuV2hlbkZvY3VzID0gdGhpcy5kYXRlVGltZVBpY2tlclNlcnZpY2UuZ2V0T3BlbldoZW5Gb2N1cygpO1xyXG4gICAgdGhpcy5nb05leHRXaGVuU2VsZWN0ID0gdGhpcy5kYXRlVGltZVBpY2tlclNlcnZpY2UuZ2V0R29OZXh0V2hlblNlbGVjdCgpO1xyXG4gICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdGhpcy5kYXRlVGltZVBpY2tlclNlcnZpY2UuZ2V0VmFsaWRhdG9yTWVzc2FnZSgpO1xyXG4gICAgdGhpcy50b29sdGlwTWVzc2FnZSA9IHRoaXMuZGF0ZVRpbWVQaWNrZXJTZXJ2aWNlLmdldFRvb2x0aXBNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRoaXMuZGF0ZVRpbWVQaWNrZXJTZXJ2aWNlLmdldFN1Ym1pdHRlZCgpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcclxuICBvblZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7fTtcclxuICBvblRvdWNoID0gKCkgPT4ge307XHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmJ0bk9wZW4ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5ICYmIHRoaXMub3BlbldoZW5Gb2N1cykge1xyXG4gICAgICB0aGlzLm5nYkRhdGVwaWNrZXIub3BlbigpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydzdWJtaXR0ZWQnXSkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9scyAhPT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbJ3N1Ym1pdHRlZCddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzRGlydHkoKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICAvLyBvbkRhdGVTZWxlY3QoZXZ0OiBhbnkpIHtcclxuICAvL3RoaXMubmdiRGF0ZXBpY2tlci5jbG9zZSgpO1xyXG4gIC8vIGlmICh0aGlzLmdvTmV4dFdoZW5TZWxlY3QpIHtcclxuICAvLyBcdHRoaXMuZ29OZXh0KCk7XHJcbiAgLy8gfVxyXG4gIC8vY29uc29sZS5sb2coZXZ0KTtcclxuICAvLyB9XHJcblxyXG4gIGZvY3VzT3V0KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuYXJpYUxhYmVsID09ICdNaW51dGVzJykge1xyXG4gICAgICB0aGlzLm5nYkRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICAgICAgaWYgKHRoaXMuZ29OZXh0V2hlblNlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuZ29OZXh0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW9kZWxEYXRlQ2hhbmdlKGV2dDogTmdiRGF0ZVN0cnVjdCB8IE5nYlRpbWVTdHJ1Y3QpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXQgPSBuZXcgRGF0ZVRpbWVNb2RlbChPYmplY3QuYXNzaWduKHRoaXMuZGF0ZSwgdGhpcy50aW1lKSk7XHJcbiAgICBjb25zdCBlbWl0VmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmlucHV0LCAneXl5eS1NTS1kZFRISDptbScpO1xyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGVtaXRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBsaW1waWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlID0gbnVsbDtcclxuICAgIHRoaXMudGltZSA9IHsgbWludXRlOiAwLCBob3VyOiAwLCBzZWNvbmQ6IDAgfTtcclxuICAgIHRoaXMuaW5wdXQgPSBudWxsO1xyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShuZXdNb2RlbDogYW55KTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLmlucHV0ID0gbmV3IERhdGVUaW1lTW9kZWwoT2JqZWN0LmFzc2lnbih0aGlzLmRhdGUsIHRoaXMudGltZSkpO1xyXG4gICAgaWYgKG5ld01vZGVsKSB7XHJcbiAgICAgIC8vIHRoaXMuaW5wdXQgPSBPYmplY3QuYXNzaWduKCF0aGlzLmlucHV0LCBEYXRlVGltZU1vZGVsLmZyb21Mb2NhbFN0cmluZyhuZXdNb2RlbCkpO1xyXG4gICAgICBpZiAoIXRoaXMuaW5wdXQpIHtcclxuICAgICAgICB0aGlzLmlucHV0ID0gRGF0ZVRpbWVNb2RlbC5mcm9tTG9jYWxTdHJpbmcobmV3TW9kZWwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW5wdXQgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgICAgdGhpcy5pbnB1dCxcclxuICAgICAgICAgIERhdGVUaW1lTW9kZWwuZnJvbUxvY2FsU3RyaW5nKG5ld01vZGVsKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuaW5wdXQ7XHJcbiAgICAgIHRoaXMudGltZSA9IHtcclxuICAgICAgICBob3VyOiB0aGlzLmlucHV0LmhvdXIsXHJcbiAgICAgICAgbWludXRlOiB0aGlzLmlucHV0Lm1pbnV0ZSxcclxuICAgICAgICBzZWNvbmQ6IHRoaXMuaW5wdXQuc2Vjb25kLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5fdGVtcFZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5pbnB1dCwgJ3l5eXktTU0tZGRUSEg6bW0nKTtcclxuICAgICAgLy8gdGhpcy5vblRvdWNoKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9scykge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRyb2xzLCAndmFsdWUnLCB0aGlzLl90ZW1wVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBBZ3JlZ3VlIGVsIGxpbXBpYXIgcGFyYSBxdWUgY2FyZ3VlIHZhY2lvIHNpIHNlIGxlIHNldGVhIHZhY2lvIG8gbnVsbFxyXG4gICAgICB0aGlzLmxpbXBpYXIoKTtcclxuICAgICAgLy8gdGhpcy5pbnB1dCA9IG5ldyBEYXRlVGltZU1vZGVsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBhbnkge1xyXG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2w7XHJcblxyXG4gICAgaWYgKCF0aGlzLl9pbml0VmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMuX3RlbXBWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eShjb250cm9sLCAndmFsdWUnLCB0aGlzLl90ZW1wVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2luaXRWYWx1ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2U/KGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb3BlbihkOiBOZ2JJbnB1dERhdGVwaWNrZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlucHV0ID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZGF0ZSA9IHRoaXMudG9kYXk7XHJcbiAgICAgIHRoaXMudGltZSA9IHtcclxuICAgICAgICBob3VyOiBuZXcgRGF0ZSgpLmdldEhvdXJzKCksXHJcbiAgICAgICAgbWludXRlOiBuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKSxcclxuICAgICAgICBzZWNvbmQ6IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmlucHV0ID0gbmV3IERhdGVUaW1lTW9kZWwoT2JqZWN0LmFzc2lnbih0aGlzLmRhdGUsIHRoaXMudGltZSkpO1xyXG4gICAgICBjb25zdCBlbWl0VmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmlucHV0LCAneXl5eS1NTS1kZFRISDptbScpO1xyXG4gICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZShlbWl0VmFsdWUpO1xyXG4gICAgfVxyXG4gICAgLy9hYnJpciBlbCBkYXRldGltZVxyXG4gICAgZC5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBnb05leHQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZXh0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5uZXh0LmRpc2FibGVkIHx8IHRoaXMubmV4dC5yZWFkb25seSkge1xyXG4gICAgICAgIGlmICh0aGlzLm5leHRJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLm5leHRJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5uZXh0LmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLm5leHRJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vbk5leHQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb0JhY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5iYWNrICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5iYWNrLmRpc2FibGVkIHx8IHRoaXMuYmFjay5yZWFkb25seSkge1xyXG4gICAgICAgIGlmICh0aGlzLmJhY2tJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmJhY2tJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5iYWNrLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2tJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vbkJhY2suZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxsYWJlbFxyXG4gICpuZ0lmPVwibGFiZWwgIT0gbnVsbCAmJiBsYWJlbCAhPSAnJyAmJiBzaG93TGFiZWxcIlxyXG4gIGNsYXNzPVwiZC1mbGV4IHN1bWF4LWxhYmVsIG1iLTAgcC0wXCJcclxuICA+PHNwYW4gW3RpdGxlXT1cImxhYmVsXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcIj57e2xhYmVsfX08L3NwYW4+XHJcblx0PHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwibXMtMVwiXHJcblx0XHRbY2xhc3MudGV4dC1kYW5nZXJdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsXCI+ICo8L3NwYW4+XHJcblx0PHNwYW4gKm5nSWY9XCJsYWJlbEluZm9cIj5cclxuXHRcdDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tY2lyY2xlIHRleHQtaW5mbyBtcy0yXCIgW21hdFRvb2x0aXBdPVwidGV4dExhYmVsSW5mb1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcblx0PC9zcGFuPlxyXG4gIDwvbGFiZWxcclxuPlxyXG48ZGl2XHJcbiAgW2NsYXNzLmlucHV0LWljb25dPVwiXHJcbiAgICBjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiZcclxuICAgIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmXHJcbiAgICBzdWJtaXR0ZWRcclxuICBcIlxyXG4gIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIlxyXG4gIFtjbGFzcy5yaWdodF09XCJcclxuICAgIGNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJlxyXG4gICAgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiZcclxuICAgIHN1Ym1pdHRlZFxyXG4gIFwiXHJcbj5cclxuICA8IS0tIHRvb2x0aXAtbWVzc2FnZSBlcyBlbCBpY29ubyBkZSBlcnJvciAtLT5cclxuXHJcbiAgPHRvb2x0aXAtbWVzc2FnZVxyXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgIFtjb250cm9sc109XCJjb250cm9sc1wiXHJcbiAgICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICAgIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgPjwvdG9vbHRpcC1tZXNzYWdlPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBtci0yIFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIG5hbWU9XCJpbnB1dFwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICBbbmdNb2RlbF09XCJpbnB1dCB8IGRhdGU6IGlucHV0RGF0ZXRpbWVGb3JtYXRcIlxyXG4gICAgLz5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cImRkL21tL3l5eXlcIlxyXG4gICAgICBuYW1lPVwiZHBcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImRhdGVcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxyXG4gICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICNkPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAvPlxyXG4gICAgPCEtLSAoZGF0ZVNlbGVjdCk9XCJvbkRhdGVTZWxlY3QoJGV2ZW50KVwiIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgI2J0bk9wZW5cclxuICAgICAgICBjbGFzcz1cImJ0biBidG4taW5mbyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCByZWFkb25seVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW4oZClcIlxyXG4gICAgICAgIChrZXl1cC5BcnJvd0xlZnQpPVwiZ29CYWNrKClcIlxyXG4gICAgICAgIChrZXl1cC5BcnJvd1JpZ2h0KT1cImJ0bkNsZWFuLmZvY3VzKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSA8bWF0LWljb24gY2xhc3M9XCJ0ZXh0LXdoaXRlIHB0LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIiBbbWF0VG9vbHRpcF09XCInQ2FsZW5kYXJpbydcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+Y2FsZW5kYXJfdG9kYXk8L21hdC1pY29uPiAtLT5cclxuICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImZhIGZhLWNhbGVuZGFyIHRleHQtbGlnaHQgcHgtMSBcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgI2J0bkNsZWFuXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBwLTAgcm91bmRlZC0wIGxpbXBpYXIgaC0xMDBcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAoY2xpY2spPVwibGltcGlhcigpXCJcclxuICAgICAgICAoa2V5dXAuQXJyb3dMZWZ0KT1cImJ0bk9wZW4uZm9jdXMoKVwiXHJcbiAgICAgICAgKGtleXVwLkFycm93UmlnaHQpPVwiZ29OZXh0KClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSA8bWF0LWljb24gY2xhc3M9XCJ0ZXh0LXdoaXRlIHB0LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIiBbbWF0VG9vbHRpcF09XCInTGltcGlhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1kYW5nZXJcIj5jbG9zZTwvbWF0LWljb24+IC0tPlxyXG4gICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZmEgZmEtdGltZXMgcHgtMSB0ZXh0LWxpZ2h0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgPGhyIGNsYXNzPVwibXktMFwiIC8+XHJcbiAgPG5nYi10aW1lcGlja2VyXHJcbiAgICAjdHBcclxuICAgIFsobmdNb2RlbCldPVwidGltZVwiXHJcbiAgICBuYW1lPVwidGltZXBpY2tlclwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChmb2N1c291dCk9XCJmb2N1c091dCgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9uZ2ItdGltZXBpY2tlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPCEtLSBlcnJvci1tZXNzYWdlIGVzIGVsIG1hbnNhamUgcXVlIGFwYXJlY2UgYWJham8gZGVsIGNvbXBvbmVudGUgLS0+XHJcbjxlcnJvci1tZXNzYWdlXHJcbiAgW2xhYmVsXT1cImxhYmVsXCJcclxuICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gIFt2YWxpZGF0b3JNZXNzYWdlXT1cInZhbGlkYXRvck1lc3NhZ2VcIlxyXG4gIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgW3N1Ym1pdHRlZF09XCJzdWJtaXR0ZWRcIlxyXG4+PC9lcnJvci1tZXNzYWdlPlxyXG4iXX0=
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBRWxCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUVMLHNCQUFzQixFQUV0QixpQkFBaUIsRUFJbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUF1QnZELE1BQU0sT0FBTyx1QkFBdUI7SUF5SWxDLFlBQ1UsUUFBcUIsRUFDckIsUUFBa0IsRUFDbEIscUJBQTRDLEVBQzVDLE9BQWtCO1FBSGxCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLFlBQU8sR0FBUCxPQUFPLENBQVc7UUExSTVCOzs7OztVQUtFO1FBQ08sd0JBQW1C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c0JBQWYsTUFBTTtnQkFFUyxhQUFhO3NCQUE1QixTQUFTO3VCQUFDLEdBQUc7Z0JBQ0csVUFBVTtzQkFBMUIsU0FBUzt1QkFBQyxJQUFJO2dCQUNPLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDRyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFic3RyYWN0Q29udHJvbCxcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBOR19WQUxJREFUT1JTLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIE5nYkNhbGVuZGFyLFxyXG4gIE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsXHJcbiAgTmdiRGF0ZVN0cnVjdCxcclxuICBOZ2JEYXRlcGlja2VySTE4bixcclxuICBOZ2JJbnB1dERhdGVwaWNrZXIsXHJcbiAgTmdiVGltZVN0cnVjdCxcclxuICBOZ2JUaW1lcGlja2VyXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBEYXRlVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbURhdGVwaWNrZXJJMThuLCBJMThuIH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvQ3VzdG9tRGF0ZVBpY2tlckkxOG4nO1xyXG5pbXBvcnQgeyBDdXN0b21EYXRlcGlja2VyRm9ybWF0IH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvQ3VzdG9tRGF0ZVBpY2tlckZvcm1hdCc7XHJcbmltcG9ydCB7IERhdGVUaW1lTW9kZWwgfSBmcm9tICcuLi91dGlscy9EYXRlVGltZU1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGF0ZS10aW1lLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVUaW1lUGlja2VyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIEkxOG4sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogQ3VzdG9tRGF0ZXBpY2tlckkxOG4gfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZVBhcnNlckZvcm1hdHRlciwgdXNlQ2xhc3M6IEN1c3RvbURhdGVwaWNrZXJGb3JtYXQgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG57XHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gRm9ybWF0byBkZSBsYSBmZWNoYTpcclxuICAqICdkZC9NTS95eXl5IEhIOm1tJyAtICdkZC9NTS95eXl5IEhIOm1tOnNzJyAtICdNL2QveXl5eSBIOm1tOnNzJ1xyXG4gICogQGRlZmF1bHQgJ2RkL01NL3l5eXkgSEg6bW0nXHJcbiAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICovXHJcbiAgQElucHV0KCkgaW5wdXREYXRldGltZUZvcm1hdDogc3RyaW5nID0gJ2RkL01NL3l5eXkgSEg6bW0nO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFRleHRvIGEgbW9zdHJhciBjb21vIGV0aXF1ZXRhIGRlbCBjYW1wb1xyXG4gICogQGRlZmF1bHQgJydcclxuICAqIEB0eXBlIHN0cmluZ1xyXG4gICovXHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIENvbnRyb2xhIGxhIHZpc3VhbGl6YWNpw7NuIGRlbCB0ZXh0byBzdXBlcmlvciAobGFiZWwpXHJcbiAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSBzaG93TGFiZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIEVzdGFibGVjZSBlbCBjb250cm9sIGNvbW8gc29sbyBsZWN0dXJhXHJcbiAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICogQHR5cGUgYm9vbGVhblxyXG4gICovXHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBJbmRpY2Egc2kgZWwgY2FtcG8gZXMgb2JsaWdhdG9yaW9cclxuICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIE11ZXN0cmEgbWVuc2FqZXMgZGUgdmFsaWRhY2nDs25cclxuICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0b3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gTXVlc3RyYSBtZW5zYWplcyBkZSBheXVkYSBjb21vIHRvb2x0aXBzXHJcbiAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgKiBAdHlwZSBib29sZWFuXHJcbiAgKi9cclxuICBASW5wdXQoKSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gSW5kaWNhIHNpIGVsIGZvcm11bGFyaW8gaGEgc2lkbyBlbnZpYWRvIHBhcmEgbW9zdHJhciB2YWxpZGFjaW9uZXNcclxuICAqIEBkZWZhdWx0IHRydWVcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIHN1Ym1pdHRlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNpYSBhbCBzaWd1aWVudGUgY29udHJvbCBwYXJhIG5hdmVnYWNpw7NuXHJcbiAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAqIEB0eXBlIGFueVxyXG4gICovXHJcbiAgQElucHV0KCkgbmV4dDogYW55O1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jaWEgYWwgY29udHJvbCBhbHRlcm5hdGl2byBjdWFuZG8gZWwgc2lndWllbnRlIGVzdMOhIGRlc2hhYmlsaXRhZG9cclxuICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG4gICogQHR5cGUgYW55XHJcbiAgKi9cclxuICBASW5wdXQoKSBuZXh0SXNEaXNhYmxlOiBhbnk7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNpYSBhbCBjb250cm9sIGFudGVyaW9yIHBhcmEgbmF2ZWdhY2nDs25cclxuICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG4gICogQHR5cGUgYW55XHJcbiAgKi9cclxuICBASW5wdXQoKSBiYWNrOiBhbnk7XHJcbiAgXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNpYSBhbCBjb250cm9sIGFsdGVybmF0aXZvIGN1YW5kbyBlbCBhbnRlcmlvciBlc3TDoSBkZXNoYWJpbGl0YWRvXHJcbiAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAqIEB0eXBlIGFueVxyXG4gICovXHJcbiAgQElucHV0KCkgYmFja0lzRGlzYWJsZTogYW55O1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIEhhYmlsaXRhIGluZm9ybWFjacOzbiBhZGljaW9uYWwgcGFyYSBsYSBldGlxdWV0YVxyXG4gICogQGRlZmF1bHQgZmFsc2VcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uIFRleHRvIGluZm9ybWF0aXZvIGFkaWNpb25hbCBwYXJhIGxhIGV0aXF1ZXRhXHJcbiAgKiBAZGVmYXVsdCAnJ1xyXG4gICogQHR5cGUgc3RyaW5nXHJcbiAgKi9cclxuICBASW5wdXQoKSB0ZXh0TGFiZWxJbmZvOiBzdHJpbmcgPSAnJztcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBBYnJlIGVsIHNlbGVjdG9yIGFsIHJlY2liaXIgZWwgZm9jb1xyXG4gICogQGRlZmF1bHQgZmFsc2VcclxuICAqIEB0eXBlIGJvb2xlYW5cclxuICAqL1xyXG4gIEBJbnB1dCgpIG9wZW5XaGVuRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKipcclxuICAqIEBkZXNjcmlwdGlvbiBOYXZlZ2EgYWwgc2lndWllbnRlIGNvbnRyb2wgYWwgc2VsZWNjaW9uYXIgdW5hIGZlY2hhXHJcbiAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICogQHR5cGUgYm9vbGVhblxyXG4gICovXHJcbiAgQElucHV0KCkgZ29OZXh0V2hlblNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBvbk5leHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdkJykgbmdiRGF0ZXBpY2tlciE6IE5nYklucHV0RGF0ZXBpY2tlcjtcclxuICBAVmlld0NoaWxkKCd0cCcpIHRpbWVQaWNrZXIhOiBOZ2JUaW1lcGlja2VyO1xyXG4gIEBWaWV3Q2hpbGQoJ2J0bk9wZW4nKSBidG5PcGVuITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdidG5DbGVhbicpIGJ0bkNsZWFuITogRWxlbWVudFJlZjtcclxuXHJcbiAgY29udHJvbHM/OiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgdG9kYXkgPSB0aGlzLmNhbGVuZGFyLmdldFRvZGF5KCk7XHJcbiAgZGF0ZTogTmdiRGF0ZVN0cnVjdCB8IGFueSA9IHRoaXMudG9kYXk7XHJcbiAgdGltZTogTmdiVGltZVN0cnVjdCA9IHtcclxuICAgIGhvdXI6IG5ldyBEYXRlKCkuZ2V0SG91cnMoKSxcclxuICAgIG1pbnV0ZTogbmV3IERhdGUoKS5nZXRNaW51dGVzKCksXHJcbiAgICBzZWNvbmQ6IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpLFxyXG4gIH07XHJcbiAgaW5wdXQ6IGFueSA9IG5ldyBEYXRlVGltZU1vZGVsKE9iamVjdC5hc3NpZ24odGhpcy5kYXRlLCB0aGlzLnRpbWUpKTtcclxuICBpc0Rpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIF90ZW1wVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIF9pbml0VmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhbGVuZGFyOiBOZ2JDYWxlbmRhcixcclxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSBkYXRlVGltZVBpY2tlclNlcnZpY2U6IERhdGVUaW1lUGlja2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlbmRlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmlucHV0RGF0ZXRpbWVGb3JtYXQgPVxyXG4gICAgICB0aGlzLmRhdGVUaW1lUGlja2VyU2VydmljZS5nZXRJbnB1dERhdGV0aW1lRm9ybWF0KCk7XHJcbiAgICB0aGlzLnNob3dMYWJlbCA9IHRoaXMuZGF0ZVRpbWVQaWNrZXJTZXJ2aWNlLmdldFNob3dMYWJlbCgpO1xyXG4gICAgdGhpcy5vcGVuV2hlbkZvY3VzID0gdGhpcy5kYXRlVGltZVBpY2tlclNlcnZpY2UuZ2V0T3BlbldoZW5Gb2N1cygpO1xyXG4gICAgdGhpcy5nb05leHRXaGVuU2VsZWN0ID0gdGhpcy5kYXRlVGltZVBpY2tlclNlcnZpY2UuZ2V0R29OZXh0V2hlblNlbGVjdCgpO1xyXG4gICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdGhpcy5kYXRlVGltZVBpY2tlclNlcnZpY2UuZ2V0VmFsaWRhdG9yTWVzc2FnZSgpO1xyXG4gICAgdGhpcy50b29sdGlwTWVzc2FnZSA9IHRoaXMuZGF0ZVRpbWVQaWNrZXJTZXJ2aWNlLmdldFRvb2x0aXBNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRoaXMuZGF0ZVRpbWVQaWNrZXJTZXJ2aWNlLmdldFN1Ym1pdHRlZCgpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcclxuICBvblZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7fTtcclxuICBvblRvdWNoID0gKCkgPT4ge307XHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmJ0bk9wZW4ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5ICYmIHRoaXMub3BlbldoZW5Gb2N1cykge1xyXG4gICAgICB0aGlzLm5nYkRhdGVwaWNrZXIub3BlbigpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydzdWJtaXR0ZWQnXSkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9scyAhPT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbJ3N1Ym1pdHRlZCddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzRGlydHkoKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICAvLyBvbkRhdGVTZWxlY3QoZXZ0OiBhbnkpIHtcclxuICAvL3RoaXMubmdiRGF0ZXBpY2tlci5jbG9zZSgpO1xyXG4gIC8vIGlmICh0aGlzLmdvTmV4dFdoZW5TZWxlY3QpIHtcclxuICAvLyBcdHRoaXMuZ29OZXh0KCk7XHJcbiAgLy8gfVxyXG4gIC8vY29uc29sZS5sb2coZXZ0KTtcclxuICAvLyB9XHJcblxyXG4gIGZvY3VzT3V0KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuYXJpYUxhYmVsID09ICdNaW51dGVzJykge1xyXG4gICAgICB0aGlzLm5nYkRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICAgICAgaWYgKHRoaXMuZ29OZXh0V2hlblNlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuZ29OZXh0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW9kZWxEYXRlQ2hhbmdlKGV2dDogTmdiRGF0ZVN0cnVjdCB8IE5nYlRpbWVTdHJ1Y3QpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXQgPSBuZXcgRGF0ZVRpbWVNb2RlbChPYmplY3QuYXNzaWduKHRoaXMuZGF0ZSwgdGhpcy50aW1lKSk7XHJcbiAgICBjb25zdCBlbWl0VmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmlucHV0LCAneXl5eS1NTS1kZFRISDptbScpO1xyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGVtaXRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBsaW1waWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlID0gbnVsbDtcclxuICAgIHRoaXMudGltZSA9IHsgbWludXRlOiAwLCBob3VyOiAwLCBzZWNvbmQ6IDAgfTtcclxuICAgIHRoaXMuaW5wdXQgPSBudWxsO1xyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShuZXdNb2RlbDogYW55KTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLmlucHV0ID0gbmV3IERhdGVUaW1lTW9kZWwoT2JqZWN0LmFzc2lnbih0aGlzLmRhdGUsIHRoaXMudGltZSkpO1xyXG4gICAgaWYgKG5ld01vZGVsKSB7XHJcbiAgICAgIC8vIHRoaXMuaW5wdXQgPSBPYmplY3QuYXNzaWduKCF0aGlzLmlucHV0LCBEYXRlVGltZU1vZGVsLmZyb21Mb2NhbFN0cmluZyhuZXdNb2RlbCkpO1xyXG4gICAgICBpZiAoIXRoaXMuaW5wdXQpIHtcclxuICAgICAgICB0aGlzLmlucHV0ID0gRGF0ZVRpbWVNb2RlbC5mcm9tTG9jYWxTdHJpbmcobmV3TW9kZWwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW5wdXQgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgICAgdGhpcy5pbnB1dCxcclxuICAgICAgICAgIERhdGVUaW1lTW9kZWwuZnJvbUxvY2FsU3RyaW5nKG5ld01vZGVsKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuaW5wdXQ7XHJcbiAgICAgIHRoaXMudGltZSA9IHtcclxuICAgICAgICBob3VyOiB0aGlzLmlucHV0LmhvdXIsXHJcbiAgICAgICAgbWludXRlOiB0aGlzLmlucHV0Lm1pbnV0ZSxcclxuICAgICAgICBzZWNvbmQ6IHRoaXMuaW5wdXQuc2Vjb25kLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5fdGVtcFZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5pbnB1dCwgJ3l5eXktTU0tZGRUSEg6bW0nKTtcclxuICAgICAgLy8gdGhpcy5vblRvdWNoKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9scykge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRyb2xzLCAndmFsdWUnLCB0aGlzLl90ZW1wVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBBZ3JlZ3VlIGVsIGxpbXBpYXIgcGFyYSBxdWUgY2FyZ3VlIHZhY2lvIHNpIHNlIGxlIHNldGVhIHZhY2lvIG8gbnVsbFxyXG4gICAgICB0aGlzLmxpbXBpYXIoKTtcclxuICAgICAgLy8gdGhpcy5pbnB1dCA9IG5ldyBEYXRlVGltZU1vZGVsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBhbnkge1xyXG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2w7XHJcblxyXG4gICAgaWYgKCF0aGlzLl9pbml0VmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMuX3RlbXBWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eShjb250cm9sLCAndmFsdWUnLCB0aGlzLl90ZW1wVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2luaXRWYWx1ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2U/KGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb3BlbihkOiBOZ2JJbnB1dERhdGVwaWNrZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlucHV0ID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZGF0ZSA9IHRoaXMudG9kYXk7XHJcbiAgICAgIHRoaXMudGltZSA9IHtcclxuICAgICAgICBob3VyOiBuZXcgRGF0ZSgpLmdldEhvdXJzKCksXHJcbiAgICAgICAgbWludXRlOiBuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKSxcclxuICAgICAgICBzZWNvbmQ6IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmlucHV0ID0gbmV3IERhdGVUaW1lTW9kZWwoT2JqZWN0LmFzc2lnbih0aGlzLmRhdGUsIHRoaXMudGltZSkpO1xyXG4gICAgICBjb25zdCBlbWl0VmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmlucHV0LCAneXl5eS1NTS1kZFRISDptbScpO1xyXG4gICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZShlbWl0VmFsdWUpO1xyXG4gICAgfVxyXG4gICAgLy9hYnJpciBlbCBkYXRldGltZVxyXG4gICAgZC5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBnb05leHQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZXh0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5uZXh0LmRpc2FibGVkIHx8IHRoaXMubmV4dC5yZWFkb25seSkge1xyXG4gICAgICAgIGlmICh0aGlzLm5leHRJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLm5leHRJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5uZXh0LmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLm5leHRJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vbk5leHQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb0JhY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5iYWNrICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5iYWNrLmRpc2FibGVkIHx8IHRoaXMuYmFjay5yZWFkb25seSkge1xyXG4gICAgICAgIGlmICh0aGlzLmJhY2tJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmJhY2tJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5iYWNrLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2tJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vbkJhY2suZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxsYWJlbFxyXG4gICpuZ0lmPVwibGFiZWwgIT0gbnVsbCAmJiBsYWJlbCAhPSAnJyAmJiBzaG93TGFiZWxcIlxyXG4gIGNsYXNzPVwiZC1mbGV4IHN1bWF4LWxhYmVsIG1iLTAgcC0wXCJcclxuICA+PHNwYW4gW3RpdGxlXT1cImxhYmVsXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcIj57e2xhYmVsfX08L3NwYW4+XHJcblx0PHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwibXMtMVwiXHJcblx0XHRbY2xhc3MudGV4dC1kYW5nZXJdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsXCI+ICo8L3NwYW4+XHJcblx0PHNwYW4gKm5nSWY9XCJsYWJlbEluZm9cIj5cclxuXHRcdDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tY2lyY2xlIHRleHQtaW5mbyBtcy0yXCIgW21hdFRvb2x0aXBdPVwidGV4dExhYmVsSW5mb1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcblx0PC9zcGFuPlxyXG4gIDwvbGFiZWxcclxuPlxyXG48ZGl2XHJcbiAgW2NsYXNzLmlucHV0LWljb25dPVwiXHJcbiAgICBjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiZcclxuICAgIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmXHJcbiAgICBzdWJtaXR0ZWRcclxuICBcIlxyXG4gIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIlxyXG4gIFtjbGFzcy5yaWdodF09XCJcclxuICAgIGNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJlxyXG4gICAgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiZcclxuICAgIHN1Ym1pdHRlZFxyXG4gIFwiXHJcbj5cclxuICA8IS0tIHRvb2x0aXAtbWVzc2FnZSBlcyBlbCBpY29ubyBkZSBlcnJvciAtLT5cclxuXHJcbiAgPHRvb2x0aXAtbWVzc2FnZVxyXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgIFtjb250cm9sc109XCJjb250cm9sc1wiXHJcbiAgICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICAgIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgPjwvdG9vbHRpcC1tZXNzYWdlPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBtci0yIFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIG5hbWU9XCJpbnB1dFwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICBbbmdNb2RlbF09XCJpbnB1dCB8IGRhdGU6IGlucHV0RGF0ZXRpbWVGb3JtYXRcIlxyXG4gICAgLz5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cImRkL21tL3l5eXlcIlxyXG4gICAgICBuYW1lPVwiZHBcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImRhdGVcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxyXG4gICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICNkPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAvPlxyXG4gICAgPCEtLSAoZGF0ZVNlbGVjdCk9XCJvbkRhdGVTZWxlY3QoJGV2ZW50KVwiIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgI2J0bk9wZW5cclxuICAgICAgICBjbGFzcz1cImJ0biBidG4taW5mbyBwLTAgcm91bmRlZC0wIGgtMTAwXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCByZWFkb25seVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW4oZClcIlxyXG4gICAgICAgIChrZXl1cC5BcnJvd0xlZnQpPVwiZ29CYWNrKClcIlxyXG4gICAgICAgIChrZXl1cC5BcnJvd1JpZ2h0KT1cImJ0bkNsZWFuLmZvY3VzKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSA8bWF0LWljb24gY2xhc3M9XCJ0ZXh0LXdoaXRlIHB0LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIiBbbWF0VG9vbHRpcF09XCInQ2FsZW5kYXJpbydcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+Y2FsZW5kYXJfdG9kYXk8L21hdC1pY29uPiAtLT5cclxuICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImZhIGZhLWNhbGVuZGFyIHRleHQtbGlnaHQgcHgtMSBcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgI2J0bkNsZWFuXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBwLTAgcm91bmRlZC0wIGxpbXBpYXIgaC0xMDBcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAoY2xpY2spPVwibGltcGlhcigpXCJcclxuICAgICAgICAoa2V5dXAuQXJyb3dMZWZ0KT1cImJ0bk9wZW4uZm9jdXMoKVwiXHJcbiAgICAgICAgKGtleXVwLkFycm93UmlnaHQpPVwiZ29OZXh0KClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSA8bWF0LWljb24gY2xhc3M9XCJ0ZXh0LXdoaXRlIHB0LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIiBbbWF0VG9vbHRpcF09XCInTGltcGlhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1kYW5nZXJcIj5jbG9zZTwvbWF0LWljb24+IC0tPlxyXG4gICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZmEgZmEtdGltZXMgcHgtMSB0ZXh0LWxpZ2h0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgPGhyIGNsYXNzPVwibXktMFwiIC8+XHJcbiAgPG5nYi10aW1lcGlja2VyXHJcbiAgICAjdHBcclxuICAgIFsobmdNb2RlbCldPVwidGltZVwiXHJcbiAgICBuYW1lPVwidGltZXBpY2tlclwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChmb2N1c291dCk9XCJmb2N1c091dCgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9uZ2ItdGltZXBpY2tlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPCEtLSBlcnJvci1tZXNzYWdlIGVzIGVsIG1hbnNhamUgcXVlIGFwYXJlY2UgYWJham8gZGVsIGNvbXBvbmVudGUgLS0+XHJcbjxlcnJvci1tZXNzYWdlXHJcbiAgW2xhYmVsXT1cImxhYmVsXCJcclxuICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gIFt2YWxpZGF0b3JNZXNzYWdlXT1cInZhbGlkYXRvck1lc3NhZ2VcIlxyXG4gIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgW3N1Ym1pdHRlZF09XCJzdWJtaXR0ZWRcIlxyXG4+PC9lcnJvci1tZXNzYWdlPlxyXG4iXX0=