occam-languages 3.0.43 → 3.0.45
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.
|
@@ -306,7 +306,7 @@ function find(array, callback, ...initialArguments) {
|
|
|
306
306
|
function resolve(array, callback, ...initialArguments) {
|
|
307
307
|
const back = initialArguments.pop(), forward = initialArguments.pop();
|
|
308
308
|
function next(arrayA, arrayB, ...nextArguments) {
|
|
309
|
-
const
|
|
309
|
+
const length = arrayA.length;
|
|
310
310
|
if (length === 0) {
|
|
311
311
|
return forward(arrayB, ...nextArguments, back);
|
|
312
312
|
}
|
|
@@ -315,6 +315,7 @@ function resolve(array, callback, ...initialArguments) {
|
|
|
315
315
|
if (elementsLength === 0) {
|
|
316
316
|
return back();
|
|
317
317
|
}
|
|
318
|
+
forwardArguments.pop(); ///
|
|
318
319
|
return next(arrayA.filter((element)=>!elements.includes(element)), [
|
|
319
320
|
...arrayB,
|
|
320
321
|
...elements
|
|
@@ -322,7 +323,7 @@ function resolve(array, callback, ...initialArguments) {
|
|
|
322
323
|
}, back);
|
|
323
324
|
}
|
|
324
325
|
const arrayA = array, arrayB = [];
|
|
325
|
-
return next(arrayA, arrayB, ...initialArguments
|
|
326
|
+
return next(arrayA, arrayB, ...initialArguments);
|
|
326
327
|
}
|
|
327
328
|
function match(arrayA, arrayB, callback, ...initialArguments) {
|
|
328
329
|
const back = initialArguments.pop(), forward = initialArguments.pop(), arrayALength = arrayA.length, arrayBLength = arrayB.length, length = arrayALength; ///
|
|
@@ -435,4 +436,4 @@ const _default = {
|
|
|
435
436
|
exists
|
|
436
437
|
};
|
|
437
438
|
|
|
438
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3V0KGZvcndhcmQsIGJhY2spIHtcbiAgcmV0dXJuICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgZm9yd2FyZEFyZ3VtZW50cy5wb3AoKTsgLy8vXG5cbiAgICByZXR1cm4gZm9yd2FyZCguLi5mb3J3YXJkQXJndW1lbnRzLCBiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgY291bnQsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4uaW5pdGlhbEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3J3YXJkQXJndW1lbnRzLnBvcCgpOyAvLy9cblxuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGNvdW50ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgY291bnQsIC4uLm5leHRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICAgICAgY291bnQgPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBjb3VudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4KSB7XG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5pbml0aWFsQXJndW1lbnRzLFxuICAgICAgZm9yd2FyZCxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEpO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBjb3VudCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gYmFjaygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGNvdW50ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICAgICAgY291bnQgPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBjb3VudCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXAoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgYXJyYXlBID0gYXJyYXksIC8vL1xuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgYXJyYXlCLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoYXJyYXlCLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50QSA9IGFycmF5QVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50QSxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoZWxlbWVudEIsIC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBbIC4uLmFycmF5QiwgZWxlbWVudEIgXSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICAgICAgYXJyYXlCID0gW107XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGFycmF5QiwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgdmFsdWUsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSwgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAodmFsdWUsIC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCB2YWx1ZSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgaW5pdGlhbFZhbHVlLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheSwgZGVsZXRlZEVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheSwgZGVsZXRlZEVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCAtIDEsIGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgIGluZGV4IC0gMSxcbiAgICAgICAgICBbIC4uLmFycmF5LnNsaWNlKDAsIGluZGV4KSwgLi4uYXJyYXkuc2xpY2UoaW5kZXggKyAxKSBdLFxuICAgICAgICAgIFsgZGVsZXRlZEVsZW1lbnQsIC4uLmRlbGV0ZWRFbGVtZW50cyBdLFxuICAgICAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAgICAgYmFja1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gbGVuZ3RoIC0gMSxcbiAgICAgICAgZGVsZXRlZEVsZW1lbnRzID0gW107XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGFycmF5LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3QgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7IC8vL1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheSwgZGVsZXRlZEVsZW1lbnQsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgYXJyYXksIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKFxuICAgICAgICAgIFsgLi4uYXJyYXkuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnJheS5zbGljZShpbmRleCArIDEpIF0sXG4gICAgICAgICAgZGVsZXRlZEVsZW1lbnQsXG4gICAgICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICAgICBiYWNrXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBhcnJheSwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheSwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheSwgZGVsZXRlZEVsZW1lbnQsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoXG4gICAgICAgICAgWyAuLi5hcnJheS5zbGljZSgwLCBpbmRleCksIC4uLmFycmF5LnNsaWNlKGluZGV4ICsgMSkgXSxcbiAgICAgICAgICBkZWxldGVkRWxlbWVudCxcbiAgICAgICAgICAuLi5mb3J3YXJkQXJndW1lbnRzXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgYXJyYXksIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXksIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgZWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChlbGVtZW50cywgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBbIC4uLmVsZW1lbnRzLCBlbGVtZW50IF0sIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgIGVsZW1lbnRzID0gW107XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGVsZW1lbnRzLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBmdW5jdGlvbiBuZXh0KGFycmF5QSwgYXJyYXlCLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGFycmF5QiwgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmQoXG4gICAgICBhcnJheUEsXG4gICAgICBjYWxsYmFjayxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoZWxlbWVudHMsIC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNMZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XG5cbiAgICAgICAgaWYgKGVsZW1lbnRzTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgIGFycmF5QS5maWx0ZXIoKGVsZW1lbnQpID0+ICFlbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSksXG4gICAgICAgICAgWyAuLi5hcnJheUIsIC4uLmVsZW1lbnRzIF0sXG4gICAgICAgICAgLi4uZm9yd2FyZEFyZ3VtZW50c1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGJhY2tcbiAgICApO1xuICB9XG5cbiAgY29uc3QgYXJyYXlBID0gYXJyYXksIC8vL1xuICAgICAgICBhcnJheUIgPSBbXTtcblxuICByZXR1cm4gbmV4dChhcnJheUEsIGFycmF5QiwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoLFxuICAgICAgICBsZW5ndGggPSBhcnJheUFMZW5ndGg7ICAvLy9cblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XSxcbiAgICAgICAgICBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50QSxcbiAgICAgIGVsZW1lbnRCLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCAtIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4IC0gMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gbGVuZ3RoIC0gMTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGwoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBldmVyeShjYWxsYmFja3MsIChjYWxsYmFjaywgLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICB9LCAuLi5pbml0aWFsQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4aXN0cyhjYWxsYmFja3MsIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgcmV0dXJuIHNvbWUoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3V0LFxuICBvbmUsXG4gIHNvbWUsXG4gIGVhY2gsXG4gIGV2ZXJ5LFxuICBtYXAsXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgZmlsdGVyLFxuICBwcnVuZSxcbiAgZXh0cmFjdCxcbiAgZmluZCxcbiAgcmVzb2x2ZSxcbiAgbWF0Y2gsXG4gIGZvcndhcmRzRXZlcnksXG4gIGJhY2t3YXJkc0V2ZXJ5LFxuICBmb3J3YXJkc0ZvckVhY2gsXG4gIGJhY2t3YXJkc0ZvckVhY2gsXG4gIGFsbCxcbiAgZXhpc3RzXG59O1xuIl0sIm5hbWVzIjpbImFsbCIsImJhY2t3YXJkc0V2ZXJ5IiwiYmFja3dhcmRzRm9yRWFjaCIsImN1dCIsImVhY2giLCJldmVyeSIsImV4aXN0cyIsImV4dHJhY3QiLCJmaWx0ZXIiLCJmaW5kIiwiZm9yRWFjaCIsImZvcndhcmRzRXZlcnkiLCJmb3J3YXJkc0ZvckVhY2giLCJtYXAiLCJtYXRjaCIsIm9uZSIsInBydW5lIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJmb3J3YXJkIiwiYmFjayIsImZvcndhcmRBcmd1bWVudHMiLCJwb3AiLCJhcnJheSIsImNhbGxiYWNrIiwiaW5pdGlhbEFyZ3VtZW50cyIsImxlbmd0aCIsIm5leHQiLCJpbmRleCIsImNvdW50IiwibmV4dEFyZ3VtZW50cyIsImVsZW1lbnQiLCJleGNlcHRpb24iLCJhcnJheUEiLCJhcnJheUIiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJkZWxldGVkRWxlbWVudHMiLCJkZWxldGVkRWxlbWVudCIsInNsaWNlIiwidW5kZWZpbmVkIiwiZWxlbWVudHMiLCJlbGVtZW50c0xlbmd0aCIsImluY2x1ZGVzIiwiYXJyYXlBTGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwiY2FsbGJhY2tzIiwiY2FsbGJhY2tBcmd1bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXFtQmdCQTtlQUFBQTs7UUExRkFDO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBcmtCQUM7ZUFBQUE7O1FBK21CaEI7ZUFBQTs7UUExaEJnQkM7ZUFBQUE7O1FBbUNBQztlQUFBQTs7UUFpZkFDO2VBQUFBOztRQTVSQUM7ZUFBQUE7O1FBMUZBQztlQUFBQTs7UUFzSUFDO2VBQUFBOztRQXBLQUM7ZUFBQUE7O1FBc1JBQztlQUFBQTs7UUE0REFDO2VBQUFBOztRQWpaQUM7ZUFBQUE7O1FBK1NBQztlQUFBQTs7UUE3YkFDO2VBQUFBOztRQXdSQUM7ZUFBQUE7O1FBMUdBQztlQUFBQTs7UUF3T0FDO2VBQUFBOztRQXpXQUM7ZUFBQUE7OztBQXJEVCxTQUFTaEIsSUFBSWlCLE9BQU8sRUFBRUMsSUFBSTtJQUMvQixPQUFPLENBQUMsR0FBR0M7UUFDVEEsaUJBQWlCQyxHQUFHLElBQUksR0FBRztRQUUzQixPQUFPSCxXQUFXRSxrQkFBa0JEO0lBQ3RDO0FBQ0Y7QUFFTyxTQUFTTixJQUFJUyxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxnQkFBZ0I7SUFDdEQsTUFBTUwsT0FBT0ssaUJBQWlCSCxHQUFHLElBQzNCSCxVQUFVTSxpQkFBaUJILEdBQUcsSUFDOUJJLFNBQVNILE1BQU1HLE1BQU07SUFFM0IsU0FBU0MsS0FBS0MsS0FBSyxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsYUFBYTtRQUMxQyxJQUFJRixVQUFVRixRQUFRO1lBQ3BCLElBQUlHLFVBQVUsR0FBRztnQkFDZixPQUFPVDtZQUNUO1lBRUEsT0FBT0QsV0FBV1csZUFBZVY7UUFDbkM7UUFFQSxNQUFNVyxVQUFVUixLQUFLLENBQUNLLE1BQU07UUFFNUIsT0FBT0osU0FD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
|
|
439
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3V0KGZvcndhcmQsIGJhY2spIHtcbiAgcmV0dXJuICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgZm9yd2FyZEFyZ3VtZW50cy5wb3AoKTsgLy8vXG5cbiAgICByZXR1cm4gZm9yd2FyZCguLi5mb3J3YXJkQXJndW1lbnRzLCBiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgY291bnQsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4uaW5pdGlhbEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3J3YXJkQXJndW1lbnRzLnBvcCgpOyAvLy9cblxuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGNvdW50ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgY291bnQsIC4uLm5leHRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICAgICAgY291bnQgPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBjb3VudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4KSB7XG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5pbml0aWFsQXJndW1lbnRzLFxuICAgICAgZm9yd2FyZCxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEpO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBjb3VudCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gYmFjaygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGNvdW50ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICAgICAgY291bnQgPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBjb3VudCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXAoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgYXJyYXlBID0gYXJyYXksIC8vL1xuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgYXJyYXlCLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoYXJyYXlCLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50QSA9IGFycmF5QVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50QSxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoZWxlbWVudEIsIC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBbIC4uLmFycmF5QiwgZWxlbWVudEIgXSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICAgICAgYXJyYXlCID0gW107XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGFycmF5QiwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgdmFsdWUsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSwgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAodmFsdWUsIC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCB2YWx1ZSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgaW5pdGlhbFZhbHVlLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheSwgZGVsZXRlZEVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheSwgZGVsZXRlZEVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCAtIDEsIGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgIGluZGV4IC0gMSxcbiAgICAgICAgICBbIC4uLmFycmF5LnNsaWNlKDAsIGluZGV4KSwgLi4uYXJyYXkuc2xpY2UoaW5kZXggKyAxKSBdLFxuICAgICAgICAgIFsgZGVsZXRlZEVsZW1lbnQsIC4uLmRlbGV0ZWRFbGVtZW50cyBdLFxuICAgICAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAgICAgYmFja1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gbGVuZ3RoIC0gMSxcbiAgICAgICAgZGVsZXRlZEVsZW1lbnRzID0gW107XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGFycmF5LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3QgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7IC8vL1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheSwgZGVsZXRlZEVsZW1lbnQsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgYXJyYXksIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKFxuICAgICAgICAgIFsgLi4uYXJyYXkuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnJheS5zbGljZShpbmRleCArIDEpIF0sXG4gICAgICAgICAgZGVsZXRlZEVsZW1lbnQsXG4gICAgICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICAgICBiYWNrXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBhcnJheSwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheSwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheSwgZGVsZXRlZEVsZW1lbnQsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoXG4gICAgICAgICAgWyAuLi5hcnJheS5zbGljZSgwLCBpbmRleCksIC4uLmFycmF5LnNsaWNlKGluZGV4ICsgMSkgXSxcbiAgICAgICAgICBkZWxldGVkRWxlbWVudCxcbiAgICAgICAgICAuLi5mb3J3YXJkQXJndW1lbnRzXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgYXJyYXksIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXksIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgZWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChlbGVtZW50cywgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBbIC4uLmVsZW1lbnRzLCBlbGVtZW50IF0sIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgIGVsZW1lbnRzID0gW107XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGVsZW1lbnRzLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBmdW5jdGlvbiBuZXh0KGFycmF5QSwgYXJyYXlCLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGFycmF5QiwgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmQoXG4gICAgICBhcnJheUEsXG4gICAgICBjYWxsYmFjayxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoZWxlbWVudHMsIC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNMZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XG5cbiAgICAgICAgaWYgKGVsZW1lbnRzTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgIGFycmF5QS5maWx0ZXIoKGVsZW1lbnQpID0+ICFlbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSksXG4gICAgICAgICAgWyAuLi5hcnJheUIsIC4uLmVsZW1lbnRzIF0sXG4gICAgICAgICAgLi4uZm9yd2FyZEFyZ3VtZW50c1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGJhY2tcbiAgICApO1xuICB9XG5cbiAgY29uc3QgYXJyYXlBID0gYXJyYXksIC8vL1xuICAgICAgICBhcnJheUIgPSBbXTtcblxuICByZXR1cm4gbmV4dChhcnJheUEsIGFycmF5QiwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoLFxuICAgICAgICBsZW5ndGggPSBhcnJheUFMZW5ndGg7ICAvLy9cblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XSxcbiAgICAgICAgICBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50QSxcbiAgICAgIGVsZW1lbnRCLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCAtIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4IC0gMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gbGVuZ3RoIC0gMTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGwoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBldmVyeShjYWxsYmFja3MsIChjYWxsYmFjaywgLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICB9LCAuLi5pbml0aWFsQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4aXN0cyhjYWxsYmFja3MsIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgcmV0dXJuIHNvbWUoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3V0LFxuICBvbmUsXG4gIHNvbWUsXG4gIGVhY2gsXG4gIGV2ZXJ5LFxuICBtYXAsXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgZmlsdGVyLFxuICBwcnVuZSxcbiAgZXh0cmFjdCxcbiAgZmluZCxcbiAgcmVzb2x2ZSxcbiAgbWF0Y2gsXG4gIGZvcndhcmRzRXZlcnksXG4gIGJhY2t3YXJkc0V2ZXJ5LFxuICBmb3J3YXJkc0ZvckVhY2gsXG4gIGJhY2t3YXJkc0ZvckVhY2gsXG4gIGFsbCxcbiAgZXhpc3RzXG59O1xuIl0sIm5hbWVzIjpbImFsbCIsImJhY2t3YXJkc0V2ZXJ5IiwiYmFja3dhcmRzRm9yRWFjaCIsImN1dCIsImVhY2giLCJldmVyeSIsImV4aXN0cyIsImV4dHJhY3QiLCJmaWx0ZXIiLCJmaW5kIiwiZm9yRWFjaCIsImZvcndhcmRzRXZlcnkiLCJmb3J3YXJkc0ZvckVhY2giLCJtYXAiLCJtYXRjaCIsIm9uZSIsInBydW5lIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJmb3J3YXJkIiwiYmFjayIsImZvcndhcmRBcmd1bWVudHMiLCJwb3AiLCJhcnJheSIsImNhbGxiYWNrIiwiaW5pdGlhbEFyZ3VtZW50cyIsImxlbmd0aCIsIm5leHQiLCJpbmRleCIsImNvdW50IiwibmV4dEFyZ3VtZW50cyIsImVsZW1lbnQiLCJleGNlcHRpb24iLCJhcnJheUEiLCJhcnJheUIiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJkZWxldGVkRWxlbWVudHMiLCJkZWxldGVkRWxlbWVudCIsInNsaWNlIiwidW5kZWZpbmVkIiwiZWxlbWVudHMiLCJlbGVtZW50c0xlbmd0aCIsImluY2x1ZGVzIiwiYXJyYXlBTGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwiY2FsbGJhY2tzIiwiY2FsbGJhY2tBcmd1bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXNtQmdCQTtlQUFBQTs7UUExRkFDO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBdGtCQUM7ZUFBQUE7O1FBZ25CaEI7ZUFBQTs7UUEzaEJnQkM7ZUFBQUE7O1FBbUNBQztlQUFBQTs7UUFrZkFDO2VBQUFBOztRQTdSQUM7ZUFBQUE7O1FBMUZBQztlQUFBQTs7UUFzSUFDO2VBQUFBOztRQXBLQUM7ZUFBQUE7O1FBdVJBQztlQUFBQTs7UUE0REFDO2VBQUFBOztRQWxaQUM7ZUFBQUE7O1FBZ1RBQztlQUFBQTs7UUE5YkFDO2VBQUFBOztRQXdSQUM7ZUFBQUE7O1FBMUdBQztlQUFBQTs7UUF3T0FDO2VBQUFBOztRQXpXQUM7ZUFBQUE7OztBQXJEVCxTQUFTaEIsSUFBSWlCLE9BQU8sRUFBRUMsSUFBSTtJQUMvQixPQUFPLENBQUMsR0FBR0M7UUFDVEEsaUJBQWlCQyxHQUFHLElBQUksR0FBRztRQUUzQixPQUFPSCxXQUFXRSxrQkFBa0JEO0lBQ3RDO0FBQ0Y7QUFFTyxTQUFTTixJQUFJUyxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxnQkFBZ0I7SUFDdEQsTUFBTUwsT0FBT0ssaUJBQWlCSCxHQUFHLElBQzNCSCxVQUFVTSxpQkFBaUJILEdBQUcsSUFDOUJJLFNBQVNILE1BQU1HLE1BQU07SUFFM0IsU0FBU0MsS0FBS0MsS0FBSyxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsYUFBYTtRQUMxQyxJQUFJRixVQUFVRixRQUFRO1lBQ3BCLElBQUlHLFVBQVUsR0FBRztnQkFDZixPQUFPVDtZQUNUO1lBRUEsT0FBT0QsV0FBV1csZUFBZVY7UUFDbkM7UUFFQSxNQUFNVyxVQUFVUixLQUFLLENBQUNLLE1BQU07UUFFNUIsT0FBT0osU0FDTE8sWUFD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
|
package/package.json
CHANGED
|
@@ -419,8 +419,7 @@ export function resolve(array, callback, ...initialArguments) {
|
|
|
419
419
|
forward = initialArguments.pop();
|
|
420
420
|
|
|
421
421
|
function next(arrayA, arrayB, ...nextArguments) {
|
|
422
|
-
const
|
|
423
|
-
length = arrayA.length;
|
|
422
|
+
const length = arrayA.length;
|
|
424
423
|
|
|
425
424
|
if (length === 0) {
|
|
426
425
|
return forward(arrayB, ...nextArguments, back);
|
|
@@ -437,6 +436,8 @@ export function resolve(array, callback, ...initialArguments) {
|
|
|
437
436
|
return back();
|
|
438
437
|
}
|
|
439
438
|
|
|
439
|
+
forwardArguments.pop(); ///
|
|
440
|
+
|
|
440
441
|
return next(
|
|
441
442
|
arrayA.filter((element) => !elements.includes(element)),
|
|
442
443
|
[ ...arrayB, ...elements ],
|
|
@@ -450,7 +451,7 @@ export function resolve(array, callback, ...initialArguments) {
|
|
|
450
451
|
const arrayA = array, ///
|
|
451
452
|
arrayB = [];
|
|
452
453
|
|
|
453
|
-
return next(arrayA, arrayB, ...initialArguments
|
|
454
|
+
return next(arrayA, arrayB, ...initialArguments);
|
|
454
455
|
}
|
|
455
456
|
|
|
456
457
|
export function match(arrayA, arrayB, callback, ...initialArguments) {
|