occam-languages 3.0.66 → 3.0.67

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.
@@ -91,4 +91,4 @@ const _default = {
91
91
  lineIndexFromNodeAndTokens
92
92
  };
93
93
 
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJlYWtQb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgZm9yd2FyZCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy5icmVhayhjb250ZXh0LCAoYmFjaykgPT4ge1xuICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGlubmVyRnVuY3Rpb24uY2FsbCh0aGlzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgICAgfSk7XG4gICAgfSwgYmFjayk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGZvcndhcmQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHNldEltbWVkaWF0ZSgoKSA9PiB7XG4gICAgICByZXR1cm4gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicmVha1BvaW50RnJvbUpTT04oanNvbikge1xuICBsZXQgYnJlYWtQb2ludDtcblxuICAoeyBicmVha1BvaW50IH0gPSBqc29uKTtcblxuICBpZiAoYnJlYWtQb2ludCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludDsgIC8vL1xuXG4gICAganNvbiA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBicmVha1BvaW50ID0gQnJlYWtQb2ludC5mcm9tSlNPTihqc29uKTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGJyZWFrUG9pbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KSB7XG4gIGxldCBicmVha1BvaW50SlNPTiA9IG51bGw7XG5cbiAgaWYgKGJyZWFrUG9pbnQgIT09IG51bGwpIHtcbiAgICBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnQudG9KU09OKCk7XG4gIH1cblxuICByZXR1cm4gYnJlYWtQb2ludEpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5lSW5kZXhGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMpIHtcbiAgbGV0IGxpbmVJbmRleCA9IDA7XG5cbiAgY29uc3QgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucyk7XG5cbiAgdG9rZW5zLnNvbWUoKHRva2VuLCB0b2tlbkluZGV4KSA9PiB7XG4gICAgY29uc3QgdG9rZW5FbmRPZkxpbmVUb2tlbiA9IHRva2VuLmlzRW5kT2ZMaW5lVG9rZW4oKTtcblxuICAgIGlmICh0b2tlbkVuZE9mTGluZVRva2VuKSB7XG4gICAgICBsaW5lSW5kZXggKz0gMTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW5JbmRleCA9PT0gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGxpbmVJbmRleDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBicmVha2FibGUsXG4gIHVuYnJlYWthYmxlLFxuICBicmVha1BvaW50RnJvbUpTT04sXG4gIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OLFxuICBsaW5lSW5kZXhGcm9tTm9kZUFuZFRva2Vuc1xufTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrYWJsZSIsImxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwidW5icmVha2FibGUiLCJpbm5lckZ1bmN0aW9uIiwicmVtYWluaW5nQXJndW1lbnRzIiwiYmFjayIsInBvcCIsImZvcndhcmQiLCJjb250ZXh0IiwiYnJlYWsiLCJzZXRJbW1lZGlhdGUiLCJjYWxsIiwianNvbiIsImJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsIkJyZWFrUG9pbnQiLCJmcm9tSlNPTiIsInRvSlNPTiIsIm5vZGUiLCJ0b2tlbnMiLCJsaW5lSW5kZXgiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4Iiwic29tZSIsInRva2VuIiwidG9rZW5JbmRleCIsInRva2VuRW5kT2ZMaW5lVG9rZW4iLCJpc0VuZE9mTGluZVRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE4QmdCQTtlQUFBQTs7UUFnQkFDO2VBQUFBOztRQTFDQUM7ZUFBQUE7O1FBd0VoQjtlQUFBOztRQXBCZ0JDO2VBQUFBOztRQXRDQUM7ZUFBQUE7OzttRUFoQk87Ozs7OztBQUVoQixTQUFTRixVQUFVRyxhQUFhO0lBQ3JDLE9BQU8sU0FBUyxHQUFHQyxrQkFBa0I7UUFDbkMsTUFBTUMsT0FBT0QsbUJBQW1CRSxHQUFHLElBQ2pDQyxVQUFVSCxtQkFBbUJFLEdBQUcsSUFDaENFLFVBQVVKLG1CQUFtQkUsR0FBRztRQUVsQyxPQUFPLElBQUksQ0FBQ0csS0FBSyxDQUFDRCxTQUFTLENBQUNIO1lBQzFCSyxhQUFhO2dCQUNYLE9BQU9QLGNBQWNRLElBQUksQ0FBQyxJQUFJLEtBQUtQLG9CQUFvQkksU0FBU0QsU0FBU0Y7WUFDM0U7UUFDRixHQUFHQTtJQUNMO0FBQ0Y7QUFFTyxTQUFTSCxZQUFZQyxhQUFhO0lBQ3ZDLE9BQU8sU0FBUyxHQUFHQyxrQkFBa0I7UUFDbkMsTUFBTUMsT0FBT0QsbUJBQW1CRSxHQUFHLElBQzdCQyxVQUFVSCxtQkFBbUJFLEdBQUcsSUFDaENFLFVBQVVKLG1CQUFtQkUsR0FBRztRQUV0Q0ksYUFBYTtZQUNYLE9BQU9QLGNBQWNRLElBQUksQ0FBQyxJQUFJLEtBQUtQLG9CQUFvQkksU0FBU0QsU0FBU0Y7UUFDM0U7SUFDRjtBQUNGO0FBRU8sU0FBU1AsbUJBQW1CYyxJQUFJO0lBQ3JDLElBQUlDO0lBRUgsQ0FBQSxFQUFFQSxVQUFVLEVBQUUsR0FBR0QsSUFBRztJQUVyQixJQUFJQyxlQUFlLE1BQU07UUFDdkIsTUFBTUMsaUJBQWlCRCxZQUFhLEdBQUc7UUFFdkNELE9BQU9FLGdCQUFpQixHQUFHO1FBRTNCRCxhQUFhRSxtQkFBVSxDQUFDQyxRQUFRLENBQUNKLE9BQVEsR0FBRztJQUM5QztJQUVBLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTZCwyQkFBMkJjLFVBQVU7SUFDbkQsSUFBSUMsaUJBQWlCO0lBRXJCLElBQUlELGVBQWUsTUFBTTtRQUN2QkMsaUJBQWlCRCxXQUFXSSxNQUFNO0lBQ3BDO0lBRUEsT0FBT0g7QUFDVDtBQUVPLFNBQVNiLDJCQUEyQmlCLElBQUksRUFBRUMsTUFBTTtJQUNyRCxJQUFJQyxZQUFZO0lBRWhCLE1BQU1DLDZCQUE2QkgsS0FBS0ksNkJBQTZCLENBQUNIO0lBRXRFQSxPQUFPSSxJQUFJLENBQUMsQ0FBQ0MsT0FBT0M7UUFDbEIsTUFBTUMsc0JBQXNCRixNQUFNRyxnQkFBZ0I7UUFFbEQsSUFBSUQscUJBQXFCO1lBQ3ZCTixhQUFhO1FBQ2Y7UUFFQSxJQUFJSyxlQUFlSiw0QkFBNEI7WUFDN0MsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPRDtBQUNUO01BRUEsV0FBZTtJQUNicEI7SUFDQUU7SUFDQUo7SUFDQUM7SUFDQUU7QUFDRiJ9
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJlYWtQb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGZvcndhcmQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHJldHVybiB0aGlzLmJyZWFrKGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICBzZXRJbW1lZGlhdGUoKCkgPT4ge1xuICAgICAgICByZXR1cm4gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgICB9KTtcbiAgICB9LCBiYWNrKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuYnJlYWthYmxlKGlubmVyRnVuY3Rpb24pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgZm9yd2FyZCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBjb250ZXh0ID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgIHJldHVybiBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSB7XG4gIGxldCBicmVha1BvaW50O1xuXG4gICh7IGJyZWFrUG9pbnQgfSA9IGpzb24pO1xuXG4gIGlmIChicmVha1BvaW50ICE9PSBudWxsKSB7XG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50OyAgLy8vXG5cbiAgICBqc29uID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGJyZWFrUG9pbnQgPSBCcmVha1BvaW50LmZyb21KU09OKGpzb24pOyAgLy8vXG4gIH1cblxuICByZXR1cm4gYnJlYWtQb2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpIHtcbiAgbGV0IGJyZWFrUG9pbnRKU09OID0gbnVsbDtcblxuICBpZiAoYnJlYWtQb2ludCAhPT0gbnVsbCkge1xuICAgIGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludC50b0pTT04oKTtcbiAgfVxuXG4gIHJldHVybiBicmVha1BvaW50SlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2Vucykge1xuICBsZXQgbGluZUluZGV4ID0gMDtcblxuICBjb25zdCBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKTtcblxuICB0b2tlbnMuc29tZSgodG9rZW4sIHRva2VuSW5kZXgpID0+IHtcbiAgICBjb25zdCB0b2tlbkVuZE9mTGluZVRva2VuID0gdG9rZW4uaXNFbmRPZkxpbmVUb2tlbigpO1xuXG4gICAgaWYgKHRva2VuRW5kT2ZMaW5lVG9rZW4pIHtcbiAgICAgIGxpbmVJbmRleCArPSAxO1xuICAgIH1cblxuICAgIGlmICh0b2tlbkluZGV4ID09PSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbGluZUluZGV4O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGJyZWFrYWJsZSxcbiAgdW5icmVha2FibGUsXG4gIGJyZWFrUG9pbnRGcm9tSlNPTixcbiAgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04sXG4gIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zXG59O1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWthYmxlIiwibGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMiLCJ1bmJyZWFrYWJsZSIsImlubmVyRnVuY3Rpb24iLCJyZW1haW5pbmdBcmd1bWVudHMiLCJiYWNrIiwicG9wIiwiZm9yd2FyZCIsImNvbnRleHQiLCJicmVhayIsInNldEltbWVkaWF0ZSIsImNhbGwiLCJqc29uIiwiYnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwiQnJlYWtQb2ludCIsImZyb21KU09OIiwidG9KU09OIiwibm9kZSIsInRva2VucyIsImxpbmVJbmRleCIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJzb21lIiwidG9rZW4iLCJ0b2tlbkluZGV4IiwidG9rZW5FbmRPZkxpbmVUb2tlbiIsImlzRW5kT2ZMaW5lVG9rZW4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQThCZ0JBO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBMUNBQztlQUFBQTs7UUF3RWhCO2VBQUE7O1FBcEJnQkM7ZUFBQUE7O1FBdENBQztlQUFBQTs7O21FQWhCTzs7Ozs7O0FBRWhCLFNBQVNGLFVBQVVHLGFBQWE7SUFDckMsT0FBTyxTQUFTLEdBQUdDLGtCQUFrQjtRQUNuQyxNQUFNQyxPQUFPRCxtQkFBbUJFLEdBQUcsSUFDN0JDLFVBQVVILG1CQUFtQkUsR0FBRyxJQUNoQ0UsVUFBVUosbUJBQW1CRSxHQUFHO1FBRXRDLE9BQU8sSUFBSSxDQUFDRyxLQUFLLENBQUNELFNBQVMsQ0FBQ0g7WUFDMUJLLGFBQWE7Z0JBQ1gsT0FBT1AsY0FBY1EsSUFBSSxDQUFDLElBQUksS0FBS1Asb0JBQW9CSSxTQUFTRCxTQUFTRjtZQUMzRTtRQUNGLEdBQUdBO0lBQ0w7QUFDRjtBQUVPLFNBQVNILFlBQVlDLGFBQWE7SUFDdkMsT0FBTyxTQUFTLEdBQUdDLGtCQUFrQjtRQUNuQyxNQUFNQyxPQUFPRCxtQkFBbUJFLEdBQUcsSUFDN0JDLFVBQVVILG1CQUFtQkUsR0FBRyxJQUNoQ0UsVUFBVUosbUJBQW1CRSxHQUFHO1FBRXRDSSxhQUFhO1lBQ1gsT0FBT1AsY0FBY1EsSUFBSSxDQUFDLElBQUksS0FBS1Asb0JBQW9CSSxTQUFTRCxTQUFTRjtRQUMzRTtJQUNGO0FBQ0Y7QUFFTyxTQUFTUCxtQkFBbUJjLElBQUk7SUFDckMsSUFBSUM7SUFFSCxDQUFBLEVBQUVBLFVBQVUsRUFBRSxHQUFHRCxJQUFHO0lBRXJCLElBQUlDLGVBQWUsTUFBTTtRQUN2QixNQUFNQyxpQkFBaUJELFlBQWEsR0FBRztRQUV2Q0QsT0FBT0UsZ0JBQWlCLEdBQUc7UUFFM0JELGFBQWFFLG1CQUFVLENBQUNDLFFBQVEsQ0FBQ0osT0FBUSxHQUFHO0lBQzlDO0lBRUEsT0FBT0M7QUFDVDtBQUVPLFNBQVNkLDJCQUEyQmMsVUFBVTtJQUNuRCxJQUFJQyxpQkFBaUI7SUFFckIsSUFBSUQsZUFBZSxNQUFNO1FBQ3ZCQyxpQkFBaUJELFdBQVdJLE1BQU07SUFDcEM7SUFFQSxPQUFPSDtBQUNUO0FBRU8sU0FBU2IsMkJBQTJCaUIsSUFBSSxFQUFFQyxNQUFNO0lBQ3JELElBQUlDLFlBQVk7SUFFaEIsTUFBTUMsNkJBQTZCSCxLQUFLSSw2QkFBNkIsQ0FBQ0g7SUFFdEVBLE9BQU9JLElBQUksQ0FBQyxDQUFDQyxPQUFPQztRQUNsQixNQUFNQyxzQkFBc0JGLE1BQU1HLGdCQUFnQjtRQUVsRCxJQUFJRCxxQkFBcUI7WUFDdkJOLGFBQWE7UUFDZjtRQUVBLElBQUlLLGVBQWVKLDRCQUE0QjtZQUM3QyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9EO0FBQ1Q7TUFFQSxXQUFlO0lBQ2JwQjtJQUNBRTtJQUNBSjtJQUNBQztJQUNBRTtBQUNGIn0=
@@ -446,4 +446,4 @@ const _default = {
446
446
  exists
447
447
  };
448
448
 
449
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3V0KC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIHJldHVybiAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgcmV0dXJuIGZvcndhcmQoLi4uZm9yd2FyZEFyZ3VtZW50cywgYmFjayk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc29sYXRlKGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICByZXR1cm4gY2FsbGJhY2soLi4uaW5pdGlhbEFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgY29uc3QgYmFjayA9IGNhbGxiYWNrQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG4gIH0sIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBjb3VudCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBpZiAoY291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5pbml0aWFsQXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgY291bnQgKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBjb3VudCwgLi4ubmV4dEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBjb3VudCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGNvdW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgpIHtcbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLmluaXRpYWxBcmd1bWVudHMsXG4gICAgICBmb3J3YXJkLFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGNvdW50LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgY291bnQgKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBjb3VudCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGNvdW50LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUEgPSBhcnJheSwgLy8vXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheUIsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheUIsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnRBLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgIChlbGVtZW50QiwgLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIFsgLi4uYXJyYXlCLCBlbGVtZW50QiBdLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBhcnJheUIgPSBbXTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXlCLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZShhcnJheSwgaW5pdGlhbFZhbHVlLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCB2YWx1ZSwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIHZhbHVlLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICh2YWx1ZSwgLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIHZhbHVlLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBpbml0aWFsVmFsdWUsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXIoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4IC0gMSwgYXJyYXksIGRlbGV0ZWRFbGVtZW50cywgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgaW5kZXggLSAxLFxuICAgICAgICAgIFsgLi4uYXJyYXkuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnJheS5zbGljZShpbmRleCArIDEpIF0sXG4gICAgICAgICAgWyBkZWxldGVkRWxlbWVudCwgLi4uZGVsZXRlZEVsZW1lbnRzIF0sXG4gICAgICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICAgICBiYWNrXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSBsZW5ndGggLSAxLFxuICAgICAgICBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXksIGRlbGV0ZWRFbGVtZW50cywgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBlbGVtZW50cywgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIFsgLi4uZWxlbWVudHMsIGVsZW1lbnQgXSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgZWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICBlbGVtZW50cyA9IFtdO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBlbGVtZW50cywgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcnVuZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgYXJyYXksIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgYXJyYXksIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIChleGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKFxuICAgICAgICAgIFsgLi4uYXJyYXkuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnJheS5zbGljZShpbmRleCArIDEpIF0sXG4gICAgICAgICAgZGVsZXRlZEVsZW1lbnQsXG4gICAgICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICAgICBiYWNrXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBhcnJheSwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheSwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgY29uc3QgZGVsZXRlZEVsZW1lbnQgPSBlbGVtZW50OyAvLy9cblxuICAgICAgICByZXR1cm4gZm9yd2FyZChcbiAgICAgICAgICBbIC4uLmFycmF5LnNsaWNlKDAsIGluZGV4KSwgLi4uYXJyYXkuc2xpY2UoaW5kZXggKyAxKSBdLFxuICAgICAgICAgIGRlbGV0ZWRFbGVtZW50LFxuICAgICAgICAgIC4uLmZvcndhcmRBcmd1bWVudHNcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBhcnJheSwgLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBhcnJheSwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dChhcnJheUEsIGFycmF5QiwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGxlbmd0aCA9IGFycmF5QS5sZW5ndGg7XG5cbiAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheUIsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIHJldHVybiBmaW5kKFxuICAgICAgYXJyYXlBLFxuICAgICAgY2FsbGJhY2ssXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKGVsZW1lbnRzLCAuLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzTGVuZ3RoID0gZWxlbWVudHMubGVuZ3RoO1xuXG4gICAgICAgIGlmIChlbGVtZW50c0xlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3J3YXJkQXJndW1lbnRzLnBvcCgpOyAvLy9cblxuICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICBhcnJheUEuZmlsdGVyKChlbGVtZW50KSA9PiAhZWxlbWVudHMuaW5jbHVkZXMoZWxlbWVudCkpLFxuICAgICAgICAgIFsgLi4uYXJyYXlCLCAuLi5lbGVtZW50cyBdLFxuICAgICAgICAgIC4uLmZvcndhcmRBcmd1bWVudHNcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBiYWNrXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFycmF5QSA9IGFycmF5LCAvLy9cbiAgICAgICAgYXJyYXlCID0gW107XG5cbiAgcmV0dXJuIG5leHQoYXJyYXlBLCBhcnJheUIsIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aCxcbiAgICAgICAgYXJyYXlCTGVuZ3RoID0gYXJyYXlCLmxlbmd0aCxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXlBTGVuZ3RoOyAgLy8vXG5cbiAgaWYgKGFycmF5QUxlbmd0aCAhPT0gYXJyYXlCTGVuZ3RoKSB7XG4gICAgcmV0dXJuIGJhY2soKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50QSA9IGFycmF5QVtpbmRleF0sXG4gICAgICAgICAgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudEEsXG4gICAgICBlbGVtZW50QixcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggLSAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSBsZW5ndGggLSAxO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzRm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCAtIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsKGNhbGxiYWNrcywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICByZXR1cm4gZXZlcnkoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGlzdHMoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBzb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCAuLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gIH0sIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGN1dCxcbiAgaXNvbGF0ZSxcbiAgb25lLFxuICBzb21lLFxuICBlYWNoLFxuICBldmVyeSxcbiAgbWFwLFxuICByZWR1Y2UsXG4gIGZvckVhY2gsXG4gIGZpbHRlcixcbiAgZmluZCxcbiAgcHJ1bmUsXG4gIGV4dHJhY3QsXG4gIHJlc29sdmUsXG4gIG1hdGNoLFxuICBmb3J3YXJkc0V2ZXJ5LFxuICBiYWNrd2FyZHNFdmVyeSxcbiAgZm9yd2FyZHNGb3JFYWNoLFxuICBiYWNrd2FyZHNGb3JFYWNoLFxuICBhbGwsXG4gIGV4aXN0c1xufTtcbiJdLCJuYW1lcyI6WyJhbGwiLCJiYWNrd2FyZHNFdmVyeSIsImJhY2t3YXJkc0ZvckVhY2giLCJjdXQiLCJlYWNoIiwiZXZlcnkiLCJleGlzdHMiLCJleHRyYWN0IiwiZmlsdGVyIiwiZmluZCIsImZvckVhY2giLCJmb3J3YXJkc0V2ZXJ5IiwiZm9yd2FyZHNGb3JFYWNoIiwiaXNvbGF0ZSIsIm1hcCIsIm1hdGNoIiwib25lIiwicHJ1bmUiLCJyZWR1Y2UiLCJyZXNvbHZlIiwic29tZSIsImluaXRpYWxBcmd1bWVudHMiLCJiYWNrIiwicG9wIiwiZm9yd2FyZCIsImZvcndhcmRBcmd1bWVudHMiLCJjYWxsYmFjayIsImNhbGxiYWNrQXJndW1lbnRzIiwiYXJyYXkiLCJsZW5ndGgiLCJuZXh0IiwiaW5kZXgiLCJjb3VudCIsIm5leHRBcmd1bWVudHMiLCJlbGVtZW50IiwiZXhjZXB0aW9uIiwiYXJyYXlBIiwiYXJyYXlCIiwiZWxlbWVudEEiLCJlbGVtZW50QiIsImluaXRpYWxWYWx1ZSIsInZhbHVlIiwiZGVsZXRlZEVsZW1lbnRzIiwiZGVsZXRlZEVsZW1lbnQiLCJzbGljZSIsImVsZW1lbnRzIiwiZWxlbWVudHNMZW5ndGgiLCJpbmNsdWRlcyIsImFycmF5QUxlbmd0aCIsImFycmF5Qkxlbmd0aCIsImNhbGxiYWNrcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBZ25CZ0JBO2VBQUFBOztRQTFGQUM7ZUFBQUE7O1FBNERBQztlQUFBQTs7UUFobEJBQztlQUFBQTs7UUEwbkJoQjtlQUFBOztRQXZoQmdCQztlQUFBQTs7UUFtQ0FDO2VBQUFBOztRQThlQUM7ZUFBQUE7O1FBdFBBQztlQUFBQTs7UUE3SEFDO2VBQUFBOztRQTZDQUM7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUFtUkFDO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBdmlCQUM7ZUFBQUE7O1FBeUpBQztlQUFBQTs7UUE0U0FDO2VBQUFBOztRQTFiQUM7ZUFBQUE7O1FBNlRBQztlQUFBQTs7UUEvSUFDO2VBQUFBOztRQW9PQUM7ZUFBQUE7O1FBcldBQztlQUFBQTs7O0FBbkVULFNBQVNqQixJQUFJLEdBQUdrQixnQkFBZ0I7SUFDckMsTUFBTUMsT0FBT0QsaUJBQWlCRSxHQUFHLElBQzNCQyxVQUFVSCxpQkFBaUJFLEdBQUc7SUFFcEMsT0FBTyxDQUFDLEdBQUdFO1FBQ1RBLGlCQUFpQkYsR0FBRyxJQUFJLEdBQUc7UUFFM0IsT0FBT0MsV0FBV0Msa0JBQWtCSDtJQUN0QztBQUNGO0FBRU8sU0FBU1QsUUFBUWEsUUFBUSxFQUFFLEdBQUdMLGdCQUFnQjtJQUNuRCxNQUFNQyxPQUFPRCxpQkFBaUJFLEdBQUcsSUFDM0JDLFVBQVVILGlCQUFpQkUsR0FBRztJQUVwQyxPQUFPRyxZQUFZTCxrQkFBa0IsQ0FBQyxHQUFHTTtRQUN2QyxNQUFNTCxPQUFPSyxrQkFBa0JKLEdBQUc7UUFFbEMsT0FBT0MsV0FBV0gsa0JBQWtCQztJQUN0QyxHQUFHQTtBQUNMO0FBRU8sU0FBU04sSUFBSVksS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ3RELE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRUMsS0FBSyxFQUFFLEdBQUdDLGFBQWE7UUFDMUMsSUFBSUYsVUFBVUYsUUFBUTtZQUNwQixJQUFJRyxVQUFVLEdBQUc7Z0JBQ2YsT0FBT1Y7WUFDVDtZQUVBLE9BQU9FLFdBQVdTLGVBQWVYO1FBQ25DO1FBRUEsTUFBTVksVUFBVU4sS0FBSyxDQUFDRyxNQUFNO1FBRTVCLE9BQU9MLFNBQ0xRLFlBQ0diLGtCQUNILENBQUMsR0FBR0k7WUFDRixJQUFJTyxVQUFVLEdBQUc7Z0JBQ2YsT0FBT1Y7WUFDVDtZQUVBRyxpQkFBaUJGLEdBQUcsSUFBSSxHQUFHO1lBRTNCLE9BQU9PLEtBQUtDLFFBQVEsR0FBR0MsUUFBUSxNQUFNUDtRQUN2QyxHQUNBLENBQUNVO1lBQ0MsSUFBSUEsV0FBVztnQkFDYixPQUFPYixLQUFLYTtZQUNkO1lBRUEsT0FBT0wsS0FBS0MsUUFBUSxHQUFHQyxVQUFVQztRQUNuQyxHQUNBRjtJQUVKO0lBRUEsTUFBTUEsUUFBUSxHQUNSQyxRQUFRO0lBRWQsT0FBT0YsS0FBS0MsT0FBT0M7QUFDckI7QUFFTyxTQUFTWixLQUFLUSxLQUFLLEVBQUVGLFFBQVEsRUFBRSxHQUFHTCxnQkFBZ0I7SUFDdkQsTUFBTUMsT0FBT0QsaUJBQWlCRSxHQUFHLElBQzNCQyxVQUFVSCxpQkFBaUJFLEdBQUcsSUFDOUJNLFNBQVNELE1BQU1DLE1BQU07SUFFM0IsU0FBU0MsS0FBS0MsS0FBSztRQUNqQixJQUFJQSxVQUFVRixRQUFRO1lBQ3BCLE9BQU9QO1FBQ1Q7UUFFQSxNQUFNWSxVQUFVTixLQUFLLENBQUNHLE1BQU07UUFFNUIsT0FBT0wsU0FDTFEsWUFDR2Isa0JBQ0hHLFNBQ0EsQ0FBQ1c7WUFDQyxJQUFJQSxXQUFXO2dCQUNiLE9BQU9iLEtBQUthO1lBQ2Q7WUFFQSxPQUFPTCxLQUFLQyxRQUFRO1FBQ3RCLEdBQ0FBO0lBRUo7SUFFQSxNQUFNQSxRQUFRO0lBRWQsT0FBT0QsS0FBS0M7QUFDZDtBQUVPLFNBQVMzQixLQUFLd0IsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ3ZELE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRUMsS0FBSyxFQUFFLEdBQUdDLGFBQWE7UUFDMUMsTUFBTVgsT0FBT1csY0FBY1YsR0FBRztRQUU5QixJQUFJUSxVQUFVRixRQUFRO1lBQ3BCLElBQUlHLFVBQVUsR0FBRztnQkFDZixPQUFPVjtZQUNUO1lBRUEsT0FBT0UsV0FBV1MsZUFBZVg7UUFDbkM7UUFFQSxNQUFNWSxVQUFVTixLQUFLLENBQUNHLE1BQU07UUFFNUIsT0FBT0wsU0FDTFEsWUFDR0QsZUFDSCxDQUFDLEdBQUdSO1lBQ0YsT0FBT0ssS0FBS0MsUUFBUSxHQUFHQyxRQUFRLE1BQU1QO1FBQ3ZDLEdBQ0FILE1BQ0FTO0lBRUo7SUFFQSxNQUFNQSxRQUFRLEdBQ1JDLFFBQVE7SUFFZCxPQUFPRixLQUFLQyxPQUFPQyxVQUFVWCxrQkFBa0JDO0FBQ2pEO0FBRU8sU0FBU2pCLE1BQU11QixLQUFLLEVBQUVGLFFBQVEsRUFBRSxHQUFHTCxnQkFBZ0I7SUFDeEQsTUFBTUMsT0FBT0QsaUJBQWlCRSxHQUFHLElBQzNCQyxVQUFVSCxpQkFBaUJFLEdBQUcsSUFDOUJNLFNBQVNELE1BQU1DLE1BQU07SUFFM0IsU0FBU0MsS0FBS0MsS0FBSyxFQUFFLEdBQUdFLGFBQWE7UUFDbkMsTUFBTVgsT0FBT1csY0FBY1YsR0FBRztRQUU5QixJQUFJUSxVQUFVRixRQUFRO1lBQ3BCLE9BQU9MLFdBQVdTLGVBQWVYO1FBQ25DO1FBRUEsTUFBTVksVUFBVU4sS0FBSyxDQUFDRyxNQUFNO1FBRTVCLE9BQU9MLFNBQ0xRLFlBQ0dELGVBQ0gsQ0FBQyxHQUFHUjtZQUNGLE9BQU9LLEtBQUtDLFFBQVEsTUFBTU47UUFDNUIsR0FDQUgsTUFDQVM7SUFFSjtJQUVBLE1BQU1BLFFBQVE7SUFFZCxPQUFPRCxLQUFLQyxVQUFVVixrQkFBa0JDO0FBQzFDO0FBRU8sU0FBU1IsSUFBSWMsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ3RELE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCYSxTQUFTUixPQUNUQyxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRU0sTUFBTSxFQUFFLEdBQUdKLGFBQWE7UUFDM0MsTUFBTVgsT0FBT1csY0FBY1YsR0FBRztRQUU5QixJQUFJUSxVQUFVRixRQUFRO1lBQ3BCLE9BQU9MLFFBQVFhLFdBQVdKLGVBQWVYO1FBQzNDO1FBRUEsTUFBTWdCLFdBQVdGLE1BQU0sQ0FBQ0wsTUFBTTtRQUU5QixPQUFPTCxTQUNMWSxhQUNHTCxlQUNILENBQUNNLFVBQVUsR0FBR2Q7WUFDWixPQUFPSyxLQUFLQyxRQUFRLEdBQUc7bUJBQUtNO2dCQUFRRTthQUFVLEtBQUtkO1FBQ3JELEdBQ0FILE1BQ0FTO0lBRUo7SUFFQSxNQUFNQSxRQUFRLEdBQ1JNLFNBQVMsRUFBRTtJQUVqQixPQUFPUCxLQUFLQyxPQUFPTSxXQUFXaEIsa0JBQWtCQztBQUNsRDtBQUVPLFNBQVNKLE9BQU9VLEtBQUssRUFBRVksWUFBWSxFQUFFZCxRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ3ZFLE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRVUsS0FBSyxFQUFFLEdBQUdSLGFBQWE7UUFDMUMsTUFBTVgsT0FBT1csY0FBY1YsR0FBRztRQUU5QixJQUFJUSxVQUFVRixRQUFRO1lBQ3BCLE9BQU9MLFFBQVFpQixVQUFVUixlQUFlWDtRQUMxQztRQUVBLE1BQU1ZLFVBQVVOLEtBQUssQ0FBQ0csTUFBTTtRQUU1QixPQUFPTCxTQUNMUSxTQUNBTyxVQUNHUixlQUNILENBQUNRLE9BQU8sR0FBR2hCO1lBQ1QsT0FBT0ssS0FBS0MsUUFBUSxHQUFHVSxVQUFVaEI7UUFDbkMsR0FDQUgsTUFDQVM7SUFFSjtJQUVBLE1BQU1BLFFBQVE7SUFFZCxPQUFPRCxLQUFLQyxPQUFPUyxpQkFBaUJuQixrQkFBa0JDO0FBQ3hEO0FBRU8sU0FBU1osUUFBUWtCLEtBQUssRUFBRUYsUUFBUSxFQUFFLEdBQUdMLGdCQUFnQjtJQUMxRCxNQUFNQyxPQUFPRCxpQkFBaUJFLEdBQUcsSUFDM0JDLFVBQVVILGlCQUFpQkUsR0FBRyxJQUM5Qk0sU0FBU0QsTUFBTUMsTUFBTTtJQUUzQixTQUFTQyxLQUFLQyxLQUFLLEVBQUUsR0FBR0UsYUFBYTtRQUNuQyxNQUFNWCxPQUFPVyxjQUFjVixHQUFHO1FBRTlCLElBQUlRLFVBQVVGLFFBQVE7WUFDcEIsT0FBT0wsV0FBV1MsZUFBZVg7UUFDbkM7UUFFQSxNQUFNWSxVQUFVTixLQUFLLENBQUNHLE1BQU07UUFFNUIsT0FBT0wsU0FDTFEsWUFDR0QsZUFDSCxDQUFDLEdBQUdSO1lBQ0YsT0FBT0ssS0FBS0MsUUFBUSxNQUFNTjtRQUM1QixHQUNBSCxNQUNBUztJQUVKO0lBRUEsTUFBTUEsUUFBUTtJQUVkLE9BQU9ELEtBQUtDLFVBQVVWLGtCQUFrQkM7QUFDMUM7QUFFTyxTQUFTZCxPQUFPb0IsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ3pELE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRUgsS0FBSyxFQUFFYyxlQUFlLEVBQUUsR0FBR1QsYUFBYTtRQUMzRCxNQUFNWCxPQUFPVyxjQUFjVixHQUFHO1FBRTlCLElBQUlRLFVBQVUsQ0FBQyxHQUFHO1lBQ2hCLE9BQU9QLFFBQVFJLE9BQU9jLG9CQUFvQlQsZUFBZVg7UUFDM0Q7UUFFQSxNQUFNWSxVQUFVTixLQUFLLENBQUNHLE1BQU07UUFFNUIsT0FBT0wsU0FDTFEsWUFDR0QsZUFDSCxDQUFDLEdBQUdSO1lBQ0YsT0FBT0ssS0FBS0MsUUFBUSxHQUFHSCxPQUFPYyxvQkFBb0JqQjtRQUNwRCxHQUNBLENBQUNVO1lBQ0MsSUFBSUEsV0FBVztnQkFDYixPQUFPYixLQUFLYTtZQUNkO1lBRUEsTUFBTVEsaUJBQWlCVCxTQUFTLEdBQUc7WUFFbkMsT0FBT0osS0FDTEMsUUFBUSxHQUNSO21CQUFLSCxNQUFNZ0IsS0FBSyxDQUFDLEdBQUdiO21CQUFXSCxNQUFNZ0IsS0FBSyxDQUFDYixRQUFRO2FBQUksRUFDdkQ7Z0JBQUVZO21CQUFtQkQ7YUFBaUIsS0FDbkNULGVBQ0hYO1FBRUosR0FDQVM7SUFFSjtJQUVBLE1BQU1BLFFBQVFGLFNBQVMsR0FDakJhLGtCQUFrQixFQUFFO0lBRTFCLE9BQU9aLEtBQUtDLE9BQU9ILE9BQU9jLG9CQUFvQnJCLGtCQUFrQkM7QUFDbEU7QUFFTyxTQUFTYixLQUFLbUIsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ3ZELE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRWMsUUFBUSxFQUFFLEdBQUdaLGFBQWE7UUFDN0MsTUFBTVgsT0FBT1csY0FBY1YsR0FBRztRQUU5QixJQUFJUSxVQUFVRixRQUFRO1lBQ3BCLE9BQU9MLFFBQVFxQixhQUFhWixlQUFlWDtRQUM3QztRQUVBLE1BQU1ZLFVBQVVOLEtBQUssQ0FBQ0csTUFBTTtRQUU1QixPQUFPTCxTQUNMUSxZQUNHRCxlQUNILENBQUMsR0FBR1I7WUFDRixPQUFPSyxLQUFLQyxRQUFRLEdBQUc7bUJBQUtjO2dCQUFVWDthQUFTLEtBQUtUO1FBQ3RELEdBQ0EsQ0FBQ1U7WUFDQyxJQUFJQSxXQUFXO2dCQUNiLE9BQU9iLEtBQUthO1lBQ2Q7WUFFQSxPQUFPTCxLQUFLQyxRQUFRLEdBQUdjLGFBQWFaLGVBQWVYO1FBQ3JELEdBQ0FTO0lBRUo7SUFFQSxNQUFNQSxRQUFRLEdBQ1pjLFdBQVcsRUFBRTtJQUVmLE9BQU9mLEtBQUtDLE9BQU9jLGFBQWF4QixrQkFBa0JDO0FBQ3BEO0FBRU8sU0FBU0wsTUFBTVcsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ3hELE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRUgsS0FBSyxFQUFFLEdBQUdLLGFBQWE7UUFDMUMsTUFBTVgsT0FBT1csY0FBY1YsR0FBRztRQUU5QixJQUFJUSxVQUFVRixRQUFRO1lBQ3BCLE9BQU9QO1FBQ1Q7UUFFQSxNQUFNWSxVQUFVTixLQUFLLENBQUNHLE1BQU07UUFFNUIsT0FBT0wsU0FDTFEsWUFDR0QsZUFDSCxDQUFDLEdBQUdSO1lBQ0YsT0FBT0ssS0FBS0MsUUFBUSxHQUFHSCxVQUFVSDtRQUNuQyxHQUNBLENBQUNVO1lBQ0MsSUFBSUEsV0FBVztnQkFDYixPQUFPYixLQUFLYTtZQUNkO1lBRUEsTUFBTVEsaUJBQWlCVCxTQUFTLEdBQUc7WUFFbkMsT0FBT1YsUUFDTDttQkFBS0ksTUFBTWdCLEtBQUssQ0FBQyxHQUFHYjttQkFBV0gsTUFBTWdCLEtBQUssQ0FBQ2IsUUFBUTthQUFJLEVBQ3ZEWSxtQkFDR1YsZUFDSFg7UUFFSixHQUNBUztJQUVKO0lBRUEsTUFBTUEsUUFBUTtJQUVkLE9BQU9ELEtBQUtDLE9BQU9ILFVBQVVQLGtCQUFrQkM7QUFDakQ7QUFFTyxTQUFTZixRQUFRcUIsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQzFELE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRUgsS0FBSyxFQUFFLEdBQUdLLGFBQWE7UUFDMUMsTUFBTVgsT0FBT1csY0FBY1YsR0FBRztRQUU5QixJQUFJUSxVQUFVRixRQUFRO1lBQ3BCLE9BQU9QO1FBQ1Q7UUFFQSxNQUFNWSxVQUFVTixLQUFLLENBQUNHLE1BQU07UUFFNUIsT0FBT0wsU0FDTFEsWUFDR0QsZUFDSCxDQUFDLEdBQUdSO1lBQ0YsTUFBTWtCLGlCQUFpQlQsU0FBUyxHQUFHO1lBRW5DLE9BQU9WLFFBQ0w7bUJBQUtJLE1BQU1nQixLQUFLLENBQUMsR0FBR2I7bUJBQVdILE1BQU1nQixLQUFLLENBQUNiLFFBQVE7YUFBSSxFQUN2RFksbUJBQ0dsQjtRQUVQLEdBQ0EsQ0FBQ1U7WUFDQyxJQUFJQSxXQUFXO2dCQUNiLE9BQU9iLEtBQUthO1lBQ2Q7WUFFQSxPQUFPTCxLQUFLQyxRQUFRLEdBQUdILFVBQVVLLGVBQWVYO1FBQ2xELEdBQ0FTO0lBRUo7SUFFQSxNQUFNQSxRQUFRO0lBRWQsT0FBT0QsS0FBS0MsT0FBT0gsVUFBVVAsa0JBQWtCQztBQUNqRDtBQUVPLFNBQVNILFFBQVFTLEtBQUssRUFBRUYsUUFBUSxFQUFFLEdBQUdMLGdCQUFnQjtJQUMxRCxNQUFNQyxPQUFPRCxpQkFBaUJFLEdBQUcsSUFDM0JDLFVBQVVILGlCQUFpQkUsR0FBRztJQUVwQyxTQUFTTyxLQUFLTSxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHSixhQUFhO1FBQzVDLE1BQU1KLFNBQVNPLE9BQU9QLE1BQU07UUFFNUIsSUFBSUEsV0FBVyxHQUFHO1lBQ2hCLE9BQU9MLFFBQVFhLFdBQVdKLGVBQWVYO1FBQzNDO1FBRUEsT0FBT2IsS0FDTDJCLFFBQ0FWLGFBQ0dPLGVBQ0gsQ0FBQ1ksVUFBVSxHQUFHcEI7WUFDWixNQUFNcUIsaUJBQWlCRCxTQUFTaEIsTUFBTTtZQUV0QyxJQUFJaUIsbUJBQW1CLEdBQUc7Z0JBQ3hCLE9BQU94QjtZQUNUO1lBRUFHLGlCQUFpQkYsR0FBRyxJQUFJLEdBQUc7WUFFM0IsT0FBT08sS0FDTE0sT0FBTzVCLE1BQU0sQ0FBQyxDQUFDMEIsVUFBWSxDQUFDVyxTQUFTRSxRQUFRLENBQUNiLFdBQzlDO21CQUFLRzttQkFBV1E7YUFBVSxLQUN2QnBCO1FBRVAsR0FDQUg7SUFFSjtJQUVBLE1BQU1jLFNBQVNSLE9BQ1RTLFNBQVMsRUFBRTtJQUVqQixPQUFPUCxLQUFLTSxRQUFRQyxXQUFXaEI7QUFDakM7QUFFTyxTQUFTTixNQUFNcUIsTUFBTSxFQUFFQyxNQUFNLEVBQUVYLFFBQVEsRUFBRSxHQUFHTCxnQkFBZ0I7SUFDakUsTUFBTUMsT0FBT0QsaUJBQWlCRSxHQUFHLElBQzNCQyxVQUFVSCxpQkFBaUJFLEdBQUcsSUFDOUJ5QixlQUFlWixPQUFPUCxNQUFNLEVBQzVCb0IsZUFBZVosT0FBT1IsTUFBTSxFQUM1QkEsU0FBU21CLGNBQWUsR0FBRztJQUVqQyxJQUFJQSxpQkFBaUJDLGNBQWM7UUFDakMsT0FBTzNCO0lBQ1Q7SUFFQSxTQUFTUSxLQUFLQyxLQUFLLEVBQUUsR0FBR0UsYUFBYTtRQUNuQyxNQUFNWCxPQUFPVyxjQUFjVixHQUFHO1FBRTlCLElBQUlRLFVBQVVGLFFBQVE7WUFDcEIsT0FBT0wsV0FBV1MsZUFBZVg7UUFDbkM7UUFFQSxNQUFNZ0IsV0FBV0YsTUFBTSxDQUFDTCxNQUFNLEVBQ3hCUSxXQUFXRixNQUFNLENBQUNOLE1BQU07UUFFOUIsT0FBT0wsU0FDTFksVUFDQUMsYUFDR04sZUFDSCxDQUFDLEdBQUdSO1lBQ0YsT0FBT0ssS0FBS0MsUUFBUSxNQUFNTjtRQUM1QixHQUNBSCxNQUNBUztJQUVKO0lBRUEsTUFBTUEsUUFBUTtJQUVkLE9BQU9ELEtBQUtDLFVBQVVWLGtCQUFrQkM7QUFDMUM7QUFFTyxTQUFTWCxjQUFjaUIsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ2hFLE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRSxHQUFHRSxhQUFhO1FBQ25DLE1BQU1YLE9BQU9XLGNBQWNWLEdBQUc7UUFFOUIsSUFBSVEsVUFBVUYsUUFBUTtZQUNwQixPQUFPTCxXQUFXUyxlQUFlWDtRQUNuQztRQUVBLE1BQU1ZLFVBQVVOLEtBQUssQ0FBQ0csTUFBTTtRQUU1QixPQUFPTCxTQUNMUSxZQUNHRCxlQUNILENBQUMsR0FBR1I7WUFDRixPQUFPSyxLQUFLQyxRQUFRLE1BQU1OO1FBQzVCLEdBQ0FILE1BQ0FTO0lBRUo7SUFFQSxNQUFNQSxRQUFRO0lBRWQsT0FBT0QsS0FBS0MsVUFBVVYsa0JBQWtCQztBQUMxQztBQUVPLFNBQVNyQixlQUFlMkIsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ2pFLE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRSxHQUFHRSxhQUFhO1FBQ25DLE1BQU1YLE9BQU9XLGNBQWNWLEdBQUc7UUFFOUIsSUFBSVEsVUFBVSxDQUFDLEdBQUc7WUFDaEIsT0FBT1AsV0FBV1MsZUFBZVg7UUFDbkM7UUFFQSxNQUFNWSxVQUFVTixLQUFLLENBQUNHLE1BQU07UUFFNUIsT0FBT0wsU0FDTFEsWUFDR0QsZUFDSCxDQUFDLEdBQUdSO1lBQ0YsT0FBT0ssS0FBS0MsUUFBUSxNQUFNTjtRQUM1QixHQUNBSCxNQUNBUztJQUVKO0lBRUEsTUFBTUEsUUFBUUYsU0FBUztJQUV2QixPQUFPQyxLQUFLQyxVQUFVVixrQkFBa0JDO0FBQzFDO0FBRU8sU0FBU1YsZ0JBQWdCZ0IsS0FBSyxFQUFFRixRQUFRLEVBQUUsR0FBR0wsZ0JBQWdCO0lBQ2xFLE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHLElBQzlCTSxTQUFTRCxNQUFNQyxNQUFNO0lBRTNCLFNBQVNDLEtBQUtDLEtBQUssRUFBRSxHQUFHRSxhQUFhO1FBQ25DLE1BQU1YLE9BQU9XLGNBQWNWLEdBQUc7UUFFOUIsSUFBSVEsVUFBVUYsUUFBUTtZQUNwQixPQUFPTCxXQUFXUyxlQUFlWDtRQUNuQztRQUVBLE1BQU1ZLFVBQVVOLEtBQUssQ0FBQ0csTUFBTTtRQUU1QixPQUFPTCxTQUNMUSxZQUNHRCxlQUNILENBQUMsR0FBR1I7WUFDRixPQUFPSyxLQUFLQyxRQUFRLE1BQU1OO1FBQzVCLEdBQ0FILE1BQ0FTO0lBRUo7SUFFQSxNQUFNQSxRQUFRO0lBRWQsT0FBT0QsS0FBS0MsVUFBVVYsa0JBQWtCQztBQUMxQztBQUVPLFNBQVNwQixpQkFBaUIwQixLQUFLLEVBQUVGLFFBQVEsRUFBRSxHQUFHTCxnQkFBZ0I7SUFDbkUsTUFBTUMsT0FBT0QsaUJBQWlCRSxHQUFHLElBQzNCQyxVQUFVSCxpQkFBaUJFLEdBQUcsSUFDOUJNLFNBQVNELE1BQU1DLE1BQU07SUFFM0IsU0FBU0MsS0FBS0MsS0FBSyxFQUFFLEdBQUdFLGFBQWE7UUFDbkMsTUFBTVgsT0FBT1csY0FBY1YsR0FBRztRQUU5QixJQUFJUSxVQUFVLENBQUMsR0FBRztZQUNoQixPQUFPUCxXQUFXUyxlQUFlWDtRQUNuQztRQUVBLE1BQU1ZLFVBQVVOLEtBQUssQ0FBQ0csTUFBTTtRQUU1QixPQUFPTCxTQUNMUSxZQUNHRCxlQUNILENBQUMsR0FBR1I7WUFDRixPQUFPSyxLQUFLQyxRQUFRLE1BQU1OO1FBQzVCLEdBQ0FILE1BQ0FTO0lBRUo7SUFFQSxNQUFNQSxRQUFRRixTQUFTO0lBRXZCLE9BQU9DLEtBQUtDLFVBQVVWLGtCQUFrQkM7QUFDMUM7QUFFTyxTQUFTdEIsSUFBSWtELFNBQVMsRUFBRSxHQUFHN0IsZ0JBQWdCO0lBQ2hELE9BQU9oQixNQUFNNkMsV0FBVyxDQUFDeEIsVUFBVSxHQUFHQztRQUNwQyxPQUFPRCxZQUFZQztJQUNyQixNQUFNTjtBQUNSO0FBRU8sU0FBU2YsT0FBTzRDLFNBQVMsRUFBRSxHQUFHN0IsZ0JBQWdCO0lBQ25ELE9BQU9ELEtBQUs4QixXQUFXLENBQUN4QixVQUFVLEdBQUdDO1FBQ25DLE9BQU9ELFlBQVlDO0lBQ3JCLE1BQU1OO0FBQ1I7TUFFQSxXQUFlO0lBQ2JsQjtJQUNBVTtJQUNBRztJQUNBSTtJQUNBaEI7SUFDQUM7SUFDQVM7SUFDQUk7SUFDQVI7SUFDQUY7SUFDQUM7SUFDQVE7SUFDQVY7SUFDQVk7SUFDQUo7SUFDQUo7SUFDQVY7SUFDQVc7SUFDQVY7SUFDQUY7SUFDQU07QUFDRiJ9
449
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3V0KC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIHJldHVybiAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgcmV0dXJuIGZvcndhcmQoLi4uZm9yd2FyZEFyZ3VtZW50cywgYmFjayk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc29sYXRlKGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICByZXR1cm4gY2FsbGJhY2soLi4uaW5pdGlhbEFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgY29uc3QgYmFjayA9IGNhbGxiYWNrQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG4gIH0sIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBjb3VudCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBpZiAoY291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5pbml0aWFsQXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcndhcmRBcmd1bWVudHMucG9wKCk7IC8vL1xuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgY291bnQgKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCBjb3VudCwgLi4ubmV4dEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBjb3VudCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGNvdW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgpIHtcbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLmluaXRpYWxBcmd1bWVudHMsXG4gICAgICBmb3J3YXJkLFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGNvdW50LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgY291bnQgKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBjb3VudCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIGNvdW50LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUEgPSBhcnJheSwgLy8vXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBhcnJheUIsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChhcnJheUIsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnRBLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgIChlbGVtZW50QiwgLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIFsgLi4uYXJyYXlCLCBlbGVtZW50QiBdLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICBhcnJheUIgPSBbXTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXlCLCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZShhcnJheSwgaW5pdGlhbFZhbHVlLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCB2YWx1ZSwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIHZhbHVlLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICh2YWx1ZSwgLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIHZhbHVlLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCBpbml0aWFsVmFsdWUsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXIoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGFycmF5LCBkZWxldGVkRWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4IC0gMSwgYXJyYXksIGRlbGV0ZWRFbGVtZW50cywgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgaW5kZXggLSAxLFxuICAgICAgICAgIFsgLi4uYXJyYXkuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnJheS5zbGljZShpbmRleCArIDEpIF0sXG4gICAgICAgICAgWyBkZWxldGVkRWxlbWVudCwgLi4uZGVsZXRlZEVsZW1lbnRzIF0sXG4gICAgICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICAgICBiYWNrXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSBsZW5ndGggLSAxLFxuICAgICAgICBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXksIGRlbGV0ZWRFbGVtZW50cywgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCBlbGVtZW50cywgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGVsZW1lbnRzLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIFsgLi4uZWxlbWVudHMsIGVsZW1lbnQgXSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgZWxlbWVudHMsIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMCxcbiAgICAgICAgZWxlbWVudHMgPSBbXTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgZWxlbWVudHMsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIGFycmF5LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIGFycmF5LCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVsZXRlZEVsZW1lbnQgPSBlbGVtZW50OyAvLy9cblxuICAgICAgICByZXR1cm4gZm9yd2FyZChcbiAgICAgICAgICBbIC4uLmFycmF5LnNsaWNlKDAsIGluZGV4KSwgLi4uYXJyYXkuc2xpY2UoaW5kZXggKyAxKSBdLFxuICAgICAgICAgIGRlbGV0ZWRFbGVtZW50LFxuICAgICAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAgICAgYmFja1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXksIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgYXJyYXksIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQoXG4gICAgICAgICAgWyAuLi5hcnJheS5zbGljZSgwLCBpbmRleCksIC4uLmFycmF5LnNsaWNlKGluZGV4ICsgMSkgXSxcbiAgICAgICAgICBkZWxldGVkRWxlbWVudCxcbiAgICAgICAgICAuLi5mb3J3YXJkQXJndW1lbnRzXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4ICsgMSwgYXJyYXksIC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gMDtcblxuICByZXR1cm4gbmV4dChpbmRleCwgYXJyYXksIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGZ1bmN0aW9uIG5leHQoYXJyYXlBLCBhcnJheUIsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBsZW5ndGggPSBhcnJheUEubGVuZ3RoO1xuXG4gICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoYXJyYXlCLCAuLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmluZChcbiAgICAgIGFycmF5QSxcbiAgICAgIGNhbGxiYWNrLFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgIChlbGVtZW50cywgLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50c0xlbmd0aCA9IGVsZW1lbnRzLmxlbmd0aDtcblxuICAgICAgICBpZiAoZWxlbWVudHNMZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yd2FyZEFyZ3VtZW50cy5wb3AoKTsgLy8vXG5cbiAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgYXJyYXlBLmZpbHRlcigoZWxlbWVudCkgPT4gIWVsZW1lbnRzLmluY2x1ZGVzKGVsZW1lbnQpKSxcbiAgICAgICAgICBbIC4uLmFycmF5QiwgLi4uZWxlbWVudHMgXSxcbiAgICAgICAgICAuLi5mb3J3YXJkQXJndW1lbnRzXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgYmFja1xuICAgICk7XG4gIH1cblxuICBjb25zdCBhcnJheUEgPSBhcnJheSwgLy8vXG4gICAgICAgIGFycmF5QiA9IFtdO1xuXG4gIHJldHVybiBuZXh0KGFycmF5QSwgYXJyYXlCLCAuLi5pbml0aWFsQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBiYWNrID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgZm9yd2FyZCA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGFycmF5QUxlbmd0aCA9IGFycmF5QS5sZW5ndGgsXG4gICAgICAgIGFycmF5Qkxlbmd0aCA9IGFycmF5Qi5sZW5ndGgsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5QUxlbmd0aDsgIC8vL1xuXG4gIGlmIChhcnJheUFMZW5ndGggIT09IGFycmF5Qkxlbmd0aCkge1xuICAgIHJldHVybiBiYWNrKCk7XG4gIH1cblxuICBmdW5jdGlvbiBuZXh0KGluZGV4LCAuLi5uZXh0QXJndW1lbnRzKSB7XG4gICAgY29uc3QgYmFjayA9IG5leHRBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudEEgPSBhcnJheUFbaW5kZXhdLFxuICAgICAgICAgIGVsZW1lbnRCID0gYXJyYXlCW2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnRBLFxuICAgICAgZWxlbWVudEIsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggKyAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKC4uLm5leHRBcmd1bWVudHMsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4ubmV4dEFyZ3VtZW50cyxcbiAgICAgICguLi5mb3J3YXJkQXJndW1lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KGluZGV4IC0gMSwgLi4uZm9yd2FyZEFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgYmFjayxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gbGVuZ3RoIC0gMTtcblxuICByZXR1cm4gbmV4dChpbmRleCwgLi4uaW5pdGlhbEFyZ3VtZW50cywgYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGJhY2sgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBmb3J3YXJkID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoaW5kZXgsIC4uLm5leHRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBiYWNrID0gbmV4dEFyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZm9yd2FyZCguLi5uZXh0QXJndW1lbnRzLCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm5leHRBcmd1bWVudHMsXG4gICAgICAoLi4uZm9yd2FyZEFyZ3VtZW50cykgPT4ge1xuICAgICAgICByZXR1cm4gbmV4dChpbmRleCArIDEsIC4uLmZvcndhcmRBcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGJhY2ssXG4gICAgICBpbmRleFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IDA7XG5cbiAgcmV0dXJuIG5leHQoaW5kZXgsIC4uLmluaXRpYWxBcmd1bWVudHMsIGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgYmFjayA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGZvcndhcmQgPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChpbmRleCwgLi4ubmV4dEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGJhY2sgPSBuZXh0QXJndW1lbnRzLnBvcCgpO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoLi4ubmV4dEFyZ3VtZW50cywgYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhcbiAgICAgIGVsZW1lbnQsXG4gICAgICAuLi5uZXh0QXJndW1lbnRzLFxuICAgICAgKC4uLmZvcndhcmRBcmd1bWVudHMpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQoaW5kZXggLSAxLCAuLi5mb3J3YXJkQXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBiYWNrLFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5kZXggPSBsZW5ndGggLSAxO1xuXG4gIHJldHVybiBuZXh0KGluZGV4LCAuLi5pbml0aWFsQXJndW1lbnRzLCBiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFsbChjYWxsYmFja3MsIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgcmV0dXJuIGV2ZXJ5KGNhbGxiYWNrcywgKGNhbGxiYWNrLCAuLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gIH0sIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhpc3RzKGNhbGxiYWNrcywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICByZXR1cm4gc29tZShjYWxsYmFja3MsIChjYWxsYmFjaywgLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICB9LCAuLi5pbml0aWFsQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjdXQsXG4gIGlzb2xhdGUsXG4gIG9uZSxcbiAgc29tZSxcbiAgZWFjaCxcbiAgZXZlcnksXG4gIG1hcCxcbiAgcmVkdWNlLFxuICBmb3JFYWNoLFxuICBmaWx0ZXIsXG4gIGZpbmQsXG4gIHBydW5lLFxuICBleHRyYWN0LFxuICByZXNvbHZlLFxuICBtYXRjaCxcbiAgZm9yd2FyZHNFdmVyeSxcbiAgYmFja3dhcmRzRXZlcnksXG4gIGZvcndhcmRzRm9yRWFjaCxcbiAgYmFja3dhcmRzRm9yRWFjaCxcbiAgYWxsLFxuICBleGlzdHNcbn07XG4iXSwibmFtZXMiOlsiYWxsIiwiYmFja3dhcmRzRXZlcnkiLCJiYWNrd2FyZHNGb3JFYWNoIiwiY3V0IiwiZWFjaCIsImV2ZXJ5IiwiZXhpc3RzIiwiZXh0cmFjdCIsImZpbHRlciIsImZpbmQiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsImZvcndhcmRzRm9yRWFjaCIsImlzb2xhdGUiLCJtYXAiLCJtYXRjaCIsIm9uZSIsInBydW5lIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJpbml0aWFsQXJndW1lbnRzIiwiYmFjayIsInBvcCIsImZvcndhcmQiLCJmb3J3YXJkQXJndW1lbnRzIiwiY2FsbGJhY2siLCJjYWxsYmFja0FyZ3VtZW50cyIsImFycmF5IiwibGVuZ3RoIiwibmV4dCIsImluZGV4IiwiY291bnQiLCJuZXh0QXJndW1lbnRzIiwiZWxlbWVudCIsImV4Y2VwdGlvbiIsImFycmF5QSIsImFycmF5QiIsImVsZW1lbnRBIiwiZWxlbWVudEIiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSIsImRlbGV0ZWRFbGVtZW50cyIsImRlbGV0ZWRFbGVtZW50Iiwic2xpY2UiLCJlbGVtZW50cyIsImVsZW1lbnRzTGVuZ3RoIiwiaW5jbHVkZXMiLCJhcnJheUFMZW5ndGgiLCJhcnJheUJMZW5ndGgiLCJjYWxsYmFja3MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWduQmdCQTtlQUFBQTs7UUExRkFDO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBaGxCQUM7ZUFBQUE7O1FBMG5CaEI7ZUFBQTs7UUF2aEJnQkM7ZUFBQUE7O1FBbUNBQztlQUFBQTs7UUE4ZUFDO2VBQUFBOztRQXRQQUM7ZUFBQUE7O1FBN0hBQztlQUFBQTs7UUE2Q0FDO2VBQUFBOztRQTNFQUM7ZUFBQUE7O1FBbVJBQztlQUFBQTs7UUE0REFDO2VBQUFBOztRQXZpQkFDO2VBQUFBOztRQXlKQUM7ZUFBQUE7O1FBNFNBQztlQUFBQTs7UUExYkFDO2VBQUFBOztRQTZUQUM7ZUFBQUE7O1FBL0lBQztlQUFBQTs7UUFvT0FDO2VBQUFBOztRQXJXQUM7ZUFBQUE7OztBQW5FVCxTQUFTakIsSUFBSSxHQUFHa0IsZ0JBQWdCO0lBQ3JDLE1BQU1DLE9BQU9ELGlCQUFpQkUsR0FBRyxJQUMzQkMsVUFBVUgsaUJBQWlCRSxHQUFHO0lBRXBDLE9BQU8sQ0FBQyxHQUFHRTtRQUNUQSxpQkFBaUJGLEdBQUcsSUFBSSxHQUFHO1FBRTNCLE9BQU9DLFdBQVdDLGtCQUFrQkg7SUFDdEM7QUFDRjtBQUVPLFNBQVNULFFBQVFhLFFBQVEs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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.66",
4
+ "version": "3.0.67",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -5,8 +5,8 @@ import BreakPoint from "../breakPoint";
5
5
  export function breakable(innerFunction) {
6
6
  return function(...remainingArguments) {
7
7
  const back = remainingArguments.pop(),
8
- forward = remainingArguments.pop(),
9
- context = remainingArguments.pop();
8
+ forward = remainingArguments.pop(),
9
+ context = remainingArguments.pop();
10
10
 
11
11
  return this.break(context, (back) => {
12
12
  setImmediate(() => {
@@ -334,7 +334,7 @@ export function find(array, callback, ...initialArguments) {
334
334
  }
335
335
 
336
336
  const index = 0,
337
- elements = [];
337
+ elements = [];
338
338
 
339
339
  return next(index, elements, ...initialArguments, back);
340
340
  }