highmark-markdown 0.0.379 → 0.0.382

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 (100) hide show
  1. package/example.js +4764 -3417
  2. package/lib/attributeNames.js +5 -1
  3. package/lib/constants.js +1 -5
  4. package/lib/defaultMarkdownStyle.js +2 -2
  5. package/lib/example/constants.js +15 -7
  6. package/lib/example/customEventTypes.js +5 -1
  7. package/lib/example/view/button/page.js +168 -0
  8. package/lib/example/view/div/html.js +2 -2
  9. package/lib/example/view/div/pageButtons.js +270 -0
  10. package/lib/example/view/div/preview.js +105 -13
  11. package/lib/example/view/textarea/css.js +2 -2
  12. package/lib/example/view/xmp.js +2 -4
  13. package/lib/example/view.js +88 -34
  14. package/lib/example.js +2 -2
  15. package/lib/index.js +15 -11
  16. package/lib/markdown/bnf.js +2 -2
  17. package/lib/mixins/node.js +10 -3
  18. package/lib/node/markdown/anchor.js +5 -2
  19. package/lib/node/markdown/blockLine.js +3 -2
  20. package/lib/node/markdown/contentsLink.js +4 -4
  21. package/lib/node/markdown/directive/contents.js +6 -6
  22. package/lib/node/markdown/directive/embee.js +12 -12
  23. package/lib/node/markdown/directive/footnotes.js +6 -6
  24. package/lib/node/markdown/directive/ignore.js +6 -6
  25. package/lib/node/markdown/directive/include.js +6 -6
  26. package/lib/node/markdown/directive/pageNumber.js +74 -9
  27. package/lib/node/markdown/directive.js +128 -0
  28. package/lib/node/markdown/directives.js +33 -2
  29. package/lib/node/markdown/division.js +128 -28
  30. package/lib/node/markdown/emailLink.js +8 -1
  31. package/lib/node/markdown/endOfLine.js +8 -1
  32. package/lib/node/markdown/footnoteItem.js +3 -3
  33. package/lib/node/markdown/footnotesList.js +95 -27
  34. package/lib/node/markdown/heading/primary.js +2 -1
  35. package/lib/node/markdown/heading/quaternary.js +2 -1
  36. package/lib/node/markdown/heading/secondary.js +2 -1
  37. package/lib/node/markdown/heading/tertiary.js +2 -1
  38. package/lib/node/markdown/heading.js +8 -1
  39. package/lib/node/markdown/line.js +8 -1
  40. package/lib/node/markdown/subDivision.js +17 -10
  41. package/lib/node/markdown.js +15 -1
  42. package/lib/replacement.js +185 -0
  43. package/lib/utilities/childNodes.js +7 -5
  44. package/lib/utilities/content.js +7 -7
  45. package/lib/utilities/markdown.js +87 -0
  46. package/lib/utilities/node.js +163 -0
  47. package/lib/utilities/query.js +25 -9
  48. package/package.json +1 -1
  49. package/src/attributeNames.js +1 -0
  50. package/src/constants.js +0 -1
  51. package/src/defaultMarkdownStyle.js +5 -1
  52. package/src/example/constants.js +4 -2
  53. package/src/example/customEventTypes.js +1 -0
  54. package/src/example/view/button/page.js +48 -0
  55. package/src/example/view/div/html.js +0 -1
  56. package/src/example/view/div/pageButtons.js +98 -0
  57. package/src/example/view/div/preview.js +51 -11
  58. package/src/example/view/textarea/css.js +1 -1
  59. package/src/example/view/xmp.js +1 -5
  60. package/src/example/view.js +117 -51
  61. package/src/example.js +2 -2
  62. package/src/index.js +9 -6
  63. package/src/markdown/bnf.js +21 -23
  64. package/src/mixins/node.js +20 -2
  65. package/src/node/markdown/anchor.js +7 -2
  66. package/src/node/markdown/blockLine.js +3 -3
  67. package/src/node/markdown/contentsLink.js +3 -3
  68. package/src/node/markdown/directive/contents.js +3 -3
  69. package/src/node/markdown/directive/embee.js +8 -8
  70. package/src/node/markdown/directive/footnotes.js +3 -3
  71. package/src/node/markdown/directive/ignore.js +3 -3
  72. package/src/node/markdown/directive/include.js +3 -3
  73. package/src/node/markdown/directive/pageNumber.js +53 -5
  74. package/src/node/markdown/directive.js +13 -0
  75. package/src/node/markdown/directives.js +10 -1
  76. package/src/node/markdown/division.js +144 -26
  77. package/src/node/markdown/emailLink.js +6 -0
  78. package/src/node/markdown/endOfLine.js +6 -0
  79. package/src/node/markdown/footnoteItem.js +1 -1
  80. package/src/node/markdown/footnotesList.js +87 -31
  81. package/src/node/markdown/heading/primary.js +2 -0
  82. package/src/node/markdown/heading/quaternary.js +2 -0
  83. package/src/node/markdown/heading/secondary.js +2 -0
  84. package/src/node/markdown/heading/tertiary.js +2 -0
  85. package/src/node/markdown/heading.js +6 -0
  86. package/src/node/markdown/line.js +12 -1
  87. package/src/node/markdown/subDivision.js +18 -12
  88. package/src/node/markdown.js +19 -0
  89. package/src/replacement.js +158 -0
  90. package/src/utilities/childNodes.js +6 -4
  91. package/src/utilities/content.js +12 -20
  92. package/src/utilities/markdown.js +103 -0
  93. package/src/utilities/node.js +158 -0
  94. package/src/utilities/query.js +22 -6
  95. package/lib/replacementNodeAndTokens.js +0 -149
  96. package/lib/utilities/footnotes.js +0 -20
  97. package/lib/utilities/replace.js +0 -66
  98. package/src/replacementNodeAndTokens.js +0 -152
  99. package/src/utilities/footnotes.js +0 -16
  100. package/src/utilities/replace.js +0 -31
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Replacement;
9
+ }
10
+ });
11
+ var _node = require("./utilities/node");
12
+ function _array_like_to_array(arr, len) {
13
+ if (len == null || len > arr.length) len = arr.length;
14
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15
+ return arr2;
16
+ }
17
+ function _array_without_holes(arr) {
18
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
19
+ }
20
+ function _class_call_check(instance, Constructor) {
21
+ if (!(instance instanceof Constructor)) {
22
+ throw new TypeError("Cannot call a class as a function");
23
+ }
24
+ }
25
+ function _defineProperties(target, props) {
26
+ for(var i = 0; i < props.length; i++){
27
+ var descriptor = props[i];
28
+ descriptor.enumerable = descriptor.enumerable || false;
29
+ descriptor.configurable = true;
30
+ if ("value" in descriptor) descriptor.writable = true;
31
+ Object.defineProperty(target, descriptor.key, descriptor);
32
+ }
33
+ }
34
+ function _create_class(Constructor, protoProps, staticProps) {
35
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
36
+ if (staticProps) _defineProperties(Constructor, staticProps);
37
+ return Constructor;
38
+ }
39
+ function _iterable_to_array(iter) {
40
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
41
+ }
42
+ function _non_iterable_spread() {
43
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
44
+ }
45
+ function _to_consumable_array(arr) {
46
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
47
+ }
48
+ function _unsupported_iterable_to_array(o, minLen) {
49
+ if (!o) return;
50
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
51
+ var n = Object.prototype.toString.call(o).slice(8, -1);
52
+ if (n === "Object" && o.constructor) n = o.constructor.name;
53
+ if (n === "Map" || n === "Set") return Array.from(n);
54
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
55
+ }
56
+ var Replacement = /*#__PURE__*/ function() {
57
+ function Replacement(node, tokens) {
58
+ _class_call_check(this, Replacement);
59
+ this.node = node;
60
+ this.tokens = tokens;
61
+ }
62
+ _create_class(Replacement, [
63
+ {
64
+ key: "getNode",
65
+ value: function getNode() {
66
+ return this.node;
67
+ }
68
+ },
69
+ {
70
+ key: "getTokens",
71
+ value: function getTokens() {
72
+ return this.tokens;
73
+ }
74
+ },
75
+ {
76
+ key: "getChildNodes",
77
+ value: function getChildNodes() {
78
+ return this.node.getChildNodes();
79
+ }
80
+ },
81
+ {
82
+ key: "contract",
83
+ value: function contract(descendentNode) {
84
+ var node = descendentNode, tokens = this.tokens, context = {
85
+ tokens: tokens
86
+ }, replacement = Replacement.fromNode(node, context); ///
87
+ return replacement;
88
+ }
89
+ },
90
+ {
91
+ key: "expand",
92
+ value: function expand(ascendantNode) {
93
+ var node = ascendantNode, tokens = this.tokens, context = {
94
+ tokens: tokens
95
+ }, replacement = Replacement.fromNode(node, context); ///
96
+ return replacement;
97
+ }
98
+ },
99
+ {
100
+ key: "clone",
101
+ value: function clone() {
102
+ var node = this.node.clone(), replacementTokens = replacementTokensFromNodeAndTokens(node, this.tokens);
103
+ replaceNodeTokens(node, replacementTokens, this.tokens);
104
+ var tokens = replacementTokens, replacement = new Replacement(node, tokens);
105
+ return replacement;
106
+ }
107
+ },
108
+ {
109
+ key: "appendTo",
110
+ value: function appendTo(markdownNode, context) {
111
+ var _tokens;
112
+ var tokens = context.tokens, node = markdownNode, trailingIndex = (0, _node.trailingIndexFromNodeAndTokens)(node, tokens), replacement = this.clone(), replacementNode = replacement.getNode(), replacementTokens = replacement.getTokens(), childNode = replacementNode, start = trailingIndex + 1, deleteCount = 0;
113
+ markdownNode.appendChildNode(childNode);
114
+ (_tokens = tokens).splice.apply(_tokens, [
115
+ start,
116
+ deleteCount
117
+ ].concat(_to_consumable_array(replacementTokens)));
118
+ }
119
+ }
120
+ ], [
121
+ {
122
+ key: "fromNode",
123
+ value: function fromNode(node, context) {
124
+ var tokens = context.tokens;
125
+ var replacementTokens = replacementTokensFromNodeAndTokens(node, tokens), leadingIndex = (0, _node.leadingIndexFromNodeAndTokens)(node, tokens), offset = leadingIndex; ///
126
+ node = node.clone(); ///
127
+ replaceNodeTokens(node, replacementTokens, tokens, offset);
128
+ tokens = replacementTokens; ///
129
+ var replacement = new Replacement(node, tokens);
130
+ return replacement;
131
+ }
132
+ },
133
+ {
134
+ key: "fromNodeAndTokens",
135
+ value: function fromNodeAndTokens(node, tokens) {
136
+ var replacement = new Replacement(node, tokens);
137
+ return replacement;
138
+ }
139
+ }
140
+ ]);
141
+ return Replacement;
142
+ }();
143
+ function replaceNodeTokens(node, replacementTokens, tokens) {
144
+ var offset = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0;
145
+ var nodeTerminalNode = node.isTerminalNode();
146
+ if (nodeTerminalNode) {
147
+ var terminalNode = node; ///
148
+ replaceTerminalNodeTokens(terminalNode, replacementTokens, tokens, offset);
149
+ } else {
150
+ var nonTerminalNode = node; ///
151
+ replaceNonTerminalNodeTokens(nonTerminalNode, replacementTokens, tokens, offset);
152
+ }
153
+ }
154
+ function replaceChildNodesTokens(childNodes, replacementTokens, tokens, offset) {
155
+ childNodes.forEach(function(childNode) {
156
+ var node = childNode; ///
157
+ replaceNodeTokens(node, replacementTokens, tokens, offset);
158
+ });
159
+ }
160
+ function replaceTerminalNodeTokens(terminalNode, replacementTokens, tokens, offset) {
161
+ var index, significantToken;
162
+ significantToken = terminalNode.getSignificantToken();
163
+ if (significantToken !== null) {
164
+ index = tokens.indexOf(significantToken);
165
+ index -= offset;
166
+ var replacementToken = replacementTokens[index];
167
+ significantToken = replacementToken; ///
168
+ terminalNode.setSignificantToken(significantToken);
169
+ }
170
+ }
171
+ function replaceNonTerminalNodeTokens(nonTerminalNode, replacementTokens, tokens, offset) {
172
+ var childNodes = nonTerminalNode.getChildNodes();
173
+ replaceChildNodesTokens(childNodes, replacementTokens, tokens, offset);
174
+ }
175
+ function replacementTokensFromNodeAndTokens(node, tokens) {
176
+ var leadingIndex = (0, _node.leadingIndexFromNodeAndTokens)(node, tokens), trailingIndex = (0, _node.trailingIndexFromNodeAndTokens)(node, tokens), start = leadingIndex, end = trailingIndex + 1;
177
+ tokens = tokens.slice(start, end); ///
178
+ var replacementTokens = tokens.map(function(token) {
179
+ var replacementToken = token.clone(); ///;
180
+ return replacementToken;
181
+ });
182
+ return replacementTokens;
183
+ }
184
+
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXBsYWNlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbGVhZGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMsIHRyYWlsaW5nSW5kZXhGcm9tTm9kZUFuZFRva2VucyB9IGZyb20gXCIuL3V0aWxpdGllcy9ub2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlcGxhY2VtZW50IHtcbiAgY29uc3RydWN0b3Iobm9kZSwgdG9rZW5zKSB7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFRva2VucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH1cblxuICBnZXRDaGlsZE5vZGVzKCkgeyByZXR1cm4gdGhpcy5ub2RlLmdldENoaWxkTm9kZXMoKTsgfVxuXG4gIGNvbnRyYWN0KGRlc2NlbmRlbnROb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IGRlc2NlbmRlbnROb2RlLCAgLy8vXG4gICAgICAgICAgdG9rZW5zID0gdGhpcy50b2tlbnMsIC8vL1xuICAgICAgICAgIGNvbnRleHQgPSB7IC8vL1xuICAgICAgICAgICAgdG9rZW5zXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXBsYWNlbWVudCA9IFJlcGxhY2VtZW50LmZyb21Ob2RlKG5vZGUsIGNvbnRleHQpOyAgLy8vXG5cbiAgICByZXR1cm4gcmVwbGFjZW1lbnQ7XG4gIH1cblxuICBleHBhbmQoYXNjZW5kYW50Tm9kZSkge1xuICAgIGNvbnN0IG5vZGUgPSBhc2NlbmRhbnROb2RlLCAvLy9cbiAgICAgICAgICB0b2tlbnMgPSB0aGlzLnRva2VucywgLy8vXG4gICAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICAgIHRva2Vuc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVwbGFjZW1lbnQgPSBSZXBsYWNlbWVudC5mcm9tTm9kZShub2RlLCBjb250ZXh0KTsgIC8vL1xuXG4gICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuICB9XG5cbiAgY2xvbmUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZS5jbG9uZSgpLFxuICAgICAgICAgIHJlcGxhY2VtZW50VG9rZW5zID0gcmVwbGFjZW1lbnRUb2tlbnNGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXBsYWNlTm9kZVRva2Vucyhub2RlLCByZXBsYWNlbWVudFRva2VucywgdGhpcy50b2tlbnMpO1xuXG4gICAgY29uc3QgdG9rZW5zID0gcmVwbGFjZW1lbnRUb2tlbnMsIC8vL1xuICAgICAgICAgIHJlcGxhY2VtZW50ID0gbmV3IFJlcGxhY2VtZW50KG5vZGUsIHRva2Vucyk7XG5cbiAgICByZXR1cm4gcmVwbGFjZW1lbnRcbiAgfVxuXG4gIGFwcGVuZFRvKG1hcmtkb3duTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBjb250ZXh0LFxuICAgICAgICAgIG5vZGUgPSBtYXJrZG93bk5vZGUsIC8vL1xuICAgICAgICAgIHRyYWlsaW5nSW5kZXggPSB0cmFpbGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICByZXBsYWNlbWVudCA9IHRoaXMuY2xvbmUoKSwgIC8vL1xuICAgICAgICAgIHJlcGxhY2VtZW50Tm9kZSA9IHJlcGxhY2VtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICByZXBsYWNlbWVudFRva2VucyA9IHJlcGxhY2VtZW50LmdldFRva2VucygpLFxuICAgICAgICAgIGNoaWxkTm9kZSA9IHJlcGxhY2VtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgc3RhcnQgPSB0cmFpbGluZ0luZGV4ICsgMSxcbiAgICAgICAgICBkZWxldGVDb3VudCA9IDA7XG5cbiAgICBtYXJrZG93bk5vZGUuYXBwZW5kQ2hpbGROb2RlKGNoaWxkTm9kZSk7XG5cbiAgICB0b2tlbnMuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCwgLi4ucmVwbGFjZW1lbnRUb2tlbnMpO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgeyB0b2tlbnMgfSA9IGNvbnRleHQ7XG5cbiAgICBjb25zdCByZXBsYWNlbWVudFRva2VucyA9IHJlcGxhY2VtZW50VG9rZW5zRnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBsZWFkaW5nSW5kZXggPSBsZWFkaW5nSW5kZXhGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMpLFxuICAgICAgICAgIG9mZnNldCA9IGxlYWRpbmdJbmRleDsgIC8vL1xuXG4gICAgbm9kZSA9IG5vZGUuY2xvbmUoKTsgIC8vL1xuXG4gICAgcmVwbGFjZU5vZGVUb2tlbnMobm9kZSwgcmVwbGFjZW1lbnRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KTtcblxuICAgIHRva2VucyA9IHJlcGxhY2VtZW50VG9rZW5zOyAvLy9cblxuICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gbmV3IFJlcGxhY2VtZW50KG5vZGUsIHRva2Vucyk7XG5cbiAgICByZXR1cm4gcmVwbGFjZW1lbnQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSB7XG4gICAgY29uc3QgcmVwbGFjZW1lbnQgPSBuZXcgUmVwbGFjZW1lbnQobm9kZSwgdG9rZW5zKTtcblxuICAgIHJldHVybiByZXBsYWNlbWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYWNlTm9kZVRva2Vucyhub2RlLCByZXBsYWNlbWVudFRva2VucywgdG9rZW5zLCBvZmZzZXQgPSAwKSB7XG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXBsYWNlVGVybWluYWxOb2RlVG9rZW5zKHRlcm1pbmFsTm9kZSwgcmVwbGFjZW1lbnRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXBsYWNlTm9uVGVybWluYWxOb2RlVG9rZW5zKG5vblRlcm1pbmFsTm9kZSwgcmVwbGFjZW1lbnRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYWNlQ2hpbGROb2Rlc1Rva2VucyhjaGlsZE5vZGVzLCByZXBsYWNlbWVudFRva2VucywgdG9rZW5zLCBvZmZzZXQpIHtcbiAgY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgIHJlcGxhY2VOb2RlVG9rZW5zKG5vZGUsIHJlcGxhY2VtZW50VG9rZW5zLCB0b2tlbnMsIG9mZnNldCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlVGVybWluYWxOb2RlVG9rZW5zKHRlcm1pbmFsTm9kZSwgcmVwbGFjZW1lbnRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KSB7XG4gIGxldCBpbmRleCxcbiAgICAgIHNpZ25pZmljYW50VG9rZW47XG5cbiAgc2lnbmlmaWNhbnRUb2tlbiA9IHRlcm1pbmFsTm9kZS5nZXRTaWduaWZpY2FudFRva2VuKCk7XG5cbiAgaWYgKHNpZ25pZmljYW50VG9rZW4gIT09IG51bGwpIHtcbiAgICBpbmRleCA9IHRva2Vucy5pbmRleE9mKHNpZ25pZmljYW50VG9rZW4pO1xuXG4gICAgaW5kZXggLT0gb2Zmc2V0O1xuXG4gICAgY29uc3QgcmVwbGFjZW1lbnRUb2tlbiA9IHJlcGxhY2VtZW50VG9rZW5zW2luZGV4XTtcblxuICAgIHNpZ25pZmljYW50VG9rZW4gPSByZXBsYWNlbWVudFRva2VuOyAgLy8vXG5cbiAgICB0ZXJtaW5hbE5vZGUuc2V0U2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYWNlTm9uVGVybWluYWxOb2RlVG9rZW5zKG5vblRlcm1pbmFsTm9kZSwgcmVwbGFjZW1lbnRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KSB7XG4gIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gIHJlcGxhY2VDaGlsZE5vZGVzVG9rZW5zKGNoaWxkTm9kZXMsIHJlcGxhY2VtZW50VG9rZW5zLCB0b2tlbnMsIG9mZnNldCk7XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VtZW50VG9rZW5zRnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSB7XG4gIGNvbnN0IGxlYWRpbmdJbmRleCA9IGxlYWRpbmdJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2VucyksXG4gICAgICAgIHRyYWlsaW5nSW5kZXggPSB0cmFpbGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSxcbiAgICAgICAgc3RhcnQgPSBsZWFkaW5nSW5kZXgsICAvLy9cbiAgICAgICAgZW5kID0gdHJhaWxpbmdJbmRleCArIDE7XG5cbiAgdG9rZW5zID0gdG9rZW5zLnNsaWNlKHN0YXJ0LCBlbmQpOyAgLy8vXG5cbiAgY29uc3QgcmVwbGFjZW1lbnRUb2tlbnMgPSB0b2tlbnMubWFwKCh0b2tlbikgPT4geyAgLy8vXG4gICAgY29uc3QgcmVwbGFjZW1lbnRUb2tlbiA9IHRva2VuLmNsb25lKCk7ICAvLy87XG5cbiAgICByZXR1cm4gcmVwbGFjZW1lbnRUb2tlbjtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlcGxhY2VtZW50VG9rZW5zO1xufVxuIl0sIm5hbWVzIjpbIlJlcGxhY2VtZW50Iiwibm9kZSIsInRva2VucyIsImdldE5vZGUiLCJnZXRUb2tlbnMiLCJnZXRDaGlsZE5vZGVzIiwiY29udHJhY3QiLCJkZXNjZW5kZW50Tm9kZSIsImNvbnRleHQiLCJyZXBsYWNlbWVudCIsImZyb21Ob2RlIiwiZXhwYW5kIiwiYXNjZW5kYW50Tm9kZSIsImNsb25lIiwicmVwbGFjZW1lbnRUb2tlbnMiLCJyZXBsYWNlbWVudFRva2Vuc0Zyb21Ob2RlQW5kVG9rZW5zIiwicmVwbGFjZU5vZGVUb2tlbnMiLCJhcHBlbmRUbyIsIm1hcmtkb3duTm9kZSIsInRyYWlsaW5nSW5kZXgiLCJ0cmFpbGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMiLCJyZXBsYWNlbWVudE5vZGUiLCJjaGlsZE5vZGUiLCJzdGFydCIsImRlbGV0ZUNvdW50IiwiYXBwZW5kQ2hpbGROb2RlIiwic3BsaWNlIiwibGVhZGluZ0luZGV4IiwibGVhZGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMiLCJvZmZzZXQiLCJmcm9tTm9kZUFuZFRva2VucyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInJlcGxhY2VUZXJtaW5hbE5vZGVUb2tlbnMiLCJub25UZXJtaW5hbE5vZGUiLCJyZXBsYWNlTm9uVGVybWluYWxOb2RlVG9rZW5zIiwicmVwbGFjZUNoaWxkTm9kZXNUb2tlbnMiLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsImluZGV4Iiwic2lnbmlmaWNhbnRUb2tlbiIsImdldFNpZ25pZmljYW50VG9rZW4iLCJpbmRleE9mIiwicmVwbGFjZW1lbnRUb2tlbiIsInNldFNpZ25pZmljYW50VG9rZW4iLCJlbmQiLCJzbGljZSIsIm1hcCIsInRva2VuIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUlxQkE7Oztv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
@@ -76,14 +76,16 @@ function plainTextFromChildNodes(childNodes, context) {
76
76
  var plainTextMarkdownNode = markdownNode; ///
77
77
  plainTextMarkdownNodes.push(plainTextMarkdownNode);
78
78
  } else {
79
- var content = contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, _$childNodes, context);
79
+ var content = contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, childNodes, context);
80
80
  if (content !== null) {
81
81
  var plainText = content; ///
82
82
  plainTexts.push(plainText);
83
83
  }
84
- var _$childNodes = markdownNode.getChildNodes(), plainText1 = plainTextFromChildNodes(_$childNodes, context);
85
- if (plainText1 !== _constants.EMPTY_STRING) {
86
- plainTexts.push(plainText1);
84
+ {
85
+ var _$childNodes = markdownNode.getChildNodes(), plainText1 = plainTextFromChildNodes(_$childNodes, context);
86
+ if (plainText1 !== _constants.EMPTY_STRING) {
87
+ plainTexts.push(plainText1);
88
+ }
87
89
  }
88
90
  }
89
91
  }
@@ -135,4 +137,4 @@ function contentFromPlainTextMarkdownNodes(plainTextMarkdownNodes, childNodes, c
135
137
  return content;
136
138
  }
137
139
 
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY2hpbGROb2Rlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBQbGFpblRleHRNYXJrZG93bk5vZGUgZnJvbSBcIi4uL25vZGUvbWFya2Rvd24vcGxhaW5UZXh0XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNvbnRlbnRGcm9tTm9kZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRlbnRcIjtcblxuY29uc3QgeyBmaXJzdCwgbGFzdCwgcHVzaCwgY2xlYXIgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gaHRtbEZyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgaHRtbHMgPSBbXSxcbiAgICAgICAgcGxhaW5UZXh0TWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBjaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIG1hcmtkb3duTm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICBtYXJrZG93bk5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUgPSAobWFya2Rvd25Ob2RlIGluc3RhbmNlb2YgUGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcblxuICAgICAgaWYgKG1hcmtkb3duTm9kZVBsYWluVGV4dE1hcmtkb3duTm9kZSkge1xuICAgICAgICBjb25zdCBwbGFpblRleHRNYXJrZG93bk5vZGUgPSBtYXJrZG93bk5vZGU7IC8vL1xuXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMucHVzaChwbGFpblRleHRNYXJrZG93bk5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGNvbnRlbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyhwbGFpblRleHRNYXJrZG93bk5vZGVzLCBjaGlsZE5vZGVzLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoY29udGVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGh0bWwgPSBjb250ZW50OyAvLy9cblxuICAgICAgICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmRlbnQgPSBudWxsLFxuICAgICAgICAgICAgICBodG1sID0gbWFya2Rvd25Ob2RlLmFzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChodG1sICE9PSBudWxsKSB7XG4gICAgICAgICAgaHRtbHMucHVzaChodG1sKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgY29udGVudCA9IGNvbnRlbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyhwbGFpblRleHRNYXJrZG93bk5vZGVzLCBjaGlsZE5vZGVzLCBjb250ZXh0KTtcblxuICBpZiAoY29udGVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGh0bWwgPSBjb250ZW50OyAvLy9cblxuICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gIH1cblxuICBjb25zdCBodG1sID0gaHRtbHMuam9pbihFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBodG1sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxhaW5UZXh0RnJvbUNoaWxkTm9kZXMoY2hpbGROb2RlcywgY29udGV4dCkge1xuICBjb25zdCBwbGFpblRleHRzID0gW10sXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMgPSBbXTtcblxuICBjaGlsZE5vZGVzLmZvckVhY2goKGNoaWxkTm9kZSkgPT4ge1xuICAgIGNvbnN0IGNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IGNoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKGNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBtYXJrZG93bk5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgbWFya2Rvd25Ob2RlUGxhaW5UZXh0TWFya2Rvd25Ob2RlID0gKG1hcmtkb3duTm9kZSBpbnN0YW5jZW9mIFBsYWluVGV4dE1hcmtkb3duTm9kZSk7XG5cbiAgICAgIGlmIChtYXJrZG93bk5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUpIHtcbiAgICAgICAgY29uc3QgcGxhaW5UZXh0TWFya2Rvd25Ob2RlID0gbWFya2Rvd25Ob2RlOyAvLy9cblxuICAgICAgICBwbGFpblRleHRNYXJrZG93bk5vZGVzLnB1c2gocGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50RnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY2hpbGROb2RlcywgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBwbGFpblRleHQgPSBjb250ZW50OyAgLy8vXG5cbiAgICAgICAgICBwbGFpblRleHRzLnB1c2gocGxhaW5UZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBtYXJrZG93bk5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICBwbGFpblRleHQgPSBwbGFpblRleHRGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAocGxhaW5UZXh0ICE9PSBFTVBUWV9TVFJJTkcpIHtcbiAgICAgICAgICBwbGFpblRleHRzLnB1c2gocGxhaW5UZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgY29udGVudCA9IGNvbnRlbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyhwbGFpblRleHRNYXJrZG93bk5vZGVzLCBjaGlsZE5vZGVzLCBjb250ZXh0KTtcblxuICBpZiAoY29udGVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHBsYWluVGV4dCA9IGNvbnRlbnQ7ICAvLy9cblxuICAgIHBsYWluVGV4dHMucHVzaChwbGFpblRleHQpO1xuICB9XG5cbiAgY29uc3QgcGxhaW5UZXh0ID0gcGxhaW5UZXh0cy5qb2luKEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHBsYWluVGV4dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRvbUVsZW1lbnRzRnJvbUNoaWxkTm9kZXMoY2hpbGROb2RlcywgY29udGV4dCkge1xuICBjb25zdCBkb21FbGVtZW50cyA9IFtdLFxuICAgICAgICBwbGFpblRleHRNYXJrZG93bk5vZGVzID0gW107XG5cbiAgY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBjaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChjaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgbWFya2Rvd25Ob2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgIG1hcmtkb3duTm9kZVBsYWluVGV4dE1hcmtkb3duTm9kZSA9IChtYXJrZG93bk5vZGUgaW5zdGFuY2VvZiBQbGFpblRleHRNYXJrZG93bk5vZGUpO1xuXG4gICAgICBpZiAobWFya2Rvd25Ob2RlUGxhaW5UZXh0TWFya2Rvd25Ob2RlKSB7XG4gICAgICAgIGNvbnN0IHBsYWluVGV4dE1hcmtkb3duTm9kZSA9IG1hcmtkb3duTm9kZTsgLy8vXG5cbiAgICAgICAgcGxhaW5UZXh0TWFya2Rvd25Ob2Rlcy5wdXNoKHBsYWluVGV4dE1hcmtkb3duTm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gY29udGVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNoaWxkTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChjb250ZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KSxcbiAgICAgICAgICAgICAgICBkb21FbGVtZW50ID0gdGV4dE5vZGU7ICAvLy9cblxuICAgICAgICAgIGRvbUVsZW1lbnRzLnB1c2goZG9tRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJrZG93bk5vZGUuY3JlYXRlRE9NRWxlbWVudChjb250ZXh0KTtcblxuICAgICAgICBjb25zdCBtYXJrZG93bk5vZGVET01FbGVtZW50cyA9IG1hcmtkb3duTm9kZS5nZXRET01FbGVtZW50cygpO1xuXG4gICAgICAgIHB1c2goZG9tRWxlbWVudHMsIG1hcmtkb3duTm9kZURPTUVsZW1lbnRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50RnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY2hpbGROb2RlcywgY29udGV4dCk7XG5cbiAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpLFxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0ZXh0Tm9kZTsgIC8vL1xuXG4gICAgZG9tRWxlbWVudHMucHVzaChkb21FbGVtZW50KTtcbiAgfVxuXG4gIHJldHVybiBkb21FbGVtZW50cztcbn1cblxuZnVuY3Rpb24gY29udGVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNoaWxkTm9kZXMsIGNvbnRleHQpIHtcbiAgbGV0IGNvbnRlbnQgPSBudWxsO1xuXG4gIGNvbnN0IHBsYWluVGV4dE1hcmtkb3duTm9kZXNMZW5ndGggPSBwbGFpblRleHRNYXJrZG93bk5vZGVzLmxlbmd0aDtcblxuICBpZiAocGxhaW5UZXh0TWFya2Rvd25Ob2Rlc0xlbmd0aCA+IDApIHtcbiAgICBjb25zdCBub2RlcyA9IHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIC8vL1xuICAgICAgICAgIGxhc3ROb2RlID0gbGFzdChub2RlcyksXG4gICAgICAgICAgZmlyc3ROb2RlID0gZmlyc3Qobm9kZXMpLFxuICAgICAgICAgIGxhc3ROb2RlSW5kZXggPSBjaGlsZE5vZGVzLmluZGV4T2YobGFzdE5vZGUpLFxuICAgICAgICAgIGZpcnN0Tm9kZUluZGV4ID0gY2hpbGROb2Rlcy5pbmRleE9mKGZpcnN0Tm9kZSksXG4gICAgICAgICAgY2hpbGROb2Rlc0xlbmd0aCA9IGNoaWxkTm9kZXMubGVuZ3RoLFxuICAgICAgICAgIGxhc3RDaGlsZE5vZGVJbmRleCA9IGNoaWxkTm9kZXNMZW5ndGggLSAxLFxuICAgICAgICAgIGZpcnN0Q2hpbGROb2RlSW5kZXggPSAwLFxuICAgICAgICAgIGF1Z21lbnRMZWZ0ID0gKGZpcnN0Tm9kZUluZGV4ICE9PSBmaXJzdENoaWxkTm9kZUluZGV4KSxcbiAgICAgICAgICBhdWdtZW50UmlnaHQgPSAobGFzdE5vZGVJbmRleCAhPT0gbGFzdENoaWxkTm9kZUluZGV4KTsgIC8vL1xuXG4gICAgY29udGVudCA9IGNvbnRlbnRGcm9tTm9kZXMobm9kZXMsIGF1Z21lbnRMZWZ0LCBhdWdtZW50UmlnaHQsIGNvbnRleHQpO1xuXG4gICAgY2xlYXIocGxhaW5UZXh0TWFya2Rvd25Ob2Rlcyk7XG4gIH1cblxuICByZXR1cm4gY29udGVudDtcbn1cbiJdLCJuYW1lcyI6WyJkb21FbGVtZW50c0Zyb21DaGlsZE5vZGVzIiwiaHRtbEZyb21DaGlsZE5vZGVzIiwicGxhaW5UZXh0RnJvbUNoaWxkTm9kZXMiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwibGFzdCIsInB1c2giLCJjbGVhciIsImNoaWxkTm9kZXMiLCJjb250ZXh0IiwiaHRtbHMiLCJwbGFpblRleHRNYXJrZG93bk5vZGVzIiwiZm9yRWFjaCIsImNoaWxkTm9kZSIsImNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwibWFya2Rvd25Ob2RlIiwibWFya2Rvd25Ob2RlUGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwiUGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwicGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwiY29udGVudCIsImNvbnRlbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyIsImh0bWwiLCJpbmRlbnQiLCJhc0hUTUwiLCJqb2luIiwiRU1QVFlfU1RSSU5HIiwicGxhaW5UZXh0cyIsInBsYWluVGV4dCIsImdldENoaWxkTm9kZXMiLCJkb21FbGVtZW50cyIsInRleHROb2RlIiwiZG9jdW1lbnQiLCJjcmVhdGVUZXh0Tm9kZSIsImRvbUVsZW1lbnQiLCJjcmVhdGVET01FbGVtZW50IiwibWFya2Rvd25Ob2RlRE9NRWxlbWVudHMiLCJnZXRET01FbGVtZW50cyIsInBsYWluVGV4dE1hcmtkb3duTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJub2RlcyIsImxhc3ROb2RlIiwiZmlyc3ROb2RlIiwibGFzdE5vZGVJbmRleCIsImluZGV4T2YiLCJmaXJzdE5vZGVJbmRleCIsImNoaWxkTm9kZXNMZW5ndGgiLCJsYXN0Q2hpbGROb2RlSW5kZXgiLCJmaXJzdENoaWxkTm9kZUluZGV4IiwiYXVnbWVudExlZnQiLCJhdWdtZW50UmlnaHQiLCJjb250ZW50RnJvbU5vZGVzIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBMkdnQkEseUJBQXlCO2VBQXpCQTs7SUFoR0FDLGtCQUFrQjtlQUFsQkE7O0lBZ0RBQyx1QkFBdUI7ZUFBdkJBOzs7eUJBekRlO2dFQUVHO3lCQUVMO3VCQUNJOzs7Ozs7Ozs7Ozs7O0FBRWpDLElBQVFDLFFBQTZCQyx5QkFBYyxDQUEzQ0QsT0FBT0UsT0FBc0JELHlCQUFjLENBQXBDQyxNQUFNQyxPQUFnQkYseUJBQWMsQ0FBOUJFLE1BQU1DLFFBQVVILHlCQUFjLENBQXhCRztBQUVwQixTQUFTTixtQkFBbUJPLFVBQVUsRUFBRUMsT0FBTztJQUNwRCxJQUFNQyxRQUFRLEVBQUUsRUFDVkMseUJBQXlCLEVBQUU7SUFFakNILFdBQVdJLE9BQU8sQ0FBQyxTQUFDQztRQUNsQixJQUFNQywyQkFBMkJELFVBQVVFLGlCQUFpQjtRQUU1RCxJQUFJRCwwQkFBMEI7WUFDNUIsSUFBTUUsa0JBQWtCSCxXQUNsQkksZUFBZUQsaUJBQ2ZFLG9DQUFxQ0QsQUFBWSxZQUFaQSxjQUF3QkUsa0JBQXFCO1lBRXhGLElBQUlELG1DQUFtQztnQkFDckMsSUFBTUUsd0JBQXdCSCxjQUFjLEdBQUc7Z0JBRS9DTix1QkFBdUJMLElBQUksQ0FBQ2M7WUFDOUIsT0FBTztnQkFDTCxJQUFNQyxVQUFVQyxrQ0FBa0NYLHdCQUF3QkgsWUFBWUM7Z0JBRXRGLElBQUlZLFlBQVksTUFBTTtvQkFDcEIsSUFBTUUsT0FBT0YsU0FBUyxHQUFHO29CQUV6QlgsTUFBTUosSUFBSSxDQUFDaUI7Z0JBQ2I7Z0JBRUEsSUFBTUMsU0FBUyxNQUNURCxRQUFPTixhQUFhUSxNQUFNLENBQUNELFFBQVFmO2dCQUV6QyxJQUFJYyxVQUFTLE1BQU07b0JBQ2pCYixNQUFNSixJQUFJLENBQUNpQjtnQkFDYjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQU1GLFVBQVVDLGtDQUFrQ1gsd0JBQXdCSCxZQUFZQztJQUV0RixJQUFJWSxZQUFZLE1BQU07UUFDcEIsSUFBTUUsT0FBT0YsU0FBUyxHQUFHO1FBRXpCWCxNQUFNSixJQUFJLENBQUNpQjtJQUNiO0lBRUEsSUFBTUEsUUFBT2IsTUFBTWdCLElBQUksQ0FBQ0MsdUJBQVk7SUFFcEMsT0FBT0o7QUFDVDtBQUVPLFNBQVNyQix3QkFBd0JNLFVBQVUsRUFBRUMsT0FBTztJQUN6RCxJQUFNbUIsYUFBYSxFQUFFLEVBQ2ZqQix5QkFBeUIsRUFBRTtJQUVqQ0gsV0FBV0ksT0FBTyxDQUFDLFNBQUNDO1FBQ2xCLElBQU1DLDJCQUEyQkQsVUFBVUUsaUJBQWlCO1FBRTVELElBQUlELDBCQUEwQjtZQUM1QixJQUFNRSxrQkFBa0JILFdBQ2xCSSxlQUFlRCxpQkFDZkUsb0NBQXFDRCxBQUFZLFlBQVpBLGNBQXdCRSxrQkFBcUI7WUFFeEYsSUFBSUQsbUNBQW1DO2dCQUNyQyxJQUFNRSx3QkFBd0JILGNBQWMsR0FBRztnQkFFL0NOLHVCQUF1QkwsSUFBSSxDQUFDYztZQUM5QixPQUFPO2dCQUNMLElBQU1DLFVBQVVDLGtDQUFrQ1gsd0JBQXdCSCxjQUFZQztnQkFFdEYsSUFBSVksWUFBWSxNQUFNO29CQUNwQixJQUFNUSxZQUFZUixTQUFVLEdBQUc7b0JBRS9CTyxXQUFXdEIsSUFBSSxDQUFDdUI7Z0JBQ2xCO2dCQUVBLElBQU1yQixlQUFhUyxhQUFhYSxhQUFhLElBQ3ZDRCxhQUFZM0Isd0JBQXdCTSxjQUFZQztnQkFFdEQsSUFBSW9CLGVBQWNGLHVCQUFZLEVBQUU7b0JBQzlCQyxXQUFXdEIsSUFBSSxDQUFDdUI7Z0JBQ2xCO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBTVIsVUFBVUMsa0NBQWtDWCx3QkFBd0JILFlBQVlDO0lBRXRGLElBQUlZLFlBQVksTUFBTTtRQUNwQixJQUFNUSxZQUFZUixTQUFVLEdBQUc7UUFFL0JPLFdBQVd0QixJQUFJLENBQUN1QjtJQUNsQjtJQUVBLElBQU1BLGFBQVlELFdBQVdGLElBQUksQ0FBQ0MsdUJBQVk7SUFFOUMsT0FBT0U7QUFDVDtBQUVPLFNBQVM3QiwwQkFBMEJRLFVBQVUsRUFBRUMsT0FBTztJQUMzRCxJQUFNc0IsY0FBYyxFQUFFLEVBQ2hCcEIseUJBQXlCLEVBQUU7SUFFakNILFdBQVdJLE9BQU8sQ0FBQyxTQUFDQztRQUNsQixJQUFNQywyQkFBMkJELFVBQVVFLGlCQUFpQjtRQUU1RCxJQUFJRCwwQkFBMEI7WUFDNUIsSUFBTUUsa0JBQWtCSCxXQUNsQkksZUFBZUQsaUJBQ2ZFLG9DQUFxQ0QsQUFBWSxZQUFaQSxjQUF3QkUsa0JBQXFCO1lBRXhGLElBQUlELG1DQUFtQztnQkFDckMsSUFBTUUsd0JBQXdCSCxjQUFjLEdBQUc7Z0JBRS9DTix1QkFBdUJMLElBQUksQ0FBQ2M7WUFDOUIsT0FBTztnQkFDTCxJQUFNQyxVQUFVQyxrQ0FBa0NYLHdCQUF3QkgsWUFBWUM7Z0JBRXRGLElBQUlZLFlBQVksTUFBTTtvQkFDcEIsSUFBTVcsV0FBV0MsU0FBU0MsY0FBYyxDQUFDYixVQUNuQ2MsYUFBYUgsVUFBVyxHQUFHO29CQUVqQ0QsWUFBWXpCLElBQUksQ0FBQzZCO2dCQUNuQjtnQkFFQWxCLGFBQWFtQixnQkFBZ0IsQ0FBQzNCO2dCQUU5QixJQUFNNEIsMEJBQTBCcEIsYUFBYXFCLGNBQWM7Z0JBRTNEaEMsS0FBS3lCLGFBQWFNO1lBQ3BCO1FBQ0Y7SUFDRjtJQUVBLElBQU1oQixVQUFVQyxrQ0FBa0NYLHdCQUF3QkgsWUFBWUM7SUFFdEYsSUFBSVksWUFBWSxNQUFNO1FBQ3BCLElBQU1XLFdBQVdDLFNBQVNDLGNBQWMsQ0FBQ2IsVUFDbkNjLGFBQWFILFVBQVcsR0FBRztRQUVqQ0QsWUFBWXpCLElBQUksQ0FBQzZCO0lBQ25CO0lBRUEsT0FBT0o7QUFDVDtBQUVBLFNBQVNULGtDQUFrQ1gsc0JBQXNCLEVBQUVILFVBQVUsRUFBRUMsT0FBTztJQUNwRixJQUFJWSxVQUFVO0lBRWQsSUFBTWtCLCtCQUErQjVCLHVCQUF1QjZCLE1BQU07SUFFbEUsSUFBSUQsK0JBQStCLEdBQUc7UUFDcEMsSUFBTUUsUUFBUTlCLHdCQUNSK0IsV0FBV3JDLEtBQUtvQyxRQUNoQkUsWUFBWXhDLE1BQU1zQyxRQUNsQkcsZ0JBQWdCcEMsV0FBV3FDLE9BQU8sQ0FBQ0gsV0FDbkNJLGlCQUFpQnRDLFdBQVdxQyxPQUFPLENBQUNGLFlBQ3BDSSxtQkFBbUJ2QyxXQUFXZ0MsTUFBTSxFQUNwQ1EscUJBQXFCRCxtQkFBbUIsR0FDeENFLHNCQUFzQixHQUN0QkMsY0FBZUosbUJBQW1CRyxxQkFDbENFLGVBQWdCUCxrQkFBa0JJLG9CQUFzQixHQUFHO1FBRWpFM0IsVUFBVStCLElBQUFBLHlCQUFnQixFQUFDWCxPQUFPUyxhQUFhQyxjQUFjMUM7UUFFN0RGLE1BQU1JO0lBQ1I7SUFFQSxPQUFPVTtBQUNUIn0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY2hpbGROb2Rlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBQbGFpblRleHRNYXJrZG93bk5vZGUgZnJvbSBcIi4uL25vZGUvbWFya2Rvd24vcGxhaW5UZXh0XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNvbnRlbnRGcm9tTm9kZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRlbnRcIjtcblxuY29uc3QgeyBmaXJzdCwgbGFzdCwgcHVzaCwgY2xlYXIgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gaHRtbEZyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgaHRtbHMgPSBbXSxcbiAgICAgICAgcGxhaW5UZXh0TWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBjaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIG1hcmtkb3duTm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICBtYXJrZG93bk5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUgPSAobWFya2Rvd25Ob2RlIGluc3RhbmNlb2YgUGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcblxuICAgICAgaWYgKG1hcmtkb3duTm9kZVBsYWluVGV4dE1hcmtkb3duTm9kZSkge1xuICAgICAgICBjb25zdCBwbGFpblRleHRNYXJrZG93bk5vZGUgPSBtYXJrZG93bk5vZGU7IC8vL1xuXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMucHVzaChwbGFpblRleHRNYXJrZG93bk5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGNvbnRlbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyhwbGFpblRleHRNYXJrZG93bk5vZGVzLCBjaGlsZE5vZGVzLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoY29udGVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGh0bWwgPSBjb250ZW50OyAvLy9cblxuICAgICAgICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmRlbnQgPSBudWxsLFxuICAgICAgICAgICAgICBodG1sID0gbWFya2Rvd25Ob2RlLmFzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChodG1sICE9PSBudWxsKSB7XG4gICAgICAgICAgaHRtbHMucHVzaChodG1sKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgY29udGVudCA9IGNvbnRlbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyhwbGFpblRleHRNYXJrZG93bk5vZGVzLCBjaGlsZE5vZGVzLCBjb250ZXh0KTtcblxuICBpZiAoY29udGVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGh0bWwgPSBjb250ZW50OyAvLy9cblxuICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gIH1cblxuICBjb25zdCBodG1sID0gaHRtbHMuam9pbihFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBodG1sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxhaW5UZXh0RnJvbUNoaWxkTm9kZXMoY2hpbGROb2RlcywgY29udGV4dCkge1xuICBjb25zdCBwbGFpblRleHRzID0gW10sXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMgPSBbXTtcblxuICBjaGlsZE5vZGVzLmZvckVhY2goKGNoaWxkTm9kZSkgPT4ge1xuICAgIGNvbnN0IGNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IGNoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKGNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBtYXJrZG93bk5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgbWFya2Rvd25Ob2RlUGxhaW5UZXh0TWFya2Rvd25Ob2RlID0gKG1hcmtkb3duTm9kZSBpbnN0YW5jZW9mIFBsYWluVGV4dE1hcmtkb3duTm9kZSk7XG5cbiAgICAgIGlmIChtYXJrZG93bk5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUpIHtcbiAgICAgICAgY29uc3QgcGxhaW5UZXh0TWFya2Rvd25Ob2RlID0gbWFya2Rvd25Ob2RlOyAvLy9cblxuICAgICAgICBwbGFpblRleHRNYXJrZG93bk5vZGVzLnB1c2gocGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50RnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY2hpbGROb2RlcywgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBwbGFpblRleHQgPSBjb250ZW50OyAgLy8vXG5cbiAgICAgICAgICBwbGFpblRleHRzLnB1c2gocGxhaW5UZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gbWFya2Rvd25Ob2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBwbGFpblRleHRGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChwbGFpblRleHQgIT09IEVNUFRZX1NUUklORykge1xuICAgICAgICAgICAgcGxhaW5UZXh0cy5wdXNoKHBsYWluVGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBjb250ZW50ID0gY29udGVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNoaWxkTm9kZXMsIGNvbnRleHQpO1xuXG4gIGlmIChjb250ZW50ICE9PSBudWxsKSB7XG4gICAgY29uc3QgcGxhaW5UZXh0ID0gY29udGVudDsgIC8vL1xuXG4gICAgcGxhaW5UZXh0cy5wdXNoKHBsYWluVGV4dCk7XG4gIH1cblxuICBjb25zdCBwbGFpblRleHQgPSBwbGFpblRleHRzLmpvaW4oRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gcGxhaW5UZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9tRWxlbWVudHNGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGRvbUVsZW1lbnRzID0gW10sXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMgPSBbXTtcblxuICBjaGlsZE5vZGVzLmZvckVhY2goKGNoaWxkTm9kZSkgPT4ge1xuICAgIGNvbnN0IGNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IGNoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKGNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBtYXJrZG93bk5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgbWFya2Rvd25Ob2RlUGxhaW5UZXh0TWFya2Rvd25Ob2RlID0gKG1hcmtkb3duTm9kZSBpbnN0YW5jZW9mIFBsYWluVGV4dE1hcmtkb3duTm9kZSk7XG5cbiAgICAgIGlmIChtYXJrZG93bk5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUpIHtcbiAgICAgICAgY29uc3QgcGxhaW5UZXh0TWFya2Rvd25Ob2RlID0gbWFya2Rvd25Ob2RlOyAvLy9cblxuICAgICAgICBwbGFpblRleHRNYXJrZG93bk5vZGVzLnB1c2gocGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50RnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY2hpbGROb2RlcywgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpLFxuICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQgPSB0ZXh0Tm9kZTsgIC8vL1xuXG4gICAgICAgICAgZG9tRWxlbWVudHMucHVzaChkb21FbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1hcmtkb3duTm9kZS5jcmVhdGVET01FbGVtZW50KGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IG1hcmtkb3duTm9kZURPTUVsZW1lbnRzID0gbWFya2Rvd25Ob2RlLmdldERPTUVsZW1lbnRzKCk7XG5cbiAgICAgICAgcHVzaChkb21FbGVtZW50cywgbWFya2Rvd25Ob2RlRE9NRWxlbWVudHMpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgY29udGVudCA9IGNvbnRlbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyhwbGFpblRleHRNYXJrZG93bk5vZGVzLCBjaGlsZE5vZGVzLCBjb250ZXh0KTtcblxuICBpZiAoY29udGVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29udGVudCksXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRleHROb2RlOyAgLy8vXG5cbiAgICBkb21FbGVtZW50cy5wdXNoKGRvbUVsZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGRvbUVsZW1lbnRzO1xufVxuXG5mdW5jdGlvbiBjb250ZW50RnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY2hpbGROb2RlcywgY29udGV4dCkge1xuICBsZXQgY29udGVudCA9IG51bGw7XG5cbiAgY29uc3QgcGxhaW5UZXh0TWFya2Rvd25Ob2Rlc0xlbmd0aCA9IHBsYWluVGV4dE1hcmtkb3duTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChwbGFpblRleHRNYXJrZG93bk5vZGVzTGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IG5vZGVzID0gcGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgLy8vXG4gICAgICAgICAgbGFzdE5vZGUgPSBsYXN0KG5vZGVzKSxcbiAgICAgICAgICBmaXJzdE5vZGUgPSBmaXJzdChub2RlcyksXG4gICAgICAgICAgbGFzdE5vZGVJbmRleCA9IGNoaWxkTm9kZXMuaW5kZXhPZihsYXN0Tm9kZSksXG4gICAgICAgICAgZmlyc3ROb2RlSW5kZXggPSBjaGlsZE5vZGVzLmluZGV4T2YoZmlyc3ROb2RlKSxcbiAgICAgICAgICBjaGlsZE5vZGVzTGVuZ3RoID0gY2hpbGROb2Rlcy5sZW5ndGgsXG4gICAgICAgICAgbGFzdENoaWxkTm9kZUluZGV4ID0gY2hpbGROb2Rlc0xlbmd0aCAtIDEsXG4gICAgICAgICAgZmlyc3RDaGlsZE5vZGVJbmRleCA9IDAsXG4gICAgICAgICAgYXVnbWVudExlZnQgPSAoZmlyc3ROb2RlSW5kZXggIT09IGZpcnN0Q2hpbGROb2RlSW5kZXgpLFxuICAgICAgICAgIGF1Z21lbnRSaWdodCA9IChsYXN0Tm9kZUluZGV4ICE9PSBsYXN0Q2hpbGROb2RlSW5kZXgpOyAgLy8vXG5cbiAgICBjb250ZW50ID0gY29udGVudEZyb21Ob2Rlcyhub2RlcywgYXVnbWVudExlZnQsIGF1Z21lbnRSaWdodCwgY29udGV4dCk7XG5cbiAgICBjbGVhcihwbGFpblRleHRNYXJrZG93bk5vZGVzKTtcbiAgfVxuXG4gIHJldHVybiBjb250ZW50O1xufVxuIl0sIm5hbWVzIjpbImRvbUVsZW1lbnRzRnJvbUNoaWxkTm9kZXMiLCJodG1sRnJvbUNoaWxkTm9kZXMiLCJwbGFpblRleHRGcm9tQ2hpbGROb2RlcyIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJsYXN0IiwicHVzaCIsImNsZWFyIiwiY2hpbGROb2RlcyIsImNvbnRleHQiLCJodG1scyIsInBsYWluVGV4dE1hcmtkb3duTm9kZXMiLCJmb3JFYWNoIiwiY2hpbGROb2RlIiwiY2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJtYXJrZG93bk5vZGUiLCJtYXJrZG93bk5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUiLCJQbGFpblRleHRNYXJrZG93bk5vZGUiLCJwbGFpblRleHRNYXJrZG93bk5vZGUiLCJjb250ZW50IiwiY29udGVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzIiwiaHRtbCIsImluZGVudCIsImFzSFRNTCIsImpvaW4iLCJFTVBUWV9TVFJJTkciLCJwbGFpblRleHRzIiwicGxhaW5UZXh0IiwiZ2V0Q2hpbGROb2RlcyIsImRvbUVsZW1lbnRzIiwidGV4dE5vZGUiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiZG9tRWxlbWVudCIsImNyZWF0ZURPTUVsZW1lbnQiLCJtYXJrZG93bk5vZGVET01FbGVtZW50cyIsImdldERPTUVsZW1lbnRzIiwicGxhaW5UZXh0TWFya2Rvd25Ob2Rlc0xlbmd0aCIsImxlbmd0aCIsIm5vZGVzIiwibGFzdE5vZGUiLCJmaXJzdE5vZGUiLCJsYXN0Tm9kZUluZGV4IiwiaW5kZXhPZiIsImZpcnN0Tm9kZUluZGV4IiwiY2hpbGROb2Rlc0xlbmd0aCIsImxhc3RDaGlsZE5vZGVJbmRleCIsImZpcnN0Q2hpbGROb2RlSW5kZXgiLCJhdWdtZW50TGVmdCIsImF1Z21lbnRSaWdodCIsImNvbnRlbnRGcm9tTm9kZXMiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTZHZ0JBLHlCQUF5QjtlQUF6QkE7O0lBbEdBQyxrQkFBa0I7ZUFBbEJBOztJQWdEQUMsdUJBQXVCO2VBQXZCQTs7O3lCQXpEZTtnRUFFRzt5QkFFTDt1QkFDSTs7Ozs7Ozs7Ozs7OztBQUVqQyxJQUFRQyxRQUE2QkMseUJBQWMsQ0FBM0NELE9BQU9FLE9BQXNCRCx5QkFBYyxDQUFwQ0MsTUFBTUMsT0FBZ0JGLHlCQUFjLENBQTlCRSxNQUFNQyxRQUFVSCx5QkFBYyxDQUF4Qkc7QUFFcEIsU0FBU04sbUJBQW1CTyxVQUFVLEVBQUVDLE9BQU87SUFDcEQsSUFBTUMsUUFBUSxFQUFFLEVBQ1ZDLHlCQUF5QixFQUFFO0lBRWpDSCxXQUFXSSxPQUFPLENBQUMsU0FBQ0M7UUFDbEIsSUFBTUMsMkJBQTJCRCxVQUFVRSxpQkFBaUI7UUFFNUQsSUFBSUQsMEJBQTBCO1lBQzVCLElBQU1FLGtCQUFrQkgsV0FDbEJJLGVBQWVELGlCQUNmRSxvQ0FBcUNELEFBQVksWUFBWkEsY0FBd0JFLGtCQUFxQjtZQUV4RixJQUFJRCxtQ0FBbUM7Z0JBQ3JDLElBQU1FLHdCQUF3QkgsY0FBYyxHQUFHO2dCQUUvQ04sdUJBQXVCTCxJQUFJLENBQUNjO1lBQzlCLE9BQU87Z0JBQ0wsSUFBTUMsVUFBVUMsa0NBQWtDWCx3QkFBd0JILFlBQVlDO2dCQUV0RixJQUFJWSxZQUFZLE1BQU07b0JBQ3BCLElBQU1FLE9BQU9GLFNBQVMsR0FBRztvQkFFekJYLE1BQU1KLElBQUksQ0FB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
@@ -25,12 +25,12 @@ _export(exports, {
25
25
  var _necessary = require("necessary");
26
26
  var _constants = require("../constants");
27
27
  var _tokenTypes = require("../tokenTypes");
28
+ var _node = require("../utilities/node");
28
29
  var first = _necessary.arrayUtilities.first, last = _necessary.arrayUtilities.last;
29
30
  function contentFromNode(node, context) {
30
31
  var content = _constants.EMPTY_STRING;
31
32
  var tokens = context.tokens;
32
- var lastSignificantToken = node.getLastSignificantToken(), firstSignificantToken = node.getFirstSignificantToken(), lastSignificantTokenIndex = tokens.indexOf(lastSignificantToken), firstSignificantTokenIndex = tokens.indexOf(firstSignificantToken);
33
- var start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1;
33
+ var leadingIndex = (0, _node.leadingIndexFromNodeAndTokens)(node, tokens), trailingIndex = (0, _node.trailingIndexFromNodeAndTokens)(node, tokens), start = leadingIndex, end = trailingIndex + 1;
34
34
  tokens = tokens.slice(start, end);
35
35
  tokens.forEach(function(token) {
36
36
  var tokenContent = tokenContentFromToken(token);
@@ -41,8 +41,8 @@ function contentFromNode(node, context) {
41
41
  function contentFromNodes(nodes, augmentLeft, augmentRight, context) {
42
42
  var content = _constants.EMPTY_STRING;
43
43
  var tokens = context.tokens;
44
- var lastNode = last(nodes), firstNode = first(nodes), lastSignificantToken = lastNode.getLastSignificantToken(), firstSignificantToken = firstNode.getFirstSignificantToken(), lastSignificantTokenIndex = tokens.indexOf(lastSignificantToken), firstSignificantTokenIndex = tokens.indexOf(firstSignificantToken);
45
- var firstTokenIndex = firstSignificantTokenIndex, lastTokenIndex = lastSignificantTokenIndex; ///
44
+ var lastNode = last(nodes), firstNode = first(nodes), leadingIndex = (0, _node.leadingIndexFromNodeAndTokens)(firstNode, tokens), trailingIndex = (0, _node.trailingIndexFromNodeAndTokens)(lastNode, tokens);
45
+ var firstTokenIndex = leadingIndex, lastTokenIndex = trailingIndex; ///
46
46
  if (augmentLeft) {
47
47
  var previousTokenIndex = firstTokenIndex - 1;
48
48
  if (previousTokenIndex > -1) {
@@ -72,8 +72,8 @@ function contentFromNodes(nodes, augmentLeft, augmentRight, context) {
72
72
  function contentFromNodeAndTokens(node, tokens) {
73
73
  var offset = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
74
74
  var content = _constants.EMPTY_STRING;
75
- var firstSignificantToken = node.getFirstSignificantToken(), lastSignificantToken = node.getLastSignificantToken(), firstToken = firstSignificantToken, lastToken = lastSignificantToken, firstTokenIndex = tokens.indexOf(firstToken) + offset, lastTokenIndex = tokens.indexOf(lastToken);
76
- for(var index = firstTokenIndex; index <= lastTokenIndex; index++){
75
+ var leadingIndex = (0, _node.leadingIndexFromNodeAndTokens)(node, tokens) + offset, trailingIndex = (0, _node.trailingIndexFromNodeAndTokens)(node, tokens);
76
+ for(var index = leadingIndex; index <= trailingIndex; index++){
77
77
  var token = tokens[index], tokenContent = token.getContent();
78
78
  content += tokenContent;
79
79
  }
@@ -93,4 +93,4 @@ function tokenContentFromToken(token) {
93
93
  return tokenContent;
94
94
  }
95
95
 
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEVTQ0FQRURfVE9LRU5fVFlQRSB9IGZyb20gXCIuLi90b2tlblR5cGVzXCI7XG5cbmNvbnN0IHsgZmlyc3QsIGxhc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudEZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IGNvbnRlbnQgPSBFTVBUWV9TVFJJTkc7XG5cbiAgbGV0IHsgdG9rZW5zIH0gPSBjb250ZXh0O1xuXG4gIGNvbnN0IGxhc3RTaWduaWZpY2FudFRva2VuID0gbm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW4gPSBub2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdG9rZW5zLmluZGV4T2YobGFzdFNpZ25pZmljYW50VG9rZW4pLFxuICAgICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRva2Vucy5pbmRleE9mKGZpcnN0U2lnbmlmaWNhbnRUb2tlbik7XG5cbiAgY29uc3Qgc3RhcnQgPSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCwgIC8vL1xuICAgICAgICBlbmQgPSBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ICsgMTtcblxuICB0b2tlbnMgPSB0b2tlbnMuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgdG9rZW5zLmZvckVhY2goKHRva2VuKSA9PiB7XG4gICAgY29uc3QgdG9rZW5Db250ZW50ID0gdG9rZW5Db250ZW50RnJvbVRva2VuKHRva2VuKTtcblxuICAgIGNvbnRlbnQgKz0gdG9rZW5Db250ZW50O1xuICB9KTtcblxuICByZXR1cm4gY29udGVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRlbnRGcm9tTm9kZXMobm9kZXMsIGF1Z21lbnRMZWZ0LCBhdWdtZW50UmlnaHQsIGNvbnRleHQpIHtcbiAgbGV0IGNvbnRlbnQgPSBFTVBUWV9TVFJJTkc7XG5cbiAgbGV0IHsgdG9rZW5zIH0gPSBjb250ZXh0O1xuXG4gIGNvbnN0IGxhc3ROb2RlID0gbGFzdChub2RlcyksXG4gICAgICAgIGZpcnN0Tm9kZSA9IGZpcnN0KG5vZGVzKSxcbiAgICAgICAgbGFzdFNpZ25pZmljYW50VG9rZW4gPSBsYXN0Tm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW4gPSBmaXJzdE5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuKCksXG4gICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZihsYXN0U2lnbmlmaWNhbnRUb2tlbiksXG4gICAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdG9rZW5zLmluZGV4T2YoZmlyc3RTaWduaWZpY2FudFRva2VuKTtcblxuICBsZXQgZmlyc3RUb2tlbkluZGV4ID0gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgsICAvLy9cbiAgICAgIGxhc3RUb2tlbkluZGV4ID0gbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleDsgLy8vXG5cbiAgaWYgKGF1Z21lbnRMZWZ0KSB7XG4gICAgY29uc3QgcHJldmlvdXNUb2tlbkluZGV4ID0gZmlyc3RUb2tlbkluZGV4IC0gMTtcblxuICAgIGlmIChwcmV2aW91c1Rva2VuSW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgcHJldmlvdXNUb2tlbiA9IHRva2Vuc1twcmV2aW91c1Rva2VuSW5kZXhdLFxuICAgICAgICAgICAgcHJldmlvdXNUb2tlblNpZ25pZmljYW50ID0gcHJldmlvdXNUb2tlbi5pc1NpZ25pZmljYW50KCk7XG5cbiAgICAgIGlmICghcHJldmlvdXNUb2tlblNpZ25pZmljYW50KSB7XG4gICAgICAgIGZpcnN0VG9rZW5JbmRleC0tO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChhdWdtZW50UmlnaHQpIHtcbiAgICBjb25zdCB0b2tlbnNMZW5ndGggPSB0b2tlbnMubGVuZ3RoLFxuICAgICAgICAgIG5leHRUb2tlbkluZGV4ID0gbGFzdFRva2VuSW5kZXggKyAxO1xuXG4gICAgaWYgKG5leHRUb2tlbkluZGV4IDwgdG9rZW5zTGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0VG9rZW4gPSB0b2tlbnNbbmV4dFRva2VuSW5kZXhdLFxuICAgICAgICAgICAgbmV4dFRva2VuU2lnbmlmaWNhbnQgPSBuZXh0VG9rZW4uaXNTaWduaWZpY2FudCgpLFxuICAgICAgICAgICAgbmV4dFRva2VuRW5kT2ZMaW5lVG9rZW4gPSBuZXh0VG9rZW4uaXNFbmRPZkxpbmVUb2tlbigpO1xuXG4gICAgICBpZiAobmV4dFRva2VuRW5kT2ZMaW5lVG9rZW4gfHwgIW5leHRUb2tlblNpZ25pZmljYW50KSB7XG4gICAgICAgIGxhc3RUb2tlbkluZGV4Kys7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RhcnQgPSBmaXJzdFRva2VuSW5kZXgsICAvLy9cbiAgICAgICAgZW5kID0gbGFzdFRva2VuSW5kZXggKyAxO1xuXG4gIHRva2VucyA9IHRva2Vucy5zbGljZShzdGFydCwgZW5kKTtcblxuICB0b2tlbnMuZm9yRWFjaCgodG9rZW4pID0+IHtcbiAgICBjb25zdCB0b2tlbkNvbnRlbnQgPSB0b2tlbkNvbnRlbnRGcm9tVG9rZW4odG9rZW4pO1xuXG4gICAgY29udGVudCArPSB0b2tlbkNvbnRlbnQ7XG4gIH0pO1xuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2Vucywgb2Zmc2V0ID0gMCkge1xuICBsZXQgY29udGVudCA9IEVNUFRZX1NUUklORztcblxuICBjb25zdCBmaXJzdFNpZ25pZmljYW50VG9rZW4gPSBub2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICBsYXN0U2lnbmlmaWNhbnRUb2tlbiA9IG5vZGUuZ2V0TGFzdFNpZ25pZmljYW50VG9rZW4oKSxcbiAgICAgICAgZmlyc3RUb2tlbiA9IGZpcnN0U2lnbmlmaWNhbnRUb2tlbiwgLy8vXG4gICAgICAgIGxhc3RUb2tlbiA9IGxhc3RTaWduaWZpY2FudFRva2VuLCAvLy9cbiAgICAgICAgZmlyc3RUb2tlbkluZGV4ID0gdG9rZW5zLmluZGV4T2YoZmlyc3RUb2tlbikgKyBvZmZzZXQsICAvLy9cbiAgICAgICAgbGFzdFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZihsYXN0VG9rZW4pO1xuXG4gIGZvciAobGV0IGluZGV4ID0gZmlyc3RUb2tlbkluZGV4OyBpbmRleCA8PSBsYXN0VG9rZW5JbmRleDsgaW5kZXgrKykge1xuICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2luZGV4XSxcbiAgICAgICAgICB0b2tlbkNvbnRlbnQgPSB0b2tlbi5nZXRDb250ZW50KCk7XG5cbiAgICBjb250ZW50ICs9IHRva2VuQ29udGVudDtcbiAgfVxuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtYWluaW5nQ29udGVudEZyb21Ob2RlVG9rZW5zQW5kT2Zmc2V0KG5vZGUsIHRva2Vucywgb2Zmc2V0KSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zLCBvZmZzZXQpLFxuICAgICAgICByZW1haW5pbmdDb250ZW50ID0gY29udGVudDsgLy8vXG5cbiAgcmV0dXJuIHJlbWFpbmluZ0NvbnRlbnQ7XG59XG5cbmZ1bmN0aW9uIHRva2VuQ29udGVudEZyb21Ub2tlbih0b2tlbikge1xuICBsZXQgdG9rZW5Db250ZW50ID0gdG9rZW4uZ2V0Q29udGVudCgpO1xuXG4gIGNvbnN0IHR5cGUgPSB0b2tlbi5nZXRUeXBlKCk7XG5cbiAgaWYgKHR5cGUgPT09IEVTQ0FQRURfVE9LRU5fVFlQRSkge1xuICAgIGNvbnN0IHN0YXJ0ID0gMTtcblxuICAgIHRva2VuQ29udGVudCA9IHRva2VuQ29udGVudC5zdWJzdHJpbmcoc3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHRva2VuQ29udGVudDtcbn1cbiJdLCJuYW1lcyI6WyJjb250ZW50RnJvbU5vZGUiLCJjb250ZW50RnJvbU5vZGVBbmRUb2tlbnMiLCJjb250ZW50RnJvbU5vZGVzIiwicmVtYWluaW5nQ29udGVudEZyb21Ob2RlVG9rZW5zQW5kT2Zmc2V0IiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImxhc3QiLCJub2RlIiwiY29udGV4dCIsImNvbnRlbnQiLCJFTVBUWV9TVFJJTkciLCJ0b2tlbnMiLCJsYXN0U2lnbmlmaWNhbnRUb2tlbiIsImdldExhc3RTaWduaWZpY2FudFRva2VuIiwiZmlyc3RTaWduaWZpY2FudFRva2VuIiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuIiwibGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImluZGV4T2YiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsInN0YXJ0IiwiZW5kIiwic2xpY2UiLCJmb3JFYWNoIiwidG9rZW4iLCJ0b2tlbkNvbnRlbnQiLCJ0b2tlbkNvbnRlbnRGcm9tVG9rZW4iLCJub2RlcyIsImF1Z21lbnRMZWZ0IiwiYXVnbWVudFJpZ2h0IiwibGFzdE5vZGUiLCJmaXJzdE5vZGUiLCJmaXJzdFRva2VuSW5kZXgiLCJsYXN0VG9rZW5JbmRleCIsInByZXZpb3VzVG9rZW5JbmRleCIsInByZXZpb3VzVG9rZW4iLCJwcmV2aW91c1Rva2VuU2lnbmlmaWNhbnQiLCJpc1NpZ25pZmljYW50IiwidG9rZW5zTGVuZ3RoIiwibGVuZ3RoIiwibmV4dFRva2VuSW5kZXgiLCJuZXh0VG9rZW4iLCJuZXh0VG9rZW5TaWduaWZpY2FudCIsIm5leHRUb2tlbkVuZE9mTGluZVRva2VuIiwiaXNFbmRPZkxpbmVUb2tlbiIsIm9mZnNldCIsImZpcnN0VG9rZW4iLCJsYXN0VG9rZW4iLCJpbmRleCIsImdldENvbnRlbnQiLCJyZW1haW5pbmdDb250ZW50IiwidHlwZSIsImdldFR5cGUiLCJFU0NBUEVEX1RPS0VOX1RZUEUiLCJzdWJzdHJpbmciXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFTZ0JBLGVBQWU7ZUFBZkE7O0lBaUZBQyx3QkFBd0I7ZUFBeEJBOztJQXpEQUMsZ0JBQWdCO2VBQWhCQTs7SUE2RUFDLHVDQUF1QztlQUF2Q0E7Ozt5QkE1R2U7eUJBRUY7MEJBQ007QUFFbkMsSUFBUUMsUUFBZ0JDLHlCQUFjLENBQTlCRCxPQUFPRSxPQUFTRCx5QkFBYyxDQUF2QkM7QUFFUixTQUFTTixnQkFBZ0JPLElBQUksRUFBRUMsT0FBTztJQUMzQyxJQUFJQyxVQUFVQyx1QkFBWTtJQUUxQixJQUFJLEFBQUVDLFNBQVdILFFBQVhHO0lBRU4sSUFBTUMsdUJBQXVCTCxLQUFLTSx1QkFBdUIsSUFDbkRDLHdCQUF3QlAsS0FBS1Esd0JBQXdCLElBQ3JEQyw0QkFBNEJMLE9BQU9NLE9BQU8sQ0FBQ0wsdUJBQzNDTSw2QkFBNkJQLE9BQU9NLE9BQU8sQ0FBQ0g7SUFFbEQsSUFBTUssUUFBUUQsNEJBQ1JFLE1BQU1KLDRCQUE0QjtJQUV4Q0wsU0FBU0EsT0FBT1UsS0FBSyxDQUFDRixPQUFPQztJQUU3QlQsT0FBT1csT0FBTyxDQUFDLFNBQUNDO1FBQ2QsSUFBTUMsZUFBZUMsc0JBQXNCRjtRQUUzQ2QsV0FBV2U7SUFDYjtJQUVBLE9BQU9mO0FBQ1Q7QUFFTyxTQUFTUCxpQkFBaUJ3QixLQUFLLEVBQUVDLFdBQVcsRUFBRUMs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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEVTQ0FQRURfVE9LRU5fVFlQRSB9IGZyb20gXCIuLi90b2tlblR5cGVzXCI7XG5pbXBvcnQgeyBsZWFkaW5nSW5kZXhGcm9tTm9kZUFuZFRva2VucywgdHJhaWxpbmdJbmRleEZyb21Ob2RlQW5kVG9rZW5zIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ub2RlXCI7XG5cbmNvbnN0IHsgZmlyc3QsIGxhc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudEZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IGNvbnRlbnQgPSBFTVBUWV9TVFJJTkc7XG5cbiAgbGV0IHsgdG9rZW5zIH0gPSBjb250ZXh0O1xuXG4gIGNvbnN0IGxlYWRpbmdJbmRleCA9IGxlYWRpbmdJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2VucyksXG4gICAgICAgIHRyYWlsaW5nSW5kZXggPSB0cmFpbGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSxcbiAgICAgICAgc3RhcnQgPSBsZWFkaW5nSW5kZXgsICAvLy9cbiAgICAgICAgZW5kID0gdHJhaWxpbmdJbmRleCArIDE7XG5cbiAgdG9rZW5zID0gdG9rZW5zLnNsaWNlKHN0YXJ0LCBlbmQpO1xuXG4gIHRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuICAgIGNvbnN0IHRva2VuQ29udGVudCA9IHRva2VuQ29udGVudEZyb21Ub2tlbih0b2tlbik7XG5cbiAgICBjb250ZW50ICs9IHRva2VuQ29udGVudDtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50RnJvbU5vZGVzKG5vZGVzLCBhdWdtZW50TGVmdCwgYXVnbWVudFJpZ2h0LCBjb250ZXh0KSB7XG4gIGxldCBjb250ZW50ID0gRU1QVFlfU1RSSU5HO1xuXG4gIGxldCB7IHRva2VucyB9ID0gY29udGV4dDtcblxuICBjb25zdCBsYXN0Tm9kZSA9IGxhc3Qobm9kZXMpLFxuICAgICAgICBmaXJzdE5vZGUgPSBmaXJzdChub2RlcyksXG4gICAgICAgIGxlYWRpbmdJbmRleCA9IGxlYWRpbmdJbmRleEZyb21Ob2RlQW5kVG9rZW5zKGZpcnN0Tm9kZSwgdG9rZW5zKSxcbiAgICAgICAgdHJhaWxpbmdJbmRleCA9IHRyYWlsaW5nSW5kZXhGcm9tTm9kZUFuZFRva2VucyhsYXN0Tm9kZSwgdG9rZW5zKTtcblxuICBsZXQgZmlyc3RUb2tlbkluZGV4ID0gbGVhZGluZ0luZGV4LCAgLy8vXG4gICAgICBsYXN0VG9rZW5JbmRleCA9IHRyYWlsaW5nSW5kZXg7IC8vL1xuXG4gIGlmIChhdWdtZW50TGVmdCkge1xuICAgIGNvbnN0IHByZXZpb3VzVG9rZW5JbmRleCA9IGZpcnN0VG9rZW5JbmRleCAtIDE7XG5cbiAgICBpZiAocHJldmlvdXNUb2tlbkluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVG9rZW4gPSB0b2tlbnNbcHJldmlvdXNUb2tlbkluZGV4XSxcbiAgICAgICAgICAgIHByZXZpb3VzVG9rZW5TaWduaWZpY2FudCA9IHByZXZpb3VzVG9rZW4uaXNTaWduaWZpY2FudCgpO1xuXG4gICAgICBpZiAoIXByZXZpb3VzVG9rZW5TaWduaWZpY2FudCkge1xuICAgICAgICBmaXJzdFRva2VuSW5kZXgtLTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoYXVnbWVudFJpZ2h0KSB7XG4gICAgY29uc3QgdG9rZW5zTGVuZ3RoID0gdG9rZW5zLmxlbmd0aCxcbiAgICAgICAgICBuZXh0VG9rZW5JbmRleCA9IGxhc3RUb2tlbkluZGV4ICsgMTtcblxuICAgIGlmIChuZXh0VG9rZW5JbmRleCA8IHRva2Vuc0xlbmd0aCkge1xuICAgICAgY29uc3QgbmV4dFRva2VuID0gdG9rZW5zW25leHRUb2tlbkluZGV4XSxcbiAgICAgICAgICAgIG5leHRUb2tlblNpZ25pZmljYW50ID0gbmV4dFRva2VuLmlzU2lnbmlmaWNhbnQoKSxcbiAgICAgICAgICAgIG5leHRUb2tlbkVuZE9mTGluZVRva2VuID0gbmV4dFRva2VuLmlzRW5kT2ZMaW5lVG9rZW4oKTtcblxuICAgICAgaWYgKG5leHRUb2tlbkVuZE9mTGluZVRva2VuIHx8ICFuZXh0VG9rZW5TaWduaWZpY2FudCkge1xuICAgICAgICBsYXN0VG9rZW5JbmRleCsrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0YXJ0ID0gZmlyc3RUb2tlbkluZGV4LCAgLy8vXG4gICAgICAgIGVuZCA9IGxhc3RUb2tlbkluZGV4ICsgMTtcblxuICB0b2tlbnMgPSB0b2tlbnMuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgdG9rZW5zLmZvckVhY2goKHRva2VuKSA9PiB7XG4gICAgY29uc3QgdG9rZW5Db250ZW50ID0gdG9rZW5Db250ZW50RnJvbVRva2VuKHRva2VuKTtcblxuICAgIGNvbnRlbnQgKz0gdG9rZW5Db250ZW50O1xuICB9KTtcblxuICByZXR1cm4gY29udGVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRlbnRGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMsIG9mZnNldCA9IDApIHtcbiAgbGV0IGNvbnRlbnQgPSBFTVBUWV9TVFJJTkc7XG5cbiAgY29uc3QgbGVhZGluZ0luZGV4ID0gbGVhZGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSArIG9mZnNldCxcbiAgICAgICAgdHJhaWxpbmdJbmRleCA9IHRyYWlsaW5nSW5kZXhGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMpO1xuXG4gIGZvciAobGV0IGluZGV4ID0gbGVhZGluZ0luZGV4OyBpbmRleCA8PSB0cmFpbGluZ0luZGV4OyBpbmRleCsrKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaW5kZXhdLFxuICAgICAgICAgIHRva2VuQ29udGVudCA9IHRva2VuLmdldENvbnRlbnQoKTtcblxuICAgIGNvbnRlbnQgKz0gdG9rZW5Db250ZW50O1xuICB9XG5cbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1haW5pbmdDb250ZW50RnJvbU5vZGVUb2tlbnNBbmRPZmZzZXQobm9kZSwgdG9rZW5zLCBvZmZzZXQpIHtcbiAgY29uc3QgY29udGVudCA9IGNvbnRlbnRGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMsIG9mZnNldCksXG4gICAgICAgIHJlbWFpbmluZ0NvbnRlbnQgPSBjb250ZW50OyAvLy9cblxuICByZXR1cm4gcmVtYWluaW5nQ29udGVudDtcbn1cblxuZnVuY3Rpb24gdG9rZW5Db250ZW50RnJvbVRva2VuKHRva2VuKSB7XG4gIGxldCB0b2tlbkNvbnRlbnQgPSB0b2tlbi5nZXRDb250ZW50KCk7XG5cbiAgY29uc3QgdHlwZSA9IHRva2VuLmdldFR5cGUoKTtcblxuICBpZiAodHlwZSA9PT0gRVNDQVBFRF9UT0tFTl9UWVBFKSB7XG4gICAgY29uc3Qgc3RhcnQgPSAxO1xuXG4gICAgdG9rZW5Db250ZW50ID0gdG9rZW5Db250ZW50LnN1YnN0cmluZyhzdGFydCk7XG4gIH1cblxuICByZXR1cm4gdG9rZW5Db250ZW50O1xufVxuIl0sIm5hbWVzIjpbImNvbnRlbnRGcm9tTm9kZSIsImNvbnRlbnRGcm9tTm9kZUFuZFRva2VucyIsImNvbnRlbnRGcm9tTm9kZXMiLCJyZW1haW5pbmdDb250ZW50RnJvbU5vZGVUb2tlbnNBbmRPZmZzZXQiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwibGFzdCIsIm5vZGUiLCJjb250ZXh0IiwiY29udGVudCIsIkVNUFRZX1NUUklORyIsInRva2VucyIsImxlYWRpbmdJbmRleCIsImxlYWRpbmdJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwidHJhaWxpbmdJbmRleCIsInRyYWlsaW5nSW5kZXhGcm9tTm9kZUFuZFRva2VucyIsInN0YXJ0IiwiZW5kIiwic2xpY2UiLCJmb3JFYWNoIiwidG9rZW4iLCJ0b2tlbkNvbnRlbnQiLCJ0b2tlbkNvbnRlbnRGcm9tVG9rZW4iLCJub2RlcyIsImF1Z21lbnRMZWZ0IiwiYXVnbWVudFJpZ2h0IiwibGFzdE5vZGUiLCJmaXJzdE5vZGUiLCJmaXJzdFRva2VuSW5kZXgiLCJsYXN0VG9rZW5JbmRleCIsInByZXZpb3VzVG9rZW5JbmRleCIsInByZXZpb3VzVG9rZW4iLCJwcmV2aW91c1Rva2VuU2lnbmlmaWNhbnQiLCJpc1NpZ25pZmljYW50IiwidG9rZW5zTGVuZ3RoIiwibGVuZ3RoIiwibmV4dFRva2VuSW5kZXgiLCJuZXh0VG9rZW4iLCJuZXh0VG9rZW5TaWduaWZpY2FudCIsIm5leHRUb2tlbkVuZE9mTGluZVRva2VuIiwiaXNFbmRPZkxpbmVUb2tlbiIsIm9mZnNldCIsImluZGV4IiwiZ2V0Q29udGVudCIsInJlbWFpbmluZ0NvbnRlbnQiLCJ0eXBlIiwiZ2V0VHlwZSIsIkVTQ0FQRURfVE9LRU5fVFlQRSIsInN1YnN0cmluZyJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVVnQkEsZUFBZTtlQUFmQTs7SUE0RUFDLHdCQUF3QjtlQUF4QkE7O0lBdkRBQyxnQkFBZ0I7ZUFBaEJBOztJQXVFQUMsdUNBQXVDO2VBQXZDQTs7O3lCQXBHZTt5QkFFRjswQkFDTTtvQkFDMkM7QUFFOUUsSUFBUUMsUUFBZ0JDLHlCQUFjLENBQTlCRCxPQUFPRSxPQUFTRCx5QkFBYyxDQUF2QkM7QUFFUixTQUFTTixnQkFBZ0JPLElBQUksRUFBRUMsT0FBTztJQUMzQyxJQUFJ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
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ default: function() {
13
+ return _default;
14
+ },
15
+ postprocess: function() {
16
+ return postprocess;
17
+ }
18
+ });
19
+ var _necessary = require("necessary");
20
+ var clear = _necessary.arrayUtilities.clear, first = _necessary.arrayUtilities.first, push = _necessary.arrayUtilities.push;
21
+ function postprocess(divisionMarkdownNode, context) {
22
+ var divisionMarkdownNodes = [
23
+ divisionMarkdownNode
24
+ ];
25
+ resolveIncludes(divisionMarkdownNodes, context);
26
+ resolveEmbeddings(divisionMarkdownNodes, context);
27
+ paginateAndFootnotes(divisionMarkdownNodes, context);
28
+ createContents(divisionMarkdownNodes, context);
29
+ return divisionMarkdownNodes;
30
+ }
31
+ function createContents(divisionMarkdownNodes, context) {
32
+ divisionMarkdownNodes.some(function(divisionMarkdownNode) {
33
+ var contentsCreated = divisionMarkdownNode.createContents(context);
34
+ if (contentsCreated) {
35
+ return true;
36
+ }
37
+ });
38
+ }
39
+ function resolveIncludes(divisionMarkdownNodes, context) {
40
+ var firstDivisionMarkdownNode = first(divisionMarkdownNodes), divisionMarkdownNode = firstDivisionMarkdownNode; ///
41
+ Object.assign(context, {
42
+ divisionMarkdownNodes: divisionMarkdownNodes
43
+ });
44
+ divisionMarkdownNode.resolveIncludes(context);
45
+ delete context.divisionMarkdownNodes;
46
+ return divisionMarkdownNodes;
47
+ }
48
+ function resolveEmbeddings(divisionMarkdownNodes, context) {
49
+ divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
50
+ divisionMarkdownNode.resolveEmbeddings(context);
51
+ });
52
+ }
53
+ function paginateAndFootnotes(divisionMarkdownNodes, context) {
54
+ var _context_linesPerPage = context.linesPerPage, linesPerPage = _context_linesPerPage === void 0 ? null : _context_linesPerPage;
55
+ var footnoteNumberMap = {};
56
+ Object.assign(context, {
57
+ footnoteNumberMap: footnoteNumberMap
58
+ });
59
+ var pageNumber = 1;
60
+ if (linesPerPage === null) {
61
+ divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
62
+ var footnoteReplacements = divisionMarkdownNode.prepareFootnotes(context);
63
+ divisionMarkdownNode.setPageNumber(pageNumber);
64
+ divisionMarkdownNode.createFootnotes(footnoteReplacements, context);
65
+ pageNumber++;
66
+ });
67
+ } else {
68
+ var paginatedDivisionMarkdownNodes = [];
69
+ divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
70
+ var footnoteReplacements = divisionMarkdownNode.prepareFootnotes(context), _$divisionMarkdownNodes = divisionMarkdownNode.paginate(context);
71
+ _$divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
72
+ divisionMarkdownNode.setPageNumber(pageNumber);
73
+ divisionMarkdownNode.createFootnotes(footnoteReplacements, context);
74
+ pageNumber++;
75
+ });
76
+ push(paginatedDivisionMarkdownNodes, _$divisionMarkdownNodes);
77
+ });
78
+ clear(divisionMarkdownNodes);
79
+ push(divisionMarkdownNodes, paginatedDivisionMarkdownNodes);
80
+ }
81
+ delete context.footnoteNumberMap;
82
+ }
83
+ var _default = {
84
+ postprocess: postprocess
85
+ };
86
+
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWFya2Rvd24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGNsZWFyLCBmaXJzdCwgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3N0cHJvY2VzcyhkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCkge1xuICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBbXG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGVcbiAgXTtcblxuICByZXNvbHZlSW5jbHVkZXMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICByZXNvbHZlRW1iZWRkaW5ncyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIHBhZ2luYXRlQW5kRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgY3JlYXRlQ29udGVudHMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDb250ZW50cyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnNvbWUoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3QgY29udGVudHNDcmVhdGVkID0gZGl2aXNpb25NYXJrZG93bk5vZGUuY3JlYXRlQ29udGVudHMoY29udGV4dCk7XG5cbiAgICBpZiAoY29udGVudHNDcmVhdGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlSW5jbHVkZXMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGZpcnN0RGl2aXNpb25NYXJrZG93bk5vZGUgPSBmaXJzdChkaXZpc2lvbk1hcmtkb3duTm9kZXMpLFxuICAgICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IGZpcnN0RGl2aXNpb25NYXJrZG93bk5vZGU7IC8vL1xuXG4gIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlc1xuICB9KTtcblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZS5yZXNvbHZlSW5jbHVkZXMoY29udGV4dCk7XG5cbiAgZGVsZXRlIGNvbnRleHQuZGl2aXNpb25NYXJrZG93bk5vZGVzO1xuXG4gIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVFbWJlZGRpbmdzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5yZXNvbHZlRW1iZWRkaW5ncyhjb250ZXh0KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhZ2luYXRlQW5kRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCB7IGxpbmVzUGVyUGFnZSA9IG51bGwgfSA9IGNvbnRleHQ7XG5cbiAgY29uc3QgZm9vdG5vdGVOdW1iZXJNYXAgPSB7fTtcblxuICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICBmb290bm90ZU51bWJlck1hcFxuICB9KTtcblxuICBsZXQgcGFnZU51bWJlciA9IDE7XG5cbiAgaWYgKGxpbmVzUGVyUGFnZSA9PT0gbnVsbCkge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgY29uc3QgZm9vdG5vdGVSZXBsYWNlbWVudHMgPSBkaXZpc2lvbk1hcmtkb3duTm9kZS5wcmVwYXJlRm9vdG5vdGVzKGNvbnRleHQpO1xuXG4gICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5zZXRQYWdlTnVtYmVyKHBhZ2VOdW1iZXIpO1xuXG4gICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5jcmVhdGVGb290bm90ZXMoZm9vdG5vdGVSZXBsYWNlbWVudHMsIGNvbnRleHQpO1xuXG4gICAgICBwYWdlTnVtYmVyKys7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFnaW5hdGVkRGl2aXNpb25NYXJrZG93bk5vZGVzID0gW107XG5cbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnRzID0gZGl2aXNpb25NYXJrZG93bk5vZGUucHJlcGFyZUZvb3Rub3Rlcyhjb250ZXh0KSxcbiAgICAgICAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLnBhZ2luYXRlKGNvbnRleHQpO1xuXG4gICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGUuc2V0UGFnZU51bWJlcihwYWdlTnVtYmVyKTtcblxuICAgICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5jcmVhdGVGb290bm90ZXMoZm9vdG5vdGVSZXBsYWNlbWVudHMsIGNvbnRleHQpO1xuXG4gICAgICAgIHBhZ2VOdW1iZXIrKztcbiAgICAgIH0pO1xuXG4gICAgICBwdXNoKHBhZ2luYXRlZERpdmlzaW9uTWFya2Rvd25Ob2RlcywgZGl2aXNpb25NYXJrZG93bk5vZGVzKTtcbiAgICB9KTtcblxuICAgIGNsZWFyKGRpdmlzaW9uTWFya2Rvd25Ob2Rlcyk7XG5cbiAgICBwdXNoKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgcGFnaW5hdGVkRGl2aXNpb25NYXJrZG93bk5vZGVzKTtcbiAgfVxuXG4gIGRlbGV0ZSBjb250ZXh0LmZvb3Rub3RlTnVtYmVyTWFwO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHBvc3Rwcm9jZXNzXG59O1xuIl0sIm5hbWVzIjpbInBvc3Rwcm9jZXNzIiwiY2xlYXIiLCJhcnJheVV0aWxpdGllcyIsImZpcnN0IiwicHVzaCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiY29udGV4dCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsInJlc29sdmVJbmNsdWRlcyIsInJlc29sdmVFbWJlZGRpbmdzIiwicGFnaW5hdGVBbmRGb290bm90ZXMiLCJjcmVhdGVDb250ZW50cyIsInNvbWUiLCJjb250ZW50c0NyZWF0ZWQiLCJmaXJzdERpdmlzaW9uTWFya2Rvd25Ob2RlIiwiT2JqZWN0IiwiYXNzaWduIiwiZm9yRWFjaCIsImxpbmVzUGVyUGFnZSIsImZvb3Rub3RlTnVtYmVyTWFwIiwicGFnZU51bWJlciIsImZvb3Rub3RlUmVwbGFjZW1lbnRzIiwicHJlcGFyZUZvb3Rub3RlcyIsInNldFBhZ2VOdW1iZXIiLCJjcmVhdGVGb290bm90ZXMiLCJwYWdpbmF0ZWREaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJwYWdpbmF0ZSJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQW9HQSxPQUVFO2VBRkY7O0lBOUZnQkEsV0FBVztlQUFYQTs7O3lCQUplO0FBRS9CLElBQVFDLFFBQXVCQyx5QkFBYyxDQUFyQ0QsT0FBT0UsUUFBZ0JELHlCQUFjLENBQTlCQyxPQUFPQyxPQUFTRix5QkFBYyxDQUF2QkU7QUFFZixTQUFTSixZQUFZSyxvQkFBb0IsRUFBRUMsT0FBTztJQUN2RCxJQUFNQyx3QkFBd0I7UUFDNUJGO0tBQ0Q7SUFFREcsZ0JBQWdCRCx1QkFBdUJEO0lBRXZDRyxrQkFBa0JGLHVCQUF1QkQ7SUFFekNJLHFCQUFxQkgsdUJBQXVCRDtJQUU1Q0ssZUFBZUosdUJBQXVCRDtJQUV0QyxPQUFPQztBQUNUO0FBRUEsU0FBU0ksZUFBZUoscUJBQXFCLEVBQUVELE9BQU87SUFDcERDLHNCQUFzQkssSUFBSSxDQUFDLFNBQUNQO1FBQzFCLElBQU1RLGtCQUFrQlIscUJBQXFCTSxjQUFjLENBQUNMO1FBRTVELElBQUlPLGlCQUFpQjtZQUNuQixPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRUEsU0FBU0wsZ0JBQWdCRCxxQkFBcUIsRUFBRUQsT0FBTztJQUNyRCxJQUFNUSw0QkFBNEJYLE1BQU1JLHdCQUNsQ0YsdUJBQXVCUywyQkFBMkIsR0FBRztJQUUzREMsT0FBT0MsTUFBTSxDQUFDVixTQUFTO1FBQ3JCQyx1QkFBQUE7SUFDRjtJQUVBRixxQkFBcUJHLGVBQWUsQ0FBQ0Y7SUFFckMsT0FBT0EsUUFBUUMscUJBQXFCO0lBRXBDLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRSxrQkFBa0JGLHFCQUFxQixFQUFFRCxPQUFPO0lBQ3ZEQyxzQkFBc0JVLE9BQU8sQ0FBQyxTQUFDWjtRQUM3QkEscUJBQXFCSSxpQkFBaUIsQ0FBQ0g7SUFDekM7QUFDRjtBQUVBLFNBQVNJLHFCQUFxQkgscUJBQXFCLEVBQUVELE9BQU87SUFDMUQsNEJBQWdDQSxRQUF4QlksY0FBQUEsa0RBQWU7SUFFdkIsSUFBTUMsb0JBQW9CLENBQUM7SUFFM0JKLE9BQU9DLE1BQU0sQ0FBQ1YsU0FBUztRQUNyQmEsbUJBQUFBO0lBQ0Y7SUFFQSxJQUFJQyxhQUFhO0lBRWpCLElBQUlGLGlCQUFpQixNQUFNO1FBQ3pCWCxzQkFBc0JVLE9BQU8sQ0FBQyxTQUFDWjtZQUM3QixJQUFNZ0IsdUJBQXVCaEIscUJBQXFCaUIsZ0JBQWdCLENBQUNoQjtZQUVuRUQscUJBQXFCa0IsYUFBYSxDQUFDSDtZQUVuQ2YscUJBQXFCbUIsZUFBZSxDQUFDSCxzQkFBc0JmO1lBRTNEYztRQUNGO0lBQ0YsT0FBTztRQUNMLElBQU1LLGlDQUFpQyxFQUFFO1FBRXpDbEIsc0JBQXNCVSxPQUFPLENBQUMsU0FBQ1o7WUFDN0IsSUFBTWdCLHVCQUF1QmhCLHFCQUFxQmlCLGdCQUFnQixDQUFDaEIsVUFDN0RDLDBCQUF3QkYscUJBQXFCcUIsUUFBUSxDQUFDcEI7WUFFNURDLHdCQUFzQlUsT0FBTyxDQUFDLFNBQUNaO2dCQUM3QkEscUJBQXFCa0IsYUFBYSxDQUFDSDtnQkFFbkNmLHFCQUFxQm1CLGVBQWUsQ0FBQ0gsc0JBQXNCZjtnQkFFM0RjO1lBQ0Y7WUFFQWhCLEtBQUtxQixnQ0FBZ0NsQjtRQUN2QztRQUVBTixNQUFNTTtRQUVOSCxLQUFLRyx1QkFBdUJrQjtJQUM5QjtJQUVBLE9BQU9uQixRQUFRYSxpQkFBaUI7QUFDbEM7SUFFQSxXQUFlO0lBQ2JuQixhQUFBQTtBQUNGIn0=