occam-file-system 5.0.119 → 5.0.120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/file.js CHANGED
@@ -43,10 +43,11 @@ function _defineProperty(obj, key, value) {
43
43
  return obj;
44
44
  }
45
45
  var File = /*#__PURE__*/ function() {
46
- function File(path, content) {
46
+ function File(path, content, released) {
47
47
  _classCallCheck(this, File);
48
48
  this.path = path;
49
49
  this.content = content;
50
+ this.released = released;
50
51
  }
51
52
  _createClass(File, [
52
53
  {
@@ -61,6 +62,12 @@ var File = /*#__PURE__*/ function() {
61
62
  return this.content;
62
63
  }
63
64
  },
65
+ {
66
+ key: "isReleased",
67
+ value: function isReleased() {
68
+ return this.released;
69
+ }
70
+ },
64
71
  {
65
72
  key: "isFile",
66
73
  value: function isFile() {
@@ -87,13 +94,20 @@ var File = /*#__PURE__*/ function() {
87
94
  this.content = content;
88
95
  }
89
96
  },
97
+ {
98
+ key: "setReleased",
99
+ value: function setReleased(released) {
100
+ this.released = released;
101
+ }
102
+ },
90
103
  {
91
104
  key: "toJSON",
92
105
  value: function toJSON() {
93
- var type = File.type, path = this.path, content = this.content, json = {
106
+ var type = File.type, path = this.path, content = this.content, released = this.released, json = {
94
107
  type: type,
95
108
  path: path,
96
- content: content
109
+ content: content,
110
+ released: released
97
111
  };
98
112
  return json;
99
113
  }
@@ -107,9 +121,9 @@ var File = /*#__PURE__*/ function() {
107
121
  var type = json.type;
108
122
  if (type === _types.FILE_TYPE) {
109
123
  var content = json.content;
110
- var path = json.path;
124
+ var path = json.path, released = json.released;
111
125
  content = (0, _content.convertContentTabsToWhitespace)(content); ///
112
- file = new File(path, content);
126
+ file = new File(path, content, released);
113
127
  }
114
128
  }
115
129
  return file;
@@ -118,18 +132,18 @@ var File = /*#__PURE__*/ function() {
118
132
  {
119
133
  key: "fromDocument",
120
134
  value: function fromDocument(document) {
121
- var filePath = document.getFilePath(), path = filePath; ///
135
+ var filePath = document.getFilePath(), released = document.isReleased(), path = filePath; ///
122
136
  var content = document.getContent();
123
137
  content = (0, _content.convertContentTabsToWhitespace)(content); ///
124
- var file = new File(path, content);
138
+ var file = new File(path, content, released);
125
139
  return file;
126
140
  }
127
141
  },
128
142
  {
129
- key: "fromPathAndContent",
130
- value: function fromPathAndContent(path, content) {
143
+ key: "fromPathContentAndReleased",
144
+ value: function fromPathContentAndReleased(path, content, released) {
131
145
  content = (0, _content.convertContentTabsToWhitespace)(content); ///
132
- var file = new File(path, content);
146
+ var file = new File(path, content, released);
133
147
  return file;
134
148
  }
135
149
  }
@@ -138,4 +152,4 @@ var File = /*#__PURE__*/ function() {
138
152
  }();
139
153
  _defineProperty(File, "type", _types.FILE_TYPE);
140
154
 
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGSUxFX1RZUEUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRlbnRcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlIHtcbiAgY29uc3RydWN0b3IocGF0aCwgY29udGVudCkge1xuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgdGhpcy5jb250ZW50ID0gY29udGVudDtcbiAgfVxuXG4gIGdldFBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aDtcbiAgfVxuXG4gIGdldENvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudDtcbiAgfVxuXG4gIGlzRmlsZSgpIHtcbiAgICBjb25zdCBmaWxlID0gdHJ1ZTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgaXNEaXJlY3RvcnkoKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5ID0gZmFsc2U7XG5cbiAgICByZXR1cm4gZGlyZWN0b3J5O1xuICB9XG5cbiAgc2V0UGF0aChwYXRoKSB7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgeyB0eXBlIH0gPSBGaWxlLFxuICAgICAgICAgIHBhdGggPSB0aGlzLnBhdGgsXG4gICAgICAgICAgY29udGVudCA9IHRoaXMuY29udGVudCxcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIHR5cGUgPSBGSUxFX1RZUEU7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBsZXQgZmlsZSA9IG51bGw7XG5cbiAgICBpZiAoanNvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgeyB0eXBlIH0gPSBqc29uO1xuXG4gICAgICBpZiAodHlwZSA9PT0gRklMRV9UWVBFKSB7XG4gICAgICAgIGxldCB7IGNvbnRlbnQgfSA9IGpzb247XG5cbiAgICAgICAgY29uc3QgeyBwYXRoIH0gPSBqc29uO1xuXG4gICAgICAgIGNvbnRlbnQgPSBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UoY29udGVudCk7ICAvLy9cblxuICAgICAgICBmaWxlID0gbmV3IEZpbGUocGF0aCwgY29udGVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbURvY3VtZW50KGRvY3VtZW50KSB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBkb2N1bWVudC5nZXRGaWxlUGF0aCgpLFxuICAgICAgICAgIHBhdGggPSBmaWxlUGF0aDsgIC8vL1xuXG4gICAgbGV0IGNvbnRlbnQgPSBkb2N1bWVudC5nZXRDb250ZW50KCk7XG5cbiAgICBjb250ZW50ID0gY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlKGNvbnRlbnQpOyAgLy8vXG5cbiAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUocGF0aCwgY29udGVudCk7XG5cbiAgICByZXR1cm4gZmlsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGF0aEFuZENvbnRlbnQocGF0aCwgY29udGVudCkge1xuICAgIGNvbnRlbnQgPSBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UoY29udGVudCk7ICAvLy9cblxuICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShwYXRoLCBjb250ZW50KTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkZpbGUiLCJwYXRoIiwiY29udGVudCIsImdldFBhdGgiLCJnZXRDb250ZW50IiwiaXNGaWxlIiwiZmlsZSIsImlzRGlyZWN0b3J5IiwiZGlyZWN0b3J5Iiwic2V0UGF0aCIsInNldENvbnRlbnQiLCJ0b0pTT04iLCJ0eXBlIiwianNvbiIsImZyb21KU09OIiwiRklMRV9UWVBFIiwiY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIiwiZnJvbURvY3VtZW50IiwiZG9jdW1lbnQiLCJmaWxlUGF0aCIsImdldEZpbGVQYXRoIiwiZnJvbVBhdGhBbmRDb250ZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUtxQkE7OztxQkFISzt1QkFDcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoQyxJQUFBLEFBQU1BLHFCQUFOO2FBQU1BLEtBQ1BDLElBQUksRUFBRUMsT0FBTzs4QkFETkY7UUFFakIsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBOztpQkFIRUY7O1lBTW5CRyxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVTtnQkFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxhQUFhO2dCQUNYLE9BQU8sSUFBSSxDQUFDRixPQUFPO1lBQ3JCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVM7Z0JBQ1AsSUFBTUMsT0FBTyxJQUFJO2dCQUVqQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWM7Z0JBQ1osSUFBTUMsWUFBWSxLQUFLO2dCQUV2QixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFSLElBQUksRUFBRTtnQkFDWixJQUFJLENBQUNBLElBQUksR0FBR0E7WUFDZDs7O1lBRUFTLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXUixPQUFPLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQ0EsT0FBTyxHQUFHQTtZQUNqQjs7O1lBRUFTLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLElBQU0sQUFBRUMsT0FuQ1NaLEtBbUNUWSxNQUNGWCxPQUFPLElBQUksQ0FBQ0EsSUFBSSxFQUNoQkMsVUFBVSxJQUFJLENBQUNBLE9BQU8sRUFDdEJXLE9BQU87b0JBQ0xELE1BQUFBO29CQUNBWCxNQUFBQTtvQkFDQUMsU0FBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT1c7WUFDVDs7OztZQUlPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUU7Z0JBQ3BCLElBQUlQLE9BQU8sSUFBSTtnQkFFZixJQUFJTyxTQUFTLElBQUksRUFBRTtvQkFDakIsSUFBTSxBQUFFRCxPQUFTQyxLQUFURDtvQkFFUixJQUFJQSxTQUFTRyxnQkFBUyxFQUFFO3dCQUN0QixJQUFJLEFBQUViLFVBQVlXLEtBQVpYO3dCQUVOLElBQU0sQUFBRUQsT0FBU1ksS0FBVFo7d0JBRVJDLFVBQVVjLElBQUFBLHVDQUE4QixFQUFDZCxVQUFXLEdBQUc7d0JBRXZESSxPQUFPLElBOURNTixLQThER0MsTUFBTUM7b0JBQ3hCLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPSTtZQUNUOzs7WUFFT1csS0FBQUE7bUJBQVAsU0FBT0EsYUFBYUMsUUFBUSxFQUFFO2dCQUM1QixJQUFNQyxXQUFXRCxTQUFTRSxXQUFXLElBQy9CbkIsT0FBT2tCLFVBQVcsR0FBRztnQkFFM0IsSUFBSWpCLFVBQVVnQixTQUFTZCxVQUFVO2dCQUVqQ0YsVUFBVWMsSUFBQUEsdUNBQThCLEVBQUNkLFVBQVcsR0FBRztnQkFFdkQsSUFBTUksT0FBTyxJQTdFSU4sS0E2RUtDLE1BQU1DO2dCQUU1QixPQUFPSTtZQUNUOzs7WUFFT2UsS0FBQUE7bUJBQVAsU0FBT0EsbUJBQW1CcEIsSUFBSSxFQUFFQyxPQUFPLEVBQUU7Z0JBQ3ZDQSxVQUFVYyxJQUFBQSx1Q0FBOEIsRUFBQ2QsVUFBVyxHQUFHO2dCQUV2RCxJQUFNSSxPQUFPLElBckZJTixLQXFGS0MsTUFBTUM7Z0JBRTVCLE9BQU9JO1lBQ1Q7OztXQXhGbUJOOztBQStDbkIsZ0JBL0NtQkEsTUErQ1pZLFFBQU9HLGdCQUFTIn0=
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGSUxFX1RZUEUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRlbnRcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlIHtcbiAgY29uc3RydWN0b3IocGF0aCwgY29udGVudCwgcmVsZWFzZWQpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgdGhpcy5yZWxlYXNlZCA9IHJlbGVhc2VkO1xuICB9XG5cbiAgZ2V0UGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoO1xuICB9XG5cbiAgZ2V0Q29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG5cbiAgaXNSZWxlYXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWxlYXNlZDtcbiAgfVxuXG4gIGlzRmlsZSgpIHtcbiAgICBjb25zdCBmaWxlID0gdHJ1ZTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgaXNEaXJlY3RvcnkoKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5ID0gZmFsc2U7XG5cbiAgICByZXR1cm4gZGlyZWN0b3J5O1xuICB9XG5cbiAgc2V0UGF0aChwYXRoKSB7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICBzZXRSZWxlYXNlZChyZWxlYXNlZCkge1xuICAgIHRoaXMucmVsZWFzZWQgPSByZWxlYXNlZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IEZpbGUsXG4gICAgICAgICAgcGF0aCA9IHRoaXMucGF0aCxcbiAgICAgICAgICBjb250ZW50ID0gdGhpcy5jb250ZW50LFxuICAgICAgICAgIHJlbGVhc2VkID0gdGhpcy5yZWxlYXNlZCxcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgcmVsZWFzZWRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgdHlwZSA9IEZJTEVfVFlQRTtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGxldCBmaWxlID0gbnVsbDtcblxuICAgIGlmIChqc29uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IHR5cGUgfSA9IGpzb247XG5cbiAgICAgIGlmICh0eXBlID09PSBGSUxFX1RZUEUpIHtcbiAgICAgICAgbGV0IHsgY29udGVudCB9ID0ganNvbjtcblxuICAgICAgICBjb25zdCB7IHBhdGgsIHJlbGVhc2VkIH0gPSBqc29uO1xuXG4gICAgICAgIGNvbnRlbnQgPSBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UoY29udGVudCk7ICAvLy9cblxuICAgICAgICBmaWxlID0gbmV3IEZpbGUocGF0aCwgY29udGVudCwgcmVsZWFzZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Eb2N1bWVudChkb2N1bWVudCkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gZG9jdW1lbnQuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICByZWxlYXNlZCA9IGRvY3VtZW50LmlzUmVsZWFzZWQoKSxcbiAgICAgICAgICBwYXRoID0gZmlsZVBhdGg7ICAvLy9cblxuICAgIGxldCBjb250ZW50ID0gZG9jdW1lbnQuZ2V0Q29udGVudCgpO1xuXG4gICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xuXG4gICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKSB7XG4gICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xuXG4gICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTtcblxuICAgIHJldHVybiBmaWxlO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkZpbGUiLCJwYXRoIiwiY29udGVudCIsInJlbGVhc2VkIiwiZ2V0UGF0aCIsImdldENvbnRlbnQiLCJpc1JlbGVhc2VkIiwiaXNGaWxlIiwiZmlsZSIsImlzRGlyZWN0b3J5IiwiZGlyZWN0b3J5Iiwic2V0UGF0aCIsInNldENvbnRlbnQiLCJzZXRSZWxlYXNlZCIsInRvSlNPTiIsInR5cGUiLCJqc29uIiwiZnJvbUpTT04iLCJGSUxFX1RZUEUiLCJjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UiLCJmcm9tRG9jdW1lbnQiLCJkb2N1bWVudCIsImZpbGVQYXRoIiwiZ2V0RmlsZVBhdGgiLCJmcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFLcUJBOzs7cUJBSEs7dUJBQ3FCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEMsSUFBQSxBQUFNQSxxQkFBTjthQUFNQSxLQUNQQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTs4QkFEaEJIO1FBRWpCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTs7aUJBSkNIOztZQU9uQkksS0FBQUE7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
@@ -182,9 +182,10 @@ function fileFromProject(path, projectsDirectoryPath) {
182
182
  var file = null;
183
183
  var absolutePath = concatenatePaths(projectsDirectoryPath, path), entryFile = isEntryFile(absolutePath);
184
184
  if (entryFile) {
185
+ var released = false;
185
186
  var content = readFile(absolutePath);
186
187
  content = (0, _content.convertContentTabsToWhitespace)(content); ///
187
- file = _file.default.fromPathAndContent(path, content);
188
+ file = _file.default.fromPathContentAndReleased(path, content, released);
188
189
  }
189
190
  return file;
190
191
  }
@@ -268,4 +269,4 @@ function topmostDirectoryNamesFromProjectsDirectoryPath(projectsDirectoryPath) {
268
269
  return topmostDirectoryNames;
269
270
  }
270
271
 
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMsIHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XHJcblxyXG5pbXBvcnQgRmlsZSBmcm9tIFwiLi4vZmlsZVwiO1xyXG5pbXBvcnQgRmlsZXMgZnJvbSBcIi4uL2ZpbGVzXCI7XHJcbmltcG9ydCBFbnRyaWVzIGZyb20gXCIuLi9lbnRyaWVzXCI7XHJcbmltcG9ydCBQcm9qZWN0IGZyb20gXCIuLi9wcm9qZWN0XCI7XHJcbmltcG9ydCBSZWxlYXNlIGZyb20gXCIuLi9yZWxlYXNlXCI7XHJcbmltcG9ydCBQcm9qZWN0cyBmcm9tIFwiLi4vcHJvamVjdHNcIjtcclxuaW1wb3J0IFJlbGVhc2VzIGZyb20gXCIuLi9yZWxlYXNlc1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZW50XCI7XHJcblxyXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcyxcclxuICAgICAgeyBjb25jYXRlbmF0ZVBhdGhzLCB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoLCB0b3Btb3N0RGlyZWN0b3J5UGF0aEZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBmaWxlID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBwYXRoID0gZmlsZS5nZXRQYXRoKCksXHJcbiAgICAgICAgY29udGVudCA9IGZpbGUuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgIGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICB0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoID0gdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aChhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICBta2RpcnAuc3luYyh0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgd3JpdGVGaWxlKGFic29sdXRlUGF0aCwgY29udGVudCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZXMocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlcyA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBwYXRoc0xlbmd0aCA9IHBhdGhzLmxlbmd0aDtcclxuXHJcbiAgICBpZiAocGF0aHNMZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0UGF0aCA9IGZpcnN0KHBhdGhzKSxcclxuICAgICAgICAgICAgcGF0aCA9IGZpcnN0UGF0aCwgLy8vXHJcbiAgICAgICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0b3Btb3N0RGlyZWN0b3J5TmFtZSksXHJcbiAgICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICAgIGZpbGVzID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICAgICBmaWxlc0Zyb21Qcm9qZWN0KHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIDpcclxuICAgICAgICAgICAgICAgICAgICBmaWxlc0Zyb21SZWxlYXNlKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgZW50cmllcyA9IEVudHJpZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICByZXR1cm4gZW50cmllcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWxlYXNlKHJlbGVhc2VOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgcmVsZWFzZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBuYW1lID0gcmVsZWFzZU5hbWUsIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gcmVsZWFzZU5hbWUsICAvLy9cclxuICAgICAgICAgIGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0b3Btb3N0RmlsZU5hbWUpLFxyXG4gICAgICAgICAgZW50cnlGaWxlID0gaXNFbnRyeUZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlGaWxlKSB7XHJcbiAgICAgIGxldCBqc29uLFxyXG4gICAgICAgICAgZW50cmllcztcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAganNvbiA9IEpTT04ucGFyc2UoY29udGVudCk7XHJcblxyXG4gICAgICAoeyBlbnRyaWVzIH0gPSBqc29uKTtcclxuXHJcbiAgICAgIGpzb24gID0gZW50cmllczsgIC8vL1xyXG5cclxuICAgICAgZW50cmllcyA9IEVudHJpZXMuZnJvbUpTT04oanNvbik7XHJcblxyXG4gICAgICByZWxlYXNlID0gUmVsZWFzZS5mcm9tTmFtZUFuZEVudHJpZXMobmFtZSwgZW50cmllcyk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlbGVhc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdChwcm9qZWN0TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGxldCBwcm9qZWN0ID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IG5hbWUgPSBwcm9qZWN0TmFtZSwgIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwcm9qZWN0TmFtZSwgLy8vXHJcbiAgICAgICAgICBlbnRyaWVzID0gbG9hZEVudHJpZXModG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICAgIHByb2plY3QgPSBQcm9qZWN0LmZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gcHJvamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWxlYXNlcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCByZWxlYXNlcyA9IFJlbGVhc2VzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgdG9wbW9zdEZpbGVOYW1lcyA9IHRvcG1vc3RGaWxlTmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgcmVsZWFzZU5hbWVzID0gdG9wbW9zdEZpbGVOYW1lczsgIC8vL1xyXG5cclxuICByZWxlYXNlTmFtZXMuZm9yRWFjaCgocmVsZWFzZU5hbWUpID0+IHtcclxuICAgIGNvbnN0IHJlbGVhc2UgPSBsb2FkUmVsZWFzZShyZWxlYXNlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICBpZiAocmVsZWFzZSAhPT0gbnVsbCkge1xyXG4gICAgICByZWxlYXNlcy5hZGRSZWxlYXNlKHJlbGVhc2UpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IHByb2plY3RzID0gUHJvamVjdHMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgcHJvamVjdE5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzOyAvLy9cclxuXHJcbiAgcHJvamVjdE5hbWVzLmZvckVhY2goKHByb2plY3ROYW1lKSA9PiB7XHJcbiAgICBjb25zdCBwcm9qZWN0ID0gbG9hZFByb2plY3QocHJvamVjdE5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICAgIGlmIChwcm9qZWN0ICE9PSBudWxsKSB7XHJcbiAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBwcm9qZWN0cztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREaXJlY3RvcnkocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGRpcmVjdG9yeSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LmZyb21QYXRoKHBhdGgpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBkaXJlY3Rvcnk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBsb2FkRmlsZSxcclxuICBzYXZlRmlsZSxcclxuICBsb2FkRmlsZXMsXHJcbiAgc2F2ZUZpbGVzLFxyXG4gIGxvYWRFbnRyaWVzLFxyXG4gIGxvYWRSZWxlYXNlLFxyXG4gIGxvYWRQcm9qZWN0LFxyXG4gIGxvYWRSZWxlYXNlcyxcclxuICBsb2FkUHJvamVjdHMsXHJcbiAgbG9hZERpcmVjdG9yeVxyXG59O1xyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGgpLFxyXG4gICAgICAgIGVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gIGlmIChlbnRyeUZpbGUpIHtcclxuICAgIGxldCBjb250ZW50ID0gcmVhZEZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBjb250ZW50ID0gY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlKGNvbnRlbnQpOyAgLy8vXHJcblxyXG4gICAgZmlsZSA9IEZpbGUuZnJvbVBhdGhBbmRDb250ZW50KHBhdGgsIGNvbnRlbnQpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGVGcm9tUmVsZWFzZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgocGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWUsIC8vL1xyXG4gICAgICAgIHJlbGVhc2UgPSBsb2FkUmVsZWFzZSh0b3Btb3N0RmlsZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgZmlsZSA9IHJlbGVhc2UuZ2V0RmlsZShwYXRoKTtcclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGVzRnJvbVByb2plY3QocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IGZpbGVzID0gRmlsZXMuZnJvbU5vdGhpbmcoKTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGZpbGVGcm9tUHJvamVjdChwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIGZpbGVzLmFkZEZpbGUoZmlsZSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBmaWxlcztcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZXNGcm9tUmVsZWFzZShwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgZmlsZXMgPSBGaWxlcy5mcm9tTm90aGluZygpLFxyXG4gICAgICAgIHBhdGhzTGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xyXG5cclxuICBpZiAocGF0aHNMZW5ndGggPiAwKSB7XHJcbiAgICBjb25zdCBmaXJzdFBhdGggPSBmaXJzdChwYXRocyksXHJcbiAgICAgICAgICBwYXRoID0gZmlyc3RQYXRoLCAvLy9cclxuICAgICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKSxcclxuICAgICAgICAgIHRvcG1vc3RGaWxlTmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAvLy9cclxuICAgICAgICAgIHJlbGVhc2UgPSBsb2FkUmVsZWFzZSh0b3Btb3N0RmlsZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgICBjb25zdCBmaWxlID0gcmVsZWFzZS5nZXRGaWxlKHBhdGgpO1xyXG5cclxuICAgICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzID0gIWxvYWRPbmx5UmVjb2duaXNlZEZpbGVzO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGxvYWREaXJlY3RvcnkocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChkaXJlY3RvcnkgIT09IG51bGwpIHtcclxuICAgICAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gcGF0aDsgLy8vXHJcblxyXG4gICAgICAgIGlmIChsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICAgICAgZW50cmllcy5hZGREaXJlY3RvcnkoZGlyZWN0b3J5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIGRpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpOyAvLy9cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gbG9hZEZpbGUocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGUgIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5nZXRQYXRoKCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCA9IGlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgoZmlsZVBhdGgpLFxyXG4gICAgICAgICAgICAgICAgZmlsZVJlY29nbmlzZWRGaWxlID0gZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGg7ICAvLy9cclxuXHJcbiAgICAgICAgICBpZiAoZmlsZVJlY29nbmlzZWRGaWxlIHx8IGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICAgIGVudHJpZXMuYWRkRmlsZShmaWxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHRvcG1vc3RGaWxlTmFtZXM7XHJcblxyXG4gIGNvbnN0IHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHRvcG1vc3RGaWxlTmFtZXMgPSBzdWJFbnRyeU5hbWVzLnJlZHVjZSgodG9wbW9zdEZpbGVOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKTtcclxuXHJcbiAgICBpZiAoIXN1YkVudHJ5TmFtZUhpZGRlbk5hbWUpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlGaWxlID0gaXNFbnRyeUZpbGUoYWJzb2x1dGVTdWJFbnRyeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHN1YkVudHJ5RmlsZSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3RGaWxlTmFtZSA9IHN1YkVudHJ5TmFtZTsgIC8vL1xyXG5cclxuICAgICAgICB0b3Btb3N0RmlsZU5hbWVzLnB1c2godG9wbW9zdEZpbGVOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3RGaWxlTmFtZXM7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gdG9wbW9zdEZpbGVOYW1lcztcclxufVxyXG5cclxuZnVuY3Rpb24gdG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG5cclxuICBjb25zdCBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSBzdWJFbnRyeU5hbWVzLnJlZHVjZSgodG9wbW9zdERpcmVjdG9yeU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVTdWJFbnRyeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHN1YkVudHJ5RGlyZWN0b3J5KSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSBzdWJFbnRyeU5hbWU7ICAvLy9cclxuXHJcbiAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWVzLnB1c2godG9wbW9zdERpcmVjdG9yeU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxufVxyXG4iXSwibmFtZXMiOlsibG9hZEZpbGUiLCJzYXZlRmlsZSIsImxvYWRGaWxlcyIsInNhdmVGaWxlcyIsImxvYWRFbnRyaWVzIiwibG9hZFJlbGVhc2UiLCJsb2FkUHJvamVjdCIsImxvYWRSZWxlYXNlcyIsImxvYWRQcm9qZWN0cyIsImxvYWREaXJlY3RvcnkiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwicmVhZEZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwid3JpdGVGaWxlIiwiaXNFbnRyeUZpbGUiLCJyZWFkRGlyZWN0b3J5IiwiaXNFbnRyeURpcmVjdG9yeSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCIsInRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgiLCJwYXRoIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwiZmlsZSIsInRvcG1vc3REaXJlY3RvcnlOYW1lIiwiYWJzb2x1dGVQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJmaWxlRnJvbVByb2plY3QiLCJmaWxlRnJvbVJlbGVhc2UiLCJlcnJvciIsImdldFBhdGgiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInRvcG1vc3RBYnNvbHV0ZURpcmVjdG9yeVBhdGgiLCJta2RpcnAiLCJzeW5jIiwicGF0aHMiLCJmaWxlcyIsInBhdGhzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RQYXRoIiwiZmlsZXNGcm9tUHJvamVjdCIsImZpbGVzRnJvbVJlbGVhc2UiLCJmb3JFYWNoRmlsZSIsImxvYWRPbmx5UmVjb2duaXNlZEZpbGVzIiwiZW50cmllcyIsIkVudHJpZXMiLCJmcm9tTm90aGluZyIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwicmVsZWFzZU5hbWUiLCJyZWxlYXNlIiwibmFtZSIsInRvcG1vc3RGaWxlTmFtZSIsImVudHJ5RmlsZSIsImpzb24iLCJKU09OIiwicGFyc2UiLCJmcm9tSlNPTiIsIlJlbGVhc2UiLCJmcm9tTmFtZUFuZEVudHJpZXMiLCJwcm9qZWN0TmFtZSIsInByb2plY3QiLCJQcm9qZWN0IiwicmVsZWFzZXMiLCJSZWxlYXNlcyIsInRvcG1vc3RGaWxlTmFtZXMiLCJ0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aCIsInJlbGVhc2VOYW1lcyIsImZvckVhY2giLCJhZGRSZWxlYXNlIiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJwcm9qZWN0TmFtZXMiLCJhZGRQcm9qZWN0IiwiZGlyZWN0b3J5IiwiRGlyZWN0b3J5IiwiZnJvbVBhdGgiLCJjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UiLCJGaWxlIiwiZnJvbVBhdGhBbmRDb250ZW50IiwiZ2V0RmlsZSIsIkZpbGVzIiwiYWRkRmlsZSIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZGlyZWN0b3J5UGF0aCIsImFkZERpcmVjdG9yeSIsImZpbGVQYXRoIiwiZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVJlY29nbmlzZWRGaWxlIiwicmVkdWNlIiwiYWJzb2x1dGVTdWJFbnRyeVBhdGgiLCJzdWJFbnRyeUZpbGUiLCJwdXNoIiwic3ViRW50cnlEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXVCZ0JBLFFBQVE7ZUFBUkE7O0lBcUJBQyxRQUFRO2VBQVJBOztJQVdBQyxTQUFTO2VBQVRBOztJQTJCQUMsU0FBUztlQUFUQTs7SUFNQUMsV0FBVztlQUFYQTs7SUFTQUMsV0FBVztlQUFYQTs7SUFnQ0FDLFdBQVc7ZUFBWEE7O0lBZ0JBQyxZQUFZO2VBQVpBOztJQWdCQUMsWUFBWTtlQUFaQTs7SUFnQkFDLGFBQWE7ZUFBYkE7O0lBaUJoQixPQVdFO2VBWEY7OzsyREFoTW1CO3lCQUVnRDt5REFFbEQ7MERBQ0M7NERBQ0U7NERBQ0E7NERBQ0E7NkRBQ0M7NkRBQ0E7OERBQ0M7b0JBRVc7d0JBQ1k7dUJBQ0U7Ozs7OztBQUUvQyxJQUFNLEFBQUVDLFFBQVVDLHlCQUFjLENBQXhCRCxPQUNBRSxXQUFzRUMsOEJBQW1CLENBQXpGRCxVQUFVRSxZQUE0REQsOEJBQW1CLENBQS9FQyxXQUFXQyxjQUFpREYsOEJBQW1CLENBQXBFRSxhQUFhQyxnQkFBb0NILDhCQUFtQixDQUF2REcsZUFBZUMsbUJBQXFCSiw4QkFBbUIsQ0FBeENJLGtCQUNqREMsbUJBQWlGQyx3QkFBYSxDQUE5RkQsa0JBQWtCRSwrQkFBK0RELHdCQUFhLENBQTVFQyw4QkFBOEJDLCtCQUFpQ0Ysd0JBQWEsQ0FBOUNFO0FBRWpELFNBQVNyQixTQUFTc0IsSUFBSSxFQUFFQyxxQkFBcUIsRUFBRTtJQUNwRCxJQUFJQyxPQUFPLElBQUk7SUFFZixJQUFJO1FBQ0YsSUFBTUMsdUJBQXVCTCw2QkFBNkJFO1FBRTFELElBQUlHLHlCQUF5QixJQUFJLEVBQUU7WUFDakMsSUFBTUMsZUFBZVIsaUJBQWlCSyx1QkFBdUJFLHVCQUN2REUsaUJBQWlCVixpQkFBaUJTO1lB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
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMsIHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XHJcblxyXG5pbXBvcnQgRmlsZSBmcm9tIFwiLi4vZmlsZVwiO1xyXG5pbXBvcnQgRmlsZXMgZnJvbSBcIi4uL2ZpbGVzXCI7XHJcbmltcG9ydCBFbnRyaWVzIGZyb20gXCIuLi9lbnRyaWVzXCI7XHJcbmltcG9ydCBQcm9qZWN0IGZyb20gXCIuLi9wcm9qZWN0XCI7XHJcbmltcG9ydCBSZWxlYXNlIGZyb20gXCIuLi9yZWxlYXNlXCI7XHJcbmltcG9ydCBQcm9qZWN0cyBmcm9tIFwiLi4vcHJvamVjdHNcIjtcclxuaW1wb3J0IFJlbGVhc2VzIGZyb20gXCIuLi9yZWxlYXNlc1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZW50XCI7XHJcblxyXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcyxcclxuICAgICAgeyBjb25jYXRlbmF0ZVBhdGhzLCB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoLCB0b3Btb3N0RGlyZWN0b3J5UGF0aEZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBmaWxlID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBwYXRoID0gZmlsZS5nZXRQYXRoKCksXHJcbiAgICAgICAgY29udGVudCA9IGZpbGUuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgIGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICB0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoID0gdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aChhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICBta2RpcnAuc3luYyh0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgd3JpdGVGaWxlKGFic29sdXRlUGF0aCwgY29udGVudCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZXMocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlcyA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBwYXRoc0xlbmd0aCA9IHBhdGhzLmxlbmd0aDtcclxuXHJcbiAgICBpZiAocGF0aHNMZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0UGF0aCA9IGZpcnN0KHBhdGhzKSxcclxuICAgICAgICAgICAgcGF0aCA9IGZpcnN0UGF0aCwgLy8vXHJcbiAgICAgICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0b3Btb3N0RGlyZWN0b3J5TmFtZSksXHJcbiAgICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICAgIGZpbGVzID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICAgICBmaWxlc0Zyb21Qcm9qZWN0KHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIDpcclxuICAgICAgICAgICAgICAgICAgICBmaWxlc0Zyb21SZWxlYXNlKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgZW50cmllcyA9IEVudHJpZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICByZXR1cm4gZW50cmllcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWxlYXNlKHJlbGVhc2VOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgcmVsZWFzZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBuYW1lID0gcmVsZWFzZU5hbWUsIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gcmVsZWFzZU5hbWUsICAvLy9cclxuICAgICAgICAgIGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0b3Btb3N0RmlsZU5hbWUpLFxyXG4gICAgICAgICAgZW50cnlGaWxlID0gaXNFbnRyeUZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlGaWxlKSB7XHJcbiAgICAgIGxldCBqc29uLFxyXG4gICAgICAgICAgZW50cmllcztcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAganNvbiA9IEpTT04ucGFyc2UoY29udGVudCk7XHJcblxyXG4gICAgICAoeyBlbnRyaWVzIH0gPSBqc29uKTtcclxuXHJcbiAgICAgIGpzb24gID0gZW50cmllczsgIC8vL1xyXG5cclxuICAgICAgZW50cmllcyA9IEVudHJpZXMuZnJvbUpTT04oanNvbik7XHJcblxyXG4gICAgICByZWxlYXNlID0gUmVsZWFzZS5mcm9tTmFtZUFuZEVudHJpZXMobmFtZSwgZW50cmllcyk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlbGVhc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdChwcm9qZWN0TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGxldCBwcm9qZWN0ID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IG5hbWUgPSBwcm9qZWN0TmFtZSwgIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwcm9qZWN0TmFtZSwgLy8vXHJcbiAgICAgICAgICBlbnRyaWVzID0gbG9hZEVudHJpZXModG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICAgIHByb2plY3QgPSBQcm9qZWN0LmZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gcHJvamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWxlYXNlcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCByZWxlYXNlcyA9IFJlbGVhc2VzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgdG9wbW9zdEZpbGVOYW1lcyA9IHRvcG1vc3RGaWxlTmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgcmVsZWFzZU5hbWVzID0gdG9wbW9zdEZpbGVOYW1lczsgIC8vL1xyXG5cclxuICByZWxlYXNlTmFtZXMuZm9yRWFjaCgocmVsZWFzZU5hbWUpID0+IHtcclxuICAgIGNvbnN0IHJlbGVhc2UgPSBsb2FkUmVsZWFzZShyZWxlYXNlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICBpZiAocmVsZWFzZSAhPT0gbnVsbCkge1xyXG4gICAgICByZWxlYXNlcy5hZGRSZWxlYXNlKHJlbGVhc2UpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IHByb2plY3RzID0gUHJvamVjdHMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgcHJvamVjdE5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzOyAvLy9cclxuXHJcbiAgcHJvamVjdE5hbWVzLmZvckVhY2goKHByb2plY3ROYW1lKSA9PiB7XHJcbiAgICBjb25zdCBwcm9qZWN0ID0gbG9hZFByb2plY3QocHJvamVjdE5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICAgIGlmIChwcm9qZWN0ICE9PSBudWxsKSB7XHJcbiAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBwcm9qZWN0cztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREaXJlY3RvcnkocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGRpcmVjdG9yeSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LmZyb21QYXRoKHBhdGgpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBkaXJlY3Rvcnk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBsb2FkRmlsZSxcclxuICBzYXZlRmlsZSxcclxuICBsb2FkRmlsZXMsXHJcbiAgc2F2ZUZpbGVzLFxyXG4gIGxvYWRFbnRyaWVzLFxyXG4gIGxvYWRSZWxlYXNlLFxyXG4gIGxvYWRQcm9qZWN0LFxyXG4gIGxvYWRSZWxlYXNlcyxcclxuICBsb2FkUHJvamVjdHMsXHJcbiAgbG9hZERpcmVjdG9yeVxyXG59O1xyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGgpLFxyXG4gICAgICAgIGVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gIGlmIChlbnRyeUZpbGUpIHtcclxuICAgIGNvbnN0IHJlbGVhc2VkID0gZmFsc2U7XHJcblxyXG4gICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGNvbnRlbnQgPSBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UoY29udGVudCk7ICAvLy9cclxuXHJcbiAgICBmaWxlID0gRmlsZS5mcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZChwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKSxcclxuICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZSwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHRvcG1vc3RGaWxlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBmaWxlID0gcmVsZWFzZS5nZXRGaWxlKHBhdGgpO1xyXG5cclxuICByZXR1cm4gZmlsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZXNGcm9tUHJvamVjdChwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgZmlsZXMgPSBGaWxlcy5mcm9tTm90aGluZygpO1xyXG5cclxuICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlID0gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlc0Zyb21SZWxlYXNlKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBmaWxlcyA9IEZpbGVzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgcGF0aHNMZW5ndGggPSBwYXRocy5sZW5ndGg7XHJcblxyXG4gIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IGZpcnN0UGF0aCA9IGZpcnN0KHBhdGhzKSxcclxuICAgICAgICAgIHBhdGggPSBmaXJzdFBhdGgsIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpLFxyXG4gICAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWUsIC8vL1xyXG4gICAgICAgICAgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHRvcG1vc3RGaWxlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSByZWxlYXNlLmdldEZpbGUocGF0aCk7XHJcblxyXG4gICAgICBmaWxlcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IGFic29sdXRlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgIHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KGFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHN1YkVudHJ5TmFtZXMuZm9yRWFjaCgoc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMgPSAhbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXM7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgICAgZGlyZWN0b3J5ID0gbG9hZERpcmVjdG9yeShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKGRpcmVjdG9yeSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBwYXRoOyAvLy9cclxuXHJcbiAgICAgICAgaWYgKGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICBlbnRyaWVzLmFkZERpcmVjdG9yeShkaXJlY3RvcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cmllcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgdG9wbW9zdEZpbGVOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdEZpbGVOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RmlsZU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlGaWxlKSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdEZpbGVOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3RGaWxlTmFtZXMucHVzaCh0b3Btb3N0RmlsZU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdEZpbGVOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RmlsZU5hbWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcblxyXG4gIGNvbnN0IHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RGlyZWN0b3J5TmFtZXMsIHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3QgYWJzb2x1dGVTdWJFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSk7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHN1YkVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHN1YkVudHJ5TmFtZTsgIC8vL1xyXG5cclxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMucHVzaCh0b3Btb3N0RGlyZWN0b3J5TmFtZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJsb2FkRmlsZSIsInNhdmVGaWxlIiwibG9hZEZpbGVzIiwic2F2ZUZpbGVzIiwibG9hZEVudHJpZXMiLCJsb2FkUmVsZWFzZSIsImxvYWRQcm9qZWN0IiwibG9hZFJlbGVhc2VzIiwibG9hZFByb2plY3RzIiwibG9hZERpcmVjdG9yeSIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJyZWFkRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJ3cml0ZUZpbGUiLCJpc0VudHJ5RmlsZSIsInJlYWREaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIiwidG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJhYnNvbHV0ZVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImZpbGVGcm9tUHJvamVjdCIsImZpbGVGcm9tUmVsZWFzZSIsImVycm9yIiwiZ2V0UGF0aCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwidG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCIsIm1rZGlycCIsInN5bmMiLCJwYXRocyIsImZpbGVzIiwicGF0aHNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFBhdGgiLCJmaWxlc0Zyb21Qcm9qZWN0IiwiZmlsZXNGcm9tUmVsZWFzZSIsImZvckVhY2hGaWxlIiwibG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMiLCJlbnRyaWVzIiwiRW50cmllcyIsImZyb21Ob3RoaW5nIiwicmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJyZWxlYXNlTmFtZSIsInJlbGVhc2UiLCJuYW1lIiwidG9wbW9zdEZpbGVOYW1lIiwiZW50cnlGaWxlIiwianNvbiIsIkpTT04iLCJwYXJzZSIsImZyb21KU09OIiwiUmVsZWFzZSIsImZyb21OYW1lQW5kRW50cmllcyIsInByb2plY3ROYW1lIiwicHJvamVjdCIsIlByb2plY3QiLCJyZWxlYXNlcyIsIlJlbGVhc2VzIiwidG9wbW9zdEZpbGVOYW1lcyIsInRvcG1vc3RGaWxlTmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoIiwicmVsZWFzZU5hbWVzIiwiZm9yRWFjaCIsImFkZFJlbGVhc2UiLCJwcm9qZWN0cyIsIlByb2plY3RzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aCIsInByb2plY3ROYW1lcyIsImFkZFByb2plY3QiLCJkaXJlY3RvcnkiLCJEaXJlY3RvcnkiLCJmcm9tUGF0aCIsInJlbGVhc2VkIiwiY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIiwiRmlsZSIsImZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkIiwiZ2V0RmlsZSIsIkZpbGVzIiwiYWRkRmlsZSIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZGlyZWN0b3J5UGF0aCIsImFkZERpcmVjdG9yeSIsImZpbGVQYXRoIiwiZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVJlY29nbmlzZWRGaWxlIiwicmVkdWNlIiwiYWJzb2x1dGVTdWJFbnRyeVBhdGgiLCJzdWJFbnRyeUZpbGUiLCJwdXNoIiwic3ViRW50cnlEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXVCZ0JBLFFBQVE7ZUFBUkE7O0lBcUJBQyxRQUFRO2VBQVJBOztJQVdBQyxTQUFTO2VBQVRBOztJQTJCQUMsU0FBUztlQUFUQTs7SUFNQUMsV0FBVztlQUFYQTs7SUFTQUMsV0FBVztlQUFYQTs7SUFnQ0FDLFdBQVc7ZUFBWEE7O0lBZ0JBQyxZQUFZO2VBQVpBOztJQWdCQUMsWUFBWTtlQUFaQTs7SUFnQkFDLGFBQWE7ZUFBYkE7O0lBaUJoQixPQVdFO2VBWEY7OzsyREFoTW1CO3lCQUVnRDt5REFFbEQ7MERBQ0M7NERBQ0U7NERBQ0E7NERBQ0E7NkRBQ0M7NkRBQ0E7OERBQ0M7b0JBRVc7d0JBQ1k7dUJBQ0U7Ozs7OztBQUUvQyxJQUFNLEFBQUVDLFFBQVVDLHlCQUFjLENBQXhCRCxPQUNBRSxXQUFzRUMsOEJBQW1CLENBQXpGRCxVQUFVRSxZQUE0REQsOEJBQW1CLENBQS9FQyxXQUFXQyxjQUFpREYsOEJBQW1CLENBQXBFRSxhQUFhQyxnQkFBb0NILDhCQUFtQixDQUF2REcsZUFBZUMsbUJBQXFCSiw4QkFBbUIsQ0FBeENJLGtCQUNqREMsbUJBQWlGQyx3QkFBYSxDQUE5RkQsa0JBQWtCRSwrQkFBK0RELHdCQUFhLENBQTVFQyw4QkFBOEJDLCtCQUFpQ0Ysd0JBQWEsQ0FBOUNFO0FBRWpELFNBQVNyQixTQUFTc0IsSUFBSSxFQUFFQyxxQkFBcUIsRUFBRTtJQUNwRCxJQUFJQyxPQUFPLElBQUk7SUFFZixJQUFJO1FBQ0YsSUFBTUMsdUJBQXVCTCw2QkFBNkJFO1FBRTFELElBQUlHLHlCQUF5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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-file-system",
3
3
  "author": "James Smith",
4
- "version": "5.0.119",
4
+ "version": "5.0.120",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-file-system",
7
7
  "description": "Occam's file system functionality.",
package/src/file.js CHANGED
@@ -4,9 +4,10 @@ import { FILE_TYPE } from "./types";
4
4
  import { convertContentTabsToWhitespace } from "./utilities/content"
5
5
 
6
6
  export default class File {
7
- constructor(path, content) {
7
+ constructor(path, content, released) {
8
8
  this.path = path;
9
9
  this.content = content;
10
+ this.released = released;
10
11
  }
11
12
 
12
13
  getPath() {
@@ -17,6 +18,10 @@ export default class File {
17
18
  return this.content;
18
19
  }
19
20
 
21
+ isReleased() {
22
+ return this.released;
23
+ }
24
+
20
25
  isFile() {
21
26
  const file = true;
22
27
 
@@ -37,14 +42,20 @@ export default class File {
37
42
  this.content = content;
38
43
  }
39
44
 
45
+ setReleased(released) {
46
+ this.released = released;
47
+ }
48
+
40
49
  toJSON() {
41
50
  const { type } = File,
42
51
  path = this.path,
43
52
  content = this.content,
53
+ released = this.released,
44
54
  json = {
45
55
  type,
46
56
  path,
47
- content
57
+ content,
58
+ released
48
59
  };
49
60
 
50
61
  return json;
@@ -61,11 +72,11 @@ export default class File {
61
72
  if (type === FILE_TYPE) {
62
73
  let { content } = json;
63
74
 
64
- const { path } = json;
75
+ const { path, released } = json;
65
76
 
66
77
  content = convertContentTabsToWhitespace(content); ///
67
78
 
68
- file = new File(path, content);
79
+ file = new File(path, content, released);
69
80
  }
70
81
  }
71
82
 
@@ -74,21 +85,22 @@ export default class File {
74
85
 
75
86
  static fromDocument(document) {
76
87
  const filePath = document.getFilePath(),
88
+ released = document.isReleased(),
77
89
  path = filePath; ///
78
90
 
79
91
  let content = document.getContent();
80
92
 
81
93
  content = convertContentTabsToWhitespace(content); ///
82
94
 
83
- const file = new File(path, content);
95
+ const file = new File(path, content, released);
84
96
 
85
97
  return file;
86
98
  }
87
99
 
88
- static fromPathAndContent(path, content) {
100
+ static fromPathContentAndReleased(path, content, released) {
89
101
  content = convertContentTabsToWhitespace(content); ///
90
102
 
91
- const file = new File(path, content);
103
+ const file = new File(path, content, released);
92
104
 
93
105
  return file;
94
106
  }
@@ -212,11 +212,13 @@ function fileFromProject(path, projectsDirectoryPath) {
212
212
  entryFile = isEntryFile(absolutePath);
213
213
 
214
214
  if (entryFile) {
215
+ const released = false;
216
+
215
217
  let content = readFile(absolutePath);
216
218
 
217
219
  content = convertContentTabsToWhitespace(content); ///
218
220
 
219
- file = File.fromPathAndContent(path, content);
221
+ file = File.fromPathContentAndReleased(path, content, released);
220
222
  }
221
223
 
222
224
  return file;