@pie-lib/editable-html-tip-tap 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +57 -30
- package/lib/plugins/index.js +3 -3
- package/package.json +1 -1
- package/src/index.jsx +67 -36
- package/src/plugins/index.jsx +1 -1
package/lib/index.js
CHANGED
|
@@ -866,7 +866,7 @@ function MenuBar(_ref3) {
|
|
|
866
866
|
return editor.chain().focus().toggleBold().run();
|
|
867
867
|
},
|
|
868
868
|
hidden: function hidden(state) {
|
|
869
|
-
return state.isTable;
|
|
869
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('bold')) || state.isTable;
|
|
870
870
|
},
|
|
871
871
|
isActive: function isActive(state) {
|
|
872
872
|
return state.isBold;
|
|
@@ -880,7 +880,7 @@ function MenuBar(_ref3) {
|
|
|
880
880
|
return editor.chain().focus().toggleItalic().run();
|
|
881
881
|
},
|
|
882
882
|
hidden: function hidden(state) {
|
|
883
|
-
return state.isTable;
|
|
883
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('italic')) || state.isTable;
|
|
884
884
|
},
|
|
885
885
|
isActive: function isActive(state) {
|
|
886
886
|
return state.isItalic;
|
|
@@ -894,7 +894,7 @@ function MenuBar(_ref3) {
|
|
|
894
894
|
return editor.chain().focus().toggleStrike().run();
|
|
895
895
|
},
|
|
896
896
|
hidden: function hidden(state) {
|
|
897
|
-
return state.isTable;
|
|
897
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('strikethrough')) || state.isTable;
|
|
898
898
|
},
|
|
899
899
|
isActive: function isActive(state) {
|
|
900
900
|
return state.isStrike;
|
|
@@ -908,7 +908,7 @@ function MenuBar(_ref3) {
|
|
|
908
908
|
return editor.chain().focus().toggleCode().run();
|
|
909
909
|
},
|
|
910
910
|
hidden: function hidden(state) {
|
|
911
|
-
return state.isTable;
|
|
911
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('code')) || state.isTable;
|
|
912
912
|
},
|
|
913
913
|
isActive: function isActive(state) {
|
|
914
914
|
return state.isCode;
|
|
@@ -922,7 +922,7 @@ function MenuBar(_ref3) {
|
|
|
922
922
|
return editor.chain().focus().toggleUnderline().run();
|
|
923
923
|
},
|
|
924
924
|
hidden: function hidden(state) {
|
|
925
|
-
return state.isTable;
|
|
925
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('underline')) || state.isTable;
|
|
926
926
|
},
|
|
927
927
|
isActive: function isActive(state) {
|
|
928
928
|
return state.isUnderline;
|
|
@@ -933,7 +933,7 @@ function MenuBar(_ref3) {
|
|
|
933
933
|
return editor.chain().focus().toggleSubscript().run();
|
|
934
934
|
},
|
|
935
935
|
hidden: function hidden(state) {
|
|
936
|
-
return state.isTable;
|
|
936
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('subscript')) || state.isTable;
|
|
937
937
|
},
|
|
938
938
|
isActive: function isActive(state) {
|
|
939
939
|
return state.isSubScript;
|
|
@@ -944,20 +944,23 @@ function MenuBar(_ref3) {
|
|
|
944
944
|
return editor.chain().focus().toggleSuperscript().run();
|
|
945
945
|
},
|
|
946
946
|
hidden: function hidden(state) {
|
|
947
|
-
return state.isTable;
|
|
947
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('superscript')) || state.isTable;
|
|
948
948
|
},
|
|
949
949
|
isActive: function isActive(state) {
|
|
950
950
|
return state.isSuperScript;
|
|
951
951
|
}
|
|
952
952
|
}, {
|
|
953
953
|
icon: /*#__PURE__*/_react["default"].createElement(_Image["default"], null),
|
|
954
|
+
hidden: function hidden(state) {
|
|
955
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('image')) || state.isTable;
|
|
956
|
+
},
|
|
954
957
|
onClick: function onClick(editor) {
|
|
955
958
|
return editor.chain().focus().setImageUploadNode().run();
|
|
956
959
|
}
|
|
957
960
|
}, {
|
|
958
961
|
icon: /*#__PURE__*/_react["default"].createElement(_Theaters["default"], null),
|
|
959
962
|
hidden: function hidden(state) {
|
|
960
|
-
return state.isTable;
|
|
963
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('video')) || state.isTable;
|
|
961
964
|
},
|
|
962
965
|
onClick: function onClick(editor) {
|
|
963
966
|
return editor.chain().focus().insertMedia({
|
|
@@ -967,7 +970,7 @@ function MenuBar(_ref3) {
|
|
|
967
970
|
}, {
|
|
968
971
|
icon: /*#__PURE__*/_react["default"].createElement(_VolumeUp["default"], null),
|
|
969
972
|
hidden: function hidden(state) {
|
|
970
|
-
return state.isTable;
|
|
973
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('audio')) || state.isTable;
|
|
971
974
|
},
|
|
972
975
|
onClick: function onClick(editor) {
|
|
973
976
|
return editor.chain().focus().insertMedia({
|
|
@@ -977,7 +980,7 @@ function MenuBar(_ref3) {
|
|
|
977
980
|
}, {
|
|
978
981
|
icon: /*#__PURE__*/_react["default"].createElement(_icons3["default"], null),
|
|
979
982
|
hidden: function hidden(state) {
|
|
980
|
-
return state.isTable;
|
|
983
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('css')) || state.isTable;
|
|
981
984
|
},
|
|
982
985
|
onClick: function onClick(editor) {
|
|
983
986
|
return editor.commands.openCSSClassDialog();
|
|
@@ -985,7 +988,7 @@ function MenuBar(_ref3) {
|
|
|
985
988
|
}, {
|
|
986
989
|
icon: /*#__PURE__*/_react["default"].createElement(HeadingIcon, null),
|
|
987
990
|
hidden: function hidden(state) {
|
|
988
|
-
return state.isTable;
|
|
991
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('h3')) || state.isTable;
|
|
989
992
|
},
|
|
990
993
|
onClick: function onClick(editor) {
|
|
991
994
|
return editor.chain().focus().toggleHeading({
|
|
@@ -997,6 +1000,9 @@ function MenuBar(_ref3) {
|
|
|
997
1000
|
}
|
|
998
1001
|
}, {
|
|
999
1002
|
icon: /*#__PURE__*/_react["default"].createElement(_Functions["default"], null),
|
|
1003
|
+
hidden: function hidden() {
|
|
1004
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('math'));
|
|
1005
|
+
},
|
|
1000
1006
|
onClick: function onClick(editor) {
|
|
1001
1007
|
return editor.chain().focus().insertMath('').run();
|
|
1002
1008
|
}
|
|
@@ -1005,7 +1011,7 @@ function MenuBar(_ref3) {
|
|
|
1005
1011
|
letter: "\xF1"
|
|
1006
1012
|
}),
|
|
1007
1013
|
hidden: function hidden(state) {
|
|
1008
|
-
return state.isTable;
|
|
1014
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('languageCharacters')) || state.isTable;
|
|
1009
1015
|
},
|
|
1010
1016
|
onClick: function onClick() {
|
|
1011
1017
|
return setShowPicker(_utils.spanishConfig);
|
|
@@ -1015,7 +1021,9 @@ function MenuBar(_ref3) {
|
|
|
1015
1021
|
letter: "\u20AC"
|
|
1016
1022
|
}),
|
|
1017
1023
|
hidden: function hidden(state) {
|
|
1018
|
-
return
|
|
1024
|
+
return (activePlugins === null || activePlugins === void 0 ? void 0 : activePlugins.filter(function (p) {
|
|
1025
|
+
return p === 'languageCharacters';
|
|
1026
|
+
}).length) !== 2 || state.isTable;
|
|
1019
1027
|
},
|
|
1020
1028
|
onClick: function onClick() {
|
|
1021
1029
|
return setShowPicker(_utils.specialConfig);
|
|
@@ -1025,13 +1033,13 @@ function MenuBar(_ref3) {
|
|
|
1025
1033
|
editor: editor
|
|
1026
1034
|
}),
|
|
1027
1035
|
hidden: function hidden(state) {
|
|
1028
|
-
return state.isTable;
|
|
1036
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('text-align')) || state.isTable;
|
|
1029
1037
|
},
|
|
1030
1038
|
onClick: function onClick() {}
|
|
1031
1039
|
}, {
|
|
1032
1040
|
icon: /*#__PURE__*/_react["default"].createElement(_FormatListBulleted["default"], null),
|
|
1033
1041
|
hidden: function hidden(state) {
|
|
1034
|
-
return state.isTable;
|
|
1042
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('bulleted-list')) || state.isTable;
|
|
1035
1043
|
},
|
|
1036
1044
|
onClick: function onClick(editor) {
|
|
1037
1045
|
return editor.chain().focus().toggleBulletList().run();
|
|
@@ -1042,7 +1050,7 @@ function MenuBar(_ref3) {
|
|
|
1042
1050
|
}, {
|
|
1043
1051
|
icon: /*#__PURE__*/_react["default"].createElement(_FormatListNumbered["default"], null),
|
|
1044
1052
|
hidden: function hidden(state) {
|
|
1045
|
-
return state.isTable;
|
|
1053
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('numbered-list')) || state.isTable;
|
|
1046
1054
|
},
|
|
1047
1055
|
onClick: function onClick(editor) {
|
|
1048
1056
|
return editor.chain().focus().toggleOrderedList().run();
|
|
@@ -1053,7 +1061,7 @@ function MenuBar(_ref3) {
|
|
|
1053
1061
|
}, {
|
|
1054
1062
|
icon: /*#__PURE__*/_react["default"].createElement(_Undo["default"], null),
|
|
1055
1063
|
hidden: function hidden(state) {
|
|
1056
|
-
return state.isTable;
|
|
1064
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('undo')) || state.isTable;
|
|
1057
1065
|
},
|
|
1058
1066
|
onClick: function onClick(editor) {
|
|
1059
1067
|
return editor.chain().focus().undo().run();
|
|
@@ -1064,7 +1072,7 @@ function MenuBar(_ref3) {
|
|
|
1064
1072
|
}, {
|
|
1065
1073
|
icon: /*#__PURE__*/_react["default"].createElement(_Redo["default"], null),
|
|
1066
1074
|
hidden: function hidden(state) {
|
|
1067
|
-
return state.isTable;
|
|
1075
|
+
return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('redo')) || state.isTable;
|
|
1068
1076
|
},
|
|
1069
1077
|
onClick: function onClick(editor) {
|
|
1070
1078
|
return editor.chain().focus().redo().run();
|
|
@@ -1101,7 +1109,7 @@ function MenuBar(_ref3) {
|
|
|
1101
1109
|
},
|
|
1102
1110
|
className: (0, _classnames["default"])(classes.button, (0, _defineProperty2["default"])({}, classes.active, active))
|
|
1103
1111
|
}, btn.icon);
|
|
1104
|
-
})), /*#__PURE__*/_react["default"].createElement("button", {
|
|
1112
|
+
})), (activePlugins === null || activePlugins === void 0 ? void 0 : activePlugins.includes('responseArea')) && /*#__PURE__*/_react["default"].createElement("button", {
|
|
1105
1113
|
onClick: function onClick() {
|
|
1106
1114
|
editor.chain().focus().insertResponseArea(responseAreaProps.type).run();
|
|
1107
1115
|
},
|
|
@@ -1246,7 +1254,26 @@ var EditableHtml = function EditableHtml(props) {
|
|
|
1246
1254
|
|
|
1247
1255
|
var toolbarOptsToUse = _objectSpread(_objectSpread({}, defaultToolbarOpts), toolbarOpts);
|
|
1248
1256
|
|
|
1249
|
-
var activePluginsToUse =
|
|
1257
|
+
var activePluginsToUse = (0, _react.useMemo)(function () {
|
|
1258
|
+
var _ref6 = props.pluginProps || {},
|
|
1259
|
+
customPlugins = _ref6.customPlugins;
|
|
1260
|
+
|
|
1261
|
+
customPlugins = customPlugins || [];
|
|
1262
|
+
return (0, _index.buildPlugins)(props.activePlugins, customPlugins, {
|
|
1263
|
+
math: {},
|
|
1264
|
+
textAlign: {},
|
|
1265
|
+
html: {},
|
|
1266
|
+
extraCSSRules: props.extraCSSRules || {},
|
|
1267
|
+
image: {},
|
|
1268
|
+
toolbar: {},
|
|
1269
|
+
table: {},
|
|
1270
|
+
responseArea: {},
|
|
1271
|
+
languageCharacters: props.languageCharactersProps,
|
|
1272
|
+
keyPadCharacterRef: {},
|
|
1273
|
+
setKeypadInteraction: {},
|
|
1274
|
+
media: {}
|
|
1275
|
+
});
|
|
1276
|
+
}, [props]);
|
|
1250
1277
|
var extensions = [_extensionTextStyle.TextStyleKit, _starterKit["default"], ExtendedTable, _extensionTableRow.TableRow, _extensionTableHeader.TableHeader, _extensionTableCell.TableCell, _responseArea.ResponseAreaExtension, _responseArea.ExplicitConstructedResponseNode.configure(props.responseAreaProps), _responseArea.DragInTheBlankNode.configure(props.responseAreaProps), _responseArea.InlineDropdownNode.configure(props.responseAreaProps), _math.MathNode.configure({
|
|
1251
1278
|
toolbarOpts: toolbarOptsToUse
|
|
1252
1279
|
}), _extensionSubscript["default"], _extensionSuperscript["default"], _extensionTextAlign["default"].configure({
|
|
@@ -1328,15 +1355,15 @@ var EditableHtml = function EditableHtml(props) {
|
|
|
1328
1355
|
extensions: extensions,
|
|
1329
1356
|
immediatelyRender: false,
|
|
1330
1357
|
content: props.markup,
|
|
1331
|
-
onUpdate: function onUpdate(
|
|
1358
|
+
onUpdate: function onUpdate(_ref7) {
|
|
1332
1359
|
var _props$onChange;
|
|
1333
1360
|
|
|
1334
|
-
var editor =
|
|
1335
|
-
transaction =
|
|
1361
|
+
var editor = _ref7.editor,
|
|
1362
|
+
transaction = _ref7.transaction;
|
|
1336
1363
|
return transaction.isDone && ((_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, editor.getHTML()));
|
|
1337
1364
|
},
|
|
1338
|
-
onBlur: function onBlur(
|
|
1339
|
-
var editor =
|
|
1365
|
+
onBlur: function onBlur(_ref8) {
|
|
1366
|
+
var editor = _ref8.editor;
|
|
1340
1367
|
|
|
1341
1368
|
if (toolbarOptsToUse.doneOn === 'blur') {
|
|
1342
1369
|
var _props$onChange2;
|
|
@@ -1380,10 +1407,10 @@ var EditableHtml = function EditableHtml(props) {
|
|
|
1380
1407
|
'--red-light': '#ffebe5',
|
|
1381
1408
|
'--shadow': "0px 12px 33px 0px rgba(0, 0, 0, .06),\n 0px 3.618px 9.949px 0px rgba(0, 0, 0, .04)"
|
|
1382
1409
|
};
|
|
1383
|
-
Object.entries(cssVariables).forEach(function (
|
|
1384
|
-
var
|
|
1385
|
-
key =
|
|
1386
|
-
value =
|
|
1410
|
+
Object.entries(cssVariables).forEach(function (_ref9) {
|
|
1411
|
+
var _ref10 = (0, _slicedToArray2["default"])(_ref9, 2),
|
|
1412
|
+
key = _ref10[0],
|
|
1413
|
+
value = _ref10[1];
|
|
1387
1414
|
|
|
1388
1415
|
document.documentElement.style.setProperty(key, value);
|
|
1389
1416
|
});
|
|
@@ -1467,4 +1494,4 @@ var StyledEditor = (0, _styles.withStyles)({
|
|
|
1467
1494
|
})(EditableHtml);
|
|
1468
1495
|
var _default = StyledEditor;
|
|
1469
1496
|
exports["default"] = _default;
|
|
1470
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qc3giXSwibmFtZXMiOlsiQ2hhcmFjdGVySWNvbiIsImxldHRlciIsImZvbnRTaXplIiwibGluZUhlaWdodCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsIkNoYXJhY3RlclBpY2tlciIsImVkaXRvciIsIm9wdHMiLCJvbkNsb3NlIiwiY2hhcmFjdGVycyIsImxlbmd0aCIsImNvbnRhaW5lclJlZiIsInRvcCIsImxlZnQiLCJwb3NpdGlvbiIsInNldFBvc2l0aW9uIiwicG9wb3ZlciIsInNldFBvcG92ZXIiLCJjb25maWdUb1VzZSIsImxhbmd1YWdlIiwic3BhbmlzaENvbmZpZyIsInNwZWNpYWxDb25maWciLCJsYXlvdXRGb3JDaGFyYWN0ZXJzIiwicmVkdWNlIiwib2JqIiwiYXJyIiwiY29sdW1ucyIsInJvd3MiLCJjbG9zZVBvcE92ZXIiLCJib2R5UmVjdCIsImRvY3VtZW50IiwiYm9keSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImZyb20iLCJzdGF0ZSIsInNlbGVjdGlvbiIsInN0YXJ0IiwidmlldyIsImNvb3Jkc0F0UG9zIiwiTWF0aCIsImFicyIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImUiLCJjdXJyZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJkb20iLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlclBvcE92ZXIiLCJldmVudCIsImVsIiwiYW5jaG9yRWwiLCJjdXJyZW50VGFyZ2V0IiwiaGFuZGxlQ2hhbmdlIiwidmFsIiwiY2hhaW4iLCJmb2N1cyIsImluc2VydENvbnRlbnQiLCJydW4iLCJSZWFjdERPTSIsImNyZWF0ZVBvcnRhbCIsIm1heFdpZHRoIiwia2V5UGFkQ2hhcmFjdGVyUmVmIiwic2V0S2V5cGFkSW50ZXJhY3Rpb24iLCJuIiwibWFwIiwiayIsIm5hbWUiLCJ3cml0ZSIsImxhYmVsIiwiY2F0ZWdvcnkiLCJleHRyYUNsYXNzIiwiZXh0cmFQcm9wcyIsInN0eWxlIiwiYm9yZGVyIiwiaGFzUHJldmlldyIsImFjdGlvbnMiLCJvbk1vdXNlRW50ZXIiLCJldiIsIm9uTW91c2VMZWF2ZSIsImRlc2NyaXB0aW9uIiwidW5pY29kZSIsIlN1cGVyc2NyaXB0SWNvbiIsIlN1YnNjcmlwdEljb24iLCJIZWFkaW5nSWNvbiIsIndpZHRoIiwiaGVpZ2h0IiwiRXh0ZW5kZWRUYWJsZSIsIlRhYmxlIiwiZXh0ZW5kIiwiYWRkQXR0cmlidXRlcyIsInJlbmRlckhUTUwiLCJwcm9wcyIsIm9yaWdpbmFsVGFibGUiLCJwYXJlbnQiLCJIVE1MQXR0cmlidXRlcyIsInByZXZpb3VzU3R5bGUiLCJtYXRjaCIsInN0eWxlcyIsInRoZW1lIiwicm9vdCIsInBhZGRpbmciLCJib3JkZXJSYWRpdXMiLCJjdXJzb3IiLCJ3b3JkQnJlYWsiLCJvdmVyZmxvdyIsIm1heEhlaWdodCIsIm1hcmdpblRvcCIsIm1hcmdpbiIsIm1hcmdpbkJvdHRvbSIsInRleHRXcmFwIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJiYWNrZ3JvdW5kIiwiZm9udEZhbWlseSIsImJvcmRlckxlZnQiLCJwYWRkaW5nTGVmdCIsImJvcmRlclRvcCIsInRhYmxlTGF5b3V0IiwiYm9yZGVyQ29sbGFwc2UiLCJ0ZXh0IiwidGV4dEFsaWduIiwiY2hpbGRyZW4iLCJlZGl0b3JIb2xkZXIiLCJyaWdodCIsImJvdHRvbSIsImNvbnRlbnQiLCJ0cmFuc2l0aW9uIiwicG9pbnRlckV2ZW50cyIsInRyYW5zZm9ybSIsInByaW1hcnkiLCJwYWxldHRlIiwiY29tbW9uIiwiYmxhY2siLCJkaXNhYmxlZFVuZGVybGluZSIsImRpc3BsYXkiLCJkaXNhYmxlZFNjcm9sbGJhciIsInNjcm9sbGJhcldpZHRoIiwicmVhZE9ubHkiLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJlZGl0b3JJbkZvY3VzIiwiZXJyb3IiLCJtYWluIiwibm9Cb3JkZXIiLCJub1BhZGRpbmciLCJ0b29sYmFyT25Ub3AiLCJkZWZhdWx0UmVzcG9uc2VBcmVhUHJvcHMiLCJvcHRpb25zIiwicmVzcEFyZWFUb29sYmFyIiwib25IYW5kbGVBcmVhQ2hhbmdlIiwidmFsdWVUb1NpemUiLCJ2IiwiY2FsY1JlZ2V4IiwiZW5kc1dpdGgiLCJ1bmRlZmluZWQiLCJ2YWx1ZSIsInBhcnNlSW50IiwiaXNOYU4iLCJUaXB0YXBDb250YWluZXIiLCJlZGl0b3JTdGF0ZSIsImNsYXNzZXMiLCJkaXNhYmxlVW5kZXJsaW5lIiwiZGlzYWJsZVNjcm9sbGJhciIsImFjdGl2ZVBsdWdpbnMiLCJ0b29sYmFyT3B0cyIsInJlc3BvbnNlQXJlYVByb3BzIiwiYXV0b0ZvY3VzIiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJob2xkZXJOYW1lcyIsImlzRm9jdXNlZCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImNvbW1hbmRzIiwic2l6ZVN0eWxlIiwiY2xhc3NOYW1lIiwib25DaGFuZ2UiLCJFZGl0b3JDb250YWluZXIiLCJNZW51QmFyIiwidG9vbE9wdHMiLCJzaG93UGlja2VyIiwic2V0U2hvd1BpY2tlciIsInNlbGVjdG9yIiwiY3R4IiwiY3VycmVudE5vZGUiLCJOb2RlU2VsZWN0aW9uIiwibm9kZSIsImhpZGVEZWZhdWx0VG9vbGJhciIsImlzQWN0aXZlIiwiaXNCb2xkIiwiY2FuQm9sZCIsImNhbiIsInRvZ2dsZUJvbGQiLCJpc1RhYmxlIiwidGFibGVIYXNCb3JkZXIiLCJnZXRBdHRyaWJ1dGVzIiwiY2FuVGFibGUiLCJpbnNlcnRUYWJsZSIsImlzSXRhbGljIiwiY2FuSXRhbGljIiwidG9nZ2xlSXRhbGljIiwiaXNTdHJpa2UiLCJjYW5TdHJpa2UiLCJ0b2dnbGVTdHJpa2UiLCJpc0NvZGUiLCJjYW5Db2RlIiwidG9nZ2xlQ29kZSIsImNhbkNsZWFyTWFya3MiLCJ1bnNldEFsbE1hcmtzIiwiaXNVbmRlcmxpbmUiLCJpc1N1YlNjcmlwdCIsImlzU3VwZXJTY3JpcHQiLCJpc1BhcmFncmFwaCIsImlzSGVhZGluZzEiLCJsZXZlbCIsImlzSGVhZGluZzIiLCJpc0hlYWRpbmczIiwiaXNIZWFkaW5nNCIsImlzSGVhZGluZzUiLCJpc0hlYWRpbmc2IiwiaXNCdWxsZXRMaXN0IiwiaXNPcmRlcmVkTGlzdCIsImlzQ29kZUJsb2NrIiwiaXNCbG9ja3F1b3RlIiwiY2FuVW5kbyIsInVuZG8iLCJjYW5SZWRvIiwicmVkbyIsImhhc0RvbmVCdXR0b24iLCJhdXRvV2lkdGgiLCJuYW1lcyIsInRvb2xiYXIiLCJQSUVfVE9PTEJBUl9fQ0xBU1MiLCJ0b29sYmFyV2l0aE5vRG9uZSIsInRvb2xiYXJUb3AiLCJ0b29sYmFyUmlnaHQiLCJhbGlnbm1lbnQiLCJmb2N1c2VkIiwiYWx3YXlzVmlzaWJsZSIsIl90b29sYmFyT3BlbmVkIiwiZnVsbFdpZHRoIiwiaGlkZGVuIiwiaXNIaWRkZW4iLCJjdXN0b21TdHlsZXMiLCJoYW5kbGVNb3VzZURvd24iLCJwcmV2ZW50RGVmYXVsdCIsInRvb2xiYXJCdXR0b25zIiwiaWNvbiIsIm9uQ2xpY2siLCJjb2xzIiwid2l0aEhlYWRlclJvdyIsImluY2x1ZGVzIiwiaXNEaXNhYmxlZCIsImFkZFJvd0FmdGVyIiwiZGVsZXRlUm93IiwiYWRkQ29sdW1uQWZ0ZXIiLCJkZWxldGVDb2x1bW4iLCJkZWxldGVUYWJsZSIsInRhYmxlQXR0cnMiLCJ1cGRhdGUiLCJ1cGRhdGVBdHRyaWJ1dGVzIiwidG9nZ2xlVW5kZXJsaW5lIiwidG9nZ2xlU3Vic2NyaXB0IiwidG9nZ2xlU3VwZXJzY3JpcHQiLCJzZXRJbWFnZVVwbG9hZE5vZGUiLCJpbnNlcnRNZWRpYSIsInRhZyIsIm9wZW5DU1NDbGFzc0RpYWxvZyIsInRvZ2dsZUhlYWRpbmciLCJpbnNlcnRNYXRoIiwidG9nZ2xlQnVsbGV0TGlzdCIsInRvZ2dsZU9yZGVyZWRMaXN0IiwiZGVmYXVsdFRvb2xiYXIiLCJidXR0b25zQ29udGFpbmVyIiwiZmlsdGVyIiwiYnRuIiwiaW5kZXgiLCJkaXNhYmxlZCIsImFjdGl2ZSIsImJ1dHRvbiIsImluc2VydFJlc3BvbnNlQXJlYSIsInR5cGUiLCJnZXRIVE1MIiwiYmx1ciIsImNoIiwiY29uc29sZSIsImxvZyIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsIm91dGxpbmUiLCJncmV5Iiwib3BhY2l0eSIsInpJbmRleCIsImJveFNoYWRvdyIsImJveFNpemluZyIsInZpc2liaWxpdHkiLCJpY29uUm9vdCIsInZlcnRpY2FsQWxpZ24iLCJzaGFyZWQiLCJTdHlsZWRNZW51QmFyIiwiZGVmYXVsdFRvb2xiYXJPcHRzIiwic2hvd0RvbmUiLCJkb25lT24iLCJFZGl0YWJsZUh0bWwiLCJwZW5kaW5nSW1hZ2VzIiwic2V0UGVuZGluZ0ltYWdlcyIsInNjaGVkdWxlZCIsInNldFNjaGVkdWxlZCIsInRvb2xiYXJPcHRzVG9Vc2UiLCJhY3RpdmVQbHVnaW5zVG9Vc2UiLCJERUZBVUxUX1BMVUdJTlMiLCJleHRlbnNpb25zIiwiVGV4dFN0eWxlS2l0IiwiU3RhcnRlcktpdCIsIlRhYmxlUm93IiwiVGFibGVIZWFkZXIiLCJUYWJsZUNlbGwiLCJSZXNwb25zZUFyZWFFeHRlbnNpb24iLCJFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2VOb2RlIiwiY29uZmlndXJlIiwiRHJhZ0luVGhlQmxhbmtOb2RlIiwiSW5saW5lRHJvcGRvd25Ob2RlIiwiTWF0aE5vZGUiLCJTdWJTY3JpcHQiLCJTdXBlclNjcmlwdCIsIlRleHRBbGlnbiIsInR5cGVzIiwiYWxpZ25tZW50cyIsIkltYWdlIiwiSW1hZ2VVcGxvYWROb2RlIiwiaW1hZ2VIYW5kbGluZyIsImRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnMiLCJvbkRvbmUiLCJvbkRlbGV0ZSIsImltYWdlU3VwcG9ydCIsImRvbmUiLCJzcmMiLCJhdHRycyIsIm5ld1BlbmRpbmdJbWFnZXMiLCJpbWciLCJrZXkiLCJuZXdTdGF0ZSIsImluc2VydEltYWdlUmVxdWVzdGVkIiwiYWRkZWRJbWFnZSIsImdldEhhbmRsZXIiLCJvbkZpbmlzaCIsInJlc3VsdCIsImNiIiwiY2FsbGJhY2siLCJoYW5kbGVyIiwiYWRkIiwibWF4SW1hZ2VXaWR0aCIsIm1heEltYWdlSGVpZ2h0IiwibGltaXQiLCJNZWRpYSIsInVwbG9hZFNvdW5kU3VwcG9ydCIsIkNTU01hcmsiLCJleHRyYUNTU1J1bGVzIiwiaW1tZWRpYXRlbHlSZW5kZXIiLCJtYXJrdXAiLCJvblVwZGF0ZSIsInRyYW5zYWN0aW9uIiwiaXNEb25lIiwib25CbHVyIiwic2V0Q29udGVudCIsImNzc1ZhcmlhYmxlcyIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwiZG9jdW1lbnRFbGVtZW50Iiwic2V0UHJvcGVydHkiLCJTdHlsZWRFZGl0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCO0FBQUEsTUFBR0MsTUFBSCxRQUFHQSxNQUFIO0FBQUEsc0JBQ3BCO0FBQ0UsSUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsUUFBUSxFQUFFLE1BREw7QUFFTEMsTUFBQUEsVUFBVSxFQUFFO0FBRlA7QUFEVCxLQU1HRixNQU5ILENBRG9CO0FBQUEsQ0FBdEI7O0FBV0FELGFBQWEsQ0FBQ0ksU0FBZCxHQUEwQjtBQUN4QkgsRUFBQUEsTUFBTSxFQUFFSSxzQkFB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LHNCQUFrQjtBQUNoQkEsTUFBQUEsT0FBTyxFQUFFLGlCQURPO0FBRWhCeFIsTUFBQUEsUUFBUSxFQUFFO0FBRk07QUFGZDtBQUR3QixDQUFYLEVBUWxCc1MsWUFSa0IsQ0FBckI7ZUFVZW9FLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5pbXBvcnQgeyBOb2RlU2VsZWN0aW9uIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xuaW1wb3J0IHsgVGV4dFN0eWxlS2l0IH0gZnJvbSAnQHRpcHRhcC9leHRlbnNpb24tdGV4dC1zdHlsZSc7XG5pbXBvcnQgeyBFZGl0b3JDb250ZW50LCB1c2VFZGl0b3IsIHVzZUVkaXRvclN0YXRlIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgU3RhcnRlcktpdCBmcm9tICdAdGlwdGFwL3N0YXJ0ZXIta2l0JztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAnQHRpcHRhcC9leHRlbnNpb24tdGFibGUnO1xuaW1wb3J0IHsgVGFibGVSb3cgfSBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi10YWJsZS1yb3cnO1xuaW1wb3J0IHsgVGFibGVDZWxsIH0gZnJvbSAnQHRpcHRhcC9leHRlbnNpb24tdGFibGUtY2VsbCc7XG5pbXBvcnQgeyBUYWJsZUhlYWRlciB9IGZyb20gJ0B0aXB0YXAvZXh0ZW5zaW9uLXRhYmxlLWhlYWRlcic7XG5pbXBvcnQgU3VwZXJTY3JpcHQgZnJvbSAnQHRpcHRhcC9leHRlbnNpb24tc3VwZXJzY3JpcHQnO1xuaW1wb3J0IFN1YlNjcmlwdCBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi1zdWJzY3JpcHQnO1xuaW1wb3J0IFRleHRBbGlnbiBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi10ZXh0LWFsaWduJztcbmltcG9ydCBJbWFnZSBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi1pbWFnZSc7XG5cbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHtcbiAgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlTm9kZSxcbiAgRHJhZ0luVGhlQmxhbmtOb2RlLFxuICBJbmxpbmVEcm9wZG93bk5vZGUsXG4gIFJlc3BvbnNlQXJlYUV4dGVuc2lvbixcbn0gZnJvbSAnLi9leHRlbnNpb25zL3Jlc3BvbnNlQXJlYSc7XG5pbXBvcnQgeyBNYXRoTm9kZSB9IGZyb20gJy4vZXh0ZW5zaW9ucy9tYXRoJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuaW1wb3J0IHsgcHJpbWFyeSB9IGZyb20gJy4vdGhlbWUnO1xuaW1wb3J0IHsgUElFX1RPT0xCQVJfX0NMQVNTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRG9uZUJ1dHRvbiB9IGZyb20gJy4vcGx1Z2lucy90b29sYmFyL2RvbmUtYnV0dG9uJztcbmltcG9ydCB7IERFRkFVTFRfUExVR0lOUyB9IGZyb20gJy4vcGx1Z2lucy9pbmRleCc7XG5pbXBvcnQgQm9sZCBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRm9ybWF0Qm9sZCc7XG5pbXBvcnQgSXRhbGljIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRJdGFsaWMnO1xuaW1wb3J0IFN0cmlrZXRocm91Z2ggZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdFN0cmlrZXRocm91Z2gnO1xuaW1wb3J0IENvZGUgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0NvZGUnO1xuaW1wb3J0IEdyaWRPbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvR3JpZE9uJztcbmltcG9ydCBCdWxsZXRlZExpc3RJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRMaXN0QnVsbGV0ZWQnO1xuaW1wb3J0IE51bWJlcmVkTGlzdEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdExpc3ROdW1iZXJlZCc7XG5pbXBvcnQgVW5kZXJsaW5lIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRVbmRlcmxpbmVkJztcbmltcG9ydCBGdW5jdGlvbnMgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Z1bmN0aW9ucyc7XG5pbXBvcnQgSW1hZ2VJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9JbWFnZSc7XG5pbXBvcnQgeyBUb29sYmFySWNvbiB9IGZyb20gJy4vcGx1Z2lucy9yZXNwQXJlYS9pY29ucyc7XG5pbXBvcnQgUmVkbyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvUmVkbyc7XG5pbXBvcnQgVW5kbyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvVW5kbyc7XG5pbXBvcnQgVGhlYXRlcnNJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9UaGVhdGVycyc7XG5pbXBvcnQgVm9sdW1lVXBJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Wb2x1bWVVcCc7XG5pbXBvcnQgeyBjaGFyYWN0ZXJJY29ucywgc3BhbmlzaENvbmZpZywgc3BlY2lhbENvbmZpZyB9IGZyb20gJy4vcGx1Z2lucy9jaGFyYWN0ZXJzL3V0aWxzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBNYXRoVG9vbGJhciwgUHVyZVRvb2xiYXIgfSBmcm9tICdAcGllLWxpYi9tYXRoLXRvb2xiYXInO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBDdXN0b21Qb3BwZXIgZnJvbSAnLi9wbHVnaW5zL2NoYXJhY3RlcnMvY3VzdG9tLXBvcHBlcic7XG5pbXBvcnQgVGV4dEFsaWduSWNvbiBmcm9tICcuL3BsdWdpbnMvdGV4dEFsaWduL2ljb25zJztcbmltcG9ydCBDU1NJY29uIGZyb20gJy4vcGx1Z2lucy9jc3MvaWNvbnMnO1xuXG5pbXBvcnQgeyBJbWFnZVVwbG9hZE5vZGUgfSBmcm9tICcuL2V4dGVuc2lvbnMvaW1hZ2UnO1xuaW1wb3J0IHsgTWVkaWEgfSBmcm9tICcuL2V4dGVuc2lvbnMvbWVkaWEnO1xuaW1wb3J0IHsgQ1NTTWFyayB9IGZyb20gJy4vZXh0ZW5zaW9ucy9jc3MnO1xuaW1wb3J0IHsgQWRkQ29sdW1uLCBBZGRSb3csIFJlbW92ZUNvbHVtbiwgUmVtb3ZlUm93LCBSZW1vdmVUYWJsZSB9IGZyb20gXCIuL3BsdWdpbnMvdGFibGUvaWNvbnNcIjtcbmltcG9ydCBCb3JkZXJBbGwgZnJvbSBcIkBtYXRlcmlhbC11aS9pY29ucy9Cb3JkZXJBbGxcIjtcblxuY29uc3QgQ2hhcmFjdGVySWNvbiA9ICh7IGxldHRlciB9KSA9PiAoXG4gIDxkaXZcbiAgICBzdHlsZT17e1xuICAgICAgZm9udFNpemU6ICcyNHB4JyxcbiAgICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICB9fVxuICA+XG4gICAge2xldHRlcn1cbiAgPC9kaXY+XG4pO1xuXG5DaGFyYWN0ZXJJY29uLnByb3BUeXBlcyA9IHtcbiAgbGV0dGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIENoYXJhY3RlclBpY2tlcih7IGVkaXRvciwgb3B0cywgb25DbG9zZSB9KSB7XG4gIGlmICghb3B0cz8uY2hhcmFjdGVycz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGUoeyB0b3A6IDAsIGxlZnQ6IDAgfSk7XG4gIGNvbnN0IFtwb3BvdmVyLCBzZXRQb3BvdmVyXSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIGxldCBjb25maWdUb1VzZTtcblxuICBzd2l0Y2ggKHRydWUpIHtcbiAgICBjYXNlIG9wdHMubGFuZ3VhZ2UgPT09ICdzcGFuaXNoJzpcbiAgICAgIGNvbmZpZ1RvVXNlID0gc3BhbmlzaENvbmZpZztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2Ugb3B0cy5sYW5ndWFnZSA9PT0gJ3NwZWNpYWwnOlxuICAgICAgY29uZmlnVG9Vc2UgPSBzcGVjaWFsQ29uZmlnO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGNvbmZpZ1RvVXNlID0gb3B0cztcbiAgfVxuXG4gIGNvbnN0IGxheW91dEZvckNoYXJhY3RlcnMgPSBjb25maWdUb1VzZS5jaGFyYWN0ZXJzLnJlZHVjZShcbiAgICAob2JqLCBhcnIpID0+IHtcbiAgICAgIGlmIChhcnIubGVuZ3RoID49IG9iai5jb2x1bW5zKSB7XG4gICAgICAgIG9iai5jb2x1bW5zID0gYXJyLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LFxuICAgIHsgcm93czogY29uZmlnVG9Vc2UuY2hhcmFjdGVycy5sZW5ndGgsIGNvbHVtbnM6IDAgfSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbG9zZVBvcE92ZXIoKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVkaXRvcikgcmV0dXJuO1xuXG4gICAgLy8gQ2FsY3VsYXRlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHNlbGVjdGlvblxuICAgIGNvbnN0IGJvZHlSZWN0ID0gZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB7IGZyb20gfSA9IGVkaXRvci5zdGF0ZS5zZWxlY3Rpb247XG4gICAgY29uc3Qgc3RhcnQgPSBlZGl0b3Iudmlldy5jb29yZHNBdFBvcyhmcm9tKTtcbiAgICBzZXRQb3NpdGlvbih7XG4gICAgICB0b3A6IHN0YXJ0LnRvcCArIE1hdGguYWJzKGJvZHlSZWN0LnRvcCkgKyA0MCwgLy8gc2hpZnQgYWJvdmVcbiAgICAgIGxlZnQ6IHN0YXJ0LmxlZnQsXG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZSkgPT4ge1xuICAgICAgaWYgKGNvbnRhaW5lclJlZi5jdXJyZW50ICYmICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhlLnRhcmdldCkgJiYgIWVkaXRvci52aWV3LmRvbS5jb250YWlucyhlLnRhcmdldCkpIHtcbiAgICAgICAgb25DbG9zZSgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpO1xuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpO1xuICB9LCBbZWRpdG9yXSk7XG5cbiAgY29uc3QgcmVuZGVyUG9wT3ZlciA9IChldmVudCwgZWwpID0+IHNldFBvcG92ZXIoeyBhbmNob3JFbDogZXZlbnQuY3VycmVudFRhcmdldCwgZWwgfSk7XG4gIGNvbnN0IGNsb3NlUG9wT3ZlciA9ICgpID0+IHNldFBvcG92ZXIobnVsbCk7XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKHZhbCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgZWRpdG9yXG4gICAgICAgIC5jaGFpbigpXG4gICAgICAgIC5mb2N1cygpXG4gICAgICAgIC5pbnNlcnRDb250ZW50KHZhbClcbiAgICAgICAgLnJ1bigpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIHtSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICBjbGFzc05hbWU9XCJpbnNlcnQtY2hhcmFjdGVyLWRpYWxvZ1wiXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgdG9wOiBgJHtwb3NpdGlvbi50b3B9cHhgLFxuICAgICAgICAgICAgbGVmdDogYCR7cG9zaXRpb24ubGVmdH1weGAsXG4gICAgICAgICAgICBtYXhXaWR0aDogJzUwMHB4JyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQdXJlVG9vbGJhclxuICAgICAgICAgICAgICBrZXlQYWRDaGFyYWN0ZXJSZWY9e29wdHMua2V5UGFkQ2hhcmFjdGVyUmVmfVxuICAgICAgICAgICAgICBzZXRLZXlwYWRJbnRlcmFjdGlvbj17b3B0cy5zZXRLZXlwYWRJbnRlcmFjdGlvbn1cbiAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgIG5vRGVjaW1hbFxuICAgICAgICAgICAgICBoaWRlSW5wdXRcbiAgICAgICAgICAgICAgbm9MYXRleEhhbmRsaW5nXG4gICAgICAgICAgICAgIGhpZGVEb25lQnV0dG9uQmFja2dyb3VuZFxuICAgICAgICAgICAgICBsYXlvdXRGb3JLZXlQYWQ9e2xheW91dEZvckNoYXJhY3RlcnN9XG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxLZXlzPXtjb25maWdUb1VzZS5jaGFyYWN0ZXJzLnJlZHVjZSgoYXJyLCBuKSA9PiB7XG4gICAgICAgICAgICAgICAgYXJyID0gW1xuICAgICAgICAgICAgICAgICAgLi4uYXJyLFxuICAgICAgICAgICAgICAgICAgLi4ubi5tYXAoKGspID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGdldChrLCAnbmFtZScpIHx8IGssXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlOiBnZXQoaywgJ3dyaXRlJykgfHwgayxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldChrLCAnbGFiZWwnKSB8fCBrLFxuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ2NoYXJhY3RlcicsXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQ2xhc3M6ICdjaGFyYWN0ZXInLFxuICAgICAgICAgICAgICAgICAgICBleHRyYVByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4uKGsuZXh0cmFQcm9wcyB8fCB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihrLmV4dHJhUHJvcHMgfHwge30pLnN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICMwMDAnLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLihjb25maWdUb1VzZS5oYXNQcmV2aWV3XG4gICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IHsgb25Nb3VzZUVudGVyOiAoZXYpID0+IHJlbmRlclBvcE92ZXIoZXYsIGspLCBvbk1vdXNlTGVhdmU6IGNsb3NlUG9wT3ZlciB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyO1xuICAgICAgICAgICAgICB9LCBbXSl9XG4gICAgICAgICAgICAgIGtleXBhZE1vZGU9XCJsYW5ndWFnZVwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgIG9uRG9uZT17b25DbG9zZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PixcbiAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICl9XG4gICAgICB7cG9wb3ZlciAmJlxuICAgICAgICBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPEN1c3RvbVBvcHBlciBvbkNsb3NlPXtjbG9zZVBvcE92ZXJ9IGFuY2hvckVsPXtwb3BvdmVyLmFuY2hvckVsfT5cbiAgICAgICAgICAgIDxkaXY+e3BvcG92ZXIuZWwubGFiZWx9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiAyMCwgbGluZUhlaWdodDogJzIwcHgnIH19Pntwb3BvdmVyLmVsLmRlc2NyaXB0aW9ufTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogMjAsIGxpbmVIZWlnaHQ6ICcyMHB4JyB9fT57cG9wb3Zlci5lbC51bmljb2RlfTwvZGl2PlxuICAgICAgICAgIDwvQ3VzdG9tUG9wcGVyPixcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG59XG5cbmNvbnN0IFN1cGVyc2NyaXB0SWNvbiA9ICgpID0+IChcbiAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBmaWxsPVwibm9uZVwiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTIyLDdoLTJ2MWgzdjFoLTRWN2MwLTAuNTUsMC40NS0xLDEtMWgyVjVoLTNWNGgzYzAuNTUsMCwxLDAuNDUsMSwxdjFDMjMsNi41NSwyMi41NSw3LDIyLDd6IE01Ljg4LDIwaDIuNjZsMy40LTUuNDJoMC4xMiBsMy40LDUuNDJoMi42NmwtNC42NS03LjI3TDE3LjgxLDZoLTIuNjhsLTMuMDcsNC45OWgtMC4xMkw4Ljg1LDZINi4xOWw0LjMyLDYuNzNMNS44OCwyMHpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBTdWJzY3JpcHRJY29uID0gKCkgPT4gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRweFwiIGZpbGw9XCJub25lXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNMjIsMThoLTJ2MWgzdjFoLTR2LTJjMC0wLjU1LDAuNDUtMSwxLTFoMnYtMWgtM3YtMWgzYzAuNTUsMCwxLDAuNDUsMSwxdjFDMjMsMTcuNTUsMjIuNTUsMTgsMjIsMTh6IE01Ljg4LDE4aDIuNjYgbDMuNC01LjQyaDAuMTJsMy40LDUuNDJoMi42NmwtNC42NS03LjI3TDE3LjgxLDRoLTIuNjhsLTMuMDcsNC45OWgtMC4xMkw4Ljg1LDRINi4xOWw0LjMyLDYuNzNMNS44OCwxOHpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBIZWFkaW5nSWNvbiA9ICgpID0+IChcbiAgPHN2Z1xuICAgIHdpZHRoPVwiMzBcIlxuICAgIGhlaWdodD1cIjI4XCJcbiAgICB2aWV3Qm94PVwiMCAwIDMwIDI4XCJcbiAgICBmaWxsPVwibm9uZVwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgc3R5bGU9e3sgd2lkdGg6ICcyMHB4JywgaGVpZ2h0OiAnMThweCcgfX1cbiAgPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTI3IDRWMjRIMjlDMjkuNSAyNCAzMCAyNC41IDMwIDI1VjI3QzMwIDI3LjU2MjUgMjkuNSAyOCAyOSAyOEgxOUMxOC40Mzc1IDI4IDE4IDI3LjU2MjUgMTggMjdWMjVDMTggMjQuNSAxOC40Mzc1IDI0IDE5IDI0SDIxVjE2SDlWMjRIMTFDMTEuNSAyNCAxMiAyNC41IDEyIDI1VjI3QzEyIDI3LjU2MjUgMTEuNSAyOCAxMSAyOEgxQzAuNDM3NSAyOCAwIDI3LjU2MjUgMCAyN1YyNUMwIDI0LjUgMC40Mzc1IDI0IDEgMjRIM1Y0SDFDMC40Mzc1IDQgMCAzLjU2MjUgMCAzVjFDMCAwLjUgMC40Mzc1IDAgMSAwSDExQzExLjUgMCAxMiAwLjUgMTIgMVYzQzEyIDMuNTYyNSAxMS41IDQgMTEgNEg5VjEySDIxVjRIMTlDMTguNDM3NSA0IDE4IDMuNTYyNSAxOCAzVjFDMTggMC41IDE4LjQzNzUgMCAxOSAwSDI5QzI5LjUgMCAzMCAwLjUgMzAgMVYzQzMwIDMuNTYyNSAyOS41IDQgMjkgNEgyN1pcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBFeHRlbmRlZFRhYmxlID0gVGFibGUuZXh0ZW5kKHtcbiAgYWRkQXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm9yZGVyOiB7IGRlZmF1bHQ6ICcxJyB9LFxuICAgIH07XG4gIH0sXG4gIHJlbmRlckhUTUwocHJvcHMpIHtcbiAgICBjb25zdCBvcmlnaW5hbFRhYmxlID0gdGhpcy5wYXJlbnQocHJvcHMpO1xuICAgIGNvbnN0IHsgYm9yZGVyIH0gPSBwcm9wcy5IVE1MQXR0cmlidXRlcztcblxuICAgIGNvbnN0IHByZXZpb3VzU3R5bGUgPSBgJHtvcmlnaW5hbFRhYmxlWzFdLnN0eWxlfSR7b3JpZ2luYWxUYWJsZVsxXS5zdHlsZS5tYXRjaCgvLio7ICovKSA/ICcnIDogJzsnfWA7XG5cbiAgICBvcmlnaW5hbFRhYmxlWzFdLnN0eWxlID0gYCR7cHJldmlvdXNTdHlsZX1cbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogdmFyKC0tcGllLXRleHQsIGJsYWNrKTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGllLWJhY2tncm91bmQsIHJnYmEoMjU1LCAyNTUsIDI1NSkpYDtcbiAgICBvcmlnaW5hbFRhYmxlWzFdLmJvcmRlciA9IGJvcmRlciA/IGJvcmRlciA6ICcxJztcblxuICAgIHJldHVybiBvcmlnaW5hbFRhYmxlO1xuICB9LFxufSk7XG5cbmNvbnN0IHN0eWxlcyA9ICh0aGVtZSkgPT4gKHtcbiAgcm9vdDoge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHBhZGRpbmc6ICcwcHgnLFxuICAgIGJvcmRlcjogJzFweCBzb2xpZCAjY2NjJyxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGN1cnNvcjogJ3RleHQnLFxuICAgICcmIFtkYXRhLXNsYXRlLWVkaXRvcj1cInRydWVcIl0nOiB7XG4gICAgICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgICBtYXhIZWlnaHQ6ICc1MDBweCcsXG4gICAgICAvLyBuZWVkZWQgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBwdXQgdGhlIGZvY3VzIGJlZm9yZSBhIHZvaWQgZWxlbWVudCB3aGVuIGl0IGlzIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGVkaXRvclxuICAgICAgcGFkZGluZzogJzVweCcsXG4gICAgfSxcblxuICAgICcmOmZpcnN0LWNoaWxkJzoge1xuICAgICAgbWFyZ2luVG9wOiAwLFxuICAgIH0sXG5cbiAgICAnJiB1bCwgJiBvbCc6IHtcbiAgICAgIHBhZGRpbmc6ICcwIDFyZW0nLFxuICAgICAgbWFyZ2luOiAnMS4yNXJlbSAxcmVtIDEuMjVyZW0gMC40cmVtJyxcbiAgICB9LFxuXG4gICAgJyYgdWwgbGkgcCwgJiBvbCBsaSBwJzoge1xuICAgICAgbWFyZ2luVG9wOiAnMC4yNWVtJyxcbiAgICAgIG1hcmdpbkJvdHRvbTogJzAuMjVlbScsXG4gICAgfSxcblxuICAgICcmIGgxLCAmIGgyLCAmIGgzLCAmIGg0LCAmIGg1LCAmIGg2Jzoge1xuICAgICAgbGluZUhlaWdodDogMS4xLFxuICAgICAgbWFyZ2luVG9wOiAnMi41cmVtJyxcbiAgICAgIHRleHRXcmFwOiAncHJldHR5JyxcbiAgICB9LFxuXG4gICAgJyYgaDEsICYgaDInOiB7XG4gICAgICBtYXJnaW5Ub3A6ICczLjVyZW0nLFxuICAgICAgbWFyZ2luQm90dG9tOiAnMS41cmVtJyxcbiAgICB9LFxuXG4gICAgJyYgaDEnOiB7XG4gICAgICBmb250U2l6ZTogJzEuNHJlbScsXG4gICAgfSxcblxuICAgICcmIGgyJzoge1xuICAgICAgZm9udFNpemU6ICcxLjJyZW0nLFxuICAgIH0sXG5cbiAgICAnJiBoMyc6IHtcbiAgICAgIGZvbnRTaXplOiAnMS4xcmVtJyxcbiAgICB9LFxuXG4gICAgJyYgaDQsICYgaDUsICYgaDYnOiB7XG4gICAgICBmb250U2l6ZTogJzFyZW0nLFxuICAgIH0sXG5cbiAgICAnJiBjb2RlJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tcHVycGxlLWxpZ2h0KScsXG4gICAgICBib3JkZXJSYWRpdXM6ICcwLjRyZW0nLFxuICAgICAgY29sb3I6ICd2YXIoLS1ibGFjayknLFxuICAgICAgZm9udFNpemU6ICcwLjg1cmVtJyxcbiAgICAgIHBhZGRpbmc6ICcwLjI1ZW0gMC4zZW0nLFxuICAgIH0sXG5cbiAgICAnJiBwcmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tYmxhY2spJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzAuNXJlbScsXG4gICAgICBjb2xvcjogJ3ZhcigtLXdoaXRlKScsXG4gICAgICBmb250RmFtaWx5OiBcIidKZXRCcmFpbnNNb25vJywgbW9ub3NwYWNlXCIsXG4gICAgICBtYXJnaW46ICcxLjVyZW0gMCcsXG4gICAgICBwYWRkaW5nOiAnMC43NXJlbSAxcmVtJyxcblxuICAgICAgJyYgY29kZSc6IHtcbiAgICAgICAgYmFja2dyb3VuZDogJ25vbmUnLFxuICAgICAgICBjb2xvcjogJ2luaGVyaXQnLFxuICAgICAgICBmb250U2l6ZTogJzAuOHJlbScsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICAnJiBibG9ja3F1b3RlJzoge1xuICAgICAgYm9yZGVyTGVmdDogJzNweCBzb2xpZCB2YXIoLS1ncmF5LTMpJyxcbiAgICAgIG1hcmdpbjogJzEuNXJlbSAwJyxcbiAgICAgIHBhZGRpbmdMZWZ0OiAnMXJlbScsXG4gICAgfSxcblxuICAgICcmIGhyJzoge1xuICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICBib3JkZXJUb3A6ICcxcHggc29saWQgdmFyKC0tZ3JheS0yKScsXG4gICAgICBtYXJnaW46ICcycmVtIDAnLFxuICAgIH0sXG5cbiAgICAnJiB0YWJsZSc6IHtcbiAgICAgIHRhYmxlTGF5b3V0OiAnZml4ZWQnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGJvcmRlckNvbGxhcHNlOiAnY29sbGFwc2UnLFxuICAgICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICAgIH0sXG4gICAgJyYgdGFibGU6bm90KFtib3JkZXI9XCIxXCJdKSB0cic6IHtcbiAgICAgIGJvcmRlclRvcDogJzFweCBzb2xpZCAjZGZlMmU1JyxcbiAgICB9LFxuICAgICcmIHRkLCB0aCc6IHtcbiAgICAgIHBhZGRpbmc6ICcuNmVtIDFlbScsXG4gICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIH0sXG4gICAgJyYgdGFibGU6bm90KFtib3JkZXI9XCIxXCJdKSB0ZCwgdGgnOiB7XG4gICAgICBib3JkZXI6ICcxcHggc29saWQgI2RmZTJlNScsXG4gICAgfSxcbiAgfSxcbiAgY2hpbGRyZW46IHtcbiAgICBwYWRkaW5nOiAnMTBweCAxNnB4JyxcbiAgfSxcbiAgZWRpdG9ySG9sZGVyOiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgcGFkZGluZzogJzBweCcsXG4gICAgLy8gb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgb3ZlcmZsb3c6ICd2aXNpYmxlJyxcbiAgICBjb2xvcjogY29sb3IudGV4dCgpLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICAgICcmOjpiZWZvcmUnOiB7XG4gICAgICBsZWZ0OiAnMCcsXG4gICAgICByaWdodDogJzAnLFxuICAgICAgYm90dG9tOiAnMCcsXG4gICAgICBoZWlnaHQ6ICcxcHgnLFxuICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB0cmFuc2l0aW9uOiAnYmFja2dyb3VuZC1jb2xvciAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIDBtcycsXG4gICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNDIpJyxcbiAgICB9LFxuICAgICcmOjphZnRlcic6IHtcbiAgICAgIGxlZnQ6ICcwJyxcbiAgICAgIHJpZ2h0OiAnMCcsXG4gICAgICBib3R0b206ICcwJyxcbiAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICBjb250ZW50OiAnXCJcIicsXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgwKScsXG4gICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDIwMG1zIGN1YmljLWJlemllcigwLjAsIDAuMCwgMC4yLCAxKSAwbXMsIGJhY2tncm91bmQtY29sb3IgMjAwbXMgbGluZWFyJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC40MiknLFxuICAgIH0sXG4gICAgJyY6Zm9jdXMnOiB7XG4gICAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgxKScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogcHJpbWFyeSxcbiAgICAgICAgaGVpZ2h0OiAnMnB4JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgICcmOjphZnRlcic6IHtcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDEpJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmNvbW1vbi5ibGFjayxcbiAgICAgICAgaGVpZ2h0OiAnMnB4JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgZGlzYWJsZWRVbmRlcmxpbmU6IHtcbiAgICAnJjo6YmVmb3JlJzoge1xuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gICAgJyY6OmFmdGVyJzoge1xuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gIH0sXG4gIGRpc2FibGVkU2Nyb2xsYmFyOiB7XG4gICAgJyY6Oi13ZWJraXQtc2Nyb2xsYmFyJzoge1xuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gICAgc2Nyb2xsYmFyV2lkdGg6ICdub25lJyxcbiAgICAnLW1zLW92ZXJmbG93LXN0eWxlJzogJ25vbmUnLFxuICB9LFxuICByZWFkT25seToge1xuICAgICcmOjpiZWZvcmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgYmFja2dyb3VuZFNpemU6ICc1cHggMXB4JyxcbiAgICAgIGJhY2tncm91bmRJbWFnZTogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKScsXG4gICAgICBiYWNrZ3JvdW5kUmVwZWF0OiAncmVwZWF0LXgnLFxuICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiAnbGVmdCB0b3AnLFxuICAgIH0sXG4gICAgJyY6OmFmdGVyJzoge1xuICAgICAgbGVmdDogJzAnLFxuICAgICAgcmlnaHQ6ICcwJyxcbiAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgIGNvbnRlbnQ6ICdcIlwiJyxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDApJyxcbiAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMCwgMC4wLCAwLjIsIDEpIDBtcywgYmFja2dyb3VuZC1jb2xvciAwbXMgbGluZWFyJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMCknLFxuICAgIH0sXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgwKScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5jb21tb24uYmxhY2ssXG4gICAgICAgIGhlaWdodDogJzJweCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGVkaXRvckluRm9jdXM6IHtcbiAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMSknLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBwcmltYXJ5LFxuICAgICAgaGVpZ2h0OiAnMnB4JyxcbiAgICB9LFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgJyY6OmFmdGVyJzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnksXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGVycm9yOiB7XG4gICAgYm9yZGVyOiBgMnB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5lcnJvci5tYWlufSAhaW1wb3J0YW50YCxcbiAgfSxcbiAgbm9Cb3JkZXI6IHtcbiAgICBib3JkZXI6ICdub25lJyxcbiAgfSxcbiAgbm9QYWRkaW5nOiB7XG4gICAgcGFkZGluZzogMCxcbiAgfSxcbiAgdG9vbGJhck9uVG9wOiB7XG4gICAgbWFyZ2luVG9wOiAnNDVweCcsXG4gIH0sXG59KTtcblxuY29uc3QgZGVmYXVsdFJlc3BvbnNlQXJlYVByb3BzID0ge1xuICBvcHRpb25zOiB7fSxcbiAgcmVzcEFyZWFUb29sYmFyOiAoKSA9PiB7fSxcbiAgb25IYW5kbGVBcmVhQ2hhbmdlOiAoKSA9PiB7fSxcbn07XG5cbmNvbnN0IHZhbHVlVG9TaXplID0gKHYpID0+IHtcbiAgaWYgKCF2KSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNhbGNSZWdleCA9IC9eY2FsY1xcKCguKilcXCkkLztcblxuICBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHYuZW5kc1dpdGgoJyUnKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdi5lbmRzV2l0aCgncHgnKSB8fFxuICAgICAgdi5lbmRzV2l0aCgndmgnKSB8fFxuICAgICAgdi5lbmRzV2l0aCgndncnKSB8fFxuICAgICAgdi5lbmRzV2l0aCgnY2gnKSB8fFxuICAgICAgdi5lbmRzV2l0aCgnZW0nKSB8fFxuICAgICAgdi5tYXRjaChjYWxjUmVnZXgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJzZUludCh2LCAxMCk7XG4gICAgICByZXR1cm4gaXNOYU4odmFsdWUpID8gdmFsdWUgOiBgJHt2YWx1ZX1weGA7XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gYCR7dn1weGA7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIFRpcHRhcENvbnRhaW5lcihwcm9wcykge1xuICBjb25zdCB7XG4gICAgZWRpdG9yLFxuICAgIGVkaXRvclN0YXRlLFxuICAgIGNsYXNzZXMsXG4gICAgY2hpbGRyZW4sXG4gICAgZGlzYWJsZVVuZGVybGluZSxcbiAgICBkaXNhYmxlU2Nyb2xsYmFyLFxuICAgIGFjdGl2ZVBsdWdpbnMsXG4gICAgdG9vbGJhck9wdHMsXG4gICAgcmVzcG9uc2VBcmVhUHJvcHMsXG4gICAgYXV0b0ZvY3VzLFxuICAgIG1pbldpZHRoLFxuICAgIHdpZHRoLFxuICAgIG1heFdpZHRoLFxuICAgIG1pbkhlaWdodCxcbiAgICBoZWlnaHQsXG4gICAgbWF4SGVpZ2h0LFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGhvbGRlck5hbWVzID0gY2xhc3NOYW1lcyhjbGFzc2VzLmVkaXRvckhvbGRlciwge1xuICAgIFtjbGFzc2VzLmVkaXRvckluRm9jdXNdOiBlZGl0b3JTdGF0ZS5pc0ZvY3VzZWQsXG4gICAgW2NsYXNzZXMucmVhZE9ubHldOiBlZGl0b3JTdGF0ZS5yZWFkT25seSxcbiAgICBbY2xhc3Nlcy5kaXNhYmxlZFVuZGVybGluZV06IGRpc2FibGVVbmRlcmxpbmUsXG4gICAgW2NsYXNzZXMuZGlzYWJsZWRTY3JvbGxiYXJdOiBkaXNhYmxlU2Nyb2xsYmFyLFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlZGl0b3IgJiYgYXV0b0ZvY3VzKSB7XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgZWRpdG9yLmNvbW1hbmRzLmZvY3VzKCdlbmQnKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2VkaXRvciwgYXV0b0ZvY3VzXSk7XG5cbiAgY29uc3Qgc2l6ZVN0eWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiB2YWx1ZVRvU2l6ZSh3aWR0aCksXG4gICAgICBtaW5XaWR0aDogdmFsdWVUb1NpemUobWluV2lkdGgpLFxuICAgICAgbWF4V2lkdGg6IHZhbHVlVG9TaXplKG1heFdpZHRoKSxcbiAgICAgIGhlaWdodDogdmFsdWVUb1NpemUoaGVpZ2h0KSxcbiAgICAgIG1pbkhlaWdodDogdmFsdWVUb1NpemUobWluSGVpZ2h0KSxcbiAgICAgIG1heEhlaWdodDogdmFsdWVUb1NpemUobWF4SGVpZ2h0KSxcbiAgICB9O1xuICB9LCBbbWluV2lkdGgsIHdpZHRoLCBtYXhXaWR0aCwgbWluSGVpZ2h0LCBoZWlnaHQsIG1heEhlaWdodF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICB7XG4gICAgICAgICAgW2NsYXNzZXMubm9Cb3JkZXJdOiB0b29sYmFyT3B0cyAmJiB0b29sYmFyT3B0cy5ub0JvcmRlcixcbiAgICAgICAgICBbY2xhc3Nlcy5lcnJvcl06IHRvb2xiYXJPcHRzICYmIHRvb2xiYXJPcHRzLmVycm9yLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc2VzLnJvb3QsXG4gICAgICAgIHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICl9XG4gICAgICBzdHlsZT17eyB3aWR0aDogc2l6ZVN0eWxlLndpZHRoLCBtaW5XaWR0aDogc2l6ZVN0eWxlLm1pbldpZHRoLCBtYXhXaWR0aDogc2l6ZVN0eWxlLm1heFdpZHRoIH19XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2hvbGRlck5hbWVzfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgW2NsYXNzZXMubm9QYWRkaW5nXTogdG9vbGJhck9wdHMgJiYgdG9vbGJhck9wdHMubm9QYWRkaW5nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsYXNzZXMuY2hpbGRyZW4sXG4gICAgICAgICAgKX1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qe2VkaXRvclN0YXRlLmlzRm9jdXNlZCAmJiA8TWVudUJhciBlZGl0b3I9e2VkaXRvcn0gLz59Ki99XG4gICAgICB7Lyo8VG9vbGJhciBlZGl0b3I9e2VkaXRvcn0gZWRpdG9yU3RhdGU9e2VkaXRvclN0YXRlfSBwbHVnaW5zPXtwbHVnaW5zfSB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9IGlzRm9jdXNlZD17ZWRpdG9yU3RhdGUuaXNGb2N1c2VkfSAvPiovfVxuICAgICAge2VkaXRvciAmJiAoXG4gICAgICAgIDxTdHlsZWRNZW51QmFyXG4gICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgcmVzcG9uc2VBcmVhUHJvcHM9e3Jlc3BvbnNlQXJlYVByb3BzfVxuICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICBhY3RpdmVQbHVnaW5zPXthY3RpdmVQbHVnaW5zfVxuICAgICAgICAgIG9uQ2hhbmdlPXtwcm9wcy5vbkNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmNvbnN0IEVkaXRvckNvbnRhaW5lciA9IHdpdGhTdHlsZXMoc3R5bGVzKShUaXB0YXBDb250YWluZXIpO1xuXG5mdW5jdGlvbiBNZW51QmFyKHsgZWRpdG9yLCBjbGFzc2VzLCBhY3RpdmVQbHVnaW5zLCB0b29sYmFyT3B0czogdG9vbE9wdHMsIHJlc3BvbnNlQXJlYVByb3BzLCBvbkNoYW5nZSB9KSB7XG4gIGNvbnN0IFtzaG93UGlja2VyLCBzZXRTaG93UGlja2VyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgdG9vbGJhck9wdHMgPSB0b29sT3B0cyA/PyB7fTtcbiAgLy8gUmVhZCB0aGUgY3VycmVudCBlZGl0b3IncyBzdGF0ZSwgYW5kIHJlLXJlbmRlciB0aGUgY29tcG9uZW50IHdoZW4gaXQgY2hhbmdlc1xuICBjb25zdCBlZGl0b3JTdGF0ZSA9IHVzZUVkaXRvclN0YXRlKHtcbiAgICBlZGl0b3IsXG4gICAgc2VsZWN0b3I6IChjdHgpID0+IHtcbiAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBjdHguZWRpdG9yPy5zdGF0ZSB8fCB7fTtcblxuICAgICAgbGV0IGN1cnJlbnROb2RlO1xuXG4gICAgICBpZiAoc2VsZWN0aW9uIGluc3RhbmNlb2YgTm9kZVNlbGVjdGlvbikge1xuICAgICAgICBjdXJyZW50Tm9kZSA9IHNlbGVjdGlvbi5ub2RlOyAvLyB0aGUgc2VsZWN0ZWQgbm9kZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoaWRlRGVmYXVsdFRvb2xiYXIgPVxuICAgICAgICBjdHguZWRpdG9yPy5pc0FjdGl2ZSgnbWF0aCcpIHx8XG4gICAgICAgIGN0eC5lZGl0b3I/LmlzQWN0aXZlKCdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZScpIHx8XG4gICAgICAgIGN0eC5lZGl0b3I/LmlzQWN0aXZlKCdpbWFnZVVwbG9hZE5vZGUnKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY3VycmVudE5vZGUsXG4gICAgICAgIGhpZGVEZWZhdWx0VG9vbGJhcixcbiAgICAgICAgaXNGb2N1c2VkOiBjdHguZWRpdG9yPy5pc0ZvY3VzZWQsXG4gICAgICAgIGlzQm9sZDogY3R4LmVkaXRvci5pc0FjdGl2ZSgnYm9sZCcpID8/IGZhbHNlLFxuICAgICAgICBjYW5Cb2xkOlxuICAgICAgICAgIGN0eC5lZGl0b3JcbiAgICAgICAgICAgIC5jYW4oKVxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC50b2dnbGVCb2xkKClcbiAgICAgICAgICAgIC5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgaXNUYWJsZTogY3R4LmVkaXRvci5pc0FjdGl2ZSgndGFibGUnKSA/PyBmYWxzZSxcbiAgICAgICAgdGFibGVIYXNCb3JkZXI6IGN0eC5lZGl0b3IuZ2V0QXR0cmlidXRlcygndGFibGUnKT8uYm9yZGVyID09PSAnMScgPz8gZmFsc2UsXG4gICAgICAgIGNhblRhYmxlOlxuICAgICAgICAgIGN0eC5lZGl0b3JcbiAgICAgICAgICAgIC5jYW4oKVxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5pbnNlcnRUYWJsZSgpXG4gICAgICAgICAgICAucnVuKCkgPz8gZmFsc2UsXG4gICAgICAgIGlzSXRhbGljOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdpdGFsaWMnKSA/PyBmYWxzZSxcbiAgICAgICAgY2FuSXRhbGljOlxuICAgICAgICAgIGN0eC5lZGl0b3JcbiAgICAgICAgICAgIC5jYW4oKVxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC50b2dnbGVJdGFsaWMoKVxuICAgICAgICAgICAgLnJ1bigpID8/IGZhbHNlLFxuICAgICAgICBpc1N0cmlrZTogY3R4LmVkaXRvci5pc0FjdGl2ZSgnc3RyaWtlJykgPz8gZmFsc2UsXG4gICAgICAgIGNhblN0cmlrZTpcbiAgICAgICAgICBjdHguZWRpdG9yXG4gICAgICAgICAgICAuY2FuKClcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAudG9nZ2xlU3RyaWtlKClcbiAgICAgICAgICAgIC5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgaXNDb2RlOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdjb2RlJykgPz8gZmFsc2UsXG4gICAgICAgIGNhbkNvZGU6XG4gICAgICAgICAgY3R4LmVkaXRvclxuICAgICAgICAgICAgLmNhbigpXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLnRvZ2dsZUNvZGUoKVxuICAgICAgICAgICAgLnJ1bigpID8/IGZhbHNlLFxuICAgICAgICBjYW5DbGVhck1hcmtzOlxuICAgICAgICAgIGN0eC5lZGl0b3JcbiAgICAgICAgICAgIC5jYW4oKVxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC51bnNldEFsbE1hcmtzKClcbiAgICAgICAgICAgIC5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgaXNVbmRlcmxpbmU6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ3VuZGVybGluZScpID8/IGZhbHNlLFxuICAgICAgICBpc1N1YlNjcmlwdDogY3R4LmVkaXRvci5pc0FjdGl2ZSgnc3Vic2NyaXB0JykgPz8gZmFsc2UsXG4gICAgICAgIGlzU3VwZXJTY3JpcHQ6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ3N1cGVyc2NyaXB0JykgPz8gZmFsc2UsXG4gICAgICAgIGlzUGFyYWdyYXBoOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdwYXJhZ3JhcGgnKSA/PyBmYWxzZSxcbiAgICAgICAgaXNIZWFkaW5nMTogY3R4LmVkaXRvci5pc0FjdGl2ZSgnaGVhZGluZycsIHsgbGV2ZWw6IDEgfSkgPz8gZmFsc2UsXG4gICAgICAgIGlzSGVhZGluZzI6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2hlYWRpbmcnLCB7IGxldmVsOiAyIH0pID8/IGZhbHNlLFxuICAgICAgICBpc0hlYWRpbmczOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogMyB9KSA/PyBmYWxzZSxcbiAgICAgICAgaXNIZWFkaW5nNDogY3R4LmVkaXRvci5pc0FjdGl2ZSgnaGVhZGluZycsIHsgbGV2ZWw6IDQgfSkgPz8gZmFsc2UsXG4gICAgICAgIGlzSGVhZGluZzU6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2hlYWRpbmcnLCB7IGxldmVsOiA1IH0pID8/IGZhbHNlLFxuICAgICAgICBpc0hlYWRpbmc2OiBjdHguZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogNiB9KSA/PyBmYWxzZSxcbiAgICAgICAgaXNCdWxsZXRMaXN0OiBjdHguZWRpdG9yLmlzQWN0aXZlKCdidWxsZXRMaXN0JykgPz8gZmFsc2UsXG4gICAgICAgIGlzT3JkZXJlZExpc3Q6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ29yZGVyZWRMaXN0JykgPz8gZmFsc2UsXG4gICAgICAgIGlzQ29kZUJsb2NrOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdjb2RlQmxvY2snKSA/PyBmYWxzZSxcbiAgICAgICAgaXNCbG9ja3F1b3RlOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdibG9ja3F1b3RlJykgPz8gZmFsc2UsXG4gICAgICAgIGNhblVuZG86XG4gICAgICAgICAgY3R4LmVkaXRvclxuICAgICAgICAgICAgLmNhbigpXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLnVuZG8oKVxuICAgICAgICAgICAgLnJ1bigpID8/IGZhbHNlLFxuICAgICAgICBjYW5SZWRvOlxuICAgICAgICAgIGN0eC5lZGl0b3JcbiAgICAgICAgICAgIC5jYW4oKVxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5yZWRvKClcbiAgICAgICAgICAgIC5ydW4oKSA/PyBmYWxzZSxcbiAgICAgIH07XG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IGhhc0RvbmVCdXR0b24gPSBmYWxzZTtcbiAgY29uc3QgYXV0b1dpZHRoID0gZmFsc2U7XG5cbiAgY29uc3QgbmFtZXMgPSBjbGFzc05hbWVzKGNsYXNzZXMudG9vbGJhciwgUElFX1RPT0xCQVJfX0NMQVNTLCB7XG4gICAgW2NsYXNzZXMudG9vbGJhcldpdGhOb0RvbmVdOiAhaGFzRG9uZUJ1dHRvbixcbiAgICBbY2xhc3Nlcy50b29sYmFyVG9wXTogdG9vbGJhck9wdHMucG9zaXRpb24gPT09ICd0b3AnLFxuICAgIFtjbGFzc2VzLnRvb2xiYXJSaWdodF06IHRvb2xiYXJPcHRzLmFsaWdubWVudCA9PT0gJ3JpZ2h0JyxcbiAgICBbY2xhc3Nlcy5mb2N1c2VkXTogdG9vbGJhck9wdHMuYWx3YXlzVmlzaWJsZSB8fCAoZWRpdG9yU3RhdGUuaXNGb2N1c2VkICYmICFlZGl0b3IuX3Rvb2xiYXJPcGVuZWQpLFxuICAgIFtjbGFzc2VzLmF1dG9XaWR0aF06IGF1dG9XaWR0aCxcbiAgICBbY2xhc3Nlcy5mdWxsV2lkdGhdOiAhYXV0b1dpZHRoLFxuICAgIFtjbGFzc2VzLmhpZGRlbl06IHRvb2xiYXJPcHRzLmlzSGlkZGVuID09PSB0cnVlLFxuICB9KTtcbiAgY29uc3QgY3VzdG9tU3R5bGVzID0gdG9vbGJhck9wdHMubWluV2lkdGggIT09IHVuZGVmaW5lZCA/IHsgbWluV2lkdGg6IHRvb2xiYXJPcHRzLm1pbldpZHRoIH0gOiB7fTtcbiAgY29uc3QgaGFuZGxlTW91c2VEb3duID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gIH07XG4gIGNvbnN0IHRvb2xiYXJCdXR0b25zID0gdXNlTWVtbyhcbiAgICAoKSA9PiBbXG4gICAgICB7XG4gICAgICAgIGljb246IDxHcmlkT24gLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5pbnNlcnRUYWJsZSh7IHJvd3M6IDIsIGNvbHM6IDIsIHdpdGhIZWFkZXJSb3c6IGZhbHNlIH0pLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCd0YWJsZScpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEFkZFJvdyAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLmFkZFJvd0FmdGVyKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5UYWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxSZW1vdmVSb3cgLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC5kZWxldGVSb3coKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEFkZENvbHVtbiAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLmFkZENvbHVtbkFmdGVyKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5UYWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxSZW1vdmVDb2x1bW4gLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC5kZWxldGVDb2x1bW4oKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFJlbW92ZVRhYmxlIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAuZGVsZXRlVGFibGUoKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJvcmRlckFsbCAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhYmxlQXR0cnMgPSBlZGl0b3IuZ2V0QXR0cmlidXRlcygndGFibGUnKTtcblxuICAgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgICAgICAgIC4uLnRhYmxlQXR0cnMsXG4gICAgICAgICAgICBib3JkZXI6IHRhYmxlQXR0cnMuYm9yZGVyICE9PSAnMCcgPyAnMCcgOiAnMScsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGVkaXRvci5jb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKCd0YWJsZScsIHVwZGF0ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUudGFibGVIYXNCb3JkZXIsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJvbGQgLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC50b2dnbGVCb2xkKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzQm9sZCxcbiAgICAgICAgaXNEaXNhYmxlZDogKHN0YXRlKSA9PiAhc3RhdGUuY2FuQm9sZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxJdGFsaWMgLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC50b2dnbGVJdGFsaWMoKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNJdGFsaWMsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhbkl0YWxpYyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxTdHJpa2V0aHJvdWdoIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAudG9nZ2xlU3RyaWtlKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzU3RyaWtlLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5TdHJpa2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8Q29kZSAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnRvZ2dsZUNvZGUoKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNDb2RlLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5Db2RlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFVuZGVybGluZSAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnRvZ2dsZVVuZGVybGluZSgpXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc1VuZGVybGluZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxTdWJzY3JpcHRJY29uIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAudG9nZ2xlU3Vic2NyaXB0KClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzU3ViU2NyaXB0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFN1cGVyc2NyaXB0SWNvbiAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnRvZ2dsZVN1cGVyc2NyaXB0KClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzU3VwZXJTY3JpcHQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8SW1hZ2VJY29uIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAuc2V0SW1hZ2VVcGxvYWROb2RlKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxUaGVhdGVyc0ljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAuaW5zZXJ0TWVkaWEoeyB0YWc6ICd2aWRlbycgfSlcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxWb2x1bWVVcEljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAuaW5zZXJ0TWVkaWEoeyB0YWc6ICdhdWRpbycgfSlcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxDU1NJY29uIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNvbW1hbmRzLm9wZW5DU1NDbGFzc0RpYWxvZygpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEhlYWRpbmdJY29uIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnRvZ2dsZUhlYWRpbmcoeyBsZXZlbDogMyB9KVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc0hlYWRpbmczLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEZ1bmN0aW9ucyAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLmluc2VydE1hdGgoJycpXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8Q2hhcmFjdGVySWNvbiBsZXR0ZXI9XCLDsVwiIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKCkgPT4gc2V0U2hvd1BpY2tlcihzcGFuaXNoQ29uZmlnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxDaGFyYWN0ZXJJY29uIGxldHRlcj1cIuKCrFwiIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKCkgPT4gc2V0U2hvd1BpY2tlcihzcGVjaWFsQ29uZmlnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxUZXh0QWxpZ25JY29uIGVkaXRvcj17ZWRpdG9yfSAvPixcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHt9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJ1bGxldGVkTGlzdEljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAudG9nZ2xlQnVsbGV0TGlzdCgpXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzQnVsbGV0TGlzdCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxOdW1iZXJlZExpc3RJY29uIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnRvZ2dsZU9yZGVyZWRMaXN0KClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNPcmRlcmVkTGlzdCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxVbmRvIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnVuZG8oKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5VbmRvLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFJlZG8gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAucmVkbygpXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblJlZG8sXG4gICAgICB9LFxuICAgIF0sXG4gICAgW2FjdGl2ZVBsdWdpbnMsIGVkaXRvciwgc3BhbmlzaENvbmZpZywgc3BlY2lhbENvbmZpZywgc2V0U2hvd1BpY2tlcl0sXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17bmFtZXN9IHN0eWxlPXt7IC4uLmN1c3RvbVN0eWxlcyB9fSBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufT5cbiAgICAgIHshZWRpdG9yU3RhdGUuaGlkZURlZmF1bHRUb29sYmFyICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuZGVmYXVsdFRvb2xiYXJ9IHRhYkluZGV4PVwiMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbnNDb250YWluZXJ9PlxuICAgICAgICAgICAge3Rvb2xiYXJCdXR0b25zXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGJ0bikgPT4gIWJ0bi5oaWRkZW4/LihlZGl0b3JTdGF0ZSkpXG4gICAgICAgICAgICAgIC5tYXAoKGJ0biwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IGJ0bi5pc0Rpc2FibGVkPy4oZWRpdG9yU3RhdGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGJ0bi5pc0FjdGl2ZT8uKGVkaXRvclN0YXRlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgYnRuLm9uQ2xpY2soZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMuYnV0dG9uLCB7IFtjbGFzc2VzLmFjdGl2ZV06IGFjdGl2ZSB9KX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2J0bi5pY29ufVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAgICAgLmluc2VydFJlc3BvbnNlQXJlYShyZXNwb25zZUFyZWFQcm9wcy50eXBlKVxuICAgICAgICAgICAgICAgIC5ydW4oKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxUb29sYmFySWNvbiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPERvbmVCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgb25DaGFuZ2U/LihlZGl0b3IuZ2V0SFRNTCgpKTtcbiAgICAgICAgICAgICAgZWRpdG9yLmNvbW1hbmRzLmJsdXIoKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAge3Nob3dQaWNrZXIgJiYgKFxuICAgICAgICA8Q2hhcmFjdGVyUGlja2VyXG4gICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgb3B0cz17e1xuICAgICAgICAgICAgLi4uc2hvd1BpY2tlcixcbiAgICAgICAgICAgIHJlbmRlclBvcE92ZXI6IChldiwgY2gpID0+IGNvbnNvbGUubG9nKCdTaG93IHBvcG92ZXInLCBjaCksXG4gICAgICAgICAgICBjbG9zZVBvcE92ZXI6ICgpID0+IGNvbnNvbGUubG9nKCdDbG9zZSBwb3BvdmVyJyksXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRTaG93UGlja2VyKGZhbHNlKX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmNvbnN0IHN0eWxlID0gKHRoZW1lKSA9PiAoe1xuICBkZWZhdWx0VG9vbGJhcjoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gIH0sXG4gIGJ1dHRvbnNDb250YWluZXI6IHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgfSxcbiAgYnV0dG9uOiB7XG4gICAgY29sb3I6ICdncmV5JyxcbiAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgIHBhZGRpbmc6ICcycHgnLFxuICAgIGJhY2tncm91bmQ6ICdub25lJyxcbiAgICBib3JkZXI6ICdub25lJyxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiAnYmxhY2snLFxuICAgIH0sXG4gICAgJyY6Zm9jdXMnOiB7XG4gICAgICBvdXRsaW5lOiBgMnB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5ncmV5WzcwMF19YCxcbiAgICB9LFxuICB9LFxuICBhY3RpdmU6IHtcbiAgICBjb2xvcjogJ2JsYWNrJyxcbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICBvcGFjaXR5OiAwLjcsXG4gICAgY3Vyc29yOiAnbm90LWFsbG93ZWQnLFxuICAgICcmIDpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiAnZ3JleScsXG4gICAgfSxcbiAgfSxcbiAgaXNBY3RpdmU6IHtcbiAgICBiYWNrZ3JvdW5kOiAndmFyKC0tcHVycGxlKScsXG4gICAgY29sb3I6ICd2YXIoLS13aGl0ZSknLFxuICB9LFxuICB0b29sYmFyOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgekluZGV4OiAyMCxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGJhY2tncm91bmQ6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItYmcsICNlZmVmZWYpJyxcbiAgICBtaW5XaWR0aDogJzI4MHB4JyxcbiAgICBtYXJnaW46ICc1cHggMCAwIDAnLFxuICAgIHBhZGRpbmc6ICcycHgnLFxuICAgIGJveFNoYWRvdzpcbiAgICAgICcwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTIpJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgb3BhY2l0eTogMCxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gIH0sXG4gIHRvb2xiYXJXaXRoTm9Eb25lOiB7XG4gICAgbWluV2lkdGg6ICcyNjVweCcsXG4gIH0sXG4gIHRvb2xiYXJUb3A6IHtcbiAgICB0b3A6ICctNDVweCcsXG4gIH0sXG4gIHRvb2xiYXJSaWdodDoge1xuICAgIHJpZ2h0OiAwLFxuICB9LFxuICBmdWxsV2lkdGg6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9LFxuICBoaWRkZW46IHtcbiAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgfSxcbiAgYXV0b1dpZHRoOiB7XG4gICAgd2lkdGg6ICdhdXRvJyxcbiAgfSxcbiAgZm9jdXNlZDoge1xuICAgIG9wYWNpdHk6IDEsXG4gICAgcG9pbnRlckV2ZW50czogJ2F1dG8nLFxuICB9LFxuICBpY29uUm9vdDoge1xuICAgIHdpZHRoOiAnMjhweCcsXG4gICAgaGVpZ2h0OiAnMjhweCcsXG4gICAgcGFkZGluZzogJzRweCcsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIH0sXG4gIGxhYmVsOiB7XG4gICAgY29sb3I6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItY2hlY2ssICMwMGJiMDApJyxcbiAgfSxcbiAgc2hhcmVkOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICB9LFxufSk7XG5jb25zdCBTdHlsZWRNZW51QmFyID0gd2l0aFN0eWxlcyhzdHlsZSwgeyBpbmRleDogMTAwMCB9KShNZW51QmFyKTtcblxuY29uc3QgZGVmYXVsdFRvb2xiYXJPcHRzID0ge1xuICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gIGFsaWdubWVudDogJ2xlZnQnLFxuICBhbHdheXNWaXNpYmxlOiBmYWxzZSxcbiAgc2hvd0RvbmU6IHRydWUsXG4gIGRvbmVPbjogJ2JsdXInLFxufTtcblxuZXhwb3J0IGNvbnN0IEVkaXRhYmxlSHRtbCA9IChwcm9wcykgPT4ge1xuICBjb25zdCBbcGVuZGluZ0ltYWdlcywgc2V0UGVuZGluZ0ltYWdlc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtzY2hlZHVsZWQsIHNldFNjaGVkdWxlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHsgY2xhc3NlcywgdG9vbGJhck9wdHMgfSA9IHByb3BzO1xuICBjb25zdCB0b29sYmFyT3B0c1RvVXNlID0ge1xuICAgIC4uLmRlZmF1bHRUb29sYmFyT3B0cyxcbiAgICAuLi50b29sYmFyT3B0cyxcbiAgfTtcbiAgY29uc3QgYWN0aXZlUGx1Z2luc1RvVXNlID0gcHJvcHMuYWN0aXZlUGx1Z2lucyB8fCBERUZBVUxUX1BMVUdJTlM7XG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBbXG4gICAgVGV4dFN0eWxlS2l0LFxuICAgIFN0YXJ0ZXJLaXQsXG4gICAgRXh0ZW5kZWRUYWJsZSxcbiAgICBUYWJsZVJvdyxcbiAgICBUYWJsZUhlYWRlcixcbiAgICBUYWJsZUNlbGwsXG4gICAgUmVzcG9uc2VBcmVhRXh0ZW5zaW9uLFxuICAgIEV4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZU5vZGUuY29uZmlndXJlKHByb3BzLnJlc3BvbnNlQXJlYVByb3BzKSxcbiAgICBEcmFnSW5UaGVCbGFua05vZGUuY29uZmlndXJlKHByb3BzLnJlc3BvbnNlQXJlYVByb3BzKSxcbiAgICBJbmxpbmVEcm9wZG93bk5vZGUuY29uZmlndXJlKHByb3BzLnJlc3BvbnNlQXJlYVByb3BzKSxcbiAgICBNYXRoTm9kZS5jb25maWd1cmUoe1xuICAgICAgdG9vbGJhck9wdHM6IHRvb2xiYXJPcHRzVG9Vc2UsXG4gICAgfSksXG4gICAgU3ViU2NyaXB0LFxuICAgIFN1cGVyU2NyaXB0LFxuICAgIFRleHRBbGlnbi5jb25maWd1cmUoe1xuICAgICAgdHlwZXM6IFsnaGVhZGluZycsICdwYXJhZ3JhcGgnXSxcbiAgICAgIGFsaWdubWVudHM6IFsnbGVmdCcsICdyaWdodCcsICdjZW50ZXInXSxcbiAgICB9KSxcbiAgICBJbWFnZSxcbiAgICBJbWFnZVVwbG9hZE5vZGUuY29uZmlndXJlKHtcbiAgICAgIHRvb2xiYXJPcHRzOiB0b29sYmFyT3B0c1RvVXNlLFxuICAgICAgaW1hZ2VIYW5kbGluZzoge1xuICAgICAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zOiBwcm9wcy5kaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zLFxuICAgICAgICBvbkRvbmU6ICgpID0+IHByb3BzLm9uRG9uZT8uKGVkaXRvci5nZXRIVE1MKCkpLFxuICAgICAgICBvbkRlbGV0ZTpcbiAgICAgICAgICBwcm9wcy5pbWFnZVN1cHBvcnQgJiZcbiAgICAgICAgICBwcm9wcy5pbWFnZVN1cHBvcnQuZGVsZXRlICYmXG4gICAgICAgICAgKChub2RlLCBkb25lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHNyYyB9ID0gbm9kZS5hdHRycztcblxuICAgICAgICAgICAgcHJvcHMuaW1hZ2VTdXBwb3J0LmRlbGV0ZShzcmMsIChlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1BlbmRpbmdJbWFnZXMgPSBwZW5kaW5nSW1hZ2VzLmZpbHRlcigoaW1nKSA9PiBpbWcua2V5ICE9PSBub2RlLmtleSk7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJbWFnZXM6IG5ld1BlbmRpbmdJbWFnZXMsXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVkOiBzY2hlZHVsZWQgJiYgbmV3UGVuZGluZ0ltYWdlcy5sZW5ndGggPT09IDAgPyBmYWxzZSA6IHNjaGVkdWxlZCxcbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICBzZXRQZW5kaW5nSW1hZ2VzKG5ld1N0YXRlLnBlbmRpbmdJbWFnZXMpO1xuICAgICAgICAgICAgICBzZXRTY2hlZHVsZWQobmV3U3RhdGUuc2NoZWR1bGVkKTtcbiAgICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgIGluc2VydEltYWdlUmVxdWVzdGVkOlxuICAgICAgICAgIHByb3BzLmltYWdlU3VwcG9ydCAmJlxuICAgICAgICAgICgoYWRkZWRJbWFnZSwgZ2V0SGFuZGxlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb25GaW5pc2ggPSAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgIGxldCBjYjtcblxuICAgICAgICAgICAgICBpZiAoc2NoZWR1bGVkICYmIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIC8vIGZpbmlzaCBlZGl0aW5nIG9ubHkgb24gc3VjY2Vzc1xuICAgICAgICAgICAgICAgIGNiID0gcHJvcHMub25DaGFuZ2U7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBuZXdQZW5kaW5nSW1hZ2VzID0gcGVuZGluZ0ltYWdlcy5maWx0ZXIoKGltZykgPT4gaW1nLmtleSAhPT0gYWRkZWRJbWFnZS5rZXkpO1xuICAgICAgICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSW1hZ2VzOiBuZXdQZW5kaW5nSW1hZ2VzLFxuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgIGlmIChuZXdQZW5kaW5nSW1hZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIG5ld1N0YXRlLnNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgc2V0UGVuZGluZ0ltYWdlcyhuZXdTdGF0ZS5wZW5kaW5nSW1hZ2VzKTtcbiAgICAgICAgICAgICAgc2V0U2NoZWR1bGVkKG5ld1N0YXRlLnNjaGVkdWxlZCk7XG4gICAgICAgICAgICAgIGNiPy4oZWRpdG9yLmdldEhUTUwoKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBUaGUgaGFuZGxlciBpcyB0aGUgb2JqZWN0IHRocm91Z2ggd2hpY2ggdGhlIG91dGVyIGNvbnRleHRcbiAgICAgICAgICAgICAgICogY29tbXVuaWNhdGVzIGZpbGUgdXBsb2FkIGV2ZW50cyBsaWtlOiBmaWxlQ2hvc2VuLCBjYW5jZWwsIHByb2dyZXNzXG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gZ2V0SGFuZGxlcihvbkZpbmlzaCk7XG4gICAgICAgICAgICAgIHByb3BzLmltYWdlU3VwcG9ydC5hZGQoaGFuZGxlcik7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzZXRQZW5kaW5nSW1hZ2VzKFsuLi5wZW5kaW5nSW1hZ2VzLCBhZGRlZEltYWdlXSk7XG4gICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgIH0pLFxuICAgICAgICBtYXhJbWFnZVdpZHRoOiBwcm9wcy5tYXhJbWFnZVdpZHRoLFxuICAgICAgICBtYXhJbWFnZUhlaWdodDogcHJvcHMubWF4SW1hZ2VIZWlnaHQsXG4gICAgICB9LFxuICAgICAgbGltaXQ6IDMsXG4gICAgfSksXG4gICAgTWVkaWEuY29uZmlndXJlKHtcbiAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydDogcHJvcHMudXBsb2FkU291bmRTdXBwb3J0LFxuICAgIH0pLFxuICAgIENTU01hcmsuY29uZmlndXJlKHtcbiAgICAgIGV4dHJhQ1NTUnVsZXM6IHByb3BzLmV4dHJhQ1NTUnVsZXMsXG4gICAgfSksXG4gIF07XG4gIGNvbnN0IGVkaXRvciA9IHVzZUVkaXRvcih7XG4gICAgZXh0ZW5zaW9ucyxcbiAgICBpbW1lZGlhdGVseVJlbmRlcjogZmFsc2UsXG4gICAgY29udGVudDogcHJvcHMubWFya3VwLFxuICAgIG9uVXBkYXRlOiAoeyBlZGl0b3IsIHRyYW5zYWN0aW9uIH0pID0+IHRyYW5zYWN0aW9uLmlzRG9uZSAmJiBwcm9wcy5vbkNoYW5nZT8uKGVkaXRvci5nZXRIVE1MKCkpLFxuICAgIG9uQmx1cjogKHsgZWRpdG9yIH0pID0+IHtcbiAgICAgIGlmICh0b29sYmFyT3B0c1RvVXNlLmRvbmVPbiA9PT0gJ2JsdXInKSB7XG4gICAgICAgIHByb3BzLm9uQ2hhbmdlPy4oZWRpdG9yLmdldEhUTUwoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy5vbkRvbmU/LihlZGl0b3IuZ2V0SFRNTCgpKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLm1hcmt1cCAhPT0gZWRpdG9yLmdldEhUTUwoKSkge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnNldENvbnRlbnQocHJvcHMubWFya3VwLCBmYWxzZSk7IC8vIGZhbHNlID0gZG9u4oCZdCBlbWl0IHVwZGF0ZVxuICAgIH1cbiAgfSwgW3Byb3BzLm1hcmt1cCwgZWRpdG9yXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBEZWZpbmUgeW91ciB2YXJpYWJsZXMgaW4gYSBKUyBvYmplY3RcbiAgICBjb25zdCBjc3NWYXJpYWJsZXMgPSB7XG4gICAgICAnLS13aGl0ZSc6ICcjZmZmJyxcbiAgICAgICctLWJsYWNrJzogJyMyZTJiMjknLFxuICAgICAgJy0tYmxhY2stY29udHJhc3QnOiAnIzExMGYwZScsXG4gICAgICAnLS1ncmF5LTEnOiAncmdiYSg2MSwgMzcsIDIwLCAuMDUpJyxcbiAgICAgICctLWdyYXktMic6ICdyZ2JhKDYxLCAzNywgMjAsIC4wOCknLFxuICAgICAgJy0tZ3JheS0zJzogJ3JnYmEoNjEsIDM3LCAyMCwgLjEyKScsXG4gICAgICAnLS1ncmF5LTQnOiAncmdiYSg1MywgMzgsIDI4LCAuMyknLFxuICAgICAgJy0tZ3JheS01JzogJ3JnYmEoMjgsIDI1LCAyMywgLjYpJyxcbiAgICAgICctLWdyZWVuJzogJyMyMmM1NWUnLFxuICAgICAgJy0tcHVycGxlJzogJyM2YTAwZjUnLFxuICAgICAgJy0tcHVycGxlLWNvbnRyYXN0JzogJyM1ODAwY2MnLFxuICAgICAgJy0tcHVycGxlLWxpZ2h0JzogJ3JnYmEoODgsIDUsIDI1NSwgLjA1KScsXG4gICAgICAnLS15ZWxsb3ctY29udHJhc3QnOiAnI2ZhY2MxNScsXG4gICAgICAnLS15ZWxsb3cnOiAncmdiYSgyNTAsIDIwNCwgMjEsIC40KScsXG4gICAgICAnLS15ZWxsb3ctbGlnaHQnOiAnI2ZmZmFlNScsXG4gICAgICAnLS1yZWQnOiAnI2ZmNWMzMycsXG4gICAgICAnLS1yZWQtbGlnaHQnOiAnI2ZmZWJlNScsXG4gICAgICAnLS1zaGFkb3cnOiBgMHB4IDEycHggMzNweCAwcHggcmdiYSgwLCAwLCAwLCAuMDYpLFxuICAgICAgICAgICAgICAgMHB4IDMuNjE4cHggOS45NDlweCAwcHggcmdiYSgwLCAwLCAwLCAuMDQpYCxcbiAgICB9O1xuXG4gICAgT2JqZWN0LmVudHJpZXMoY3NzVmFyaWFibGVzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhbHVlKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGVkaXRvclN0YXRlID0gdXNlRWRpdG9yU3RhdGUoe1xuICAgIGVkaXRvcixcbiAgICBzZWxlY3RvcjogKGN0eCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXNGb2N1c2VkOiBjdHguZWRpdG9yPy5pc0ZvY3VzZWQsXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IHZhbHVlVG9TaXplID0gKHYpID0+IHtcbiAgICBpZiAoIXYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY2FsY1JlZ2V4ID0gL15jYWxjXFwoKC4qKVxcKSQvO1xuXG4gICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKHYuZW5kc1dpdGgoJyUnKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdi5lbmRzV2l0aCgncHgnKSB8fFxuICAgICAgICB2LmVuZHNXaXRoKCd2aCcpIHx8XG4gICAgICAgIHYuZW5kc1dpdGgoJ3Z3JykgfHxcbiAgICAgICAgdi5lbmRzV2l0aCgnY2gnKSB8fFxuICAgICAgICB2LmVuZHNXaXRoKCdlbScpIHx8XG4gICAgICAgIHYubWF0Y2goY2FsY1JlZ2V4KVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJzZUludCh2LCAxMCk7XG4gICAgICAgIHJldHVybiBpc05hTih2YWx1ZSkgPyB2YWx1ZSA6IGAke3ZhbHVlfXB4YDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2ID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGAke3Z9cHhgO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzaXplU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IG1pbldpZHRoLCB3aWR0aCwgbWF4V2lkdGgsIG1pbkhlaWdodCwgaGVpZ2h0LCBtYXhIZWlnaHQgfSA9IHByb3BzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiB2YWx1ZVRvU2l6ZSh3aWR0aCksXG4gICAgICBtaW5XaWR0aDogdmFsdWVUb1NpemUobWluV2lkdGgpLFxuICAgICAgbWF4V2lkdGg6IHZhbHVlVG9TaXplKG1heFdpZHRoKSxcbiAgICAgIGhlaWdodDogdmFsdWVUb1NpemUoaGVpZ2h0KSxcbiAgICAgIG1pbkhlaWdodDogdmFsdWVUb1NpemUobWluSGVpZ2h0KSxcbiAgICAgIG1heEhlaWdodDogdmFsdWVUb1NpemUobWF4SGVpZ2h0KSxcbiAgICB9O1xuICB9LCBbcHJvcHNdKTtcblxuICByZXR1cm4gKFxuICAgIDxFZGl0b3JDb250YWluZXIgey4uLnsgLi4ucHJvcHMsIGFjdGl2ZVBsdWdpbnM6IGFjdGl2ZVBsdWdpbnNUb1VzZSwgdG9vbGJhck9wdHM6IHRvb2xiYXJPcHRzVG9Vc2UgfX0gZWRpdG9yU3RhdGU9e2VkaXRvclN0YXRlfSBlZGl0b3I9e2VkaXRvcn0+XG4gICAgICB7ZWRpdG9yICYmIChcbiAgICAgICAgPEVkaXRvckNvbnRlbnRcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgbWluSGVpZ2h0OiBzaXplU3R5bGUubWluSGVpZ2h0LFxuICAgICAgICAgICAgaGVpZ2h0OiBzaXplU3R5bGUuaGVpZ2h0LFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiBzaXplU3R5bGUubWF4SGVpZ2h0LFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9XG4gICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvRWRpdG9yQ29udGFpbmVyPlxuICApO1xufTtcblxuY29uc3QgU3R5bGVkRWRpdG9yID0gd2l0aFN0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBvdXRsaW5lOiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICAnJiAuUHJvc2VNaXJyb3InOiB7XG4gICAgICBvdXRsaW5lOiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICAgIHBvc2l0aW9uOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgfSxcbn0pKEVkaXRhYmxlSHRtbCk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0eWxlZEVkaXRvcjtcbiJdfQ==
|
|
1497
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qc3giXSwibmFtZXMiOlsiQ2hhcmFjdGVySWNvbiIsImxldHRlciIsImZvbnRTaXplIiwibGluZUhlaWdodCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsIkNoYXJhY3RlclBpY2tlciIsImVkaXRvciIsIm9wdHMiLCJvbkNsb3NlIiwiY2hhcmFjdGVycyIsImxlbmd0aCIsImNvbnRhaW5lclJlZiIsInRvcCIsImxlZnQiLCJwb3NpdGlvbiIsInNldFBvc2l0aW9uIiwicG9wb3ZlciIsInNldFBvcG92ZXIiLCJjb25maWdUb1VzZSIsImxhbmd1YWdlIiwic3BhbmlzaENvbmZpZyIsInNwZWNpYWxDb25maWciLCJsYXlvdXRGb3JDaGFyYWN0ZXJzIiwicmVkdWNlIiwib2JqIiwiYXJyIiwiY29sdW1ucyIsInJvd3MiLCJjbG9zZVBvcE92ZXIiLCJib2R5UmVjdCIsImRvY3VtZW50IiwiYm9keSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImZyb20iLCJzdGF0ZSIsInNlbGVjdGlvbiIsInN0YXJ0IiwidmlldyIsImNvb3Jkc0F0UG9zIiwiTWF0aCIsImFicyIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImUiLCJjdXJyZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJkb20iLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlclBvcE92ZXIiLCJldmVudCIsImVsIiwiYW5jaG9yRWwiLCJjdXJyZW50VGFyZ2V0IiwiaGFuZGxlQ2hhbmdlIiwidmFsIiwiY2hhaW4iLCJmb2N1cyIsImluc2VydENvbnRlbnQiLCJydW4iLCJSZWFjdERPTSIsImNyZWF0ZVBvcnRhbCIsIm1heFdpZHRoIiwia2V5UGFkQ2hhcmFjdGVyUmVmIiwic2V0S2V5cGFkSW50ZXJhY3Rpb24iLCJuIiwibWFwIiwiayIsIm5hbWUiLCJ3cml0ZSIsImxhYmVsIiwiY2F0ZWdvcnkiLCJleHRyYUNsYXNzIiwiZXh0cmFQcm9wcyIsInN0eWxlIiwiYm9yZGVyIiwiaGFzUHJldmlldyIsImFjdGlvbnMiLCJvbk1vdXNlRW50ZXIiLCJldiIsIm9uTW91c2VMZWF2ZSIsImRlc2NyaXB0aW9uIiwidW5pY29kZSIsIlN1cGVyc2NyaXB0SWNvbiIsIlN1YnNjcmlwdEljb24iLCJIZWFkaW5nSWNvbiIsIndpZHRoIiwiaGVpZ2h0IiwiRXh0ZW5kZWRUYWJsZSIsIlRhYmxlIiwiZXh0ZW5kIiwiYWRkQXR0cmlidXRlcyIsInJlbmRlckhUTUwiLCJwcm9wcyIsIm9yaWdpbmFsVGFibGUiLCJwYXJlbnQiLCJIVE1MQXR0cmlidXRlcyIsInByZXZpb3VzU3R5bGUiLCJtYXRjaCIsInN0eWxlcyIsInRoZW1lIiwicm9vdCIsInBhZGRpbmciLCJib3JkZXJSYWRpdXMiLCJjdXJzb3IiLCJ3b3JkQnJlYWsiLCJvdmVyZmxvdyIsIm1heEhlaWdodCIsIm1hcmdpblRvcCIsIm1hcmdpbiIsIm1hcmdpbkJvdHRvbSIsInRleHRXcmFwIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJiYWNrZ3JvdW5kIiwiZm9udEZhbWlseSIsImJvcmRlckxlZnQiLCJwYWRkaW5nTGVmdCIsImJvcmRlclRvcCIsInRhYmxlTGF5b3V0IiwiYm9yZGVyQ29sbGFwc2UiLCJ0ZXh0IiwidGV4dEFsaWduIiwiY2hpbGRyZW4iLCJlZGl0b3JIb2xkZXIiLCJyaWdodCIsImJvdHRvbSIsImNvbnRlbnQiLCJ0cmFuc2l0aW9uIiwicG9pbnRlckV2ZW50cyIsInRyYW5zZm9ybSIsInByaW1hcnkiLCJwYWxldHRlIiwiY29tbW9uIiwiYmxhY2siLCJkaXNhYmxlZFVuZGVybGluZSIsImRpc3BsYXkiLCJkaXNhYmxlZFNjcm9sbGJhciIsInNjcm9sbGJhcldpZHRoIiwicmVhZE9ubHkiLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJlZGl0b3JJbkZvY3VzIiwiZXJyb3IiLCJtYWluIiwibm9Cb3JkZXIiLCJub1BhZGRpbmciLCJ0b29sYmFyT25Ub3AiLCJkZWZhdWx0UmVzcG9uc2VBcmVhUHJvcHMiLCJvcHRpb25zIiwicmVzcEFyZWFUb29sYmFyIiwib25IYW5kbGVBcmVhQ2hhbmdlIiwidmFsdWVUb1NpemUiLCJ2IiwiY2FsY1JlZ2V4IiwiZW5kc1dpdGgiLCJ1bmRlZmluZWQiLCJ2YWx1ZSIsInBhcnNlSW50IiwiaXNOYU4iLCJUaXB0YXBDb250YWluZXIiLCJlZGl0b3JTdGF0ZSIsImNsYXNzZXMiLCJkaXNhYmxlVW5kZXJsaW5lIiwiZGlzYWJsZVNjcm9sbGJhciIsImFjdGl2ZVBsdWdpbnMiLCJ0b29sYmFyT3B0cyIsInJlc3BvbnNlQXJlYVByb3BzIiwiYXV0b0ZvY3VzIiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJob2xkZXJOYW1lcyIsImlzRm9jdXNlZCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImNvbW1hbmRzIiwic2l6ZVN0eWxlIiwiY2xhc3NOYW1lIiwib25DaGFuZ2UiLCJFZGl0b3JDb250YWluZXIiLCJNZW51QmFyIiwidG9vbE9wdHMiLCJzaG93UGlja2VyIiwic2V0U2hvd1BpY2tlciIsInNlbGVjdG9yIiwiY3R4IiwiY3VycmVudE5vZGUiLCJOb2RlU2VsZWN0aW9uIiwibm9kZSIsImhpZGVEZWZhdWx0VG9vbGJhciIsImlzQWN0aXZlIiwiaXNCb2xkIiwiY2FuQm9sZCIsImNhbiIsInRvZ2dsZUJvbGQiLCJpc1RhYmxlIiwidGFibGVIYXNCb3JkZXIiLCJnZXRBdHRyaWJ1dGVzIiwiY2FuVGFibGUiLCJpbnNlcnRUYWJsZSIsImlzSXRhbGljIiwiY2FuSXRhbGljIiwidG9nZ2xlSXRhbGljIiwiaXNTdHJpa2UiLCJjYW5TdHJpa2UiLCJ0b2dnbGVTdHJpa2UiLCJpc0NvZGUiLCJjYW5Db2RlIiwidG9nZ2xlQ29kZSIsImNhbkNsZWFyTWFya3MiLCJ1bnNldEFsbE1hcmtzIiwiaXNVbmRlcmxpbmUiLCJpc1N1YlNjcmlwdCIsImlzU3VwZXJTY3JpcHQiLCJpc1BhcmFncmFwaCIsImlzSGVhZGluZzEiLCJsZXZlbCIsImlzSGVhZGluZzIiLCJpc0hlYWRpbmczIiwiaXNIZWFkaW5nNCIsImlzSGVhZGluZzUiLCJpc0hlYWRpbmc2IiwiaXNCdWxsZXRMaXN0IiwiaXNPcmRlcmVkTGlzdCIsImlzQ29kZUJsb2NrIiwiaXNCbG9ja3F1b3RlIiwiY2FuVW5kbyIsInVuZG8iLCJjYW5SZWRvIiwicmVkbyIsImhhc0RvbmVCdXR0b24iLCJhdXRvV2lkdGgiLCJuYW1lcyIsInRvb2xiYXIiLCJQSUVfVE9PTEJBUl9fQ0xBU1MiLCJ0b29sYmFyV2l0aE5vRG9uZSIsInRvb2xiYXJUb3AiLCJ0b29sYmFyUmlnaHQiLCJhbGlnbm1lbnQiLCJmb2N1c2VkIiwiYWx3YXlzVmlzaWJsZSIsIl90b29sYmFyT3BlbmVkIiwiZnVsbFdpZHRoIiwiaGlkZGVuIiwiaXNIaWRkZW4iLCJjdXN0b21TdHlsZXMiLCJoYW5kbGVNb3VzZURvd24iLCJwcmV2ZW50RGVmYXVsdCIsInRvb2xiYXJCdXR0b25zIiwiaWNvbiIsIm9uQ2xpY2siLCJjb2xzIiwid2l0aEhlYWRlclJvdyIsImluY2x1ZGVzIiwiaXNEaXNhYmxlZCIsImFkZFJvd0FmdGVyIiwiZGVsZXRlUm93IiwiYWRkQ29sdW1uQWZ0ZXIiLCJkZWxldGVDb2x1bW4iLCJkZWxldGVUYWJsZSIsInRhYmxlQXR0cnMiLCJ1cGRhdGUiLCJ1cGRhdGVBdHRyaWJ1dGVzIiwidG9nZ2xlVW5kZXJsaW5lIiwidG9nZ2xlU3Vic2NyaXB0IiwidG9nZ2xlU3VwZXJzY3JpcHQiLCJzZXRJbWFnZVVwbG9hZE5vZGUiLCJpbnNlcnRNZWRpYSIsInRhZyIsIm9wZW5DU1NDbGFzc0RpYWxvZyIsInRvZ2dsZUhlYWRpbmciLCJpbnNlcnRNYXRoIiwiZmlsdGVyIiwicCIsInRvZ2dsZUJ1bGxldExpc3QiLCJ0b2dnbGVPcmRlcmVkTGlzdCIsImRlZmF1bHRUb29sYmFyIiwiYnV0dG9uc0NvbnRhaW5lciIsImJ0biIsImluZGV4IiwiZGlzYWJsZWQiLCJhY3RpdmUiLCJidXR0b24iLCJpbnNlcnRSZXNwb25zZUFyZWEiLCJ0eXBlIiwiZ2V0SFRNTCIsImJsdXIiLCJjaCIsImNvbnNvbGUiLCJsb2ciLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJvdXRsaW5lIiwiZ3JleSIsIm9wYWNpdHkiLCJ6SW5kZXgiLCJib3hTaGFkb3ciLCJib3hTaXppbmciLCJ2aXNpYmlsaXR5IiwiaWNvblJvb3QiLCJ2ZXJ0aWNhbEFsaWduIiwic2hhcmVkIiwiU3R5bGVkTWVudUJhciIsImRlZmF1bHRUb29sYmFyT3B0cyIsInNob3dEb25lIiwiZG9uZU9uIiwiRWRpdGFibGVIdG1sIiwicGVuZGluZ0ltYWdlcyIsInNldFBlbmRpbmdJbWFnZXMiLCJzY2hlZHVsZWQiLCJzZXRTY2hlZHVsZWQiLCJ0b29sYmFyT3B0c1RvVXNlIiwiYWN0aXZlUGx1Z2luc1RvVXNlIiwicGx1Z2luUHJvcHMiLCJjdXN0b21QbHVnaW5zIiwibWF0aCIsImh0bWwiLCJleHRyYUNTU1J1bGVzIiwiaW1hZ2UiLCJ0YWJsZSIsInJlc3BvbnNlQXJlYSIsImxhbmd1YWdlQ2hhcmFjdGVycyIsImxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzIiwibWVkaWEiLCJleHRlbnNpb25zIiwiVGV4dFN0eWxlS2l0IiwiU3RhcnRlcktpdCIsIlRhYmxlUm93IiwiVGFibGVIZWFkZXIiLCJUYWJsZUNlbGwiLCJSZXNwb25zZUFyZWFFeHRlbnNpb24iLCJFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2VOb2RlIiwiY29uZmlndXJlIiwiRHJhZ0luVGhlQmxhbmtOb2RlIiwiSW5saW5lRHJvcGRvd25Ob2RlIiwiTWF0aE5vZGUiLCJTdWJTY3JpcHQiLCJTdXBlclNjcmlwdCIsIlRleHRBbGlnbiIsInR5cGVzIiwiYWxpZ25tZW50cyIsIkltYWdlIiwiSW1hZ2VVcGxvYWROb2RlIiwiaW1hZ2VIYW5kbGluZyIsImRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnMiLCJvbkRvbmUiLCJvbkRlbGV0ZSIsImltYWdlU3VwcG9ydCIsImRvbmUiLCJzcmMiLCJhdHRycyIsIm5ld1BlbmRpbmdJbWFnZXMiLCJpbWciLCJrZXkiLCJuZXdTdGF0ZSIsImluc2VydEltYWdlUmVxdWVzdGVkIiwiYWRkZWRJbWFnZSIsImdldEhhbmRsZXIiLCJvbkZpbmlzaCIsInJlc3VsdCIsImNiIiwiY2FsbGJhY2siLCJoYW5kbGVyIiwiYWRkIiwibWF4SW1hZ2VXaWR0aCIsIm1heEltYWdlSGVpZ2h0IiwibGltaXQiLCJNZWRpYSIsInVwbG9hZFNvdW5kU3VwcG9ydCIsIkNTU01hcmsiLCJpbW1lZGlhdGVseVJlbmRlciIsIm1hcmt1cCIsIm9uVXBkYXRlIiwidHJhbnNhY3Rpb24iLCJpc0RvbmUiLCJvbkJsdXIiLCJzZXRDb250ZW50IiwiY3NzVmFyaWFibGVzIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJkb2N1bWVudEVsZW1lbnQiLCJzZXRQcm9wZXJ0eSIsIlN0eWxlZEVkaXRvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFNQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0I7QUFBQSxNQUFHQyxNQUFILFFBQUdBLE1BQUg7QUFBQSxzQkFDcEI7QUFDRSxJQUFBLEtBQUssRUFBRTtBQUNMQyxNQUFBQSxRQUFRLEVBQUUsTUFETDtB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Q0FBQy9DLFNBQUQ7QUFOakIsS0FBUDtBQVFELEdBWGlCLEVBV2YsQ0FBQ2QsS0FBRCxDQVhlLENBQWxCO0FBYUEsc0JBQ0UsZ0NBQUMsZUFBRCxnRUFDV0EsS0FEWDtBQUNrQjBFLElBQUFBLGFBQWEsRUFBRW9KLGtCQURqQztBQUNxRG5KLElBQUFBLFdBQVcsRUFBRWtKO0FBRGxFO0FBRUUsSUFBQSxXQUFXLEVBQUV2SixXQUZmO0FBR0UsSUFBQSxNQUFNLEVBQUU3SjtBQUhWLE1BS0dBLE1BQU0saUJBQ0wsZ0NBQUMscUJBQUQ7QUFDRSxJQUFBLEtBQUssRUFBRTtBQUNMc0ssTUFBQUEsU0FBUyxFQUFFTyxTQUFTLENBQUNQLFNBRGhCO0FBRUxyRixNQUFBQSxNQUFNLEVBQUU0RixTQUFTLENBQUM1RixNQUZiO0FBR0xvQixNQUFBQSxTQUFTLEVBQUV3RSxTQUFTLENBQUN4RTtBQUhoQixLQURUO0FBTUUsSUFBQSxTQUFTLEVBQUV5RCxPQUFPLENBQUMvRCxJQU5yQjtBQU9FLElBQUEsTUFBTSxFQUFFL0Y7QUFQVixJQU5KLENBREY7QUFtQkQsQ0FsUE07OztBQW9QUCxJQUFNNFgsWUFBWSxHQUFHLHdCQUFXO0FBQzlCN1IsRUFBQUEsSUFBSSxFQUFFO0FBQ0prTSxJQUFBQSxPQUFPLEVBQUUsaUJBREw7QUFFSixzQkFBa0I7QUFDaEJBLE1BQUFBLE9BQU8sRUFBRSxpQkFETztBQUVoQnpSLE1BQUFBLFFBQVEsRUFBRTtBQUZNO0FBRmQ7QUFEd0IsQ0FBWCxFQVFsQnVTLFlBUmtCLENBQXJCO2VBVWU2RSxZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IHsgTm9kZVNlbGVjdGlvbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbmltcG9ydCB7IFRleHRTdHlsZUtpdCB9IGZyb20gJ0B0aXB0YXAvZXh0ZW5zaW9uLXRleHQtc3R5bGUnO1xuaW1wb3J0IHsgRWRpdG9yQ29udGVudCwgdXNlRWRpdG9yLCB1c2VFZGl0b3JTdGF0ZSB9IGZyb20gJ0B0aXB0YXAvcmVhY3QnO1xuaW1wb3J0IFN0YXJ0ZXJLaXQgZnJvbSAnQHRpcHRhcC9zdGFydGVyLWtpdCc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ0B0aXB0YXAvZXh0ZW5zaW9uLXRhYmxlJztcbmltcG9ydCB7IFRhYmxlUm93IH0gZnJvbSAnQHRpcHRhcC9leHRlbnNpb24tdGFibGUtcm93JztcbmltcG9ydCB7IFRhYmxlQ2VsbCB9IGZyb20gJ0B0aXB0YXAvZXh0ZW5zaW9uLXRhYmxlLWNlbGwnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXIgfSBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi10YWJsZS1oZWFkZXInO1xuaW1wb3J0IFN1cGVyU2NyaXB0IGZyb20gJ0B0aXB0YXAvZXh0ZW5zaW9uLXN1cGVyc2NyaXB0JztcbmltcG9ydCBTdWJTY3JpcHQgZnJvbSAnQHRpcHRhcC9leHRlbnNpb24tc3Vic2NyaXB0JztcbmltcG9ydCBUZXh0QWxpZ24gZnJvbSAnQHRpcHRhcC9leHRlbnNpb24tdGV4dC1hbGlnbic7XG5pbXBvcnQgSW1hZ2UgZnJvbSAnQHRpcHRhcC9leHRlbnNpb24taW1hZ2UnO1xuXG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCB7XG4gIEV4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZU5vZGUsXG4gIERyYWdJblRoZUJsYW5rTm9kZSxcbiAgSW5saW5lRHJvcGRvd25Ob2RlLFxuICBSZXNwb25zZUFyZWFFeHRlbnNpb24sXG59IGZyb20gJy4vZXh0ZW5zaW9ucy9yZXNwb25zZUFyZWEnO1xuaW1wb3J0IHsgTWF0aE5vZGUgfSBmcm9tICcuL2V4dGVuc2lvbnMvbWF0aCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IHByaW1hcnkgfSBmcm9tICcuL3RoZW1lJztcbmltcG9ydCB7IFBJRV9UT09MQkFSX19DTEFTUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IERvbmVCdXR0b24gfSBmcm9tICcuL3BsdWdpbnMvdG9vbGJhci9kb25lLWJ1dHRvbic7XG5pbXBvcnQgeyBidWlsZFBsdWdpbnMsIERFRkFVTFRfUExVR0lOUyB9IGZyb20gXCIuL3BsdWdpbnMvaW5kZXhcIjtcbmltcG9ydCBCb2xkIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRCb2xkJztcbmltcG9ydCBJdGFsaWMgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdEl0YWxpYyc7XG5pbXBvcnQgU3RyaWtldGhyb3VnaCBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRm9ybWF0U3RyaWtldGhyb3VnaCc7XG5pbXBvcnQgQ29kZSBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQ29kZSc7XG5pbXBvcnQgR3JpZE9uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9HcmlkT24nO1xuaW1wb3J0IEJ1bGxldGVkTGlzdEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdExpc3RCdWxsZXRlZCc7XG5pbXBvcnQgTnVtYmVyZWRMaXN0SWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRm9ybWF0TGlzdE51bWJlcmVkJztcbmltcG9ydCBVbmRlcmxpbmUgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdFVuZGVybGluZWQnO1xuaW1wb3J0IEZ1bmN0aW9ucyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRnVuY3Rpb25zJztcbmltcG9ydCBJbWFnZUljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0ltYWdlJztcbmltcG9ydCB7IFRvb2xiYXJJY29uIH0gZnJvbSAnLi9wbHVnaW5zL3Jlc3BBcmVhL2ljb25zJztcbmltcG9ydCBSZWRvIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9SZWRvJztcbmltcG9ydCBVbmRvIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9VbmRvJztcbmltcG9ydCBUaGVhdGVyc0ljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1RoZWF0ZXJzJztcbmltcG9ydCBWb2x1bWVVcEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1ZvbHVtZVVwJztcbmltcG9ydCB7IGNoYXJhY3Rlckljb25zLCBzcGFuaXNoQ29uZmlnLCBzcGVjaWFsQ29uZmlnIH0gZnJvbSAnLi9wbHVnaW5zL2NoYXJhY3RlcnMvdXRpbHMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IE1hdGhUb29sYmFyLCBQdXJlVG9vbGJhciB9IGZyb20gJ0BwaWUtbGliL21hdGgtdG9vbGJhcic7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IEN1c3RvbVBvcHBlciBmcm9tICcuL3BsdWdpbnMvY2hhcmFjdGVycy9jdXN0b20tcG9wcGVyJztcbmltcG9ydCBUZXh0QWxpZ25JY29uIGZyb20gJy4vcGx1Z2lucy90ZXh0QWxpZ24vaWNvbnMnO1xuaW1wb3J0IENTU0ljb24gZnJvbSAnLi9wbHVnaW5zL2Nzcy9pY29ucyc7XG5cbmltcG9ydCB7IEltYWdlVXBsb2FkTm9kZSB9IGZyb20gJy4vZXh0ZW5zaW9ucy9pbWFnZSc7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJy4vZXh0ZW5zaW9ucy9tZWRpYSc7XG5pbXBvcnQgeyBDU1NNYXJrIH0gZnJvbSAnLi9leHRlbnNpb25zL2Nzcyc7XG5pbXBvcnQgeyBBZGRDb2x1bW4sIEFkZFJvdywgUmVtb3ZlQ29sdW1uLCBSZW1vdmVSb3csIFJlbW92ZVRhYmxlIH0gZnJvbSAnLi9wbHVnaW5zL3RhYmxlL2ljb25zJztcbmltcG9ydCBCb3JkZXJBbGwgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0JvcmRlckFsbCc7XG5cbmNvbnN0IENoYXJhY3Rlckljb24gPSAoeyBsZXR0ZXIgfSkgPT4gKFxuICA8ZGl2XG4gICAgc3R5bGU9e3tcbiAgICAgIGZvbnRTaXplOiAnMjRweCcsXG4gICAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgfX1cbiAgPlxuICAgIHtsZXR0ZXJ9XG4gIDwvZGl2PlxuKTtcblxuQ2hhcmFjdGVySWNvbi5wcm9wVHlwZXMgPSB7XG4gIGxldHRlcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGFyYWN0ZXJQaWNrZXIoeyBlZGl0b3IsIG9wdHMsIG9uQ2xvc2UgfSkge1xuICBpZiAoIW9wdHM/LmNoYXJhY3RlcnM/Lmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlKHsgdG9wOiAwLCBsZWZ0OiAwIH0pO1xuICBjb25zdCBbcG9wb3Zlciwgc2V0UG9wb3Zlcl0gPSB1c2VTdGF0ZShudWxsKTtcblxuICBsZXQgY29uZmlnVG9Vc2U7XG5cbiAgc3dpdGNoICh0cnVlKSB7XG4gICAgY2FzZSBvcHRzLmxhbmd1YWdlID09PSAnc3BhbmlzaCc6XG4gICAgICBjb25maWdUb1VzZSA9IHNwYW5pc2hDb25maWc7XG4gICAgICBicmVhaztcbiAgICBjYXNlIG9wdHMubGFuZ3VhZ2UgPT09ICdzcGVjaWFsJzpcbiAgICAgIGNvbmZpZ1RvVXNlID0gc3BlY2lhbENvbmZpZztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBjb25maWdUb1VzZSA9IG9wdHM7XG4gIH1cblxuICBjb25zdCBsYXlvdXRGb3JDaGFyYWN0ZXJzID0gY29uZmlnVG9Vc2UuY2hhcmFjdGVycy5yZWR1Y2UoXG4gICAgKG9iaiwgYXJyKSA9PiB7XG4gICAgICBpZiAoYXJyLmxlbmd0aCA+PSBvYmouY29sdW1ucykge1xuICAgICAgICBvYmouY29sdW1ucyA9IGFyci5sZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICB7IHJvd3M6IGNvbmZpZ1RvVXNlLmNoYXJhY3RlcnMubGVuZ3RoLCBjb2x1bW5zOiAwIH0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xvc2VQb3BPdmVyKCk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlZGl0b3IpIHJldHVybjtcblxuICAgIC8vIENhbGN1bGF0ZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBzZWxlY3Rpb25cbiAgICBjb25zdCBib2R5UmVjdCA9IGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeyBmcm9tIH0gPSBlZGl0b3Iuc3RhdGUuc2VsZWN0aW9uO1xuICAgIGNvbnN0IHN0YXJ0ID0gZWRpdG9yLnZpZXcuY29vcmRzQXRQb3MoZnJvbSk7XG4gICAgc2V0UG9zaXRpb24oe1xuICAgICAgdG9wOiBzdGFydC50b3AgKyBNYXRoLmFicyhib2R5UmVjdC50b3ApICsgNDAsIC8vIHNoaWZ0IGFib3ZlXG4gICAgICBsZWZ0OiBzdGFydC5sZWZ0LFxuICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGUpID0+IHtcbiAgICAgIGlmIChjb250YWluZXJSZWYuY3VycmVudCAmJiAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZS50YXJnZXQpICYmICFlZGl0b3Iudmlldy5kb20uY29udGFpbnMoZS50YXJnZXQpKSB7XG4gICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgfSwgW2VkaXRvcl0pO1xuXG4gIGNvbnN0IHJlbmRlclBvcE92ZXIgPSAoZXZlbnQsIGVsKSA9PiBzZXRQb3BvdmVyKHsgYW5jaG9yRWw6IGV2ZW50LmN1cnJlbnRUYXJnZXQsIGVsIH0pO1xuICBjb25zdCBjbG9zZVBvcE92ZXIgPSAoKSA9PiBzZXRQb3BvdmVyKG51bGwpO1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9ICh2YWwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVkaXRvclxuICAgICAgICAuY2hhaW4oKVxuICAgICAgICAuZm9jdXMoKVxuICAgICAgICAuaW5zZXJ0Q29udGVudCh2YWwpXG4gICAgICAgIC5ydW4oKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7UmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiaW5zZXJ0LWNoYXJhY3Rlci1kaWFsb2dcIlxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHRvcDogYCR7cG9zaXRpb24udG9wfXB4YCxcbiAgICAgICAgICAgIGxlZnQ6IGAke3Bvc2l0aW9uLmxlZnR9cHhgLFxuICAgICAgICAgICAgbWF4V2lkdGg6ICc1MDBweCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8UHVyZVRvb2xiYXJcbiAgICAgICAgICAgICAga2V5UGFkQ2hhcmFjdGVyUmVmPXtvcHRzLmtleVBhZENoYXJhY3RlclJlZn1cbiAgICAgICAgICAgICAgc2V0S2V5cGFkSW50ZXJhY3Rpb249e29wdHMuc2V0S2V5cGFkSW50ZXJhY3Rpb259XG4gICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICBub0RlY2ltYWxcbiAgICAgICAgICAgICAgaGlkZUlucHV0XG4gICAgICAgICAgICAgIG5vTGF0ZXhIYW5kbGluZ1xuICAgICAgICAgICAgICBoaWRlRG9uZUJ1dHRvbkJhY2tncm91bmRcbiAgICAgICAgICAgICAgbGF5b3V0Rm9yS2V5UGFkPXtsYXlvdXRGb3JDaGFyYWN0ZXJzfVxuICAgICAgICAgICAgICBhZGRpdGlvbmFsS2V5cz17Y29uZmlnVG9Vc2UuY2hhcmFjdGVycy5yZWR1Y2UoKGFyciwgbikgPT4ge1xuICAgICAgICAgICAgICAgIGFyciA9IFtcbiAgICAgICAgICAgICAgICAgIC4uLmFycixcbiAgICAgICAgICAgICAgICAgIC4uLm4ubWFwKChrKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBnZXQoaywgJ25hbWUnKSB8fCBrLFxuICAgICAgICAgICAgICAgICAgICB3cml0ZTogZ2V0KGssICd3cml0ZScpIHx8IGssXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXQoaywgJ2xhYmVsJykgfHwgayxcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdjaGFyYWN0ZXInLFxuICAgICAgICAgICAgICAgICAgICBleHRyYUNsYXNzOiAnY2hhcmFjdGVyJyxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFQcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLihrLmV4dHJhUHJvcHMgfHwge30pLFxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4oay5leHRyYVByb3BzIHx8IHt9KS5zdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4oY29uZmlnVG9Vc2UuaGFzUHJldmlld1xuICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiB7IG9uTW91c2VFbnRlcjogKGV2KSA9PiByZW5kZXJQb3BPdmVyKGV2LCBrKSwgb25Nb3VzZUxlYXZlOiBjbG9zZVBvcE92ZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFycjtcbiAgICAgICAgICAgICAgfSwgW10pfVxuICAgICAgICAgICAgICBrZXlwYWRNb2RlPVwibGFuZ3VhZ2VcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICBvbkRvbmU9e29uQ2xvc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj4sXG4gICAgICAgIGRvY3VtZW50LmJvZHksXG4gICAgICApfVxuICAgICAge3BvcG92ZXIgJiZcbiAgICAgICAgUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICAgIDxDdXN0b21Qb3BwZXIgb25DbG9zZT17Y2xvc2VQb3BPdmVyfSBhbmNob3JFbD17cG9wb3Zlci5hbmNob3JFbH0+XG4gICAgICAgICAgICA8ZGl2Pntwb3BvdmVyLmVsLmxhYmVsfTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogMjAsIGxpbmVIZWlnaHQ6ICcyMHB4JyB9fT57cG9wb3Zlci5lbC5kZXNjcmlwdGlvbn08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6IDIwLCBsaW5lSGVpZ2h0OiAnMjBweCcgfX0+e3BvcG92ZXIuZWwudW5pY29kZX08L2Rpdj5cbiAgICAgICAgICA8L0N1c3RvbVBvcHBlcj4sXG4gICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgKX1cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufVxuXG5jb25zdCBTdXBlcnNjcmlwdEljb24gPSAoKSA9PiAoXG4gIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNHB4XCIgZmlsbD1cIm5vbmVcIj5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0yMiw3aC0ydjFoM3YxaC00VjdjMC0wLjU1LDAuNDUtMSwxLTFoMlY1aC0zVjRoM2MwLjU1LDAsMSwwLjQ1LDEsMXYxQzIzLDYuNTUsMjIuNTUsNywyMiw3eiBNNS44OCwyMGgyLjY2bDMuNC01LjQyaDAuMTIgbDMuNCw1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSw2aC0yLjY4bC0zLjA3LDQuOTloLTAuMTJMOC44NSw2SDYuMTlsNC4zMiw2LjczTDUuODgsMjB6XCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgU3Vic2NyaXB0SWNvbiA9ICgpID0+IChcbiAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBmaWxsPVwibm9uZVwiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTIyLDE4aC0ydjFoM3YxaC00di0yYzAtMC41NSwwLjQ1LTEsMS0xaDJ2LTFoLTN2LTFoM2MwLjU1LDAsMSwwLjQ1LDEsMXYxQzIzLDE3LjU1LDIyLjU1LDE4LDIyLDE4eiBNNS44OCwxOGgyLjY2IGwzLjQtNS40MmgwLjEybDMuNCw1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSw0aC0yLjY4bC0zLjA3LDQuOTloLTAuMTJMOC44NSw0SDYuMTlsNC4zMiw2LjczTDUuODgsMTh6XCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgSGVhZGluZ0ljb24gPSAoKSA9PiAoXG4gIDxzdmdcbiAgICB3aWR0aD1cIjMwXCJcbiAgICBoZWlnaHQ9XCIyOFwiXG4gICAgdmlld0JveD1cIjAgMCAzMCAyOFwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHN0eWxlPXt7IHdpZHRoOiAnMjBweCcsIGhlaWdodDogJzE4cHgnIH19XG4gID5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0yNyA0VjI0SDI5QzI5LjUgMjQgMzAgMjQuNSAzMCAyNVYyN0MzMCAyNy41NjI1IDI5LjUgMjggMjkgMjhIMTlDMTguNDM3NSAyOCAxOCAyNy41NjI1IDE4IDI3VjI1QzE4IDI0LjUgMTguNDM3NSAyNCAxOSAyNEgyMVYxNkg5VjI0SDExQzExLjUgMjQgMTIgMjQuNSAxMiAyNVYyN0MxMiAyNy41NjI1IDExLjUgMjggMTEgMjhIMUMwLjQzNzUgMjggMCAyNy41NjI1IDAgMjdWMjVDMCAyNC41IDAuNDM3NSAyNCAxIDI0SDNWNEgxQzAuNDM3NSA0IDAgMy41NjI1IDAgM1YxQzAgMC41IDAuNDM3NSAwIDEgMEgxMUMxMS41IDAgMTIgMC41IDEyIDFWM0MxMiAzLjU2MjUgMTEuNSA0IDExIDRIOVYxMkgyMVY0SDE5QzE4LjQzNzUgNCAxOCAzLjU2MjUgMTggM1YxQzE4IDAuNSAxOC40Mzc1IDAgMTkgMEgyOUMyOS41IDAgMzAgMC41IDMwIDFWM0MzMCAzLjU2MjUgMjkuNSA0IDI5IDRIMjdaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgRXh0ZW5kZWRUYWJsZSA9IFRhYmxlLmV4dGVuZCh7XG4gIGFkZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvcmRlcjogeyBkZWZhdWx0OiAnMScgfSxcbiAgICB9O1xuICB9LFxuICByZW5kZXJIVE1MKHByb3BzKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxUYWJsZSA9IHRoaXMucGFyZW50KHByb3BzKTtcbiAgICBjb25zdCB7IGJvcmRlciB9ID0gcHJvcHMuSFRNTEF0dHJpYnV0ZXM7XG5cbiAgICBjb25zdCBwcmV2aW91c1N0eWxlID0gYCR7b3JpZ2luYWxUYWJsZVsxXS5zdHlsZX0ke29yaWdpbmFsVGFibGVbMV0uc3R5bGUubWF0Y2goLy4qOyAqLykgPyAnJyA6ICc7J31gO1xuXG4gICAgb3JpZ2luYWxUYWJsZVsxXS5zdHlsZSA9IGAke3ByZXZpb3VzU3R5bGV9XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6IHZhcigtLXBpZS10ZXh0LCBibGFjayk7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpZS1iYWNrZ3JvdW5kLCByZ2JhKDI1NSwgMjU1LCAyNTUpKWA7XG4gICAgb3JpZ2luYWxUYWJsZVsxXS5ib3JkZXIgPSBib3JkZXIgPyBib3JkZXIgOiAnMSc7XG5cbiAgICByZXR1cm4gb3JpZ2luYWxUYWJsZTtcbiAgfSxcbn0pO1xuXG5jb25zdCBzdHlsZXMgPSAodGhlbWUpID0+ICh7XG4gIHJvb3Q6IHtcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBwYWRkaW5nOiAnMHB4JyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2NjYycsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjdXJzb3I6ICd0ZXh0JyxcbiAgICAnJiBbZGF0YS1zbGF0ZS1lZGl0b3I9XCJ0cnVlXCJdJzoge1xuICAgICAgd29yZEJyZWFrOiAnYnJlYWstd29yZCcsXG4gICAgICBvdmVyZmxvdzogJ3Zpc2libGUnLFxuICAgICAgbWF4SGVpZ2h0OiAnNTAwcHgnLFxuICAgICAgLy8gbmVlZGVkIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gcHV0IHRoZSBmb2N1cyBiZWZvcmUgYSB2b2lkIGVsZW1lbnQgd2hlbiBpdCBpcyB0aGUgZmlyc3Qgb25lIGluIHRoZSBlZGl0b3JcbiAgICAgIHBhZGRpbmc6ICc1cHgnLFxuICAgIH0sXG5cbiAgICAnJjpmaXJzdC1jaGlsZCc6IHtcbiAgICAgIG1hcmdpblRvcDogMCxcbiAgICB9LFxuXG4gICAgJyYgdWwsICYgb2wnOiB7XG4gICAgICBwYWRkaW5nOiAnMCAxcmVtJyxcbiAgICAgIG1hcmdpbjogJzEuMjVyZW0gMXJlbSAxLjI1cmVtIDAuNHJlbScsXG4gICAgfSxcblxuICAgICcmIHVsIGxpIHAsICYgb2wgbGkgcCc6IHtcbiAgICAgIG1hcmdpblRvcDogJzAuMjVlbScsXG4gICAgICBtYXJnaW5Cb3R0b206ICcwLjI1ZW0nLFxuICAgIH0sXG5cbiAgICAnJiBoMSwgJiBoMiwgJiBoMywgJiBoNCwgJiBoNSwgJiBoNic6IHtcbiAgICAgIGxpbmVIZWlnaHQ6IDEuMSxcbiAgICAgIG1hcmdpblRvcDogJzIuNXJlbScsXG4gICAgICB0ZXh0V3JhcDogJ3ByZXR0eScsXG4gICAgfSxcblxuICAgICcmIGgxLCAmIGgyJzoge1xuICAgICAgbWFyZ2luVG9wOiAnMy41cmVtJyxcbiAgICAgIG1hcmdpbkJvdHRvbTogJzEuNXJlbScsXG4gICAgfSxcblxuICAgICcmIGgxJzoge1xuICAgICAgZm9udFNpemU6ICcxLjRyZW0nLFxuICAgIH0sXG5cbiAgICAnJiBoMic6IHtcbiAgICAgIGZvbnRTaXplOiAnMS4ycmVtJyxcbiAgICB9LFxuXG4gICAgJyYgaDMnOiB7XG4gICAgICBmb250U2l6ZTogJzEuMXJlbScsXG4gICAgfSxcblxuICAgICcmIGg0LCAmIGg1LCAmIGg2Jzoge1xuICAgICAgZm9udFNpemU6ICcxcmVtJyxcbiAgICB9LFxuXG4gICAgJyYgY29kZSc6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXB1cnBsZS1saWdodCknLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMC40cmVtJyxcbiAgICAgIGNvbG9yOiAndmFyKC0tYmxhY2spJyxcbiAgICAgIGZvbnRTaXplOiAnMC44NXJlbScsXG4gICAgICBwYWRkaW5nOiAnMC4yNWVtIDAuM2VtJyxcbiAgICB9LFxuXG4gICAgJyYgcHJlJzoge1xuICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLWJsYWNrKScsXG4gICAgICBib3JkZXJSYWRpdXM6ICcwLjVyZW0nLFxuICAgICAgY29sb3I6ICd2YXIoLS13aGl0ZSknLFxuICAgICAgZm9udEZhbWlseTogXCInSmV0QnJhaW5zTW9ubycsIG1vbm9zcGFjZVwiLFxuICAgICAgbWFyZ2luOiAnMS41cmVtIDAnLFxuICAgICAgcGFkZGluZzogJzAuNzVyZW0gMXJlbScsXG5cbiAgICAgICcmIGNvZGUnOiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICdub25lJyxcbiAgICAgICAgY29sb3I6ICdpbmhlcml0JyxcbiAgICAgICAgZm9udFNpemU6ICcwLjhyZW0nLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgJyYgYmxvY2txdW90ZSc6IHtcbiAgICAgIGJvcmRlckxlZnQ6ICczcHggc29saWQgdmFyKC0tZ3JheS0zKScsXG4gICAgICBtYXJnaW46ICcxLjVyZW0gMCcsXG4gICAgICBwYWRkaW5nTGVmdDogJzFyZW0nLFxuICAgIH0sXG5cbiAgICAnJiBocic6IHtcbiAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgYm9yZGVyVG9wOiAnMXB4IHNvbGlkIHZhcigtLWdyYXktMiknLFxuICAgICAgbWFyZ2luOiAnMnJlbSAwJyxcbiAgICB9LFxuXG4gICAgJyYgdGFibGUnOiB7XG4gICAgICB0YWJsZUxheW91dDogJ2ZpeGVkJyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgICB9LFxuICAgICcmIHRhYmxlOm5vdChbYm9yZGVyPVwiMVwiXSkgdHInOiB7XG4gICAgICBib3JkZXJUb3A6ICcxcHggc29saWQgI2RmZTJlNScsXG4gICAgfSxcbiAgICAnJiB0ZCwgdGgnOiB7XG4gICAgICBwYWRkaW5nOiAnLjZlbSAxZW0nLFxuICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICB9LFxuICAgICcmIHRhYmxlOm5vdChbYm9yZGVyPVwiMVwiXSkgdGQsIHRoJzoge1xuICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICNkZmUyZTUnLFxuICAgIH0sXG4gIH0sXG4gIGNoaWxkcmVuOiB7XG4gICAgcGFkZGluZzogJzEwcHggMTZweCcsXG4gIH0sXG4gIGVkaXRvckhvbGRlcjoge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHBhZGRpbmc6ICcwcHgnLFxuICAgIC8vIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgICAnJjo6YmVmb3JlJzoge1xuICAgICAgbGVmdDogJzAnLFxuICAgICAgcmlnaHQ6ICcwJyxcbiAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgIGNvbnRlbnQ6ICdcIlwiJyxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAwbXMnLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjQyKScsXG4gICAgfSxcbiAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAnMCcsXG4gICAgICByaWdodDogJzAnLFxuICAgICAgYm90dG9tOiAnMCcsXG4gICAgICBoZWlnaHQ6ICcxcHgnLFxuICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMCknLFxuICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAyMDBtcyBjdWJpYy1iZXppZXIoMC4wLCAwLjAsIDAuMiwgMSkgMG1zLCBiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGxpbmVhcicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNDIpJyxcbiAgICB9LFxuICAgICcmOmZvY3VzJzoge1xuICAgICAgJyY6OmFmdGVyJzoge1xuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMSknLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnksXG4gICAgICAgIGhlaWdodDogJzJweCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgxKScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5jb21tb24uYmxhY2ssXG4gICAgICAgIGhlaWdodDogJzJweCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGRpc2FibGVkVW5kZXJsaW5lOiB7XG4gICAgJyY6OmJlZm9yZSc6IHtcbiAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICB9LFxuICAgICcmOjphZnRlcic6IHtcbiAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICB9LFxuICB9LFxuICBkaXNhYmxlZFNjcm9sbGJhcjoge1xuICAgICcmOjotd2Via2l0LXNjcm9sbGJhcic6IHtcbiAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICB9LFxuICAgIHNjcm9sbGJhcldpZHRoOiAnbm9uZScsXG4gICAgJy1tcy1vdmVyZmxvdy1zdHlsZSc6ICdub25lJyxcbiAgfSxcbiAgcmVhZE9ubHk6IHtcbiAgICAnJjo6YmVmb3JlJzoge1xuICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgIGJhY2tncm91bmRTaXplOiAnNXB4IDFweCcsXG4gICAgICBiYWNrZ3JvdW5kSW1hZ2U6ICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSknLFxuICAgICAgYmFja2dyb3VuZFJlcGVhdDogJ3JlcGVhdC14JyxcbiAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogJ2xlZnQgdG9wJyxcbiAgICB9LFxuICAgICcmOjphZnRlcic6IHtcbiAgICAgIGxlZnQ6ICcwJyxcbiAgICAgIHJpZ2h0OiAnMCcsXG4gICAgICBib3R0b206ICcwJyxcbiAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICBjb250ZW50OiAnXCJcIicsXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgwKScsXG4gICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDIwMG1zIGN1YmljLWJlemllcigwLjAsIDAuMCwgMC4yLCAxKSAwbXMsIGJhY2tncm91bmQtY29sb3IgMG1zIGxpbmVhcicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDApJyxcbiAgICB9LFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgJyY6OmFmdGVyJzoge1xuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMCknLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuY29tbW9uLmJsYWNrLFxuICAgICAgICBoZWlnaHQ6ICcycHgnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBlZGl0b3JJbkZvY3VzOiB7XG4gICAgJyY6OmFmdGVyJzoge1xuICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDEpJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogcHJpbWFyeSxcbiAgICAgIGhlaWdodDogJzJweCcsXG4gICAgfSxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgICcmOjphZnRlcic6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBwcmltYXJ5LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBlcnJvcjoge1xuICAgIGJvcmRlcjogYDJweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZXJyb3IubWFpbn0gIWltcG9ydGFudGAsXG4gIH0sXG4gIG5vQm9yZGVyOiB7XG4gICAgYm9yZGVyOiAnbm9uZScsXG4gIH0sXG4gIG5vUGFkZGluZzoge1xuICAgIHBhZGRpbmc6IDAsXG4gIH0sXG4gIHRvb2xiYXJPblRvcDoge1xuICAgIG1hcmdpblRvcDogJzQ1cHgnLFxuICB9LFxufSk7XG5cbmNvbnN0IGRlZmF1bHRSZXNwb25zZUFyZWFQcm9wcyA9IHtcbiAgb3B0aW9uczoge30sXG4gIHJlc3BBcmVhVG9vbGJhcjogKCkgPT4ge30sXG4gIG9uSGFuZGxlQXJlYUNoYW5nZTogKCkgPT4ge30sXG59O1xuXG5jb25zdCB2YWx1ZVRvU2l6ZSA9ICh2KSA9PiB7XG4gIGlmICghdikge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBjYWxjUmVnZXggPSAvXmNhbGNcXCgoLiopXFwpJC87XG5cbiAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2LmVuZHNXaXRoKCclJykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHYuZW5kc1dpdGgoJ3B4JykgfHxcbiAgICAgIHYuZW5kc1dpdGgoJ3ZoJykgfHxcbiAgICAgIHYuZW5kc1dpdGgoJ3Z3JykgfHxcbiAgICAgIHYuZW5kc1dpdGgoJ2NoJykgfHxcbiAgICAgIHYuZW5kc1dpdGgoJ2VtJykgfHxcbiAgICAgIHYubWF0Y2goY2FsY1JlZ2V4KVxuICAgICkge1xuICAgICAgcmV0dXJuIHY7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQodiwgMTApO1xuICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKSA/IHZhbHVlIDogYCR7dmFsdWV9cHhgO1xuICAgIH1cbiAgfVxuICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGAke3Z9cHhgO1xuICB9XG59O1xuXG5mdW5jdGlvbiBUaXB0YXBDb250YWluZXIocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGVkaXRvcixcbiAgICBlZGl0b3JTdGF0ZSxcbiAgICBjbGFzc2VzLFxuICAgIGNoaWxkcmVuLFxuICAgIGRpc2FibGVVbmRlcmxpbmUsXG4gICAgZGlzYWJsZVNjcm9sbGJhcixcbiAgICBhY3RpdmVQbHVnaW5zLFxuICAgIHRvb2xiYXJPcHRzLFxuICAgIHJlc3BvbnNlQXJlYVByb3BzLFxuICAgIGF1dG9Gb2N1cyxcbiAgICBtaW5XaWR0aCxcbiAgICB3aWR0aCxcbiAgICBtYXhXaWR0aCxcbiAgICBtaW5IZWlnaHQsXG4gICAgaGVpZ2h0LFxuICAgIG1heEhlaWdodCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBob2xkZXJOYW1lcyA9IGNsYXNzTmFtZXMoY2xhc3Nlcy5lZGl0b3JIb2xkZXIsIHtcbiAgICBbY2xhc3Nlcy5lZGl0b3JJbkZvY3VzXTogZWRpdG9yU3RhdGUuaXNGb2N1c2VkLFxuICAgIFtjbGFzc2VzLnJlYWRPbmx5XTogZWRpdG9yU3RhdGUucmVhZE9ubHksXG4gICAgW2NsYXNzZXMuZGlzYWJsZWRVbmRlcmxpbmVdOiBkaXNhYmxlVW5kZXJsaW5lLFxuICAgIFtjbGFzc2VzLmRpc2FibGVkU2Nyb2xsYmFyXTogZGlzYWJsZVNjcm9sbGJhcixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZWRpdG9yICYmIGF1dG9Gb2N1cykge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGVkaXRvci5jb21tYW5kcy5mb2N1cygnZW5kJyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtlZGl0b3IsIGF1dG9Gb2N1c10pO1xuXG4gIGNvbnN0IHNpemVTdHlsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogdmFsdWVUb1NpemUod2lkdGgpLFxuICAgICAgbWluV2lkdGg6IHZhbHVlVG9TaXplKG1pbldpZHRoKSxcbiAgICAgIG1heFdpZHRoOiB2YWx1ZVRvU2l6ZShtYXhXaWR0aCksXG4gICAgICBoZWlnaHQ6IHZhbHVlVG9TaXplKGhlaWdodCksXG4gICAgICBtaW5IZWlnaHQ6IHZhbHVlVG9TaXplKG1pbkhlaWdodCksXG4gICAgICBtYXhIZWlnaHQ6IHZhbHVlVG9TaXplKG1heEhlaWdodCksXG4gICAgfTtcbiAgfSwgW21pbldpZHRoLCB3aWR0aCwgbWF4V2lkdGgsIG1pbkhlaWdodCwgaGVpZ2h0LCBtYXhIZWlnaHRdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAge1xuICAgICAgICAgIFtjbGFzc2VzLm5vQm9yZGVyXTogdG9vbGJhck9wdHMgJiYgdG9vbGJhck9wdHMubm9Cb3JkZXIsXG4gICAgICAgICAgW2NsYXNzZXMuZXJyb3JdOiB0b29sYmFyT3B0cyAmJiB0b29sYmFyT3B0cy5lcnJvcixcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3Nlcy5yb290LFxuICAgICAgICBwcm9wcy5jbGFzc05hbWUsXG4gICAgICApfVxuICAgICAgc3R5bGU9e3sgd2lkdGg6IHNpemVTdHlsZS53aWR0aCwgbWluV2lkdGg6IHNpemVTdHlsZS5taW5XaWR0aCwgbWF4V2lkdGg6IHNpemVTdHlsZS5tYXhXaWR0aCB9fVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtob2xkZXJOYW1lc30+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFtjbGFzc2VzLm5vUGFkZGluZ106IHRvb2xiYXJPcHRzICYmIHRvb2xiYXJPcHRzLm5vUGFkZGluZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGFzc2VzLmNoaWxkcmVuLFxuICAgICAgICAgICl9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKntlZGl0b3JTdGF0ZS5pc0ZvY3VzZWQgJiYgPE1lbnVCYXIgZWRpdG9yPXtlZGl0b3J9IC8+fSovfVxuICAgICAgey8qPFRvb2xiYXIgZWRpdG9yPXtlZGl0b3J9IGVkaXRvclN0YXRlPXtlZGl0b3JTdGF0ZX0gcGx1Z2lucz17cGx1Z2luc30gdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfSBpc0ZvY3VzZWQ9e2VkaXRvclN0YXRlLmlzRm9jdXNlZH0gLz4qL31cbiAgICAgIHtlZGl0b3IgJiYgKFxuICAgICAgICA8U3R5bGVkTWVudUJhclxuICAgICAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgICAgIHJlc3BvbnNlQXJlYVByb3BzPXtyZXNwb25zZUFyZWFQcm9wc31cbiAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgYWN0aXZlUGx1Z2lucz17YWN0aXZlUGx1Z2luc31cbiAgICAgICAgICBvbkNoYW5nZT17cHJvcHMub25DaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBFZGl0b3JDb250YWluZXIgPSB3aXRoU3R5bGVzKHN0eWxlcykoVGlwdGFwQ29udGFpbmVyKTtcblxuZnVuY3Rpb24gTWVudUJhcih7IGVkaXRvciwgY2xhc3NlcywgYWN0aXZlUGx1Z2lucywgdG9vbGJhck9wdHM6IHRvb2xPcHRzLCByZXNwb25zZUFyZWFQcm9wcywgb25DaGFuZ2UgfSkge1xuICBjb25zdCBbc2hvd1BpY2tlciwgc2V0U2hvd1BpY2tlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHRvb2xiYXJPcHRzID0gdG9vbE9wdHMgPz8ge307XG4gIC8vIFJlYWQgdGhlIGN1cnJlbnQgZWRpdG9yJ3Mgc3RhdGUsIGFuZCByZS1yZW5kZXIgdGhlIGNvbXBvbmVudCB3aGVuIGl0IGNoYW5nZXNcbiAgY29uc3QgZWRpdG9yU3RhdGUgPSB1c2VFZGl0b3JTdGF0ZSh7XG4gICAgZWRpdG9yLFxuICAgIHNlbGVjdG9yOiAoY3R4KSA9PiB7XG4gICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gY3R4LmVkaXRvcj8uc3RhdGUgfHwge307XG5cbiAgICAgIGxldCBjdXJyZW50Tm9kZTtcblxuICAgICAgaWYgKHNlbGVjdGlvbiBpbnN0YW5jZW9mIE5vZGVTZWxlY3Rpb24pIHtcbiAgICAgICAgY3VycmVudE5vZGUgPSBzZWxlY3Rpb24ubm9kZTsgLy8gdGhlIHNlbGVjdGVkIG5vZGVcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGlkZURlZmF1bHRUb29sYmFyID1cbiAgICAgICAgY3R4LmVkaXRvcj8uaXNBY3RpdmUoJ21hdGgnKSB8fFxuICAgICAgICBjdHguZWRpdG9yPy5pc0FjdGl2ZSgnZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2UnKSB8fFxuICAgICAgICBjdHguZWRpdG9yPy5pc0FjdGl2ZSgnaW1hZ2VVcGxvYWROb2RlJyk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGN1cnJlbnROb2RlLFxuICAgICAgICBoaWRlRGVmYXVsdFRvb2xiYXIsXG4gICAgICAgIGlzRm9jdXNlZDogY3R4LmVkaXRvcj8uaXNGb2N1c2VkLFxuICAgICAgICBpc0JvbGQ6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2JvbGQnKSA/PyBmYWxzZSxcbiAgICAgICAgY2FuQm9sZDpcbiAgICAgICAgICBjdHguZWRpdG9yXG4gICAgICAgICAgICAuY2FuKClcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAudG9nZ2xlQm9sZCgpXG4gICAgICAgICAgICAucnVuKCkgPz8gZmFsc2UsXG4gICAgICAgIGlzVGFibGU6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ3RhYmxlJykgPz8gZmFsc2UsXG4gICAgICAgIHRhYmxlSGFzQm9yZGVyOiBjdHguZWRpdG9yLmdldEF0dHJpYnV0ZXMoJ3RhYmxlJyk/LmJvcmRlciA9PT0gJzEnID8/IGZhbHNlLFxuICAgICAgICBjYW5UYWJsZTpcbiAgICAgICAgICBjdHguZWRpdG9yXG4gICAgICAgICAgICAuY2FuKClcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuaW5zZXJ0VGFibGUoKVxuICAgICAgICAgICAgLnJ1bigpID8/IGZhbHNlLFxuICAgICAgICBpc0l0YWxpYzogY3R4LmVkaXRvci5pc0FjdGl2ZSgnaXRhbGljJykgPz8gZmFsc2UsXG4gICAgICAgIGNhbkl0YWxpYzpcbiAgICAgICAgICBjdHguZWRpdG9yXG4gICAgICAgICAgICAuY2FuKClcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAudG9nZ2xlSXRhbGljKClcbiAgICAgICAgICAgIC5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgaXNTdHJpa2U6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ3N0cmlrZScpID8/IGZhbHNlLFxuICAgICAgICBjYW5TdHJpa2U6XG4gICAgICAgICAgY3R4LmVkaXRvclxuICAgICAgICAgICAgLmNhbigpXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLnRvZ2dsZVN0cmlrZSgpXG4gICAgICAgICAgICAucnVuKCkgPz8gZmFsc2UsXG4gICAgICAgIGlzQ29kZTogY3R4LmVkaXRvci5pc0FjdGl2ZSgnY29kZScpID8/IGZhbHNlLFxuICAgICAgICBjYW5Db2RlOlxuICAgICAgICAgIGN0eC5lZGl0b3JcbiAgICAgICAgICAgIC5jYW4oKVxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC50b2dnbGVDb2RlKClcbiAgICAgICAgICAgIC5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgY2FuQ2xlYXJNYXJrczpcbiAgICAgICAgICBjdHguZWRpdG9yXG4gICAgICAgICAgICAuY2FuKClcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAudW5zZXRBbGxNYXJrcygpXG4gICAgICAgICAgICAucnVuKCkgPz8gZmFsc2UsXG4gICAgICAgIGlzVW5kZXJsaW5lOiBjdHguZWRpdG9yLmlzQWN0aXZlKCd1bmRlcmxpbmUnKSA/PyBmYWxzZSxcbiAgICAgICAgaXNTdWJTY3JpcHQ6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ3N1YnNjcmlwdCcpID8/IGZhbHNlLFxuICAgICAgICBpc1N1cGVyU2NyaXB0OiBjdHguZWRpdG9yLmlzQWN0aXZlKCdzdXBlcnNjcmlwdCcpID8/IGZhbHNlLFxuICAgICAgICBpc1BhcmFncmFwaDogY3R4LmVkaXRvci5pc0FjdGl2ZSgncGFyYWdyYXBoJykgPz8gZmFsc2UsXG4gICAgICAgIGlzSGVhZGluZzE6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2hlYWRpbmcnLCB7IGxldmVsOiAxIH0pID8/IGZhbHNlLFxuICAgICAgICBpc0hlYWRpbmcyOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogMiB9KSA/PyBmYWxzZSxcbiAgICAgICAgaXNIZWFkaW5nMzogY3R4LmVkaXRvci5pc0FjdGl2ZSgnaGVhZGluZycsIHsgbGV2ZWw6IDMgfSkgPz8gZmFsc2UsXG4gICAgICAgIGlzSGVhZGluZzQ6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2hlYWRpbmcnLCB7IGxldmVsOiA0IH0pID8/IGZhbHNlLFxuICAgICAgICBpc0hlYWRpbmc1OiBjdHguZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogNSB9KSA/PyBmYWxzZSxcbiAgICAgICAgaXNIZWFkaW5nNjogY3R4LmVkaXRvci5pc0FjdGl2ZSgnaGVhZGluZycsIHsgbGV2ZWw6IDYgfSkgPz8gZmFsc2UsXG4gICAgICAgIGlzQnVsbGV0TGlzdDogY3R4LmVkaXRvci5pc0FjdGl2ZSgnYnVsbGV0TGlzdCcpID8/IGZhbHNlLFxuICAgICAgICBpc09yZGVyZWRMaXN0OiBjdHguZWRpdG9yLmlzQWN0aXZlKCdvcmRlcmVkTGlzdCcpID8/IGZhbHNlLFxuICAgICAgICBpc0NvZGVCbG9jazogY3R4LmVkaXRvci5pc0FjdGl2ZSgnY29kZUJsb2NrJykgPz8gZmFsc2UsXG4gICAgICAgIGlzQmxvY2txdW90ZTogY3R4LmVkaXRvci5pc0FjdGl2ZSgnYmxvY2txdW90ZScpID8/IGZhbHNlLFxuICAgICAgICBjYW5VbmRvOlxuICAgICAgICAgIGN0eC5lZGl0b3JcbiAgICAgICAgICAgIC5jYW4oKVxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC51bmRvKClcbiAgICAgICAgICAgIC5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgY2FuUmVkbzpcbiAgICAgICAgICBjdHguZWRpdG9yXG4gICAgICAgICAgICAuY2FuKClcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAucmVkbygpXG4gICAgICAgICAgICAucnVuKCkgPz8gZmFsc2UsXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xuICBjb25zdCBoYXNEb25lQnV0dG9uID0gZmFsc2U7XG4gIGNvbnN0IGF1dG9XaWR0aCA9IGZhbHNlO1xuXG4gIGNvbnN0IG5hbWVzID0gY2xhc3NOYW1lcyhjbGFzc2VzLnRvb2xiYXIsIFBJRV9UT09MQkFSX19DTEFTUywge1xuICAgIFtjbGFzc2VzLnRvb2xiYXJXaXRoTm9Eb25lXTogIWhhc0RvbmVCdXR0b24sXG4gICAgW2NsYXNzZXMudG9vbGJhclRvcF06IHRvb2xiYXJPcHRzLnBvc2l0aW9uID09PSAndG9wJyxcbiAgICBbY2xhc3Nlcy50b29sYmFyUmlnaHRdOiB0b29sYmFyT3B0cy5hbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgW2NsYXNzZXMuZm9jdXNlZF06IHRvb2xiYXJPcHRzLmFsd2F5c1Zpc2libGUgfHwgKGVkaXRvclN0YXRlLmlzRm9jdXNlZCAmJiAhZWRpdG9yLl90b29sYmFyT3BlbmVkKSxcbiAgICBbY2xhc3Nlcy5hdXRvV2lkdGhdOiBhdXRvV2lkdGgsXG4gICAgW2NsYXNzZXMuZnVsbFdpZHRoXTogIWF1dG9XaWR0aCxcbiAgICBbY2xhc3Nlcy5oaWRkZW5dOiB0b29sYmFyT3B0cy5pc0hpZGRlbiA9PT0gdHJ1ZSxcbiAgfSk7XG4gIGNvbnN0IGN1c3RvbVN0eWxlcyA9IHRvb2xiYXJPcHRzLm1pbldpZHRoICE9PSB1bmRlZmluZWQgPyB7IG1pbldpZHRoOiB0b29sYmFyT3B0cy5taW5XaWR0aCB9IDoge307XG4gIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9O1xuICBjb25zdCB0b29sYmFyQnV0dG9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gW1xuICAgICAge1xuICAgICAgICBpY29uOiA8R3JpZE9uIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAuaW5zZXJ0VGFibGUoeyByb3dzOiAyLCBjb2xzOiAyLCB3aXRoSGVhZGVyUm93OiBmYWxzZSB9KVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCd0YWJsZScpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEFkZFJvdyAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLmFkZFJvd0FmdGVyKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5UYWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxSZW1vdmVSb3cgLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC5kZWxldGVSb3coKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEFkZENvbHVtbiAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLmFkZENvbHVtbkFmdGVyKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5UYWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxSZW1vdmVDb2x1bW4gLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC5kZWxldGVDb2x1bW4oKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFJlbW92ZVRhYmxlIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAuZGVsZXRlVGFibGUoKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJvcmRlckFsbCAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhYmxlQXR0cnMgPSBlZGl0b3IuZ2V0QXR0cmlidXRlcygndGFibGUnKTtcblxuICAgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgICAgICAgIC4uLnRhYmxlQXR0cnMsXG4gICAgICAgICAgICBib3JkZXI6IHRhYmxlQXR0cnMuYm9yZGVyICE9PSAnMCcgPyAnMCcgOiAnMScsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGVkaXRvci5jb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKCd0YWJsZScsIHVwZGF0ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUudGFibGVIYXNCb3JkZXIsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJvbGQgLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC50b2dnbGVCb2xkKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnYm9sZCcpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzQm9sZCxcbiAgICAgICAgaXNEaXNhYmxlZDogKHN0YXRlKSA9PiAhc3RhdGUuY2FuQm9sZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxJdGFsaWMgLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC50b2dnbGVJdGFsaWMoKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdpdGFsaWMnKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc0l0YWxpYyxcbiAgICAgICAgaXNEaXNhYmxlZDogKHN0YXRlKSA9PiAhc3RhdGUuY2FuSXRhbGljLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFN0cmlrZXRocm91Z2ggLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC50b2dnbGVTdHJpa2UoKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdzdHJpa2V0aHJvdWdoJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNTdHJpa2UsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblN0cmlrZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxDb2RlIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAudG9nZ2xlQ29kZSgpXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ2NvZGUnKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc0NvZGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhbkNvZGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8VW5kZXJsaW5lIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAudG9nZ2xlVW5kZXJsaW5lKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygndW5kZXJsaW5lJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNVbmRlcmxpbmUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8U3Vic2NyaXB0SWNvbiAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnRvZ2dsZVN1YnNjcmlwdCgpXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3N1YnNjcmlwdCcpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzU3ViU2NyaXB0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFN1cGVyc2NyaXB0SWNvbiAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnRvZ2dsZVN1cGVyc2NyaXB0KClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnc3VwZXJzY3JpcHQnKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc1N1cGVyU2NyaXB0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEltYWdlSWNvbiAvPixcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnaW1hZ2UnKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAuc2V0SW1hZ2VVcGxvYWROb2RlKClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxUaGVhdGVyc0ljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3ZpZGVvJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLmluc2VydE1lZGlhKHsgdGFnOiAndmlkZW8nIH0pXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8Vm9sdW1lVXBJY29uIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdhdWRpbycpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+XG4gICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAuY2hhaW4oKVxuICAgICAgICAgICAgLmZvY3VzKClcbiAgICAgICAgICAgIC5pbnNlcnRNZWRpYSh7IHRhZzogJ2F1ZGlvJyB9KVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPENTU0ljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ2NzcycpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+IGVkaXRvci5jb21tYW5kcy5vcGVuQ1NTQ2xhc3NEaWFsb2coKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxIZWFkaW5nSWNvbiAvPixcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnaDMnKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAudG9nZ2xlSGVhZGluZyh7IGxldmVsOiAzIH0pXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzSGVhZGluZzMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8RnVuY3Rpb25zIC8+LFxuICAgICAgICBoaWRkZW46ICgpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnbWF0aCcpLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAuaW5zZXJ0TWF0aCgnJylcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxDaGFyYWN0ZXJJY29uIGxldHRlcj1cIsOxXCIgLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ2xhbmd1YWdlQ2hhcmFjdGVycycpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHNldFNob3dQaWNrZXIoc3BhbmlzaENvbmZpZyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8Q2hhcmFjdGVySWNvbiBsZXR0ZXI9XCLigqxcIiAvPixcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+IGFjdGl2ZVBsdWdpbnM/LmZpbHRlcihwID0+IHAgPT09ICdsYW5ndWFnZUNoYXJhY3RlcnMnKS5sZW5ndGggIT09IDIgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKCkgPT4gc2V0U2hvd1BpY2tlcihzcGVjaWFsQ29uZmlnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxUZXh0QWxpZ25JY29uIGVkaXRvcj17ZWRpdG9yfSAvPixcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygndGV4dC1hbGlnbicpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHt9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJ1bGxldGVkTGlzdEljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ2J1bGxldGVkLWxpc3QnKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAudG9nZ2xlQnVsbGV0TGlzdCgpXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzQnVsbGV0TGlzdCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxOdW1iZXJlZExpc3RJY29uIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdudW1iZXJlZC1saXN0JykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnRvZ2dsZU9yZGVyZWRMaXN0KClcbiAgICAgICAgICAgIC5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNPcmRlcmVkTGlzdCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxVbmRvIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCd1bmRvJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT5cbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgLnVuZG8oKVxuICAgICAgICAgICAgLnJ1bigpLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5VbmRvLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFJlZG8gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3JlZG8nKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PlxuICAgICAgICAgIGVkaXRvclxuICAgICAgICAgICAgLmNoYWluKClcbiAgICAgICAgICAgIC5mb2N1cygpXG4gICAgICAgICAgICAucmVkbygpXG4gICAgICAgICAgICAucnVuKCksXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblJlZG8sXG4gICAgICB9LFxuICAgIF0sXG4gICAgW2FjdGl2ZVBsdWdpbnMsIGVkaXRvciwgc3BhbmlzaENvbmZpZywgc3BlY2lhbENvbmZpZywgc2V0U2hvd1BpY2tlcl0sXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17bmFtZXN9IHN0eWxlPXt7IC4uLmN1c3RvbVN0eWxlcyB9fSBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufT5cbiAgICAgIHshZWRpdG9yU3RhdGUuaGlkZURlZmF1bHRUb29sYmFyICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuZGVmYXVsdFRvb2xiYXJ9IHRhYkluZGV4PVwiMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbnNDb250YWluZXJ9PlxuICAgICAgICAgICAge3Rvb2xiYXJCdXR0b25zXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGJ0bikgPT4gIWJ0bi5oaWRkZW4/LihlZGl0b3JTdGF0ZSkpXG4gICAgICAgICAgICAgIC5tYXAoKGJ0biwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IGJ0bi5pc0Rpc2FibGVkPy4oZWRpdG9yU3RhdGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGJ0bi5pc0FjdGl2ZT8uKGVkaXRvclN0YXRlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgYnRuLm9uQ2xpY2soZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMuYnV0dG9uLCB7IFtjbGFzc2VzLmFjdGl2ZV06IGFjdGl2ZSB9KX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2J0bi5pY29ufVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge2FjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdyZXNwb25zZUFyZWEnKSAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBlZGl0b3JcbiAgICAgICAgICAgICAgICAgIC5jaGFpbigpXG4gICAgICAgICAgICAgICAgICAuZm9jdXMoKVxuICAgICAgICAgICAgICAgICAgLmluc2VydFJlc3BvbnNlQXJlYShyZXNwb25zZUFyZWFQcm9wcy50eXBlKVxuICAgICAgICAgICAgICAgICAgLnJ1bigpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VG9vbGJhckljb24gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICA8RG9uZUJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBvbkNoYW5nZT8uKGVkaXRvci5nZXRIVE1MKCkpO1xuICAgICAgICAgICAgICBlZGl0b3IuY29tbWFuZHMuYmx1cigpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7c2hvd1BpY2tlciAmJiAoXG4gICAgICAgIDxDaGFyYWN0ZXJQaWNrZXJcbiAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICBvcHRzPXt7XG4gICAgICAgICAgICAuLi5zaG93UGlja2VyLFxuICAgICAgICAgICAgcmVuZGVyUG9wT3ZlcjogKGV2LCBjaCkgPT4gY29uc29sZS5sb2coJ1Nob3cgcG9wb3ZlcicsIGNoKSxcbiAgICAgICAgICAgIGNsb3NlUG9wT3ZlcjogKCkgPT4gY29uc29sZS5sb2coJ0Nsb3NlIHBvcG92ZXInKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldFNob3dQaWNrZXIoZmFsc2UpfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3Qgc3R5bGUgPSAodGhlbWUpID0+ICh7XG4gIGRlZmF1bHRUb29sYmFyOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgfSxcbiAgYnV0dG9uc0NvbnRhaW5lcjoge1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9LFxuICBidXR0b246IHtcbiAgICBjb2xvcjogJ2dyZXknLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgcGFkZGluZzogJzJweCcsXG4gICAgYmFja2dyb3VuZDogJ25vbmUnLFxuICAgIGJvcmRlcjogJ25vbmUnLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgfSxcbiAgICAnJjpmb2N1cyc6IHtcbiAgICAgIG91dGxpbmU6IGAycHggc29saWQgJHt0aGVtZS5wYWxldHRlLmdyZXlbNzAwXX1gLFxuICAgIH0sXG4gIH0sXG4gIGFjdGl2ZToge1xuICAgIGNvbG9yOiAnYmxhY2snLFxuICB9LFxuICBkaXNhYmxlZDoge1xuICAgIG9wYWNpdHk6IDAuNyxcbiAgICBjdXJzb3I6ICdub3QtYWxsb3dlZCcsXG4gICAgJyYgOmhvdmVyJzoge1xuICAgICAgY29sb3I6ICdncmV5JyxcbiAgICB9LFxuICB9LFxuICBpc0FjdGl2ZToge1xuICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wdXJwbGUpJyxcbiAgICBjb2xvcjogJ3ZhcigtLXdoaXRlKScsXG4gIH0sXG4gIHRvb2xiYXI6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB6SW5kZXg6IDIwLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgYmFja2dyb3VuZDogJ3ZhcigtLWVkaXRhYmxlLWh0bWwtdG9vbGJhci1iZywgI2VmZWZlZiknLFxuICAgIG1pbldpZHRoOiAnMjgwcHgnLFxuICAgIG1hcmdpbjogJzVweCAwIDAgMCcsXG4gICAgcGFkZGluZzogJzJweCcsXG4gICAgYm94U2hhZG93OlxuICAgICAgJzBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiknLFxuICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBvcGFjaXR5OiAwLFxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgfSxcbiAgdG9vbGJhcldpdGhOb0RvbmU6IHtcbiAgICBtaW5XaWR0aDogJzI2NXB4JyxcbiAgfSxcbiAgdG9vbGJhclRvcDoge1xuICAgIHRvcDogJy00NXB4JyxcbiAgfSxcbiAgdG9vbGJhclJpZ2h0OiB7XG4gICAgcmlnaHQ6IDAsXG4gIH0sXG4gIGZ1bGxXaWR0aDoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIGhpZGRlbjoge1xuICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICB9LFxuICBhdXRvV2lkdGg6IHtcbiAgICB3aWR0aDogJ2F1dG8nLFxuICB9LFxuICBmb2N1c2VkOiB7XG4gICAgb3BhY2l0eTogMSxcbiAgICBwb2ludGVyRXZlbnRzOiAnYXV0bycsXG4gIH0sXG4gIGljb25Sb290OiB7XG4gICAgd2lkdGg6ICcyOHB4JyxcbiAgICBoZWlnaHQ6ICcyOHB4JyxcbiAgICBwYWRkaW5nOiAnNHB4JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgfSxcbiAgbGFiZWw6IHtcbiAgICBjb2xvcjogJ3ZhcigtLWVkaXRhYmxlLWh0bWwtdG9vbGJhci1jaGVjaywgIzAwYmIwMCknLFxuICB9LFxuICBzaGFyZWQ6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gIH0sXG59KTtcbmNvbnN0IFN0eWxlZE1lbnVCYXIgPSB3aXRoU3R5bGVzKHN0eWxlLCB7IGluZGV4OiAxMDAwIH0pKE1lbnVCYXIpO1xuXG5jb25zdCBkZWZhdWx0VG9vbGJhck9wdHMgPSB7XG4gIHBvc2l0aW9uOiAnYm90dG9tJyxcbiAgYWxpZ25tZW50OiAnbGVmdCcsXG4gIGFsd2F5c1Zpc2libGU6IGZhbHNlLFxuICBzaG93RG9uZTogdHJ1ZSxcbiAgZG9uZU9uOiAnYmx1cicsXG59O1xuXG5leHBvcnQgY29uc3QgRWRpdGFibGVIdG1sID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IFtwZW5kaW5nSW1hZ2VzLCBzZXRQZW5kaW5nSW1hZ2VzXSA9IHVzZVN0YXRlKFtdKTtcbiAgY29uc3QgW3NjaGVkdWxlZCwgc2V0U2NoZWR1bGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgeyBjbGFzc2VzLCB0b29sYmFyT3B0cyB9ID0gcHJvcHM7XG4gIGNvbnN0IHRvb2xiYXJPcHRzVG9Vc2UgPSB7XG4gICAgLi4uZGVmYXVsdFRvb2xiYXJPcHRzLFxuICAgIC4uLnRvb2xiYXJPcHRzLFxuICB9O1xuICBjb25zdCBhY3RpdmVQbHVnaW5zVG9Vc2UgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBsZXQgeyBjdXN0b21QbHVnaW5zIH0gPSBwcm9wcy5wbHVnaW5Qcm9wcyB8fCB7fTtcblxuICAgIGN1c3RvbVBsdWdpbnMgPSBjdXN0b21QbHVnaW5zIHx8IFtdO1xuXG4gICAgcmV0dXJuIGJ1aWxkUGx1Z2lucyhwcm9wcy5hY3RpdmVQbHVnaW5zLCBjdXN0b21QbHVnaW5zLCB7XG4gICAgICBtYXRoOiB7fSxcbiAgICAgIHRleHRBbGlnbjoge30sXG4gICAgICBodG1sOiB7fSxcbiAgICAgIGV4dHJhQ1NTUnVsZXM6IHByb3BzLmV4dHJhQ1NTUnVsZXMgfHwge30sXG4gICAgICBpbWFnZToge30sXG4gICAgICB0b29sYmFyOiB7fSxcbiAgICAgIHRhYmxlOiB7fSxcbiAgICAgIHJlc3BvbnNlQXJlYToge30sXG4gICAgICBsYW5ndWFnZUNoYXJhY3RlcnM6IHByb3BzLmxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzLFxuICAgICAga2V5UGFkQ2hhcmFjdGVyUmVmOiB7fSxcbiAgICAgIHNldEtleXBhZEludGVyYWN0aW9uOiB7fSxcbiAgICAgIG1lZGlhOiB7fSxcbiAgICB9KTtcbiAgfSwgW3Byb3BzXSk7XG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBbXG4gICAgVGV4dFN0eWxlS2l0LFxuICAgIFN0YXJ0ZXJLaXQsXG4gICAgRXh0ZW5kZWRUYWJsZSxcbiAgICBUYWJsZVJvdyxcbiAgICBUYWJsZUhlYWRlcixcbiAgICBUYWJsZUNlbGwsXG4gICAgUmVzcG9uc2VBcmVhRXh0ZW5zaW9uLFxuICAgIEV4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZU5vZGUuY29uZmlndXJlKHByb3BzLnJlc3BvbnNlQXJlYVByb3BzKSxcbiAgICBEcmFnSW5UaGVCbGFua05vZGUuY29uZmlndXJlKHByb3BzLnJlc3BvbnNlQXJlYVByb3BzKSxcbiAgICBJbmxpbmVEcm9wZG93bk5vZGUuY29uZmlndXJlKHByb3BzLnJlc3BvbnNlQXJlYVByb3BzKSxcbiAgICBNYXRoTm9kZS5jb25maWd1cmUoe1xuICAgICAgdG9vbGJhck9wdHM6IHRvb2xiYXJPcHRzVG9Vc2UsXG4gICAgfSksXG4gICAgU3ViU2NyaXB0LFxuICAgIFN1cGVyU2NyaXB0LFxuICAgIFRleHRBbGlnbi5jb25maWd1cmUoe1xuICAgICAgdHlwZXM6IFsnaGVhZGluZycsICdwYXJhZ3JhcGgnXSxcbiAgICAgIGFsaWdubWVudHM6IFsnbGVmdCcsICdyaWdodCcsICdjZW50ZXInXSxcbiAgICB9KSxcbiAgICBJbWFnZSxcbiAgICBJbWFnZVVwbG9hZE5vZGUuY29uZmlndXJlKHtcbiAgICAgIHRvb2xiYXJPcHRzOiB0b29sYmFyT3B0c1RvVXNlLFxuICAgICAgaW1hZ2VIYW5kbGluZzoge1xuICAgICAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zOiBwcm9wcy5kaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zLFxuICAgICAgICBvbkRvbmU6ICgpID0+IHByb3BzLm9uRG9uZT8uKGVkaXRvci5nZXRIVE1MKCkpLFxuICAgICAgICBvbkRlbGV0ZTpcbiAgICAgICAgICBwcm9wcy5pbWFnZVN1cHBvcnQgJiZcbiAgICAgICAgICBwcm9wcy5pbWFnZVN1cHBvcnQuZGVsZXRlICYmXG4gICAgICAgICAgKChub2RlLCBkb25lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHNyYyB9ID0gbm9kZS5hdHRycztcblxuICAgICAgICAgICAgcHJvcHMuaW1hZ2VTdXBwb3J0LmRlbGV0ZShzcmMsIChlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1BlbmRpbmdJbWFnZXMgPSBwZW5kaW5nSW1hZ2VzLmZpbHRlcigoaW1nKSA9PiBpbWcua2V5ICE9PSBub2RlLmtleSk7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJbWFnZXM6IG5ld1BlbmRpbmdJbWFnZXMsXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVkOiBzY2hlZHVsZWQgJiYgbmV3UGVuZGluZ0ltYWdlcy5sZW5ndGggPT09IDAgPyBmYWxzZSA6IHNjaGVkdWxlZCxcbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICBzZXRQZW5kaW5nSW1hZ2VzKG5ld1N0YXRlLnBlbmRpbmdJbWFnZXMpO1xuICAgICAgICAgICAgICBzZXRTY2hlZHVsZWQobmV3U3RhdGUuc2NoZWR1bGVkKTtcbiAgICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgIGluc2VydEltYWdlUmVxdWVzdGVkOlxuICAgICAgICAgIHByb3BzLmltYWdlU3VwcG9ydCAmJlxuICAgICAgICAgICgoYWRkZWRJbWFnZSwgZ2V0SGFuZGxlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb25GaW5pc2ggPSAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgIGxldCBjYjtcblxuICAgICAgICAgICAgICBpZiAoc2NoZWR1bGVkICYmIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIC8vIGZpbmlzaCBlZGl0aW5nIG9ubHkgb24gc3VjY2Vzc1xuICAgICAgICAgICAgICAgIGNiID0gcHJvcHMub25DaGFuZ2U7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBuZXdQZW5kaW5nSW1hZ2VzID0gcGVuZGluZ0ltYWdlcy5maWx0ZXIoKGltZykgPT4gaW1nLmtleSAhPT0gYWRkZWRJbWFnZS5rZXkpO1xuICAgICAgICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSW1hZ2VzOiBuZXdQZW5kaW5nSW1hZ2VzLFxuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgIGlmIChuZXdQZW5kaW5nSW1hZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIG5ld1N0YXRlLnNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgc2V0UGVuZGluZ0ltYWdlcyhuZXdTdGF0ZS5wZW5kaW5nSW1hZ2VzKTtcbiAgICAgICAgICAgICAgc2V0U2NoZWR1bGVkKG5ld1N0YXRlLnNjaGVkdWxlZCk7XG4gICAgICAgICAgICAgIGNiPy4oZWRpdG9yLmdldEhUTUwoKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBUaGUgaGFuZGxlciBpcyB0aGUgb2JqZWN0IHRocm91Z2ggd2hpY2ggdGhlIG91dGVyIGNvbnRleHRcbiAgICAgICAgICAgICAgICogY29tbXVuaWNhdGVzIGZpbGUgdXBsb2FkIGV2ZW50cyBsaWtlOiBmaWxlQ2hvc2VuLCBjYW5jZWwsIHByb2dyZXNzXG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gZ2V0SGFuZGxlcihvbkZpbmlzaCk7XG4gICAgICAgICAgICAgIHByb3BzLmltYWdlU3VwcG9ydC5hZGQoaGFuZGxlcik7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzZXRQZW5kaW5nSW1hZ2VzKFsuLi5wZW5kaW5nSW1hZ2VzLCBhZGRlZEltYWdlXSk7XG4gICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgIH0pLFxuICAgICAgICBtYXhJbWFnZVdpZHRoOiBwcm9wcy5tYXhJbWFnZVdpZHRoLFxuICAgICAgICBtYXhJbWFnZUhlaWdodDogcHJvcHMubWF4SW1hZ2VIZWlnaHQsXG4gICAgICB9LFxuICAgICAgbGltaXQ6IDMsXG4gICAgfSksXG4gICAgTWVkaWEuY29uZmlndXJlKHtcbiAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydDogcHJvcHMudXBsb2FkU291bmRTdXBwb3J0LFxuICAgIH0pLFxuICAgIENTU01hcmsuY29uZmlndXJlKHtcbiAgICAgIGV4dHJhQ1NTUnVsZXM6IHByb3BzLmV4dHJhQ1NTUnVsZXMsXG4gICAgfSksXG4gIF07XG4gIGNvbnN0IGVkaXRvciA9IHVzZUVkaXRvcih7XG4gICAgZXh0ZW5zaW9ucyxcbiAgICBpbW1lZGlhdGVseVJlbmRlcjogZmFsc2UsXG4gICAgY29udGVudDogcHJvcHMubWFya3VwLFxuICAgIG9uVXBkYXRlOiAoeyBlZGl0b3IsIHRyYW5zYWN0aW9uIH0pID0+IHRyYW5zYWN0aW9uLmlzRG9uZSAmJiBwcm9wcy5vbkNoYW5nZT8uKGVkaXRvci5nZXRIVE1MKCkpLFxuICAgIG9uQmx1cjogKHsgZWRpdG9yIH0pID0+IHtcbiAgICAgIGlmICh0b29sYmFyT3B0c1RvVXNlLmRvbmVPbiA9PT0gJ2JsdXInKSB7XG4gICAgICAgIHByb3BzLm9uQ2hhbmdlPy4oZWRpdG9yLmdldEhUTUwoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy5vbkRvbmU/LihlZGl0b3IuZ2V0SFRNTCgpKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLm1hcmt1cCAhPT0gZWRpdG9yLmdldEhUTUwoKSkge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnNldENvbnRlbnQocHJvcHMubWFya3VwLCBmYWxzZSk7IC8vIGZhbHNlID0gZG9u4oCZdCBlbWl0IHVwZGF0ZVxuICAgIH1cbiAgfSwgW3Byb3BzLm1hcmt1cCwgZWRpdG9yXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBEZWZpbmUgeW91ciB2YXJpYWJsZXMgaW4gYSBKUyBvYmplY3RcbiAgICBjb25zdCBjc3NWYXJpYWJsZXMgPSB7XG4gICAgICAnLS13aGl0ZSc6ICcjZmZmJyxcbiAgICAgICctLWJsYWNrJzogJyMyZTJiMjknLFxuICAgICAgJy0tYmxhY2stY29udHJhc3QnOiAnIzExMGYwZScsXG4gICAgICAnLS1ncmF5LTEnOiAncmdiYSg2MSwgMzcsIDIwLCAuMDUpJyxcbiAgICAgICctLWdyYXktMic6ICdyZ2JhKDYxLCAzNywgMjAsIC4wOCknLFxuICAgICAgJy0tZ3JheS0zJzogJ3JnYmEoNjEsIDM3LCAyMCwgLjEyKScsXG4gICAgICAnLS1ncmF5LTQnOiAncmdiYSg1MywgMzgsIDI4LCAuMyknLFxuICAgICAgJy0tZ3JheS01JzogJ3JnYmEoMjgsIDI1LCAyMywgLjYpJyxcbiAgICAgICctLWdyZWVuJzogJyMyMmM1NWUnLFxuICAgICAgJy0tcHVycGxlJzogJyM2YTAwZjUnLFxuICAgICAgJy0tcHVycGxlLWNvbnRyYXN0JzogJyM1ODAwY2MnLFxuICAgICAgJy0tcHVycGxlLWxpZ2h0JzogJ3JnYmEoODgsIDUsIDI1NSwgLjA1KScsXG4gICAgICAnLS15ZWxsb3ctY29udHJhc3QnOiAnI2ZhY2MxNScsXG4gICAgICAnLS15ZWxsb3cnOiAncmdiYSgyNTAsIDIwNCwgMjEsIC40KScsXG4gICAgICAnLS15ZWxsb3ctbGlnaHQnOiAnI2ZmZmFlNScsXG4gICAgICAnLS1yZWQnOiAnI2ZmNWMzMycsXG4gICAgICAnLS1yZWQtbGlnaHQnOiAnI2ZmZWJlNScsXG4gICAgICAnLS1zaGFkb3cnOiBgMHB4IDEycHggMzNweCAwcHggcmdiYSgwLCAwLCAwLCAuMDYpLFxuICAgICAgICAgICAgICAgMHB4IDMuNjE4cHggOS45NDlweCAwcHggcmdiYSgwLCAwLCAwLCAuMDQpYCxcbiAgICB9O1xuXG4gICAgT2JqZWN0LmVudHJpZXMoY3NzVmFyaWFibGVzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhbHVlKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGVkaXRvclN0YXRlID0gdXNlRWRpdG9yU3RhdGUoe1xuICAgIGVkaXRvcixcbiAgICBzZWxlY3RvcjogKGN0eCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXNGb2N1c2VkOiBjdHguZWRpdG9yPy5pc0ZvY3VzZWQsXG4gICAgICB9O1xuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IHZhbHVlVG9TaXplID0gKHYpID0+IHtcbiAgICBpZiAoIXYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY2FsY1JlZ2V4ID0gL15jYWxjXFwoKC4qKVxcKSQvO1xuXG4gICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKHYuZW5kc1dpdGgoJyUnKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdi5lbmRzV2l0aCgncHgnKSB8fFxuICAgICAgICB2LmVuZHNXaXRoKCd2aCcpIHx8XG4gICAgICAgIHYuZW5kc1dpdGgoJ3Z3JykgfHxcbiAgICAgICAgdi5lbmRzV2l0aCgnY2gnKSB8fFxuICAgICAgICB2LmVuZHNXaXRoKCdlbScpIHx8XG4gICAgICAgIHYubWF0Y2goY2FsY1JlZ2V4KVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJzZUludCh2LCAxMCk7XG4gICAgICAgIHJldHVybiBpc05hTih2YWx1ZSkgPyB2YWx1ZSA6IGAke3ZhbHVlfXB4YDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2ID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGAke3Z9cHhgO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzaXplU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IG1pbldpZHRoLCB3aWR0aCwgbWF4V2lkdGgsIG1pbkhlaWdodCwgaGVpZ2h0LCBtYXhIZWlnaHQgfSA9IHByb3BzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiB2YWx1ZVRvU2l6ZSh3aWR0aCksXG4gICAgICBtaW5XaWR0aDogdmFsdWVUb1NpemUobWluV2lkdGgpLFxuICAgICAgbWF4V2lkdGg6IHZhbHVlVG9TaXplKG1heFdpZHRoKSxcbiAgICAgIGhlaWdodDogdmFsdWVUb1NpemUoaGVpZ2h0KSxcbiAgICAgIG1pbkhlaWdodDogdmFsdWVUb1NpemUobWluSGVpZ2h0KSxcbiAgICAgIG1heEhlaWdodDogdmFsdWVUb1NpemUobWF4SGVpZ2h0KSxcbiAgICB9O1xuICB9LCBbcHJvcHNdKTtcblxuICByZXR1cm4gKFxuICAgIDxFZGl0b3JDb250YWluZXJcbiAgICAgIHsuLi57IC4uLnByb3BzLCBhY3RpdmVQbHVnaW5zOiBhY3RpdmVQbHVnaW5zVG9Vc2UsIHRvb2xiYXJPcHRzOiB0b29sYmFyT3B0c1RvVXNlIH19XG4gICAgICBlZGl0b3JTdGF0ZT17ZWRpdG9yU3RhdGV9XG4gICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICA+XG4gICAgICB7ZWRpdG9yICYmIChcbiAgICAgICAgPEVkaXRvckNvbnRlbnRcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgbWluSGVpZ2h0OiBzaXplU3R5bGUubWluSGVpZ2h0LFxuICAgICAgICAgICAgaGVpZ2h0OiBzaXplU3R5bGUuaGVpZ2h0LFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiBzaXplU3R5bGUubWF4SGVpZ2h0LFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9XG4gICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvRWRpdG9yQ29udGFpbmVyPlxuICApO1xufTtcblxuY29uc3QgU3R5bGVkRWRpdG9yID0gd2l0aFN0eWxlcyh7XG4gIHJvb3Q6IHtcbiAgICBvdXRsaW5lOiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICAnJiAuUHJvc2VNaXJyb3InOiB7XG4gICAgICBvdXRsaW5lOiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICAgIHBvc2l0aW9uOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgfSxcbn0pKEVkaXRhYmxlSHRtbCk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0eWxlZEVkaXRvcjtcbiJdfQ==
|
package/lib/plugins/index.js
CHANGED
|
@@ -301,8 +301,8 @@ var buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
|
|
|
301
301
|
log('[buildPlugins] opts: ', opts);
|
|
302
302
|
activePlugins = activePlugins || DEFAULT_PLUGINS;
|
|
303
303
|
|
|
304
|
-
var addIf = function addIf(key
|
|
305
|
-
return activePlugins.includes(key) &&
|
|
304
|
+
var addIf = function addIf(key) {
|
|
305
|
+
return activePlugins.includes(key) && key;
|
|
306
306
|
};
|
|
307
307
|
|
|
308
308
|
var imagePlugin = opts.image && opts.image.onDelete && (0, _image["default"])(opts.image);
|
|
@@ -410,4 +410,4 @@ var buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
|
|
|
410
410
|
};
|
|
411
411
|
|
|
412
412
|
exports.buildPlugins = buildPlugins;
|
|
413
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbHVnaW5zL2luZGV4LmpzeCJdLCJuYW1lcyI6WyJsb2ciLCJTdXBlcnNjcmlwdEljb24iLCJTdWJzY3JpcHRJY29uIiwiSGVhZGluZ0ljb24iLCJ3aWR0aCIsImhlaWdodCIsIlNUWUxFU19NQVAiLCJoMyIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImJsb2NrcXVvdGUiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyTGVmdCIsIm1hcmdpbiIsInBhZGRpbmciLCJNYXJrSG90a2V5Iiwib3B0aW9ucyIsInR5cGUiLCJrZXkiLCJpY29uIiwidGFnIiwibmFtZSIsInRvb2xiYXIiLCJpc01hcmsiLCJvblRvZ2dsZSIsImNoYW5nZSIsInNlbGVjdGlvbiIsInZhbHVlIiwiaW5jbHVkZXMiLCJ0ZXh0cyIsImRvY3VtZW50IiwiZ2V0VGV4dHNBdFJhbmdlQXNBcnJheSIsIm9ubHlPbmVUZXh0IiwibGVuZ3RoIiwiaGFzTWFyayIsInNhbWVNYXJrIiwiZm9yRWFjaCIsInQiLCJtYXJrcyIsImdldE1hcmtzQXNBcnJheSIsIm1hcmtJc1RoZXJlIiwiZmluZCIsIm0iLCJzaG91bGRDb250aW51ZSIsInN0YXJ0S2V5IiwiZW5kS2V5IiwiYW5jaG9yT2Zmc2V0IiwiZm9jdXNPZmZzZXQiLCJ0ZXh0Tm9kZSIsImdldE5vZGUiLCJtb3ZlRm9jdXNUbyIsIm1vdmVBbmNob3JUbyIsInRleHQiLCJhY3RpdmVNYXJrcyIsImVudHJ5IiwicmVtb3ZlTWFyayIsIm5ld01hcmsiLCJNYXJrIiwiY3JlYXRlIiwiYWRkTWFyayIsInRvZ2dsZU1hcmsiLCJyZW5kZXJNYXJrIiwicHJvcHMiLCJtYXJrIiwibm9kZSIsImRhdGEiLCJqc29uRGF0YSIsInRvSlNPTiIsIksiLCJhZGRpdGlvbmFsU3R5bGVzIiwiYXR0cmlidXRlcyIsInN0eWxlIiwiY2hpbGRyZW4iLCJvbktleURvd24iLCJldmVudCIsIm1ldGFLZXkiLCJwcmV2ZW50RGVmYXVsdCIsIkFMTF9QTFVHSU5TIiwiREVGQVVMVF9QTFVHSU5TIiwiZmlsdGVyIiwicGx1ZyIsIkVYVEVOU0lPTlNfTElTVCIsIkdyaWRPbiIsIkJvbGQiLCJJdGFsaWMiLCJTdHJpa2V0aHJvdWdoIiwiVW5kZXJsaW5lIiwiSW1hZ2UiLCJCdWxsZXRlZExpc3RJY29uIiwiTnVtYmVyZWRMaXN0SWNvbiIsIkZvcm1hdFF1b3RlIiwiSUNPTl9NQVAiLCJ1bmRvIiwiVW5kbyIsInJlZG8iLCJSZWRvIiwiVW5kb1JlZG8iLCJJY29uVG9Vc2UiLCJhcmlhTGFiZWwiLCJvbkNsaWNrIiwib25DaGFuZ2UiLCJFbnRlckhhbmRsaW5nUGx1Z2luIiwiSG90a2V5cyIsImlzU3BsaXRCbG9jayIsIklTX0lPUyIsImlzSW5Wb2lkIiwiY29sbGFwc2VUb1N0YXJ0T2ZOZXh0VGV4dCIsInNwbGl0QmxvY2siLCJyYW5nZSIsIm5ld0Jsb2NrIiwiZ2V0Q2xvc2VzdEJsb2NrIiwic2V0Tm9kZUJ5S2V5IiwidW5kZWZpbmVkIiwiYnVpbGRQbHVnaW5zIiwiYWN0aXZlUGx1Z2lucyIsImN1c3RvbVBsdWdpbnMiLCJvcHRzIiwiYWRkSWYiLCJwIiwiaW1hZ2VQbHVnaW4iLCJpbWFnZSIsIm9uRGVsZXRlIiwibWF0aFBsdWdpbiIsIm1hdGgiLCJyZXNwQXJlYVBsdWdpbiIsInJlc3BvbnNlQXJlYSIsImNzc1BsdWdpbiIsImV4dHJhQ1NTUnVsZXMiLCJsYW5ndWFnZUNoYXJhY3RlcnNQbHVnaW5zIiwibGFuZ3VhZ2VDaGFyYWN0ZXJzIiwibWFwIiwiY29uZmlnIiwia2V5UGFkQ2hhcmFjdGVyUmVmIiwic2V0S2V5cGFkSW50ZXJhY3Rpb24iLCJ0YWJsZVBsdWdpbnMiLCJwdXNoIiwiYnVpbHRDdXN0b21QbHVnaW5zIiwiY3VzdG9tUGx1Z2luIiwiaWNvblR5cGUiLCJpY29uQWx0IiwiaXNWYWxpZEV2ZW50TmFtZSIsImV2ZW50TmFtZSIsInJlZ2V4IiwidGVzdCIsImNvbnNvbGUiLCJlcnJvciIsInRhYmxlIiwibWVkaWEiLCJwbHVnaW4iLCJ0ZXh0QWxpZ24iLCJz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c0JBQVdELElBQUksQ0FBQ21DLElBQWhCLENBQVQsQ0FwQ0EsRUFxQ0xsRCxtQkFBbUIsRUFyQ2QsRUFzQ0wsNEJBdENLLEdBQVA7QUF3Q0QsQ0FsR00iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSG90a2V5cyBmcm9tICdzbGF0ZS1ob3RrZXlzJztcbmltcG9ydCB7IElTX0lPUyB9IGZyb20gJ3NsYXRlLWRldi1lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBNYXJrIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IEJvbGQgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdEJvbGQnO1xuaW1wb3J0IEZvcm1hdFF1b3RlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRRdW90ZSc7XG4vL2ltcG9ydCBDb2RlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Db2RlJztcbmltcG9ydCBCdWxsZXRlZExpc3RJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRMaXN0QnVsbGV0ZWQnO1xuaW1wb3J0IE51bWJlcmVkTGlzdEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdExpc3ROdW1iZXJlZCc7XG5pbXBvcnQgR3JpZE9uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9HcmlkT24nO1xuaW1wb3J0IEltYWdlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9JbWFnZSc7XG5pbXBvcnQgUmVkbyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvUmVkbyc7XG5pbXBvcnQgVW5kbyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvVW5kbyc7XG5pbXBvcnQgSW1hZ2VQbHVnaW4gZnJvbSAnLi9pbWFnZSc7XG5pbXBvcnQgTWVkaWFQbHVnaW4gZnJvbSAnLi9tZWRpYSc7XG5pbXBvcnQgQ2hhcmFjdGVyc1BsdWdpbiBmcm9tICcuL2NoYXJhY3RlcnMnO1xuaW1wb3J0IEl0YWxpYyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRm9ybWF0SXRhbGljJztcbmltcG9ydCBNYXRoUGx1Z2luIGZyb20gJy4vbWF0aCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFN0cmlrZXRocm91Z2ggZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdFN0cmlrZXRocm91Z2gnO1xuaW1wb3J0IFRvb2xiYXJQbHVnaW4gZnJvbSAnLi90b29sYmFyJztcbmltcG9ydCBVbmRlcmxpbmUgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdFVuZGVybGluZWQnO1xuaW1wb3J0IGNvbXBhY3QgZnJvbSAnbG9kYXNoL2NvbXBhY3QnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IFNvZnRCcmVha1BsdWdpbiBmcm9tICdzbGF0ZS1zb2Z0LWJyZWFrJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgTGlzdCBmcm9tICcuL2xpc3QnO1xuaW1wb3J0IFRhYmxlUGx1Z2luIGZyb20gJy4vdGFibGUnO1xuaW1wb3J0IFJlc3BBcmVhUGx1Z2luIGZyb20gJy4vcmVzcEFyZWEnO1xuaW1wb3J0IEh0bWxQbHVnaW4gZnJvbSAnLi9odG1sJztcbmltcG9ydCBDU1NQbHVnaW4gZnJvbSAnLi9jc3MnO1xuaW1wb3J0IEN1c3RvbVBsdWdpbiBmcm9tICcuL2N1c3RvbVBsdWdpbic7XG5pbXBvcnQgUmVuZGVyaW5nUGx1Z2luIGZyb20gJy4vcmVuZGVyaW5nJztcbmltcG9ydCBUZXh0QWxpZ24gZnJvbSAnLi90ZXh0QWxpZ24nO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6ZWRpdGFibGUtaHRtbDpwbHVnaW5zJyk7XG5cbmV4cG9ydCBjb25zdCBTdXBlcnNjcmlwdEljb24gPSAoKSA9PiAoXG4gIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNHB4XCIgZmlsbD1cIm5vbmVcIj5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0yMiw3aC0ydjFoM3YxaC00VjdjMC0wLjU1LDAuNDUtMSwxLTFoMlY1aC0zVjRoM2MwLjU1LDAsMSwwLjQ1LDEsMXYxQzIzLDYuNTUsMjIuNTUsNywyMiw3eiBNNS44OCwyMGgyLjY2bDMuNC01LjQyaDAuMTIgbDMuNCw1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSw2aC0yLjY4bC0zLjA3LDQuOTloLTAuMTJMOC44NSw2SDYuMTlsNC4zMiw2LjczTDUuODgsMjB6XCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGNvbnN0IFN1YnNjcmlwdEljb24gPSAoKSA9PiAoXG4gIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNHB4XCIgZmlsbD1cIm5vbmVcIj5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0yMiwxOGgtMnYxaDN2MWgtNHYtMmMwLTAuNTUsMC40NS0xLDEtMWgydi0xaC0zdi0xaDNjMC41NSwwLDEsMC40NSwxLDF2MUMyMywxNy41NSwyMi41NSwxOCwyMiwxOHogTTUuODgsMThoMi42NiBsMy40LTUuNDJoMC4xMmwzLjQsNS40MmgyLjY2bC00LjY1LTcuMjdMMTcuODEsNGgtMi42OGwtMy4wNyw0Ljk5aC0wLjEyTDguODUsNEg2LjE5bDQuMzIsNi43M0w1Ljg4LDE4elwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAvPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBjb25zdCBIZWFkaW5nSWNvbiA9ICgpID0+IChcbiAgPHN2Z1xuICAgIHdpZHRoPVwiMzBcIlxuICAgIGhlaWdodD1cIjI4XCJcbiAgICB2aWV3Qm94PVwiMCAwIDMwIDI4XCJcbiAgICBmaWxsPVwibm9uZVwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgc3R5bGU9e3sgd2lkdGg6ICcyMHB4JywgaGVpZ2h0OiAnMThweCcgfX1cbiAgPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTI3IDRWMjRIMjlDMjkuNSAyNCAzMCAyNC41IDMwIDI1VjI3QzMwIDI3LjU2MjUgMjkuNSAyOCAyOSAyOEgxOUMxOC40Mzc1IDI4IDE4IDI3LjU2MjUgMTggMjdWMjVDMTggMjQuNSAxOC40Mzc1IDI0IDE5IDI0SDIxVjE2SDlWMjRIMTFDMTEuNSAyNCAxMiAyNC41IDEyIDI1VjI3QzEyIDI3LjU2MjUgMTEuNSAyOCAxMSAyOEgxQzAuNDM3NSAyOCAwIDI3LjU2MjUgMCAyN1YyNUMwIDI0LjUgMC40Mzc1IDI0IDEgMjRIM1Y0SDFDMC40Mzc1IDQgMCAzLjU2MjUgMCAzVjFDMCAwLjUgMC40Mzc1IDAgMSAwSDExQzExLjUgMCAxMiAwLjUgMTIgMVYzQzEyIDMuNTYyNSAxMS41IDQgMTEgNEg5VjEySDIxVjRIMTlDMTguNDM3NSA0IDE4IDMuNTYyNSAxOCAzVjFDMTggMC41IDE4LjQzNzUgMCAxOSAwSDI5QzI5LjUgMCAzMCAwLjUgMzAgMVYzQzMwIDMuNTYyNSAyOS41IDQgMjkgNEgyN1pcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuY29uc3QgU1RZTEVTX01BUCA9IHtcbiAgaDM6IHtcbiAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgIGZvbnRXZWlnaHQ6ICdpbmhlcml0JyxcbiAgfSxcbiAgYmxvY2txdW90ZToge1xuICAgIGJhY2tncm91bmQ6ICcjZjlmOWY5JyxcbiAgICBib3JkZXJMZWZ0OiAnNXB4IHNvbGlkICNjY2MnLFxuICAgIG1hcmdpbjogJzEuNWVtIDEwcHgnLFxuICAgIHBhZGRpbmc6ICcuNWVtIDEwcHgnLFxuICB9LFxufTtcblxuZnVuY3Rpb24gTWFya0hvdGtleShvcHRpb25zKSB7XG4gIGNvbnN0IHsgdHlwZSwga2V5LCBpY29uLCB0YWcgfSA9IG9wdGlvbnM7XG5cbiAgLy8gUmV0dXJuIG91ciBcInBsdWdpblwiIG9iamVjdCwgY29udGFpbmluZyB0aGUgYG9uS2V5RG93bmAgaGFuZGxlci5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiB0eXBlLFxuICAgIHRvb2xiYXI6IHtcbiAgICAgIGlzTWFyazogdHJ1ZSxcbiAgICAgIHR5cGUsXG4gICAgICBpY29uLFxuICAgICAgb25Ub2dnbGU6IChjaGFuZ2UpID0+IHtcbiAgICAgICAgbG9nKCdbb25Ub2dnbGVNYXJrXSB0eXBlOiAnLCB0eXBlKTtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGNoYW5nZS52YWx1ZTtcblxuICAgICAgICBpZiAoWydibG9ja3F1b3RlJywgJ2gzJ10uaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0cyA9IGNoYW5nZS52YWx1ZS5kb2N1bWVudC5nZXRUZXh0c0F0UmFuZ2VBc0FycmF5KHNlbGVjdGlvbik7XG4gICAgICAgICAgY29uc3Qgb25seU9uZVRleHQgPSB0ZXh0cy5sZW5ndGggPT09IDE7XG4gICAgICAgICAgbGV0IGhhc01hcmsgPSBmYWxzZTtcbiAgICAgICAgICBsZXQgc2FtZU1hcmsgPSB0cnVlO1xuXG4gICAgICAgICAgdGV4dHMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWFya3MgPSB0LmdldE1hcmtzQXNBcnJheSgpO1xuICAgICAgICAgICAgY29uc3QgbWFya0lzVGhlcmUgPSBtYXJrcy5maW5kKChtKSA9PiBtLnR5cGUgPT09IHR5cGUpO1xuXG4gICAgICAgICAgICBpZiAoIW1hcmtJc1RoZXJlKSB7XG4gICAgICAgICAgICAgIC8vIG5vdCBhbGwgdGV4dHMgaGF2ZSB0aGlzIG1hcmtcbiAgICAgICAgICAgICAgc2FtZU1hcmsgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIGF0IGxlYXN0IG9uZSBtYXJrXG4gICAgICAgICAgICAgIGhhc01hcmsgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc3Qgc2hvdWxkQ29udGludWUgPSBvbmx5T25lVGV4dCB8fCBzYW1lTWFyayB8fCAhaGFzTWFyaztcblxuICAgICAgICAgIGlmICghc2hvdWxkQ29udGludWUpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlbGVjdGlvbi5zdGFydEtleSA9PT0gc2VsZWN0aW9uLmVuZEtleSAmJiBzZWxlY3Rpb24uYW5jaG9yT2Zmc2V0ID09PSBzZWxlY3Rpb24uZm9jdXNPZmZzZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHROb2RlID0gY2hhbmdlLnZhbHVlLmRvY3VtZW50LmdldE5vZGUoc2VsZWN0aW9uLnN0YXJ0S2V5KTtcblxuICAgICAgICAgICAgLy8gc2VsZWN0IHRoZSB3aG9sZSBsaW5lIGlmIHRoZXJlIGlzIG5vIHNlbGVjdGlvblxuICAgICAgICAgICAgY2hhbmdlLm1vdmVGb2N1c1RvKHRleHROb2RlLmtleSwgMCkubW92ZUFuY2hvclRvKHRleHROb2RlLmtleSwgdGV4dE5vZGUudGV4dC5sZW5ndGgpO1xuXG4gICAgICAgICAgICAvLyByZW1vdmUgdG9nZ2xlXG4gICAgICAgICAgICBjb25zdCBoYXNNYXJrID0gY2hhbmdlLnZhbHVlLmFjdGl2ZU1hcmtzLmZpbmQoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBlbnRyeS50eXBlID09PSB0eXBlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChoYXNNYXJrKSB7XG4gICAgICAgICAgICAgIGNoYW5nZS5yZW1vdmVNYXJrKGhhc01hcmspO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3TWFyayA9IE1hcmsuY3JlYXRlKHR5cGUpO1xuXG4gICAgICAgICAgICAgIGNoYW5nZS5hZGRNYXJrKG5ld01hcmspO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBtb3ZlIGZvY3VzIHRvIGVuZCBvZiB0ZXh0XG4gICAgICAgICAgICByZXR1cm4gY2hhbmdlXG4gICAgICAgICAgICAgIC5tb3ZlRm9jdXNUbyh0ZXh0Tm9kZS5rZXksIHRleHROb2RlLnRleHQubGVuZ3RoKVxuICAgICAgICAgICAgICAubW92ZUFuY2hvclRvKHRleHROb2RlLmtleSwgdGV4dE5vZGUudGV4dC5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjaGFuZ2UudG9nZ2xlTWFyayh0eXBlKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZW5kZXJNYXJrKHByb3BzKSB7XG4gICAgICBpZiAocHJvcHMubWFyay50eXBlID09PSB0eXBlKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gcHJvcHMubm9kZSB8fCB7fTtcbiAgICAgICAgY29uc3QganNvbkRhdGEgPSBkYXRhPy50b0pTT04oKSB8fCB7fTtcbiAgICAgICAgY29uc3QgSyA9IHRhZyB8fCB0eXBlO1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsU3R5bGVzID0gU1RZTEVTX01BUFtLXTtcblxuICAgICAgICBpZiAoYWRkaXRpb25hbFN0eWxlcykge1xuICAgICAgICAgIGlmICghanNvbkRhdGEuYXR0cmlidXRlcykge1xuICAgICAgICAgICAganNvbkRhdGEuYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGpzb25EYXRhLmF0dHJpYnV0ZXMuc3R5bGUgPSB7XG4gICAgICAgICAgICAuLi5qc29uRGF0YS5hdHRyaWJ1dGVzLnN0eWxlLFxuICAgICAgICAgICAgLi4uYWRkaXRpb25hbFN0eWxlcyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDxLIHsuLi5qc29uRGF0YS5hdHRyaWJ1dGVzfT57cHJvcHMuY2hpbGRyZW59PC9LPjtcbiAgICAgIH1cbiAgICB9LFxuICAgIG9uS2V5RG93bihldmVudCwgY2hhbmdlKSB7XG4gICAgICAvLyBDaGVjayB0aGF0IHRoZSBrZXkgcHJlc3NlZCBtYXRjaGVzIG91ciBga2V5YCBvcHRpb24uXG4gICAgICBpZiAoIWV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQua2V5ICE9IGtleSkgcmV0dXJuO1xuXG4gICAgICAvLyBQcmV2ZW50IHRoZSBkZWZhdWx0IGNoYXJhY3RlcnMgZnJvbSBiZWluZyBpbnNlcnRlZC5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIC8vIFRvZ2dsZSB0aGUgbWFyayBgdHlwZWAuXG4gICAgICBjaGFuZ2UudG9nZ2xlTWFyayh0eXBlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBTExfUExVR0lOUyA9IFtcbiAgJ2JvbGQnLFxuICAvLyAnY29kZScsXG4gICdodG1sJyxcbiAgJ2V4dHJhQ1NTUnVsZXMnLFxuICAnaXRhbGljJyxcbiAgJ3VuZGVybGluZScsXG4gICdzdHJpa2V0aHJvdWdoJyxcbiAgJ2J1bGxldGVkLWxpc3QnLFxuICAnbnVtYmVyZWQtbGlzdCcsXG4gICdpbWFnZScsXG4gICdtYXRoJyxcbiAgJ2xhbmd1YWdlQ2hhcmFjdGVycycsXG4gICd0ZXh0LWFsaWduJyxcbiAgJ2Jsb2NrcXVvdGUnLFxuICAnaDMnLFxuICAndGFibGUnLFxuICAndmlkZW8nLFxuICAnYXVkaW8nLFxuICAncmVzcG9uc2VBcmVhJyxcbiAgJ3JlZG8nLFxuICAndW5kbycsXG4gICdzdXBlcnNjcmlwdCcsXG4gICdzdWJzY3JpcHQnLFxuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExVR0lOUyA9IEFMTF9QTFVHSU5TLmZpbHRlcigocGx1ZykgPT4gIVsncmVzcG9uc2VBcmVhJywgJ2gzJywgJ2Jsb2NrcXVvdGUnXS5pbmNsdWRlcyhwbHVnKSk7XG5cbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0xJU1QgPSBbXG4gIEdyaWRPbixcbiAgQm9sZCxcbiAgSXRhbGljLFxuICBTdHJpa2V0aHJvdWdoLFxuICBVbmRlcmxpbmUsXG4gIFN1cGVyc2NyaXB0SWNvbixcbiAgU3Vic2NyaXB0SWNvbixcbiAgSW1hZ2UsXG4gIEhlYWRpbmdJY29uLFxuICBCdWxsZXRlZExpc3RJY29uLFxuICBOdW1iZXJlZExpc3RJY29uLFxuICBGb3JtYXRRdW90ZSxcbl07XG5cbmNvbnN0IElDT05fTUFQID0ge1xuICB1bmRvOiBVbmRvLFxuICByZWRvOiBSZWRvLFxufTtcbmZ1bmN0aW9uIFVuZG9SZWRvKHR5cGUpIHtcbiAgY29uc3QgSWNvblRvVXNlID0gSUNPTl9NQVBbdHlwZV07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiB0eXBlLFxuICAgIHRvb2xiYXI6IHtcbiAgICAgIHR5cGUsXG4gICAgICBpY29uOiA8SWNvblRvVXNlIC8+LFxuICAgICAgYXJpYUxhYmVsOiB0eXBlID09PSAndW5kbycgPyAnVW5kbyAocmV2ZXJ0IHRoZSBsYXN0IGFjdGlvbiknIDogJ1JlZG8gKHJlYXBwbHkgdGhlIGxhc3QgdW5kb25lIGFjdGlvbiknLFxuICAgICAgb25DbGljazogKHZhbHVlLCBvbkNoYW5nZSkgPT4ge1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSB2YWx1ZS5jaGFuZ2UoKTtcblxuICAgICAgICBvbkNoYW5nZShjaGFuZ2VbdHlwZV0oKSk7XG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIEVudGVySGFuZGxpbmdQbHVnaW4oKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2VudGVySGFuZGxpbmcnLFxuICAgIG9uS2V5RG93bjogKGV2ZW50LCBjaGFuZ2UpID0+IHtcbiAgICAgIGlmIChIb3RrZXlzLmlzU3BsaXRCbG9jayhldmVudCkgJiYgIUlTX0lPUykge1xuICAgICAgICBpZiAoY2hhbmdlLnZhbHVlLmlzSW5Wb2lkKSB7XG4gICAgICAgICAgcmV0dXJuIGNoYW5nZS5jb2xsYXBzZVRvU3RhcnRPZk5leHRUZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGFuZ2Uuc3BsaXRCbG9jaygpO1xuXG4gICAgICAgIGNvbnN0IHJhbmdlID0gY2hhbmdlLnZhbHVlLnNlbGVjdGlvbjtcbiAgICAgICAgY29uc3QgbmV3QmxvY2sgPSBjaGFuZ2UudmFsdWUuZG9jdW1lbnQuZ2V0Q2xvc2VzdEJsb2NrKHJhbmdlLnN0YXJ0S2V5KTtcblxuICAgICAgICBpZiAobmV3QmxvY2sudHlwZSAhPT0gJ3BhcmFncmFwaCcpIHtcbiAgICAgICAgICBjaGFuZ2Uuc2V0Tm9kZUJ5S2V5KG5ld0Jsb2NrLmtleSwge1xuICAgICAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hhbmdlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZFBsdWdpbnMgPSAoYWN0aXZlUGx1Z2lucywgY3VzdG9tUGx1Z2lucywgb3B0cykgPT4ge1xuICBsb2coJ1tidWlsZFBsdWdpbnNdIG9wdHM6ICcsIG9wdHMpO1xuXG4gIGFjdGl2ZVBsdWdpbnMgPSBhY3RpdmVQbHVnaW5zIHx8IERFRkFVTFRfUExVR0lOUztcblxuICBjb25zdCBhZGRJZiA9IChrZXksIHApID0+IGFjdGl2ZVBsdWdpbnMuaW5jbHVkZXMoa2V5KSAmJiBwO1xuXG4gIGNvbnN0IGltYWdlUGx1Z2luID0gb3B0cy5pbWFnZSAmJiBvcHRzLmltYWdlLm9uRGVsZXRlICYmIEltYWdlUGx1Z2luKG9wdHMuaW1hZ2UpO1xuICBjb25zdCBtYXRoUGx1Z2luID0gb3B0cy5tYXRoICYmIE1hdGhQbHVnaW4ob3B0cy5tYXRoKTtcbiAgY29uc3QgcmVzcEFyZWFQbHVnaW4gPVxuICAgIG9wdHMucmVzcG9uc2VBcmVhICYmIG9wdHMucmVzcG9uc2VBcmVhLnR5cGUgJiYgUmVzcEFyZWFQbHVnaW4ob3B0cy5yZXNwb25zZUFyZWEsIGNvbXBhY3QoW21hdGhQbHVnaW5dKSk7XG4gIGNvbnN0IGNzc1BsdWdpbiA9ICFpc0VtcHR5KG9wdHMuZXh0cmFDU1NSdWxlcykgJiYgQ1NTUGx1Z2luKG9wdHMuZXh0cmFDU1NSdWxlcyk7XG5cbiAgY29uc3QgbGFuZ3VhZ2VDaGFyYWN0ZXJzUGx1Z2lucyA9IChvcHRzPy5sYW5ndWFnZUNoYXJhY3RlcnMgfHwgW10pLm1hcCgoY29uZmlnKSA9PlxuICAgIENoYXJhY3RlcnNQbHVnaW4oe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2V5UGFkQ2hhcmFjdGVyUmVmOiBvcHRzLmtleVBhZENoYXJhY3RlclJlZixcbiAgICAgIHNldEtleXBhZEludGVyYWN0aW9uOiBvcHRzLnNldEtleXBhZEludGVyYWN0aW9uLFxuICAgIH0pLFxuICApO1xuXG4gIGNvbnN0IHRhYmxlUGx1Z2lucyA9IFtpbWFnZVBsdWdpbiwgbWF0aFBsdWdpbiwgcmVzcEFyZWFQbHVnaW4sIC4uLmxhbmd1YWdlQ2hhcmFjdGVyc1BsdWdpbnNdO1xuXG4gIGlmIChvcHRzLnJlc3BvbnNlQXJlYSAmJiBvcHRzLnJlc3BvbnNlQXJlYS50eXBlID09PSAnbWF0aC10ZW1wbGF0ZWQnKSB7XG4gICAgdGFibGVQbHVnaW5zLnB1c2gocmVzcEFyZWFQbHVnaW4pO1xuICB9XG5cbiAgbGV0IGJ1aWx0Q3VzdG9tUGx1Z2lucyA9IFtdO1xuXG4gIGN1c3RvbVBsdWdpbnM/LmZvckVhY2goKGN1c3RvbVBsdWdpbikgPT4ge1xuICAgIGNvbnN0IHsgZXZlbnQsIGljb24sIGljb25UeXBlLCBpY29uQWx0IH0gPSBjdXN0b21QbHVnaW4gfHwge307XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkRXZlbnROYW1lKGV2ZW50TmFtZSkge1xuICAgICAgLy8gQ2hlY2sgaWYgZXZlbnROYW1lIGlzIGEgbm9uLWVtcHR5IHN0cmluZ1xuICAgICAgaWYgKHR5cGVvZiBldmVudE5hbWUgIT09ICdzdHJpbmcnIHx8IGV2ZW50TmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggdmFsaWQgZXZlbnQgbmFtZXMgKG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIHVuZGVyc2NvcmUpXG4gICAgICBjb25zdCByZWdleCA9IC9eW2EtekEtWjAtOV9dKyQvO1xuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgZXZlbnROYW1lIG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoZXZlbnROYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRFdmVudE5hbWUoZXZlbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBUaGUgZXZlbnQgbmFtZTogJHtldmVudH0gaXMgbm90IGEgdmFsaWQgZXZlbnQgbmFtZSFgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWljb24gJiYgIWljb25UeXBlICYmICFpY29uQWx0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdZb3VyIGN1c3RvbSBidXR0b24gcmVxdWlyZXMgaWNvbiwgaWNvblR5cGUgYW5kIGljb25BbHQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWlsdEN1c3RvbVBsdWdpbnMucHVzaChDdXN0b21QbHVnaW4oJ2N1c3RvbS1wbHVnaW4nLCBjdXN0b21QbHVnaW4pKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbXBhY3QoW1xuICAgIGFkZElmKCd0YWJsZScsIFRhYmxlUGx1Z2luKG9wdHMudGFibGUsIGNvbXBhY3QodGFibGVQbHVnaW5zKSkpLFxuICAgIGFkZElmKCdib2xkJywgTWFya0hvdGtleSh7IGtleTogJ2InLCB0eXBlOiAnYm9sZCcsIGljb246IDxCb2xkIC8+LCB0YWc6ICdzdHJvbmcnIH0pKSxcbiAgICAvLyBhZGRJZignY29kZScsIE1hcmtIb3RrZXkoeyBrZXk6ICdgJywgdHlwZTogJ2NvZGUnLCBpY29uOiA8Q29kZSAvPiB9KSksXG4gICAgYWRkSWYoJ2l0YWxpYycsIE1hcmtIb3RrZXkoeyBrZXk6ICdpJywgdHlwZTogJ2l0YWxpYycsIGljb246IDxJdGFsaWMgLz4sIHRhZzogJ2VtJyB9KSksXG4gICAgYWRkSWYoXG4gICAgICAnc3RyaWtldGhyb3VnaCcsXG4gICAgICBNYXJrSG90a2V5KHtcbiAgICAgICAga2V5OiAnficsXG4gICAgICAgIHR5cGU6ICdzdHJpa2V0aHJvdWdoJyxcbiAgICAgICAgaWNvbjogPFN0cmlrZXRocm91Z2ggLz4sXG4gICAgICAgIHRhZzogJ2RlbCcsXG4gICAgICB9KSxcbiAgICApLFxuICAgIGFkZElmKCd1bmRlcmxpbmUnLCBNYXJrSG90a2V5KHsga2V5OiAndScsIHR5cGU6ICd1bmRlcmxpbmUnLCBpY29uOiA8VW5kZXJsaW5lIC8+LCB0YWc6ICd1JyB9KSksXG4gICAgLy8gaWNvbiBzaG91bGQgYmUgbW9kaWZpZXMgYWNjb3JkaW5nbHlcbiAgICBhZGRJZignc3VwZXJzY3JpcHQnLCBNYXJrSG90a2V5KHsgdHlwZTogJ3N1cCcsIGljb246IDxTdXBlcnNjcmlwdEljb24gLz4sIHRhZzogJ3N1cCcgfSkpLFxuICAgIC8vIGljb24gc2hvdWxkIGJlIG1vZGlmaWVzIGFjY29yZGluZ2x5XG4gICAgYWRkSWYoJ3N1YnNjcmlwdCcsIE1hcmtIb3RrZXkoeyB0eXBlOiAnc3ViJywgaWNvbjogPFN1YnNjcmlwdEljb24gLz4sIHRhZzogJ3N1YicgfSkpLFxuICAgIGFkZElmKCdpbWFnZScsIGltYWdlUGx1Z2luKSxcbiAgICBhZGRJZigndmlkZW8nLCBNZWRpYVBsdWdpbigndmlkZW8nLCBvcHRzLm1lZGlhKSksXG4gICAgYWRkSWYoJ2F1ZGlvJywgTWVkaWFQbHVnaW4oJ2F1ZGlvJywgb3B0cy5tZWRpYSkpLFxuICAgIGFkZElmKCdtYXRoJywgbWF0aFBsdWdpbiksXG4gICAgLi4ubGFuZ3VhZ2VDaGFyYWN0ZXJzUGx1Z2lucy5tYXAoKHBsdWdpbikgPT4gYWRkSWYoJ2xhbmd1YWdlQ2hhcmFjdGVycycsIHBsdWdpbikpLFxuICAgIGFkZElmKCd0ZXh0LWFsaWduJywgVGV4dEFsaWduKG9wdHMudGV4dEFsaWduKSksXG4gICAgYWRkSWYoJ2Jsb2NrcXVvdGUnLCBNYXJrSG90a2V5KHsga2V5OiAncScsIHR5cGU6ICdibG9ja3F1b3RlJywgaWNvbjogPEZvcm1hdFF1b3RlIC8+LCB0YWc6ICdibG9ja3F1b3RlJyB9KSksXG4gICAgYWRkSWYoJ2gzJywgTWFya0hvdGtleSh7IGtleTogJ2gzJywgdHlwZTogJ2gzJywgaWNvbjogPEhlYWRpbmdJY29uIC8+LCB0YWc6ICdoMycgfSkpLFxuICAgIGFkZElmKCdidWxsZXRlZC1saXN0JywgTGlzdCh7IGtleTogJ2wnLCB0eXBlOiAndWxfbGlzdCcsIGljb246IDxCdWxsZXRlZExpc3RJY29uIC8+IH0pKSxcbiAgICBhZGRJZignbnVtYmVyZWQtbGlzdCcsIExpc3QoeyBrZXk6ICduJywgdHlwZTogJ29sX2xpc3QnLCBpY29uOiA8TnVtYmVyZWRMaXN0SWNvbiAvPiB9KSksXG4gICAgYWRkSWYoJ3VuZG8nLCBVbmRvUmVkbygndW5kbycpKSxcbiAgICBhZGRJZigncmVkbycsIFVuZG9SZWRvKCdyZWRvJykpLFxuICAgIFRvb2xiYXJQbHVnaW4ob3B0cy50b29sYmFyKSxcbiAgICBTb2Z0QnJlYWtQbHVnaW4oeyBzaGlmdDogdHJ1ZSB9KSxcbiAgICAuLi5idWlsdEN1c3RvbVBsdWdpbnMsXG4gICAgYWRkSWYoJ3Jlc3BvbnNlQXJlYScsIHJlc3BBcmVhUGx1Z2luKSxcbiAgICBjc3NQbHVnaW4sXG4gICAgYWRkSWYoJ2h0bWwnLCBIdG1sUGx1Z2luKG9wdHMuaHRtbCkpLFxuICAgIEVudGVySGFuZGxpbmdQbHVnaW4oKSxcbiAgICBSZW5kZXJpbmdQbHVnaW4oKSxcbiAgXSk7XG59O1xuIl19
|
|
413
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbHVnaW5zL2luZGV4LmpzeCJdLCJuYW1lcyI6WyJsb2ciLCJTdXBlcnNjcmlwdEljb24iLCJTdWJzY3JpcHRJY29uIiwiSGVhZGluZ0ljb24iLCJ3aWR0aCIsImhlaWdodCIsIlNUWUxFU19NQVAiLCJoMyIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImJsb2NrcXVvdGUiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyTGVmdCIsIm1hcmdpbiIsInBhZGRpbmciLCJNYXJrSG90a2V5Iiwib3B0aW9ucyIsInR5cGUiLCJrZXkiLCJpY29uIiwidGFnIiwibmFtZSIsInRvb2xiYXIiLCJpc01hcmsiLCJvblRvZ2dsZSIsImNoYW5nZSIsInNlbGVjdGlvbiIsInZhbHVlIiwiaW5jbHVkZXMiLCJ0ZXh0cyIsImRvY3VtZW50IiwiZ2V0VGV4dHNBdFJhbmdlQXNBcnJheSIsIm9ubHlPbmVUZXh0IiwibGVuZ3RoIiwiaGFzTWFyayIsInNhbWVNYXJrIiwiZm9yRWFjaCIsInQiLCJtYXJrcyIsImdldE1hcmtzQXNBcnJheSIsIm1hcmtJc1RoZXJlIiwiZmluZCIsIm0iLCJzaG91bGRDb250aW51ZSIsInN0YXJ0S2V5IiwiZW5kS2V5IiwiYW5jaG9yT2Zmc2V0IiwiZm9jdXNPZmZzZXQiLCJ0ZXh0Tm9kZSIsImdldE5vZGUiLCJtb3ZlRm9jdXNUbyIsIm1vdmVBbmNob3JUbyIsInRleHQiLCJhY3RpdmVNYXJrcyIsImVudHJ5IiwicmVtb3ZlTWFyayIsIm5ld01hcmsiLCJNYXJrIiwiY3JlYXRlIiwiYWRkTWFyayIsInRvZ2dsZU1hcmsiLCJyZW5kZXJNYXJrIiwicHJvcHMiLCJtYXJrIiwibm9kZSIsImRhdGEiLCJqc29uRGF0YSIsInRvSlNPTiIsIksiLCJhZGRpdGlvbmFsU3R5bGVzIiwiYXR0cmlidXRlcyIsInN0eWxlIiwiY2hpbGRyZW4iLCJvbktleURvd24iLCJldmVudCIsIm1ldGFLZXkiLCJwcmV2ZW50RGVmYXVsdCIsIkFMTF9QTFVHSU5TIiwiREVGQVVMVF9QTFVHSU5TIiwiZmlsdGVyIiwicGx1ZyIsIkVYVEVOU0lPTlNfTElTVCIsIkdyaWRPbiIsIkJvbGQiLCJJdGFsaWMiLCJTdHJpa2V0aHJvdWdoIiwiVW5kZXJsaW5lIiwiSW1hZ2UiLCJCdWxsZXRlZExpc3RJY29uIiwiTnVtYmVyZWRMaXN0SWNvbiIsIkZvcm1hdFF1b3RlIiwiSUNPTl9NQVAiLCJ1bmRvIiwiVW5kbyIsInJlZG8iLCJSZWRvIiwiVW5kb1JlZG8iLCJJY29uVG9Vc2UiLCJhcmlhTGFiZWwiLCJvbkNsaWNrIiwib25DaGFuZ2UiLCJFbnRlckhhbmRsaW5nUGx1Z2luIiwiSG90a2V5cyIsImlzU3BsaXRCbG9jayIsIklTX0lPUyIsImlzSW5Wb2lkIiwiY29sbGFwc2VUb1N0YXJ0T2ZOZXh0VGV4dCIsInNwbGl0QmxvY2siLCJyYW5nZSIsIm5ld0Jsb2NrIiwiZ2V0Q2xvc2VzdEJsb2NrIiwic2V0Tm9kZUJ5S2V5IiwidW5kZWZpbmVkIiwiYnVpbGRQbHVnaW5zIiwiYWN0aXZlUGx1Z2lucyIsImN1c3RvbVBsdWdpbnMiLCJvcHRzIiwiYWRkSWYiLCJpbWFnZVBsdWdpbiIsImltYWdlIiwib25EZWxldGUiLCJtYXRoUGx1Z2luIiwibWF0aCIsInJlc3BBcmVhUGx1Z2luIiwicmVzcG9uc2VBcmVhIiwiY3NzUGx1Z2luIiwiZXh0cmFDU1NSdWxlcyIsImxhbmd1YWdlQ2hhcmFjdGVyc1BsdWdpbnMiLCJsYW5ndWFnZUNoYXJhY3RlcnMiLCJtYXAiLCJjb25maWciLCJrZXlQYWRDaGFyYWN0ZXJSZWYiLCJzZXRLZXlwYWRJbnRlcmFjdGlvbiIsInRhYmxlUGx1Z2lucyIsInB1c2giLCJidWlsdEN1c3RvbVBsdWdpbnMiLCJjdXN0b21QbHVnaW4iLCJpY29uVHlwZSIsImljb25BbHQiLCJpc1ZhbGlkRXZlbnROYW1lIiwiZXZlbnROYW1lIiwicmVnZXgiLCJ0ZXN0IiwiY29uc29sZSIsImVycm9yIiwidGFibGUiLCJtZWRpYSIsInBsdWdpbiIsInRleHRBbGlnbiIsInNoaWZ0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QyxJQUFoQixDQUFULENBcENBLEVBcUNMakQsbUJBQW1CLEVBckNkLEVBc0NMLDRCQXRDSyxHQUFQO0FBd0NELENBbEdNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhvdGtleXMgZnJvbSAnc2xhdGUtaG90a2V5cyc7XG5pbXBvcnQgeyBJU19JT1MgfSBmcm9tICdzbGF0ZS1kZXYtZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgTWFyayB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCBCb2xkIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRCb2xkJztcbmltcG9ydCBGb3JtYXRRdW90ZSBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRm9ybWF0UXVvdGUnO1xuLy9pbXBvcnQgQ29kZSBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQ29kZSc7XG5pbXBvcnQgQnVsbGV0ZWRMaXN0SWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRm9ybWF0TGlzdEJ1bGxldGVkJztcbmltcG9ydCBOdW1iZXJlZExpc3RJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRMaXN0TnVtYmVyZWQnO1xuaW1wb3J0IEdyaWRPbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvR3JpZE9uJztcbmltcG9ydCBJbWFnZSBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvSW1hZ2UnO1xuaW1wb3J0IFJlZG8gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1JlZG8nO1xuaW1wb3J0IFVuZG8gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1VuZG8nO1xuaW1wb3J0IEltYWdlUGx1Z2luIGZyb20gJy4vaW1hZ2UnO1xuaW1wb3J0IE1lZGlhUGx1Z2luIGZyb20gJy4vbWVkaWEnO1xuaW1wb3J0IENoYXJhY3RlcnNQbHVnaW4gZnJvbSAnLi9jaGFyYWN0ZXJzJztcbmltcG9ydCBJdGFsaWMgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdEl0YWxpYyc7XG5pbXBvcnQgTWF0aFBsdWdpbiBmcm9tICcuL21hdGgnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBTdHJpa2V0aHJvdWdoIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRTdHJpa2V0aHJvdWdoJztcbmltcG9ydCBUb29sYmFyUGx1Z2luIGZyb20gJy4vdG9vbGJhcic7XG5pbXBvcnQgVW5kZXJsaW5lIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRVbmRlcmxpbmVkJztcbmltcG9ydCBjb21wYWN0IGZyb20gJ2xvZGFzaC9jb21wYWN0JztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCBTb2Z0QnJlYWtQbHVnaW4gZnJvbSAnc2xhdGUtc29mdC1icmVhayc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IExpc3QgZnJvbSAnLi9saXN0JztcbmltcG9ydCBUYWJsZVBsdWdpbiBmcm9tICcuL3RhYmxlJztcbmltcG9ydCBSZXNwQXJlYVBsdWdpbiBmcm9tICcuL3Jlc3BBcmVhJztcbmltcG9ydCBIdG1sUGx1Z2luIGZyb20gJy4vaHRtbCc7XG5pbXBvcnQgQ1NTUGx1Z2luIGZyb20gJy4vY3NzJztcbmltcG9ydCBDdXN0b21QbHVnaW4gZnJvbSAnLi9jdXN0b21QbHVnaW4nO1xuaW1wb3J0IFJlbmRlcmluZ1BsdWdpbiBmcm9tICcuL3JlbmRlcmluZyc7XG5pbXBvcnQgVGV4dEFsaWduIGZyb20gJy4vdGV4dEFsaWduJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2lucycpO1xuXG5leHBvcnQgY29uc3QgU3VwZXJzY3JpcHRJY29uID0gKCkgPT4gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRweFwiIGZpbGw9XCJub25lXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNMjIsN2gtMnYxaDN2MWgtNFY3YzAtMC41NSwwLjQ1LTEsMS0xaDJWNWgtM1Y0aDNjMC41NSwwLDEsMC40NSwxLDF2MUMyMyw2LjU1LDIyLjU1LDcsMjIsN3ogTTUuODgsMjBoMi42NmwzLjQtNS40MmgwLjEyIGwzLjQsNS40MmgyLjY2bC00LjY1LTcuMjdMMTcuODEsNmgtMi42OGwtMy4wNyw0Ljk5aC0wLjEyTDguODUsNkg2LjE5bDQuMzIsNi43M0w1Ljg4LDIwelwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAvPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBjb25zdCBTdWJzY3JpcHRJY29uID0gKCkgPT4gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRweFwiIGZpbGw9XCJub25lXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNMjIsMThoLTJ2MWgzdjFoLTR2LTJjMC0wLjU1LDAuNDUtMSwxLTFoMnYtMWgtM3YtMWgzYzAuNTUsMCwxLDAuNDUsMSwxdjFDMjMsMTcuNTUsMjIuNTUsMTgsMjIsMTh6IE01Ljg4LDE4aDIuNjYgbDMuNC01LjQyaDAuMTJsMy40LDUuNDJoMi42NmwtNC42NS03LjI3TDE3LjgxLDRoLTIuNjhsLTMuMDcsNC45OWgtMC4xMkw4Ljg1LDRINi4xOWw0LjMyLDYuNzNMNS44OCwxOHpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5leHBvcnQgY29uc3QgSGVhZGluZ0ljb24gPSAoKSA9PiAoXG4gIDxzdmdcbiAgICB3aWR0aD1cIjMwXCJcbiAgICBoZWlnaHQ9XCIyOFwiXG4gICAgdmlld0JveD1cIjAgMCAzMCAyOFwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHN0eWxlPXt7IHdpZHRoOiAnMjBweCcsIGhlaWdodDogJzE4cHgnIH19XG4gID5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0yNyA0VjI0SDI5QzI5LjUgMjQgMzAgMjQuNSAzMCAyNVYyN0MzMCAyNy41NjI1IDI5LjUgMjggMjkgMjhIMTlDMTguNDM3NSAyOCAxOCAyNy41NjI1IDE4IDI3VjI1QzE4IDI0LjUgMTguNDM3NSAyNCAxOSAyNEgyMVYxNkg5VjI0SDExQzExLjUgMjQgMTIgMjQuNSAxMiAyNVYyN0MxMiAyNy41NjI1IDExLjUgMjggMTEgMjhIMUMwLjQzNzUgMjggMCAyNy41NjI1IDAgMjdWMjVDMCAyNC41IDAuNDM3NSAyNCAxIDI0SDNWNEgxQzAuNDM3NSA0IDAgMy41NjI1IDAgM1YxQzAgMC41IDAuNDM3NSAwIDEgMEgxMUMxMS41IDAgMTIgMC41IDEyIDFWM0MxMiAzLjU2MjUgMTEuNSA0IDExIDRIOVYxMkgyMVY0SDE5QzE4LjQzNzUgNCAxOCAzLjU2MjUgMTggM1YxQzE4IDAuNSAxOC40Mzc1IDAgMTkgMEgyOUMyOS41IDAgMzAgMC41IDMwIDFWM0MzMCAzLjU2MjUgMjkuNSA0IDI5IDRIMjdaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcbmNvbnN0IFNUWUxFU19NQVAgPSB7XG4gIGgzOiB7XG4gICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICBmb250V2VpZ2h0OiAnaW5oZXJpdCcsXG4gIH0sXG4gIGJsb2NrcXVvdGU6IHtcbiAgICBiYWNrZ3JvdW5kOiAnI2Y5ZjlmOScsXG4gICAgYm9yZGVyTGVmdDogJzVweCBzb2xpZCAjY2NjJyxcbiAgICBtYXJnaW46ICcxLjVlbSAxMHB4JyxcbiAgICBwYWRkaW5nOiAnLjVlbSAxMHB4JyxcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIE1hcmtIb3RrZXkob3B0aW9ucykge1xuICBjb25zdCB7IHR5cGUsIGtleSwgaWNvbiwgdGFnIH0gPSBvcHRpb25zO1xuXG4gIC8vIFJldHVybiBvdXIgXCJwbHVnaW5cIiBvYmplY3QsIGNvbnRhaW5pbmcgdGhlIGBvbktleURvd25gIGhhbmRsZXIuXG4gIHJldHVybiB7XG4gICAgbmFtZTogdHlwZSxcbiAgICB0b29sYmFyOiB7XG4gICAgICBpc01hcms6IHRydWUsXG4gICAgICB0eXBlLFxuICAgICAgaWNvbixcbiAgICAgIG9uVG9nZ2xlOiAoY2hhbmdlKSA9PiB7XG4gICAgICAgIGxvZygnW29uVG9nZ2xlTWFya10gdHlwZTogJywgdHlwZSk7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBjaGFuZ2UudmFsdWU7XG5cbiAgICAgICAgaWYgKFsnYmxvY2txdW90ZScsICdoMyddLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICAgICAgY29uc3QgdGV4dHMgPSBjaGFuZ2UudmFsdWUuZG9jdW1lbnQuZ2V0VGV4dHNBdFJhbmdlQXNBcnJheShzZWxlY3Rpb24pO1xuICAgICAgICAgIGNvbnN0IG9ubHlPbmVUZXh0ID0gdGV4dHMubGVuZ3RoID09PSAxO1xuICAgICAgICAgIGxldCBoYXNNYXJrID0gZmFsc2U7XG4gICAgICAgICAgbGV0IHNhbWVNYXJrID0gdHJ1ZTtcblxuICAgICAgICAgIHRleHRzLmZvckVhY2goKHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtzID0gdC5nZXRNYXJrc0FzQXJyYXkoKTtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtJc1RoZXJlID0gbWFya3MuZmluZCgobSkgPT4gbS50eXBlID09PSB0eXBlKTtcblxuICAgICAgICAgICAgaWYgKCFtYXJrSXNUaGVyZSkge1xuICAgICAgICAgICAgICAvLyBub3QgYWxsIHRleHRzIGhhdmUgdGhpcyBtYXJrXG4gICAgICAgICAgICAgIHNhbWVNYXJrID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBhdCBsZWFzdCBvbmUgbWFya1xuICAgICAgICAgICAgICBoYXNNYXJrID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHNob3VsZENvbnRpbnVlID0gb25seU9uZVRleHQgfHwgc2FtZU1hcmsgfHwgIWhhc01hcms7XG5cbiAgICAgICAgICBpZiAoIXNob3VsZENvbnRpbnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hhbmdlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzZWxlY3Rpb24uc3RhcnRLZXkgPT09IHNlbGVjdGlvbi5lbmRLZXkgJiYgc2VsZWN0aW9uLmFuY2hvck9mZnNldCA9PT0gc2VsZWN0aW9uLmZvY3VzT2Zmc2V0KSB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0Tm9kZSA9IGNoYW5nZS52YWx1ZS5kb2N1bWVudC5nZXROb2RlKHNlbGVjdGlvbi5zdGFydEtleSk7XG5cbiAgICAgICAgICAgIC8vIHNlbGVjdCB0aGUgd2hvbGUgbGluZSBpZiB0aGVyZSBpcyBubyBzZWxlY3Rpb25cbiAgICAgICAgICAgIGNoYW5nZS5tb3ZlRm9jdXNUbyh0ZXh0Tm9kZS5rZXksIDApLm1vdmVBbmNob3JUbyh0ZXh0Tm9kZS5rZXksIHRleHROb2RlLnRleHQubGVuZ3RoKTtcblxuICAgICAgICAgICAgLy8gcmVtb3ZlIHRvZ2dsZVxuICAgICAgICAgICAgY29uc3QgaGFzTWFyayA9IGNoYW5nZS52YWx1ZS5hY3RpdmVNYXJrcy5maW5kKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZW50cnkudHlwZSA9PT0gdHlwZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoaGFzTWFyaykge1xuICAgICAgICAgICAgICBjaGFuZ2UucmVtb3ZlTWFyayhoYXNNYXJrKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld01hcmsgPSBNYXJrLmNyZWF0ZSh0eXBlKTtcblxuICAgICAgICAgICAgICBjaGFuZ2UuYWRkTWFyayhuZXdNYXJrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbW92ZSBmb2N1cyB0byBlbmQgb2YgdGV4dFxuICAgICAgICAgICAgcmV0dXJuIGNoYW5nZVxuICAgICAgICAgICAgICAubW92ZUZvY3VzVG8odGV4dE5vZGUua2V5LCB0ZXh0Tm9kZS50ZXh0Lmxlbmd0aClcbiAgICAgICAgICAgICAgLm1vdmVBbmNob3JUbyh0ZXh0Tm9kZS5rZXksIHRleHROb2RlLnRleHQubGVuZ3RoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hhbmdlLnRvZ2dsZU1hcmsodHlwZSk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVuZGVyTWFyayhwcm9wcykge1xuICAgICAgaWYgKHByb3BzLm1hcmsudHlwZSA9PT0gdHlwZSkge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IHByb3BzLm5vZGUgfHwge307XG4gICAgICAgIGNvbnN0IGpzb25EYXRhID0gZGF0YT8udG9KU09OKCkgfHwge307XG4gICAgICAgIGNvbnN0IEsgPSB0YWcgfHwgdHlwZTtcbiAgICAgICAgY29uc3QgYWRkaXRpb25hbFN0eWxlcyA9IFNUWUxFU19NQVBbS107XG5cbiAgICAgICAgaWYgKGFkZGl0aW9uYWxTdHlsZXMpIHtcbiAgICAgICAgICBpZiAoIWpzb25EYXRhLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGpzb25EYXRhLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBqc29uRGF0YS5hdHRyaWJ1dGVzLnN0eWxlID0ge1xuICAgICAgICAgICAgLi4uanNvbkRhdGEuYXR0cmlidXRlcy5zdHlsZSxcbiAgICAgICAgICAgIC4uLmFkZGl0aW9uYWxTdHlsZXMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiA8SyB7Li4uanNvbkRhdGEuYXR0cmlidXRlc30+e3Byb3BzLmNoaWxkcmVufTwvSz47XG4gICAgICB9XG4gICAgfSxcbiAgICBvbktleURvd24oZXZlbnQsIGNoYW5nZSkge1xuICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUga2V5IHByZXNzZWQgbWF0Y2hlcyBvdXIgYGtleWAgb3B0aW9uLlxuICAgICAgaWYgKCFldmVudC5tZXRhS2V5IHx8IGV2ZW50LmtleSAhPSBrZXkpIHJldHVybjtcblxuICAgICAgLy8gUHJldmVudCB0aGUgZGVmYXVsdCBjaGFyYWN0ZXJzIGZyb20gYmVpbmcgaW5zZXJ0ZWQuXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAvLyBUb2dnbGUgdGhlIG1hcmsgYHR5cGVgLlxuICAgICAgY2hhbmdlLnRvZ2dsZU1hcmsodHlwZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgQUxMX1BMVUdJTlMgPSBbXG4gICdib2xkJyxcbiAgLy8gJ2NvZGUnLFxuICAnaHRtbCcsXG4gICdleHRyYUNTU1J1bGVzJyxcbiAgJ2l0YWxpYycsXG4gICd1bmRlcmxpbmUnLFxuICAnc3RyaWtldGhyb3VnaCcsXG4gICdidWxsZXRlZC1saXN0JyxcbiAgJ251bWJlcmVkLWxpc3QnLFxuICAnaW1hZ2UnLFxuICAnbWF0aCcsXG4gICdsYW5ndWFnZUNoYXJhY3RlcnMnLFxuICAndGV4dC1hbGlnbicsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2gzJyxcbiAgJ3RhYmxlJyxcbiAgJ3ZpZGVvJyxcbiAgJ2F1ZGlvJyxcbiAgJ3Jlc3BvbnNlQXJlYScsXG4gICdyZWRvJyxcbiAgJ3VuZG8nLFxuICAnc3VwZXJzY3JpcHQnLFxuICAnc3Vic2NyaXB0Jyxcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BMVUdJTlMgPSBBTExfUExVR0lOUy5maWx0ZXIoKHBsdWcpID0+ICFbJ3Jlc3BvbnNlQXJlYScsICdoMycsICdibG9ja3F1b3RlJ10uaW5jbHVkZXMocGx1ZykpO1xuXG5leHBvcnQgY29uc3QgRVhURU5TSU9OU19MSVNUID0gW1xuICBHcmlkT24sXG4gIEJvbGQsXG4gIEl0YWxpYyxcbiAgU3RyaWtldGhyb3VnaCxcbiAgVW5kZXJsaW5lLFxuICBTdXBlcnNjcmlwdEljb24sXG4gIFN1YnNjcmlwdEljb24sXG4gIEltYWdlLFxuICBIZWFkaW5nSWNvbixcbiAgQnVsbGV0ZWRMaXN0SWNvbixcbiAgTnVtYmVyZWRMaXN0SWNvbixcbiAgRm9ybWF0UXVvdGUsXG5dO1xuXG5jb25zdCBJQ09OX01BUCA9IHtcbiAgdW5kbzogVW5kbyxcbiAgcmVkbzogUmVkbyxcbn07XG5mdW5jdGlvbiBVbmRvUmVkbyh0eXBlKSB7XG4gIGNvbnN0IEljb25Ub1VzZSA9IElDT05fTUFQW3R5cGVdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogdHlwZSxcbiAgICB0b29sYmFyOiB7XG4gICAgICB0eXBlLFxuICAgICAgaWNvbjogPEljb25Ub1VzZSAvPixcbiAgICAgIGFyaWFMYWJlbDogdHlwZSA9PT0gJ3VuZG8nID8gJ1VuZG8gKHJldmVydCB0aGUgbGFzdCBhY3Rpb24pJyA6ICdSZWRvIChyZWFwcGx5IHRoZSBsYXN0IHVuZG9uZSBhY3Rpb24pJyxcbiAgICAgIG9uQ2xpY2s6ICh2YWx1ZSwgb25DaGFuZ2UpID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gdmFsdWUuY2hhbmdlKCk7XG5cbiAgICAgICAgb25DaGFuZ2UoY2hhbmdlW3R5cGVdKCkpO1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBFbnRlckhhbmRsaW5nUGx1Z2luKCkge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdlbnRlckhhbmRsaW5nJyxcbiAgICBvbktleURvd246IChldmVudCwgY2hhbmdlKSA9PiB7XG4gICAgICBpZiAoSG90a2V5cy5pc1NwbGl0QmxvY2soZXZlbnQpICYmICFJU19JT1MpIHtcbiAgICAgICAgaWYgKGNoYW5nZS52YWx1ZS5pc0luVm9pZCkge1xuICAgICAgICAgIHJldHVybiBjaGFuZ2UuY29sbGFwc2VUb1N0YXJ0T2ZOZXh0VGV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hhbmdlLnNwbGl0QmxvY2soKTtcblxuICAgICAgICBjb25zdCByYW5nZSA9IGNoYW5nZS52YWx1ZS5zZWxlY3Rpb247XG4gICAgICAgIGNvbnN0IG5ld0Jsb2NrID0gY2hhbmdlLnZhbHVlLmRvY3VtZW50LmdldENsb3Nlc3RCbG9jayhyYW5nZS5zdGFydEtleSk7XG5cbiAgICAgICAgaWYgKG5ld0Jsb2NrLnR5cGUgIT09ICdwYXJhZ3JhcGgnKSB7XG4gICAgICAgICAgY2hhbmdlLnNldE5vZGVCeUtleShuZXdCbG9jay5rZXksIHtcbiAgICAgICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNoYW5nZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgYnVpbGRQbHVnaW5zID0gKGFjdGl2ZVBsdWdpbnMsIGN1c3RvbVBsdWdpbnMsIG9wdHMpID0+IHtcbiAgbG9nKCdbYnVpbGRQbHVnaW5zXSBvcHRzOiAnLCBvcHRzKTtcblxuICBhY3RpdmVQbHVnaW5zID0gYWN0aXZlUGx1Z2lucyB8fCBERUZBVUxUX1BMVUdJTlM7XG5cbiAgY29uc3QgYWRkSWYgPSAoa2V5KSA9PiBhY3RpdmVQbHVnaW5zLmluY2x1ZGVzKGtleSkgJiYga2V5O1xuXG4gIGNvbnN0IGltYWdlUGx1Z2luID0gb3B0cy5pbWFnZSAmJiBvcHRzLmltYWdlLm9uRGVsZXRlICYmIEltYWdlUGx1Z2luKG9wdHMuaW1hZ2UpO1xuICBjb25zdCBtYXRoUGx1Z2luID0gb3B0cy5tYXRoICYmIE1hdGhQbHVnaW4ob3B0cy5tYXRoKTtcbiAgY29uc3QgcmVzcEFyZWFQbHVnaW4gPVxuICAgIG9wdHMucmVzcG9uc2VBcmVhICYmIG9wdHMucmVzcG9uc2VBcmVhLnR5cGUgJiYgUmVzcEFyZWFQbHVnaW4ob3B0cy5yZXNwb25zZUFyZWEsIGNvbXBhY3QoW21hdGhQbHVnaW5dKSk7XG4gIGNvbnN0IGNzc1BsdWdpbiA9ICFpc0VtcHR5KG9wdHMuZXh0cmFDU1NSdWxlcykgJiYgQ1NTUGx1Z2luKG9wdHMuZXh0cmFDU1NSdWxlcyk7XG5cbiAgY29uc3QgbGFuZ3VhZ2VDaGFyYWN0ZXJzUGx1Z2lucyA9IChvcHRzPy5sYW5ndWFnZUNoYXJhY3RlcnMgfHwgW10pLm1hcCgoY29uZmlnKSA9PlxuICAgIENoYXJhY3RlcnNQbHVnaW4oe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2V5UGFkQ2hhcmFjdGVyUmVmOiBvcHRzLmtleVBhZENoYXJhY3RlclJlZixcbiAgICAgIHNldEtleXBhZEludGVyYWN0aW9uOiBvcHRzLnNldEtleXBhZEludGVyYWN0aW9uLFxuICAgIH0pLFxuICApO1xuXG4gIGNvbnN0IHRhYmxlUGx1Z2lucyA9IFtpbWFnZVBsdWdpbiwgbWF0aFBsdWdpbiwgcmVzcEFyZWFQbHVnaW4sIC4uLmxhbmd1YWdlQ2hhcmFjdGVyc1BsdWdpbnNdO1xuXG4gIGlmIChvcHRzLnJlc3BvbnNlQXJlYSAmJiBvcHRzLnJlc3BvbnNlQXJlYS50eXBlID09PSAnbWF0aC10ZW1wbGF0ZWQnKSB7XG4gICAgdGFibGVQbHVnaW5zLnB1c2gocmVzcEFyZWFQbHVnaW4pO1xuICB9XG5cbiAgbGV0IGJ1aWx0Q3VzdG9tUGx1Z2lucyA9IFtdO1xuXG4gIGN1c3RvbVBsdWdpbnM/LmZvckVhY2goKGN1c3RvbVBsdWdpbikgPT4ge1xuICAgIGNvbnN0IHsgZXZlbnQsIGljb24sIGljb25UeXBlLCBpY29uQWx0IH0gPSBjdXN0b21QbHVnaW4gfHwge307XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkRXZlbnROYW1lKGV2ZW50TmFtZSkge1xuICAgICAgLy8gQ2hlY2sgaWYgZXZlbnROYW1lIGlzIGEgbm9uLWVtcHR5IHN0cmluZ1xuICAgICAgaWYgKHR5cGVvZiBldmVudE5hbWUgIT09ICdzdHJpbmcnIHx8IGV2ZW50TmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggdmFsaWQgZXZlbnQgbmFtZXMgKG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIHVuZGVyc2NvcmUpXG4gICAgICBjb25zdCByZWdleCA9IC9eW2EtekEtWjAtOV9dKyQvO1xuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgZXZlbnROYW1lIG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoZXZlbnROYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRFdmVudE5hbWUoZXZlbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBUaGUgZXZlbnQgbmFtZTogJHtldmVudH0gaXMgbm90IGEgdmFsaWQgZXZlbnQgbmFtZSFgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWljb24gJiYgIWljb25UeXBlICYmICFpY29uQWx0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdZb3VyIGN1c3RvbSBidXR0b24gcmVxdWlyZXMgaWNvbiwgaWNvblR5cGUgYW5kIGljb25BbHQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWlsdEN1c3RvbVBsdWdpbnMucHVzaChDdXN0b21QbHVnaW4oJ2N1c3RvbS1wbHVnaW4nLCBjdXN0b21QbHVnaW4pKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbXBhY3QoW1xuICAgIGFkZElmKCd0YWJsZScsIFRhYmxlUGx1Z2luKG9wdHMudGFibGUsIGNvbXBhY3QodGFibGVQbHVnaW5zKSkpLFxuICAgIGFkZElmKCdib2xkJywgTWFya0hvdGtleSh7IGtleTogJ2InLCB0eXBlOiAnYm9sZCcsIGljb246IDxCb2xkIC8+LCB0YWc6ICdzdHJvbmcnIH0pKSxcbiAgICAvLyBhZGRJZignY29kZScsIE1hcmtIb3RrZXkoeyBrZXk6ICdgJywgdHlwZTogJ2NvZGUnLCBpY29uOiA8Q29kZSAvPiB9KSksXG4gICAgYWRkSWYoJ2l0YWxpYycsIE1hcmtIb3RrZXkoeyBrZXk6ICdpJywgdHlwZTogJ2l0YWxpYycsIGljb246IDxJdGFsaWMgLz4sIHRhZzogJ2VtJyB9KSksXG4gICAgYWRkSWYoXG4gICAgICAnc3RyaWtldGhyb3VnaCcsXG4gICAgICBNYXJrSG90a2V5KHtcbiAgICAgICAga2V5OiAnficsXG4gICAgICAgIHR5cGU6ICdzdHJpa2V0aHJvdWdoJyxcbiAgICAgICAgaWNvbjogPFN0cmlrZXRocm91Z2ggLz4sXG4gICAgICAgIHRhZzogJ2RlbCcsXG4gICAgICB9KSxcbiAgICApLFxuICAgIGFkZElmKCd1bmRlcmxpbmUnLCBNYXJrSG90a2V5KHsga2V5OiAndScsIHR5cGU6ICd1bmRlcmxpbmUnLCBpY29uOiA8VW5kZXJsaW5lIC8+LCB0YWc6ICd1JyB9KSksXG4gICAgLy8gaWNvbiBzaG91bGQgYmUgbW9kaWZpZXMgYWNjb3JkaW5nbHlcbiAgICBhZGRJZignc3VwZXJzY3JpcHQnLCBNYXJrSG90a2V5KHsgdHlwZTogJ3N1cCcsIGljb246IDxTdXBlcnNjcmlwdEljb24gLz4sIHRhZzogJ3N1cCcgfSkpLFxuICAgIC8vIGljb24gc2hvdWxkIGJlIG1vZGlmaWVzIGFjY29yZGluZ2x5XG4gICAgYWRkSWYoJ3N1YnNjcmlwdCcsIE1hcmtIb3RrZXkoeyB0eXBlOiAnc3ViJywgaWNvbjogPFN1YnNjcmlwdEljb24gLz4sIHRhZzogJ3N1YicgfSkpLFxuICAgIGFkZElmKCdpbWFnZScsIGltYWdlUGx1Z2luKSxcbiAgICBhZGRJZigndmlkZW8nLCBNZWRpYVBsdWdpbigndmlkZW8nLCBvcHRzLm1lZGlhKSksXG4gICAgYWRkSWYoJ2F1ZGlvJywgTWVkaWFQbHVnaW4oJ2F1ZGlvJywgb3B0cy5tZWRpYSkpLFxuICAgIGFkZElmKCdtYXRoJywgbWF0aFBsdWdpbiksXG4gICAgLi4ubGFuZ3VhZ2VDaGFyYWN0ZXJzUGx1Z2lucy5tYXAoKHBsdWdpbikgPT4gYWRkSWYoJ2xhbmd1YWdlQ2hhcmFjdGVycycsIHBsdWdpbikpLFxuICAgIGFkZElmKCd0ZXh0LWFsaWduJywgVGV4dEFsaWduKG9wdHMudGV4dEFsaWduKSksXG4gICAgYWRkSWYoJ2Jsb2NrcXVvdGUnLCBNYXJrSG90a2V5KHsga2V5OiAncScsIHR5cGU6ICdibG9ja3F1b3RlJywgaWNvbjogPEZvcm1hdFF1b3RlIC8+LCB0YWc6ICdibG9ja3F1b3RlJyB9KSksXG4gICAgYWRkSWYoJ2gzJywgTWFya0hvdGtleSh7IGtleTogJ2gzJywgdHlwZTogJ2gzJywgaWNvbjogPEhlYWRpbmdJY29uIC8+LCB0YWc6ICdoMycgfSkpLFxuICAgIGFkZElmKCdidWxsZXRlZC1saXN0JywgTGlzdCh7IGtleTogJ2wnLCB0eXBlOiAndWxfbGlzdCcsIGljb246IDxCdWxsZXRlZExpc3RJY29uIC8+IH0pKSxcbiAgICBhZGRJZignbnVtYmVyZWQtbGlzdCcsIExpc3QoeyBrZXk6ICduJywgdHlwZTogJ29sX2xpc3QnLCBpY29uOiA8TnVtYmVyZWRMaXN0SWNvbiAvPiB9KSksXG4gICAgYWRkSWYoJ3VuZG8nLCBVbmRvUmVkbygndW5kbycpKSxcbiAgICBhZGRJZigncmVkbycsIFVuZG9SZWRvKCdyZWRvJykpLFxuICAgIFRvb2xiYXJQbHVnaW4ob3B0cy50b29sYmFyKSxcbiAgICBTb2Z0QnJlYWtQbHVnaW4oeyBzaGlmdDogdHJ1ZSB9KSxcbiAgICAuLi5idWlsdEN1c3RvbVBsdWdpbnMsXG4gICAgYWRkSWYoJ3Jlc3BvbnNlQXJlYScsIHJlc3BBcmVhUGx1Z2luKSxcbiAgICBjc3NQbHVnaW4sXG4gICAgYWRkSWYoJ2h0bWwnLCBIdG1sUGx1Z2luKG9wdHMuaHRtbCkpLFxuICAgIEVudGVySGFuZGxpbmdQbHVnaW4oKSxcbiAgICBSZW5kZXJpbmdQbHVnaW4oKSxcbiAgXSk7XG59O1xuIl19
|
package/package.json
CHANGED
package/src/index.jsx
CHANGED
|
@@ -27,7 +27,7 @@ import { color } from '@pie-lib/render-ui';
|
|
|
27
27
|
import { primary } from './theme';
|
|
28
28
|
import { PIE_TOOLBAR__CLASS } from './constants';
|
|
29
29
|
import { DoneButton } from './plugins/toolbar/done-button';
|
|
30
|
-
import { DEFAULT_PLUGINS } from
|
|
30
|
+
import { buildPlugins, DEFAULT_PLUGINS } from "./plugins/index";
|
|
31
31
|
import Bold from '@material-ui/icons/FormatBold';
|
|
32
32
|
import Italic from '@material-ui/icons/FormatItalic';
|
|
33
33
|
import Strikethrough from '@material-ui/icons/FormatStrikethrough';
|
|
@@ -54,8 +54,8 @@ import CSSIcon from './plugins/css/icons';
|
|
|
54
54
|
import { ImageUploadNode } from './extensions/image';
|
|
55
55
|
import { Media } from './extensions/media';
|
|
56
56
|
import { CSSMark } from './extensions/css';
|
|
57
|
-
import { AddColumn, AddRow, RemoveColumn, RemoveRow, RemoveTable } from
|
|
58
|
-
import BorderAll from
|
|
57
|
+
import { AddColumn, AddRow, RemoveColumn, RemoveRow, RemoveTable } from './plugins/table/icons';
|
|
58
|
+
import BorderAll from '@material-ui/icons/BorderAll';
|
|
59
59
|
|
|
60
60
|
const CharacterIcon = ({ letter }) => (
|
|
61
61
|
<div
|
|
@@ -736,7 +736,11 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
736
736
|
{
|
|
737
737
|
icon: <GridOn />,
|
|
738
738
|
onClick: (editor) =>
|
|
739
|
-
editor
|
|
739
|
+
editor
|
|
740
|
+
.chain()
|
|
741
|
+
.focus()
|
|
742
|
+
.insertTable({ rows: 2, cols: 2, withHeaderRow: false })
|
|
743
|
+
.run(),
|
|
740
744
|
hidden: (state) => !activePlugins?.includes('table') || state.isTable,
|
|
741
745
|
isActive: (state) => state.isTable,
|
|
742
746
|
isDisabled: (state) => !state.canTable,
|
|
@@ -825,7 +829,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
825
829
|
.focus()
|
|
826
830
|
.toggleBold()
|
|
827
831
|
.run(),
|
|
828
|
-
hidden: (state) => state.isTable,
|
|
832
|
+
hidden: (state) => !activePlugins?.includes('bold') || state.isTable,
|
|
829
833
|
isActive: (state) => state.isBold,
|
|
830
834
|
isDisabled: (state) => !state.canBold,
|
|
831
835
|
},
|
|
@@ -837,7 +841,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
837
841
|
.focus()
|
|
838
842
|
.toggleItalic()
|
|
839
843
|
.run(),
|
|
840
|
-
hidden: (state) => state.isTable,
|
|
844
|
+
hidden: (state) => !activePlugins?.includes('italic') || state.isTable,
|
|
841
845
|
isActive: (state) => state.isItalic,
|
|
842
846
|
isDisabled: (state) => !state.canItalic,
|
|
843
847
|
},
|
|
@@ -849,7 +853,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
849
853
|
.focus()
|
|
850
854
|
.toggleStrike()
|
|
851
855
|
.run(),
|
|
852
|
-
hidden: (state) => state.isTable,
|
|
856
|
+
hidden: (state) => !activePlugins?.includes('strikethrough') || state.isTable,
|
|
853
857
|
isActive: (state) => state.isStrike,
|
|
854
858
|
isDisabled: (state) => !state.canStrike,
|
|
855
859
|
},
|
|
@@ -861,7 +865,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
861
865
|
.focus()
|
|
862
866
|
.toggleCode()
|
|
863
867
|
.run(),
|
|
864
|
-
hidden: (state) => state.isTable,
|
|
868
|
+
hidden: (state) => !activePlugins?.includes('code') || state.isTable,
|
|
865
869
|
isActive: (state) => state.isCode,
|
|
866
870
|
isDisabled: (state) => !state.canCode,
|
|
867
871
|
},
|
|
@@ -873,7 +877,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
873
877
|
.focus()
|
|
874
878
|
.toggleUnderline()
|
|
875
879
|
.run(),
|
|
876
|
-
hidden: (state) => state.isTable,
|
|
880
|
+
hidden: (state) => !activePlugins?.includes('underline') || state.isTable,
|
|
877
881
|
isActive: (state) => state.isUnderline,
|
|
878
882
|
},
|
|
879
883
|
{
|
|
@@ -884,7 +888,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
884
888
|
.focus()
|
|
885
889
|
.toggleSubscript()
|
|
886
890
|
.run(),
|
|
887
|
-
hidden: (state) => state.isTable,
|
|
891
|
+
hidden: (state) => !activePlugins?.includes('subscript') || state.isTable,
|
|
888
892
|
isActive: (state) => state.isSubScript,
|
|
889
893
|
},
|
|
890
894
|
{
|
|
@@ -895,11 +899,12 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
895
899
|
.focus()
|
|
896
900
|
.toggleSuperscript()
|
|
897
901
|
.run(),
|
|
898
|
-
hidden: (state) => state.isTable,
|
|
902
|
+
hidden: (state) => !activePlugins?.includes('superscript') || state.isTable,
|
|
899
903
|
isActive: (state) => state.isSuperScript,
|
|
900
904
|
},
|
|
901
905
|
{
|
|
902
906
|
icon: <ImageIcon />,
|
|
907
|
+
hidden: (state) => !activePlugins?.includes('image') || state.isTable,
|
|
903
908
|
onClick: (editor) =>
|
|
904
909
|
editor
|
|
905
910
|
.chain()
|
|
@@ -909,7 +914,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
909
914
|
},
|
|
910
915
|
{
|
|
911
916
|
icon: <TheatersIcon />,
|
|
912
|
-
hidden: (state) => state.isTable,
|
|
917
|
+
hidden: (state) => !activePlugins?.includes('video') || state.isTable,
|
|
913
918
|
onClick: (editor) =>
|
|
914
919
|
editor
|
|
915
920
|
.chain()
|
|
@@ -919,7 +924,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
919
924
|
},
|
|
920
925
|
{
|
|
921
926
|
icon: <VolumeUpIcon />,
|
|
922
|
-
hidden: (state) => state.isTable,
|
|
927
|
+
hidden: (state) => !activePlugins?.includes('audio') || state.isTable,
|
|
923
928
|
onClick: (editor) =>
|
|
924
929
|
editor
|
|
925
930
|
.chain()
|
|
@@ -929,12 +934,12 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
929
934
|
},
|
|
930
935
|
{
|
|
931
936
|
icon: <CSSIcon />,
|
|
932
|
-
hidden: (state) => state.isTable,
|
|
937
|
+
hidden: (state) => !activePlugins?.includes('css') || state.isTable,
|
|
933
938
|
onClick: (editor) => editor.commands.openCSSClassDialog(),
|
|
934
939
|
},
|
|
935
940
|
{
|
|
936
941
|
icon: <HeadingIcon />,
|
|
937
|
-
hidden: (state) => state.isTable,
|
|
942
|
+
hidden: (state) => !activePlugins?.includes('h3') || state.isTable,
|
|
938
943
|
onClick: (editor) =>
|
|
939
944
|
editor
|
|
940
945
|
.chain()
|
|
@@ -945,6 +950,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
945
950
|
},
|
|
946
951
|
{
|
|
947
952
|
icon: <Functions />,
|
|
953
|
+
hidden: () => !activePlugins?.includes('math'),
|
|
948
954
|
onClick: (editor) =>
|
|
949
955
|
editor
|
|
950
956
|
.chain()
|
|
@@ -954,22 +960,22 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
954
960
|
},
|
|
955
961
|
{
|
|
956
962
|
icon: <CharacterIcon letter="ñ" />,
|
|
957
|
-
hidden: (state) => state.isTable,
|
|
963
|
+
hidden: (state) => !activePlugins?.includes('languageCharacters') || state.isTable,
|
|
958
964
|
onClick: () => setShowPicker(spanishConfig),
|
|
959
965
|
},
|
|
960
966
|
{
|
|
961
967
|
icon: <CharacterIcon letter="€" />,
|
|
962
|
-
hidden: (state) => state.isTable,
|
|
968
|
+
hidden: (state) => activePlugins?.filter(p => p === 'languageCharacters').length !== 2 || state.isTable,
|
|
963
969
|
onClick: () => setShowPicker(specialConfig),
|
|
964
970
|
},
|
|
965
971
|
{
|
|
966
972
|
icon: <TextAlignIcon editor={editor} />,
|
|
967
|
-
hidden: (state) => state.isTable,
|
|
973
|
+
hidden: (state) => !activePlugins?.includes('text-align') || state.isTable,
|
|
968
974
|
onClick: () => {},
|
|
969
975
|
},
|
|
970
976
|
{
|
|
971
977
|
icon: <BulletedListIcon />,
|
|
972
|
-
hidden: (state) => state.isTable,
|
|
978
|
+
hidden: (state) => !activePlugins?.includes('bulleted-list') || state.isTable,
|
|
973
979
|
onClick: (editor) =>
|
|
974
980
|
editor
|
|
975
981
|
.chain()
|
|
@@ -980,7 +986,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
980
986
|
},
|
|
981
987
|
{
|
|
982
988
|
icon: <NumberedListIcon />,
|
|
983
|
-
hidden: (state) => state.isTable,
|
|
989
|
+
hidden: (state) => !activePlugins?.includes('numbered-list') || state.isTable,
|
|
984
990
|
onClick: (editor) =>
|
|
985
991
|
editor
|
|
986
992
|
.chain()
|
|
@@ -991,7 +997,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
991
997
|
},
|
|
992
998
|
{
|
|
993
999
|
icon: <Undo />,
|
|
994
|
-
hidden: (state) => state.isTable,
|
|
1000
|
+
hidden: (state) => !activePlugins?.includes('undo') || state.isTable,
|
|
995
1001
|
onClick: (editor) =>
|
|
996
1002
|
editor
|
|
997
1003
|
.chain()
|
|
@@ -1002,7 +1008,7 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
1002
1008
|
},
|
|
1003
1009
|
{
|
|
1004
1010
|
icon: <Redo />,
|
|
1005
|
-
hidden: (state) => state.isTable,
|
|
1011
|
+
hidden: (state) => !activePlugins?.includes('redo') || state.isTable,
|
|
1006
1012
|
onClick: (editor) =>
|
|
1007
1013
|
editor
|
|
1008
1014
|
.chain()
|
|
@@ -1041,18 +1047,20 @@ function MenuBar({ editor, classes, activePlugins, toolbarOpts: toolOpts, respon
|
|
|
1041
1047
|
);
|
|
1042
1048
|
})}
|
|
1043
1049
|
</div>
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1050
|
+
{activePlugins?.includes('responseArea') && (
|
|
1051
|
+
<button
|
|
1052
|
+
onClick={() => {
|
|
1053
|
+
editor
|
|
1054
|
+
.chain()
|
|
1055
|
+
.focus()
|
|
1056
|
+
.insertResponseArea(responseAreaProps.type)
|
|
1057
|
+
.run();
|
|
1058
|
+
}}
|
|
1059
|
+
className={classes.button}
|
|
1060
|
+
>
|
|
1061
|
+
<ToolbarIcon />
|
|
1062
|
+
</button>
|
|
1063
|
+
)}
|
|
1056
1064
|
|
|
1057
1065
|
<DoneButton
|
|
1058
1066
|
onClick={() => {
|
|
@@ -1185,7 +1193,26 @@ export const EditableHtml = (props) => {
|
|
|
1185
1193
|
...defaultToolbarOpts,
|
|
1186
1194
|
...toolbarOpts,
|
|
1187
1195
|
};
|
|
1188
|
-
const activePluginsToUse =
|
|
1196
|
+
const activePluginsToUse = useMemo(() => {
|
|
1197
|
+
let { customPlugins } = props.pluginProps || {};
|
|
1198
|
+
|
|
1199
|
+
customPlugins = customPlugins || [];
|
|
1200
|
+
|
|
1201
|
+
return buildPlugins(props.activePlugins, customPlugins, {
|
|
1202
|
+
math: {},
|
|
1203
|
+
textAlign: {},
|
|
1204
|
+
html: {},
|
|
1205
|
+
extraCSSRules: props.extraCSSRules || {},
|
|
1206
|
+
image: {},
|
|
1207
|
+
toolbar: {},
|
|
1208
|
+
table: {},
|
|
1209
|
+
responseArea: {},
|
|
1210
|
+
languageCharacters: props.languageCharactersProps,
|
|
1211
|
+
keyPadCharacterRef: {},
|
|
1212
|
+
setKeypadInteraction: {},
|
|
1213
|
+
media: {},
|
|
1214
|
+
});
|
|
1215
|
+
}, [props]);
|
|
1189
1216
|
const extensions = [
|
|
1190
1217
|
TextStyleKit,
|
|
1191
1218
|
StarterKit,
|
|
@@ -1382,7 +1409,11 @@ export const EditableHtml = (props) => {
|
|
|
1382
1409
|
}, [props]);
|
|
1383
1410
|
|
|
1384
1411
|
return (
|
|
1385
|
-
<EditorContainer
|
|
1412
|
+
<EditorContainer
|
|
1413
|
+
{...{ ...props, activePlugins: activePluginsToUse, toolbarOpts: toolbarOptsToUse }}
|
|
1414
|
+
editorState={editorState}
|
|
1415
|
+
editor={editor}
|
|
1416
|
+
>
|
|
1386
1417
|
{editor && (
|
|
1387
1418
|
<EditorContent
|
|
1388
1419
|
style={{
|
package/src/plugins/index.jsx
CHANGED
|
@@ -281,7 +281,7 @@ export const buildPlugins = (activePlugins, customPlugins, opts) => {
|
|
|
281
281
|
|
|
282
282
|
activePlugins = activePlugins || DEFAULT_PLUGINS;
|
|
283
283
|
|
|
284
|
-
const addIf = (key
|
|
284
|
+
const addIf = (key) => activePlugins.includes(key) && key;
|
|
285
285
|
|
|
286
286
|
const imagePlugin = opts.image && opts.image.onDelete && ImagePlugin(opts.image);
|
|
287
287
|
const mathPlugin = opts.math && MathPlugin(opts.math);
|