highmark-markdown 1.2.70 → 1.2.72
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.
- package/.aiignore +7 -9
- package/.swcrc +4 -3
- package/example.js +11655 -33035
- package/lib/attributeNames.js +7 -7
- package/lib/constants.js +19 -19
- package/lib/example/constants.js +7 -7
- package/lib/example/customEventTypes.js +9 -9
- package/lib/example/importer.js +72 -28
- package/lib/example/indexOptions.js +3 -3
- package/lib/example/view/button/page.js +34 -135
- package/lib/example/view/button/tab/css.js +14 -114
- package/lib/example/view/button/tab/html.js +14 -114
- package/lib/example/view/button/tab/markdown.js +14 -114
- package/lib/example/view/button/tab/markdownStyle.js +14 -114
- package/lib/example/view/button/tab/plainText.js +14 -114
- package/lib/example/view/button/tab/preview.js +14 -114
- package/lib/example/view/button/tab.js +36 -136
- package/lib/example/view/div/container/css.js +15 -153
- package/lib/example/view/div/container/html.js +19 -157
- package/lib/example/view/div/container/markdown.js +38 -190
- package/lib/example/view/div/container/markdownStyle.js +39 -191
- package/lib/example/view/div/container/plainText.js +15 -153
- package/lib/example/view/div/container/preview.js +25 -177
- package/lib/example/view/div/container.js +20 -156
- package/lib/example/view/div/html.js +18 -173
- package/lib/example/view/div/pageButtons.js +63 -236
- package/lib/example/view/div/preview.js +58 -268
- package/lib/example/view/div/sizeable/left.js +13 -104
- package/lib/example/view/div/tabButtons/left.js +42 -161
- package/lib/example/view/div/tabButtons/right.js +75 -198
- package/lib/example/view/div/tabButtons.js +15 -172
- package/lib/example/view/textarea/css.js +29 -147
- package/lib/example/view/textarea/markdown.js +29 -145
- package/lib/example/view/textarea/markdownStyle.js +29 -145
- package/lib/example/view/textarea/parseTree/css.js +21 -132
- package/lib/example/view/textarea/parseTree/html.js +21 -132
- package/lib/example/view/textarea/parseTree/markdown.js +17 -129
- package/lib/example/view/textarea/parseTree/markdownStyle.js +17 -129
- package/lib/example/view/textarea/parseTree.js +20 -135
- package/lib/example/view/textarea/plainText.js +32 -153
- package/lib/example/view/textarea.js +16 -23
- package/lib/example/view/xmp.js +30 -187
- package/lib/example/view.js +281 -518
- package/lib/example.js +10 -10
- package/lib/index/item.js +25 -87
- package/lib/index/list.js +29 -62
- package/lib/index/match.js +23 -62
- package/lib/index.js +34 -34
- package/lib/letters.js +3 -3
- package/lib/map/className.js +6 -6
- package/lib/map/node/css.js +50 -42
- package/lib/map/node/html.js +108 -71
- package/lib/map/nonTerminalNode/markdown.js +49 -40
- package/lib/map/nonTerminalNode/markdownStyle.js +49 -40
- package/lib/map/tagName.js +6 -6
- package/lib/markdown/bnf.js +300 -3
- package/lib/markdown/entries.js +3 -3
- package/lib/markdown/lexer.js +23 -126
- package/lib/markdown/parser.js +18 -121
- package/lib/markdownStyle/bnf.js +80 -3
- package/lib/markdownStyle/entries.js +8 -8
- package/lib/markdownStyle/lexer.js +23 -126
- package/lib/markdownStyle/parser.js +18 -121
- package/lib/mixins/node.js +53 -53
- package/lib/mixins/token.js +13 -13
- package/lib/node/css/amount.js +16 -110
- package/lib/node/css/argument.js +8 -95
- package/lib/node/css/arguments.js +13 -127
- package/lib/node/css/class.js +13 -127
- package/lib/node/css/colour.js +16 -110
- package/lib/node/css/content.js +12 -103
- package/lib/node/css/declaration.js +19 -109
- package/lib/node/css/identifier.js +16 -110
- package/lib/node/css/name.js +13 -127
- package/lib/node/css/pseudoClass.js +13 -127
- package/lib/node/css/ruleName.js +43 -137
- package/lib/node/css/ruleSet.js +45 -139
- package/lib/node/css/selector.js +8 -95
- package/lib/node/css/selectors.js +19 -110
- package/lib/node/css/selectorsList.js +22 -115
- package/lib/node/css/string.js +16 -110
- package/lib/node/css/target.js +12 -103
- package/lib/node/css/topmost.js +70 -182
- package/lib/node/css/value.js +12 -126
- package/lib/node/css/values.js +16 -107
- package/lib/node/css/verbatim.js +35 -132
- package/lib/node/css.js +66 -275
- package/lib/node/html/anchor/contents.js +8 -92
- package/lib/node/html/anchor/footnote.js +8 -92
- package/lib/node/html/anchor/index.js +8 -92
- package/lib/node/html/anchor.js +38 -157
- package/lib/node/html/container.js +24 -154
- package/lib/node/html/directive/contents.js +8 -95
- package/lib/node/html/directive/footnotes.js +8 -95
- package/lib/node/html/directive/index.js +8 -95
- package/lib/node/html/directive/pageNumber.js +8 -95
- package/lib/node/html/directive.js +23 -123
- package/lib/node/html/division.js +127 -273
- package/lib/node/html/error.js +41 -179
- package/lib/node/html/footnote.js +40 -149
- package/lib/node/html/heading/index.js +61 -183
- package/lib/node/html/heading/primary.js +12 -112
- package/lib/node/html/heading/quaternary.js +12 -112
- package/lib/node/html/heading/secondary.js +12 -112
- package/lib/node/html/heading/tertiary.js +12 -112
- package/lib/node/html/heading.js +30 -147
- package/lib/node/html/image.js +76 -207
- package/lib/node/html/item/contents.js +20 -124
- package/lib/node/html/item/footnote.js +21 -125
- package/lib/node/html/item/index.js +39 -145
- package/lib/node/html/item/ordered.js +23 -133
- package/lib/node/html/item/unordered.js +10 -110
- package/lib/node/html/line/block.js +15 -119
- package/lib/node/html/line.js +89 -242
- package/lib/node/html/link/contents.js +36 -153
- package/lib/node/html/link/email.js +89 -243
- package/lib/node/html/link/footnote.js +94 -238
- package/lib/node/html/link/hyper.js +89 -243
- package/lib/node/html/link/index.js +67 -222
- package/lib/node/html/list/contents.js +20 -124
- package/lib/node/html/list/footnotes.js +40 -160
- package/lib/node/html/list/index.js +20 -124
- package/lib/node/html/list/ordered.js +10 -110
- package/lib/node/html/list/unordered.js +10 -110
- package/lib/node/html/listing/block.js +33 -177
- package/lib/node/html/listing/inline.js +35 -174
- package/lib/node/html/pageNumber.js +65 -216
- package/lib/node/html/paragraph.js +10 -110
- package/lib/node/html/reference.js +10 -110
- package/lib/node/html/table.js +10 -110
- package/lib/node/html/tableBody.js +10 -110
- package/lib/node/html/tableBodyCell.js +10 -110
- package/lib/node/html/tableBodyRow.js +10 -110
- package/lib/node/html/tableHead.js +10 -110
- package/lib/node/html/tableHeadCell.js +10 -110
- package/lib/node/html/tableHeadRow.js +10 -110
- package/lib/node/html/text/block.js +10 -110
- package/lib/node/html/text/comma.js +21 -128
- package/lib/node/html/text/emphasised.js +14 -118
- package/lib/node/html/text/index.js +28 -143
- package/lib/node/html/text/inline.js +34 -147
- package/lib/node/html/text/plain.js +10 -110
- package/lib/node/html/text/strong.js +14 -118
- package/lib/node/html/text/stronglyEmphasised.js +66 -208
- package/lib/node/html/text.js +24 -162
- package/lib/node/html/topmost.js +100 -240
- package/lib/node/html.js +256 -554
- package/lib/node/markdown/blockEnd.js +5 -89
- package/lib/node/markdown/blockStart.js +18 -113
- package/lib/node/markdown/className.js +12 -100
- package/lib/node/markdown/container.js +18 -113
- package/lib/node/markdown/directive/embed.js +39 -137
- package/lib/node/markdown/directive/include.js +39 -137
- package/lib/node/markdown/division.js +70 -216
- package/lib/node/markdown/document.js +44 -147
- package/lib/node/markdown/error.js +12 -100
- package/lib/node/markdown/footnote.js +12 -100
- package/lib/node/markdown/hyperlink.js +34 -131
- package/lib/node/markdown/image.js +12 -100
- package/lib/node/markdown/item/ordered.js +15 -103
- package/lib/node/markdown/link/email.js +34 -131
- package/lib/node/markdown/link/footnote.js +14 -102
- package/lib/node/markdown/listng/block.js +12 -100
- package/lib/node/markdown/listng/inline.js +18 -106
- package/lib/node/markdown/path.js +12 -100
- package/lib/node/markdown/reference.js +15 -103
- package/lib/node/markdown/subDivision.js +35 -126
- package/lib/node/markdown/text/block.js +5 -89
- package/lib/node/markdown/text/plain.js +5 -89
- package/lib/node/markdown/text.js +46 -134
- package/lib/node/markdown.js +34 -169
- package/lib/node/markdownStyle/amount.js +13 -101
- package/lib/node/markdownStyle/argument.js +5 -89
- package/lib/node/markdownStyle/arguments.js +5 -89
- package/lib/node/markdownStyle/colour.js +12 -100
- package/lib/node/markdownStyle/content.js +21 -109
- package/lib/node/markdownStyle/declaration.js +5 -89
- package/lib/node/markdownStyle/document.js +5 -89
- package/lib/node/markdownStyle/error.js +5 -89
- package/lib/node/markdownStyle/identifier.js +13 -101
- package/lib/node/markdownStyle/name.js +5 -89
- package/lib/node/markdownStyle/nonsense.js +5 -89
- package/lib/node/markdownStyle/pseudoClass.js +5 -89
- package/lib/node/markdownStyle/ruleName.js +12 -100
- package/lib/node/markdownStyle/ruleSet.js +5 -89
- package/lib/node/markdownStyle/selector.js +5 -89
- package/lib/node/markdownStyle/selectors.js +5 -89
- package/lib/node/markdownStyle/selectorsList.js +5 -89
- package/lib/node/markdownStyle/string.js +12 -100
- package/lib/node/markdownStyle/target.js +12 -100
- package/lib/node/markdownStyle/value.js +5 -89
- package/lib/node/markdownStyle/values.js +5 -89
- package/lib/node/markdownStyle/verbatim.js +5 -89
- package/lib/node/markdownStyle.js +16 -135
- package/lib/prepends.js +4 -4
- package/lib/queries/markdown.js +7 -7
- package/lib/queries/markdownStyle.js +7 -7
- package/lib/ruleNames/markdown.js +145 -145
- package/lib/ruleNames/markdownStyle.js +51 -51
- package/lib/style/defaultMarkdown.js +247 -3
- package/lib/style/font.js +54 -3
- package/lib/styleElement/markdown/default.js +17 -131
- package/lib/styleElement/markdown.js +30 -151
- package/lib/styleElement.js +30 -69
- package/lib/targets.js +3 -3
- package/lib/tokenTypes.js +39 -39
- package/lib/transform/css/ruleSet.js +15 -106
- package/lib/transform/css/selectors.js +17 -108
- package/lib/transform/css/selectorsList.js +28 -121
- package/lib/transform/css.js +35 -139
- package/lib/transform/html/anchor/index.js +11 -99
- package/lib/transform/html/division.js +18 -112
- package/lib/transform/html/footnote.js +25 -122
- package/lib/transform/html/heading/index.js +7 -91
- package/lib/transform/html/index.js +44 -139
- package/lib/transform/html/item/contents.js +23 -111
- package/lib/transform/html/item/footnote.js +11 -99
- package/lib/transform/html/item/index.js +11 -99
- package/lib/transform/html/line.js +10 -98
- package/lib/transform/html/link/contents.js +20 -111
- package/lib/transform/html/link/footnote.js +36 -140
- package/lib/transform/html/list/contents.js +37 -151
- package/lib/transform/html/list/footnotes.js +19 -110
- package/lib/transform/html/list/index.js +16 -100
- package/lib/transform/html/pageNumber.js +15 -106
- package/lib/transform/html.js +28 -132
- package/lib/transform/markdown/directive/embed.js +9 -120
- package/lib/transform/markdown/directive/ignore.js +6 -90
- package/lib/transform/markdown/directive/include.js +15 -129
- package/lib/transform/markdown/subDivision.js +6 -90
- package/lib/transform/markdown.js +7 -134
- package/lib/utilities/contents.js +74 -145
- package/lib/utilities/css.js +12 -16
- package/lib/utilities/dom.js +11 -11
- package/lib/utilities/entities.js +2 -2
- package/lib/utilities/entries.js +5 -5
- package/lib/utilities/grammar.js +57 -86
- package/lib/utilities/html.js +21 -25
- package/lib/utilities/index.js +76 -89
- package/lib/utilities/markdown.js +14 -17
- package/lib/utilities/markdownStyle.js +2 -2
- package/lib/utilities/object.js +16 -16
- package/lib/utilities/query.js +13 -14
- package/lib/utilities/string.js +2 -2
- package/package.json +3 -3
package/lib/example/view.js
CHANGED
|
@@ -8,539 +8,302 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
function _assert_this_initialized(self) {
|
|
32
|
-
if (self === void 0) {
|
|
33
|
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
34
|
-
}
|
|
35
|
-
return self;
|
|
36
|
-
}
|
|
37
|
-
function _call_super(_this, derived, args) {
|
|
38
|
-
derived = _get_prototype_of(derived);
|
|
39
|
-
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
40
|
-
}
|
|
41
|
-
function _class_call_check(instance, Constructor) {
|
|
42
|
-
if (!(instance instanceof Constructor)) {
|
|
43
|
-
throw new TypeError("Cannot call a class as a function");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function _construct(Parent, args, Class) {
|
|
47
|
-
if (_is_native_reflect_construct()) {
|
|
48
|
-
_construct = Reflect.construct;
|
|
49
|
-
} else {
|
|
50
|
-
_construct = function construct(Parent, args, Class) {
|
|
51
|
-
var a = [
|
|
52
|
-
null
|
|
53
|
-
];
|
|
54
|
-
a.push.apply(a, args);
|
|
55
|
-
var Constructor = Function.bind.apply(Parent, a);
|
|
56
|
-
var instance = new Constructor();
|
|
57
|
-
if (Class) _set_prototype_of(instance, Class.prototype);
|
|
58
|
-
return instance;
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
return _construct.apply(null, arguments);
|
|
62
|
-
}
|
|
63
|
-
function _defineProperties(target, props) {
|
|
64
|
-
for(var i = 0; i < props.length; i++){
|
|
65
|
-
var descriptor = props[i];
|
|
66
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
67
|
-
descriptor.configurable = true;
|
|
68
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
69
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
73
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
74
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
75
|
-
return Constructor;
|
|
76
|
-
}
|
|
77
|
-
function _define_property(obj, key, value) {
|
|
78
|
-
if (key in obj) {
|
|
79
|
-
Object.defineProperty(obj, key, {
|
|
80
|
-
value: value,
|
|
81
|
-
enumerable: true,
|
|
82
|
-
configurable: true,
|
|
83
|
-
writable: true
|
|
84
|
-
});
|
|
85
|
-
} else {
|
|
86
|
-
obj[key] = value;
|
|
87
|
-
}
|
|
88
|
-
return obj;
|
|
89
|
-
}
|
|
90
|
-
function _get_prototype_of(o) {
|
|
91
|
-
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
92
|
-
return o.__proto__ || Object.getPrototypeOf(o);
|
|
93
|
-
};
|
|
94
|
-
return _get_prototype_of(o);
|
|
95
|
-
}
|
|
96
|
-
function _inherits(subClass, superClass) {
|
|
97
|
-
if (typeof superClass !== "function" && superClass !== null) {
|
|
98
|
-
throw new TypeError("Super expression must either be null or a function");
|
|
99
|
-
}
|
|
100
|
-
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
101
|
-
constructor: {
|
|
102
|
-
value: subClass,
|
|
103
|
-
writable: true,
|
|
104
|
-
configurable: true
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
if (superClass) _set_prototype_of(subClass, superClass);
|
|
108
|
-
}
|
|
11
|
+
const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
|
|
12
|
+
const _easy = require("easy");
|
|
13
|
+
const _index = require("../index");
|
|
14
|
+
const _easylayout = require("easy-layout");
|
|
15
|
+
const _indexOptions = /*#__PURE__*/ _interop_require_default(require("./indexOptions"));
|
|
16
|
+
const _pageButtons = /*#__PURE__*/ _interop_require_default(require("./view/div/pageButtons"));
|
|
17
|
+
const _left = /*#__PURE__*/ _interop_require_default(require("./view/div/sizeable/left"));
|
|
18
|
+
const _css = /*#__PURE__*/ _interop_require_default(require("./view/div/container/css"));
|
|
19
|
+
const _html = /*#__PURE__*/ _interop_require_default(require("./view/div/container/html"));
|
|
20
|
+
const _left1 = /*#__PURE__*/ _interop_require_default(require("./view/div/tabButtons/left"));
|
|
21
|
+
const _right = /*#__PURE__*/ _interop_require_default(require("./view/div/tabButtons/right"));
|
|
22
|
+
const _preview = /*#__PURE__*/ _interop_require_default(require("./view/div/container/preview"));
|
|
23
|
+
const _markdown = /*#__PURE__*/ _interop_require_default(require("./view/div/container/markdown"));
|
|
24
|
+
const _css1 = /*#__PURE__*/ _interop_require_default(require("./view/textarea/parseTree/css"));
|
|
25
|
+
const _html1 = /*#__PURE__*/ _interop_require_default(require("./view/textarea/parseTree/html"));
|
|
26
|
+
const _plainText = /*#__PURE__*/ _interop_require_default(require("./view/div/container/plainText"));
|
|
27
|
+
const _markdownStyle = /*#__PURE__*/ _interop_require_default(require("./view/div/container/markdownStyle"));
|
|
28
|
+
const _targets = require("../targets");
|
|
29
|
+
const _importer = require("./importer");
|
|
30
|
+
const _constants = require("./constants");
|
|
109
31
|
function _interop_require_default(obj) {
|
|
110
32
|
return obj && obj.__esModule ? obj : {
|
|
111
33
|
default: obj
|
|
112
34
|
};
|
|
113
35
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
119
|
-
return call;
|
|
120
|
-
}
|
|
121
|
-
return _assert_this_initialized(self);
|
|
122
|
-
}
|
|
123
|
-
function _set_prototype_of(o, p) {
|
|
124
|
-
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
125
|
-
o.__proto__ = p;
|
|
126
|
-
return o;
|
|
36
|
+
const { tokensFromMarkdown, tokensFromMarkdownStyle, documentMarkdownNodeFromTokens, htmlFromMarkdownOptionsAndImporter, documentMarkdownStyleNodeFromTokens, topmostHTMLNodeFromDocumentMarkdownNode, cssFromMarkdownStyleAndCSSSelectorsString, topmostCSSNodeFromDocumentMarkdownStyleNode } = _index.grammarUtilities;
|
|
37
|
+
class View extends _easy.Element {
|
|
38
|
+
pageUpdateCustomHandler = (event, element, index)=>{
|
|
39
|
+
this.updateHTML(index);
|
|
127
40
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
41
|
+
markdownStyleCustomHandler = (event, element)=>{
|
|
42
|
+
this.markdownStyle();
|
|
43
|
+
};
|
|
44
|
+
markdownCustomHandler = (event, element)=>{
|
|
45
|
+
this.markdown();
|
|
46
|
+
};
|
|
47
|
+
plainTextCustomHandler = (event, element)=>{
|
|
48
|
+
this.plainText();
|
|
49
|
+
};
|
|
50
|
+
previewCustomHandler = (event, element)=>{
|
|
51
|
+
this.preview();
|
|
52
|
+
};
|
|
53
|
+
keyUpCustomHandler = (event, element)=>{
|
|
54
|
+
this.update();
|
|
55
|
+
};
|
|
56
|
+
htmlCustomHandler = (event, element)=>{
|
|
57
|
+
this.html();
|
|
58
|
+
};
|
|
59
|
+
cssCustomHandler = (event, element)=>{
|
|
60
|
+
this.css();
|
|
61
|
+
};
|
|
62
|
+
update() {
|
|
63
|
+
this.updateMarkdownStyle();
|
|
64
|
+
this.updateMarkdown();
|
|
65
|
+
this.updateHTML();
|
|
66
|
+
this.updateCSS();
|
|
133
67
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
68
|
+
updateMarkdownStyle() {
|
|
69
|
+
const markdownStyle = this.getMarkdownStyle(), tokens = tokensFromMarkdownStyle(markdownStyle), documentMarkdownStyleNode = documentMarkdownStyleNodeFromTokens(tokens);
|
|
70
|
+
if (documentMarkdownStyleNode === null) {
|
|
71
|
+
this.resetMarkdownStyleTokens();
|
|
72
|
+
this.resetDocumentMarkdownStyleNode();
|
|
73
|
+
this.clearMarkdownStyleParseTreeTextarea();
|
|
74
|
+
return;
|
|
137
75
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
76
|
+
const node = documentMarkdownStyleNode, parseTree = node.asParseTree(tokens), markdownStyleTokens = tokens; ///
|
|
77
|
+
this.setMarkdownStyleTokens(markdownStyleTokens);
|
|
78
|
+
this.setDocumentMarkdownStyleNode(documentMarkdownStyleNode);
|
|
79
|
+
this.updateMarkdownStyleParseTreeTextarea(parseTree);
|
|
80
|
+
}
|
|
81
|
+
updateMarkdown() {
|
|
82
|
+
const markdown = this.getMarkdown(), tokens = tokensFromMarkdown(markdown), documentMarkdownNode = documentMarkdownNodeFromTokens(tokens);
|
|
83
|
+
if (documentMarkdownNode === null) {
|
|
84
|
+
this.resetMarkdownTokens();
|
|
85
|
+
this.resetDocumentMarkdownNode();
|
|
86
|
+
this.clearMarkdownParseTreeTextarea();
|
|
87
|
+
return;
|
|
150
88
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
89
|
+
let context;
|
|
90
|
+
context = {
|
|
91
|
+
tokens,
|
|
92
|
+
importer: _importer.importer
|
|
93
|
+
};
|
|
94
|
+
documentMarkdownNode.resolve(context);
|
|
95
|
+
const documentMarkdownNodeParseTree = documentMarkdownNode.asParseTree(tokens), markdownParseTree = documentMarkdownNodeParseTree, markdownTokens = tokens; ///
|
|
96
|
+
this.setMarkdownTokens(markdownTokens);
|
|
97
|
+
this.setDocumentMarkdownNode(documentMarkdownNode);
|
|
98
|
+
this.updateMarkdownParseTreeTextarea(markdownParseTree);
|
|
99
|
+
}
|
|
100
|
+
updateHTML(index = 0) {
|
|
101
|
+
this.clearXMP();
|
|
102
|
+
this.clearPreviewDiv();
|
|
103
|
+
this.clearPlainTextTextarea();
|
|
104
|
+
this.clearHTMLParseTreeTextarea();
|
|
105
|
+
this.clearPageButtonsDiv();
|
|
106
|
+
const documentMarkdownNode = this.getDocumentMarkdownNode(), topmostHTMLNode = topmostHTMLNodeFromDocumentMarkdownNode(documentMarkdownNode);
|
|
107
|
+
if (topmostHTMLNode === null) {
|
|
108
|
+
return;
|
|
154
109
|
}
|
|
155
|
-
|
|
156
|
-
|
|
110
|
+
let context;
|
|
111
|
+
const markdownTokens = this.getMarkdownTokens(), tokens = markdownTokens; ///
|
|
112
|
+
context = {
|
|
113
|
+
tokens
|
|
114
|
+
};
|
|
115
|
+
topmostHTMLNode.resolve(context);
|
|
116
|
+
const divisionHTMLNode = topmostHTMLNode.getDivisionHTMLNodeAt(index);
|
|
117
|
+
if (divisionHTMLNode === null) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const divisionHTMLNOdeParseTree = divisionHTMLNode.asParseTree(), htmlParseTree = divisionHTMLNOdeParseTree, divisionHTMLNodes = topmostHTMLNode.getDivisionHTMLNodes(), length = divisionHTMLNodes.length; ///
|
|
121
|
+
context = {
|
|
122
|
+
tokens,
|
|
123
|
+
pathToURL
|
|
124
|
+
};
|
|
125
|
+
this.updatePreviewDiv(divisionHTMLNode, context);
|
|
126
|
+
this.updatePlainTextTextarea(divisionHTMLNode, context);
|
|
127
|
+
this.updateHTMLParseTreeTextarea(htmlParseTree);
|
|
128
|
+
this.updatePageButtonsDiv(length, index);
|
|
129
|
+
const markdown = this.getMarkdown(), options = _indexOptions.default, html = htmlFromMarkdownOptionsAndImporter(markdown, options, _importer.importer);
|
|
130
|
+
this.updateXMP(html, context);
|
|
131
|
+
}
|
|
132
|
+
updateCSS() {
|
|
133
|
+
const markdownStyleTokens = this.getMarkdownStyleTokens(), markdownStyleElement = this.getMarkdownStyleElement(), documentMarkdownStyleNode = this.getDocumentMarkdownStyleNode();
|
|
134
|
+
if (documentMarkdownStyleNode === null) {
|
|
135
|
+
const css = _constants.EMPTY_STRING;
|
|
136
|
+
markdownStyleElement.setCSS(css);
|
|
137
|
+
this.clearCSSParseTreeTextarea();
|
|
138
|
+
this.clearCSS();
|
|
139
|
+
return;
|
|
157
140
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
141
|
+
const topmostCSSNode = topmostCSSNodeFromDocumentMarkdownStyleNode(documentMarkdownStyleNode), target = _targets.WEB_TARGET, tokens = markdownStyleTokens, context = {
|
|
142
|
+
target,
|
|
143
|
+
tokens
|
|
144
|
+
};
|
|
145
|
+
topmostCSSNode.resolve(context);
|
|
146
|
+
const topmostCSSNodeParseTree = topmostCSSNode.asParseTree(tokens), cssParseTree = topmostCSSNodeParseTree; ///
|
|
147
|
+
this.updateCSSParseTreeTextarea(cssParseTree);
|
|
148
|
+
const cssSelectorsString = _constants.CSS_SELECTORS_STRING, markdownStyle = this.getMarkdownStyle(), css = cssFromMarkdownStyleAndCSSSelectorsString(markdownStyle, cssSelectorsString);
|
|
149
|
+
markdownStyleElement.setCSS(css);
|
|
150
|
+
this.setCSS(css);
|
|
151
|
+
}
|
|
152
|
+
markdownStyle() {
|
|
153
|
+
this.hideMarkdownContainerDiv();
|
|
154
|
+
this.showMarkdownStyleContainerDiv();
|
|
155
|
+
}
|
|
156
|
+
markdown() {
|
|
157
|
+
this.showMarkdownContainerDiv();
|
|
158
|
+
this.hideMarkdownStyleContainerDiv();
|
|
159
|
+
}
|
|
160
|
+
plainText() {
|
|
161
|
+
this.hideCSSContainerDiv();
|
|
162
|
+
this.hideHTMLContainerDiv();
|
|
163
|
+
this.hidePreviewContainerDiv();
|
|
164
|
+
this.showPlainTextContainerDiv();
|
|
165
|
+
this.hideCSSParseTreeTextarea();
|
|
166
|
+
this.showHTMLParseTreeTextarea();
|
|
167
|
+
}
|
|
168
|
+
preview() {
|
|
169
|
+
this.hideCSSContainerDiv();
|
|
170
|
+
this.hideHTMLContainerDiv();
|
|
171
|
+
this.showPreviewContainerDiv();
|
|
172
|
+
this.hidePlainTextContainerDiv();
|
|
173
|
+
this.hideCSSParseTreeTextarea();
|
|
174
|
+
this.showHTMLParseTreeTextarea();
|
|
175
|
+
}
|
|
176
|
+
html() {
|
|
177
|
+
this.hideCSSContainerDiv();
|
|
178
|
+
this.showHTMLContainerDiv();
|
|
179
|
+
this.hidePreviewContainerDiv();
|
|
180
|
+
this.hidePlainTextContainerDiv();
|
|
181
|
+
this.hideCSSParseTreeTextarea();
|
|
182
|
+
this.showHTMLParseTreeTextarea();
|
|
183
|
+
}
|
|
184
|
+
css() {
|
|
185
|
+
this.showCSSContainerDiv();
|
|
186
|
+
this.hideHTMLContainerDiv();
|
|
187
|
+
this.hidePreviewContainerDiv();
|
|
188
|
+
this.hidePlainTextContainerDiv();
|
|
189
|
+
this.showCSSParseTreeTextarea();
|
|
190
|
+
this.hideHTMLParseTreeTextarea();
|
|
191
|
+
}
|
|
192
|
+
resetMarkdownTokens() {
|
|
193
|
+
const markdownTokens = null;
|
|
194
|
+
this.setMarkdownTokens(markdownTokens);
|
|
195
|
+
}
|
|
196
|
+
resetMarkdownStyleTokens() {
|
|
197
|
+
const markdownStyleTokens = null;
|
|
198
|
+
this.setMarkdownStyleTokens(markdownStyleTokens);
|
|
199
|
+
}
|
|
200
|
+
resetDocumentMarkdownNode() {
|
|
201
|
+
const documentMarkdownNode = null;
|
|
202
|
+
this.setDocumentMarkdownNode(documentMarkdownNode);
|
|
203
|
+
}
|
|
204
|
+
resetDocumentMarkdownStyleNode() {
|
|
205
|
+
const documentMarkdownStyleNode = null;
|
|
206
|
+
this.setDocumentMarkdownStyleNode(documentMarkdownStyleNode);
|
|
207
|
+
}
|
|
208
|
+
getMarkdownStyleElement() {
|
|
209
|
+
const { markdownStyleElement } = this.properties;
|
|
210
|
+
return markdownStyleElement;
|
|
211
|
+
}
|
|
212
|
+
getMarkdownTokens() {
|
|
213
|
+
const { markdownTokens } = this.getState();
|
|
214
|
+
return markdownTokens;
|
|
215
|
+
}
|
|
216
|
+
getMarkdownStyleTokens() {
|
|
217
|
+
const { markdownStyleTokens } = this.getState();
|
|
218
|
+
return markdownStyleTokens;
|
|
219
|
+
}
|
|
220
|
+
getDocumentMarkdownNode() {
|
|
221
|
+
const { topmostMMarkdownNode } = this.getState();
|
|
222
|
+
return topmostMMarkdownNode;
|
|
223
|
+
}
|
|
224
|
+
getDocumentMarkdownStyleNode() {
|
|
225
|
+
const { topmostMMarkdownStyleNode } = this.getState();
|
|
226
|
+
return topmostMMarkdownStyleNode;
|
|
227
|
+
}
|
|
228
|
+
setMarkdownTokens(markdownTokens) {
|
|
229
|
+
this.updateState({
|
|
230
|
+
markdownTokens
|
|
165
231
|
});
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
function _is_native_reflect_construct() {
|
|
171
|
-
try {
|
|
172
|
-
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
173
|
-
} catch (_) {}
|
|
174
|
-
return (_is_native_reflect_construct = function() {
|
|
175
|
-
return !!result;
|
|
176
|
-
})();
|
|
177
|
-
}
|
|
178
|
-
function _templateObject() {
|
|
179
|
-
var data = _tagged_template_literal([
|
|
180
|
-
"\n\n padding: 1rem;\n \n"
|
|
181
|
-
]);
|
|
182
|
-
_templateObject = function _templateObject() {
|
|
183
|
-
return data;
|
|
184
|
-
};
|
|
185
|
-
return data;
|
|
186
|
-
}
|
|
187
|
-
var tokensFromMarkdown = _index.grammarUtilities.tokensFromMarkdown, tokensFromMarkdownStyle = _index.grammarUtilities.tokensFromMarkdownStyle, documentMarkdownNodeFromTokens = _index.grammarUtilities.documentMarkdownNodeFromTokens, htmlFromMarkdownOptionsAndImporter = _index.grammarUtilities.htmlFromMarkdownOptionsAndImporter, documentMarkdownStyleNodeFromTokens = _index.grammarUtilities.documentMarkdownStyleNodeFromTokens, topmostHTMLNodeFromDocumentMarkdownNode = _index.grammarUtilities.topmostHTMLNodeFromDocumentMarkdownNode, cssFromMarkdownStyleAndCSSSelectorsString = _index.grammarUtilities.cssFromMarkdownStyleAndCSSSelectorsString, topmostCSSNodeFromDocumentMarkdownStyleNode = _index.grammarUtilities.topmostCSSNodeFromDocumentMarkdownStyleNode;
|
|
188
|
-
var View = /*#__PURE__*/ function(Element) {
|
|
189
|
-
_inherits(View, Element);
|
|
190
|
-
function View() {
|
|
191
|
-
_class_call_check(this, View);
|
|
192
|
-
var _this;
|
|
193
|
-
_this = _call_super(this, View, arguments), _define_property(_this, "pageUpdateCustomHandler", function(event, element, index) {
|
|
194
|
-
_this.updateHTML(index);
|
|
195
|
-
}), _define_property(_this, "markdownStyleCustomHandler", function(event, element) {
|
|
196
|
-
_this.markdownStyle();
|
|
197
|
-
}), _define_property(_this, "markdownCustomHandler", function(event, element) {
|
|
198
|
-
_this.markdown();
|
|
199
|
-
}), _define_property(_this, "plainTextCustomHandler", function(event, element) {
|
|
200
|
-
_this.plainText();
|
|
201
|
-
}), _define_property(_this, "previewCustomHandler", function(event, element) {
|
|
202
|
-
_this.preview();
|
|
203
|
-
}), _define_property(_this, "keyUpCustomHandler", function(event, element) {
|
|
204
|
-
_this.update();
|
|
205
|
-
}), _define_property(_this, "htmlCustomHandler", function(event, element) {
|
|
206
|
-
_this.html();
|
|
207
|
-
}), _define_property(_this, "cssCustomHandler", function(event, element) {
|
|
208
|
-
_this.css();
|
|
232
|
+
}
|
|
233
|
+
setMarkdownStyleTokens(markdownStyleTokens) {
|
|
234
|
+
this.updateState({
|
|
235
|
+
markdownStyleTokens
|
|
209
236
|
});
|
|
210
|
-
return _this;
|
|
211
237
|
}
|
|
212
|
-
|
|
213
|
-
{
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
},
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
topmostHTMLNode.resolve(context);
|
|
279
|
-
var divisionHTMLNode = topmostHTMLNode.getDivisionHTMLNodeAt(index);
|
|
280
|
-
if (divisionHTMLNode === null) {
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
var divisionHTMLNOdeParseTree = divisionHTMLNode.asParseTree(), htmlParseTree = divisionHTMLNOdeParseTree, divisionHTMLNodes = topmostHTMLNode.getDivisionHTMLNodes(), length = divisionHTMLNodes.length; ///
|
|
284
|
-
context = {
|
|
285
|
-
tokens: tokens,
|
|
286
|
-
pathToURL: pathToURL
|
|
287
|
-
};
|
|
288
|
-
this.updatePreviewDiv(divisionHTMLNode, context);
|
|
289
|
-
this.updatePlainTextTextarea(divisionHTMLNode, context);
|
|
290
|
-
this.updateHTMLParseTreeTextarea(htmlParseTree);
|
|
291
|
-
this.updatePageButtonsDiv(length, index);
|
|
292
|
-
var markdown = this.getMarkdown(), options = _indexOptions.default, html = htmlFromMarkdownOptionsAndImporter(markdown, options, _importer.importer);
|
|
293
|
-
this.updateXMP(html, context);
|
|
294
|
-
}
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
key: "updateCSS",
|
|
298
|
-
value: function updateCSS() {
|
|
299
|
-
var markdownStyleTokens = this.getMarkdownStyleTokens(), markdownStyleElement = this.getMarkdownStyleElement(), documentMarkdownStyleNode = this.getDocumentMarkdownStyleNode();
|
|
300
|
-
if (documentMarkdownStyleNode === null) {
|
|
301
|
-
var css = _constants.EMPTY_STRING;
|
|
302
|
-
markdownStyleElement.setCSS(css);
|
|
303
|
-
this.clearCSSParseTreeTextarea();
|
|
304
|
-
this.clearCSS();
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
var topmostCSSNode = topmostCSSNodeFromDocumentMarkdownStyleNode(documentMarkdownStyleNode), target = _targets.WEB_TARGET, tokens = markdownStyleTokens, context = {
|
|
308
|
-
target: target,
|
|
309
|
-
tokens: tokens
|
|
310
|
-
};
|
|
311
|
-
topmostCSSNode.resolve(context);
|
|
312
|
-
var topmostCSSNodeParseTree = topmostCSSNode.asParseTree(tokens), cssParseTree = topmostCSSNodeParseTree; ///
|
|
313
|
-
this.updateCSSParseTreeTextarea(cssParseTree);
|
|
314
|
-
var cssSelectorsString = _constants.CSS_SELECTORS_STRING, markdownStyle = this.getMarkdownStyle(), css1 = cssFromMarkdownStyleAndCSSSelectorsString(markdownStyle, cssSelectorsString);
|
|
315
|
-
markdownStyleElement.setCSS(css1);
|
|
316
|
-
this.setCSS(css1);
|
|
317
|
-
}
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
key: "markdownStyle",
|
|
321
|
-
value: function markdownStyle() {
|
|
322
|
-
this.hideMarkdownContainerDiv();
|
|
323
|
-
this.showMarkdownStyleContainerDiv();
|
|
324
|
-
}
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
key: "markdown",
|
|
328
|
-
value: function markdown() {
|
|
329
|
-
this.showMarkdownContainerDiv();
|
|
330
|
-
this.hideMarkdownStyleContainerDiv();
|
|
331
|
-
}
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
key: "plainText",
|
|
335
|
-
value: function plainText() {
|
|
336
|
-
this.hideCSSContainerDiv();
|
|
337
|
-
this.hideHTMLContainerDiv();
|
|
338
|
-
this.hidePreviewContainerDiv();
|
|
339
|
-
this.showPlainTextContainerDiv();
|
|
340
|
-
this.hideCSSParseTreeTextarea();
|
|
341
|
-
this.showHTMLParseTreeTextarea();
|
|
342
|
-
}
|
|
343
|
-
},
|
|
344
|
-
{
|
|
345
|
-
key: "preview",
|
|
346
|
-
value: function preview() {
|
|
347
|
-
this.hideCSSContainerDiv();
|
|
348
|
-
this.hideHTMLContainerDiv();
|
|
349
|
-
this.showPreviewContainerDiv();
|
|
350
|
-
this.hidePlainTextContainerDiv();
|
|
351
|
-
this.hideCSSParseTreeTextarea();
|
|
352
|
-
this.showHTMLParseTreeTextarea();
|
|
353
|
-
}
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
key: "html",
|
|
357
|
-
value: function html() {
|
|
358
|
-
this.hideCSSContainerDiv();
|
|
359
|
-
this.showHTMLContainerDiv();
|
|
360
|
-
this.hidePreviewContainerDiv();
|
|
361
|
-
this.hidePlainTextContainerDiv();
|
|
362
|
-
this.hideCSSParseTreeTextarea();
|
|
363
|
-
this.showHTMLParseTreeTextarea();
|
|
364
|
-
}
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
key: "css",
|
|
368
|
-
value: function css() {
|
|
369
|
-
this.showCSSContainerDiv();
|
|
370
|
-
this.hideHTMLContainerDiv();
|
|
371
|
-
this.hidePreviewContainerDiv();
|
|
372
|
-
this.hidePlainTextContainerDiv();
|
|
373
|
-
this.showCSSParseTreeTextarea();
|
|
374
|
-
this.hideHTMLParseTreeTextarea();
|
|
375
|
-
}
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
key: "resetMarkdownTokens",
|
|
379
|
-
value: function resetMarkdownTokens() {
|
|
380
|
-
var markdownTokens = null;
|
|
381
|
-
this.setMarkdownTokens(markdownTokens);
|
|
382
|
-
}
|
|
383
|
-
},
|
|
384
|
-
{
|
|
385
|
-
key: "resetMarkdownStyleTokens",
|
|
386
|
-
value: function resetMarkdownStyleTokens() {
|
|
387
|
-
var markdownStyleTokens = null;
|
|
388
|
-
this.setMarkdownStyleTokens(markdownStyleTokens);
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
key: "resetDocumentMarkdownNode",
|
|
393
|
-
value: function resetDocumentMarkdownNode() {
|
|
394
|
-
var documentMarkdownNode = null;
|
|
395
|
-
this.setDocumentMarkdownNode(documentMarkdownNode);
|
|
396
|
-
}
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
key: "resetDocumentMarkdownStyleNode",
|
|
400
|
-
value: function resetDocumentMarkdownStyleNode() {
|
|
401
|
-
var documentMarkdownStyleNode = null;
|
|
402
|
-
this.setDocumentMarkdownStyleNode(documentMarkdownStyleNode);
|
|
403
|
-
}
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
key: "getMarkdownStyleElement",
|
|
407
|
-
value: function getMarkdownStyleElement() {
|
|
408
|
-
var markdownStyleElement = this.properties.markdownStyleElement;
|
|
409
|
-
return markdownStyleElement;
|
|
410
|
-
}
|
|
411
|
-
},
|
|
412
|
-
{
|
|
413
|
-
key: "getMarkdownTokens",
|
|
414
|
-
value: function getMarkdownTokens() {
|
|
415
|
-
var markdownTokens = this.getState().markdownTokens;
|
|
416
|
-
return markdownTokens;
|
|
417
|
-
}
|
|
418
|
-
},
|
|
419
|
-
{
|
|
420
|
-
key: "getMarkdownStyleTokens",
|
|
421
|
-
value: function getMarkdownStyleTokens() {
|
|
422
|
-
var markdownStyleTokens = this.getState().markdownStyleTokens;
|
|
423
|
-
return markdownStyleTokens;
|
|
424
|
-
}
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
key: "getDocumentMarkdownNode",
|
|
428
|
-
value: function getDocumentMarkdownNode() {
|
|
429
|
-
var topmostMMarkdownNode = this.getState().topmostMMarkdownNode;
|
|
430
|
-
return topmostMMarkdownNode;
|
|
431
|
-
}
|
|
432
|
-
},
|
|
433
|
-
{
|
|
434
|
-
key: "getDocumentMarkdownStyleNode",
|
|
435
|
-
value: function getDocumentMarkdownStyleNode() {
|
|
436
|
-
var topmostMMarkdownStyleNode = this.getState().topmostMMarkdownStyleNode;
|
|
437
|
-
return topmostMMarkdownStyleNode;
|
|
438
|
-
}
|
|
439
|
-
},
|
|
440
|
-
{
|
|
441
|
-
key: "setMarkdownTokens",
|
|
442
|
-
value: function setMarkdownTokens(markdownTokens) {
|
|
443
|
-
this.updateState({
|
|
444
|
-
markdownTokens: markdownTokens
|
|
445
|
-
});
|
|
446
|
-
}
|
|
447
|
-
},
|
|
448
|
-
{
|
|
449
|
-
key: "setMarkdownStyleTokens",
|
|
450
|
-
value: function setMarkdownStyleTokens(markdownStyleTokens) {
|
|
451
|
-
this.updateState({
|
|
452
|
-
markdownStyleTokens: markdownStyleTokens
|
|
453
|
-
});
|
|
454
|
-
}
|
|
455
|
-
},
|
|
456
|
-
{
|
|
457
|
-
key: "setDocumentMarkdownNode",
|
|
458
|
-
value: function setDocumentMarkdownNode(topmostMMarkdownNode) {
|
|
459
|
-
this.updateState({
|
|
460
|
-
topmostMMarkdownNode: topmostMMarkdownNode
|
|
461
|
-
});
|
|
462
|
-
}
|
|
463
|
-
},
|
|
464
|
-
{
|
|
465
|
-
key: "setDocumentMarkdownStyleNode",
|
|
466
|
-
value: function setDocumentMarkdownStyleNode(topmostMMarkdownStyleNode) {
|
|
467
|
-
this.updateState({
|
|
468
|
-
topmostMMarkdownStyleNode: topmostMMarkdownStyleNode
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
key: "setInitialState",
|
|
474
|
-
value: function setInitialState() {
|
|
475
|
-
var markdownTokens = null, markdownStyleTokens = null, documentMarkdownNode = null, documentMarkdownStyleNode = null;
|
|
476
|
-
this.setState({
|
|
477
|
-
markdownTokens: markdownTokens,
|
|
478
|
-
markdownStyleTokens: markdownStyleTokens,
|
|
479
|
-
documentMarkdownNode: documentMarkdownNode,
|
|
480
|
-
documentMarkdownStyleNode: documentMarkdownStyleNode
|
|
481
|
-
});
|
|
482
|
-
}
|
|
483
|
-
},
|
|
484
|
-
{
|
|
485
|
-
key: "didMount",
|
|
486
|
-
value: function didMount() {
|
|
487
|
-
this.markdown();
|
|
488
|
-
this.preview();
|
|
489
|
-
this.update();
|
|
490
|
-
}
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
key: "willUnmount",
|
|
494
|
-
value: function willUnmount() {
|
|
495
|
-
///
|
|
496
|
-
}
|
|
497
|
-
},
|
|
498
|
-
{
|
|
499
|
-
key: "childElements",
|
|
500
|
-
value: function childElements() {
|
|
501
|
-
return /*#__PURE__*/ React.createElement(_easylayout.ColumnsDiv, null, /*#__PURE__*/ React.createElement(_left.default, null, /*#__PURE__*/ React.createElement(_left1.default, {
|
|
502
|
-
onCustomMarkdown: this.markdownCustomHandler,
|
|
503
|
-
onCustomMarkdownStyle: this.markdownStyleCustomHandler
|
|
504
|
-
}), /*#__PURE__*/ React.createElement(_markdown.default, {
|
|
505
|
-
onCustomKeyUp: this.keyUpCustomHandler
|
|
506
|
-
}), /*#__PURE__*/ React.createElement(_markdownStyle.default, {
|
|
507
|
-
onCustomKeyUp: this.keyUpCustomHandler
|
|
508
|
-
})), /*#__PURE__*/ React.createElement(_easylayout.VerticalSplitterDiv, null), /*#__PURE__*/ React.createElement(_easylayout.ColumnDiv, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_right.default, {
|
|
509
|
-
onCustomCSS: this.cssCustomHandler,
|
|
510
|
-
onCustomHTML: this.htmlCustomHandler,
|
|
511
|
-
onCustomPreview: this.previewCustomHandler,
|
|
512
|
-
onCustomPlainText: this.plainTextCustomHandler
|
|
513
|
-
}), /*#__PURE__*/ React.createElement(_pageButtons.default, {
|
|
514
|
-
onCustomPageUpdate: this.pageUpdateCustomHandler
|
|
515
|
-
}), /*#__PURE__*/ React.createElement(_css.default, null), /*#__PURE__*/ React.createElement(_html.default, null), /*#__PURE__*/ React.createElement(_preview.default, null), /*#__PURE__*/ React.createElement(_plainText.default, null), /*#__PURE__*/ React.createElement(_html1.default, null), /*#__PURE__*/ React.createElement(_css1.default, null))));
|
|
516
|
-
}
|
|
517
|
-
},
|
|
518
|
-
{
|
|
519
|
-
key: "initialise",
|
|
520
|
-
value: function initialise() {
|
|
521
|
-
this.assignContext();
|
|
522
|
-
this.setInitialState();
|
|
523
|
-
var _this_constructor = this.constructor, _$initialMarkdown = _this_constructor.initialMarkdown, initialMarkdownStyle = _this_constructor.initialMarkdownStyle, markdownStyle = initialMarkdownStyle, markdown = _$initialMarkdown; ///
|
|
524
|
-
this.setMarkdownStyle(markdownStyle);
|
|
525
|
-
this.setMarkdown(markdown);
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
]);
|
|
529
|
-
return View;
|
|
530
|
-
}(_wrap_native_super(_easy.Element));
|
|
531
|
-
_define_property(View, "initialMarkdown", _importer.initialMarkdown);
|
|
532
|
-
_define_property(View, "initialMarkdownStyle", "");
|
|
533
|
-
_define_property(View, "tagName", "div");
|
|
534
|
-
_define_property(View, "ignoredProperties", [
|
|
535
|
-
"markdownStyleElement"
|
|
536
|
-
]);
|
|
537
|
-
_define_property(View, "defaultProperties", {
|
|
538
|
-
className: "view"
|
|
539
|
-
});
|
|
540
|
-
var _default = (0, _easywithstyle.default)(View)(_templateObject());
|
|
238
|
+
setDocumentMarkdownNode(topmostMMarkdownNode) {
|
|
239
|
+
this.updateState({
|
|
240
|
+
topmostMMarkdownNode
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
setDocumentMarkdownStyleNode(topmostMMarkdownStyleNode) {
|
|
244
|
+
this.updateState({
|
|
245
|
+
topmostMMarkdownStyleNode
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
setInitialState() {
|
|
249
|
+
const markdownTokens = null, markdownStyleTokens = null, documentMarkdownNode = null, documentMarkdownStyleNode = null;
|
|
250
|
+
this.setState({
|
|
251
|
+
markdownTokens,
|
|
252
|
+
markdownStyleTokens,
|
|
253
|
+
documentMarkdownNode,
|
|
254
|
+
documentMarkdownStyleNode
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
didMount() {
|
|
258
|
+
this.markdown();
|
|
259
|
+
this.preview();
|
|
260
|
+
this.update();
|
|
261
|
+
}
|
|
262
|
+
willUnmount() {
|
|
263
|
+
///
|
|
264
|
+
}
|
|
265
|
+
childElements() {
|
|
266
|
+
return /*#__PURE__*/ React.createElement(_easylayout.ColumnsDiv, null, /*#__PURE__*/ React.createElement(_left.default, null, /*#__PURE__*/ React.createElement(_left1.default, {
|
|
267
|
+
onCustomMarkdown: this.markdownCustomHandler,
|
|
268
|
+
onCustomMarkdownStyle: this.markdownStyleCustomHandler
|
|
269
|
+
}), /*#__PURE__*/ React.createElement(_markdown.default, {
|
|
270
|
+
onCustomKeyUp: this.keyUpCustomHandler
|
|
271
|
+
}), /*#__PURE__*/ React.createElement(_markdownStyle.default, {
|
|
272
|
+
onCustomKeyUp: this.keyUpCustomHandler
|
|
273
|
+
})), /*#__PURE__*/ React.createElement(_easylayout.VerticalSplitterDiv, null), /*#__PURE__*/ React.createElement(_easylayout.ColumnDiv, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_right.default, {
|
|
274
|
+
onCustomCSS: this.cssCustomHandler,
|
|
275
|
+
onCustomHTML: this.htmlCustomHandler,
|
|
276
|
+
onCustomPreview: this.previewCustomHandler,
|
|
277
|
+
onCustomPlainText: this.plainTextCustomHandler
|
|
278
|
+
}), /*#__PURE__*/ React.createElement(_pageButtons.default, {
|
|
279
|
+
onCustomPageUpdate: this.pageUpdateCustomHandler
|
|
280
|
+
}), /*#__PURE__*/ React.createElement(_css.default, null), /*#__PURE__*/ React.createElement(_html.default, null), /*#__PURE__*/ React.createElement(_preview.default, null), /*#__PURE__*/ React.createElement(_plainText.default, null), /*#__PURE__*/ React.createElement(_html1.default, null), /*#__PURE__*/ React.createElement(_css1.default, null))));
|
|
281
|
+
}
|
|
282
|
+
initialise() {
|
|
283
|
+
this.assignContext();
|
|
284
|
+
this.setInitialState();
|
|
285
|
+
const { initialMarkdown, initialMarkdownStyle } = this.constructor, markdownStyle = initialMarkdownStyle, markdown = initialMarkdown; ///
|
|
286
|
+
this.setMarkdownStyle(markdownStyle);
|
|
287
|
+
this.setMarkdown(markdown);
|
|
288
|
+
}
|
|
289
|
+
static initialMarkdown = _importer.initialMarkdown;
|
|
290
|
+
static initialMarkdownStyle = "";
|
|
291
|
+
static tagName = "div";
|
|
292
|
+
static ignoredProperties = [
|
|
293
|
+
"markdownStyleElement"
|
|
294
|
+
];
|
|
295
|
+
static defaultProperties = {
|
|
296
|
+
className: "view"
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
const _default = (0, _easywithstyle.default)(View)`
|
|
300
|
+
|
|
301
|
+
padding: 1rem;
|
|
302
|
+
|
|
303
|
+
`;
|
|
541
304
|
function pathToURL(path) {
|
|
542
|
-
|
|
305
|
+
const url = `https://djalbat.com/${path}`;
|
|
543
306
|
return url;
|
|
544
307
|
}
|
|
545
308
|
|
|
546
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgZ3JhbW1hclV0aWxpdGllcyB9IGZyb20gXCIuLi9pbmRleFwiOyAgLy8vXG5pbXBvcnQgeyBSb3dzRGl2LCBDb2x1bW5EaXYsIENvbHVtbnNEaXYsIFZlcnRpY2FsU3BsaXR0ZXJEaXYgfSBmcm9tIFwiZWFzeS1sYXlvdXRcIjtcblxuaW1wb3J0IGluZGV4T3B0aW9ucyBmcm9tIFwiLi9pbmRleE9wdGlvbnNcIjtcbmltcG9ydCBQYWdlQnV0dG9uc0RpdiBmcm9tIFwiLi92aWV3L2Rpdi9wYWdlQnV0dG9uc1wiO1xuaW1wb3J0IExlZnRTaXplYWJsZURpdiBmcm9tIFwiLi92aWV3L2Rpdi9zaXplYWJsZS9sZWZ0XCI7XG5pbXBvcnQgQ1NTQ29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9jc3NcIjtcbmltcG9ydCBIVE1MQ29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9odG1sXCI7XG5pbXBvcnQgTGVmdFRhYkJ1dHRvbnNEaXYgZnJvbSBcIi4vdmlldy9kaXYvdGFiQnV0dG9ucy9sZWZ0XCI7XG5pbXBvcnQgUmlnaHRUYWJCdXR0b25zRGl2IGZyb20gXCIuL3ZpZXcvZGl2L3RhYkJ1dHRvbnMvcmlnaHRcIjtcbmltcG9ydCBQcmV2aWV3Q29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9wcmV2aWV3XCI7XG5pbXBvcnQgTWFya2Rvd25Db250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL21hcmtkb3duXCI7XG5pbXBvcnQgQ1NTUGFyc2VUcmVlVGV4dGFyZWEgZnJvbSBcIi4vdmlldy90ZXh0YXJlYS9wYXJzZVRyZWUvY3NzXCI7XG5pbXBvcnQgSFRNTFBhcnNlVHJlZVRleHRhcmVhIGZyb20gXCIuL3ZpZXcvdGV4dGFyZWEvcGFyc2VUcmVlL2h0bWxcIjtcbmltcG9ydCBQbGFpblRleHRDb250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL3BsYWluVGV4dFwiO1xuaW1wb3J0IE1hcmtkb3duU3R5bGVDb250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL21hcmtkb3duU3R5bGVcIjtcblxuaW1wb3J0IHsgV0VCX1RBUkdFVCB9IGZyb20gXCIuLi90YXJnZXRzXCI7XG5pbXBvcnQgeyBpbml0aWFsTWFya2Rvd24sIGltcG9ydGVyIH0gZnJvbSBcIi4vaW1wb3J0ZXJcIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORywgQ1NTX1NFTEVDVE9SU19TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyB0b2tlbnNGcm9tTWFya2Rvd24sXG4gICAgICAgIHRva2Vuc0Zyb21NYXJrZG93blN0eWxlLFxuICAgICAgICBkb2N1bWVudE1hcmtkb3duTm9kZUZyb21Ub2tlbnMsXG4gICAgICAgIGh0bWxGcm9tTWFya2Rvd25PcHRpb25zQW5kSW1wb3J0ZXIsXG4gICAgICAgIGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGVGcm9tVG9rZW5zLFxuICAgICAgICB0b3Btb3N0SFRNTE5vZGVGcm9tRG9jdW1lbnRNYXJrZG93bk5vZGUsXG4gICAgICAgIGNzc0Zyb21NYXJrZG93blN0eWxlQW5kQ1NTU2VsZWN0b3JzU3RyaW5nLFxuICAgICAgICB0b3Btb3N0Q1NTTm9kZUZyb21Eb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlIH0gPSBncmFtbWFyVXRpbGl0aWVzO1xuXG5jbGFzcyBWaWV3IGV4dGVuZHMgRWxlbWVudCB7XG4gIHBhZ2VVcGRhdGVDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIHRoaXMudXBkYXRlSFRNTChpbmRleCk7XG4gIH1cblxuICBtYXJrZG93blN0eWxlQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMubWFya2Rvd25TdHlsZSgpO1xuICB9XG5cbiAgbWFya2Rvd25DdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy5tYXJrZG93bigpO1xuICB9XG5cbiAgcGxhaW5UZXh0Q3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMucGxhaW5UZXh0KCk7XG4gIH1cblxuICBwcmV2aWV3Q3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMucHJldmlldygpO1xuICB9XG5cbiAga2V5VXBDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIGh0bWxDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy5odG1sKCk7XG4gIH1cblxuICBjc3NDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy5jc3MoKTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICB0aGlzLnVwZGF0ZU1hcmtkb3duU3R5bGUoKTtcblxuICAgIHRoaXMudXBkYXRlTWFya2Rvd24oKTtcblxuICAgIHRoaXMudXBkYXRlSFRNTCgpO1xuXG4gICAgdGhpcy51cGRhdGVDU1MoKTtcbiAgfVxuXG4gIHVwZGF0ZU1hcmtkb3duU3R5bGUoKSB7XG4gICAgY29uc3QgbWFya2Rvd25TdHlsZSA9IHRoaXMuZ2V0TWFya2Rvd25TdHlsZSgpLFxuICAgICAgICAgIHRva2VucyA9IHRva2Vuc0Zyb21NYXJrZG93blN0eWxlKG1hcmtkb3duU3R5bGUpLFxuICAgICAgICAgIGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUgPSBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2Vucyh0b2tlbnMpO1xuXG4gICAgaWYgKGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMucmVzZXRNYXJrZG93blN0eWxlVG9rZW5zKCk7XG5cbiAgICAgIHRoaXMucmVzZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKCk7XG5cbiAgICAgIHRoaXMuY2xlYXJNYXJrZG93blN0eWxlUGFyc2VUcmVlVGV4dGFyZWEoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlLCAvLy9cbiAgICAgICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2VucyksXG4gICAgICAgICAgbWFya2Rvd25TdHlsZVRva2VucyA9IHRva2VuczsgLy8vXG5cbiAgICB0aGlzLnNldE1hcmtkb3duU3R5bGVUb2tlbnMobWFya2Rvd25TdHlsZVRva2Vucyk7XG5cbiAgICB0aGlzLnNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUoZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSk7XG5cbiAgICB0aGlzLnVwZGF0ZU1hcmtkb3duU3R5bGVQYXJzZVRyZWVUZXh0YXJlYShwYXJzZVRyZWUpO1xuICB9XG5cbiAgdXBkYXRlTWFya2Rvd24oKSB7XG4gICAgY29uc3QgbWFya2Rvd24gPSB0aGlzLmdldE1hcmtkb3duKCksXG4gICAgICAgICAgdG9rZW5zID0gdG9rZW5zRnJvbU1hcmtkb3duKG1hcmtkb3duKSxcbiAgICAgICAgICBkb2N1bWVudE1hcmtkb3duTm9kZSA9IGRvY3VtZW50TWFya2Rvd25Ob2RlRnJvbVRva2Vucyh0b2tlbnMpO1xuXG4gICAgaWYgKGRvY3VtZW50TWFya2Rvd25Ob2RlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnJlc2V0TWFya2Rvd25Ub2tlbnMoKTtcblxuICAgICAgdGhpcy5yZXNldERvY3VtZW50TWFya2Rvd25Ob2RlKCk7XG5cbiAgICAgIHRoaXMuY2xlYXJNYXJrZG93blBhcnNlVHJlZVRleHRhcmVhKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29udGV4dDtcblxuICAgIGNvbnRleHQgPSB7XG4gICAgICB0b2tlbnMsXG4gICAgICBpbXBvcnRlclxuICAgIH07XG5cbiAgICBkb2N1bWVudE1hcmtkb3duTm9kZS5yZXNvbHZlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgZG9jdW1lbnRNYXJrZG93bk5vZGVQYXJzZVRyZWUgPSBkb2N1bWVudE1hcmtkb3duTm9kZS5hc1BhcnNlVHJlZSh0b2tlbnMpLFxuICAgICAgICAgIG1hcmtkb3duUGFyc2VUcmVlID0gZG9jdW1lbnRNYXJrZG93bk5vZGVQYXJzZVRyZWUsIC8vL1xuICAgICAgICAgIG1hcmtkb3duVG9rZW5zID0gdG9rZW5zOyAgLy8vXG5cbiAgICB0aGlzLnNldE1hcmtkb3duVG9rZW5zKG1hcmtkb3duVG9rZW5zKTtcblxuICAgIHRoaXMuc2V0RG9jdW1lbnRNYXJrZG93bk5vZGUoZG9jdW1lbnRNYXJrZG93bk5vZGUpO1xuXG4gICAgdGhpcy51cGRhdGVNYXJrZG93blBhcnNlVHJlZVRleHRhcmVhKG1hcmtkb3duUGFyc2VUcmVlKTtcbiAgfVxuXG4gIHVwZGF0ZUhUTUwoaW5kZXggPSAwKSB7XG4gICAgdGhpcy5jbGVhclhNUCgpO1xuXG4gICAgdGhpcy5jbGVhclByZXZpZXdEaXYoKTtcblxuICAgIHRoaXMuY2xlYXJQbGFpblRleHRUZXh0YXJlYSgpO1xuXG4gICAgdGhpcy5jbGVhckhUTUxQYXJzZVRyZWVUZXh0YXJlYSgpO1xuXG4gICAgdGhpcy5jbGVhclBhZ2VCdXR0b25zRGl2KCk7XG5cbiAgICBjb25zdCBkb2N1bWVudE1hcmtkb3duTm9kZSA9IHRoaXMuZ2V0RG9jdW1lbnRNYXJrZG93bk5vZGUoKSxcbiAgICAgICAgICB0b3Btb3N0SFRNTE5vZGUgPSB0b3Btb3N0SFRNTE5vZGVGcm9tRG9jdW1lbnRNYXJrZG93bk5vZGUoZG9jdW1lbnRNYXJrZG93bk5vZGUpO1xuXG4gICAgaWYgKHRvcG1vc3RIVE1MTm9kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb250ZXh0O1xuXG4gICAgY29uc3QgbWFya2Rvd25Ub2tlbnMgPSB0aGlzLmdldE1hcmtkb3duVG9rZW5zKCksXG4gICAgICAgICAgdG9rZW5zID0gbWFya2Rvd25Ub2tlbnM7ICAvLy9cblxuICAgIGNvbnRleHQgPSB7XG4gICAgICB0b2tlbnNcbiAgICB9O1xuXG4gICAgdG9wbW9zdEhUTUxOb2RlLnJlc29sdmUoY29udGV4dCk7XG5cbiAgICBjb25zdCBkaXZpc2lvbkhUTUxOb2RlID0gdG9wbW9zdEhUTUxOb2RlLmdldERpdmlzaW9uSFRNTE5vZGVBdChpbmRleCk7XG5cbiAgICBpZiAoZGl2aXNpb25IVE1MTm9kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpdmlzaW9uSFRNTE5PZGVQYXJzZVRyZWUgPSBkaXZpc2lvbkhUTUxOb2RlLmFzUGFyc2VUcmVlKCksXG4gICAgICAgICAgaHRtbFBhcnNlVHJlZSA9IGRpdmlzaW9uSFRNTE5PZGVQYXJzZVRyZWUsICAvLy9cbiAgICAgICAgICBkaXZpc2lvbkhUTUxOb2RlcyA9IHRvcG1vc3RIVE1MTm9kZS5nZXREaXZpc2lvbkhUTUxOb2RlcygpLFxuICAgICAgICAgIGxlbmd0aCA9IGRpdmlzaW9uSFRNTE5vZGVzLmxlbmd0aDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHtcbiAgICAgIHRva2VucyxcbiAgICAgIHBhdGhUb1VSTFxuICAgIH07XG5cbiAgICB0aGlzLnVwZGF0ZVByZXZpZXdEaXYoZGl2aXNpb25IVE1MTm9kZSwgY29udGV4dCk7XG5cbiAgICB0aGlzLnVwZGF0ZVBsYWluVGV4dFRleHRhcmVhKGRpdmlzaW9uSFRNTE5vZGUsIGNvbnRleHQpO1xuXG4gICAgdGhpcy51cGRhdGVIVE1MUGFyc2VUcmVlVGV4dGFyZWEoaHRtbFBhcnNlVHJlZSk7XG5cbiAgICB0aGlzLnVwZGF0ZVBhZ2VCdXR0b25zRGl2KGxlbmd0aCwgaW5kZXgpO1xuXG4gICAgY29uc3QgbWFya2Rvd24gPSB0aGlzLmdldE1hcmtkb3duKCksXG4gICAgICAgICAgb3B0aW9ucyA9IGluZGV4T3B0aW9ucywgLy8vXG4gICAgICAgICAgaHRtbCA9IGh0bWxGcm9tTWFya2Rvd25PcHRpb25zQW5kSW1wb3J0ZXIobWFya2Rvd24sIG9wdGlvbnMsIGltcG9ydGVyKTtcblxuICAgIHRoaXMudXBkYXRlWE1QKGh0bWwsIGNvbnRleHQpO1xuICB9XG5cbiAgdXBkYXRlQ1NTKCkge1xuICAgIGNvbnN0IG1hcmtkb3duU3R5bGVUb2tlbnMgPSB0aGlzLmdldE1hcmtkb3duU3R5bGVUb2tlbnMoKSxcbiAgICAgICAgICBtYXJrZG93blN0eWxlRWxlbWVudCA9IHRoaXMuZ2V0TWFya2Rvd25TdHlsZUVsZW1lbnQoKSxcbiAgICAgICAgICBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlID0gdGhpcy5nZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKCk7XG5cbiAgICBpZiAoZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgY3NzID0gRU1QVFlfU1RSSU5HO1xuXG4gICAgICBtYXJrZG93blN0eWxlRWxlbWVudC5zZXRDU1MoY3NzKTtcblxuICAgICAgdGhpcy5jbGVhckNTU1BhcnNlVHJlZVRleHRhcmVhKCk7XG5cbiAgICAgIHRoaXMuY2xlYXJDU1MoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRvcG1vc3RDU1NOb2RlID0gdG9wbW9zdENTU05vZGVGcm9tRG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZShkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKSxcbiAgICAgICAgICB0YXJnZXQgPSBXRUJfVEFSR0VULFxuICAgICAgICAgIHRva2VucyA9IG1hcmtkb3duU3R5bGVUb2tlbnMsIC8vL1xuICAgICAgICAgIGNvbnRleHQgPSB7XG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICB0b2tlbnNcbiAgICAgICAgICB9O1xuXG4gICAgdG9wbW9zdENTU05vZGUucmVzb2x2ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHRvcG1vc3RDU1NOb2RlUGFyc2VUcmVlID0gdG9wbW9zdENTU05vZGUuYXNQYXJzZVRyZWUodG9rZW5zKSxcbiAgICAgICAgICBjc3NQYXJzZVRyZWUgPSB0b3Btb3N0Q1NTTm9kZVBhcnNlVHJlZTsgLy8vXG5cbiAgICB0aGlzLnVwZGF0ZUNTU1BhcnNlVHJlZVRleHRhcmVhKGNzc1BhcnNlVHJlZSk7XG5cbiAgICBjb25zdCBjc3NTZWxlY3RvcnNTdHJpbmcgPSBDU1NfU0VMRUNUT1JTX1NUUklORyxcbiAgICAgICAgICBtYXJrZG93blN0eWxlID0gdGhpcy5nZXRNYXJrZG93blN0eWxlKCksXG4gICAgICAgICAgY3NzID0gY3NzRnJvbU1hcmtkb3duU3R5bGVBbmRDU1NTZWxlY3RvcnNTdHJpbmcobWFya2Rvd25TdHlsZSwgY3NzU2VsZWN0b3JzU3RyaW5nKTtcblxuICAgIG1hcmtkb3duU3R5bGVFbGVtZW50LnNldENTUyhjc3MpO1xuXG4gICAgdGhpcy5zZXRDU1MoY3NzKTtcbiAgfVxuXG4gIG1hcmtkb3duU3R5bGUoKSB7XG4gICAgdGhpcy5oaWRlTWFya2Rvd25Db250YWluZXJEaXYoKTtcbiAgICB0aGlzLnNob3dNYXJrZG93blN0eWxlQ29udGFpbmVyRGl2KCk7XG4gIH1cblxuICBtYXJrZG93bigpIHtcbiAgICB0aGlzLnNob3dNYXJrZG93bkNvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuaGlkZU1hcmtkb3duU3R5bGVDb250YWluZXJEaXYoKTtcbiAgfVxuXG4gIHBsYWluVGV4dCgpIHtcbiAgICB0aGlzLmhpZGVDU1NDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVIVE1MQ29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlUHJldmlld0NvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuc2hvd1BsYWluVGV4dENvbnRhaW5lckRpdigpO1xuXG4gICAgdGhpcy5oaWRlQ1NTUGFyc2VUcmVlVGV4dGFyZWEoKTtcbiAgICB0aGlzLnNob3dIVE1MUGFyc2VUcmVlVGV4dGFyZWEoKTtcbiAgfVxuXG4gIHByZXZpZXcoKSB7XG4gICAgdGhpcy5oaWRlQ1NTQ29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlSFRNTENvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuc2hvd1ByZXZpZXdDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQbGFpblRleHRDb250YWluZXJEaXYoKTtcblxuICAgIHRoaXMuaGlkZUNTU1BhcnNlVHJlZVRleHRhcmVhKCk7XG4gICAgdGhpcy5zaG93SFRNTFBhcnNlVHJlZVRleHRhcmVhKCk7XG4gIH1cblxuICBodG1sKCkge1xuICAgIHRoaXMuaGlkZUNTU0NvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuc2hvd0hUTUxDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQcmV2aWV3Q29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlUGxhaW5UZXh0Q29udGFpbmVyRGl2KCk7XG5cbiAgICB0aGlzLmhpZGVDU1NQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICAgIHRoaXMuc2hvd0hUTUxQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICB9XG5cbiAgY3NzKCkge1xuICAgIHRoaXMuc2hvd0NTU0NvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuaGlkZUhUTUxDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQcmV2aWV3Q29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlUGxhaW5UZXh0Q29udGFpbmVyRGl2KCk7XG5cbiAgICB0aGlzLnNob3dDU1NQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICAgIHRoaXMuaGlkZUhUTUxQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICB9XG5cbiAgcmVzZXRNYXJrZG93blRva2VucygpIHtcbiAgICBjb25zdCBtYXJrZG93blRva2VucyA9IG51bGw7XG5cbiAgICB0aGlzLnNldE1hcmtkb3duVG9rZW5zKG1hcmtkb3duVG9rZW5zKTtcbiAgfVxuXG4gIHJlc2V0TWFya2Rvd25TdHlsZVRva2VucygpIHtcbiAgICBjb25zdCBtYXJrZG93blN0eWxlVG9rZW5zID0gbnVsbDtcblxuICAgIHRoaXMuc2V0TWFya2Rvd25TdHlsZVRva2VucyhtYXJrZG93blN0eWxlVG9rZW5zKTtcbiAgfVxuXG4gIHJlc2V0RG9jdW1lbnRNYXJrZG93bk5vZGUoKSB7XG4gICAgY29uc3QgZG9jdW1lbnRNYXJrZG93bk5vZGUgPSBudWxsO1xuXG4gICAgdGhpcy5zZXREb2N1bWVudE1hcmtkb3duTm9kZShkb2N1bWVudE1hcmtkb3duTm9kZSk7XG4gIH1cblxuICByZXNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUoKSB7XG4gICAgY29uc3QgZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSA9IG51bGw7XG5cbiAgICB0aGlzLnNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUoZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSk7XG4gIH1cblxuICBnZXRNYXJrZG93blN0eWxlRWxlbWVudCgpIHtcbiAgICBjb25zdCB7IG1hcmtkb3duU3R5bGVFbGVtZW50IH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICByZXR1cm4gbWFya2Rvd25TdHlsZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRNYXJrZG93blRva2VucygpIHtcbiAgICBjb25zdCB7IG1hcmtkb3duVG9rZW5zIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gbWFya2Rvd25Ub2tlbnM7XG4gIH1cblxuICBnZXRNYXJrZG93blN0eWxlVG9rZW5zKCkge1xuICAgIGNvbnN0IHsgbWFya2Rvd25TdHlsZVRva2VucyB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIG1hcmtkb3duU3R5bGVUb2tlbnM7XG4gIH1cblxuICBnZXREb2N1bWVudE1hcmtkb3duTm9kZSgpIHtcbiAgICBjb25zdCB7IHRvcG1vc3RNTWFya2Rvd25Ob2RlIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gdG9wbW9zdE1NYXJrZG93bk5vZGU7XG4gIH1cblxuICBnZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKCkge1xuICAgIGNvbnN0IHsgdG9wbW9zdE1NYXJrZG93blN0eWxlTm9kZSB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIHRvcG1vc3RNTWFya2Rvd25TdHlsZU5vZGU7XG4gIH1cblxuICBzZXRNYXJrZG93blRva2VucyhtYXJrZG93blRva2Vucykge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgbWFya2Rvd25Ub2tlbnNcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1hcmtkb3duU3R5bGVUb2tlbnMobWFya2Rvd25TdHlsZVRva2Vucykge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgbWFya2Rvd25TdHlsZVRva2Vuc1xuICAgIH0pO1xuICB9XG5cbiAgc2V0RG9jdW1lbnRNYXJrZG93bk5vZGUodG9wbW9zdE1NYXJrZG93bk5vZGUpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIHRvcG1vc3RNTWFya2Rvd25Ob2RlXG4gICAgfSk7XG4gIH1cblxuICBzZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKHRvcG1vc3RNTWFya2Rvd25TdHlsZU5vZGUpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIHRvcG1vc3RNTWFya2Rvd25TdHlsZU5vZGVcbiAgICB9KTtcbiAgfVxuXG4gIHNldEluaXRpYWxTdGF0ZSgpIHtcbiAgICBjb25zdCBtYXJrZG93blRva2VucyA9IG51bGwsXG4gICAgICAgICAgbWFya2Rvd25TdHlsZVRva2VucyA9IG51bGwsXG4gICAgICAgICAgZG9jdW1lbnRNYXJrZG93bk5vZGUgPSBudWxsLFxuICAgICAgICAgIGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUgPSBudWxsO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBtYXJrZG93blRva2VucyxcbiAgICAgIG1hcmtkb3duU3R5bGVUb2tlbnMsXG4gICAgICBkb2N1bWVudE1hcmtkb3duTm9kZSxcbiAgICAgIGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGVcbiAgICB9KTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIHRoaXMubWFya2Rvd24oKTtcblxuICAgIHRoaXMucHJldmlldygpO1xuXG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIC8vL1xuICB9XG5cbiAgY2hpbGRFbGVtZW50cygpIHtcbiAgICByZXR1cm4gKFxuXG4gICAgICA8Q29sdW1uc0Rpdj5cbiAgICAgICAgPExlZnRTaXplYWJsZURpdj5cbiAgICAgICAgICA8TGVmdFRhYkJ1dHRvbnNEaXYgb25DdXN0b21NYXJrZG93bj17dGhpcy5tYXJrZG93bkN1c3RvbUhhbmRsZXJ9IG9uQ3VzdG9tTWFya2Rvd25TdHlsZT17dGhpcy5tYXJrZG93blN0eWxlQ3VzdG9tSGFuZGxlcn0gLz5cbiAgICAgICAgICA8TWFya2Rvd25Db250YWluZXJEaXYgb25DdXN0b21LZXlVcD17dGhpcy5rZXlVcEN1c3RvbUhhbmRsZXJ9IC8+XG4gICAgICAgICAgPE1hcmtkb3duU3R5bGVDb250YWluZXJEaXYgb25DdXN0b21LZXlVcD17dGhpcy5rZXlVcEN1c3RvbUhhbmRsZXJ9IC8+XG4gICAgICAgIDwvTGVmdFNpemVhYmxlRGl2PlxuICAgICAgICA8VmVydGljYWxTcGxpdHRlckRpdi8+XG4gICAgICAgIDxDb2x1bW5EaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8UmlnaHRUYWJCdXR0b25zRGl2IG9uQ3VzdG9tQ1NTPXt0aGlzLmNzc0N1c3RvbUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ3VzdG9tSFRNTD17dGhpcy5odG1sQ3VzdG9tSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DdXN0b21QcmV2aWV3PXt0aGlzLnByZXZpZXdDdXN0b21IYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkN1c3RvbVBsYWluVGV4dD17dGhpcy5wbGFpblRleHRDdXN0b21IYW5kbGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQYWdlQnV0dG9uc0RpdiBvbkN1c3RvbVBhZ2VVcGRhdGU9e3RoaXMucGFnZVVwZGF0ZUN1c3RvbUhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8Q1NTQ29udGFpbmVyRGl2Lz5cbiAgICAgICAgICAgIDxIVE1MQ29udGFpbmVyRGl2Lz5cbiAgICAgICAgICAgIDxQcmV2aWV3Q29udGFpbmVyRGl2Lz5cbiAgICAgICAgICAgIDxQbGFpblRleHRDb250YWluZXJEaXYvPlxuICAgICAgICAgICAgPEhUTUxQYXJzZVRyZWVUZXh0YXJlYS8+XG4gICAgICAgICAgICA8Q1NTUGFyc2VUcmVlVGV4dGFyZWEvPlxuICAgICAgICAgIDwvUm93c0Rpdj5cbiAgICAgICAgPC9Db2x1bW5EaXY+XG4gICAgICA8L0NvbHVtbnNEaXY+XG5cbiAgICApO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XG5cbiAgICBjb25zdCB7IGluaXRpYWxNYXJrZG93biwgaW5pdGlhbE1hcmtkb3duU3R5bGUgfSA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgbWFya2Rvd25TdHlsZSA9IGluaXRpYWxNYXJrZG93blN0eWxlLCAvLy9cbiAgICAgICAgICBtYXJrZG93biA9IGluaXRpYWxNYXJrZG93bjsgLy8vXG5cbiAgICB0aGlzLnNldE1hcmtkb3duU3R5bGUobWFya2Rvd25TdHlsZSk7XG5cbiAgICB0aGlzLnNldE1hcmtkb3duKG1hcmtkb3duKTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0aWFsTWFya2Rvd24gPSBpbml0aWFsTWFya2Rvd247XG5cbiAgc3RhdGljIGluaXRpYWxNYXJrZG93blN0eWxlID0gXCJcIjtcblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwibWFya2Rvd25TdHlsZUVsZW1lbnRcIlxuICBdO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwidmlld1wiXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShWaWV3KWBcblxuICBwYWRkaW5nOiAxcmVtO1xuICBcbmA7XG5cbmZ1bmN0aW9uIHBhdGhUb1VSTChwYXRoKSB7XG4gIGNvbnN0IHVybCA9IGBodHRwczovL2RqYWxiYXQuY29tLyR7cGF0aH1gO1xuXG4gIHJldHVybiB1cmw7XG59XG4iXSwibmFtZXMiOlsidG9rZW5zRnJvbU1hcmtkb3duIiwiZ3JhbW1hclV0aWxpdGllcyIsInRva2Vuc0Zyb21NYXJrZG93blN0eWxlIiwiZG9jdW1lbnRNYXJrZG93bk5vZGVGcm9tVG9rZW5zIiwiaHRtbEZyb21NYXJrZG93bk9wdGlvbnNBbmRJbXBvcnRlciIsImRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGVGcm9tVG9rZW5zIiwidG9wbW9zdEhUTUxOb2RlRnJvbURvY3VtZW50TWFya2Rvd25Ob2RlIiwiY3NzRnJvbU1hcmtkb3duU3R5bGVBbmRDU1NTZWxlY3RvcnNTdHJpbmciLCJ0b3Btb3N0Q1NTTm9kZUZyb21Eb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlIiwiVmlldyIsInBhZ2VVcGRhdGVDdXN0b21IYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwiaW5kZXgiLCJ1cGRhdGVIVE1MIiwibWFya2Rvd25TdHlsZUN1c3RvbUhhbmRsZXIiLCJtYXJrZG93blN0eWxlIiwibWFya2Rvd25DdXN0b21IYW5kbGVyIiwibWFya2Rvd24iLCJwbGFpblRleHRDdXN0b21IYW5kbGVyIiwicGxhaW5UZXh0IiwicHJldmlld0N1c3RvbUhhbmRsZXIiLCJwcmV2aWV3Iiwia2V5VXBDdXN0b21IYW5kbGVyIiwidXBkYXRlIiwiaHRtbEN1c3RvbUhhbmRsZXIiLCJodG1sIiwiY3NzQ3VzdG9tSGFuZGxlciIsImNzcyIsInVwZGF0ZU1hcmtkb3duU3R5bGUiLCJ1cGRhdGVNYXJrZG93biIsInVwZGF0ZUNTUyIsImdldE1hcmtkb3duU3R5bGUiLCJ0b2tlbnMiLCJkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlIiwicmVzZXRNYXJrZG93blN0eWxlVG9rZW5zIiwicmVzZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlIiwiY2xlYXJNYXJrZG93blN0eWxlUGFyc2VUcmVlVGV4dGFyZWEiLCJub2RlIiwicGFyc2VUcmVlIiwiYXNQYXJzZVRyZWUiLCJtYXJrZG93blN0eWxlVG9rZW5zIiwic2V0TWFya2Rvd25TdHlsZVRva2VucyIsInNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUiLCJ1cGRhdGVNYXJrZG93blN0eWxlUGFyc2VUcmVlVGV4dGFyZWEiLCJnZXRNYXJrZG93biIsImRvY3VtZW50TWFya2Rvd25Ob2RlIiwicmVzZXRNYXJrZG93blRva2VucyIsInJlc2V0RG9jdW1lbnRNYXJrZG93bk5vZGUiLCJjbGVhck1hcmtkb3duUGFyc2VUcmVlVGV4dGFyZWEiLCJjb250ZXh0IiwiaW1wb3J0ZXIiLCJyZXNvbHZlIiwiZG9jdW1lbnRNYXJrZG93bk5vZGVQYXJzZVRyZWUiLCJtYXJrZG93blBhcnNlVHJlZSIsIm1hcmtkb3duVG9rZW5zIiwic2V0TWFya2Rvd25Ub2tlbnMiLCJzZXREb2N1bWVudE1hcmtkb3duTm9kZSIsInVwZGF0ZU1hcmtkb3duUGFyc2VUcmVlVGV4dGFyZWEiLCJjbGVhclhNUCIsImNsZWFyUHJldmlld0RpdiIsImNsZWFyUGxhaW5UZXh0VGV4dGFyZWEiLCJjbGVhckhUTUxQYXJzZVRyZWVUZXh0YXJlYSIsImNsZWFyUGFnZUJ1dHRvbnNEaXYiLCJnZXREb2N1bWVudE1hcmtkb3duTm9kZSIsInRvcG1vc3RIVE1MTm9kZSIsImdldE1hcmtkb3duVG9rZW5zIiwiZGl2aXNpb25IVE1MTm9kZSIsImdldERpdmlzaW9uSFRNTE5vZGVBdCIsImRpdmlzaW9uSFRNTE5PZGVQYXJzZVRyZWUiLCJodG1sUGFyc2VUcmVlIiwiZGl2aXNpb25IVE1MTm9kZXMiLCJnZXREaXZpc2lvbkhUTUxOb2RlcyIsImxlbmd0aCIsInBhdGhUb1VSTCIsInVwZGF0ZVByZXZpZXdEaXYiLCJ1cGRhdGVQbGFpblRleHRUZXh0YXJlYSIsInVwZGF0ZUhUTUxQYXJzZVRyZWVUZXh0YXJlYSIsInVwZGF0ZVBhZ2VCdXR0b25zRGl2Iiwib3B0aW9ucyIsImluZGV4T3B0aW9ucyIsInVwZGF0ZVhNUCIsImdldE1hcmtkb3duU3R5bGVUb2tlbnMiLCJtYXJrZG93blN0eWxlRWxlbWVudCIsImdldE1hcmtkb3duU3R5bGVFbGVtZW50IiwiZ2V0RG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSIsIkVNUFRZX1NUUklORyIsInNldENTUyIsImNsZWFyQ1NTUGFyc2VUcmVlVGV4dGFyZWEiLCJjbGVhckNTUyIsInRvcG1vc3RDU1NOb2RlIiwidGFyZ2V0IiwiV0VCX1RBUkdFVCIsInRvcG1vc3RDU1NOb2RlUGFyc2VUcmVlIiwiY3NzUGFyc2VUcmVlIiwidXBkYXRlQ1NTUGFyc2VUcmVlVGV4dGFyZWEiLCJjc3NTZWxlY3RvcnNTdHJpbmciLCJDU1NfU0VMRUNUT1JTX1NUUklORyIsImhpZGVNYXJrZG93bkNvbnRhaW5lckRpdiIsInNob3dNYXJrZG93blN0eWxlQ29udGFpbmVyRGl2Iiwic2hvd01hcmtkb3duQ29udGFpbmVyRGl2IiwiaGlkZU1hcmtkb3duU3R5bGVDb250YWluZXJEaXYiLCJoaWRlQ1NTQ29udGFpbmVyRGl2IiwiaGlkZUhUTUxDb250YWluZXJEaXYiLCJoaWRlUHJldmlld0NvbnRhaW5lckRpdiIsInNob3dQbGFpblRleHRDb250YWluZXJEaXYiLCJoaWRlQ1NTUGFyc2VUcmVlVGV4dGFyZWEiLCJzaG93SFRNTFBhcnNlVHJlZVRleHRhcmVhIiwic2hvd1ByZXZpZXdDb250YWluZXJEaXYiLCJoaWRlUGxhaW5UZXh0Q29udGFpbmVyRGl2Iiwic2hvd0hUTUxDb250YWluZXJEaXYiLCJzaG93Q1NTQ29udGFpbmVyRGl2Iiwic2hvd0NTU1BhcnNlVHJlZVRleHRhcmVhIiwiaGlkZUhUTUxQYXJzZVRyZWVUZXh0YXJlYSIsInByb3BlcnRpZXMiLCJnZXRTdGF0ZSIsInRvcG1vc3RNTWFya2Rvd25Ob2RlIiwidG9wbW9zdE1NYXJrZG93blN0eWxlTm9kZSIsInVwZGF0ZVN0YXRlIiwic2V0SW5pdGlhbFN0YXRlIiwic2V0U3RhdGUiLCJkaWRNb3VudCIsIndpbGxVbm1vdW50IiwiY2hpbGRFbGVtZW50cyIsIkNvbHVtbnNEaXYiLCJMZWZ0U2l6ZWFibGVEaXYiLCJMZWZ0VGFiQnV0dG9uc0RpdiIsIm9uQ3VzdG9tTWFya2Rvd24iLCJvbkN1c3RvbU1hcmtkb3duU3R5bGUiLCJNYXJrZG93bkNvbnRhaW5lckRpdiIsIm9uQ3VzdG9tS2V5VXAiLCJNYXJrZG93blN0eWxlQ29udGFpbmVyRGl2IiwiVmVydGljYWxTcGxpdHRlckRpdiIsIkNvbHVtbkRpdiIsIlJvd3NEaXYiLCJSaWdodFRhYkJ1dHRvbnNEaXYiLCJvbkN1c3RvbUNTUyIsIm9uQ3VzdG9tSFRNTCIsIm9uQ3VzdG9tUHJldmlldyIsIm9uQ3VzdG9tUGxhaW5UZXh0IiwiUGFnZUJ1dHRvbnNEaXYiLCJvbkN1c3RvbVBhZ2VVcGRhdGUiLCJDU1NDb250YWluZXJEaXYiLCJIVE1MQ29udGFpbmVyRGl2IiwiUHJldmlld0NvbnRhaW5lckRpdiIsIlBsYWluVGV4dENvbnRhaW5lckRpdiIsIkhUTUxQYXJzZVRyZWVUZXh0YXJlYSIsIkNTU1BhcnNlVHJlZVRleHRhcmVhIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJpbml0aWFsTWFya2Rvd24iLCJpbml0aWFsTWFya2Rvd25TdHlsZSIsInNldE1hcmtkb3duU3R5bGUiLCJzZXRNYXJrZG93biIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsIndpdGhTdHlsZSIsInBhdGgiLCJ1cmwiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXNjQTs7O2VBQUE7OztvRUFwY3NCO29CQUVFO3FCQUNTOzBCQUNtQzttRUFFM0M7a0VBQ0U7MkRBQ0M7MERBQ0E7MkRBQ0M7NERBQ0M7NERBQ0M7OERBQ0M7K0RBQ0M7MkRBQ0E7NERBQ0M7Z0VBQ0E7b0VBQ0k7dUJBRVg7d0JBQ2U7eUJBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkQsSUFBUUEscUJBT2dEQyx1QkFBZ0IsQ0FQaEVELG9CQUNBRSwwQkFNZ0RELHVCQUFnQixDQU5oRUMseUJBQ0FDLGlDQUtnREYsdUJBQWdCLENBTGhFRSxnQ0FDQUMscUNBSWdESCx1QkFBZ0IsQ0FKaEVHLG9DQUNBQyxzQ0FHZ0RKLHVCQUFnQixDQUhoRUkscUNBQ0FDLDBDQUVnREwsdUJBQWdCLENBRmhFSyx5Q0FDQUMsNENBQ2dETix1QkFBZ0IsQ0FEaEVNLDJDQUNBQyw4Q0FBZ0RQLHVCQUFnQixDQUFoRU87QUFFUixJQUFBLEFBQU1DLHFCQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTs7Z0JBQU4sa0JBQU1BLGtCQUNKQyx3QkFBQUEsMkJBQTBCLFNBQUNDLE9BQU9DLFNBQVNDO1lBQ3pDLE1BQUtDLFVBQVUsQ0FBQ0Q7UUFDbEIsSUFFQUUsd0JBQUFBLDhCQUE2QixTQUFDSixPQUFPQztZQUNuQyxNQUFLSSxhQUFhO1FBQ3BCLElBRUFDLHdCQUFBQSx5QkFBd0IsU0FBQ04sT0FBT0M7WUFDOUIsTUFBS00sUUFBUTtRQUNmLElBRUFDLHdCQUFBQSwwQkFBeUIsU0FBQ1IsT0FBT0M7WUFDL0IsTUFBS1EsU0FB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
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgZ3JhbW1hclV0aWxpdGllcyB9IGZyb20gXCIuLi9pbmRleFwiOyAgLy8vXG5pbXBvcnQgeyBSb3dzRGl2LCBDb2x1bW5EaXYsIENvbHVtbnNEaXYsIFZlcnRpY2FsU3BsaXR0ZXJEaXYgfSBmcm9tIFwiZWFzeS1sYXlvdXRcIjtcblxuaW1wb3J0IGluZGV4T3B0aW9ucyBmcm9tIFwiLi9pbmRleE9wdGlvbnNcIjtcbmltcG9ydCBQYWdlQnV0dG9uc0RpdiBmcm9tIFwiLi92aWV3L2Rpdi9wYWdlQnV0dG9uc1wiO1xuaW1wb3J0IExlZnRTaXplYWJsZURpdiBmcm9tIFwiLi92aWV3L2Rpdi9zaXplYWJsZS9sZWZ0XCI7XG5pbXBvcnQgQ1NTQ29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9jc3NcIjtcbmltcG9ydCBIVE1MQ29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9odG1sXCI7XG5pbXBvcnQgTGVmdFRhYkJ1dHRvbnNEaXYgZnJvbSBcIi4vdmlldy9kaXYvdGFiQnV0dG9ucy9sZWZ0XCI7XG5pbXBvcnQgUmlnaHRUYWJCdXR0b25zRGl2IGZyb20gXCIuL3ZpZXcvZGl2L3RhYkJ1dHRvbnMvcmlnaHRcIjtcbmltcG9ydCBQcmV2aWV3Q29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9wcmV2aWV3XCI7XG5pbXBvcnQgTWFya2Rvd25Db250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL21hcmtkb3duXCI7XG5pbXBvcnQgQ1NTUGFyc2VUcmVlVGV4dGFyZWEgZnJvbSBcIi4vdmlldy90ZXh0YXJlYS9wYXJzZVRyZWUvY3NzXCI7XG5pbXBvcnQgSFRNTFBhcnNlVHJlZVRleHRhcmVhIGZyb20gXCIuL3ZpZXcvdGV4dGFyZWEvcGFyc2VUcmVlL2h0bWxcIjtcbmltcG9ydCBQbGFpblRleHRDb250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL3BsYWluVGV4dFwiO1xuaW1wb3J0IE1hcmtkb3duU3R5bGVDb250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL21hcmtkb3duU3R5bGVcIjtcblxuaW1wb3J0IHsgV0VCX1RBUkdFVCB9IGZyb20gXCIuLi90YXJnZXRzXCI7XG5pbXBvcnQgeyBpbml0aWFsTWFya2Rvd24sIGltcG9ydGVyIH0gZnJvbSBcIi4vaW1wb3J0ZXJcIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORywgQ1NTX1NFTEVDVE9SU19TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyB0b2tlbnNGcm9tTWFya2Rvd24sXG4gICAgICAgIHRva2Vuc0Zyb21NYXJrZG93blN0eWxlLFxuICAgICAgICBkb2N1bWVudE1hcmtkb3duTm9kZUZyb21Ub2tlbnMsXG4gICAgICAgIGh0bWxGcm9tTWFya2Rvd25PcHRpb25zQW5kSW1wb3J0ZXIsXG4gICAgICAgIGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGVGcm9tVG9rZW5zLFxuICAgICAgICB0b3Btb3N0SFRNTE5vZGVGcm9tRG9jdW1lbnRNYXJrZG93bk5vZGUsXG4gICAgICAgIGNzc0Zyb21NYXJrZG93blN0eWxlQW5kQ1NTU2VsZWN0b3JzU3RyaW5nLFxuICAgICAgICB0b3Btb3N0Q1NTTm9kZUZyb21Eb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlIH0gPSBncmFtbWFyVXRpbGl0aWVzO1xuXG5jbGFzcyBWaWV3IGV4dGVuZHMgRWxlbWVudCB7XG4gIHBhZ2VVcGRhdGVDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIHRoaXMudXBkYXRlSFRNTChpbmRleCk7XG4gIH1cblxuICBtYXJrZG93blN0eWxlQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMubWFya2Rvd25TdHlsZSgpO1xuICB9XG5cbiAgbWFya2Rvd25DdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy5tYXJrZG93bigpO1xuICB9XG5cbiAgcGxhaW5UZXh0Q3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMucGxhaW5UZXh0KCk7XG4gIH1cblxuICBwcmV2aWV3Q3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMucHJldmlldygpO1xuICB9XG5cbiAga2V5VXBDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIGh0bWxDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy5odG1sKCk7XG4gIH1cblxuICBjc3NDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy5jc3MoKTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICB0aGlzLnVwZGF0ZU1hcmtkb3duU3R5bGUoKTtcblxuICAgIHRoaXMudXBkYXRlTWFya2Rvd24oKTtcblxuICAgIHRoaXMudXBkYXRlSFRNTCgpO1xuXG4gICAgdGhpcy51cGRhdGVDU1MoKTtcbiAgfVxuXG4gIHVwZGF0ZU1hcmtkb3duU3R5bGUoKSB7XG4gICAgY29uc3QgbWFya2Rvd25TdHlsZSA9IHRoaXMuZ2V0TWFya2Rvd25TdHlsZSgpLFxuICAgICAgICAgIHRva2VucyA9IHRva2Vuc0Zyb21NYXJrZG93blN0eWxlKG1hcmtkb3duU3R5bGUpLFxuICAgICAgICAgIGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUgPSBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2Vucyh0b2tlbnMpO1xuXG4gICAgaWYgKGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMucmVzZXRNYXJrZG93blN0eWxlVG9rZW5zKCk7XG5cbiAgICAgIHRoaXMucmVzZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKCk7XG5cbiAgICAgIHRoaXMuY2xlYXJNYXJrZG93blN0eWxlUGFyc2VUcmVlVGV4dGFyZWEoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlLCAvLy9cbiAgICAgICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2VucyksXG4gICAgICAgICAgbWFya2Rvd25TdHlsZVRva2VucyA9IHRva2VuczsgLy8vXG5cbiAgICB0aGlzLnNldE1hcmtkb3duU3R5bGVUb2tlbnMobWFya2Rvd25TdHlsZVRva2Vucyk7XG5cbiAgICB0aGlzLnNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUoZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSk7XG5cbiAgICB0aGlzLnVwZGF0ZU1hcmtkb3duU3R5bGVQYXJzZVRyZWVUZXh0YXJlYShwYXJzZVRyZWUpO1xuICB9XG5cbiAgdXBkYXRlTWFya2Rvd24oKSB7XG4gICAgY29uc3QgbWFya2Rvd24gPSB0aGlzLmdldE1hcmtkb3duKCksXG4gICAgICAgICAgdG9rZW5zID0gdG9rZW5zRnJvbU1hcmtkb3duKG1hcmtkb3duKSxcbiAgICAgICAgICBkb2N1bWVudE1hcmtkb3duTm9kZSA9IGRvY3VtZW50TWFya2Rvd25Ob2RlRnJvbVRva2Vucyh0b2tlbnMpO1xuXG4gICAgaWYgKGRvY3VtZW50TWFya2Rvd25Ob2RlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnJlc2V0TWFya2Rvd25Ub2tlbnMoKTtcblxuICAgICAgdGhpcy5yZXNldERvY3VtZW50TWFya2Rvd25Ob2RlKCk7XG5cbiAgICAgIHRoaXMuY2xlYXJNYXJrZG93blBhcnNlVHJlZVRleHRhcmVhKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29udGV4dDtcblxuICAgIGNvbnRleHQgPSB7XG4gICAgICB0b2tlbnMsXG4gICAgICBpbXBvcnRlclxuICAgIH07XG5cbiAgICBkb2N1bWVudE1hcmtkb3duTm9kZS5yZXNvbHZlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgZG9jdW1lbnRNYXJrZG93bk5vZGVQYXJzZVRyZWUgPSBkb2N1bWVudE1hcmtkb3duTm9kZS5hc1BhcnNlVHJlZSh0b2tlbnMpLFxuICAgICAgICAgIG1hcmtkb3duUGFyc2VUcmVlID0gZG9jdW1lbnRNYXJrZG93bk5vZGVQYXJzZVRyZWUsIC8vL1xuICAgICAgICAgIG1hcmtkb3duVG9rZW5zID0gdG9rZW5zOyAgLy8vXG5cbiAgICB0aGlzLnNldE1hcmtkb3duVG9rZW5zKG1hcmtkb3duVG9rZW5zKTtcblxuICAgIHRoaXMuc2V0RG9jdW1lbnRNYXJrZG93bk5vZGUoZG9jdW1lbnRNYXJrZG93bk5vZGUpO1xuXG4gICAgdGhpcy51cGRhdGVNYXJrZG93blBhcnNlVHJlZVRleHRhcmVhKG1hcmtkb3duUGFyc2VUcmVlKTtcbiAgfVxuXG4gIHVwZGF0ZUhUTUwoaW5kZXggPSAwKSB7XG4gICAgdGhpcy5jbGVhclhNUCgpO1xuXG4gICAgdGhpcy5jbGVhclByZXZpZXdEaXYoKTtcblxuICAgIHRoaXMuY2xlYXJQbGFpblRleHRUZXh0YXJlYSgpO1xuXG4gICAgdGhpcy5jbGVhckhUTUxQYXJzZVRyZWVUZXh0YXJlYSgpO1xuXG4gICAgdGhpcy5jbGVhclBhZ2VCdXR0b25zRGl2KCk7XG5cbiAgICBjb25zdCBkb2N1bWVudE1hcmtkb3duTm9kZSA9IHRoaXMuZ2V0RG9jdW1lbnRNYXJrZG93bk5vZGUoKSxcbiAgICAgICAgICB0b3Btb3N0SFRNTE5vZGUgPSB0b3Btb3N0SFRNTE5vZGVGcm9tRG9jdW1lbnRNYXJrZG93bk5vZGUoZG9jdW1lbnRNYXJrZG93bk5vZGUpO1xuXG4gICAgaWYgKHRvcG1vc3RIVE1MTm9kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb250ZXh0O1xuXG4gICAgY29uc3QgbWFya2Rvd25Ub2tlbnMgPSB0aGlzLmdldE1hcmtkb3duVG9rZW5zKCksXG4gICAgICAgICAgdG9rZW5zID0gbWFya2Rvd25Ub2tlbnM7ICAvLy9cblxuICAgIGNvbnRleHQgPSB7XG4gICAgICB0b2tlbnNcbiAgICB9O1xuXG4gICAgdG9wbW9zdEhUTUxOb2RlLnJlc29sdmUoY29udGV4dCk7XG5cbiAgICBjb25zdCBkaXZpc2lvbkhUTUxOb2RlID0gdG9wbW9zdEhUTUxOb2RlLmdldERpdmlzaW9uSFRNTE5vZGVBdChpbmRleCk7XG5cbiAgICBpZiAoZGl2aXNpb25IVE1MTm9kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpdmlzaW9uSFRNTE5PZGVQYXJzZVRyZWUgPSBkaXZpc2lvbkhUTUxOb2RlLmFzUGFyc2VUcmVlKCksXG4gICAgICAgICAgaHRtbFBhcnNlVHJlZSA9IGRpdmlzaW9uSFRNTE5PZGVQYXJzZVRyZWUsICAvLy9cbiAgICAgICAgICBkaXZpc2lvbkhUTUxOb2RlcyA9IHRvcG1vc3RIVE1MTm9kZS5nZXREaXZpc2lvbkhUTUxOb2RlcygpLFxuICAgICAgICAgIGxlbmd0aCA9IGRpdmlzaW9uSFRNTE5vZGVzLmxlbmd0aDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHtcbiAgICAgIHRva2VucyxcbiAgICAgIHBhdGhUb1VSTFxuICAgIH07XG5cbiAgICB0aGlzLnVwZGF0ZVByZXZpZXdEaXYoZGl2aXNpb25IVE1MTm9kZSwgY29udGV4dCk7XG5cbiAgICB0aGlzLnVwZGF0ZVBsYWluVGV4dFRleHRhcmVhKGRpdmlzaW9uSFRNTE5vZGUsIGNvbnRleHQpO1xuXG4gICAgdGhpcy51cGRhdGVIVE1MUGFyc2VUcmVlVGV4dGFyZWEoaHRtbFBhcnNlVHJlZSk7XG5cbiAgICB0aGlzLnVwZGF0ZVBhZ2VCdXR0b25zRGl2KGxlbmd0aCwgaW5kZXgpO1xuXG4gICAgY29uc3QgbWFya2Rvd24gPSB0aGlzLmdldE1hcmtkb3duKCksXG4gICAgICAgICAgb3B0aW9ucyA9IGluZGV4T3B0aW9ucywgLy8vXG4gICAgICAgICAgaHRtbCA9IGh0bWxGcm9tTWFya2Rvd25PcHRpb25zQW5kSW1wb3J0ZXIobWFya2Rvd24sIG9wdGlvbnMsIGltcG9ydGVyKTtcblxuICAgIHRoaXMudXBkYXRlWE1QKGh0bWwsIGNvbnRleHQpO1xuICB9XG5cbiAgdXBkYXRlQ1NTKCkge1xuICAgIGNvbnN0IG1hcmtkb3duU3R5bGVUb2tlbnMgPSB0aGlzLmdldE1hcmtkb3duU3R5bGVUb2tlbnMoKSxcbiAgICAgICAgICBtYXJrZG93blN0eWxlRWxlbWVudCA9IHRoaXMuZ2V0TWFya2Rvd25TdHlsZUVsZW1lbnQoKSxcbiAgICAgICAgICBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlID0gdGhpcy5nZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKCk7XG5cbiAgICBpZiAoZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgY3NzID0gRU1QVFlfU1RSSU5HO1xuXG4gICAgICBtYXJrZG93blN0eWxlRWxlbWVudC5zZXRDU1MoY3NzKTtcblxuICAgICAgdGhpcy5jbGVhckNTU1BhcnNlVHJlZVRleHRhcmVhKCk7XG5cbiAgICAgIHRoaXMuY2xlYXJDU1MoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRvcG1vc3RDU1NOb2RlID0gdG9wbW9zdENTU05vZGVGcm9tRG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZShkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKSxcbiAgICAgICAgICB0YXJnZXQgPSBXRUJfVEFSR0VULFxuICAgICAgICAgIHRva2VucyA9IG1hcmtkb3duU3R5bGVUb2tlbnMsIC8vL1xuICAgICAgICAgIGNvbnRleHQgPSB7XG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICB0b2tlbnNcbiAgICAgICAgICB9O1xuXG4gICAgdG9wbW9zdENTU05vZGUucmVzb2x2ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHRvcG1vc3RDU1NOb2RlUGFyc2VUcmVlID0gdG9wbW9zdENTU05vZGUuYXNQYXJzZVRyZWUodG9rZW5zKSxcbiAgICAgICAgICBjc3NQYXJzZVRyZWUgPSB0b3Btb3N0Q1NTTm9kZVBhcnNlVHJlZTsgLy8vXG5cbiAgICB0aGlzLnVwZGF0ZUNTU1BhcnNlVHJlZVRleHRhcmVhKGNzc1BhcnNlVHJlZSk7XG5cbiAgICBjb25zdCBjc3NTZWxlY3RvcnNTdHJpbmcgPSBDU1NfU0VMRUNUT1JTX1NUUklORyxcbiAgICAgICAgICBtYXJrZG93blN0eWxlID0gdGhpcy5nZXRNYXJrZG93blN0eWxlKCksXG4gICAgICAgICAgY3NzID0gY3NzRnJvbU1hcmtkb3duU3R5bGVBbmRDU1NTZWxlY3RvcnNTdHJpbmcobWFya2Rvd25TdHlsZSwgY3NzU2VsZWN0b3JzU3RyaW5nKTtcblxuICAgIG1hcmtkb3duU3R5bGVFbGVtZW50LnNldENTUyhjc3MpO1xuXG4gICAgdGhpcy5zZXRDU1MoY3NzKTtcbiAgfVxuXG4gIG1hcmtkb3duU3R5bGUoKSB7XG4gICAgdGhpcy5oaWRlTWFya2Rvd25Db250YWluZXJEaXYoKTtcbiAgICB0aGlzLnNob3dNYXJrZG93blN0eWxlQ29udGFpbmVyRGl2KCk7XG4gIH1cblxuICBtYXJrZG93bigpIHtcbiAgICB0aGlzLnNob3dNYXJrZG93bkNvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuaGlkZU1hcmtkb3duU3R5bGVDb250YWluZXJEaXYoKTtcbiAgfVxuXG4gIHBsYWluVGV4dCgpIHtcbiAgICB0aGlzLmhpZGVDU1NDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVIVE1MQ29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlUHJldmlld0NvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuc2hvd1BsYWluVGV4dENvbnRhaW5lckRpdigpO1xuXG4gICAgdGhpcy5oaWRlQ1NTUGFyc2VUcmVlVGV4dGFyZWEoKTtcbiAgICB0aGlzLnNob3dIVE1MUGFyc2VUcmVlVGV4dGFyZWEoKTtcbiAgfVxuXG4gIHByZXZpZXcoKSB7XG4gICAgdGhpcy5oaWRlQ1NTQ29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlSFRNTENvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuc2hvd1ByZXZpZXdDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQbGFpblRleHRDb250YWluZXJEaXYoKTtcblxuICAgIHRoaXMuaGlkZUNTU1BhcnNlVHJlZVRleHRhcmVhKCk7XG4gICAgdGhpcy5zaG93SFRNTFBhcnNlVHJlZVRleHRhcmVhKCk7XG4gIH1cblxuICBodG1sKCkge1xuICAgIHRoaXMuaGlkZUNTU0NvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuc2hvd0hUTUxDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQcmV2aWV3Q29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlUGxhaW5UZXh0Q29udGFpbmVyRGl2KCk7XG5cbiAgICB0aGlzLmhpZGVDU1NQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICAgIHRoaXMuc2hvd0hUTUxQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICB9XG5cbiAgY3NzKCkge1xuICAgIHRoaXMuc2hvd0NTU0NvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuaGlkZUhUTUxDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQcmV2aWV3Q29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlUGxhaW5UZXh0Q29udGFpbmVyRGl2KCk7XG5cbiAgICB0aGlzLnNob3dDU1NQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICAgIHRoaXMuaGlkZUhUTUxQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICB9XG5cbiAgcmVzZXRNYXJrZG93blRva2VucygpIHtcbiAgICBjb25zdCBtYXJrZG93blRva2VucyA9IG51bGw7XG5cbiAgICB0aGlzLnNldE1hcmtkb3duVG9rZW5zKG1hcmtkb3duVG9rZW5zKTtcbiAgfVxuXG4gIHJlc2V0TWFya2Rvd25TdHlsZVRva2VucygpIHtcbiAgICBjb25zdCBtYXJrZG93blN0eWxlVG9rZW5zID0gbnVsbDtcblxuICAgIHRoaXMuc2V0TWFya2Rvd25TdHlsZVRva2VucyhtYXJrZG93blN0eWxlVG9rZW5zKTtcbiAgfVxuXG4gIHJlc2V0RG9jdW1lbnRNYXJrZG93bk5vZGUoKSB7XG4gICAgY29uc3QgZG9jdW1lbnRNYXJrZG93bk5vZGUgPSBudWxsO1xuXG4gICAgdGhpcy5zZXREb2N1bWVudE1hcmtkb3duTm9kZShkb2N1bWVudE1hcmtkb3duTm9kZSk7XG4gIH1cblxuICByZXNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUoKSB7XG4gICAgY29uc3QgZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSA9IG51bGw7XG5cbiAgICB0aGlzLnNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUoZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSk7XG4gIH1cblxuICBnZXRNYXJrZG93blN0eWxlRWxlbWVudCgpIHtcbiAgICBjb25zdCB7IG1hcmtkb3duU3R5bGVFbGVtZW50IH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICByZXR1cm4gbWFya2Rvd25TdHlsZUVsZW1lbnQ7XG4gIH1cblxuICBnZXRNYXJrZG93blRva2VucygpIHtcbiAgICBjb25zdCB7IG1hcmtkb3duVG9rZW5zIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gbWFya2Rvd25Ub2tlbnM7XG4gIH1cblxuICBnZXRNYXJrZG93blN0eWxlVG9rZW5zKCkge1xuICAgIGNvbnN0IHsgbWFya2Rvd25TdHlsZVRva2VucyB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIG1hcmtkb3duU3R5bGVUb2tlbnM7XG4gIH1cblxuICBnZXREb2N1bWVudE1hcmtkb3duTm9kZSgpIHtcbiAgICBjb25zdCB7IHRvcG1vc3RNTWFya2Rvd25Ob2RlIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gdG9wbW9zdE1NYXJrZG93bk5vZGU7XG4gIH1cblxuICBnZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKCkge1xuICAgIGNvbnN0IHsgdG9wbW9zdE1NYXJrZG93blN0eWxlTm9kZSB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIHRvcG1vc3RNTWFya2Rvd25TdHlsZU5vZGU7XG4gIH1cblxuICBzZXRNYXJrZG93blRva2VucyhtYXJrZG93blRva2Vucykge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgbWFya2Rvd25Ub2tlbnNcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1hcmtkb3duU3R5bGVUb2tlbnMobWFya2Rvd25TdHlsZVRva2Vucykge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgbWFya2Rvd25TdHlsZVRva2Vuc1xuICAgIH0pO1xuICB9XG5cbiAgc2V0RG9jdW1lbnRNYXJrZG93bk5vZGUodG9wbW9zdE1NYXJrZG93bk5vZGUpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIHRvcG1vc3RNTWFya2Rvd25Ob2RlXG4gICAgfSk7XG4gIH1cblxuICBzZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKHRvcG1vc3RNTWFya2Rvd25TdHlsZU5vZGUpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIHRvcG1vc3RNTWFya2Rvd25TdHlsZU5vZGVcbiAgICB9KTtcbiAgfVxuXG4gIHNldEluaXRpYWxTdGF0ZSgpIHtcbiAgICBjb25zdCBtYXJrZG93blRva2VucyA9IG51bGwsXG4gICAgICAgICAgbWFya2Rvd25TdHlsZVRva2VucyA9IG51bGwsXG4gICAgICAgICAgZG9jdW1lbnRNYXJrZG93bk5vZGUgPSBudWxsLFxuICAgICAgICAgIGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUgPSBudWxsO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBtYXJrZG93blRva2VucyxcbiAgICAgIG1hcmtkb3duU3R5bGVUb2tlbnMsXG4gICAgICBkb2N1bWVudE1hcmtkb3duTm9kZSxcbiAgICAgIGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGVcbiAgICB9KTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIHRoaXMubWFya2Rvd24oKTtcblxuICAgIHRoaXMucHJldmlldygpO1xuXG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIC8vL1xuICB9XG5cbiAgY2hpbGRFbGVtZW50cygpIHtcbiAgICByZXR1cm4gKFxuXG4gICAgICA8Q29sdW1uc0Rpdj5cbiAgICAgICAgPExlZnRTaXplYWJsZURpdj5cbiAgICAgICAgICA8TGVmdFRhYkJ1dHRvbnNEaXYgb25DdXN0b21NYXJrZG93bj17dGhpcy5tYXJrZG93bkN1c3RvbUhhbmRsZXJ9IG9uQ3VzdG9tTWFya2Rvd25TdHlsZT17dGhpcy5tYXJrZG93blN0eWxlQ3VzdG9tSGFuZGxlcn0gLz5cbiAgICAgICAgICA8TWFya2Rvd25Db250YWluZXJEaXYgb25DdXN0b21LZXlVcD17dGhpcy5rZXlVcEN1c3RvbUhhbmRsZXJ9IC8+XG4gICAgICAgICAgPE1hcmtkb3duU3R5bGVDb250YWluZXJEaXYgb25DdXN0b21LZXlVcD17dGhpcy5rZXlVcEN1c3RvbUhhbmRsZXJ9IC8+XG4gICAgICAgIDwvTGVmdFNpemVhYmxlRGl2PlxuICAgICAgICA8VmVydGljYWxTcGxpdHRlckRpdi8+XG4gICAgICAgIDxDb2x1bW5EaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8UmlnaHRUYWJCdXR0b25zRGl2IG9uQ3VzdG9tQ1NTPXt0aGlzLmNzc0N1c3RvbUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ3VzdG9tSFRNTD17dGhpcy5odG1sQ3VzdG9tSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DdXN0b21QcmV2aWV3PXt0aGlzLnByZXZpZXdDdXN0b21IYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkN1c3RvbVBsYWluVGV4dD17dGhpcy5wbGFpblRleHRDdXN0b21IYW5kbGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxQYWdlQnV0dG9uc0RpdiBvbkN1c3RvbVBhZ2VVcGRhdGU9e3RoaXMucGFnZVVwZGF0ZUN1c3RvbUhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8Q1NTQ29udGFpbmVyRGl2Lz5cbiAgICAgICAgICAgIDxIVE1MQ29udGFpbmVyRGl2Lz5cbiAgICAgICAgICAgIDxQcmV2aWV3Q29udGFpbmVyRGl2Lz5cbiAgICAgICAgICAgIDxQbGFpblRleHRDb250YWluZXJEaXYvPlxuICAgICAgICAgICAgPEhUTUxQYXJzZVRyZWVUZXh0YXJlYS8+XG4gICAgICAgICAgICA8Q1NTUGFyc2VUcmVlVGV4dGFyZWEvPlxuICAgICAgICAgIDwvUm93c0Rpdj5cbiAgICAgICAgPC9Db2x1bW5EaXY+XG4gICAgICA8L0NvbHVtbnNEaXY+XG5cbiAgICApO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XG5cbiAgICBjb25zdCB7IGluaXRpYWxNYXJrZG93biwgaW5pdGlhbE1hcmtkb3duU3R5bGUgfSA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgbWFya2Rvd25TdHlsZSA9IGluaXRpYWxNYXJrZG93blN0eWxlLCAvLy9cbiAgICAgICAgICBtYXJrZG93biA9IGluaXRpYWxNYXJrZG93bjsgLy8vXG5cbiAgICB0aGlzLnNldE1hcmtkb3duU3R5bGUobWFya2Rvd25TdHlsZSk7XG5cbiAgICB0aGlzLnNldE1hcmtkb3duKG1hcmtkb3duKTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0aWFsTWFya2Rvd24gPSBpbml0aWFsTWFya2Rvd247XG5cbiAgc3RhdGljIGluaXRpYWxNYXJrZG93blN0eWxlID0gXCJcIjtcblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwibWFya2Rvd25TdHlsZUVsZW1lbnRcIlxuICBdO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwidmlld1wiXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShWaWV3KWBcblxuICBwYWRkaW5nOiAxcmVtO1xuICBcbmA7XG5cbmZ1bmN0aW9uIHBhdGhUb1VSTChwYXRoKSB7XG4gIGNvbnN0IHVybCA9IGBodHRwczovL2RqYWxiYXQuY29tLyR7cGF0aH1gO1xuXG4gIHJldHVybiB1cmw7XG59XG4iXSwibmFtZXMiOlsidG9rZW5zRnJvbU1hcmtkb3duIiwidG9rZW5zRnJvbU1hcmtkb3duU3R5bGUiLCJkb2N1bWVudE1hcmtkb3duTm9kZUZyb21Ub2tlbnMiLCJodG1sRnJvbU1hcmtkb3duT3B0aW9uc0FuZEltcG9ydGVyIiwiZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZUZyb21Ub2tlbnMiLCJ0b3Btb3N0SFRNTE5vZGVGcm9tRG9jdW1lbnRNYXJrZG93bk5vZGUiLCJjc3NGcm9tTWFya2Rvd25TdHlsZUFuZENTU1NlbGVjdG9yc1N0cmluZyIsInRvcG1vc3RDU1NOb2RlRnJvbURvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUiLCJncmFtbWFyVXRpbGl0aWVzIiwiVmlldyIsIkVsZW1lbnQiLCJwYWdlVXBkYXRlQ3VzdG9tSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsImluZGV4IiwidXBkYXRlSFRNTCIsIm1hcmtkb3duU3R5bGVDdXN0b21IYW5kbGVyIiwibWFya2Rvd25TdHlsZSIsIm1hcmtkb3duQ3VzdG9tSGFuZGxlciIsIm1hcmtkb3duIiwicGxhaW5UZXh0Q3VzdG9tSGFuZGxlciIsInBsYWluVGV4dCIsInByZXZpZXdDdXN0b21IYW5kbGVyIiwicHJldmlldyIsImtleVVwQ3VzdG9tSGFuZGxlciIsInVwZGF0ZSIsImh0bWxDdXN0b21IYW5kbGVyIiwiaHRtbCIsImNzc0N1c3RvbUhhbmRsZXIiLCJjc3MiLCJ1cGRhdGVNYXJrZG93blN0eWxlIiwidXBkYXRlTWFya2Rvd24iLCJ1cGRhdGVDU1MiLCJnZXRNYXJrZG93blN0eWxlIiwidG9rZW5zIiwiZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSIsInJlc2V0TWFya2Rvd25TdHlsZVRva2VucyIsInJlc2V0RG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSIsImNsZWFyTWFya2Rvd25TdHlsZVBhcnNlVHJlZVRleHRhcmVhIiwibm9kZSIsInBhcnNlVHJlZSIsImFzUGFyc2VUcmVlIiwibWFya2Rvd25TdHlsZVRva2VucyIsInNldE1hcmtkb3duU3R5bGVUb2tlbnMiLCJzZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlIiwidXBkYXRlTWFya2Rvd25TdHlsZVBhcnNlVHJlZVRleHRhcmVhIiwiZ2V0TWFya2Rvd24iLCJkb2N1bWVudE1hcmtkb3duTm9kZSIsInJlc2V0TWFya2Rvd25Ub2tlbnMiLCJyZXNldERvY3VtZW50TWFya2Rvd25Ob2RlIiwiY2xlYXJNYXJrZG93blBhcnNlVHJlZVRleHRhcmVhIiwiY29udGV4dCIsImltcG9ydGVyIiwicmVzb2x2ZSIsImRvY3VtZW50TWFya2Rvd25Ob2RlUGFyc2VUcmVlIiwibWFya2Rvd25QYXJzZVRyZWUiLCJtYXJrZG93blRva2VucyIsInNldE1hcmtkb3duVG9rZW5zIiwic2V0RG9jdW1lbnRNYXJrZG93bk5vZGUiLCJ1cGRhdGVNYXJrZG93blBhcnNlVHJlZVRleHRhcmVhIiwiY2xlYXJYTVAiLCJjbGVhclByZXZpZXdEaXYiLCJjbGVhclBsYWluVGV4dFRleHRhcmVhIiwiY2xlYXJIVE1MUGFyc2VUcmVlVGV4dGFyZWEiLCJjbGVhclBhZ2VCdXR0b25zRGl2IiwiZ2V0RG9jdW1lbnRNYXJrZG93bk5vZGUiLCJ0b3Btb3N0SFRNTE5vZGUiLCJnZXRNYXJrZG93blRva2VucyIsImRpdmlzaW9uSFRNTE5vZGUiLCJnZXREaXZpc2lvbkhUTUxOb2RlQXQiLCJkaXZpc2lvbkhUTUxOT2RlUGFyc2VUcmVlIiwiaHRtbFBhcnNlVHJlZSIsImRpdmlzaW9uSFRNTE5vZGVzIiwiZ2V0RGl2aXNpb25IVE1MTm9kZXMiLCJsZW5ndGgiLCJwYXRoVG9VUkwiLCJ1cGRhdGVQcmV2aWV3RGl2IiwidXBkYXRlUGxhaW5UZXh0VGV4dGFyZWEiLCJ1cGRhdGVIVE1MUGFyc2VUcmVlVGV4dGFyZWEiLCJ1cGRhdGVQYWdlQnV0dG9uc0RpdiIsIm9wdGlvbnMiLCJpbmRleE9wdGlvbnMiLCJ1cGRhdGVYTVAiLCJnZXRNYXJrZG93blN0eWxlVG9rZW5zIiwibWFya2Rvd25TdHlsZUVsZW1lbnQiLCJnZXRNYXJrZG93blN0eWxlRWxlbWVudCIsImdldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUiLCJFTVBUWV9TVFJJTkciLCJzZXRDU1MiLCJjbGVhckNTU1BhcnNlVHJlZVRleHRhcmVhIiwiY2xlYXJDU1MiLCJ0b3Btb3N0Q1NTTm9kZSIsInRhcmdldCIsIldFQl9UQVJHRVQiLCJ0b3Btb3N0Q1NTTm9kZVBhcnNlVHJlZSIsImNzc1BhcnNlVHJlZSIsInVwZGF0ZUNTU1BhcnNlVHJlZVRleHRhcmVhIiwiY3NzU2VsZWN0b3JzU3RyaW5nIiwiQ1NTX1NFTEVDVE9SU19TVFJJTkciLCJoaWRlTWFya2Rvd25Db250YWluZXJEaXYiLCJzaG93TWFya2Rvd25TdHlsZUNvbnRhaW5lckRpdiIsInNob3dNYXJrZG93bkNvbnRhaW5lckRpdiIsImhpZGVNYXJrZG93blN0eWxlQ29udGFpbmVyRGl2IiwiaGlkZUNTU0NvbnRhaW5lckRpdiIsImhpZGVIVE1MQ29udGFpbmVyRGl2IiwiaGlkZVByZXZpZXdDb250YWluZXJEaXYiLCJzaG93UGxhaW5UZXh0Q29udGFpbmVyRGl2IiwiaGlkZUNTU1BhcnNlVHJlZVRleHRhcmVhIiwic2hvd0hUTUxQYXJzZVRyZWVUZXh0YXJlYSIsInNob3dQcmV2aWV3Q29udGFpbmVyRGl2IiwiaGlkZVBsYWluVGV4dENvbnRhaW5lckRpdiIsInNob3dIVE1MQ29udGFpbmVyRGl2Iiwic2hvd0NTU0NvbnRhaW5lckRpdiIsInNob3dDU1NQYXJzZVRyZWVUZXh0YXJlYSIsImhpZGVIVE1MUGFyc2VUcmVlVGV4dGFyZWEiLCJwcm9wZXJ0aWVzIiwiZ2V0U3RhdGUiLCJ0b3Btb3N0TU1hcmtkb3duTm9kZSIsInRvcG1vc3RNTWFya2Rvd25TdHlsZU5vZGUiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJ3aWxsVW5tb3VudCIsImNoaWxkRWxlbWVudHMiLCJDb2x1bW5zRGl2IiwiTGVmdFNpemVhYmxlRGl2IiwiTGVmdFRhYkJ1dHRvbnNEaXYiLCJvbkN1c3RvbU1hcmtkb3duIiwib25DdXN0b21NYXJrZG93blN0eWxlIiwiTWFya2Rvd25Db250YWluZXJEaXYiLCJvbkN1c3RvbUtleVVwIiwiTWFya2Rvd25TdHlsZUNvbnRhaW5lckRpdiIsIlZlcnRpY2FsU3BsaXR0ZXJEaXYiLCJDb2x1bW5EaXYiLCJSb3dzRGl2IiwiUmlnaHRUYWJCdXR0b25zRGl2Iiwib25DdXN0b21DU1MiLCJvbkN1c3RvbUhUTUwiLCJvbkN1c3RvbVByZXZpZXciLCJvbkN1c3RvbVBsYWluVGV4dCIsIlBhZ2VCdXR0b25zRGl2Iiwib25DdXN0b21QYWdlVXBkYXRlIiwiQ1NTQ29udGFpbmVyRGl2IiwiSFRNTENvbnRhaW5lckRpdiIsIlByZXZpZXdDb250YWluZXJEaXYiLCJQbGFpblRleHRDb250YWluZXJEaXYiLCJIVE1MUGFyc2VUcmVlVGV4dGFyZWEiLCJDU1NQYXJzZVRyZWVUZXh0YXJlYSIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiaW5pdGlhbE1hcmtkb3duIiwiaW5pdGlhbE1hcmtkb3duU3R5bGUiLCJzZXRNYXJrZG93blN0eWxlIiwic2V0TWFya2Rvd24iLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsIndpdGhTdHlsZSIsInBhdGgiLCJ1cmwiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXNjQTs7O2VBQUE7OztzRUFwY3NCO3NCQUVFO3VCQUNTOzRCQUNtQztxRUFFM0M7b0VBQ0U7NkRBQ0M7NERBQ0E7NkRBQ0M7OERBQ0M7OERBQ0M7Z0VBQ0M7aUVBQ0M7NkRBQ0E7OERBQ0M7a0VBQ0E7c0VBQ0k7eUJBRVg7MEJBQ2U7MkJBQ1M7Ozs7OztBQUVuRCxNQUFNLEVBQUVBLGtCQUFrQixFQUNsQkMsdUJBQXVCLEVBQ3ZCQyw4QkFBOEIsRUFDOUJDLGtDQUFrQyxFQUNsQ0MsbUNBQW1DLEVBQ25DQyx1Q0FBdUMsRUFDdkNDLHlDQUF5QyxFQUN6Q0MsMkNBQTJDLEVBQUUsR0FBR0MsdUJBQWdCO0FBRXhFLE1BQU1DLGFBQWFDLGFBQU87SUFDeEJDLDBCQUEwQixDQUFDQyxPQUFPQyxTQUFTQztRQUN6QyxJQUFJLENBQUNDLFVBQVUsQ0FBQ0Q7SUFDbEIsRUFBQztJQUVERSw2QkFBNkIsQ0FBQ0osT0FBT0M7UUFDbkMsSUFBSSxDQUFDSSxhQUFhO0lBQ3BCLEVBQUM7SUFFREMsd0JBQXdCLENBQUNOLE9BQU9DO1FBQzlCLElBQUksQ0FBQ00sUUFBUTtJQUNmLEVBQUM7SUFFREMseUJBQXlCLENBQUNSLE9BQU9DO1FBQy9CLElBQUksQ0FBQ1EsU0FBUztJQUNoQixFQUFDO0lBRURDLHVCQUF1QixDQUFDVixPQUFPQztRQUM3QixJQUFJLENBQUNVLE9BQU87SUFDZCxFQUFDO0lBRURDLHFCQUFxQixDQUFDWixPQUFPQztRQUMzQixJQUFJLENBQUNZLE1BQU07SUFDYixFQUFDO0lBRURDLG9CQUFvQixDQUFDZCxPQUFPQztRQUMxQixJQUFJLENBQUNjLElBQUk7SUFDWCxFQUFDO0lBRURDLG1CQUFtQixDQUFDaEIsT0FBT0M7UUFDekIsSUFBSSxDQUFDZ0IsR0FBRztJQUNWLEVBQUM7SUFFREosU0FBUztRQUNQLElBQUksQ0FBQ0ssbUJB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
|