occam-languages 0.0.211 → 0.0.213

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.
@@ -88,6 +88,10 @@ class ReleaseContext {
88
88
  const released = this.json !== null;
89
89
  return released;
90
90
  }
91
+ isUnreleased() {
92
+ const released = this.isReleased(), unreleased = !released;
93
+ return unreleased;
94
+ }
91
95
  getTypePrefix() {
92
96
  let typePrefix = null;
93
97
  const includeDependencies = false, typePrefixes = this.getTypePrefixes(includeDependencies), typePrefixesLength = typePrefixes.length;
@@ -348,4 +352,4 @@ class ReleaseContext {
348
352
  }
349
353
  }
350
354
 
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlUeXBlUHJlZml4ZXMsIHZlcmlmeUZpbGVDb250ZXh0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5pbXBvcnQgeyBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBmaWxlQ29udGV4dHNGcm9tSlNPTiwgZmlsZUNvbnRleHRzRnJvbUVudHJpZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2ZpbGVDb250ZXh0XCI7XG5pbXBvcnQgeyBUUkFDRV9MRVZFTCwgREVCVUdfTEVWRUwsIElORk9fTEVWRUwsIFdBUk5JTkdfTEVWRUwsIEVSUk9SX0xFVkVMLCBCUkVBS19NRVNTQUdFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHB1c2gsIHRhaWwsIGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVsZWFzZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihsb2csIG5hbWUsIGpzb24sIGVudHJpZXMsIGNhbGxiYWNrLCBjdXN0b21HcmFtbWFyLCB2ZXJpZmllcywgaW5pdGlhbGlzZWQsIGZpbGVDb250ZXh0cywgY29tYmluZWRDdXN0b21HcmFtbWFyLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKSB7XG4gICAgdGhpcy5sb2cgPSBsb2c7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmpzb24gPSBqc29uO1xuICAgIHRoaXMuZW50cmllcyA9IGVudHJpZXM7XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIHRoaXMuY3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXI7XG4gICAgdGhpcy52ZXJpZmllcyA9IHZlcmlmaWVzO1xuICAgIHRoaXMuaW5pdGlhbGlzZWQgPSBpbml0aWFsaXNlZDtcbiAgICB0aGlzLmZpbGVDb250ZXh0cyA9IGZpbGVDb250ZXh0cztcbiAgICB0aGlzLmNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hcjtcbiAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0TG9nKCkge1xuICAgIHJldHVybiB0aGlzLmxvZztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEpTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuanNvbjtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIGdldENhbGxiYWNrKCkge1xuICAgIHJldHVybiB0aGlzLmNhbGxiYWNrO1xuICB9XG5cbiAgZ2V0Q3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21HcmFtbWFyO1xuICB9XG5cbiAgZ2V0VmVyaWZpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpZXM7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpc2VkO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0cztcbiAgfVxuXG4gIGdldENvbWJpbmVkQ3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb21iaW5lZEN1c3RvbUdyYW1tYXI7XG4gIH1cblxuICBnZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHM7XG4gIH1cblxuICBnZXRWZXJzaW9uKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzLmdldFZlcnNpb24oKTsgfVxuXG4gIG1hdGNoRGVwZW5kZW5jeU5hbWUoZGVwZW5kZW5jeU5hbWUpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSBkZXBlbmRlbmN5TmFtZSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jeU5hbWVNYXRjaGVzO1xuICB9XG5cbiAgZ2V0UmVsZWFzZUNvbnRleHQoKSB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBudWxsO1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cblxuICBnZXREZXB0aCgpIHtcbiAgICBjb25zdCBkZXB0aCA9IDA7XG5cbiAgICByZXR1cm4gZGVwdGg7XG4gIH1cblxuICBoYXNWZXJpZmllZCgpIHtcbiAgICBjb25zdCB2ZXJpZmllZCA9IHRoaXMudmVyaWZpZXM7IC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHtcbiAgICBjb25zdCByZWxlYXNlZCA9ICh0aGlzLmpzb24gIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VkO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeCgpIHtcbiAgICBsZXQgdHlwZVByZWZpeCA9IG51bGw7XG5cbiAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZWZpeGVzID0gdGhpcy5nZXRUeXBlUHJlZml4ZXMoaW5jbHVkZURlcGVuZGVuY2llcyksXG4gICAgICAgICAgdHlwZVByZWZpeGVzTGVuZ3RoID0gdHlwZVByZWZpeGVzLmxlbmd0aDtcblxuICAgIGlmICh0eXBlUHJlZml4ZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0VHlwZVByZWZpeCA9IGZpcnN0KHR5cGVQcmVmaXhlcyk7XG5cbiAgICAgIHR5cGVQcmVmaXggPSBmaXJzdFR5cGVQcmVmaXg7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUHJlZml4O1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbGFiZWxzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGFiZWxzID0gZmlsZUNvbnRleHQuZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsYWJlbHMsIGZpbGVDb250ZXh0TGFiZWxzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dExhYmVscyA9IHJlbGVhc2VDb250ZXh0LmdldExhYmVscyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGxhYmVscywgcmVsZWFzZUNvbnRleHRMYWJlbHMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUeXBlcyA9IGZpbGVDb250ZXh0LmdldFR5cGVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaCh0eXBlcywgZmlsZUNvbnRleHRUeXBlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRUeXBlcyA9IHJlbGVhc2VDb250ZXh0LmdldFR5cGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godHlwZXMsIHJlbGVhc2VDb250ZXh0VHlwZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVzO1xuICB9XG5cbiAgZ2V0UnVsZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFJ1bGVzID0gZmlsZUNvbnRleHQuZ2V0UnVsZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHJ1bGVzLCBmaWxlQ29udGV4dFJ1bGVzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dFJ1bGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UnVsZXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChydWxlcywgcmVsZWFzZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBheGlvbXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRBeGlvbXMgPSBmaWxlQ29udGV4dC5nZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGF4aW9tcywgZmlsZUNvbnRleHRBeGlvbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0QXhpb21zID0gcmVsZWFzZUNvbnRleHQuZ2V0QXhpb21zKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goYXhpb21zLCByZWxlYXNlQ29udGV4dEF4aW9tcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGVtbWFzID0gZmlsZUNvbnRleHQuZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsZW1tYXMsIGZpbGVDb250ZXh0TGVtbWFzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBsZW1tYXM7XG4gIH1cblxuICBnZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0VGhlb3JlbXMgPSBmaWxlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2godGhlb3JlbXMsIGZpbGVDb250ZXh0VGhlb3JlbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VGhlb3JlbXMgPSByZWxlYXNlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHRoZW9yZW1zLCByZWxlYXNlQ29udGV4dFRoZW9yZW1zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGVvcmVtcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0UHJvY2VkdXJlcyA9IGZpbGVDb250ZXh0LmdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHByb2NlZHVyZXMsIGZpbGVDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRQcm9jZWR1cmVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UHJvY2VkdXJlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHByb2NlZHVyZXMsIHJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlcztcbiAgfVxuXG4gIGdldE1ldGFMZW1tYXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhTGVtbWFzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TWV0YUxlbW1hcyA9IGZpbGVDb250ZXh0LmdldE1ldGFMZW1tYXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKG1ldGFMZW1tYXMsIGZpbGVDb250ZXh0TWV0YUxlbW1hcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWV0YUxlbW1hcztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uamVjdHVyZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb25qZWN0dXJlcyA9IGZpbGVDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25qZWN0dXJlcywgZmlsZUNvbnRleHRDb25qZWN0dXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRDb25qZWN0dXJlcyA9IHJlbGVhc2VDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29uamVjdHVyZXMsIHJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmplY3R1cmVzO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dENvbWJpbmF0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCBmaWxlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChjb21iaW5hdG9ycywgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRUeXBlUHJlZml4ZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCB0eXBlUHJlZml4ZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMgPSBmaWxlQ29udGV4dC5nZXRUeXBlUHJlZml4ZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHR5cGVQcmVmaXhlcywgZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VHlwZVByZWZpeGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godHlwZVByZWZpeGVzLCByZWxlYXNlQ29udGV4dFR5cGVQcmVmaXhlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeGVzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyA9IHJlbGVhc2VDb250ZXh0LmdldENvbnN0cnVjdG9ycyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGNvbnN0cnVjdG9ycywgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGdldE1ldGF0aGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGF0aGVvcmVtcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dE1ldGF0aGVvcmVtcyA9IGZpbGVDb250ZXh0LmdldE1ldGF0aGVvcmVtcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2gobWV0YXRoZW9yZW1zLCBmaWxlQ29udGV4dE1ldGF0aGVvcmVtcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRNZXRhdGhlb3JlbXMgPSByZWxlYXNlQ29udGV4dC5nZXRNZXRhdGhlb3JlbXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChtZXRhdGhlb3JlbXMsIHJlbGVhc2VDb250ZXh0TWV0YXRoZW9yZW1zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdGhlb3JlbXM7XG4gIH1cblxuICBnZXREZXBlbmRlbmNpZXMoKSB7IHJldHVybiB0aGlzLmVudHJpZXMuZ2V0RGVwZW5kZW5jaWVzKCk7IH1cblxuICBtYXRjaFNob3J0ZW5lZFZlcnNpb24oc2hvcnRlbmVkVmVyc2lvbikgeyByZXR1cm4gdGhpcy5lbnRyaWVzLm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTsgfVxuXG4gIHRyYWNlKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBsZXZlbCA9IFRSQUNFX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIGRlYnVnKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBsZXZlbCA9IERFQlVHX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIGluZm8obWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gSU5GT19MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICB3YXJuaW5nKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBsZXZlbCA9IFdBUk5JTkdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgZXJyb3IobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gRVJST1JfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgd3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGggPSBudWxsLCBsaW5lSW5kZXggPSBudWxsKSB7XG4gICAgdGhpcy5sb2cud3JpdGUobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpO1xuICB9XG5cbiAgaW5pdGlhbGlzZShyZWxlYXNlQ29udGV4dHMsIEZpbGVDb250ZXh0RnJvbUZpbGVQYXRoKSB7XG4gICAgY29uc3QgcmVsZWFzZWQgPSB0aGlzLmlzUmVsZWFzZWQoKSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHRoaXMsICAvLy9cbiAgICAgICAgICByZWxlYXNlQ29udGV4dHNUYWlsID0gdGFpbChyZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gcmVsZWFzZUNvbnRleHRzVGFpbDsgLy8vXG5cbiAgICB0aGlzLmNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHRzKTtcblxuICAgIHJlbGVhc2VkID9cbiAgICAgIGZpbGVDb250ZXh0c0Zyb21KU09OKHRoaXMuanNvbiwgdGhpcy5maWxlQ29udGV4dHMsIHJlbGVhc2VDb250ZXh0LCBGaWxlQ29udGV4dEZyb21GaWxlUGF0aCkgOlxuICAgICAgICBmaWxlQ29udGV4dHNGcm9tRW50cmllcyh0aGlzLmVudHJpZXMsIHRoaXMuZmlsZUNvbnRleHRzLCByZWxlYXNlQ29udGV4dCwgRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgpO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGZpbGVDb250ZXh0LmluaXRpYWxpc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaW5pdGlhbGlzZWQgPSB0cnVlO1xuICB9XG5cbiAgYXN5bmMgYnJlYWsoYnJlYWtQb2ludCkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUwsXG4gICAgICAgICAgbWVzc2FnZSA9IEJSRUFLX01FU1NBR0UsXG4gICAgICAgICAgZmlsZVBhdGggPSBicmVha1BvaW50LmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgbGluZUluZGV4ID0gYnJlYWtQb2ludC5nZXRMaW5lSW5kZXgoKTtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICBhd2FpdCB0aGlzLmNhbGxiYWNrKGNvbnRleHQsIGJyZWFrUG9pbnQpO1xuXG4gICAgcmV0dXJuIGJyZWFrUG9pbnQ7XG4gIH1cblxuICBhc3luYyB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlUHJlZml4ZXMgPSB0aGlzLmdldFR5cGVQcmVmaXhlcygpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgdHlwZVByZWZpeGVzVmVyaWZ5ID0gdmVyaWZ5VHlwZVByZWZpeGVzKHR5cGVQcmVmaXhlcywgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgaWYgKHR5cGVQcmVmaXhlc1ZlcmlmeSkge1xuICAgICAgY29uc3QgdmVyaWZpZWRGaWxlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0c1ZlcmlmeSA9IGF3YWl0IHZlcmlmeUZpbGVDb250ZXh0cyh0aGlzLmZpbGVDb250ZXh0cywgdmVyaWZpZWRGaWxlQ29udGV4dHMpO1xuXG4gICAgICBpZiAoZmlsZUNvbnRleHRzVmVyaWZ5KSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnZlcmlmaWVzID0gdmVyaWZpZXM7XG5cbiAgICAgICAgdGhpcy5maWxlQ29udGV4dHMgPSB2ZXJpZmllZEZpbGVDb250ZXh0czsgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGZpbGVDb250ZXh0c0pTT04gPSB0aGlzLmZpbGVDb250ZXh0cy5tYXAoKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlQ29udGV4dEpTT04gPSBmaWxlQ29udGV4dC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbGVDb250ZXh0SlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBqc29uID0gZmlsZUNvbnRleHRzSlNPTjsgIC8vL1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ05hbWVKU09ORW50cmllc0NhbGxiYWNrQW5kQ3VzdG9tR3JhbW1hcihDbGFzcywgbG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBjYWxsYmFjaywgY3VzdG9tR3JhbW1hcikge1xuICAgIGlmIChjdXN0b21HcmFtbWFyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGN1c3RvbUdyYW1tYXIgPSBjYWxsYmFjazsgLy8vXG5cbiAgICAgIGNhbGxiYWNrID0gZW50cmllczsgLy8vXG5cbiAgICAgIGVudHJpZXMgPSBqc29uOyAvLy9cblxuICAgICAganNvbiA9IG5hbWU7ICAvLy9cblxuICAgICAgbmFtZSA9IGxvZzsgLy8vXG5cbiAgICAgIGxvZyA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gUmVsZWFzZUNvbnRleHQ7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHZlcmlmaWVzID0gZmFsc2UsXG4gICAgICAgICAgaW5pdGlhbGlzZWQgPSBmYWxzZSxcbiAgICAgICAgICBmaWxlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBudWxsLFxuICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBudWxsLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gbmV3IENsYXNzKGxvZywgbmFtZSwganNvbiwgZW50cmllcywgY2FsbGJhY2ssIGN1c3RvbUdyYW1tYXIsIHZlcmlmaWVzLCBpbml0aWFsaXNlZCwgZmlsZUNvbnRleHRzLCBjb21iaW5lZEN1c3RvbUdyYW1tYXIsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZUNvbnRleHQiLCJwdXNoIiwidGFpbCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJsb2ciLCJuYW1lIiwianNvbiIsImVudHJpZXMiLCJjYWxsYmFjayIsImN1c3RvbUdyYW1tYXIiLCJ2ZXJpZmllcyIsImluaXRpYWxpc2VkIiwiZmlsZUNvbnRleHRzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImdldExvZyIsImdldE5hbWUiLCJnZXRKU09OIiwiZ2V0RW50cmllcyIsImdldENhbGxiYWNrIiwiZ2V0Q3VzdG9tR3JhbW1hciIsImdldFZlcmlmaWVzIiwiaXNJbml0aWFsaXNlZCIsImdldEZpbGVDb250ZXh0cyIsImdldENvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJnZXRWZXJzaW9uIiwibWF0Y2hEZXBlbmRlbmN5TmFtZSIsImRlcGVuZGVuY3lOYW1lIiwiZGVwZW5kZW5jeU5hbWVNYXRjaGVzIiwiZ2V0UmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dCIsImdldENvbnRleHQiLCJjb250ZXh0IiwiZ2V0RGVwdGgiLCJkZXB0aCIsImhhc1ZlcmlmaWVkIiwidmVyaWZpZWQiLCJpc1JlbGVhc2VkIiwicmVsZWFzZWQiLCJnZXRUeXBlUHJlZml4IiwidHlwZVByZWZpeCIsImluY2x1ZGVEZXBlbmRlbmNpZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFR5cGVQcmVmaXgiLCJnZXRMYWJlbHMiLCJsYWJlbHMiLCJmb3JFYWNoIiwiZmlsZUNvbnRleHQiLCJpbmNsdWRlUmVsZWFzZSIsImZpbGVDb250ZXh0TGFiZWxzIiwicmVsZWFzZUNvbnRleHRMYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZmlsZUNvbnRleHRUeXBlcyIsInJlbGVhc2VDb250ZXh0VHlwZXMiLCJnZXRSdWxlcyIsInJ1bGVzIiwiZmlsZUNvbnRleHRSdWxlcyIsInJlbGVhc2VDb250ZXh0UnVsZXMiLCJnZXRBeGlvbXMiLCJheGlvbXMiLCJmaWxlQ29udGV4dEF4aW9tcyIsInJlbGVhc2VDb250ZXh0QXhpb21zIiwiZ2V0TGVtbWFzIiwibGVtbWFzIiwiZmlsZUNvbnRleHRMZW1tYXMiLCJnZXRUaGVvcmVtcyIsInRoZW9yZW1zIiwiZmlsZUNvbnRleHRUaGVvcmVtcyIsInJlbGVhc2VDb250ZXh0VGhlb3JlbXMiLCJnZXRQcm9jZWR1cmVzIiwicHJvY2VkdXJlcyIsImZpbGVDb250ZXh0UHJvY2VkdXJlcyIsInJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyIsImdldE1ldGFMZW1tYXMiLCJtZXRhTGVtbWFzIiwiZmlsZUNvbnRleHRNZXRhTGVtbWFzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImZpbGVDb250ZXh0Q29uamVjdHVyZXMiLCJyZWxlYXNlQ29udGV4dENvbmplY3R1cmVzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImZpbGVDb250ZXh0Q29tYmluYXRvcnMiLCJyZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzIiwiZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVQcmVmaXhlcyIsImdldENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImZpbGVDb250ZXh0Q29uc3RydWN0b3JzIiwicmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJmaWxlQ29udGV4dE1ldGF0aGVvcmVtcyIsInJlbGVhc2VDb250ZXh0TWV0YXRoZW9yZW1zIiwiZ2V0RGVwZW5kZW5jaWVzIiwibWF0Y2hTaG9ydGVuZWRWZXJzaW9uIiwic2hvcnRlbmVkVmVyc2lvbiIsInRyYWNlIiwibWVzc2FnZSIsImxldmVsIiwiVFJBQ0VfTEVWRUwiLCJ3cml0ZVRvTG9nIiwiZGVidWciLCJERUJVR19MRVZFTCIsImluZm8iLCJJTkZPX0xFVkVMIiwid2FybmluZyIsIldBUk5JTkdfTEVWRUwiLCJlcnJvciIsIkVSUk9SX0xFVkVMIiwiZmlsZVBhdGgiLCJsaW5lSW5kZXgiLCJ3cml0ZSIsImluaXRpYWxpc2UiLCJyZWxlYXNlQ29udGV4dHMiLCJGaWxlQ29udGV4dEZyb21GaWxlUGF0aCIsInJlbGVhc2VDb250ZXh0c1RhaWwiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIiwiZmlsZUNvbnRleHRzRnJvbUpTT04iLCJmaWxlQ29udGV4dHNGcm9tRW50cmllcyIsImJyZWFrIiwiYnJlYWtQb2ludCIsIkJSRUFLX01FU1NBR0UiLCJnZXRGaWxlUGF0aCIsImdldExpbmVJbmRleCIsInZlcmlmeSIsInR5cGVQcmVmaXhlc1ZlcmlmeSIsInZlcmlmeVR5cGVQcmVmaXhlcyIsInZlcmlmaWVkRmlsZUNvbnRleHRzIiwiZmlsZUNvbnRleHRzVmVyaWZ5IiwidmVyaWZ5RmlsZUNvbnRleHRzIiwidG9KU09OIiwiZmlsZUNvbnRleHRzSlNPTiIsIm1hcCIsImZpbGVDb250ZXh0SlNPTiIsImZyb21Mb2dOYW1lSlNPTkVudHJpZXNDYWxsYmFja0FuZEN1c3RvbUdyYW1tYXIiLCJDbGFzcyIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFxQkE7OzsyQkFUVTt3QkFFd0I7K0JBQ0U7NkJBQ0s7MkJBQ2tDO0FBRWhHLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYztBQUU3QixNQUFNSjtJQUNuQixZQUFZSyxHQUFHLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsWUFBWSxFQUFFQyxxQkFBcUIsRUFBRUMseUJBQXlCLENBQUU7UUFDcEosSUFBSSxDQUFDVixHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTtRQUNyQixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLHFCQUFxQixHQUFHQTtRQUM3QixJQUFJLENBQUNDLHlCQUF5QixHQUFHQTtJQUNuQztJQUVBQyxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUNYLEdBQUc7SUFDakI7SUFFQVksVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDWCxJQUFJO0lBQ2xCO0lBRUFZLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ1gsSUFBSTtJQUNsQjtJQUVBWSxh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
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlUeXBlUHJlZml4ZXMsIHZlcmlmeUZpbGVDb250ZXh0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5pbXBvcnQgeyBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBmaWxlQ29udGV4dHNGcm9tSlNPTiwgZmlsZUNvbnRleHRzRnJvbUVudHJpZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2ZpbGVDb250ZXh0XCI7XG5pbXBvcnQgeyBUUkFDRV9MRVZFTCwgREVCVUdfTEVWRUwsIElORk9fTEVWRUwsIFdBUk5JTkdfTEVWRUwsIEVSUk9SX0xFVkVMLCBCUkVBS19NRVNTQUdFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHB1c2gsIHRhaWwsIGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVsZWFzZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihsb2csIG5hbWUsIGpzb24sIGVudHJpZXMsIGNhbGxiYWNrLCBjdXN0b21HcmFtbWFyLCB2ZXJpZmllcywgaW5pdGlhbGlzZWQsIGZpbGVDb250ZXh0cywgY29tYmluZWRDdXN0b21HcmFtbWFyLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKSB7XG4gICAgdGhpcy5sb2cgPSBsb2c7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmpzb24gPSBqc29uO1xuICAgIHRoaXMuZW50cmllcyA9IGVudHJpZXM7XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIHRoaXMuY3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXI7XG4gICAgdGhpcy52ZXJpZmllcyA9IHZlcmlmaWVzO1xuICAgIHRoaXMuaW5pdGlhbGlzZWQgPSBpbml0aWFsaXNlZDtcbiAgICB0aGlzLmZpbGVDb250ZXh0cyA9IGZpbGVDb250ZXh0cztcbiAgICB0aGlzLmNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hcjtcbiAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0TG9nKCkge1xuICAgIHJldHVybiB0aGlzLmxvZztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEpTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuanNvbjtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIGdldENhbGxiYWNrKCkge1xuICAgIHJldHVybiB0aGlzLmNhbGxiYWNrO1xuICB9XG5cbiAgZ2V0Q3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21HcmFtbWFyO1xuICB9XG5cbiAgZ2V0VmVyaWZpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpZXM7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpc2VkO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0cztcbiAgfVxuXG4gIGdldENvbWJpbmVkQ3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb21iaW5lZEN1c3RvbUdyYW1tYXI7XG4gIH1cblxuICBnZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHM7XG4gIH1cblxuICBnZXRWZXJzaW9uKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzLmdldFZlcnNpb24oKTsgfVxuXG4gIG1hdGNoRGVwZW5kZW5jeU5hbWUoZGVwZW5kZW5jeU5hbWUpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSBkZXBlbmRlbmN5TmFtZSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jeU5hbWVNYXRjaGVzO1xuICB9XG5cbiAgZ2V0UmVsZWFzZUNvbnRleHQoKSB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBudWxsO1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cblxuICBnZXREZXB0aCgpIHtcbiAgICBjb25zdCBkZXB0aCA9IDA7XG5cbiAgICByZXR1cm4gZGVwdGg7XG4gIH1cblxuICBoYXNWZXJpZmllZCgpIHtcbiAgICBjb25zdCB2ZXJpZmllZCA9IHRoaXMudmVyaWZpZXM7IC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHtcbiAgICBjb25zdCByZWxlYXNlZCA9ICh0aGlzLmpzb24gIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VkO1xuICB9XG5cbiAgaXNVbnJlbGVhc2VkKCkge1xuICAgIGNvbnN0IHJlbGVhc2VkID0gdGhpcy5pc1JlbGVhc2VkKCksXG4gICAgICAgICAgdW5yZWxlYXNlZCA9ICFyZWxlYXNlZDtcblxuICAgIHJldHVybiB1bnJlbGVhc2VkO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeCgpIHtcbiAgICBsZXQgdHlwZVByZWZpeCA9IG51bGw7XG5cbiAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZWZpeGVzID0gdGhpcy5nZXRUeXBlUHJlZml4ZXMoaW5jbHVkZURlcGVuZGVuY2llcyksXG4gICAgICAgICAgdHlwZVByZWZpeGVzTGVuZ3RoID0gdHlwZVByZWZpeGVzLmxlbmd0aDtcblxuICAgIGlmICh0eXBlUHJlZml4ZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0VHlwZVByZWZpeCA9IGZpcnN0KHR5cGVQcmVmaXhlcyk7XG5cbiAgICAgIHR5cGVQcmVmaXggPSBmaXJzdFR5cGVQcmVmaXg7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUHJlZml4O1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbGFiZWxzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGFiZWxzID0gZmlsZUNvbnRleHQuZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsYWJlbHMsIGZpbGVDb250ZXh0TGFiZWxzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dExhYmVscyA9IHJlbGVhc2VDb250ZXh0LmdldExhYmVscyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGxhYmVscywgcmVsZWFzZUNvbnRleHRMYWJlbHMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUeXBlcyA9IGZpbGVDb250ZXh0LmdldFR5cGVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaCh0eXBlcywgZmlsZUNvbnRleHRUeXBlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRUeXBlcyA9IHJlbGVhc2VDb250ZXh0LmdldFR5cGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godHlwZXMsIHJlbGVhc2VDb250ZXh0VHlwZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVzO1xuICB9XG5cbiAgZ2V0UnVsZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFJ1bGVzID0gZmlsZUNvbnRleHQuZ2V0UnVsZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHJ1bGVzLCBmaWxlQ29udGV4dFJ1bGVzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dFJ1bGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UnVsZXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChydWxlcywgcmVsZWFzZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBheGlvbXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRBeGlvbXMgPSBmaWxlQ29udGV4dC5nZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGF4aW9tcywgZmlsZUNvbnRleHRBeGlvbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0QXhpb21zID0gcmVsZWFzZUNvbnRleHQuZ2V0QXhpb21zKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goYXhpb21zLCByZWxlYXNlQ29udGV4dEF4aW9tcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGVtbWFzID0gZmlsZUNvbnRleHQuZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsZW1tYXMsIGZpbGVDb250ZXh0TGVtbWFzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBsZW1tYXM7XG4gIH1cblxuICBnZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0VGhlb3JlbXMgPSBmaWxlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2godGhlb3JlbXMsIGZpbGVDb250ZXh0VGhlb3JlbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VGhlb3JlbXMgPSByZWxlYXNlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHRoZW9yZW1zLCByZWxlYXNlQ29udGV4dFRoZW9yZW1zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGVvcmVtcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0UHJvY2VkdXJlcyA9IGZpbGVDb250ZXh0LmdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHByb2NlZHVyZXMsIGZpbGVDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRQcm9jZWR1cmVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UHJvY2VkdXJlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHByb2NlZHVyZXMsIHJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlcztcbiAgfVxuXG4gIGdldE1ldGFMZW1tYXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhTGVtbWFzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TWV0YUxlbW1hcyA9IGZpbGVDb250ZXh0LmdldE1ldGFMZW1tYXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKG1ldGFMZW1tYXMsIGZpbGVDb250ZXh0TWV0YUxlbW1hcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWV0YUxlbW1hcztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uamVjdHVyZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb25qZWN0dXJlcyA9IGZpbGVDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25qZWN0dXJlcywgZmlsZUNvbnRleHRDb25qZWN0dXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRDb25qZWN0dXJlcyA9IHJlbGVhc2VDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29uamVjdHVyZXMsIHJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmplY3R1cmVzO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dENvbWJpbmF0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCBmaWxlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChjb21iaW5hdG9ycywgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRUeXBlUHJlZml4ZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCB0eXBlUHJlZml4ZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMgPSBmaWxlQ29udGV4dC5nZXRUeXBlUHJlZml4ZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHR5cGVQcmVmaXhlcywgZmlsZUNvbnRleHRUeXBlUHJlZml4ZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VHlwZVByZWZpeGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godHlwZVByZWZpeGVzLCByZWxlYXNlQ29udGV4dFR5cGVQcmVmaXhlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeGVzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyA9IHJlbGVhc2VDb250ZXh0LmdldENvbnN0cnVjdG9ycyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGNvbnN0cnVjdG9ycywgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGdldE1ldGF0aGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGF0aGVvcmVtcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dE1ldGF0aGVvcmVtcyA9IGZpbGVDb250ZXh0LmdldE1ldGF0aGVvcmVtcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2gobWV0YXRoZW9yZW1zLCBmaWxlQ29udGV4dE1ldGF0aGVvcmVtcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRNZXRhdGhlb3JlbXMgPSByZWxlYXNlQ29udGV4dC5nZXRNZXRhdGhlb3JlbXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChtZXRhdGhlb3JlbXMsIHJlbGVhc2VDb250ZXh0TWV0YXRoZW9yZW1zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdGhlb3JlbXM7XG4gIH1cblxuICBnZXREZXBlbmRlbmNpZXMoKSB7IHJldHVybiB0aGlzLmVudHJpZXMuZ2V0RGVwZW5kZW5jaWVzKCk7IH1cblxuICBtYXRjaFNob3J0ZW5lZFZlcnNpb24oc2hvcnRlbmVkVmVyc2lvbikgeyByZXR1cm4gdGhpcy5lbnRyaWVzLm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTsgfVxuXG4gIHRyYWNlKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBsZXZlbCA9IFRSQUNFX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIGRlYnVnKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBsZXZlbCA9IERFQlVHX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIGluZm8obWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gSU5GT19MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICB3YXJuaW5nKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBsZXZlbCA9IFdBUk5JTkdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgZXJyb3IobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gRVJST1JfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgd3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGggPSBudWxsLCBsaW5lSW5kZXggPSBudWxsKSB7XG4gICAgdGhpcy5sb2cud3JpdGUobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpO1xuICB9XG5cbiAgaW5pdGlhbGlzZShyZWxlYXNlQ29udGV4dHMsIEZpbGVDb250ZXh0RnJvbUZpbGVQYXRoKSB7XG4gICAgY29uc3QgcmVsZWFzZWQgPSB0aGlzLmlzUmVsZWFzZWQoKSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHRoaXMsICAvLy9cbiAgICAgICAgICByZWxlYXNlQ29udGV4dHNUYWlsID0gdGFpbChyZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gcmVsZWFzZUNvbnRleHRzVGFpbDsgLy8vXG5cbiAgICB0aGlzLmNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHRzKTtcblxuICAgIHJlbGVhc2VkID9cbiAgICAgIGZpbGVDb250ZXh0c0Zyb21KU09OKHRoaXMuanNvbiwgdGhpcy5maWxlQ29udGV4dHMsIHJlbGVhc2VDb250ZXh0LCBGaWxlQ29udGV4dEZyb21GaWxlUGF0aCkgOlxuICAgICAgICBmaWxlQ29udGV4dHNGcm9tRW50cmllcyh0aGlzLmVudHJpZXMsIHRoaXMuZmlsZUNvbnRleHRzLCByZWxlYXNlQ29udGV4dCwgRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgpO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGZpbGVDb250ZXh0LmluaXRpYWxpc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaW5pdGlhbGlzZWQgPSB0cnVlO1xuICB9XG5cbiAgYXN5bmMgYnJlYWsoYnJlYWtQb2ludCkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUwsXG4gICAgICAgICAgbWVzc2FnZSA9IEJSRUFLX01FU1NBR0UsXG4gICAgICAgICAgZmlsZVBhdGggPSBicmVha1BvaW50LmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgbGluZUluZGV4ID0gYnJlYWtQb2ludC5nZXRMaW5lSW5kZXgoKTtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICBhd2FpdCB0aGlzLmNhbGxiYWNrKGNvbnRleHQsIGJyZWFrUG9pbnQpO1xuXG4gICAgcmV0dXJuIGJyZWFrUG9pbnQ7XG4gIH1cblxuICBhc3luYyB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlUHJlZml4ZXMgPSB0aGlzLmdldFR5cGVQcmVmaXhlcygpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgdHlwZVByZWZpeGVzVmVyaWZ5ID0gdmVyaWZ5VHlwZVByZWZpeGVzKHR5cGVQcmVmaXhlcywgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgaWYgKHR5cGVQcmVmaXhlc1ZlcmlmeSkge1xuICAgICAgY29uc3QgdmVyaWZpZWRGaWxlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0c1ZlcmlmeSA9IGF3YWl0IHZlcmlmeUZpbGVDb250ZXh0cyh0aGlzLmZpbGVDb250ZXh0cywgdmVyaWZpZWRGaWxlQ29udGV4dHMpO1xuXG4gICAgICBpZiAoZmlsZUNvbnRleHRzVmVyaWZ5KSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnZlcmlmaWVzID0gdmVyaWZpZXM7XG5cbiAgICAgICAgdGhpcy5maWxlQ29udGV4dHMgPSB2ZXJpZmllZEZpbGVDb250ZXh0czsgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGZpbGVDb250ZXh0c0pTT04gPSB0aGlzLmZpbGVDb250ZXh0cy5tYXAoKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlQ29udGV4dEpTT04gPSBmaWxlQ29udGV4dC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbGVDb250ZXh0SlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBqc29uID0gZmlsZUNvbnRleHRzSlNPTjsgIC8vL1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ05hbWVKU09ORW50cmllc0NhbGxiYWNrQW5kQ3VzdG9tR3JhbW1hcihDbGFzcywgbG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBjYWxsYmFjaywgY3VzdG9tR3JhbW1hcikge1xuICAgIGlmIChjdXN0b21HcmFtbWFyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGN1c3RvbUdyYW1tYXIgPSBjYWxsYmFjazsgLy8vXG5cbiAgICAgIGNhbGxiYWNrID0gZW50cmllczsgLy8vXG5cbiAgICAgIGVudHJpZXMgPSBqc29uOyAvLy9cblxuICAgICAganNvbiA9IG5hbWU7ICAvLy9cblxuICAgICAgbmFtZSA9IGxvZzsgLy8vXG5cbiAgICAgIGxvZyA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gUmVsZWFzZUNvbnRleHQ7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHZlcmlmaWVzID0gZmFsc2UsXG4gICAgICAgICAgaW5pdGlhbGlzZWQgPSBmYWxzZSxcbiAgICAgICAgICBmaWxlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBudWxsLFxuICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBudWxsLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gbmV3IENsYXNzKGxvZywgbmFtZSwganNvbiwgZW50cmllcywgY2FsbGJhY2ssIGN1c3RvbUdyYW1tYXIsIHZlcmlmaWVzLCBpbml0aWFsaXNlZCwgZmlsZUNvbnRleHRzLCBjb21iaW5lZEN1c3RvbUdyYW1tYXIsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZUNvbnRleHQiLCJwdXNoIiwidGFpbCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJsb2ciLCJuYW1lIiwianNvbiIsImVudHJpZXMiLCJjYWxsYmFjayIsImN1c3RvbUdyYW1tYXIiLCJ2ZXJpZmllcyIsImluaXRpYWxpc2VkIiwiZmlsZUNvbnRleHRzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImdldExvZyIsImdldE5hbWUiLCJnZXRKU09OIiwiZ2V0RW50cmllcyIsImdldENhbGxiYWNrIiwiZ2V0Q3VzdG9tR3JhbW1hciIsImdldFZlcmlmaWVzIiwiaXNJbml0aWFsaXNlZCIsImdldEZpbGVDb250ZXh0cyIsImdldENvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJnZXRWZXJzaW9uIiwibWF0Y2hEZXBlbmRlbmN5TmFtZSIsImRlcGVuZGVuY3lOYW1lIiwiZGVwZW5kZW5jeU5hbWVNYXRjaGVzIiwiZ2V0UmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dCIsImdldENvbnRleHQiLCJjb250ZXh0IiwiZ2V0RGVwdGgiLCJkZXB0aCIsImhhc1ZlcmlmaWVkIiwidmVyaWZpZWQiLCJpc1JlbGVhc2VkIiwicmVsZWFzZWQiLCJpc1VucmVsZWFzZWQiLCJ1bnJlbGVhc2VkIiwiZ2V0VHlwZVByZWZpeCIsInR5cGVQcmVmaXgiLCJpbmNsdWRlRGVwZW5kZW5jaWVzIiwidHlwZVByZWZpeGVzIiwiZ2V0VHlwZVByZWZpeGVzIiwidHlwZVByZWZpeGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RUeXBlUHJlZml4IiwiZ2V0TGFiZWxzIiwibGFiZWxzIiwiZm9yRWFjaCIsImZpbGVDb250ZXh0IiwiaW5jbHVkZVJlbGVhc2UiLCJmaWxlQ29udGV4dExhYmVscyIsInJlbGVhc2VDb250ZXh0TGFiZWxzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImZpbGVDb250ZXh0VHlwZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImZpbGVDb250ZXh0UnVsZXMiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0QXhpb21zIiwiYXhpb21zIiwiZmlsZUNvbnRleHRBeGlvbXMiLCJyZWxlYXNlQ29udGV4dEF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImZpbGVDb250ZXh0TGVtbWFzIiwiZ2V0VGhlb3JlbXMiLCJ0aGVvcmVtcyIsImZpbGVDb250ZXh0VGhlb3JlbXMiLCJyZWxlYXNlQ29udGV4dFRoZW9yZW1zIiwiZ2V0UHJvY2VkdXJlcyIsInByb2NlZHVyZXMiLCJmaWxlQ29udGV4dFByb2NlZHVyZXMiLCJyZWxlYXNlQ29udGV4dFByb2NlZHVyZXMiLCJnZXRNZXRhTGVtbWFzIiwibWV0YUxlbW1hcyIsImZpbGVDb250ZXh0TWV0YUxlbW1hcyIsImdldENvbmplY3R1cmVzIiwiY29uamVjdHVyZXMiLCJmaWxlQ29udGV4dENvbmplY3R1cmVzIiwicmVsZWFzZUNvbnRleHRDb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJmaWxlQ29udGV4dENvbWJpbmF0b3JzIiwicmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyIsImZpbGVDb250ZXh0VHlwZVByZWZpeGVzIiwicmVsZWFzZUNvbnRleHRUeXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJmaWxlQ29udGV4dENvbnN0cnVjdG9ycyIsInJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzIiwiZ2V0TWV0YXRoZW9yZW1zIiwibWV0YXRoZW9yZW1zIiwiZmlsZUNvbnRleHRNZXRhdGhlb3JlbXMiLCJyZWxlYXNlQ29udGV4dE1ldGF0aGVvcmVtcyIsImdldERlcGVuZGVuY2llcyIsIm1hdGNoU2hvcnRlbmVkVmVyc2lvbiIsInNob3J0ZW5lZFZlcnNpb24iLCJ0cmFjZSIsIm1lc3NhZ2UiLCJsZXZlbCIsIlRSQUNFX0xFVkVMIiwid3JpdGVUb0xvZyIsImRlYnVnIiwiREVCVUdfTEVWRUwiLCJpbmZvIiwiSU5GT19MRVZFTCIsIndhcm5pbmciLCJXQVJOSU5HX0xFVkVMIiwiZXJyb3IiLCJFUlJPUl9MRVZFTCIsImZpbGVQYXRoIiwibGluZUluZGV4Iiwid3JpdGUiLCJpbml0aWFsaXNlIiwicmVsZWFzZUNvbnRleHRzIiwiRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgiLCJyZWxlYXNlQ29udGV4dHNUYWlsIiwiY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyIsImZpbGVDb250ZXh0c0Zyb21KU09OIiwiZmlsZUNvbnRleHRzRnJvbUVudHJpZXMiLCJicmVhayIsImJyZWFrUG9pbnQiLCJCUkVBS19NRVNTQUdFIiwiZ2V0RmlsZVBhdGgiLCJnZXRMaW5lSW5kZXgiLCJ2ZXJpZnkiLCJ0eXBlUHJlZml4ZXNWZXJpZnkiLCJ2ZXJpZnlUeXBlUHJlZml4ZXMiLCJ2ZXJpZmllZEZpbGVDb250ZXh0cyIsImZpbGVDb250ZXh0c1ZlcmlmeSIsInZlcmlmeUZpbGVDb250ZXh0cyIsInRvSlNPTiIsImZpbGVDb250ZXh0c0pTT04iLCJtYXAiLCJmaWxlQ29udGV4dEpTT04iLCJmcm9tTG9nTmFtZUpTT05FbnRyaWVzQ2FsbGJhY2tBbmRDdXN0b21HcmFtbWFyIiwiQ2xhc3MiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBcUJBOzs7MkJBVFU7d0JBRXdCOytCQUNFOzZCQUNLOzJCQUNrQztBQUVoRyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MseUJBQWM7QUFFN0IsTUFBTUo7SUFDbkIsWUFBWUssR0FBRyxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLFlBQVksRUFBRUMscUJBQXFCLEVBQUVDLHlCQUF5QixDQUFFO1FBQ3BKLElBQUksQ0FBQ1YsR0FBRyxHQUFHQTtRQUNYLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7UUFDckIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxxQkFBcUIsR0FBR0E7UUFDN0IsSUFBSSxDQUFD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
package/lib/context.js CHANGED
@@ -24,6 +24,9 @@ class Context {
24
24
  isReleased() {
25
25
  return this.context.isReleased();
26
26
  }
27
+ isUnreleased() {
28
+ return this.context.isUnreleased();
29
+ }
27
30
  getReleaseContext() {
28
31
  return this.context.getReleaseContext();
29
32
  }
@@ -69,4 +72,4 @@ class Context {
69
72
  }
70
73
  }
71
74
 
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UsIFRSQUNFX0xFVkVMLCBERUJVR19MRVZFTCwgSU5GT19MRVZFTCwgRVJST1JfTEVWRUwsIFdBUk5JTkdfTEVWRUwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICB9XG5cbiAgZ2V0Q29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG5cbiAgZ2V0RGVwdGgoKSB7XG4gICAgbGV0IGRlcHRoID0gdGhpcy5jb250ZXh0LmdldERlcHRoKCk7XG5cbiAgICBkZXB0aCsrO1xuXG4gICAgcmV0dXJuIGRlcHRoO1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5pc1JlbGVhc2VkKCk7IH1cblxuICBnZXRSZWxlYXNlQ29udGV4dCgpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRSZWxlYXNlQ29udGV4dCgpOyB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQubm9kZXNBc1N0cmluZyhub2RlKTsgfVxuXG4gIG5vZGVBc1N0cmluZyhub2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpOyB9XG5cbiAgdHJhY2UobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgZGVidWcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gREVCVUdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBJTkZPX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIHdhcm5pbmcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gV0FSTklOR19MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBFUlJPUl9MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICB3cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKSB7XG4gICAgY29uc3QgZGVwdGggPSB0aGlzLmdldERlcHRoKCksXG4gICAgICAgICAgaW5kZW50ID0gRE9VQkxFX1NQQUNFLnJlcGVhdChkZXB0aCk7XG5cbiAgICBtZXNzYWdlID0gYCR7aW5kZW50fSR7bWVzc2FnZX1gOyAgLy8vXG5cbiAgICBjb25zdCByZWxlYXNlQ29udGV4dCA9IHRoaXMuZ2V0UmVsZWFzZUNvbnRleHQoKTtcblxuICAgIHJlbGVhc2VDb250ZXh0LndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgYXN5bmMgYnJlYWsobm9kZSwgbGluZUluZGV4KSB7IHJldHVybiBhd2FpdCB0aGlzLmNvbnRleHQuYnJlYWsobm9kZSwgbGluZUluZGV4KTsgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhDbGFzcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBjb250ZXh0ID0gbmV3IENsYXNzKGNvbnRleHQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7ICAvLy9cblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiQ29udGV4dCIsImNvbnRleHQiLCJnZXRDb250ZXh0IiwiZ2V0RGVwdGgiLCJkZXB0aCIsImlzUmVsZWFzZWQiLCJnZXRSZWxlYXNlQ29udGV4dCIsIm5vZGVzQXNTdHJpbmciLCJub2RlIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJtZXNzYWdlIiwibGV2ZWwiLCJUUkFDRV9MRVZFTCIsIndyaXRlVG9Mb2ciLCJkZWJ1ZyIsIkRFQlVHX0xFVkVMIiwiaW5mbyIsIklORk9fTEVWRUwiLCJ3YXJuaW5nIiwiV0FSTklOR19MRVZFTCIsImVycm9yIiwiRVJST1JfTEVWRUwiLCJpbmRlbnQiLCJET1VCTEVfU1BBQ0UiLCJyZXBlYXQiLCJyZWxlYXNlQ29udGV4dCIsImJyZWFrIiwibGluZUluZGV4IiwiZnJvbU5vdGhpbmciLCJDbGFzcyIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInBvcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OzsyQkFGMEU7QUFFaEYsTUFBTUE7SUFDbkIsWUFBWUMsT0FBTyxDQUFFO1FBQ25CLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtJQUNqQjtJQUVBQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNELE9BQU87SUFDckI7SUFFQUUsV0FBVztRQUNULElBQUlDLFFBQVEsSUFBSSxDQUFDSCxPQUFPLENBQUNFLFFBQVE7UUFFakNDO1FBRUEsT0FBT0E7SUFDVDtJQUVBQyxhQUFhO1FBQUUsT0FBTyxJQUFJLENBQUNKLE9BQU8sQ0FBQ0ksVUFBVTtJQUFJO0lBRWpEQyxvQkFBb0I7UUFBRSxPQUFPLElBQUksQ0FBQ0wsT0FBTyxDQUFDSyxpQkFBaUI7SUFBSTtJQUUvREMsY0FBY0MsSUFBSSxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNQLE9BQU8sQ0FBQ00sYUFBYSxDQUFDQztJQUFPO0lBRS9EQyxhQUFhRCxJQUFJLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQ1AsT0FBTyxDQUFDUSxZQUFZLENBQUNEO0lBQU87SUFFN0RFLE1BQU1DLE9BQU8sRUFBRTtRQUNiLE1BQU1DLFFBQVFDLHNCQUFXO1FBRXpCLElBQUksQ0FBQ0MsVUFBVSxDQUFDRixPQUFPRDtJQUN6QjtJQUVBSSxNQUFNSixPQUFPLEVBQUU7UUFDYixNQUFNQyxRQUFRSSxzQkFBVztRQUV6QixJQUFJLENBQUNGLFVBQVUsQ0FBQ0YsT0FBT0Q7SUFDekI7SUFFQU0sS0FBS04sT0FBTyxFQUFFO1FBQ1osTUFBTUMsUUFBUU0scUJBQVU7UUFFeEIsSUFBSSxDQUFDSixVQUFVLENBQUNGLE9BQU9EO0lBQ3pCO0lBRUFRLFFBQVFSLE9BQU8sRUFBRTtRQUNmLE1BQU1DLFFBQVFRLHdCQUFhO1FBRTNCLElBQUksQ0FBQ04sVUFBVSxDQUFDRixPQUFPRDtJQUN6QjtJQUVBVSxNQUFNVixPQUFPLEVBQUU7UUFDYixNQUFNQyxRQUFRVSxzQkFBVztRQUV6QixJQUFJLENBQUNSLFVBQVUsQ0FBQ0YsT0FBT0Q7SUFDekI7SUFFQUcsV0FBV0YsS0FBSyxFQUFFRCxPQUFPLEVBQUU7UUFDekIsTUFBTVAsUUFBUSxJQUFJLENBQUNELFFBQVEsSUFDckJvQixTQUFTQyx1QkFBWSxDQUFDQyxNQUFNLENBQUNyQjtRQUVuQ08sVUFBVSxHQUFHWSxTQUFTWixTQUFTLEVBQUcsR0FBRztRQUVyQyxNQUFNZSxpQkFBaUIsSUFBSSxDQUFDcEIsaUJBQWlCO1FBRTdDb0IsZUFBZVosVUFBVSxDQUFDRixPQUFPRDtJQUNuQztJQUVBLE1BQU1nQixNQUFNbkIsSUFBSSxFQUFFb0IsU0FBUyxFQUFFO1FBQUUsT0FBTyxNQUFNLElBQUksQ0FBQzNCLE9BQU8sQ0FBQzBCLEtBQUssQ0FBQ25CLE1BQU1vQjtJQUFZO0lBRWpGLE9BQU9DLFlBQVlDLEtBQUssRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMvQyxJQUFJOUIsVUFBVThCLG1CQUFtQkMsR0FBRztRQUVwQy9CLFVBQVUsSUFBSTZCLE1BQU03QixZQUFZOEIscUJBQXNCLEdBQUc7UUFFekQsT0FBTzlCO0lBQ1Q7QUFDRiJ9
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UsIFRSQUNFX0xFVkVMLCBERUJVR19MRVZFTCwgSU5GT19MRVZFTCwgRVJST1JfTEVWRUwsIFdBUk5JTkdfTEVWRUwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICB9XG5cbiAgZ2V0Q29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG5cbiAgZ2V0RGVwdGgoKSB7XG4gICAgbGV0IGRlcHRoID0gdGhpcy5jb250ZXh0LmdldERlcHRoKCk7XG5cbiAgICBkZXB0aCsrO1xuXG4gICAgcmV0dXJuIGRlcHRoO1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5pc1JlbGVhc2VkKCk7IH1cblxuICBpc1VucmVsZWFzZWQoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuaXNVbnJlbGVhc2VkKCk7IH1cblxuICBnZXRSZWxlYXNlQ29udGV4dCgpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRSZWxlYXNlQ29udGV4dCgpOyB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQubm9kZXNBc1N0cmluZyhub2RlKTsgfVxuXG4gIG5vZGVBc1N0cmluZyhub2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpOyB9XG5cbiAgdHJhY2UobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgZGVidWcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gREVCVUdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBJTkZPX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIHdhcm5pbmcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gV0FSTklOR19MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBFUlJPUl9MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICB3cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKSB7XG4gICAgY29uc3QgZGVwdGggPSB0aGlzLmdldERlcHRoKCksXG4gICAgICAgICAgaW5kZW50ID0gRE9VQkxFX1NQQUNFLnJlcGVhdChkZXB0aCk7XG5cbiAgICBtZXNzYWdlID0gYCR7aW5kZW50fSR7bWVzc2FnZX1gOyAgLy8vXG5cbiAgICBjb25zdCByZWxlYXNlQ29udGV4dCA9IHRoaXMuZ2V0UmVsZWFzZUNvbnRleHQoKTtcblxuICAgIHJlbGVhc2VDb250ZXh0LndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgYXN5bmMgYnJlYWsobm9kZSwgbGluZUluZGV4KSB7IHJldHVybiBhd2FpdCB0aGlzLmNvbnRleHQuYnJlYWsobm9kZSwgbGluZUluZGV4KTsgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhDbGFzcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBjb250ZXh0ID0gbmV3IENsYXNzKGNvbnRleHQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7ICAvLy9cblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiQ29udGV4dCIsImNvbnRleHQiLCJnZXRDb250ZXh0IiwiZ2V0RGVwdGgiLCJkZXB0aCIsImlzUmVsZWFzZWQiLCJpc1VucmVsZWFzZWQiLCJnZXRSZWxlYXNlQ29udGV4dCIsIm5vZGVzQXNTdHJpbmciLCJub2RlIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJtZXNzYWdlIiwibGV2ZWwiLCJUUkFDRV9MRVZFTCIsIndyaXRlVG9Mb2ciLCJkZWJ1ZyIsIkRFQlVHX0xFVkVMIiwiaW5mbyIsIklORk9fTEVWRUwiLCJ3YXJuaW5nIiwiV0FSTklOR19MRVZFTCIsImVycm9yIiwiRVJST1JfTEVWRUwiLCJpbmRlbnQiLCJET1VCTEVfU1BBQ0UiLCJyZXBlYXQiLCJyZWxlYXNlQ29udGV4dCIsImJyZWFrIiwibGluZUluZGV4IiwiZnJvbU5vdGhpbmciLCJDbGFzcyIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInBvcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OzsyQkFGMEU7QUFFaEYsTUFBTUE7SUFDbkIsWUFBWUMsT0FBTyxDQUFFO1FBQ25CLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtJQUNqQjtJQUVBQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNELE9BQU87SUFDckI7SUFFQUUsV0FBVztRQUNULElBQUlDLFFBQVEsSUFBSSxDQUFDSCxPQUFPLENBQUNFLFFBQVE7UUFFakNDO1FBRUEsT0FBT0E7SUFDVDtJQUVBQyxhQUFhO1FBQUUsT0FBTyxJQUFJLENBQUNKLE9BQU8sQ0FBQ0ksVUFBVTtJQUFJO0lBRWpEQyxlQUFlO1FBQUUsT0FBTyxJQUFJLENBQUNMLE9BQU8sQ0FBQ0ssWUFBWTtJQUFJO0lBRXJEQyxvQkFBb0I7UUFBRSxPQUFPLElBQUksQ0FBQ04sT0FBTyxDQUFDTSxpQkFBaUI7SUFBSTtJQUUvREMsY0FBY0MsSUFBSSxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNSLE9BQU8sQ0FBQ08sYUFBYSxDQUFDQztJQUFPO0lBRS9EQyxhQUFhRCxJQUFJLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQ1IsT0FBTyxDQUFDUyxZQUFZLENBQUNEO0lBQU87SUFFN0RFLE1BQU1DLE9BQU8sRUFBRTtRQUNiLE1BQU1DLFFBQVFDLHNCQUFXO1FBRXpCLElBQUksQ0FBQ0MsVUFBVSxDQUFDRixPQUFPRDtJQUN6QjtJQUVBSSxNQUFNSixPQUFPLEVBQUU7UUFDYixNQUFNQyxRQUFRSSxzQkFBVztRQUV6QixJQUFJLENBQUNGLFVBQVUsQ0FBQ0YsT0FBT0Q7SUFDekI7SUFFQU0sS0FBS04sT0FBTyxFQUFFO1FBQ1osTUFBTUMsUUFBUU0scUJBQVU7UUFFeEIsSUFBSSxDQUFDSixVQUFVLENBQUNGLE9BQU9EO0lBQ3pCO0lBRUFRLFFBQVFSLE9BQU8sRUFBRTtRQUNmLE1BQU1DLFFBQVFRLHdCQUFhO1FBRTNCLElBQUksQ0FBQ04sVUFBVSxDQUFDRixPQUFPRDtJQUN6QjtJQUVBVSxNQUFNVixPQUFPLEVBQUU7UUFDYixNQUFNQyxRQUFRVSxzQkFBVztRQUV6QixJQUFJLENBQUNSLFVBQVUsQ0FBQ0YsT0FBT0Q7SUFDekI7SUFFQUcsV0FBV0YsS0FBSyxFQUFFRCxPQUFPLEVBQUU7UUFDekIsTUFBTVIsUUFBUSxJQUFJLENBQUNELFFBQVEsSUFDckJxQixTQUFTQyx1QkFBWSxDQUFDQyxNQUFNLENBQUN0QjtRQUVuQ1EsVUFBVSxHQUFHWSxTQUFTWixTQUFTLEVBQUcsR0FBRztRQUVyQyxNQUFNZSxpQkFBaUIsSUFBSSxDQUFDcEIsaUJBQWlCO1FBRTdDb0IsZUFBZVosVUFBVSxDQUFDRixPQUFPRDtJQUNuQztJQUVBLE1BQU1nQixNQUFNbkIsSUFBSSxFQUFFb0IsU0FBUyxFQUFFO1FBQUUsT0FBTyxNQUFNLElBQUksQ0FBQzVCLE9BQU8sQ0FBQzJCLEtBQUssQ0FBQ25CLE1BQU1vQjtJQUFZO0lBRWpGLE9BQU9DLFlBQVlDLEtBQUssRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMvQyxJQUFJL0IsVUFBVStCLG1CQUFtQkMsR0FBRztRQUVwQ2hDLFVBQVUsSUFBSThCLE1BQU05QixZQUFZK0IscUJBQXNCLEdBQUc7UUFFekQsT0FBTy9CO0lBQ1Q7QUFDRiJ9
@@ -193,8 +193,8 @@ function checkReleaseMatchesDependency(releaseContext, dependency, dependentName
193
193
  function checkProjectDependencyOfPackage(releaseContext, dependentReleased, dependentNames, context) {
194
194
  let projectDependencyOfPackage = false;
195
195
  if (dependentReleased) {
196
- const released = releaseContext.isReleased();
197
- if (!released) {
196
+ const unreleased = releaseContext.isUnreleased();
197
+ if (unreleased) {
198
198
  const { log } = context, name = releaseContext.getName(), lastDependentName = last(dependentNames), dependencyName = name, dependentName = lastDependentName; ///
199
199
  log.warning(`The '${dependencyName}' dependency is a project whilst its '${dependentName}' dependent is a package.`);
200
200
  projectDependencyOfPackage = true;
@@ -203,4 +203,4 @@ function checkProjectDependencyOfPackage(releaseContext, dependentReleased, depe
203
203
  return projectDependencyOfPackage;
204
204
  }
205
205
 
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVyaWZpY2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNFdmVyeSAgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FzeW5jaHJvbm91c1wiO1xuaW1wb3J0IHsgU0lOR0xFX1NQQUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IGxhc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VDb250ZXh0c0NyZWF0ZWQgPSBmYWxzZTtcblxuICBjb25zdCBkZXBlbmRlbnROYW1lcyA9IFtdLFxuICAgICAgICBkZXBlbmRlbnRSZWxlYXNlZCA9IGZhbHNlLFxuICAgICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSBhd2FpdCBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgZGVwZW5kZW50UmVsZWFzZWQsIGNvbnRleHQpO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICByZWxlYXNlQ29udGV4dHNDcmVhdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHNDcmVhdGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0cyhjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRzIH0gPSBjb250ZXh0O1xuXG4gIHJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5UmVsZWFzZUNvbnRleHRzKGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VDb250ZXh0c1ZlcmlmeTtcblxuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0cyB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dHNWZXJpZnkgPSBhd2FpdCBhc3luY0V2ZXJ5KHJlbGVhc2VDb250ZXh0cywgYXN5bmMgKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHRWZXJpZmllcyA9IGF3YWl0IHZlcmlmeVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KTtcblxuICAgIGlmIChyZWxlYXNlQ29udGV4dFZlcmlmaWVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHNWZXJpZnk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHRzLFxuICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHRzLFxuICB2ZXJpZnlSZWxlYXNlQ29udGV4dHNcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gZmFsc2U7XG5cbiAgY29uc3QgcmVsZWFzZWQgPSByZWxlYXNlQ29udGV4dC5pc1JlbGVhc2VkKCksXG4gICAgICAgIHZlcmlmaWVkID0gcmVsZWFzZUNvbnRleHQuaGFzVmVyaWZpZWQoKTtcblxuICBpZiAocmVsZWFzZWQgfHwgdmVyaWZpZWQpIHtcbiAgICByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBuYW1lID0gcmVsZWFzZUNvbnRleHQuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gbmFtZTsgLy8vXG5cbiAgICBsb2cuaW5mbyhgVmVyaWZ5aW5nIHRoZSAnJHtyZWxlYXNlTmFtZX0nIHByb2plY3QuLi5gKTtcblxuICAgIGNvbnN0IHZlcmlmaWVzID0gYXdhaXQgcmVsZWFzZUNvbnRleHQudmVyaWZ5KCk7XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGxvZy5pbmZvKGAuLi52ZXJpZmllZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBwcm9qZWN0LmApO1xuXG4gICAgICByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRWZXJpZmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVudFJlbGVhc2VkLCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSBmYWxzZTtcblxuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKTtcblxuICBsZXQgcmVsZWFzZUNvbnRleHQ7XG5cbiAgcmVsZWFzZUNvbnRleHQgPSBmaW5kUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCk7XG5cbiAgY29uc3QgcmVsZWFzZUNvbnRleHRGb3VuZCA9IChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dEZvdW5kKSB7XG4gICAgY29uc3QgZGVwZW5kZW50TmFtZXNMZW5ndGggPSBkZXBlbmRlbnROYW1lcy5sZW5ndGgsXG4gICAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKTtcblxuICAgIGlmIChkZXBlbmRlbnROYW1lc0xlbmd0aCA9PT0gMCkge1xuICAgICAgbG9nLmluZm8oYENyZWF0aW5nIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIHBhY2thZ2UgY29udGV4dC4uLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy5pbmZvKGBDcmVhdGluZyB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQgZ2l2ZW4gdGhlICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRhbnQncyAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeS4uLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSB9ID0gY29udGV4dDtcblxuICAgIHJlbGVhc2VDb250ZXh0ID0gYXdhaXQgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeShkZXBlbmRlbmN5LCBjb250ZXh0KTtcbiAgfVxuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuIFBlcmhhcHMgdGhlICdtZXRhLmpzb24nIGZpbGUgaXMgbWlzc2luZyBvciBpbnZhbGlkLmApO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlID0gY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50UmVsZWFzZWQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghcHJvamVjdERlcGVuZGVuY3lPZlBhY2thZ2UpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0Rm91bmQpIHtcbiAgICAgICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkID0gYXdhaXQgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkKSB7XG4gICAgICAgICAgICBhZGRSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dEZvdW5kKSB7XG4gICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgP1xuICAgICAgICBsb2cuZGVidWcoYC4uLmNyZWF0ZWQgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgcGFja2FnZSBjb250ZXh0LmApIDpcbiAgICAgICAgICBsb2cud2FybmluZyhgLi4udW5hYmxlIHRvIGNyZWF0ZSB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0Q3JlYXRlZDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkO1xuXG4gIGNvbnN0IG5hbWUgPSByZWxlYXNlQ29udGV4dC5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VkID0gcmVsZWFzZUNvbnRleHQuaXNSZWxlYXNlZCgpLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZSA9IG5hbWUsICAvLy9cbiAgICAgICAgZGVwZW5kZW50UmVsZWFzZWQgPSByZWxlYXNlZDsgIC8vL1xuXG4gIGRlcGVuZGVudE5hbWVzID0gWyAuLi5kZXBlbmRlbnROYW1lcywgZGVwZW5kZW50TmFtZSBdOyAgLy8vXG5cbiAgY29uc3QgYXJyYXkgPSBkZXBlbmRlbmNpZXMuZ2V0QXJyYXkoKTtcblxuICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzQ3JlYXRlZCA9IGF3YWl0IGFzeW5jRXZlcnkoYXJyYXksIGFzeW5jIChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSBjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghY3ljbGljRGVwZW5kZW5jeVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IGF3YWl0IGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBkZXBlbmRlbnRSZWxlYXNlZCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0NyZWF0ZWQ7XG59XG5cbmZ1bmN0aW9uIGFkZFJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRzIH0gPSBjb250ZXh0O1xuXG4gIHJlbGVhc2VDb250ZXh0cy5wdXNoKHJlbGVhc2VDb250ZXh0KTtcbn1cblxuZnVuY3Rpb24gZmluZFJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dHMgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmZpbmQoKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWVNYXRjaGVzID0gcmVsZWFzZUNvbnRleHQubWF0Y2hEZXBlbmRlbmN5TmFtZShkZXBlbmRlbmN5TmFtZSk7XG5cbiAgICAgICAgICBpZiAoZGVwZW5kZW5jeU5hbWVNYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5mdW5jdGlvbiByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgY29udGV4dCwgcmVsZWFzZUNvbnRleHRzID0gW10pIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0KSB7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gZmluZFJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpO1xuXG4gICAgICByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgY29udGV4dCwgcmVsZWFzZUNvbnRleHRzKTtcbiAgICB9KTtcblxuICAgIHJlbGVhc2VDb250ZXh0cy51bnNoaWZ0KHJlbGVhc2VDb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG5cbmZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCkge1xuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgbmFtZSA9IHJlbGVhc2VDb250ZXh0LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHRzID0gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIGNvbnRleHQpO1xuXG4gIGxvZy5pbmZvKGBJbml0aWFsaXNpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb250ZXh0Li4uYCk7XG5cbiAgY29uc3QgeyBGaWxlQ29udGV4dEZyb21GaWxlUGF0aCB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cywgRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgpO1xuXG4gIGxvZy5kZWJ1ZyhgLi4uaW5pdGlhbGlzZWQgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb250ZXh0LmApO1xufVxuXG5mdW5jdGlvbiBjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCBjeWNsaWNEZXBlbmRlbmN5UHJlc2VudCA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIGluZGV4ID0gZGVwZW5kZW50TmFtZXMuaW5kZXhPZihkZXBlbmRlbmN5TmFtZSk7XG5cbiAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBjaXJjdWxhckRlcGVuZGVudE5hbWVzID0gZGVwZW5kZW50TmFtZXMuc2xpY2UoaW5kZXgpLFxuICAgICAgICAgIGNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzID0gW1xuICAgICAgICAgICAgLi4uY2lyY3VsYXJEZXBlbmRlbnROYW1lcyxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lOYW1lXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzLmpvaW4oU0lOR0xFX1NQQUNFKTtcblxuICAgIGxvZy53YXJuaW5nKGBUaGVyZSBpcyBhIGN5Y2xpYyBkZXBlbmRlbmN5LCAnJHtjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZ30nLmApO1xuXG4gICAgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGN5Y2xpY0RlcGVuZGVuY3lQcmVzZW50O1xufVxuXG5mdW5jdGlvbiBjaGVja1JlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IHRydWU7XG5cbiAgY29uc3Qgc2hvcnRlbmVkVmVyc2lvbiA9IGRlcGVuZGVuY3kuZ2V0U2hvcnRlbmVkVmVyc2lvbigpO1xuXG4gIGlmIChzaG9ydGVuZWRWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiA9IHJlbGVhc2VDb250ZXh0Lm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgIGlmICghZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbikge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICB2ZXJzaW9uID0gcmVsZWFzZUNvbnRleHQuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgbGFzdERlcGVuZGVudE5hbWUgPSBsYXN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICAgIGRlcGVuZGVudE5hbWUgPSBsYXN0RGVwZW5kZW50TmFtZSwgIC8vL1xuICAgICAgICAgICAgdmVyc2lvblN0cmluZyA9IHZlcnNpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lTdHJpbmcgPSBkZXBlbmRlbmN5LmFzU3RyaW5nKCk7XG5cbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW50TmFtZX0nIGRlcGVuZGVudCByZXF1aXJlcyB0aGUgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kgYnV0IGEgY29udGV4dCB3aXRoIHZlcnNpb24gJyR7dmVyc2lvblN0cmluZ30nIHdhcyBwcm92aWRlZC5gKTtcblxuICAgICAgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeTtcbn1cblxuZnVuY3Rpb24gY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50UmVsZWFzZWQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCBwcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSA9IGZhbHNlO1xuXG4gIGlmIChkZXBlbmRlbnRSZWxlYXNlZCkge1xuICAgIGNvbnN0IHJlbGVhc2VkID0gcmVsZWFzZUNvbnRleHQuaXNSZWxlYXNlZCgpO1xuXG4gICAgaWYgKCFyZWxlYXNlZCkge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICBuYW1lID0gcmVsZWFzZUNvbnRleHQuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgbGFzdERlcGVuZGVudE5hbWUgPSBsYXN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lOYW1lID0gbmFtZSwvLy9cbiAgICAgICAgICAgIGRlcGVuZGVudE5hbWUgPSBsYXN0RGVwZW5kZW50TmFtZTsgIC8vL1xuXG4gICAgICBsb2cud2FybmluZyhgVGhlICcke2RlcGVuZGVuY3lOYW1lfScgZGVwZW5kZW5jeSBpcyBhIHByb2plY3Qgd2hpbHN0IGl0cyAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kZW50IGlzIGEgcGFja2FnZS5gKTtcblxuICAgICAgcHJvamVjdERlcGVuZGVuY3lPZlBhY2thZ2UgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZTtcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVSZWxlYXNlQ29udGV4dHMiLCJpbml0aWFsaXNlUmVsZWFzZUNvbnRleHRzIiwidmVyaWZ5UmVsZWFzZUNvbnRleHRzIiwibGFzdCIsImFycmF5VXRpbGl0aWVzIiwiZGVwZW5kZW5jeSIsImNvbnRleHQiLCJyZWxlYXNlQ29udGV4dHNDcmVhdGVkIiwiZGVwZW5kZW50TmFtZXMiLCJkZXBlbmRlbnRSZWxlYXNlZCIsInJlbGVhc2VDb250ZXh0Q3JlYXRlZCIsImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwicmVsZWFzZUNvbnRleHRzIiwiZm9yRWFjaCIsInJlbGVhc2VDb250ZXh0IiwiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0IiwicmVsZWFzZUNvbnRleHRzVmVyaWZ5IiwiYXN5bmNFdmVyeSIsInJlbGVhc2VDb250ZXh0VmVyaWZpZXMiLCJ2ZXJpZnlSZWxlYXNlQ29udGV4dCIsInJlbGVhc2VkIiwiaXNSZWxlYXNlZCIsInZlcmlmaWVkIiwiaGFzVmVyaWZpZWQiLCJsb2ciLCJuYW1lIiwiZ2V0TmFtZSIsInJlbGVhc2VOYW1lIiwiaW5mbyIsInZlcmlmaWVzIiwidmVyaWZ5IiwiZGVwZW5kZW5jeU5hbWUiLCJmaW5kUmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dEZvdW5kIiwiZGVwZW5kZW50TmFtZXNMZW5ndGgiLCJsZW5ndGgiLCJkZXBlbmRlbmN5U3RyaW5nIiwiYXNTdHJpbmciLCJsYXN0RGVwZW5kZW50TmFtZSIsImRlcGVuZGVudE5hbWUiLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5Iiwid2FybmluZyIsInByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlIiwiY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSIsInJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSIsImNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0NyZWF0ZWQiLCJjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiYWRkUmVsZWFzZUNvbnRleHQiLCJkZWJ1ZyIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImFycmF5IiwiZ2V0QXJyYXkiLCJjeWNsaWNEZXBlbmRlbmN5UHJlc2VudCIsImNoZWNrQ3ljbGljRGVwZW5kZW5jeVByZXNlbnQiLCJwdXNoIiwiZmluZCIsImRlcGVuZGVuY3lOYW1lTWF0Y2hlcyIsIm1hdGNoRGVwZW5kZW5jeU5hbWUiLCJyZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyIsInJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQiLCJpbmNsdWRlcyIsImZvckVhY2hEZXBlbmRlbmN5IiwidW5zaGlmdCIsIkZpbGVDb250ZXh0RnJvbUZpbGVQYXRoIiwiaW5pdGlhbGlzZSIsImluZGV4IiwiaW5kZXhPZiIsImNpcmN1bGFyRGVwZW5kZW50TmFtZXMiLCJzbGljZSIsImNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzIiwiY2lyY3VsYXJEZXBlbmRlbmN5TmFtZXNTdHJpbmciLCJqb2luIiwiU0lOR0xFX1NQQUNFIiwic2hvcnRlbmVkVmVyc2lvbiIsImdldFNob3J0ZW5lZFZlcnNpb24iLCJlbnRyaWVzTWF0Y2hTaG9ydGVuZWRWZXJzaW9uIiwibWF0Y2hTaG9ydGVuZWRWZXJzaW9uIiwidmVyc2lvbiIsImdldFZlcnNpb24iLCJ2ZXJzaW9uU3RyaW5nIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVNzQkE7ZUFBQUE7O1FBc0N0QjtlQUFBOztRQXhCZ0JDO2VBQUFBOztRQVFNQztlQUFBQTs7OzJCQTdCUzs4QkFFSDsyQkFDQztBQUU3QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUV4QixlQUFlSixzQkFBc0JLLFVBQVUsRUFBRUMsT0FBTztJQUM3RCxJQUFJQyx5QkFBeUI7SUFFN0IsTUFBTUMsaUJBQWlCLEVBQUUsRUFDbkJDLG9CQUFvQixPQUNwQkMsd0JBQXdCLE1BQU1DLHFCQUFxQk4sWUFBWUcsZ0JBQWdCQyxtQkFBbUJIO0lBRXhHLElBQUlJLHVCQUF1QjtRQUN6QkgseUJBQXlCO0lBQzNCO0lBRUEsT0FBT0E7QUFDVDtBQUVPLFNBQVNOLDBCQUEwQkssT0FBTztJQUMvQyxNQUFNLEVBQUVNLGVBQWUsRUFBRSxHQUFHTjtJQUU1Qk0sZ0JBQWdCQyxPQUFPLENBQUMsQ0FBQ0M7UUFDdkJDLHlCQUF5QkQsZ0JBQWdCUjtJQUMzQztBQUNGO0FBRU8sZUFBZUosc0JBQXNCSSxPQUFPO0lBQ2pELElBQUlVO0lBRUosTUFBTSxFQUFFSixlQUFlLEVBQUUsR0FBR047SUFFNUJVLHdCQUF3QixNQUFNQyxJQUFBQSx3QkFBVSxFQUFDTCxpQkFBaUIsT0FBT0U7UUFDL0QsTUFBTUkseUJBQXlCLE1BQU1DLHFCQUFxQkwsZ0JBQWdCUjtRQUUxRSxJQUFJWSx3QkFBd0I7WUFDMUIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPRjtBQUNUO01BRUEsV0FBZTtJQUNiaEI7SUFDQUM7SUFDQUM7QUFDRjtBQUVBLGVBQWVpQixxQkFBcUJMLGNBQWMsRUFBRVIsT0FBTztJQUN6RCxJQUFJ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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVyaWZpY2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNFdmVyeSAgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FzeW5jaHJvbm91c1wiO1xuaW1wb3J0IHsgU0lOR0xFX1NQQUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IGxhc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VDb250ZXh0c0NyZWF0ZWQgPSBmYWxzZTtcblxuICBjb25zdCBkZXBlbmRlbnROYW1lcyA9IFtdLFxuICAgICAgICBkZXBlbmRlbnRSZWxlYXNlZCA9IGZhbHNlLFxuICAgICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSBhd2FpdCBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgZGVwZW5kZW50UmVsZWFzZWQsIGNvbnRleHQpO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICByZWxlYXNlQ29udGV4dHNDcmVhdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHNDcmVhdGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0cyhjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRzIH0gPSBjb250ZXh0O1xuXG4gIHJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5UmVsZWFzZUNvbnRleHRzKGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VDb250ZXh0c1ZlcmlmeTtcblxuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0cyB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dHNWZXJpZnkgPSBhd2FpdCBhc3luY0V2ZXJ5KHJlbGVhc2VDb250ZXh0cywgYXN5bmMgKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHRWZXJpZmllcyA9IGF3YWl0IHZlcmlmeVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KTtcblxuICAgIGlmIChyZWxlYXNlQ29udGV4dFZlcmlmaWVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHNWZXJpZnk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHRzLFxuICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHRzLFxuICB2ZXJpZnlSZWxlYXNlQ29udGV4dHNcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gZmFsc2U7XG5cbiAgY29uc3QgcmVsZWFzZWQgPSByZWxlYXNlQ29udGV4dC5pc1JlbGVhc2VkKCksXG4gICAgICAgIHZlcmlmaWVkID0gcmVsZWFzZUNvbnRleHQuaGFzVmVyaWZpZWQoKTtcblxuICBpZiAocmVsZWFzZWQgfHwgdmVyaWZpZWQpIHtcbiAgICByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBuYW1lID0gcmVsZWFzZUNvbnRleHQuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gbmFtZTsgLy8vXG5cbiAgICBsb2cuaW5mbyhgVmVyaWZ5aW5nIHRoZSAnJHtyZWxlYXNlTmFtZX0nIHByb2plY3QuLi5gKTtcblxuICAgIGNvbnN0IHZlcmlmaWVzID0gYXdhaXQgcmVsZWFzZUNvbnRleHQudmVyaWZ5KCk7XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGxvZy5pbmZvKGAuLi52ZXJpZmllZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBwcm9qZWN0LmApO1xuXG4gICAgICByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRWZXJpZmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVudFJlbGVhc2VkLCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSBmYWxzZTtcblxuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKTtcblxuICBsZXQgcmVsZWFzZUNvbnRleHQ7XG5cbiAgcmVsZWFzZUNvbnRleHQgPSBmaW5kUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCk7XG5cbiAgY29uc3QgcmVsZWFzZUNvbnRleHRGb3VuZCA9IChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dEZvdW5kKSB7XG4gICAgY29uc3QgZGVwZW5kZW50TmFtZXNMZW5ndGggPSBkZXBlbmRlbnROYW1lcy5sZW5ndGgsXG4gICAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKTtcblxuICAgIGlmIChkZXBlbmRlbnROYW1lc0xlbmd0aCA9PT0gMCkge1xuICAgICAgbG9nLmluZm8oYENyZWF0aW5nIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIHBhY2thZ2UgY29udGV4dC4uLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy5pbmZvKGBDcmVhdGluZyB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQgZ2l2ZW4gdGhlICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRhbnQncyAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeS4uLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSB9ID0gY29udGV4dDtcblxuICAgIHJlbGVhc2VDb250ZXh0ID0gYXdhaXQgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeShkZXBlbmRlbmN5LCBjb250ZXh0KTtcbiAgfVxuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuIFBlcmhhcHMgdGhlICdtZXRhLmpzb24nIGZpbGUgaXMgbWlzc2luZyBvciBpbnZhbGlkLmApO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlID0gY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50UmVsZWFzZWQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghcHJvamVjdERlcGVuZGVuY3lPZlBhY2thZ2UpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0Rm91bmQpIHtcbiAgICAgICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkID0gYXdhaXQgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkKSB7XG4gICAgICAgICAgICBhZGRSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dEZvdW5kKSB7XG4gICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgP1xuICAgICAgICBsb2cuZGVidWcoYC4uLmNyZWF0ZWQgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgcGFja2FnZSBjb250ZXh0LmApIDpcbiAgICAgICAgICBsb2cud2FybmluZyhgLi4udW5hYmxlIHRvIGNyZWF0ZSB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0Q3JlYXRlZDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkO1xuXG4gIGNvbnN0IG5hbWUgPSByZWxlYXNlQ29udGV4dC5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VkID0gcmVsZWFzZUNvbnRleHQuaXNSZWxlYXNlZCgpLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZSA9IG5hbWUsICAvLy9cbiAgICAgICAgZGVwZW5kZW50UmVsZWFzZWQgPSByZWxlYXNlZDsgIC8vL1xuXG4gIGRlcGVuZGVudE5hbWVzID0gWyAuLi5kZXBlbmRlbnROYW1lcywgZGVwZW5kZW50TmFtZSBdOyAgLy8vXG5cbiAgY29uc3QgYXJyYXkgPSBkZXBlbmRlbmNpZXMuZ2V0QXJyYXkoKTtcblxuICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzQ3JlYXRlZCA9IGF3YWl0IGFzeW5jRXZlcnkoYXJyYXksIGFzeW5jIChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSBjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghY3ljbGljRGVwZW5kZW5jeVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IGF3YWl0IGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBkZXBlbmRlbnRSZWxlYXNlZCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0NyZWF0ZWQ7XG59XG5cbmZ1bmN0aW9uIGFkZFJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRzIH0gPSBjb250ZXh0O1xuXG4gIHJlbGVhc2VDb250ZXh0cy5wdXNoKHJlbGVhc2VDb250ZXh0KTtcbn1cblxuZnVuY3Rpb24gZmluZFJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dHMgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmZpbmQoKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWVNYXRjaGVzID0gcmVsZWFzZUNvbnRleHQubWF0Y2hEZXBlbmRlbmN5TmFtZShkZXBlbmRlbmN5TmFtZSk7XG5cbiAgICAgICAgICBpZiAoZGVwZW5kZW5jeU5hbWVNYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5mdW5jdGlvbiByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgY29udGV4dCwgcmVsZWFzZUNvbnRleHRzID0gW10pIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0KSB7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gZmluZFJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpO1xuXG4gICAgICByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgY29udGV4dCwgcmVsZWFzZUNvbnRleHRzKTtcbiAgICB9KTtcblxuICAgIHJlbGVhc2VDb250ZXh0cy51bnNoaWZ0KHJlbGVhc2VDb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG5cbmZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCkge1xuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgbmFtZSA9IHJlbGVhc2VDb250ZXh0LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHRzID0gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIGNvbnRleHQpO1xuXG4gIGxvZy5pbmZvKGBJbml0aWFsaXNpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb250ZXh0Li4uYCk7XG5cbiAgY29uc3QgeyBGaWxlQ29udGV4dEZyb21GaWxlUGF0aCB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cywgRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgpO1xuXG4gIGxvZy5kZWJ1ZyhgLi4uaW5pdGlhbGlzZWQgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb250ZXh0LmApO1xufVxuXG5mdW5jdGlvbiBjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCBjeWNsaWNEZXBlbmRlbmN5UHJlc2VudCA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIGluZGV4ID0gZGVwZW5kZW50TmFtZXMuaW5kZXhPZihkZXBlbmRlbmN5TmFtZSk7XG5cbiAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBjaXJjdWxhckRlcGVuZGVudE5hbWVzID0gZGVwZW5kZW50TmFtZXMuc2xpY2UoaW5kZXgpLFxuICAgICAgICAgIGNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzID0gW1xuICAgICAgICAgICAgLi4uY2lyY3VsYXJEZXBlbmRlbnROYW1lcyxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lOYW1lXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzLmpvaW4oU0lOR0xFX1NQQUNFKTtcblxuICAgIGxvZy53YXJuaW5nKGBUaGVyZSBpcyBhIGN5Y2xpYyBkZXBlbmRlbmN5LCAnJHtjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZ30nLmApO1xuXG4gICAgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGN5Y2xpY0RlcGVuZGVuY3lQcmVzZW50O1xufVxuXG5mdW5jdGlvbiBjaGVja1JlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IHRydWU7XG5cbiAgY29uc3Qgc2hvcnRlbmVkVmVyc2lvbiA9IGRlcGVuZGVuY3kuZ2V0U2hvcnRlbmVkVmVyc2lvbigpO1xuXG4gIGlmIChzaG9ydGVuZWRWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiA9IHJlbGVhc2VDb250ZXh0Lm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgIGlmICghZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbikge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICB2ZXJzaW9uID0gcmVsZWFzZUNvbnRleHQuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgbGFzdERlcGVuZGVudE5hbWUgPSBsYXN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICAgIGRlcGVuZGVudE5hbWUgPSBsYXN0RGVwZW5kZW50TmFtZSwgIC8vL1xuICAgICAgICAgICAgdmVyc2lvblN0cmluZyA9IHZlcnNpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lTdHJpbmcgPSBkZXBlbmRlbmN5LmFzU3RyaW5nKCk7XG5cbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW50TmFtZX0nIGRlcGVuZGVudCByZXF1aXJlcyB0aGUgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kgYnV0IGEgY29udGV4dCB3aXRoIHZlcnNpb24gJyR7dmVyc2lvblN0cmluZ30nIHdhcyBwcm92aWRlZC5gKTtcblxuICAgICAgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeTtcbn1cblxuZnVuY3Rpb24gY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50UmVsZWFzZWQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCBwcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSA9IGZhbHNlO1xuXG4gIGlmIChkZXBlbmRlbnRSZWxlYXNlZCkge1xuICAgIGNvbnN0IHVucmVsZWFzZWQgPSByZWxlYXNlQ29udGV4dC5pc1VucmVsZWFzZWQoKTtcblxuICAgIGlmICh1bnJlbGVhc2VkKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIG5hbWUgPSByZWxlYXNlQ29udGV4dC5nZXROYW1lKCksXG4gICAgICAgICAgICBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBuYW1lLC8vL1xuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBkZXBlbmRlbmN5IGlzIGEgcHJvamVjdCB3aGlsc3QgaXRzICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRlbnQgaXMgYSBwYWNrYWdlLmApO1xuXG4gICAgICBwcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHMiLCJ2ZXJpZnlSZWxlYXNlQ29udGV4dHMiLCJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJkZXBlbmRlbmN5IiwiY29udGV4dCIsInJlbGVhc2VDb250ZXh0c0NyZWF0ZWQiLCJkZXBlbmRlbnROYW1lcyIsImRlcGVuZGVudFJlbGVhc2VkIiwicmVsZWFzZUNvbnRleHRDcmVhdGVkIiwiY3JlYXRlUmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dHMiLCJmb3JFYWNoIiwicmVsZWFzZUNvbnRleHQiLCJpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dHNWZXJpZnkiLCJhc3luY0V2ZXJ5IiwicmVsZWFzZUNvbnRleHRWZXJpZmllcyIsInZlcmlmeVJlbGVhc2VDb250ZXh0IiwicmVsZWFzZWQiLCJpc1JlbGVhc2VkIiwidmVyaWZpZWQiLCJoYXNWZXJpZmllZCIsImxvZyIsIm5hbWUiLCJnZXROYW1lIiwicmVsZWFzZU5hbWUiLCJpbmZvIiwidmVyaWZpZXMiLCJ2ZXJpZnkiLCJkZXBlbmRlbmN5TmFtZSIsImZpbmRSZWxlYXNlQ29udGV4dCIsInJlbGVhc2VDb250ZXh0Rm91bmQiLCJkZXBlbmRlbnROYW1lc0xlbmd0aCIsImxlbmd0aCIsImRlcGVuZGVuY3lTdHJpbmciLCJhc1N0cmluZyIsImxhc3REZXBlbmRlbnROYW1lIiwiZGVwZW5kZW50TmFtZSIsInJlbGVhc2VDb250ZXh0RnJvbURlcGVuZGVuY3kiLCJ3YXJuaW5nIiwicHJvamVjdERlcGVuZGVuY3lPZlBhY2thZ2UiLCJjaGVja1Byb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlIiwicmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kiLCJkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzQ3JlYXRlZCIsImNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJhZGRSZWxlYXNlQ29udGV4dCIsImRlYnVnIiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiYXJyYXkiLCJnZXRBcnJheSIsImN5Y2xpY0RlcGVuZGVuY3lQcmVzZW50IiwiY2hlY2tDeWNsaWNEZXBlbmRlbmN5UHJlc2VudCIsInB1c2giLCJmaW5kIiwiZGVwZW5kZW5jeU5hbWVNYXRjaGVzIiwibWF0Y2hEZXBlbmRlbmN5TmFtZSIsInJldHJpZXZlUmVsZWFzZUNvbnRleHRzIiwicmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCIsImluY2x1ZGVzIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJ1bnNoaWZ0IiwiRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgiLCJpbml0aWFsaXNlIiwiaW5kZXgiLCJpbmRleE9mIiwiY2lyY3VsYXJEZXBlbmRlbnROYW1lcyIsInNsaWNlIiwiY2lyY3VsYXJEZXBlbmRlbmN5TmFtZXMiLCJjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZyIsImpvaW4iLCJTSU5HTEVfU1BBQ0UiLCJzaG9ydGVuZWRWZXJzaW9uIiwiZ2V0U2hvcnRlbmVkVmVyc2lvbiIsImVudHJpZXNNYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJtYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJ2ZXJzaW9uIiwiZ2V0VmVyc2lvbiIsInZlcnNpb25TdHJpbmciLCJ0b1N0cmluZyIsInVucmVsZWFzZWQiLCJpc1VucmVsZWFzZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVNzQkE7ZUFBQUE7O1FBc0N0QjtlQUFBOztRQXhCZ0JDO2VBQUFBOztRQVFNQztlQUFBQTs7OzJCQTdCUzs4QkFFSDsyQkFDQztBQUU3QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUV4QixlQUFlSixzQkFBc0JLLFVBQVUsRUFBRUMsT0FBTztJQUM3RCxJQUFJQyx5QkFBeUI7SUFFN0IsTUFBTUMsaUJBQWlCLEVBQUUsRUFDbkJDLG9CQUFvQixPQUNwQkMsd0JBQXdCLE1BQU1DLHFCQUFxQk4sWUFBWUcsZ0JBQWdCQyxtQkFBbUJIO0lBRXhHLElBQUlJLHVCQUF1QjtRQUN6QkgseUJBQXlCO0lBQzNCO0lBRUEsT0FBT0E7QUFDVDtBQUVPLFNBQVNOLDBCQUEwQkssT0FBTztJQUMvQyxNQUFNLEVBQUVNLGVBQWUsRUFBRSxHQUFHTjtJQUU1Qk0sZ0JBQWdCQyxPQUFPLENBQUMsQ0FBQ0M7UUFDdkJDLHlCQUF5QkQsZ0JBQWdCUjtJQUMzQztBQUNGO0FBRU8sZUFBZUosc0JBQXNCSSxPQUFPO0lBQ2pELElBQUlVO0lBRUosTUFBTSxFQUFFSixlQUFlLEVBQUUsR0FBR047SUFFNUJVLHdCQUF3QixNQUFNQyxJQUFBQSx3QkFBVSxFQUFDTCxpQkFBaUIsT0FBT0U7UUFDL0QsTUFBTUkseUJBQXlCLE1BQU1DLHFCQUFxQkwsZ0JBQWdCUjtRQUUxRSxJQUFJWSx3QkFBd0I7WUFDMUIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPRjtBQUNUO01BRUEsV0FBZTtJQUNiaEI7SUFDQUM7SUFDQUM7QUFDRjtBQUVBLGVBQWVpQixxQkFBcUJMLGNBQWMsRUFBRVIsT0FBTztJQUN6RCxJQUFJWSx5QkFBeUI7SUFFN0IsTUFBTUUsV0FBV04sZUFBZU8sVUFBVSxJQUNwQ0MsV0FBV1IsZUFBZVMsV0FBVztJQUUzQyxJQUFJSCxZQUFZRSxVQUFVO1FBQ3hCSix5QkFBeUI7SUFDM0IsT0FBTztRQUNMLE1BQU0sRUFBRU0sR0FBRyxFQUFFLEdBQUdsQixTQUNWbUIsT0FBT1gsZUFBZVksT0FBTyxJQUM3QkMsY0FBY0YsTUFBTSxHQUFHO1FBRTdCRCxJQUFJSSxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUVELFlBQVksWUFBWSxDQUFDO1FBRXBELE1BQU1FLFdBQVcsTUFBTWYsZUFBZWdCLE1BQU07UUFFNUMsSUFBSUQsVUFBVTtZQUNaTCxJQUFJSSxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRUQsWUFBWSxVQUFVLENBQUM7WUFFcERULHlCQUF5QjtRQUMzQjtJQUNGO0lBRUEsT0FBT0E7QUFDVDtBQUVBLGVBQWVQLHFCQUFxQk4sVUFBVSxFQUFFRyxjQUFjLEVBQUVDLGlCQUFpQixFQUFFSCxPQUFPO0lBQ3hGLElBQUlJLHdCQUF3QjtJQUU1QixNQUFNLEVBQUVjLEdBQUcsRUFBRSxHQUFHbEIsU0FDVnlCLGlCQUFpQjFCLFdBQVdxQixPQUFPO0lBRXpDLElBQUlaO0lBRUpBLGlCQUFpQmtCLG1CQUFtQjNCLFlBQVlDO0lBRWhELE1BQU0yQixzQkFBdUJuQixtQkFBbUI7SUFFaEQsSUFBSSxDQUFDbUIscUJBQXFCO1FBQ3hCLE1BQU1DLHVCQUF1QjFCLGVBQWUyQixNQUFNLEVBQzVDQyxtQkFBbUIvQixXQUFXZ0MsUUFBUTtRQUU1QyxJQUFJSCx5QkFBeUIsR0FBRztZQUM5QlYsSUFBSUksSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFRyxlQUFlLG9CQUFvQixDQUFDO1FBQ2hFLE9BQU87WUFDTCxNQUFNTyxvQkFBb0JuQyxLQUFLSyxpQkFDekIrQixnQkFBZ0JELG1CQUFvQixHQUFHO1lBRTdDZCxJQUFJSSxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUVHLGVBQWUsNkJBQTZCLEVBQUVRLGNBQWMsZUFBZSxFQUFFSCxpQkFBaUIsZUFBZSxDQUFDO1FBQzFJO1FBRUEsTUFBTSxFQUFFSSw0QkFBNEIsRUFBRSxHQUFHbEM7UUFFekNRLGlCQUFpQixNQUFNMEIsNkJBQTZCbkMsWUFBWUM7SUFDbEU7SUFFQSxJQUFJUSxtQkFBbUIsTUFBTTtRQUMzQlUsSUFBSWlCLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRVYsZUFBZSwyRkFBMkYsQ0FBQztJQUNqSSxPQUFPO1FBQ0wsTUFBTVcsNkJBQTZCQyxnQ0FBZ0M3QixnQkFBZ0JMLG1CQUFtQkQsZ0JBQWdCRjtRQUV0SCxJQUFJLENBQUNvQyw0QkFBNEI7WUFDL0IsTUFBTUUsMkJBQTJCQyw4QkFBOEIvQixnQkFBZ0JULFlBQVlHLGdCQUFnQkY7WUFFM0csSUFBSXNDLDBCQUEwQjtnQkFDNUIsSUFBSVgscUJBQXFCO29CQUN2QnZCLHdCQUF3QjtnQkFDMUIsT0FBTztvQkFDTCxNQUFNb0MsbUNBQW1DLE1BQU1DLGdDQUFnQ2pDLGdCQUFnQlQsWUFBWUcsZ0JBQWdCRjtvQkFFM0gsSUFBSXdDLGtDQUFrQzt3QkFDcENFLGtCQUFrQmxDLGdCQUFnQlI7d0JBRWxDSSx3QkFBd0I7b0JBQzFCO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLElBQUksQ0FBQ3VCLHFCQUFxQjtZQUN4QnZCLHdCQUNFYyxJQUFJeUIsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVsQixlQUFlLGtCQUFrQixDQUFDLElBQzdEUCxJQUFJaUIsT0FBTyxDQUFDLENBQUMseUJBQXlCLEVBQUVWLGVBQWUsa0JBQWtCLENBQUM7UUFDaEY7SUFDRjtJQUVBLE9BQU9yQjtBQUNUO0FBRUEsZUFBZXFDLGdDQUFnQ2pDLGNBQWMsRUFBRVQsVUFBVSxFQUFFRyxjQUFjLEVBQUVGLE9BQU87SUFDaEcsSUFBSXdDO0lBRUosTUFBTXJCLE9BQU9YLGVBQWVZLE9BQU8sSUFDN0JOLFdBQVdOLGVBQWVPLFVBQVUsSUFDcEM2QixlQUFlcEMsZUFBZXFDLGVBQWUsSUFDN0NaLGdCQUFnQmQsTUFDaEJoQixvQkFBb0JXLFVBQVcsR0FBRztJQUV4Q1osaUJBQWlCO1dBQUtBO1FBQWdCK0I7S0FBZSxFQUFHLEdBQUc7SUFFM0QsTUFBTWEsUUFBUUYsYUFBYUcsUUFBUTtJQUVuQ1AsbUNBQW1DLE1BQU03QixJQUFBQSx3QkFBVSxFQUFDbUMsT0FBTyxPQUFPL0M7UUFDaEUsTUFBTWlELDBCQUEwQkMsNkJBQTZCbEQsWUFBWUcsZ0JBQWdCRjtRQUV6RixJQUFJLENBQUNnRCx5QkFBeUI7WUFDNUIsTUFBTTVDLHdCQUF3QixNQUFNQyxxQkFBcUJOLFlBQVlHLGdCQUFnQkMsbUJBQW1CSDtZQUV4RyxJQUFJSSx1QkFBdUI7Z0JBQ3pCLE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPb0M7QUFDVDtBQUVBLFNBQVNFLGtCQUFrQmxDLGNBQWMsRUFBRVIsT0FBTztJQUNoRCxNQUFNLEVBQUVNLGVBQWUsRUFBRSxHQUFHTjtJQUU1Qk0sZ0JBQWdCNEMsSUFBSSxDQUFDMUM7QUFDdkI7QUFFQSxTQUFTa0IsbUJBQW1CM0IsVUFBVSxFQUFFQyxPQUFPO0lBQzdDLE1BQU0sRUFBRU0sZUFBZSxFQUFFLEdBQUdOLFNBQ3RCeUIsaUJBQWlCMUIsV0FBV3FCLE9BQU8sSUFDbkNaLGlCQUFpQkYsZ0JBQWdCNkMsSUFBSSxDQUFDLENBQUMzQztRQUNyQyxNQUFNNEMsd0JBQXdCNUMsZUFBZTZDLG1CQUFtQixDQUFDNUI7UUFFakUsSUFBSTJCLHVCQUF1QjtZQUN6QixPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRVosT0FBTzVDO0FBQ1Q7QUFFQSxTQUFTOEMsd0JBQXdCOUMsY0FBYyxFQUFFUixPQUFPLEVBQUVNLGtCQUFrQixFQUFFO0lBQzVFLE1BQU1pRCx3Q0FBd0NqRCxnQkFBZ0JrRCxRQUFRLENBQUNoRDtJQUV2RSxJQUFJLENBQUMrQyx1Q0FBdUM7UUFDMUMsTUFBTVgsZUFBZXBDLGVBQWVxQyxlQUFlO1FBRW5ERCxhQUFhYSxpQkFBaUIsQ0FBQyxDQUFDMUQ7WUFDOUIsTUFBTVMsaUJBQWlCa0IsbUJBQW1CM0IsWUFBWUM7WUFFdERzRCx3QkFBd0I5QyxnQkFBZ0JSLFNBQVNNO1FBQ25EO1FBRUFBLGdCQUFnQm9ELE9BQU8sQ0FBQ2xEO0lBQzFCO0lBRUEsT0FBT0Y7QUFDVDtBQUVBLFNBQVNHLHlCQUF5QkQsY0FBYyxFQUFFUixPQUFPO0lBQ3ZELE1BQU0sRUFBRWtCLEdBQUcsRUFBRSxHQUFHbEIsU0FDVm1CLE9BQU9YLGVBQWVZLE9BQU8sSUFDN0JDLGNBQWNGLE1BQ2RiLGtCQUFrQmdELHdCQUF3QjlDLGdCQUFnQlI7SUFFaEVrQixJQUFJSSxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUQsWUFBWSxvQkFBb0IsQ0FBQztJQUUvRCxNQUFNLEVBQUVzQyx1QkFBdUIsRUFBRSxHQUFHM0Q7SUFFcENRLGVBQWVvRCxVQUFVLENBQUN0RCxpQkFBaUJxRDtJQUUzQ3pDLElBQUl5QixLQUFLLENBQUMsQ0FBQyxvQkFBb0IsRUFBRXRCLFlBQVksa0JBQWtCLENBQUM7QUFDbEU7QUFFQSxTQUFTNEIsNkJBQTZCbEQsVUFBVSxFQUFFRyxjQUFjLEVBQUVGLE9BQU87SUFDdkUsSUFBSWdELDBCQUEwQjtJQUU5QixNQUFNdkIsaUJBQWlCMUIsV0FBV3FCLE9BQU8sSUFDbkN5QyxRQUFRM0QsZUFBZTRELE9BQU8sQ0FBQ3JDO0lBRXJDLElBQUlvQyxRQUFRLENBQUMsR0FBRztRQUNkLE1BQU0sRUFBRTNDLEdBQUcsRUFBRSxHQUFHbEIsU0FDVitELHlCQUF5QjdELGVBQWU4RCxLQUFLLENBQUNILFFBQzlDSSwwQkFBMEI7ZUFDckJGO1lBQ0h0QztTQUNELEVBQ0R5QyxnQ0FBZ0NELHdCQUF3QkUsSUFBSSxDQUFDQyx1QkFBWTtRQUUvRWxELElBQUlpQixPQUFPLENBQUMsQ0FBQywrQkFBK0IsRUFBRStCLDhCQUE4QixFQUFFLENBQUM7UUFFL0VsQiwwQkFBMEI7SUFDNUI7SUFFQSxPQUFPQTtBQUNUO0FBRUEsU0FBU1QsOEJBQThCL0IsY0FBYyxFQUFFVCxVQUFVLEVBQUVHLGNBQWMsRUFBRUYsT0FBTztJQUN4RixJQUFJc0MsMkJBQTJCO0lBRS9CLE1BQU0rQixtQkFBbUJ0RSxXQUFXdUUsbUJBQW1CO0lBRXZELElBQUlELHFCQUFxQixNQUFNO1FBQzdCLE1BQU1FLCtCQUErQi9ELGVBQWVnRSxxQkFBcUIsQ0FBQ0g7UUFFMUUsSUFBSSxDQUFDRSw4QkFBOEI7WUFDakMsTUFBTSxFQUFFckQsR0FBRyxFQUFFLEdBQUdsQixTQUNWeUUsVUFBVWpFLGVBQWVrRSxVQUFVLElBQ25DMUMsb0JBQW9CbkMsS0FBS0ssaUJBQ3pCK0IsZ0JBQWdCRCxtQkFDaEIyQyxnQkFBZ0JGLFFBQVFHLFFBQVEsSUFDaEM5QyxtQkFBbUIvQixXQUFXZ0MsUUFBUTtZQUU1Q2IsSUFBSWlCLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRUYsY0FBYywwQkFBMEIsRUFBRUgsaUJBQWlCLHlDQUF5QyxFQUFFNkMsY0FBYyxlQUFlLENBQUM7WUFFeEpyQywyQkFBMkI7UUFDN0I7SUFDRjtJQUVBLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRCxnQ0FBZ0M3QixjQUFjLEVBQUVMLGlCQUFpQixFQUFFRCxjQUFjLEVBQUVGLE9BQU87SUFDakcsSUFBSW9DLDZCQUE2QjtJQUVqQyxJQUFJakMsbUJBQW1CO1FBQ3JCLE1BQU0wRSxhQUFhckUsZUFBZXNFLFlBQVk7UUFFOUMsSUFBSUQsWUFBWTtZQUNkLE1BQU0sRUFBRTNELEdBQUcsRUFBRSxHQUFHbEIsU0FDVm1CLE9BQU9YLGVBQWVZLE9BQU8sSUFDN0JZLG9CQUFvQm5DLEtBQUtLLGlCQUN6QnVCLGlCQUFpQk4sTUFDakJjLGdCQUFnQkQsbUJBQW9CLEdBQUc7WUFFN0NkLElBQUlpQixPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUVWLGVBQWUsc0NBQXNDLEVBQUVRLGNBQWMseUJBQXlCLENBQUM7WUFFbkhHLDZCQUE2QjtRQUMvQjtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "0.0.211",
4
+ "version": "0.0.213",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -106,6 +106,13 @@ export default class ReleaseContext {
106
106
  return released;
107
107
  }
108
108
 
109
+ isUnreleased() {
110
+ const released = this.isReleased(),
111
+ unreleased = !released;
112
+
113
+ return unreleased;
114
+ }
115
+
109
116
  getTypePrefix() {
110
117
  let typePrefix = null;
111
118
 
package/src/context.js CHANGED
@@ -21,6 +21,8 @@ export default class Context {
21
21
 
22
22
  isReleased() { return this.context.isReleased(); }
23
23
 
24
+ isUnreleased() { return this.context.isUnreleased(); }
25
+
24
26
  getReleaseContext() { return this.context.getReleaseContext(); }
25
27
 
26
28
  nodesAsString(node) { return this.context.nodesAsString(node); }
@@ -274,9 +274,9 @@ function checkProjectDependencyOfPackage(releaseContext, dependentReleased, depe
274
274
  let projectDependencyOfPackage = false;
275
275
 
276
276
  if (dependentReleased) {
277
- const released = releaseContext.isReleased();
277
+ const unreleased = releaseContext.isUnreleased();
278
278
 
279
- if (!released) {
279
+ if (unreleased) {
280
280
  const { log } = context,
281
281
  name = releaseContext.getName(),
282
282
  lastDependentName = last(dependentNames),