react-elmish 9.1.0-beta.2 → 9.1.0-beta.4
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/dist/reduxDevTools.d.ts +31 -0
- package/dist/reduxDevTools.js +15 -0
- package/dist/useElmish.js +23 -22
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
interface ReduxDevToolsExtension {
|
|
2
|
+
connect: (options?: ReduxOptions) => ReduxDevTools;
|
|
3
|
+
disconnect: () => void;
|
|
4
|
+
}
|
|
5
|
+
interface ReduxOptions {
|
|
6
|
+
name?: string;
|
|
7
|
+
}
|
|
8
|
+
interface ReduxDevTools {
|
|
9
|
+
init: (state: unknown) => void;
|
|
10
|
+
send: (message: string, state: unknown, options?: ReduxOptions) => void;
|
|
11
|
+
subscribe: <TState>(callback: (message: ReduxMessage<TState>) => void) => () => void;
|
|
12
|
+
unsubscribe: () => void;
|
|
13
|
+
}
|
|
14
|
+
interface ReduxMessage<TState> {
|
|
15
|
+
type: string;
|
|
16
|
+
payload: {
|
|
17
|
+
type: string;
|
|
18
|
+
};
|
|
19
|
+
state: TState;
|
|
20
|
+
}
|
|
21
|
+
interface ReduxDevToolsExtensionWindow extends Window {
|
|
22
|
+
__REDUX_DEVTOOLS_EXTENSION__: ReduxDevToolsExtension;
|
|
23
|
+
}
|
|
24
|
+
declare global {
|
|
25
|
+
interface Window {
|
|
26
|
+
__REDUX_DEVTOOLS_EXTENSION__?: ReduxDevToolsExtension;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
declare function isReduxDevToolsEnabled(window: Window | undefined): window is ReduxDevToolsExtensionWindow;
|
|
30
|
+
export type { ReduxDevTools, ReduxDevToolsExtension };
|
|
31
|
+
export { isReduxDevToolsEnabled };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isReduxDevToolsEnabled = isReduxDevToolsEnabled;
|
|
7
|
+
function isReduxDevToolsEnabled(window) {
|
|
8
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
9
|
+
var forLog = window === null || window === void 0 ? void 0 : window.__REDUX_DEVTOOLS_EXTENSION__;
|
|
10
|
+
|
|
11
|
+
// biome-ignore lint/suspicious/noConsole: <explanation>
|
|
12
|
+
console.log("REDUX_DEVTOOLS_EXTENSION", forLog);
|
|
13
|
+
return window !== undefined && "__REDUX_DEVTOOLS_EXTENSION__" in window;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1JlZHV4RGV2VG9vbHNFbmFibGVkIiwid2luZG93IiwiZm9yTG9nIiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyIsImNvbnNvbGUiLCJsb2ciLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi9zcmMvcmVkdXhEZXZUb29scy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgUmVkdXhEZXZUb29sc0V4dGVuc2lvbiB7XG5cdGNvbm5lY3Q6IChvcHRpb25zPzogUmVkdXhPcHRpb25zKSA9PiBSZWR1eERldlRvb2xzO1xuXHRkaXNjb25uZWN0OiAoKSA9PiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgUmVkdXhPcHRpb25zIHtcblx0bmFtZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJlZHV4RGV2VG9vbHMge1xuXHRpbml0OiAoc3RhdGU6IHVua25vd24pID0+IHZvaWQ7XG5cdHNlbmQ6IChtZXNzYWdlOiBzdHJpbmcsIHN0YXRlOiB1bmtub3duLCBvcHRpb25zPzogUmVkdXhPcHRpb25zKSA9PiB2b2lkO1xuXHRzdWJzY3JpYmU6IDxUU3RhdGU+KGNhbGxiYWNrOiAobWVzc2FnZTogUmVkdXhNZXNzYWdlPFRTdGF0ZT4pID0+IHZvaWQpID0+ICgpID0+IHZvaWQ7XG5cdHVuc3Vic2NyaWJlOiAoKSA9PiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgUmVkdXhNZXNzYWdlPFRTdGF0ZT4ge1xuXHR0eXBlOiBzdHJpbmc7XG5cdHBheWxvYWQ6IHtcblx0XHR0eXBlOiBzdHJpbmc7XG5cdH07XG5cdHN0YXRlOiBUU3RhdGU7XG59XG5cbmludGVyZmFjZSBSZWR1eERldlRvb2xzRXh0ZW5zaW9uV2luZG93IGV4dGVuZHMgV2luZG93IHtcblx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlTmFtaW5nQ29udmVudGlvbjogUHJlZGVmaW5lZFxuXHRfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fOiBSZWR1eERldlRvb2xzRXh0ZW5zaW9uO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBXaW5kb3cge1xuXHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N0eWxlL3VzZU5hbWluZ0NvbnZlbnRpb246IFByZWRlZmluZWRcblx0XHRfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fPzogUmVkdXhEZXZUb29sc0V4dGVuc2lvbjtcblx0fVxufVxuXG5mdW5jdGlvbiBpc1JlZHV4RGV2VG9vbHNFbmFibGVkKHdpbmRvdzogV2luZG93IHwgdW5kZWZpbmVkKTogd2luZG93IGlzIFJlZHV4RGV2VG9vbHNFeHRlbnNpb25XaW5kb3cge1xuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcblx0Y29uc3QgZm9yTG9nID0gd2luZG93Py5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fO1xuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9Db25zb2xlOiA8ZXhwbGFuYXRpb24+XG5cdGNvbnNvbGUubG9nKFwiUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OXCIsIGZvckxvZyk7XG5cblx0cmV0dXJuIHdpbmRvdyAhPT0gdW5kZWZpbmVkICYmIFwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fX1wiIGluIHdpbmRvdztcbn1cblxuZXhwb3J0IHR5cGUgeyBSZWR1eERldlRvb2xzLCBSZWR1eERldlRvb2xzRXh0ZW5zaW9uIH07XG5cbmV4cG9ydCB7IGlzUmVkdXhEZXZUb29sc0VuYWJsZWQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBb0NBLFNBQVNBLHNCQUFzQkEsQ0FBQ0MsTUFBMEIsRUFBMEM7RUFDbkc7RUFDQSxJQUFNQyxNQUFNLEdBQUdELE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFRSw0QkFBNEI7O0VBRW5EO0VBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLDBCQUEwQixFQUFFSCxNQUFNLENBQUM7RUFFL0MsT0FBT0QsTUFBTSxLQUFLSyxTQUFTLElBQUksOEJBQThCLElBQUlMLE1BQU07QUFDeEUiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/dist/useElmish.js
CHANGED
|
@@ -13,6 +13,7 @@ var _Init = require("./Init");
|
|
|
13
13
|
var _createCallBase = require("./createCallBase");
|
|
14
14
|
var _createDefer3 = require("./createDefer");
|
|
15
15
|
var _fakeOptions = require("./fakeOptions");
|
|
16
|
+
var _reduxDevTools = require("./reduxDevTools");
|
|
16
17
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
17
18
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
19
|
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
@@ -65,26 +66,30 @@ function useElmish(_ref) {
|
|
|
65
66
|
setModel = _useState2[1];
|
|
66
67
|
var propsRef = (0, _react.useRef)(props);
|
|
67
68
|
var isMountedRef = (0, _react.useRef)(true);
|
|
68
|
-
var withDevTools = _Init.Services.enableDevTools && typeof window !== "undefined" && "__REDUX_DEVTOOLS_EXTENSION__" in window;
|
|
69
69
|
var devTools = (0, _react.useRef)(null);
|
|
70
70
|
(0, _react.useEffect)(function () {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
var reduxUnsubscribe;
|
|
72
|
+
if (_Init.Services.enableDevTools === true && (0, _reduxDevTools.isReduxDevToolsEnabled)(window)) {
|
|
73
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
74
|
+
devTools.current = window.__REDUX_DEVTOOLS_EXTENSION__.connect({
|
|
75
|
+
name: name
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// biome-ignore lint/suspicious/noConsole: <explanation>
|
|
79
|
+
console.log("redux dev tools:", devTools.current);
|
|
80
|
+
reduxUnsubscribe = devTools.current.subscribe(function (message) {
|
|
81
|
+
if (message.type === "DISPATCH" && message.payload.type === "JUMP_TO_ACTION") {
|
|
82
|
+
setModel(message.state);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
76
85
|
}
|
|
77
86
|
isMountedRef.current = true;
|
|
78
87
|
return function () {
|
|
88
|
+
var _reduxUnsubscribe;
|
|
79
89
|
isMountedRef.current = false;
|
|
80
|
-
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
82
|
-
// @ts-expect-error
|
|
83
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, no-underscore-dangle, @typescript-eslint/no-unsafe-member-access
|
|
84
|
-
window.__REDUX_DEVTOOLS_EXTENSION__.disconnect();
|
|
85
|
-
}
|
|
90
|
+
(_reduxUnsubscribe = reduxUnsubscribe) === null || _reduxUnsubscribe === void 0 || _reduxUnsubscribe();
|
|
86
91
|
};
|
|
87
|
-
}, [
|
|
92
|
+
}, [name]);
|
|
88
93
|
var initializedModel = model;
|
|
89
94
|
if (propsRef.current !== props) {
|
|
90
95
|
propsRef.current = props;
|
|
@@ -117,13 +122,14 @@ function useElmish(_ref) {
|
|
|
117
122
|
}
|
|
118
123
|
}, []);
|
|
119
124
|
if (!initializedModel) {
|
|
120
|
-
var _Services$logger2;
|
|
125
|
+
var _devTools$current, _Services$logger2;
|
|
121
126
|
var _ref2 = fakeOptions !== null && fakeOptions !== void 0 && fakeOptions.model ? [fakeOptions.model] : init(props),
|
|
122
127
|
_ref3 = _toArray(_ref2),
|
|
123
128
|
initModel = _ref3[0],
|
|
124
129
|
initCommands = _ref3.slice(1);
|
|
125
130
|
initializedModel = initModel;
|
|
126
131
|
setModel(initializedModel);
|
|
132
|
+
(_devTools$current = devTools.current) === null || _devTools$current === void 0 || _devTools$current.init(initializedModel);
|
|
127
133
|
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 || _Services$logger2.debug("Initial model for", name, initializedModel);
|
|
128
134
|
_Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(initCommands)));
|
|
129
135
|
}
|
|
@@ -166,14 +172,9 @@ function useElmish(_ref) {
|
|
|
166
172
|
deferredModel = _getDeferred2[0],
|
|
167
173
|
deferredCommands = _getDeferred2[1];
|
|
168
174
|
if ((0, _Common.modelHasChanged)(currentModel, _objectSpread(_objectSpread({}, deferredModel), newModel))) {
|
|
175
|
+
var _devTools$current2;
|
|
169
176
|
currentModel = _objectSpread(_objectSpread(_objectSpread({}, currentModel), deferredModel), newModel);
|
|
170
|
-
|
|
171
|
-
var _devTools$current;
|
|
172
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
173
|
-
// @ts-expect-error
|
|
174
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
175
|
-
(_devTools$current = devTools.current) === null || _devTools$current === void 0 || _devTools$current.send(nextMsg.name, currentModel);
|
|
176
|
-
}
|
|
177
|
+
(_devTools$current2 = devTools.current) === null || _devTools$current2 === void 0 || _devTools$current2.send(nextMsg.name, currentModel);
|
|
177
178
|
modified = true;
|
|
178
179
|
}
|
|
179
180
|
_Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(commands), _toConsumableArray(deferredCommands)));
|
|
@@ -190,4 +191,4 @@ function callUpdateMap(updateMap, msg, model, props, options) {
|
|
|
190
191
|
var msgName = msg.name;
|
|
191
192
|
return updateMap[msgName](msg, model, props, options);
|
|
192
193
|
}
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJvd25LZXlzIiwiZSIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibiIsImwiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidXNlRWxtaXNoIiwiX3JlZiIsIl9mYWtlT3B0aW9ucyRkaXNwYXRjaCIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsInN1YnNjcmlwdGlvbiIsInJ1bm5pbmciLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ3aXRoRGV2VG9vbHMiLCJTZXJ2aWNlcyIsImVuYWJsZURldlRvb2xzIiwid2luZG93IiwiZGV2VG9vbHMiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyIsImNvbm5lY3QiLCJkaXNjb25uZWN0IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsIm5leHRNc2ciLCJtb2RpZmllZCIsImhhbmRsZU1lc3NhZ2UiLCJzaGlmdCIsInByZXZNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJ1cGRhdGVkTW9kZWwiLCJsb2dnZXIiLCJkZWJ1ZyIsIl9TZXJ2aWNlcyRsb2dnZXIyIiwiX3JlZjIiLCJfcmVmMyIsImluaXRNb2RlbCIsImluaXRDb21tYW5kcyIsImV4ZWNDbWQiLCJjb25jYXQiLCJfc3Vic2NyaXB0aW9uIiwiX3N1YnNjcmlwdGlvbjIiLCJzdWJDbWQiLCJkZXN0cnVjdG9yIiwibG9nTWVzc2FnZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJjYWxsQmFzZSIsImNyZWF0ZUNhbGxCYXNlIiwiX2NhbGxVcGRhdGUiLCJjYWxsVXBkYXRlIiwiX2NhbGxVcGRhdGUyIiwibmV3TW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsIl9kZXZUb29scyRjdXJyZW50Iiwic2VuZCIsIm9wdGlvbnMiLCJjYWxsVXBkYXRlTWFwIiwidXBkYXRlTWFwIiwibXNnTmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHR5cGUge1xuXHRDbWQsXG5cdERpc3BhdGNoLFxuXHRJbml0RnVuY3Rpb24sXG5cdE1lc3NhZ2UsXG5cdE51bGxhYmxlLFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XTtcbnR5cGUgU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG5cdCAqIEB0eXBlIHtUUHJvcHN9XG5cdCAqL1xuXHRwcm9wczogVFByb3BzO1xuXHQvKipcblx0ICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUge0luaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fVxuXHQgKi9cblx0aW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgYHVwZGF0ZWAgZnVuY3Rpb24gb3IgdXBkYXRlIG1hcCBvYmplY3QuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIG9wdGlvbmFsIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPih7XG5cdG5hbWUsXG5cdHByb3BzLFxuXHRpbml0LFxuXHR1cGRhdGUsXG5cdHN1YnNjcmlwdGlvbixcbn06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuXHRsZXQgcnVubmluZyA9IGZhbHNlO1xuXHRjb25zdCBidWZmZXI6IFRNZXNzYWdlW10gPSBbXTtcblx0bGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cblx0Y29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcblx0Y29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuXHRjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VSZWYodHJ1ZSk7XG5cblx0Y29uc3Qgd2l0aERldlRvb2xzID0gU2VydmljZXMuZW5hYmxlRGV2VG9vbHMgJiYgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX19cIiBpbiB3aW5kb3c7XG5cdGNvbnN0IGRldlRvb2xzID0gdXNlUmVmPHVua25vd24+KG51bGwpO1xuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKHdpdGhEZXZUb29scykge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbCwgbm8tdW5kZXJzY29yZS1kYW5nbGUsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuXHRcdFx0ZGV2VG9vbHMuY3VycmVudCA9IHdpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fLmNvbm5lY3QoKTtcblx0XHR9XG5cblx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuXHRcdFx0aWYgKHdpdGhEZXZUb29scykge1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbCwgbm8tdW5kZXJzY29yZS1kYW5nbGUsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuXHRcdFx0XHR3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXy5kaXNjb25uZWN0KCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fSwgW3dpdGhEZXZUb29sc10pO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz9cblx0XHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAocnVubmluZykge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoaGFuZGxlTWVzc2FnZShuZXh0TXNnKSkge1xuXHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcblx0XHRcdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChpc01vdW50ZWRSZWYuY3VycmVudCAmJiBtb2RpZmllZCkge1xuXHRcdFx0XHRcdHNldE1vZGVsKChwcmV2TW9kZWwpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4ucHJldk1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuXHRcdFx0XHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuXHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdHlwZS1hc3NlcnRpb24gLS0gV2UgYWx3YXlzIGhhdmUgYSBmdWxsIG1vZGVsIGhlcmVcblx0XHRcdFx0XHRcdHJldHVybiB1cGRhdGVkTW9kZWwgYXMgVE1vZGVsO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRbXSxcblx0KTtcblxuXHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRjb25zdCBbaW5pdE1vZGVsLCAuLi5pbml0Q29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG5cdFx0aW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcblx0XHRzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG5cdH1cblxuXHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSB3YW50IHRvIHJ1biB0aGlzIGVmZmVjdCBvbmx5IG9uY2Vcblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoc3Vic2NyaXB0aW9uKSB7XG5cdFx0XHRjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0fSwgW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobmV4dE1zZzogVE1lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobmV4dE1zZywgdXBkYXRlZE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyIH0pO1xuXG5cdFx0Y29uc3QgW25ld01vZGVsLCAuLi5jb21tYW5kc10gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgdXBkYXRlZE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyLCBjYWxsQmFzZSB9KTtcblxuXHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRpZiAobW9kZWxIYXNDaGFuZ2VkKGN1cnJlbnRNb2RlbCwgeyAuLi5kZWZlcnJlZE1vZGVsLCAuLi5uZXdNb2RlbCB9KSkge1xuXHRcdFx0Y3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH07XG5cblx0XHRcdGlmICh3aXRoRGV2VG9vbHMpIHtcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yXG5cdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcblx0XHRcdFx0ZGV2VG9vbHMuY3VycmVudD8uc2VuZChuZXh0TXNnLm5hbWUsIGN1cnJlbnRNb2RlbCk7XG5cdFx0XHR9XG5cblx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5jb21tYW5kcywgLi4uZGVmZXJyZWRDb21tYW5kcyk7XG5cblx0XHRyZXR1cm4gbW9kaWZpZWQ7XG5cdH1cbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRyZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzLCBvcHRpb25zKTtcblx0fVxuXG5cdHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRjb25zdCBtc2dOYW1lOiBUTWVzc2FnZVtcIm5hbWVcIl0gPSBtc2cubmFtZTtcblxuXHRyZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHR5cGUgeyBTdWJzY3JpcHRpb24sIFN1YnNjcmlwdGlvblJlc3VsdCwgVXNlRWxtaXNoT3B0aW9ucyB9O1xuXG5leHBvcnQgeyBjYWxsVXBkYXRlLCBjYWxsVXBkYXRlTWFwLCB1c2VFbG1pc2ggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBWUEsSUFBQUcsZUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTCxPQUFBO0FBQW1ELFNBQUFNLG1CQUFBQyxDQUFBLFdBQUFDLGtCQUFB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RSxnQkFBZ0IsR0FBQUYsYUFBQTtJQUV0QyxJQUFJLElBQUFHLHVCQUFlLEVBQUM5RCxZQUFZLEVBQUExQyxhQUFBLENBQUFBLGFBQUEsS0FBT3NHLGFBQWEsR0FBS0osUUFBUSxDQUFFLENBQUMsRUFBRTtNQUNyRXhELFlBQVksR0FBQTFDLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLEtBQVEwQyxZQUFZLEdBQUs0RCxhQUFhLEdBQUtKLFFBQVEsQ0FBRTtNQUVqRSxJQUFJL0MsWUFBWSxFQUFFO1FBQUEsSUFBQXNELGlCQUFBO1FBQ2pCO1FBQ0E7UUFDQTtRQUNBLENBQUFBLGlCQUFBLEdBQUFsRCxRQUFRLENBQUNFLE9BQU8sY0FBQWdELGlCQUFBLGVBQWhCQSxpQkFBQSxDQUFrQkMsSUFBSSxDQUFDdkMsT0FBTyxDQUFDMUMsSUFBSSxFQUFFaUIsWUFBWSxDQUFDO01BQ25EO01BRUEwQixRQUFRLEdBQUcsSUFBSTtJQUNoQjtJQUVBYSxlQUFPLENBQUFsRixLQUFBLFVBQUNpRSxRQUFRLEVBQUFrQixNQUFBLENBQUE5RyxrQkFBQSxDQUFLK0gsUUFBUSxHQUFBL0gsa0JBQUEsQ0FBS21JLGdCQUFnQixHQUFDO0lBRW5ELE9BQU9uQyxRQUFRO0VBQ2hCO0FBQ0Q7QUFFQSxTQUFTNEIsVUFBVUEsQ0FDbEIxRCxNQUFzRixFQUN0RjRCLEdBQWEsRUFDYnBCLEtBQWEsRUFDYlYsS0FBYSxFQUNidUUsT0FBd0QsRUFDbkI7RUFDckMsSUFBSSxPQUFPckUsTUFBTSxLQUFLLFVBQVUsRUFBRTtJQUNqQyxPQUFPQSxNQUFNLENBQUNRLEtBQUssRUFBRW9CLEdBQUcsRUFBRTlCLEtBQUssRUFBRXVFLE9BQU8sQ0FBQztFQUMxQztFQUVBLE9BQU9DLGFBQWEsQ0FBQ3RFLE1BQU0sRUFBRTRCLEdBQUcsRUFBRXBCLEtBQUssRUFBRVYsS0FBSyxFQUFFdUUsT0FBTyxDQUFDO0FBQ3pEO0FBRUEsU0FBU0MsYUFBYUEsQ0FDckJDLFNBQThDLEVBQzlDM0MsR0FBYSxFQUNicEIsS0FBYSxFQUNiVixLQUFhLEVBQ2J1RSxPQUF3RCxFQUNuQjtFQUNyQyxJQUFNRyxPQUF5QixHQUFHNUMsR0FBRyxDQUFDekMsSUFBSTtFQUUxQyxPQUFPb0YsU0FBUyxDQUFDQyxPQUFPLENBQUMsQ0FBQzVDLEdBQUcsRUFBRXBCLEtBQUssRUFBRVYsS0FBSyxFQUFFdUUsT0FBTyxDQUFDO0FBQ3REIiwiaWdub3JlTGlzdCI6W119
|
|
194
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl9yZWR1eERldlRvb2xzIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl90b0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX25vbkl0ZXJhYmxlUmVzdCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiZnJvbSIsIm93bktleXMiLCJlIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJhIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJuIiwibCIsInUiLCJmIiwibmV4dCIsImRvbmUiLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicnVubmluZyIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImlzTW91bnRlZFJlZiIsImRldlRvb2xzIiwidXNlRWZmZWN0IiwicmVkdXhVbnN1YnNjcmliZSIsIlNlcnZpY2VzIiwiZW5hYmxlRGV2VG9vbHMiLCJpc1JlZHV4RGV2VG9vbHNFbmFibGVkIiwid2luZG93IiwiY3VycmVudCIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18iLCJjb25uZWN0IiwiY29uc29sZSIsImxvZyIsInN1YnNjcmliZSIsIm1lc3NhZ2UiLCJ0eXBlIiwicGF5bG9hZCIsInN0YXRlIiwiX3JlZHV4VW5zdWJzY3JpYmUiLCJpbml0aWFsaXplZE1vZGVsIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwibXNnIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaGFuZGxlTWVzc2FnZSIsInNoaWZ0IiwicHJldk1vZGVsIiwiX1NlcnZpY2VzJGxvZ2dlciIsInVwZGF0ZWRNb2RlbCIsImxvZ2dlciIsImRlYnVnIiwiX2RldlRvb2xzJGN1cnJlbnQiLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9yZWYyIiwiX3JlZjMiLCJpbml0TW9kZWwiLCJpbml0Q29tbWFuZHMiLCJleGVjQ21kIiwiY29uY2F0IiwiX3N1YnNjcmlwdGlvbiIsIl9zdWJzY3JpcHRpb24yIiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImxvZ01lc3NhZ2UiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiY2FsbEJhc2UiLCJjcmVhdGVDYWxsQmFzZSIsIl9jYWxsVXBkYXRlIiwiY2FsbFVwZGF0ZSIsIl9jYWxsVXBkYXRlMiIsIm5ld01vZGVsIiwiY29tbWFuZHMiLCJfZ2V0RGVmZXJyZWQiLCJfZ2V0RGVmZXJyZWQyIiwiZGVmZXJyZWRNb2RlbCIsImRlZmVycmVkQ29tbWFuZHMiLCJtb2RlbEhhc0NoYW5nZWQiLCJfZGV2VG9vbHMkY3VycmVudDIiLCJzZW5kIiwib3B0aW9ucyIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJtc2dOYW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZUVsbWlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7XG5cdENtZCxcblx0RGlzcGF0Y2gsXG5cdEluaXRGdW5jdGlvbixcblx0TWVzc2FnZSxcblx0TnVsbGFibGUsXG5cdFVwZGF0ZUZ1bmN0aW9uLFxuXHRVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlUmV0dXJuVHlwZSxcbn0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IGNyZWF0ZUNhbGxCYXNlIH0gZnJvbSBcIi4vY3JlYXRlQ2FsbEJhc2VcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmVyIH0gZnJvbSBcIi4vY3JlYXRlRGVmZXJcIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBpc1JlZHV4RGV2VG9vbHNFbmFibGVkLCB0eXBlIFJlZHV4RGV2VG9vbHMgfSBmcm9tIFwiLi9yZWR1eERldlRvb2xzXCI7XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiB7XG5cdC8qKlxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LiBUaGlzIGlzIHVzZWQgZm9yIGxvZ2dpbmcgb25seS5cblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqXG5cdCAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cblx0ICogQHR5cGUge1RQcm9wc31cblx0ICovXG5cdHByb3BzOiBUUHJvcHM7XG5cdC8qKlxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG5cdCAqL1xuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0c3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KHtcblx0bmFtZSxcblx0cHJvcHMsXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG5cdGxldCBydW5uaW5nID0gZmFsc2U7XG5cdGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2VbXSA9IFtdO1xuXHRsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuXHRjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHRjb25zdCBkZXZUb29scyA9IHVzZVJlZjxSZWR1eERldlRvb2xzIHwgbnVsbD4obnVsbCk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRsZXQgcmVkdXhVbnN1YnNjcmliZTogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKFNlcnZpY2VzLmVuYWJsZURldlRvb2xzID09PSB0cnVlICYmIGlzUmVkdXhEZXZUb29sc0VuYWJsZWQod2luZG93KSkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG5cdFx0XHRkZXZUb29scy5jdXJyZW50ID0gd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdCh7IG5hbWUgfSk7XG5cblx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9Db25zb2xlOiA8ZXhwbGFuYXRpb24+XG5cdFx0XHRjb25zb2xlLmxvZyhcInJlZHV4IGRldiB0b29sczpcIiwgZGV2VG9vbHMuY3VycmVudCk7XG5cblx0XHRcdHJlZHV4VW5zdWJzY3JpYmUgPSBkZXZUb29scy5jdXJyZW50LnN1YnNjcmliZTxUTW9kZWw+KChtZXNzYWdlKSA9PiB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLnR5cGUgPT09IFwiRElTUEFUQ0hcIiAmJiBtZXNzYWdlLnBheWxvYWQudHlwZSA9PT0gXCJKVU1QX1RPX0FDVElPTlwiKSB7XG5cdFx0XHRcdFx0c2V0TW9kZWwobWVzc2FnZS5zdGF0ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXG5cdFx0XHRyZWR1eFVuc3Vic2NyaWJlPy4oKTtcblx0XHR9O1xuXHR9LCBbbmFtZV0pO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz9cblx0XHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAocnVubmluZykge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoaGFuZGxlTWVzc2FnZShuZXh0TXNnKSkge1xuXHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcblx0XHRcdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChpc01vdW50ZWRSZWYuY3VycmVudCAmJiBtb2RpZmllZCkge1xuXHRcdFx0XHRcdHNldE1vZGVsKChwcmV2TW9kZWwpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4ucHJldk1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuXHRcdFx0XHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuXHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdHlwZS1hc3NlcnRpb24gLS0gV2UgYWx3YXlzIGhhdmUgYSBmdWxsIG1vZGVsIGhlcmVcblx0XHRcdFx0XHRcdHJldHVybiB1cGRhdGVkTW9kZWwgYXMgVE1vZGVsO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRbXSxcblx0KTtcblxuXHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRjb25zdCBbaW5pdE1vZGVsLCAuLi5pbml0Q29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG5cdFx0aW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcblx0XHRzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdGRldlRvb2xzLmN1cnJlbnQ/LmluaXQoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiSW5pdGlhbCBtb2RlbCBmb3JcIiwgbmFtZSwgaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5pbml0Q29tbWFuZHMpO1xuXHR9XG5cblx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogV2Ugd2FudCB0byBydW4gdGhpcyBlZmZlY3Qgb25seSBvbmNlXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKHN1YnNjcmlwdGlvbikge1xuXHRcdFx0Y29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCwgcHJvcHMpO1xuXG5cdFx0XHRleGVjQ21kKGRpc3BhdGNoLCBzdWJDbWQpO1xuXG5cdFx0XHRyZXR1cm4gZGVzdHJ1Y3Rvcjtcblx0XHR9XG5cdH0sIFtdKTtcblxuXHRyZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcblxuXHRmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKG5leHRNc2c6IFRNZXNzYWdlKTogYm9vbGVhbiB7XG5cdFx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG5cdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuXHRcdGNvbnN0IFtkZWZlciwgZ2V0RGVmZXJyZWRdID0gY3JlYXRlRGVmZXI8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0XHRjb25zdCBjYWxsQmFzZSA9IGNyZWF0ZUNhbGxCYXNlKG5leHRNc2csIHVwZGF0ZWRNb2RlbCwgcHJvcHNSZWYuY3VycmVudCwgeyBkZWZlciB9KTtcblxuXHRcdGNvbnN0IFtuZXdNb2RlbCwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHVwZGF0ZWRNb2RlbCwgcHJvcHNSZWYuY3VycmVudCwgeyBkZWZlciwgY2FsbEJhc2UgfSk7XG5cblx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0aWYgKG1vZGVsSGFzQ2hhbmdlZChjdXJyZW50TW9kZWwsIHsgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfSkpIHtcblx0XHRcdGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5kZWZlcnJlZE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG5cdFx0XHRkZXZUb29scy5jdXJyZW50Py5zZW5kKG5leHRNc2cubmFtZSwgY3VycmVudE1vZGVsKTtcblxuXHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMsIG9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiwgU3Vic2NyaXB0aW9uUmVzdWx0LCBVc2VFbG1pc2hPcHRpb25zIH07XG5cbmV4cG9ydCB7IGNhbGxVcGRhdGUsIGNhbGxVcGRhdGVNYXAsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFZQSxJQUFBRyxlQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxjQUFBLEdBQUFOLE9BQUE7QUFBNkUsU0FBQU8sbUJBQUFDLENBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFB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
|