@salutejs/plasma-new-hope 0.336.0-canary.2220.17591054284.0 → 0.336.0-canary.2222.17612018746.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.css +0 -2
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.css +0 -2
  3. package/cjs/components/Combobox/ComboboxNew/Combobox.js +50 -27
  4. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  5. package/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +4 -1
  6. package/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js.map +1 -1
  7. package/cjs/components/Combobox/ComboboxNew/utils/getRemovedElement.js +17 -0
  8. package/cjs/components/Combobox/ComboboxNew/utils/getRemovedElement.js.map +1 -0
  9. package/cjs/components/DatePicker/RangeDate/RangeDate.css +0 -2
  10. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +0 -2
  11. package/cjs/components/DatePicker/SingleDate/SingleDate.css +0 -2
  12. package/cjs/components/Drawer/Drawer.css +2 -2
  13. package/cjs/components/Drawer/Drawer.js +10 -7
  14. package/cjs/components/Drawer/Drawer.js.map +1 -1
  15. package/cjs/components/Drawer/Drawer.styles.js +10 -2
  16. package/cjs/components/Drawer/Drawer.styles.js.map +1 -1
  17. package/cjs/components/Drawer/{Drawer.styles_h5od79.css → Drawer.styles_pltzxq.css} +1 -1
  18. package/cjs/components/Drawer/Drawer.tokens.js +10 -0
  19. package/cjs/components/Drawer/Drawer.tokens.js.map +1 -1
  20. package/cjs/components/Pagination/Pagination.css +0 -2
  21. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +0 -2
  22. package/cjs/components/Range/Range.css +0 -2
  23. package/cjs/components/Select/Select.css +0 -2
  24. package/cjs/components/Select/ui/Target/Target.css +0 -2
  25. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.css +0 -2
  26. package/cjs/components/Slider/Slider.css +0 -2
  27. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +0 -2
  28. package/cjs/components/Table/Table.css +0 -2
  29. package/cjs/components/Table/ui/Cell/Cell.css +0 -2
  30. package/cjs/components/Table/ui/EditableCell/EditableCell.css +0 -2
  31. package/cjs/components/Table/ui/HeadCell/HeadCell.css +0 -2
  32. package/cjs/components/Table/ui/HeadCell/ui/Filter/Filter.css +0 -2
  33. package/cjs/components/TextField/TextField.js +3 -14
  34. package/cjs/components/TextField/TextField.js.map +1 -1
  35. package/cjs/engines/common.js +11 -1
  36. package/cjs/engines/common.js.map +1 -1
  37. package/cjs/index.css +2 -4
  38. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +58 -26
  39. package/emotion/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +5 -2
  40. package/emotion/cjs/components/Combobox/ComboboxNew/utils/getRemovedElement.js +20 -0
  41. package/emotion/cjs/components/Combobox/ComboboxNew/utils/index.js +4 -0
  42. package/emotion/cjs/components/Drawer/Drawer.js +13 -4
  43. package/emotion/cjs/components/Drawer/Drawer.styles.js +7 -4
  44. package/emotion/cjs/components/Drawer/Drawer.tokens.js +12 -0
  45. package/emotion/cjs/components/TextField/TextField.js +4 -16
  46. package/emotion/cjs/components/TextField/ui/index.js +3 -12
  47. package/emotion/cjs/engines/common.js +14 -1
  48. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +59 -27
  49. package/emotion/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +5 -2
  50. package/emotion/es/components/Combobox/ComboboxNew/utils/getRemovedElement.js +10 -0
  51. package/emotion/es/components/Combobox/ComboboxNew/utils/index.js +1 -0
  52. package/emotion/es/components/Drawer/Drawer.js +9 -5
  53. package/emotion/es/components/Drawer/Drawer.styles.js +8 -5
  54. package/emotion/es/components/Drawer/Drawer.tokens.js +9 -0
  55. package/emotion/es/components/TextField/TextField.js +5 -17
  56. package/emotion/es/components/TextField/ui/index.js +0 -1
  57. package/emotion/es/engines/common.js +14 -1
  58. package/es/components/Autocomplete/Autocomplete.css +0 -2
  59. package/es/components/Combobox/ComboboxNew/Combobox.css +0 -2
  60. package/es/components/Combobox/ComboboxNew/Combobox.js +51 -28
  61. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  62. package/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +4 -1
  63. package/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js.map +1 -1
  64. package/es/components/Combobox/ComboboxNew/utils/getRemovedElement.js +13 -0
  65. package/es/components/Combobox/ComboboxNew/utils/getRemovedElement.js.map +1 -0
  66. package/es/components/DatePicker/RangeDate/RangeDate.css +0 -2
  67. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +0 -2
  68. package/es/components/DatePicker/SingleDate/SingleDate.css +0 -2
  69. package/es/components/Drawer/Drawer.css +2 -2
  70. package/es/components/Drawer/Drawer.js +8 -6
  71. package/es/components/Drawer/Drawer.js.map +1 -1
  72. package/es/components/Drawer/Drawer.styles.js +10 -2
  73. package/es/components/Drawer/Drawer.styles.js.map +1 -1
  74. package/es/components/Drawer/{Drawer.styles_h5od79.css → Drawer.styles_pltzxq.css} +1 -1
  75. package/es/components/Drawer/Drawer.tokens.js +10 -1
  76. package/es/components/Drawer/Drawer.tokens.js.map +1 -1
  77. package/es/components/Pagination/Pagination.css +0 -2
  78. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +0 -2
  79. package/es/components/Range/Range.css +0 -2
  80. package/es/components/Select/Select.css +0 -2
  81. package/es/components/Select/ui/Target/Target.css +0 -2
  82. package/es/components/Select/ui/Target/ui/Textfield/Textfield.css +0 -2
  83. package/es/components/Slider/Slider.css +0 -2
  84. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.css +0 -2
  85. package/es/components/Table/Table.css +0 -2
  86. package/es/components/Table/ui/Cell/Cell.css +0 -2
  87. package/es/components/Table/ui/EditableCell/EditableCell.css +0 -2
  88. package/es/components/Table/ui/HeadCell/HeadCell.css +0 -2
  89. package/es/components/Table/ui/HeadCell/ui/Filter/Filter.css +0 -2
  90. package/es/components/TextField/TextField.js +3 -14
  91. package/es/components/TextField/TextField.js.map +1 -1
  92. package/es/engines/common.js +12 -2
  93. package/es/engines/common.js.map +1 -1
  94. package/es/index.css +2 -4
  95. package/package.json +2 -2
  96. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +58 -26
  97. package/styled-components/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +5 -2
  98. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/getRemovedElement.js +20 -0
  99. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/index.js +4 -0
  100. package/styled-components/cjs/components/Drawer/Drawer.js +13 -4
  101. package/styled-components/cjs/components/Drawer/Drawer.styles.js +14 -4
  102. package/styled-components/cjs/components/Drawer/Drawer.tokens.js +12 -0
  103. package/styled-components/cjs/components/TextField/TextField.js +3 -15
  104. package/styled-components/cjs/components/TextField/ui/index.js +3 -12
  105. package/styled-components/cjs/engines/common.js +14 -1
  106. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +59 -27
  107. package/styled-components/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +5 -2
  108. package/styled-components/es/components/Combobox/ComboboxNew/utils/getRemovedElement.js +10 -0
  109. package/styled-components/es/components/Combobox/ComboboxNew/utils/index.js +1 -0
  110. package/styled-components/es/components/Drawer/Drawer.js +9 -5
  111. package/styled-components/es/components/Drawer/Drawer.styles.js +15 -5
  112. package/styled-components/es/components/Drawer/Drawer.tokens.js +9 -0
  113. package/styled-components/es/components/TextField/TextField.js +4 -16
  114. package/styled-components/es/components/TextField/ui/index.js +0 -1
  115. package/styled-components/es/engines/common.js +14 -1
  116. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  117. package/types/components/Combobox/ComboboxNew/hooks/getPathMaps.d.ts +2 -1
  118. package/types/components/Combobox/ComboboxNew/hooks/getPathMaps.d.ts.map +1 -1
  119. package/types/components/Combobox/ComboboxNew/utils/getRemovedElement.d.ts +2 -0
  120. package/types/components/Combobox/ComboboxNew/utils/getRemovedElement.d.ts.map +1 -0
  121. package/types/components/Combobox/ComboboxNew/utils/index.d.ts +1 -0
  122. package/types/components/Combobox/ComboboxNew/utils/index.d.ts.map +1 -1
  123. package/types/components/Drawer/Drawer.d.ts +2 -0
  124. package/types/components/Drawer/Drawer.d.ts.map +1 -1
  125. package/types/components/Drawer/Drawer.styles.d.ts +2 -1
  126. package/types/components/Drawer/Drawer.styles.d.ts.map +1 -1
  127. package/types/components/Drawer/Drawer.tokens.d.ts +9 -0
  128. package/types/components/Drawer/Drawer.tokens.d.ts.map +1 -1
  129. package/types/components/Drawer/Drawer.types.d.ts +16 -0
  130. package/types/components/Drawer/Drawer.types.d.ts.map +1 -1
  131. package/types/components/NumberFormat/NumberFormat.d.ts.map +1 -1
  132. package/types/components/NumberFormat/NumberFormat.types.d.ts +1 -1
  133. package/types/components/TextField/TextField.d.ts.map +1 -1
  134. package/types/components/TextField/TextField.types.d.ts +2 -2
  135. package/types/components/TextField/ui/index.d.ts +0 -1
  136. package/types/components/TextField/ui/index.d.ts.map +1 -1
  137. package/types/engines/common.d.ts.map +1 -1
  138. package/types/examples/components/Drawer/Drawer.d.ts +1 -0
  139. package/types/examples/components/Drawer/Drawer.d.ts.map +1 -1
  140. package/types/examples/components/NumberFormat/NumberFormat.d.ts.map +1 -1
  141. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.css +0 -54
  142. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +0 -74
  143. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js.map +0 -1
  144. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +0 -25
  145. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js.map +0 -1
  146. package/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles_119gtz1.css +0 -1
  147. package/emotion/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +0 -69
  148. package/emotion/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +0 -32
  149. package/emotion/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +0 -54
  150. package/emotion/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +0 -18
  151. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.css +0 -54
  152. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +0 -66
  153. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js.map +0 -1
  154. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +0 -21
  155. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js.map +0 -1
  156. package/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles_119gtz1.css +0 -1
  157. package/styled-components/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +0 -69
  158. package/styled-components/cjs/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +0 -87
  159. package/styled-components/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.js +0 -54
  160. package/styled-components/es/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.js +0 -73
  161. package/types/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.d.ts +0 -19
  162. package/types/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.d.ts.map +0 -1
  163. package/types/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.d.ts +0 -2
  164. package/types/components/TextField/ui/TextFieldChipNew/TextFieldChipNew.styles.d.ts.map +0 -1
@@ -6,6 +6,9 @@ function _array_like_to_array(arr, len) {
6
6
  function _array_with_holes(arr) {
7
7
  if (Array.isArray(arr)) return arr;
8
8
  }
9
+ function _array_without_holes(arr) {
10
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
11
+ }
9
12
  function _define_property(obj, key, value) {
10
13
  if (key in obj) {
11
14
  Object.defineProperty(obj, key, {
@@ -19,6 +22,9 @@ function _define_property(obj, key, value) {
19
22
  }
20
23
  return obj;
21
24
  }
25
+ function _iterable_to_array(iter) {
26
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
27
+ }
22
28
  function _iterable_to_array_limit(arr, i) {
23
29
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
24
30
  if (_i == null) return;
@@ -46,6 +52,9 @@ function _iterable_to_array_limit(arr, i) {
46
52
  function _non_iterable_rest() {
47
53
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
48
54
  }
55
+ function _non_iterable_spread() {
56
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
57
+ }
49
58
  function _object_spread(target) {
50
59
  for(var i = 1; i < arguments.length; i++){
51
60
  var source = arguments[i] != null ? arguments[i] : {};
@@ -115,6 +124,9 @@ function _object_without_properties_loose(source, excluded) {
115
124
  function _sliced_to_array(arr, i) {
116
125
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
117
126
  }
127
+ function _to_consumable_array(arr) {
128
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
129
+ }
118
130
  function _type_of(obj) {
119
131
  "@swc/helpers - typeof";
120
132
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -135,7 +147,7 @@ import { sizeToIconSize } from "../../Select/utils";
135
147
  import { classes } from "./Combobox.tokens";
136
148
  import { FloatingPopover } from "./FloatingPopover";
137
149
  import { useKeyNavigation, getItemByFocused } from "./hooks/useKeyboardNavigation";
138
- import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, filterItems, getItemId, getTextValue } from "./utils";
150
+ import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, filterItems, getItemId, getRemovedElement, getTextValue } from "./utils";
139
151
  import { Inner, StyledTextField, VirtualList, SelectAll } from "./ui";
140
152
  import { pathReducer, focusedPathReducer } from "./reducers";
141
153
  import { getPathMap, getTreeMaps } from "./hooks/getPathMaps";
@@ -206,7 +218,7 @@ import { Context } from "./Combobox.context";
206
218
  return getTreeMaps(transformedItems);
207
219
  }, [
208
220
  items
209
- ]), 2), valueToCheckedMap = _useMemo[0], valueToItemMap = _useMemo[1];
221
+ ]), 3), valueToCheckedMap = _useMemo[0], valueToItemMap = _useMemo[1], labelToItemMap = _useMemo[2];
210
222
  var _useState = _sliced_to_array(useState(getTextValue(multiple, outerValue, valueToItemMap, renderValue)), 2), textValue = _useState[0], setTextValue = _useState[1];
211
223
  var _useState1 = _sliced_to_array(useState(multiple ? [] : ''), 2), internalValue = _useState1[0], setInternalValue = _useState1[1];
212
224
  var value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;
@@ -294,14 +306,39 @@ import { Context } from "./Combobox.context";
294
306
  }
295
307
  };
296
308
  // Обработчик чипов
297
- var handleChipClick = function(chip) {
309
+ var handleChipsChange = function(chipLabels) {
298
310
  if (!Array.isArray(value)) return;
299
- if (isTargetAmount) {
300
- onChange([]);
311
+ // TODO: #1564
312
+ // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.
313
+ if (renderValue && !isTargetAmount) {
314
+ var resultValues = _to_consumable_array(value);
315
+ value.forEach(function(_, index) {
316
+ var _valueToItemMap_get;
317
+ var stringValue = value[index];
318
+ var label = (_valueToItemMap_get = valueToItemMap.get(stringValue)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label;
319
+ var labelAfterRenderValue = renderValue(label ? labelToItemMap.get(label) : {
320
+ value: stringValue,
321
+ label: stringValue.toString()
322
+ });
323
+ if (!chipLabels.includes(labelAfterRenderValue)) {
324
+ resultValues.splice(index, 1);
325
+ }
326
+ });
327
+ var removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);
328
+ onChange(resultValues, removedItemValue ? valueToItemMap.get(removedItemValue) || {
329
+ value: removedItemValue,
330
+ label: removedItemValue.toString()
331
+ } : null);
301
332
  } else {
302
- onChange(value.filter(function(val) {
303
- return val !== chip.value;
304
- }), valueToItemMap.get(chip.value) || null);
333
+ var newValues = chipLabels.map(function(chipLabel) {
334
+ var _labelToItemMap_get;
335
+ return ((_labelToItemMap_get = labelToItemMap.get(chipLabel)) === null || _labelToItemMap_get === void 0 ? void 0 : _labelToItemMap_get.value) || chipLabel;
336
+ });
337
+ var removedItemValue1 = getRemovedElement(value, newValues, isTargetAmount);
338
+ onChange(newValues, removedItemValue1 ? valueToItemMap.get(removedItemValue1) || {
339
+ value: removedItemValue1,
340
+ label: removedItemValue1.toString()
341
+ } : null);
305
342
  }
306
343
  };
307
344
  // Обработчик открытия/закрытия выпадающего списка
@@ -405,25 +442,20 @@ import { Context } from "./Combobox.context";
405
442
  if (value.length === 0) return [];
406
443
  if (isTargetAmount) {
407
444
  return [
408
- {
409
- value: '_removeAll',
410
- label: "Выбрано ".concat(targetAmount || value.length),
411
- disabled: false
412
- }
445
+ "Выбрано ".concat(targetAmount || value.length)
413
446
  ];
414
447
  }
415
- return value.map(function(value) {
416
- var _valueToItemMap_get, _valueToItemMap_get1;
417
- var currentLabel = renderValue ? renderValue(valueToItemMap.get(value) || {
418
- value: value,
419
- label: value
420
- }) : ((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || value.toString();
421
- return {
422
- value: value,
423
- label: currentLabel,
424
- disabled: ((_valueToItemMap_get1 = valueToItemMap.get(value)) === null || _valueToItemMap_get1 === void 0 ? void 0 : _valueToItemMap_get1.disabled) || false
425
- };
426
- });
448
+ var renderValueMapper = renderValue && function(stringValue) {
449
+ return renderValue(valueToItemMap.get(stringValue) || {
450
+ value: stringValue,
451
+ label: stringValue.toString()
452
+ });
453
+ };
454
+ var valueToItemMapper = function(stringValue) {
455
+ var _valueToItemMap_get;
456
+ return ((_valueToItemMap_get = valueToItemMap.get(stringValue)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || stringValue.toString();
457
+ };
458
+ return value.map(renderValueMapper || valueToItemMapper);
427
459
  }
428
460
  return [];
429
461
  };
@@ -580,8 +612,8 @@ import { Context } from "./Combobox.context";
580
612
  keepPlaceholder: keepPlaceholder
581
613
  }, multiple ? {
582
614
  enumerationType: 'chip',
583
- _chips: getChips(),
584
- _onChipClick: handleChipClick
615
+ chips: getChips(),
616
+ onChangeChips: handleChipsChange
585
617
  } : {
586
618
  enumerationType: 'plain'
587
619
  }, rest), {
@@ -24,14 +24,16 @@ export var getPathMap = function(items) {
24
24
  export var getTreeMaps = function(items) {
25
25
  var valueToCheckedMap = new Map();
26
26
  var valueToItemMap = new Map();
27
+ var labelToItemMap = new Map();
27
28
  var rec = function(items) {
28
29
  var prevIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : '';
29
30
  items === null || items === void 0 ? void 0 : items.forEach(function(item, index) {
30
- var value = item.value, innerItems = item.items;
31
+ var value = item.value, label = item.label, innerItems = item.items;
31
32
  var currIndex = "".concat(prevIndex, "/").concat(index).replace(/^(\/)/, '');
32
33
  valueToCheckedMap.set(value, false);
33
34
  if (isEmpty(innerItems) || !innerItems) {
34
35
  valueToItemMap.set(value, item);
36
+ labelToItemMap.set(label, item);
35
37
  } else {
36
38
  rec(innerItems, currIndex);
37
39
  }
@@ -40,6 +42,7 @@ export var getTreeMaps = function(items) {
40
42
  rec(items);
41
43
  return [
42
44
  valueToCheckedMap,
43
- valueToItemMap
45
+ valueToItemMap,
46
+ labelToItemMap
44
47
  ];
45
48
  };
@@ -0,0 +1,10 @@
1
+ // Утилита для определения какой чип был удален
2
+ export var getRemovedElement = function(prevValues, newValues) {
3
+ var isTargetAmount = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
4
+ if (isTargetAmount) {
5
+ return null;
6
+ }
7
+ return prevValues.filter(function(item) {
8
+ return !newValues.includes(item);
9
+ })[0] || null;
10
+ };
@@ -5,4 +5,5 @@ export { updateSingleAncestors } from "./updateSingleAncestors";
5
5
  export { sizeToIconSize } from "./sizeToIconSize";
6
6
  export { filterItems } from "./filterItems";
7
7
  export { getItemId } from "./getItemId";
8
+ export { getRemovedElement } from "./getRemovedElement";
8
9
  export { getTextValue } from "./getTextValue";
@@ -54,8 +54,9 @@ function _object_without_properties_loose(source, excluded) {
54
54
  return target;
55
55
  }
56
56
  import React, { forwardRef, useMemo } from "react";
57
+ import cls from "classnames";
57
58
  import { useForkRef } from "@salutejs/plasma-core";
58
- import { cx, getSizeValueFromProp, safeUseId } from "../../utils";
59
+ import { getSizeValueFromProp, safeUseId } from "../../utils";
59
60
  import { usePopupContext } from "../Popup";
60
61
  import { Overlay } from "../Overlay";
61
62
  import { DEFAULT_Z_INDEX } from "../Popup/utils";
@@ -70,7 +71,7 @@ import { useDrawer } from "./hooks";
70
71
  // issue #823
71
72
  export var drawerRoot = function(Root) {
72
73
  return /*#__PURE__*/ forwardRef(function(_param, outerRef) {
73
- var id = _param.id, zIndex = _param.zIndex, popupInfo = _param.popupInfo, withBlur = _param.withBlur, children = _param.children, view = _param.view, size = _param.size, width = _param.width, height = _param.height, isOpen = _param.isOpen, opened = _param.opened, initialFocusRef = _param.initialFocusRef, focusAfterRef = _param.focusAfterRef, className = _param.className, customBackgroundColor = _param.customBackgroundColor, customContentBackgroundColor = _param.customContentBackgroundColor, onClose = _param.onClose, onOverlayClick = _param.onOverlayClick, onEscKeyDown = _param.onEscKeyDown, offset = _param.offset, frame = _param.frame, _param_borderRadius = _param.borderRadius, borderRadius = _param_borderRadius === void 0 ? 'none' : _param_borderRadius, _param_placement = _param.placement, placement = _param_placement === void 0 ? 'right' : _param_placement, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, _param_asModal = _param.asModal, asModal = _param_asModal === void 0 ? true : _param_asModal, draggable = _param.draggable, rest = _object_without_properties(_param, [
74
+ var id = _param.id, zIndex = _param.zIndex, popupInfo = _param.popupInfo, withBlur = _param.withBlur, children = _param.children, view = _param.view, size = _param.size, width = _param.width, height = _param.height, isOpen = _param.isOpen, opened = _param.opened, initialFocusRef = _param.initialFocusRef, focusAfterRef = _param.focusAfterRef, animationInfo = _param.animationInfo, className = _param.className, customBackgroundColor = _param.customBackgroundColor, customContentBackgroundColor = _param.customContentBackgroundColor, onClose = _param.onClose, onOverlayClick = _param.onOverlayClick, onEscKeyDown = _param.onEscKeyDown, offset = _param.offset, frame = _param.frame, _param_borderRadius = _param.borderRadius, borderRadius = _param_borderRadius === void 0 ? 'none' : _param_borderRadius, _param_placement = _param.placement, placement = _param_placement === void 0 ? 'right' : _param_placement, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, _param_asModal = _param.asModal, asModal = _param_asModal === void 0 ? true : _param_asModal, draggable = _param.draggable, rest = _object_without_properties(_param, [
74
75
  "id",
75
76
  "zIndex",
76
77
  "popupInfo",
@@ -84,6 +85,7 @@ export var drawerRoot = function(Root) {
84
85
  "opened",
85
86
  "initialFocusRef",
86
87
  "focusAfterRef",
88
+ "animationInfo",
87
89
  "className",
88
90
  "customBackgroundColor",
89
91
  "customContentBackgroundColor",
@@ -133,10 +135,11 @@ export var drawerRoot = function(Root) {
133
135
  onClose();
134
136
  }
135
137
  };
138
+ var _obj;
136
139
  return /*#__PURE__*/ React.createElement(StyledPopup, _object_spread({
137
140
  id: innerId,
138
141
  ref: asModal ? innerRef : outerRef,
139
- className: cx(placementClass),
142
+ className: cls(placementClass, className, (_obj = {}, _define_property(_obj, classes.enterCustomAnimation, animationInfo === null || animationInfo === void 0 ? void 0 : animationInfo.enter), _define_property(_obj, classes.exitCustomAnimation, animationInfo === null || animationInfo === void 0 ? void 0 : animationInfo.exit), _obj)),
140
143
  opened: innerIsOpen,
141
144
  zIndex: zIndex,
142
145
  placement: placement,
@@ -146,6 +149,7 @@ export var drawerRoot = function(Root) {
146
149
  height: innerHeight,
147
150
  offset: offset,
148
151
  withAnimation: true,
152
+ drawerAnimationInfo: animationInfo,
149
153
  overlay: asModal && /*#__PURE__*/ React.createElement(Root, {
150
154
  view: view
151
155
  }, /*#__PURE__*/ React.createElement(Overlay, {
@@ -158,6 +162,7 @@ export var drawerRoot = function(Root) {
158
162
  onOverlayClick: onDrawerOverlayKeyDown
159
163
  }))
160
164
  }, rest), /*#__PURE__*/ React.createElement(Root, {
165
+ className: classes.panel,
161
166
  view: view,
162
167
  size: size,
163
168
  style: {
@@ -169,8 +174,7 @@ export var drawerRoot = function(Root) {
169
174
  width: innerWidth,
170
175
  height: innerHeight,
171
176
  customBackgroundColor: customBackgroundColor,
172
- customContentBackgroundColor: customContentBackgroundColor,
173
- className: className
177
+ customContentBackgroundColor: customContentBackgroundColor
174
178
  }, children)));
175
179
  });
176
180
  };
@@ -2,7 +2,7 @@ import styled from "@emotion/styled";
2
2
  import { component, mergeConfig } from "../../engines";
3
3
  import { popupClasses, popupConfig } from "../Popup";
4
4
  import { panelTokens, panelConfig } from "../Panel";
5
- import { classes, tokens } from "./Drawer.tokens";
5
+ import { classes, privateTokens, tokens } from "./Drawer.tokens";
6
6
  var mergedPanelConfig = mergeConfig(panelConfig);
7
7
  var Panel = component(mergedPanelConfig);
8
8
  var Popup = component(popupConfig);
@@ -58,11 +58,11 @@ var getAnimationStyles = function() {
58
58
  }, '');
59
59
  };
60
60
  export var StyledPanel = /*#__PURE__*/ styled(Panel, {
61
- target: "esjpvmp0",
61
+ target: "e1sh23y70",
62
62
  label: "StyledPanel"
63
- })(panelTokens.closeColor, ":var(", tokens.closeIconColor, ");", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnN0eWxlcy50cyIsInNvdXJjZXMiOlsic3JjLWVtb3Rpb24vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IGNvbXBvbmVudCwgbWVyZ2VDb25maWcgfSBmcm9tICcuLi8uLi9lbmdpbmVzJztcbmltcG9ydCB7IHBvcHVwQ2xhc3NlcywgcG9wdXBDb25maWcgfSBmcm9tICcuLi9Qb3B1cCc7XG5pbXBvcnQgeyBwYW5lbFRva2VucywgcGFuZWxDb25maWcgfSBmcm9tICcuLi9QYW5lbCc7XG5cbmltcG9ydCB0eXBlIHsgRHJhd2VyUGxhY2VtZW50IH0gZnJvbSAnLi9EcmF3ZXIudHlwZXMnO1xuaW1wb3J0IHsgY2xhc3NlcywgdG9rZW5zIH0gZnJvbSAnLi9EcmF3ZXIudG9rZW5zJztcblxuY29uc3QgbWVyZ2VkUGFuZWxDb25maWcgPSBtZXJnZUNvbmZpZyhwYW5lbENvbmZpZyk7XG5jb25zdCBQYW5lbCA9IGNvbXBvbmVudChtZXJnZWRQYW5lbENvbmZpZyk7XG5cbmNvbnN0IFBvcHVwID0gY29tcG9uZW50KHBvcHVwQ29uZmlnKTtcblxuY29uc3QgYW5pbWF0aW9uVmFyaWFudHMgPSB7XG4gICAgcmlnaHQ6IHtcbiAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMTAwJSwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDAsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICAgICAgaGlkZToge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDEwMCUsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGJvdHRvbToge1xuICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtNTAlLCAxMDAlKScsXG4gICAgICAgICAgICBlbmQ6ICd0cmFuc2xhdGUoLTUwJSwgMCknLFxuICAgICAgICB9LFxuICAgICAgICBoaWRlOiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtNTAlLCAwKScsXG4gICAgICAgICAgICBlbmQ6ICd0cmFuc2xhdGUoLTUwJSwgMTAwJSknLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgbGVmdDoge1xuICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtMTAwJSwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDAsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICAgICAgaGlkZToge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKC0xMDAlLCAtNTAlKScsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICB0b3A6IHtcbiAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoLTUwJSwgLTEwMCUpJyxcbiAgICAgICAgICAgIGVuZDogJ3RyYW5zbGF0ZSgtNTAlLCAwKScsXG4gICAgICAgIH0sXG4gICAgICAgIGhpZGU6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAndHJhbnNsYXRlKC01MCUsIDApJyxcbiAgICAgICAgICAgIGVuZDogJ3RyYW5zbGF0ZSgtNTAlLCAtMTAwJSknLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG5jb25zdCB0ZW1wbGF0ZUFuaW1hdGlvblN0eWxlID0gKHBsYWNlbWVudDogRHJhd2VyUGxhY2VtZW50KSA9PiBgXG4gICAgICAgICYuJHtjbGFzc2VzW2Ake3BsYWNlbWVudH1QbGFjZW1lbnRgIGFzIGtleW9mIHR5cGVvZiBjbGFzc2VzXX0ge1xuICAgICAgICAgICAgJiYgLiR7cG9wdXBDbGFzc2VzLnJvb3R9IHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246ICR7cGxhY2VtZW50fVNob3dBbmltYXRpb24gMC4ycyBmb3J3YXJkcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiYuJHtwb3B1cENsYXNzZXMuZW5kQW5pbWF0aW9ufSAuJHtwb3B1cENsYXNzZXMucm9vdH0ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogJHtwbGFjZW1lbnR9SGlkZUFuaW1hdGlvbiAwLjJzIGZvcndhcmRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAa2V5ZnJhbWVzICR7cGxhY2VtZW50fVNob3dBbmltYXRpb24ge1xuICAgICAgICAgICAgICAgIDAlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAke2FuaW1hdGlvblZhcmlhbnRzW3BsYWNlbWVudF0uc2hvdy5zdGFydH07XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJHthbmltYXRpb25WYXJpYW50c1twbGFjZW1lbnRdLnNob3cuZW5kfTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBrZXlmcmFtZXMgJHtwbGFjZW1lbnR9SGlkZUFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgICAgMCUge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICR7YW5pbWF0aW9uVmFyaWFudHNbcGxhY2VtZW50XS5oaWRlLnN0YXJ0fTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAke2FuaW1hdGlvblZhcmlhbnRzW3BsYWNlbWVudF0uaGlkZS5lbmR9O1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGA7XG5cbmNvbnN0IGdldEFuaW1hdGlvblN0eWxlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYW5pbWF0aW9uVmFyaWFudHMpLnJlZHVjZSgoYWNjLCBwbGFjZW1lbnQpID0+IHtcbiAgICAgICAgYWNjICs9IHRlbXBsYXRlQW5pbWF0aW9uU3R5bGUocGxhY2VtZW50IGFzIERyYXdlclBsYWNlbWVudCk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgJycpO1xufTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFBhbmVsID0gc3R5bGVkKFBhbmVsKWBcbiAgICAke3BhbmVsVG9rZW5zLmNsb3NlQ29sb3J9OiB2YXIoJHt0b2tlbnMuY2xvc2VJY29uQ29sb3J9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRQb3B1cCA9IHN0eWxlZChQb3B1cCk8e1xuICAgIHBsYWNlbWVudDogRHJhd2VyUGxhY2VtZW50O1xuICAgIHdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGhlaWdodD86IG51bWJlciB8IHN0cmluZztcbn0+YFxuICAgICYmLiR7Y2xhc3Nlcy5vdmVybGF5fSB7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZm9yd2FyZHM7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgICB9XG5cbiAgICAmJi4ke3BvcHVwQ2xhc3Nlcy5lbmRBbmltYXRpb259IC4ke2NsYXNzZXMub3ZlcmxheX0ge1xuICAgICAgICBhbmltYXRpb246IGZhZGVPdXQgMC4ycyBmb3J3YXJkcztcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICB0byB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiYgLiR7cG9wdXBDbGFzc2VzLnJvb3R9LCAmJiAuJHtwb3B1cENsYXNzZXMucm9vdH0gPiBkaXYge1xuICAgICAgICB3aWR0aDogJHsoeyB3aWR0aCB9KSA9PiB3aWR0aCB8fCAnYXV0byd9O1xuICAgICAgICBoZWlnaHQ6ICR7KHsgaGVpZ2h0IH0pID0+IGhlaWdodCB8fCAnYXV0byd9O1xuICAgIH1cblxuICAgICR7Z2V0QW5pbWF0aW9uU3R5bGVzKCl9XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9HMkIifQ== */");
63
+ })(panelTokens.closeColor, ":var(", tokens.closeIconColor, ");", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnN0eWxlcy50cyIsInNvdXJjZXMiOlsic3JjLWVtb3Rpb24vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IGNvbXBvbmVudCwgbWVyZ2VDb25maWcgfSBmcm9tICcuLi8uLi9lbmdpbmVzJztcbmltcG9ydCB7IHBvcHVwQ2xhc3NlcywgcG9wdXBDb25maWcgfSBmcm9tICcuLi9Qb3B1cCc7XG5pbXBvcnQgeyBwYW5lbFRva2VucywgcGFuZWxDb25maWcgfSBmcm9tICcuLi9QYW5lbCc7XG5cbmltcG9ydCB0eXBlIHsgRHJhd2VyQW5pbWF0aW9uSW5mbywgRHJhd2VyUGxhY2VtZW50IH0gZnJvbSAnLi9EcmF3ZXIudHlwZXMnO1xuaW1wb3J0IHsgY2xhc3NlcywgcHJpdmF0ZVRva2VucywgdG9rZW5zIH0gZnJvbSAnLi9EcmF3ZXIudG9rZW5zJztcblxuY29uc3QgbWVyZ2VkUGFuZWxDb25maWcgPSBtZXJnZUNvbmZpZyhwYW5lbENvbmZpZyk7XG5jb25zdCBQYW5lbCA9IGNvbXBvbmVudChtZXJnZWRQYW5lbENvbmZpZyk7XG5cbmNvbnN0IFBvcHVwID0gY29tcG9uZW50KHBvcHVwQ29uZmlnKTtcblxuY29uc3QgYW5pbWF0aW9uVmFyaWFudHMgPSB7XG4gICAgcmlnaHQ6IHtcbiAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMTAwJSwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDAsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICAgICAgaGlkZToge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDEwMCUsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGJvdHRvbToge1xuICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtNTAlLCAxMDAlKScsXG4gICAgICAgICAgICBlbmQ6ICd0cmFuc2xhdGUoLTUwJSwgMCknLFxuICAgICAgICB9LFxuICAgICAgICBoaWRlOiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtNTAlLCAwKScsXG4gICAgICAgICAgICBlbmQ6ICd0cmFuc2xhdGUoLTUwJSwgMTAwJSknLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgbGVmdDoge1xuICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtMTAwJSwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDAsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICAgICAgaGlkZToge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKC0xMDAlLCAtNTAlKScsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICB0b3A6IHtcbiAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoLTUwJSwgLTEwMCUpJyxcbiAgICAgICAgICAgIGVuZDogJ3RyYW5zbGF0ZSgtNTAlLCAwKScsXG4gICAgICAgIH0sXG4gICAgICAgIGhpZGU6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAndHJhbnNsYXRlKC01MCUsIDApJyxcbiAgICAgICAgICAgIGVuZDogJ3RyYW5zbGF0ZSgtNTAlLCAtMTAwJSknLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG5jb25zdCB0ZW1wbGF0ZUFuaW1hdGlvblN0eWxlID0gKHBsYWNlbWVudDogRHJhd2VyUGxhY2VtZW50KSA9PiBgXG4gICAgICAgICYuJHtjbGFzc2VzW2Ake3BsYWNlbWVudH1QbGFjZW1lbnRgIGFzIGtleW9mIHR5cGVvZiBjbGFzc2VzXX0ge1xuICAgICAgICAgICAgJiYgLiR7cG9wdXBDbGFzc2VzLnJvb3R9IHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246ICR7cGxhY2VtZW50fVNob3dBbmltYXRpb24gMC4ycyBmb3J3YXJkcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiYuJHtwb3B1cENsYXNzZXMuZW5kQW5pbWF0aW9ufSAuJHtwb3B1cENsYXNzZXMucm9vdH0ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogJHtwbGFjZW1lbnR9SGlkZUFuaW1hdGlvbiAwLjJzIGZvcndhcmRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAa2V5ZnJhbWVzICR7cGxhY2VtZW50fVNob3dBbmltYXRpb24ge1xuICAgICAgICAgICAgICAgIDAlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAke2FuaW1hdGlvblZhcmlhbnRzW3BsYWNlbWVudF0uc2hvdy5zdGFydH07XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJHthbmltYXRpb25WYXJpYW50c1twbGFjZW1lbnRdLnNob3cuZW5kfTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBrZXlmcmFtZXMgJHtwbGFjZW1lbnR9SGlkZUFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgICAgMCUge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICR7YW5pbWF0aW9uVmFyaWFudHNbcGxhY2VtZW50XS5oaWRlLnN0YXJ0fTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAke2FuaW1hdGlvblZhcmlhbnRzW3BsYWNlbWVudF0uaGlkZS5lbmR9O1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGA7XG5cbmNvbnN0IGdldEFuaW1hdGlvblN0eWxlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYW5pbWF0aW9uVmFyaWFudHMpLnJlZHVjZSgoYWNjLCBwbGFjZW1lbnQpID0+IHtcbiAgICAgICAgYWNjICs9IHRlbXBsYXRlQW5pbWF0aW9uU3R5bGUocGxhY2VtZW50IGFzIERyYXdlclBsYWNlbWVudCk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgJycpO1xufTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFBhbmVsID0gc3R5bGVkKFBhbmVsKWBcbiAgICAke3BhbmVsVG9rZW5zLmNsb3NlQ29sb3J9OiB2YXIoJHt0b2tlbnMuY2xvc2VJY29uQ29sb3J9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRQb3B1cCA9IHN0eWxlZChQb3B1cCk8e1xuICAgIHBsYWNlbWVudDogRHJhd2VyUGxhY2VtZW50O1xuICAgIHdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGhlaWdodD86IG51bWJlciB8IHN0cmluZztcbiAgICBkcmF3ZXJBbmltYXRpb25JbmZvPzogRHJhd2VyQW5pbWF0aW9uSW5mbztcbn0+YFxuICAgICYmLiR7Y2xhc3Nlcy5vdmVybGF5fSB7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZm9yd2FyZHM7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgICB9XG5cbiAgICAmJi4ke3BvcHVwQ2xhc3Nlcy5lbmRBbmltYXRpb259IC4ke2NsYXNzZXMub3ZlcmxheX0ge1xuICAgICAgICBhbmltYXRpb246IGZhZGVPdXQgMC4ycyBmb3J3YXJkcztcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICB0byB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiYgLiR7cG9wdXBDbGFzc2VzLnJvb3R9LCAmJiAuJHtwb3B1cENsYXNzZXMucm9vdH0gPiBkaXYge1xuICAgICAgICB3aWR0aDogJHsoeyB3aWR0aCB9KSA9PiB3aWR0aCB8fCAnYXV0byd9O1xuICAgICAgICBoZWlnaHQ6ICR7KHsgaGVpZ2h0IH0pID0+IGhlaWdodCB8fCAnYXV0byd9O1xuICAgIH1cblxuICAgICR7Z2V0QW5pbWF0aW9uU3R5bGVzKCl9XG5cbiAgICAmLiR7Y2xhc3Nlcy5lbnRlckN1c3RvbUFuaW1hdGlvbn0ge1xuICAgICAgICAmJiAuJHtwb3B1cENsYXNzZXMucm9vdH0ge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiAkeyh7IGRyYXdlckFuaW1hdGlvbkluZm8gfSkgPT5cbiAgICAgICAgICAgICAgICBkcmF3ZXJBbmltYXRpb25JbmZvPy5lbnRlciB8fCBgdmFyKCR7cHJpdmF0ZVRva2Vucy5lbnRlckFuaW1hdGlvbn0pYH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLiR7Y2xhc3Nlcy5leGl0Q3VzdG9tQW5pbWF0aW9ufSB7XG4gICAgICAgICYmLiR7cG9wdXBDbGFzc2VzLmVuZEFuaW1hdGlvbn0gLiR7cG9wdXBDbGFzc2VzLnJvb3R9IHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogdmFyKCR7cHJpdmF0ZVRva2Vucy5jdXN0b21FeGl0QW5pbWF0aW9ufSk7XG4gICAgICAgIH1cbiAgICB9XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9HMkIifQ== */");
64
64
  export var StyledPopup = /*#__PURE__*/ styled(Popup, {
65
- target: "esjpvmp1",
65
+ target: "e1sh23y71",
66
66
  label: "StyledPopup"
67
67
  })("&&.", classes.overlay, "{animation:fadeIn 0.2s forwards;scrollbar-gutter:stable;}&&.", popupClasses.endAnimation, " .", classes.overlay, "{animation:fadeOut 0.2s forwards;}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@keyframes fadeOut{from{opacity:1;}to{opacity:0;}}&& .", popupClasses.root, ",&& .", popupClasses.root, " > div{width:", function(param) {
68
68
  var width = param.width;
@@ -70,4 +70,7 @@ export var StyledPopup = /*#__PURE__*/ styled(Popup, {
70
70
  }, ";height:", function(param) {
71
71
  var height = param.height;
72
72
  return height || 'auto';
73
- }, ";}", getAnimationStyles(), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnN0eWxlcy50cyIsInNvdXJjZXMiOlsic3JjLWVtb3Rpb24vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IGNvbXBvbmVudCwgbWVyZ2VDb25maWcgfSBmcm9tICcuLi8uLi9lbmdpbmVzJztcbmltcG9ydCB7IHBvcHVwQ2xhc3NlcywgcG9wdXBDb25maWcgfSBmcm9tICcuLi9Qb3B1cCc7XG5pbXBvcnQgeyBwYW5lbFRva2VucywgcGFuZWxDb25maWcgfSBmcm9tICcuLi9QYW5lbCc7XG5cbmltcG9ydCB0eXBlIHsgRHJhd2VyUGxhY2VtZW50IH0gZnJvbSAnLi9EcmF3ZXIudHlwZXMnO1xuaW1wb3J0IHsgY2xhc3NlcywgdG9rZW5zIH0gZnJvbSAnLi9EcmF3ZXIudG9rZW5zJztcblxuY29uc3QgbWVyZ2VkUGFuZWxDb25maWcgPSBtZXJnZUNvbmZpZyhwYW5lbENvbmZpZyk7XG5jb25zdCBQYW5lbCA9IGNvbXBvbmVudChtZXJnZWRQYW5lbENvbmZpZyk7XG5cbmNvbnN0IFBvcHVwID0gY29tcG9uZW50KHBvcHVwQ29uZmlnKTtcblxuY29uc3QgYW5pbWF0aW9uVmFyaWFudHMgPSB7XG4gICAgcmlnaHQ6IHtcbiAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMTAwJSwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDAsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICAgICAgaGlkZToge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDEwMCUsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGJvdHRvbToge1xuICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtNTAlLCAxMDAlKScsXG4gICAgICAgICAgICBlbmQ6ICd0cmFuc2xhdGUoLTUwJSwgMCknLFxuICAgICAgICB9LFxuICAgICAgICBoaWRlOiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtNTAlLCAwKScsXG4gICAgICAgICAgICBlbmQ6ICd0cmFuc2xhdGUoLTUwJSwgMTAwJSknLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgbGVmdDoge1xuICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtMTAwJSwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDAsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICAgICAgaGlkZToge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKC0xMDAlLCAtNTAlKScsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICB0b3A6IHtcbiAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoLTUwJSwgLTEwMCUpJyxcbiAgICAgICAgICAgIGVuZDogJ3RyYW5zbGF0ZSgtNTAlLCAwKScsXG4gICAgICAgIH0sXG4gICAgICAgIGhpZGU6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAndHJhbnNsYXRlKC01MCUsIDApJyxcbiAgICAgICAgICAgIGVuZDogJ3RyYW5zbGF0ZSgtNTAlLCAtMTAwJSknLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG5jb25zdCB0ZW1wbGF0ZUFuaW1hdGlvblN0eWxlID0gKHBsYWNlbWVudDogRHJhd2VyUGxhY2VtZW50KSA9PiBgXG4gICAgICAgICYuJHtjbGFzc2VzW2Ake3BsYWNlbWVudH1QbGFjZW1lbnRgIGFzIGtleW9mIHR5cGVvZiBjbGFzc2VzXX0ge1xuICAgICAgICAgICAgJiYgLiR7cG9wdXBDbGFzc2VzLnJvb3R9IHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246ICR7cGxhY2VtZW50fVNob3dBbmltYXRpb24gMC4ycyBmb3J3YXJkcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiYuJHtwb3B1cENsYXNzZXMuZW5kQW5pbWF0aW9ufSAuJHtwb3B1cENsYXNzZXMucm9vdH0ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogJHtwbGFjZW1lbnR9SGlkZUFuaW1hdGlvbiAwLjJzIGZvcndhcmRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAa2V5ZnJhbWVzICR7cGxhY2VtZW50fVNob3dBbmltYXRpb24ge1xuICAgICAgICAgICAgICAgIDAlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAke2FuaW1hdGlvblZhcmlhbnRzW3BsYWNlbWVudF0uc2hvdy5zdGFydH07XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJHthbmltYXRpb25WYXJpYW50c1twbGFjZW1lbnRdLnNob3cuZW5kfTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBrZXlmcmFtZXMgJHtwbGFjZW1lbnR9SGlkZUFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgICAgMCUge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICR7YW5pbWF0aW9uVmFyaWFudHNbcGxhY2VtZW50XS5oaWRlLnN0YXJ0fTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAke2FuaW1hdGlvblZhcmlhbnRzW3BsYWNlbWVudF0uaGlkZS5lbmR9O1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGA7XG5cbmNvbnN0IGdldEFuaW1hdGlvblN0eWxlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYW5pbWF0aW9uVmFyaWFudHMpLnJlZHVjZSgoYWNjLCBwbGFjZW1lbnQpID0+IHtcbiAgICAgICAgYWNjICs9IHRlbXBsYXRlQW5pbWF0aW9uU3R5bGUocGxhY2VtZW50IGFzIERyYXdlclBsYWNlbWVudCk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgJycpO1xufTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFBhbmVsID0gc3R5bGVkKFBhbmVsKWBcbiAgICAke3BhbmVsVG9rZW5zLmNsb3NlQ29sb3J9OiB2YXIoJHt0b2tlbnMuY2xvc2VJY29uQ29sb3J9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRQb3B1cCA9IHN0eWxlZChQb3B1cCk8e1xuICAgIHBsYWNlbWVudDogRHJhd2VyUGxhY2VtZW50O1xuICAgIHdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGhlaWdodD86IG51bWJlciB8IHN0cmluZztcbn0+YFxuICAgICYmLiR7Y2xhc3Nlcy5vdmVybGF5fSB7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZm9yd2FyZHM7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgICB9XG5cbiAgICAmJi4ke3BvcHVwQ2xhc3Nlcy5lbmRBbmltYXRpb259IC4ke2NsYXNzZXMub3ZlcmxheX0ge1xuICAgICAgICBhbmltYXRpb246IGZhZGVPdXQgMC4ycyBmb3J3YXJkcztcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICB0byB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiYgLiR7cG9wdXBDbGFzc2VzLnJvb3R9LCAmJiAuJHtwb3B1cENsYXNzZXMucm9vdH0gPiBkaXYge1xuICAgICAgICB3aWR0aDogJHsoeyB3aWR0aCB9KSA9PiB3aWR0aCB8fCAnYXV0byd9O1xuICAgICAgICBoZWlnaHQ6ICR7KHsgaGVpZ2h0IH0pID0+IGhlaWdodCB8fCAnYXV0byd9O1xuICAgIH1cblxuICAgICR7Z2V0QW5pbWF0aW9uU3R5bGVzKCl9XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdHMkIifQ== */");
73
+ }, ";}", getAnimationStyles(), " &.", classes.enterCustomAnimation, "{&& .", popupClasses.root, "{animation:", function(param) {
74
+ var drawerAnimationInfo = param.drawerAnimationInfo;
75
+ return (drawerAnimationInfo === null || drawerAnimationInfo === void 0 ? void 0 : drawerAnimationInfo.enter) || "var(".concat(privateTokens.enterAnimation, ")");
76
+ }, ";}}&.", classes.exitCustomAnimation, "{&&.", popupClasses.endAnimation, " .", popupClasses.root, "{animation:var(", privateTokens.customExitAnimation, ");}}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnN0eWxlcy50cyIsInNvdXJjZXMiOlsic3JjLWVtb3Rpb24vY29tcG9uZW50cy9EcmF3ZXIvRHJhd2VyLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IGNvbXBvbmVudCwgbWVyZ2VDb25maWcgfSBmcm9tICcuLi8uLi9lbmdpbmVzJztcbmltcG9ydCB7IHBvcHVwQ2xhc3NlcywgcG9wdXBDb25maWcgfSBmcm9tICcuLi9Qb3B1cCc7XG5pbXBvcnQgeyBwYW5lbFRva2VucywgcGFuZWxDb25maWcgfSBmcm9tICcuLi9QYW5lbCc7XG5cbmltcG9ydCB0eXBlIHsgRHJhd2VyQW5pbWF0aW9uSW5mbywgRHJhd2VyUGxhY2VtZW50IH0gZnJvbSAnLi9EcmF3ZXIudHlwZXMnO1xuaW1wb3J0IHsgY2xhc3NlcywgcHJpdmF0ZVRva2VucywgdG9rZW5zIH0gZnJvbSAnLi9EcmF3ZXIudG9rZW5zJztcblxuY29uc3QgbWVyZ2VkUGFuZWxDb25maWcgPSBtZXJnZUNvbmZpZyhwYW5lbENvbmZpZyk7XG5jb25zdCBQYW5lbCA9IGNvbXBvbmVudChtZXJnZWRQYW5lbENvbmZpZyk7XG5cbmNvbnN0IFBvcHVwID0gY29tcG9uZW50KHBvcHVwQ29uZmlnKTtcblxuY29uc3QgYW5pbWF0aW9uVmFyaWFudHMgPSB7XG4gICAgcmlnaHQ6IHtcbiAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMTAwJSwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDAsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICAgICAgaGlkZToge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDEwMCUsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGJvdHRvbToge1xuICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtNTAlLCAxMDAlKScsXG4gICAgICAgICAgICBlbmQ6ICd0cmFuc2xhdGUoLTUwJSwgMCknLFxuICAgICAgICB9LFxuICAgICAgICBoaWRlOiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtNTAlLCAwKScsXG4gICAgICAgICAgICBlbmQ6ICd0cmFuc2xhdGUoLTUwJSwgMTAwJSknLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgbGVmdDoge1xuICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICBzdGFydDogJ3RyYW5zbGF0ZSgtMTAwJSwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKDAsIC01MCUpJyxcbiAgICAgICAgfSxcbiAgICAgICAgaGlkZToge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoMCwgLTUwJSknLFxuICAgICAgICAgICAgZW5kOiAndHJhbnNsYXRlKC0xMDAlLCAtNTAlKScsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICB0b3A6IHtcbiAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgc3RhcnQ6ICd0cmFuc2xhdGUoLTUwJSwgLTEwMCUpJyxcbiAgICAgICAgICAgIGVuZDogJ3RyYW5zbGF0ZSgtNTAlLCAwKScsXG4gICAgICAgIH0sXG4gICAgICAgIGhpZGU6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAndHJhbnNsYXRlKC01MCUsIDApJyxcbiAgICAgICAgICAgIGVuZDogJ3RyYW5zbGF0ZSgtNTAlLCAtMTAwJSknLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG5jb25zdCB0ZW1wbGF0ZUFuaW1hdGlvblN0eWxlID0gKHBsYWNlbWVudDogRHJhd2VyUGxhY2VtZW50KSA9PiBgXG4gICAgICAgICYuJHtjbGFzc2VzW2Ake3BsYWNlbWVudH1QbGFjZW1lbnRgIGFzIGtleW9mIHR5cGVvZiBjbGFzc2VzXX0ge1xuICAgICAgICAgICAgJiYgLiR7cG9wdXBDbGFzc2VzLnJvb3R9IHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246ICR7cGxhY2VtZW50fVNob3dBbmltYXRpb24gMC4ycyBmb3J3YXJkcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiYuJHtwb3B1cENsYXNzZXMuZW5kQW5pbWF0aW9ufSAuJHtwb3B1cENsYXNzZXMucm9vdH0ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogJHtwbGFjZW1lbnR9SGlkZUFuaW1hdGlvbiAwLjJzIGZvcndhcmRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAa2V5ZnJhbWVzICR7cGxhY2VtZW50fVNob3dBbmltYXRpb24ge1xuICAgICAgICAgICAgICAgIDAlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAke2FuaW1hdGlvblZhcmlhbnRzW3BsYWNlbWVudF0uc2hvdy5zdGFydH07XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJHthbmltYXRpb25WYXJpYW50c1twbGFjZW1lbnRdLnNob3cuZW5kfTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBrZXlmcmFtZXMgJHtwbGFjZW1lbnR9SGlkZUFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgICAgMCUge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICR7YW5pbWF0aW9uVmFyaWFudHNbcGxhY2VtZW50XS5oaWRlLnN0YXJ0fTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAke2FuaW1hdGlvblZhcmlhbnRzW3BsYWNlbWVudF0uaGlkZS5lbmR9O1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGA7XG5cbmNvbnN0IGdldEFuaW1hdGlvblN0eWxlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYW5pbWF0aW9uVmFyaWFudHMpLnJlZHVjZSgoYWNjLCBwbGFjZW1lbnQpID0+IHtcbiAgICAgICAgYWNjICs9IHRlbXBsYXRlQW5pbWF0aW9uU3R5bGUocGxhY2VtZW50IGFzIERyYXdlclBsYWNlbWVudCk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgJycpO1xufTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFBhbmVsID0gc3R5bGVkKFBhbmVsKWBcbiAgICAke3BhbmVsVG9rZW5zLmNsb3NlQ29sb3J9OiB2YXIoJHt0b2tlbnMuY2xvc2VJY29uQ29sb3J9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRQb3B1cCA9IHN0eWxlZChQb3B1cCk8e1xuICAgIHBsYWNlbWVudDogRHJhd2VyUGxhY2VtZW50O1xuICAgIHdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGhlaWdodD86IG51bWJlciB8IHN0cmluZztcbiAgICBkcmF3ZXJBbmltYXRpb25JbmZvPzogRHJhd2VyQW5pbWF0aW9uSW5mbztcbn0+YFxuICAgICYmLiR7Y2xhc3Nlcy5vdmVybGF5fSB7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZm9yd2FyZHM7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgICB9XG5cbiAgICAmJi4ke3BvcHVwQ2xhc3Nlcy5lbmRBbmltYXRpb259IC4ke2NsYXNzZXMub3ZlcmxheX0ge1xuICAgICAgICBhbmltYXRpb246IGZhZGVPdXQgMC4ycyBmb3J3YXJkcztcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICB0byB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiYgLiR7cG9wdXBDbGFzc2VzLnJvb3R9LCAmJiAuJHtwb3B1cENsYXNzZXMucm9vdH0gPiBkaXYge1xuICAgICAgICB3aWR0aDogJHsoeyB3aWR0aCB9KSA9PiB3aWR0aCB8fCAnYXV0byd9O1xuICAgICAgICBoZWlnaHQ6ICR7KHsgaGVpZ2h0IH0pID0+IGhlaWdodCB8fCAnYXV0byd9O1xuICAgIH1cblxuICAgICR7Z2V0QW5pbWF0aW9uU3R5bGVzKCl9XG5cbiAgICAmLiR7Y2xhc3Nlcy5lbnRlckN1c3RvbUFuaW1hdGlvbn0ge1xuICAgICAgICAmJiAuJHtwb3B1cENsYXNzZXMucm9vdH0ge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiAkeyh7IGRyYXdlckFuaW1hdGlvbkluZm8gfSkgPT5cbiAgICAgICAgICAgICAgICBkcmF3ZXJBbmltYXRpb25JbmZvPy5lbnRlciB8fCBgdmFyKCR7cHJpdmF0ZVRva2Vucy5lbnRlckFuaW1hdGlvbn0pYH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLiR7Y2xhc3Nlcy5leGl0Q3VzdG9tQW5pbWF0aW9ufSB7XG4gICAgICAgICYmLiR7cG9wdXBDbGFzc2VzLmVuZEFuaW1hdGlvbn0gLiR7cG9wdXBDbGFzc2VzLnJvb3R9IHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogdmFyKCR7cHJpdmF0ZVRva2Vucy5jdXN0b21FeGl0QW5pbWF0aW9ufSk7XG4gICAgICAgIH1cbiAgICB9XG5gO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdHMkIifQ== */");
@@ -3,6 +3,9 @@ export var classes = {
3
3
  header: 'drawer-header',
4
4
  footer: 'drawer-footer',
5
5
  overlay: 'drawer-overlay',
6
+ panel: 'drawer-panel',
7
+ enterCustomAnimation: 'drawer-enter-custom-animation',
8
+ exitCustomAnimation: 'drawer-exit-custom-animation',
6
9
  horizontal: 'drawer-horizontal',
7
10
  hasHeader: 'drawer-has-header',
8
11
  isRightClose: 'drawer-right-close-button',
@@ -11,6 +14,12 @@ export var classes = {
11
14
  rightPlacement: 'drawer-right-placement',
12
15
  leftPlacement: 'drawer-left-placement'
13
16
  };
17
+ export var privateTokens = {
18
+ enterAnimation: '--plasma__private-drawer-enter-animation',
19
+ exitAnimation: '--plasma__private-drawer-exit-animation',
20
+ customEnterAnimation: '--plasma__private-drawer-custom-enter-animation',
21
+ customExitAnimation: '--plasma__private-drawer-custom-exit-animation'
22
+ };
14
23
  export var tokens = {
15
24
  drawerOverlayWithBlurColor: '--plasma-drawer-overlay-with-blur-color',
16
25
  drawerOverlayColor: '--plasma-drawer-overlay-color',
@@ -115,12 +115,12 @@ import { base as hintSizeCSS } from "./variations/_hint-size/base";
115
115
  import { base as chipViewCSS } from "./variations/_chip-view/base";
116
116
  import { Input, InputContainer, LeftHelper, Label, InputWrapper, InputLabelWrapper, StyledContentLeft, StyledContentRight, StyledChips, StyledTextBefore, StyledTextAfter, StyledIndicator, StyledOptionalText, InputPlaceholder, OuterLabelWrapper, TitleCaption, StyledHintWrapper, StyledIndicatorWrapper, StyledContentRightWrapper } from "./TextField.styles";
117
117
  import { classes } from "./TextField.tokens";
118
- import { TextFieldChip, TextFieldChipNew } from "./ui";
118
+ import { TextFieldChip } from "./ui";
119
119
  import { useKeyNavigation } from "./hooks";
120
120
  import { HintComponent } from "./ui/Hint/Hint";
121
121
  import { getInputWidth } from "./getInputWidth";
122
122
  var optionalText = 'optional';
123
- export var base = /*#__PURE__*/ css("display:block;", "base", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCIsInNvdXJjZXMiOlsic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge1xuICAgIEZvcm1FdmVudEhhbmRsZXIsXG4gICAgQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICAgIEtleWJvYXJkRXZlbnQsXG4gICAgQ2hhbmdlRXZlbnQsXG4gICAgTW91c2VFdmVudEhhbmRsZXIsXG4gICAgQ2xpcGJvYXJkRXZlbnRIYW5kbGVyLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGb3JrUmVmIH0gZnJvbSAnQHNhbHV0ZWpzL3BsYXNtYS1jb3JlJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IGN4LCBzYWZlVXNlSWQgfSBmcm9tICdzcmMvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSb290UHJvcHMgfSBmcm9tICdzcmMvZW5naW5lcyc7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tICdzcmMvaG9va3MnO1xuXG5pbXBvcnQgdHlwZSB7IENoaXBWYWx1ZXMsIFRleHRGaWVsZFByaW1pdGl2ZVZhbHVlLCBUZXh0RmllbGRQcm9wcywgVGV4dEZpZWxkUm9vdFByb3BzIH0gZnJvbSAnLi9UZXh0RmllbGQudHlwZXMnO1xuaW1wb3J0IHsgYmFzZSBhcyBzaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19zaXplL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyB2aWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL192aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBjbGVhckNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fY2xlYXIvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGRpc2FibGVkQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19kaXNhYmxlZC9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgcmVhZE9ubHlDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3JlYWQtb25seS9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgbGFiZWxQbGFjZW1lbnRDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2xhYmVsLXBsYWNlbWVudC9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgaGludFZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2hpbnQtdmlldy9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgaGludFNpemVDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2hpbnQtc2l6ZS9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgY2hpcFZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2NoaXAtdmlldy9iYXNlJztcbmltcG9ydCB7XG4gICAgSW5wdXQsXG4gICAgSW5wdXRDb250YWluZXIsXG4gICAgTGVmdEhlbHBlcixcbiAgICBMYWJlbCxcbiAgICBJbnB1dFdyYXBwZXIsXG4gICAgSW5wdXRMYWJlbFdyYXBwZXIsXG4gICAgU3R5bGVkQ29udGVudExlZnQsXG4gICAgU3R5bGVkQ29udGVudFJpZ2h0LFxuICAgIFN0eWxlZENoaXBzLFxuICAgIFN0eWxlZFRleHRCZWZvcmUsXG4gICAgU3R5bGVkVGV4dEFmdGVyLFxuICAgIFN0eWxlZEluZGljYXRvcixcbiAgICBTdHlsZWRPcHRpb25hbFRleHQsXG4gICAgSW5wdXRQbGFjZWhvbGRlcixcbiAgICBPdXRlckxhYmVsV3JhcHBlcixcbiAgICBUaXRsZUNhcHRpb24sXG4gICAgU3R5bGVkSGludFdyYXBwZXIsXG4gICAgU3R5bGVkSW5kaWNhdG9yV3JhcHBlcixcbiAgICBTdHlsZWRDb250ZW50UmlnaHRXcmFwcGVyLFxufSBmcm9tICcuL1RleHRGaWVsZC5zdHlsZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJy4vVGV4dEZpZWxkLnRva2Vucyc7XG5pbXBvcnQgeyBUZXh0RmllbGRDaGlwLCBUZXh0RmllbGRDaGlwTmV3IH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyB1c2VLZXlOYXZpZ2F0aW9uIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgeyBIaW50Q29tcG9uZW50IH0gZnJvbSAnLi91aS9IaW50L0hpbnQnO1xuaW1wb3J0IHsgZ2V0SW5wdXRXaWR0aCB9IGZyb20gJy4vZ2V0SW5wdXRXaWR0aCc7XG5cbmNvbnN0IG9wdGlvbmFsVGV4dCA9ICdvcHRpb25hbCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYFxuICAgIC8qIE5PVEU6IFdlYmtpdCDQvdC1INC/0YDQuNC80LXQvdGP0LXRgiBvcGFjaXR5INC6IGlubGluZSDRgtC10LPQsNC8ICovXG4gICAgZGlzcGxheTogYmxvY2s7XG5gO1xuXG5jb25zdCBISU5UX0RFRkFVTFRfT0ZGU0VUOiBbbnVtYmVyLCBudW1iZXJdID0gWzAsIDBdO1xuXG5leHBvcnQgY29uc3QgdGV4dEZpZWxkUm9vdCA9IChSb290OiBSb290UHJvcHM8SFRNTERpdkVsZW1lbnQsIFRleHRGaWVsZFJvb3RQcm9wcz4pID0+XG4gICAgZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBUZXh0RmllbGRQcm9wcz4oXG4gICAgICAgIChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgc3R5bGUsXG5cbiAgICAgICAgICAgICAgICAvLyBsYXlvdXRcbiAgICAgICAgICAgICAgICBjb250ZW50TGVmdCxcbiAgICAgICAgICAgICAgICBjb250ZW50UmlnaHQsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAga2VlcFBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIHRleHRCZWZvcmUsXG4gICAgICAgICAgICAgICAgdGV4dEFmdGVyLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIGxlZnRIZWxwZXIsXG4gICAgICAgICAgICAgICAgZW51bWVyYXRpb25UeXBlID0gJ3BsYWluJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlZFBsYWNlbWVudCA9ICdyaWdodCcsXG4gICAgICAgICAgICAgICAgaGFzUmVxdWlyZWRJbmRpY2F0b3IgPSB0cnVlLFxuICAgICAgICAgICAgICAgIHRpdGxlQ2FwdGlvbixcbiAgICAgICAgICAgICAgICBjaGlwVmlldyA9ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBjaGlwVmFsaWRhdG9yLFxuXG4gICAgICAgICAgICAgICAgLy8gaGludFxuICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyID0gJ2hvdmVyJyxcbiAgICAgICAgICAgICAgICBoaW50VGV4dCxcbiAgICAgICAgICAgICAgICBoaW50VmlldyA9ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBoaW50U2l6ZSA9ICdtJyxcbiAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbixcbiAgICAgICAgICAgICAgICBoaW50VGFyZ2V0UGxhY2VtZW50ID0gJ291dGVyJyxcbiAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdyxcbiAgICAgICAgICAgICAgICBoaW50T2Zmc2V0ID0gSElOVF9ERUZBVUxUX09GRlNFVCxcbiAgICAgICAgICAgICAgICBoaW50V2lkdGgsXG4gICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0LFxuXG4gICAgICAgICAgICAgICAgLy8gdmFyaWF0aW9uc1xuICAgICAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICByZWFkT25seSA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICBjbGVhciA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsLFxuICAgICAgICAgICAgICAgIGhhc0RpdmlkZXIsXG5cbiAgICAgICAgICAgICAgICAvLyBjb250cm9sbGVkXG4gICAgICAgICAgICAgICAgdmFsdWU6IG91dGVyVmFsdWUsXG4gICAgICAgICAgICAgICAgY2hpcHM6IHZhbHVlcyxcbiAgICAgICAgICAgICAgICBjaGlwVHlwZSA9ICdkZWZhdWx0JyxcblxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBfY2hpcHMsXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9vbkNoaXBDbGljayxcblxuICAgICAgICAgICAgICAgIC8vIGV2ZW50c1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ2hpcHMsXG4gICAgICAgICAgICAgICAgb25TZWFyY2gsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uRm9jdXMsXG4gICAgICAgICAgICAgICAgb25CbHVyLFxuICAgICAgICAgICAgICAgIG9uUGFzdGUsXG5cbiAgICAgICAgICAgICAgICAvLyDQn9GA0L7Qv9GB0Ysg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8sINC90LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHksXG5cbiAgICAgICAgICAgICAgICAuLi5yZXN0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmLFxuICAgICAgICApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dEZvcmtSZWYgPSB1c2VGb3JrUmVmKGlucHV0UmVmLCByZWYpO1xuICAgICAgICAgICAgY29uc3QgY2hpcHNSZWZzID0gdXNlUmVmPEFycmF5PEhUTUxCdXR0b25FbGVtZW50Pj4oW10pO1xuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVkUmVmcyA9IHsgY29udGVudFJlZiwgaW5wdXRSZWYsIGNoaXBzUmVmcyB9O1xuXG4gICAgICAgICAgICBjb25zdCBbaGFzVmFsdWUsIHNldEhhc1ZhbHVlXSA9IHVzZVN0YXRlKFxuICAgICAgICAgICAgICAgIEJvb2xlYW4ob3V0ZXJWYWx1ZSkgfHwgQm9vbGVhbihpbnB1dFJlZj8uY3VycmVudD8udmFsdWUpIHx8IEJvb2xlYW4ocmVzdD8uZGVmYXVsdFZhbHVlKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBbaGFzRm9jdXMsIHNldEhhc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgICAgICAgICAgY29uc3QgW2NoaXBzLCBzZXRDaGlwc10gPSB1c2VTdGF0ZTxBcnJheTxDaGlwVmFsdWVzPj4oW10pO1xuICAgICAgICAgICAgY29uc3QgW2lzSGludFZpc2libGUsIHNldElzSGludFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCB1bmlxSWQgPSBzYWZlVXNlSWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVySWQgPSBpZCB8fCB1bmlxSWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbElkID0gc2FmZVVzZUlkKCk7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXJUZXh0SWQgPSBzYWZlVXNlSWQoKTtcblxuICAgICAgICAgICAgY29uc3QgaXNEZWZhdWx0VmlldyA9IHZpZXcgPT09ICdkZWZhdWx0JyB8fCByZWFkT25seSB8fCBkaXNhYmxlZDtcblxuICAgICAgICAgICAgY29uc3QgaXNDaGlwRW51bWVyYXRpb24gPSBlbnVtZXJhdGlvblR5cGUgPT09ICdjaGlwJztcbiAgICAgICAgICAgIGNvbnN0IGlzQ2hpcHNWaXNpYmxlID0gaXNDaGlwRW51bWVyYXRpb24gJiYgQm9vbGVhbihjaGlwcz8ubGVuZ3RoIHx8IF9jaGlwcz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IHdpdGhIYXNDaGlwcyA9IGlzQ2hpcHNWaXNpYmxlID8gY2xhc3Nlcy5oYXNDaGlwcyA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGFzTGFiZWxWYWx1ZSA9IEJvb2xlYW4obGFiZWwpO1xuICAgICAgICAgICAgY29uc3QgaGFzSW5uZXJMYWJlbCA9IHNpemUgIT09ICd4cycgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWlzQ2hpcHNWaXNpYmxlICYmIGhhc0xhYmVsVmFsdWU7XG4gICAgICAgICAgICBjb25zdCBoYXNPdXRlckxhYmVsID0gbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicgJiYgaGFzTGFiZWxWYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyS2VlcFBsYWNlaG9sZGVyID0ga2VlcFBsYWNlaG9sZGVyICYmIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInO1xuICAgICAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXIgPSBCb29sZWFuKHBsYWNlaG9sZGVyKSAmJiAoaW5uZXJLZWVwUGxhY2Vob2xkZXIgfHwgIWhhc0lubmVyTGFiZWwpO1xuICAgICAgICAgICAgbGV0IGhhc1RleHRBZnRlciA9IEJvb2xlYW4odGV4dEFmdGVyKTtcbiAgICAgICAgICAgIGxldCBoYXNUZXh0QmVmb3JlID0gdGV4dEJlZm9yZSAmJiAhaXNDaGlwRW51bWVyYXRpb247XG4gICAgICAgICAgICBpZiAobGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1ZhbHVlICYmICFoYXNQbGFjZWhvbGRlciAmJiAhaGFzRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzVGV4dEFmdGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGhhc1RleHRCZWZvcmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyUGFkZGluZyA9IGhhc0lubmVyTGFiZWwgJiYga2VlcFBsYWNlaG9sZGVyICYmIHNpemUgIT09ICd4cyc7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyTGFiZWxWYWx1ZSA9IGhhc0lubmVyTGFiZWwgfHwgaGFzT3V0ZXJMYWJlbCA/IGxhYmVsIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlID0gbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWhhc0lubmVyTGFiZWwgPyB1bmRlZmluZWQgOiBsYWJlbFBsYWNlbWVudDtcblxuICAgICAgICAgICAgY29uc3QgaW5uZXJQbGFjZWhvbGRlclZhbHVlID0gaGFzUGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyU2hvd24gPSBCb29sZWFuKGlubmVyUGxhY2Vob2xkZXJWYWx1ZSkgJiYgIWhhc1ZhbHVlO1xuXG4gICAgICAgICAgICBjb25zdCBjbGVhckNsYXNzID0gY2xlYXIgPyBjbGFzc2VzLmNsZWFyIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzRGl2aWRlckNsYXNzID0gaGFzRGl2aWRlciA/IGNsYXNzZXMuaGFzRGl2aWRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0lubmVySGludENsYXNzID0gaGludFRleHQgJiYgaGludFRhcmdldFBsYWNlbWVudCA9PT0gJ291dGVyJyA/IGNsYXNzZXMuaGFzSGludCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0hpbnRDbGFzcyA9IGhpbnRUZXh0ID8gY2xhc3Nlcy5oYXNIaW50IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyA9IHJlcXVpcmVkUGxhY2VtZW50ID09PSAncmlnaHQnID8gY2xhc3Nlcy5yZXF1aXJlZEFsaWduUmlnaHQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbFBsYWNlbWVudENsYXNzID0gaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlXG4gICAgICAgICAgICAgICAgPyBjbGFzc2VzW2Ake2lubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZX1MYWJlbFBsYWNlbWVudGAgYXMga2V5b2YgdHlwZW9mIGNsYXNzZXNdXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNWYWx1ZUNsYXNzID0gaGFzVmFsdWUgPyBjbGFzc2VzLmhhc1ZhbHVlIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qga2VlcFBsYWNlaG9sZGVyQ2xhc3MgPSBoYXNQbGFjZWhvbGRlciAmJiBwbGFjZWhvbGRlclNob3duICYmIGNsYXNzZXMua2VlcFBsYWNlaG9sZGVyO1xuXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudExlZnQgJiYgaXNDaGlwc1Zpc2libGUgJiYgY2hpcFR5cGUgPT09ICdkZWZhdWx0JyA/IGNsYXNzZXMuaGFzRW1wdHlDb250ZW50TGVmdCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudFJpZ2h0ICYmIGlzQ2hpcHNWaXNpYmxlICYmIGNoaXBUeXBlID09PSAnZGVmYXVsdCcgPyBjbGFzc2VzLmhhc0VtcHR5Q29udGVudFJpZ2h0IDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCBjb250ZW50UmlnaHRDb21wZW5zYXRpb25NYXJnaW4gPVxuICAgICAgICAgICAgICAgICFoYXNPdXRlckxhYmVsICYmIGhpbnRUZXh0ICYmIGhpbnRUYXJnZXRQbGFjZW1lbnQgPT09ICdpbm5lcidcbiAgICAgICAgICAgICAgICAgICAgPyBjbGFzc2VzLmNvbnRlbnRSaWdodENvbXBlbnNhdGlvbk1hcmdpblxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGludFJlZiA9IHVzZU91dHNpZGVDbGljazxIVE1MRGl2RWxlbWVudD4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBoaW50SW5uZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaGludEZvcmtSZWYgPSB1c2VGb3JrUmVmKGhpbnRSZWYsIGhpbnRJbm5lclJlZik7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUlucHV0OiBGb3JtRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKHZhbHVlKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChldmVudDogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgIG9uRm9jdXM/LihldmVudCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVCbHVyID0gKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uQmx1cj8uKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRTaG93ID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRIaWRlID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVIaW50Q2xpY2s6IE1vdXNlRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFoaW50VGV4dCB8fCBoaW50VHJpZ2dlciAhPT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0SXNQb3BvdmVyID0gZXZlbnQudGFyZ2V0ID09PSBoaW50SW5uZXJSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBjb25zdCByb290SGFzVGFyZ2V0ID0gaGludElubmVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0SXNQb3BvdmVyICYmICFyb290SGFzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgbWF4TGVuZ3RoLCB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aCAhPT0gLTEgJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChoYXNUZXh0QWZ0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gZ2V0SW5wdXRXaWR0aChldmVudC5jdXJyZW50VGFyZ2V0LCBpbnB1dENvbnRhaW5lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS53aWR0aCA9IGAke3RleHRXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlUGFzdGU6IENsaXBib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZCB8fCByZWFkT25seSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG9uUGFzdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgb25QYXN0ZShldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGhhc1RleHRBZnRlcikge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gZ2V0SW5wdXRXaWR0aChpbnB1dFJlZi5jdXJyZW50LCBpbnB1dENvbnRhaW5lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuc3R5bGUud2lkdGggPSBgJHt0ZXh0V2lkdGh9cHhgO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVDaGlwcyA9IChuZXdDaGlwczogQXJyYXk8Q2hpcFZhbHVlcz4sIG5ld1ZhbHVlczogQXJyYXk8VGV4dEZpZWxkUHJpbWl0aXZlVmFsdWU+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0Q2hpcHMobmV3Q2hpcHMpO1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ2hpcHM/LihuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgeyBoYW5kbGVJbnB1dEtleWRvd24sIGhhbmRsZUNoaXBLZXlEb3duLCBvbkNoaXBDbGVhciwgaGFuZGxlQ29udGVudEtleURvd24gfSA9IHVzZUtleU5hdmlnYXRpb24oe1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZWRSZWZzLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgICAgIGNoaXBzLFxuICAgICAgICAgICAgICAgIGVudW1lcmF0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICB1cGRhdGVDaGlwcyxcbiAgICAgICAgICAgICAgICBvblNlYXJjaCxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICAgICAgICBvbkVudGVyRGlzYWJsZWQ6IF9vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3Qgb25DaGlwQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXRGb2N1cyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVhZE9ubHkgfHwgZGlzYWJsZWQgfHwgIWlucHV0UmVmPy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dFJlZi5jdXJyZW50Lm9mZnNldExlZnQsXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGdldFJlZiA9IChlbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGwsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBjaGlwc1JlZnM/LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpcHNSZWZzLmN1cnJlbnRbaW5kZXhdID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVPbktleURvd24gPSAoZXZlbnQ6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+ICYgS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUlucHV0S2V5ZG93bihldmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob25LZXlEb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzVGV4dEFmdGVyICYmIGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gZ2V0SW5wdXRXaWR0aChpbnB1dFJlZi5jdXJyZW50LCBpbnB1dENvbnRhaW5lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudC5zdHlsZS53aWR0aCA9IGAke3RleHRXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudD8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3dpZHRoJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgW2hhc1RleHRBZnRlciwgb3V0ZXJWYWx1ZV0pO1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNDaGlwRW51bWVyYXRpb24gJiYgIXZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdDaGlwcyA9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz8ubWFwKCh2YWx1ZSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7aW5kZXh9XyR7dmFsdWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9KSkgfHwgW107XG5cbiAgICAgICAgICAgICAgICBzZXRDaGlwcyhuZXdDaGlwcyk7XG4gICAgICAgICAgICB9LCBbaXNDaGlwRW51bWVyYXRpb24sIHZhbHVlc10pO1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc1ZhbHVlKEJvb2xlYW4ocmVzdD8uZGVmYXVsdFZhbHVlKSk7XG4gICAgICAgICAgICB9LCBbcmVzdC5kZWZhdWx0VmFsdWVdKTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKG91dGVyVmFsdWUpIHx8IEJvb2xlYW4oaW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlKSk7XG4gICAgICAgICAgICB9LCBbb3V0ZXJWYWx1ZSwgaW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyT3B0aW9uYWwgPSBCb29sZWFuKHJlcXVpcmVkID8gZmFsc2UgOiBvcHRpb25hbCk7XG4gICAgICAgICAgICBjb25zdCBoYXNQbGFjZWhvbGRlck9wdGlvbmFsID0gaW5uZXJPcHRpb25hbCAmJiAhaW5uZXJMYWJlbFZhbHVlICYmICFoYXNPdXRlckxhYmVsO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uYWxUZXh0Tm9kZSA9IGlubmVyT3B0aW9uYWwgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgICAgICAgICAgICAge0Jvb2xlYW4oaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA/IGlubmVyUGxhY2Vob2xkZXJWYWx1ZSA6IGlubmVyTGFiZWxWYWx1ZSkgJiYgJ1xceGEwJ31cbiAgICAgICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsO1xuXG4gICAgICAgICAgICBjb25zdCBjbGFzc1RleHRFbGxpcHNpcyA9XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgICAgICAgICAgICAhKHJlc3QgYXMgYW55KS5fdGV4dEVsbGlwc2lzRGlzYWJsZSAmJiAhdGV4dEFmdGVyID8gY2xhc3Nlcy5pbnB1dFRleHRFbGxpcHNpcyA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8Um9vdFxuICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshZGlzYWJsZWQgJiYgcmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PXtpbm5lckxhYmVsUGxhY2VtZW50VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUlucHV0Rm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEtcm9vdFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNEaXZpZGVyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNJbm5lckhpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMudGV4dEZpZWxkR3JvdXBJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHsuLi4oaGludFRleHQgJiYgeyBoaW50VmlldywgaGludFNpemUgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7KGhhc091dGVyTGFiZWwgfHwgdGl0bGVDYXB0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8T3V0ZXJMYWJlbFdyYXBwZXIgaXNJbm5lckxhYmVsPXtsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBpZD17bGFiZWxJZH0gaHRtbEZvcj17aWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lckxhYmVsVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGludFRleHQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGV4dD17aGludFRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldEljb249e2hpbnRUYXJnZXRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludE9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50U2hvdz17aGFuZGxlSGludFNob3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiBoYXNSZXF1aXJlZEluZGljYXRvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5vdXRlckxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0hpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEluZGljYXRvcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGl0bGVDYXB0aW9uICYmIDxUaXRsZUNhcHRpb24gZGF0YS1yb290Pnt0aXRsZUNhcHRpb259PC9UaXRsZUNhcHRpb24+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9PdXRlckxhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWYg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8uINCd0LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhyZXN0IGFzIGFueSkuaW5wdXRXcmFwcGVyUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIzE1NDQsINC4INC/0L7RgdC70LUg0YPQsdGA0LDRgtGMIGNsYXNzZXMuaW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIYXNDaGlwcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMuaW5wdXRXcmFwcGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgeyFoYXNPdXRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgaGFzUmVxdWlyZWRJbmRpY2F0b3IgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbm5lckxhYmVsUGxhY2VtZW50LCByZXF1aXJlZFBsYWNlbWVudENsYXNzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoaW50VGV4dCAmJiBoaW50VGFyZ2V0UGxhY2VtZW50ID09PSAnb3V0ZXInICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlciBjbGFzc05hbWU9e2NsYXNzZXMuaW5uZXJMYWJlbFBsYWNlbWVudH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRleHQ9e2hpbnRUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uPXtoaW50VGFyZ2V0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQ9e2hpbnRPZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludFNob3c9e2hhbmRsZUhpbnRTaG93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0lubmVyTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudExlZnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb250ZW50TGVmdCBkYXRhLXJvb3QgaXNDbGVhcj17Y2xlYXJ9IGlzRGVmYXVsdFZpZXc9e2lzRGVmYXVsdFZpZXd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50TGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRMYWJlbFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtjb250ZW50UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlQ29udGVudEtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXt3aXRoSGFzQ2hpcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge0Jvb2xlYW4odGV4dEJlZm9yZSAmJiBpc0NoaXBFbnVtZXJhdGlvbikgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEJlZm9yZT57dGV4dEJlZm9yZX08L1N0eWxlZFRleHRCZWZvcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtCb29sZWFuKF9jaGlwcz8ubGVuZ3RoKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRDaGlwTmV3XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwcz17X2NoaXBzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGlwQ2xpY2s9e19vbkNoaXBDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFJlZj17Z2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hpcEtleURvd249e2hhbmRsZUNoaXBLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGlwQ2xlYXI9e29uQ2hpcENsZWFyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzQ2hpcEVudW1lcmF0aW9uICYmIEJvb2xlYW4oY2hpcHM/Lmxlbmd0aCkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hpcHMgY2xhc3NOYW1lPXtjbGFzc2VzLmNoaXBzV3JhcHBlcn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpcHM/Lm1hcCgoeyBpZDogY2hpcElkLCB0ZXh0IH0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvblZpZXcgPSBjaGlwVmFsaWRhdG9yPy4oU3RyaW5nKHRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNWaWV3ID0gdmFsaWRhdGlvblZpZXc/LnZpZXcgfHwgY2hpcFZpZXc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkQ2hpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2NoaXBJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17KGVsZW1lbnQpID0+IGdldFJlZihlbGVtZW50LCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake2NoaXBJZH1fJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IGhhbmRsZUNoaXBLZXlEb3duKGV2ZW50LCBjaGlwSWQsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xlYXI9eygpID0+IG9uQ2hpcENsZWFyKGNoaXBJZCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17b25DaGlwQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwVHlwZT17Y2hpcFR5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXtyZXNWaWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFdyYXBwZXI9e1Jvb3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiAjMTU0N1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZvcmNlQ2hpcE1hbmlwdWxhdGlvbldpdGhSZWFkb25seT17X2ZvcmNlQ2hpcE1hbmlwdWxhdGlvbldpdGhSZWFkb25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ2hpcHM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRDb250YWluZXIgcmVmPXtpbnB1dENvbnRhaW5lclJlZn0gaGFzRHluYW1pY1dpZHRoPXtoYXNUZXh0QWZ0ZXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzVGV4dEJlZm9yZSAmJiA8U3R5bGVkVGV4dEJlZm9yZT57dGV4dEJlZm9yZX08L1N0eWxlZFRleHRCZWZvcmU+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRGb3JrUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2lubmVySWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17b3V0ZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtlbnVtZXJhdGlvblR5cGUgPT09ICdjaGlwJyA/IGNoaXBzLmxlbmd0aCA9PT0gMCAmJiByZXF1aXJlZCA6IHJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtsYWJlbElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17aGVscGVyVGV4dElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2lubmVyUGxhY2Vob2xkZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzVmFsdWVDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwUGxhY2Vob2xkZXJDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc1RleHRFbGxpcHNpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seSAmJiBjbGFzc2VzLnJlYWRPbmx5SW5wdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9eyFkaXNhYmxlZCAmJiByZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uSW5wdXQ9e2hhbmRsZUlucHV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlT25LZXlEb3dufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG91clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNJbm5lckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBkYXRhLXJvb3QgaWQ9e2xhYmVsSWR9IGh0bWxGb3I9e2lubmVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lckxhYmVsVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dE5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGxhY2Vob2xkZXJTaG93biAmJiAhaGFzVmFsdWUgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0UGxhY2Vob2xkZXIgaGFzUGFkZGluZz17aGFzUGxhY2Vob2xkZXJQYWRkaW5nfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzVGV4dEJlZm9yZSAmJiA8U3R5bGVkVGV4dEJlZm9yZSBpc0hpZGRlbj57dGV4dEJlZm9yZX08L1N0eWxlZFRleHRCZWZvcmU+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lclBsYWNlaG9sZGVyVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1BsYWNlaG9sZGVyT3B0aW9uYWwgJiYgb3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRQbGFjZWhvbGRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1RleHRBZnRlciAmJiA8U3R5bGVkVGV4dEFmdGVyPnt0ZXh0QWZ0ZXJ9PC9TdHlsZWRUZXh0QWZ0ZXI+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0lucHV0TGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENvbnRlbnRSaWdodFdyYXBwZXIgY2xhc3NOYW1lPXtjeChjb250ZW50UmlnaHRDb21wZW5zYXRpb25NYXJnaW4pfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudFJpZ2h0ICYmIDxTdHlsZWRDb250ZW50UmlnaHQgZGF0YS1yb290Pntjb250ZW50UmlnaHR9PC9TdHlsZWRDb250ZW50UmlnaHQ+fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyFoYXNPdXRlckxhYmVsICYmIGhpbnRUZXh0ICYmIGhpbnRUYXJnZXRQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGludENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUZXh0PXtoaW50VGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyPXtoaW50VHJpZ2dlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbj17aGludFRhcmdldEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50PXtoaW50UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50T2Zmc2V0PXtoaW50T2Zmc2V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFdpZHRoPXtoaW50V2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50U2hvdz17aGFuZGxlSGludFNob3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSW5uZXJMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENvbnRlbnRSaWdodFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5wdXRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICB7bGVmdEhlbHBlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8TGVmdEhlbHBlciBkYXRhLXJvb3QgaWQ9e2hlbHBlclRleHRJZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2xlZnRIZWxwZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0xlZnRIZWxwZXI+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9Sb290PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICApO1xuXG5leHBvcnQgY29uc3QgdGV4dEZpZWxkQ29uZmlnID0ge1xuICAgIG5hbWU6ICdUZXh0RmllbGQnLFxuICAgIHRhZzogJ2RpdicsXG4gICAgbGF5b3V0OiB0ZXh0RmllbGRSb290LFxuICAgIGJhc2UsXG4gICAgdmFyaWF0aW9uczoge1xuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgICBjc3M6IHZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIHNpemU6IHtcbiAgICAgICAgICAgIGNzczogc2l6ZUNTUyxcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYXI6IHtcbiAgICAgICAgICAgIGNzczogY2xlYXJDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6IHtcbiAgICAgICAgICAgIGNzczogZGlzYWJsZWRDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVhZE9ubHk6IHtcbiAgICAgICAgICAgIGNzczogcmVhZE9ubHlDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxQbGFjZW1lbnQ6IHtcbiAgICAgICAgICAgIGNzczogbGFiZWxQbGFjZW1lbnRDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGhpbnRWaWV3OiB7XG4gICAgICAgICAgICBjc3M6IGhpbnRWaWV3Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBoaW50U2l6ZToge1xuICAgICAgICAgICAgY3NzOiBoaW50U2l6ZUNTUyxcbiAgICAgICAgfSxcbiAgICAgICAgY2hpcFZpZXc6IHtcbiAgICAgICAgICAgIGNzczogY2hpcFZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0czoge1xuICAgICAgICBzaXplOiAnbScsXG4gICAgICAgIHZpZXc6ICdkZWZhdWx0JyxcbiAgICB9LFxufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRG9CIn0= */");
123
+ export var base = /*#__PURE__*/ css("display:block;", "base", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCIsInNvdXJjZXMiOlsic3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge1xuICAgIEZvcm1FdmVudEhhbmRsZXIsXG4gICAgQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICAgIEtleWJvYXJkRXZlbnQsXG4gICAgQ2hhbmdlRXZlbnQsXG4gICAgTW91c2VFdmVudEhhbmRsZXIsXG4gICAgQ2xpcGJvYXJkRXZlbnRIYW5kbGVyLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGb3JrUmVmIH0gZnJvbSAnQHNhbHV0ZWpzL3BsYXNtYS1jb3JlJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IGN4LCBzYWZlVXNlSWQgfSBmcm9tICdzcmMvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSb290UHJvcHMgfSBmcm9tICdzcmMvZW5naW5lcyc7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tICdzcmMvaG9va3MnO1xuXG5pbXBvcnQgdHlwZSB7IENoaXBWYWx1ZXMsIFRleHRGaWVsZFByaW1pdGl2ZVZhbHVlLCBUZXh0RmllbGRQcm9wcywgVGV4dEZpZWxkUm9vdFByb3BzIH0gZnJvbSAnLi9UZXh0RmllbGQudHlwZXMnO1xuaW1wb3J0IHsgYmFzZSBhcyBzaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19zaXplL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyB2aWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL192aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBjbGVhckNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fY2xlYXIvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGRpc2FibGVkQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19kaXNhYmxlZC9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgcmVhZE9ubHlDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3JlYWQtb25seS9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgbGFiZWxQbGFjZW1lbnRDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2xhYmVsLXBsYWNlbWVudC9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgaGludFZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2hpbnQtdmlldy9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgaGludFNpemVDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2hpbnQtc2l6ZS9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgY2hpcFZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2NoaXAtdmlldy9iYXNlJztcbmltcG9ydCB7XG4gICAgSW5wdXQsXG4gICAgSW5wdXRDb250YWluZXIsXG4gICAgTGVmdEhlbHBlcixcbiAgICBMYWJlbCxcbiAgICBJbnB1dFdyYXBwZXIsXG4gICAgSW5wdXRMYWJlbFdyYXBwZXIsXG4gICAgU3R5bGVkQ29udGVudExlZnQsXG4gICAgU3R5bGVkQ29udGVudFJpZ2h0LFxuICAgIFN0eWxlZENoaXBzLFxuICAgIFN0eWxlZFRleHRCZWZvcmUsXG4gICAgU3R5bGVkVGV4dEFmdGVyLFxuICAgIFN0eWxlZEluZGljYXRvcixcbiAgICBTdHlsZWRPcHRpb25hbFRleHQsXG4gICAgSW5wdXRQbGFjZWhvbGRlcixcbiAgICBPdXRlckxhYmVsV3JhcHBlcixcbiAgICBUaXRsZUNhcHRpb24sXG4gICAgU3R5bGVkSGludFdyYXBwZXIsXG4gICAgU3R5bGVkSW5kaWNhdG9yV3JhcHBlcixcbiAgICBTdHlsZWRDb250ZW50UmlnaHRXcmFwcGVyLFxufSBmcm9tICcuL1RleHRGaWVsZC5zdHlsZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJy4vVGV4dEZpZWxkLnRva2Vucyc7XG5pbXBvcnQgeyBUZXh0RmllbGRDaGlwIH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyB1c2VLZXlOYXZpZ2F0aW9uIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgeyBIaW50Q29tcG9uZW50IH0gZnJvbSAnLi91aS9IaW50L0hpbnQnO1xuaW1wb3J0IHsgZ2V0SW5wdXRXaWR0aCB9IGZyb20gJy4vZ2V0SW5wdXRXaWR0aCc7XG5cbmNvbnN0IG9wdGlvbmFsVGV4dCA9ICdvcHRpb25hbCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYFxuICAgIC8qIE5PVEU6IFdlYmtpdCDQvdC1INC/0YDQuNC80LXQvdGP0LXRgiBvcGFjaXR5INC6IGlubGluZSDRgtC10LPQsNC8ICovXG4gICAgZGlzcGxheTogYmxvY2s7XG5gO1xuXG5jb25zdCBISU5UX0RFRkFVTFRfT0ZGU0VUOiBbbnVtYmVyLCBudW1iZXJdID0gWzAsIDBdO1xuXG5leHBvcnQgY29uc3QgdGV4dEZpZWxkUm9vdCA9IChSb290OiBSb290UHJvcHM8SFRNTERpdkVsZW1lbnQsIFRleHRGaWVsZFJvb3RQcm9wcz4pID0+XG4gICAgZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBUZXh0RmllbGRQcm9wcz4oXG4gICAgICAgIChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgc3R5bGUsXG5cbiAgICAgICAgICAgICAgICAvLyBsYXlvdXRcbiAgICAgICAgICAgICAgICBjb250ZW50TGVmdCxcbiAgICAgICAgICAgICAgICBjb250ZW50UmlnaHQsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAga2VlcFBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIHRleHRCZWZvcmUsXG4gICAgICAgICAgICAgICAgdGV4dEFmdGVyLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIGxlZnRIZWxwZXIsXG4gICAgICAgICAgICAgICAgZW51bWVyYXRpb25UeXBlID0gJ3BsYWluJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlZFBsYWNlbWVudCA9ICdyaWdodCcsXG4gICAgICAgICAgICAgICAgaGFzUmVxdWlyZWRJbmRpY2F0b3IgPSB0cnVlLFxuICAgICAgICAgICAgICAgIHRpdGxlQ2FwdGlvbixcbiAgICAgICAgICAgICAgICBjaGlwVmlldyA9ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBjaGlwVmFsaWRhdG9yLFxuXG4gICAgICAgICAgICAgICAgLy8gaGludFxuICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyID0gJ2hvdmVyJyxcbiAgICAgICAgICAgICAgICBoaW50VGV4dCxcbiAgICAgICAgICAgICAgICBoaW50VmlldyA9ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBoaW50U2l6ZSA9ICdtJyxcbiAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbixcbiAgICAgICAgICAgICAgICBoaW50VGFyZ2V0UGxhY2VtZW50ID0gJ291dGVyJyxcbiAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdyxcbiAgICAgICAgICAgICAgICBoaW50T2Zmc2V0ID0gSElOVF9ERUZBVUxUX09GRlNFVCxcbiAgICAgICAgICAgICAgICBoaW50V2lkdGgsXG4gICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0LFxuXG4gICAgICAgICAgICAgICAgLy8gdmFyaWF0aW9uc1xuICAgICAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICByZWFkT25seSA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICBjbGVhciA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsLFxuICAgICAgICAgICAgICAgIGhhc0RpdmlkZXIsXG5cbiAgICAgICAgICAgICAgICAvLyBjb250cm9sbGVkXG4gICAgICAgICAgICAgICAgdmFsdWU6IG91dGVyVmFsdWUsXG4gICAgICAgICAgICAgICAgY2hpcHM6IHZhbHVlcyxcbiAgICAgICAgICAgICAgICBjaGlwVHlwZSA9ICdkZWZhdWx0JyxcblxuICAgICAgICAgICAgICAgIC8vIGV2ZW50c1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ2hpcHMsXG4gICAgICAgICAgICAgICAgb25TZWFyY2gsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uRm9jdXMsXG4gICAgICAgICAgICAgICAgb25CbHVyLFxuICAgICAgICAgICAgICAgIG9uUGFzdGUsXG5cbiAgICAgICAgICAgICAgICAvLyDQn9GA0L7Qv9GB0Ysg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8sINC90LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHksXG5cbiAgICAgICAgICAgICAgICAuLi5yZXN0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmLFxuICAgICAgICApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dEZvcmtSZWYgPSB1c2VGb3JrUmVmKGlucHV0UmVmLCByZWYpO1xuICAgICAgICAgICAgY29uc3QgY2hpcHNSZWZzID0gdXNlUmVmPEFycmF5PEhUTUxCdXR0b25FbGVtZW50Pj4oW10pO1xuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVkUmVmcyA9IHsgY29udGVudFJlZiwgaW5wdXRSZWYsIGNoaXBzUmVmcyB9O1xuXG4gICAgICAgICAgICBjb25zdCBbaGFzVmFsdWUsIHNldEhhc1ZhbHVlXSA9IHVzZVN0YXRlKFxuICAgICAgICAgICAgICAgIEJvb2xlYW4ob3V0ZXJWYWx1ZSkgfHwgQm9vbGVhbihpbnB1dFJlZj8uY3VycmVudD8udmFsdWUpIHx8IEJvb2xlYW4ocmVzdD8uZGVmYXVsdFZhbHVlKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBbaGFzRm9jdXMsIHNldEhhc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgICAgICAgICAgY29uc3QgW2NoaXBzLCBzZXRDaGlwc10gPSB1c2VTdGF0ZTxBcnJheTxDaGlwVmFsdWVzPj4oW10pO1xuICAgICAgICAgICAgY29uc3QgW2lzSGludFZpc2libGUsIHNldElzSGludFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCB1bmlxSWQgPSBzYWZlVXNlSWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVySWQgPSBpZCB8fCB1bmlxSWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbElkID0gc2FmZVVzZUlkKCk7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXJUZXh0SWQgPSBzYWZlVXNlSWQoKTtcblxuICAgICAgICAgICAgY29uc3QgaXNEZWZhdWx0VmlldyA9IHZpZXcgPT09ICdkZWZhdWx0JyB8fCByZWFkT25seSB8fCBkaXNhYmxlZDtcblxuICAgICAgICAgICAgY29uc3QgaXNDaGlwRW51bWVyYXRpb24gPSBlbnVtZXJhdGlvblR5cGUgPT09ICdjaGlwJztcbiAgICAgICAgICAgIGNvbnN0IGlzQ2hpcHNWaXNpYmxlID0gaXNDaGlwRW51bWVyYXRpb24gJiYgQm9vbGVhbihjaGlwcz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IHdpdGhIYXNDaGlwcyA9IGlzQ2hpcHNWaXNpYmxlID8gY2xhc3Nlcy5oYXNDaGlwcyA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGFzTGFiZWxWYWx1ZSA9IEJvb2xlYW4obGFiZWwpO1xuICAgICAgICAgICAgY29uc3QgaGFzSW5uZXJMYWJlbCA9IHNpemUgIT09ICd4cycgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWlzQ2hpcHNWaXNpYmxlICYmIGhhc0xhYmVsVmFsdWU7XG4gICAgICAgICAgICBjb25zdCBoYXNPdXRlckxhYmVsID0gbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicgJiYgaGFzTGFiZWxWYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyS2VlcFBsYWNlaG9sZGVyID0ga2VlcFBsYWNlaG9sZGVyICYmIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInO1xuICAgICAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXIgPSBCb29sZWFuKHBsYWNlaG9sZGVyKSAmJiAoaW5uZXJLZWVwUGxhY2Vob2xkZXIgfHwgIWhhc0lubmVyTGFiZWwpO1xuICAgICAgICAgICAgbGV0IGhhc1RleHRBZnRlciA9IEJvb2xlYW4odGV4dEFmdGVyKTtcbiAgICAgICAgICAgIGxldCBoYXNUZXh0QmVmb3JlID0gdGV4dEJlZm9yZSAmJiAhaXNDaGlwRW51bWVyYXRpb247XG4gICAgICAgICAgICBpZiAobGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1ZhbHVlICYmICFoYXNQbGFjZWhvbGRlciAmJiAhaGFzRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzVGV4dEFmdGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGhhc1RleHRCZWZvcmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyUGFkZGluZyA9IGhhc0lubmVyTGFiZWwgJiYga2VlcFBsYWNlaG9sZGVyICYmIHNpemUgIT09ICd4cyc7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyTGFiZWxWYWx1ZSA9IGhhc0lubmVyTGFiZWwgfHwgaGFzT3V0ZXJMYWJlbCA/IGxhYmVsIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlID0gbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWhhc0lubmVyTGFiZWwgPyB1bmRlZmluZWQgOiBsYWJlbFBsYWNlbWVudDtcblxuICAgICAgICAgICAgY29uc3QgaW5uZXJQbGFjZWhvbGRlclZhbHVlID0gaGFzUGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyU2hvd24gPSBCb29sZWFuKGlubmVyUGxhY2Vob2xkZXJWYWx1ZSkgJiYgIWhhc1ZhbHVlO1xuXG4gICAgICAgICAgICBjb25zdCBjbGVhckNsYXNzID0gY2xlYXIgPyBjbGFzc2VzLmNsZWFyIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzRGl2aWRlckNsYXNzID0gaGFzRGl2aWRlciA/IGNsYXNzZXMuaGFzRGl2aWRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0lubmVySGludENsYXNzID0gaGludFRleHQgJiYgaGludFRhcmdldFBsYWNlbWVudCA9PT0gJ291dGVyJyA/IGNsYXNzZXMuaGFzSGludCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0hpbnRDbGFzcyA9IGhpbnRUZXh0ID8gY2xhc3Nlcy5oYXNIaW50IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyA9IHJlcXVpcmVkUGxhY2VtZW50ID09PSAncmlnaHQnID8gY2xhc3Nlcy5yZXF1aXJlZEFsaWduUmlnaHQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbFBsYWNlbWVudENsYXNzID0gaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlXG4gICAgICAgICAgICAgICAgPyBjbGFzc2VzW2Ake2lubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZX1MYWJlbFBsYWNlbWVudGAgYXMga2V5b2YgdHlwZW9mIGNsYXNzZXNdXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNWYWx1ZUNsYXNzID0gaGFzVmFsdWUgPyBjbGFzc2VzLmhhc1ZhbHVlIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qga2VlcFBsYWNlaG9sZGVyQ2xhc3MgPSBoYXNQbGFjZWhvbGRlciAmJiBwbGFjZWhvbGRlclNob3duICYmIGNsYXNzZXMua2VlcFBsYWNlaG9sZGVyO1xuXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudExlZnQgJiYgaXNDaGlwc1Zpc2libGUgJiYgY2hpcFR5cGUgPT09ICdkZWZhdWx0JyA/IGNsYXNzZXMuaGFzRW1wdHlDb250ZW50TGVmdCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudFJpZ2h0ICYmIGlzQ2hpcHNWaXNpYmxlICYmIGNoaXBUeXBlID09PSAnZGVmYXVsdCcgPyBjbGFzc2VzLmhhc0VtcHR5Q29udGVudFJpZ2h0IDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCBjb250ZW50UmlnaHRDb21wZW5zYXRpb25NYXJnaW4gPVxuICAgICAgICAgICAgICAgICFoYXNPdXRlckxhYmVsICYmIGhpbnRUZXh0ICYmIGhpbnRUYXJnZXRQbGFjZW1lbnQgPT09ICdpbm5lcidcbiAgICAgICAgICAgICAgICAgICAgPyBjbGFzc2VzLmNvbnRlbnRSaWdodENvbXBlbnNhdGlvbk1hcmdpblxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGludFJlZiA9IHVzZU91dHNpZGVDbGljazxIVE1MRGl2RWxlbWVudD4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBoaW50SW5uZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaGludEZvcmtSZWYgPSB1c2VGb3JrUmVmKGhpbnRSZWYsIGhpbnRJbm5lclJlZik7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUlucHV0OiBGb3JtRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKHZhbHVlKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChldmVudDogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgIG9uRm9jdXM/LihldmVudCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVCbHVyID0gKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uQmx1cj8uKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRTaG93ID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRIaWRlID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVIaW50Q2xpY2s6IE1vdXNlRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFoaW50VGV4dCB8fCBoaW50VHJpZ2dlciAhPT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0SXNQb3BvdmVyID0gZXZlbnQudGFyZ2V0ID09PSBoaW50SW5uZXJSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBjb25zdCByb290SGFzVGFyZ2V0ID0gaGludElubmVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0SXNQb3BvdmVyICYmICFyb290SGFzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgbWF4TGVuZ3RoLCB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aCAhPT0gLTEgJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChoYXNUZXh0QWZ0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gZ2V0SW5wdXRXaWR0aChldmVudC5jdXJyZW50VGFyZ2V0LCBpbnB1dENvbnRhaW5lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS53aWR0aCA9IGAke3RleHRXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlUGFzdGU6IENsaXBib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZCB8fCByZWFkT25seSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG9uUGFzdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgb25QYXN0ZShldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGhhc1RleHRBZnRlcikge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gZ2V0SW5wdXRXaWR0aChpbnB1dFJlZi5jdXJyZW50LCBpbnB1dENvbnRhaW5lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuc3R5bGUud2lkdGggPSBgJHt0ZXh0V2lkdGh9cHhgO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVDaGlwcyA9IChuZXdDaGlwczogQXJyYXk8Q2hpcFZhbHVlcz4sIG5ld1ZhbHVlczogQXJyYXk8VGV4dEZpZWxkUHJpbWl0aXZlVmFsdWU+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0Q2hpcHMobmV3Q2hpcHMpO1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ2hpcHM/LihuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgeyBoYW5kbGVJbnB1dEtleWRvd24sIGhhbmRsZUNoaXBLZXlEb3duLCBvbkNoaXBDbGVhciwgaGFuZGxlQ29udGVudEtleURvd24gfSA9IHVzZUtleU5hdmlnYXRpb24oe1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZWRSZWZzLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgICAgIGNoaXBzLFxuICAgICAgICAgICAgICAgIGVudW1lcmF0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICB1cGRhdGVDaGlwcyxcbiAgICAgICAgICAgICAgICBvblNlYXJjaCxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICAgICAgICBvbkVudGVyRGlzYWJsZWQ6IF9vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3Qgb25DaGlwQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXRGb2N1cyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVhZE9ubHkgfHwgZGlzYWJsZWQgfHwgIWlucHV0UmVmPy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dFJlZi5jdXJyZW50Lm9mZnNldExlZnQsXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGdldFJlZiA9IChlbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGwsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBjaGlwc1JlZnM/LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpcHNSZWZzLmN1cnJlbnRbaW5kZXhdID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVPbktleURvd24gPSAoZXZlbnQ6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+ICYgS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUlucHV0S2V5ZG93bihldmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob25LZXlEb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzVGV4dEFmdGVyICYmIGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gZ2V0SW5wdXRXaWR0aChpbnB1dFJlZi5jdXJyZW50LCBpbnB1dENvbnRhaW5lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudC5zdHlsZS53aWR0aCA9IGAke3RleHRXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudD8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3dpZHRoJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgW2hhc1RleHRBZnRlciwgb3V0ZXJWYWx1ZV0pO1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNDaGlwRW51bWVyYXRpb24gJiYgIXZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdDaGlwcyA9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz8ubWFwKCh2YWx1ZSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7aW5kZXh9XyR7dmFsdWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9KSkgfHwgW107XG5cbiAgICAgICAgICAgICAgICBzZXRDaGlwcyhuZXdDaGlwcyk7XG4gICAgICAgICAgICB9LCBbaXNDaGlwRW51bWVyYXRpb24sIHZhbHVlc10pO1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc1ZhbHVlKEJvb2xlYW4ocmVzdD8uZGVmYXVsdFZhbHVlKSk7XG4gICAgICAgICAgICB9LCBbcmVzdC5kZWZhdWx0VmFsdWVdKTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKG91dGVyVmFsdWUpIHx8IEJvb2xlYW4oaW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlKSk7XG4gICAgICAgICAgICB9LCBbb3V0ZXJWYWx1ZSwgaW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyT3B0aW9uYWwgPSBCb29sZWFuKHJlcXVpcmVkID8gZmFsc2UgOiBvcHRpb25hbCk7XG4gICAgICAgICAgICBjb25zdCBoYXNQbGFjZWhvbGRlck9wdGlvbmFsID0gaW5uZXJPcHRpb25hbCAmJiAhaW5uZXJMYWJlbFZhbHVlICYmICFoYXNPdXRlckxhYmVsO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uYWxUZXh0Tm9kZSA9IGlubmVyT3B0aW9uYWwgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgICAgICAgICAgICAge0Jvb2xlYW4oaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA/IGlubmVyUGxhY2Vob2xkZXJWYWx1ZSA6IGlubmVyTGFiZWxWYWx1ZSkgJiYgJ1xceGEwJ31cbiAgICAgICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsO1xuXG4gICAgICAgICAgICBjb25zdCBjbGFzc1RleHRFbGxpcHNpcyA9XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgICAgICAgICAgICAhKHJlc3QgYXMgYW55KS5fdGV4dEVsbGlwc2lzRGlzYWJsZSAmJiAhdGV4dEFmdGVyID8gY2xhc3Nlcy5pbnB1dFRleHRFbGxpcHNpcyA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8Um9vdFxuICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshZGlzYWJsZWQgJiYgcmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PXtpbm5lckxhYmVsUGxhY2VtZW50VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUlucHV0Rm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEtcm9vdFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNEaXZpZGVyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNJbm5lckhpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMudGV4dEZpZWxkR3JvdXBJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHsuLi4oaGludFRleHQgJiYgeyBoaW50VmlldywgaGludFNpemUgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7KGhhc091dGVyTGFiZWwgfHwgdGl0bGVDYXB0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8T3V0ZXJMYWJlbFdyYXBwZXIgaXNJbm5lckxhYmVsPXtsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBpZD17bGFiZWxJZH0gaHRtbEZvcj17aWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lckxhYmVsVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGludFRleHQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGV4dD17aGludFRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldEljb249e2hpbnRUYXJnZXRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludE9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50U2hvdz17aGFuZGxlSGludFNob3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiBoYXNSZXF1aXJlZEluZGljYXRvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5vdXRlckxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0hpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEluZGljYXRvcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGl0bGVDYXB0aW9uICYmIDxUaXRsZUNhcHRpb24gZGF0YS1yb290Pnt0aXRsZUNhcHRpb259PC9UaXRsZUNhcHRpb24+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9PdXRlckxhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWYg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8uINCd0LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhyZXN0IGFzIGFueSkuaW5wdXRXcmFwcGVyUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIzE1NDQsINC4INC/0L7RgdC70LUg0YPQsdGA0LDRgtGMIGNsYXNzZXMuaW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIYXNDaGlwcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMuaW5wdXRXcmFwcGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgeyFoYXNPdXRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgaGFzUmVxdWlyZWRJbmRpY2F0b3IgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbm5lckxhYmVsUGxhY2VtZW50LCByZXF1aXJlZFBsYWNlbWVudENsYXNzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoaW50VGV4dCAmJiBoaW50VGFyZ2V0UGxhY2VtZW50ID09PSAnb3V0ZXInICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlciBjbGFzc05hbWU9e2NsYXNzZXMuaW5uZXJMYWJlbFBsYWNlbWVudH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRleHQ9e2hpbnRUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uPXtoaW50VGFyZ2V0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQ9e2hpbnRPZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludFNob3c9e2hhbmRsZUhpbnRTaG93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0lubmVyTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudExlZnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb250ZW50TGVmdCBkYXRhLXJvb3QgaXNDbGVhcj17Y2xlYXJ9IGlzRGVmYXVsdFZpZXc9e2lzRGVmYXVsdFZpZXd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50TGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRMYWJlbFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtjb250ZW50UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlQ29udGVudEtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXt3aXRoSGFzQ2hpcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge0Jvb2xlYW4odGV4dEJlZm9yZSAmJiBpc0NoaXBFbnVtZXJhdGlvbikgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEJlZm9yZT57dGV4dEJlZm9yZX08L1N0eWxlZFRleHRCZWZvcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNDaGlwRW51bWVyYXRpb24gJiYgQm9vbGVhbihjaGlwcz8ubGVuZ3RoKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGlwcyBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcHNXcmFwcGVyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjaGlwcz8ubWFwKCh7IGlkOiBjaGlwSWQsIHRleHQgfSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uVmlldyA9IGNoaXBWYWxpZGF0b3I/LihTdHJpbmcodGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc1ZpZXcgPSB2YWxpZGF0aW9uVmlldz8udmlldyB8fCBjaGlwVmlldztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRDaGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17Y2hpcElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXsoZWxlbWVudCkgPT4gZ2V0UmVmKGVsZW1lbnQsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7Y2hpcElkfV8ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e3RleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4gaGFuZGxlQ2hpcEtleURvd24oZXZlbnQsIGNoaXBJZCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhcj17KCkgPT4gb25DaGlwQ2xlYXIoY2hpcElkLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNoaXBDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaXBUeXBlPXtjaGlwVHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3Jlc1ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290V3JhcHBlcj17Um9vdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86ICMxNTQ3XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZm9yY2VDaGlwTWFuaXB1bGF0aW9uV2l0aFJlYWRvbmx5PXtfZm9yY2VDaGlwTWFuaXB1bGF0aW9uV2l0aFJlYWRvbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGlwcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lciByZWY9e2lucHV0Q29udGFpbmVyUmVmfSBoYXNEeW5hbWljV2lkdGg9e2hhc1RleHRBZnRlcn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNUZXh0QmVmb3JlICYmIDxTdHlsZWRUZXh0QmVmb3JlPnt0ZXh0QmVmb3JlfTwvU3R5bGVkVGV4dEJlZm9yZT59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17aW5uZXJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtvdXRlclZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2VudW1lcmF0aW9uVHlwZSA9PT0gJ2NoaXAnID8gY2hpcHMubGVuZ3RoID09PSAwICYmIHJlcXVpcmVkIDogcmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e2xhYmVsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtoZWxwZXJUZXh0SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW5uZXJQbGFjZWhvbGRlclZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNWYWx1ZUNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXBQbGFjZWhvbGRlckNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzVGV4dEVsbGlwc2lzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5ICYmIGNsYXNzZXMucmVhZE9ubHlJbnB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seT17IWRpc2FibGVkICYmIHJlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVPbktleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uUGFzdGU9e2hhbmRsZVBhc3RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b3VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc0lubmVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGRhdGEtcm9vdCBpZD17bGFiZWxJZH0gaHRtbEZvcj17aW5uZXJJZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyTGFiZWxWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwbGFjZWhvbGRlclNob3duICYmICFoYXNWYWx1ZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRQbGFjZWhvbGRlciBoYXNQYWRkaW5nPXtoYXNQbGFjZWhvbGRlclBhZGRpbmd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNUZXh0QmVmb3JlICYmIDxTdHlsZWRUZXh0QmVmb3JlIGlzSGlkZGVuPnt0ZXh0QmVmb3JlfTwvU3R5bGVkVGV4dEJlZm9yZT59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyUGxhY2Vob2xkZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzUGxhY2Vob2xkZXJPcHRpb25hbCAmJiBvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dFBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzVGV4dEFmdGVyICYmIDxTdHlsZWRUZXh0QWZ0ZXI+e3RleHRBZnRlcn08L1N0eWxlZFRleHRBZnRlcj59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ29udGVudFJpZ2h0V3JhcHBlciBjbGFzc05hbWU9e2N4KGNvbnRlbnRSaWdodENvbXBlbnNhdGlvbk1hcmdpbil9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50UmlnaHQgJiYgPFN0eWxlZENvbnRlbnRSaWdodCBkYXRhLXJvb3Q+e2NvbnRlbnRSaWdodH08L1N0eWxlZENvbnRlbnRSaWdodD59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IWhhc091dGVyTGFiZWwgJiYgaGludFRleHQgJiYgaGludFRhcmdldFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaW50Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2hpbnRGb3JrUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRleHQ9e2hpbnRUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRyaWdnZXI9e2hpbnRUcmlnZ2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNIaW50VmlzaWJsZT17aXNIaW50VmlzaWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uPXtoaW50VGFyZ2V0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQ9e2hpbnRQbGFjZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50SGFzQXJyb3c9e2hpbnRIYXNBcnJvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQ9e2hpbnRPZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50V2lkdGg9e2hpbnRXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRDb250ZW50TGVmdD17aGludENvbnRlbnRMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRTaG93PXtoYW5kbGVIaW50U2hvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRIaWRlPXtoYW5kbGVIaW50SGlkZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNJbm5lckxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ29udGVudFJpZ2h0V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9JbnB1dFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIHtsZWZ0SGVscGVyICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxMZWZ0SGVscGVyIGRhdGEtcm9vdCBpZD17aGVscGVyVGV4dElkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bGVmdEhlbHBlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTGVmdEhlbHBlcj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICk7XG5cbmV4cG9ydCBjb25zdCB0ZXh0RmllbGRDb25maWcgPSB7XG4gICAgbmFtZTogJ1RleHRGaWVsZCcsXG4gICAgdGFnOiAnZGl2JyxcbiAgICBsYXlvdXQ6IHRleHRGaWVsZFJvb3QsXG4gICAgYmFzZSxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNzczogdmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZToge1xuICAgICAgICAgICAgY3NzOiBzaXplQ1NTLFxuICAgICAgICB9LFxuICAgICAgICBjbGVhcjoge1xuICAgICAgICAgICAgY3NzOiBjbGVhckNTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkaXNhYmxlZDoge1xuICAgICAgICAgICAgY3NzOiBkaXNhYmxlZENTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZWFkT25seToge1xuICAgICAgICAgICAgY3NzOiByZWFkT25seUNTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbFBsYWNlbWVudDoge1xuICAgICAgICAgICAgY3NzOiBsYWJlbFBsYWNlbWVudENTUyxcbiAgICAgICAgfSxcbiAgICAgICAgaGludFZpZXc6IHtcbiAgICAgICAgICAgIGNzczogaGludFZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGhpbnRTaXplOiB7XG4gICAgICAgICAgICBjc3M6IGhpbnRTaXplQ1NTLFxuICAgICAgICB9LFxuICAgICAgICBjaGlwVmlldzoge1xuICAgICAgICAgICAgY3NzOiBjaGlwVmlld0NTUyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIHNpemU6ICdtJyxcbiAgICAgICAgdmlldzogJ2RlZmF1bHQnLFxuICAgIH0sXG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNEb0IifQ== */");
124
124
  var HINT_DEFAULT_OFFSET = [
125
125
  0,
126
126
  0
@@ -131,9 +131,7 @@ export var textFieldRoot = function(Root) {
131
131
  contentLeft = _param.contentLeft, contentRight = _param.contentRight, label = _param.label, labelPlacement = _param.labelPlacement, keepPlaceholder = _param.keepPlaceholder, textBefore = _param.textBefore, textAfter = _param.textAfter, placeholder = _param.placeholder, leftHelper = _param.leftHelper, _param_enumerationType = _param.enumerationType, enumerationType = _param_enumerationType === void 0 ? 'plain' : _param_enumerationType, _param_requiredPlacement = _param.requiredPlacement, requiredPlacement = _param_requiredPlacement === void 0 ? 'right' : _param_requiredPlacement, _param_hasRequiredIndicator = _param.hasRequiredIndicator, hasRequiredIndicator = _param_hasRequiredIndicator === void 0 ? true : _param_hasRequiredIndicator, titleCaption = _param.titleCaption, _param_chipView = _param.chipView, chipView = _param_chipView === void 0 ? 'default' : _param_chipView, chipValidator = _param.chipValidator, _param_hintTrigger = _param.// hint
132
132
  hintTrigger, hintTrigger = _param_hintTrigger === void 0 ? 'hover' : _param_hintTrigger, hintText = _param.hintText, _param_hintView = _param.hintView, hintView = _param_hintView === void 0 ? 'default' : _param_hintView, _param_hintSize = _param.hintSize, hintSize = _param_hintSize === void 0 ? 'm' : _param_hintSize, hintTargetIcon = _param.hintTargetIcon, _param_hintTargetPlacement = _param.hintTargetPlacement, hintTargetPlacement = _param_hintTargetPlacement === void 0 ? 'outer' : _param_hintTargetPlacement, _param_hintPlacement = _param.hintPlacement, hintPlacement = _param_hintPlacement === void 0 ? 'auto' : _param_hintPlacement, hintHasArrow = _param.hintHasArrow, _param_hintOffset = _param.hintOffset, hintOffset = _param_hintOffset === void 0 ? HINT_DEFAULT_OFFSET : _param_hintOffset, hintWidth = _param.hintWidth, hintContentLeft = _param.hintContentLeft, // variations
133
133
  view = _param.view, size = _param.size, _param_readOnly = _param.readOnly, readOnly = _param_readOnly === void 0 ? false : _param_readOnly, _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, _param_required = _param.required, required = _param_required === void 0 ? false : _param_required, _param_clear = _param.clear, clear = _param_clear === void 0 ? false : _param_clear, optional = _param.optional, hasDivider = _param.hasDivider, // controlled
134
- outerValue = _param.value, values = _param.chips, _param_chipType = _param.chipType, chipType = _param_chipType === void 0 ? 'default' : _param_chipType, // @ts-ignore
135
- _chips = _param._chips, // @ts-ignore
136
- _onChipClick = _param._onChipClick, // events
134
+ outerValue = _param.value, values = _param.chips, _param_chipType = _param.chipType, chipType = _param_chipType === void 0 ? 'default' : _param_chipType, // events
137
135
  onChange = _param.onChange, onChangeChips = _param.onChangeChips, onSearch = _param.onSearch, onKeyDown = _param.onKeyDown, onFocus = _param.onFocus, onBlur = _param.onBlur, onPaste = _param.onPaste, // Пропсы для внутреннего использования, не отдается наружу.
138
136
  // @ts-ignore
139
137
  _onEnterDisabled = _param._onEnterDisabled, // @ts-ignore
@@ -178,8 +176,6 @@ export var textFieldRoot = function(Root) {
178
176
  "value",
179
177
  "chips",
180
178
  "chipType",
181
- "_chips",
182
- "_onChipClick",
183
179
  "onChange",
184
180
  "onChangeChips",
185
181
  "onSearch",
@@ -211,7 +207,7 @@ export var textFieldRoot = function(Root) {
211
207
  var helperTextId = safeUseId();
212
208
  var isDefaultView = view === 'default' || readOnly || disabled;
213
209
  var isChipEnumeration = enumerationType === 'chip';
214
- var isChipsVisible = isChipEnumeration && Boolean((chips === null || chips === void 0 ? void 0 : chips.length) || (_chips === null || _chips === void 0 ? void 0 : _chips.length));
210
+ var isChipsVisible = isChipEnumeration && Boolean(chips === null || chips === void 0 ? void 0 : chips.length);
215
211
  var withHasChips = isChipsVisible ? classes.hasChips : undefined;
216
212
  var hasLabelValue = Boolean(label);
217
213
  var hasInnerLabel = size !== 'xs' && labelPlacement === 'inner' && !isChipsVisible && hasLabelValue;
@@ -466,15 +462,7 @@ export var textFieldRoot = function(Root) {
466
462
  ref: contentRef,
467
463
  onKeyDown: handleContentKeyDown,
468
464
  className: withHasChips
469
- }, Boolean(textBefore && isChipEnumeration) && /*#__PURE__*/ React.createElement(StyledTextBefore, null, textBefore), Boolean(_chips === null || _chips === void 0 ? void 0 : _chips.length) && /*#__PURE__*/ React.createElement(TextFieldChipNew, {
470
- chips: _chips,
471
- onChipClick: _onChipClick,
472
- getRef: getRef,
473
- handleChipKeyDown: handleChipKeyDown,
474
- onChipClear: onChipClear,
475
- view: view,
476
- readOnly: readOnly
477
- }), isChipEnumeration && Boolean(chips === null || chips === void 0 ? void 0 : chips.length) && /*#__PURE__*/ React.createElement(StyledChips, {
465
+ }, Boolean(textBefore && isChipEnumeration) && /*#__PURE__*/ React.createElement(StyledTextBefore, null, textBefore), isChipEnumeration && Boolean(chips === null || chips === void 0 ? void 0 : chips.length) && /*#__PURE__*/ React.createElement(StyledChips, {
478
466
  className: classes.chipsWrapper
479
467
  }, chips === null || chips === void 0 ? void 0 : chips.map(function(param, index) {
480
468
  var chipId = param.id, text = param.text;