single-scripture-rcl 3.3.1 → 3.3.2-beta
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.
|
@@ -24,8 +24,11 @@ import * as React from 'react';
|
|
|
24
24
|
import useDeepCompareEffect from 'use-deep-compare-effect';
|
|
25
25
|
import { VerseObjects } from 'scripture-resources-rcl';
|
|
26
26
|
import { UsfmFileConversionHelpers } from 'word-aligner-rcl';
|
|
27
|
-
import {
|
|
27
|
+
import { RxLink2, RxLinkBreak2 } from 'react-icons/rx';
|
|
28
|
+
import { IconButton } from '@mui/material';
|
|
29
|
+
import { ScriptureReference } from '../../types';
|
|
28
30
|
import { getResourceMessage } from '../../utils';
|
|
31
|
+
import { ScriptureALignmentEditProps, useScriptureAlignmentEdit } from "../../hooks/useScriptureAlignmentEdit";
|
|
29
32
|
import { Container, Content } from './styled';
|
|
30
33
|
var MessageStyle = {
|
|
31
34
|
direction: 'ltr',
|
|
@@ -48,11 +51,13 @@ var TextAreaStyle = {
|
|
|
48
51
|
};
|
|
49
52
|
|
|
50
53
|
function ScripturePane(_ref) {
|
|
54
|
+
var _scriptureAlignmentEd3;
|
|
55
|
+
|
|
51
56
|
var reference = _ref.reference,
|
|
52
57
|
refStyle = _ref.refStyle,
|
|
53
58
|
direction = _ref.direction,
|
|
59
|
+
currentIndex = _ref.currentIndex,
|
|
54
60
|
contentStyle = _ref.contentStyle,
|
|
55
|
-
verseObjects = _ref.verseObjects,
|
|
56
61
|
disableWordPopover = _ref.disableWordPopover,
|
|
57
62
|
resourceStatus = _ref.resourceStatus,
|
|
58
63
|
resourceLink = _ref.resourceLink,
|
|
@@ -61,16 +66,34 @@ function ScripturePane(_ref) {
|
|
|
61
66
|
fontSize = _ref.fontSize,
|
|
62
67
|
getLexiconData = _ref.getLexiconData,
|
|
63
68
|
translate = _ref.translate,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
saving = _ref.saving,
|
|
70
|
+
scriptureAlignmentEditConfig = _ref.scriptureAlignmentEditConfig,
|
|
71
|
+
setSavedChanges = _ref.setSavedChanges,
|
|
72
|
+
setWordAlignerStatus = _ref.setWordAlignerStatus;
|
|
73
|
+
|
|
74
|
+
var _React$useState = React.useState({
|
|
75
|
+
urlError: null,
|
|
76
|
+
doingAlignment: false
|
|
77
|
+
}),
|
|
69
78
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
70
|
-
|
|
71
|
-
|
|
79
|
+
state = _React$useState2[0],
|
|
80
|
+
setState_ = _React$useState2[1];
|
|
81
|
+
|
|
82
|
+
var urlError = state.urlError,
|
|
83
|
+
doingAlignment = state.doingAlignment;
|
|
84
|
+
|
|
85
|
+
function setState(newState) {
|
|
86
|
+
setState_(function (prevState) {
|
|
87
|
+
return _objectSpread(_objectSpread({}, prevState), newState);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
72
90
|
|
|
73
|
-
var
|
|
91
|
+
var _React$useState3 = React.useState(null),
|
|
92
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
93
|
+
initialVerseText = _React$useState4[0],
|
|
94
|
+
setInitialVerseText = _React$useState4[1];
|
|
95
|
+
|
|
96
|
+
var resourceMsg = saving ? 'Saving Changes...' : getResourceMessage(resourceStatus, server, resourceLink, isNT);
|
|
74
97
|
var chapter = reference.chapter,
|
|
75
98
|
verse = reference.verse;
|
|
76
99
|
direction = direction || 'ltr';
|
|
@@ -81,7 +104,39 @@ function ScripturePane(_ref) {
|
|
|
81
104
|
contentStyle = contentStyle || {
|
|
82
105
|
fontFamily: 'Noto Sans',
|
|
83
106
|
fontSize: '100%'
|
|
84
|
-
};
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
var _scriptureAlignmentEditConfig = _objectSpread(_objectSpread({}, scriptureAlignmentEditConfig), {}, {
|
|
110
|
+
initialVerseText: initialVerseText
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
var _scriptureAlignmentEdit = useScriptureAlignmentEdit(_scriptureAlignmentEditConfig);
|
|
114
|
+
|
|
115
|
+
var _scriptureAlignmentEd = _scriptureAlignmentEdit.actions,
|
|
116
|
+
handleAlignmentClick = _scriptureAlignmentEd.handleAlignmentClick,
|
|
117
|
+
setEditing = _scriptureAlignmentEd.setEditing,
|
|
118
|
+
setVerseChanged = _scriptureAlignmentEd.setVerseChanged,
|
|
119
|
+
_scriptureAlignmentEd2 = _scriptureAlignmentEdit.state,
|
|
120
|
+
aligned = _scriptureAlignmentEd2.aligned,
|
|
121
|
+
alignerData = _scriptureAlignmentEd2.alignerData,
|
|
122
|
+
currentVerseObjects = _scriptureAlignmentEd2.currentVerseObjects,
|
|
123
|
+
initialVerseObjects = _scriptureAlignmentEd2.initialVerseObjects,
|
|
124
|
+
editing = _scriptureAlignmentEd2.editing,
|
|
125
|
+
unsavedChanges = _scriptureAlignmentEd2.unsavedChanges,
|
|
126
|
+
newVerseText = _scriptureAlignmentEd2.newVerseText;
|
|
127
|
+
React.useEffect(function () {
|
|
128
|
+
if (alignerData && !doingAlignment) {
|
|
129
|
+
setWordAlignerStatus && setWordAlignerStatus(_scriptureAlignmentEdit);
|
|
130
|
+
setState({
|
|
131
|
+
doingAlignment: true
|
|
132
|
+
});
|
|
133
|
+
} else if (doingAlignment) {
|
|
134
|
+
setWordAlignerStatus && setWordAlignerStatus(_scriptureAlignmentEdit);
|
|
135
|
+
setState({
|
|
136
|
+
doingAlignment: false
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}, [_scriptureAlignmentEdit === null || _scriptureAlignmentEdit === void 0 ? void 0 : (_scriptureAlignmentEd3 = _scriptureAlignmentEdit.state) === null || _scriptureAlignmentEd3 === void 0 ? void 0 : _scriptureAlignmentEd3.alignerData]); // dynamically adjust font size
|
|
85
140
|
|
|
86
141
|
var calculatedFontSize = React.useMemo(function () {
|
|
87
142
|
return parseFloat(TextAreaStyle.fontSize) * fontSize / 100 + 'px';
|
|
@@ -93,11 +148,12 @@ function ScripturePane(_ref) {
|
|
|
93
148
|
|
|
94
149
|
useDeepCompareEffect(function () {
|
|
95
150
|
var verseText = UsfmFileConversionHelpers.getUsfmForVerseContent({
|
|
96
|
-
verseObjects:
|
|
151
|
+
verseObjects: initialVerseObjects
|
|
97
152
|
});
|
|
98
153
|
setInitialVerseText(verseText);
|
|
99
154
|
}, [{
|
|
100
|
-
|
|
155
|
+
reference: reference,
|
|
156
|
+
initialVerseObjects: initialVerseObjects
|
|
101
157
|
}]);
|
|
102
158
|
|
|
103
159
|
function onTextChange(event) {
|
|
@@ -112,6 +168,8 @@ function ScripturePane(_ref) {
|
|
|
112
168
|
setEditing(false);
|
|
113
169
|
}
|
|
114
170
|
|
|
171
|
+
var checkingState = aligned ? 'valid' : 'invalid';
|
|
172
|
+
var titleText = checkingState === 'valid' ? 'Alignment is Valid' : 'Alignment is Invalid';
|
|
115
173
|
return /*#__PURE__*/React.createElement(Container, {
|
|
116
174
|
style: {
|
|
117
175
|
direction: direction,
|
|
@@ -135,17 +193,33 @@ function ScripturePane(_ref) {
|
|
|
135
193
|
setEditing && setEditing(true);
|
|
136
194
|
}
|
|
137
195
|
}, editing ? /*#__PURE__*/React.createElement("textarea", {
|
|
138
|
-
defaultValue: initialVerseText,
|
|
196
|
+
defaultValue: newVerseText || initialVerseText,
|
|
139
197
|
onChange: onTextChange,
|
|
140
198
|
onBlur: onBlur,
|
|
141
199
|
style: textAreaStyle,
|
|
142
200
|
autoFocus: true
|
|
143
201
|
}) : /*#__PURE__*/React.createElement(VerseObjects, {
|
|
144
202
|
verseKey: "".concat(reference.chapter, ":").concat(reference.verse),
|
|
145
|
-
verseObjects:
|
|
203
|
+
verseObjects: currentVerseObjects || [],
|
|
146
204
|
disableWordPopover: disableWordPopover,
|
|
147
205
|
getLexiconData: getLexiconData,
|
|
148
206
|
translate: translate
|
|
207
|
+
})), setWordAlignerStatus && /*#__PURE__*/React.createElement(IconButton, {
|
|
208
|
+
key: "checking-button",
|
|
209
|
+
onClick: function onClick() {
|
|
210
|
+
return handleAlignmentClick();
|
|
211
|
+
},
|
|
212
|
+
title: titleText,
|
|
213
|
+
"aria-label": titleText,
|
|
214
|
+
style: {
|
|
215
|
+
cursor: 'pointer'
|
|
216
|
+
}
|
|
217
|
+
}, checkingState === 'valid' ? /*#__PURE__*/React.createElement(RxLink2, {
|
|
218
|
+
id: "valid_icon",
|
|
219
|
+
color: "#BBB"
|
|
220
|
+
}) : /*#__PURE__*/React.createElement(RxLinkBreak2, {
|
|
221
|
+
id: "invalid_icon",
|
|
222
|
+
color: "#000"
|
|
149
223
|
}))));
|
|
150
224
|
}
|
|
151
225
|
|
|
@@ -153,4 +227,4 @@ ScripturePane.defaultProps = {
|
|
|
153
227
|
verseObjects: []
|
|
154
228
|
};
|
|
155
229
|
export default ScripturePane;
|
|
156
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImNvbnRlbnRTdHlsZSIsInZlcnNlT2JqZWN0cyIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJ1c2VTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJjYWxjdWxhdGVkRm9udFNpemUiLCJ1c2VNZW1vIiwicGFyc2VGbG9hdCIsInRleHRBcmVhU3R5bGUiLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50Iiwib25UZXh0Q2hhbmdlIiwiZXZlbnQiLCJuZXdUZXh0IiwidGFyZ2V0IiwidmFsdWUiLCJjaGFuZ2VkIiwib25CbHVyIiwicGFkZGluZ0JvdHRvbSIsImRl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LElBQUEsS0FBSyxFQUFFO0FBQUVTLE1BQUFBLFFBQVEsWUFBS0EsUUFBTDtBQUFWO0FBQVosVUFBNEN1QixXQUE1QyxNQURGLENBRlUsZ0JBTVYsb0JBQUMsT0FBRCxxQkFDRTtBQUFNLElBQUEsS0FBSyxFQUFFaEI7QUFBYixVQUF5QmlCLE9BQXpCLE9BQW1DQyxLQUFuQyxTQURGLGVBRUU7QUFBTSxJQUFBLEtBQUssRUFBRWpCLFlBQWI7QUFBMkIsSUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDeENVLE1BQUFBLFVBQVUsSUFBSUEsVUFBVSxDQUFDLElBQUQsQ0FBeEI7QUFDRDtBQUZELEtBSUdELE9BQU8sZ0JBQ047QUFDRSxJQUFBLFlBQVksRUFBRUksZ0JBRGhCO0FBRUUsSUFBQSxRQUFRLEVBQUVXLFlBRlo7QUFHRSxJQUFBLE1BQU0sRUFBRU0sTUFIVjtBQUlFLElBQUEsS0FBSyxFQUFFVCxhQUpUO0FBS0UsSUFBQSxTQUFTO0FBTFgsSUFETSxnQkFTTixvQkFBQyxZQUFEO0FBQ0UsSUFBQSxRQUFRLFlBQUt2QixTQUFTLENBQUNrQixPQUFmLGNBQTBCbEIsU0FBUyxDQUFDbUIsS0FBcEMsQ0FEVjtBQUVFLElBQUEsWUFBWSxFQUFFaEIsWUFBWSxJQUFJLEVBRmhDO0FBR0UsSUFBQSxrQkFBa0IsRUFBRUMsa0JBSHRCO0FBSUUsSUFBQSxjQUFjLEVBQUVLLGNBSmxCO0FBS0UsSUFBQSxTQUFTLEVBQUVDO0FBTGIsSUFiSixDQUZGLENBUEosQ0FERjtBQW9DRDs7QUFFRFgsYUFBYSxDQUFDbUMsWUFBZCxHQUE2QjtBQUFFL0IsRUFBQUEsWUFBWSxFQUFFO0FBQWhCLENBQTdCO0FBRUEsZUFBZUosYUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgVmVyc2VPYmplY3RzIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgeyBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IFNjcmlwdHVyZVJlZmVyZW5jZSwgVmVyc2VPYmplY3RzVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBDb250YWluZXIsIENvbnRlbnQgfSBmcm9tICcuL3N0eWxlZCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZTtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIHJlZmVyZW5jZSAqKi9cbiAgcmVmU3R5bGU6IGFueTtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIGNvbnRlbnQgKiovXG4gIGNvbnRlbnRTdHlsZTogYW55O1xuICAvKiogbGFuZ3VhZ2UgZGlyZWN0aW9uIHRvIHVzZSAqKi9cbiAgZGlyZWN0aW9uOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdmVyc2VPYmplY3RzICoqL1xuICB2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGV8dW5kZWZpbmVkO1xuICAvKiogaWYgdHJ1ZSB0aGVuIGRvIG5vdCBkaXNwbGF5IGxleGljb24gcG9wb3ZlciBvbiBob3ZlciAqKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBib29sZWFufHVuZGVmaW5lZDtcbiAgLyoqIG9iamVjdCB0aGF0IGNvbnRhaW5zIHJlc291cmNlIGxvYWRpbmcgc3RhdHVzIG9yIGZldGNoaW5nIGVycm9ycyAqL1xuICByZXNvdXJjZVN0YXR1czogb2JqZWN0fHVuZGVmaW5lZDtcbiAgLyoqIHJlc291cmNlIHRoYXQgd2FzIGxvYWRlZCAqL1xuICByZXNvdXJjZUxpbms6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBzZXJ2ZXIgKi9cbiAgc2VydmVyOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBicm93c2luZyBOVCAqL1xuICBpc05UOiBib29sZWFuO1xuICAvKiogZm9udCBzaXplIGZvciBtZXNzYWdlcyAqL1xuICBmb250U2l6ZTogbnVtYmVyO1xuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IEZ1bmN0aW9uO1xuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IEZ1bmN0aW9uO1xuICAvKiogdHJ1ZSBpZiBpbiBlZGl0IG1vZGUgKi9cbiAgZWRpdGluZzogYm9vbGVhbjtcbiAgLyoqIGNhbGxiYWNrIHRvIHNldCBlZGl0IG1vZGUgKi9cbiAgc2V0RWRpdGluZzogRnVuY3Rpb247XG4gIC8qKiBjYWxsYmFjayB0byBzZXQgdGhhdCB2ZXJzZSBoYXMgY2hhbmdlZCAqL1xuICBzZXRWZXJzZUNoYW5nZWQ6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5jb25zdCBUZXh0QXJlYVN0eWxlID0ge1xuICBoZWlnaHQ6ICc2MCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBtaW5XaWR0aDogJzIyMHB4JyxcbiAgZm9udFNpemU6ICcxNnB4Jyxcbn1cblxuZnVuY3Rpb24gU2NyaXB0dXJlUGFuZSh7XG4gIHJlZmVyZW5jZSxcbiAgcmVmU3R5bGUsXG4gIGRpcmVjdGlvbixcbiAgY29udGVudFN0eWxlLFxuICB2ZXJzZU9iamVjdHMsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgcmVzb3VyY2VTdGF0dXMsXG4gIHJlc291cmNlTGluayxcbiAgc2VydmVyLFxuICBpc05ULFxuICBmb250U2l6ZSxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIHRyYW5zbGF0ZSxcbiAgZWRpdGluZyxcbiAgc2V0RWRpdGluZyxcbiAgc2V0VmVyc2VDaGFuZ2VkLFxufSA6IFByb3BzKSB7XG4gIGNvbnN0IFtpbml0aWFsVmVyc2VUZXh0LCBzZXRJbml0aWFsVmVyc2VUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpXG4gIGNvbnN0IHJlc291cmNlTXNnID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgY29uc3QgeyBjaGFwdGVyLCB2ZXJzZSB9ID0gcmVmZXJlbmNlXG4gIGRpcmVjdGlvbiA9IGRpcmVjdGlvbiB8fCAnbHRyJ1xuXG4gIHJlZlN0eWxlID0gcmVmU3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnOTAlJyxcbiAgfVxuXG4gIGNvbnRlbnRTdHlsZSA9IGNvbnRlbnRTdHlsZSB8fCB7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6ICcxMDAlJyxcbiAgfVxuXG4gIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBmb250IHNpemVcbiAgY29uc3QgY2FsY3VsYXRlZEZvbnRTaXplID0gUmVhY3QudXNlTWVtbygoKSA9PiAoXG4gICAgcGFyc2VGbG9hdChUZXh0QXJlYVN0eWxlLmZvbnRTaXplKSAqIGZvbnRTaXplIC8gMTAwICsgJ3B4J1xuICApLCBbZm9udFNpemVdKVxuXG4gIGNvbnN0IHRleHRBcmVhU3R5bGUgPSB7XG4gICAgLi4uY29udGVudFN0eWxlLFxuICAgIC4uLlRleHRBcmVhU3R5bGUsXG4gICAgZm9udFNpemU6IGNhbGN1bGF0ZWRGb250U2l6ZSxcbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHMgfSlcbiAgICBzZXRJbml0aWFsVmVyc2VUZXh0KHZlcnNlVGV4dClcbiAgfSwgW3sgdmVyc2VPYmplY3RzIH1dKVxuXG4gIGZ1bmN0aW9uIG9uVGV4dENoYW5nZShldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdUZXh0ID0gZXZlbnQ/LnRhcmdldD8udmFsdWVcbiAgICBjb25zdCBjaGFuZ2VkID0gbmV3VGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuICAgIHNldFZlcnNlQ2hhbmdlZChjaGFuZ2VkLCBuZXdUZXh0LCBpbml0aWFsVmVyc2VUZXh0KVxuICB9XG5cbiAgZnVuY3Rpb24gb25CbHVyKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50Pikge1xuICAgIHNldEVkaXRpbmcoZmFsc2UpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgc3R5bGU9e3sgZGlyZWN0aW9uLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nQm90dG9tOiAnMC41ZW0nfX0+XG4gICAgICB7cmVzb3VyY2VNc2cgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1zZ30gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2VkaXRpbmcgP1xuICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2luaXRpYWxWZXJzZVRleHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVGV4dENoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAgICAgICBzdHlsZT17dGV4dEFyZWFTdHlsZX1cbiAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICA8VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgICAgICAgICAgIHZlcnNlT2JqZWN0cz17dmVyc2VPYmplY3RzIHx8IFtdfVxuICAgICAgICAgICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyfVxuICAgICAgICAgICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdfQ==
|
|
230
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJSeExpbmsyIiwiUnhMaW5rQnJlYWsyIiwiSWNvbkJ1dHRvbiIsIlNjcmlwdHVyZVJlZmVyZW5jZSIsImdldFJlc291cmNlTWVzc2FnZSIsIlNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyIsInVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJDb250YWluZXIiLCJDb250ZW50IiwiTWVzc2FnZVN0eWxlIiwiZGlyZWN0aW9uIiwid2hpdGVTcGFjZSIsImxpbmVIZWlnaHQiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwiaGVpZ2h0Iiwid2lkdGgiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJmb250V2VpZ2h0IiwiVGV4dEFyZWFTdHlsZSIsIm1pbldpZHRoIiwiU2NyaXB0dXJlUGFuZSIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwiY3VycmVudEluZGV4IiwiY29udGVudFN0eWxlIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzZXJ2ZXIiLCJpc05UIiwiZ2V0TGV4aWNvbkRhdGEiLCJ0cmFuc2xhdGUiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJ1c2VTdGF0ZSIsInVybEVycm9yIiwiZG9pbmdBbGlnbm1lbnQiLCJzdGF0ZSIsInNldFN0YXRlXyIsInNldFN0YXRlIiwibmV3U3RhdGUiLCJwcmV2U3RhdGUiLCJpbml0aWFsVmVyc2VUZXh0Iiwic2V0SW5pdGlhbFZlcnNlVGV4dCIsInJlc291cmNlTXNnIiwiY2hhcHRlciIsInZlcnNlIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsImFjdGlvbnMiLCJoYW5kbGVBbGlnbm1lbnRDbGljayIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJhbGlnbmVkIiwiYWxpZ25lckRhdGEiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsImVkaXRpbmciLCJ1bnNhdmVkQ2hhbmdlcyIsIm5ld1ZlcnNlVGV4dCIsInVzZUVmZmVjdCIsImNhbGN1bGF0ZWRGb250U2l6ZSIsInVzZU1lbW8iLCJwYXJzZUZsb2F0IiwidGV4dEFyZWFTdHlsZSIsInZlcnNlVGV4dCIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJ2ZXJzZU9iamVjdHMiLCJvblRleHRDaGFuZ2UiLCJldmVudCIsIm5ld1RleHQiLCJ0YXJnZXQiLCJ2YWx1ZSIsImNoYW5nZWQiLCJvbkJsdXIiLCJjaGVja2luZ1N0YXRlIiwidGl0bGVUZXh0IiwicGFkZGluZ0JvdHRvbSIsImN1cnNvciIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLG9CQUFQLE1BQWlDLHlCQUFqQztBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsa0JBQTFDO0FBQ0EsU0FBU0MsT0FBVCxFQUFrQkMsWUFBbEIsUUFBc0MsZ0JBQXRDO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixlQUEzQjtBQUNBLFNBQVNDLGtCQUFULFFBQW1DLGFBQW5DO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsYUFBbkM7QUFDQSxTQUFTQywyQkFBVCxFQUFzQ0MseUJBQXRDLFFBQXVFLHVDQUF2RTtBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLE9BQXBCLFFBQW1DLFVBQW5DO0FBdUNBLElBQU1DLFlBQVksR0FBRztB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RWhDLGtCQUh0QjtBQUlFLElBQUEsY0FBYyxFQUFFSyxjQUpsQjtBQUtFLElBQUEsU0FBUyxFQUFFQztBQUxiLElBYkosQ0FGRixFQXdCR0ksb0JBQW9CLGlCQUNuQixvQkFBQyxVQUFEO0FBQ0UsSUFBQSxHQUFHLEVBQUMsaUJBRE47QUFFRSxJQUFBLE9BQU8sRUFBRTtBQUFBLGFBQU1pQixvQkFBb0IsRUFBMUI7QUFBQSxLQUZYO0FBR0UsSUFBQSxLQUFLLEVBQUUwQixTQUhUO0FBSUUsa0JBQVlBLFNBSmQ7QUFLRSxJQUFBLEtBQUssRUFBRTtBQUFFRSxNQUFBQSxNQUFNLEVBQUU7QUFBVjtBQUxULEtBT0dILGFBQWEsS0FBSyxPQUFsQixnQkFDQyxvQkFBQyxPQUFEO0FBQVMsSUFBQSxFQUFFLEVBQUMsWUFBWjtBQUF5QixJQUFBLEtBQUssRUFBQztBQUEvQixJQURELGdCQUdDLG9CQUFDLFlBQUQ7QUFBYyxJQUFBLEVBQUUsRUFBQyxjQUFqQjtBQUFnQyxJQUFBLEtBQUssRUFBQztBQUF0QyxJQVZKLENBekJKLENBUEosQ0FERjtBQW1ERDs7QUFFRHpELGFBQWEsQ0FBQzZELFlBQWQsR0FBNkI7QUFBRVosRUFBQUEsWUFBWSxFQUFFO0FBQWhCLENBQTdCO0FBRUEsZUFBZWpELGFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VEZWVwQ29tcGFyZUVmZmVjdCBmcm9tICd1c2UtZGVlcC1jb21wYXJlLWVmZmVjdCdcbmltcG9ydCB7IFZlcnNlT2JqZWN0cyB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHsgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBSeExpbmsyLCBSeExpbmtCcmVhazIgfSBmcm9tICdyZWFjdC1pY29ucy9yeCdcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUmVmZXJlbmNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRSZXNvdXJjZU1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcywgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCB9IGZyb20gXCIuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XCI7XG5pbXBvcnQgeyBDb250YWluZXIsIENvbnRlbnQgfSBmcm9tICcuL3N0eWxlZCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIGNvbnRlbnQgKiovXG4gIGNvbnRlbnRTdHlsZTogYW55O1xuICAvLyBpbmRleCBudW1iZXIgZm9yIHRoaXMgc2NyaXB0dXJlIHBhbmVcbiAgY3VycmVudEluZGV4OiBudW1iZXIsXG4gIC8qKiBsYW5ndWFnZSBkaXJlY3Rpb24gdG8gdXNlICoqL1xuICBkaXJlY3Rpb246IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZG8gbm90IGRpc3BsYXkgbGV4aWNvbiBwb3BvdmVyIG9uIGhvdmVyICoqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IGJvb2xlYW58dW5kZWZpbmVkO1xuICAvKiogZm9udCBzaXplIGZvciBtZXNzYWdlcyAqL1xuICBmb250U2l6ZTogbnVtYmVyO1xuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IEZ1bmN0aW9uO1xuICAvKiogdHJ1ZSBpZiBicm93c2luZyBOVCAqL1xuICBpc05UOiBib29sZWFuO1xuICAvKiogY3VycmVudCByZWZlcmVuY2UgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgcmVmZXJlbmNlICoqL1xuICByZWZTdHlsZTogYW55O1xuICAvKiogb2JqZWN0IHRoYXQgY29udGFpbnMgcmVzb3VyY2UgbG9hZGluZyBzdGF0dXMgb3IgZmV0Y2hpbmcgZXJyb3JzICovXG4gIHJlc291cmNlU3RhdHVzOiBvYmplY3R8dW5kZWZpbmVkO1xuICAvKiogcmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkICovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHRydWUgaWYgY3VycmVudGx5IHNhdmluZyB1cGRhdGVkIHRleHQgYW5kIGFsaWdubWVudHMgKi9cbiAgc2F2aW5nOiBib29sZWFuO1xuICAvLyBpbml0aWFsaXphdGlvbiBmb3IgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnOiBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMsXG4gIC8qKiBzZXJ2ZXIgKi9cbiAgc2VydmVyOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogY2FsbGJhY2sgdG8gZmxhZyB1bnNhdmVkIHN0YXR1cyAqL1xuICBzZXRTYXZlZENoYW5nZXM6IEZ1bmN0aW9uO1xuICAvLyBjYWxsYmFjayBmb3IgY2hhbmdlIGluIHdvcmQgYWxpZ25tZW50IHN0YXR1c1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogRnVuY3Rpb247XG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogRnVuY3Rpb247XG59XG5cbmNvbnN0IE1lc3NhZ2VTdHlsZSA9IHtcbiAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyxcbiAgbGluZUhlaWdodDogJ25vcm1hbCcsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgaGVpZ2h0OiAnMTAwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGZvbnRTaXplOiAnMTZweCcsXG4gIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICBmb250V2VpZ2h0OiAnYm9sZCcsXG59XG5cbmNvbnN0IFRleHRBcmVhU3R5bGUgPSB7XG4gIGhlaWdodDogJzYwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIG1pbldpZHRoOiAnMjIwcHgnLFxuICBmb250U2l6ZTogJzE2cHgnLFxufVxuXG5mdW5jdGlvbiBTY3JpcHR1cmVQYW5lKHtcbiAgcmVmZXJlbmNlLFxuICByZWZTdHlsZSxcbiAgZGlyZWN0aW9uLFxuICBjdXJyZW50SW5kZXgsXG4gIGNvbnRlbnRTdHlsZSxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICByZXNvdXJjZVN0YXR1cyxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZXJ2ZXIsXG4gIGlzTlQsXG4gIGZvbnRTaXplLFxuICBnZXRMZXhpY29uRGF0YSxcbiAgdHJhbnNsYXRlLFxuICBzYXZpbmcsXG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG59IDogUHJvcHMpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIHVybEVycm9yOiBudWxsLFxuICAgIGRvaW5nQWxpZ25tZW50OiBmYWxzZSxcbiAgfSlcbiAgY29uc3Qge1xuICAgIHVybEVycm9yLFxuICAgIGRvaW5nQWxpZ25tZW50LFxuICB9ID0gc3RhdGVcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGNvbnN0IFtpbml0aWFsVmVyc2VUZXh0LCBzZXRJbml0aWFsVmVyc2VUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpXG4gIGNvbnN0IHJlc291cmNlTXNnID0gc2F2aW5nID8gJ1NhdmluZyBDaGFuZ2VzLi4uJyA6IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlQpXG4gIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdCA9IHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcpXG4gIGNvbnN0IHtcbiAgICBhY3Rpb25zOiB7XG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIHNldEVkaXRpbmcsXG4gICAgICBzZXRWZXJzZUNoYW5nZWQsXG4gICAgfSxcbiAgICBzdGF0ZToge1xuICAgICAgYWxpZ25lZCxcbiAgICAgIGFsaWduZXJEYXRhLFxuICAgICAgY3VycmVudFZlcnNlT2JqZWN0cyxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgdW5zYXZlZENoYW5nZXMsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgfSxcbiAgfSA9IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IHRydWUgfSlcbiAgICB9IGVsc2UgaWYgKGRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlIH0pXG4gICAgfVxuICB9LCBbX3NjcmlwdHVyZUFsaWdubWVudEVkaXQ/LnN0YXRlPy5hbGlnbmVyRGF0YV0pXG5cbiAgLy8gZHluYW1pY2FsbHkgYWRqdXN0IGZvbnQgc2l6ZVxuICBjb25zdCBjYWxjdWxhdGVkRm9udFNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IChcbiAgICBwYXJzZUZsb2F0KFRleHRBcmVhU3R5bGUuZm9udFNpemUpICogZm9udFNpemUgLyAxMDAgKyAncHgnXG4gICksIFtmb250U2l6ZV0pXG5cbiAgY29uc3QgdGV4dEFyZWFTdHlsZSA9IHtcbiAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgLi4uVGV4dEFyZWFTdHlsZSxcbiAgICBmb250U2l6ZTogY2FsY3VsYXRlZEZvbnRTaXplLFxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgIHNldEluaXRpYWxWZXJzZVRleHQodmVyc2VUZXh0KVxuICB9LCBbeyByZWZlcmVuY2UsIGluaXRpYWxWZXJzZU9iamVjdHMgfV0pXG5cbiAgZnVuY3Rpb24gb25UZXh0Q2hhbmdlKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50Pikge1xuICAgIGNvbnN0IG5ld1RleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZVxuICAgIGNvbnN0IGNoYW5nZWQgPSBuZXdUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG4gICAgc2V0VmVyc2VDaGFuZ2VkKGNoYW5nZWQsIG5ld1RleHQsIGluaXRpYWxWZXJzZVRleHQpXG4gIH1cblxuICBmdW5jdGlvbiBvbkJsdXIoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgc2V0RWRpdGluZyhmYWxzZSlcbiAgfVxuXG4gIGNvbnN0IGNoZWNraW5nU3RhdGUgPSBhbGlnbmVkID8gJ3ZhbGlkJyA6ICdpbnZhbGlkJ1xuICBjb25zdCB0aXRsZVRleHQgPSBjaGVja2luZ1N0YXRlID09PSAndmFsaWQnID8gJ0FsaWdubWVudCBpcyBWYWxpZCcgOiAnQWxpZ25tZW50IGlzIEludmFsaWQnXG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgcGFkZGluZ0JvdHRvbTogJzAuNWVtJ319PlxuICAgICAge3Jlc291cmNlTXNnID9cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICA8ZGl2IHN0eWxlPXtNZXNzYWdlU3R5bGV9PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6IGAke2ZvbnRTaXplfSVgIH19PiB7cmVzb3VyY2VNc2d9IDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOlxuICAgICAgICA8Q29udGVudD5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17cmVmU3R5bGV9PiB7Y2hhcHRlcn06e3ZlcnNlfSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17Y29udGVudFN0eWxlfSBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRFZGl0aW5nICYmIHNldEVkaXRpbmcodHJ1ZSlcbiAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlZGl0aW5nID9cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtuZXdWZXJzZVRleHQgfHwgaW5pdGlhbFZlcnNlVGV4dH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt0ZXh0QXJlYVN0eWxlfVxuICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgIDxWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICB2ZXJzZUtleT17YCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWB9XG4gICAgICAgICAgICAgICAgdmVyc2VPYmplY3RzPXtjdXJyZW50VmVyc2VPYmplY3RzIHx8IFtdfVxuICAgICAgICAgICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyfVxuICAgICAgICAgICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAge3NldFdvcmRBbGlnbmVyU3RhdHVzICYmXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICBrZXk9J2NoZWNraW5nLWJ1dHRvbidcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQWxpZ25tZW50Q2xpY2soKX1cbiAgICAgICAgICAgICAgdGl0bGU9e3RpdGxlVGV4dH1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dGl0bGVUZXh0fVxuICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y2hlY2tpbmdTdGF0ZSA9PT0gJ3ZhbGlkJyA/IChcbiAgICAgICAgICAgICAgICA8UnhMaW5rMiBpZD0ndmFsaWRfaWNvbicgY29sb3I9JyNCQkInIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFJ4TGlua0JyZWFrMiBpZD0naW52YWxpZF9pY29uJyBjb2xvcj0nIzAwMCcgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdfQ==
|