highmark-markdown 1.2.71 → 1.2.73

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 (256) hide show
  1. package/lib/attributeNames.js +7 -7
  2. package/lib/constants.js +19 -19
  3. package/lib/example/constants.js +7 -7
  4. package/lib/example/customEventTypes.js +9 -9
  5. package/lib/example/importer.js +72 -28
  6. package/lib/example/indexOptions.js +3 -3
  7. package/lib/example/view/button/page.js +34 -135
  8. package/lib/example/view/button/tab/css.js +14 -114
  9. package/lib/example/view/button/tab/html.js +14 -114
  10. package/lib/example/view/button/tab/markdown.js +14 -114
  11. package/lib/example/view/button/tab/markdownStyle.js +14 -114
  12. package/lib/example/view/button/tab/plainText.js +14 -114
  13. package/lib/example/view/button/tab/preview.js +14 -114
  14. package/lib/example/view/button/tab.js +36 -136
  15. package/lib/example/view/div/container/css.js +15 -153
  16. package/lib/example/view/div/container/html.js +19 -157
  17. package/lib/example/view/div/container/markdown.js +38 -190
  18. package/lib/example/view/div/container/markdownStyle.js +39 -191
  19. package/lib/example/view/div/container/plainText.js +15 -153
  20. package/lib/example/view/div/container/preview.js +25 -177
  21. package/lib/example/view/div/container.js +20 -156
  22. package/lib/example/view/div/html.js +18 -173
  23. package/lib/example/view/div/pageButtons.js +63 -236
  24. package/lib/example/view/div/preview.js +58 -268
  25. package/lib/example/view/div/sizeable/left.js +13 -104
  26. package/lib/example/view/div/tabButtons/left.js +42 -161
  27. package/lib/example/view/div/tabButtons/right.js +75 -198
  28. package/lib/example/view/div/tabButtons.js +15 -172
  29. package/lib/example/view/textarea/css.js +29 -147
  30. package/lib/example/view/textarea/markdown.js +29 -145
  31. package/lib/example/view/textarea/markdownStyle.js +29 -145
  32. package/lib/example/view/textarea/parseTree/css.js +21 -132
  33. package/lib/example/view/textarea/parseTree/html.js +21 -132
  34. package/lib/example/view/textarea/parseTree/markdown.js +17 -129
  35. package/lib/example/view/textarea/parseTree/markdownStyle.js +17 -129
  36. package/lib/example/view/textarea/parseTree.js +20 -135
  37. package/lib/example/view/textarea/plainText.js +32 -153
  38. package/lib/example/view/textarea.js +16 -23
  39. package/lib/example/view/xmp.js +30 -187
  40. package/lib/example/view.js +281 -518
  41. package/lib/example.js +10 -10
  42. package/lib/index/item.js +25 -87
  43. package/lib/index/list.js +29 -62
  44. package/lib/index/match.js +23 -62
  45. package/lib/index.js +34 -34
  46. package/lib/letters.js +3 -3
  47. package/lib/map/className.js +6 -6
  48. package/lib/map/node/css.js +50 -42
  49. package/lib/map/node/html.js +108 -71
  50. package/lib/map/nonTerminalNode/markdown.js +49 -40
  51. package/lib/map/nonTerminalNode/markdownStyle.js +49 -40
  52. package/lib/map/tagName.js +6 -6
  53. package/lib/markdown/bnf.js +300 -3
  54. package/lib/markdown/entries.js +3 -3
  55. package/lib/markdown/lexer.js +23 -126
  56. package/lib/markdown/parser.js +18 -121
  57. package/lib/markdownStyle/bnf.js +80 -3
  58. package/lib/markdownStyle/entries.js +8 -8
  59. package/lib/markdownStyle/lexer.js +23 -126
  60. package/lib/markdownStyle/parser.js +18 -121
  61. package/lib/mixins/node.js +53 -53
  62. package/lib/mixins/token.js +13 -13
  63. package/lib/node/css/amount.js +16 -110
  64. package/lib/node/css/argument.js +8 -95
  65. package/lib/node/css/arguments.js +13 -127
  66. package/lib/node/css/class.js +13 -127
  67. package/lib/node/css/colour.js +16 -110
  68. package/lib/node/css/content.js +12 -103
  69. package/lib/node/css/declaration.js +19 -109
  70. package/lib/node/css/identifier.js +16 -110
  71. package/lib/node/css/name.js +13 -127
  72. package/lib/node/css/pseudoClass.js +13 -127
  73. package/lib/node/css/ruleName.js +43 -137
  74. package/lib/node/css/ruleSet.js +45 -139
  75. package/lib/node/css/selector.js +8 -95
  76. package/lib/node/css/selectors.js +19 -110
  77. package/lib/node/css/selectorsList.js +22 -115
  78. package/lib/node/css/string.js +16 -110
  79. package/lib/node/css/target.js +12 -103
  80. package/lib/node/css/topmost.js +70 -182
  81. package/lib/node/css/value.js +12 -126
  82. package/lib/node/css/values.js +16 -107
  83. package/lib/node/css/verbatim.js +35 -132
  84. package/lib/node/css.js +66 -275
  85. package/lib/node/html/anchor/contents.js +8 -92
  86. package/lib/node/html/anchor/footnote.js +8 -92
  87. package/lib/node/html/anchor/index.js +8 -92
  88. package/lib/node/html/anchor.js +38 -157
  89. package/lib/node/html/container.js +24 -154
  90. package/lib/node/html/directive/contents.js +8 -95
  91. package/lib/node/html/directive/footnotes.js +8 -95
  92. package/lib/node/html/directive/index.js +8 -95
  93. package/lib/node/html/directive/pageNumber.js +8 -95
  94. package/lib/node/html/directive.js +23 -123
  95. package/lib/node/html/division.js +127 -273
  96. package/lib/node/html/error.js +41 -179
  97. package/lib/node/html/footnote.js +40 -149
  98. package/lib/node/html/heading/index.js +61 -183
  99. package/lib/node/html/heading/primary.js +12 -112
  100. package/lib/node/html/heading/quaternary.js +12 -112
  101. package/lib/node/html/heading/secondary.js +12 -112
  102. package/lib/node/html/heading/tertiary.js +12 -112
  103. package/lib/node/html/heading.js +30 -147
  104. package/lib/node/html/image.js +76 -207
  105. package/lib/node/html/item/contents.js +20 -124
  106. package/lib/node/html/item/footnote.js +21 -125
  107. package/lib/node/html/item/index.js +39 -145
  108. package/lib/node/html/item/ordered.js +23 -133
  109. package/lib/node/html/item/unordered.js +10 -110
  110. package/lib/node/html/line/block.js +15 -119
  111. package/lib/node/html/line.js +89 -242
  112. package/lib/node/html/link/contents.js +36 -153
  113. package/lib/node/html/link/email.js +89 -243
  114. package/lib/node/html/link/footnote.js +94 -238
  115. package/lib/node/html/link/hyper.js +89 -243
  116. package/lib/node/html/link/index.js +67 -222
  117. package/lib/node/html/list/contents.js +20 -124
  118. package/lib/node/html/list/footnotes.js +40 -160
  119. package/lib/node/html/list/index.js +20 -124
  120. package/lib/node/html/list/ordered.js +10 -110
  121. package/lib/node/html/list/unordered.js +10 -110
  122. package/lib/node/html/listing/block.js +33 -177
  123. package/lib/node/html/listing/inline.js +35 -174
  124. package/lib/node/html/pageNumber.js +65 -216
  125. package/lib/node/html/paragraph.js +10 -110
  126. package/lib/node/html/reference.js +10 -110
  127. package/lib/node/html/table.js +10 -110
  128. package/lib/node/html/tableBody.js +10 -110
  129. package/lib/node/html/tableBodyCell.js +10 -110
  130. package/lib/node/html/tableBodyRow.js +10 -110
  131. package/lib/node/html/tableHead.js +10 -110
  132. package/lib/node/html/tableHeadCell.js +10 -110
  133. package/lib/node/html/tableHeadRow.js +10 -110
  134. package/lib/node/html/text/block.js +10 -110
  135. package/lib/node/html/text/comma.js +21 -128
  136. package/lib/node/html/text/emphasised.js +14 -118
  137. package/lib/node/html/text/index.js +28 -143
  138. package/lib/node/html/text/inline.js +34 -147
  139. package/lib/node/html/text/plain.js +10 -110
  140. package/lib/node/html/text/strong.js +14 -118
  141. package/lib/node/html/text/stronglyEmphasised.js +66 -208
  142. package/lib/node/html/text.js +24 -162
  143. package/lib/node/html/topmost.js +100 -240
  144. package/lib/node/html.js +256 -554
  145. package/lib/node/markdown/blockEnd.js +5 -89
  146. package/lib/node/markdown/blockStart.js +18 -113
  147. package/lib/node/markdown/className.js +12 -100
  148. package/lib/node/markdown/container.js +18 -113
  149. package/lib/node/markdown/directive/embed.js +39 -137
  150. package/lib/node/markdown/directive/include.js +39 -137
  151. package/lib/node/markdown/division.js +70 -216
  152. package/lib/node/markdown/document.js +44 -147
  153. package/lib/node/markdown/error.js +12 -100
  154. package/lib/node/markdown/footnote.js +12 -100
  155. package/lib/node/markdown/hyperlink.js +34 -131
  156. package/lib/node/markdown/image.js +12 -100
  157. package/lib/node/markdown/item/ordered.js +15 -103
  158. package/lib/node/markdown/link/email.js +34 -131
  159. package/lib/node/markdown/link/footnote.js +14 -102
  160. package/lib/node/markdown/listng/block.js +12 -100
  161. package/lib/node/markdown/listng/inline.js +18 -106
  162. package/lib/node/markdown/path.js +12 -100
  163. package/lib/node/markdown/reference.js +15 -103
  164. package/lib/node/markdown/subDivision.js +35 -126
  165. package/lib/node/markdown/text/block.js +5 -89
  166. package/lib/node/markdown/text/plain.js +5 -89
  167. package/lib/node/markdown/text.js +46 -134
  168. package/lib/node/markdown.js +34 -169
  169. package/lib/node/markdownStyle/amount.js +13 -101
  170. package/lib/node/markdownStyle/argument.js +5 -89
  171. package/lib/node/markdownStyle/arguments.js +5 -89
  172. package/lib/node/markdownStyle/colour.js +12 -100
  173. package/lib/node/markdownStyle/content.js +21 -109
  174. package/lib/node/markdownStyle/declaration.js +5 -89
  175. package/lib/node/markdownStyle/document.js +5 -89
  176. package/lib/node/markdownStyle/error.js +5 -89
  177. package/lib/node/markdownStyle/identifier.js +13 -101
  178. package/lib/node/markdownStyle/name.js +5 -89
  179. package/lib/node/markdownStyle/nonsense.js +5 -89
  180. package/lib/node/markdownStyle/pseudoClass.js +5 -89
  181. package/lib/node/markdownStyle/ruleName.js +12 -100
  182. package/lib/node/markdownStyle/ruleSet.js +5 -89
  183. package/lib/node/markdownStyle/selector.js +5 -89
  184. package/lib/node/markdownStyle/selectors.js +5 -89
  185. package/lib/node/markdownStyle/selectorsList.js +5 -89
  186. package/lib/node/markdownStyle/string.js +12 -100
  187. package/lib/node/markdownStyle/target.js +12 -100
  188. package/lib/node/markdownStyle/value.js +5 -89
  189. package/lib/node/markdownStyle/values.js +5 -89
  190. package/lib/node/markdownStyle/verbatim.js +5 -89
  191. package/lib/node/markdownStyle.js +16 -135
  192. package/lib/prepends.js +4 -4
  193. package/lib/queries/markdown.js +7 -7
  194. package/lib/queries/markdownStyle.js +7 -7
  195. package/lib/ruleNames/markdown.js +145 -145
  196. package/lib/ruleNames/markdownStyle.js +51 -51
  197. package/lib/style/defaultMarkdown.js +247 -3
  198. package/lib/style/font.js +54 -3
  199. package/lib/styleElement/markdown/default.js +17 -131
  200. package/lib/styleElement/markdown.js +30 -151
  201. package/lib/styleElement.js +30 -69
  202. package/lib/targets.js +3 -3
  203. package/lib/tokenTypes.js +39 -39
  204. package/lib/transform/css/ruleSet.js +15 -106
  205. package/lib/transform/css/selectors.js +17 -108
  206. package/lib/transform/css/selectorsList.js +28 -121
  207. package/lib/transform/css.js +35 -139
  208. package/lib/transform/html/anchor/index.js +11 -99
  209. package/lib/transform/html/division.js +18 -112
  210. package/lib/transform/html/footnote.js +25 -122
  211. package/lib/transform/html/heading/index.js +7 -91
  212. package/lib/transform/html/index.js +44 -139
  213. package/lib/transform/html/item/contents.js +23 -111
  214. package/lib/transform/html/item/footnote.js +11 -99
  215. package/lib/transform/html/item/index.js +11 -99
  216. package/lib/transform/html/line.js +10 -98
  217. package/lib/transform/html/link/contents.js +20 -111
  218. package/lib/transform/html/link/footnote.js +36 -140
  219. package/lib/transform/html/list/contents.js +37 -151
  220. package/lib/transform/html/list/footnotes.js +19 -110
  221. package/lib/transform/html/list/index.js +16 -100
  222. package/lib/transform/html/pageNumber.js +15 -106
  223. package/lib/transform/html.js +28 -132
  224. package/lib/transform/markdown/directive/embed.js +9 -120
  225. package/lib/transform/markdown/directive/ignore.js +6 -90
  226. package/lib/transform/markdown/directive/include.js +15 -129
  227. package/lib/transform/markdown/subDivision.js +6 -90
  228. package/lib/transform/markdown.js +7 -134
  229. package/lib/utilities/contents.js +74 -145
  230. package/lib/utilities/css.js +12 -16
  231. package/lib/utilities/dom.js +11 -11
  232. package/lib/utilities/entities.js +2 -2
  233. package/lib/utilities/entries.js +5 -5
  234. package/lib/utilities/grammar.js +57 -86
  235. package/lib/utilities/html.js +21 -25
  236. package/lib/utilities/index.js +76 -89
  237. package/lib/utilities/markdown.js +14 -17
  238. package/lib/utilities/markdownStyle.js +2 -2
  239. package/lib/utilities/object.js +16 -16
  240. package/lib/utilities/query.js +13 -14
  241. package/lib/utilities/string.js +2 -2
  242. package/package.json +5 -1
  243. package/.aiignore +0 -14
  244. package/.swcrc +0 -11
  245. package/bin/main.js +0 -15
  246. package/example.js +0 -72455
  247. package/font/Inconsolata-Bold.woff2 +0 -0
  248. package/font/Inconsolata-Regular.woff2 +0 -0
  249. package/font/STIXTwoMath-Regular.woff2 +0 -0
  250. package/font/STIXTwoText-Bold.woff2 +0 -0
  251. package/font/STIXTwoText-BoldItalic.woff2 +0 -0
  252. package/font/STIXTwoText-Italic.woff2 +0 -0
  253. package/font/STIXTwoText-Regular.woff2 +0 -0
  254. package/index.html +0 -56
  255. package/ttf/Inconsolata-Bold.ttf +0 -0
  256. package/ttf/Inconsolata-Regular.ttf +0 -0
@@ -8,130 +8,26 @@ Object.defineProperty(exports, "default", {
8
8
  return BlockLineHTMLNode;
9
9
  }
10
10
  });
11
- var _line = /*#__PURE__*/ _interop_require_default(require("../../../node/html/line"));
12
- function _assert_this_initialized(self) {
13
- if (self === void 0) {
14
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
15
- }
16
- return self;
17
- }
18
- function _call_super(_this, derived, args) {
19
- derived = _get_prototype_of(derived);
20
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
21
- }
22
- function _class_call_check(instance, Constructor) {
23
- if (!(instance instanceof Constructor)) {
24
- throw new TypeError("Cannot call a class as a function");
25
- }
26
- }
27
- function _defineProperties(target, props) {
28
- for(var i = 0; i < props.length; i++){
29
- var descriptor = props[i];
30
- descriptor.enumerable = descriptor.enumerable || false;
31
- descriptor.configurable = true;
32
- if ("value" in descriptor) descriptor.writable = true;
33
- Object.defineProperty(target, descriptor.key, descriptor);
34
- }
35
- }
36
- function _create_class(Constructor, protoProps, staticProps) {
37
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
38
- if (staticProps) _defineProperties(Constructor, staticProps);
39
- return Constructor;
40
- }
41
- function _define_property(obj, key, value) {
42
- if (key in obj) {
43
- Object.defineProperty(obj, key, {
44
- value: value,
45
- enumerable: true,
46
- configurable: true,
47
- writable: true
48
- });
49
- } else {
50
- obj[key] = value;
51
- }
52
- return obj;
53
- }
54
- function _get_prototype_of(o) {
55
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
56
- return o.__proto__ || Object.getPrototypeOf(o);
57
- };
58
- return _get_prototype_of(o);
59
- }
60
- function _inherits(subClass, superClass) {
61
- if (typeof superClass !== "function" && superClass !== null) {
62
- throw new TypeError("Super expression must either be null or a function");
63
- }
64
- subClass.prototype = Object.create(superClass && superClass.prototype, {
65
- constructor: {
66
- value: subClass,
67
- writable: true,
68
- configurable: true
69
- }
70
- });
71
- if (superClass) _set_prototype_of(subClass, superClass);
72
- }
11
+ const _line = /*#__PURE__*/ _interop_require_default(require("../../../node/html/line"));
73
12
  function _interop_require_default(obj) {
74
13
  return obj && obj.__esModule ? obj : {
75
14
  default: obj
76
15
  };
77
16
  }
78
- function _possible_constructor_return(self, call) {
79
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
80
- return call;
17
+ class BlockLineHTMLNode extends _line.default {
18
+ lines(context) {
19
+ const { lines } = this.constructor;
20
+ return lines;
81
21
  }
82
- return _assert_this_initialized(self);
83
- }
84
- function _set_prototype_of(o, p) {
85
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
86
- o.__proto__ = p;
87
- return o;
88
- };
89
- return _set_prototype_of(o, p);
90
- }
91
- function _type_of(obj) {
92
- "@swc/helpers - typeof";
93
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
94
- }
95
- function _is_native_reflect_construct() {
96
- try {
97
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
98
- } catch (_) {}
99
- return (_is_native_reflect_construct = function() {
100
- return !!result;
101
- })();
102
- }
103
- var BlockLineHTMLNode = /*#__PURE__*/ function(LineHTMLNode) {
104
- _inherits(BlockLineHTMLNode, LineHTMLNode);
105
- function BlockLineHTMLNode() {
106
- _class_call_check(this, BlockLineHTMLNode);
107
- return _call_super(this, BlockLineHTMLNode, arguments);
22
+ static lines = 1;
23
+ static tagName = "span";
24
+ static className = "block-line";
25
+ static fromNothing() {
26
+ return _line.default.fromNothing(BlockLineHTMLNode);
108
27
  }
109
- _create_class(BlockLineHTMLNode, [
110
- {
111
- key: "lines",
112
- value: function lines(context) {
113
- var lines = this.constructor.lines;
114
- return lines;
115
- }
116
- }
117
- ], [
118
- {
119
- key: "fromNothing",
120
- value: function fromNothing() {
121
- return _line.default.fromNothing(BlockLineHTMLNode);
122
- }
123
- },
124
- {
125
- key: "fromOuterNode",
126
- value: function fromOuterNode(outerNode) {
127
- return _line.default.fromOuterNode(BlockLineHTMLNode, outerNode);
128
- }
129
- }
130
- ]);
131
- return BlockLineHTMLNode;
132
- }(_line.default);
133
- _define_property(BlockLineHTMLNode, "lines", 1);
134
- _define_property(BlockLineHTMLNode, "tagName", "span");
135
- _define_property(BlockLineHTMLNode, "className", "block-line");
28
+ static fromOuterNode(outerNode) {
29
+ return _line.default.fromOuterNode(BlockLineHTMLNode, outerNode);
30
+ }
31
+ }
136
32
 
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL2h0bWwvbGluZS9ibG9jay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExpbmVIVE1MTm9kZSBmcm9tIFwiLi4vLi4vLi4vbm9kZS9odG1sL2xpbmVcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmxvY2tMaW5lSFRNTE5vZGUgZXh0ZW5kcyBMaW5lSFRNTE5vZGUge1xuICBsaW5lcyhjb250ZXh0KSB7XG4gICAgY29uc3QgeyBsaW5lcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIHJldHVybiBsaW5lcztcbiAgfVxuXG4gIHN0YXRpYyBsaW5lcyA9IDE7XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcInNwYW5cIjtcblxuICBzdGF0aWMgY2xhc3NOYW1lID0gXCJibG9jay1saW5lXCI7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkgeyByZXR1cm4gTGluZUhUTUxOb2RlLmZyb21Ob3RoaW5nKEJsb2NrTGluZUhUTUxOb2RlKTsgfVxuXG4gIHN0YXRpYyBmcm9tT3V0ZXJOb2RlKG91dGVyTm9kZSkgeyByZXR1cm4gTGluZUhUTUxOb2RlLmZyb21PdXRlck5vZGUoQmxvY2tMaW5lSFRNTE5vZGUsIG91dGVyTm9kZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJCbG9ja0xpbmVIVE1MTm9kZSIsImxpbmVzIiwiY29udGV4dCIsImZyb21Ob3RoaW5nIiwiTGluZUhUTUxOb2RlIiwiZnJvbU91dGVyTm9kZSIsIm91dGVyTm9kZSIsInRhZ05hbWUiLCJjbGFzc05hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7OzJEQUZJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVWLElBQUEsQUFBTUEsa0NBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxPQUFPO2dCQUNYLElBQU0sQUFBRUQsUUFBVSxJQUFJLENBQUMsV0FBVyxDQUExQkE7Z0JBRVIsT0FBT0E7WUFDVDs7OztZQVFPRSxLQUFBQTttQkFBUCxTQUFPQTtnQkFBZ0IsT0FBT0MsYUFBWSxDQUFDRCxXQUFXLENBYm5DSDtZQWF3RDs7O1lBRXBFSyxLQUFBQTttQkFBUCxTQUFPQSxjQUFjQyxTQUFTO2dCQUFJLE9BQU9GLGFBQVksQ0FBQ0MsYUFBYSxDQWZoREwsbUJBZW9FTTtZQUFZOzs7V0FmaEZOO0VBQTBCSSxhQUFZO0FBT3pELGlCQVBtQkosbUJBT1pDLFNBQVE7QUFFZixpQkFUbUJELG1CQVNaTyxXQUFVO0FBRWpCLGlCQVhtQlAsbUJBV1pRLGFBQVkifQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL2h0bWwvbGluZS9ibG9jay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExpbmVIVE1MTm9kZSBmcm9tIFwiLi4vLi4vLi4vbm9kZS9odG1sL2xpbmVcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmxvY2tMaW5lSFRNTE5vZGUgZXh0ZW5kcyBMaW5lSFRNTE5vZGUge1xuICBsaW5lcyhjb250ZXh0KSB7XG4gICAgY29uc3QgeyBsaW5lcyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIHJldHVybiBsaW5lcztcbiAgfVxuXG4gIHN0YXRpYyBsaW5lcyA9IDE7XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcInNwYW5cIjtcblxuICBzdGF0aWMgY2xhc3NOYW1lID0gXCJibG9jay1saW5lXCI7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkgeyByZXR1cm4gTGluZUhUTUxOb2RlLmZyb21Ob3RoaW5nKEJsb2NrTGluZUhUTUxOb2RlKTsgfVxuXG4gIHN0YXRpYyBmcm9tT3V0ZXJOb2RlKG91dGVyTm9kZSkgeyByZXR1cm4gTGluZUhUTUxOb2RlLmZyb21PdXRlck5vZGUoQmxvY2tMaW5lSFRNTE5vZGUsIG91dGVyTm9kZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJCbG9ja0xpbmVIVE1MTm9kZSIsIkxpbmVIVE1MTm9kZSIsImxpbmVzIiwiY29udGV4dCIsInRhZ05hbWUiLCJjbGFzc05hbWUiLCJmcm9tTm90aGluZyIsImZyb21PdXRlck5vZGUiLCJvdXRlck5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7NkRBRkk7Ozs7OztBQUVWLE1BQU1BLDBCQUEwQkMsYUFBWTtJQUN6REMsTUFBTUMsT0FBTyxFQUFFO1FBQ2IsTUFBTSxFQUFFRCxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVztRQUVsQyxPQUFPQTtJQUNUO0lBRUEsT0FBT0EsUUFBUSxFQUFFO0lBRWpCLE9BQU9FLFVBQVUsT0FBTztJQUV4QixPQUFPQyxZQUFZLGFBQWE7SUFFaEMsT0FBT0MsY0FBYztRQUFFLE9BQU9MLGFBQVksQ0FBQ0ssV0FBVyxDQUFDTjtJQUFvQjtJQUUzRSxPQUFPTyxjQUFjQyxTQUFTLEVBQUU7UUFBRSxPQUFPUCxhQUFZLENBQUNNLGFBQWEsQ0FBQ1AsbUJBQW1CUTtJQUFZO0FBQ3JHIn0=
@@ -8,259 +8,106 @@ Object.defineProperty(exports, "default", {
8
8
  return LineHTMLNode;
9
9
  }
10
10
  });
11
- var _html = /*#__PURE__*/ _interop_require_default(require("../../node/html"));
12
- var _dom = require("../../utilities/dom");
13
- var _constants = require("../../constants");
14
- function _assert_this_initialized(self) {
15
- if (self === void 0) {
16
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
17
- }
18
- return self;
19
- }
20
- function _call_super(_this, derived, args) {
21
- derived = _get_prototype_of(derived);
22
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
11
+ const _html = /*#__PURE__*/ _interop_require_default(require("../../node/html"));
12
+ const _dom = require("../../utilities/dom");
13
+ const _constants = require("../../constants");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
23
18
  }
24
- function _class_call_check(instance, Constructor) {
25
- if (!(instance instanceof Constructor)) {
26
- throw new TypeError("Cannot call a class as a function");
19
+ class LineHTMLNode extends _html.default {
20
+ lines(context) {
21
+ const { maximumLineCharacters = _constants.DEFAULT_MAXIMUM_LINE_CHARACTERS } = context, plainText = this.asPlainText(context), plainTextLength = plainText.length, characters = plainTextLength, lines = characters / maximumLineCharacters + 1;
22
+ return lines;
27
23
  }
28
- }
29
- function _defineProperties(target, props) {
30
- for(var i = 0; i < props.length; i++){
31
- var descriptor = props[i];
32
- descriptor.enumerable = descriptor.enumerable || false;
33
- descriptor.configurable = true;
34
- if ("value" in descriptor) descriptor.writable = true;
35
- Object.defineProperty(target, descriptor.key, descriptor);
24
+ content(context) {
25
+ const plainText = this.asPlainText(context), content = plainText; ///
26
+ return content;
36
27
  }
37
- }
38
- function _create_class(Constructor, protoProps, staticProps) {
39
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
40
- if (staticProps) _defineProperties(Constructor, staticProps);
41
- return Constructor;
42
- }
43
- function _define_property(obj, key, value) {
44
- if (key in obj) {
45
- Object.defineProperty(obj, key, {
46
- value: value,
47
- enumerable: true,
48
- configurable: true,
49
- writable: true
28
+ prepare(context) {
29
+ const markdownNode = this.getMarkdownNode(), firstTokenIndex = markdownNode.getFirstTokenIndex(context), tokenIndex = firstTokenIndex; ///
30
+ Object.assign(context, {
31
+ tokenIndex
50
32
  });
51
- } else {
52
- obj[key] = value;
53
33
  }
54
- return obj;
55
- }
56
- function _get(target, property, receiver) {
57
- if (typeof Reflect !== "undefined" && Reflect.get) {
58
- _get = Reflect.get;
59
- } else {
60
- _get = function get(target, property, receiver) {
61
- var base = _super_prop_base(target, property);
62
- if (!base) return;
63
- var desc = Object.getOwnPropertyDescriptor(base, property);
64
- if (desc.get) {
65
- return desc.get.call(receiver || target);
66
- }
67
- return desc.value;
68
- };
34
+ dispose(context) {
35
+ delete context.tokenIndex;
69
36
  }
70
- return _get(target, property, receiver || target);
71
- }
72
- function _get_prototype_of(o) {
73
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
74
- return o.__proto__ || Object.getPrototypeOf(o);
75
- };
76
- return _get_prototype_of(o);
77
- }
78
- function _inherits(subClass, superClass) {
79
- if (typeof superClass !== "function" && superClass !== null) {
80
- throw new TypeError("Super expression must either be null or a function");
37
+ remount(context) {
38
+ const domElement = this.getDOMElement(), parentDOMElement = domElement.parentElement, siblingDOMElement = domElement.previousSibling;
39
+ this.prepare(context);
40
+ this.unmount(parentDOMElement);
41
+ this.mount(parentDOMElement, siblingDOMElement, context);
42
+ this.dispose(context);
43
+ }
44
+ mount(parentDOMElement, siblingDOMElement, context) {
45
+ let domElement;
46
+ this.prepare(context);
47
+ super.mount(parentDOMElement, siblingDOMElement, context);
48
+ domElement = this.getDOMElement();
49
+ parentDOMElement = domElement; ///
50
+ const content = _constants.CARRIAGE_RETURN, textNode = document.createTextNode(content);
51
+ domElement = textNode; ///
52
+ (0, _dom.insertAfterwards)(domElement, parentDOMElement);
53
+ domElement = this.getDOMElement();
54
+ siblingDOMElement = domElement; ///
55
+ this.dispose(context);
56
+ return siblingDOMElement;
81
57
  }
82
- subClass.prototype = Object.create(superClass && superClass.prototype, {
83
- constructor: {
84
- value: subClass,
85
- writable: true,
86
- configurable: true
58
+ unmount(parentDOMElement) {
59
+ {
60
+ let domElement;
61
+ domElement = this.getDOMElement();
62
+ const parentDOMElement = domElement, lastChild = domElement.lastChild;
63
+ domElement = lastChild; ///
64
+ (0, _dom.remove)(domElement, parentDOMElement);
87
65
  }
88
- });
89
- if (superClass) _set_prototype_of(subClass, superClass);
90
- }
91
- function _interop_require_default(obj) {
92
- return obj && obj.__esModule ? obj : {
93
- default: obj
94
- };
95
- }
96
- function _possible_constructor_return(self, call) {
97
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
98
- return call;
66
+ super.unmount(parentDOMElement);
99
67
  }
100
- return _assert_this_initialized(self);
101
- }
102
- function _set_prototype_of(o, p) {
103
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
104
- o.__proto__ = p;
105
- return o;
106
- };
107
- return _set_prototype_of(o, p);
108
- }
109
- function _super_prop_base(object, property) {
110
- while(!Object.prototype.hasOwnProperty.call(object, property)){
111
- object = _get_prototype_of(object);
112
- if (object === null) break;
68
+ asHTML(indent, context) {
69
+ let html;
70
+ this.prepare(context);
71
+ indent = this.adjustIndent(indent);
72
+ const childNodesHTML = this.childNodesAsHTML(indent, context);
73
+ const startingTag = this.startingTag(context), closingTag = this.closingTag(context);
74
+ html = `${indent}${startingTag}${childNodesHTML}${closingTag}
75
+ `;
76
+ this.dispose(context);
77
+ return html;
113
78
  }
114
- return object;
115
- }
116
- function _type_of(obj) {
117
- "@swc/helpers - typeof";
118
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
119
- }
120
- function _is_native_reflect_construct() {
121
- try {
122
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
123
- } catch (_) {}
124
- return (_is_native_reflect_construct = function() {
125
- return !!result;
126
- })();
127
- }
128
- var LineHTMLNode = /*#__PURE__*/ function(HTMLNode) {
129
- _inherits(LineHTMLNode, HTMLNode);
130
- function LineHTMLNode() {
131
- _class_call_check(this, LineHTMLNode);
132
- return _call_super(this, LineHTMLNode, arguments);
79
+ asPlainText(context) {
80
+ let plainText;
81
+ this.prepare(context);
82
+ plainText = super.asPlainText(context);
83
+ this.dispose(context);
84
+ return plainText;
133
85
  }
134
- _create_class(LineHTMLNode, [
135
- {
136
- key: "lines",
137
- value: function lines(context) {
138
- var _context_maximumLineCharacters = context.maximumLineCharacters, maximumLineCharacters = _context_maximumLineCharacters === void 0 ? _constants.DEFAULT_MAXIMUM_LINE_CHARACTERS : _context_maximumLineCharacters, plainText = this.asPlainText(context), plainTextLength = plainText.length, characters = plainTextLength, lines = characters / maximumLineCharacters + 1;
139
- return lines;
140
- }
141
- },
142
- {
143
- key: "content",
144
- value: function content(context) {
145
- var plainText = this.asPlainText(context), content = plainText; ///
146
- return content;
147
- }
148
- },
149
- {
150
- key: "prepare",
151
- value: function prepare(context) {
152
- var markdownNode = this.getMarkdownNode(), firstTokenIndex = markdownNode.getFirstTokenIndex(context), tokenIndex = firstTokenIndex; ///
153
- Object.assign(context, {
154
- tokenIndex: tokenIndex
155
- });
156
- }
157
- },
158
- {
159
- key: "dispose",
160
- value: function dispose(context) {
161
- delete context.tokenIndex;
162
- }
163
- },
164
- {
165
- key: "remount",
166
- value: function remount(context) {
167
- var domElement = this.getDOMElement(), parentDOMElement = domElement.parentElement, siblingDOMElement = domElement.previousSibling;
168
- this.prepare(context);
169
- this.unmount(parentDOMElement);
170
- this.mount(parentDOMElement, siblingDOMElement, context);
171
- this.dispose(context);
172
- }
173
- },
174
- {
175
- key: "mount",
176
- value: function mount(parentDOMElement, siblingDOMElement, context) {
177
- var domElement;
178
- this.prepare(context);
179
- _get(_get_prototype_of(LineHTMLNode.prototype), "mount", this).call(this, parentDOMElement, siblingDOMElement, context);
180
- domElement = this.getDOMElement();
181
- parentDOMElement = domElement; ///
182
- var content = _constants.CARRIAGE_RETURN, textNode = document.createTextNode(content);
183
- domElement = textNode; ///
184
- (0, _dom.insertAfterwards)(domElement, parentDOMElement);
185
- domElement = this.getDOMElement();
186
- siblingDOMElement = domElement; ///
187
- this.dispose(context);
188
- return siblingDOMElement;
189
- }
190
- },
191
- {
192
- key: "unmount",
193
- value: function unmount(parentDOMElement) {
194
- {
195
- var domElement;
196
- domElement = this.getDOMElement();
197
- var _$parentDOMElement = domElement, lastChild = domElement.lastChild;
198
- domElement = lastChild; ///
199
- (0, _dom.remove)(domElement, _$parentDOMElement);
200
- }
201
- _get(_get_prototype_of(LineHTMLNode.prototype), "unmount", this).call(this, parentDOMElement);
202
- }
203
- },
204
- {
205
- key: "asHTML",
206
- value: function asHTML(indent, context) {
207
- var html;
208
- this.prepare(context);
209
- indent = this.adjustIndent(indent);
210
- var childNodesHTML = this.childNodesAsHTML(indent, context);
211
- var startingTag = this.startingTag(context), closingTag = this.closingTag(context);
212
- html = "".concat(indent).concat(startingTag).concat(childNodesHTML).concat(closingTag, "\n");
213
- this.dispose(context);
214
- return html;
215
- }
216
- },
217
- {
218
- key: "asPlainText",
219
- value: function asPlainText(context) {
220
- var plainText;
221
- this.prepare(context);
222
- plainText = _get(_get_prototype_of(LineHTMLNode.prototype), "asPlainText", this).call(this, context);
223
- this.dispose(context);
224
- return plainText;
225
- }
226
- },
227
- {
228
- key: "childNodesAsPlainText",
229
- value: function childNodesAsPlainText(context) {
230
- var childNodesPlainText = this.reduceChildNode(function(childNodesPlainText, childNode) {
231
- var childNodePlainText = childNode.asPlainText(context);
232
- childNodesPlainText = "".concat(childNodesPlainText).concat(childNodePlainText);
233
- return childNodesPlainText;
234
- }, _constants.EMPTY_STRING);
235
- return childNodesPlainText;
236
- }
86
+ childNodesAsPlainText(context) {
87
+ const childNodesPlainText = this.reduceChildNode((childNodesPlainText, childNode)=>{
88
+ const childNodePlainText = childNode.asPlainText(context);
89
+ childNodesPlainText = `${childNodesPlainText}${childNodePlainText}`;
90
+ return childNodesPlainText;
91
+ }, _constants.EMPTY_STRING);
92
+ return childNodesPlainText;
93
+ }
94
+ static tagName = "span";
95
+ static className = "line";
96
+ static fromNothing(Class) {
97
+ if (Class === undefined) {
98
+ Class = LineHTMLNode; ///
237
99
  }
238
- ], [
239
- {
240
- key: "fromNothing",
241
- value: function fromNothing(Class) {
242
- if (Class === undefined) {
243
- Class = LineHTMLNode; ///
244
- }
245
- var lineHTMLNode = _html.default.fromNothing(Class);
246
- return lineHTMLNode;
247
- }
248
- },
249
- {
250
- key: "fromOuterNode",
251
- value: function fromOuterNode(Class, outerNode) {
252
- if (outerNode === undefined) {
253
- outerNode = Class; ///
254
- Class = LineHTMLNode; ///
255
- }
256
- var lineHTMLNode = _html.default.fromOuterNode(Class, outerNode);
257
- return lineHTMLNode;
258
- }
100
+ const lineHTMLNode = _html.default.fromNothing(Class);
101
+ return lineHTMLNode;
102
+ }
103
+ static fromOuterNode(Class, outerNode) {
104
+ if (outerNode === undefined) {
105
+ outerNode = Class; ///
106
+ Class = LineHTMLNode; ///
259
107
  }
260
- ]);
261
- return LineHTMLNode;
262
- }(_html.default);
263
- _define_property(LineHTMLNode, "tagName", "span");
264
- _define_property(LineHTMLNode, "className", "line");
108
+ const lineHTMLNode = _html.default.fromOuterNode(Class, outerNode);
109
+ return lineHTMLNode;
110
+ }
111
+ }
265
112
 
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL2h0bWwvbGluZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEhUTUxOb2RlIGZyb20gXCIuLi8uLi9ub2RlL2h0bWxcIjtcblxuaW1wb3J0IHsgcmVtb3ZlLCBpbnNlcnRBZnRlcndhcmRzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9kb21cIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORywgQ0FSUklBR0VfUkVUVVJOLCBERUZBVUxUX01BWElNVU1fTElORV9DSEFSQUNURVJTIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW5lSFRNTE5vZGUgZXh0ZW5kcyBIVE1MTm9kZSB7XG4gIGxpbmVzKGNvbnRleHQpIHtcbiAgICBjb25zdCB7IG1heGltdW1MaW5lQ2hhcmFjdGVycyA9IERFRkFVTFRfTUFYSU1VTV9MSU5FX0NIQVJBQ1RFUlMgfSA9IGNvbnRleHQsXG4gICAgICAgICAgcGxhaW5UZXh0ID0gdGhpcy5hc1BsYWluVGV4dChjb250ZXh0KSxcbiAgICAgICAgICBwbGFpblRleHRMZW5ndGggPSBwbGFpblRleHQubGVuZ3RoLFxuICAgICAgICAgIGNoYXJhY3RlcnMgPSBwbGFpblRleHRMZW5ndGgsIC8vL1xuICAgICAgICAgIGxpbmVzID0gKGNoYXJhY3RlcnMgLyBtYXhpbXVtTGluZUNoYXJhY3RlcnMpICsgMTtcblxuICAgIHJldHVybiBsaW5lcztcbiAgfVxuXG4gIGNvbnRlbnQoY29udGV4dCkge1xuICAgIGNvbnN0IHBsYWluVGV4dCA9IHRoaXMuYXNQbGFpblRleHQoY29udGV4dCksXG4gICAgICAgICAgY29udGVudCA9IHBsYWluVGV4dDsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBwcmVwYXJlKGNvbnRleHQpIHtcbiAgICBjb25zdCBtYXJrZG93bk5vZGUgPSB0aGlzLmdldE1hcmtkb3duTm9kZSgpLFxuICAgICAgICAgIGZpcnN0VG9rZW5JbmRleCA9IG1hcmtkb3duTm9kZS5nZXRGaXJzdFRva2VuSW5kZXgoY29udGV4dCksXG4gICAgICAgICAgdG9rZW5JbmRleCA9IGZpcnN0VG9rZW5JbmRleDsgLy8vXG5cbiAgICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICAgIHRva2VuSW5kZXhcbiAgICB9KTtcbiAgfVxuXG4gIGRpc3Bvc2UoY29udGV4dCkge1xuICAgIGRlbGV0ZSBjb250ZXh0LnRva2VuSW5kZXg7XG4gIH1cblxuICByZW1vdW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXG4gICAgICAgICAgcGFyZW50RE9NRWxlbWVudCA9IGRvbUVsZW1lbnQucGFyZW50RWxlbWVudCxcbiAgICAgICAgICBzaWJsaW5nRE9NRWxlbWVudCA9IGRvbUVsZW1lbnQucHJldmlvdXNTaWJsaW5nO1xuXG4gICAgdGhpcy5wcmVwYXJlKGNvbnRleHQpO1xuXG4gICAgdGhpcy51bm1vdW50KHBhcmVudERPTUVsZW1lbnQpO1xuXG4gICAgdGhpcy5tb3VudChwYXJlbnRET01FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudCwgY29udGV4dCk7XG5cbiAgICB0aGlzLmRpc3Bvc2UoY29udGV4dCk7XG4gIH1cblxuICBtb3VudChwYXJlbnRET01FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBkb21FbGVtZW50O1xuXG4gICAgdGhpcy5wcmVwYXJlKGNvbnRleHQpO1xuXG4gICAgc3VwZXIubW91bnQocGFyZW50RE9NRWxlbWVudCwgc2libGluZ0RPTUVsZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xuXG4gICAgcGFyZW50RE9NRWxlbWVudCA9IGRvbUVsZW1lbnQ7ICAvLy9cblxuICAgIGNvbnN0IGNvbnRlbnQgPSBDQVJSSUFHRV9SRVRVUk4sXG4gICAgICAgICAgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcblxuICAgIGRvbUVsZW1lbnQgPSB0ZXh0Tm9kZTsgIC8vL1xuXG4gICAgaW5zZXJ0QWZ0ZXJ3YXJkcyhkb21FbGVtZW50LCBwYXJlbnRET01FbGVtZW50KTtcblxuICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcblxuICAgIHNpYmxpbmdET01FbGVtZW50ID0gZG9tRWxlbWVudDsgLy8vXG5cbiAgICB0aGlzLmRpc3Bvc2UoY29udGV4dCk7XG5cbiAgICByZXR1cm4gc2libGluZ0RPTUVsZW1lbnQ7XG4gIH1cblxuICB1bm1vdW50KHBhcmVudERPTUVsZW1lbnQpIHtcbiAgICB7XG4gICAgICBsZXQgZG9tRWxlbWVudDtcblxuICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xuXG4gICAgICBjb25zdCBwYXJlbnRET01FbGVtZW50ID0gZG9tRWxlbWVudCwgIC8vL1xuICAgICAgICAgICAgbGFzdENoaWxkID0gZG9tRWxlbWVudC5sYXN0Q2hpbGRcblxuICAgICAgZG9tRWxlbWVudCA9IGxhc3RDaGlsZDsgIC8vL1xuXG4gICAgICByZW1vdmUoZG9tRWxlbWVudCwgcGFyZW50RE9NRWxlbWVudCk7XG4gICAgfVxuXG4gICAgc3VwZXIudW5tb3VudChwYXJlbnRET01FbGVtZW50KTtcbiAgfVxuXG4gIGFzSFRNTChpbmRlbnQsIGNvbnRleHQpIHtcbiAgICBsZXQgaHRtbDtcblxuICAgIHRoaXMucHJlcGFyZShjb250ZXh0KTtcblxuICAgIGluZGVudCA9IHRoaXMuYWRqdXN0SW5kZW50KGluZGVudCk7XG5cbiAgICBjb25zdCBjaGlsZE5vZGVzSFRNTCA9IHRoaXMuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgY29uc3Qgc3RhcnRpbmdUYWcgPSB0aGlzLnN0YXJ0aW5nVGFnKGNvbnRleHQpLFxuICAgICAgICAgIGNsb3NpbmdUYWcgPSB0aGlzLmNsb3NpbmdUYWcoY29udGV4dCk7XG5cbiAgICBodG1sID0gYCR7aW5kZW50fSR7c3RhcnRpbmdUYWd9JHtjaGlsZE5vZGVzSFRNTH0ke2Nsb3NpbmdUYWd9XG5gO1xuXG4gICAgdGhpcy5kaXNwb3NlKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBhc1BsYWluVGV4dChjb250ZXh0KSB7XG4gICAgbGV0IHBsYWluVGV4dDtcblxuICAgIHRoaXMucHJlcGFyZShjb250ZXh0KTtcblxuICAgIHBsYWluVGV4dCA9IHN1cGVyLmFzUGxhaW5UZXh0KGNvbnRleHQpO1xuXG4gICAgdGhpcy5kaXNwb3NlKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHBsYWluVGV4dDtcbiAgfVxuXG4gIGNoaWxkTm9kZXNBc1BsYWluVGV4dChjb250ZXh0KSB7XG4gICAgY29uc3QgY2hpbGROb2Rlc1BsYWluVGV4dCA9IHRoaXMucmVkdWNlQ2hpbGROb2RlKChjaGlsZE5vZGVzUGxhaW5UZXh0LCBjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZVBsYWluVGV4dCA9IGNoaWxkTm9kZS5hc1BsYWluVGV4dChjb250ZXh0KTtcblxuICAgICAgY2hpbGROb2Rlc1BsYWluVGV4dCA9IGAke2NoaWxkTm9kZXNQbGFpblRleHR9JHtjaGlsZE5vZGVQbGFpblRleHR9YDtcblxuICAgICAgcmV0dXJuIGNoaWxkTm9kZXNQbGFpblRleHQ7XG4gICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICAgIHJldHVybiBjaGlsZE5vZGVzUGxhaW5UZXh0O1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcInNwYW5cIjtcblxuICBzdGF0aWMgY2xhc3NOYW1lID0gXCJsaW5lXCI7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKENsYXNzKSB7XG4gICAgaWYgKENsYXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIENsYXNzID0gTGluZUhUTUxOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBsaW5lSFRNTE5vZGUgPSBIVE1MTm9kZS5mcm9tTm90aGluZyhDbGFzcyk7XG5cbiAgICByZXR1cm4gbGluZUhUTUxOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21PdXRlck5vZGUoQ2xhc3MsIG91dGVyTm9kZSkge1xuICAgIGlmIChvdXRlck5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgb3V0ZXJOb2RlID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBMaW5lSFRNTE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVIVE1MTm9kZSA9IEhUTUxOb2RlLmZyb21PdXRlck5vZGUoQ2xhc3MsIG91dGVyTm9kZSk7XG5cbiAgICByZXR1cm4gbGluZUhUTUxOb2RlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiTGluZUhUTUxOb2RlIiwibGluZXMiLCJjb250ZXh0IiwibWF4aW11bUxpbmVDaGFyYWN0ZXJzIiwiREVGQVVMVF9NQVhJTVVNX0xJTkVfQ0hBUkFDVEVSUyIsInBsYWluVGV4dCIsImFzUGxhaW5UZXh0IiwicGxhaW5UZXh0TGVuZ3RoIiwibGVuZ3RoIiwiY2hhcmFjdGVycyIsImNvbnRlbnQiLCJwcmVwYXJlIiwibWFya2Rvd25Ob2RlIiwiZ2V0TWFya2Rvd25Ob2RlIiwiZmlyc3RUb2tlbkluZGV4IiwiZ2V0Rmlyc3RUb2tlbkluZGV4IiwidG9rZW5JbmRleCIsIk9iamVjdCIsImFzc2lnbiIsImRpc3Bvc2UiLCJyZW1vdW50IiwiZG9tRWxlbWVudCIsImdldERPTUVsZW1lbnQiLCJwYXJlbnRET01FbGVtZW50IiwicGFyZW50RWxlbWVudCIsInNpYmxpbmdET01FbGVtZW50IiwicHJldmlvdXNTaWJsaW5nIiwidW5tb3VudCIsIm1vdW50IiwiQ0FSUklBR0VfUkVUVVJOIiwidGV4dE5vZGUiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiaW5zZXJ0QWZ0ZXJ3YXJkcyIsImxhc3RDaGlsZCIsInJlbW92ZSIsImFzSFRNTCIsImluZGVudCIsImh0bWwiLCJhZGp1c3RJbmRlbnQiLCJjaGlsZE5vZGVzSFRNTCIsImNoaWxkTm9kZXNBc0hUTUwiLCJzdGFydGluZ1RhZyIsImNsb3NpbmdUYWciLCJjaGlsZE5vZGVzQXNQbGFpblRleHQiLCJjaGlsZE5vZGVzUGxhaW5UZXh0IiwicmVkdWNlQ2hpbGROb2RlIiwiY2hpbGROb2RlIiwiY2hpbGROb2RlUGxhaW5UZXh0IiwiRU1QVFlfU1RSSU5HIiwiZnJvbU5vdGhpbmciLCJDbGFzcyIsInVuZGVmaW5lZCIsImxpbmVIVE1MTm9kZSIsIkhUTUxOb2RlIiwiZnJvbU91dGVyTm9kZSIsIm91dGVyTm9kZSIsInRhZ05hbWUiLCJjbGFzc05hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBT3FCQTs7OzJEQUxBO21CQUVvQjt5QkFDc0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEUsSUFBQSxBQUFNQSw2QkFBTjtjQUFNQTthQUFBQTtnQ0FBQUE7UUFBTixPQUFBLGtCQUFNQTs7a0JBQUFBOztZQUNuQkMsS0FBQUE7bUJBQUFBLFNBQUFBLE1BQU1DLE9BQU87Z0JBQ1gscUNBQW9FQSxRQUE1REMsdUJBQUFBLG9FQUF3QkMsMENBQStCLG1DQUN6REMsWUFBWSxJQUFJLENBQUNDLFdBQVcsQ0FBQ0osVUFDN0JLLGtCQUFrQkYsVUFBVUcsTUFBTSxFQUNsQ0MsYUFBYUYsaUJBQ2JOLFFBQVEsQUFBQ1EsYUFBYU4sd0JBQXlCO2dCQUVyRCxPQUFPRjtZQUNUOzs7WUFFQVMsS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFSLE9BQU87Z0JBQ2IsSUFBTUcsWUFBWSxJQUFJLENBQUNDLFdBQVcsQ0FBQ0osVUFDN0JRLFVBQVVMLFdBQVksR0FBRztnQkFFL0IsT0FBT0s7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxRQUFRVCxPQUFPO2dCQUNi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
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL2h0bWwvbGluZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEhUTUxOb2RlIGZyb20gXCIuLi8uLi9ub2RlL2h0bWxcIjtcblxuaW1wb3J0IHsgcmVtb3ZlLCBpbnNlcnRBZnRlcndhcmRzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9kb21cIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORywgQ0FSUklBR0VfUkVUVVJOLCBERUZBVUxUX01BWElNVU1fTElORV9DSEFSQUNURVJTIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW5lSFRNTE5vZGUgZXh0ZW5kcyBIVE1MTm9kZSB7XG4gIGxpbmVzKGNvbnRleHQpIHtcbiAgICBjb25zdCB7IG1heGltdW1MaW5lQ2hhcmFjdGVycyA9IERFRkFVTFRfTUFYSU1VTV9MSU5FX0NIQVJBQ1RFUlMgfSA9IGNvbnRleHQsXG4gICAgICAgICAgcGxhaW5UZXh0ID0gdGhpcy5hc1BsYWluVGV4dChjb250ZXh0KSxcbiAgICAgICAgICBwbGFpblRleHRMZW5ndGggPSBwbGFpblRleHQubGVuZ3RoLFxuICAgICAgICAgIGNoYXJhY3RlcnMgPSBwbGFpblRleHRMZW5ndGgsIC8vL1xuICAgICAgICAgIGxpbmVzID0gKGNoYXJhY3RlcnMgLyBtYXhpbXVtTGluZUNoYXJhY3RlcnMpICsgMTtcblxuICAgIHJldHVybiBsaW5lcztcbiAgfVxuXG4gIGNvbnRlbnQoY29udGV4dCkge1xuICAgIGNvbnN0IHBsYWluVGV4dCA9IHRoaXMuYXNQbGFpblRleHQoY29udGV4dCksXG4gICAgICAgICAgY29udGVudCA9IHBsYWluVGV4dDsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBwcmVwYXJlKGNvbnRleHQpIHtcbiAgICBjb25zdCBtYXJrZG93bk5vZGUgPSB0aGlzLmdldE1hcmtkb3duTm9kZSgpLFxuICAgICAgICAgIGZpcnN0VG9rZW5JbmRleCA9IG1hcmtkb3duTm9kZS5nZXRGaXJzdFRva2VuSW5kZXgoY29udGV4dCksXG4gICAgICAgICAgdG9rZW5JbmRleCA9IGZpcnN0VG9rZW5JbmRleDsgLy8vXG5cbiAgICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICAgIHRva2VuSW5kZXhcbiAgICB9KTtcbiAgfVxuXG4gIGRpc3Bvc2UoY29udGV4dCkge1xuICAgIGRlbGV0ZSBjb250ZXh0LnRva2VuSW5kZXg7XG4gIH1cblxuICByZW1vdW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXG4gICAgICAgICAgcGFyZW50RE9NRWxlbWVudCA9IGRvbUVsZW1lbnQucGFyZW50RWxlbWVudCxcbiAgICAgICAgICBzaWJsaW5nRE9NRWxlbWVudCA9IGRvbUVsZW1lbnQucHJldmlvdXNTaWJsaW5nO1xuXG4gICAgdGhpcy5wcmVwYXJlKGNvbnRleHQpO1xuXG4gICAgdGhpcy51bm1vdW50KHBhcmVudERPTUVsZW1lbnQpO1xuXG4gICAgdGhpcy5tb3VudChwYXJlbnRET01FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudCwgY29udGV4dCk7XG5cbiAgICB0aGlzLmRpc3Bvc2UoY29udGV4dCk7XG4gIH1cblxuICBtb3VudChwYXJlbnRET01FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBkb21FbGVtZW50O1xuXG4gICAgdGhpcy5wcmVwYXJlKGNvbnRleHQpO1xuXG4gICAgc3VwZXIubW91bnQocGFyZW50RE9NRWxlbWVudCwgc2libGluZ0RPTUVsZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xuXG4gICAgcGFyZW50RE9NRWxlbWVudCA9IGRvbUVsZW1lbnQ7ICAvLy9cblxuICAgIGNvbnN0IGNvbnRlbnQgPSBDQVJSSUFHRV9SRVRVUk4sXG4gICAgICAgICAgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcblxuICAgIGRvbUVsZW1lbnQgPSB0ZXh0Tm9kZTsgIC8vL1xuXG4gICAgaW5zZXJ0QWZ0ZXJ3YXJkcyhkb21FbGVtZW50LCBwYXJlbnRET01FbGVtZW50KTtcblxuICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcblxuICAgIHNpYmxpbmdET01FbGVtZW50ID0gZG9tRWxlbWVudDsgLy8vXG5cbiAgICB0aGlzLmRpc3Bvc2UoY29udGV4dCk7XG5cbiAgICByZXR1cm4gc2libGluZ0RPTUVsZW1lbnQ7XG4gIH1cblxuICB1bm1vdW50KHBhcmVudERPTUVsZW1lbnQpIHtcbiAgICB7XG4gICAgICBsZXQgZG9tRWxlbWVudDtcblxuICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xuXG4gICAgICBjb25zdCBwYXJlbnRET01FbGVtZW50ID0gZG9tRWxlbWVudCwgIC8vL1xuICAgICAgICAgICAgbGFzdENoaWxkID0gZG9tRWxlbWVudC5sYXN0Q2hpbGRcblxuICAgICAgZG9tRWxlbWVudCA9IGxhc3RDaGlsZDsgIC8vL1xuXG4gICAgICByZW1vdmUoZG9tRWxlbWVudCwgcGFyZW50RE9NRWxlbWVudCk7XG4gICAgfVxuXG4gICAgc3VwZXIudW5tb3VudChwYXJlbnRET01FbGVtZW50KTtcbiAgfVxuXG4gIGFzSFRNTChpbmRlbnQsIGNvbnRleHQpIHtcbiAgICBsZXQgaHRtbDtcblxuICAgIHRoaXMucHJlcGFyZShjb250ZXh0KTtcblxuICAgIGluZGVudCA9IHRoaXMuYWRqdXN0SW5kZW50KGluZGVudCk7XG5cbiAgICBjb25zdCBjaGlsZE5vZGVzSFRNTCA9IHRoaXMuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgY29uc3Qgc3RhcnRpbmdUYWcgPSB0aGlzLnN0YXJ0aW5nVGFnKGNvbnRleHQpLFxuICAgICAgICAgIGNsb3NpbmdUYWcgPSB0aGlzLmNsb3NpbmdUYWcoY29udGV4dCk7XG5cbiAgICBodG1sID0gYCR7aW5kZW50fSR7c3RhcnRpbmdUYWd9JHtjaGlsZE5vZGVzSFRNTH0ke2Nsb3NpbmdUYWd9XG5gO1xuXG4gICAgdGhpcy5kaXNwb3NlKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBhc1BsYWluVGV4dChjb250ZXh0KSB7XG4gICAgbGV0IHBsYWluVGV4dDtcblxuICAgIHRoaXMucHJlcGFyZShjb250ZXh0KTtcblxuICAgIHBsYWluVGV4dCA9IHN1cGVyLmFzUGxhaW5UZXh0KGNvbnRleHQpO1xuXG4gICAgdGhpcy5kaXNwb3NlKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHBsYWluVGV4dDtcbiAgfVxuXG4gIGNoaWxkTm9kZXNBc1BsYWluVGV4dChjb250ZXh0KSB7XG4gICAgY29uc3QgY2hpbGROb2Rlc1BsYWluVGV4dCA9IHRoaXMucmVkdWNlQ2hpbGROb2RlKChjaGlsZE5vZGVzUGxhaW5UZXh0LCBjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZVBsYWluVGV4dCA9IGNoaWxkTm9kZS5hc1BsYWluVGV4dChjb250ZXh0KTtcblxuICAgICAgY2hpbGROb2Rlc1BsYWluVGV4dCA9IGAke2NoaWxkTm9kZXNQbGFpblRleHR9JHtjaGlsZE5vZGVQbGFpblRleHR9YDtcblxuICAgICAgcmV0dXJuIGNoaWxkTm9kZXNQbGFpblRleHQ7XG4gICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICAgIHJldHVybiBjaGlsZE5vZGVzUGxhaW5UZXh0O1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcInNwYW5cIjtcblxuICBzdGF0aWMgY2xhc3NOYW1lID0gXCJsaW5lXCI7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKENsYXNzKSB7XG4gICAgaWYgKENsYXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIENsYXNzID0gTGluZUhUTUxOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBsaW5lSFRNTE5vZGUgPSBIVE1MTm9kZS5mcm9tTm90aGluZyhDbGFzcyk7XG5cbiAgICByZXR1cm4gbGluZUhUTUxOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21PdXRlck5vZGUoQ2xhc3MsIG91dGVyTm9kZSkge1xuICAgIGlmIChvdXRlck5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgb3V0ZXJOb2RlID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBMaW5lSFRNTE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVIVE1MTm9kZSA9IEhUTUxOb2RlLmZyb21PdXRlck5vZGUoQ2xhc3MsIG91dGVyTm9kZSk7XG5cbiAgICByZXR1cm4gbGluZUhUTUxOb2RlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiTGluZUhUTUxOb2RlIiwiSFRNTE5vZGUiLCJsaW5lcyIsImNvbnRleHQiLCJtYXhpbXVtTGluZUNoYXJhY3RlcnMiLCJERUZBVUxUX01BWElNVU1fTElORV9DSEFSQUNURVJTIiwicGxhaW5UZXh0IiwiYXNQbGFpblRleHQiLCJwbGFpblRleHRMZW5ndGgiLCJsZW5ndGgiLCJjaGFyYWN0ZXJzIiwiY29udGVudCIsInByZXBhcmUiLCJtYXJrZG93bk5vZGUiLCJnZXRNYXJrZG93bk5vZGUiLCJmaXJzdFRva2VuSW5kZXgiLCJnZXRGaXJzdFRva2VuSW5kZXgiLCJ0b2tlbkluZGV4IiwiT2JqZWN0IiwiYXNzaWduIiwiZGlzcG9zZSIsInJlbW91bnQiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInBhcmVudERPTUVsZW1lbnQiLCJwYXJlbnRFbGVtZW50Iiwic2libGluZ0RPTUVsZW1lbnQiLCJwcmV2aW91c1NpYmxpbmciLCJ1bm1vdW50IiwibW91bnQiLCJDQVJSSUFHRV9SRVRVUk4iLCJ0ZXh0Tm9kZSIsImRvY3VtZW50IiwiY3JlYXRlVGV4dE5vZGUiLCJpbnNlcnRBZnRlcndhcmRzIiwibGFzdENoaWxkIiwicmVtb3ZlIiwiYXNIVE1MIiwiaW5kZW50IiwiaHRtbCIsImFkanVzdEluZGVudCIsImNoaWxkTm9kZXNIVE1MIiwiY2hpbGROb2Rlc0FzSFRNTCIsInN0YXJ0aW5nVGFnIiwiY2xvc2luZ1RhZyIsImNoaWxkTm9kZXNBc1BsYWluVGV4dCIsImNoaWxkTm9kZXNQbGFpblRleHQiLCJyZWR1Y2VDaGlsZE5vZGUiLCJjaGlsZE5vZGUiLCJjaGlsZE5vZGVQbGFpblRleHQiLCJFTVBUWV9TVFJJTkciLCJ0YWdOYW1lIiwiY2xhc3NOYW1lIiwiZnJvbU5vdGhpbmciLCJDbGFzcyIsInVuZGVmaW5lZCIsImxpbmVIVE1MTm9kZSIsImZyb21PdXRlck5vZGUiLCJvdXRlck5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBcUJBOzs7NkRBTEE7cUJBRW9COzJCQUNzQzs7Ozs7O0FBRWhFLE1BQU1BLHFCQUFxQkMsYUFBUTtJQUNoREMsTUFBTUMsT0FBTyxFQUFFO1FBQ2IsTUFBTSxFQUFFQyx3QkFBd0JDLDBDQUErQixFQUFFLEdBQUdGLFNBQzlERyxZQUFZLElBQUksQ0FBQ0MsV0FBVyxDQUFDSixVQUM3Qkssa0JBQWtCRixVQUFVRyxNQUFNLEVBQ2xDQyxhQUFhRixpQkFDYk4sUUFBUSxBQUFDUSxhQUFhTix3QkFBeUI7UUFFckQsT0FBT0Y7SUFDVDtJQUVBUyxRQUFRUixPQUFPLEVBQUU7UUFDZixNQUFNRyxZQUFZLElBQUksQ0FBQ0MsV0FBVyxDQUFDSixVQUM3QlEsVUFBVUwsV0FBWSxHQUFHO1FBRS9CLE9BQU9LO0lBQ1Q7SUFFQUMsUUFBUVQsT0FBTyxFQUFFO1FBQ2YsTUFBTVUsZUFBZSxJQUFJLENBQUNDLGVBQWUsSUFDbkNDLGtCQUFrQkYsYUFBYUcsa0JBQWtCLENBQUNiLFVBQ2xEYyxhQUFhRixpQkFBaUIsR0FBRztRQUV2Q0csT0FBT0MsTUFBTSxDQUFDaEIsU0FBUztZQUNyQmM7UUFDRjtJQUNGO0lBRUFHLFFBQVFqQixPQUFPLEVBQUU7UUFDZixPQUFPQSxRQUFRYyxVQUFVO0lBQzNCO0lBRUFJLFFBQVFsQixP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