single-scripture-rcl 3.3.8 → 3.3.9-beta.1
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.
|
@@ -56,7 +56,7 @@ import { MdUpdate, MdUpdateDisabled } from 'react-icons/md';
|
|
|
56
56
|
import { FiShare } from 'react-icons/fi';
|
|
57
57
|
import { IconButton } from '@mui/material';
|
|
58
58
|
import { RxLink2, RxLinkBreak2 } from 'react-icons/rx';
|
|
59
|
-
import { Card, useCardState, useUserBranch, ERROR_STATE, MANIFEST_NOT_LOADED_ERROR } from 'translation-helps-rcl';
|
|
59
|
+
import { Card, useCardState, useUserBranch, useBranchMerger, useContentUpdateProps, UpdateBranchButton, ErrorDialog, ERROR_STATE, MANIFEST_NOT_LOADED_ERROR } from 'translation-helps-rcl';
|
|
60
60
|
import { AlignmentHelpers, UsfmFileConversionHelpers } from 'word-aligner-rcl';
|
|
61
61
|
import * as isEqual from 'deep-equal';
|
|
62
62
|
import { ScripturePane, ScriptureSelector } from '..';
|
|
@@ -72,7 +72,7 @@ var style = {
|
|
|
72
72
|
width: '500px'
|
|
73
73
|
};
|
|
74
74
|
export default function ScriptureCard(_ref) {
|
|
75
|
-
var _scriptureConfig$reso, _scriptureConfig$reso2, _scriptureConfig$reso3, _scriptureConfig$reso4, _scriptureConfig$reso6, _scriptureConfig$reso7, _scriptureConfig$reso8, _httpConfig, _httpConfig2;
|
|
75
|
+
var _scriptureConfig$reso, _scriptureConfig$reso2, _scriptureConfig$reso3, _scriptureConfig$reso4, _authentication$token, _scriptureConfig$reso6, _scriptureConfig$reso7, _scriptureConfig$reso8, _httpConfig, _httpConfig2;
|
|
76
76
|
|
|
77
77
|
var id = _ref.id,
|
|
78
78
|
isNT = _ref.isNT,
|
|
@@ -234,20 +234,41 @@ export default function ScriptureCard(_ref) {
|
|
|
234
234
|
}),
|
|
235
235
|
_useUserBranch$state = _useUserBranch.state,
|
|
236
236
|
workingResourceBranch = _useUserBranch$state.workingResourceBranch,
|
|
237
|
+
userEditBranchName = _useUserBranch$state.userEditBranchName,
|
|
237
238
|
usingUserBranch_ = _useUserBranch$state.usingUserBranch,
|
|
238
|
-
|
|
239
|
-
mergeToMaster = _useUserBranch$state.mergeToMaster,
|
|
240
|
-
merging = _useUserBranch$state.merging,
|
|
241
|
-
_useUserBranch$action = _useUserBranch.actions,
|
|
242
|
-
startEditBranch = _useUserBranch$action.startEdit,
|
|
243
|
-
mergeFromMasterIntoUserBranch = _useUserBranch$action.mergeFromMasterIntoUserBranch,
|
|
244
|
-
mergeToMasterFromUserBranch = _useUserBranch$action.mergeToMasterFromUserBranch;
|
|
239
|
+
startEditBranch = _useUserBranch.actions.startEdit;
|
|
245
240
|
|
|
241
|
+
var _useBranchMerger = useBranchMerger({
|
|
242
|
+
server: server,
|
|
243
|
+
owner: owner,
|
|
244
|
+
repo: repo,
|
|
245
|
+
userBranch: userEditBranchName,
|
|
246
|
+
tokenid: authentication === null || authentication === void 0 ? void 0 : (_authentication$token = authentication.token) === null || _authentication$token === void 0 ? void 0 : _authentication$token.sha1
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
var _useBranchMerger$stat = _useBranchMerger.state,
|
|
250
|
+
mergeToMaster = _useBranchMerger$stat.mergeStatus,
|
|
251
|
+
mergeFromMaster = _useBranchMerger$stat.updateStatus,
|
|
252
|
+
_useBranchMerger$acti = _useBranchMerger.actions,
|
|
253
|
+
mergeFromMasterIntoUserBranch = _useBranchMerger$acti.updateUserBranch,
|
|
254
|
+
mergeToMasterFromUserBranch = _useBranchMerger$acti.mergeMasterBranch;
|
|
246
255
|
React.useEffect(function () {
|
|
247
256
|
if (cardResourceId) {
|
|
248
257
|
updateMergeState && updateMergeState(cardResourceId, mergeFromMaster, mergeToMaster, mergeFromMasterIntoUserBranch, mergeToMasterFromUserBranch);
|
|
249
258
|
}
|
|
250
259
|
}, [cardResourceId, mergeFromMaster, mergeToMaster]);
|
|
260
|
+
var updateButtonProps = useContentUpdateProps({
|
|
261
|
+
isSaving: startSave,
|
|
262
|
+
useBranchMerger: _useBranchMerger,
|
|
263
|
+
reloadContent: scriptureConfig === null || scriptureConfig === void 0 ? void 0 : scriptureConfig.reloadResource
|
|
264
|
+
});
|
|
265
|
+
var isErrorDialogOpen = updateButtonProps.isErrorDialogOpen,
|
|
266
|
+
onCloseErrorDialog = updateButtonProps.onCloseErrorDialog,
|
|
267
|
+
isLoading = updateButtonProps.isLoading,
|
|
268
|
+
dialogMessage = updateButtonProps.dialogMessage,
|
|
269
|
+
dialogTitle = updateButtonProps.dialogTitle,
|
|
270
|
+
dialogLink = updateButtonProps.dialogLink,
|
|
271
|
+
dialogLinkTooltip = updateButtonProps.dialogLinkTooltip;
|
|
251
272
|
var workingRef = canUseEditBranch ? workingResourceBranch : appRef;
|
|
252
273
|
var scriptureTitle;
|
|
253
274
|
React.useEffect(function () {
|
|
@@ -869,7 +890,6 @@ export default function ScriptureCard(_ref) {
|
|
|
869
890
|
setWordAlignerStatus: setWordAlignerStatus,
|
|
870
891
|
server: server,
|
|
871
892
|
translate: translate,
|
|
872
|
-
merging: merging,
|
|
873
893
|
isVerseSelectedForAlignment: isVerseSelectedForAlignment,
|
|
874
894
|
onAlignmentFinish: function onAlignmentFinish() {
|
|
875
895
|
return setState({
|
|
@@ -935,24 +955,17 @@ export default function ScriptureCard(_ref) {
|
|
|
935
955
|
}, alignIcon));
|
|
936
956
|
}
|
|
937
957
|
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
id: "update-from-master-icon",
|
|
950
|
-
color: mergeFromMasterColor
|
|
951
|
-
}) : /*#__PURE__*/React.createElement(MdUpdate, {
|
|
952
|
-
id: "update-from-master-icon",
|
|
953
|
-
color: mergeFromMasterColor
|
|
954
|
-
})));
|
|
955
|
-
}
|
|
958
|
+
newItems.push( /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UpdateBranchButton, _extends({}, updateButtonProps, {
|
|
959
|
+
isLoading: isLoading || startSave
|
|
960
|
+
})), /*#__PURE__*/React.createElement(ErrorDialog, {
|
|
961
|
+
title: dialogTitle,
|
|
962
|
+
content: dialogMessage,
|
|
963
|
+
open: isErrorDialogOpen,
|
|
964
|
+
onClose: onCloseErrorDialog,
|
|
965
|
+
isLoading: isLoading || startSave,
|
|
966
|
+
link: dialogLink,
|
|
967
|
+
linkTooltip: dialogLinkTooltip
|
|
968
|
+
})));
|
|
956
969
|
|
|
957
970
|
if (mergeToMaster) {
|
|
958
971
|
newItems.push( /*#__PURE__*/React.createElement(IconButton, {
|
|
@@ -1132,4 +1145,4 @@ ScriptureCard.propTypes = {
|
|
|
1132
1145
|
/**callback to update the card's merge state in app */
|
|
1133
1146
|
updateMergeState: PropTypes.func
|
|
1134
1147
|
};
|
|
1135
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwidXNmbWpzIiwidXNlRWRpdCIsIk1kVXBkYXRlIiwiTWRVcGRhdGVEaXNhYmxlZCIsIkZpU2hhcmUiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJ1c2VDYXJkU3RhdGUiLCJ1c2VVc2VyQnJhbmNoIiwiRVJST1JfU1RBVEUiLCJNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJnZXRSZXNvdXJjZUxpbmsiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3MiLCJpc09yaWdpbmFsQmlibGUiLCJUaXRsZSIsIk5UX09SSUdfTEFORyIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIlZlcnNlU2VsZWN0b3JQb3B1cCIsIktFWV9GT05UX1NJWkVfQkFTRSIsImxhYmVsIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsIlNjcmlwdHVyZUNhcmQiLCJpZCIsImlzTlQiLCJ0aXRsZSIsInNlcnZlciIsImFwcFJlZiIsImNhcmROdW0iLCJjbGFzc2VzIiwicmVzb3VyY2UiLCJvd25lciIsImxhbmd1YWdlSWQiLCJyZXNvdXJjZUlkIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0TGFuZ3VhZ2UiLCJyZWZlcmVuY2UiLCJ2ZXJzZSIsImNoYXB0ZXIiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJyZXNvdXJjZUxpbmsiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib25SZXNvdXJjZUVycm9yIiwiaHR0cENvbmZpZyIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJnZXRMZXhpY29uRGF0YSIsImZldGNoR2xvc3Nlc0ZvclZlcnNlIiwidHJhbnNsYXRlIiwib25NaW5pbWl6ZSIsImxvZ2dlZEluVXNlciIsImF1dGhlbnRpY2F0aW9uIiwic2V0U2F2ZWRDaGFuZ2VzIiwiYm9va0luZGV4IiwiYWRkVmVyc2VSYW5nZSIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwidXBkYXRlTWVyZ2VTdGF0ZSIsInVzZVN0YXRlIiwiaGF2ZVVuc2F2ZWRDaGFuZ2VzIiwicmVmIiwic2F2ZUNsaWNrZWQiLCJzYXZlQ29udGVudCIsInNoYSIsInN0YXJ0U2F2ZSIsInVybEVycm9yIiwidXNpbmdVc2VyQnJhbmNoIiwidW5zYXZlZENoYW5nZXNMaXN0IiwidmVyc2VzRm9yUmVmIiwic2hvd0FsaWdubWVudFBvcHVwIiwidmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsInZlcnNlc0FsaWdubWVudFN0YXR1cyIsInN0YXRlIiwic2V0U3RhdGVfIiwiZm9udFNpemUiLCJzZXRGb250U2l6ZSIsImlzTlRfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNhY2hlIiwibWF4QWdlIiwic2V0VXJsRXJyb3IiLCJlcnJvciIsIndob2xlQm9vayIsImlzTmV3VGVzdGFtZW50Iiwic2NyaXB0dXJlQ29uZmlnIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImZldGNoUmVzcF8iLCJmZXRjaFJlc3BvbnNlIiwicmVwbyIsInJlZmVyZW5jZV8iLCJ1c2VFZmZlY3QiLCJfc2hhIiwiZGF0YSIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5IiwiY2FyZFJlc291cmNlSWQiLCJyZWZfIiwiY2FuVXNlRWRpdEJyYW5jaCIsInN1YnN0cmluZyIsImxlbmd0aCIsImNhcmRJZCIsIndvcmtpbmdSZXNvdXJjZUJyYW5jaCIsInVzaW5nVXNlckJyYW5jaF8iLCJtZXJnZUZyb21NYXN0ZXIiLCJtZXJnZVRvTWFzdGVyIiwibWVyZ2luZyIsImFjdGlvbnMiLCJzdGFydEVkaXRCcmFuY2giLCJzdGFydEVkaXQiLCJtZXJnZUZyb21NYXN0ZXJJbnRvVXNlckJyYW5jaCIsIm1lcmdlVG9NYXN0ZXJGcm9tVXNlckJyYW5jaCIsIndvcmtpbmdSZWYiLCJzY3JpcHR1cmVUaXRsZSIsIndvcmtpbmdSZWZfIiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwib25NZW51Q2xvc2UiLCJsYW5ndWFnZUlkXyIsImxhbmd1YWdlIiwiZGlyZWN0aW9uIiwiaXNIZWJyZXciLCJmb250RmFjdG9yIiwic2NhbGVkRm9udFNpemUiLCJpdGVtcyIsImhlYWRlcnMiLCJmaWx0ZXJzIiwiaXRlbUluZGV4IiwibWFya2Rvd25WaWV3Iiwic2V0RmlsdGVycyIsInNldEl0ZW1JbmRleCIsInNldE1hcmtkb3duVmlldyIsInJlZlN0eWxlIiwidXNlTWVtbyIsImZvbnRGYW1pbHkiLCJNYXRoIiwicm91bmQiLCJjb250ZW50U3R5bGUiLCJzY3JpcHR1cmVMYWJlbCIsImRpc2FibGVXb3JkUG9wb3Zlcl8iLCJ1c2luZ09yaWdpbmFsQmlibGUiLCJ1bmRlZmluZWQiLCJmZXRjaEdsb3NzRGF0YUZvclZlcnNlIiwidmVyc2VPYmplY3RzIiwidmVyc2VSZWYiLCJfdmVyc2VPYmplY3RzIiwidmVyc2VEYXRhIiwiY29uY2F0IiwiZW5hYmxlRWRpdCIsImVuYWJsZUFsaWdubWVudCIsIm9yaWdpbmFsUmVwb1VybCIsInNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJjdXJyZW50VmVyc2VSZWYiLCJfc2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJ0YXJnZXRMYW5ndWFnZSIsImN1cnJlbnRJbmRleCIsInNhdmVkIiwiZ2V0Q2hhbmdlcyIsImNsZWFyQ2hhbmdlcyIsIl91bnNhdmVkQ2hhbmdlc0xpc3QiLCJoYXNPd25Qcm9wZXJ0eSIsIl9oYXZlVW5zYXZlZENoYW5nZXMiLCJPYmplY3QiLCJrZXlzIiwiZmluZFJlZkluQXJyYXkiLCJmaW5kSXRlbSIsImNodW5rcyIsInJlZkxlbiIsImluZGV4IiwiZmluZEluZGV4IiwiY2h1bmsiLCJpZHgiLCJuZXh0Q2hhciIsImdldEJvb2tOYW1lIiwiYm9va0NhcHMiLCJ0b1VwcGVyQ2FzZSIsImZpbGVwYXRoIiwiY29udGVudCIsImNvbmZpZyIsInRva2VuIiwidGltZW91dCIsInNlcnZlclRpbWVPdXQiLCJhdXRob3IiLCJicmFuY2giLCJvblNhdmVFZGl0IiwiX3NhdmVFZGl0IiwidGhlbiIsInN1Y2Nlc3MiLCJ1bnNhdmVkQ2FyZEluZGljZXMiLCJjYXJkSW5kZXgiLCJpbmZvIiwicmVsb2FkUmVzb3VyY2UiLCJtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0iLCJiaWJsZVVzZm0iLCJ1cGRhdGVkVmVyc2VPYmplY3RzIiwibmV3VXNmbSIsImNoYXB0ZXJDaHVua3MiLCJzcGxpdCIsImNoYXB0ZXJJbmRleCIsImN1cnJlbnRDaGFwdGVyIiwidmVyc2VDaHVua3MiLCJ2ZXJzZUluZGV4IiwibmV3VmVyc2VVc2ZtIiwiY29udmVydFZlcnNlRGF0YVRvVVNGTSIsIm9sZFZlcnNlIiwidmVyc2VOdW1MZW4iLCJuZXdDaGFwdGVyIiwiam9pbiIsImdldFJlc3BvbnNlRGF0YSIsIm1lcmdlRmFpbCIsInBhcnNlSW50IiwibmV3Qm9va0pzb24iLCJuZXdWZXJzZVRleHQiLCJ0YXJnZXRWZXJzZU9iamVjdHNfIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJ1cGRhdGVWZXJzZSIsInRvVVNGTSIsImZvcmNlZE5ld0xpbmVzIiwiX3ZlcnNlIiwiaW5jbHVkZXMiLCJuZWVkVG9NZXJnZUZyb21NYXN0ZXIiLCJtZXJnZU5lZWRlZCIsIm1lcmdlRnJvbU1hc3Rlckhhc0NvbmZsaWN0cyIsImNvbmZsaWN0IiwibWVyZ2VUb01hc3Rlckhhc0NvbmZsaWN0cyIsIm1lcmdlRnJvbU1hc3RlclRpdGxlIiwibWVyZ2VGcm9tTWFzdGVyQ29sb3IiLCJtZXJnZVRvTWFzdGVyVGl0bGUiLCJtZXJnZVRvTWFzdGVyQ29sb3IiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJhbGlnbmVkIiwicmVuZGVyZWRTY3JpcHR1cmVQYW5lcyIsIm1hcCIsIl9jdXJyZW50VmVyc2VEYXRhIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9yZWZlcmVuY2UiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsImhhbmRsZUFsaWduQnV0dG9uQ2xpY2siLCJvblJlbmRlclRvb2xiYXIiLCJuZXdJdGVtcyIsImFsbFZlcnNlc0FsaWduZWQiLCJ2YWx1ZXMiLCJldmVyeSIsImFsaWduU3RhdHVzIiwiYWxpZ25JY29uIiwiYWxpZ25CdXR0b25UZXh0IiwicHVzaCIsImN1cnNvciIsIm1hcmdpbiIsInByb3BUeXBlcyIsInN0cmluZyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwibnVtYmVyIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJib29sIiwib2JqZWN0IiwiYW55Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsT0FBTyxLQUFLQyxTQUFaLE1BQTJCLFlBQTNCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQix5QkFBckI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFNBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixxQkFBeEI7QUFDQSxTQUFTQyxRQUFULEVBQW1CQyxnQkFBbkIsUUFBMkMsZ0JBQTNDO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixnQkFBeEI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLGVBQTNCO0FBQ0EsU0FBU0MsT0FBVCxFQUFrQkMsWUFBbEIsUUFBc0MsZ0JBQXRDO0FBQ0EsU0FDRUMsSUFERixFQUVFQyxZQUZGLEVBR0VDLGFBSEYsRUFJRUMsV0FKRixFQUtFQyx5QkFMRixRQU1PLHVCQU5QO0FBT0EsU0FBU0MsZ0JBQVQsRUFBMkJDLHlCQUEzQixRQUE0RCxrQkFBNUQ7QUFDQSxPQUFPLEtBQUtDLE9BQVosTUFBeUIsWUFBekI7QUFDQSxTQUFTQyxhQUFULEVBQXdCQyxpQkFBeEIsUUFBaUQsSUFBakQ7QUFDQSxTQUFTQyxvQkFBVCxRQUFxQyxrQ0FBckM7QUFDQSxTQUNFQyxlQURGLEVBRUVDLGtCQUZGLEVBR0VDLDJCQUhGLEVBSUVDLGVBSkYsUUFLTywrQkFMUDtBQU1BLFNBQVNDLEtBQVQsUUFBc0IseUJBQXRCO0FBQ0EsU0FDRUMsWUFERixFQUVFQyxlQUZGLEVBR0VDLFlBSEYsUUFJTyxhQUpQO0FBS0EsU0FBU0Msa0JBQVQsUUFBbUMsdUJBQW5DO0FBRUEsSUFBTUMsa0JBQWtCLEdBQUcsd0JBQTNCO0FBQ0EsSUFBTUMsS0FBSyxHQUFHLFNBQWQ7QUFDQSxJQUFNQyxLQUFLLEdBQUc7QUFBRUMsRUFBQUEsU0FBUyxFQUFFLE1BQWI7QUFBcUJDLEVBQUFBLEtBQUssRUFBRTtBQUE1QixDQUFkO0FBRUEsZUFBZSxTQUFTQyxhQUFULE9Bc0NaO0FBQUE7O0FBQUEsTUFyQ0RDLEVBcUNDLFFBckNEQSxFQXFDQztBQUFBLE1BcENEQyxJQW9DQyxRQXBDREEsSUFvQ0M7QUFBQSxNQW5DREMsS0FtQ0MsUUFuQ0RBLEtBbUNDO0FBQUEsTUFsQ0RDLE1Ba0NDLFFBbENEQSxNQWtDQztBQUFBLE1BakNEQyxNQWlDQyxRQWpDREEsTUFpQ0M7QUFBQSxNQWhDREMsT0FnQ0MsUUFoQ0RBLE9BZ0NDO0FBQUEsTUEvQkRDLE9BK0JDLFFBL0JEQSxPQStCQztBQUFBLDJCQTlCREMsUUE4QkM7QUFBQSxNQTdCQ0MsS0E2QkQsaUJBN0JDQSxLQTZCRDtBQUFBLE1BNUJDQyxVQTRCRCxpQkE1QkNBLFVBNEJEO0FBQUEsTUEzQkNDLFVBMkJELGlCQTNCQ0EsVUEyQkQ7QUFBQSxNQTFCQ0MscUJBMEJELGlCQTFCQ0EscUJBMEJEO0FBQUEsTUF4QkRDLFdBd0JDLFFBeEJEQSxXQXdCQztBQUFBLDRCQXZCREMsU0F1QkM7QUFBQSxNQXRCQ0MsS0FzQkQsa0JBdEJDQSxLQXNCRDtBQUFBLE1BckJDQyxPQXFCRCxrQkFyQkNBLE9BcUJEO0FBQUEsTUFwQllDLE1Bb0JaLGtCQXBCQ0MsU0FvQkQ7QUFBQSxNQWxCREMsWUFrQkMsUUFsQkRBLFlBa0JDO0FBQUEsTUFqQkRDLG1CQWlCQyxRQWpCREEsbUJBaUJDO0FBQUEsTUFoQkRDLGtCQWdCQyxRQWhCREEsa0JBZ0JDO0FBQUEsTUFmREMsZUFlQyxRQWZEQSxlQWVDO0FBQUEsTUFkREMsVUFjQyxRQWREQSxVQWNDO0FBQUEsTUFiREMsWUFhQyxRQWJEQSxZQWFDO0FBQUEsTUFaREMsYUFZQyxRQVpEQSxhQVlDO0FBQUEsTUFYREMsY0FXQyxRQVhEQSxjQVdDO0FBQUEsTUFWREMsb0JBVUMsUUFWREEsb0JBVUM7QUFBQSxNQVREQyxTQVNDLFFBVERBLFNBU0M7QUFBQSxNQVJEQyxVQVFDLFFBUkRBLFVBUUM7QUFBQSxNQVBEQyxZQU9DLFFBUERBLFlBT0M7QUFBQSxNQU5EQyxjQU1DLFFBTkRBLGNBTUM7QUFBQSxNQUxEQyxlQUtDLFFBTERBLGVBS0M7QUFBQSxNQUpEQyxTQUlDLFFBSkRBLFNBSUM7QUFBQSxNQUhEQyxhQUdDLFFBSERBLGFBR0M7QUFBQSxNQUZEQyxvQkFFQyxRQUZEQSxvQkFFQztBQUFBLE1BRERDLGdCQUNDLFFBRERBLGdCQUNDOztBQUFBLHdCQUMwQnhFLEtBQUssQ0FBQ3lFLFFBQU4sQ0FBZTtBQUN4Q0MsSUFBQUEsa0JBQWtCLEVBQUUsS0FEb0I7QUFFeENDLElBQUFBLEdBQUcsRUFBRWxDLE1BRm1DO0FBR3hDbUMsSUFBQUEsV0FBVyxFQUFFLEtBSDJCO0FBSXhDQyxJQUFBQSxXQUFXLEVBQUUsSUFKMkI7QUFLeENDLElBQUFBLEdBQUcsRUFBRSxJQUxtQztBQU14Q0MsSUFBQUEsU0FBUyxFQUFFLEtBTjZCO0FBT3hDQyxJQUFBQSxRQUFRLEVBQUUsSUFQOEI7QUFReENDLElBQUFBLGVBQWUsRUFBRSxLQVJ1QjtBQVN4Q0MsSUFBQUEsa0JBQWtCLEVBQUUsRUFUb0I7QUFVeENDLElBQUFBLFlBQVksRUFBRSxJQVYwQjtBQVd4Q0MsSUFBQUEsa0JBQWtCLEVBQUUsS0FYb0I7QUFZeENDLElBQUFBLHlCQUF5QixFQUFFLElBWmE7QUFheENDLElBQUFBLHFCQUFxQixFQUFFO0FBYmlCLEdBQWYsQ0FEMUI7QUFBQTtBQUFBLE1BQ01DLEtBRE47QUFBQSxNQUNhQyxTQURiOztBQUFBLE1BaUJDYixHQWpCRCxHQThCR1ksS0E5QkgsQ0FpQkNaLEdBakJEO0FBQUEsTUFrQkNDLFdBbEJELEdBOEJHVyxLQTlCSCxDQWtCQ1gsV0FsQkQ7QUFBQSxNQW1CQ0MsV0FuQkQsR0E4QkdVLEtBOUJILENBbUJDVixXQW5CRDtBQUFBLE1Bb0JDQyxHQXBCRCxHQThCR1MsS0E5QkgsQ0FvQkNULEdBcEJEO0FBQUEsTUFxQkNDLFNBckJELEdBOEJHUSxLQTlCSCxDQXFCQ1IsU0FyQkQ7QUFBQSxNQXNCQ0MsUUF0QkQsR0E4QkdPLEtBOUJILENBc0JDUCxRQXRCRDtBQUFBLE1BdUJDQyxlQXZCRCxHQThCR00sS0E5QkgsQ0F1QkNOLGVBdkJEO0FBQUEsTUF3QkNDLGtCQXhCRCxHQThCR0ssS0E5QkgsQ0F3QkNMLGtCQXhCRDtBQUFBLE1BeUJDUixrQkF6QkQsR0E4QkdhLEtBOUJILENBeUJDYixrQkF6QkQ7QUFBQSxNQTBCQ1MsWUExQkQsR0E4QkdJLEtBOUJILENBMEJDSixZQTFCRDtBQUFBLE1BMkJDQyxrQkEzQkQsR0E4QkdHLEtBOUJILENBMkJDSCxrQkEzQkQ7QUFBQSxNQTRCQ0MseUJBNUJELEdBOEJHRSxLQTlCSCxDQTRCQ0YseUJBNUJEO0FBQUEsTUE2QkNDLHFCQTdCRCxHQThCR0MsS0E5QkgsQ0E2QkNELHFCQTdCRDs7QUFBQSw2QkFnQytCOUIsbUJBQW1CLENBQUN6QixrQkFBa0IsR0FBR1csT0FBdEIsRUFBK0IsR0FBL0IsQ0FoQ2xEO0FBQUE7QUFBQSxNQWdDTStDLFFBaENOO0FBQUEsTUFnQ2dCQyxXQWhDaEI7O0FBaUNELE1BQU1DLEtBQUssR0FBR3JELElBQUksQ0FBQ2UsTUFBRCxDQUFsQjs7QUFFQSxXQUFTdUMsUUFBVCxDQUFrQkMsUUFBbEIsRUFBNEI7QUFDMUJMLElBQUFBLFNBQVMsQ0FBQyxVQUFBTSxTQUFTO0FBQUEsNkNBQVVBLFNBQVYsR0FBd0JELFFBQXhCO0FBQUEsS0FBVixDQUFUO0FBQ0Q7O0FBRUQsTUFBSVosZUFBSixFQUFxQjtBQUNuQnRCLElBQUFBLFVBQVUsbUNBQVFBLFVBQVI7QUFBb0JvQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsTUFBTSxFQUFFO0FBQVY7QUFBM0IsTUFBVixDQURtQixDQUNrQztBQUN0RDs7QUF6Q0EsOEJBaURHM0Usb0JBQW9CLENBQUM7QUFDdkJpQixJQUFBQSxJQUFJLEVBQUpBLElBRHVCO0FBRXZCQyxJQUFBQSxLQUFLLEVBQUxBLEtBRnVCO0FBR3ZCWSxJQUFBQSxLQUFLLEVBQUxBLEtBSHVCO0FBSXZCTixJQUFBQSxLQUFLLEVBQUxBLEtBSnVCO0FBS3ZCUSxJQUFBQSxNQUFNLEVBQU5BLE1BTHVCO0FBTXZCWixJQUFBQSxNQUFNLEVBQUVrQyxHQU5lO0FBT3ZCbkMsSUFBQUEsTUFBTSxFQUFOQSxNQVB1QjtBQVF2QkUsSUFBQUEsT0FBTyxFQUFQQSxPQVJ1QjtBQVN2QlUsSUFBQUEsT0FBTyxFQUFQQSxPQVR1QjtBQVV2Qk4sSUFBQUEsVUFBVSxFQUFWQSxVQVZ1QjtBQVd2QkMsSUFBQUEsVUFBVSxFQUFWQSxVQVh1QjtBQVl2QlEsSUFBQUEsWUFBWSxFQUFaQSxZQVp1QjtBQWF2QkMsSUFBQUEsbUJBQW1CLEVBQW5CQSxtQkFidUI7QUFjdkJDLElBQUFBLGtCQUFrQixFQUFsQkEsa0JBZHVCO0FBZXZCVCxJQUFBQSxxQkFBcUIsRUFBckJBLHFCQWZ1QjtBQWdCdkJpRCxJQUFBQSxXQUFXLEVBQUUscUJBQUNDLEtBQUQ7QUFBQSxhQUFXTixRQUFRLENBQUM7QUFBRVosUUFBQUEsUUFBUSxFQUFFa0I7QUFBWixPQUFELENBQW5CO0FBQUEsS0FoQlU7QUFpQnZCdkMsSUFBQUEsVUFBVSxFQUFWQSxVQWpCdUI7QUFrQnZCQyxJQUFBQSxZQUFZLEVBQVpBLFlBbEJ1QjtBQW1CdkJDLElBQUFBLGFBQWEsRUFBYkEsYUFuQnVCO0FBb0J2QnNDLElBQUFBLFNBQVMsRUFBRTtBQXBCWSxHQUFELENBakR2QjtBQUFBLE1BNENDQyxjQTVDRCx5QkE0Q0NBLGNBNUNEO0FBQUEsTUE2Q0NDLGVBN0NELHlCQTZDQ0EsZUE3Q0Q7QUFBQSxNQThDQ0MsWUE5Q0QseUJBOENDQSxZQTlDRDtBQUFBLE1BK0NDQyxpQkEvQ0QseUJBK0NDQSxpQkEvQ0Q7QUFBQSxNQWdEQ0Msb0JBaERELHlCQWdEQ0Esb0JBaEREOztBQXdFRCxNQUFNQyxVQUFVLEdBQUdKLGVBQUgsYUFBR0EsZUFBSCx1QkFBR0EsZUFBZSxDQUFFSyxhQUFwQyxDQXhFQyxDQXlFRDs7QUFDQSxNQUFNQyxJQUFJLGFBQU1OLGVBQU4sYUFBTUEsZUFBTixnREFBTUEsZUFBZSxDQUFFekQsUUFBdkIsMERBQU0sc0JBQTJCRSxVQUFqQyxjQUErQ3VELGVBQS9DLGFBQStDQSxlQUEvQyxpREFBK0NBLGVBQWUsQ0FBRXpELFFBQWhFLDJEQUErQyx1QkFBMkJVLFNBQTFFLENBQVY7QUFDQSxNQUFNc0QsVUFBVSxHQUFHLENBQUFQLGVBQWUsU0FBZixJQUFBQSxlQUFlLFdBQWYsWUFBQUEsZUFBZSxDQUFFbkQsU0FBakIsS0FBOEIsSUFBakQ7QUFFQWxELEVBQUFBLEtBQUssQ0FBQzZHLFNBQU4sQ0FBZ0IsWUFBTTtBQUFBOztBQUFFO0FBQ3RCLFFBQU1DLElBQUksR0FBRyxDQUFBTCxVQUFVLFNBQVYsSUFBQUEsVUFBVSxXQUFWLGdDQUFBQSxVQUFVLENBQUVNLElBQVosc0VBQWtCakMsR0FBbEIsS0FBeUIsSUFBdEM7O0FBQ0FrQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsZUFBbUJDLElBQUksQ0FBQ0MsU0FBTCxDQUFlUCxVQUFmLENBQW5CLHlCQUE0REUsSUFBNUQ7O0FBRUEsUUFBSUEsSUFBSSxLQUFLaEMsR0FBYixFQUFrQjtBQUNoQmMsTUFBQUEsUUFBUSxDQUFDO0FBQUVkLFFBQUFBLEdBQUcsRUFBRWdDO0FBQVAsT0FBRCxDQUFSO0FBQ0Q7QUFDRixHQVBELEVBT0csQ0FBQ0wsVUFBRCxDQVBILEVBN0VDLENBc0ZEOztBQUNBLE1BQU1XLGNBQWMsR0FBRyxDQUFBZixlQUFlLFNBQWYsSUFBQUEsZUFBZSxXQUFmLHNDQUFBQSxlQUFlLENBQUV6RCxRQUFqQixrRkFBMkJVLFNBQTNCLEtBQXdDUCxVQUEvRCxDQXZGQyxDQXdGRDs7QUFDQSxNQUFJc0UsSUFBSSxHQUFHLENBQUFoQixlQUFlLFNBQWYsSUFBQUEsZUFBZSxXQUFmLHNDQUFBQSxlQUFlLENBQUV6RCxRQUFqQixrRkFBMkIrQixHQUEzQixLQUFrQ2xDLE1BQTdDO0FBQ0EsTUFBTTZFLGdCQUFnQixHQUFHcEQsWUFBWSxJQUFJQyxjQUFoQixJQUN0QnBCLFVBQVUsS0FBS25CLGVBRE8sS0FFckJ5RixJQUFJLEtBQUssUUFBVixJQUF3QkEsSUFBSSxDQUFDRSxTQUFMLENBQWUsQ0FBZixFQUFrQnJELFlBQVksQ0FBQ3NELE1BQS9CLE1BQTJDdEQsWUFGN0MsQ0FBekIsQ0ExRkMsQ0E0RnFGOztBQTVGckYsdUJBMkdHckQsYUFBYSxDQUFDO0FBQ2hCZ0MsSUFBQUEsS0FBSyxFQUFMQSxLQURnQjtBQUVoQkwsSUFBQUEsTUFBTSxFQUFOQSxNQUZnQjtBQUdoQkMsSUFBQUEsTUFBTSxFQUFOQSxNQUhnQjtBQUloQkssSUFBQUEsVUFBVSxFQUFWQSxVQUpnQjtBQUtoQjJFLElBQUFBLE1BQU0sRUFBRXBGLEVBTFE7QUFNaEI2QixJQUFBQSxZQUFZLEVBQUVvRCxnQkFBZ0IsR0FBR3BELFlBQUgsR0FBa0IsSUFOaEM7QUFPaEJDLElBQUFBLGNBQWMsRUFBRW1ELGdCQUFnQixHQUFHbkQsY0FBSCxHQUFvQixJQVBwQztBQVFoQmlELElBQUFBLGNBQWMsRUFBZEEsY0FSZ0I7QUFTaEIxRCxJQUFBQSxlQUFlLEVBQWZBLGVBVGdCO0FBVWhCRixJQUFBQSxtQkFBbUIsRUFBbkJBO0FBVmdCLEdBQUQsQ0EzR2hCO0FBQUEsNENBK0ZDK0IsS0EvRkQ7QUFBQSxNQWdHR21DLHFCQWhHSCx3QkFnR0dBLHFCQWhHSDtBQUFBLE1BaUdvQkMsZ0JBakdwQix3QkFpR0cxQyxlQWpHSDtBQUFBLE1Ba0dHMkMsZUFsR0gsd0JBa0dHQSxlQWxHSDtBQUFBLE1BbUdHQyxhQW5HSCx3QkFtR0dBLGFBbkdIO0FBQUEsTUFvR0dDLE9BcEdILHdCQW9HR0EsT0FwR0g7QUFBQSw2Q0FzR0NDLE9BdEdEO0FBQUEsTUF1R2NDLGVBdkdkLHlCQXVHR0MsU0F2R0g7QUFBQSxNQXdHR0MsNkJBeEdILHlCQXdHR0EsNkJBeEdIO0FBQUEsTUF5R0dDLDJCQXpHSCx5QkF5R0dBLDJCQXpHSDs7QUF3SERuSSxFQUFBQSxLQUFLLENBQUM2RyxTQUFOLENBQWdCLFlBQU07QUFDcEIsUUFBSU8sY0FBSixFQUFvQjtBQUNsQjVDLE1BQUFBLGdCQUFnQixJQUFJQSxnQkFBZ0IsQ0FDbEM0QyxjQURrQyxFQUVsQ1EsZUFGa0MsRUFHbENDLGFBSGtDLEVBSWxDSyw2QkFKa0MsRUFLbENDLDJCQUxrQyxDQUFwQztBQU9EO0FBQ0YsR0FWRCxFQVVFLENBQUNmLGNBQUQsRUFBaUJRLGVBQWpCLEVBQWtDQyxhQUFsQyxDQVZGO0FBWUEsTUFBTU8sVUFBVSxHQUFHZCxnQkFBZ0IsR0FBR0kscUJBQUgsR0FBMkJqRixNQUE5RDtBQUNBLE1BQUk0RixjQUFKO0FBRUFySSxFQUFBQSxLQUFLLENBQUM2RyxTQUFOLENBQWdCLFlBQU07QUFBRTtBQUN0QixRQUFJYyxnQkFBZ0IsS0FBSzFDLGVBQXpCLEVBQTBDO0FBQ3hDVyxNQUFBQSxRQUFRLENBQUM7QUFBRVgsUUFBQUEsZUFBZSxFQUFFMEM7QUFBbkIsT0FBRCxDQUFSO0FBQ0Q7QUFDRixHQUpELEVBSUcsQ0FBQ0EsZ0JBQUQsRUFBbUIxQyxlQUFuQixDQUpIO0FBTUFqRixFQUFBQSxLQUFLLENBQUM2RyxTQUFOLENBQWdCLFlBQU07QUFBRTtBQUN0QixRQUFJeUIsV0FBVyxHQUFHRixVQUFVLElBQUkzRixNQUFoQzs7QUFFQSxRQUFJa0MsR0FBRyxLQUFLMkQsV0FBWixFQUF5QjtBQUN2QjFDLE1BQUFBLFFBQVEsQ0FBQztBQUFFakIsUUFBQUEsR0FBRyxFQUFFMkQ7QUFBUCxPQUFELENBQVI7QUFDRDtBQUNGLEdBTkQsRUFNRyxDQUFDRixVQUFELEVBQWF6RCxHQUFiLEVBQWtCbEMsTUFBbEIsQ0FOSDtBQVFBekMsRUFBQUEsS0FBSyxDQUFDNkcsU0FBTixDQUFnQixZQUFNO0FBQUE7O0FBQUU7QUFDdEIsUUFBTVgsS0FBSyxHQUFHRyxlQUFILGFBQUdBLGVBQUgsaURBQUdBLGVBQWUsQ0FBRWtDLGNBQXBCLDJEQUFHLHVCQUFrQ3pILFdBQWxDLENBQWQ7O0FBRUEsUUFBSW9GLEtBQUosRUFBVztBQUFFO0FBQ1gsVUFBTXFDLGNBQWMsR0FBR2xDLGVBQUgsYUFBR0EsZUFBSCx1QkFBR0EsZUFBZSxDQUFFa0MsY0FBeEM7O0FBQ0EsVUFBTWhGLGFBQVksR0FBR2pDLGVBQWUsQ0FBQytFLGVBQUQsQ0FBcEM7O0FBQ0EsVUFBTW1DLE9BQU8sR0FBR2pILGtCQUFrQixDQUFDZ0gsY0FBRCxFQUFpQi9GLE1BQWpCLEVBQXlCZSxhQUF6QixFQUF1Q29DLEtBQXZDLENBQWxDO0FBQ0EsVUFBTThDLGFBQWEsR0FBR0YsY0FBYyxDQUFDeEgseUJBQUQsQ0FBcEM7QUFDQTJDLE1BQUFBLGVBQWUsSUFBSUEsZUFBZSxDQUFDOEUsT0FBRCxFQUFVQyxhQUFWLEVBQXlCRixjQUF6QixDQUFsQztBQUNEO0FBQ0YsR0FWRCxFQVVHLENBQUNsQyxlQUFELGFBQUNBLGVBQUQsaURBQUNBLGVBQWUsQ0FBRWtDLGNBQWxCLDJEQUFDLHVCQUFrQ3pILFdBQWxDLENBQUQsQ0FWSDs7QUFZQSxNQUFJdUYsZUFBZSxDQUFDOUQsS0FBaEIsSUFBeUI4RCxlQUFlLENBQUNxQyxPQUE3QyxFQUFzRDtBQUNwREwsSUFBQUEsY0FBYyxhQUFNaEMsZUFBZSxDQUFDOUQsS0FBdEIsZUFBZ0M4RCxlQUFlLENBQUNxQyxPQUFoRCxDQUFkO0FBQ0FsQyxJQUFBQSxvQkFBb0IsQ0FBQ21DLFdBQXJCLENBQWlDdEMsZUFBZSxDQUFDOUMsWUFBakQsRUFBK0Q4RSxjQUEvRDtBQUNELEdBSEQsTUFHTztBQUNMQSxJQUFBQSxjQUFjLHdDQUFkO0FBQ0Q7QUFFRDs7O0FBQ0EsV0FBU08sb0JBQVQsR0FBZ0M7QUFDOUIsUUFBTUMsd0JBQXdCLEdBQUdySCwyQkFBMkIsQ0FBQztBQUMzRFEsTUFBQUEsS0FBSyxFQUFMQSxLQUQyRDtBQUUzRHVCLE1BQUFBLFlBQVksRUFBRThDLGVBQWUsQ0FBQzlDLFlBRjZCO0FBRzNEK0MsTUFBQUEsWUFBWSxFQUFaQSxZQUgyRDtBQUkzREUsTUFBQUEsb0JBQW9CLEVBQXBCQTtBQUoyRCxLQUFELENBQTVEO0FBT0Esd0JBQU8sb0JBQUMsaUJBQUQsZUFBdUJxQyx3QkFBdkI7QUFBaUQsTUFBQSxLQUFLLEVBQUU1RyxLQUF4RDtBQUErRCxNQUFBLFlBQVksRUFBRStDO0FBQTdFLE9BQVA7QUFDRDs7QUFFRCxXQUFTOEQsV0FBVCxHQUF1QjtBQUNyQjtBQUNBbEQsSUFBQUEsUUFBUSxDQUFDO0FBQUVaLE1BQUFBLFFBQVEsRUFBRTtBQUFaLEtBQUQsQ0FBUjtBQUNELEdBdkxBLENBeUxEOzs7QUFDQSxNQUFNK0QsV0FBVyxHQUFHMUMsZUFBSCxhQUFHQSxlQUFILGlEQUFHQSxlQUFlLENBQUV6RCxRQUFwQiwyREFBRyx1QkFBMkJFLFVBQS9DO0FBQ0EsTUFBTWtHLFFBQVEsR0FBRy9GLFdBQVcsQ0FBQztBQUFFSCxJQUFBQSxVQUFVLEVBQUVpRztBQUFkLEdBQUQsQ0FBNUI7QUFDQSxNQUFNRSxTQUFTLEdBQUcsQ0FBQ0QsUUFBRCxhQUFDQSxRQUFELHVCQUFDQSxRQUFRLENBQUVDLFNBQVgsS0FBeUIsS0FBM0M7O0FBQ0EsTUFBTS9GLFNBQVMscUJBQVFtRCxlQUFlLENBQUNuRCxTQUF4QixDQUFmOztBQUVBLE1BQU1nRyxRQUFRLEdBQUlILFdBQVcsS0FBSyxLQUFsQztBQUNBLE1BQU1JLFVBQVUsR0FBR0QsUUFBUSxHQUFHLEdBQUgsR0FBUyxDQUFwQyxDQWhNQyxDQWdNcUM7O0FBQ3RDLE1BQU1FLGNBQWMsR0FBRzNELFFBQVEsR0FBRzBELFVBQWxDO0FBRUEsTUFBTUUsS0FBSyxHQUFHLElBQWQ7O0FBbk1DLHNCQTJNR3pJLFlBQVksQ0FBQztBQUFFeUksSUFBQUEsS0FBSyxFQUFMQTtBQUFGLEdBQUQsQ0EzTWY7QUFBQSwwQ0FxTUM5RCxLQXJNRDtBQUFBLE1Bc01HK0QsT0F0TUgsdUJBc01HQSxPQXRNSDtBQUFBLE1Bc01ZQyxPQXRNWix1QkFzTVlBLE9BdE1aO0FBQUEsTUFzTXFCQyxTQXRNckIsdUJBc01xQkEsU0F0TXJCO0FBQUEsTUFzTWdDQyxZQXRNaEMsdUJBc01nQ0EsWUF0TWhDO0FBQUEsNENBd01DMUIsT0F4TUQ7QUFBQSxNQXlNRzJCLFVBek1ILHlCQXlNR0EsVUF6TUg7QUFBQSxNQXlNZUMsWUF6TWYseUJBeU1lQSxZQXpNZjtBQUFBLE1BeU02QkMsZUF6TTdCLHlCQXlNNkJBLGVBek03Qjs7QUE2TUQsTUFBTUMsUUFBUSxHQUFHN0osS0FBSyxDQUFDOEosT0FBTixDQUFjO0FBQUEsV0FBTztBQUNwQ0MsTUFBQUEsVUFBVSxFQUFFLFdBRHdCO0FBRXBDdEUsTUFBQUEsUUFBUSxZQUFLdUUsSUFBSSxDQUFDQyxLQUFMLENBQVdiLGNBQWMsR0FBRyxHQUE1QixDQUFMO0FBRjRCLEtBQVA7QUFBQSxHQUFkLEVBR2IsQ0FBQ0EsY0FBRCxDQUhhLENBQWpCO0FBS0EsTUFBTWMsWUFBWSxHQUFHbEssS0FBSyxDQUFDOEosT0FBTixDQUFjO0FBQUEsV0FBTztBQUN4Q0MsTUFBQUEsVUFBVSxFQUFFLFdBRDRCO0FBRXhDdEUsTUFBQUEsUUFBUSxZQUFLMkQsY0FBTDtBQUZnQyxLQUFQO0FBQUEsR0FBZCxFQUdqQixDQUFDQSxjQUFELENBSGlCLENBQXJCO0FBS0EsTUFBTWUsY0FBYyxnQkFBRyxvQkFBQyxLQUFELFFBQVE5QixjQUFSLENBQXZCO0FBQ0EsTUFBSStCLG1CQUFtQixHQUFHM0csa0JBQTFCO0FBQ0EsTUFBTTRHLGtCQUFrQixHQUFHNUksZUFBZSwyQkFBQzRFLGVBQWUsQ0FBQyxVQUFELENBQWhCLDJEQUFDLHVCQUE2Qi9DLFNBQTlCLENBQTFDOztBQUVBLE1BQUlHLGtCQUFrQixLQUFLNkcsU0FBM0IsRUFBc0M7QUFBRTtBQUN0Q0YsSUFBQUEsbUJBQW1CLEdBQUcsQ0FBQ0Msa0JBQXZCO0FBQ0Q7O0FBRURySyxFQUFBQSxLQUFLLENBQUM2RyxTQUFOLENBQWdCLFlBQU07QUFBRTtBQUN0QixRQUFNMEQsc0JBQXNCO0FBQUEsMEVBQUc7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUN6QkMsZ0JBQUFBLFlBRHlCLEdBQ1YsRUFEVSxFQUc3Qjs7QUFINkIsdURBSU4sQ0FBQW5FLGVBQWUsU0FBZixJQUFBQSxlQUFlLFdBQWYsWUFBQUEsZUFBZSxDQUFFbEIsWUFBakIsS0FBaUMsRUFKM0I7O0FBQUE7QUFJN0Isc0VBQTREO0FBQWpEc0Ysb0JBQUFBLFFBQWlEO0FBQ3BEQyxvQkFBQUEsYUFEb0QsR0FDcENELFFBRG9DLGFBQ3BDQSxRQURvQyw4Q0FDcENBLFFBQVEsQ0FBRUUsU0FEMEIsd0RBQ3BDLG9CQUFxQkgsWUFEZTtBQUUxREEsb0JBQUFBLFlBQVksR0FBR0EsWUFBWSxDQUFDSSxNQUFiLENBQW9CRixhQUFwQixDQUFmO0FBQ0Q7QUFQNEI7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQSxzQkFTekIsQ0FBQ2pILGtCQUFELHNCQUF1QitHLFlBQXZCLDJDQUF1QixlQUFjaEQsTUFBckMsSUFBK0N6RCxvQkFUdEI7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSx1QkFXckJBLG9CQUFvQixDQUFDeUcsWUFBRCxFQUFlekIsV0FBZixDQVhDOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE9BQUg7O0FBQUEsc0JBQXRCd0Isc0JBQXNCO0FBQUE7QUFBQTtBQUFBLE9BQTVCOztBQWVBLFFBQUlGLGtCQUFKLEVBQXdCO0FBQ3RCRSxNQUFBQSxzQkFBc0I7QUFDdkI7QUFDRixHQW5CRCxFQW1CRyxDQUFFcEYsWUFBRixFQUFnQjRELFdBQWhCLENBbkJIO0FBcUJBLE1BQU04QixVQUFVLEdBQUcsQ0FBQ1Isa0JBQXBCO0FBQ0EsTUFBTVMsZUFBZSxHQUFHLENBQUNULGtCQUF6QjtBQUNBLE1BQU1VLGVBQWUsR0FBRzNFLGNBQWMsR0FBR3hDLFlBQUgsR0FBa0JDLGFBQXhEO0FBQ0EsTUFBTW1ILDRCQUE0QixHQUFHO0FBQ25DN0csSUFBQUEsY0FBYyxFQUFFbUQsZ0JBQWdCLEdBQUduRCxjQUFILEdBQW9CLElBRGpCO0FBRW5DRSxJQUFBQSxTQUFTLEVBQVRBLFNBRm1DO0FBR25DNEcsSUFBQUEsZUFBZSxFQUFFL0gsU0FIa0I7QUFJbkMySCxJQUFBQSxVQUFVLEVBQVZBLFVBSm1DO0FBS25DQyxJQUFBQSxlQUFlLEVBQWZBLGVBTG1DO0FBTW5DbkgsSUFBQUEsVUFBVSxFQUFWQSxVQU5tQztBQU9uQztBQUNBeUMsSUFBQUEsY0FBYyxFQUFkQSxjQVJtQztBQVNuQ2xDLElBQUFBLFlBQVksRUFBRW9ELGdCQUFnQixHQUFHcEQsWUFBSCxHQUFrQixJQVRiO0FBVW5DbEIsSUFBQUEscUJBQXFCLEVBQXJCQSxxQkFWbUM7QUFXbkM7QUFDQStILElBQUFBLGVBQWUsRUFBZkEsZUFabUM7QUFhbkMxRSxJQUFBQSxlQUFlLEVBQWZBLGVBYm1DO0FBY25DRSxJQUFBQSxpQkFBaUIsRUFBakJBLGlCQWRtQztBQWVuQ3lCLElBQUFBLGVBQWUsRUFBZkEsZUFmbUM7QUFnQm5DNUQsSUFBQUEsZUFBZSxFQUFFOEcsZ0JBaEJrQjtBQWlCbkNDLElBQUFBLGNBQWMsRUFBRXhGLEtBQUssR0FBR2hFLFlBQUgsR0FBa0JFLFlBakJKO0FBa0JuQ3VKLElBQUFBLGNBQWMsRUFBRXBDLFFBbEJtQjtBQW1CbkN6RyxJQUFBQSxLQUFLLEVBQUU4RixjQW5CNEI7QUFvQm5DWCxJQUFBQSxxQkFBcUIsRUFBRS9DO0FBcEJZLEdBQXJDO0FBdUJBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0UsV0FBU3VHLGdCQUFULENBQTBCRyxZQUExQixFQUF3Q0MsS0FBeEMsU0FBeUc7QUFBQSxpQ0FBeERDLFVBQXdEO0FBQUEsUUFBeERBLFVBQXdELGlDQUEzQyxJQUEyQztBQUFBLG1DQUFyQ0MsWUFBcUM7QUFBQSxRQUFyQ0EsWUFBcUMsbUNBQXRCLElBQXNCO0FBQUEsNEJBQWhCakcsS0FBZ0I7QUFBQSxRQUFoQkEsS0FBZ0IsNEJBQVIsSUFBUTs7QUFDdkcsUUFBTWtHLG1CQUFtQixxQkFBUXZHLGtCQUFSLENBQXpCOztBQUVBLFFBQUlvRyxLQUFKLEVBQVc7QUFDVCxVQUFJRyxtQkFBbUIsQ0FBQ0MsY0FBcEIsQ0FBbUNMLFlBQW5DLENBQUosRUFBc0Q7QUFDcEQsZUFBT0ksbUJBQW1CLENBQUNKLFlBQUQsQ0FBMUI7QUFDRDtBQUNGLEtBSkQsTUFJTztBQUNMSSxNQUFBQSxtQkFBbUIsQ0FBQ0osWUFBRCxDQUFuQixHQUFvQztBQUFFRSxRQUFBQSxVQUFVLEVBQVZBLFVBQUY7QUFBY0MsUUFBQUEsWUFBWSxFQUFaQSxZQUFkO0FBQTRCakcsUUFBQUEsS0FBSyxFQUFMQTtBQUE1QixPQUFwQyxDQURLLENBQ21FO0FBQ3pFOztBQUVELFFBQU1vRyxtQkFBbUIsR0FBRyxDQUFDLENBQUNDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSixtQkFBWixFQUFpQ2pFLE1BQS9EOztBQUVBLFFBQUk5QyxrQkFBa0IsSUFBSWlILG1CQUExQixFQUErQztBQUM3Q3ZILE1BQUFBLGVBQWUsSUFBSUEsZUFBZSxDQUFDckIsVUFBRCxFQUFhLENBQUM0SSxtQkFBZCxDQUFsQztBQUNBL0YsTUFBQUEsUUFBUSxDQUFDO0FBQUVsQixRQUFBQSxrQkFBa0IsRUFBRWlIO0FBQXRCLE9BQUQsQ0FBUjtBQUNEOztBQUVELFFBQUksQ0FBQ3pLLE9BQU8sQ0FBQ3VLLG1CQUFELEVBQXNCdkcsa0JBQXRCLENBQVosRUFBdUQ7QUFDckRVLE1BQUFBLFFBQVEsQ0FBQztBQUFFVixRQUFBQSxrQkFBa0IsRUFBRXVHO0FBQXRCLE9BQUQsQ0FBUjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRSxXQUFTSyxjQUFULENBQXdCQyxRQUF4QixFQUFrQ0MsTUFBbEMsRUFBMEM7QUFDeEMsUUFBTTNFLElBQUksR0FBRzBFLFFBQVEsR0FBRyxFQUF4QjtBQUNBLFFBQU1FLE1BQU0sR0FBRzVFLElBQUksQ0FBQ0csTUFBcEI7QUFDQSxRQUFNMEUsS0FBSyxHQUFHRixNQUFNLENBQUNHLFNBQVAsQ0FBaUIsVUFBQ0MsS0FBRCxFQUFRQyxHQUFSLEVBQWdCO0FBQzdDLFVBQUlBLEdBQUcsR0FBRyxDQUFWLEVBQWE7QUFDWCxZQUFJRCxLQUFLLENBQUM3RSxTQUFOLENBQWdCLENBQWhCLEVBQW1CMEUsTUFBbkIsTUFBK0I1RSxJQUFuQyxFQUF5QztBQUN2QyxjQUFNaUYsUUFBUSxHQUFHRixLQUFLLENBQUNILE1BQUQsQ0FBdEI7O0FBRUEsY0FBS0ssUUFBUSxHQUFHLEdBQVosSUFBcUJBLFFBQVEsR0FBRyxHQUFwQyxFQUEwQztBQUN4QyxtQkFBTyxJQUFQO0FBQ0Q7QUFDRjtBQUNGOztBQUNELGFBQU8sS0FBUDtBQUNELEtBWGEsQ0FBZDtBQVlBLFdBQU9KLEtBQVA7QUFDRDs7QUFFRCxXQUFTSyxXQUFULEdBQXVCO0FBQUE7O0FBQ3JCLFFBQU1DLFFBQVEsR0FBR25HLGVBQWUsU0FBZixJQUFBQSxlQUFlLFdBQWYsNkJBQUFBLGVBQWUsQ0FBRW5ELFNBQWpCLHdFQUE0QkksU0FBNUIsR0FBd0MrQyxlQUFlLENBQUNuRCxTQUFoQixDQUEwQkksU0FBMUIsQ0FBb0NtSixXQUFwQyxFQUF4QyxHQUE0RixFQUE3RztBQUNBLHFCQUFVcEksU0FBVixjQUF1Qm1JLFFBQXZCO0FBQ0Q7O0FBRUQsTUFBTUUsUUFBUSxHQUFHSCxXQUFXLEVBQTVCLENBelVDLENBMlVEOztBQTNVQyxpQkE0VXNCbk0sT0FBTyxDQUFDO0FBQzdCMEUsSUFBQUEsR0FBRyxFQUFIQSxHQUQ2QjtBQUU3QmpDLElBQUFBLEtBQUssRUFBTEEsS0FGNkI7QUFHN0I4SixJQUFBQSxPQUFPLEVBQUU5SCxXQUhvQjtBQUk3QitILElBQUFBLE1BQU07QUFDSjdHLE1BQUFBLEtBQUssRUFBRTtBQUFFQyxRQUFBQSxNQUFNLEVBQUU7QUFBVjtBQURILE9BRUQ3QixjQUZDLGFBRURBLGNBRkMsdUJBRURBLGNBQWMsQ0FBRXlJLE1BRmY7QUFHSkMsTUFBQUEsS0FBSyxFQUFFMUksY0FBRixhQUFFQSxjQUFGLHVCQUFFQSxjQUFjLENBQUUwSSxLQUhuQjtBQUlKO0FBQ0FDLE1BQUFBLE9BQU8sRUFBRSxnQkFBQW5KLFVBQVUsVUFBVixrREFBWW9KLGFBQVosc0JBQTZCcEosVUFBN0IsaURBQTZCLGFBQVltSixPQUF6QyxLQUFvRDtBQUx6RCxNQUp1QjtBQVc3QkUsSUFBQUEsTUFBTSxFQUFFOUksWUFYcUI7QUFZN0IySSxJQUFBQSxLQUFLLEVBQUUxSSxjQUFGLGFBQUVBLGNBQUYsdUJBQUVBLGNBQWMsQ0FBRTBJLEtBWk07QUFhN0JJLElBQUFBLE1BQU0sRUFBRXZGLHFCQWJxQjtBQWM3QmdGLElBQUFBLFFBQVEsRUFBUkEsUUFkNkI7QUFlN0IvRixJQUFBQSxJQUFJLEVBQUpBO0FBZjZCLEdBQUQsQ0E1VTdCO0FBQUEsTUE0VU91RyxVQTVVUCxZQTRVT0EsVUE1VVA7O0FBOFZEbE4sRUFBQUEsS0FBSyxDQUFDNkcsU0FBTixDQUFnQixZQUFNO0FBQUU7QUFDdEIsUUFBTXNHLFNBQVM7QUFBQSwwRUFBRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBYztBQUMxQkYsZ0JBQUFBLE1BRFksR0FDRnZGLHFCQUFxQixLQUFLLFFBQTNCLEdBQXVDQSxxQkFBdkMsR0FBK0Q0QyxTQUQ1RDs7QUFBQSxvQkFHWDJDLE1BSFc7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSx1QkFJQ2pGLGVBQWUsRUFKaEI7O0FBQUE7QUFJZGlGLGdCQUFBQSxNQUpjOztBQUFBO0FBQUE7QUFBQSx1QkFPVkMsVUFBVSxDQUFDRCxNQUFELENBQVYsQ0FBbUJHLElBQW5CLENBQXdCLFVBQUNDLE9BQUQsRUFBYTtBQUFFO0FBQzNDLHNCQUFJQSxPQUFKLEVBQWE7QUFDWHJHLG9CQUFBQSxPQUFPLENBQUNDLEdBQVI7QUFDQXJCLG9CQUFBQSxRQUFRLENBQUM7QUFDUGIsc0JBQUFBLFNBQVMsRUFBRTtBQURKLHFCQUFELENBQVI7QUFJQSx3QkFBTXVJLGtCQUFrQixHQUFHMUIsTUFBTSxDQUFDQyxJQUFQLENBQVkzRyxrQkFBWixDQUEzQjs7QUFFQSx3QkFBSW9JLGtCQUFKLGFBQUlBLGtCQUFKLGVBQUlBLGtCQUFrQixDQUFFOUYsTUFBeEIsRUFBZ0M7QUFBQSxrRUFDTjhGLGtCQURNO0FBQUE7O0FBQUE7QUFDOUIsK0VBQTRDO0FBQUEsOEJBQWpDQyxTQUFpQztBQUFBLDhCQUNsQy9CLFlBRGtDLEdBQ2pCdEcsa0JBQWtCLENBQUNxSSxTQUFELENBREQsQ0FDbEMvQixZQURrQztBQUUxQ0EsMEJBQUFBLFlBQVksSUFBSUEsWUFBWSxFQUE1QjtBQUNEO0FBSjZCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLL0I7O0FBRUR4RSxvQkFBQUEsT0FBTyxDQUFDd0csSUFBUixDQUFhLDJDQUFiO0FBQ0FuSCxvQkFBQUEsZUFBZSxTQUFmLElBQUFBLGVBQWUsV0FBZixZQUFBQSxlQUFlLENBQUVvSCxjQUFqQjtBQUNELG1CQWpCRCxNQWlCTztBQUNMekcsb0JBQUFBLE9BQU8sQ0FBQ2QsS0FBUixDQUFjLHdEQUFkO0FBQ0FOLG9CQUFBQSxRQUFRLENBQUM7QUFBRWIsc0JBQUFBLFNBQVMsRUFBRTtBQUFiLHFCQUFELENBQVI7QUFDRDtBQUNGLGlCQXRCSyxDQVBVOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE9BQUg7O0FBQUEsc0JBQVRvSSxTQUFTO0FBQUE7QUFBQTtBQUFBLE9BQWY7O0FBZ0NBLFFBQUlwSSxTQUFKLEVBQWU7QUFDYmlDLE1BQUFBLE9BQU8sQ0FBQ0MsR0FBUjs7QUFDQWtHLE1BQUFBLFNBQVM7QUFDVjtBQUNGLEdBckNELEVBcUNHLENBQUNwSSxTQUFELENBckNIO0FBdUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNFLFdBQVMySSw4QkFBVCxDQUF3Q0MsU0FBeEMsRUFBbURoSixHQUFuRCxFQUF3RGlKLG1CQUF4RCxFQUE2RWxMLE9BQTdFLEVBQThGO0FBQzVGLFFBQUltTCxPQUFKO0FBQ0EsUUFBTUMsYUFBYSxHQUFHSCxTQUFILGFBQUdBLFNBQUgsdUJBQUdBLFNBQVMsQ0FBRUksS0FBWCxDQUFpQixNQUFqQixDQUF0QjtBQUNBLFFBQU1DLFlBQVksR0FBR2xDLGNBQWMsQ0FBQ25ILEdBQUQsYUFBQ0EsR0FBRCx1QkFBQ0EsR0FBRyxDQUFFdkIsT0FBTixFQUFlMEssYUFBZixDQUFuQzs7QUFFQSxRQUFJRSxZQUFZLElBQUksQ0FBcEIsRUFBdUI7QUFDckIsVUFBTUMsY0FBYyxHQUFHSCxhQUFhLENBQUNFLFlBQUQsQ0FBcEM7QUFDQSxVQUFNRSxXQUFXLEdBQUdELGNBQWMsQ0FBQ0YsS0FBZixDQUFxQixNQUFyQixDQUFwQjtBQUNBLFVBQU1JLFVBQVUsR0FBR3JDLGNBQWMsQ0FBQ25ILEdBQUQsYUFBQ0EsR0FBRCx1QkFBQ0EsR0FBRyxDQUFFeEIsS0FBTixFQUFhK0ssV0FBYixDQUFqQzs7QUFFQSxVQUFJQyxVQUFVLElBQUksQ0FBbEIsRUFBcUI7QUFDbkIsWUFBTUMsWUFBWSxHQUFHbk4seUJBQXlCLENBQUNvTixzQkFBMUIsQ0FBaURULG1CQUFqRCxDQUFyQjtBQUNBNUcsUUFBQUEsT0FBTyxDQUFDQyxHQUFSLDhCQUFrQ3ZFLE9BQWxDLHVDQUFzRTBMLFlBQVksQ0FBQzdHLFNBQWIsQ0FBdUIsQ0FBdkIsRUFBMEIsR0FBMUIsQ0FBdEU7QUFDQSxZQUFNK0csUUFBUSxHQUFHSixXQUFXLENBQUNDLFVBQUQsQ0FBNUI7QUFDQSxZQUFNSSxXQUFXLEdBQUcsQ0FBQyxDQUFBNUosR0FBRyxTQUFILElBQUFBLEdBQUcsV0FBSCxZQUFBQSxHQUFHLENBQUV4QixLQUFMLElBQWEsRUFBZCxFQUFrQnFFLE1BQXRDO0FBQ0EwRyxRQUFBQSxXQUFXLENBQUNDLFVBQUQsQ0FBWCxHQUEwQkcsUUFBUSxDQUFDL0csU0FBVCxDQUFtQixDQUFuQixFQUFzQmdILFdBQVcsR0FBRyxDQUFwQyxJQUF5Q0gsWUFBbkU7QUFDQSxZQUFNSSxVQUFVLEdBQUdOLFdBQVcsQ0FBQ08sSUFBWixDQUFpQixNQUFqQixDQUFuQjtBQUNBWCxRQUFBQSxhQUFhLENBQUNFLFlBQUQsQ0FBYixHQUE4QlEsVUFBOUI7QUFDQVgsUUFBQUEsT0FBTyxHQUFHQyxhQUFhLENBQUNXLElBQWQsQ0FBbUIsTUFBbkIsQ0FBVjtBQUNEO0FBQ0Y7O0FBQ0QsV0FBT1osT0FBUDtBQUNEOztBQUVEN04sRUFBQUEsS0FBSyxDQUFDNkcsU0FBTixDQUFnQixZQUFNO0FBQUU7QUFDdEIsUUFBSWpDLFdBQUosRUFBaUI7QUFDZixVQUFNMEksa0JBQWtCLEdBQUcxQixNQUFNLENBQUNDLElBQVAsQ0FBWTNHLGtCQUFaLENBQTNCOztBQUVBLFVBQUlvSSxrQkFBSixhQUFJQSxrQkFBSixlQUFJQSxrQkFBa0IsQ0FBRTlGLE1BQXhCLEVBQWdDO0FBQzlCLFlBQUltRyxTQUFTLEdBQUd6TixJQUFJLENBQUN3TyxlQUFMLENBQXFCckksZUFBckIsYUFBcUJBLGVBQXJCLHVCQUFxQkEsZUFBZSxDQUFFSyxhQUF0QyxDQUFoQjtBQUNBLFlBQUlpSSxTQUFTLEdBQUcsS0FBaEI7QUFDQSxZQUFJak0sUUFBTyxHQUFHLENBQWQ7O0FBSDhCLG9EQUtONEssa0JBTE07QUFBQTs7QUFBQTtBQUs5QixpRUFBNEM7QUFBQSxnQkFBakNDLFVBQWlDO0FBQzFDN0ssWUFBQUEsUUFBTyxHQUFHa00sUUFBUSxDQUFDckIsVUFBRCxDQUFsQjtBQUQwQyx5Q0FFWnJJLGtCQUFrQixDQUFDeEMsUUFBRCxDQUZOO0FBQUEsZ0JBRWxDNkksWUFGa0MsMEJBRWxDQSxVQUZrQztBQUFBLGdCQUV0QmhHLE9BRnNCLDBCQUV0QkEsS0FGc0I7O0FBSTFDLGdCQUFJZ0csWUFBSixFQUFnQjtBQUNkLGtCQUFJc0MsUUFBTyxTQUFYOztBQURjLGlDQUtWdEMsWUFBVSxDQUFDaEcsT0FBRCxDQUxBO0FBQUEsa0JBR1paLEtBSFksZ0JBR1pBLEdBSFk7QUFBQSxrQkFJWmlKLG9CQUpZLGdCQUlaQSxtQkFKWTs7QUFPZCxrQkFBSUEsb0JBQW1CLElBQUlELFNBQTNCLEVBQXNDO0FBQUU7QUFDdENFLGdCQUFBQSxRQUFPLEdBQUdILDhCQUE4QixDQUFDQyxTQUFELEVBQVloSixLQUFaLEVBQWlCaUosb0JBQWpCLEVBQXNDbEwsUUFBdEMsQ0FBeEM7QUFDRDs7QUFFRCxrQkFBSW1MLFFBQUosRUFBYTtBQUNYRixnQkFBQUEsU0FBUyxHQUFHRSxRQUFaO0FBQ0QsZUFGRCxNQUVPO0FBQ0xjLGdCQUFBQSxTQUFTLEdBQUcsSUFBWjtBQUNBO0FBQ0Q7QUFDRjtBQUNGO0FBM0I2QjtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQTZCOUIsWUFBSUEsU0FBSixFQUFlO0FBQUU7QUFDZjNILFVBQUFBLE9BQU8sQ0FBQ0MsR0FBUiw4QkFBa0N2RSxRQUFsQztBQUNBLGNBQUltTSxXQUFKOztBQUZhLHNEQUlXdkIsa0JBSlg7QUFBQTs7QUFBQTtBQUliLG1FQUE0QztBQUFBLGtCQUFqQ0MsU0FBaUM7O0FBQzFDLGtCQUFNN0ssU0FBTyxHQUFHa00sUUFBUSxDQUFDckIsU0FBRCxDQUF4Qjs7QUFEMEMsMENBRVpySSxrQkFBa0IsQ0FBQ3hDLFNBQUQsQ0FGTjtBQUFBLGtCQUVsQzZJLFVBRmtDLHlCQUVsQ0EsVUFGa0M7QUFBQSxrQkFFdEJoRyxNQUZzQix5QkFFdEJBLEtBRnNCOztBQUkxQyxrQkFBSWdHLFVBQUosRUFBZ0I7QUFDZCxvQkFBSXNDLE9BQU8sU0FBWDs7QUFEYyxrQ0FNVnRDLFVBQVUsQ0FBQ2hHLE1BQUQsQ0FOQTtBQUFBLG9CQUdadUosWUFIWSxlQUdaQSxZQUhZO0FBQUEsb0JBSVpuSyxLQUpZLGVBSVpBLEdBSlk7QUFBQSxvQkFLWmlKLG1CQUxZLGVBS1pBLG1CQUxZOztBQVFkLG9CQUFJQSxtQkFBbUIsSUFBSSxDQUFDQyxPQUE1QixFQUFxQztBQUNuQyxzQkFBSWtCLG1CQUFtQixHQUFHLElBQTFCOztBQUVBLHNCQUFJcEssS0FBSixFQUFTO0FBQ1Asd0JBQUltSyxZQUFKLEVBQWtCO0FBQUEsa0RBQ2U5TixnQkFBZ0IsQ0FBQ2dPLDZCQUFqQixDQUErQ3BCLG1CQUEvQyxFQUFvRWtCLFlBQXBFLENBRGY7QUFBQSwwQkFDUkcsa0JBRFEseUJBQ1JBLGtCQURROztBQUVoQkYsc0JBQUFBLG1CQUFtQixHQUFHRSxrQkFBdEI7QUFDRCxxQkFIRCxNQUdPO0FBQ0xGLHNCQUFBQSxtQkFBbUIsR0FBR25CLG1CQUF0QjtBQUNEOztBQUNEaUIsb0JBQUFBLFdBQVcsR0FBR0UsbUJBQW1CLEtBQUkxSSxlQUFKLGFBQUlBLGVBQUosdUJBQUlBLGVBQWUsQ0FBRTZJLFdBQWpCLENBQTZCdkssS0FBRyxDQUFDdkIsT0FBakMsRUFBMEN1QixLQUFHLENBQUN4QixLQUE5QyxFQUFxRDtBQUFFcUgsc0JBQUFBLFlBQVksRUFBRXVFO0FBQWhCLHFCQUFyRCxDQUFKLENBQWpDO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7QUE5Qlk7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFnQ2JwQixVQUFBQSxTQUFTLEdBQUd4TixNQUFNLENBQUNnUCxNQUFQLENBQWNOLFdBQWQsRUFBMkI7QUFBRU8sWUFBQUEsY0FBYyxFQUFFO0FBQWxCLFdBQTNCLENBQVo7QUFDRDs7QUFFRHBJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixtREFBdUQwRyxTQUFTLENBQUNwRyxTQUFWLENBQW9CLENBQXBCLEVBQXVCLEdBQXZCLENBQXZEO0FBQ0EzQixRQUFBQSxRQUFRLENBQUM7QUFBRWYsVUFBQUEsV0FBVyxFQUFFOEksU0FBZjtBQUEwQjVJLFVBQUFBLFNBQVMsRUFBRSxJQUFyQztBQUEyQ0gsVUFBQUEsV0FBVyxFQUFFO0FBQXhELFNBQUQsQ0FBUjtBQUNEO0FBQ0Y7QUFDRixHQXhFRCxFQXdFRyxDQUFDQSxXQUFELENBeEVIO0FBMEVBNUUsRUFBQUEsS0FBSyxDQUFDNkcsU0FBTixDQUFnQixZQUFNO0FBQ3BCLFFBQUksQ0FBQzNGLE9BQU8sQ0FBQ2lFLFlBQUQsRUFBZWtCLGVBQWYsYUFBZUEsZUFBZix1QkFBZUEsZUFBZSxDQUFFbEIsWUFBaEMsQ0FBWixFQUEyRDtBQUN6RCxVQUFNQSxhQUFZLEdBQUdrQixlQUFILGFBQUdBLGVBQUgsdUJBQUdBLGVBQWUsQ0FBRWxCLFlBQXRDOztBQUNBUyxNQUFBQSxRQUFRLENBQUM7QUFBRVQsUUFBQUEsWUFBWSxFQUFaQTtBQUFGLE9BQUQsQ0FBUjs7QUFGeUQsa0RBSWxDQSxhQUFZLElBQUksRUFKa0I7QUFBQTs7QUFBQTtBQUl6RCwrREFBMkM7QUFBQSxjQUFoQ3NGLFFBQWdDO0FBQ3pDO0FBQ0EsY0FBTTRFLE1BQU0sR0FBRzVFLFFBQVEsQ0FBQ3RILEtBQXhCOztBQUVBLGNBQUltQixhQUFhLElBQUssT0FBTytLLE1BQVAsS0FBa0IsUUFBeEMsRUFBbUQ7QUFDakQ7QUFDQSxnQkFBSUEsTUFBTSxDQUFDQyxRQUFQLENBQWdCLEdBQWhCLENBQUosRUFBMEI7QUFBQTs7QUFDeEJoTCxjQUFBQSxhQUFhLFdBQUkrQixlQUFKLGFBQUlBLGVBQUosaURBQUlBLGVBQWUsQ0FBRW5ELFNBQXJCLDJEQUFJLHVCQUE0QkUsT0FBaEMsY0FBMkNpTSxNQUEzQyxFQUFiO0FBQ0Q7QUFDRjtBQUNGO0FBZHdEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlMUQ7QUFDRixHQWpCRCxFQWlCRyxDQUFDaEosZUFBRCxhQUFDQSxlQUFELHVCQUFDQSxlQUFlLENBQUVsQixZQUFsQixDQWpCSDtBQW1CQW5GLEVBQUFBLEtBQUssQ0FBQzZHLFNBQU4sQ0FBZ0IsWUFBTTtBQUNwQmpCLElBQUFBLFFBQVEsQ0FBQztBQUFFTixNQUFBQSxxQkFBcUIsRUFBRTtBQUF6QixLQUFELENBQVI7QUFDRCxHQUZELEVBRUcsQ0FBQ25DLEtBQUQsQ0FGSDtBQUlBLE1BQU1vTSxxQkFBcUIsR0FBRzNILGVBQUgsYUFBR0EsZUFBSCx1QkFBR0EsZUFBZSxDQUFFNEgsV0FBL0M7QUFDQSxNQUFNQywyQkFBMkIsR0FBRzdILGVBQUgsYUFBR0EsZUFBSCx1QkFBR0EsZUFBZSxDQUFFOEgsUUFBckQ7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRzlILGFBQUgsYUFBR0EsYUFBSCx1QkFBR0EsYUFBYSxDQUFFNkgsUUFBakQsQ0F2Z0JDLENBeWdCRDs7QUFDQSxNQUFNRSxvQkFBb0IsR0FBR0gsMkJBQTJCLEdBQUcsd0NBQUgsR0FBK0NGLHFCQUFxQixHQUFHLG9CQUFILEdBQTBCLDJDQUF0SixDQTFnQkMsQ0EyZ0JEOztBQUNBLE1BQU1NLG9CQUFvQixHQUFHSiwyQkFBMkIsR0FBRyxPQUFILEdBQWNGLHFCQUFxQixHQUFHLE9BQUgsR0FBYSxXQUF4RztBQUNBLE1BQU1PLGtCQUFrQixHQUFHSCx5QkFBeUIsR0FBRyx1Q0FBSCxHQUE2QywwQ0FBakc7QUFDQSxNQUFNSSxrQkFBa0IsR0FBR0oseUJBQXlCLEdBQUcsT0FBSCxHQUFhLE9BQWpFOztBQUVBLE1BQU1LLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBOEIsQ0FBQzlNLFNBQUQsRUFBWStNLE9BQVosRUFBd0I7QUFDMUR6SyxJQUFBQSxTQUFTLENBQUMsVUFBQU0sU0FBUztBQUFBLDZDQUNkQSxTQURjO0FBRWpCUixRQUFBQSxxQkFBcUIsa0NBQU1RLFNBQVMsQ0FBQ1IscUJBQWhCLHFDQUEyQ3BDLFNBQVMsQ0FBQ0UsT0FBckQsY0FBZ0VGLFNBQVMsQ0FBQ0MsS0FBMUUsR0FBb0Y4TSxPQUFwRjtBQUZKO0FBQUEsS0FBVixDQUFUO0FBSUQsR0FMRDs7QUFPQSxNQUFNQyxzQkFBc0IsR0FBRy9LLFlBQUgsYUFBR0EsWUFBSCx1QkFBR0EsWUFBWSxDQUFFZ0wsR0FBZCxDQUFrQixVQUFDQyxpQkFBRCxFQUFvQmxFLEtBQXBCLEVBQThCO0FBQUE7O0FBQzdFLFFBQU1tRSxtQkFBbUIsR0FBRyxDQUFBRCxpQkFBaUIsU0FBakIsSUFBQUEsaUJBQWlCLFdBQWpCLHFDQUFBQSxpQkFBaUIsQ0FBRXpGLFNBQW5CLGdGQUE4QkgsWUFBOUIsS0FBOEMsSUFBMUUsQ0FENkUsQ0FFN0U7O0FBRjZFLGdCQUdsRDRGLGlCQUFpQixJQUFJLEVBSDZCO0FBQUEsUUFHckVoTixPQUhxRSxTQUdyRUEsT0FIcUU7QUFBQSxRQUc1REQsS0FINEQsU0FHNURBLEtBSDREOztBQUk3RSxRQUFNbU4sVUFBVSxtQ0FDWHBOLFNBRFc7QUFFZEUsTUFBQUEsT0FBTyxFQUFQQSxPQUZjO0FBR2RELE1BQUFBLEtBQUssRUFBTEE7QUFIYyxNQUFoQjs7QUFLQSxRQUFNb04sNkJBQTZCLG1DQUM5QnZGLDRCQUQ4QjtBQUVqQ0ssTUFBQUEsWUFBWSxFQUFFYSxLQUZtQjtBQUdqQ21FLE1BQUFBLG1CQUFtQixFQUFuQkEsbUJBSGlDO0FBSWpDbk4sTUFBQUEsU0FBUyxFQUFFb047QUFKc0IsTUFBbkM7O0FBT0EsUUFBSUUsMkJBQTJCLEdBQUcsS0FBbEM7O0FBQ0EsUUFBSW5MLHlCQUFKLEVBQStCO0FBQzdCbUwsTUFBQUEsMkJBQTJCLEdBQUduTCx5QkFBeUIsQ0FBQ2pDLE9BQTFCLEtBQXNDQSxPQUF0QyxJQUFpRGlDLHlCQUF5QixDQUFDbEMsS0FBMUIsS0FBb0NBLEtBQW5IO0FBQ0Q7O0FBRUQsd0JBQ0Usb0JBQUMsYUFBRCxlQUNNa0QsZUFETjtBQUVFLE1BQUEsWUFBWSxFQUFFNkQsWUFGaEI7QUFHRSxNQUFBLFlBQVksRUFBRWdDLEtBSGhCO0FBSUUsTUFBQSxTQUFTLEVBQUVqRCxTQUpiO0FBS0UsTUFBQSxrQkFBa0IsRUFBRW1CLG1CQUx0QjtBQU1FLE1BQUEsUUFBUSxFQUFFM0UsUUFOWjtBQU9FLE1BQUEsY0FBYyxFQUFFM0IsY0FQbEI7QUFRRSxNQUFBLElBQUksRUFBRTZCLEtBUlI7QUFTRSxNQUFBLEdBQUcsRUFBRXVHLEtBVFA7QUFVRSxNQUFBLFFBQVEsRUFBRXJDLFFBVlo7QUFXRSxNQUFBLFNBQVMsRUFBRXlHLFVBWGI7QUFZRSxNQUFBLE1BQU0sRUFBRXZMLFNBWlYsQ0FhRTtBQWJGO0FBY0UsTUFBQSw0QkFBNEIsRUFBRXdMLDZCQWRoQztBQWVFLE1BQUEsb0JBQW9CLEVBQUVoTSxvQkFmeEI7QUFnQkUsTUFBQSxNQUFNLEVBQUUvQixNQWhCVjtBQWlCRSxNQUFBLFNBQVMsRUFBRXdCLFNBakJiO0FBa0JFLE1BQUEsT0FBTyxFQUFFOEQsT0FsQlg7QUFtQkUsTUFBQSwyQkFBMkIsRUFBRTBJLDJCQW5CL0I7QUFvQkUsTUFBQSxpQkFBaUIsRUFBRTtBQUFBLGVBQU01SyxRQUFRLENBQUM7QUFBRVAsVUFBQUEseUJBQXlCLEVBQUU7QUFBN0IsU0FBRCxDQUFkO0FBQUEsT0FwQnJCO0FBcUJFLE1BQUEsMkJBQTJCLEVBQUUySztBQXJCL0IsT0FERjtBQXlCRCxHQTlDOEIsQ0FBL0I7O0FBZ0RBLE1BQU1TLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBeUIsR0FBTTtBQUNuQyxRQUFJLENBQUF0TCxZQUFZLFNBQVosSUFBQUEsWUFBWSxXQUFaLFlBQUFBLFlBQVksQ0FBRXFDLE1BQWQsSUFBdUIsQ0FBM0IsRUFBOEI7QUFDNUI1QixNQUFBQSxRQUFRLENBQUM7QUFBRVIsUUFBQUEsa0JBQWtCLEVBQUU7QUFBdEIsT0FBRCxDQUFSO0FBQ0QsS0FGRCxNQUVPLElBQUksQ0FBQUQsWUFBWSxTQUFaLElBQUFBLFlBQVksV0FBWixZQUFBQSxZQUFZLENBQUVxQyxNQUFkLE1BQXlCLENBQTdCLEVBQWdDO0FBQ3JDNUIsTUFBQUEsUUFBUSxDQUFDO0FBQUVQLFFBQUFBLHlCQUF5QixFQUFFRixZQUFZLENBQUMsQ0FBRDtBQUF6QyxPQUFELENBQVI7QUFDRDtBQUNGLEdBTkQ7O0FBUUEsTUFBTXVMLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsUUFBZTtBQUFBLFFBQVpySCxLQUFZLFNBQVpBLEtBQVk7O0FBQ3JDLFFBQU1zSCxRQUFRLHNCQUFPdEgsS0FBUCxDQUFkOztBQUVBLFFBQUl1SCxnQkFBZ0IsR0FBRyxLQUF2QixDQUhxQyxDQUlyQzs7QUFDQSxRQUFJdEwscUJBQUosRUFBMkI7QUFDekJzTCxNQUFBQSxnQkFBZ0IsR0FBR2hGLE1BQU0sQ0FBQ2lGLE1BQVAsQ0FBY3ZMLHFCQUFkLEVBQXFDd0wsS0FBckMsQ0FBMkMsVUFBQUMsV0FBVztBQUFBLGVBQUlBLFdBQVcsS0FBSyxJQUFwQjtBQUFBLE9BQXRELENBQW5CO0FBQ0Q7O0FBQ0QsUUFBSUMsU0FBUyxHQUFHLElBQWhCO0FBQ0EsUUFBSUMsZUFBZSxHQUFHLEVBQXRCOztBQUNBLFFBQUlMLGdCQUFKLEVBQXNCO0FBQ3BCSSxNQUFBQSxTQUFTLGdCQUFHLG9CQUFDLE9BQUQ7QUFBUyxRQUFBLEVBQUUsdUJBQWdCak8sVUFBaEIsQ0FBWDtBQUF5QyxRQUFBLEtBQUssRUFBQztBQUEvQyxRQUFaO0FBQ0FrTyxNQUFBQSxlQUFlLEdBQUcsb0JBQWxCO0FBQ0QsS0FIRCxNQUdPO0FBQ0xELE1BQUFBLFNBQVMsZ0JBQUcsb0JBQUMsWUFBRDtBQUFjLFFBQUEsRUFBRSxtQ0FBNEJqTyxVQUE1QixDQUFoQjtBQUEwRCxRQUFBLEtBQUssRUFBQztBQUFoRSxRQUFaO0FBQ0FrTyxNQUFBQSxlQUFlLEdBQUcsc0JBQWxCO0FBQ0Q7O0FBRUQsUUFBSTFNLG9CQUFvQixJQUFJeEIsVUFBVSxLQUFLLGlCQUEzQyxFQUE4RDtBQUM1RDROLE1BQUFBLFFBQVEsQ0FBQ08sSUFBVCxlQUNFLG9CQUFDLFVBQUQ7QUFDRSxRQUFBLEVBQUUsMkJBQW9Cbk8sVUFBcEIsQ0FESjtBQUVFLFFBQUEsR0FBRyxFQUFDLGlCQUZOO0FBR0UsUUFBQSxPQUFPLEVBQUUwTixzQkFIWDtBQUlFLFFBQUEsS0FBSyxFQUFFUSxlQUpUO0FBS0Usc0JBQVlBLGVBTGQ7QUFNRSxRQUFBLEtBQUssRUFBRTtBQUFFRSxVQUFBQSxNQUFNLEVBQUU7QUFBVjtBQU5ULFNBUUdILFNBUkgsQ0FERjtBQVlEOztBQUVELFFBQUlwSixlQUFKLEVBQXFCO0FBQ25CK0ksTUFBQUEsUUFBUSxDQUFDTyxJQUFULGVBQ0Usb0JBQUMsVUFBRDtBQUNFLFFBQUEsU0FBUyxFQUFFdk8sT0FBTyxDQUFDeU8sTUFEckI7QUFFRSxRQUFBLEdBQUcsRUFBQyxvQkFGTjtBQUdFLFFBQUEsT0FBTyxFQUFFbEosNkJBSFg7QUFJRSxRQUFBLEtBQUssRUFBRTBILG9CQUpUO0FBS0Usc0JBQVlBLG9CQUxkO0FBTUUsUUFBQSxLQUFLLEVBQUU7QUFBRXVCLFVBQUFBLE1BQU0sRUFBRTtBQUFWO0FBTlQsU0FRRzFCLDJCQUEyQixnQkFDMUIsb0JBQUMsZ0JBQUQ7QUFBa0IsUUFBQSxFQUFFLEVBQUMseUJBQXJCO0FBQStDLFFBQUEsS0FBSyxFQUFFSTtBQUF0RCxRQUQwQixnQkFHMUIsb0JBQUMsUUFBRDtBQUFVLFFBQUEsRUFBRSxFQUFDLHlCQUFiO0FBQXVDLFFBQUEsS0FBSyxFQUFFQTtBQUE5QyxRQVhKLENBREY7QUFnQkQ7O0FBQ0QsUUFBSWhJLGFBQUosRUFBbUI7QUFDakI4SSxNQUFBQSxRQUFRLENBQUNPLElBQVQsZUFDRSxvQkFBQyxVQUFEO0FBQ0UsUUFBQSxTQUFTLEVBQUV2TyxPQUFPLENBQUN5TyxNQURyQjtBQUVFLFFBQUEsR0FBRyxFQUFDLGlCQUZOO0FBR0UsUUFBQSxPQUFPLEVBQUVqSiwyQkFIWDtBQUlFLFFBQUEsS0FBSyxFQUFFMkgsa0JBSlQ7QUFLRSxzQkFBWUEsa0JBTGQ7QUFNRSxRQUFBLEtBQUssRUFBRTtBQUFFcUIsVUFBQUEsTUFBTSxFQUFFO0FBQVY7QUFOVCxTQVFHeEIseUJBQXlCLGdCQUN4QixvQkFBQyxnQkFBRDtBQUFrQixRQUFBLEVBQUUsRUFBQyxzQkFBckI7QUFBNEMsUUFBQSxLQUFLLEVBQUVJO0FBQW5ELFFBRHdCLGdCQUd4QixvQkFBQyxPQUFEO0FBQVMsUUFBQSxFQUFFLEVBQUMsc0JBQVo7QUFBbUMsUUFBQSxLQUFLLEVBQUVBO0FBQTFDLFFBWEosQ0FERjtBQWdCRDs7QUFDRCxXQUFPWSxRQUFQO0FBQ0QsR0F0RUQ7O0FBd0VBLHNCQUNFLHVEQUNFLG9CQUFDLElBQUQ7QUFDRSxJQUFBLEVBQUUsMkJBQW9Cak8sT0FBcEIsQ0FESjtBQUVFLElBQUEsS0FBSyxFQUFFeUgsY0FGVDtBQUdFLElBQUEsYUFBYSxFQUFFOUIsY0FBYyxHQUFHLFdBSGxDO0FBSUUsSUFBQSxLQUFLLEVBQUVnQixLQUpUO0FBS0UsSUFBQSxPQUFPLEVBQUUxRyxPQUxYO0FBTUUsSUFBQSxPQUFPLEVBQUUyRyxPQU5YO0FBT0UsSUFBQSxPQUFPLEVBQUVDLE9BUFg7QUFRRSxJQUFBLFFBQVEsRUFBRTlELFFBUlo7QUFTRSxJQUFBLFNBQVMsRUFBRStELFNBVGI7QUFVRSxJQUFBLFVBQVUsRUFBRUUsVUFWZDtBQVdFLElBQUEsV0FBVyxFQUFFaEUsV0FYZjtBQVlFLElBQUEsWUFBWSxFQUFFaUUsWUFaaEI7QUFhRSxJQUFBLFlBQVksRUFBRUYsWUFiaEI7QUFjRSxJQUFBLGVBQWUsRUFBRUcsZUFkbkI7QUFlRSxJQUFBLGtCQUFrQixFQUFFaEIsb0JBZnRCO0FBZ0JFLElBQUEsa0JBQWtCLE1BaEJwQjtBQWlCRSxJQUFBLFdBQVcsRUFBRUUsV0FqQmY7QUFrQkUsSUFBQSxVQUFVLEVBQUU3RSxVQUFVLEdBQUc7QUFBQSxhQUFNQSxVQUFVLENBQUM1QixFQUFELENBQWhCO0FBQUEsS0FBSCxHQUEwQixJQWxCbEQ7QUFtQkUsSUFBQSxRQUFRLEVBQUV3SSxVQUFVLElBQUlDLGVBbkIxQjtBQW9CRSxJQUFBLEtBQUssRUFBRS9GLFNBQVMsSUFBSSxDQUFDTCxrQkFwQnZCO0FBcUJFLElBQUEsVUFBVSxFQUFFO0FBQUEsYUFBTWtCLFFBQVEsQ0FBQztBQUFFaEIsUUFBQUEsV0FBVyxFQUFFO0FBQWYsT0FBRCxDQUFkO0FBQUEsS0FyQmQ7QUFzQkUsSUFBQSxlQUFlLEVBQUU4TDtBQXRCbkIsa0JBd0JFO0FBQUssSUFBQSxFQUFFLEVBQUM7QUFBUixLQUNHUixzQkFESCxDQXhCRixDQURGLGVBNkJFLG9CQUFDLGtCQUFEO0FBQ0UsSUFBQSxVQUFVLEVBQUVuTixVQURkO0FBRUUsSUFBQSxJQUFJLEVBQUVxQyxrQkFGUjtBQUdFLElBQUEsT0FBTyxFQUFFO0FBQUEsYUFBTVEsUUFBUSxDQUFDO0FBQUVSLFFBQUFBLGtCQUFrQixFQUFFO0FBQXRCLE9BQUQsQ0FBZDtBQUFBLEtBSFg7QUFJRSxJQUFBLFlBQVksRUFBRUQsWUFKaEI7QUFLRSxJQUFBLHFCQUFxQixFQUFFRyxxQkFMekI7QUFNRSxJQUFBLGFBQWEsRUFBRSx1QkFBQ25DLEtBQUQ7QUFBQSxhQUFXeUMsUUFBUSxDQUFDO0FBQ2pDUCxRQUFBQSx5QkFBeUIsRUFBRWxDLEtBRE07QUFFakNpQyxRQUFBQSxrQkFBa0IsRUFBRTtBQUZhLE9BQUQsQ0FBbkI7QUFBQTtBQU5qQixJQTdCRixDQURGO0FBMkNEO0FBRURoRCxhQUFhLENBQUNpUCxTQUFkLEdBQTBCO0FBQ3hCO0FBQ0FoUCxFQUFBQSxFQUFFLEVBQUVwQyxTQUFTLENBQUNxUixNQUZVOztBQUd4QjtBQUNBaFAsRUFBQUEsSUFBSSxFQUFFckMsU0FBUyxDQUFDc1IsSUFBVixDQUFlQyxVQUpHOztBQUt4QjtBQUNBalAsRUFBQUEsS0FBSyxFQUFFdEMsU0FBUyxDQUFDcVIsTUFBVixDQUFpQkUsVUFOQTs7QUFPeEI7QUFDQXZPLEVBQUFBLFdBQVcsRUFBRWhELFNBQVMsQ0FBQ3NSLElBQVYsQ0FBZUMsVUFSSjs7QUFTeEI7QUFDQTlPLEVBQUFBLE9BQU8sRUFBRXpDLFNBQVMsQ0FBQ3dSLE1BQVYsQ0FBaUJELFVBVkY7O0FBV3hCO0FBQ0E1TyxFQUFBQSxRQUFRLEVBQUUzQyxTQUFTLENBQUN5UixLQUFWLENBQWdCO0FBQ3hCO0FBQ0E1TyxJQUFBQSxVQUFVLEVBQUU3QyxTQUFTLENBQUNxUixNQUFWLENBQWlCRSxVQUZMOztBQUd4QjtBQUNBM08sSUFBQUEsS0FBSyxFQUFFNUMsU0FBUyxDQUFDcVIsTUFBVixDQUFpQkUsVUFKQTs7QUFLeEI7QUFDQXpPLElBQUFBLFVBQVUsRUFBRTlDLFNBQVMsQ0FBQ3FSLE1BQVYsQ0FBaUJFLFVBTkw7O0FBT3hCO0FBQ0F4TyxJQUFBQSxxQkFBcUIsRUFBRS9DLFNBQVMsQ0FBQ3FSLE1BQVYsQ0FBaUJFO0FBUmhCLEdBQWhCLENBWmM7QUFzQnhCdE8sRUFBQUEsU0FBUyxFQUFFakQsU0FBUyxDQUFDeVIsS0FBVixDQUFnQjtBQUN6QjtBQUNBcE8sSUFBQUEsU0FBUyxFQUFFckQsU0FBUyxDQUFDcVIsTUFBVixDQUFpQkUsVUFGSDs7QUFHekI7QUFDQXBPLElBQUFBLE9BQU8sRUFBRW5ELFNBQVMsQ0FBQzBSLFNBQVYsQ0FBb0IsQ0FBQzFSLFNBQVMsQ0FBQ3dSLE1BQVgsRUFBbUJ4UixTQUFTLENBQUNxUixNQUE3QixDQUFwQixFQUEwREUsVUFKMUM7O0FBS3pCO0FBQ0FyTyxJQUFBQSxLQUFLLEVBQUVsRCxTQUFTLENBQUMwUixTQUFWLENBQW9CLENBQUMxUixTQUFTLENBQUN3UixNQUFYLEVBQW1CeFIsU0FBUyxDQUFDcVIsTUFBN0IsQ0FBcEIsRUFBMERFO0FBTnhDLEdBQWhCLENBdEJhOztBQThCeEI7QUFDQWhQLEVBQUFBLE1BQU0sRUFBRXZDLFNBQVMsQ0FBQ3FSLE1BQVYsQ0FBaUJFLFVBL0JEOztBQWdDeEI7QUFDQS9PLEVBQUFBLE1BQU0sRUFBRXhDLFNBQVMsQ0FBQ3FSLE1BQVYsQ0FBaUJFLFVBakNEOztBQWtDeEI7QUFDQS9OLEVBQUFBLGtCQUFrQixFQUFFeEQsU0FBUyxDQUFDMlIsSUFuQ047O0FBb0N4QjtBQUNBalAsRUFBQUEsT0FBTyxFQUFFMUMsU0FBUyxDQUFDNFIsTUFyQ0s7O0FBc0N4QjtBQUNBdE8sRUFBQUEsWUFBWSxFQUFFdEQsU0FBUyxDQUFDNlIsR0F2Q0E7O0FBd0N4QjtBQUNBdE8sRUFBQUEsbUJBQW1CLEVBQUV2RCxTQUFTLENBQUNzUixJQUFWLENBQWVDLFVBekNaOztBQTBDeEI7QUFDRjtBQUNBO0FBQ0E7QUFDRTlOLEVBQUFBLGVBQWUsRUFBRXpELFNBQVMsQ0FBQ3NSLElBOUNIOztBQStDeEI7QUFDQTVOLEVBQUFBLFVBQVUsRUFBRTFELFNBQVMsQ0FBQzRSLE1BaERFOztBQWlEeEI7QUFDQWpPLEVBQUFBLFlBQVksRUFBRTNELFNBQVMsQ0FBQ3FSLE1BbERBOztBQW1EeEI7QUFDQXpOLEVBQUFBLGFBQWEsRUFBRTVELFNBQVMsQ0FBQ3FSLE1BcEREOztBQXFEeEI7QUFDQXhOLEVBQUFBLGNBQWMsRUFBRTdELFNBQVMsQ0FBQ3NSLElBdERGOztBQXVEeEI7QUFDQXhOLEVBQUFBLG9CQUFvQixFQUFFOUQsU0FBUyxDQUFDc1IsSUF4RFI7O0FBeUR4QjtBQUNBdk4sRUFBQUEsU0FBUyxFQUFFL0QsU0FBUyxDQUFDc1IsSUExREc7O0FBMkR4QjtBQUNBdE4sRUFBQUEsVUFBVSxFQUFFaEUsU0FBUyxDQUFDc1IsSUE1REU7O0FBNkR4QjtBQUNBck4sRUFBQUEsWUFBWSxFQUFFakUsU0FBUyxDQUFDcVIsTUE5REE7O0FBK0R4QjtBQUNBbk4sRUFBQUEsY0FBYyxFQUFFbEUsU0FBUyxDQUFDNFIsTUFoRUY7O0FBaUV4QjtBQUNBek4sRUFBQUEsZUFBZSxFQUFFbkUsU0FBUyxDQUFDc1IsSUFsRUg7O0FBbUV4QjtBQUNBbE4sRUFBQUEsU0FBUyxFQUFFcEUsU0FBUyxDQUFDcVIsTUFwRUc7O0FBcUV4QjtBQUNBaE4sRUFBQUEsYUFBYSxFQUFFckUsU0FBUyxDQUFDc1IsSUF0RUQ7O0FBdUV4QjtBQUNBaE4sRUFBQUEsb0JBQW9CLEVBQUV0RSxTQUFTLENBQUNzUixJQXhFUjs7QUF5RXhCO0FBQ0EvTSxFQUFBQSxnQkFBZ0IsRUFBRXZFLFNBQVMsQ0FBQ3NSO0FBMUVKLENBQTFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcydcbmltcG9ydCB7IGNvcmUgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB1c2ZtanMgZnJvbSAndXNmbS1qcydcbmltcG9ydCB7IHVzZUVkaXQgfSBmcm9tICdnaXRlYS1yZWFjdC10b29sa2l0J1xuaW1wb3J0IHsgTWRVcGRhdGUsIE1kVXBkYXRlRGlzYWJsZWQgfSBmcm9tICdyZWFjdC1pY29ucy9tZCdcbmltcG9ydCB7IEZpU2hhcmUgfSBmcm9tICdyZWFjdC1pY29ucy9maSdcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUnhMaW5rMiwgUnhMaW5rQnJlYWsyIH0gZnJvbSAncmVhY3QtaWNvbnMvcngnXG5pbXBvcnQge1xuICBDYXJkLFxuICB1c2VDYXJkU3RhdGUsXG4gIHVzZVVzZXJCcmFuY2gsXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgeyBBbGlnbm1lbnRIZWxwZXJzLCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCAqIGFzIGlzRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnLi4vU2NyaXB0dXJlUGFuZS9zdHlsZWQnXG5pbXBvcnQge1xuICBOVF9PUklHX0xBTkcsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFZlcnNlU2VsZWN0b3JQb3B1cCB9IGZyb20gJy4uL1ZlcnNlU2VsZWN0b3JQb3B1cCdcblxuY29uc3QgS0VZX0ZPTlRfU0laRV9CQVNFID0gJ3NjcmlwdHVyZVBhbmVGb250U2l6ZV8nXG5jb25zdCBsYWJlbCA9ICdWZXJzaW9uJ1xuY29uc3Qgc3R5bGUgPSB7IG1hcmdpblRvcDogJzE2cHgnLCB3aWR0aDogJzUwMHB4JyB9XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjcmlwdHVyZUNhcmQoe1xuICBpZCxcbiAgaXNOVCxcbiAgdGl0bGUsXG4gIHNlcnZlcixcbiAgYXBwUmVmLFxuICBjYXJkTnVtLFxuICBjbGFzc2VzLFxuICByZXNvdXJjZToge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIH0sXG4gIGdldExhbmd1YWdlLFxuICByZWZlcmVuY2U6IHtcbiAgICB2ZXJzZSxcbiAgICBjaGFwdGVyLFxuICAgIHByb2plY3RJZDogYm9va0lkLFxuICB9LFxuICByZXNvdXJjZUxpbmssXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgb25SZXNvdXJjZUVycm9yLFxuICBodHRwQ29uZmlnLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG4gIGdldExleGljb25EYXRhLFxuICBmZXRjaEdsb3NzZXNGb3JWZXJzZSxcbiAgdHJhbnNsYXRlLFxuICBvbk1pbmltaXplLFxuICBsb2dnZWRJblVzZXIsXG4gIGF1dGhlbnRpY2F0aW9uLFxuICBzZXRTYXZlZENoYW5nZXMsXG4gIGJvb2tJbmRleCxcbiAgYWRkVmVyc2VSYW5nZSxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG4gIHVwZGF0ZU1lcmdlU3RhdGUsXG59KSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBoYXZlVW5zYXZlZENoYW5nZXM6IGZhbHNlLFxuICAgIHJlZjogYXBwUmVmLFxuICAgIHNhdmVDbGlja2VkOiBmYWxzZSxcbiAgICBzYXZlQ29udGVudDogbnVsbCxcbiAgICBzaGE6IG51bGwsXG4gICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICB1cmxFcnJvcjogbnVsbCxcbiAgICB1c2luZ1VzZXJCcmFuY2g6IGZhbHNlLFxuICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdDoge30sXG4gICAgdmVyc2VzRm9yUmVmOiBudWxsLFxuICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2UsXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICByZWYsXG4gICAgc2F2ZUNsaWNrZWQsXG4gICAgc2F2ZUNvbnRlbnQsXG4gICAgc2hhLFxuICAgIHN0YXJ0U2F2ZSxcbiAgICB1cmxFcnJvcixcbiAgICB1c2luZ1VzZXJCcmFuY2gsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0LFxuICAgIGhhdmVVbnNhdmVkQ2hhbmdlcyxcbiAgICB2ZXJzZXNGb3JSZWYsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwLFxuICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBbZm9udFNpemUsIHNldEZvbnRTaXplXSA9IHVzZVVzZXJMb2NhbFN0b3JhZ2UoS0VZX0ZPTlRfU0laRV9CQVNFICsgY2FyZE51bSwgMTAwKVxuICBjb25zdCBpc05UXyA9IGlzTlQoYm9va0lkKVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgaWYgKHVzaW5nVXNlckJyYW5jaCkge1xuICAgIGh0dHBDb25maWcgPSB7IC4uLmh0dHBDb25maWcsIGNhY2hlOiB7IG1heEFnZTogMCB9IH0gLy8gZGlzYWJsZSBodHRwIGNhY2hpbmdcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBzY3JpcHR1cmVDb25maWcsXG4gICAgc2V0U2NyaXB0dXJlLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICB9ID0gdXNlU2NyaXB0dXJlU2V0dGluZ3Moe1xuICAgIGlzTlQsXG4gICAgdGl0bGUsXG4gICAgdmVyc2UsXG4gICAgb3duZXIsXG4gICAgYm9va0lkLFxuICAgIGFwcFJlZjogcmVmLFxuICAgIHNlcnZlcixcbiAgICBjYXJkTnVtLFxuICAgIGNoYXB0ZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlc291cmNlTGluayxcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgc2V0VXJsRXJyb3I6IChlcnJvcikgPT4gc2V0U3RhdGUoeyB1cmxFcnJvcjogZXJyb3IgfSksXG4gICAgaHR0cENvbmZpZyxcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hSZXNwXyA9IHNjcmlwdHVyZUNvbmZpZz8uZmV0Y2hSZXNwb25zZVxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IHJlcG8gPSBgJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkfV8ke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZH1gXG4gIGNvbnN0IHJlZmVyZW5jZV8gPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZSB8fCBudWxsXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZ2V0IHRoZSBfc2hhIGZyb20gbGFzdCBzY3JpcHR1cmUgZG93bmxvYWRcbiAgICBjb25zdCBfc2hhID0gZmV0Y2hSZXNwXz8uZGF0YT8uc2hhIHx8IG51bGxcbiAgICBjb25zb2xlLmxvZyhgZm9yICR7SlNPTi5zdHJpbmdpZnkocmVmZXJlbmNlXyl9IG5ldyBzaGEgaXMgJHtfc2hhfWApXG5cbiAgICBpZiAoX3NoYSAhPT0gc2hhKSB7XG4gICAgICBzZXRTdGF0ZSh7IHNoYTogX3NoYSB9KVxuICAgIH1cbiAgfSwgW2ZldGNoUmVzcF9dKVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY2FyZFJlc291cmNlSWQgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWQgfHwgcmVzb3VyY2VJZFxuICAvLyBAdHMtaWdub3JlXG4gIGxldCByZWZfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucmVmIHx8IGFwcFJlZlxuICBjb25zdCBjYW5Vc2VFZGl0QnJhbmNoID0gbG9nZ2VkSW5Vc2VyICYmIGF1dGhlbnRpY2F0aW9uICYmXG4gICAgKHJlc291cmNlSWQgIT09IE9SSUdJTkFMX1NPVVJDRSkgJiZcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5zdWJzdHJpbmcoMCwgbG9nZ2VkSW5Vc2VyLmxlbmd0aCkgPT09IGxvZ2dlZEluVXNlcikgKSAvLyBub3QgdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG4gICAgICB1c2luZ1VzZXJCcmFuY2g6IHVzaW5nVXNlckJyYW5jaF8sXG4gICAgICBtZXJnZUZyb21NYXN0ZXIsXG4gICAgICBtZXJnZVRvTWFzdGVyLFxuICAgICAgbWVyZ2luZyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHN0YXJ0RWRpdDogc3RhcnRFZGl0QnJhbmNoLFxuICAgICAgbWVyZ2VGcm9tTWFzdGVySW50b1VzZXJCcmFuY2gsXG4gICAgICBtZXJnZVRvTWFzdGVyRnJvbVVzZXJCcmFuY2gsXG4gICAgfSxcbiAgfSA9IHVzZVVzZXJCcmFuY2goe1xuICAgIG93bmVyLFxuICAgIHNlcnZlcixcbiAgICBhcHBSZWYsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgY2FyZFJlc291cmNlSWQsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIH0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2FyZFJlc291cmNlSWQpIHtcbiAgICAgIHVwZGF0ZU1lcmdlU3RhdGUgJiYgdXBkYXRlTWVyZ2VTdGF0ZShcbiAgICAgICAgY2FyZFJlc291cmNlSWQsXG4gICAgICAgIG1lcmdlRnJvbU1hc3RlcixcbiAgICAgICAgbWVyZ2VUb01hc3RlcixcbiAgICAgICAgbWVyZ2VGcm9tTWFzdGVySW50b1VzZXJCcmFuY2gsXG4gICAgICAgIG1lcmdlVG9NYXN0ZXJGcm9tVXNlckJyYW5jaCxcbiAgICAgIClcbiAgICB9XG4gIH0sW2NhcmRSZXNvdXJjZUlkLCBtZXJnZUZyb21NYXN0ZXIsIG1lcmdlVG9NYXN0ZXJdKVxuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGlmICh1c2luZ1VzZXJCcmFuY2hfICE9PSB1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICAgIHNldFN0YXRlKHsgdXNpbmdVc2VyQnJhbmNoOiB1c2luZ1VzZXJCcmFuY2hfIH0pXG4gICAgfVxuICB9LCBbdXNpbmdVc2VyQnJhbmNoXywgdXNpbmdVc2VyQnJhbmNoXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBzZWxlY3QgY29ycmVjdCB3b3JraW5nIHJlZiAtIGNvdWxkIGJlIG1hc3RlciwgdXNlciBicmFuY2gsIG9yIHJlbGVhc2VcbiAgICBsZXQgd29ya2luZ1JlZl8gPSB3b3JraW5nUmVmIHx8IGFwcFJlZlxuXG4gICAgaWYgKHJlZiAhPT0gd29ya2luZ1JlZl8pIHtcbiAgICAgIHNldFN0YXRlKHsgcmVmOiB3b3JraW5nUmVmXyB9KVxuICAgIH1cbiAgfSwgW3dvcmtpbmdSZWYsIHJlZiwgYXBwUmVmXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgZGlzcGxheSBzdGF0dXMgaWYgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1cblxuICAgIGlmIChlcnJvcikgeyAvLyBpZiBlcnJvciB3YXMgZm91bmQgZG8gY2FsbGJhY2tcbiAgICAgIGNvbnN0IHJlc291cmNlU3RhdHVzID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1c1xuICAgICAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZUNvbmZpZylcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UXylcbiAgICAgIGNvbnN0IGlzQWNjZXNzRXJyb3IgPSByZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihtZXNzYWdlLCBpc0FjY2Vzc0Vycm9yLCByZXNvdXJjZVN0YXR1cylcbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzPy5bRVJST1JfU1RBVEVdXSlcblxuICBpZiAoc2NyaXB0dXJlQ29uZmlnLnRpdGxlICYmIHNjcmlwdHVyZUNvbmZpZy52ZXJzaW9uKSB7XG4gICAgc2NyaXB0dXJlVGl0bGUgPSBgJHtzY3JpcHR1cmVDb25maWcudGl0bGV9IHYke3NjcmlwdHVyZUNvbmZpZy52ZXJzaW9ufWBcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC51cGRhdGVUaXRsZShzY3JpcHR1cmVDb25maWcucmVzb3VyY2VMaW5rLCBzY3JpcHR1cmVUaXRsZSlcbiAgfSBlbHNlIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGBUaXRsZSBtaXNzaW5nIGZyb20gcHJvamVjdCBtYW5pZmVzdGBcbiAgfVxuXG4gIC8qKiBEeW5hbWljYWxseSBjcmVhdGVzIHRoZSBzY3JpcHR1cmUgc2VsZWN0aW9uIGRyb3Bkb3duIHRvIGJlIGluc2VydGVkIGludG8gY2FyZCBzZXR0aW5ncyAqL1xuICBmdW5jdGlvbiBnZXRTY3JpcHR1cmVTZWxlY3RvcigpIHtcbiAgICBjb25zdCBzY3JpcHR1cmVTZWxlY3Rpb25Db25maWcgPSBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICAgICAgbGFiZWwsXG4gICAgICByZXNvdXJjZUxpbms6IHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssXG4gICAgICBzZXRTY3JpcHR1cmUsXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgICB9KVxuXG4gICAgcmV0dXJuIDxTY3JpcHR1cmVTZWxlY3RvciB7Li4uc2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnfSBzdHlsZT17c3R5bGV9IGVycm9yTWVzc2FnZT17dXJsRXJyb3J9IC8+XG4gIH1cblxuICBmdW5jdGlvbiBvbk1lbnVDbG9zZSgpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgb25NZW51Q2xvc2UoKWApXG4gICAgc2V0U3RhdGUoeyB1cmxFcnJvcjogbnVsbCB9KVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBsYW5ndWFnZUlkXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/Lmxhbmd1YWdlSWRcbiAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZSh7IGxhbmd1YWdlSWQ6IGxhbmd1YWdlSWRfIH0pXG4gIGNvbnN0IGRpcmVjdGlvbiA9IChsYW5ndWFnZT8uZGlyZWN0aW9uKSB8fCAnbHRyJ1xuICBjb25zdCByZWZlcmVuY2UgPSB7IC4uLnNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UgfVxuXG4gIGNvbnN0IGlzSGVicmV3ID0gKGxhbmd1YWdlSWRfID09PSAnaGJvJylcbiAgY29uc3QgZm9udEZhY3RvciA9IGlzSGVicmV3ID8gMS40IDogMSAvLyB3ZSBhdXRvbWF0aWNhbGx5IHNjYWxlIHVwIGZvbnQgc2l6ZSBmb3IgSGVicmV3XG4gIGNvbnN0IHNjYWxlZEZvbnRTaXplID0gZm9udFNpemUgKiBmb250RmFjdG9yXG5cbiAgY29uc3QgaXRlbXMgPSBudWxsXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgaGVhZGVycywgZmlsdGVycywgaXRlbUluZGV4LCBtYXJrZG93blZpZXcsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzZXRGaWx0ZXJzLCBzZXRJdGVtSW5kZXgsIHNldE1hcmtkb3duVmlldyxcbiAgICB9LFxuICB9ID0gdXNlQ2FyZFN0YXRlKHsgaXRlbXMgfSlcblxuICBjb25zdCByZWZTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7TWF0aC5yb3VuZChzY2FsZWRGb250U2l6ZSAqIDAuOSl9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7c2NhbGVkRm9udFNpemV9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IHNjcmlwdHVyZUxhYmVsID0gPFRpdGxlPntzY3JpcHR1cmVUaXRsZX08L1RpdGxlPlxuICBsZXQgZGlzYWJsZVdvcmRQb3BvdmVyXyA9IGRpc2FibGVXb3JkUG9wb3ZlclxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHByZS1jYWNoZSBnbG9zc2VzIG9uIHZlcnNlIGNoYW5nZVxuICAgIGNvbnN0IGZldGNoR2xvc3NEYXRhRm9yVmVyc2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgdmVyc2VPYmplY3RzID0gW11cblxuICAgICAgLy8gZ2V0IHZlcnNlIG9iamVjdHMgb2YgYWxsIHRoZSB2ZXJzZXNcbiAgICAgIGZvciAoY29uc3QgdmVyc2VSZWYgb2Ygc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWYgfHwgW10pIHtcbiAgICAgICAgY29uc3QgX3ZlcnNlT2JqZWN0cyA9IHZlcnNlUmVmPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0c1xuICAgICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHMuY29uY2F0KF92ZXJzZU9iamVjdHMpXG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZVdvcmRQb3BvdmVyICYmIHZlcnNlT2JqZWN0cz8ubGVuZ3RoICYmIGZldGNoR2xvc3Nlc0ZvclZlcnNlKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgIGF3YWl0IGZldGNoR2xvc3Nlc0ZvclZlcnNlKHZlcnNlT2JqZWN0cywgbGFuZ3VhZ2VJZF8pXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVzaW5nT3JpZ2luYWxCaWJsZSkge1xuICAgICAgZmV0Y2hHbG9zc0RhdGFGb3JWZXJzZSgpXG4gICAgfVxuICB9LCBbIHZlcnNlc0ZvclJlZiwgbGFuZ3VhZ2VJZF8gXSlcblxuICBjb25zdCBlbmFibGVFZGl0ID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICBjb25zdCBlbmFibGVBbGlnbm1lbnQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IG9yaWdpbmFsUmVwb1VybCA9IGlzTmV3VGVzdGFtZW50ID8gZ3JlZWtSZXBvVXJsIDogaGVicmV3UmVwb1VybFxuICBjb25zdCBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJbmRleCxcbiAgICBjdXJyZW50VmVyc2VSZWY6IHJlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgY29uc3QgYm9va0NhcHMgPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZT8ucHJvamVjdElkID8gc2NyaXB0dXJlQ29uZmlnLnJlZmVyZW5jZS5wcm9qZWN0SWQudG9VcHBlckNhc2UoKSA6ICcnXG4gICAgcmV0dXJuIGAke2Jvb2tJbmRleH0tJHtib29rQ2Fwc30udXNmbWBcbiAgfVxuXG4gIGNvbnN0IGZpbGVwYXRoID0gZ2V0Qm9va05hbWUoKVxuXG4gIC8vIGtlZXAgdHJhY2sgb2YgdmVyc2UgZWRpdCBzdGF0ZVxuICBjb25zdCB7IG9uU2F2ZUVkaXQgfSA9IHVzZUVkaXQoe1xuICAgIHNoYSxcbiAgICBvd25lcixcbiAgICBjb250ZW50OiBzYXZlQ29udGVudCxcbiAgICBjb25maWc6IHtcbiAgICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgICAgLi4uYXV0aGVudGljYXRpb24/LmNvbmZpZyxcbiAgICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aW1lb3V0OiBodHRwQ29uZmlnPy5zZXJ2ZXJUaW1lT3V0IHx8IGh0dHBDb25maWc/LnRpbWVvdXQgfHwgNTAwMCxcbiAgICB9LFxuICAgIGF1dGhvcjogbG9nZ2VkSW5Vc2VyLFxuICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgYnJhbmNoOiB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG4gICAgZmlsZXBhdGgsXG4gICAgcmVwbyxcbiAgfSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3aGVuIHN0YXJ0U2F2ZSBnb2VzIHRydWUsIHNhdmUgZWRpdHMgdG8gdXNlciBicmFuY2ggYW5kIHRoZW4gY2xlYXIgc3RhcnRTYXZlXG4gICAgY29uc3QgX3NhdmVFZGl0ID0gYXN5bmMgKCkgPT4geyAvLyBiZWdpbiB1cGxvYWRpbmcgbmV3IFVTRk1cbiAgICAgIGxldCBicmFuY2ggPSAod29ya2luZ1Jlc291cmNlQnJhbmNoICE9PSAnbWFzdGVyJykgPyB3b3JraW5nUmVzb3VyY2VCcmFuY2ggOiB1bmRlZmluZWRcblxuICAgICAgaWYgKCFicmFuY2gpIHtcbiAgICAgICAgYnJhbmNoID0gYXdhaXQgc3RhcnRFZGl0QnJhbmNoKCkgLy8gbWFrZSBzdXJlIHVzZXIgYnJhbmNoIGV4aXN0cyBhbmQgZ2V0IG5hbWVcbiAgICAgIH1cblxuICAgICAgYXdhaXQgb25TYXZlRWRpdChicmFuY2gpLnRoZW4oKHN1Y2Nlc3MpID0+IHsgLy8gcHVzaCBjaGFuZ2VkIHRvIHNlcnZlclxuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmUgc2NyaXB0dXJlIGVkaXRzIHN1Y2Nlc3NgKVxuICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgIHN0YXJ0U2F2ZTogZmFsc2UsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICAgIGlmICh1bnNhdmVkQ2FyZEluZGljZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgY2xlYXJDaGFuZ2VzIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZEluZGV4XVxuICAgICAgICAgICAgICBjbGVhckNoYW5nZXMgJiYgY2xlYXJDaGFuZ2VzKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmluZm8oJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gUmVsb2FkaW5nIHJlc291cmNlJylcbiAgICAgICAgICBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmluZyBjaGFuZ2VkIHNjcmlwdHVyZSBmYWlsZWQnKVxuICAgICAgICAgIHNldFN0YXRlKHsgc3RhcnRTYXZlOiBmYWxzZSB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChzdGFydFNhdmUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjYWxsaW5nIF9zYXZlRWRpdCgpYClcbiAgICAgIF9zYXZlRWRpdCgpXG4gICAgfVxuICB9LCBbc3RhcnRTYXZlXSlcblxuICAvKipcbiAgICogY29udmVydCB1cGRhdGVkVmVyc2VPYmplY3RzIHRvIFVTRk0gYW5kIG1lcmdlIGludG8gdGhlIGJpYmxlVXNmbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmlibGVVc2ZtIC0gVVNGTSBvZiBiaWJsZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVmIC0gcmVmZXJlbmNlIG9mIHZlcnNlIHRvIG1lcmdlIGluXG4gICAqIEBwYXJhbSB7b2JqZWN0W119IHVwZGF0ZWRWZXJzZU9iamVjdHMgLSBuZXcgdmVyc2UgaW4gdmVyc2VPYmplY3QgZm9ybWF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjYXJkTnVtXG4gICAqL1xuICBmdW5jdGlvbiBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtLCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW06IG51bWJlcikge1xuICAgIGxldCBuZXdVc2ZtXG4gICAgY29uc3QgY2hhcHRlckNodW5rcyA9IGJpYmxlVXNmbT8uc3BsaXQoJ1xcXFxjICcpXG4gICAgY29uc3QgY2hhcHRlckluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy5jaGFwdGVyLCBjaGFwdGVyQ2h1bmtzKVxuXG4gICAgaWYgKGNoYXB0ZXJJbmRleCA+PSAwKSB7XG4gICAgICBjb25zdCBjdXJyZW50Q2hhcHRlciA9IGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XVxuICAgICAgY29uc3QgdmVyc2VDaHVua3MgPSBjdXJyZW50Q2hhcHRlci5zcGxpdCgnXFxcXHYgJylcbiAgICAgIGNvbnN0IHZlcnNlSW5kZXggPSBmaW5kUmVmSW5BcnJheShyZWY/LnZlcnNlLCB2ZXJzZUNodW5rcylcblxuICAgICAgaWYgKHZlcnNlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0odXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgke2NhcmROdW19KSAtIG5ldyBVU0ZNIGZvciBjYXJkOn0gLSAke25ld1ZlcnNlVXNmbS5zdWJzdHJpbmcoMCwgMTAwKX1gKVxuICAgICAgICBjb25zdCBvbGRWZXJzZSA9IHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdXG4gICAgICAgIGNvbnN0IHZlcnNlTnVtTGVuID0gKHJlZj8udmVyc2UgKyAnJykubGVuZ3RoXG4gICAgICAgIHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdID0gb2xkVmVyc2Uuc3Vic3RyaW5nKDAsIHZlcnNlTnVtTGVuICsgMSkgKyBuZXdWZXJzZVVzZm1cbiAgICAgICAgY29uc3QgbmV3Q2hhcHRlciA9IHZlcnNlQ2h1bmtzLmpvaW4oJ1xcXFx2ICcpXG4gICAgICAgIGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XSA9IG5ld0NoYXB0ZXJcbiAgICAgICAgbmV3VXNmbSA9IGNoYXB0ZXJDaHVua3Muam9pbignXFxcXGMgJylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1VzZm1cbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGZvciBlYWNoIHVuc2F2ZWQgY2hhbmdlLCBjYWxsIGludG8gdmVyc2VQYW5lIHRvIGdldCBsYXRlc3QgY2hhbmdlcyBmb3IgdmVyc2UgdG8gc2F2ZVxuICAgIGlmIChzYXZlQ2xpY2tlZCkge1xuICAgICAgY29uc3QgdW5zYXZlZENhcmRJbmRpY2VzID0gT2JqZWN0LmtleXModW5zYXZlZENoYW5nZXNMaXN0KVxuXG4gICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgbGV0IGJpYmxlVXNmbSA9IGNvcmUuZ2V0UmVzcG9uc2VEYXRhKHNjcmlwdHVyZUNvbmZpZz8uZmV0Y2hSZXNwb25zZSlcbiAgICAgICAgbGV0IG1lcmdlRmFpbCA9IGZhbHNlXG4gICAgICAgIGxldCBjYXJkTnVtID0gMFxuXG4gICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgIGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICBpZiAoZ2V0Q2hhbmdlcykge1xuICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmIGJpYmxlVXNmbSkgeyAvLyBqdXN0IHJlcGxhY2UgdmVyc2VcbiAgICAgICAgICAgICAgbmV3VXNmbSA9IG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm0sIHJlZiwgdXBkYXRlZFZlcnNlT2JqZWN0cywgY2FyZE51bSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgYmlibGVVc2ZtID0gbmV3VXNmbVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbWVyZ2VGYWlsID0gdHJ1ZVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtZXJnZUZhaWwpIHsgLy8gaWYgd2UgZmFpbGVkIHRvIG1lcmdlLCBmYWxsYmFjayB0byBicnV0ZSBmb3JjZSB2ZXJzZSBvYmplY3RzIHRvIFVTRk1cbiAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCR7Y2FyZE51bX0pIC0gdmVyc2Ugbm90IGZvdW5kLCBmYWxsaW5nIGJhY2sgdG8gaW5zZXJ0aW5nIHZlcnNlIG9iamVjdGApXG4gICAgICAgICAgbGV0IG5ld0Jvb2tKc29uXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICBjb25zdCB7IGdldENoYW5nZXMsIHN0YXRlIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZE51bV1cblxuICAgICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIW5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IG51bGxcblxuICAgICAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChuZXdWZXJzZVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UodXBkYXRlZFZlcnNlT2JqZWN0cywgbmV3VmVyc2VUZXh0KVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgbmV3Qm9va0pzb24gPSB0YXJnZXRWZXJzZU9iamVjdHNfICYmIHNjcmlwdHVyZUNvbmZpZz8udXBkYXRlVmVyc2UocmVmLmNoYXB0ZXIsIHJlZi52ZXJzZSwgeyB2ZXJzZU9iamVjdHM6IHRhcmdldFZlcnNlT2JqZWN0c18gfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBiaWJsZVVzZm0gPSB1c2ZtanMudG9VU0ZNKG5ld0Jvb2tKc29uLCB7IGZvcmNlZE5ld0xpbmVzOiB0cnVlIH0pXG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgbmV3IFVTRk06ICR7YmlibGVVc2ZtLnN1YnN0cmluZygwLCAxMDApfS4uLmApXG4gICAgICAgIHNldFN0YXRlKHsgc2F2ZUNvbnRlbnQ6IGJpYmxlVXNmbSwgc3RhcnRTYXZlOiB0cnVlLCBzYXZlQ2xpY2tlZDogZmFsc2UgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzYXZlQ2xpY2tlZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzRXF1YWwodmVyc2VzRm9yUmVmLCBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZikpIHtcbiAgICAgIGNvbnN0IHZlcnNlc0ZvclJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXG4gICAgICBzZXRTdGF0ZSh7IHZlcnNlc0ZvclJlZiB9KVxuXG4gICAgICBmb3IgKGNvbnN0IHZlcnNlUmVmIG9mIHZlcnNlc0ZvclJlZiB8fCBbXSkge1xuICAgICAgICAvLyBjaGVjayBmb3IgdmVyc2UgcmFuZ2VcbiAgICAgICAgY29uc3QgX3ZlcnNlID0gdmVyc2VSZWYudmVyc2VcblxuICAgICAgICBpZiAoYWRkVmVyc2VSYW5nZSAmJiAodHlwZW9mIF92ZXJzZSA9PT0gJ3N0cmluZycpKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGlmIChfdmVyc2UuaW5jbHVkZXMoJy0nKSkge1xuICAgICAgICAgICAgYWRkVmVyc2VSYW5nZShgJHtzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZT8uY2hhcHRlcn06JHtfdmVyc2V9YClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZl0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTdGF0ZSh7IHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCB9KVxuICB9LCBbdmVyc2VdKVxuXG4gIGNvbnN0IG5lZWRUb01lcmdlRnJvbU1hc3RlciA9IG1lcmdlRnJvbU1hc3Rlcj8ubWVyZ2VOZWVkZWRcbiAgY29uc3QgbWVyZ2VGcm9tTWFzdGVySGFzQ29uZmxpY3RzID0gbWVyZ2VGcm9tTWFzdGVyPy5jb25mbGljdFxuICBjb25zdCBtZXJnZVRvTWFzdGVySGFzQ29uZmxpY3RzID0gbWVyZ2VUb01hc3Rlcj8uY29uZmxpY3RcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmVzdGVkLXRlcm5hcnlcbiAgY29uc3QgbWVyZ2VGcm9tTWFzdGVyVGl0bGUgPSBtZXJnZUZyb21NYXN0ZXJIYXNDb25mbGljdHMgPyAnTWVyZ2UgQ29uZmxpY3RzIGZvciB1cGRhdGUgZnJvbSBtYXN0ZXInIDogKG5lZWRUb01lcmdlRnJvbU1hc3RlciA/ICdVcGRhdGUgZnJvbSBtYXN0ZXInIDogJ05vIG1lcmdlIGNvbmZsaWN0cyBmb3IgdXBkYXRlIHdpdGggbWFzdGVyJylcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gIGNvbnN0IG1lcmdlRnJvbU1hc3RlckNvbG9yID0gbWVyZ2VGcm9tTWFzdGVySGFzQ29uZmxpY3RzID8gJ2JsYWNrJyA6IChuZWVkVG9NZXJnZUZyb21NYXN0ZXIgPyAnYmxhY2snIDogJ2xpZ2h0Z3JheScpXG4gIGNvbnN0IG1lcmdlVG9NYXN0ZXJUaXRsZSA9IG1lcmdlVG9NYXN0ZXJIYXNDb25mbGljdHMgPyAnTWVyZ2UgQ29uZmxpY3RzIGZvciBzaGFyZSB3aXRoIG1hc3RlcicgOiAnTm8gbWVyZ2UgY29uZmxpY3RzIGZvciBzaGFyZSB3aXRoIG1hc3RlcidcbiAgY29uc3QgbWVyZ2VUb01hc3RlckNvbG9yID0gbWVyZ2VUb01hc3Rlckhhc0NvbmZsaWN0cyA/ICdibGFjaycgOiAnYmxhY2snXG5cbiAgY29uc3QgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzID0gKHJlZmVyZW5jZSwgYWxpZ25lZCkgPT4ge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHtcbiAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogey4uLnByZXZTdGF0ZS52ZXJzZXNBbGlnbm1lbnRTdGF0dXMsIFtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YF06IGFsaWduZWR9LFxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyZWRTY3JpcHR1cmVQYW5lcyA9IHZlcnNlc0ZvclJlZj8ubWFwKChfY3VycmVudFZlcnNlRGF0YSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsVmVyc2VPYmplY3RzID0gX2N1cnJlbnRWZXJzZURhdGE/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzIHx8IG51bGxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgeyBjaGFwdGVyLCB2ZXJzZSB9ID0gX2N1cnJlbnRWZXJzZURhdGEgfHwge31cbiAgICBjb25zdCBfcmVmZXJlbmNlID0ge1xuICAgICAgLi4ucmVmZXJlbmNlLFxuICAgICAgY2hhcHRlcixcbiAgICAgIHZlcnNlLFxuICAgIH1cbiAgICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAgIC4uLnNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gICAgICBjdXJyZW50SW5kZXg6IGluZGV4LFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIHJlZmVyZW5jZTogX3JlZmVyZW5jZSxcbiAgICB9XG5cbiAgICBsZXQgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ID0gZmFsc2VcbiAgICBpZiAodmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCkge1xuICAgICAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ID0gdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudC5jaGFwdGVyID09PSBjaGFwdGVyICYmIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQudmVyc2UgPT09IHZlcnNlXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JpcHR1cmVQYW5lXG4gICAgICAgIHsuLi5zY3JpcHR1cmVDb25maWd9XG4gICAgICAgIGNvbnRlbnRTdHlsZT17Y29udGVudFN0eWxlfVxuICAgICAgICBjdXJyZW50SW5kZXg9e2luZGV4fVxuICAgICAgICBkaXJlY3Rpb249e2RpcmVjdGlvbn1cbiAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJffVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgaXNOVD17aXNOVF99XG4gICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgIHJlZlN0eWxlPXtyZWZTdHlsZX1cbiAgICAgICAgcmVmZXJlbmNlPXtfcmVmZXJlbmNlfVxuICAgICAgICBzYXZpbmc9e3N0YXJ0U2F2ZX1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnPXtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZ31cbiAgICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXM9e3NldFdvcmRBbGlnbmVyU3RhdHVzfVxuICAgICAgICBzZXJ2ZXI9e3NlcnZlcn1cbiAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgIG1lcmdpbmc9e21lcmdpbmd9XG4gICAgICAgIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudD17aXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50fVxuICAgICAgICBvbkFsaWdubWVudEZpbmlzaD17KCkgPT4gc2V0U3RhdGUoeyB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBudWxsIH0pfVxuICAgICAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM9e3VwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1c31cbiAgICAgIC8+XG4gICAgKVxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZUFsaWduQnV0dG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID4gMSkge1xuICAgICAgc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IHRydWUgfSlcbiAgICB9IGVsc2UgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID09PSAxKSB7XG4gICAgICBzZXRTdGF0ZSh7IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlc0ZvclJlZlswXSB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG9uUmVuZGVyVG9vbGJhciA9ICh7IGl0ZW1zIH0pID0+IHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi5pdGVtc11cblxuICAgIGxldCBhbGxWZXJzZXNBbGlnbmVkID0gZmFsc2VcbiAgICAvLyBDaGVjayBpZiBhbGwgdmFsdWVzIGluIHZlcnNlc0FsaWdubWVudFN0YXR1cyBhcmUgdHJ1ZVxuICAgIGlmICh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpIHtcbiAgICAgIGFsbFZlcnNlc0FsaWduZWQgPSBPYmplY3QudmFsdWVzKHZlcnNlc0FsaWdubWVudFN0YXR1cykuZXZlcnkoYWxpZ25TdGF0dXMgPT4gYWxpZ25TdGF0dXMgPT09IHRydWUpXG4gICAgfVxuICAgIGxldCBhbGlnbkljb24gPSBudWxsXG4gICAgbGV0IGFsaWduQnV0dG9uVGV4dCA9ICcnXG4gICAgaWYgKGFsbFZlcnNlc0FsaWduZWQpIHtcbiAgICAgIGFsaWduSWNvbiA9IDxSeExpbmsyIGlkPXtgdmFsaWRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyNCQkInIC8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIFZhbGlkJ1xuICAgIH0gZWxzZSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rQnJlYWsyIGlkPXtgaW52YWxpZF9hbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyMwMDAnIC8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIEludmFsaWQnXG4gICAgfVxuXG4gICAgaWYgKHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHJlc291cmNlSWQgIT09ICdPUklHSU5BTF9TT1VSQ0UnKSB7XG4gICAgICBuZXdJdGVtcy5wdXNoKFxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGlkPXtgYWxpZ25tZW50X2ljb25fJHtyZXNvdXJjZUlkfWB9XG4gICAgICAgICAga2V5PSdjaGVja2luZy1idXR0b24nXG4gICAgICAgICAgb25DbGljaz17aGFuZGxlQWxpZ25CdXR0b25DbGlja31cbiAgICAgICAgICB0aXRsZT17YWxpZ25CdXR0b25UZXh0fVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FsaWduQnV0dG9uVGV4dH1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICA+XG4gICAgICAgICAge2FsaWduSWNvbn1cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChtZXJnZUZyb21NYXN0ZXIpIHtcbiAgICAgIG5ld0l0ZW1zLnB1c2goXG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm1hcmdpbn1cbiAgICAgICAgICBrZXk9J3VwZGF0ZS1mcm9tLW1hc3RlcidcbiAgICAgICAgICBvbkNsaWNrPXttZXJnZUZyb21NYXN0ZXJJbnRvVXNlckJyYW5jaH1cbiAgICAgICAgICB0aXRsZT17bWVyZ2VGcm9tTWFzdGVyVGl0bGV9XG4gICAgICAgICAgYXJpYS1sYWJlbD17bWVyZ2VGcm9tTWFzdGVyVGl0bGV9XG4gICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHttZXJnZUZyb21NYXN0ZXJIYXNDb25mbGljdHMgP1xuICAgICAgICAgICAgPE1kVXBkYXRlRGlzYWJsZWQgaWQ9J3VwZGF0ZS1mcm9tLW1hc3Rlci1pY29uJyBjb2xvcj17bWVyZ2VGcm9tTWFzdGVyQ29sb3J9IC8+XG4gICAgICAgICAgICA6XG4gICAgICAgICAgICA8TWRVcGRhdGUgaWQ9J3VwZGF0ZS1mcm9tLW1hc3Rlci1pY29uJyBjb2xvcj17bWVyZ2VGcm9tTWFzdGVyQ29sb3J9IC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICApXG4gICAgfVxuICAgIGlmIChtZXJnZVRvTWFzdGVyKSB7XG4gICAgICBuZXdJdGVtcy5wdXNoKFxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5tYXJnaW59XG4gICAgICAgICAga2V5PSdzaGFyZS10by1tYXN0ZXInXG4gICAgICAgICAgb25DbGljaz17bWVyZ2VUb01hc3RlckZyb21Vc2VyQnJhbmNofVxuICAgICAgICAgIHRpdGxlPXttZXJnZVRvTWFzdGVyVGl0bGV9XG4gICAgICAgICAgYXJpYS1sYWJlbD17bWVyZ2VUb01hc3RlclRpdGxlfVxuICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogJ3BvaW50ZXInIH19XG4gICAgICAgID5cbiAgICAgICAgICB7bWVyZ2VUb01hc3Rlckhhc0NvbmZsaWN0cyA/XG4gICAgICAgICAgICA8TWRVcGRhdGVEaXNhYmxlZCBpZD0nc2hhcmUtdG8tbWFzdGVyLWljb24nIGNvbG9yPXttZXJnZVRvTWFzdGVyQ29sb3J9IC8+XG4gICAgICAgICAgICA6XG4gICAgICAgICAgICA8RmlTaGFyZSBpZD0nc2hhcmUtdG8tbWFzdGVyLWljb24nIGNvbG9yPXttZXJnZVRvTWFzdGVyQ29sb3J9IC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBuZXdJdGVtcztcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxDYXJkXG4gICAgICAgIGlkPXtgc2NyaXB0dXJlX2NhcmRfJHtjYXJkTnVtfWB9XG4gICAgICAgIHRpdGxlPXtzY3JpcHR1cmVMYWJlbH1cbiAgICAgICAgc2V0dGluZ3NUaXRsZT17c2NyaXB0dXJlVGl0bGUgKyAnIFNldHRpbmdzJ31cbiAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICBoZWFkZXJzPXtoZWFkZXJzfVxuICAgICAgICBmaWx0ZXJzPXtmaWx0ZXJzfVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGl0ZW1JbmRleD17aXRlbUluZGV4fVxuICAgICAgICBzZXRGaWx0ZXJzPXtzZXRGaWx0ZXJzfVxuICAgICAgICBzZXRGb250U2l6ZT17c2V0Rm9udFNpemV9XG4gICAgICAgIHNldEl0ZW1JbmRleD17c2V0SXRlbUluZGV4fVxuICAgICAgICBtYXJrZG93blZpZXc9e21hcmtkb3duVmlld31cbiAgICAgICAgc2V0TWFya2Rvd25WaWV3PXtzZXRNYXJrZG93blZpZXd9XG4gICAgICAgIGdldEN1c3RvbUNvbXBvbmVudD17Z2V0U2NyaXB0dXJlU2VsZWN0b3J9XG4gICAgICAgIGhpZGVNYXJrZG93blRvZ2dsZVxuICAgICAgICBvbk1lbnVDbG9zZT17b25NZW51Q2xvc2V9XG4gICAgICAgIG9uTWluaW1pemU9e29uTWluaW1pemUgPyAoKSA9PiBvbk1pbmltaXplKGlkKSA6IG51bGx9XG4gICAgICAgIGVkaXRhYmxlPXtlbmFibGVFZGl0IHx8IGVuYWJsZUFsaWdubWVudH1cbiAgICAgICAgc2F2ZWQ9e3N0YXJ0U2F2ZSB8fCAhaGF2ZVVuc2F2ZWRDaGFuZ2VzfVxuICAgICAgICBvblNhdmVFZGl0PXsoKSA9PiBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiB0cnVlIH0pfVxuICAgICAgICBvblJlbmRlclRvb2xiYXI9e29uUmVuZGVyVG9vbGJhcn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgICA8VmVyc2VTZWxlY3RvclBvcHVwXG4gICAgICAgIHJlc291cmNlSWQ9e3Jlc291cmNlSWR9XG4gICAgICAgIG9wZW49e3Nob3dBbGlnbm1lbnRQb3B1cH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlIH0pfVxuICAgICAgICB2ZXJzZXNGb3JSZWY9e3ZlcnNlc0ZvclJlZn1cbiAgICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzPXt2ZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAgIG9uVmVyc2VTZWxlY3Q9eyh2ZXJzZSkgPT4gc2V0U3RhdGUoe1xuICAgICAgICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlLFxuICAgICAgICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2VcbiAgICAgICAgfSl9XG4gICAgICAvPlxuICAgIDwvPlxuICApXG59XG5cblNjcmlwdHVyZUNhcmQucHJvcFR5cGVzID0ge1xuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIHJlZmVyZW5jZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogcHJvamVjdElkIChib29rSUQpIHRvIHVzZSAqL1xuICAgIHByb2plY3RJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IGNoYXB0ZXIgbnVtYmVyICovXG4gICAgY2hhcHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgdmVyc2UgbnVtYmVyICovXG4gICAgdmVyc2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHNlcnZlciAoZS5nLiAnaHR0cHM6Ly9naXQuZG9vcjQzLm9yZycpICovXG4gIHNlcnZlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogcmVwbyBicmFuY2ggb3IgdGFnIHN1Y2ggYXMgbWFzdGVyICovXG4gIGFwcFJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBjYWxsYmFjayBpZiBlcnJvciBsb2FkaW5nIHJlc291cmNlLCBwYXJhbWV0ZXIgcmV0dXJuZWQgYXJlOlxuICAgKiAgICAoe3N0cmluZ30gZXJyb3JNZXNzYWdlLCB7Ym9vbGVhbn0gaXNBY2Nlc3NFcnJvciwge29iamVjdH0gcmVzb3VyY2VTdGF0dXMpXG4gICAqICAgICAgLSBpc0FjY2Vzc0Vycm9yIC0gaXMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBlcnJvciB0cnlpbmcgdG8gYWNjZXNzIGZpbGVcbiAgICogICAgICAtIHJlc291cmNlU3RhdHVzIC0gaXMgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBwcm9ibGVtcyBmZXRjaGluZyByZXNvdXJjZSAqL1xuICBvblJlc291cmNlRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGZ1bmN0aW9uIHRvIHByZS1sb2FkIGxleGljb24gZGF0YSBmb3IgdmVyc2UgKi9cbiAgZmV0Y2hHbG9zc2VzRm9yVmVyc2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGluZGV4IGZvciBjdXJyZW50IGJvb2sgKGUuZy4gJzAxJyBmb3IgJ2dlbicpKi9cbiAgYm9va0luZGV4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogY2FsbGJhY2sgdG8gaW5kaWNhdGUgdGhhdCB3ZSBhcmUgdXNpbmcgYSB2ZXJzZSByYW5nZSBoZXJlICovXG4gIGFkZFZlcnNlUmFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHdvcmQgYWxpZ25lciBzdGF0ZSAqL1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKmNhbGxiYWNrIHRvIHVwZGF0ZSB0aGUgY2FyZCdzIG1lcmdlIHN0YXRlIGluIGFwcCAqL1xuICB1cGRhdGVNZXJnZVN0YXRlOiBQcm9wVHlwZXMuZnVuYyxcbn1cbiJdfQ==
|
|
1148
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwidXNmbWpzIiwidXNlRWRpdCIsIk1kVXBkYXRlIiwiTWRVcGRhdGVEaXNhYmxlZCIsIkZpU2hhcmUiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJ1c2VDYXJkU3RhdGUiLCJ1c2VVc2VyQnJhbmNoIiwidXNlQnJhbmNoTWVyZ2VyIiwidXNlQ29udGVudFVwZGF0ZVByb3BzIiwiVXBkYXRlQnJhbmNoQnV0dG9uIiwiRXJyb3JEaWFsb2ciLCJFUlJPUl9TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJBbGlnbm1lbnRIZWxwZXJzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsImlzRXF1YWwiLCJTY3JpcHR1cmVQYW5lIiwiU2NyaXB0dXJlU2VsZWN0b3IiLCJ1c2VTY3JpcHR1cmVTZXR0aW5ncyIsImdldFJlc291cmNlTGluayIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImlzT3JpZ2luYWxCaWJsZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiVmVyc2VTZWxlY3RvclBvcHVwIiwiS0VZX0ZPTlRfU0laRV9CQVNFIiwibGFiZWwiLCJzdHlsZSIsIm1hcmdpblRvcCIsIndpZHRoIiwiU2NyaXB0dXJlQ2FyZCIsImlkIiwiaXNOVCIsInRpdGxlIiwic2VydmVyIiwiYXBwUmVmIiwiY2FyZE51bSIsImNsYXNzZXMiLCJyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJnZXRMYW5ndWFnZSIsInJlZmVyZW5jZSIsInZlcnNlIiwiY2hhcHRlciIsImJvb2tJZCIsInByb2plY3RJZCIsInJlc291cmNlTGluayIsInVzZVVzZXJMb2NhbFN0b3JhZ2UiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJvblJlc291cmNlRXJyb3IiLCJodHRwQ29uZmlnIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImdldExleGljb25EYXRhIiwiZmV0Y2hHbG9zc2VzRm9yVmVyc2UiLCJ0cmFuc2xhdGUiLCJvbk1pbmltaXplIiwibG9nZ2VkSW5Vc2VyIiwiYXV0aGVudGljYXRpb24iLCJzZXRTYXZlZENoYW5nZXMiLCJib29rSW5kZXgiLCJhZGRWZXJzZVJhbmdlIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJ1cGRhdGVNZXJnZVN0YXRlIiwidXNlU3RhdGUiLCJoYXZlVW5zYXZlZENoYW5nZXMiLCJyZWYiLCJzYXZlQ2xpY2tlZCIsInNhdmVDb250ZW50Iiwic2hhIiwic3RhcnRTYXZlIiwidXJsRXJyb3IiLCJ1c2luZ1VzZXJCcmFuY2giLCJ1bnNhdmVkQ2hhbmdlc0xpc3QiLCJ2ZXJzZXNGb3JSZWYiLCJzaG93QWxpZ25tZW50UG9wdXAiLCJ2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50IiwidmVyc2VzQWxpZ25tZW50U3RhdHVzIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJmb250U2l6ZSIsInNldEZvbnRTaXplIiwiaXNOVF8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2FjaGUiLCJtYXhBZ2UiLCJzZXRVcmxFcnJvciIsImVycm9yIiwid2hvbGVCb29rIiwiaXNOZXdUZXN0YW1lbnQiLCJzY3JpcHR1cmVDb25maWciLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVTZXR0aW5ncyIsInNjcmlwdHVyZVZlcnNpb25IaXN0IiwiZmV0Y2hSZXNwXyIsImZldGNoUmVzcG9uc2UiLCJyZXBvIiwicmVmZXJlbmNlXyIsInVzZUVmZmVjdCIsIl9zaGEiLCJkYXRhIiwiY29uc29sZSIsImxvZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJjYXJkUmVzb3VyY2VJZCIsInJlZl8iLCJjYW5Vc2VFZGl0QnJhbmNoIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiY2FyZElkIiwid29ya2luZ1Jlc291cmNlQnJhbmNoIiwidXNlckVkaXRCcmFuY2hOYW1lIiwidXNpbmdVc2VyQnJhbmNoXyIsInN0YXJ0RWRpdEJyYW5jaCIsImFjdGlvbnMiLCJzdGFydEVkaXQiLCJfdXNlQnJhbmNoTWVyZ2VyIiwidXNlckJyYW5jaCIsInRva2VuaWQiLCJ0b2tlbiIsInNoYTEiLCJtZXJnZVRvTWFzdGVyIiwibWVyZ2VTdGF0dXMiLCJtZXJnZUZyb21NYXN0ZXIiLCJ1cGRhdGVTdGF0dXMiLCJtZXJnZUZyb21NYXN0ZXJJbnRvVXNlckJyYW5jaCIsInVwZGF0ZVVzZXJCcmFuY2giLCJtZXJnZVRvTWFzdGVyRnJvbVVzZXJCcmFuY2giLCJtZXJnZU1hc3RlckJyYW5jaCIsInVwZGF0ZUJ1dHRvblByb3BzIiwiaXNTYXZpbmciLCJyZWxvYWRDb250ZW50IiwicmVsb2FkUmVzb3VyY2UiLCJpc0Vycm9yRGlhbG9nT3BlbiIsIm9uQ2xvc2VFcnJvckRpYWxvZyIsImlzTG9hZGluZyIsImRpYWxvZ01lc3NhZ2UiLCJkaWFsb2dUaXRsZSIsImRpYWxvZ0xpbmsiLCJkaWFsb2dMaW5rVG9vbHRpcCIsIndvcmtpbmdSZWYiLCJzY3JpcHR1cmVUaXRsZSIsIndvcmtpbmdSZWZfIiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwib25NZW51Q2xvc2UiLCJsYW5ndWFnZUlkXyIsImxhbmd1YWdlIiwiZGlyZWN0aW9uIiwiaXNIZWJyZXciLCJmb250RmFjdG9yIiwic2NhbGVkRm9udFNpemUiLCJpdGVtcyIsImhlYWRlcnMiLCJmaWx0ZXJzIiwiaXRlbUluZGV4IiwibWFya2Rvd25WaWV3Iiwic2V0RmlsdGVycyIsInNldEl0ZW1JbmRleCIsInNldE1hcmtkb3duVmlldyIsInJlZlN0eWxlIiwidXNlTWVtbyIsImZvbnRGYW1pbHkiLCJNYXRoIiwicm91bmQiLCJjb250ZW50U3R5bGUiLCJzY3JpcHR1cmVMYWJlbCIsImRpc2FibGVXb3JkUG9wb3Zlcl8iLCJ1c2luZ09yaWdpbmFsQmlibGUiLCJ1bmRlZmluZWQiLCJmZXRjaEdsb3NzRGF0YUZvclZlcnNlIiwidmVyc2VPYmplY3RzIiwidmVyc2VSZWYiLCJfdmVyc2VPYmplY3RzIiwidmVyc2VEYXRhIiwiY29uY2F0IiwiZW5hYmxlRWRpdCIsImVuYWJsZUFsaWdubWVudCIsIm9yaWdpbmFsUmVwb1VybCIsInNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJjdXJyZW50VmVyc2VSZWYiLCJfc2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJ0YXJnZXRMYW5ndWFnZSIsImN1cnJlbnRJbmRleCIsInNhdmVkIiwiZ2V0Q2hhbmdlcyIsImNsZWFyQ2hhbmdlcyIsIl91bnNhdmVkQ2hhbmdlc0xpc3QiLCJoYXNPd25Qcm9wZXJ0eSIsIl9oYXZlVW5zYXZlZENoYW5nZXMiLCJPYmplY3QiLCJrZXlzIiwiZmluZFJlZkluQXJyYXkiLCJmaW5kSXRlbSIsImNodW5rcyIsInJlZkxlbiIsImluZGV4IiwiZmluZEluZGV4IiwiY2h1bmsiLCJpZHgiLCJuZXh0Q2hhciIsImdldEJvb2tOYW1lIiwiYm9va0NhcHMiLCJ0b1VwcGVyQ2FzZSIsImZpbGVwYXRoIiwiY29udGVudCIsImNvbmZpZyIsInRpbWVvdXQiLCJzZXJ2ZXJUaW1lT3V0IiwiYXV0aG9yIiwiYnJhbmNoIiwib25TYXZlRWRpdCIsIl9zYXZlRWRpdCIsInRoZW4iLCJzdWNjZXNzIiwidW5zYXZlZENhcmRJbmRpY2VzIiwiY2FyZEluZGV4IiwiaW5mbyIsIm1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbSIsImJpYmxlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJuZXdVc2ZtIiwiY2hhcHRlckNodW5rcyIsInNwbGl0IiwiY2hhcHRlckluZGV4IiwiY3VycmVudENoYXB0ZXIiLCJ2ZXJzZUNodW5rcyIsInZlcnNlSW5kZXgiLCJuZXdWZXJzZVVzZm0iLCJjb252ZXJ0VmVyc2VEYXRhVG9VU0ZNIiwib2xkVmVyc2UiLCJ2ZXJzZU51bUxlbiIsIm5ld0NoYXB0ZXIiLCJqb2luIiwiZ2V0UmVzcG9uc2VEYXRhIiwibWVyZ2VGYWlsIiwicGFyc2VJbnQiLCJuZXdCb29rSnNvbiIsIm5ld1ZlcnNlVGV4dCIsInRhcmdldFZlcnNlT2JqZWN0c18iLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlT2JqZWN0cyIsInVwZGF0ZVZlcnNlIiwidG9VU0ZNIiwiZm9yY2VkTmV3TGluZXMiLCJfdmVyc2UiLCJpbmNsdWRlcyIsIm5lZWRUb01lcmdlRnJvbU1hc3RlciIsIm1lcmdlTmVlZGVkIiwibWVyZ2VGcm9tTWFzdGVySGFzQ29uZmxpY3RzIiwiY29uZmxpY3QiLCJtZXJnZVRvTWFzdGVySGFzQ29uZmxpY3RzIiwibWVyZ2VGcm9tTWFzdGVyVGl0bGUiLCJtZXJnZUZyb21NYXN0ZXJDb2xvciIsIm1lcmdlVG9NYXN0ZXJUaXRsZSIsIm1lcmdlVG9NYXN0ZXJDb2xvciIsInVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyIsImFsaWduZWQiLCJyZW5kZXJlZFNjcmlwdHVyZVBhbmVzIiwibWFwIiwiX2N1cnJlbnRWZXJzZURhdGEiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiX3JlZmVyZW5jZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50IiwiaGFuZGxlQWxpZ25CdXR0b25DbGljayIsIm9uUmVuZGVyVG9vbGJhciIsIm5ld0l0ZW1zIiwiYWxsVmVyc2VzQWxpZ25lZCIsInZhbHVlcyIsImV2ZXJ5IiwiYWxpZ25TdGF0dXMiLCJhbGlnbkljb24iLCJhbGlnbkJ1dHRvblRleHQiLCJwdXNoIiwiY3Vyc29yIiwibWFyZ2luIiwicHJvcFR5cGVzIiwic3RyaW5nIiwiZnVuYyIsImlzUmVxdWlyZWQiLCJudW1iZXIiLCJzaGFwZSIsIm9uZU9mVHlwZSIsImJvb2wiLCJvYmplY3QiLCJhbnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxPQUFPLEtBQUtDLFNBQVosTUFBMkIsWUFBM0I7QUFDQSxTQUFTQyxJQUFULFFBQXFCLHlCQUFyQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsU0FBbkI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLHFCQUF4QjtBQUNBLFNBQVNDLFFBQVQsRUFBbUJDLGdCQUFuQixRQUEyQyxnQkFBM0M7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGdCQUF4QjtBQUNBLFNBQVNDLFVBQVQsUUFBMkIsZUFBM0I7QUFDQSxTQUFTQyxPQUFULEVBQWtCQyxZQUFsQixRQUFzQyxnQkFBdEM7QUFDQSxTQUNFQyxJQURGLEVBRUVDLFlBRkYsRUFHRUMsYUFIRixFQUlFQyxlQUpGLEVBS0VDLHFCQUxGLEVBTUVDLGtCQU5GLEVBT0VDLFdBUEYsRUFRRUMsV0FSRixFQVNFQyx5QkFURixRQVVPLHVCQVZQO0FBV0EsU0FBU0MsZ0JBQVQsRUFBMkJDLHlCQUEzQixRQUE0RCxrQkFBNUQ7QUFDQSxPQUFPLEtBQUtDLE9BQVosTUFBeUIsWUFBekI7QUFDQSxTQUFTQyxhQUFULEVBQXdCQyxpQkFBeEIsUUFBaUQsSUFBakQ7QUFDQSxTQUFTQyxvQkFBVCxRQUFxQyxrQ0FBckM7QUFDQSxTQUNFQyxlQURGLEVBRUVDLGtCQUZGLEVBR0VDLDJCQUhGLEVBSUVDLGVBSkYsUUFLTywrQkFMUDtBQU1BLFNBQVNDLEtBQVQsUUFBc0IseUJBQXRCO0FBQ0EsU0FDRUMsWUFERixFQUVFQyxlQUZGLEVBR0VDLFlBSEYsUUFJTyxhQUpQO0FBS0EsU0FBU0Msa0JBQVQsUUFBbUMsdUJBQW5DO0FBRUEsSUFBTUMsa0JBQWtC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QixFQUFFM0UsU0FBUyxDQUFDNFM7QUExRUosQ0FBMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQgeyBNZFVwZGF0ZSwgTWRVcGRhdGVEaXNhYmxlZCB9IGZyb20gJ3JlYWN0LWljb25zL21kJ1xuaW1wb3J0IHsgRmlTaGFyZSB9IGZyb20gJ3JlYWN0LWljb25zL2ZpJ1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnXG5pbXBvcnQgeyBSeExpbmsyLCBSeExpbmtCcmVhazIgfSBmcm9tICdyZWFjdC1pY29ucy9yeCdcbmltcG9ydCB7XG4gIENhcmQsXG4gIHVzZUNhcmRTdGF0ZSxcbiAgdXNlVXNlckJyYW5jaCxcbiAgdXNlQnJhbmNoTWVyZ2VyLFxuICB1c2VDb250ZW50VXBkYXRlUHJvcHMsXG4gIFVwZGF0ZUJyYW5jaEJ1dHRvbixcbiAgRXJyb3JEaWFsb2csXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgeyBBbGlnbm1lbnRIZWxwZXJzLCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCAqIGFzIGlzRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnLi4vU2NyaXB0dXJlUGFuZS9zdHlsZWQnXG5pbXBvcnQge1xuICBOVF9PUklHX0xBTkcsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFZlcnNlU2VsZWN0b3JQb3B1cCB9IGZyb20gJy4uL1ZlcnNlU2VsZWN0b3JQb3B1cCdcblxuY29uc3QgS0VZX0ZPTlRfU0laRV9CQVNFID0gJ3NjcmlwdHVyZVBhbmVGb250U2l6ZV8nXG5jb25zdCBsYWJlbCA9ICdWZXJzaW9uJ1xuY29uc3Qgc3R5bGUgPSB7IG1hcmdpblRvcDogJzE2cHgnLCB3aWR0aDogJzUwMHB4JyB9XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjcmlwdHVyZUNhcmQoe1xuICBpZCxcbiAgaXNOVCxcbiAgdGl0bGUsXG4gIHNlcnZlcixcbiAgYXBwUmVmLFxuICBjYXJkTnVtLFxuICBjbGFzc2VzLFxuICByZXNvdXJjZToge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIH0sXG4gIGdldExhbmd1YWdlLFxuICByZWZlcmVuY2U6IHtcbiAgICB2ZXJzZSxcbiAgICBjaGFwdGVyLFxuICAgIHByb2plY3RJZDogYm9va0lkLFxuICB9LFxuICByZXNvdXJjZUxpbmssXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgb25SZXNvdXJjZUVycm9yLFxuICBodHRwQ29uZmlnLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG4gIGdldExleGljb25EYXRhLFxuICBmZXRjaEdsb3NzZXNGb3JWZXJzZSxcbiAgdHJhbnNsYXRlLFxuICBvbk1pbmltaXplLFxuICBsb2dnZWRJblVzZXIsXG4gIGF1dGhlbnRpY2F0aW9uLFxuICBzZXRTYXZlZENoYW5nZXMsXG4gIGJvb2tJbmRleCxcbiAgYWRkVmVyc2VSYW5nZSxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG4gIHVwZGF0ZU1lcmdlU3RhdGUsXG59KSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBoYXZlVW5zYXZlZENoYW5nZXM6IGZhbHNlLFxuICAgIHJlZjogYXBwUmVmLFxuICAgIHNhdmVDbGlja2VkOiBmYWxzZSxcbiAgICBzYXZlQ29udGVudDogbnVsbCxcbiAgICBzaGE6IG51bGwsXG4gICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICB1cmxFcnJvcjogbnVsbCxcbiAgICB1c2luZ1VzZXJCcmFuY2g6IGZhbHNlLFxuICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdDoge30sXG4gICAgdmVyc2VzRm9yUmVmOiBudWxsLFxuICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2UsXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICByZWYsXG4gICAgc2F2ZUNsaWNrZWQsXG4gICAgc2F2ZUNvbnRlbnQsXG4gICAgc2hhLFxuICAgIHN0YXJ0U2F2ZSxcbiAgICB1cmxFcnJvcixcbiAgICB1c2luZ1VzZXJCcmFuY2gsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0LFxuICAgIGhhdmVVbnNhdmVkQ2hhbmdlcyxcbiAgICB2ZXJzZXNGb3JSZWYsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwLFxuICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBbZm9udFNpemUsIHNldEZvbnRTaXplXSA9IHVzZVVzZXJMb2NhbFN0b3JhZ2UoS0VZX0ZPTlRfU0laRV9CQVNFICsgY2FyZE51bSwgMTAwKVxuICBjb25zdCBpc05UXyA9IGlzTlQoYm9va0lkKVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgaWYgKHVzaW5nVXNlckJyYW5jaCkge1xuICAgIGh0dHBDb25maWcgPSB7IC4uLmh0dHBDb25maWcsIGNhY2hlOiB7IG1heEFnZTogMCB9IH0gLy8gZGlzYWJsZSBodHRwIGNhY2hpbmdcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBzY3JpcHR1cmVDb25maWcsXG4gICAgc2V0U2NyaXB0dXJlLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICB9ID0gdXNlU2NyaXB0dXJlU2V0dGluZ3Moe1xuICAgIGlzTlQsXG4gICAgdGl0bGUsXG4gICAgdmVyc2UsXG4gICAgb3duZXIsXG4gICAgYm9va0lkLFxuICAgIGFwcFJlZjogcmVmLFxuICAgIHNlcnZlcixcbiAgICBjYXJkTnVtLFxuICAgIGNoYXB0ZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlc291cmNlTGluayxcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgc2V0VXJsRXJyb3I6IChlcnJvcikgPT4gc2V0U3RhdGUoeyB1cmxFcnJvcjogZXJyb3IgfSksXG4gICAgaHR0cENvbmZpZyxcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hSZXNwXyA9IHNjcmlwdHVyZUNvbmZpZz8uZmV0Y2hSZXNwb25zZVxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IHJlcG8gPSBgJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkfV8ke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZH1gXG4gIGNvbnN0IHJlZmVyZW5jZV8gPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZSB8fCBudWxsXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZ2V0IHRoZSBfc2hhIGZyb20gbGFzdCBzY3JpcHR1cmUgZG93bmxvYWRcbiAgICBjb25zdCBfc2hhID0gZmV0Y2hSZXNwXz8uZGF0YT8uc2hhIHx8IG51bGxcbiAgICBjb25zb2xlLmxvZyhgZm9yICR7SlNPTi5zdHJpbmdpZnkocmVmZXJlbmNlXyl9IG5ldyBzaGEgaXMgJHtfc2hhfWApXG5cbiAgICBpZiAoX3NoYSAhPT0gc2hhKSB7XG4gICAgICBzZXRTdGF0ZSh7IHNoYTogX3NoYSB9KVxuICAgIH1cbiAgfSwgW2ZldGNoUmVzcF9dKVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY2FyZFJlc291cmNlSWQgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWQgfHwgcmVzb3VyY2VJZFxuICAvLyBAdHMtaWdub3JlXG4gIGxldCByZWZfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucmVmIHx8IGFwcFJlZlxuICBjb25zdCBjYW5Vc2VFZGl0QnJhbmNoID0gbG9nZ2VkSW5Vc2VyICYmIGF1dGhlbnRpY2F0aW9uICYmXG4gICAgKHJlc291cmNlSWQgIT09IE9SSUdJTkFMX1NPVVJDRSkgJiZcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5zdWJzdHJpbmcoMCwgbG9nZ2VkSW5Vc2VyLmxlbmd0aCkgPT09IGxvZ2dlZEluVXNlcikgKSAvLyBub3QgdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG4gICAgICB1c2VyRWRpdEJyYW5jaE5hbWUsXG4gICAgICB1c2luZ1VzZXJCcmFuY2g6IHVzaW5nVXNlckJyYW5jaF8sXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzdGFydEVkaXQ6IHN0YXJ0RWRpdEJyYW5jaCxcbiAgICB9LFxuICB9ID0gdXNlVXNlckJyYW5jaCh7XG4gICAgb3duZXIsXG4gICAgc2VydmVyLFxuICAgIGFwcFJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIGNhcmRJZDogaWQsXG4gICAgbG9nZ2VkSW5Vc2VyOiBjYW5Vc2VFZGl0QnJhbmNoID8gbG9nZ2VkSW5Vc2VyIDogbnVsbCxcbiAgICBhdXRoZW50aWNhdGlvbjogY2FuVXNlRWRpdEJyYW5jaCA/IGF1dGhlbnRpY2F0aW9uIDogbnVsbCxcbiAgICBjYXJkUmVzb3VyY2VJZCxcbiAgICBvblJlc291cmNlRXJyb3IsXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgfSlcblxuICBjb25zdCBfdXNlQnJhbmNoTWVyZ2VyID0gdXNlQnJhbmNoTWVyZ2VyKHsgc2VydmVyLCBvd25lciwgcmVwbywgdXNlckJyYW5jaDogdXNlckVkaXRCcmFuY2hOYW1lLCB0b2tlbmlkOiBhdXRoZW50aWNhdGlvbj8udG9rZW4/LnNoYTEgfSk7XG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgbWVyZ2VTdGF0dXM6IG1lcmdlVG9NYXN0ZXIsXG4gICAgICB1cGRhdGVTdGF0dXM6IG1lcmdlRnJvbU1hc3RlcixcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHVwZGF0ZVVzZXJCcmFuY2g6IG1lcmdlRnJvbU1hc3RlckludG9Vc2VyQnJhbmNoLFxuICAgICAgbWVyZ2VNYXN0ZXJCcmFuY2g6IG1lcmdlVG9NYXN0ZXJGcm9tVXNlckJyYW5jaFxuICAgIH1cbiAgfSA9IF91c2VCcmFuY2hNZXJnZXI7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2FyZFJlc291cmNlSWQpIHtcbiAgICAgIHVwZGF0ZU1lcmdlU3RhdGUgJiYgdXBkYXRlTWVyZ2VTdGF0ZShcbiAgICAgICAgY2FyZFJlc291cmNlSWQsXG4gICAgICAgIG1lcmdlRnJvbU1hc3RlcixcbiAgICAgICAgbWVyZ2VUb01hc3RlcixcbiAgICAgICAgbWVyZ2VGcm9tTWFzdGVySW50b1VzZXJCcmFuY2gsXG4gICAgICAgIG1lcmdlVG9NYXN0ZXJGcm9tVXNlckJyYW5jaCxcbiAgICAgIClcbiAgICB9XG4gIH0sW2NhcmRSZXNvdXJjZUlkLCBtZXJnZUZyb21NYXN0ZXIsIG1lcmdlVG9NYXN0ZXJdKVxuXG4gIGNvbnN0IHVwZGF0ZUJ1dHRvblByb3BzID0gdXNlQ29udGVudFVwZGF0ZVByb3BzKHtcbiAgICBpc1NhdmluZzogc3RhcnRTYXZlLFxuICAgIHVzZUJyYW5jaE1lcmdlcjogX3VzZUJyYW5jaE1lcmdlcixcbiAgICByZWxvYWRDb250ZW50OiBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlXG4gIH0pO1xuICBjb25zdCB7XG4gICAgaXNFcnJvckRpYWxvZ09wZW4sXG4gICAgb25DbG9zZUVycm9yRGlhbG9nLFxuICAgIGlzTG9hZGluZyxcbiAgICBkaWFsb2dNZXNzYWdlLFxuICAgIGRpYWxvZ1RpdGxlLFxuICAgIGRpYWxvZ0xpbmssXG4gICAgZGlhbG9nTGlua1Rvb2x0aXBcbiAgfSA9IHVwZGF0ZUJ1dHRvblByb3BzO1xuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGlmICh1c2luZ1VzZXJCcmFuY2hfICE9PSB1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICAgIHNldFN0YXRlKHsgdXNpbmdVc2VyQnJhbmNoOiB1c2luZ1VzZXJCcmFuY2hfIH0pXG4gICAgfVxuICB9LCBbdXNpbmdVc2VyQnJhbmNoXywgdXNpbmdVc2VyQnJhbmNoXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBzZWxlY3QgY29ycmVjdCB3b3JraW5nIHJlZiAtIGNvdWxkIGJlIG1hc3RlciwgdXNlciBicmFuY2gsIG9yIHJlbGVhc2VcbiAgICBsZXQgd29ya2luZ1JlZl8gPSB3b3JraW5nUmVmIHx8IGFwcFJlZlxuXG4gICAgaWYgKHJlZiAhPT0gd29ya2luZ1JlZl8pIHtcbiAgICAgIHNldFN0YXRlKHsgcmVmOiB3b3JraW5nUmVmXyB9KVxuICAgIH1cbiAgfSwgW3dvcmtpbmdSZWYsIHJlZiwgYXBwUmVmXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgZGlzcGxheSBzdGF0dXMgaWYgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1cblxuICAgIGlmIChlcnJvcikgeyAvLyBpZiBlcnJvciB3YXMgZm91bmQgZG8gY2FsbGJhY2tcbiAgICAgIGNvbnN0IHJlc291cmNlU3RhdHVzID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1c1xuICAgICAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZUNvbmZpZylcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UXylcbiAgICAgIGNvbnN0IGlzQWNjZXNzRXJyb3IgPSByZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihtZXNzYWdlLCBpc0FjY2Vzc0Vycm9yLCByZXNvdXJjZVN0YXR1cylcbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzPy5bRVJST1JfU1RBVEVdXSlcblxuICBpZiAoc2NyaXB0dXJlQ29uZmlnLnRpdGxlICYmIHNjcmlwdHVyZUNvbmZpZy52ZXJzaW9uKSB7XG4gICAgc2NyaXB0dXJlVGl0bGUgPSBgJHtzY3JpcHR1cmVDb25maWcudGl0bGV9IHYke3NjcmlwdHVyZUNvbmZpZy52ZXJzaW9ufWBcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC51cGRhdGVUaXRsZShzY3JpcHR1cmVDb25maWcucmVzb3VyY2VMaW5rLCBzY3JpcHR1cmVUaXRsZSlcbiAgfSBlbHNlIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGBUaXRsZSBtaXNzaW5nIGZyb20gcHJvamVjdCBtYW5pZmVzdGBcbiAgfVxuXG4gIC8qKiBEeW5hbWljYWxseSBjcmVhdGVzIHRoZSBzY3JpcHR1cmUgc2VsZWN0aW9uIGRyb3Bkb3duIHRvIGJlIGluc2VydGVkIGludG8gY2FyZCBzZXR0aW5ncyAqL1xuICBmdW5jdGlvbiBnZXRTY3JpcHR1cmVTZWxlY3RvcigpIHtcbiAgICBjb25zdCBzY3JpcHR1cmVTZWxlY3Rpb25Db25maWcgPSBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICAgICAgbGFiZWwsXG4gICAgICByZXNvdXJjZUxpbms6IHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssXG4gICAgICBzZXRTY3JpcHR1cmUsXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgICB9KVxuXG4gICAgcmV0dXJuIDxTY3JpcHR1cmVTZWxlY3RvciB7Li4uc2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnfSBzdHlsZT17c3R5bGV9IGVycm9yTWVzc2FnZT17dXJsRXJyb3J9IC8+XG4gIH1cblxuICBmdW5jdGlvbiBvbk1lbnVDbG9zZSgpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgb25NZW51Q2xvc2UoKWApXG4gICAgc2V0U3RhdGUoeyB1cmxFcnJvcjogbnVsbCB9KVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBsYW5ndWFnZUlkXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/Lmxhbmd1YWdlSWRcbiAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZSh7IGxhbmd1YWdlSWQ6IGxhbmd1YWdlSWRfIH0pXG4gIGNvbnN0IGRpcmVjdGlvbiA9IChsYW5ndWFnZT8uZGlyZWN0aW9uKSB8fCAnbHRyJ1xuICBjb25zdCByZWZlcmVuY2UgPSB7IC4uLnNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UgfVxuXG4gIGNvbnN0IGlzSGVicmV3ID0gKGxhbmd1YWdlSWRfID09PSAnaGJvJylcbiAgY29uc3QgZm9udEZhY3RvciA9IGlzSGVicmV3ID8gMS40IDogMSAvLyB3ZSBhdXRvbWF0aWNhbGx5IHNjYWxlIHVwIGZvbnQgc2l6ZSBmb3IgSGVicmV3XG4gIGNvbnN0IHNjYWxlZEZvbnRTaXplID0gZm9udFNpemUgKiBmb250RmFjdG9yXG5cbiAgY29uc3QgaXRlbXMgPSBudWxsXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgaGVhZGVycywgZmlsdGVycywgaXRlbUluZGV4LCBtYXJrZG93blZpZXcsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzZXRGaWx0ZXJzLCBzZXRJdGVtSW5kZXgsIHNldE1hcmtkb3duVmlldyxcbiAgICB9LFxuICB9ID0gdXNlQ2FyZFN0YXRlKHsgaXRlbXMgfSlcblxuICBjb25zdCByZWZTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7TWF0aC5yb3VuZChzY2FsZWRGb250U2l6ZSAqIDAuOSl9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7c2NhbGVkRm9udFNpemV9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IHNjcmlwdHVyZUxhYmVsID0gPFRpdGxlPntzY3JpcHR1cmVUaXRsZX08L1RpdGxlPlxuICBsZXQgZGlzYWJsZVdvcmRQb3BvdmVyXyA9IGRpc2FibGVXb3JkUG9wb3ZlclxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHByZS1jYWNoZSBnbG9zc2VzIG9uIHZlcnNlIGNoYW5nZVxuICAgIGNvbnN0IGZldGNoR2xvc3NEYXRhRm9yVmVyc2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgdmVyc2VPYmplY3RzID0gW11cblxuICAgICAgLy8gZ2V0IHZlcnNlIG9iamVjdHMgb2YgYWxsIHRoZSB2ZXJzZXNcbiAgICAgIGZvciAoY29uc3QgdmVyc2VSZWYgb2Ygc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWYgfHwgW10pIHtcbiAgICAgICAgY29uc3QgX3ZlcnNlT2JqZWN0cyA9IHZlcnNlUmVmPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0c1xuICAgICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHMuY29uY2F0KF92ZXJzZU9iamVjdHMpXG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZVdvcmRQb3BvdmVyICYmIHZlcnNlT2JqZWN0cz8ubGVuZ3RoICYmIGZldGNoR2xvc3Nlc0ZvclZlcnNlKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgIGF3YWl0IGZldGNoR2xvc3Nlc0ZvclZlcnNlKHZlcnNlT2JqZWN0cywgbGFuZ3VhZ2VJZF8pXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVzaW5nT3JpZ2luYWxCaWJsZSkge1xuICAgICAgZmV0Y2hHbG9zc0RhdGFGb3JWZXJzZSgpXG4gICAgfVxuICB9LCBbIHZlcnNlc0ZvclJlZiwgbGFuZ3VhZ2VJZF8gXSlcblxuICBjb25zdCBlbmFibGVFZGl0ID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICBjb25zdCBlbmFibGVBbGlnbm1lbnQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IG9yaWdpbmFsUmVwb1VybCA9IGlzTmV3VGVzdGFtZW50ID8gZ3JlZWtSZXBvVXJsIDogaGVicmV3UmVwb1VybFxuICBjb25zdCBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJbmRleCxcbiAgICBjdXJyZW50VmVyc2VSZWY6IHJlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgY29uc3QgYm9va0NhcHMgPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZT8ucHJvamVjdElkID8gc2NyaXB0dXJlQ29uZmlnLnJlZmVyZW5jZS5wcm9qZWN0SWQudG9VcHBlckNhc2UoKSA6ICcnXG4gICAgcmV0dXJuIGAke2Jvb2tJbmRleH0tJHtib29rQ2Fwc30udXNmbWBcbiAgfVxuXG4gIGNvbnN0IGZpbGVwYXRoID0gZ2V0Qm9va05hbWUoKVxuXG4gIC8vIGtlZXAgdHJhY2sgb2YgdmVyc2UgZWRpdCBzdGF0ZVxuICBjb25zdCB7IG9uU2F2ZUVkaXQgfSA9IHVzZUVkaXQoe1xuICAgIHNoYSxcbiAgICBvd25lcixcbiAgICBjb250ZW50OiBzYXZlQ29udGVudCxcbiAgICBjb25maWc6IHtcbiAgICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgICAgLi4uYXV0aGVudGljYXRpb24/LmNvbmZpZyxcbiAgICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aW1lb3V0OiBodHRwQ29uZmlnPy5zZXJ2ZXJUaW1lT3V0IHx8IGh0dHBDb25maWc/LnRpbWVvdXQgfHwgNTAwMCxcbiAgICB9LFxuICAgIGF1dGhvcjogbG9nZ2VkSW5Vc2VyLFxuICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgYnJhbmNoOiB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG4gICAgZmlsZXBhdGgsXG4gICAgcmVwbyxcbiAgfSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3aGVuIHN0YXJ0U2F2ZSBnb2VzIHRydWUsIHNhdmUgZWRpdHMgdG8gdXNlciBicmFuY2ggYW5kIHRoZW4gY2xlYXIgc3RhcnRTYXZlXG4gICAgY29uc3QgX3NhdmVFZGl0ID0gYXN5bmMgKCkgPT4geyAvLyBiZWdpbiB1cGxvYWRpbmcgbmV3IFVTRk1cbiAgICAgIGxldCBicmFuY2ggPSAod29ya2luZ1Jlc291cmNlQnJhbmNoICE9PSAnbWFzdGVyJykgPyB3b3JraW5nUmVzb3VyY2VCcmFuY2ggOiB1bmRlZmluZWRcblxuICAgICAgaWYgKCFicmFuY2gpIHtcbiAgICAgICAgYnJhbmNoID0gYXdhaXQgc3RhcnRFZGl0QnJhbmNoKCkgLy8gbWFrZSBzdXJlIHVzZXIgYnJhbmNoIGV4aXN0cyBhbmQgZ2V0IG5hbWVcbiAgICAgIH1cblxuICAgICAgYXdhaXQgb25TYXZlRWRpdChicmFuY2gpLnRoZW4oKHN1Y2Nlc3MpID0+IHsgLy8gcHVzaCBjaGFuZ2VkIHRvIHNlcnZlclxuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmUgc2NyaXB0dXJlIGVkaXRzIHN1Y2Nlc3NgKVxuICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgIHN0YXJ0U2F2ZTogZmFsc2UsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICAgIGlmICh1bnNhdmVkQ2FyZEluZGljZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgY2xlYXJDaGFuZ2VzIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZEluZGV4XVxuICAgICAgICAgICAgICBjbGVhckNoYW5nZXMgJiYgY2xlYXJDaGFuZ2VzKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmluZm8oJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gUmVsb2FkaW5nIHJlc291cmNlJylcbiAgICAgICAgICBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmluZyBjaGFuZ2VkIHNjcmlwdHVyZSBmYWlsZWQnKVxuICAgICAgICAgIHNldFN0YXRlKHsgc3RhcnRTYXZlOiBmYWxzZSB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChzdGFydFNhdmUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjYWxsaW5nIF9zYXZlRWRpdCgpYClcbiAgICAgIF9zYXZlRWRpdCgpXG4gICAgfVxuICB9LCBbc3RhcnRTYXZlXSlcblxuICAvKipcbiAgICogY29udmVydCB1cGRhdGVkVmVyc2VPYmplY3RzIHRvIFVTRk0gYW5kIG1lcmdlIGludG8gdGhlIGJpYmxlVXNmbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmlibGVVc2ZtIC0gVVNGTSBvZiBiaWJsZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVmIC0gcmVmZXJlbmNlIG9mIHZlcnNlIHRvIG1lcmdlIGluXG4gICAqIEBwYXJhbSB7b2JqZWN0W119IHVwZGF0ZWRWZXJzZU9iamVjdHMgLSBuZXcgdmVyc2UgaW4gdmVyc2VPYmplY3QgZm9ybWF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjYXJkTnVtXG4gICAqL1xuICBmdW5jdGlvbiBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtLCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW06IG51bWJlcikge1xuICAgIGxldCBuZXdVc2ZtXG4gICAgY29uc3QgY2hhcHRlckNodW5rcyA9IGJpYmxlVXNmbT8uc3BsaXQoJ1xcXFxjICcpXG4gICAgY29uc3QgY2hhcHRlckluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy5jaGFwdGVyLCBjaGFwdGVyQ2h1bmtzKVxuXG4gICAgaWYgKGNoYXB0ZXJJbmRleCA+PSAwKSB7XG4gICAgICBjb25zdCBjdXJyZW50Q2hhcHRlciA9IGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XVxuICAgICAgY29uc3QgdmVyc2VDaHVua3MgPSBjdXJyZW50Q2hhcHRlci5zcGxpdCgnXFxcXHYgJylcbiAgICAgIGNvbnN0IHZlcnNlSW5kZXggPSBmaW5kUmVmSW5BcnJheShyZWY/LnZlcnNlLCB2ZXJzZUNodW5rcylcblxuICAgICAgaWYgKHZlcnNlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0odXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgke2NhcmROdW19KSAtIG5ldyBVU0ZNIGZvciBjYXJkOn0gLSAke25ld1ZlcnNlVXNmbS5zdWJzdHJpbmcoMCwgMTAwKX1gKVxuICAgICAgICBjb25zdCBvbGRWZXJzZSA9IHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdXG4gICAgICAgIGNvbnN0IHZlcnNlTnVtTGVuID0gKHJlZj8udmVyc2UgKyAnJykubGVuZ3RoXG4gICAgICAgIHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdID0gb2xkVmVyc2Uuc3Vic3RyaW5nKDAsIHZlcnNlTnVtTGVuICsgMSkgKyBuZXdWZXJzZVVzZm1cbiAgICAgICAgY29uc3QgbmV3Q2hhcHRlciA9IHZlcnNlQ2h1bmtzLmpvaW4oJ1xcXFx2ICcpXG4gICAgICAgIGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XSA9IG5ld0NoYXB0ZXJcbiAgICAgICAgbmV3VXNmbSA9IGNoYXB0ZXJDaHVua3Muam9pbignXFxcXGMgJylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1VzZm1cbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGZvciBlYWNoIHVuc2F2ZWQgY2hhbmdlLCBjYWxsIGludG8gdmVyc2VQYW5lIHRvIGdldCBsYXRlc3QgY2hhbmdlcyBmb3IgdmVyc2UgdG8gc2F2ZVxuICAgIGlmIChzYXZlQ2xpY2tlZCkge1xuICAgICAgY29uc3QgdW5zYXZlZENhcmRJbmRpY2VzID0gT2JqZWN0LmtleXModW5zYXZlZENoYW5nZXNMaXN0KVxuXG4gICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgbGV0IGJpYmxlVXNmbSA9IGNvcmUuZ2V0UmVzcG9uc2VEYXRhKHNjcmlwdHVyZUNvbmZpZz8uZmV0Y2hSZXNwb25zZSlcbiAgICAgICAgbGV0IG1lcmdlRmFpbCA9IGZhbHNlXG4gICAgICAgIGxldCBjYXJkTnVtID0gMFxuXG4gICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgIGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICBpZiAoZ2V0Q2hhbmdlcykge1xuICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmIGJpYmxlVXNmbSkgeyAvLyBqdXN0IHJlcGxhY2UgdmVyc2VcbiAgICAgICAgICAgICAgbmV3VXNmbSA9IG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm0sIHJlZiwgdXBkYXRlZFZlcnNlT2JqZWN0cywgY2FyZE51bSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgYmlibGVVc2ZtID0gbmV3VXNmbVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbWVyZ2VGYWlsID0gdHJ1ZVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtZXJnZUZhaWwpIHsgLy8gaWYgd2UgZmFpbGVkIHRvIG1lcmdlLCBmYWxsYmFjayB0byBicnV0ZSBmb3JjZSB2ZXJzZSBvYmplY3RzIHRvIFVTRk1cbiAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCR7Y2FyZE51bX0pIC0gdmVyc2Ugbm90IGZvdW5kLCBmYWxsaW5nIGJhY2sgdG8gaW5zZXJ0aW5nIHZlcnNlIG9iamVjdGApXG4gICAgICAgICAgbGV0IG5ld0Jvb2tKc29uXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICBjb25zdCB7IGdldENoYW5nZXMsIHN0YXRlIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZE51bV1cblxuICAgICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIW5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IG51bGxcblxuICAgICAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChuZXdWZXJzZVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UodXBkYXRlZFZlcnNlT2JqZWN0cywgbmV3VmVyc2VUZXh0KVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgbmV3Qm9va0pzb24gPSB0YXJnZXRWZXJzZU9iamVjdHNfICYmIHNjcmlwdHVyZUNvbmZpZz8udXBkYXRlVmVyc2UocmVmLmNoYXB0ZXIsIHJlZi52ZXJzZSwgeyB2ZXJzZU9iamVjdHM6IHRhcmdldFZlcnNlT2JqZWN0c18gfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBiaWJsZVVzZm0gPSB1c2ZtanMudG9VU0ZNKG5ld0Jvb2tKc29uLCB7IGZvcmNlZE5ld0xpbmVzOiB0cnVlIH0pXG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgbmV3IFVTRk06ICR7YmlibGVVc2ZtLnN1YnN0cmluZygwLCAxMDApfS4uLmApXG4gICAgICAgIHNldFN0YXRlKHsgc2F2ZUNvbnRlbnQ6IGJpYmxlVXNmbSwgc3RhcnRTYXZlOiB0cnVlLCBzYXZlQ2xpY2tlZDogZmFsc2UgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzYXZlQ2xpY2tlZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzRXF1YWwodmVyc2VzRm9yUmVmLCBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZikpIHtcbiAgICAgIGNvbnN0IHZlcnNlc0ZvclJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXG4gICAgICBzZXRTdGF0ZSh7IHZlcnNlc0ZvclJlZiB9KVxuXG4gICAgICBmb3IgKGNvbnN0IHZlcnNlUmVmIG9mIHZlcnNlc0ZvclJlZiB8fCBbXSkge1xuICAgICAgICAvLyBjaGVjayBmb3IgdmVyc2UgcmFuZ2VcbiAgICAgICAgY29uc3QgX3ZlcnNlID0gdmVyc2VSZWYudmVyc2VcblxuICAgICAgICBpZiAoYWRkVmVyc2VSYW5nZSAmJiAodHlwZW9mIF92ZXJzZSA9PT0gJ3N0cmluZycpKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGlmIChfdmVyc2UuaW5jbHVkZXMoJy0nKSkge1xuICAgICAgICAgICAgYWRkVmVyc2VSYW5nZShgJHtzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZT8uY2hhcHRlcn06JHtfdmVyc2V9YClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZl0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTdGF0ZSh7IHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCB9KVxuICB9LCBbdmVyc2VdKVxuXG4gIGNvbnN0IG5lZWRUb01lcmdlRnJvbU1hc3RlciA9IG1lcmdlRnJvbU1hc3Rlcj8ubWVyZ2VOZWVkZWRcbiAgY29uc3QgbWVyZ2VGcm9tTWFzdGVySGFzQ29uZmxpY3RzID0gbWVyZ2VGcm9tTWFzdGVyPy5jb25mbGljdFxuICBjb25zdCBtZXJnZVRvTWFzdGVySGFzQ29uZmxpY3RzID0gbWVyZ2VUb01hc3Rlcj8uY29uZmxpY3RcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmVzdGVkLXRlcm5hcnlcbiAgY29uc3QgbWVyZ2VGcm9tTWFzdGVyVGl0bGUgPSBtZXJnZUZyb21NYXN0ZXJIYXNDb25mbGljdHMgPyAnTWVyZ2UgQ29uZmxpY3RzIGZvciB1cGRhdGUgZnJvbSBtYXN0ZXInIDogKG5lZWRUb01lcmdlRnJvbU1hc3RlciA/ICdVcGRhdGUgZnJvbSBtYXN0ZXInIDogJ05vIG1lcmdlIGNvbmZsaWN0cyBmb3IgdXBkYXRlIHdpdGggbWFzdGVyJylcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gIGNvbnN0IG1lcmdlRnJvbU1hc3RlckNvbG9yID0gbWVyZ2VGcm9tTWFzdGVySGFzQ29uZmxpY3RzID8gJ2JsYWNrJyA6IChuZWVkVG9NZXJnZUZyb21NYXN0ZXIgPyAnYmxhY2snIDogJ2xpZ2h0Z3JheScpXG4gIGNvbnN0IG1lcmdlVG9NYXN0ZXJUaXRsZSA9IG1lcmdlVG9NYXN0ZXJIYXNDb25mbGljdHMgPyAnTWVyZ2UgQ29uZmxpY3RzIGZvciBzaGFyZSB3aXRoIG1hc3RlcicgOiAnTm8gbWVyZ2UgY29uZmxpY3RzIGZvciBzaGFyZSB3aXRoIG1hc3RlcidcbiAgY29uc3QgbWVyZ2VUb01hc3RlckNvbG9yID0gbWVyZ2VUb01hc3Rlckhhc0NvbmZsaWN0cyA/ICdibGFjaycgOiAnYmxhY2snXG5cbiAgY29uc3QgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzID0gKHJlZmVyZW5jZSwgYWxpZ25lZCkgPT4ge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHtcbiAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogey4uLnByZXZTdGF0ZS52ZXJzZXNBbGlnbm1lbnRTdGF0dXMsIFtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YF06IGFsaWduZWR9LFxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyZWRTY3JpcHR1cmVQYW5lcyA9IHZlcnNlc0ZvclJlZj8ubWFwKChfY3VycmVudFZlcnNlRGF0YSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsVmVyc2VPYmplY3RzID0gX2N1cnJlbnRWZXJzZURhdGE/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzIHx8IG51bGxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgeyBjaGFwdGVyLCB2ZXJzZSB9ID0gX2N1cnJlbnRWZXJzZURhdGEgfHwge31cbiAgICBjb25zdCBfcmVmZXJlbmNlID0ge1xuICAgICAgLi4ucmVmZXJlbmNlLFxuICAgICAgY2hhcHRlcixcbiAgICAgIHZlcnNlLFxuICAgIH1cbiAgICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAgIC4uLnNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gICAgICBjdXJyZW50SW5kZXg6IGluZGV4LFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIHJlZmVyZW5jZTogX3JlZmVyZW5jZSxcbiAgICB9XG5cbiAgICBsZXQgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ID0gZmFsc2VcbiAgICBpZiAodmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCkge1xuICAgICAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ID0gdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudC5jaGFwdGVyID09PSBjaGFwdGVyICYmIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQudmVyc2UgPT09IHZlcnNlXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JpcHR1cmVQYW5lXG4gICAgICAgIHsuLi5zY3JpcHR1cmVDb25maWd9XG4gICAgICAgIGNvbnRlbnRTdHlsZT17Y29udGVudFN0eWxlfVxuICAgICAgICBjdXJyZW50SW5kZXg9e2luZGV4fVxuICAgICAgICBkaXJlY3Rpb249e2RpcmVjdGlvbn1cbiAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJffVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgaXNOVD17aXNOVF99XG4gICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgIHJlZlN0eWxlPXtyZWZTdHlsZX1cbiAgICAgICAgcmVmZXJlbmNlPXtfcmVmZXJlbmNlfVxuICAgICAgICBzYXZpbmc9e3N0YXJ0U2F2ZX1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnPXtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZ31cbiAgICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXM9e3NldFdvcmRBbGlnbmVyU3RhdHVzfVxuICAgICAgICBzZXJ2ZXI9e3NlcnZlcn1cbiAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudD17aXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50fVxuICAgICAgICBvbkFsaWdubWVudEZpbmlzaD17KCkgPT4gc2V0U3RhdGUoeyB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBudWxsIH0pfVxuICAgICAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM9e3VwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1c31cbiAgICAgIC8+XG4gICAgKVxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZUFsaWduQnV0dG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID4gMSkge1xuICAgICAgc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IHRydWUgfSlcbiAgICB9IGVsc2UgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID09PSAxKSB7XG4gICAgICBzZXRTdGF0ZSh7IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlc0ZvclJlZlswXSB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG9uUmVuZGVyVG9vbGJhciA9ICh7IGl0ZW1zIH0pID0+IHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi5pdGVtc11cblxuICAgIGxldCBhbGxWZXJzZXNBbGlnbmVkID0gZmFsc2VcbiAgICAvLyBDaGVjayBpZiBhbGwgdmFsdWVzIGluIHZlcnNlc0FsaWdubWVudFN0YXR1cyBhcmUgdHJ1ZVxuICAgIGlmICh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpIHtcbiAgICAgIGFsbFZlcnNlc0FsaWduZWQgPSBPYmplY3QudmFsdWVzKHZlcnNlc0FsaWdubWVudFN0YXR1cykuZXZlcnkoYWxpZ25TdGF0dXMgPT4gYWxpZ25TdGF0dXMgPT09IHRydWUpXG4gICAgfVxuICAgIGxldCBhbGlnbkljb24gPSBudWxsXG4gICAgbGV0IGFsaWduQnV0dG9uVGV4dCA9ICcnXG4gICAgaWYgKGFsbFZlcnNlc0FsaWduZWQpIHtcbiAgICAgIGFsaWduSWNvbiA9IDxSeExpbmsyIGlkPXtgdmFsaWRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyNCQkInIC8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIFZhbGlkJ1xuICAgIH0gZWxzZSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rQnJlYWsyIGlkPXtgaW52YWxpZF9hbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyMwMDAnIC8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIEludmFsaWQnXG4gICAgfVxuXG4gICAgaWYgKHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHJlc291cmNlSWQgIT09ICdPUklHSU5BTF9TT1VSQ0UnKSB7XG4gICAgICBuZXdJdGVtcy5wdXNoKFxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGlkPXtgYWxpZ25tZW50X2ljb25fJHtyZXNvdXJjZUlkfWB9XG4gICAgICAgICAga2V5PSdjaGVja2luZy1idXR0b24nXG4gICAgICAgICAgb25DbGljaz17aGFuZGxlQWxpZ25CdXR0b25DbGlja31cbiAgICAgICAgICB0aXRsZT17YWxpZ25CdXR0b25UZXh0fVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FsaWduQnV0dG9uVGV4dH1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICA+XG4gICAgICAgICAge2FsaWduSWNvbn1cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgKVxuICAgIH1cblxuICAgIG5ld0l0ZW1zLnB1c2goXG4gICAgICA8PlxuICAgICAgICA8VXBkYXRlQnJhbmNoQnV0dG9uIHsuLi51cGRhdGVCdXR0b25Qcm9wc30gaXNMb2FkaW5nPXtpc0xvYWRpbmcgfHwgc3RhcnRTYXZlfS8+XG4gICAgICAgIDxFcnJvckRpYWxvZyB0aXRsZT17ZGlhbG9nVGl0bGV9IGNvbnRlbnQ9e2RpYWxvZ01lc3NhZ2V9IG9wZW49e2lzRXJyb3JEaWFsb2dPcGVufSBvbkNsb3NlPXtvbkNsb3NlRXJyb3JEaWFsb2d9IGlzTG9hZGluZz17IGlzTG9hZGluZyB8fCBzdGFydFNhdmUgfSBsaW5rPXtkaWFsb2dMaW5rfSBsaW5rVG9vbHRpcD17ZGlhbG9nTGlua1Rvb2x0aXB9IC8+XG4gICAgICA8Lz5cbiAgICApXG5cbiAgICBpZiAobWVyZ2VUb01hc3Rlcikge1xuICAgICAgbmV3SXRlbXMucHVzaChcbiAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubWFyZ2lufVxuICAgICAgICAgIGtleT0nc2hhcmUtdG8tbWFzdGVyJ1xuICAgICAgICAgIG9uQ2xpY2s9e21lcmdlVG9NYXN0ZXJGcm9tVXNlckJyYW5jaH1cbiAgICAgICAgICB0aXRsZT17bWVyZ2VUb01hc3RlclRpdGxlfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e21lcmdlVG9NYXN0ZXJUaXRsZX1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICA+XG4gICAgICAgICAge21lcmdlVG9NYXN0ZXJIYXNDb25mbGljdHMgP1xuICAgICAgICAgICAgPE1kVXBkYXRlRGlzYWJsZWQgaWQ9J3NoYXJlLXRvLW1hc3Rlci1pY29uJyBjb2xvcj17bWVyZ2VUb01hc3RlckNvbG9yfSAvPlxuICAgICAgICAgICAgOlxuICAgICAgICAgICAgPEZpU2hhcmUgaWQ9J3NoYXJlLXRvLW1hc3Rlci1pY29uJyBjb2xvcj17bWVyZ2VUb01hc3RlckNvbG9yfSAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gbmV3SXRlbXM7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Q2FyZFxuICAgICAgICBpZD17YHNjcmlwdHVyZV9jYXJkXyR7Y2FyZE51bX1gfVxuICAgICAgICB0aXRsZT17c2NyaXB0dXJlTGFiZWx9XG4gICAgICAgIHNldHRpbmdzVGl0bGU9e3NjcmlwdHVyZVRpdGxlICsgJyBTZXR0aW5ncyd9XG4gICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgaGVhZGVycz17aGVhZGVyc31cbiAgICAgICAgZmlsdGVycz17ZmlsdGVyc31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBpdGVtSW5kZXg9e2l0ZW1JbmRleH1cbiAgICAgICAgc2V0RmlsdGVycz17c2V0RmlsdGVyc31cbiAgICAgICAgc2V0Rm9udFNpemU9e3NldEZvbnRTaXplfVxuICAgICAgICBzZXRJdGVtSW5kZXg9e3NldEl0ZW1JbmRleH1cbiAgICAgICAgbWFya2Rvd25WaWV3PXttYXJrZG93blZpZXd9XG4gICAgICAgIHNldE1hcmtkb3duVmlldz17c2V0TWFya2Rvd25WaWV3fVxuICAgICAgICBnZXRDdXN0b21Db21wb25lbnQ9e2dldFNjcmlwdHVyZVNlbGVjdG9yfVxuICAgICAgICBoaWRlTWFya2Rvd25Ub2dnbGVcbiAgICAgICAgb25NZW51Q2xvc2U9e29uTWVudUNsb3NlfVxuICAgICAgICBvbk1pbmltaXplPXtvbk1pbmltaXplID8gKCkgPT4gb25NaW5pbWl6ZShpZCkgOiBudWxsfVxuICAgICAgICBlZGl0YWJsZT17ZW5hYmxlRWRpdCB8fCBlbmFibGVBbGlnbm1lbnR9XG4gICAgICAgIHNhdmVkPXtzdGFydFNhdmUgfHwgIWhhdmVVbnNhdmVkQ2hhbmdlc31cbiAgICAgICAgb25TYXZlRWRpdD17KCkgPT4gc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogdHJ1ZSB9KX1cbiAgICAgICAgb25SZW5kZXJUb29sYmFyPXtvblJlbmRlclRvb2xiYXJ9XG4gICAgICA+XG4gICAgICAgIDxkaXYgaWQ9XCJzY3JpcHR1cmUtcGFuZS1saXN0XCI+XG4gICAgICAgICAge3JlbmRlcmVkU2NyaXB0dXJlUGFuZXN9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9DYXJkPlxuICAgICAgPFZlcnNlU2VsZWN0b3JQb3B1cFxuICAgICAgICByZXNvdXJjZUlkPXtyZXNvdXJjZUlkfVxuICAgICAgICBvcGVuPXtzaG93QWxpZ25tZW50UG9wdXB9XG4gICAgICAgIG9uQ2xvc2U9eygpID0+IHNldFN0YXRlKHsgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSB9KX1cbiAgICAgICAgdmVyc2VzRm9yUmVmPXt2ZXJzZXNGb3JSZWZ9XG4gICAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1cz17dmVyc2VzQWxpZ25tZW50U3RhdHVzfVxuICAgICAgICBvblZlcnNlU2VsZWN0PXsodmVyc2UpID0+IHNldFN0YXRlKHtcbiAgICAgICAgICB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiB2ZXJzZSxcbiAgICAgICAgICBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlXG4gICAgICAgIH0pfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKVxufVxuXG5TY3JpcHR1cmVDYXJkLnByb3BUeXBlcyA9IHtcbiAgLyoqIGh0bWwgaWRlbnRpZmllciB0byB1c2UgZm9yIGNhcmQgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBtZXRob2QgdG8gZGV0ZXJtaW5lIGlmIE5UIG9yIE9UICovXG4gIGlzTlQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiB0aXRsZSBmb3Igc2NyaXB0dXJlIGNhcmQgKi9cbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGdldCBsYW5ndWFnZSBkZXRhaWxzICovXG4gIGdldExhbmd1YWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAvKiogc2NyaXB0dXJlIGNhcmQgbnVtYmVyICgwIHRvIDIgZm9yIGV4YW1wbGUpICovXG4gIGNhcmROdW06IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgLyoqIHJlc291cmNlIG9iamVjdCAqL1xuICByZXNvdXJjZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogcmVzb3VyY2UgbGFuZ3VhZ2UgdG8gdXNlICovXG4gICAgbGFuZ3VhZ2VJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXBvIG93bmVyIHN1Y2ggYXMgdW5mb2xkaW5nV29yZCAqL1xuICAgIG93bmVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlc291cmNlSWQgdG8gdXNlIChlLmcuIHVnbnQpICovXG4gICAgcmVzb3VyY2VJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXBvIG93bmVyIGZvciBvcmlnaW5hbCBsYW5ndWFnZXMgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH0pLFxuICByZWZlcmVuY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIHByb2plY3RJZCAoYm9va0lEKSB0byB1c2UgKi9cbiAgICBwcm9qZWN0SWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogY3VycmVudCBjaGFwdGVyIG51bWJlciAqL1xuICAgIGNoYXB0ZXI6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IHZlcnNlIG51bWJlciAqL1xuICAgIHZlcnNlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgfSksXG4gIC8qKiBzZXJ2ZXIgKGUuZy4gJ2h0dHBzOi8vZ2l0LmRvb3I0My5vcmcnKSAqL1xuICBzZXJ2ZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIHJlcG8gYnJhbmNoIG9yIHRhZyBzdWNoIGFzIG1hc3RlciAqL1xuICBhcHBSZWY6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGlmIHRydWUgdGhlbiB3b3JkIGRhdGEgaG92ZXIgaXMgc2hvd24gKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIENTUyBjbGFzc2VzICovXG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiByZXNvdXJjZUxpbmsgKi9cbiAgcmVzb3VyY2VMaW5rOiBQcm9wVHlwZXMuYW55LFxuICAvKiogdXNlIG1ldGhvZCBmb3IgdXNpbmcgbG9jYWwgc3RvcmFnZSBzcGVjaWZpYyBmb3IgdXNlciAqL1xuICB1c2VVc2VyTG9jYWxTdG9yYWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAvKiogb3B0aW9uYWwgY2FsbGJhY2sgaWYgZXJyb3IgbG9hZGluZyByZXNvdXJjZSwgcGFyYW1ldGVyIHJldHVybmVkIGFyZTpcbiAgICogICAgKHtzdHJpbmd9IGVycm9yTWVzc2FnZSwge2Jvb2xlYW59IGlzQWNjZXNzRXJyb3IsIHtvYmplY3R9IHJlc291cmNlU3RhdHVzKVxuICAgKiAgICAgIC0gaXNBY2Nlc3NFcnJvciAtIGlzIHRydWUgaWYgdGhpcyB3YXMgYW4gZXJyb3IgdHJ5aW5nIHRvIGFjY2VzcyBmaWxlXG4gICAqICAgICAgLSByZXNvdXJjZVN0YXR1cyAtIGlzIG9iamVjdCBjb250YWluaW5nIGRldGFpbHMgYWJvdXQgcHJvYmxlbXMgZmV0Y2hpbmcgcmVzb3VyY2UgKi9cbiAgb25SZXNvdXJjZUVycm9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIG9wdGlvbmFsIGh0dHAgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIGZldGNoaW5nIHJlc291cmNlcywgZGVmYXVsdCBpcyAwICh2ZXJ5IGxvbmcgd2FpdCkgKi9cbiAgaHR0cENvbmZpZzogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgZ3JlZWsgcmVwbyAqL1xuICBncmVla1JlcG9Vcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBvcHRpb25hbCB1cmwgZm9yIGhlYnJldyByZXBvICovXG4gIGhlYnJld1JlcG9Vcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBmdW5jdGlvbiB0byBwcmUtbG9hZCBsZXhpY29uIGRhdGEgZm9yIHZlcnNlICovXG4gIGZldGNoR2xvc3Nlc0ZvclZlcnNlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGZ1bmN0aW9uIHRvIG1pbmltaXplIHRoZSBjYXJkIChvcHRpb25hbCkgKi9cbiAgb25NaW5pbWl6ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB1c2VyLW5hbWUgKi9cbiAgbG9nZ2VkSW5Vc2VyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogYXV0aGVudGljYXRpb24gaW5mbyAqL1xuICBhdXRoZW50aWNhdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGZ1bmN0aW9uIHRvIHNldCBzdGF0ZSBpbiBhcHAgdGhhdCB0aGVyZSBhcmUgdW5zYXZlZCBjaGFuZ2VzICovXG4gIHNldFNhdmVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBpbmRleCBmb3IgY3VycmVudCBib29rIChlLmcuICcwMScgZm9yICdnZW4nKSovXG4gIGJvb2tJbmRleDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGNhbGxiYWNrIHRvIGluZGljYXRlIHRoYXQgd2UgYXJlIHVzaW5nIGEgdmVyc2UgcmFuZ2UgaGVyZSAqL1xuICBhZGRWZXJzZVJhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSB3b3JkIGFsaWduZXIgc3RhdGUgKi9cbiAgc2V0V29yZEFsaWduZXJTdGF0dXM6IFByb3BUeXBlcy5mdW5jLFxuICAvKipjYWxsYmFjayB0byB1cGRhdGUgdGhlIGNhcmQncyBtZXJnZSBzdGF0ZSBpbiBhcHAgKi9cbiAgdXBkYXRlTWVyZ2VTdGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG59XG4iXX0=
|
|
@@ -68,7 +68,6 @@ function ScripturePane(_ref) {
|
|
|
68
68
|
scriptureAlignmentEditConfig = _ref.scriptureAlignmentEditConfig,
|
|
69
69
|
setSavedChanges = _ref.setSavedChanges,
|
|
70
70
|
setWordAlignerStatus = _ref.setWordAlignerStatus,
|
|
71
|
-
merging = _ref.merging,
|
|
72
71
|
isVerseSelectedForAlignment = _ref.isVerseSelectedForAlignment,
|
|
73
72
|
onAlignmentFinish = _ref.onAlignmentFinish,
|
|
74
73
|
updateVersesAlignmentStatus = _ref.updateVersesAlignmentStatus;
|
|
@@ -101,8 +100,6 @@ function ScripturePane(_ref) {
|
|
|
101
100
|
|
|
102
101
|
if (saving) {
|
|
103
102
|
resourceMessage = 'Saving Changes...';
|
|
104
|
-
} else if (merging) {
|
|
105
|
-
resourceMessage = 'Merging Changes...';
|
|
106
103
|
} else {
|
|
107
104
|
resourceMessage = getResourceMessage(resourceStatus, server, resourceLink, isNT);
|
|
108
105
|
}
|
|
@@ -143,7 +140,7 @@ function ScripturePane(_ref) {
|
|
|
143
140
|
}
|
|
144
141
|
|
|
145
142
|
React.useEffect(function () {
|
|
146
|
-
updateVersesAlignmentStatus(reference, aligned);
|
|
143
|
+
updateVersesAlignmentStatus && updateVersesAlignmentStatus(reference, aligned);
|
|
147
144
|
}, [aligned]);
|
|
148
145
|
React.useEffect(function () {
|
|
149
146
|
if (alignerData && !doingAlignment) {
|
|
@@ -241,4 +238,4 @@ ScripturePane.defaultProps = {
|
|
|
241
238
|
verseObjects: []
|
|
242
239
|
};
|
|
243
240
|
export default ScripturePane;
|
|
244
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImN1cnJlbnRJbmRleCIsImNvbnRlbnRTdHlsZSIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwic2F2aW5nIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwibWVyZ2luZyIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwidXNlU3RhdGUiLCJkb2luZ0FsaWdubWVudCIsIm5ld1RleHQiLCJ1cmxFcnJvciIsInN0YXRlIiwic2V0U3RhdGVfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNZXNzYWdlIiwiY2hhcHRlciIsInZlcnNlIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsImFjdGlvbnMiLCJoYW5kbGVBbGlnbm1lbnRDbGljayIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJhbGlnbmVkIiwiYWxpZ25lckRhdGEiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsImVkaXRpbmciLCJ1bnNhdmVkQ2hhbmdlcyIsIm5ld1ZlcnNlVGV4dCIsInVzZUVmZmVjdCIsImNhbGN1bGF0ZWRGb250U2l6ZSIsInVzZU1lbW8iLCJwYXJzZUZsb2F0IiwidGV4dEFyZWFTdHlsZSIsInZlcnNlVGV4dCIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJ2ZXJzZU9iamVjdHMiLCJvblRleHRDaGFuZ2UiLCJldmVudCIsInRhcmdldCIsInZhbHVlIiwiY2hhbmdlZCIsImNvbnNvbGUiLCJsb2ciLCJvbkJsdXIiLCJjaGVja2luZ1N0YXRlIiwidGl0bGVUZXh0IiwicGFkZGluZ0JvdHRvbSIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLG9CQUFQLE1BQWlDLHlCQUFqQztBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsa0JBQTFDO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsYUFBbkM7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxhQUFuQztBQUNBLFNBQVNDLDJCQUFULEVBQXNDQyx5QkFBdEMsUUFBdUUsdUNBQXZFO0FBQ0EsU0FBU0MsU0FBVCxFQUFvQkMsT0FBcEIsUUFBbUMsVUFBbkM7QUErQ0EsSUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxF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LGFBQWEsQ0FBQ2tFLFlBQWQsR0FBNkI7QUFBRVosRUFBQUEsWUFBWSxFQUFFO0FBQWhCLENBQTdCO0FBRUEsZUFBZXRELGFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VEZWVwQ29tcGFyZUVmZmVjdCBmcm9tICd1c2UtZGVlcC1jb21wYXJlLWVmZmVjdCdcbmltcG9ydCB7IFZlcnNlT2JqZWN0cyB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHsgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBTY3JpcHR1cmVSZWZlcmVuY2UgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IGdldFJlc291cmNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzLCB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXRcIjtcbmltcG9ydCB7IENvbnRhaW5lciwgQ29udGVudCB9IGZyb20gJy4vc3R5bGVkJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgY29udGVudCAqKi9cbiAgY29udGVudFN0eWxlOiBhbnk7XG4gIC8vIGluZGV4IG51bWJlciBmb3IgdGhpcyBzY3JpcHR1cmUgcGFuZVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBmb250IHNpemUgZm9yIG1lc3NhZ2VzICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGJyb3dzaW5nIE5UICovXG4gIGlzTlQ6IGJvb2xlYW47XG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHVuc2F2ZWQgc3RhdHVzICovXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb247XG4gIC8vIGNhbGxiYWNrIGZvciBjaGFuZ2UgaW4gd29yZCBhbGlnbm1lbnQgc3RhdHVzXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIHdoZXRoZXIgb3Igbm90IHdlIGFyZSBjdXJyZW50bHkgbWVyZ2luZyBjaGFuZ2VzIGZyb20gbWFzdGVyICovXG4gIG1lcmdpbmc6IGJvb2xlYW47XG4gIC8qKiB3aGV0aGVyIG9yIG5vdCB0aGlzIGN1cnJlbnQgdmVyc2UgaGFzIGJlZW4gc2VsZWN0ZWQgZm9yIGFsaWdubWVudCAqL1xuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IGJvb2xlYW47XG4gIC8qKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB2ZXJzZSBhbGlnbm1lbnQgaGFzIGZpbmlzaGVkICovXG4gIG9uQWxpZ25tZW50RmluaXNoOiBGdW5jdGlvbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byB1cGRhdGUgdmVyc2UgYWxpZ25tZW50IHN0YXR1cyAqL1xuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5jb25zdCBUZXh0QXJlYVN0eWxlID0ge1xuICBoZWlnaHQ6ICc2MCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBtaW5XaWR0aDogJzIyMHB4JyxcbiAgZm9udFNpemU6ICcxNnB4Jyxcbn1cblxuZnVuY3Rpb24gU2NyaXB0dXJlUGFuZSh7XG4gIHJlZmVyZW5jZSxcbiAgcmVmU3R5bGUsXG4gIGRpcmVjdGlvbixcbiAgY3VycmVudEluZGV4LFxuICBjb250ZW50U3R5bGUsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgcmVzb3VyY2VTdGF0dXMsXG4gIHJlc291cmNlTGluayxcbiAgc2VydmVyLFxuICBpc05ULFxuICBmb250U2l6ZSxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIHRyYW5zbGF0ZSxcbiAgc2F2aW5nLFxuICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICBzZXRTYXZlZENoYW5nZXMsXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzLFxuICBtZXJnaW5nLFxuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gIG9uQWxpZ25tZW50RmluaXNoLFxuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG59IDogUHJvcHMpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGRvaW5nQWxpZ25tZW50OiBmYWxzZSxcbiAgICBuZXdUZXh0OiBudWxsLFxuICAgIHVybEVycm9yOiBudWxsLFxuICB9KVxuICBjb25zdCB7XG4gICAgZG9pbmdBbGlnbm1lbnQsXG4gICAgbmV3VGV4dCxcbiAgICB1cmxFcnJvcixcbiAgfSA9IHN0YXRlXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuXG4gIGxldCByZXNvdXJjZU1lc3NhZ2UgPSAnJ1xuICBpZiAoc2F2aW5nKSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gJ1NhdmluZyBDaGFuZ2VzLi4uJ1xuICB9IGVsc2UgaWYgKG1lcmdpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnTWVyZ2luZyBDaGFuZ2VzLi4uJ1xuICB9IGVsc2Uge1xuICAgIHJlc291cmNlTWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlQpXG4gIH1cblxuICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSByZWZlcmVuY2VcbiAgZGlyZWN0aW9uID0gZGlyZWN0aW9uIHx8ICdsdHInXG5cbiAgcmVmU3R5bGUgPSByZWZTdHlsZSB8fCB7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6ICc5MCUnLFxuICB9XG5cbiAgY29udGVudFN0eWxlID0gY29udGVudFN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzEwMCUnLFxuICB9XG5cbiAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgLi4uc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgICBpbml0aWFsVmVyc2VUZXh0LFxuICB9XG5cbiAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXQgPSB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0KF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnKVxuICBjb25zdCB7XG4gICAgYWN0aW9uczoge1xuICAgICAgaGFuZGxlQWxpZ25tZW50Q2xpY2ssXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgIH0sXG4gIH0gPSBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuXG4gIGlmIChpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgJiYgIWFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkge1xuICAgIGhhbmRsZUFsaWdubWVudENsaWNrKClcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzKHJlZmVyZW5jZSwgYWxpZ25lZClcbiAgfSwgW2FsaWduZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiB0cnVlIH0pXG4gICAgfSBlbHNlIGlmIChkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiBmYWxzZSB9KVxuICAgICAgb25BbGlnbm1lbnRGaW5pc2ggJiYgb25BbGlnbm1lbnRGaW5pc2goKVxuICAgIH1cbiAgfSwgW19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Py5zdGF0ZT8uYWxpZ25lckRhdGFdKVxuXG4gIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBmb250IHNpemVcbiAgY29uc3QgY2FsY3VsYXRlZEZvbnRTaXplID0gUmVhY3QudXNlTWVtbygoKSA9PiAoXG4gICAgcGFyc2VGbG9hdChUZXh0QXJlYVN0eWxlLmZvbnRTaXplKSAqIGZvbnRTaXplIC8gMTAwICsgJ3B4J1xuICApLCBbZm9udFNpemVdKVxuXG4gIGNvbnN0IHRleHRBcmVhU3R5bGUgPSB7XG4gICAgLi4uY29udGVudFN0eWxlLFxuICAgIC4uLlRleHRBcmVhU3R5bGUsXG4gICAgZm9udFNpemU6IGNhbGN1bGF0ZWRGb250U2l6ZSxcbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGluaXRpYWxWZXJzZU9iamVjdHMgfSlcbiAgICBzZXRJbml0aWFsVmVyc2VUZXh0KHZlcnNlVGV4dClcbiAgfSwgW3sgcmVmZXJlbmNlLCBpbml0aWFsVmVyc2VPYmplY3RzIH1dKVxuXG4gIGZ1bmN0aW9uIG9uVGV4dENoYW5nZShldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdWZXJzZVRleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZVxuICAgIGNvbnN0IGNoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICBjb25zb2xlLmxvZyhgU1Aub25UZXh0Q2hhbmdlYCwgeyBjaGFuZ2VkLCBuZXdUZXh0OiBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQgfSlcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0KVxuICAgIHNldFN0YXRlKHsgbmV3VGV4dDogbmV3VmVyc2VUZXh0IH0pXG4gIH1cblxuICBmdW5jdGlvbiBvbkJsdXIoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgc2V0RWRpdGluZyhmYWxzZSwgbmV3VGV4dClcbiAgfVxuXG4gIGNvbnN0IGNoZWNraW5nU3RhdGUgPSBhbGlnbmVkID8gJ3ZhbGlkJyA6ICdpbnZhbGlkJ1xuICBjb25zdCB0aXRsZVRleHQgPSBjaGVja2luZ1N0YXRlID09PSAndmFsaWQnID8gJ0FsaWdubWVudCBpcyBWYWxpZCcgOiAnQWxpZ25tZW50IGlzIEludmFsaWQnXG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgcGFkZGluZ0JvdHRvbTogJzAuNWVtJyB9fT5cbiAgICAgIHtyZXNvdXJjZU1lc3NhZ2UgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1lc3NhZ2V9IDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOlxuICAgICAgICA8Q29udGVudD5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17cmVmU3R5bGV9PiB7Y2hhcHRlcn06e3ZlcnNlfSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17Y29udGVudFN0eWxlfSBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRFZGl0aW5nICYmIHNldEVkaXRpbmcodHJ1ZSlcbiAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlZGl0aW5nID9cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtuZXdWZXJzZVRleHQgfHwgaW5pdGlhbFZlcnNlVGV4dH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt0ZXh0QXJlYVN0eWxlfVxuICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgIDxWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICB2ZXJzZUtleT17YCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWB9XG4gICAgICAgICAgICAgICAgdmVyc2VPYmplY3RzPXtjdXJyZW50VmVyc2VPYmplY3RzIHx8IGluaXRpYWxWZXJzZU9iamVjdHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJ9XG4gICAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Db250ZW50PlxuICAgICAgfVxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cblNjcmlwdHVyZVBhbmUuZGVmYXVsdFByb3BzID0geyB2ZXJzZU9iamVjdHM6IFtdIH1cblxuZXhwb3J0IGRlZmF1bHQgU2NyaXB0dXJlUGFuZVxuIl19
|
|
241
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImN1cnJlbnRJbmRleCIsImNvbnRlbnRTdHlsZSIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwic2F2aW5nIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwiaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50Iiwib25BbGlnbm1lbnRGaW5pc2giLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJ1c2VTdGF0ZSIsImRvaW5nQWxpZ25tZW50IiwibmV3VGV4dCIsInVybEVycm9yIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiaW5pdGlhbFZlcnNlVGV4dCIsInNldEluaXRpYWxWZXJzZVRleHQiLCJyZXNvdXJjZU1lc3NhZ2UiLCJjaGFwdGVyIiwidmVyc2UiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiYWN0aW9ucyIsImhhbmRsZUFsaWdubWVudENsaWNrIiwic2V0RWRpdGluZyIsInNldFZlcnNlQ2hhbmdlZCIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiZWRpdGluZyIsInVuc2F2ZWRDaGFuZ2VzIiwibmV3VmVyc2VUZXh0IiwidXNlRWZmZWN0IiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInZlcnNlT2JqZWN0cyIsIm9uVGV4dENoYW5nZSIsImV2ZW50IiwidGFyZ2V0IiwidmFsdWUiLCJjaGFuZ2VkIiwiY29uc29sZSIsImxvZyIsIm9uQmx1ciIsImNoZWNraW5nU3RhdGUiLCJ0aXRsZVRleHQiLCJwYWRkaW5nQm90dG9tIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsT0FBT0Msb0JBQVAsTUFBaUMseUJBQWpDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qix5QkFBN0I7QUFDQSxTQUFTQyx5QkFBVCxRQUEwQyxrQkFBMUM7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxhQUFuQztBQUNBLFNBQVNDLGtCQUFULFFBQW1DLGFBQW5DO0FBQ0EsU0FBU0MsMkJBQVQsRUFBc0NDLHlCQUF0QyxRQUF1RSx1Q0FBdkU7QUFDQSxTQUFTQyxTQUFULEVBQW9CQyxPQUFwQixRQUFtQyxVQUFuQztBQTZDQSxJQUFNQyxZQUFZLEdBQUc7QUFDbkJDLEVBQUFBLFNBQVMs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dCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VEZWVwQ29tcGFyZUVmZmVjdCBmcm9tICd1c2UtZGVlcC1jb21wYXJlLWVmZmVjdCdcbmltcG9ydCB7IFZlcnNlT2JqZWN0cyB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHsgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBTY3JpcHR1cmVSZWZlcmVuY2UgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IGdldFJlc291cmNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzLCB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IH0gZnJvbSBcIi4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXRcIjtcbmltcG9ydCB7IENvbnRhaW5lciwgQ29udGVudCB9IGZyb20gJy4vc3R5bGVkJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgY29udGVudCAqKi9cbiAgY29udGVudFN0eWxlOiBhbnk7XG4gIC8vIGluZGV4IG51bWJlciBmb3IgdGhpcyBzY3JpcHR1cmUgcGFuZVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBmb250IHNpemUgZm9yIG1lc3NhZ2VzICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGJyb3dzaW5nIE5UICovXG4gIGlzTlQ6IGJvb2xlYW47XG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHVuc2F2ZWQgc3RhdHVzICovXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb247XG4gIC8vIGNhbGxiYWNrIGZvciBjaGFuZ2UgaW4gd29yZCBhbGlnbm1lbnQgc3RhdHVzXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIHdoZXRoZXIgb3Igbm90IHRoaXMgY3VycmVudCB2ZXJzZSBoYXMgYmVlbiBzZWxlY3RlZCBmb3IgYWxpZ25tZW50ICovXG4gIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogYm9vbGVhbjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHZlcnNlIGFsaWdubWVudCBoYXMgZmluaXNoZWQgKi9cbiAgb25BbGlnbm1lbnRGaW5pc2g6IEZ1bmN0aW9uO1xuICAvKiogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHRvIHVwZGF0ZSB2ZXJzZSBhbGlnbm1lbnQgc3RhdHVzICovXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1czogRnVuY3Rpb247XG59XG5cbmNvbnN0IE1lc3NhZ2VTdHlsZSA9IHtcbiAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyxcbiAgbGluZUhlaWdodDogJ25vcm1hbCcsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgaGVpZ2h0OiAnMTAwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGZvbnRTaXplOiAnMTZweCcsXG4gIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICBmb250V2VpZ2h0OiAnYm9sZCcsXG59XG5cbmNvbnN0IFRleHRBcmVhU3R5bGUgPSB7XG4gIGhlaWdodDogJzYwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIG1pbldpZHRoOiAnMjIwcHgnLFxuICBmb250U2l6ZTogJzE2cHgnLFxufVxuXG5mdW5jdGlvbiBTY3JpcHR1cmVQYW5lKHtcbiAgcmVmZXJlbmNlLFxuICByZWZTdHlsZSxcbiAgZGlyZWN0aW9uLFxuICBjdXJyZW50SW5kZXgsXG4gIGNvbnRlbnRTdHlsZSxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICByZXNvdXJjZVN0YXR1cyxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZXJ2ZXIsXG4gIGlzTlQsXG4gIGZvbnRTaXplLFxuICBnZXRMZXhpY29uRGF0YSxcbiAgdHJhbnNsYXRlLFxuICBzYXZpbmcsXG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG4gIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCxcbiAgb25BbGlnbm1lbnRGaW5pc2gsXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlLFxuICAgIG5ld1RleHQ6IG51bGwsXG4gICAgdXJsRXJyb3I6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBkb2luZ0FsaWdubWVudCxcbiAgICBuZXdUZXh0LFxuICAgIHVybEVycm9yLFxuICB9ID0gc3RhdGVcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGNvbnN0IFtpbml0aWFsVmVyc2VUZXh0LCBzZXRJbml0aWFsVmVyc2VUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpXG5cbiAgbGV0IHJlc291cmNlTWVzc2FnZSA9ICcnXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnU2F2aW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdCA9IHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcpXG4gIGNvbnN0IHtcbiAgICBhY3Rpb25zOiB7XG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIHNldEVkaXRpbmcsXG4gICAgICBzZXRWZXJzZUNoYW5nZWQsXG4gICAgfSxcbiAgICBzdGF0ZToge1xuICAgICAgYWxpZ25lZCxcbiAgICAgIGFsaWduZXJEYXRhLFxuICAgICAgY3VycmVudFZlcnNlT2JqZWN0cyxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgdW5zYXZlZENoYW5nZXMsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgfSxcbiAgfSA9IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG5cbiAgaWYgKGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCAmJiAhYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgaGFuZGxlQWxpZ25tZW50Q2xpY2soKVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgJiYgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzKHJlZmVyZW5jZSwgYWxpZ25lZClcbiAgfSwgW2FsaWduZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiB0cnVlIH0pXG4gICAgfSBlbHNlIGlmIChkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiBmYWxzZSB9KVxuICAgICAgb25BbGlnbm1lbnRGaW5pc2ggJiYgb25BbGlnbm1lbnRGaW5pc2goKVxuICAgIH1cbiAgfSwgW19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Py5zdGF0ZT8uYWxpZ25lckRhdGFdKVxuXG4gIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBmb250IHNpemVcbiAgY29uc3QgY2FsY3VsYXRlZEZvbnRTaXplID0gUmVhY3QudXNlTWVtbygoKSA9PiAoXG4gICAgcGFyc2VGbG9hdChUZXh0QXJlYVN0eWxlLmZvbnRTaXplKSAqIGZvbnRTaXplIC8gMTAwICsgJ3B4J1xuICApLCBbZm9udFNpemVdKVxuXG4gIGNvbnN0IHRleHRBcmVhU3R5bGUgPSB7XG4gICAgLi4uY29udGVudFN0eWxlLFxuICAgIC4uLlRleHRBcmVhU3R5bGUsXG4gICAgZm9udFNpemU6IGNhbGN1bGF0ZWRGb250U2l6ZSxcbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGluaXRpYWxWZXJzZU9iamVjdHMgfSlcbiAgICBzZXRJbml0aWFsVmVyc2VUZXh0KHZlcnNlVGV4dClcbiAgfSwgW3sgcmVmZXJlbmNlLCBpbml0aWFsVmVyc2VPYmplY3RzIH1dKVxuXG4gIGZ1bmN0aW9uIG9uVGV4dENoYW5nZShldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdWZXJzZVRleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZVxuICAgIGNvbnN0IGNoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICBjb25zb2xlLmxvZyhgU1Aub25UZXh0Q2hhbmdlYCwgeyBjaGFuZ2VkLCBuZXdUZXh0OiBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQgfSlcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0KVxuICAgIHNldFN0YXRlKHsgbmV3VGV4dDogbmV3VmVyc2VUZXh0IH0pXG4gIH1cblxuICBmdW5jdGlvbiBvbkJsdXIoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgc2V0RWRpdGluZyhmYWxzZSwgbmV3VGV4dClcbiAgfVxuXG4gIGNvbnN0IGNoZWNraW5nU3RhdGUgPSBhbGlnbmVkID8gJ3ZhbGlkJyA6ICdpbnZhbGlkJ1xuICBjb25zdCB0aXRsZVRleHQgPSBjaGVja2luZ1N0YXRlID09PSAndmFsaWQnID8gJ0FsaWdubWVudCBpcyBWYWxpZCcgOiAnQWxpZ25tZW50IGlzIEludmFsaWQnXG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgcGFkZGluZ0JvdHRvbTogJzAuNWVtJyB9fT5cbiAgICAgIHtyZXNvdXJjZU1lc3NhZ2UgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1lc3NhZ2V9IDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOlxuICAgICAgICA8Q29udGVudD5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17cmVmU3R5bGV9PiB7Y2hhcHRlcn06e3ZlcnNlfSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17Y29udGVudFN0eWxlfSBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRFZGl0aW5nICYmIHNldEVkaXRpbmcodHJ1ZSlcbiAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlZGl0aW5nID9cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtuZXdWZXJzZVRleHQgfHwgaW5pdGlhbFZlcnNlVGV4dH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt0ZXh0QXJlYVN0eWxlfVxuICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgIDxWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICB2ZXJzZUtleT17YCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWB9XG4gICAgICAgICAgICAgICAgdmVyc2VPYmplY3RzPXtjdXJyZW50VmVyc2VPYmplY3RzIHx8IGluaXRpYWxWZXJzZU9iamVjdHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJ9XG4gICAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Db250ZW50PlxuICAgICAgfVxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cblNjcmlwdHVyZVBhbmUuZGVmYXVsdFByb3BzID0geyB2ZXJzZU9iamVjdHM6IFtdIH1cblxuZXhwb3J0IGRlZmF1bHQgU2NyaXB0dXJlUGFuZVxuIl19
|
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.9-beta.1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
15
|
"test": "jest",
|
|
16
|
-
"start": "styleguidist server",
|
|
16
|
+
"start": "styleguidist server NODE_OPTIONS=--max_old_space_size=4096",
|
|
17
17
|
"build": "styleguidist build",
|
|
18
18
|
"prepublishOnly": "rm -fr ./dist && babel ./src --out-dir ./dist -s inline --extensions \".ts,.tsx,.js\"",
|
|
19
19
|
"pack-next": "yarn version --prerelease && yarn && yarn run prepublishOnly && yarn pack"
|
|
@@ -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": "
|
|
84
|
+
"translation-helps-rcl": "file:.yalc/translation-helps-rcl",
|
|
85
85
|
"ts-jest": "^29.0.5",
|
|
86
86
|
"use-deep-compare-effect": "1.8.1",
|
|
87
87
|
"usfm-js": "3.4.2",
|