single-scripture-rcl 3.3.7 → 3.3.8-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.
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import "core-js/modules/es.array.concat.js";
|
|
2
|
+
import "core-js/modules/es.array.every.js";
|
|
2
3
|
import "core-js/modules/es.array.find-index.js";
|
|
3
4
|
import "core-js/modules/es.array.includes.js";
|
|
4
5
|
import "core-js/modules/es.array.is-array.js";
|
|
5
6
|
import "core-js/modules/es.array.join.js";
|
|
6
7
|
import "core-js/modules/es.array.map.js";
|
|
7
8
|
import "core-js/modules/es.object.keys.js";
|
|
9
|
+
import "core-js/modules/es.object.values.js";
|
|
8
10
|
import "core-js/modules/es.parse-int.js";
|
|
9
11
|
import "core-js/modules/es.regexp.exec.js";
|
|
10
12
|
import "core-js/modules/es.string.includes.js";
|
|
@@ -53,6 +55,7 @@ import { useEdit } from 'gitea-react-toolkit';
|
|
|
53
55
|
import { MdUpdate, MdUpdateDisabled } from 'react-icons/md';
|
|
54
56
|
import { FiShare } from 'react-icons/fi';
|
|
55
57
|
import { IconButton } from '@mui/material';
|
|
58
|
+
import { RxLink2, RxLinkBreak2 } from 'react-icons/rx';
|
|
56
59
|
import { Card, useCardState, useUserBranch, ERROR_STATE, MANIFEST_NOT_LOADED_ERROR } from 'translation-helps-rcl';
|
|
57
60
|
import { AlignmentHelpers, UsfmFileConversionHelpers } from 'word-aligner-rcl';
|
|
58
61
|
import * as isEqual from 'deep-equal';
|
|
@@ -61,6 +64,7 @@ import { useScriptureSettings } from '../../hooks/useScriptureSettings';
|
|
|
61
64
|
import { getResourceLink, getResourceMessage, getScriptureVersionSettings, isOriginalBible } from '../../utils/ScriptureSettings';
|
|
62
65
|
import { Title } from '../ScripturePane/styled';
|
|
63
66
|
import { NT_ORIG_LANG, ORIGINAL_SOURCE, OT_ORIG_LANG } from '../../utils';
|
|
67
|
+
import { VerseSelectorPopup } from '../VerseSelectorPopup';
|
|
64
68
|
var KEY_FONT_SIZE_BASE = 'scripturePaneFontSize_';
|
|
65
69
|
var label = 'Version';
|
|
66
70
|
var style = {
|
|
@@ -116,7 +120,10 @@ export default function ScriptureCard(_ref) {
|
|
|
116
120
|
urlError: null,
|
|
117
121
|
usingUserBranch: false,
|
|
118
122
|
unsavedChangesList: {},
|
|
119
|
-
versesForRef: null
|
|
123
|
+
versesForRef: null,
|
|
124
|
+
showAlignmentPopup: false,
|
|
125
|
+
verseSelectedForAlignment: null,
|
|
126
|
+
versesAlignmentStatus: null
|
|
120
127
|
}),
|
|
121
128
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
122
129
|
state = _React$useState2[0],
|
|
@@ -131,7 +138,10 @@ export default function ScriptureCard(_ref) {
|
|
|
131
138
|
usingUserBranch = state.usingUserBranch,
|
|
132
139
|
unsavedChangesList = state.unsavedChangesList,
|
|
133
140
|
haveUnsavedChanges = state.haveUnsavedChanges,
|
|
134
|
-
versesForRef = state.versesForRef
|
|
141
|
+
versesForRef = state.versesForRef,
|
|
142
|
+
showAlignmentPopup = state.showAlignmentPopup,
|
|
143
|
+
verseSelectedForAlignment = state.verseSelectedForAlignment,
|
|
144
|
+
versesAlignmentStatus = state.versesAlignmentStatus;
|
|
135
145
|
|
|
136
146
|
var _useUserLocalStorage = useUserLocalStorage(KEY_FONT_SIZE_BASE + cardNum, 100),
|
|
137
147
|
_useUserLocalStorage2 = _slicedToArray(_useUserLocalStorage, 2),
|
|
@@ -793,6 +803,11 @@ export default function ScriptureCard(_ref) {
|
|
|
793
803
|
}
|
|
794
804
|
}
|
|
795
805
|
}, [scriptureConfig === null || scriptureConfig === void 0 ? void 0 : scriptureConfig.versesForRef]);
|
|
806
|
+
React.useEffect(function () {
|
|
807
|
+
setState({
|
|
808
|
+
versesAlignmentStatus: null
|
|
809
|
+
});
|
|
810
|
+
}, [verse]);
|
|
796
811
|
var needToMergeFromMaster = mergeFromMaster === null || mergeFromMaster === void 0 ? void 0 : mergeFromMaster.mergeNeeded;
|
|
797
812
|
var mergeFromMasterHasConflicts = mergeFromMaster === null || mergeFromMaster === void 0 ? void 0 : mergeFromMaster.conflict;
|
|
798
813
|
var mergeToMasterHasConflicts = mergeToMaster === null || mergeToMaster === void 0 ? void 0 : mergeToMaster.conflict; // eslint-disable-next-line no-nested-ternary
|
|
@@ -802,6 +817,15 @@ export default function ScriptureCard(_ref) {
|
|
|
802
817
|
var mergeFromMasterColor = mergeFromMasterHasConflicts ? 'black' : needToMergeFromMaster ? 'black' : 'lightgray';
|
|
803
818
|
var mergeToMasterTitle = mergeToMasterHasConflicts ? 'Merge Conflicts for share with master' : 'No merge conflicts for share with master';
|
|
804
819
|
var mergeToMasterColor = mergeToMasterHasConflicts ? 'black' : 'black';
|
|
820
|
+
|
|
821
|
+
var updateVersesAlignmentStatus = function updateVersesAlignmentStatus(reference, aligned) {
|
|
822
|
+
setState_(function (prevState) {
|
|
823
|
+
return _objectSpread(_objectSpread({}, prevState), {}, {
|
|
824
|
+
versesAlignmentStatus: _objectSpread(_objectSpread({}, prevState.versesAlignmentStatus), {}, _defineProperty({}, "".concat(reference.chapter, ":").concat(reference.verse), aligned))
|
|
825
|
+
});
|
|
826
|
+
});
|
|
827
|
+
};
|
|
828
|
+
|
|
805
829
|
var renderedScripturePanes = versesForRef === null || versesForRef === void 0 ? void 0 : versesForRef.map(function (_currentVerseData, index) {
|
|
806
830
|
var _currentVerseData$ver;
|
|
807
831
|
|
|
@@ -822,6 +846,12 @@ export default function ScriptureCard(_ref) {
|
|
|
822
846
|
reference: _reference
|
|
823
847
|
});
|
|
824
848
|
|
|
849
|
+
var isVerseSelectedForAlignment = false;
|
|
850
|
+
|
|
851
|
+
if (verseSelectedForAlignment) {
|
|
852
|
+
isVerseSelectedForAlignment = verseSelectedForAlignment.chapter === chapter && verseSelectedForAlignment.verse === verse;
|
|
853
|
+
}
|
|
854
|
+
|
|
825
855
|
return /*#__PURE__*/React.createElement(ScripturePane, _extends({}, scriptureConfig, {
|
|
826
856
|
contentStyle: contentStyle,
|
|
827
857
|
currentIndex: index,
|
|
@@ -839,15 +869,72 @@ export default function ScriptureCard(_ref) {
|
|
|
839
869
|
setWordAlignerStatus: setWordAlignerStatus,
|
|
840
870
|
server: server,
|
|
841
871
|
translate: translate,
|
|
842
|
-
merging: merging
|
|
872
|
+
merging: merging,
|
|
873
|
+
isVerseSelectedForAlignment: isVerseSelectedForAlignment,
|
|
874
|
+
onAlignmentFinish: function onAlignmentFinish() {
|
|
875
|
+
return setState({
|
|
876
|
+
verseSelectedForAlignment: null
|
|
877
|
+
});
|
|
878
|
+
},
|
|
879
|
+
updateVersesAlignmentStatus: updateVersesAlignmentStatus
|
|
843
880
|
}));
|
|
844
881
|
});
|
|
882
|
+
var alignButtonText = 'Align Verse(s)'; // TODO: change button hover text if all verses are aligned
|
|
883
|
+
// const checkingState = aligned ? 'valid' : 'invalid'
|
|
884
|
+
// const alignButtonText = checkingState === 'valid' ? 'Alignment is Valid' : 'Alignment is Invalid'
|
|
885
|
+
|
|
886
|
+
var handleAlignButtonClick = function handleAlignButtonClick() {
|
|
887
|
+
if ((versesForRef === null || versesForRef === void 0 ? void 0 : versesForRef.length) > 1) {
|
|
888
|
+
setState({
|
|
889
|
+
showAlignmentPopup: true
|
|
890
|
+
});
|
|
891
|
+
} else if ((versesForRef === null || versesForRef === void 0 ? void 0 : versesForRef.length) === 1) {
|
|
892
|
+
setState({
|
|
893
|
+
verseSelectedForAlignment: versesForRef[0]
|
|
894
|
+
});
|
|
895
|
+
}
|
|
896
|
+
};
|
|
845
897
|
|
|
846
898
|
var onRenderToolbar = function onRenderToolbar(_ref8) {
|
|
847
899
|
var items = _ref8.items;
|
|
848
900
|
|
|
849
901
|
var newItems = _toConsumableArray(items);
|
|
850
902
|
|
|
903
|
+
var allVersesAligned = false; // Check if all values in versesAlignmentStatus are true
|
|
904
|
+
|
|
905
|
+
if (versesAlignmentStatus) {
|
|
906
|
+
allVersesAligned = Object.values(versesAlignmentStatus).every(function (alignStatus) {
|
|
907
|
+
return alignStatus === true;
|
|
908
|
+
});
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
var alignIcon = null;
|
|
912
|
+
|
|
913
|
+
if (allVersesAligned) {
|
|
914
|
+
alignIcon = /*#__PURE__*/React.createElement(RxLink2, {
|
|
915
|
+
id: "valid_icon_".concat(resourceId),
|
|
916
|
+
color: "#BBB"
|
|
917
|
+
});
|
|
918
|
+
} else {
|
|
919
|
+
alignIcon = /*#__PURE__*/React.createElement(RxLinkBreak2, {
|
|
920
|
+
id: "invalid_alignment_icon_".concat(resourceId),
|
|
921
|
+
color: "#000"
|
|
922
|
+
});
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
if (setWordAlignerStatus && resourceId !== 'ORIGINAL_SOURCE') {
|
|
926
|
+
newItems.push( /*#__PURE__*/React.createElement(IconButton, {
|
|
927
|
+
id: "alignment_icon_".concat(resourceId),
|
|
928
|
+
key: "checking-button",
|
|
929
|
+
onClick: handleAlignButtonClick,
|
|
930
|
+
title: alignButtonText,
|
|
931
|
+
"aria-label": alignButtonText,
|
|
932
|
+
style: {
|
|
933
|
+
cursor: 'pointer'
|
|
934
|
+
}
|
|
935
|
+
}, alignIcon));
|
|
936
|
+
}
|
|
937
|
+
|
|
851
938
|
if (mergeFromMaster) {
|
|
852
939
|
newItems.push( /*#__PURE__*/React.createElement(IconButton, {
|
|
853
940
|
className: classes.margin,
|
|
@@ -889,7 +976,7 @@ export default function ScriptureCard(_ref) {
|
|
|
889
976
|
return newItems;
|
|
890
977
|
};
|
|
891
978
|
|
|
892
|
-
return /*#__PURE__*/React.createElement(Card, {
|
|
979
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Card, {
|
|
893
980
|
id: "scripture_card_".concat(cardNum),
|
|
894
981
|
title: scriptureLabel,
|
|
895
982
|
settingsTitle: scriptureTitle + ' Settings',
|
|
@@ -920,7 +1007,23 @@ export default function ScriptureCard(_ref) {
|
|
|
920
1007
|
onRenderToolbar: onRenderToolbar
|
|
921
1008
|
}, /*#__PURE__*/React.createElement("div", {
|
|
922
1009
|
id: "scripture-pane-list"
|
|
923
|
-
}, renderedScripturePanes))
|
|
1010
|
+
}, renderedScripturePanes)), /*#__PURE__*/React.createElement(VerseSelectorPopup, {
|
|
1011
|
+
resourceId: resourceId,
|
|
1012
|
+
open: showAlignmentPopup,
|
|
1013
|
+
onClose: function onClose() {
|
|
1014
|
+
return setState({
|
|
1015
|
+
showAlignmentPopup: false
|
|
1016
|
+
});
|
|
1017
|
+
},
|
|
1018
|
+
versesForRef: versesForRef,
|
|
1019
|
+
versesAlignmentStatus: versesAlignmentStatus,
|
|
1020
|
+
onVerseSelect: function onVerseSelect(verse) {
|
|
1021
|
+
return setState({
|
|
1022
|
+
verseSelectedForAlignment: verse,
|
|
1023
|
+
showAlignmentPopup: false
|
|
1024
|
+
});
|
|
1025
|
+
}
|
|
1026
|
+
}));
|
|
924
1027
|
}
|
|
925
1028
|
ScriptureCard.propTypes = {
|
|
926
1029
|
/** html identifier to use for card */
|
|
@@ -1029,4 +1132,4 @@ ScriptureCard.propTypes = {
|
|
|
1029
1132
|
/**callback to update the card's merge state in app */
|
|
1030
1133
|
updateMergeState: PropTypes.func
|
|
1031
1134
|
};
|
|
1032
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwidXNmbWpzIiwidXNlRWRpdCIsIk1kVXBkYXRlIiwiTWRVcGRhdGVEaXNhYmxlZCIsIkZpU2hhcmUiLCJJY29uQnV0dG9uIiwiQ2FyZCIsInVzZUNhcmRTdGF0ZSIsInVzZVVzZXJCcmFuY2giLCJFUlJPUl9TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJBbGlnbm1lbnRIZWxwZXJzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsImlzRXF1YWwiLCJTY3JpcHR1cmVQYW5lIiwiU2NyaXB0dXJlU2VsZWN0b3IiLCJ1c2VTY3JpcHR1cmVTZXR0aW5ncyIsImdldFJlc291cmNlTGluayIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImlzT3JpZ2luYWxCaWJsZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiS0VZX0ZPTlRfU0laRV9CQVNFIiwibGFiZWwiLCJzdHlsZSIsIm1hcmdpblRvcCIsIndpZHRoIiwiU2NyaXB0dXJlQ2FyZCIsImlkIiwiaXNOVCIsInRpdGxlIiwic2VydmVyIiwiYXBwUmVmIiwiY2FyZE51bSIsImNsYXNzZXMiLCJyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJnZXRMYW5ndWFnZSIsInJlZmVyZW5jZSIsInZlcnNlIiwiY2hhcHRlciIsImJvb2tJZCIsInByb2plY3RJZCIsInJlc291cmNlTGluayIsInVzZVVzZXJMb2NhbFN0b3JhZ2UiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJvblJlc291cmNlRXJyb3IiLCJodHRwQ29uZmlnIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImdldExleGljb25EYXRhIiwiZmV0Y2hHbG9zc2VzRm9yVmVyc2UiLCJ0cmFuc2xhdGUiLCJvbk1pbmltaXplIiwibG9nZ2VkSW5Vc2VyIiwiYXV0aGVudGljYXRpb24iLCJzZXRTYXZlZENoYW5nZXMiLCJib29rSW5kZXgiLCJhZGRWZXJzZVJhbmdlIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJ1cGRhdGVNZXJnZVN0YXRlIiwidXNlU3RhdGUiLCJoYXZlVW5zYXZlZENoYW5nZXMiLCJyZWYiLCJzYXZlQ2xpY2tlZCIsInNhdmVDb250ZW50Iiwic2hhIiwic3RhcnRTYXZlIiwidXJsRXJyb3IiLCJ1c2luZ1VzZXJCcmFuY2giLCJ1bnNhdmVkQ2hhbmdlc0xpc3QiLCJ2ZXJzZXNGb3JSZWYiLCJzdGF0ZSIsInNldFN0YXRlXyIsImZvbnRTaXplIiwic2V0Rm9udFNpemUiLCJpc05UXyIsInNldFN0YXRlIiwibmV3U3RhdGUiLCJwcmV2U3RhdGUiLCJjYWNoZSIsIm1heEFnZSIsInNldFVybEVycm9yIiwiZXJyb3IiLCJ3aG9sZUJvb2siLCJpc05ld1Rlc3RhbWVudCIsInNjcmlwdHVyZUNvbmZpZyIsInNldFNjcmlwdHVyZSIsInNjcmlwdHVyZVNldHRpbmdzIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJmZXRjaFJlc3BfIiwiZmV0Y2hSZXNwb25zZSIsInJlcG8iLCJyZWZlcmVuY2VfIiwidXNlRWZmZWN0IiwiX3NoYSIsImRhdGEiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImNhcmRSZXNvdXJjZUlkIiwicmVmXyIsImNhblVzZUVkaXRCcmFuY2giLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJjYXJkSWQiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJ1c2luZ1VzZXJCcmFuY2hfIiwibWVyZ2VGcm9tTWFzdGVyIiwibWVyZ2VUb01hc3RlciIsIm1lcmdpbmciLCJhY3Rpb25zIiwic3RhcnRFZGl0QnJhbmNoIiwic3RhcnRFZGl0IiwibWVyZ2VGcm9tTWFzdGVySW50b1VzZXJCcmFuY2giLCJtZXJnZVRvTWFzdGVyRnJvbVVzZXJCcmFuY2giLCJ3b3JraW5nUmVmIiwic2NyaXB0dXJlVGl0bGUiLCJ3b3JraW5nUmVmXyIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImlzQWNjZXNzRXJyb3IiLCJ2ZXJzaW9uIiwidXBkYXRlVGl0bGUiLCJnZXRTY3JpcHR1cmVTZWxlY3RvciIsInNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyIsIm9uTWVudUNsb3NlIiwibGFuZ3VhZ2VJZF8iLCJsYW5ndWFnZSIsImRpcmVjdGlvbiIsImlzSGVicmV3IiwiZm9udEZhY3RvciIsInNjYWxlZEZvbnRTaXplIiwiaXRlbXMiLCJoZWFkZXJzIiwiZmlsdGVycyIsIml0ZW1JbmRleCIsIm1hcmtkb3duVmlldyIsInNldEZpbHRlcnMiLCJzZXRJdGVtSW5kZXgiLCJzZXRNYXJrZG93blZpZXciLCJyZWZTdHlsZSIsInVzZU1lbW8iLCJmb250RmFtaWx5IiwiTWF0aCIsInJvdW5kIiwiY29udGVudFN0eWxlIiwic2NyaXB0dXJlTGFiZWwiLCJkaXNhYmxlV29yZFBvcG92ZXJfIiwidXNpbmdPcmlnaW5hbEJpYmxlIiwidW5kZWZpbmVkIiwiZmV0Y2hHbG9zc0RhdGFGb3JWZXJzZSIsInZlcnNlT2JqZWN0cyIsInZlcnNlUmVmIiwiX3ZlcnNlT2JqZWN0cyIsInZlcnNlRGF0YSIsImNvbmNhdCIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJvcmlnaW5hbFJlcG9VcmwiLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiY3VycmVudFZlcnNlUmVmIiwiX3NldFNhdmVkQ2hhbmdlcyIsInNvdXJjZUxhbmd1YWdlIiwidGFyZ2V0TGFuZ3VhZ2UiLCJjdXJyZW50SW5kZXgiLCJzYXZlZCIsImdldENoYW5nZXMiLCJjbGVhckNoYW5nZXMiLCJfdW5zYXZlZENoYW5nZXNMaXN0IiwiaGFzT3duUHJvcGVydHkiLCJfaGF2ZVVuc2F2ZWRDaGFuZ2VzIiwiT2JqZWN0Iiwia2V5cyIsImZpbmRSZWZJbkFycmF5IiwiZmluZEl0ZW0iLCJjaHVua3MiLCJyZWZMZW4iLCJpbmRleCIsImZpbmRJbmRleCIsImNodW5rIiwiaWR4IiwibmV4dENoYXIiLCJnZXRCb29rTmFtZSIsImJvb2tDYXBzIiwidG9VcHBlckNhc2UiLCJmaWxlcGF0aCIsImNvbnRlbnQiLCJjb25maWciLCJ0b2tlbiIsInRpbWVvdXQiLCJzZXJ2ZXJUaW1lT3V0IiwiYXV0aG9yIiwiYnJhbmNoIiwib25TYXZlRWRpdCIsIl9zYXZlRWRpdCIsInRoZW4iLCJzdWNjZXNzIiwidW5zYXZlZENhcmRJbmRpY2VzIiwiY2FyZEluZGV4IiwiaW5mbyIsInJlbG9hZFJlc291cmNlIiwibWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtIiwiYmlibGVVc2ZtIiwidXBkYXRlZFZlcnNlT2JqZWN0cyIsIm5ld1VzZm0iLCJjaGFwdGVyQ2h1bmtzIiwic3BsaXQiLCJjaGFwdGVySW5kZXgiLCJjdXJyZW50Q2hhcHRlciIsInZlcnNlQ2h1bmtzIiwidmVyc2VJbmRleCIsIm5ld1ZlcnNlVXNmbSIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJvbGRWZXJzZSIsInZlcnNlTnVtTGVuIiwibmV3Q2hhcHRlciIsImpvaW4iLCJnZXRSZXNwb25zZURhdGEiLCJtZXJnZUZhaWwiLCJwYXJzZUludCIsIm5ld0Jvb2tKc29uIiwibmV3VmVyc2VUZXh0IiwidGFyZ2V0VmVyc2VPYmplY3RzXyIsInVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwidXBkYXRlVmVyc2UiLCJ0b1VTRk0iLCJmb3JjZWROZXdMaW5lcyIsIl92ZXJzZSIsImluY2x1ZGVzIiwibmVlZFRvTWVyZ2VGcm9tTWFzdGVyIiwibWVyZ2VOZWVkZWQiLCJtZXJnZUZyb21NYXN0ZXJIYXNDb25mbGljdHMiLCJjb25mbGljdCIsIm1lcmdlVG9NYXN0ZXJIYXNDb25mbGljdHMiLCJtZXJnZUZyb21NYXN0ZXJUaXRsZSIsIm1lcmdlRnJvbU1hc3RlckNvbG9yIiwibWVyZ2VUb01hc3RlclRpdGxlIiwibWVyZ2VUb01hc3RlckNvbG9yIiwicmVuZGVyZWRTY3JpcHR1cmVQYW5lcyIsIm1hcCIsIl9jdXJyZW50VmVyc2VEYXRhIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9yZWZlcmVuY2UiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsIm9uUmVuZGVyVG9vbGJhciIsIm5ld0l0ZW1zIiwicHVzaCIsIm1hcmdpbiIsImN1cnNvciIsInByb3BUeXBlcyIsInN0cmluZyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwibnVtYmVyIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJib29sIiwib2JqZWN0IiwiYW55Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU8sS0FBS0MsU0FBWixNQUEyQixZQUEzQjtBQUNBLFNBQVNDLElBQVQsUUFBcUIseUJBQXJCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixTQUFuQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IscUJBQXhCO0FBQ0EsU0FBU0MsUUFBVCxFQUFtQkMsZ0JBQW5CLFFBQTJDLGdCQUEzQztBQUNBLFNBQVNDLE9BQVQsUUFBd0IsZ0JBQXhCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixlQUEzQjtBQUNBLFNBQ0VDLElBREYsRUFFRUMsWUFGRixFQUdFQyxhQUhGLEVBSUVDLFdBSkYsRUFLRUMseUJBTEYsUUFNTyx1QkFOUDtBQU9BLFNBQVNDLGdCQUFULEVBQTJCQyx5QkFBM0IsUUFBNEQsa0JBQTVEO0FBQ0EsT0FBTyxLQUFLQyxPQUFaLE1BQXlCLFlBQXpCO0FBQ0EsU0FBU0MsYUFBVCxFQUF3QkMsaUJBQXhCLFFBQWlELElBQWpEO0FBQ0EsU0FBU0Msb0JBQVQsUUFBcUMsa0NBQXJDO0FBQ0EsU0FDRUMsZUFERixFQUVFQyxrQkFGRixFQUdFQywyQkFI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RCxTQUFTLENBQUNzUSxJQTFERzs7QUEyRHhCO0FBQ0F6TSxFQUFBQSxVQUFVLEVBQUU3RCxTQUFTLENBQUNzUSxJQTVERTs7QUE2RHhCO0FBQ0F4TSxFQUFBQSxZQUFZLEVBQUU5RCxTQUFTLENBQUNxUSxNQTlEQTs7QUErRHhCO0FBQ0F0TSxFQUFBQSxjQUFjLEVBQUUvRCxTQUFTLENBQUM0USxNQWhFRjs7QUFpRXhCO0FBQ0E1TSxFQUFBQSxlQUFlLEVBQUVoRSxTQUFTLENBQUNzUSxJQWxFSDs7QUFtRXhCO0FBQ0FyTSxFQUFBQSxTQUFTLEVBQUVqRSxTQUFTLENBQUNxUSxNQXBFRzs7QUFxRXhCO0FBQ0FuTSxFQUFBQSxhQUFhLEVBQUVsRSxTQUFTLENBQUNzUSxJQXRFRDs7QUF1RXhCO0FBQ0FuTSxFQUFBQSxvQkFBb0IsRUFBRW5FLFNBQVMsQ0FBQ3NRLElBeEVSOztBQXlFeEI7QUFDQWxNLEVBQUFBLGdCQUFnQixFQUFFcEUsU0FBUyxDQUFDc1E7QUExRUosQ0FBMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQgeyBNZFVwZGF0ZSwgTWRVcGRhdGVEaXNhYmxlZCB9IGZyb20gJ3JlYWN0LWljb25zL21kJ1xuaW1wb3J0IHsgRmlTaGFyZSB9IGZyb20gJ3JlYWN0LWljb25zL2ZpJ1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnXG5pbXBvcnQge1xuICBDYXJkLFxuICB1c2VDYXJkU3RhdGUsXG4gIHVzZVVzZXJCcmFuY2gsXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgeyBBbGlnbm1lbnRIZWxwZXJzLCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCAqIGFzIGlzRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnLi4vU2NyaXB0dXJlUGFuZS9zdHlsZWQnXG5pbXBvcnQge1xuICBOVF9PUklHX0xBTkcsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxufSBmcm9tICcuLi8uLi91dGlscydcblxuY29uc3QgS0VZX0ZPTlRfU0laRV9CQVNFID0gJ3NjcmlwdHVyZVBhbmVGb250U2l6ZV8nXG5jb25zdCBsYWJlbCA9ICdWZXJzaW9uJ1xuY29uc3Qgc3R5bGUgPSB7IG1hcmdpblRvcDogJzE2cHgnLCB3aWR0aDogJzUwMHB4JyB9XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjcmlwdHVyZUNhcmQoe1xuICBpZCxcbiAgaXNOVCxcbiAgdGl0bGUsXG4gIHNlcnZlcixcbiAgYXBwUmVmLFxuICBjYXJkTnVtLFxuICBjbGFzc2VzLFxuICByZXNvdXJjZToge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIH0sXG4gIGdldExhbmd1YWdlLFxuICByZWZlcmVuY2U6IHtcbiAgICB2ZXJzZSxcbiAgICBjaGFwdGVyLFxuICAgIHByb2plY3RJZDogYm9va0lkLFxuICB9LFxuICByZXNvdXJjZUxpbmssXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgb25SZXNvdXJjZUVycm9yLFxuICBodHRwQ29uZmlnLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG4gIGdldExleGljb25EYXRhLFxuICBmZXRjaEdsb3NzZXNGb3JWZXJzZSxcbiAgdHJhbnNsYXRlLFxuICBvbk1pbmltaXplLFxuICBsb2dnZWRJblVzZXIsXG4gIGF1dGhlbnRpY2F0aW9uLFxuICBzZXRTYXZlZENoYW5nZXMsXG4gIGJvb2tJbmRleCxcbiAgYWRkVmVyc2VSYW5nZSxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG4gIHVwZGF0ZU1lcmdlU3RhdGUsXG59KSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBoYXZlVW5zYXZlZENoYW5nZXM6IGZhbHNlLFxuICAgIHJlZjogYXBwUmVmLFxuICAgIHNhdmVDbGlja2VkOiBmYWxzZSxcbiAgICBzYXZlQ29udGVudDogbnVsbCxcbiAgICBzaGE6IG51bGwsXG4gICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICB1cmxFcnJvcjogbnVsbCxcbiAgICB1c2luZ1VzZXJCcmFuY2g6IGZhbHNlLFxuICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdDoge30sXG4gICAgdmVyc2VzRm9yUmVmOiBudWxsLFxuICB9KVxuICBjb25zdCB7XG4gICAgcmVmLFxuICAgIHNhdmVDbGlja2VkLFxuICAgIHNhdmVDb250ZW50LFxuICAgIHNoYSxcbiAgICBzdGFydFNhdmUsXG4gICAgdXJsRXJyb3IsXG4gICAgdXNpbmdVc2VyQnJhbmNoLFxuICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdCxcbiAgICBoYXZlVW5zYXZlZENoYW5nZXMsXG4gICAgdmVyc2VzRm9yUmVmLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBbZm9udFNpemUsIHNldEZvbnRTaXplXSA9IHVzZVVzZXJMb2NhbFN0b3JhZ2UoS0VZX0ZPTlRfU0laRV9CQVNFICsgY2FyZE51bSwgMTAwKVxuICBjb25zdCBpc05UXyA9IGlzTlQoYm9va0lkKVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgaWYgKHVzaW5nVXNlckJyYW5jaCkge1xuICAgIGh0dHBDb25maWcgPSB7IC4uLmh0dHBDb25maWcsIGNhY2hlOiB7IG1heEFnZTogMCB9IH0gLy8gZGlzYWJsZSBodHRwIGNhY2hpbmdcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBzY3JpcHR1cmVDb25maWcsXG4gICAgc2V0U2NyaXB0dXJlLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICB9ID0gdXNlU2NyaXB0dXJlU2V0dGluZ3Moe1xuICAgIGlzTlQsXG4gICAgdGl0bGUsXG4gICAgdmVyc2UsXG4gICAgb3duZXIsXG4gICAgYm9va0lkLFxuICAgIGFwcFJlZjogcmVmLFxuICAgIHNlcnZlcixcbiAgICBjYXJkTnVtLFxuICAgIGNoYXB0ZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlc291cmNlTGluayxcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgc2V0VXJsRXJyb3I6IChlcnJvcikgPT4gc2V0U3RhdGUoeyB1cmxFcnJvcjogZXJyb3IgfSksXG4gICAgaHR0cENvbmZpZyxcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hSZXNwXyA9IHNjcmlwdHVyZUNvbmZpZz8uZmV0Y2hSZXNwb25zZVxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IHJlcG8gPSBgJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkfV8ke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZH1gXG4gIGNvbnN0IHJlZmVyZW5jZV8gPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZSB8fCBudWxsXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZ2V0IHRoZSBfc2hhIGZyb20gbGFzdCBzY3JpcHR1cmUgZG93bmxvYWRcbiAgICBjb25zdCBfc2hhID0gZmV0Y2hSZXNwXz8uZGF0YT8uc2hhIHx8IG51bGxcbiAgICBjb25zb2xlLmxvZyhgZm9yICR7SlNPTi5zdHJpbmdpZnkocmVmZXJlbmNlXyl9IG5ldyBzaGEgaXMgJHtfc2hhfWApXG5cbiAgICBpZiAoX3NoYSAhPT0gc2hhKSB7XG4gICAgICBzZXRTdGF0ZSh7IHNoYTogX3NoYSB9KVxuICAgIH1cbiAgfSwgW2ZldGNoUmVzcF9dKVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY2FyZFJlc291cmNlSWQgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWQgfHwgcmVzb3VyY2VJZFxuICAvLyBAdHMtaWdub3JlXG4gIGxldCByZWZfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucmVmIHx8IGFwcFJlZlxuICBjb25zdCBjYW5Vc2VFZGl0QnJhbmNoID0gbG9nZ2VkSW5Vc2VyICYmIGF1dGhlbnRpY2F0aW9uICYmXG4gICAgKHJlc291cmNlSWQgIT09IE9SSUdJTkFMX1NPVVJDRSkgJiZcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5zdWJzdHJpbmcoMCwgbG9nZ2VkSW5Vc2VyLmxlbmd0aCkgPT09IGxvZ2dlZEluVXNlcikgKSAvLyBub3QgdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG4gICAgICB1c2luZ1VzZXJCcmFuY2g6IHVzaW5nVXNlckJyYW5jaF8sXG4gICAgICBtZXJnZUZyb21NYXN0ZXIsXG4gICAgICBtZXJnZVRvTWFzdGVyLFxuICAgICAgbWVyZ2luZyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHN0YXJ0RWRpdDogc3RhcnRFZGl0QnJhbmNoLFxuICAgICAgbWVyZ2VGcm9tTWFzdGVySW50b1VzZXJCcmFuY2gsXG4gICAgICBtZXJnZVRvTWFzdGVyRnJvbVVzZXJCcmFuY2gsXG4gICAgfSxcbiAgfSA9IHVzZVVzZXJCcmFuY2goe1xuICAgIG93bmVyLFxuICAgIHNlcnZlcixcbiAgICBhcHBSZWYsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgY2FyZFJlc291cmNlSWQsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIH0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2FyZFJlc291cmNlSWQpIHtcbiAgICAgIHVwZGF0ZU1lcmdlU3RhdGUgJiYgdXBkYXRlTWVyZ2VTdGF0ZShcbiAgICAgICAgY2FyZFJlc291cmNlSWQsXG4gICAgICAgIG1lcmdlRnJvbU1hc3RlcixcbiAgICAgICAgbWVyZ2VUb01hc3RlcixcbiAgICAgICAgbWVyZ2VGcm9tTWFzdGVySW50b1VzZXJCcmFuY2gsXG4gICAgICAgIG1lcmdlVG9NYXN0ZXJGcm9tVXNlckJyYW5jaCxcbiAgICAgIClcbiAgICB9XG4gIH0sW2NhcmRSZXNvdXJjZUlkLCBtZXJnZUZyb21NYXN0ZXIsIG1lcmdlVG9NYXN0ZXJdKVxuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGlmICh1c2luZ1VzZXJCcmFuY2hfICE9PSB1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICAgIHNldFN0YXRlKHsgdXNpbmdVc2VyQnJhbmNoOiB1c2luZ1VzZXJCcmFuY2hfIH0pXG4gICAgfVxuICB9LCBbdXNpbmdVc2VyQnJhbmNoXywgdXNpbmdVc2VyQnJhbmNoXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBzZWxlY3QgY29ycmVjdCB3b3JraW5nIHJlZiAtIGNvdWxkIGJlIG1hc3RlciwgdXNlciBicmFuY2gsIG9yIHJlbGVhc2VcbiAgICBsZXQgd29ya2luZ1JlZl8gPSB3b3JraW5nUmVmIHx8IGFwcFJlZlxuXG4gICAgaWYgKHJlZiAhPT0gd29ya2luZ1JlZl8pIHtcbiAgICAgIHNldFN0YXRlKHsgcmVmOiB3b3JraW5nUmVmXyB9KVxuICAgIH1cbiAgfSwgW3dvcmtpbmdSZWYsIHJlZiwgYXBwUmVmXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgZGlzcGxheSBzdGF0dXMgaWYgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1cblxuICAgIGlmIChlcnJvcikgeyAvLyBpZiBlcnJvciB3YXMgZm91bmQgZG8gY2FsbGJhY2tcbiAgICAgIGNvbnN0IHJlc291cmNlU3RhdHVzID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1c1xuICAgICAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZUNvbmZpZylcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UXylcbiAgICAgIGNvbnN0IGlzQWNjZXNzRXJyb3IgPSByZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihtZXNzYWdlLCBpc0FjY2Vzc0Vycm9yLCByZXNvdXJjZVN0YXR1cylcbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzPy5bRVJST1JfU1RBVEVdXSlcblxuICBpZiAoc2NyaXB0dXJlQ29uZmlnLnRpdGxlICYmIHNjcmlwdHVyZUNvbmZpZy52ZXJzaW9uKSB7XG4gICAgc2NyaXB0dXJlVGl0bGUgPSBgJHtzY3JpcHR1cmVDb25maWcudGl0bGV9IHYke3NjcmlwdHVyZUNvbmZpZy52ZXJzaW9ufWBcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC51cGRhdGVUaXRsZShzY3JpcHR1cmVDb25maWcucmVzb3VyY2VMaW5rLCBzY3JpcHR1cmVUaXRsZSlcbiAgfSBlbHNlIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGBUaXRsZSBtaXNzaW5nIGZyb20gcHJvamVjdCBtYW5pZmVzdGBcbiAgfVxuXG4gIC8qKiBEeW5hbWljYWxseSBjcmVhdGVzIHRoZSBzY3JpcHR1cmUgc2VsZWN0aW9uIGRyb3Bkb3duIHRvIGJlIGluc2VydGVkIGludG8gY2FyZCBzZXR0aW5ncyAqL1xuICBmdW5jdGlvbiBnZXRTY3JpcHR1cmVTZWxlY3RvcigpIHtcbiAgICBjb25zdCBzY3JpcHR1cmVTZWxlY3Rpb25Db25maWcgPSBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICAgICAgbGFiZWwsXG4gICAgICByZXNvdXJjZUxpbms6IHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssXG4gICAgICBzZXRTY3JpcHR1cmUsXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgICB9KVxuXG4gICAgcmV0dXJuIDxTY3JpcHR1cmVTZWxlY3RvciB7Li4uc2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnfSBzdHlsZT17c3R5bGV9IGVycm9yTWVzc2FnZT17dXJsRXJyb3J9IC8+XG4gIH1cblxuICBmdW5jdGlvbiBvbk1lbnVDbG9zZSgpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgb25NZW51Q2xvc2UoKWApXG4gICAgc2V0U3RhdGUoeyB1cmxFcnJvcjogbnVsbCB9KVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBsYW5ndWFnZUlkXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/Lmxhbmd1YWdlSWRcbiAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZSh7IGxhbmd1YWdlSWQ6IGxhbmd1YWdlSWRfIH0pXG4gIGNvbnN0IGRpcmVjdGlvbiA9IChsYW5ndWFnZT8uZGlyZWN0aW9uKSB8fCAnbHRyJ1xuICBjb25zdCByZWZlcmVuY2UgPSB7IC4uLnNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UgfVxuXG4gIGNvbnN0IGlzSGVicmV3ID0gKGxhbmd1YWdlSWRfID09PSAnaGJvJylcbiAgY29uc3QgZm9udEZhY3RvciA9IGlzSGVicmV3ID8gMS40IDogMSAvLyB3ZSBhdXRvbWF0aWNhbGx5IHNjYWxlIHVwIGZvbnQgc2l6ZSBmb3IgSGVicmV3XG4gIGNvbnN0IHNjYWxlZEZvbnRTaXplID0gZm9udFNpemUgKiBmb250RmFjdG9yXG5cbiAgY29uc3QgaXRlbXMgPSBudWxsXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgaGVhZGVycywgZmlsdGVycywgaXRlbUluZGV4LCBtYXJrZG93blZpZXcsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzZXRGaWx0ZXJzLCBzZXRJdGVtSW5kZXgsIHNldE1hcmtkb3duVmlldyxcbiAgICB9LFxuICB9ID0gdXNlQ2FyZFN0YXRlKHsgaXRlbXMgfSlcblxuICBjb25zdCByZWZTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7TWF0aC5yb3VuZChzY2FsZWRGb250U2l6ZSAqIDAuOSl9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7c2NhbGVkRm9udFNpemV9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IHNjcmlwdHVyZUxhYmVsID0gPFRpdGxlPntzY3JpcHR1cmVUaXRsZX08L1RpdGxlPlxuICBsZXQgZGlzYWJsZVdvcmRQb3BvdmVyXyA9IGRpc2FibGVXb3JkUG9wb3ZlclxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHByZS1jYWNoZSBnbG9zc2VzIG9uIHZlcnNlIGNoYW5nZVxuICAgIGNvbnN0IGZldGNoR2xvc3NEYXRhRm9yVmVyc2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgdmVyc2VPYmplY3RzID0gW11cblxuICAgICAgLy8gZ2V0IHZlcnNlIG9iamVjdHMgb2YgYWxsIHRoZSB2ZXJzZXNcbiAgICAgIGZvciAoY29uc3QgdmVyc2VSZWYgb2Ygc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWYgfHwgW10pIHtcbiAgICAgICAgY29uc3QgX3ZlcnNlT2JqZWN0cyA9IHZlcnNlUmVmPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0c1xuICAgICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHMuY29uY2F0KF92ZXJzZU9iamVjdHMpXG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZVdvcmRQb3BvdmVyICYmIHZlcnNlT2JqZWN0cz8ubGVuZ3RoICYmIGZldGNoR2xvc3Nlc0ZvclZlcnNlKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgIGF3YWl0IGZldGNoR2xvc3Nlc0ZvclZlcnNlKHZlcnNlT2JqZWN0cywgbGFuZ3VhZ2VJZF8pXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVzaW5nT3JpZ2luYWxCaWJsZSkge1xuICAgICAgZmV0Y2hHbG9zc0RhdGFGb3JWZXJzZSgpXG4gICAgfVxuICB9LCBbIHZlcnNlc0ZvclJlZiwgbGFuZ3VhZ2VJZF8gXSlcblxuICBjb25zdCBlbmFibGVFZGl0ID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICBjb25zdCBlbmFibGVBbGlnbm1lbnQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IG9yaWdpbmFsUmVwb1VybCA9IGlzTmV3VGVzdGFtZW50ID8gZ3JlZWtSZXBvVXJsIDogaGVicmV3UmVwb1VybFxuICBjb25zdCBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJbmRleCxcbiAgICBjdXJyZW50VmVyc2VSZWY6IHJlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgY29uc3QgYm9va0NhcHMgPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZT8ucHJvamVjdElkID8gc2NyaXB0dXJlQ29uZmlnLnJlZmVyZW5jZS5wcm9qZWN0SWQudG9VcHBlckNhc2UoKSA6ICcnXG4gICAgcmV0dXJuIGAke2Jvb2tJbmRleH0tJHtib29rQ2Fwc30udXNmbWBcbiAgfVxuXG4gIGNvbnN0IGZpbGVwYXRoID0gZ2V0Qm9va05hbWUoKVxuXG4gIC8vIGtlZXAgdHJhY2sgb2YgdmVyc2UgZWRpdCBzdGF0ZVxuICBjb25zdCB7IG9uU2F2ZUVkaXQgfSA9IHVzZUVkaXQoe1xuICAgIHNoYSxcbiAgICBvd25lcixcbiAgICBjb250ZW50OiBzYXZlQ29udGVudCxcbiAgICBjb25maWc6IHtcbiAgICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgICAgLi4uYXV0aGVudGljYXRpb24/LmNvbmZpZyxcbiAgICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aW1lb3V0OiBodHRwQ29uZmlnPy5zZXJ2ZXJUaW1lT3V0IHx8IGh0dHBDb25maWc/LnRpbWVvdXQgfHwgNTAwMCxcbiAgICB9LFxuICAgIGF1dGhvcjogbG9nZ2VkSW5Vc2VyLFxuICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgYnJhbmNoOiB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG4gICAgZmlsZXBhdGgsXG4gICAgcmVwbyxcbiAgfSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3aGVuIHN0YXJ0U2F2ZSBnb2VzIHRydWUsIHNhdmUgZWRpdHMgdG8gdXNlciBicmFuY2ggYW5kIHRoZW4gY2xlYXIgc3RhcnRTYXZlXG4gICAgY29uc3QgX3NhdmVFZGl0ID0gYXN5bmMgKCkgPT4geyAvLyBiZWdpbiB1cGxvYWRpbmcgbmV3IFVTRk1cbiAgICAgIGxldCBicmFuY2ggPSAod29ya2luZ1Jlc291cmNlQnJhbmNoICE9PSAnbWFzdGVyJykgPyB3b3JraW5nUmVzb3VyY2VCcmFuY2ggOiB1bmRlZmluZWRcblxuICAgICAgaWYgKCFicmFuY2gpIHtcbiAgICAgICAgYnJhbmNoID0gYXdhaXQgc3RhcnRFZGl0QnJhbmNoKCkgLy8gbWFrZSBzdXJlIHVzZXIgYnJhbmNoIGV4aXN0cyBhbmQgZ2V0IG5hbWVcbiAgICAgIH1cblxuICAgICAgYXdhaXQgb25TYXZlRWRpdChicmFuY2gpLnRoZW4oKHN1Y2Nlc3MpID0+IHsgLy8gcHVzaCBjaGFuZ2VkIHRvIHNlcnZlclxuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmUgc2NyaXB0dXJlIGVkaXRzIHN1Y2Nlc3NgKVxuICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgIHN0YXJ0U2F2ZTogZmFsc2UsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICAgIGlmICh1bnNhdmVkQ2FyZEluZGljZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgY2xlYXJDaGFuZ2VzIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZEluZGV4XVxuICAgICAgICAgICAgICBjbGVhckNoYW5nZXMgJiYgY2xlYXJDaGFuZ2VzKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmluZm8oJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gUmVsb2FkaW5nIHJlc291cmNlJylcbiAgICAgICAgICBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmluZyBjaGFuZ2VkIHNjcmlwdHVyZSBmYWlsZWQnKVxuICAgICAgICAgIHNldFN0YXRlKHsgc3RhcnRTYXZlOiBmYWxzZSB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChzdGFydFNhdmUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjYWxsaW5nIF9zYXZlRWRpdCgpYClcbiAgICAgIF9zYXZlRWRpdCgpXG4gICAgfVxuICB9LCBbc3RhcnRTYXZlXSlcblxuICAvKipcbiAgICogY29udmVydCB1cGRhdGVkVmVyc2VPYmplY3RzIHRvIFVTRk0gYW5kIG1lcmdlIGludG8gdGhlIGJpYmxlVXNmbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmlibGVVc2ZtIC0gVVNGTSBvZiBiaWJsZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVmIC0gcmVmZXJlbmNlIG9mIHZlcnNlIHRvIG1lcmdlIGluXG4gICAqIEBwYXJhbSB7b2JqZWN0W119IHVwZGF0ZWRWZXJzZU9iamVjdHMgLSBuZXcgdmVyc2UgaW4gdmVyc2VPYmplY3QgZm9ybWF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjYXJkTnVtXG4gICAqL1xuICBmdW5jdGlvbiBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtLCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW06IG51bWJlcikge1xuICAgIGxldCBuZXdVc2ZtXG4gICAgY29uc3QgY2hhcHRlckNodW5rcyA9IGJpYmxlVXNmbT8uc3BsaXQoJ1xcXFxjICcpXG4gICAgY29uc3QgY2hhcHRlckluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy5jaGFwdGVyLCBjaGFwdGVyQ2h1bmtzKVxuXG4gICAgaWYgKGNoYXB0ZXJJbmRleCA+PSAwKSB7XG4gICAgICBjb25zdCBjdXJyZW50Q2hhcHRlciA9IGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XVxuICAgICAgY29uc3QgdmVyc2VDaHVua3MgPSBjdXJyZW50Q2hhcHRlci5zcGxpdCgnXFxcXHYgJylcbiAgICAgIGNvbnN0IHZlcnNlSW5kZXggPSBmaW5kUmVmSW5BcnJheShyZWY/LnZlcnNlLCB2ZXJzZUNodW5rcylcblxuICAgICAgaWYgKHZlcnNlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0odXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgke2NhcmROdW19KSAtIG5ldyBVU0ZNIGZvciBjYXJkOn0gLSAke25ld1ZlcnNlVXNmbS5zdWJzdHJpbmcoMCwgMTAwKX1gKVxuICAgICAgICBjb25zdCBvbGRWZXJzZSA9IHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdXG4gICAgICAgIGNvbnN0IHZlcnNlTnVtTGVuID0gKHJlZj8udmVyc2UgKyAnJykubGVuZ3RoXG4gICAgICAgIHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdID0gb2xkVmVyc2Uuc3Vic3RyaW5nKDAsIHZlcnNlTnVtTGVuICsgMSkgKyBuZXdWZXJzZVVzZm1cbiAgICAgICAgY29uc3QgbmV3Q2hhcHRlciA9IHZlcnNlQ2h1bmtzLmpvaW4oJ1xcXFx2ICcpXG4gICAgICAgIGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XSA9IG5ld0NoYXB0ZXJcbiAgICAgICAgbmV3VXNmbSA9IGNoYXB0ZXJDaHVua3Muam9pbignXFxcXGMgJylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1VzZm1cbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGZvciBlYWNoIHVuc2F2ZWQgY2hhbmdlLCBjYWxsIGludG8gdmVyc2VQYW5lIHRvIGdldCBsYXRlc3QgY2hhbmdlcyBmb3IgdmVyc2UgdG8gc2F2ZVxuICAgIGlmIChzYXZlQ2xpY2tlZCkge1xuICAgICAgY29uc3QgdW5zYXZlZENhcmRJbmRpY2VzID0gT2JqZWN0LmtleXModW5zYXZlZENoYW5nZXNMaXN0KVxuXG4gICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgbGV0IGJpYmxlVXNmbSA9IGNvcmUuZ2V0UmVzcG9uc2VEYXRhKHNjcmlwdHVyZUNvbmZpZz8uZmV0Y2hSZXNwb25zZSlcbiAgICAgICAgbGV0IG1lcmdlRmFpbCA9IGZhbHNlXG4gICAgICAgIGxldCBjYXJkTnVtID0gMFxuXG4gICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgIGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICBpZiAoZ2V0Q2hhbmdlcykge1xuICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmIGJpYmxlVXNmbSkgeyAvLyBqdXN0IHJlcGxhY2UgdmVyc2VcbiAgICAgICAgICAgICAgbmV3VXNmbSA9IG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm0sIHJlZiwgdXBkYXRlZFZlcnNlT2JqZWN0cywgY2FyZE51bSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgYmlibGVVc2ZtID0gbmV3VXNmbVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbWVyZ2VGYWlsID0gdHJ1ZVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtZXJnZUZhaWwpIHsgLy8gaWYgd2UgZmFpbGVkIHRvIG1lcmdlLCBmYWxsYmFjayB0byBicnV0ZSBmb3JjZSB2ZXJzZSBvYmplY3RzIHRvIFVTRk1cbiAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCR7Y2FyZE51bX0pIC0gdmVyc2Ugbm90IGZvdW5kLCBmYWxsaW5nIGJhY2sgdG8gaW5zZXJ0aW5nIHZlcnNlIG9iamVjdGApXG4gICAgICAgICAgbGV0IG5ld0Jvb2tKc29uXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICBjb25zdCB7IGdldENoYW5nZXMsIHN0YXRlIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZE51bV1cblxuICAgICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIW5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IG51bGxcblxuICAgICAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChuZXdWZXJzZVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UodXBkYXRlZFZlcnNlT2JqZWN0cywgbmV3VmVyc2VUZXh0KVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgbmV3Qm9va0pzb24gPSB0YXJnZXRWZXJzZU9iamVjdHNfICYmIHNjcmlwdHVyZUNvbmZpZz8udXBkYXRlVmVyc2UocmVmLmNoYXB0ZXIsIHJlZi52ZXJzZSwgeyB2ZXJzZU9iamVjdHM6IHRhcmdldFZlcnNlT2JqZWN0c18gfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBiaWJsZVVzZm0gPSB1c2ZtanMudG9VU0ZNKG5ld0Jvb2tKc29uLCB7IGZvcmNlZE5ld0xpbmVzOiB0cnVlIH0pXG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgbmV3IFVTRk06ICR7YmlibGVVc2ZtLnN1YnN0cmluZygwLCAxMDApfS4uLmApXG4gICAgICAgIHNldFN0YXRlKHsgc2F2ZUNvbnRlbnQ6IGJpYmxlVXNmbSwgc3RhcnRTYXZlOiB0cnVlLCBzYXZlQ2xpY2tlZDogZmFsc2UgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzYXZlQ2xpY2tlZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzRXF1YWwodmVyc2VzRm9yUmVmLCBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZikpIHtcbiAgICAgIGNvbnN0IHZlcnNlc0ZvclJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXG4gICAgICBzZXRTdGF0ZSh7IHZlcnNlc0ZvclJlZiB9KVxuXG4gICAgICBmb3IgKGNvbnN0IHZlcnNlUmVmIG9mIHZlcnNlc0ZvclJlZiB8fCBbXSkge1xuICAgICAgICAvLyBjaGVjayBmb3IgdmVyc2UgcmFuZ2VcbiAgICAgICAgY29uc3QgX3ZlcnNlID0gdmVyc2VSZWYudmVyc2VcblxuICAgICAgICBpZiAoYWRkVmVyc2VSYW5nZSAmJiAodHlwZW9mIF92ZXJzZSA9PT0gJ3N0cmluZycpKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGlmIChfdmVyc2UuaW5jbHVkZXMoJy0nKSkge1xuICAgICAgICAgICAgYWRkVmVyc2VSYW5nZShgJHtzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZT8uY2hhcHRlcn06JHtfdmVyc2V9YClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZl0pXG5cbiAgY29uc3QgbmVlZFRvTWVyZ2VGcm9tTWFzdGVyID0gbWVyZ2VGcm9tTWFzdGVyPy5tZXJnZU5lZWRlZFxuICBjb25zdCBtZXJnZUZyb21NYXN0ZXJIYXNDb25mbGljdHMgPSBtZXJnZUZyb21NYXN0ZXI/LmNvbmZsaWN0XG4gIGNvbnN0IG1lcmdlVG9NYXN0ZXJIYXNDb25mbGljdHMgPSBtZXJnZVRvTWFzdGVyPy5jb25mbGljdFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICBjb25zdCBtZXJnZUZyb21NYXN0ZXJUaXRsZSA9IG1lcmdlRnJvbU1hc3Rlckhhc0NvbmZsaWN0cyA/ICdNZXJnZSBDb25mbGljdHMgZm9yIHVwZGF0ZSBmcm9tIG1hc3RlcicgOiAobmVlZFRvTWVyZ2VGcm9tTWFzdGVyID8gJ1VwZGF0ZSBmcm9tIG1hc3RlcicgOiAnTm8gbWVyZ2UgY29uZmxpY3RzIGZvciB1cGRhdGUgd2l0aCBtYXN0ZXInKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmVzdGVkLXRlcm5hcnlcbiAgY29uc3QgbWVyZ2VGcm9tTWFzdGVyQ29sb3IgPSBtZXJnZUZyb21NYXN0ZXJIYXNDb25mbGljdHMgPyAnYmxhY2snIDogKG5lZWRUb01lcmdlRnJvbU1hc3RlciA/ICdibGFjaycgOiAnbGlnaHRncmF5JylcbiAgY29uc3QgbWVyZ2VUb01hc3RlclRpdGxlID0gbWVyZ2VUb01hc3Rlckhhc0NvbmZsaWN0cyA/ICdNZXJnZSBDb25mbGljdHMgZm9yIHNoYXJlIHdpdGggbWFzdGVyJyA6ICdObyBtZXJnZSBjb25mbGljdHMgZm9yIHNoYXJlIHdpdGggbWFzdGVyJ1xuICBjb25zdCBtZXJnZVRvTWFzdGVyQ29sb3IgPSBtZXJnZVRvTWFzdGVySGFzQ29uZmxpY3RzID8gJ2JsYWNrJyA6ICdibGFjaydcblxuICBjb25zdCByZW5kZXJlZFNjcmlwdHVyZVBhbmVzID0gdmVyc2VzRm9yUmVmPy5tYXAoKF9jdXJyZW50VmVyc2VEYXRhLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGluaXRpYWxWZXJzZU9iamVjdHMgPSBfY3VycmVudFZlcnNlRGF0YT8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHMgfHwgbnVsbFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSBfY3VycmVudFZlcnNlRGF0YSB8fCB7fVxuICAgIGNvbnN0IF9yZWZlcmVuY2UgPSB7XG4gICAgICAuLi5yZWZlcmVuY2UsXG4gICAgICBjaGFwdGVyLFxuICAgICAgdmVyc2UsXG4gICAgfVxuICAgIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgICAgLi4uc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgICAgIGN1cnJlbnRJbmRleDogaW5kZXgsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgcmVmZXJlbmNlOiBfcmVmZXJlbmNlLFxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U2NyaXB0dXJlUGFuZVxuICAgICAgICB7Li4uc2NyaXB0dXJlQ29uZmlnfVxuICAgICAgICBjb250ZW50U3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgY3VycmVudEluZGV4PXtpbmRleH1cbiAgICAgICAgZGlyZWN0aW9uPXtkaXJlY3Rpb259XG4gICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyX31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICAgIGlzTlQ9e2lzTlRffVxuICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICByZWZTdHlsZT17cmVmU3R5bGV9XG4gICAgICAgIHJlZmVyZW5jZT17X3JlZmVyZW5jZX1cbiAgICAgICAgc2F2aW5nPXtzdGFydFNhdmV9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZz17X3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWd9XG4gICAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzPXtzZXRXb3JkQWxpZ25lclN0YXR1c31cbiAgICAgICAgc2VydmVyPXtzZXJ2ZXJ9XG4gICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICBtZXJnaW5nPXttZXJnaW5nfVxuICAgICAgLz5cbiAgICApXG4gIH0pXG5cbiAgY29uc3Qgb25SZW5kZXJUb29sYmFyID0gKHsgaXRlbXMgfSkgPT4ge1xuICAgIGNvbnN0IG5ld0l0ZW1zID0gWy4uLml0ZW1zXVxuXG4gICAgaWYgKG1lcmdlRnJvbU1hc3Rlcikge1xuICAgICAgbmV3SXRlbXMucHVzaChcbiAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubWFyZ2lufVxuICAgICAgICAgIGtleT0ndXBkYXRlLWZyb20tbWFzdGVyJ1xuICAgICAgICAgIG9uQ2xpY2s9e21lcmdlRnJvbU1hc3RlckludG9Vc2VyQnJhbmNofVxuICAgICAgICAgIHRpdGxlPXttZXJnZUZyb21NYXN0ZXJUaXRsZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXttZXJnZUZyb21NYXN0ZXJUaXRsZX1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICA+XG4gICAgICAgICAge21lcmdlRnJvbU1hc3Rlckhhc0NvbmZsaWN0cyA/XG4gICAgICAgICAgICA8TWRVcGRhdGVEaXNhYmxlZCBpZD0ndXBkYXRlLWZyb20tbWFzdGVyLWljb24nIGNvbG9yPXttZXJnZUZyb21NYXN0ZXJDb2xvcn0gLz5cbiAgICAgICAgICAgIDpcbiAgICAgICAgICAgIDxNZFVwZGF0ZSBpZD0ndXBkYXRlLWZyb20tbWFzdGVyLWljb24nIGNvbG9yPXttZXJnZUZyb21NYXN0ZXJDb2xvcn0gLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIClcbiAgICB9XG4gICAgaWYgKG1lcmdlVG9NYXN0ZXIpIHtcbiAgICAgIG5ld0l0ZW1zLnB1c2goXG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm1hcmdpbn1cbiAgICAgICAgICBrZXk9J3NoYXJlLXRvLW1hc3RlcidcbiAgICAgICAgICBvbkNsaWNrPXttZXJnZVRvTWFzdGVyRnJvbVVzZXJCcmFuY2h9XG4gICAgICAgICAgdGl0bGU9e21lcmdlVG9NYXN0ZXJUaXRsZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXttZXJnZVRvTWFzdGVyVGl0bGV9XG4gICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHttZXJnZVRvTWFzdGVySGFzQ29uZmxpY3RzID9cbiAgICAgICAgICAgIDxNZFVwZGF0ZURpc2FibGVkIGlkPSdzaGFyZS10by1tYXN0ZXItaWNvbicgY29sb3I9e21lcmdlVG9NYXN0ZXJDb2xvcn0gLz5cbiAgICAgICAgICAgIDpcbiAgICAgICAgICAgIDxGaVNoYXJlIGlkPSdzaGFyZS10by1tYXN0ZXItaWNvbicgY29sb3I9e21lcmdlVG9NYXN0ZXJDb2xvcn0gLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIG5ld0l0ZW1zO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q2FyZFxuICAgICAgaWQ9e2BzY3JpcHR1cmVfY2FyZF8ke2NhcmROdW19YH1cbiAgICAgIHRpdGxlPXtzY3JpcHR1cmVMYWJlbH1cbiAgICAgIHNldHRpbmdzVGl0bGU9e3NjcmlwdHVyZVRpdGxlICsgJyBTZXR0aW5ncyd9XG4gICAgICBpdGVtcz17aXRlbXN9XG4gICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgaGVhZGVycz17aGVhZGVyc31cbiAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICBpdGVtSW5kZXg9e2l0ZW1JbmRleH1cbiAgICAgIHNldEZpbHRlcnM9e3NldEZpbHRlcnN9XG4gICAgICBzZXRGb250U2l6ZT17c2V0Rm9udFNpemV9XG4gICAgICBzZXRJdGVtSW5kZXg9e3NldEl0ZW1JbmRleH1cbiAgICAgIG1hcmtkb3duVmlldz17bWFya2Rvd25WaWV3fVxuICAgICAgc2V0TWFya2Rvd25WaWV3PXtzZXRNYXJrZG93blZpZXd9XG4gICAgICBnZXRDdXN0b21Db21wb25lbnQ9e2dldFNjcmlwdHVyZVNlbGVjdG9yfVxuICAgICAgaGlkZU1hcmtkb3duVG9nZ2xlXG4gICAgICBvbk1lbnVDbG9zZT17b25NZW51Q2xvc2V9XG4gICAgICBvbk1pbmltaXplPXtvbk1pbmltaXplID8gKCkgPT4gb25NaW5pbWl6ZShpZCkgOiBudWxsfVxuICAgICAgZWRpdGFibGU9e2VuYWJsZUVkaXQgfHwgZW5hYmxlQWxpZ25tZW50fVxuICAgICAgc2F2ZWQ9e3N0YXJ0U2F2ZSB8fCAhaGF2ZVVuc2F2ZWRDaGFuZ2VzfVxuICAgICAgb25TYXZlRWRpdD17KCkgPT4gc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogdHJ1ZSB9KX1cbiAgICAgIG9uUmVuZGVyVG9vbGJhcj17b25SZW5kZXJUb29sYmFyfVxuICAgID5cbiAgICAgIDxkaXYgaWQ9XCJzY3JpcHR1cmUtcGFuZS1saXN0XCI+XG4gICAgICAgIHtyZW5kZXJlZFNjcmlwdHVyZVBhbmVzfVxuICAgICAgPC9kaXY+XG4gICAgPC9DYXJkPlxuICApXG59XG5cblNjcmlwdHVyZUNhcmQucHJvcFR5cGVzID0ge1xuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIHJlZmVyZW5jZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogcHJvamVjdElkIChib29rSUQpIHRvIHVzZSAqL1xuICAgIHByb2plY3RJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IGNoYXB0ZXIgbnVtYmVyICovXG4gICAgY2hhcHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgdmVyc2UgbnVtYmVyICovXG4gICAgdmVyc2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHNlcnZlciAoZS5nLiAnaHR0cHM6Ly9naXQuZG9vcjQzLm9yZycpICovXG4gIHNlcnZlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogcmVwbyBicmFuY2ggb3IgdGFnIHN1Y2ggYXMgbWFzdGVyICovXG4gIGFwcFJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBjYWxsYmFjayBpZiBlcnJvciBsb2FkaW5nIHJlc291cmNlLCBwYXJhbWV0ZXIgcmV0dXJuZWQgYXJlOlxuICAgKiAgICAoe3N0cmluZ30gZXJyb3JNZXNzYWdlLCB7Ym9vbGVhbn0gaXNBY2Nlc3NFcnJvciwge29iamVjdH0gcmVzb3VyY2VTdGF0dXMpXG4gICAqICAgICAgLSBpc0FjY2Vzc0Vycm9yIC0gaXMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBlcnJvciB0cnlpbmcgdG8gYWNjZXNzIGZpbGVcbiAgICogICAgICAtIHJlc291cmNlU3RhdHVzIC0gaXMgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBwcm9ibGVtcyBmZXRjaGluZyByZXNvdXJjZSAqL1xuICBvblJlc291cmNlRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGZ1bmN0aW9uIHRvIHByZS1sb2FkIGxleGljb24gZGF0YSBmb3IgdmVyc2UgKi9cbiAgZmV0Y2hHbG9zc2VzRm9yVmVyc2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGluZGV4IGZvciBjdXJyZW50IGJvb2sgKGUuZy4gJzAxJyBmb3IgJ2dlbicpKi9cbiAgYm9va0luZGV4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogY2FsbGJhY2sgdG8gaW5kaWNhdGUgdGhhdCB3ZSBhcmUgdXNpbmcgYSB2ZXJzZSByYW5nZSBoZXJlICovXG4gIGFkZFZlcnNlUmFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHdvcmQgYWxpZ25lciBzdGF0ZSAqL1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKmNhbGxiYWNrIHRvIHVwZGF0ZSB0aGUgY2FyZCdzIG1lcmdlIHN0YXRlIGluIGFwcCAqL1xuICB1cGRhdGVNZXJnZVN0YXRlOiBQcm9wVHlwZXMuZnVuYyxcbn1cbiJdfQ==
|
|
1135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwidXNmbWpzIiwidXNlRWRpdCIsIk1kVXBkYXRlIiwiTWRVcGRhdGVEaXNhYmxlZCIsIkZpU2hhcmUiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJ1c2VDYXJkU3RhdGUiLCJ1c2VVc2VyQnJhbmNoIiwiRVJST1JfU1RBVEUiLCJNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJnZXRSZXNvdXJjZUxpbmsiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3MiLCJpc09yaWdpbmFsQmlibGUiLCJUaXRsZSIsIk5UX09SSUdfTEFORyIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIlZlcnNlU2VsZWN0b3JQb3B1cCIsIktFWV9GT05UX1NJWkVfQkFTRSIsImxhYmVsIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsIlNjcmlwdHVyZUNhcmQiLCJpZCIsImlzTlQiLCJ0aXRsZSIsInNlcnZlciIsImFwcFJlZiIsImNhcmROdW0iLCJjbGFzc2VzIiwicmVzb3VyY2UiLCJvd25lciIsImxhbmd1YWdlSWQiLCJyZXNvdXJjZUlkIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0TGFuZ3VhZ2UiLCJyZWZlcmVuY2UiLCJ2ZXJzZSIsImNoYXB0ZXIiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJyZXNvdXJjZUxpbmsiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib25SZXNvdXJjZUVycm9yIiwiaHR0cENvbmZpZyIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJnZXRMZXhpY29uRGF0YSIsImZldGNoR2xvc3Nlc0ZvclZlcnNlIiwidHJhbnNsYXRlIiwib25NaW5pbWl6ZSIsImxvZ2dlZEluVXNlciIsImF1dGhlbnRpY2F0aW9uIiwic2V0U2F2ZWRDaGFuZ2VzIiwiYm9va0luZGV4IiwiYWRkVmVyc2VSYW5nZSIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwidXBkYXRlTWVyZ2VTdGF0ZSIsInVzZVN0YXRlIiwiaGF2ZVVuc2F2ZWRDaGFuZ2VzIiwicmVmIiwic2F2ZUNsaWNrZWQiLCJzYXZlQ29udGVudCIsInNoYSIsInN0YXJ0U2F2ZSIsInVybEVycm9yIiwidXNpbmdVc2VyQnJhbmNoIiwidW5zYXZlZENoYW5nZXNMaXN0IiwidmVyc2VzRm9yUmVmIiwic2hvd0FsaWdubWVudFBvcHVwIiwidmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsInZlcnNlc0FsaWdubWVudFN0YXR1cyIsInN0YXRlIiwic2V0U3RhdGVfIiwiZm9udFNpemUiLCJzZXRGb250U2l6ZSIsImlzTlRfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNhY2hlIiwibWF4QWdlIiwic2V0VXJsRXJyb3IiLCJlcnJvciIsIndob2xlQm9vayIsImlzTmV3VGVzdGFtZW50Iiwic2NyaXB0dXJlQ29uZmlnIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImZldGNoUmVzcF8iLCJmZXRjaFJlc3BvbnNlIiwicmVwbyIsInJlZmVyZW5jZV8iLCJ1c2VFZmZlY3QiLCJfc2hhIiwiZGF0YSIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5IiwiY2FyZFJlc291cmNlSWQiLCJyZWZfIiwiY2FuVXNlRWRpdEJyYW5jaCIsInN1YnN0cmluZyIsImxlbmd0aCIsImNhcmRJZCIsIndvcmtpbmdSZXNvdXJjZUJyYW5jaCIsInVzaW5nVXNlckJyYW5jaF8iLCJtZXJnZUZyb21NYXN0ZXIiLCJtZXJnZVRvTWFzdGVyIiwibWVyZ2luZyIsImFjdGlvbnMiLCJzdGFydEVkaXRCcmFuY2giLCJzdGFydEVkaXQiLCJtZXJnZUZyb21NYXN0ZXJJbnRvVXNlckJyYW5jaCIsIm1lcmdlVG9NYXN0ZXJGcm9tVXNlckJyYW5jaCIsIndvcmtpbmdSZWYiLCJzY3JpcHR1cmVUaXRsZSIsIndvcmtpbmdSZWZfIiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwib25NZW51Q2xvc2UiLCJsYW5ndWFnZUlkXyIsImxhbmd1YWdlIiwiZGlyZWN0aW9uIiwiaXNIZWJyZXciLCJmb250RmFjdG9yIiwic2NhbGVkRm9udFNpemUiLCJpdGVtcyIsImhlYWRlcnMiLCJmaWx0ZXJzIiwiaXRlbUluZGV4IiwibWFya2Rvd25WaWV3Iiwic2V0RmlsdGVycyIsInNldEl0ZW1JbmRleCIsInNldE1hcmtkb3duVmlldyIsInJlZlN0eWxlIiwidXNlTWVtbyIsImZvbnRGYW1pbHkiLCJNYXRoIiwicm91bmQiLCJjb250ZW50U3R5bGUiLCJzY3JpcHR1cmVMYWJlbCIsImRpc2FibGVXb3JkUG9wb3Zlcl8iLCJ1c2luZ09yaWdpbmFsQmlibGUiLCJ1bmRlZmluZWQiLCJmZXRjaEdsb3NzRGF0YUZvclZlcnNlIiwidmVyc2VPYmplY3RzIiwidmVyc2VSZWYiLCJfdmVyc2VPYmplY3RzIiwidmVyc2VEYXRhIiwiY29uY2F0IiwiZW5hYmxlRWRpdCIsImVuYWJsZUFsaWdubWVudCIsIm9yaWdpbmFsUmVwb1VybCIsInNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJjdXJyZW50VmVyc2VSZWYiLCJfc2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJ0YXJnZXRMYW5ndWFnZSIsImN1cnJlbnRJbmRleCIsInNhdmVkIiwiZ2V0Q2hhbmdlcyIsImNsZWFyQ2hhbmdlcyIsIl91bnNhdmVkQ2hhbmdlc0xpc3QiLCJoYXNPd25Qcm9wZXJ0eSIsIl9oYXZlVW5zYXZlZENoYW5nZXMiLCJPYmplY3QiLCJrZXlzIiwiZmluZFJlZkluQXJyYXkiLCJmaW5kSXRlbSIsImNodW5rcyIsInJlZkxlbiIsImluZGV4IiwiZmluZEluZGV4IiwiY2h1bmsiLCJpZHgiLCJuZXh0Q2hhciIsImdldEJvb2tOYW1lIiwiYm9va0NhcHMiLCJ0b1VwcGVyQ2FzZSIsImZpbGVwYXRoIiwiY29udGVudCIsImNvbmZpZyIsInRva2VuIiwidGltZW91dCIsInNlcnZlclRpbWVPdXQiLCJhdXRob3IiLCJicmFuY2giLCJvblNhdmVFZGl0IiwiX3NhdmVFZGl0IiwidGhlbiIsInN1Y2Nlc3MiLCJ1bnNhdmVkQ2FyZEluZGljZXMiLCJjYXJkSW5kZXgiLCJpbmZvIiwicmVsb2FkUmVzb3VyY2UiLCJtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0iLCJiaWJsZVVzZm0iLCJ1cGRhdGVkVmVyc2VPYmplY3RzIiwibmV3VXNmbSIsImNoYXB0ZXJDaHVua3MiLCJzcGxpdCIsImNoYXB0ZXJJbmRleCIsImN1cnJlbnRDaGFwdGVyIiwidmVyc2VDaHVua3MiLCJ2ZXJzZUluZGV4IiwibmV3VmVyc2VVc2ZtIiwiY29udmVydFZlcnNlRGF0YVRvVVNGTSIsIm9sZFZlcnNlIiwidmVyc2VOdW1MZW4iLCJuZXdDaGFwdGVyIiwiam9pbiIsImdldFJlc3BvbnNlRGF0YSIsIm1lcmdlRmFpbCIsInBhcnNlSW50IiwibmV3Qm9va0pzb24iLCJuZXdWZXJzZVRleHQiLCJ0YXJnZXRWZXJzZU9iamVjdHNfIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJ1cGRhdGVWZXJzZSIsInRvVVNGTSIsImZvcmNlZE5ld0xpbmVzIiwiX3ZlcnNlIiwiaW5jbHVkZXMiLCJuZWVkVG9NZXJnZUZyb21NYXN0ZXIiLCJtZXJnZU5lZWRlZCIsIm1lcmdlRnJvbU1hc3Rlckhhc0NvbmZsaWN0cyIsImNvbmZsaWN0IiwibWVyZ2VUb01hc3Rlckhhc0NvbmZsaWN0cyIsIm1lcmdlRnJvbU1hc3RlclRpdGxlIiwibWVyZ2VGcm9tTWFzdGVyQ29sb3IiLCJtZXJnZVRvTWFzdGVyVGl0bGUiLCJtZXJnZVRvTWFzdGVyQ29sb3IiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJhbGlnbmVkIiwicmVuZGVyZWRTY3JpcHR1cmVQYW5lcyIsIm1hcCIsIl9jdXJyZW50VmVyc2VEYXRhIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9yZWZlcmVuY2UiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsImFsaWduQnV0dG9uVGV4dCIsImhhbmRsZUFsaWduQnV0dG9uQ2xpY2siLCJvblJlbmRlclRvb2xiYXIiLCJuZXdJdGVtcyIsImFsbFZlcnNlc0FsaWduZWQiLCJ2YWx1ZXMiLCJldmVyeSIsImFsaWduU3RhdHVzIiwiYWxpZ25JY29uIiwicHVzaCIsImN1cnNvciIsIm1hcmdpbiIsInByb3BUeXBlcyIsInN0cmluZyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwibnVtYmVyIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJib29sIiwib2JqZWN0IiwiYW55Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsT0FBTyxLQUFLQyxTQUFaLE1BQTJCLFlBQTNCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQix5QkFBckI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFNBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixxQkFBeEI7QUFDQSxTQUFTQyxRQUFULEVBQW1CQyxnQkFBbkIsUUFBMkMsZ0JBQTNDO0FBQ0EsU0FBU0MsT0FBVCxRQUF3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O0FBaUR4QjtBQUNBak8sRUFBQUEsWUFBWSxFQUFFM0QsU0FBUyxDQUFDcVIsTUFsREE7O0FBbUR4QjtBQUNBek4sRUFBQUEsYUFBYSxFQUFFNUQsU0FBUyxDQUFDcVIsTUFwREQ7O0FBcUR4QjtBQUNBeE4sRUFBQUEsY0FBYyxFQUFFN0QsU0FBUyxDQUFDc1IsSUF0REY7O0FBdUR4QjtBQUNBeE4sRUFBQUEsb0JBQW9CLEVBQUU5RCxTQUFTLENBQUNzUixJQXhEUjs7QUF5RHhCO0FBQ0F2TixFQUFBQSxTQUFTLEVBQUUvRCxTQUFTLENBQUNzUixJQTFERzs7QUEyRHhCO0FBQ0F0TixFQUFBQSxVQUFVLEVBQUVoRSxTQUFTLENBQUNzUixJQTVERTs7QUE2RHhCO0FBQ0FyTixFQUFBQSxZQUFZLEVBQUVqRSxTQUFTLENBQUNxUixNQTlEQTs7QUErRHhCO0FBQ0FuTixFQUFBQSxjQUFjLEVBQUVsRSxTQUFTLENBQUM0UixNQWhFRjs7QUFpRXhCO0FBQ0F6TixFQUFBQSxlQUFlLEVBQUVuRSxTQUFTLENBQUNzUixJQWxFSDs7QUFtRXhCO0FBQ0FsTixFQUFBQSxTQUFTLEVBQUVwRSxTQUFTLENBQUNxUixNQXBFRzs7QUFxRXhCO0FBQ0FoTixFQUFBQSxhQUFhLEVBQUVyRSxTQUFTLENBQUNzUixJQXRFRDs7QUF1RXhCO0FBQ0FoTixFQUFBQSxvQkFBb0IsRUFBRXRFLFNBQVMsQ0FBQ3NSLElBeEVSOztBQXlFeEI7QUFDQS9NLEVBQUFBLGdCQUFnQixFQUFFdkUsU0FBUyxDQUFDc1I7QUExRUosQ0FBMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQgeyBNZFVwZGF0ZSwgTWRVcGRhdGVEaXNhYmxlZCB9IGZyb20gJ3JlYWN0LWljb25zL21kJ1xuaW1wb3J0IHsgRmlTaGFyZSB9IGZyb20gJ3JlYWN0LWljb25zL2ZpJ1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnXG5pbXBvcnQgeyBSeExpbmsyLCBSeExpbmtCcmVhazIgfSBmcm9tICdyZWFjdC1pY29ucy9yeCdcbmltcG9ydCB7XG4gIENhcmQsXG4gIHVzZUNhcmRTdGF0ZSxcbiAgdXNlVXNlckJyYW5jaCxcbiAgRVJST1JfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IEFsaWdubWVudEhlbHBlcnMsIFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0ICogYXMgaXNFcXVhbCBmcm9tICdkZWVwLWVxdWFsJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUGFuZSwgU2NyaXB0dXJlU2VsZWN0b3IgfSBmcm9tICcuLidcbmltcG9ydCB7IHVzZVNjcmlwdHVyZVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQge1xuICBnZXRSZXNvdXJjZUxpbmssXG4gIGdldFJlc291cmNlTWVzc2FnZSxcbiAgZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzLFxuICBpc09yaWdpbmFsQmlibGUsXG59IGZyb20gJy4uLy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICcuLi9TY3JpcHR1cmVQYW5lL3N0eWxlZCdcbmltcG9ydCB7XG4gIE5UX09SSUdfTEFORyxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG59IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgVmVyc2VTZWxlY3RvclBvcHVwIH0gZnJvbSAnLi4vVmVyc2VTZWxlY3RvclBvcHVwJ1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2NyaXB0dXJlQ2FyZCh7XG4gIGlkLFxuICBpc05ULFxuICB0aXRsZSxcbiAgc2VydmVyLFxuICBhcHBSZWYsXG4gIGNhcmROdW0sXG4gIGNsYXNzZXMsXG4gIHJlc291cmNlOiB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgfSxcbiAgZ2V0TGFuZ3VhZ2UsXG4gIHJlZmVyZW5jZToge1xuICAgIHZlcnNlLFxuICAgIGNoYXB0ZXIsXG4gICAgcHJvamVjdElkOiBib29rSWQsXG4gIH0sXG4gIHJlc291cmNlTGluayxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvblJlc291cmNlRXJyb3IsXG4gIGh0dHBDb25maWcsXG4gIGdyZWVrUmVwb1VybCxcbiAgaGVicmV3UmVwb1VybCxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGZldGNoR2xvc3Nlc0ZvclZlcnNlLFxuICB0cmFuc2xhdGUsXG4gIG9uTWluaW1pemUsXG4gIGxvZ2dlZEluVXNlcixcbiAgYXV0aGVudGljYXRpb24sXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgYm9va0luZGV4LFxuICBhZGRWZXJzZVJhbmdlLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgdXBkYXRlTWVyZ2VTdGF0ZSxcbn0pIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGhhdmVVbnNhdmVkQ2hhbmdlczogZmFsc2UsXG4gICAgcmVmOiBhcHBSZWYsXG4gICAgc2F2ZUNsaWNrZWQ6IGZhbHNlLFxuICAgIHNhdmVDb250ZW50OiBudWxsLFxuICAgIHNoYTogbnVsbCxcbiAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICB2ZXJzZXNGb3JSZWY6IG51bGwsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSxcbiAgICB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBudWxsLFxuICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgfSlcbiAgY29uc3Qge1xuICAgIHJlZixcbiAgICBzYXZlQ2xpY2tlZCxcbiAgICBzYXZlQ29udGVudCxcbiAgICBzaGEsXG4gICAgc3RhcnRTYXZlLFxuICAgIHVybEVycm9yLFxuICAgIHVzaW5nVXNlckJyYW5jaCxcbiAgICB1bnNhdmVkQ2hhbmdlc0xpc3QsXG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgICBzaG93QWxpZ25tZW50UG9wdXAsXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG4gIH0gPSBzdGF0ZVxuXG4gIGNvbnN0IFtmb250U2l6ZSwgc2V0Rm9udFNpemVdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfRk9OVF9TSVpFX0JBU0UgKyBjYXJkTnVtLCAxMDApXG4gIGNvbnN0IGlzTlRfID0gaXNOVChib29rSWQpXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBpZiAodXNpbmdVc2VyQnJhbmNoKSB7XG4gICAgaHR0cENvbmZpZyA9IHsgLi4uaHR0cENvbmZpZywgY2FjaGU6IHsgbWF4QWdlOiAwIH0gfSAvLyBkaXNhYmxlIGh0dHAgY2FjaGluZ1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzZXRTY3JpcHR1cmUsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gIH0gPSB1c2VTY3JpcHR1cmVTZXR0aW5ncyh7XG4gICAgaXNOVCxcbiAgICB0aXRsZSxcbiAgICB2ZXJzZSxcbiAgICBvd25lcixcbiAgICBib29rSWQsXG4gICAgYXBwUmVmOiByZWYsXG4gICAgc2VydmVyLFxuICAgIGNhcmROdW0sXG4gICAgY2hhcHRlcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgcmVzb3VyY2VMaW5rLFxuICAgIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICBzZXRVcmxFcnJvcjogKGVycm9yKSA9PiBzZXRTdGF0ZSh7IHVybEVycm9yOiBlcnJvciB9KSxcbiAgICBodHRwQ29uZmlnLFxuICAgIGdyZWVrUmVwb1VybCxcbiAgICBoZWJyZXdSZXBvVXJsLFxuICAgIHdob2xlQm9vazogdHJ1ZSxcbiAgfSlcblxuICBjb25zdCBmZXRjaFJlc3BfID0gc2NyaXB0dXJlQ29uZmlnPy5mZXRjaFJlc3BvbnNlXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgcmVwbyA9IGAke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/Lmxhbmd1YWdlSWR9XyR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkfWBcbiAgY29uc3QgcmVmZXJlbmNlXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlIHx8IG51bGxcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBnZXQgdGhlIF9zaGEgZnJvbSBsYXN0IHNjcmlwdHVyZSBkb3dubG9hZFxuICAgIGNvbnN0IF9zaGEgPSBmZXRjaFJlc3BfPy5kYXRhPy5zaGEgfHwgbnVsbFxuICAgIGNvbnNvbGUubG9nKGBmb3IgJHtKU09OLnN0cmluZ2lmeShyZWZlcmVuY2VfKX0gbmV3IHNoYSBpcyAke19zaGF9YClcblxuICAgIGlmIChfc2hhICE9PSBzaGEpIHtcbiAgICAgIHNldFN0YXRlKHsgc2hhOiBfc2hhIH0pXG4gICAgfVxuICB9LCBbZmV0Y2hSZXNwX10pXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBjYXJkUmVzb3VyY2VJZCA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZCB8fCByZXNvdXJjZUlkXG4gIC8vIEB0cy1pZ25vcmVcbiAgbGV0IHJlZl8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5yZWYgfHwgYXBwUmVmXG4gIGNvbnN0IGNhblVzZUVkaXRCcmFuY2ggPSBsb2dnZWRJblVzZXIgJiYgYXV0aGVudGljYXRpb24gJiZcbiAgICAocmVzb3VyY2VJZCAhPT0gT1JJR0lOQUxfU09VUkNFKSAmJlxuICAgICgocmVmXyA9PT0gJ21hc3RlcicpIHx8IChyZWZfLnN1YnN0cmluZygwLCBsb2dnZWRJblVzZXIubGVuZ3RoKSA9PT0gbG9nZ2VkSW5Vc2VyKSApIC8vIG5vdCB0YWdcblxuICBjb25zdCB7XG4gICAgc3RhdGU6IHtcbiAgICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICAgIHVzaW5nVXNlckJyYW5jaDogdXNpbmdVc2VyQnJhbmNoXyxcbiAgICAgIG1lcmdlRnJvbU1hc3RlcixcbiAgICAgIG1lcmdlVG9NYXN0ZXIsXG4gICAgICBtZXJnaW5nLFxuICAgIH0sXG4gICAgYWN0aW9uczoge1xuICAgICAgc3RhcnRFZGl0OiBzdGFydEVkaXRCcmFuY2gsXG4gICAgICBtZXJnZUZyb21NYXN0ZXJJbnRvVXNlckJyYW5jaCxcbiAgICAgIG1lcmdlVG9NYXN0ZXJGcm9tVXNlckJyYW5jaCxcbiAgICB9LFxuICB9ID0gdXNlVXNlckJyYW5jaCh7XG4gICAgb3duZXIsXG4gICAgc2VydmVyLFxuICAgIGFwcFJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIGNhcmRJZDogaWQsXG4gICAgbG9nZ2VkSW5Vc2VyOiBjYW5Vc2VFZGl0QnJhbmNoID8gbG9nZ2VkSW5Vc2VyIDogbnVsbCxcbiAgICBhdXRoZW50aWNhdGlvbjogY2FuVXNlRWRpdEJyYW5jaCA/IGF1dGhlbnRpY2F0aW9uIDogbnVsbCxcbiAgICBjYXJkUmVzb3VyY2VJZCxcbiAgICBvblJlc291cmNlRXJyb3IsXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgfSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjYXJkUmVzb3VyY2VJZCkge1xuICAgICAgdXBkYXRlTWVyZ2VTdGF0ZSAmJiB1cGRhdGVNZXJnZVN0YXRlKFxuICAgICAgICBjYXJkUmVzb3VyY2VJZCxcbiAgICAgICAgbWVyZ2VGcm9tTWFzdGVyLFxuICAgICAgICBtZXJnZVRvTWFzdGVyLFxuICAgICAgICBtZXJnZUZyb21NYXN0ZXJJbnRvVXNlckJyYW5jaCxcbiAgICAgICAgbWVyZ2VUb01hc3RlckZyb21Vc2VyQnJhbmNoLFxuICAgICAgKVxuICAgIH1cbiAgfSxbY2FyZFJlc291cmNlSWQsIG1lcmdlRnJvbU1hc3RlciwgbWVyZ2VUb01hc3Rlcl0pXG5cbiAgY29uc3Qgd29ya2luZ1JlZiA9IGNhblVzZUVkaXRCcmFuY2ggPyB3b3JraW5nUmVzb3VyY2VCcmFuY2ggOiBhcHBSZWZcbiAgbGV0IHNjcmlwdHVyZVRpdGxlXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2VsZWN0IGNvcnJlY3Qgd29ya2luZyByZWYgLSBjb3VsZCBiZSBtYXN0ZXIsIHVzZXIgYnJhbmNoLCBvciByZWxlYXNlXG4gICAgaWYgKHVzaW5nVXNlckJyYW5jaF8gIT09IHVzaW5nVXNlckJyYW5jaCkge1xuICAgICAgc2V0U3RhdGUoeyB1c2luZ1VzZXJCcmFuY2g6IHVzaW5nVXNlckJyYW5jaF8gfSlcbiAgICB9XG4gIH0sIFt1c2luZ1VzZXJCcmFuY2hfLCB1c2luZ1VzZXJCcmFuY2hdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGxldCB3b3JraW5nUmVmXyA9IHdvcmtpbmdSZWYgfHwgYXBwUmVmXG5cbiAgICBpZiAocmVmICE9PSB3b3JraW5nUmVmXykge1xuICAgICAgc2V0U3RhdGUoeyByZWY6IHdvcmtpbmdSZWZfIH0pXG4gICAgfVxuICB9LCBbd29ya2luZ1JlZiwgcmVmLCBhcHBSZWZdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBkaXNwbGF5IHN0YXR1cyBpZiBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXVxuXG4gICAgaWYgKGVycm9yKSB7IC8vIGlmIGVycm9yIHdhcyBmb3VuZCBkbyBjYWxsYmFja1xuICAgICAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzXG4gICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlQ29uZmlnKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1dKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBvbk1lbnVDbG9zZSgpYClcbiAgICBzZXRTdGF0ZSh7IHVybEVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGxhbmd1YWdlSWRfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZFxuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKHsgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZF8gfSlcbiAgY29uc3QgZGlyZWN0aW9uID0gKGxhbmd1YWdlPy5kaXJlY3Rpb24pIHx8ICdsdHInXG4gIGNvbnN0IHJlZmVyZW5jZSA9IHsgLi4uc2NyaXB0dXJlQ29uZmlnLnJlZmVyZW5jZSB9XG5cbiAgY29uc3QgaXNIZWJyZXcgPSAobGFuZ3VhZ2VJZF8gPT09ICdoYm8nKVxuICBjb25zdCBmb250RmFjdG9yID0gaXNIZWJyZXcgPyAxLjQgOiAxIC8vIHdlIGF1dG9tYXRpY2FsbHkgc2NhbGUgdXAgZm9udCBzaXplIGZvciBIZWJyZXdcbiAgY29uc3Qgc2NhbGVkRm9udFNpemUgPSBmb250U2l6ZSAqIGZvbnRGYWN0b3JcblxuICBjb25zdCBpdGVtcyA9IG51bGxcbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBoZWFkZXJzLCBmaWx0ZXJzLCBpdGVtSW5kZXgsIG1hcmtkb3duVmlldyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHNldEZpbHRlcnMsIHNldEl0ZW1JbmRleCwgc2V0TWFya2Rvd25WaWV3LFxuICAgIH0sXG4gIH0gPSB1c2VDYXJkU3RhdGUoeyBpdGVtcyB9KVxuXG4gIGNvbnN0IHJlZlN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtNYXRoLnJvdW5kKHNjYWxlZEZvbnRTaXplICogMC45KX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3QgY29udGVudFN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtzY2FsZWRGb250U2l6ZX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3Qgc2NyaXB0dXJlTGFiZWwgPSA8VGl0bGU+e3NjcmlwdHVyZVRpdGxlfTwvVGl0bGU+XG4gIGxldCBkaXNhYmxlV29yZFBvcG92ZXJfID0gZGlzYWJsZVdvcmRQb3BvdmVyXG4gIGNvbnN0IHVzaW5nT3JpZ2luYWxCaWJsZSA9IGlzT3JpZ2luYWxCaWJsZShzY3JpcHR1cmVDb25maWdbJ3Jlc291cmNlJ10/LnByb2plY3RJZClcblxuICBpZiAoZGlzYWJsZVdvcmRQb3BvdmVyID09PSB1bmRlZmluZWQpIHsgLy8gaWYgbm90IHNwZWNpZmllZCwgdGhlbiBkZXRlcm1pbmUgaWYgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVzb3VyY2VcbiAgICBkaXNhYmxlV29yZFBvcG92ZXJfID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gcHJlLWNhY2hlIGdsb3NzZXMgb24gdmVyc2UgY2hhbmdlXG4gICAgY29uc3QgZmV0Y2hHbG9zc0RhdGFGb3JWZXJzZSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGxldCB2ZXJzZU9iamVjdHMgPSBbXVxuXG4gICAgICAvLyBnZXQgdmVyc2Ugb2JqZWN0cyBvZiBhbGwgdGhlIHZlcnNlc1xuICAgICAgZm9yIChjb25zdCB2ZXJzZVJlZiBvZiBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZiB8fCBbXSkge1xuICAgICAgICBjb25zdCBfdmVyc2VPYmplY3RzID0gdmVyc2VSZWY/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzXG4gICAgICAgIHZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0cy5jb25jYXQoX3ZlcnNlT2JqZWN0cylcbiAgICAgIH1cblxuICAgICAgaWYgKCFkaXNhYmxlV29yZFBvcG92ZXIgJiYgdmVyc2VPYmplY3RzPy5sZW5ndGggJiYgZmV0Y2hHbG9zc2VzRm9yVmVyc2UpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgICAgYXdhaXQgZmV0Y2hHbG9zc2VzRm9yVmVyc2UodmVyc2VPYmplY3RzLCBsYW5ndWFnZUlkXylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXNpbmdPcmlnaW5hbEJpYmxlKSB7XG4gICAgICBmZXRjaEdsb3NzRGF0YUZvclZlcnNlKClcbiAgICB9XG4gIH0sIFsgdmVyc2VzRm9yUmVmLCBsYW5ndWFnZUlkXyBdKVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogcmVmZXJlbmNlLFxuICAgIGVuYWJsZUVkaXQsXG4gICAgZW5hYmxlQWxpZ25tZW50LFxuICAgIGh0dHBDb25maWcsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBvcmlnaW5hbFJlcG9VcmwsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHN0YXJ0RWRpdEJyYW5jaCxcbiAgICBzZXRTYXZlZENoYW5nZXM6IF9zZXRTYXZlZENoYW5nZXMsXG4gICAgc291cmNlTGFuZ3VhZ2U6IGlzTlRfID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HLFxuICAgIHRhcmdldExhbmd1YWdlOiBsYW5ndWFnZSxcbiAgICB0aXRsZTogc2NyaXB0dXJlVGl0bGUsXG4gICAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiByZWYsXG4gIH1cblxuICAvKipcbiAgICogdGhpcyBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIHNjcmlwdHVyZSBwYW5lIGhhcyBhIGNoYW5nZSBpbiBzYXZlIHN0YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjdXJyZW50SW5kZXhcbiAgICogQHBhcmFtIHtib29sZWFufSBzYXZlZFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBnZXRDaGFuZ2VzIC0gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgdXNlciBjbGlja3Mgc2F2ZSBidXR0b25cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2xlYXJDaGFuZ2VzIC0gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgc2F2ZSBoYXMgY29tcGxldGVkXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBzdGF0ZSAtIGN1cnJlbnQgc3RhdGUgb2Ygd29yZCBhbGlnbm1lbnQvZWRpdFxuICAgKi9cbiAgZnVuY3Rpb24gX3NldFNhdmVkQ2hhbmdlcyhjdXJyZW50SW5kZXgsIHNhdmVkLCB7IGdldENoYW5nZXMgPSBudWxsLCBjbGVhckNoYW5nZXMgPSBudWxsLCBzdGF0ZSA9IG51bGwgfSkge1xuICAgIGNvbnN0IF91bnNhdmVkQ2hhbmdlc0xpc3QgPSB7IC4uLnVuc2F2ZWRDaGFuZ2VzTGlzdCB9XG5cbiAgICBpZiAoc2F2ZWQpIHtcbiAgICAgIGlmIChfdW5zYXZlZENoYW5nZXNMaXN0Lmhhc093blByb3BlcnR5KGN1cnJlbnRJbmRleCkpIHtcbiAgICAgICAgZGVsZXRlIF91bnNhdmVkQ2hhbmdlc0xpc3RbY3VycmVudEluZGV4XVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF0gPSB7IGdldENoYW5nZXMsIGNsZWFyQ2hhbmdlcywgc3RhdGUgfSAvLyB1cGRhdGUgd2l0aCBsYXRlc3RcbiAgICB9XG5cbiAgICBjb25zdCBfaGF2ZVVuc2F2ZWRDaGFuZ2VzID0gISFPYmplY3Qua2V5cyhfdW5zYXZlZENoYW5nZXNMaXN0KS5sZW5ndGhcblxuICAgIGlmIChoYXZlVW5zYXZlZENoYW5nZXMgIT0gX2hhdmVVbnNhdmVkQ2hhbmdlcykge1xuICAgICAgc2V0U2F2ZWRDaGFuZ2VzICYmIHNldFNhdmVkQ2hhbmdlcyhyZXNvdXJjZUlkLCAhX2hhdmVVbnNhdmVkQ2hhbmdlcylcbiAgICAgIHNldFN0YXRlKHsgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBfaGF2ZVVuc2F2ZWRDaGFuZ2VzIH0pXG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKF91bnNhdmVkQ2hhbmdlc0xpc3QsIHVuc2F2ZWRDaGFuZ2VzTGlzdCkpIHtcbiAgICAgIHNldFN0YXRlKHsgdW5zYXZlZENoYW5nZXNMaXN0OiBfdW5zYXZlZENoYW5nZXNMaXN0IH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHNlYXJjaCBjaGFwdGVyIG9yIHZlcnNlIGNodW5rIHRvIGxpbmUgdGhhdCBzdGFydHMgd2l0aCBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IGZpbmRJdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGNodW5rc1xuICAgKi9cbiAgZnVuY3Rpb24gZmluZFJlZkluQXJyYXkoZmluZEl0ZW0sIGNodW5rcykge1xuICAgIGNvbnN0IHJlZl8gPSBmaW5kSXRlbSArICcnXG4gICAgY29uc3QgcmVmTGVuID0gcmVmXy5sZW5ndGhcbiAgICBjb25zdCBpbmRleCA9IGNodW5rcy5maW5kSW5kZXgoKGNodW5rLCBpZHgpID0+IHtcbiAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgIGlmIChjaHVuay5zdWJzdHJpbmcoMCwgcmVmTGVuKSA9PT0gcmVmXykge1xuICAgICAgICAgIGNvbnN0IG5leHRDaGFyID0gY2h1bmtbcmVmTGVuXVxuXG4gICAgICAgICAgaWYgKChuZXh0Q2hhciA+ICc5JykgfHwgKG5leHRDaGFyIDwgJzAnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gICAgcmV0dXJuIGluZGV4XG4gIH1cblxuICBmdW5jdGlvbiBnZXRCb29rTmFtZSgpIHtcbiAgICBjb25zdCBib29rQ2FwcyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlPy5wcm9qZWN0SWQgPyBzY3JpcHR1cmVDb25maWcucmVmZXJlbmNlLnByb2plY3RJZC50b1VwcGVyQ2FzZSgpIDogJydcbiAgICByZXR1cm4gYCR7Ym9va0luZGV4fS0ke2Jvb2tDYXBzfS51c2ZtYFxuICB9XG5cbiAgY29uc3QgZmlsZXBhdGggPSBnZXRCb29rTmFtZSgpXG5cbiAgLy8ga2VlcCB0cmFjayBvZiB2ZXJzZSBlZGl0IHN0YXRlXG4gIGNvbnN0IHsgb25TYXZlRWRpdCB9ID0gdXNlRWRpdCh7XG4gICAgc2hhLFxuICAgIG93bmVyLFxuICAgIGNvbnRlbnQ6IHNhdmVDb250ZW50LFxuICAgIGNvbmZpZzoge1xuICAgICAgY2FjaGU6IHsgbWF4QWdlOiAwIH0sXG4gICAgICAuLi5hdXRoZW50aWNhdGlvbj8uY29uZmlnLFxuICAgICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRpbWVvdXQ6IGh0dHBDb25maWc/LnNlcnZlclRpbWVPdXQgfHwgaHR0cENvbmZpZz8udGltZW91dCB8fCA1MDAwLFxuICAgIH0sXG4gICAgYXV0aG9yOiBsb2dnZWRJblVzZXIsXG4gICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICBicmFuY2g6IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICBmaWxlcGF0aCxcbiAgICByZXBvLFxuICB9KVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gc3RhcnRTYXZlIGdvZXMgdHJ1ZSwgc2F2ZSBlZGl0cyB0byB1c2VyIGJyYW5jaCBhbmQgdGhlbiBjbGVhciBzdGFydFNhdmVcbiAgICBjb25zdCBfc2F2ZUVkaXQgPSBhc3luYyAoKSA9PiB7IC8vIGJlZ2luIHVwbG9hZGluZyBuZXcgVVNGTVxuICAgICAgbGV0IGJyYW5jaCA9ICh3b3JraW5nUmVzb3VyY2VCcmFuY2ggIT09ICdtYXN0ZXInKSA/IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCA6IHVuZGVmaW5lZFxuXG4gICAgICBpZiAoIWJyYW5jaCkge1xuICAgICAgICBicmFuY2ggPSBhd2FpdCBzdGFydEVkaXRCcmFuY2goKSAvLyBtYWtlIHN1cmUgdXNlciBicmFuY2ggZXhpc3RzIGFuZCBnZXQgbmFtZVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBvblNhdmVFZGl0KGJyYW5jaCkudGhlbigoc3VjY2VzcykgPT4geyAvLyBwdXNoIGNoYW5nZWQgdG8gc2VydmVyXG4gICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2ZSBzY3JpcHR1cmUgZWRpdHMgc3VjY2Vzc2ApXG4gICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgY29uc3QgdW5zYXZlZENhcmRJbmRpY2VzID0gT2JqZWN0LmtleXModW5zYXZlZENoYW5nZXNMaXN0KVxuXG4gICAgICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICAgICAgY29uc3QgeyBjbGVhckNoYW5nZXMgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkSW5kZXhdXG4gICAgICAgICAgICAgIGNsZWFyQ2hhbmdlcyAmJiBjbGVhckNoYW5nZXMoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnNvbGUuaW5mbygnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBSZWxvYWRpbmcgcmVzb3VyY2UnKVxuICAgICAgICAgIHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2UoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCcpXG4gICAgICAgICAgc2V0U3RhdGUoeyBzdGFydFNhdmU6IGZhbHNlIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0U2F2ZSkge1xuICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGNhbGxpbmcgX3NhdmVFZGl0KClgKVxuICAgICAgX3NhdmVFZGl0KClcbiAgICB9XG4gIH0sIFtzdGFydFNhdmVdKVxuXG4gIC8qKlxuICAgKiBjb252ZXJ0IHVwZGF0ZWRWZXJzZU9iamVjdHMgdG8gVVNGTSBhbmQgbWVyZ2UgaW50byB0aGUgYmlibGVVc2ZtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZVVzZm0gLSBVU0ZNIG9mIGJpYmxlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZWYgLSByZWZlcmVuY2Ugb2YgdmVyc2UgdG8gbWVyZ2UgaW5cbiAgICogQHBhcmFtIHtvYmplY3RbXX0gdXBkYXRlZFZlcnNlT2JqZWN0cyAtIG5ldyB2ZXJzZSBpbiB2ZXJzZU9iamVjdCBmb3JtYXRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGNhcmROdW1cbiAgICovXG4gIGZ1bmN0aW9uIG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm0sIHJlZiwgdXBkYXRlZFZlcnNlT2JqZWN0cywgY2FyZE51bTogbnVtYmVyKSB7XG4gICAgbGV0IG5ld1VzZm1cbiAgICBjb25zdCBjaGFwdGVyQ2h1bmtzID0gYmlibGVVc2ZtPy5zcGxpdCgnXFxcXGMgJylcbiAgICBjb25zdCBjaGFwdGVySW5kZXggPSBmaW5kUmVmSW5BcnJheShyZWY/LmNoYXB0ZXIsIGNoYXB0ZXJDaHVua3MpXG5cbiAgICBpZiAoY2hhcHRlckluZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRDaGFwdGVyID0gY2hhcHRlckNodW5rc1tjaGFwdGVySW5kZXhdXG4gICAgICBjb25zdCB2ZXJzZUNodW5rcyA9IGN1cnJlbnRDaGFwdGVyLnNwbGl0KCdcXFxcdiAnKVxuICAgICAgY29uc3QgdmVyc2VJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8udmVyc2UsIHZlcnNlQ2h1bmtzKVxuXG4gICAgICBpZiAodmVyc2VJbmRleCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZlcnNlVXNmbSA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTSh1cGRhdGVkVmVyc2VPYmplY3RzKVxuICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCR7Y2FyZE51bX0pIC0gbmV3IFVTRk0gZm9yIGNhcmQ6fSAtICR7bmV3VmVyc2VVc2ZtLnN1YnN0cmluZygwLCAxMDApfWApXG4gICAgICAgIGNvbnN0IG9sZFZlcnNlID0gdmVyc2VDaHVua3NbdmVyc2VJbmRleF1cbiAgICAgICAgY29uc3QgdmVyc2VOdW1MZW4gPSAocmVmPy52ZXJzZSArICcnKS5sZW5ndGhcbiAgICAgICAgdmVyc2VDaHVua3NbdmVyc2VJbmRleF0gPSBvbGRWZXJzZS5zdWJzdHJpbmcoMCwgdmVyc2VOdW1MZW4gKyAxKSArIG5ld1ZlcnNlVXNmbVxuICAgICAgICBjb25zdCBuZXdDaGFwdGVyID0gdmVyc2VDaHVua3Muam9pbignXFxcXHYgJylcbiAgICAgICAgY2hhcHRlckNodW5rc1tjaGFwdGVySW5kZXhdID0gbmV3Q2hhcHRlclxuICAgICAgICBuZXdVc2ZtID0gY2hhcHRlckNodW5rcy5qb2luKCdcXFxcYyAnKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3VXNmbVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZm9yIGVhY2ggdW5zYXZlZCBjaGFuZ2UsIGNhbGwgaW50byB2ZXJzZVBhbmUgdG8gZ2V0IGxhdGVzdCBjaGFuZ2VzIGZvciB2ZXJzZSB0byBzYXZlXG4gICAgaWYgKHNhdmVDbGlja2VkKSB7XG4gICAgICBjb25zdCB1bnNhdmVkQ2FyZEluZGljZXMgPSBPYmplY3Qua2V5cyh1bnNhdmVkQ2hhbmdlc0xpc3QpXG5cbiAgICAgIGlmICh1bnNhdmVkQ2FyZEluZGljZXM/Lmxlbmd0aCkge1xuICAgICAgICBsZXQgYmlibGVVc2ZtID0gY29yZS5nZXRSZXNwb25zZURhdGEoc2NyaXB0dXJlQ29uZmlnPy5mZXRjaFJlc3BvbnNlKVxuICAgICAgICBsZXQgbWVyZ2VGYWlsID0gZmFsc2VcbiAgICAgICAgbGV0IGNhcmROdW0gPSAwXG5cbiAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgY2FyZE51bSA9IHBhcnNlSW50KGNhcmRJbmRleClcbiAgICAgICAgICBjb25zdCB7IGdldENoYW5nZXMsIHN0YXRlIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZE51bV1cblxuICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICBsZXQgbmV3VXNmbVxuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAgICAgICB9ID0gZ2V0Q2hhbmdlcyhzdGF0ZSlcblxuICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgYmlibGVVc2ZtKSB7IC8vIGp1c3QgcmVwbGFjZSB2ZXJzZVxuICAgICAgICAgICAgICBuZXdVc2ZtID0gbWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtKGJpYmxlVXNmbSwgcmVmLCB1cGRhdGVkVmVyc2VPYmplY3RzLCBjYXJkTnVtKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmV3VXNmbSkge1xuICAgICAgICAgICAgICBiaWJsZVVzZm0gPSBuZXdVc2ZtXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtZXJnZUZhaWwgPSB0cnVlXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1lcmdlRmFpbCkgeyAvLyBpZiB3ZSBmYWlsZWQgdG8gbWVyZ2UsIGZhbGxiYWNrIHRvIGJydXRlIGZvcmNlIHZlcnNlIG9iamVjdHMgdG8gVVNGTVxuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoJHtjYXJkTnVtfSkgLSB2ZXJzZSBub3QgZm91bmQsIGZhbGxpbmcgYmFjayB0byBpbnNlcnRpbmcgdmVyc2Ugb2JqZWN0YClcbiAgICAgICAgICBsZXQgbmV3Qm9va0pzb25cblxuICAgICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgICAgY29uc3QgY2FyZE51bSA9IHBhcnNlSW50KGNhcmRJbmRleClcbiAgICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgICBpZiAoZ2V0Q2hhbmdlcykge1xuICAgICAgICAgICAgICBsZXQgbmV3VXNmbVxuICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgICB9ID0gZ2V0Q2hhbmdlcyhzdGF0ZSlcblxuICAgICAgICAgICAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiAhbmV3VXNmbSkge1xuICAgICAgICAgICAgICAgIGxldCB0YXJnZXRWZXJzZU9iamVjdHNfID0gbnVsbFxuXG4gICAgICAgICAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgICAgaWYgKG5ld1ZlcnNlVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSh1cGRhdGVkVmVyc2VPYmplY3RzLCBuZXdWZXJzZVRleHQpXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFZlcnNlT2JqZWN0c18gPSB0YXJnZXRWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBuZXdCb29rSnNvbiA9IHRhcmdldFZlcnNlT2JqZWN0c18gJiYgc2NyaXB0dXJlQ29uZmlnPy51cGRhdGVWZXJzZShyZWYuY2hhcHRlciwgcmVmLnZlcnNlLCB7IHZlcnNlT2JqZWN0czogdGFyZ2V0VmVyc2VPYmplY3RzXyB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJpYmxlVXNmbSA9IHVzZm1qcy50b1VTRk0obmV3Qm9va0pzb24sIHsgZm9yY2VkTmV3TGluZXM6IHRydWUgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmluZyBuZXcgVVNGTTogJHtiaWJsZVVzZm0uc3Vic3RyaW5nKDAsIDEwMCl9Li4uYClcbiAgICAgICAgc2V0U3RhdGUoeyBzYXZlQ29udGVudDogYmlibGVVc2ZtLCBzdGFydFNhdmU6IHRydWUsIHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3NhdmVDbGlja2VkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNFcXVhbCh2ZXJzZXNGb3JSZWYsIHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmKSkge1xuICAgICAgY29uc3QgdmVyc2VzRm9yUmVmID0gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWZcbiAgICAgIHNldFN0YXRlKHsgdmVyc2VzRm9yUmVmIH0pXG5cbiAgICAgIGZvciAoY29uc3QgdmVyc2VSZWYgb2YgdmVyc2VzRm9yUmVmIHx8IFtdKSB7XG4gICAgICAgIC8vIGNoZWNrIGZvciB2ZXJzZSByYW5nZVxuICAgICAgICBjb25zdCBfdmVyc2UgPSB2ZXJzZVJlZi52ZXJzZVxuXG4gICAgICAgIGlmIChhZGRWZXJzZVJhbmdlICYmICh0eXBlb2YgX3ZlcnNlID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgaWYgKF92ZXJzZS5pbmNsdWRlcygnLScpKSB7XG4gICAgICAgICAgICBhZGRWZXJzZVJhbmdlKGAke3NjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlPy5jaGFwdGVyfToke192ZXJzZX1gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFN0YXRlKHsgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiBudWxsIH0pXG4gIH0sIFt2ZXJzZV0pXG5cbiAgY29uc3QgbmVlZFRvTWVyZ2VGcm9tTWFzdGVyID0gbWVyZ2VGcm9tTWFzdGVyPy5tZXJnZU5lZWRlZFxuICBjb25zdCBtZXJnZUZyb21NYXN0ZXJIYXNDb25mbGljdHMgPSBtZXJnZUZyb21NYXN0ZXI/LmNvbmZsaWN0XG4gIGNvbnN0IG1lcmdlVG9NYXN0ZXJIYXNDb25mbGljdHMgPSBtZXJnZVRvTWFzdGVyPy5jb25mbGljdFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICBjb25zdCBtZXJnZUZyb21NYXN0ZXJUaXRsZSA9IG1lcmdlRnJvbU1hc3Rlckhhc0NvbmZsaWN0cyA/ICdNZXJnZSBDb25mbGljdHMgZm9yIHVwZGF0ZSBmcm9tIG1hc3RlcicgOiAobmVlZFRvTWVyZ2VGcm9tTWFzdGVyID8gJ1VwZGF0ZSBmcm9tIG1hc3RlcicgOiAnTm8gbWVyZ2UgY29uZmxpY3RzIGZvciB1cGRhdGUgd2l0aCBtYXN0ZXInKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmVzdGVkLXRlcm5hcnlcbiAgY29uc3QgbWVyZ2VGcm9tTWFzdGVyQ29sb3IgPSBtZXJnZUZyb21NYXN0ZXJIYXNDb25mbGljdHMgPyAnYmxhY2snIDogKG5lZWRUb01lcmdlRnJvbU1hc3RlciA/ICdibGFjaycgOiAnbGlnaHRncmF5JylcbiAgY29uc3QgbWVyZ2VUb01hc3RlclRpdGxlID0gbWVyZ2VUb01hc3Rlckhhc0NvbmZsaWN0cyA/ICdNZXJnZSBDb25mbGljdHMgZm9yIHNoYXJlIHdpdGggbWFzdGVyJyA6ICdObyBtZXJnZSBjb25mbGljdHMgZm9yIHNoYXJlIHdpdGggbWFzdGVyJ1xuICBjb25zdCBtZXJnZVRvTWFzdGVyQ29sb3IgPSBtZXJnZVRvTWFzdGVySGFzQ29uZmxpY3RzID8gJ2JsYWNrJyA6ICdibGFjaydcblxuICBjb25zdCB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgPSAocmVmZXJlbmNlLCBhbGlnbmVkKSA9PiB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiB7Li4ucHJldlN0YXRlLnZlcnNlc0FsaWdubWVudFN0YXR1cywgW2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXTogYWxpZ25lZH0sXG4gICAgfSkpXG4gIH1cblxuICBjb25zdCByZW5kZXJlZFNjcmlwdHVyZVBhbmVzID0gdmVyc2VzRm9yUmVmPy5tYXAoKF9jdXJyZW50VmVyc2VEYXRhLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGluaXRpYWxWZXJzZU9iamVjdHMgPSBfY3VycmVudFZlcnNlRGF0YT8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHMgfHwgbnVsbFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSBfY3VycmVudFZlcnNlRGF0YSB8fCB7fVxuICAgIGNvbnN0IF9yZWZlcmVuY2UgPSB7XG4gICAgICAuLi5yZWZlcmVuY2UsXG4gICAgICBjaGFwdGVyLFxuICAgICAgdmVyc2UsXG4gICAgfVxuICAgIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgICAgLi4uc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgICAgIGN1cnJlbnRJbmRleDogaW5kZXgsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgcmVmZXJlbmNlOiBfcmVmZXJlbmNlLFxuICAgIH1cblxuICAgIGxldCBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgPSBmYWxzZVxuICAgIGlmICh2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50KSB7XG4gICAgICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgPSB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LmNoYXB0ZXIgPT09IGNoYXB0ZXIgJiYgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudC52ZXJzZSA9PT0gdmVyc2VcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNjcmlwdHVyZVBhbmVcbiAgICAgICAgey4uLnNjcmlwdHVyZUNvbmZpZ31cbiAgICAgICAgY29udGVudFN0eWxlPXtjb250ZW50U3R5bGV9XG4gICAgICAgIGN1cnJlbnRJbmRleD17aW5kZXh9XG4gICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcl99XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICBpc05UPXtpc05UX31cbiAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgcmVmU3R5bGU9e3JlZlN0eWxlfVxuICAgICAgICByZWZlcmVuY2U9e19yZWZlcmVuY2V9XG4gICAgICAgIHNhdmluZz17c3RhcnRTYXZlfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc9e19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnfVxuICAgICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cz17c2V0V29yZEFsaWduZXJTdGF0dXN9XG4gICAgICAgIHNlcnZlcj17c2VydmVyfVxuICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgbWVyZ2luZz17bWVyZ2luZ31cbiAgICAgICAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50PXtpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnR9XG4gICAgICAgIG9uQWxpZ25tZW50RmluaXNoPXsoKSA9PiBzZXRTdGF0ZSh7IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IG51bGwgfSl9XG4gICAgICAgIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cz17dXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzfVxuICAgICAgLz5cbiAgICApXG4gIH0pXG5cbiAgY29uc3QgYWxpZ25CdXR0b25UZXh0ID0gJ0FsaWduIFZlcnNlKHMpJ1xuICAvLyBUT0RPOiBjaGFuZ2UgYnV0dG9uIGhvdmVyIHRleHQgaWYgYWxsIHZlcnNlcyBhcmUgYWxpZ25lZFxuICAvLyBjb25zdCBjaGVja2luZ1N0YXRlID0gYWxpZ25lZCA/ICd2YWxpZCcgOiAnaW52YWxpZCdcbiAgLy8gY29uc3QgYWxpZ25CdXR0b25UZXh0ID0gY2hlY2tpbmdTdGF0ZSA9PT0gJ3ZhbGlkJyA/ICdBbGlnbm1lbnQgaXMgVmFsaWQnIDogJ0FsaWdubWVudCBpcyBJbnZhbGlkJ1xuXG4gIGNvbnN0IGhhbmRsZUFsaWduQnV0dG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID4gMSkge1xuICAgICAgc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IHRydWUgfSlcbiAgICB9IGVsc2UgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID09PSAxKSB7XG4gICAgICBzZXRTdGF0ZSh7IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlc0ZvclJlZlswXSB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG9uUmVuZGVyVG9vbGJhciA9ICh7IGl0ZW1zIH0pID0+IHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi5pdGVtc11cblxuICAgIGxldCBhbGxWZXJzZXNBbGlnbmVkID0gZmFsc2VcbiAgICAvLyBDaGVjayBpZiBhbGwgdmFsdWVzIGluIHZlcnNlc0FsaWdubWVudFN0YXR1cyBhcmUgdHJ1ZVxuICAgIGlmICh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpIHtcbiAgICAgIGFsbFZlcnNlc0FsaWduZWQgPSBPYmplY3QudmFsdWVzKHZlcnNlc0FsaWdubWVudFN0YXR1cykuZXZlcnkoYWxpZ25TdGF0dXMgPT4gYWxpZ25TdGF0dXMgPT09IHRydWUpXG4gICAgfVxuICAgIGxldCBhbGlnbkljb24gPSBudWxsXG4gICAgaWYgKGFsbFZlcnNlc0FsaWduZWQpIHtcbiAgICAgIGFsaWduSWNvbiA9IDxSeExpbmsyIGlkPXtgdmFsaWRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyNCQkInIC8+XG4gICAgfSBlbHNlIHtcbiAgICAgIGFsaWduSWNvbiA9IDxSeExpbmtCcmVhazIgaWQ9e2BpbnZhbGlkX2FsaWdubWVudF9pY29uXyR7cmVzb3VyY2VJZH1gfSBjb2xvcj0nIzAwMCcgLz5cbiAgICB9XG5cbiAgICBpZiAoc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgcmVzb3VyY2VJZCAhPT0gJ09SSUdJTkFMX1NPVVJDRScpIHtcbiAgICAgIG5ld0l0ZW1zLnB1c2goXG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgaWQ9e2BhbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH1cbiAgICAgICAgICBrZXk9J2NoZWNraW5nLWJ1dHRvbidcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVBbGlnbkJ1dHRvbkNsaWNrfVxuICAgICAgICAgIHRpdGxlPXthbGlnbkJ1dHRvblRleHR9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YWxpZ25CdXR0b25UZXh0fVxuICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogJ3BvaW50ZXInIH19XG4gICAgICAgID5cbiAgICAgICAgICB7YWxpZ25JY29ufVxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKG1lcmdlRnJvbU1hc3Rlcikge1xuICAgICAgbmV3SXRlbXMucHVzaChcbiAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubWFyZ2lufVxuICAgICAgICAgIGtleT0ndXBkYXRlLWZyb20tbWFzdGVyJ1xuICAgICAgICAgIG9uQ2xpY2s9e21lcmdlRnJvbU1hc3RlckludG9Vc2VyQnJhbmNofVxuICAgICAgICAgIHRpdGxlPXttZXJnZUZyb21NYXN0ZXJUaXRsZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXttZXJnZUZyb21NYXN0ZXJUaXRsZX1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICA+XG4gICAgICAgICAge21lcmdlRnJvbU1hc3Rlckhhc0NvbmZsaWN0cyA/XG4gICAgICAgICAgICA8TWRVcGRhdGVEaXNhYmxlZCBpZD0ndXBkYXRlLWZyb20tbWFzdGVyLWljb24nIGNvbG9yPXttZXJnZUZyb21NYXN0ZXJDb2xvcn0gLz5cbiAgICAgICAgICAgIDpcbiAgICAgICAgICAgIDxNZFVwZGF0ZSBpZD0ndXBkYXRlLWZyb20tbWFzdGVyLWljb24nIGNvbG9yPXttZXJnZUZyb21NYXN0ZXJDb2xvcn0gLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIClcbiAgICB9XG4gICAgaWYgKG1lcmdlVG9NYXN0ZXIpIHtcbiAgICAgIG5ld0l0ZW1zLnB1c2goXG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm1hcmdpbn1cbiAgICAgICAgICBrZXk9J3NoYXJlLXRvLW1hc3RlcidcbiAgICAgICAgICBvbkNsaWNrPXttZXJnZVRvTWFzdGVyRnJvbVVzZXJCcmFuY2h9XG4gICAgICAgICAgdGl0bGU9e21lcmdlVG9NYXN0ZXJUaXRsZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXttZXJnZVRvTWFzdGVyVGl0bGV9XG4gICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHttZXJnZVRvTWFzdGVySGFzQ29uZmxpY3RzID9cbiAgICAgICAgICAgIDxNZFVwZGF0ZURpc2FibGVkIGlkPSdzaGFyZS10by1tYXN0ZXItaWNvbicgY29sb3I9e21lcmdlVG9NYXN0ZXJDb2xvcn0gLz5cbiAgICAgICAgICAgIDpcbiAgICAgICAgICAgIDxGaVNoYXJlIGlkPSdzaGFyZS10by1tYXN0ZXItaWNvbicgY29sb3I9e21lcmdlVG9NYXN0ZXJDb2xvcn0gLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIG5ld0l0ZW1zO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPENhcmRcbiAgICAgICAgaWQ9e2BzY3JpcHR1cmVfY2FyZF8ke2NhcmROdW19YH1cbiAgICAgICAgdGl0bGU9e3NjcmlwdHVyZUxhYmVsfVxuICAgICAgICBzZXR0aW5nc1RpdGxlPXtzY3JpcHR1cmVUaXRsZSArICcgU2V0dGluZ3MnfVxuICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAgIGhlYWRlcnM9e2hlYWRlcnN9XG4gICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgaXRlbUluZGV4PXtpdGVtSW5kZXh9XG4gICAgICAgIHNldEZpbHRlcnM9e3NldEZpbHRlcnN9XG4gICAgICAgIHNldEZvbnRTaXplPXtzZXRGb250U2l6ZX1cbiAgICAgICAgc2V0SXRlbUluZGV4PXtzZXRJdGVtSW5kZXh9XG4gICAgICAgIG1hcmtkb3duVmlldz17bWFya2Rvd25WaWV3fVxuICAgICAgICBzZXRNYXJrZG93blZpZXc9e3NldE1hcmtkb3duVmlld31cbiAgICAgICAgZ2V0Q3VzdG9tQ29tcG9uZW50PXtnZXRTY3JpcHR1cmVTZWxlY3Rvcn1cbiAgICAgICAgaGlkZU1hcmtkb3duVG9nZ2xlXG4gICAgICAgIG9uTWVudUNsb3NlPXtvbk1lbnVDbG9zZX1cbiAgICAgICAgb25NaW5pbWl6ZT17b25NaW5pbWl6ZSA/ICgpID0+IG9uTWluaW1pemUoaWQpIDogbnVsbH1cbiAgICAgICAgZWRpdGFibGU9e2VuYWJsZUVkaXQgfHwgZW5hYmxlQWxpZ25tZW50fVxuICAgICAgICBzYXZlZD17c3RhcnRTYXZlIHx8ICFoYXZlVW5zYXZlZENoYW5nZXN9XG4gICAgICAgIG9uU2F2ZUVkaXQ9eygpID0+IHNldFN0YXRlKHsgc2F2ZUNsaWNrZWQ6IHRydWUgfSl9XG4gICAgICAgIG9uUmVuZGVyVG9vbGJhcj17b25SZW5kZXJUb29sYmFyfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGlkPVwic2NyaXB0dXJlLXBhbmUtbGlzdFwiPlxuICAgICAgICAgIHtyZW5kZXJlZFNjcmlwdHVyZVBhbmVzfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvQ2FyZD5cbiAgICAgIDxWZXJzZVNlbGVjdG9yUG9wdXBcbiAgICAgICAgcmVzb3VyY2VJZD17cmVzb3VyY2VJZH1cbiAgICAgICAgb3Blbj17c2hvd0FsaWdubWVudFBvcHVwfVxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRTdGF0ZSh7IHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2UgfSl9XG4gICAgICAgIHZlcnNlc0ZvclJlZj17dmVyc2VzRm9yUmVmfVxuICAgICAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM9e3ZlcnNlc0FsaWdubWVudFN0YXR1c31cbiAgICAgICAgb25WZXJzZVNlbGVjdD17KHZlcnNlKSA9PiBzZXRTdGF0ZSh7XG4gICAgICAgICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogdmVyc2UsXG4gICAgICAgICAgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZVxuICAgICAgICB9KX1cbiAgICAgIC8+XG4gICAgPC8+XG4gIClcbn1cblxuU2NyaXB0dXJlQ2FyZC5wcm9wVHlwZXMgPSB7XG4gIC8qKiBodG1sIGlkZW50aWZpZXIgdG8gdXNlIGZvciBjYXJkICovXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogbWV0aG9kIHRvIGRldGVybWluZSBpZiBOVCBvciBPVCAqL1xuICBpc05UOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAvKiogdGl0bGUgZm9yIHNjcmlwdHVyZSBjYXJkICovXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBnZXQgbGFuZ3VhZ2UgZGV0YWlscyAqL1xuICBnZXRMYW5ndWFnZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHNjcmlwdHVyZSBjYXJkIG51bWJlciAoMCB0byAyIGZvciBleGFtcGxlKSAqL1xuICBjYXJkTnVtOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIC8qKiByZXNvdXJjZSBvYmplY3QgKi9cbiAgcmVzb3VyY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIHJlc291cmNlIGxhbmd1YWdlIHRvIHVzZSAqL1xuICAgIGxhbmd1YWdlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXNvdXJjZUlkIHRvIHVzZSAoZS5nLiB1Z250KSAqL1xuICAgIHJlc291cmNlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VzIHN1Y2ggYXMgdW5mb2xkaW5nV29yZCAqL1xuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9KSxcbiAgcmVmZXJlbmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiBwcm9qZWN0SWQgKGJvb2tJRCkgdG8gdXNlICovXG4gICAgcHJvamVjdElkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgY2hhcHRlciBudW1iZXIgKi9cbiAgICBjaGFwdGVyOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgICAvKiogY3VycmVudCB2ZXJzZSBudW1iZXIgKi9cbiAgICB2ZXJzZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gIH0pLFxuICAvKiogc2VydmVyIChlLmcuICdodHRwczovL2dpdC5kb29yNDMub3JnJykgKi9cbiAgc2VydmVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiByZXBvIGJyYW5jaCBvciB0YWcgc3VjaCBhcyBtYXN0ZXIgKi9cbiAgYXBwUmVmOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBpZiB0cnVlIHRoZW4gd29yZCBkYXRhIGhvdmVyIGlzIHNob3duICovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKiBDU1MgY2xhc3NlcyAqL1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogcmVzb3VyY2VMaW5rICovXG4gIHJlc291cmNlTGluazogUHJvcFR5cGVzLmFueSxcbiAgLyoqIHVzZSBtZXRob2QgZm9yIHVzaW5nIGxvY2FsIHN0b3JhZ2Ugc3BlY2lmaWMgZm9yIHVzZXIgKi9cbiAgdXNlVXNlckxvY2FsU3RvcmFnZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIG9wdGlvbmFsIGNhbGxiYWNrIGlmIGVycm9yIGxvYWRpbmcgcmVzb3VyY2UsIHBhcmFtZXRlciByZXR1cm5lZCBhcmU6XG4gICAqICAgICh7c3RyaW5nfSBlcnJvck1lc3NhZ2UsIHtib29sZWFufSBpc0FjY2Vzc0Vycm9yLCB7b2JqZWN0fSByZXNvdXJjZVN0YXR1cylcbiAgICogICAgICAtIGlzQWNjZXNzRXJyb3IgLSBpcyB0cnVlIGlmIHRoaXMgd2FzIGFuIGVycm9yIHRyeWluZyB0byBhY2Nlc3MgZmlsZVxuICAgKiAgICAgIC0gcmVzb3VyY2VTdGF0dXMgLSBpcyBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGFib3V0IHByb2JsZW1zIGZldGNoaW5nIHJlc291cmNlICovXG4gIG9uUmVzb3VyY2VFcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBvcHRpb25hbCBodHRwIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciBmZXRjaGluZyByZXNvdXJjZXMsIGRlZmF1bHQgaXMgMCAodmVyeSBsb25nIHdhaXQpICovXG4gIGh0dHBDb25maWc6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBvcHRpb25hbCB1cmwgZm9yIGdyZWVrIHJlcG8gKi9cbiAgZ3JlZWtSZXBvVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBoZWJyZXcgcmVwbyAqL1xuICBoZWJyZXdSZXBvVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gcHJlLWxvYWQgbGV4aWNvbiBkYXRhIGZvciB2ZXJzZSAqL1xuICBmZXRjaEdsb3NzZXNGb3JWZXJzZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBmdW5jdGlvbiB0byBtaW5pbWl6ZSB0aGUgY2FyZCAob3B0aW9uYWwpICovXG4gIG9uTWluaW1pemU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogdXNlci1uYW1lICovXG4gIGxvZ2dlZEluVXNlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGF1dGhlbnRpY2F0aW9uIGluZm8gKi9cbiAgYXV0aGVudGljYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBmdW5jdGlvbiB0byBzZXQgc3RhdGUgaW4gYXBwIHRoYXQgdGhlcmUgYXJlIHVuc2F2ZWQgY2hhbmdlcyAqL1xuICBzZXRTYXZlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogaW5kZXggZm9yIGN1cnJlbnQgYm9vayAoZS5nLiAnMDEnIGZvciAnZ2VuJykqL1xuICBib29rSW5kZXg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBjYWxsYmFjayB0byBpbmRpY2F0ZSB0aGF0IHdlIGFyZSB1c2luZyBhIHZlcnNlIHJhbmdlIGhlcmUgKi9cbiAgYWRkVmVyc2VSYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgd29yZCBhbGlnbmVyIHN0YXRlICovXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqY2FsbGJhY2sgdG8gdXBkYXRlIHRoZSBjYXJkJ3MgbWVyZ2Ugc3RhdGUgaW4gYXBwICovXG4gIHVwZGF0ZU1lcmdlU3RhdGU6IFByb3BUeXBlcy5mdW5jLFxufVxuIl19
|
|
@@ -24,8 +24,6 @@ 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 { RxLink2, RxLinkBreak2 } from 'react-icons/rx';
|
|
28
|
-
import { IconButton } from '@mui/material';
|
|
29
27
|
import { ScriptureReference } from '../../types';
|
|
30
28
|
import { getResourceMessage } from '../../utils';
|
|
31
29
|
import { ScriptureALignmentEditProps, useScriptureAlignmentEdit } from "../../hooks/useScriptureAlignmentEdit";
|
|
@@ -70,7 +68,10 @@ function ScripturePane(_ref) {
|
|
|
70
68
|
scriptureAlignmentEditConfig = _ref.scriptureAlignmentEditConfig,
|
|
71
69
|
setSavedChanges = _ref.setSavedChanges,
|
|
72
70
|
setWordAlignerStatus = _ref.setWordAlignerStatus,
|
|
73
|
-
merging = _ref.merging
|
|
71
|
+
merging = _ref.merging,
|
|
72
|
+
isVerseSelectedForAlignment = _ref.isVerseSelectedForAlignment,
|
|
73
|
+
onAlignmentFinish = _ref.onAlignmentFinish,
|
|
74
|
+
updateVersesAlignmentStatus = _ref.updateVersesAlignmentStatus;
|
|
74
75
|
|
|
75
76
|
var _React$useState = React.useState({
|
|
76
77
|
doingAlignment: false,
|
|
@@ -136,6 +137,14 @@ function ScripturePane(_ref) {
|
|
|
136
137
|
editing = _scriptureAlignmentEd2.editing,
|
|
137
138
|
unsavedChanges = _scriptureAlignmentEd2.unsavedChanges,
|
|
138
139
|
newVerseText = _scriptureAlignmentEd2.newVerseText;
|
|
140
|
+
|
|
141
|
+
if (isVerseSelectedForAlignment && !alignerData && !doingAlignment) {
|
|
142
|
+
handleAlignmentClick();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
React.useEffect(function () {
|
|
146
|
+
updateVersesAlignmentStatus(reference, aligned);
|
|
147
|
+
}, [aligned]);
|
|
139
148
|
React.useEffect(function () {
|
|
140
149
|
if (alignerData && !doingAlignment) {
|
|
141
150
|
setWordAlignerStatus && setWordAlignerStatus(_scriptureAlignmentEdit);
|
|
@@ -147,6 +156,7 @@ function ScripturePane(_ref) {
|
|
|
147
156
|
setState({
|
|
148
157
|
doingAlignment: false
|
|
149
158
|
});
|
|
159
|
+
onAlignmentFinish && onAlignmentFinish();
|
|
150
160
|
}
|
|
151
161
|
}, [_scriptureAlignmentEdit === null || _scriptureAlignmentEdit === void 0 ? void 0 : (_scriptureAlignmentEd3 = _scriptureAlignmentEdit.state) === null || _scriptureAlignmentEd3 === void 0 ? void 0 : _scriptureAlignmentEd3.alignerData]); // dynamically adjust font size
|
|
152
162
|
|
|
@@ -224,22 +234,6 @@ function ScripturePane(_ref) {
|
|
|
224
234
|
disableWordPopover: disableWordPopover,
|
|
225
235
|
getLexiconData: getLexiconData,
|
|
226
236
|
translate: translate
|
|
227
|
-
})), setWordAlignerStatus && /*#__PURE__*/React.createElement(IconButton, {
|
|
228
|
-
key: "checking-button",
|
|
229
|
-
onClick: function onClick() {
|
|
230
|
-
return handleAlignmentClick();
|
|
231
|
-
},
|
|
232
|
-
title: titleText,
|
|
233
|
-
"aria-label": titleText,
|
|
234
|
-
style: {
|
|
235
|
-
cursor: 'pointer'
|
|
236
|
-
}
|
|
237
|
-
}, checkingState === 'valid' ? /*#__PURE__*/React.createElement(RxLink2, {
|
|
238
|
-
id: "valid_icon",
|
|
239
|
-
color: "#BBB"
|
|
240
|
-
}) : /*#__PURE__*/React.createElement(RxLinkBreak2, {
|
|
241
|
-
id: "invalid_icon",
|
|
242
|
-
color: "#000"
|
|
243
237
|
}))));
|
|
244
238
|
}
|
|
245
239
|
|
|
@@ -247,4 +241,4 @@ ScripturePane.defaultProps = {
|
|
|
247
241
|
verseObjects: []
|
|
248
242
|
};
|
|
249
243
|
export default ScripturePane;
|
|
250
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJSeExpbmsyIiwiUnhMaW5rQnJlYWsyIiwiSWNvbkJ1dHRvbiIsIlNjcmlwdHVyZVJlZmVyZW5jZSIsImdldFJlc291cmNlTWVzc2FnZSIsIlNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyIsInVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJDb250YWluZXIiLCJDb250ZW50IiwiTWVzc2FnZVN0eWxlIiwiZGlyZWN0aW9uIiwid2hpdGVTcGFjZSIsImxpbmVIZWlnaHQiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwiaGVpZ2h0Iiwid2lkdGgiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJmb250V2VpZ2h0IiwiVGV4dEFyZWFTdHlsZSIsIm1pbldpZHRoIiwiU2NyaXB0dXJlUGFuZSIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwiY3VycmVudEluZGV4IiwiY29udGVudFN0eWxlIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzZXJ2ZXIiLCJpc05UIiwiZ2V0TGV4aWNvbkRhdGEiLCJ0cmFuc2xhdGUiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJtZXJnaW5nIiwidXNlU3RhdGUiLCJkb2luZ0FsaWdubWVudCIsIm5ld1RleHQiLCJ1cmxFcnJvciIsInN0YXRlIiwic2V0U3RhdGVfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNZXNzYWdlIiwiY2hhcHRlciIsInZlcnNlIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsImFjdGlvbnMiLCJoYW5kbGVBbGlnbm1lbnRDbGljayIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJhbGlnbmVkIiwiYWxpZ25lckRhdGEiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsImVkaXRpbmciLCJ1bnNhdmVkQ2hhbmdlcyIsIm5ld1ZlcnNlVGV4dCIsInVzZUVmZmVjdCIsImNhbGN1bGF0ZWRGb250U2l6ZSIsInVzZU1lbW8iLCJwYXJzZUZsb2F0IiwidGV4dEFyZWFTdHlsZSIsInZlcnNlVGV4dCIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJ2ZXJzZU9iamVjdHMiLCJvblRleHRDaGFuZ2UiLCJldmVudCIsInRhcmdldCIsInZhbHVlIiwiY2hhbmdlZCIsImNvbnNvbGUiLCJsb2ciLCJvbkJsdXIiLCJjaGVja2luZ1N0YXRlIiwidGl0bGVUZXh0IiwicGFkZGluZ0JvdHRvbSIsImN1cnNvciIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLG9CQUFQLE1BQWlDLHlCQUFqQztBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsa0JBQTFDO0FBQ0EsU0FBU0MsT0FBVCxFQUFrQkMsWUFBbEIsUUFBc0MsZ0JBQXRDO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixlQUEzQjtBQUNBLFNBQVNDLGtCQUFULFFBQW1DLGFBQW5DO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsYUFBbkM7QUFDQSxTQUFTQywyQkFBVCxFQUFzQ0MseUJBQXRDLFFBQXVFLHVDQUF2RTtBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLE9BQXBCLFFBQW1D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QUFDLGNBQWpCO0FBQWdDLElBQUEsS0FBSyxFQUFDO0FBQXRDLElBVkosQ0F6QkosQ0FQSixDQURGO0FBbUREOztBQUVENUQsYUFBYSxDQUFDZ0UsWUFBZCxHQUE2QjtBQUFFYixFQUFBQSxZQUFZLEVBQUU7QUFBaEIsQ0FBN0I7QUFFQSxlQUFlbkQsYUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgVmVyc2VPYmplY3RzIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgeyBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IFJ4TGluazIsIFJ4TGlua0JyZWFrMiB9IGZyb20gJ3JlYWN0LWljb25zL3J4J1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnXG5pbXBvcnQgeyBTY3JpcHR1cmVSZWZlcmVuY2UgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IGdldFJlc291cmNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzLCB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXRcIjtcbmltcG9ydCB7IENvbnRhaW5lciwgQ29udGVudCB9IGZyb20gJy4vc3R5bGVkJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgY29udGVudCAqKi9cbiAgY29udGVudFN0eWxlOiBhbnk7XG4gIC8vIGluZGV4IG51bWJlciBmb3IgdGhpcyBzY3JpcHR1cmUgcGFuZVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBmb250IHNpemUgZm9yIG1lc3NhZ2VzICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGJyb3dzaW5nIE5UICovXG4gIGlzTlQ6IGJvb2xlYW47XG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHVuc2F2ZWQgc3RhdHVzICovXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb247XG4gIC8vIGNhbGxiYWNrIGZvciBjaGFuZ2UgaW4gd29yZCBhbGlnbm1lbnQgc3RhdHVzXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbn1cblxuY29uc3QgTWVzc2FnZVN0eWxlID0ge1xuICBkaXJlY3Rpb246ICdsdHInLFxuICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICBsaW5lSGVpZ2h0OiAnbm9ybWFsJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZm9udFNpemU6ICcxNnB4JyxcbiAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gIGZvbnRXZWlnaHQ6ICdib2xkJyxcbn1cblxuY29uc3QgVGV4dEFyZWFTdHlsZSA9IHtcbiAgaGVpZ2h0OiAnNjAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWluV2lkdGg6ICcyMjBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICBkaXJlY3Rpb24sXG4gIGN1cnJlbnRJbmRleCxcbiAgY29udGVudFN0eWxlLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNlcnZlcixcbiAgaXNOVCxcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICB0cmFuc2xhdGUsXG4gIHNhdmluZyxcbiAgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgbWVyZ2luZyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlLFxuICAgIG5ld1RleHQ6IG51bGwsXG4gICAgdXJsRXJyb3I6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBkb2luZ0FsaWdubWVudCxcbiAgICBuZXdUZXh0LFxuICAgIHVybEVycm9yLFxuICB9ID0gc3RhdGVcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGNvbnN0IFtpbml0aWFsVmVyc2VUZXh0LCBzZXRJbml0aWFsVmVyc2VUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpXG5cbiAgbGV0IHJlc291cmNlTWVzc2FnZSA9ICcnXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnU2F2aW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSBpZiAobWVyZ2luZykge1xuICAgIHJlc291cmNlTWVzc2FnZSA9ICdNZXJnaW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdCA9IHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcpXG4gIGNvbnN0IHtcbiAgICBhY3Rpb25zOiB7XG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIHNldEVkaXRpbmcsXG4gICAgICBzZXRWZXJzZUNoYW5nZWQsXG4gICAgfSxcbiAgICBzdGF0ZToge1xuICAgICAgYWxpZ25lZCxcbiAgICAgIGFsaWduZXJEYXRhLFxuICAgICAgY3VycmVudFZlcnNlT2JqZWN0cyxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgdW5zYXZlZENoYW5nZXMsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgfSxcbiAgfSA9IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IHRydWUgfSlcbiAgICB9IGVsc2UgaWYgKGRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlIH0pXG4gICAgfVxuICB9LCBbX3NjcmlwdHVyZUFsaWdubWVudEVkaXQ/LnN0YXRlPy5hbGlnbmVyRGF0YV0pXG5cbiAgLy8gZHluYW1pY2FsbHkgYWRqdXN0IGZvbnQgc2l6ZVxuICBjb25zdCBjYWxjdWxhdGVkRm9udFNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IChcbiAgICBwYXJzZUZsb2F0KFRleHRBcmVhU3R5bGUuZm9udFNpemUpICogZm9udFNpemUgLyAxMDAgKyAncHgnXG4gICksIFtmb250U2l6ZV0pXG5cbiAgY29uc3QgdGV4dEFyZWFTdHlsZSA9IHtcbiAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgLi4uVGV4dEFyZWFTdHlsZSxcbiAgICBmb250U2l6ZTogY2FsY3VsYXRlZEZvbnRTaXplLFxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgIHNldEluaXRpYWxWZXJzZVRleHQodmVyc2VUZXh0KVxuICB9LCBbeyByZWZlcmVuY2UsIGluaXRpYWxWZXJzZU9iamVjdHMgfV0pXG5cbiAgZnVuY3Rpb24gb25UZXh0Q2hhbmdlKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50Pikge1xuICAgIGNvbnN0IG5ld1ZlcnNlVGV4dCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlXG4gICAgY29uc3QgY2hhbmdlZCA9IG5ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuICAgIGNvbnNvbGUubG9nKGBTUC5vblRleHRDaGFuZ2VgLCB7IGNoYW5nZWQsIG5ld1RleHQ6IG5ld1ZlcnNlVGV4dCwgaW5pdGlhbFZlcnNlVGV4dCB9KVxuICAgIHNldFZlcnNlQ2hhbmdlZChjaGFuZ2VkLCBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQpXG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBuZXdWZXJzZVRleHQgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBzZXRFZGl0aW5nKGZhbHNlLCBuZXdUZXh0KVxuICB9XG5cbiAgY29uc3QgY2hlY2tpbmdTdGF0ZSA9IGFsaWduZWQgPyAndmFsaWQnIDogJ2ludmFsaWQnXG4gIGNvbnN0IHRpdGxlVGV4dCA9IGNoZWNraW5nU3RhdGUgPT09ICd2YWxpZCcgPyAnQWxpZ25tZW50IGlzIFZhbGlkJyA6ICdBbGlnbm1lbnQgaXMgSW52YWxpZCdcblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgc3R5bGU9e3sgZGlyZWN0aW9uLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nQm90dG9tOiAnMC41ZW0nIH19PlxuICAgICAge3Jlc291cmNlTWVzc2FnZSA/XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgPGRpdiBzdHlsZT17TWVzc2FnZVN0eWxlfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiBgJHtmb250U2l6ZX0lYCB9fT4ge3Jlc291cmNlTWVzc2FnZX0gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2VkaXRpbmcgP1xuICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblRleHRDaGFuZ2V9XG4gICAgICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3RleHRBcmVhU3R5bGV9XG4gICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgPFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgIHZlcnNlS2V5PXtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YH1cbiAgICAgICAgICAgICAgICB2ZXJzZU9iamVjdHM9e2N1cnJlbnRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c31cbiAgICAgICAgICAgICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcn1cbiAgICAgICAgICAgICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIHtzZXRXb3JkQWxpZ25lclN0YXR1cyAmJlxuICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAga2V5PSdjaGVja2luZy1idXR0b24nXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUFsaWdubWVudENsaWNrKCl9XG4gICAgICAgICAgICAgIHRpdGxlPXt0aXRsZVRleHR9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3RpdGxlVGV4dH1cbiAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoZWNraW5nU3RhdGUgPT09ICd2YWxpZCcgPyAoXG4gICAgICAgICAgICAgICAgPFJ4TGluazIgaWQ9J3ZhbGlkX2ljb24nIGNvbG9yPScjQkJCJyAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxSeExpbmtCcmVhazIgaWQ9J2ludmFsaWRfaWNvbicgY29sb3I9JyMwMDAnIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L0NvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9Db250YWluZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlUGFuZS5kZWZhdWx0UHJvcHMgPSB7IHZlcnNlT2JqZWN0czogW10gfVxuXG5leHBvcnQgZGVmYXVsdCBTY3JpcHR1cmVQYW5lXG4iXX0=
|
|
244
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImN1cnJlbnRJbmRleCIsImNvbnRlbnRTdHlsZSIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwic2F2aW5nIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwibWVyZ2luZyIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwidXNlU3RhdGUiLCJkb2luZ0FsaWdubWVudCIsIm5ld1RleHQiLCJ1cmxFcnJvciIsInN0YXRlIiwic2V0U3RhdGVfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNZXNzYWdlIiwiY2hhcHRlciIsInZlcnNlIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsImFjdGlvbnMiLCJoYW5kbGVBbGlnbm1lbnRDbGljayIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJhbGlnbmVkIiwiYWxpZ25lckRhdGEiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsImVkaXRpbmciLCJ1bnNhdmVkQ2hhbmdlcyIsIm5ld1ZlcnNlVGV4dCIsInVzZUVmZmVjdCIsImNhbGN1bGF0ZWRGb250U2l6ZSIsInVzZU1lbW8iLCJwYXJzZUZsb2F0IiwidGV4dEFyZWFTdHlsZSIsInZlcnNlVGV4dCIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJ2ZXJzZU9iamVjdHMiLCJvblRleHRDaGFuZ2UiLCJldmVudCIsInRhcmdldCIsInZhbHVlIiwiY2hhbmdlZCIsImNvbnNvbGUiLCJsb2ciLCJvbkJsdXIiLCJjaGVja2luZ1N0YXRlIiwidGl0bGVUZXh0IiwicGFkZGluZ0JvdHRvbSIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLG9CQUFQLE1BQWlDLHlCQUFqQztBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsa0JBQTFDO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsYUFBbkM7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxhQUFuQztBQUNBLFNBQVNDLDJCQUFULEVBQXNDQyx5QkFBdEMsUUFBdUUsdUNBQXZFO0FBQ0EsU0FBU0MsU0FBVCxFQUFvQkMsT0FBcEIsUUFBbUMsVUFBbkM7QUErQ0EsSUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxF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LGFBQWEsQ0FBQ2tFLFlBQWQsR0FBNkI7QUFBRVosRUFBQUEsWUFBWSxFQUFFO0FBQWhCLENBQTdCO0FBRUEsZUFBZXRELGFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VEZWVwQ29tcGFyZUVmZmVjdCBmcm9tICd1c2UtZGVlcC1jb21wYXJlLWVmZmVjdCdcbmltcG9ydCB7IFZlcnNlT2JqZWN0cyB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHsgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBTY3JpcHR1cmVSZWZlcmVuY2UgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IGdldFJlc291cmNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzLCB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXRcIjtcbmltcG9ydCB7IENvbnRhaW5lciwgQ29udGVudCB9IGZyb20gJy4vc3R5bGVkJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgY29udGVudCAqKi9cbiAgY29udGVudFN0eWxlOiBhbnk7XG4gIC8vIGluZGV4IG51bWJlciBmb3IgdGhpcyBzY3JpcHR1cmUgcGFuZVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBmb250IHNpemUgZm9yIG1lc3NhZ2VzICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGJyb3dzaW5nIE5UICovXG4gIGlzTlQ6IGJvb2xlYW47XG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHVuc2F2ZWQgc3RhdHVzICovXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb247XG4gIC8vIGNhbGxiYWNrIGZvciBjaGFuZ2UgaW4gd29yZCBhbGlnbm1lbnQgc3RhdHVzXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIHdoZXRoZXIgb3Igbm90IHdlIGFyZSBjdXJyZW50bHkgbWVyZ2luZyBjaGFuZ2VzIGZyb20gbWFzdGVyICovXG4gIG1lcmdpbmc6IGJvb2xlYW47XG4gIC8qKiB3aGV0aGVyIG9yIG5vdCB0aGlzIGN1cnJlbnQgdmVyc2UgaGFzIGJlZW4gc2VsZWN0ZWQgZm9yIGFsaWdubWVudCAqL1xuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IGJvb2xlYW47XG4gIC8qKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB2ZXJzZSBhbGlnbm1lbnQgaGFzIGZpbmlzaGVkICovXG4gIG9uQWxpZ25tZW50RmluaXNoOiBGdW5jdGlvbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byB1cGRhdGUgdmVyc2UgYWxpZ25tZW50IHN0YXR1cyAqL1xuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5jb25zdCBUZXh0QXJlYVN0eWxlID0ge1xuICBoZWlnaHQ6ICc2MCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBtaW5XaWR0aDogJzIyMHB4JyxcbiAgZm9udFNpemU6ICcxNnB4Jyxcbn1cblxuZnVuY3Rpb24gU2NyaXB0dXJlUGFuZSh7XG4gIHJlZmVyZW5jZSxcbiAgcmVmU3R5bGUsXG4gIGRpcmVjdGlvbixcbiAgY3VycmVudEluZGV4LFxuICBjb250ZW50U3R5bGUsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgcmVzb3VyY2VTdGF0dXMsXG4gIHJlc291cmNlTGluayxcbiAgc2VydmVyLFxuICBpc05ULFxuICBmb250U2l6ZSxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIHRyYW5zbGF0ZSxcbiAgc2F2aW5nLFxuICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICBzZXRTYXZlZENoYW5nZXMsXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzLFxuICBtZXJnaW5nLFxuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gIG9uQWxpZ25tZW50RmluaXNoLFxuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG59IDogUHJvcHMpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGRvaW5nQWxpZ25tZW50OiBmYWxzZSxcbiAgICBuZXdUZXh0OiBudWxsLFxuICAgIHVybEVycm9yOiBudWxsLFxuICB9KVxuICBjb25zdCB7XG4gICAgZG9pbmdBbGlnbm1lbnQsXG4gICAgbmV3VGV4dCxcbiAgICB1cmxFcnJvcixcbiAgfSA9IHN0YXRlXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuXG4gIGxldCByZXNvdXJjZU1lc3NhZ2UgPSAnJ1xuICBpZiAoc2F2aW5nKSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gJ1NhdmluZyBDaGFuZ2VzLi4uJ1xuICB9IGVsc2UgaWYgKG1lcmdpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnTWVyZ2luZyBDaGFuZ2VzLi4uJ1xuICB9IGVsc2Uge1xuICAgIHJlc291cmNlTWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlQpXG4gIH1cblxuICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSByZWZlcmVuY2VcbiAgZGlyZWN0aW9uID0gZGlyZWN0aW9uIHx8ICdsdHInXG5cbiAgcmVmU3R5bGUgPSByZWZTdHlsZSB8fCB7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6ICc5MCUnLFxuICB9XG5cbiAgY29udGVudFN0eWxlID0gY29udGVudFN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzEwMCUnLFxuICB9XG5cbiAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgLi4uc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgICBpbml0aWFsVmVyc2VUZXh0LFxuICB9XG5cbiAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXQgPSB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0KF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnKVxuICBjb25zdCB7XG4gICAgYWN0aW9uczoge1xuICAgICAgaGFuZGxlQWxpZ25tZW50Q2xpY2ssXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgIH0sXG4gIH0gPSBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuXG4gIGlmIChpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgJiYgIWFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkge1xuICAgIGhhbmRsZUFsaWdubWVudENsaWNrKClcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzKHJlZmVyZW5jZSwgYWxpZ25lZClcbiAgfSwgW2FsaWduZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiB0cnVlIH0pXG4gICAgfSBlbHNlIGlmIChkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiBmYWxzZSB9KVxuICAgICAgb25BbGlnbm1lbnRGaW5pc2ggJiYgb25BbGlnbm1lbnRGaW5pc2goKVxuICAgIH1cbiAgfSwgW19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Py5zdGF0ZT8uYWxpZ25lckRhdGFdKVxuXG4gIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBmb250IHNpemVcbiAgY29uc3QgY2FsY3VsYXRlZEZvbnRTaXplID0gUmVhY3QudXNlTWVtbygoKSA9PiAoXG4gICAgcGFyc2VGbG9hdChUZXh0QXJlYVN0eWxlLmZvbnRTaXplKSAqIGZvbnRTaXplIC8gMTAwICsgJ3B4J1xuICApLCBbZm9udFNpemVdKVxuXG4gIGNvbnN0IHRleHRBcmVhU3R5bGUgPSB7XG4gICAgLi4uY29udGVudFN0eWxlLFxuICAgIC4uLlRleHRBcmVhU3R5bGUsXG4gICAgZm9udFNpemU6IGNhbGN1bGF0ZWRGb250U2l6ZSxcbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGluaXRpYWxWZXJzZU9iamVjdHMgfSlcbiAgICBzZXRJbml0aWFsVmVyc2VUZXh0KHZlcnNlVGV4dClcbiAgfSwgW3sgcmVmZXJlbmNlLCBpbml0aWFsVmVyc2VPYmplY3RzIH1dKVxuXG4gIGZ1bmN0aW9uIG9uVGV4dENoYW5nZShldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdWZXJzZVRleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZVxuICAgIGNvbnN0IGNoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICBjb25zb2xlLmxvZyhgU1Aub25UZXh0Q2hhbmdlYCwgeyBjaGFuZ2VkLCBuZXdUZXh0OiBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQgfSlcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0KVxuICAgIHNldFN0YXRlKHsgbmV3VGV4dDogbmV3VmVyc2VUZXh0IH0pXG4gIH1cblxuICBmdW5jdGlvbiBvbkJsdXIoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgc2V0RWRpdGluZyhmYWxzZSwgbmV3VGV4dClcbiAgfVxuXG4gIGNvbnN0IGNoZWNraW5nU3RhdGUgPSBhbGlnbmVkID8gJ3ZhbGlkJyA6ICdpbnZhbGlkJ1xuICBjb25zdCB0aXRsZVRleHQgPSBjaGVja2luZ1N0YXRlID09PSAndmFsaWQnID8gJ0FsaWdubWVudCBpcyBWYWxpZCcgOiAnQWxpZ25tZW50IGlzIEludmFsaWQnXG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgcGFkZGluZ0JvdHRvbTogJzAuNWVtJyB9fT5cbiAgICAgIHtyZXNvdXJjZU1lc3NhZ2UgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1lc3NhZ2V9IDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOlxuICAgICAgICA8Q29udGVudD5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17cmVmU3R5bGV9PiB7Y2hhcHRlcn06e3ZlcnNlfSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17Y29udGVudFN0eWxlfSBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRFZGl0aW5nICYmIHNldEVkaXRpbmcodHJ1ZSlcbiAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlZGl0aW5nID9cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtuZXdWZXJzZVRleHQgfHwgaW5pdGlhbFZlcnNlVGV4dH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt0ZXh0QXJlYVN0eWxlfVxuICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgIDxWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICB2ZXJzZUtleT17YCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWB9XG4gICAgICAgICAgICAgICAgdmVyc2VPYmplY3RzPXtjdXJyZW50VmVyc2VPYmplY3RzIHx8IGluaXRpYWxWZXJzZU9iamVjdHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJ9XG4gICAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Db250ZW50PlxuICAgICAgfVxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cblNjcmlwdHVyZVBhbmUuZGVmYXVsdFByb3BzID0geyB2ZXJzZU9iamVjdHM6IFtdIH1cblxuZXhwb3J0IGRlZmF1bHQgU2NyaXB0dXJlUGFuZVxuIl19
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import "core-js/modules/es.array.concat.js";
|
|
2
|
+
import "core-js/modules/es.array.map.js";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
5
|
+
import { DraggableCard } from 'translation-helps-rcl';
|
|
6
|
+
import Box from '@mui/material/Box';
|
|
7
|
+
import List from '@mui/material/List';
|
|
8
|
+
import ListItem from '@mui/material/ListItem';
|
|
9
|
+
import ListItemButton from '@mui/material/ListItemButton';
|
|
10
|
+
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
11
|
+
import ListItemText from '@mui/material/ListItemText';
|
|
12
|
+
import { RxLink2, RxLinkBreak2 } from 'react-icons/rx';
|
|
13
|
+
var useStyles = makeStyles(function (theme) {
|
|
14
|
+
return {
|
|
15
|
+
wrapper: {
|
|
16
|
+
display: 'flex',
|
|
17
|
+
flexDirection: 'column'
|
|
18
|
+
},
|
|
19
|
+
list: {
|
|
20
|
+
paddingTop: theme.spacing(1),
|
|
21
|
+
paddingBottom: theme.spacing(1)
|
|
22
|
+
},
|
|
23
|
+
button: {
|
|
24
|
+
marginTop: theme.spacing(1),
|
|
25
|
+
marginBottom: theme.spacing(1),
|
|
26
|
+
alignSelf: 'flex-end'
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
var VerseSelectorContent = function VerseSelectorContent(_ref) {
|
|
32
|
+
var resourceId = _ref.resourceId,
|
|
33
|
+
versesForRef = _ref.versesForRef,
|
|
34
|
+
versesAlignmentStatus = _ref.versesAlignmentStatus,
|
|
35
|
+
onVerseSelect = _ref.onVerseSelect;
|
|
36
|
+
var renderedVerseItems = versesForRef.map(function (verse) {
|
|
37
|
+
var isVerseAligned = versesAlignmentStatus === null || versesAlignmentStatus === void 0 ? void 0 : versesAlignmentStatus["".concat(verse.chapter, ":").concat(verse.verse)];
|
|
38
|
+
var alignIcon = null;
|
|
39
|
+
|
|
40
|
+
if (isVerseAligned) {
|
|
41
|
+
alignIcon = /*#__PURE__*/React.createElement(RxLink2, {
|
|
42
|
+
id: "valid_icon_".concat(resourceId),
|
|
43
|
+
color: "#BBB",
|
|
44
|
+
size: 24
|
|
45
|
+
});
|
|
46
|
+
} else {
|
|
47
|
+
alignIcon = /*#__PURE__*/React.createElement(RxLinkBreak2, {
|
|
48
|
+
id: "invalid_alignment_icon_".concat(resourceId),
|
|
49
|
+
color: "#000",
|
|
50
|
+
size: 24
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return /*#__PURE__*/React.createElement(ListItem, {
|
|
55
|
+
disablePadding: true,
|
|
56
|
+
id: "verse-".concat(verse.chapter, ":").concat(verse.verse),
|
|
57
|
+
key: "verse-".concat(verse.chapter, ":").concat(verse.verse),
|
|
58
|
+
onClick: function onClick(event) {
|
|
59
|
+
onVerseSelect(verse);
|
|
60
|
+
}
|
|
61
|
+
}, /*#__PURE__*/React.createElement(ListItemButton, null, /*#__PURE__*/React.createElement(ListItemIcon, null, alignIcon), /*#__PURE__*/React.createElement(ListItemText, {
|
|
62
|
+
primary: "".concat(verse.chapter, ":").concat(verse.verse)
|
|
63
|
+
})));
|
|
64
|
+
});
|
|
65
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
66
|
+
id: "verse-list-".concat(resourceId),
|
|
67
|
+
sx: {
|
|
68
|
+
minWidth: '360px',
|
|
69
|
+
maxWidth: '600px',
|
|
70
|
+
bgcolor: 'background.paper'
|
|
71
|
+
}
|
|
72
|
+
}, /*#__PURE__*/React.createElement(List, null, renderedVerseItems));
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var VerseSelectorPopup = function VerseSelectorPopup(_ref2) {
|
|
76
|
+
var resourceId = _ref2.resourceId,
|
|
77
|
+
versesForRef = _ref2.versesForRef,
|
|
78
|
+
versesAlignmentStatus = _ref2.versesAlignmentStatus,
|
|
79
|
+
onVerseSelect = _ref2.onVerseSelect,
|
|
80
|
+
open = _ref2.open,
|
|
81
|
+
onClose = _ref2.onClose;
|
|
82
|
+
return /*#__PURE__*/React.createElement(DraggableCard, {
|
|
83
|
+
id: "verse-selector-popup-".concat(resourceId),
|
|
84
|
+
title: "Select Verse to Align",
|
|
85
|
+
open: open,
|
|
86
|
+
showRawContent: true,
|
|
87
|
+
initialPosition: {
|
|
88
|
+
x: 0,
|
|
89
|
+
y: -10
|
|
90
|
+
} // workspaceRef={mainScreenRef}
|
|
91
|
+
,
|
|
92
|
+
onClose: onClose,
|
|
93
|
+
dimBackground: true,
|
|
94
|
+
content: /*#__PURE__*/React.createElement(VerseSelectorContent, {
|
|
95
|
+
resourceId: resourceId,
|
|
96
|
+
versesForRef: versesForRef,
|
|
97
|
+
versesAlignmentStatus: versesAlignmentStatus,
|
|
98
|
+
onVerseSelect: onVerseSelect
|
|
99
|
+
})
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export default VerseSelectorPopup;
|
|
104
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1ZlcnNlU2VsZWN0b3JQb3B1cC9WZXJzZVNlbGVjdG9yUG9wdXAudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwibWFrZVN0eWxlcyIsIkRyYWdnYWJsZUNhcmQiLCJCb3giLCJMaXN0IiwiTGlzdEl0ZW0iLCJMaXN0SXRlbUJ1dHRvbiIsIkxpc3RJdGVtSWNvbiIsIkxpc3RJdGVtVGV4dCIsIlJ4TGluazIiLCJSeExpbmtCcmVhazIiLCJ1c2VTdHlsZXMiLCJ0aGVtZSIsIndyYXBwZXIiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImxpc3QiLCJwYWRkaW5nVG9wIiwic3BhY2luZyIsInBhZGRpbmdCb3R0b20iLCJidXR0b24iLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJhbGlnblNlbGYiLCJWZXJzZVNlbGVjdG9yQ29udGVudCIsInJlc291cmNlSWQiLCJ2ZXJzZXNGb3JSZWYiLCJ2ZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJvblZlcnNlU2VsZWN0IiwicmVuZGVyZWRWZXJzZUl0ZW1zIiwibWFwIiwidmVyc2UiLCJpc1ZlcnNlQWxpZ25lZCIsImNoYXB0ZXIiLCJhbGlnbkljb24iLCJldmVudCIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJiZ2NvbG9yIiwiVmVyc2VTZWxlY3RvclBvcHVwIiwib3BlbiIsIm9uQ2xvc2UiLCJ4IiwieSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLDBCQUEzQjtBQUNBLFNBQVNDLGFBQVQsUUFBOEIsdUJBQTlCO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixtQkFBaEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLG9CQUFqQjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsd0JBQXJCO0FBQ0EsT0FBT0MsY0FBUCxNQUEyQiw4QkFBM0I7QUFDQSxPQUFPQyxZQUFQLE1BQXlCLDRCQUF6QjtBQUNBLE9BQU9DLFlB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RjtBQU9ELENBeENEOztBQTBDQSxJQUFNVSxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQXFCLFFBQXVGO0FBQUEsTUFBcEZkLFVBQW9GLFNBQXBGQSxVQUFvRjtBQUFBLE1BQXhFQyxZQUF3RSxTQUF4RUEsWUFBd0U7QUFBQSxNQUExREMscUJBQTBELFNBQTFEQSxxQkFBMEQ7QUFBQSxNQUFuQ0MsYUFBbUMsU0FBbkNBLGFBQW1DO0FBQUEsTUFBcEJZLElBQW9CLFNBQXBCQSxJQUFvQjtBQUFBLE1BQWRDLE9BQWMsU0FBZEEsT0FBYztBQUNoSCxzQkFFRSxvQkFBQyxhQUFEO0FBQ0UsSUFBQSxFQUFFLGlDQUEwQmhCLFVBQTFCLENBREo7QUFFRSxJQUFBLEtBQUssRUFBQyx1QkFGUjtBQUdFLElBQUEsSUFBSSxFQUFFZSxJQUhSO0FBSUUsSUFBQSxjQUFjLE1BSmhCO0FBS0UsSUFBQSxlQUFlLEVBQUU7QUFBRUUsTUFBQUEsQ0FBQyxFQUFFLENBQUw7QUFBUUMsTUFBQUEsQ0FBQyxFQUFFLENBQUM7QUFBWixLQUxuQixDQU1FO0FBTkY7QUFPRSxJQUFBLE9BQU8sRUFBRUYsT0FQWDtBQVFFLElBQUEsYUFBYSxFQUFFLElBUmpCO0FBU0UsSUFBQSxPQUFPLGVBQ0wsb0JBQUMsb0JBQUQ7QUFDRSxNQUFBLFVBQVUsRUFBRWhCLFVBRGQ7QUFFRSxNQUFBLFlBQVksRUFBRUMsWUFGaEI7QUFHRSxNQUFBLHFCQUFxQixFQUFFQyxxQkFIekI7QUFJRSxNQUFBLGFBQWEsRUFBRUM7QUFKakI7QUFWSixJQUZGO0FBcUJELENBdEJEOztBQXdCQSxlQUFlVyxrQkFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcydcbmltcG9ydCB7IERyYWdnYWJsZUNhcmQgfSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgQm94IGZyb20gJ0BtdWkvbWF0ZXJpYWwvQm94JztcbmltcG9ydCBMaXN0IGZyb20gJ0BtdWkvbWF0ZXJpYWwvTGlzdCc7XG5pbXBvcnQgTGlzdEl0ZW0gZnJvbSAnQG11aS9tYXRlcmlhbC9MaXN0SXRlbSc7XG5pbXBvcnQgTGlzdEl0ZW1CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9MaXN0SXRlbUJ1dHRvbic7XG5pbXBvcnQgTGlzdEl0ZW1JY29uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvTGlzdEl0ZW1JY29uJztcbmltcG9ydCBMaXN0SXRlbVRleHQgZnJvbSAnQG11aS9tYXRlcmlhbC9MaXN0SXRlbVRleHQnO1xuaW1wb3J0IHsgUnhMaW5rMiwgUnhMaW5rQnJlYWsyIH0gZnJvbSAncmVhY3QtaWNvbnMvcngnXG5cbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXModGhlbWUgPT4gKHtcbiAgd3JhcHBlcjoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgfSxcbiAgbGlzdDoge1xuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcoMSksXG4gICAgcGFkZGluZ0JvdHRvbTogdGhlbWUuc3BhY2luZygxKSxcbiAgfSxcbiAgYnV0dG9uOiB7XG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDEpLFxuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZygxKSxcbiAgICBhbGlnblNlbGY6ICdmbGV4LWVuZCcsXG4gIH0sXG59KSlcblxuY29uc3QgVmVyc2VTZWxlY3RvckNvbnRlbnQgPSAoe1xuICByZXNvdXJjZUlkLFxuICB2ZXJzZXNGb3JSZWYsXG4gIHZlcnNlc0FsaWdubWVudFN0YXR1cyxcbiAgb25WZXJzZVNlbGVjdCxcbn0pID0+IHtcblxuICBjb25zdCByZW5kZXJlZFZlcnNlSXRlbXMgPSB2ZXJzZXNGb3JSZWYubWFwKHZlcnNlID0+IHtcbiAgICBjb25zdCBpc1ZlcnNlQWxpZ25lZCA9IHZlcnNlc0FsaWdubWVudFN0YXR1cz8uW2Ake3ZlcnNlLmNoYXB0ZXJ9OiR7dmVyc2UudmVyc2V9YF1cbiAgICBsZXQgYWxpZ25JY29uID0gbnVsbFxuICAgIGlmIChpc1ZlcnNlQWxpZ25lZCkge1xuICAgICAgYWxpZ25JY29uID0gPFJ4TGluazIgaWQ9e2B2YWxpZF9pY29uXyR7cmVzb3VyY2VJZH1gfSBjb2xvcj0nI0JCQicgc2l6ZT17MjR9IC8+XG4gICAgfSBlbHNlIHtcbiAgICAgIGFsaWduSWNvbiA9IDxSeExpbmtCcmVhazIgaWQ9e2BpbnZhbGlkX2FsaWdubWVudF9pY29uXyR7cmVzb3VyY2VJZH1gfSBjb2xvcj0nIzAwMCcgc2l6ZT17MjR9IC8+XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxMaXN0SXRlbVxuICAgICAgICBkaXNhYmxlUGFkZGluZ1xuICAgICAgICBpZD17YHZlcnNlLSR7dmVyc2UuY2hhcHRlcn06JHt2ZXJzZS52ZXJzZX1gfVxuICAgICAgICBrZXk9e2B2ZXJzZS0ke3ZlcnNlLmNoYXB0ZXJ9OiR7dmVyc2UudmVyc2V9YH1cbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7b25WZXJzZVNlbGVjdCh2ZXJzZSl9fVxuICAgICAgPlxuICAgICAgICA8TGlzdEl0ZW1CdXR0b24+XG4gICAgICAgICAgPExpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgIHthbGlnbkljb259XG4gICAgICAgICAgPC9MaXN0SXRlbUljb24+XG4gICAgICAgICAgPExpc3RJdGVtVGV4dCBwcmltYXJ5PXtgJHt2ZXJzZS5jaGFwdGVyfToke3ZlcnNlLnZlcnNlfWB9IC8+XG4gICAgICAgIDwvTGlzdEl0ZW1CdXR0b24+XG4gICAgICA8L0xpc3RJdGVtPlxuICAgIClcbiAgfSlcblxuICByZXR1cm4gKFxuICAgIDxCb3ggaWQ9e2B2ZXJzZS1saXN0LSR7cmVzb3VyY2VJZH1gfSBzeD17eyBtaW5XaWR0aDogJzM2MHB4JyxtYXhXaWR0aDogJzYwMHB4JywgYmdjb2xvcjogJ2JhY2tncm91bmQucGFwZXInIH19PlxuICAgICAgPExpc3Q+XG4gICAgICAgIHtyZW5kZXJlZFZlcnNlSXRlbXN9XG4gICAgICA8L0xpc3Q+XG4gICAgPC9Cb3g+XG4gIClcbn1cblxuY29uc3QgVmVyc2VTZWxlY3RvclBvcHVwID0gKHsgcmVzb3VyY2VJZCwgdmVyc2VzRm9yUmVmLCB2ZXJzZXNBbGlnbm1lbnRTdGF0dXMsIG9uVmVyc2VTZWxlY3QsIG9wZW4sIG9uQ2xvc2UgfSkgPT4ge1xuICByZXR1cm4gKFxuXG4gICAgPERyYWdnYWJsZUNhcmRcbiAgICAgIGlkPXtgdmVyc2Utc2VsZWN0b3ItcG9wdXAtJHtyZXNvdXJjZUlkfWB9XG4gICAgICB0aXRsZT1cIlNlbGVjdCBWZXJzZSB0byBBbGlnblwiXG4gICAgICBvcGVuPXtvcGVufVxuICAgICAgc2hvd1Jhd0NvbnRlbnRcbiAgICAgIGluaXRpYWxQb3NpdGlvbj17eyB4OiAwLCB5OiAtMTAgfX1cbiAgICAgIC8vIHdvcmtzcGFjZVJlZj17bWFpblNjcmVlblJlZn1cbiAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgICBkaW1CYWNrZ3JvdW5kPXt0cnVlfVxuICAgICAgY29udGVudD17XG4gICAgICAgIDxWZXJzZVNlbGVjdG9yQ29udGVudFxuICAgICAgICAgIHJlc291cmNlSWQ9e3Jlc291cmNlSWR9XG4gICAgICAgICAgdmVyc2VzRm9yUmVmPXt2ZXJzZXNGb3JSZWZ9XG4gICAgICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzPXt2ZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAgICAgb25WZXJzZVNlbGVjdD17b25WZXJzZVNlbGVjdH1cbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICAvPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IFZlcnNlU2VsZWN0b3JQb3B1cFxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { default as VerseSelectorPopup } from './VerseSelectorPopup';
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1ZlcnNlU2VsZWN0b3JQb3B1cC9pbmRleC50cyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiVmVyc2VTZWxlY3RvclBvcHVwIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLGtCQUFwQixRQUE4QyxzQkFBOUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIFZlcnNlU2VsZWN0b3JQb3B1cCB9IGZyb20gJy4vVmVyc2VTZWxlY3RvclBvcHVwJztcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "single-scripture-rcl",
|
|
3
3
|
"description": "A React Component Library for Rendering a Single Scripture Resource.",
|
|
4
|
-
"version": "3.3.
|
|
4
|
+
"version": "3.3.8-beta",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"react-icons": "^4.8.0",
|
|
31
31
|
"scripture-resources-rcl": "^5.2.0",
|
|
32
32
|
"tc-ui-toolkit": "^5.3.3",
|
|
33
|
-
"translation-helps-rcl": "^3.3.
|
|
33
|
+
"translation-helps-rcl": "^3.3.11",
|
|
34
34
|
"word-aligner": "^1.0.0",
|
|
35
35
|
"word-aligner-rcl": "^0.9.2"
|
|
36
36
|
},
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"scripture-resources-rcl": "^5.2.0",
|
|
82
82
|
"style-loader": "^2.0.0",
|
|
83
83
|
"tc-ui-toolkit": "^5.3.3",
|
|
84
|
-
"translation-helps-rcl": "^3.3.
|
|
84
|
+
"translation-helps-rcl": "^3.3.11",
|
|
85
85
|
"ts-jest": "^29.0.5",
|
|
86
86
|
"use-deep-compare-effect": "1.8.1",
|
|
87
87
|
"usfm-js": "3.4.2",
|