occam-languages 3.0.52 → 3.0.53

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.
@@ -446,4 +446,4 @@ const _default = {
446
446
  exists
447
447
  };
448
448
 
449
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3V0KC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIHJldHVybiAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgcmV0dXJuIGZvcndhcmQoLi4uZm9yd2FyZEFyZ3VtZW50cywgYmFjayk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc29sYXRlKGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIHJldHVybiBjYWxsYmFjayguLi5pbml0aWFsQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICBjb25zdCBiYWNrID0gY2FsbGJhY2tBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCguLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbiAgfSwgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGNvdW50LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gYmFjaygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLmluaXRpYWxBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICBpZiAoY291bnQgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yd2FyZEFyZ3VtZW50cy5wb3AoKTsgLy8vXG5cbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBjb3VudCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGNvdW50LCAuLi5uZXh0QXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgIGNvdW50ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgY291bnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCkge1xuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4uaW5pdGlhbEFyZ3VtZW50cyxcbiAgICAgIGZvcndhcmQsXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxKTtcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgY291bnQsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBpZiAoY291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBjb3VudCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgIGNvdW50ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgY291bnQsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGFycmF5QSA9IGFycmF5LCAvLy9cbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGFycmF5QiwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGFycmF5QiwgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudEEgPSBhcnJheUFbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudEEsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKGVsZW1lbnRCLCAuLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgWyAuLi5hcnJheUIsIGVsZW1lbnRCIF0sIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgIGFycmF5QiA9IFtdO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBhcnJheUIsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlKGFycmF5LCBpbml0aWFsVmFsdWUsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIHZhbHVlLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgdmFsdWUsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKHZhbHVlLCAuLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgdmFsdWUsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGluaXRpYWxWYWx1ZSwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgYXJyYXksIGRlbGV0ZWRFbGVtZW50cywgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoYXJyYXksIGRlbGV0ZWRFbGVtZW50cywgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggLSAxLCBhcnJheSwgZGVsZXRlZEVsZW1lbnRzLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVsZXRlZEVsZW1lbnQgPSBlbGVtZW50OyAvLy9cblxuICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICBpbmRleCAtIDEsXG4gICAgICAgICAgWyAuLi5hcnJheS5zbGljZSgwLCBpbmRleCksIC4uLmFycmF5LnNsaWNlKGluZGV4ICsgMSkgXSxcbiAgICAgICAgICBbIGRlbGV0ZWRFbGVtZW50LCAuLi5kZWxldGVkRWxlbWVudHMgXSxcbiAgICAgICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgICAgIGJhY2tcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IGxlbmd0aCAtIDEsXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IFtdO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBhcnJheSwgZGVsZXRlZEVsZW1lbnRzLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmQoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoZWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgWyAuLi5lbGVtZW50cywgZWxlbWVudCBdLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBlbGVtZW50cywgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgIGVsZW1lbnRzID0gW107XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGVsZW1lbnRzLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBydW5lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheSwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBhcnJheSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoXG4gICAgICAgICAgWyAuLi5hcnJheS5zbGljZSgwLCBpbmRleCksIC4uLmFycmF5LnNsaWNlKGluZGV4ICsgMSkgXSxcbiAgICAgICAgICBkZWxldGVkRWxlbWVudCxcbiAgICAgICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgICAgIGJhY2tcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGFycmF5LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGFycmF5LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICBjb25zdCBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKFxuICAgICAgICAgIFsgLi4uYXJyYXkuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnJheS5zbGljZShpbmRleCArIDEpIF0sXG4gICAgICAgICAgZGVsZXRlZEVsZW1lbnQsXG4gICAgICAgICAgLi4uZm9yd2FyZEFyZ3VtZW50c1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGFycmF5LCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICAgIH0sXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGFycmF5LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBmdW5jdGlvbiBuZXh0KGFycmF5QSwgYXJyYXlCLCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGFycmF5QiwgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmQoXG4gICAgICBhcnJheUEsXG4gICAgICBjYWxsYmFjayxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoZWxlbWVudHMsIC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNMZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XG5cbiAgICAgICAgaWYgKGVsZW1lbnRzTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgIGFycmF5QS5maWx0ZXIoKGVsZW1lbnQpID0+ICFlbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSksXG4gICAgICAgICAgWyAuLi5hcnJheUIsIC4uLmVsZW1lbnRzIF0sXG4gICAgICAgICAgLi4uZm9yd2FyZEFyZ3VtZW50c1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGJhY2tcbiAgICApO1xuICB9XG5cbiAgY29uc3QgYXJyYXlBID0gYXJyYXksIC8vL1xuICAgICAgICBhcnJheUIgPSBbXTtcblxuICByZXR1cm4gbmV4dChhcnJheUEsIGFycmF5QiwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoLFxuICAgICAgICBsZW5ndGggPSBhcnJheUFMZW5ndGg7ICAvLy9cblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICByZXR1cm4gYmFjaygpO1xuICB9XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XSxcbiAgICAgICAgICBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50QSxcbiAgICAgIGVsZW1lbnRCLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCAtIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4IC0gMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gbGVuZ3RoIC0gMTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGwoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBldmVyeShjYWxsYmFja3MsIChjYWxsYmFjaywgLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICB9LCAuLi5pbml0aWFsQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4aXN0cyhjYWxsYmFja3MsIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgcmV0dXJuIHNvbWUoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3V0LFxuICBpc29sYXRlLFxuICBvbmUsXG4gIHNvbWUsXG4gIGVhY2gsXG4gIGV2ZXJ5LFxuICBtYXAsXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgZmlsdGVyLFxuICBmaW5kLFxuICBwcnVuZSxcbiAgZXh0cmFjdCxcbiAgcmVzb2x2ZSxcbiAgbWF0Y2gsXG4gIGZvcndhcmRzRXZlcnksXG4gIGJhY2t3YXJkc0V2ZXJ5LFxuICBmb3J3YXJkc0ZvckVhY2gsXG4gIGJhY2t3YXJkc0ZvckVhY2gsXG4gIGFsbCxcbiAgZXhpc3RzXG59O1xuIl0sIm5hbWVzIjpbImFsbCIsImJhY2t3YXJkc0V2ZXJ5IiwiYmFja3dhcmRzRm9yRWFjaCIsImN1dCIsImVhY2giLCJldmVyeSIsImV4aXN0cyIsImV4dHJhY3QiLCJmaWx0ZXIiLCJmaW5kIiwiZm9yRWFjaCIsImZvcndhcmRzRXZlcnkiLCJmb3J3YXJkc0ZvckVhY2giLCJpc29sYXRlIiwibWFwIiwibWF0Y2giLCJvbmUiLCJwcnVuZSIsInJlZHVjZSIsInJlc29sdmUiLCJzb21lIiwiaW5pdGlhbEFyZ3VtZW50cyIsImJhY2siLCJwb3AiLCJmb3J3YXJkIiwiZm9yd2FyZEFyZ3VtZW50cyIsImNhbGxiYWNrIiwiY2FsbGJhY2tBcmd1bWVudHMiLCJhcnJheSIsImxlbmd0aCIsIm5leHQiLCJpbmRleCIsImNvdW50IiwibmV4dEFyZ3VtZW50cyIsImVsZW1lbnQiLCJleGNlcHRpb24iLCJhcnJheUEiLCJhcnJheUIiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJkZWxldGVkRWxlbWVudHMiLCJkZWxldGVkRWxlbWVudCIsInNsaWNlIiwiZWxlbWVudHMiLCJlbGVtZW50c0xlbmd0aCIsImluY2x1ZGVzIiwiYXJyYXlBTGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwiY2FsbGJhY2tzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFnbkJnQkE7ZUFBQUE7O1FBMUZBQztlQUFBQTs7UUE0REFDO2VBQUFBOztRQWhsQkFDO2VBQUFBOztRQTBuQmhCO2VBQUE7O1FBdmhCZ0JDO2VBQUFBOztRQW1DQUM7ZUFBQUE7O1FBOGVBQztlQUFBQTs7UUF0UEFDO2VBQUFBOztRQTdIQUM7ZUFBQUE7O1FBNkNBQztlQUFBQTs7UUEzRUFDO2VBQUFBOztRQW1SQUM7ZUFBQUE7O1FBNERBQztlQUFBQTs7UUF2aUJBQztlQUFBQTs7UUF5SkFDO2VBQUFBOztRQTRTQUM7ZUFBQUE7O1FBMWJBQztlQUFBQTs7UUE2VEFDO2VBQUFBOztRQS9JQUM7ZUFBQUE7O1FBb09BQztlQUFBQTs7UUFyV0FDO2VBQUFBOzs7QUFuRVQsU0FBU2pCLElBQUksR0FBR2tCLGdCQUFnQjtJQUNyQyxNQUFNQyxPQUFPRCxpQkFBaUJFLEdBQUcsSUFDM0JDLFVBQVVILGlCQUFpQkUsR0FBRztJQUVwQyxPQUFPLENBQUMsR0FBR0U7UUFDVEEsaUJBQWlCRixHQUFHLElBQUksR0FBRztRQUUzQixPQUFPQyxXQUFXQyxrQkFBa0JIO0lBQ3RDO0FBQ0Y7QUFFTyxTQUFTVCxRQUFRYSxRQUFRLEVBQUUsR0FB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
449
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3V0KC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIHJldHVybiAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgcmV0dXJuIGZvcndhcmQoLi4uZm9yd2FyZEFyZ3VtZW50cywgYmFjayk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc29sYXRlKGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICByZXR1cm4gY2FsbGJhY2soLi4uaW5pdGlhbEFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgY29uc3QgYmFjayA9IGNhbGxiYWNrQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG4gIH0sIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBjb3VudCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBpZiAoY291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5pbml0aWFsQXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgY291bnQgKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBjb3VudCwgLi4ubmV4dEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBjb3VudCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGNvdW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgpIHtcbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLmluaXRpYWxBcmd1bWVudHMsXG4gICAgICBmb3J3YXJkLFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGNvdW50LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgY291bnQgKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBjb3VudCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGNvdW50LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUEgPSBhcnJheSwgLy8vXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheUIsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheUIsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnRBLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgIChlbGVtZW50QiwgLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIFsgLi4uYXJyYXlCLCBlbGVtZW50QiBdLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBhcnJheUIgPSBbXTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXlCLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZShhcnJheSwgaW5pdGlhbFZhbHVlLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCB2YWx1ZSwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIHZhbHVlLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICh2YWx1ZSwgLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIHZhbHVlLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBpbml0aWFsVmFsdWUsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXIoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4IC0gMSwgYXJyYXksIGRlbGV0ZWRFbGVtZW50cywgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgaW5kZXggLSAxLFxuICAgICAgICAgIFsgLi4uYXJyYXkuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnJheS5zbGljZShpbmRleCArIDEpIF0sXG4gICAgICAgICAgWyBkZWxldGVkRWxlbWVudCwgLi4uZGVsZXRlZEVsZW1lbnRzIF0sXG4gICAgICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICAgICBiYWNrXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSBsZW5ndGggLSAxLFxuICAgICAgICBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXksIGRlbGV0ZWRFbGVtZW50cywgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBlbGVtZW50cywgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIFsgLi4uZWxlbWVudHMsIGVsZW1lbnQgXSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgZWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICBlbGVtZW50cyA9IFtdO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBlbGVtZW50cywgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcnVuZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgYXJyYXksIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgYXJyYXksIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKFxuICAgICAgICAgIFsgLi4uYXJyYXkuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnJheS5zbGljZShpbmRleCArIDEpIF0sXG4gICAgICAgICAgZGVsZXRlZEVsZW1lbnQsXG4gICAgICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICAgICBiYWNrXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBhcnJheSwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheSwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgY29uc3QgZGVsZXRlZEVsZW1lbnQgPSBlbGVtZW50OyAvLy9cblxuICAgICAgICByZXR1cm4gZm9yd2FyZChcbiAgICAgICAgICBbIC4uLmFycmF5LnNsaWNlKDAsIGluZGV4KSwgLi4uYXJyYXkuc2xpY2UoaW5kZXggKyAxKSBdLFxuICAgICAgICAgIGRlbGV0ZWRFbGVtZW50LFxuICAgICAgICAgIC4uLmZvcndhcmRBcmd1bWVudHNcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBhcnJheSwgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBhcnJheSwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dChhcnJheUEsIGFycmF5QiwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGxlbmd0aCA9IGFycmF5QS5sZW5ndGg7XG5cbiAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheUIsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIHJldHVybiBmaW5kKFxuICAgICAgYXJyYXlBLFxuICAgICAgY2FsbGJhY2ssXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKGVsZW1lbnRzLCAuLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzTGVuZ3RoID0gZWxlbWVudHMubGVuZ3RoO1xuXG4gICAgICAgIGlmIChlbGVtZW50c0xlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3J3YXJkQXJndW1lbnRzLnBvcCgpOyAvLy9cblxuICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICBhcnJheUEuZmlsdGVyKChlbGVtZW50KSA9PiAhZWxlbWVudHMuaW5jbHVkZXMoZWxlbWVudCkpLFxuICAgICAgICAgIFsgLi4uYXJyYXlCLCAuLi5lbGVtZW50cyBdLFxuICAgICAgICAgIC4uLmZvcndhcmRBcmd1bWVudHNcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBiYWNrXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFycmF5QSA9IGFycmF5LCAvLy9cbiAgICAgICAgYXJyYXlCID0gW107XG5cbiAgcmV0dXJuIG5leHQoYXJyYXlBLCBhcnJheUIsIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aCxcbiAgICAgICAgYXJyYXlCTGVuZ3RoID0gYXJyYXlCLmxlbmd0aCxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXlBTGVuZ3RoOyAgLy8vXG5cbiAgaWYgKGFycmF5QUxlbmd0aCAhPT0gYXJyYXlCTGVuZ3RoKSB7XG4gICAgcmV0dXJuIGJhY2soKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50QSA9IGFycmF5QVtpbmRleF0sXG4gICAgICAgICAgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudEEsXG4gICAgICBlbGVtZW50QixcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggLSAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSBsZW5ndGggLSAxO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzRm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCAtIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsKGNhbGxiYWNrcywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICByZXR1cm4gZXZlcnkoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGlzdHMoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBzb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCAuLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gIH0sIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGN1dCxcbiAgaXNvbGF0ZSxcbiAgb25lLFxuICBzb21lLFxuICBlYWNoLFxuICBldmVyeSxcbiAgbWFwLFxuICByZWR1Y2UsXG4gIGZvckVhY2gsXG4gIGZpbHRlcixcbiAgZmluZCxcbiAgcHJ1bmUsXG4gIGV4dHJhY3QsXG4gIHJlc29sdmUsXG4gIG1hdGNoLFxuICBmb3J3YXJkc0V2ZXJ5LFxuICBiYWNrd2FyZHNFdmVyeSxcbiAgZm9yd2FyZHNGb3JFYWNoLFxuICBiYWNrd2FyZHNGb3JFYWNoLFxuICBhbGwsXG4gIGV4aXN0c1xufTtcbiJdLCJuYW1lcyI6WyJhbGwiLCJiYWNrd2FyZHNFdmVyeSIsImJhY2t3YXJkc0ZvckVhY2giLCJjdXQiLCJlYWNoIiwiZXZlcnkiLCJleGlzdHMiLCJleHRyYWN0IiwiZmlsdGVyIiwiZmluZCIsImZvckVhY2giLCJmb3J3YXJkc0V2ZXJ5IiwiZm9yd2FyZHNGb3JFYWNoIiwiaXNvbGF0ZSIsIm1hcCIsIm1hdGNoIiwib25lIiwicHJ1bmUiLCJyZWR1Y2UiLCJyZXNvbHZlIiwic29tZSIsImluaXRpYWxBcmd1bWVudHMiLCJiYWNrIiwicG9wIiwiZm9yd2FyZCIsImZvcndhcmRBcmd1bWVudHMiLCJjYWxsYmFjayIsImNhbGxiYWNrQXJndW1lbnRzIiwiYXJyYXkiLCJsZW5ndGgiLCJuZXh0IiwiaW5kZXgiLCJjb3VudCIsIm5leHRBcmd1bWVudHMiLCJlbGVtZW50IiwiZXhjZXB0aW9uIiwiYXJyYXlBIiwiYXJyYXlCIiwiZWxlbWVudEEiLCJlbGVtZW50QiIsImluaXRpYWxWYWx1ZSIsInZhbHVlIiwiZGVsZXRlZEVsZW1lbnRzIiwiZGVsZXRlZEVsZW1lbnQiLCJzbGljZSIsImVsZW1lbnRzIiwiZWxlbWVudHNMZW5ndGgiLCJpbmNsdWRlcyIsImFycmF5QUxlbmd0aCIsImFycmF5Qkxlbmd0aCIsImNhbGxiYWNrcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBZ25CZ0JBO2VBQUFBOztRQTFGQUM7ZUFBQUE7O1FBNERBQztlQUFBQTs7UUFobEJBQztlQUFBQTs7UUEwbkJoQjtlQUFBOztRQXZoQmdCQztlQUFBQTs7UUFtQ0FDO2VBQUFBOztRQThlQUM7ZUFBQUE7O1FBdFBBQztlQUFBQTs7UUE3SEFDO2VBQUFBOztRQTZDQUM7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUFtUkFDO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBdmlCQUM7ZUFBQUE7O1FBeUpBQztlQUFBQTs7UUE0U0FDO2VBQUFBOztRQTFiQUM7ZUFBQUE7O1FBNlRBQztlQUFBQTs7UUEvSUFDO2VBQUFBOztRQW9PQUM7ZUFBQUE7O1FBcldBQztlQUFBQTs7O0FBbkVULFNBQVNqQixJQUFJLEdBQUdrQixnQkFBZ0I7SUFDckMsTUFBTUMsT0FBT0QsaUJBQWlCRSxHQUFHLElBQzNCQyxVQUFVSCxpQkFBaUJFLEdBQUc7SUFFcEMsT0FBTyxDQUFDLEdBQUdFO1FBQ1RBLGlCQUFpQkYsR0FBRyxJQUFJLEdBQUc7UUFFM0IsT0FBT0MsV0FBV0Msa0JBQWtCSDtJQUN0QztBQUNGO0FBRU8sU0FBU1QsUUFBUWEsUUFBUSxFQUFF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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "3.0.52",
4
+ "version": "3.0.53",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -13,7 +13,7 @@ export function cut(...initialArguments) {
13
13
 
14
14
  export function isolate(callback, ...initialArguments) {
15
15
  const back = initialArguments.pop(),
16
- forward = initialArguments.pop();
16
+ forward = initialArguments.pop();
17
17
 
18
18
  return callback(...initialArguments, (...callbackArguments) => {
19
19
  const back = callbackArguments.pop();