single-scripture-rcl 3.4.20-beta.20 → 3.4.21-beta.6
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.
|
@@ -151,31 +151,21 @@ function ScripturePane(_ref) {
|
|
|
151
151
|
initialVerseObjects = _scriptureAlignmentEd2.initialVerseObjects,
|
|
152
152
|
newVerseText = _scriptureAlignmentEd2.newVerseText;
|
|
153
153
|
React.useEffect(function () {
|
|
154
|
+
// monitor if we need to start alignment
|
|
154
155
|
if (isVerseSelectedForAlignment && !alignerData && !doingAlignment) {
|
|
156
|
+
// check if edit for this verse is selected and not already doing alignment
|
|
155
157
|
if (!editing && !processingEdit) {
|
|
158
|
+
// make sure not still editing or processing edit
|
|
156
159
|
console.log("ScripturePane - verse selected for alignment", reference);
|
|
157
160
|
handleAlignmentClick();
|
|
158
161
|
} else {
|
|
159
|
-
console.log("ScripturePane - verse not ready for alignment", {
|
|
162
|
+
console.log("ScripturePane - still editing verse, not ready for alignment", {
|
|
160
163
|
editing: editing,
|
|
161
164
|
processingEdit: processingEdit
|
|
162
165
|
});
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
168
|
}, [isVerseSelectedForAlignment, alignerData, doingAlignment, editing, processingEdit]);
|
|
166
|
-
|
|
167
|
-
// const verseChanged = React.useMemo(() => {
|
|
168
|
-
// return (newVerseText !== newText)
|
|
169
|
-
// }, [newVerseText, newText])
|
|
170
|
-
//
|
|
171
|
-
// React.useEffect(() => {
|
|
172
|
-
// if (newVerseText !== newText) {
|
|
173
|
-
// console.log(`ScripturePane - new verse text diverged`, { newVerseText, newText })
|
|
174
|
-
// } else {
|
|
175
|
-
// console.log(`ScripturePane - new verse text converged`, { newVerseText })
|
|
176
|
-
// }
|
|
177
|
-
// }, [verseChanged])
|
|
178
|
-
|
|
179
169
|
React.useEffect(function () {
|
|
180
170
|
updateVersesAlignmentStatus && updateVersesAlignmentStatus(reference, aligned);
|
|
181
171
|
}, [aligned, chapter, verse, bookId]);
|
|
@@ -221,25 +211,31 @@ function ScripturePane(_ref) {
|
|
|
221
211
|
reference: reference,
|
|
222
212
|
initialVerseObjects: initialVerseObjects
|
|
223
213
|
}]);
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* when focus is changed from text editing, get final text and do processing of final text
|
|
217
|
+
* @param {React.ChangeEvent<HTMLTextAreaElement>} event - DOM event info
|
|
218
|
+
*/
|
|
224
219
|
function onBlur(event) {
|
|
225
220
|
var _event$target;
|
|
226
221
|
var newVerseText = event === null || event === void 0 || (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value; // get new text
|
|
227
222
|
setState({
|
|
228
223
|
newText: newVerseText,
|
|
229
224
|
processingEdit: true
|
|
230
|
-
});
|
|
225
|
+
}); // show spinner while processing edit text
|
|
231
226
|
delay(500).then(function () {
|
|
232
|
-
// allow state to update
|
|
227
|
+
// allow state to update before processing new text
|
|
233
228
|
setEditing(false, newVerseText).then(function () {
|
|
234
|
-
// process the latest edit
|
|
229
|
+
// process the latest edit text
|
|
235
230
|
setState({
|
|
236
231
|
processingEdit: false
|
|
237
|
-
});
|
|
232
|
+
}); // now done, remove spinner
|
|
238
233
|
});
|
|
239
234
|
});
|
|
240
235
|
}
|
|
236
|
+
|
|
241
237
|
React.useEffect(function () {
|
|
242
|
-
// monitor for edit state changes and call back with edit status
|
|
238
|
+
// monitor for edit state changes and call back to scripture card with edit status
|
|
243
239
|
var _editing = editing || processingEdit;
|
|
244
240
|
var verseRef = "".concat(reference.chapter, ":").concat(reference.verse);
|
|
245
241
|
setEditVerse && setEditVerse(verseRef, _editing);
|
|
@@ -254,7 +250,7 @@ function ScripturePane(_ref) {
|
|
|
254
250
|
* @param {boolean} editing - if true show edit mode
|
|
255
251
|
* @param {boolean} enableEdit - if true then edit is enabled
|
|
256
252
|
* @param {boolean} noWords - if true then there are no displayable words
|
|
257
|
-
* @param {boolean} processingEdit - true
|
|
253
|
+
* @param {boolean} processingEdit - if true then edit is being processed
|
|
258
254
|
*/
|
|
259
255
|
function verseContent(editing, enableEdit, noWords, processingEdit) {
|
|
260
256
|
if (processingEdit) {
|
|
@@ -311,4 +307,4 @@ ScripturePane.defaultProps = {
|
|
|
311
307
|
verseObjects: []
|
|
312
308
|
};
|
|
313
309
|
export default ScripturePane;
|
|
314
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZURlZXBDb21wYXJlRWZmZWN0IiwiVmVyc2VPYmplY3RzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsIkNpcmN1bGFyUHJvZ3Jlc3MiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiZGVsYXkiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJMT0FESU5HX1JFU09VUkNFIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIkNvbnRhaW5lciIsIkNvbnRlbnQiLCJFbXB0eUNvbnRlbnQiLCJNZXNzYWdlU3R5bGUiLCJkaXJlY3Rpb24iLCJ3aGl0ZVNwYWNlIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJoZWlnaHQiLCJ3aWR0aCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJUZXh0QXJlYVN0eWxlIiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJTY3JpcHR1cmVQYW5lIiwiX3JlZiIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZDMiLCJjdXJyZW50SW5kZXgiLCJjb250ZW50U3R5bGUiLCJkZXRlcm1pbmluZ0JyYW5jaCIsImRpc2FibGVXb3JkUG9wb3ZlciIsImdldExleGljb25EYXRhIiwiaXNOVCIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0RWRpdFZlcnNlIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJzZXJ2ZXIiLCJ0cmFuc2xhdGUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImRvaW5nQWxpZ25tZW50IiwibmV3VGV4dCIsInByb2Nlc3NpbmdFZGl0IiwiX1JlYWN0JHVzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiX29iamVjdFNwcmVhZCIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwiaW5pdGlhbFZlcnNlVGV4dCIsInNldEluaXRpYWxWZXJzZVRleHQiLCJyZXNvdXJjZU1lc3NhZ2UiLCJfcmVmMiIsImNoYXB0ZXIiLCJib29rSWQiLCJ2ZXJzZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkMiIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwiZW5hYmxlRWRpdCIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJuZXdWZXJzZVRleHQiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwibG9nIiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInZlcnNlT2JqZWN0cyIsIm9uQmx1ciIsImV2ZW50IiwiX2V2ZW50JHRhcmdldCIsInRhcmdldCIsInZhbHVlIiwidGhlbiIsIl9lZGl0aW5nIiwidmVyc2VSZWYiLCJjb25jYXQiLCJub1dvcmRzIiwidmVyc2VDb250ZW50IiwiY3JlYXRlRWxlbWVudCIsInNpemUiLCJkZWZhdWx0VmFsdWUiLCJzdHlsZSIsImF1dG9Gb2N1cyIsInZlcnNlS2V5IiwicGFkZGluZ0JvdHRvbSIsIm9uQ2xpY2siLCJkZWZhdWx0UHJvcHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9TY3JpcHR1cmVQYW5lL1NjcmlwdHVyZVBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgVmVyc2VPYmplY3RzIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgeyBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3MgfSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgeyBCb29rT2JqZWN0c1R5cGUsIFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7XG4gIGRlbGF5LFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIHZlcnNlT2JqZWN0c0hhdmVXb3Jkcyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMsIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0J1xuaW1wb3J0IHtcbiAgQ29udGFpbmVyLFxuICBDb250ZW50LFxuICBFbXB0eUNvbnRlbnQsXG59IGZyb20gJy4vc3R5bGVkJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgY29udGVudCAqKi9cbiAgY29udGVudFN0eWxlOiBhbnk7XG4gIC8vIGluZGV4IG51bWJlciBmb3IgdGhpcyBzY3JpcHR1cmUgcGFuZVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLy8gd2FpdGluZyB0byBkZXRlcm1pbmUgYnJhbmNoXG4gIGRldGVybWluaW5nQnJhbmNoOiBib29sZWFuLFxuICAvKiogbGFuZ3VhZ2UgZGlyZWN0aW9uIHRvIHVzZSAqKi9cbiAgZGlyZWN0aW9uOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogaWYgdHJ1ZSB0aGVuIGRvIG5vdCBkaXNwbGF5IGxleGljb24gcG9wb3ZlciBvbiBob3ZlciAqKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBib29sZWFufHVuZGVmaW5lZDtcbiAgLyoqIGZvbnQgc2l6ZSBmb3IgbWVzc2FnZXMgKi9cbiAgZm9udFNpemU6IG51bWJlcjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBGdW5jdGlvbjtcbiAgLyoqIHRydWUgaWYgYnJvd3NpbmcgTlQgKi9cbiAgaXNOVDogYm9vbGVhbjtcbiAgLyoqIHdoZXRoZXIgb3Igbm90IHRoaXMgY3VycmVudCB2ZXJzZSBoYXMgYmVlbiBzZWxlY3RlZCBmb3IgYWxpZ25tZW50ICovXG4gIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogYm9vbGVhbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHZlcnNlIGFsaWdubWVudCBoYXMgZmluaXNoZWQgKi9cbiAgb25BbGlnbm1lbnRGaW5pc2g6IEZ1bmN0aW9uO1xuICAvLyBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9va1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlO1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgcmVmZXJlbmNlICoqL1xuICByZWZTdHlsZTogYW55O1xuICAvKiogb2JqZWN0IHRoYXQgY29udGFpbnMgcmVzb3VyY2UgbG9hZGluZyBzdGF0dXMgb3IgZmV0Y2hpbmcgZXJyb3JzICovXG4gIHJlc291cmNlU3RhdHVzOiBvYmplY3R8dW5kZWZpbmVkO1xuICAvKiogcmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkICovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHRydWUgaWYgY3VycmVudGx5IHNhdmluZyB1cGRhdGVkIHRleHQgYW5kIGFsaWdubWVudHMgKi9cbiAgc2F2aW5nOiBib29sZWFuO1xuICAvLyBpbml0aWFsaXphdGlvbiBmb3IgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnOiBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMsXG4gIC8qKiBzZXJ2ZXIgKi9cbiAgc2VydmVyOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogY2FsbGJhY2sgdG8gZmxhZyB0aGF0IHdlIGFyZSBlZGl0aW5nICovXG4gIHNldEVkaXRWZXJzZTogRnVuY3Rpb247XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHVuc2F2ZWQgc3RhdHVzICovXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb247XG4gIC8vIGNhbGxiYWNrIGZvciBjaGFuZ2UgaW4gd29yZCBhbGlnbm1lbnQgc3RhdHVzXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byB1cGRhdGUgdmVyc2UgYWxpZ25tZW50IHN0YXR1cyAqL1xuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5jb25zdCBUZXh0QXJlYVN0eWxlID0ge1xuICBoZWlnaHQ6ICc2MCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBtaW5XaWR0aDogJzIyMHB4JyxcbiAgbWluSGVpZ2h0OiAnMTAwcHgnLFxuICBmb250U2l6ZTogJzE2cHgnLFxufVxuXG5mdW5jdGlvbiBTY3JpcHR1cmVQYW5lKHtcbiAgY3VycmVudEluZGV4LFxuICBjb250ZW50U3R5bGUsXG4gIGRldGVybWluaW5nQnJhbmNoLFxuICBkaXJlY3Rpb24sXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICBpc05ULFxuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gIG9uQWxpZ25tZW50RmluaXNoLFxuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICByZXNvdXJjZVN0YXR1cyxcbiAgcmVzb3VyY2VMaW5rLFxuICBzYXZpbmcsXG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gIHNldEVkaXRWZXJzZSxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgc2VydmVyLFxuICB0cmFuc2xhdGUsXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlLFxuICAgIG5ld1RleHQ6IG51bGwsXG4gICAgcHJvY2Vzc2luZ0VkaXQ6IGZhbHNlLFxuICB9KVxuICBjb25zdCB7XG4gICAgZG9pbmdBbGlnbm1lbnQsXG4gICAgbmV3VGV4dCxcbiAgICBwcm9jZXNzaW5nRWRpdCwgLy8gdHJ1ZSB3aGVuIHdlIGFyZSBwcm9jZXNzaW5nIGVkaXQgdGV4dCBhZnRlciBvbkJsdXJcbiAgfSA9IHN0YXRlXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuXG4gIGxldCByZXNvdXJjZU1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnU2F2aW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSBpZiAoZGV0ZXJtaW5pbmdCcmFuY2gpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnUHJlLScgKyBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIGJvb2tJZCxcbiAgICB2ZXJzZSxcbiAgfSA9IHJlZmVyZW5jZSB8fCB7fVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdChfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZylcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIGVuYWJsZUVkaXQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgIH0sXG4gIH0gPSBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCAmJiAhYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBpZiAoIWVkaXRpbmcgJiYgIXByb2Nlc3NpbmdFZGl0KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gdmVyc2Ugc2VsZWN0ZWQgZm9yIGFsaWdubWVudGAsIHJlZmVyZW5jZSlcbiAgICAgICAgaGFuZGxlQWxpZ25tZW50Q2xpY2soKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSB2ZXJzZSBub3QgcmVhZHkgZm9yIGFsaWdubWVudGAsIHtlZGl0aW5nLCBwcm9jZXNzaW5nRWRpdH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LCBhbGlnbmVyRGF0YSwgZG9pbmdBbGlnbm1lbnQsIGVkaXRpbmcsIHByb2Nlc3NpbmdFZGl0XSlcblxuICAvLyBjb25zdCB2ZXJzZUNoYW5nZWQgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgLy8gICByZXR1cm4gKG5ld1ZlcnNlVGV4dCAhPT0gbmV3VGV4dClcbiAgLy8gfSwgW25ld1ZlcnNlVGV4dCwgbmV3VGV4dF0pXG4gIC8vXG4gIC8vIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gIC8vICAgaWYgKG5ld1ZlcnNlVGV4dCAhPT0gbmV3VGV4dCkge1xuICAvLyAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSBuZXcgdmVyc2UgdGV4dCBkaXZlcmdlZGAsIHsgbmV3VmVyc2VUZXh0LCBuZXdUZXh0IH0pXG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gbmV3IHZlcnNlIHRleHQgY29udmVyZ2VkYCwgeyBuZXdWZXJzZVRleHQgfSlcbiAgLy8gICB9XG4gIC8vIH0sIFt2ZXJzZUNoYW5nZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzICYmIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyhyZWZlcmVuY2UsIGFsaWduZWQpXG4gIH0sIFthbGlnbmVkLCBjaGFwdGVyLCB2ZXJzZSwgYm9va0lkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogdHJ1ZSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gYWxpZ25lckRhdGEgd2VudCBmYWxzZSB1bmV4cGVjdGVkYCwgeyByZWZlcmVuY2UsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudCB9KVxuICAgICAgfVxuXG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlIH0pXG4gICAgICBvbkFsaWdubWVudEZpbmlzaCAmJiBvbkFsaWdubWVudEZpbmlzaCgpXG4gICAgfVxuICB9LCBbX3NjcmlwdHVyZUFsaWdubWVudEVkaXQ/LnN0YXRlPy5hbGlnbmVyRGF0YV0pXG5cbiAgLy8gZHluYW1pY2FsbHkgYWRqdXN0IGZvbnQgc2l6ZVxuICBjb25zdCBjYWxjdWxhdGVkRm9udFNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IChcbiAgICBwYXJzZUZsb2F0KFRleHRBcmVhU3R5bGUuZm9udFNpemUpICogZm9udFNpemUgLyAxMDAgKyAncHgnXG4gICksIFtmb250U2l6ZV0pXG5cbiAgY29uc3QgdGV4dEFyZWFTdHlsZSA9IHtcbiAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgLi4uVGV4dEFyZWFTdHlsZSxcbiAgICBmb250U2l6ZTogY2FsY3VsYXRlZEZvbnRTaXplLFxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgIGNsZWFyQ2hhbmdlcygpXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBudWxsIH0pXG4gIH0sIFt7IHJlZmVyZW5jZSwgaW5pdGlhbFZlcnNlT2JqZWN0cyB9XSlcblxuICBmdW5jdGlvbiBvbkJsdXIoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgY29uc3QgbmV3VmVyc2VUZXh0ID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgLy8gZ2V0IG5ldyB0ZXh0XG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBuZXdWZXJzZVRleHQsIHByb2Nlc3NpbmdFZGl0OiB0cnVlIH0pXG4gICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHsgLy8gYWxsb3cgc3RhdGUgdG8gdXBkYXRlXG4gICAgICBzZXRFZGl0aW5nKGZhbHNlLCBuZXdWZXJzZVRleHQpLnRoZW4oKCkgPT4geyAvLyBwcm9jZXNzIHRoZSBsYXRlc3QgZWRpdFxuICAgICAgICBzZXRTdGF0ZSh7cHJvY2Vzc2luZ0VkaXQ6IGZhbHNlfSlcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIG1vbml0b3IgZm9yIGVkaXQgc3RhdGUgY2hhbmdlcyBhbmQgY2FsbCBiYWNrIHdpdGggZWRpdCBzdGF0dXMgdG8gc2NyaXB0dXJlIGNhcmRcbiAgICBjb25zdCBfZWRpdGluZyA9IGVkaXRpbmcgfHwgcHJvY2Vzc2luZ0VkaXRcbiAgICBjb25zdCB2ZXJzZVJlZiA9IGAke3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXG4gICAgc2V0RWRpdFZlcnNlICYmIHNldEVkaXRWZXJzZSh2ZXJzZVJlZiwgX2VkaXRpbmcpXG4gIH0sIFtlZGl0aW5nLCBwcm9jZXNzaW5nRWRpdF0pXG5cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gY3VycmVudFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzIHx8IFtdXG4gIGNvbnN0IG5vV29yZHMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICF2ZXJzZU9iamVjdHNIYXZlV29yZHModmVyc2VPYmplY3RzKSwgW2N1cnJlbnRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHNdKVxuXG4gIC8qKlxuICAgKiBkZXRlcm1pbmUgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHN0YXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZyAtIGlmIHRydWUgc2hvdyBlZGl0IG1vZGVcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVFZGl0IC0gaWYgdHJ1ZSB0aGVuIGVkaXQgaXMgZW5hYmxlZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vV29yZHMgLSBpZiB0cnVlIHRoZW4gdGhlcmUgYXJlIG5vIGRpc3BsYXlhYmxlIHdvcmRzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2Vzc2luZ0VkaXQgLSB0cnVlIGlmIGVkaXQgaXMgYmVpbmcgcHJvY2Vzc2VkXG4gICAqL1xuICBmdW5jdGlvbiB2ZXJzZUNvbnRlbnQoZWRpdGluZywgZW5hYmxlRWRpdCwgbm9Xb3JkcywgcHJvY2Vzc2luZ0VkaXQpIHtcbiAgICBpZiAocHJvY2Vzc2luZ0VkaXQpIHsgLy8gcHV0IHVwIHNwaW5uZXIgd2hpbGUgcHJvY2Vzc2luZyB0aGUgZWRpdFxuICAgICAgcmV0dXJuIDxDaXJjdWxhclByb2dyZXNzIHNpemU9ezQwfS8+XG4gICAgfVxuXG4gICAgaWYgKGVkaXRpbmcpIHtcbiAgICAgIHJldHVybiA8dGV4dGFyZWFcbiAgICAgICAgZGVmYXVsdFZhbHVlPXtuZXdWZXJzZVRleHQgfHwgaW5pdGlhbFZlcnNlVGV4dH1cbiAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgIHN0eWxlPXt0ZXh0QXJlYVN0eWxlfVxuICAgICAgICBhdXRvRm9jdXNcbiAgICAgIC8+XG4gICAgfVxuXG4gICAgaWYgKG5vV29yZHMgJiYgZW5hYmxlRWRpdCkgeyAvLyBzaG93IGEgY2xpY2thYmxlIG1lc3NhZ2UgaW4gdGhlIGNhc2UgdGhhdCB0aGVyZSBpcyBubyB0ZXh0IHRvIGNsaWNrIG9uXG4gICAgICByZXR1cm4gPEVtcHR5Q29udGVudD5cbiAgICAgICAgQ2xpY2sgdG8gRWRpdFxuICAgICAgPC9FbXB0eUNvbnRlbnQ+XG4gICAgfVxuXG4gICAgcmV0dXJuIDxWZXJzZU9iamVjdHNcbiAgICAgIHZlcnNlS2V5PXtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YH1cbiAgICAgIHZlcnNlT2JqZWN0cz17dmVyc2VPYmplY3RzfVxuICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJ9XG4gICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAvPlxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgcGFkZGluZ0JvdHRvbTogJzAuNWVtJyB9fT5cbiAgICAgIHtyZXNvdXJjZU1lc3NhZ2UgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1lc3NhZ2V9IDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOlxuICAgICAgICA8Q29udGVudD5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17cmVmU3R5bGV9PiB7Y2hhcHRlcn06e3ZlcnNlfSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17Y29udGVudFN0eWxlfSBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRFZGl0aW5nICYmIHNldEVkaXRpbmcodHJ1ZSlcbiAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt2ZXJzZUNvbnRlbnQoZWRpdGluZywgZW5hYmxlRWRpdCwgbm9Xb3JkcywgcHJvY2Vzc2luZ0VkaXQpfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Db250ZW50PlxuICAgICAgfVxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cblNjcmlwdHVyZVBhbmUuZGVmYXVsdFByb3BzID0geyB2ZXJzZU9iamVjdHM6IFtdIH1cblxuZXhwb3J0IGRlZmF1bHQgU2NyaXB0dXJlUGFuZVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBQzlCLE9BQU9DLG9CQUFvQixNQUFNLHlCQUF5QjtBQUMxRCxTQUFTQyxZQUFZLFFBQVEseUJBQXlCO0FBQ3RELFNBQVNDLHlCQUF5QixRQUFRLGtCQUFrQjtBQUM1RCxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFDeEQsU0FBU0MsZUFBZSxFQUFFQyxzQkFBc0IsUUFBUSxhQUFhO0FBQ3JFLFNBQ0VDLEtBQUssRUFDTEMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixRQUNoQixhQUFhO0FBQ3BCLFNBQVNDLDJCQUEyQixFQUFFQyx5QkFBeUIsUUFBUSx1Q0FBdUM7QUFDOUcsU0FDRUMsU0FBUyxFQUNUQyxPQUFPLEVBQ1BDLFlBQVksUUFDUCxVQUFVO0FBbURqQixJQUFNQyxZQUFZLEdBQUc7RUFDbkJDLFNBQVMsRUFBRSxLQUFLO0VBQ2hCQyxVQUFVLEVBQUUsVUFBVTtFQUN0QkMsVUFBVSxFQUFFLFFBQVE7RUFDcEJDLE9BQU8sRUFBRSxNQUFNO0VBQ2ZDLGNBQWMsRUFBRSxRQUFRO0VBQ3hCQyxVQUFVLEVBQUUsUUFBUTtFQUNwQkMsTUFBTSxFQUFFLE1BQU07RUFDZEMsS0FBSyxFQUFFLE1BQU07RUFDYkMsUUFB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
|
|
310
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZURlZXBDb21wYXJlRWZmZWN0IiwiVmVyc2VPYmplY3RzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsIkNpcmN1bGFyUHJvZ3Jlc3MiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiZGVsYXkiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJMT0FESU5HX1JFU09VUkNFIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIkNvbnRhaW5lciIsIkNvbnRlbnQiLCJFbXB0eUNvbnRlbnQiLCJNZXNzYWdlU3R5bGUiLCJkaXJlY3Rpb24iLCJ3aGl0ZVNwYWNlIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJoZWlnaHQiLCJ3aWR0aCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJUZXh0QXJlYVN0eWxlIiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJTY3JpcHR1cmVQYW5lIiwiX3JlZiIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZDMiLCJjdXJyZW50SW5kZXgiLCJjb250ZW50U3R5bGUiLCJkZXRlcm1pbmluZ0JyYW5jaCIsImRpc2FibGVXb3JkUG9wb3ZlciIsImdldExleGljb25EYXRhIiwiaXNOVCIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0RWRpdFZlcnNlIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJzZXJ2ZXIiLCJ0cmFuc2xhdGUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImRvaW5nQWxpZ25tZW50IiwibmV3VGV4dCIsInByb2Nlc3NpbmdFZGl0IiwiX1JlYWN0JHVzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiX29iamVjdFNwcmVhZCIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwiaW5pdGlhbFZlcnNlVGV4dCIsInNldEluaXRpYWxWZXJzZVRleHQiLCJyZXNvdXJjZU1lc3NhZ2UiLCJfcmVmMiIsImNoYXB0ZXIiLCJib29rSWQiLCJ2ZXJzZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkMiIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwiZW5hYmxlRWRpdCIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJuZXdWZXJzZVRleHQiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwibG9nIiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInZlcnNlT2JqZWN0cyIsIm9uQmx1ciIsImV2ZW50IiwiX2V2ZW50JHRhcmdldCIsInRhcmdldCIsInZhbHVlIiwidGhlbiIsIl9lZGl0aW5nIiwidmVyc2VSZWYiLCJjb25jYXQiLCJub1dvcmRzIiwidmVyc2VDb250ZW50IiwiY3JlYXRlRWxlbWVudCIsInNpemUiLCJkZWZhdWx0VmFsdWUiLCJzdHlsZSIsImF1dG9Gb2N1cyIsInZlcnNlS2V5IiwicGFkZGluZ0JvdHRvbSIsIm9uQ2xpY2siLCJkZWZhdWx0UHJvcHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9TY3JpcHR1cmVQYW5lL1NjcmlwdHVyZVBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgVmVyc2VPYmplY3RzIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgeyBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3MgfSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgeyBCb29rT2JqZWN0c1R5cGUsIFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7XG4gIGRlbGF5LFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIHZlcnNlT2JqZWN0c0hhdmVXb3Jkcyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMsIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0J1xuaW1wb3J0IHtcbiAgQ29udGFpbmVyLFxuICBDb250ZW50LFxuICBFbXB0eUNvbnRlbnQsXG59IGZyb20gJy4vc3R5bGVkJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgY29udGVudCAqKi9cbiAgY29udGVudFN0eWxlOiBhbnk7XG4gIC8vIGluZGV4IG51bWJlciBmb3IgdGhpcyBzY3JpcHR1cmUgcGFuZVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLy8gd2FpdGluZyB0byBkZXRlcm1pbmUgYnJhbmNoXG4gIGRldGVybWluaW5nQnJhbmNoOiBib29sZWFuLFxuICAvKiogbGFuZ3VhZ2UgZGlyZWN0aW9uIHRvIHVzZSAqKi9cbiAgZGlyZWN0aW9uOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogaWYgdHJ1ZSB0aGVuIGRvIG5vdCBkaXNwbGF5IGxleGljb24gcG9wb3ZlciBvbiBob3ZlciAqKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBib29sZWFufHVuZGVmaW5lZDtcbiAgLyoqIGZvbnQgc2l6ZSBmb3IgbWVzc2FnZXMgKi9cbiAgZm9udFNpemU6IG51bWJlcjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBGdW5jdGlvbjtcbiAgLyoqIHRydWUgaWYgYnJvd3NpbmcgTlQgKi9cbiAgaXNOVDogYm9vbGVhbjtcbiAgLyoqIHdoZXRoZXIgb3Igbm90IHRoaXMgY3VycmVudCB2ZXJzZSBoYXMgYmVlbiBzZWxlY3RlZCBmb3IgYWxpZ25tZW50ICovXG4gIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogYm9vbGVhbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHZlcnNlIGFsaWdubWVudCBoYXMgZmluaXNoZWQgKi9cbiAgb25BbGlnbm1lbnRGaW5pc2g6IEZ1bmN0aW9uO1xuICAvLyBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9va1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlO1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgcmVmZXJlbmNlICoqL1xuICByZWZTdHlsZTogYW55O1xuICAvKiogb2JqZWN0IHRoYXQgY29udGFpbnMgcmVzb3VyY2UgbG9hZGluZyBzdGF0dXMgb3IgZmV0Y2hpbmcgZXJyb3JzICovXG4gIHJlc291cmNlU3RhdHVzOiBvYmplY3R8dW5kZWZpbmVkO1xuICAvKiogcmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkICovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHRydWUgaWYgY3VycmVudGx5IHNhdmluZyB1cGRhdGVkIHRleHQgYW5kIGFsaWdubWVudHMgKi9cbiAgc2F2aW5nOiBib29sZWFuO1xuICAvLyBpbml0aWFsaXphdGlvbiBmb3IgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnOiBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMsXG4gIC8qKiBzZXJ2ZXIgKi9cbiAgc2VydmVyOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogY2FsbGJhY2sgdG8gZmxhZyB0aGF0IHdlIGFyZSBlZGl0aW5nICovXG4gIHNldEVkaXRWZXJzZTogRnVuY3Rpb247XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHVuc2F2ZWQgc3RhdHVzICovXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb247XG4gIC8vIGNhbGxiYWNrIGZvciBjaGFuZ2UgaW4gd29yZCBhbGlnbm1lbnQgc3RhdHVzXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byB1cGRhdGUgdmVyc2UgYWxpZ25tZW50IHN0YXR1cyAqL1xuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5jb25zdCBUZXh0QXJlYVN0eWxlID0ge1xuICBoZWlnaHQ6ICc2MCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBtaW5XaWR0aDogJzIyMHB4JyxcbiAgbWluSGVpZ2h0OiAnMTAwcHgnLFxuICBmb250U2l6ZTogJzE2cHgnLFxufVxuXG5mdW5jdGlvbiBTY3JpcHR1cmVQYW5lKHtcbiAgY3VycmVudEluZGV4LFxuICBjb250ZW50U3R5bGUsXG4gIGRldGVybWluaW5nQnJhbmNoLFxuICBkaXJlY3Rpb24sXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICBpc05ULFxuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gIG9uQWxpZ25tZW50RmluaXNoLFxuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICByZXNvdXJjZVN0YXR1cyxcbiAgcmVzb3VyY2VMaW5rLFxuICBzYXZpbmcsXG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gIHNldEVkaXRWZXJzZSxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgc2VydmVyLFxuICB0cmFuc2xhdGUsXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlLFxuICAgIG5ld1RleHQ6IG51bGwsXG4gICAgcHJvY2Vzc2luZ0VkaXQ6IGZhbHNlLFxuICB9KVxuICBjb25zdCB7XG4gICAgZG9pbmdBbGlnbm1lbnQsXG4gICAgbmV3VGV4dCxcbiAgICBwcm9jZXNzaW5nRWRpdCwgLy8gdHJ1ZSB3aGVuIHdlIGFyZSBwcm9jZXNzaW5nIGVkaXQgdGV4dCBhZnRlciBvbkJsdXJcbiAgfSA9IHN0YXRlXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuXG4gIGxldCByZXNvdXJjZU1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnU2F2aW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSBpZiAoZGV0ZXJtaW5pbmdCcmFuY2gpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnUHJlLScgKyBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIGJvb2tJZCxcbiAgICB2ZXJzZSxcbiAgfSA9IHJlZmVyZW5jZSB8fCB7fVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdChfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZylcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIGVuYWJsZUVkaXQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgIH0sXG4gIH0gPSBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIG1vbml0b3IgaWYgd2UgbmVlZCB0byBzdGFydCBhbGlnbm1lbnRcbiAgICBpZiAoaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ICYmICFhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHsgLy8gY2hlY2sgaWYgZWRpdCBmb3IgdGhpcyB2ZXJzZSBpcyBzZWxlY3RlZCBhbmQgbm90IGFscmVhZHkgZG9pbmcgYWxpZ25tZW50XG4gICAgICBpZiAoIWVkaXRpbmcgJiYgIXByb2Nlc3NpbmdFZGl0KSB7IC8vIG1ha2Ugc3VyZSBub3Qgc3RpbGwgZWRpdGluZyBvciBwcm9jZXNzaW5nIGVkaXRcbiAgICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSB2ZXJzZSBzZWxlY3RlZCBmb3IgYWxpZ25tZW50YCwgcmVmZXJlbmNlKVxuICAgICAgICBoYW5kbGVBbGlnbm1lbnRDbGljaygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIHN0aWxsIGVkaXRpbmcgdmVyc2UsIG5vdCByZWFkeSBmb3IgYWxpZ25tZW50YCwge2VkaXRpbmcsIHByb2Nlc3NpbmdFZGl0fSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudCwgZWRpdGluZywgcHJvY2Vzc2luZ0VkaXRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzICYmIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyhyZWZlcmVuY2UsIGFsaWduZWQpXG4gIH0sIFthbGlnbmVkLCBjaGFwdGVyLCB2ZXJzZSwgYm9va0lkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogdHJ1ZSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gYWxpZ25lckRhdGEgd2VudCBmYWxzZSB1bmV4cGVjdGVkYCwgeyByZWZlcmVuY2UsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudCB9KVxuICAgICAgfVxuXG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlIH0pXG4gICAgICBvbkFsaWdubWVudEZpbmlzaCAmJiBvbkFsaWdubWVudEZpbmlzaCgpXG4gICAgfVxuICB9LCBbX3NjcmlwdHVyZUFsaWdubWVudEVkaXQ/LnN0YXRlPy5hbGlnbmVyRGF0YV0pXG5cbiAgLy8gZHluYW1pY2FsbHkgYWRqdXN0IGZvbnQgc2l6ZVxuICBjb25zdCBjYWxjdWxhdGVkRm9udFNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IChcbiAgICBwYXJzZUZsb2F0KFRleHRBcmVhU3R5bGUuZm9udFNpemUpICogZm9udFNpemUgLyAxMDAgKyAncHgnXG4gICksIFtmb250U2l6ZV0pXG5cbiAgY29uc3QgdGV4dEFyZWFTdHlsZSA9IHtcbiAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgLi4uVGV4dEFyZWFTdHlsZSxcbiAgICBmb250U2l6ZTogY2FsY3VsYXRlZEZvbnRTaXplLFxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgIGNsZWFyQ2hhbmdlcygpXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBudWxsIH0pXG4gIH0sIFt7IHJlZmVyZW5jZSwgaW5pdGlhbFZlcnNlT2JqZWN0cyB9XSlcblxuICAvKipcbiAgICogd2hlbiBmb2N1cyBpcyBjaGFuZ2VkIGZyb20gdGV4dCBlZGl0aW5nLCBnZXQgZmluYWwgdGV4dCBhbmQgZG8gcHJvY2Vzc2luZyBvZiBmaW5hbCB0ZXh0XG4gICAqIEBwYXJhbSB7UmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD59IGV2ZW50IC0gRE9NIGV2ZW50IGluZm9cbiAgICovXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdWZXJzZVRleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZSAvLyBnZXQgbmV3IHRleHRcbiAgICBzZXRTdGF0ZSh7IG5ld1RleHQ6IG5ld1ZlcnNlVGV4dCwgcHJvY2Vzc2luZ0VkaXQ6IHRydWUgfSkgLy8gc2hvdyBzcGlubmVyIHdoaWxlIHByb2Nlc3NpbmcgZWRpdCB0ZXh0XG4gICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHsgLy8gYWxsb3cgc3RhdGUgdG8gdXBkYXRlIGJlZm9yZSBwcm9jZXNzaW5nIG5ldyB0ZXh0XG4gICAgICBzZXRFZGl0aW5nKGZhbHNlLCBuZXdWZXJzZVRleHQpLnRoZW4oKCkgPT4geyAvLyBwcm9jZXNzIHRoZSBsYXRlc3QgZWRpdCB0ZXh0XG4gICAgICAgIHNldFN0YXRlKHtwcm9jZXNzaW5nRWRpdDogZmFsc2V9KSAvLyBub3cgZG9uZSwgcmVtb3ZlIHNwaW5uZXJcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIG1vbml0b3IgZm9yIGVkaXQgc3RhdGUgY2hhbmdlcyBhbmQgY2FsbCBiYWNrIHRvIHNjcmlwdHVyZSBjYXJkIHdpdGggZWRpdCBzdGF0dXNcbiAgICBjb25zdCBfZWRpdGluZyA9IGVkaXRpbmcgfHwgcHJvY2Vzc2luZ0VkaXRcbiAgICBjb25zdCB2ZXJzZVJlZiA9IGAke3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXG4gICAgc2V0RWRpdFZlcnNlICYmIHNldEVkaXRWZXJzZSh2ZXJzZVJlZiwgX2VkaXRpbmcpXG4gIH0sIFtlZGl0aW5nLCBwcm9jZXNzaW5nRWRpdF0pXG5cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gY3VycmVudFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzIHx8IFtdXG4gIGNvbnN0IG5vV29yZHMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICF2ZXJzZU9iamVjdHNIYXZlV29yZHModmVyc2VPYmplY3RzKSwgW2N1cnJlbnRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHNdKVxuXG4gIC8qKlxuICAgKiBkZXRlcm1pbmUgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHN0YXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZyAtIGlmIHRydWUgc2hvdyBlZGl0IG1vZGVcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVFZGl0IC0gaWYgdHJ1ZSB0aGVuIGVkaXQgaXMgZW5hYmxlZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vV29yZHMgLSBpZiB0cnVlIHRoZW4gdGhlcmUgYXJlIG5vIGRpc3BsYXlhYmxlIHdvcmRzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2Vzc2luZ0VkaXQgLSBpZiB0cnVlIHRoZW4gZWRpdCBpcyBiZWluZyBwcm9jZXNzZWRcbiAgICovXG4gIGZ1bmN0aW9uIHZlcnNlQ29udGVudChlZGl0aW5nLCBlbmFibGVFZGl0LCBub1dvcmRzLCBwcm9jZXNzaW5nRWRpdCkge1xuICAgIGlmIChwcm9jZXNzaW5nRWRpdCkgeyAvLyBwdXQgdXAgc3Bpbm5lciB3aGlsZSBwcm9jZXNzaW5nIHRoZSBlZGl0XG4gICAgICByZXR1cm4gPENpcmN1bGFyUHJvZ3Jlc3Mgc2l6ZT17NDB9Lz5cbiAgICB9XG5cbiAgICBpZiAoZWRpdGluZykge1xuICAgICAgcmV0dXJuIDx0ZXh0YXJlYVxuICAgICAgICBkZWZhdWx0VmFsdWU9e25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0fVxuICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgc3R5bGU9e3RleHRBcmVhU3R5bGV9XG4gICAgICAgIGF1dG9Gb2N1c1xuICAgICAgLz5cbiAgICB9XG5cbiAgICBpZiAobm9Xb3JkcyAmJiBlbmFibGVFZGl0KSB7IC8vIHNob3cgYSBjbGlja2FibGUgbWVzc2FnZSBpbiB0aGUgY2FzZSB0aGF0IHRoZXJlIGlzIG5vIHRleHQgdG8gY2xpY2sgb25cbiAgICAgIHJldHVybiA8RW1wdHlDb250ZW50PlxuICAgICAgICBDbGljayB0byBFZGl0XG4gICAgICA8L0VtcHR5Q29udGVudD5cbiAgICB9XG5cbiAgICByZXR1cm4gPFZlcnNlT2JqZWN0c1xuICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgdmVyc2VPYmplY3RzPXt2ZXJzZU9iamVjdHN9XG4gICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcn1cbiAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgIC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgc3R5bGU9e3sgZGlyZWN0aW9uLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nQm90dG9tOiAnMC41ZW0nIH19PlxuICAgICAge3Jlc291cmNlTWVzc2FnZSA/XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgPGRpdiBzdHlsZT17TWVzc2FnZVN0eWxlfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiBgJHtmb250U2l6ZX0lYCB9fT4ge3Jlc291cmNlTWVzc2FnZX0gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ZlcnNlQ29udGVudChlZGl0aW5nLCBlbmFibGVFZGl0LCBub1dvcmRzLCBwcm9jZXNzaW5nRWRpdCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L0NvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9Db250YWluZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlUGFuZS5kZWZhdWx0UHJvcHMgPSB7IHZlcnNlT2JqZWN0czogW10gfVxuXG5leHBvcnQgZGVmYXVsdCBTY3JpcHR1cmVQYW5lXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsT0FBT0Msb0JBQW9CLE1BQU0seUJBQXlCO0FBQzFELFNBQVNDLFlBQVksUUFBUSx5QkFBeUI7QUFDdEQsU0FBU0MseUJBQXlCLFFBQVEsa0JBQWtCO0FBQzVELFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUN4RCxTQUFTQyxlQUFlLEVBQUVDLHNCQUFzQixRQUFRLGFBQWE7QUFDckUsU0FDRUMsS0FBSyxFQUNMQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMscUJBQXFCLFFBQ2hCLGFBQWE7QUFDcEIsU0FBU0MsMkJBQTJCLEVBQUVDLHlCQUF5QixRQUFRLHVDQUF1QztBQUM5RyxTQUNFQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUEMsWUFBWSxRQUNQLFVBQVU7QUFtRGpCLElBQU1DLFlBQVksR0FBRztFQUNuQkMsU0FBUyxFQUFFLEtBQUs7RUFDaEJDLFVBQVUsRUFBRSxVQUFVO0VBQ3RCQyxVQUFVLEVBQUUsUUFBUTtFQUNwQkMsT0FBTyxFQUFFLE1BQU07RUFDZkMsY0FBYyxFQUFFLFFBQVE7RUFDeEJDLFVBQVUsRUFBRSxRQUFRO0VBQ3BCQyxN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
|