@kaspernj/api-maker 1.0.2131 → 1.0.2133
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/build/use-model.d.ts.map +1 -1
- package/build/use-model.js +4 -3
- package/package.json +1 -1
package/build/use-model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;eAUc,CAAC,GAAG,EAAE,MAAM,aAAa;WACzB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;uBACvB,MAAM,MAAM,GAAC,MAAM;gBACnB,GAAG,EAAE;YACL;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;kBAChB,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;;;AAPzE;;;;;;;;;GASG;AAEH;;;GAGG;AACH,gBAAgB;AAEhB;;;;
|
|
1
|
+
{"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;eAUc,CAAC,GAAG,EAAE,MAAM,aAAa;WACzB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;uBACvB,MAAM,MAAM,GAAC,MAAM;gBACnB,GAAG,EAAE;YACL;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;kBAChB,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;;;AAPzE;;;;;;;;;GASG;AAEH;;;GAGG;AACH,gBAAgB;AAEhB;;;;EAwOC"}
|
package/build/use-model.js
CHANGED
|
@@ -85,7 +85,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
85
85
|
const loadNewModel = useCallback(async (loadModelGeneration) => {
|
|
86
86
|
const ModelClass = modelClass;
|
|
87
87
|
const paramKey = ModelClass.modelName().paramKey();
|
|
88
|
-
const modelDataFromParams = s.m.queryParams[paramKey] || {};
|
|
88
|
+
const modelDataFromParams = s.m.queryParams?.[paramKey] || {};
|
|
89
89
|
let defaults = {};
|
|
90
90
|
if (s.props.newIfNoId?.defaults) {
|
|
91
91
|
let defaultsResult = s.m.newIfNoIdDefaultsResult;
|
|
@@ -132,6 +132,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
132
132
|
if (args.cacheArgs) {
|
|
133
133
|
cacheArgs.push(...args.cacheArgs);
|
|
134
134
|
}
|
|
135
|
+
cacheArgs.push(queryParams);
|
|
135
136
|
s.updateMeta({ args, modelId, modelVariableName, queryParams });
|
|
136
137
|
if (s.meta.syncNewModel == undefined)
|
|
137
138
|
s.meta.syncNewModel = false;
|
|
@@ -152,7 +153,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
152
153
|
if (!(s.m.newIfNoIdDefaultsResult && typeof s.m.newIfNoIdDefaultsResult.then == "function")) {
|
|
153
154
|
const ModelClass = modelClass;
|
|
154
155
|
const paramKey = ModelClass.modelName().paramKey();
|
|
155
|
-
const modelDataFromParams = s.m.queryParams[paramKey] || {};
|
|
156
|
+
const modelDataFromParams = s.m.queryParams?.[paramKey] || {};
|
|
156
157
|
const modelData = Object.assign(s.m.newIfNoIdDefaultsResult || {}, s.props.newAttributes, modelDataFromParams);
|
|
157
158
|
const model = new ModelClass({
|
|
158
159
|
isNewRecord: true,
|
|
@@ -215,4 +216,4 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
215
216
|
return result;
|
|
216
217
|
};
|
|
217
218
|
export default useModel;
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxRQUFRLE1BQU0sZ0JBQWdCLENBQUE7QUFFckM7Ozs7Ozs7OztHQVNHO0FBRUg7OztHQUdHO0FBQ0gsZ0JBQWdCO0FBQ2hCLHNDQUFzQztBQUN0QyxNQUFNLFFBQVEsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUE7SUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFBO0lBRXBCLElBQUksT0FBTyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7UUFDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLEdBQUcsT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxD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LEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0tBQ3ZCLENBQUE7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUNyQyxNQUFNLENBQUMsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFBO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtJQUVyRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELGVBQWUsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSB1c2VNb2RlbEFyZ3NcbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBGdW5jdGlvbn0gW2NhbGxiYWNrXVxuICogQHByb3BlcnR5IHsoYXJnOiBvYmplY3QpID0+IG9iamVjdH0gW2FyZ3NdXG4gKiBAcHJvcGVydHkgeygpID0+IG51bWJlcnxzdHJpbmd9IFtsb2FkQnlRdWVyeVBhcmFtXVxuICogQHByb3BlcnR5IHthbnlbXX0gW2NhY2hlQXJnc11cbiAqIEBwcm9wZXJ0eSB7e3BhcmFtczogb2JqZWN0fX0gW21hdGNoXVxuICogQHByb3BlcnR5IHsoY3R4OiB7IG1vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB9KSA9PiB2b2lkfSBbb25EZXN0cm95ZWRdXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBbcXVlcnldXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufG9iamVjdH0gbW9kZWxDbGFzc0FyZ1xuICogQHBhcmFtIHtvYmplY3QgfCAoKGFyZ3M6IHttb2RlbENsYXNzOiB0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9KSA9PiB1c2VNb2RlbEFyZ3MpfSBbYXJnc0FyZ11cbiAqL1xuLyoqIHVzZU1vZGVsLiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmNvbnN0IHVzZU1vZGVsID0gKG1vZGVsQ2xhc3NBcmcsIGFyZ3NBcmcgPSB7fSkgPT4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgbG9hZE1vZGVsR2VuZXJhdGlvblJlZiA9IHVzZVJlZigwKVxuICBsZXQgYXJncywgbW9kZWxDbGFzc1xuXG4gIGlmICh0eXBlb2YgYXJnc0FyZyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhcmdzID0gYXJnc0FyZyh7bW9kZWxDbGFzc30pXG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IGFyZ3NBcmdcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShhcmdzKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBtb2RlbDogdW5kZWZpbmVkLFxuICAgIG5vdEZvdW5kOiB1bmRlZmluZWRcbiAgfSlcblxuICBpZiAoXCJhY3RpdmVcIiBpbiBzLnByb3BzICYmICFzLnByb3BzLmFjdGl2ZSkge1xuICAgIHMubWV0YS5hY3RpdmUgPSBmYWxzZVxuICB9IGVsc2Uge1xuICAgIHMubWV0YS5hY3RpdmUgPSB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3NBcmcgPT0gXCJvYmplY3RcIikge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnLmNhbGxiYWNrKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIGNvbnN0IHBhcmFtc1ZhcmlhYmxlTmFtZSA9IGAke21vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKX1faWRgXG4gIGxldCBtb2RlbElkXG5cbiAgaWYgKGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgIG1vZGVsSWQgPSBhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIGlmICghYXJncy5xdWVyeSkge1xuICAgIGlmICghYXJncy5tYXRjaCkgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAnbG9hZEJ5UXVlcnlQYXJhbScgYW5kICdtYXRjaCcgd2Fzbid0IGdpdmVuXCIpXG5cbiAgICBtb2RlbElkID0gYXJncy5tYXRjaC5wYXJhbXNbcGFyYW1zVmFyaWFibGVOYW1lXSB8fCBhcmdzLm1hdGNoLnBhcmFtcy5pZFxuICB9XG5cbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBjYWNoZUFyZ3MgPSBbbW9kZWxJZF1cblxuICBjb25zdCBsb2FkRXhpc3RpbmdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgbGV0IHF1ZXJ5XG5cbiAgICBpZiAocy5tLm1vZGVsSWQpIHtcbiAgICAgIHF1ZXJ5ID0gbW9kZWxDbGFzcy5yYW5zYWNrKHtpZF9lcTogcy5tLm1vZGVsSWR9KVxuICAgIH0gZWxzZSBpZiAocy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gcy5tLmFyZ3MucXVlcnkuY2xvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsIElEIHdhcyBnaXZlbjogJHtzLm0ubW9kZWxJZH0gYnkgJyR7cGFyYW1zVmFyaWFibGVOYW1lfScgaW4gcXVlcnkgcGFyYW1zOiAke09iamVjdC5rZXlzKHMucHJvcHMubWF0Y2gucGFyYW1zKS5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAocy5wcm9wcy5hYmlsaXRpZXMpIHF1ZXJ5LmFiaWxpdGllcyhzLnAuYWJpbGl0aWVzKVxuICAgIGlmIChzLnByb3BzLnByZWxvYWQpIHF1ZXJ5LnByZWxvYWQocy5wLnByZWxvYWQpXG4gICAgaWYgKHMucHJvcHMuc2VsZWN0KSBxdWVyeS5zZWxlY3Qocy5wLnNlbGVjdClcblxuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgcXVlcnkuZmlyc3QoKVxuXG4gICAgaWYgKGxvYWRNb2RlbEdlbmVyYXRpb24gIT0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIHMuc2V0KHttb2RlbCwgbm90Rm91bmQ6ICFtb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWROZXdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICBjb25zdCBwYXJhbUtleSA9IE1vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKVxuICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXNbcGFyYW1LZXldIHx8IHt9XG5cbiAgICBsZXQgZGVmYXVsdHMgPSB7fVxuXG4gICAgaWYgKHMucHJvcHMubmV3SWZOb0lkPy5kZWZhdWx0cykge1xuICAgICAgbGV0IGRlZmF1bHRzUmVzdWx0ID0gcy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0XG5cbiAgICAgIGlmIChkZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICBkZWZhdWx0c1Jlc3VsdCA9IHMucHJvcHMubmV3SWZOb0lkLmRlZmF1bHRzKClcbiAgICAgIH1cblxuICAgICAgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gbnVsbFxuICAgICAgZGVmYXVsdHMgPSBhd2FpdCBkZWZhdWx0c1Jlc3VsdFxuICAgIH1cblxuICAgIGNvbnN0IG1vZGVsRGF0YSA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIHMucHJvcHMubmV3QXR0cmlidXRlcywgbW9kZWxEYXRhRnJvbVBhcmFtcylcbiAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbENsYXNzKHtcbiAgICAgIGlzTmV3UmVjb3JkOiB0cnVlLFxuICAgICAgZGF0YToge2E6IG1vZGVsRGF0YX1cbiAgICB9KVxuXG4gICAgaWYgKGxvYWRNb2RlbEdlbmVyYXRpb24gIT0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIHMuc2V0KHttb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWRNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICAvLyBPbmx5IHRoZSBuZXdlc3QgbW9kZWwgcmVxdWVzdCBtYXkgdXBkYXRlIHN0YXRlIGFmdGVyIHJvdXRlIG9yIGF1dGggY2hhbmdlcy5cbiAgICBjb25zdCBsb2FkTW9kZWxHZW5lcmF0aW9uID0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50ICsgMVxuXG4gICAgbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50ID0gbG9hZE1vZGVsR2VuZXJhdGlvblxuICAgIGlmICghcy5tLmFjdGl2ZSkge1xuICAgICAgLy8gTm90IGFjdGl2ZSAtIGRvbid0IGRvIGFueXRoaW5nXG4gICAgfSBlbHNlIGlmIChzLnByb3BzLm5ld0lmTm9JZCAmJiAhcy5tLm1vZGVsSWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkTmV3TW9kZWwobG9hZE1vZGVsR2VuZXJhdGlvbilcbiAgICB9IGVsc2UgaWYgKCFzLnByb3BzLm9wdGlvbmFsIHx8IHMubS5tb2RlbElkIHx8IHMubS5hcmdzLnF1ZXJ5KSB7XG4gICAgICByZXR1cm4gYXdhaXQgbG9hZEV4aXN0aW5nTW9kZWwobG9hZE1vZGVsR2VuZXJhdGlvbilcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uRGVzdHJveWVkID0gdXNlQ2FsbGJhY2soKHttb2RlbH0pID0+IHtcbiAgICBjb25zdCBmb3J3YXJkQXJncyA9IHttb2RlbH1cblxuICAgIGZvcndhcmRBcmdzW3MubS5tb2RlbFZhcmlhYmxlTmFtZV0gPSBtb2RlbFxuXG4gICAgcy5wLm9uRGVzdHJveWVkKGZvcndhcmRBcmdzKVxuICB9LCBbXSlcblxuICBjb25zdCBvblNpZ25lZEluID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvYWRNb2RlbCgpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkT3V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvYWRNb2RlbCgpXG4gIH0sIFtdKVxuXG4gIGlmIChhcmdzLmNhY2hlQXJncykge1xuICAgIGNhY2hlQXJncy5wdXNoKC4uLmFyZ3MuY2FjaGVBcmdzKVxuICB9XG5cbiAgcy51cGRhdGVNZXRhKHthcmdzLCBtb2RlbElkLCBtb2RlbFZhcmlhYmxlTmFtZSwgcXVlcnlQYXJhbXN9KVxuICBpZiAocy5tZXRhLnN5bmNOZXdNb2RlbCA9PSB1bmRlZmluZWQpIHMubWV0YS5zeW5jTmV3TW9kZWwgPSBmYWxzZVxuICBpZiAocy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID09IHVuZGVmaW5lZCkgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gbnVsbFxuXG4gIGlmIChzLm0uYWN0aXZlICYmIHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCAmJiAhcy5zLm1vZGVsICYmICFzLm0uc3luY05ld01vZGVsKSB7XG4gICAgaWYgKHMucHJvcHMubmV3SWZOb0lkPy5kZWZhdWx0cyAmJiBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzUmVzdWx0ID0gcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuXG4gICAgICBpZiAoZGVmYXVsdHNSZXN1bHQgJiYgdHlwZW9mIGRlZmF1bHRzUmVzdWx0LnRoZW4gPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHMubWV0YS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9IGRlZmF1bHRzUmVzdWx0LmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBkZWZhdWx0c1Jlc3VsdFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghKHMubS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCAmJiB0eXBlb2Ygcy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0LnRoZW4gPT0gXCJmdW5jdGlvblwiKSkge1xuICAgICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICAgIGNvbnN0IHBhcmFtS2V5ID0gTW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5wYXJhbUtleSgpXG4gICAgICBjb25zdCBtb2RlbERhdGFGcm9tUGFyYW1zID0gcy5tLnF1ZXJ5UGFyYW1zW3BhcmFtS2V5XSB8fCB7fVxuICAgICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgfHwge30sIHMucHJvcHMubmV3QXR0cmlidXRlcywgbW9kZWxEYXRhRnJvbVBhcmFtcylcbiAgICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgICBpc05ld1JlY29yZDogdHJ1ZSxcbiAgICAgICAgZGF0YToge2E6IG1vZGVsRGF0YX1cbiAgICAgIH0pXG5cbiAgICAgIHMubWV0YS5zeW5jTmV3TW9kZWwgPSBtb2RlbFxuICAgICAgcy5zZXQoe21vZGVsfSlcbiAgICB9XG4gIH1cblxuICAvLyBTdGFydCBhc3luYyBtb2RlbCBsb2FkaW5nIGFmdGVyIG1vdW50IHNvIFNoYXBlSG9vayBzdGF0ZSB1cGRhdGVzIGRvIG5vdCByYWNlIHRoZSBtb3VudCBsaWZlY3ljbGUuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiB7IGxvYWRNb2RlbCgpIH0sXG4gICAgY2FjaGVBcmdzXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4gKCkgPT4ge1xuICAgIGxvYWRNb2RlbEdlbmVyYXRpb25SZWYuY3VycmVudCArPSAxXG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlbG9hZE1vZGVsQ2FsbGJhY2tcblxuICAgIGlmIChhcmdzLmV2ZW50cykge1xuICAgICAgcmVsb2FkTW9kZWxDYWxsYmFjayA9IGFyZ3MuZXZlbnRzLmFkZExpc3RlbmVyKFwicmVsb2FkTW9kZWxcIiwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVsb2FkTW9kZWxDYWxsYmFjaykge1xuICAgICAgICBhcmdzLmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFthcmdzLmV2ZW50c10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdFVwZGF0ZWRcblxuICAgIGlmIChzLnMubW9kZWwgJiYgYXJncy5ldmVudFVwZGF0ZWQpIHtcbiAgICAgIGNvbm5lY3RVcGRhdGVkID0gTW9kZWxFdmVudHMuY29ubmVjdFVwZGF0ZWQocy5zLm1vZGVsLCBsb2FkTW9kZWwpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbm5lY3RVcGRhdGVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5ldmVudFVwZGF0ZWQsIHMucy5tb2RlbD8uaWQoKV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25JblwiLCBvblNpZ25lZEluKVxuICAgIERldmlzZS5ldmVudHMoKS5hZGRMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBEZXZpc2UuZXZlbnRzKCkucmVtb3ZlTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25JblwiLCBvblNpZ25lZEluKVxuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduT3V0XCIsIG9uU2lnbmVkT3V0KVxuICAgIH1cbiAgfSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjb25uZWN0RGVzdHJveWVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3Mub25EZXN0cm95ZWQpIHtcbiAgICAgIGNvbm5lY3REZXN0cm95ZWQgPSBNb2RlbEV2ZW50cy5jb25uZWN0RGVzdHJveWVkKHMucy5tb2RlbCwgb25EZXN0cm95ZWQpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbm5lY3REZXN0cm95ZWQ/LnVuc3Vic2NyaWJlKClcbiAgICB9XG4gIH0sIFthcmdzLm9uRGVzdHJveWVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBtb2RlbDogcy5zLm1vZGVsLFxuICAgIG1vZGVsSWQsXG4gICAgbm90Rm91bmQ6IHMucy5ub3RGb3VuZFxuICB9XG5cbiAgcmVzdWx0W21vZGVsVmFyaWFibGVOYW1lXSA9IHMucy5tb2RlbFxuICByZXN1bHRbYCR7bW9kZWxWYXJpYWJsZU5hbWV9SWRgXSA9IG1vZGVsSWRcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfU5vdEZvdW5kYF0gPSBzLnMubm90Rm91bmRcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZU1vZGVsXG4iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxRQUFRLE1BQU0sZ0JBQWdCLENBQUE7QUFFckM7Ozs7Ozs7OztHQVNHO0FBRUg7OztHQUdHO0FBQ0gsZ0JBQWdCO0FBQ2hCLHNDQUFzQztBQUN0QyxNQUFNLFFBQVEsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUE7SUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFBO0lBRXBCLElBQUksT0FBTyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7UUFDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLEdBQUcsT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxD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LEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQ2hCLE9BQU87UUFDUCxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0tBQ3ZCLENBQUE7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUNyQyxNQUFNLENBQUMsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFBO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtJQUVyRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELGVBQWUsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSB1c2VNb2RlbEFyZ3NcbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBGdW5jdGlvbn0gW2NhbGxiYWNrXVxuICogQHByb3BlcnR5IHsoYXJnOiBvYmplY3QpID0+IG9iamVjdH0gW2FyZ3NdXG4gKiBAcHJvcGVydHkgeygpID0+IG51bWJlcnxzdHJpbmd9IFtsb2FkQnlRdWVyeVBhcmFtXVxuICogQHByb3BlcnR5IHthbnlbXX0gW2NhY2hlQXJnc11cbiAqIEBwcm9wZXJ0eSB7e3BhcmFtczogb2JqZWN0fX0gW21hdGNoXVxuICogQHByb3BlcnR5IHsoY3R4OiB7IG1vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB9KSA9PiB2b2lkfSBbb25EZXN0cm95ZWRdXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBbcXVlcnldXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufG9iamVjdH0gbW9kZWxDbGFzc0FyZ1xuICogQHBhcmFtIHtvYmplY3QgfCAoKGFyZ3M6IHttb2RlbENsYXNzOiB0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9KSA9PiB1c2VNb2RlbEFyZ3MpfSBbYXJnc0FyZ11cbiAqL1xuLyoqIHVzZU1vZGVsLiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmNvbnN0IHVzZU1vZGVsID0gKG1vZGVsQ2xhc3NBcmcsIGFyZ3NBcmcgPSB7fSkgPT4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgbG9hZE1vZGVsR2VuZXJhdGlvblJlZiA9IHVzZVJlZigwKVxuICBsZXQgYXJncywgbW9kZWxDbGFzc1xuXG4gIGlmICh0eXBlb2YgYXJnc0FyZyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhcmdzID0gYXJnc0FyZyh7bW9kZWxDbGFzc30pXG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IGFyZ3NBcmdcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShhcmdzKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBtb2RlbDogdW5kZWZpbmVkLFxuICAgIG5vdEZvdW5kOiB1bmRlZmluZWRcbiAgfSlcblxuICBpZiAoXCJhY3RpdmVcIiBpbiBzLnByb3BzICYmICFzLnByb3BzLmFjdGl2ZSkge1xuICAgIHMubWV0YS5hY3RpdmUgPSBmYWxzZVxuICB9IGVsc2Uge1xuICAgIHMubWV0YS5hY3RpdmUgPSB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3NBcmcgPT0gXCJvYmplY3RcIikge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnLmNhbGxiYWNrKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIGNvbnN0IHBhcmFtc1ZhcmlhYmxlTmFtZSA9IGAke21vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKX1faWRgXG4gIGxldCBtb2RlbElkXG5cbiAgaWYgKGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgIG1vZGVsSWQgPSBhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIGlmICghYXJncy5xdWVyeSkge1xuICAgIGlmICghYXJncy5tYXRjaCkgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAnbG9hZEJ5UXVlcnlQYXJhbScgYW5kICdtYXRjaCcgd2Fzbid0IGdpdmVuXCIpXG5cbiAgICBtb2RlbElkID0gYXJncy5tYXRjaC5wYXJhbXNbcGFyYW1zVmFyaWFibGVOYW1lXSB8fCBhcmdzLm1hdGNoLnBhcmFtcy5pZFxuICB9XG5cbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBjYWNoZUFyZ3MgPSBbbW9kZWxJZF1cblxuICBjb25zdCBsb2FkRXhpc3RpbmdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgbGV0IHF1ZXJ5XG5cbiAgICBpZiAocy5tLm1vZGVsSWQpIHtcbiAgICAgIHF1ZXJ5ID0gbW9kZWxDbGFzcy5yYW5zYWNrKHtpZF9lcTogcy5tLm1vZGVsSWR9KVxuICAgIH0gZWxzZSBpZiAocy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gcy5tLmFyZ3MucXVlcnkuY2xvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsIElEIHdhcyBnaXZlbjogJHtzLm0ubW9kZWxJZH0gYnkgJyR7cGFyYW1zVmFyaWFibGVOYW1lfScgaW4gcXVlcnkgcGFyYW1zOiAke09iamVjdC5rZXlzKHMucHJvcHMubWF0Y2gucGFyYW1zKS5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAocy5wcm9wcy5hYmlsaXRpZXMpIHF1ZXJ5LmFiaWxpdGllcyhzLnAuYWJpbGl0aWVzKVxuICAgIGlmIChzLnByb3BzLnByZWxvYWQpIHF1ZXJ5LnByZWxvYWQocy5wLnByZWxvYWQpXG4gICAgaWYgKHMucHJvcHMuc2VsZWN0KSBxdWVyeS5zZWxlY3Qocy5wLnNlbGVjdClcblxuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgcXVlcnkuZmlyc3QoKVxuXG4gICAgaWYgKGxvYWRNb2RlbEdlbmVyYXRpb24gIT0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIHMuc2V0KHttb2RlbCwgbm90Rm91bmQ6ICFtb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWROZXdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICBjb25zdCBwYXJhbUtleSA9IE1vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKVxuICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXM/LltwYXJhbUtleV0gfHwge31cblxuICAgIGxldCBkZWZhdWx0cyA9IHt9XG5cbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzKSB7XG4gICAgICBsZXQgZGVmYXVsdHNSZXN1bHQgPSBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHRcblxuICAgICAgaWYgKGRlZmF1bHRzUmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgIGRlZmF1bHRzUmVzdWx0ID0gcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuICAgICAgfVxuXG4gICAgICBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG4gICAgICBkZWZhdWx0cyA9IGF3YWl0IGRlZmF1bHRzUmVzdWx0XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgcy5wcm9wcy5uZXdBdHRyaWJ1dGVzLCBtb2RlbERhdGFGcm9tUGFyYW1zKVxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICBkYXRhOiB7YTogbW9kZWxEYXRhfVxuICAgIH0pXG5cbiAgICBpZiAobG9hZE1vZGVsR2VuZXJhdGlvbiAhPSBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuXG4gICAgcy5zZXQoe21vZGVsfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE1vZGVsID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIC8vIE9ubHkgdGhlIG5ld2VzdCBtb2RlbCByZXF1ZXN0IG1heSB1cGRhdGUgc3RhdGUgYWZ0ZXIgcm91dGUgb3IgYXV0aCBjaGFuZ2VzLlxuICAgIGNvbnN0IGxvYWRNb2RlbEdlbmVyYXRpb24gPSBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKyAxXG5cbiAgICBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBsb2FkTW9kZWxHZW5lcmF0aW9uXG4gICAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgICAvLyBOb3QgYWN0aXZlIC0gZG9uJ3QgZG8gYW55dGhpbmdcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWROZXdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH0gZWxzZSBpZiAoIXMucHJvcHMub3B0aW9uYWwgfHwgcy5tLm1vZGVsSWQgfHwgcy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkRXhpc3RpbmdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EZXN0cm95ZWQgPSB1c2VDYWxsYmFjaygoe21vZGVsfSkgPT4ge1xuICAgIGNvbnN0IGZvcndhcmRBcmdzID0ge21vZGVsfVxuXG4gICAgZm9yd2FyZEFyZ3Nbcy5tLm1vZGVsVmFyaWFibGVOYW1lXSA9IG1vZGVsXG5cbiAgICBzLnAub25EZXN0cm95ZWQoZm9yd2FyZEFyZ3MpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25TaWduZWRPdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgaWYgKGFyZ3MuY2FjaGVBcmdzKSB7XG4gICAgY2FjaGVBcmdzLnB1c2goLi4uYXJncy5jYWNoZUFyZ3MpXG4gIH1cblxuICBjYWNoZUFyZ3MucHVzaChxdWVyeVBhcmFtcylcblxuICBzLnVwZGF0ZU1ldGEoe2FyZ3MsIG1vZGVsSWQsIG1vZGVsVmFyaWFibGVOYW1lLCBxdWVyeVBhcmFtc30pXG4gIGlmIChzLm1ldGEuc3luY05ld01vZGVsID09IHVuZGVmaW5lZCkgcy5tZXRhLnN5bmNOZXdNb2RlbCA9IGZhbHNlXG4gIGlmIChzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPT0gdW5kZWZpbmVkKSBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG5cbiAgaWYgKHMubS5hY3RpdmUgJiYgcy5wcm9wcy5uZXdJZk5vSWQgJiYgIXMubS5tb2RlbElkICYmICFzLnMubW9kZWwgJiYgIXMubS5zeW5jTmV3TW9kZWwpIHtcbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzICYmIHMubS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZGVmYXVsdHNSZXN1bHQgPSBzLnByb3BzLm5ld0lmTm9JZC5kZWZhdWx0cygpXG5cbiAgICAgIGlmIChkZWZhdWx0c1Jlc3VsdCAmJiB0eXBlb2YgZGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gZGVmYXVsdHNSZXN1bHQuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMubWV0YS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9IGRlZmF1bHRzUmVzdWx0XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCEocy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ICYmIHR5cGVvZiBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuICAgICAgY29uc3QgcGFyYW1LZXkgPSBNb2RlbENsYXNzLm1vZGVsTmFtZSgpLnBhcmFtS2V5KClcbiAgICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXM/LltwYXJhbUtleV0gfHwge31cbiAgICAgIGNvbnN0IG1vZGVsRGF0YSA9IE9iamVjdC5hc3NpZ24ocy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0IHx8IHt9LCBzLnByb3BzLm5ld0F0dHJpYnV0ZXMsIG1vZGVsRGF0YUZyb21QYXJhbXMpXG4gICAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbENsYXNzKHtcbiAgICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICAgIGRhdGE6IHthOiBtb2RlbERhdGF9XG4gICAgICB9KVxuXG4gICAgICBzLm1ldGEuc3luY05ld01vZGVsID0gbW9kZWxcbiAgICAgIHMuc2V0KHttb2RlbH0pXG4gICAgfVxuICB9XG5cbiAgLy8gU3RhcnQgYXN5bmMgbW9kZWwgbG9hZGluZyBhZnRlciBtb3VudCBzbyBTaGFwZUhvb2sgc3RhdGUgdXBkYXRlcyBkbyBub3QgcmFjZSB0aGUgbW91bnQgbGlmZWN5Y2xlLlxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4geyBsb2FkTW9kZWwoKSB9LFxuICAgIGNhY2hlQXJnc1xuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+ICgpID0+IHtcbiAgICBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZWxvYWRNb2RlbENhbGxiYWNrXG5cbiAgICBpZiAoYXJncy5ldmVudHMpIHtcbiAgICAgIHJlbG9hZE1vZGVsQ2FsbGJhY2sgPSBhcmdzLmV2ZW50cy5hZGRMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlbG9hZE1vZGVsQ2FsbGJhY2spIHtcbiAgICAgICAgYXJncy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCBsb2FkTW9kZWwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYXJncy5ldmVudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbm5lY3RVcGRhdGVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3MuZXZlbnRVcGRhdGVkKSB7XG4gICAgICBjb25uZWN0VXBkYXRlZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3RVcGRhdGVkKHMucy5tb2RlbCwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0VXBkYXRlZD8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSwgW2FyZ3MuZXZlbnRVcGRhdGVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgRGV2aXNlLmV2ZW50cygpLmFkZExpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgb25TaWduZWRPdXQpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcbiAgICB9XG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdERlc3Ryb3llZFxuXG4gICAgaWYgKHMucy5tb2RlbCAmJiBhcmdzLm9uRGVzdHJveWVkKSB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkID0gTW9kZWxFdmVudHMuY29ubmVjdERlc3Ryb3llZChzLnMubW9kZWwsIG9uRGVzdHJveWVkKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5vbkRlc3Ryb3llZCwgcy5zLm1vZGVsPy5pZCgpXSlcblxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgbW9kZWw6IHMucy5tb2RlbCxcbiAgICBtb2RlbElkLFxuICAgIG5vdEZvdW5kOiBzLnMubm90Rm91bmRcbiAgfVxuXG4gIHJlc3VsdFttb2RlbFZhcmlhYmxlTmFtZV0gPSBzLnMubW9kZWxcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfUlkYF0gPSBtb2RlbElkXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1Ob3RGb3VuZGBdID0gcy5zLm5vdEZvdW5kXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VNb2RlbFxuIl19
|