@cloudbase/ai 4.0.0 → 4.0.1-alpha.1

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.
Files changed (83) hide show
  1. package/.eslintrc.js +1 -0
  2. package/CHANGELOG.md +1164 -0
  3. package/dist/cjs/AI.d.ts +6 -3
  4. package/dist/cjs/AI.js +67 -24
  5. package/dist/cjs/bot/index.js +1 -1
  6. package/dist/cjs/errors.d.ts +10 -0
  7. package/dist/cjs/errors.js +38 -0
  8. package/dist/cjs/index.d.ts +7 -3
  9. package/dist/cjs/index.js +22 -8
  10. package/dist/cjs/models/Ark/index.js +1 -1
  11. package/dist/cjs/models/DashScope/index.js +1 -1
  12. package/dist/cjs/models/DeepSeek/index.js +1 -1
  13. package/dist/cjs/models/Default/index.js +1 -1
  14. package/dist/cjs/models/HunYuan/index.js +1 -1
  15. package/dist/cjs/models/HunYuan/util.js +1 -1
  16. package/dist/cjs/models/HunYuanBeta/index.js +1 -1
  17. package/dist/cjs/models/HunYuanExp/index.js +1 -1
  18. package/dist/cjs/models/HunYuanOpen/index.js +1 -1
  19. package/dist/cjs/models/Moonshot/index.js +1 -1
  20. package/dist/cjs/models/Yi/index.js +1 -1
  21. package/dist/cjs/models/ZhiPu/index.js +1 -1
  22. package/dist/cjs/models/image-model.d.ts +19 -0
  23. package/dist/cjs/models/image-model.js +106 -0
  24. package/dist/cjs/models/index.d.ts +2 -1
  25. package/dist/cjs/models/index.js +4 -2
  26. package/dist/cjs/models/model.js +1 -1
  27. package/dist/cjs/type.d.ts +81 -0
  28. package/dist/cjs/type.js +1 -1
  29. package/dist/cjs/utils.d.ts +1 -1
  30. package/dist/cjs/utils.js +9 -4
  31. package/dist/esm/AI.d.ts +6 -3
  32. package/dist/esm/AI.js +67 -24
  33. package/dist/esm/bot/index.js +1 -1
  34. package/dist/esm/errors.d.ts +10 -0
  35. package/dist/esm/errors.js +35 -0
  36. package/dist/esm/index.d.ts +7 -3
  37. package/dist/esm/index.js +21 -8
  38. package/dist/esm/models/Ark/index.js +1 -1
  39. package/dist/esm/models/DashScope/index.js +1 -1
  40. package/dist/esm/models/DeepSeek/index.js +1 -1
  41. package/dist/esm/models/Default/index.js +1 -1
  42. package/dist/esm/models/HunYuan/index.js +1 -1
  43. package/dist/esm/models/HunYuan/util.js +1 -1
  44. package/dist/esm/models/HunYuanBeta/index.js +1 -1
  45. package/dist/esm/models/HunYuanExp/index.js +1 -1
  46. package/dist/esm/models/HunYuanOpen/index.js +1 -1
  47. package/dist/esm/models/Moonshot/index.js +1 -1
  48. package/dist/esm/models/Yi/index.js +1 -1
  49. package/dist/esm/models/ZhiPu/index.js +1 -1
  50. package/dist/esm/models/image-model.d.ts +19 -0
  51. package/dist/esm/models/image-model.js +103 -0
  52. package/dist/esm/models/index.d.ts +2 -1
  53. package/dist/esm/models/index.js +3 -2
  54. package/dist/esm/models/model.js +1 -1
  55. package/dist/esm/type.d.ts +81 -0
  56. package/dist/esm/type.js +1 -1
  57. package/dist/esm/utils.d.ts +1 -1
  58. package/dist/esm/utils.js +9 -4
  59. package/dist/miniprogram/index.js +1 -1
  60. package/dist/miniprogram/index.js.LICENSE.txt +2 -2
  61. package/package.json +4 -4
  62. package/src/AI.ts +64 -17
  63. package/src/bot/index.ts +2 -0
  64. package/src/errors.ts +23 -0
  65. package/src/index.ts +27 -7
  66. package/src/models/Ark/index.ts +2 -0
  67. package/src/models/DashScope/index.ts +2 -0
  68. package/src/models/DeepSeek/index.ts +2 -0
  69. package/src/models/Default/index.ts +2 -0
  70. package/src/models/HunYuan/index.ts +2 -0
  71. package/src/models/HunYuan/util.ts +2 -0
  72. package/src/models/HunYuanBeta/index.ts +2 -0
  73. package/src/models/HunYuanExp/index.ts +2 -0
  74. package/src/models/HunYuanOpen/index.ts +2 -0
  75. package/src/models/Moonshot/index.ts +3 -0
  76. package/src/models/Yi/index.ts +2 -0
  77. package/src/models/ZhiPu/index.ts +2 -0
  78. package/src/models/image-model.ts +100 -0
  79. package/src/models/index.ts +2 -0
  80. package/src/models/model.ts +2 -0
  81. package/src/type.ts +216 -1
  82. package/src/utils.ts +21 -4
  83. package/tsconfig.json +1 -1
package/dist/esm/AI.js CHANGED
@@ -51,7 +51,7 @@ import { readableStream2JsonObject } from './utils';
51
51
  import { langEvent } from '@cloudbase/utilities';
52
52
  var MODELS = models.MODELS;
53
53
  var AI = (function () {
54
- function AI(req, baseUrl, i18n) {
54
+ function AI(req, baseUrl, i18n, getBaseUrl) {
55
55
  var _this = this;
56
56
  this.req = req;
57
57
  this.baseUrl = baseUrl;
@@ -72,7 +72,7 @@ var AI = (function () {
72
72
  method: 'post',
73
73
  headers: __assign(__assign((_c = {}, _c[(_d = this.i18n) === null || _d === void 0 ? void 0 : _d.LANG_HEADER_KEY] = (_e = this.i18n) === null || _e === void 0 ? void 0 : _e.lang, _c), fetchHeaders), headers),
74
74
  body: JSON.stringify(data),
75
- url: url,
75
+ url: this.resolveUrl(url),
76
76
  stream: stream,
77
77
  timeout: timeout,
78
78
  })];
@@ -94,15 +94,16 @@ var AI = (function () {
94
94
  })
95
95
  .join('&');
96
96
  }
97
- var _c, fetchHeaders, _d, responseData, header;
97
+ var resolvedUrl, _c, fetchHeaders, _d, responseData, header;
98
98
  var _e;
99
99
  var _f, _g;
100
100
  return __generator(this, function (_h) {
101
101
  switch (_h.label) {
102
102
  case 0:
103
+ resolvedUrl = this.resolveUrl(url);
103
104
  if (!(method === 'get')) return [3, 2];
104
105
  _c = this.handleResponseData;
105
- return [4, this.req.fetch({ url: "".concat(url, "?").concat(objectToParam(data)), method: method, headers: headers, stream: stream, timeout: timeout })];
106
+ return [4, this.req.fetch({ url: "".concat(resolvedUrl, "?").concat(objectToParam(data)), method: method, headers: headers, stream: stream, timeout: timeout })];
106
107
  case 1: return [2, _c.apply(this, [(_h.sent()).data])];
107
108
  case 2:
108
109
  fetchHeaders = {
@@ -110,7 +111,7 @@ var AI = (function () {
110
111
  };
111
112
  stream && Object.assign(fetchHeaders, { Accept: 'text/event-stream' });
112
113
  return [4, this.req.fetch({
113
- url: url,
114
+ url: resolvedUrl,
114
115
  body: JSON.stringify(data),
115
116
  headers: __assign(__assign((_e = {}, _e[(_f = this.i18n) === null || _f === void 0 ? void 0 : _f.LANG_HEADER_KEY] = (_g = this.i18n) === null || _g === void 0 ? void 0 : _g.lang, _e), fetchHeaders), headers),
116
117
  stream: stream,
@@ -124,8 +125,7 @@ var AI = (function () {
124
125
  });
125
126
  });
126
127
  };
127
- this.aiBaseUrl = "".concat(baseUrl, "/ai");
128
- this.aiBotBaseUrl = "".concat(baseUrl, "/aibot");
128
+ this._getBaseUrl = getBaseUrl;
129
129
  this.bot = new Bot(this.botRequest, this.aiBotBaseUrl);
130
130
  this.i18n = i18n;
131
131
  langEvent.bus.on(langEvent.LANG_CHANGE_EVENT, function (params) {
@@ -133,32 +133,63 @@ var AI = (function () {
133
133
  _this.i18n = ((_a = params.data) === null || _a === void 0 ? void 0 : _a.i18n) || _this.i18n;
134
134
  });
135
135
  }
136
+ Object.defineProperty(AI.prototype, "aiBaseUrl", {
137
+ get: function () {
138
+ return "".concat(this._getBaseUrl ? this._getBaseUrl() : this.baseUrl, "/ai");
139
+ },
140
+ enumerable: false,
141
+ configurable: true
142
+ });
143
+ Object.defineProperty(AI.prototype, "aiBotBaseUrl", {
144
+ get: function () {
145
+ return "".concat(this._getBaseUrl ? this._getBaseUrl() : this.baseUrl, "/aibot");
146
+ },
147
+ enumerable: false,
148
+ configurable: true
149
+ });
136
150
  AI.prototype.handleResponseData = function (responseData, header) {
137
151
  var _a, _b;
138
152
  return __awaiter(this, void 0, void 0, function () {
139
- var GO_TO_AI_TEXT, json, json;
140
- return __generator(this, function (_c) {
141
- switch (_c.label) {
153
+ var GO_TO_AI_TEXT, throwIfError, json, _c, isStream, json, json;
154
+ var _this = this;
155
+ return __generator(this, function (_d) {
156
+ switch (_d.label) {
142
157
  case 0:
143
158
  GO_TO_AI_TEXT = "".concat(this.i18n.t('请检查调用方式,或前往云开发 AI+ 首页查看文档'), "\uFF1Ahttps://tcb.cloud.tencent.com/dev#/ai");
144
- if (!(typeof responseData === 'object' && responseData && 'then' in responseData)) return [3, 2];
159
+ throwIfError = function (json) {
160
+ if (typeof json === 'object' && json && 'code' in json && json.code !== 'NORMAL') {
161
+ throw new Error("".concat(_this.i18n.t('AI+ 请求出错,错误码'), "\uFF1A").concat(json.code, "\uFF0C").concat(_this.i18n.t('错误信息'), "\uFF1A").concat(json.message, "\n").concat(GO_TO_AI_TEXT, "\n").concat(JSON.stringify(json, null, 2)));
162
+ }
163
+ };
164
+ if (!(typeof responseData === 'object' && responseData && typeof responseData.getReader !== 'function')) return [3, 4];
165
+ if (!('then' in responseData)) return [3, 2];
145
166
  return [4, responseData];
146
167
  case 1:
147
- json = (_c.sent());
148
- if (typeof json === 'object' && json && 'code' in json && json.code !== 'NORMAL') {
149
- throw new Error("".concat(this.i18n.t('AI+ 请求出错,错误码'), "\uFF1A").concat(json.code, "\uFF0C").concat(this.i18n.t('错误信息'), "\uFF1A").concat(json.message, "\n").concat(GO_TO_AI_TEXT, "\n").concat(JSON.stringify(json, null, 2)));
150
- }
151
- return [2, responseData];
168
+ _c = _d.sent();
169
+ return [3, 3];
152
170
  case 2:
153
- if (!((_b = (_a = header === null || header === void 0 ? void 0 : header.get) === null || _a === void 0 ? void 0 : _a.call(header, 'content-type')) === null || _b === void 0 ? void 0 : _b.includes('application/json'))) return [3, 4];
154
- return [4, readableStream2JsonObject(responseData)];
171
+ _c = responseData;
172
+ _d.label = 3;
155
173
  case 3:
156
- json = _c.sent();
157
- if (typeof json === 'object' && json && 'code' in json && json.code !== 'NORMAL') {
158
- throw new Error("".concat(this.i18n.t('AI+ 请求出错,错误码'), "\uFF1A").concat(json.code, "\uFF0C").concat(this.i18n.t('错误信息'), "\uFF1A").concat(json.message, "\n").concat(GO_TO_AI_TEXT, "\n").concat(JSON.stringify(json, null, 2)));
174
+ json = _c;
175
+ throwIfError(json);
176
+ return [2, responseData];
177
+ case 4:
178
+ isStream = typeof (responseData === null || responseData === void 0 ? void 0 : responseData.getReader) === 'function';
179
+ if (!isStream) {
180
+ json = responseData;
181
+ if (typeof json === 'object' && json && 'code' in json && json.code !== 'NORMAL') {
182
+ throw new Error("".concat(this.i18n.t('AI+ 请求出错,错误码'), "\uFF1A").concat(json.code, "\uFF0C").concat(this.i18n.t('错误信息'), "\uFF1A").concat(json.message, "\n").concat(GO_TO_AI_TEXT, "\n").concat(JSON.stringify(json, null, 2)));
183
+ }
184
+ return [2, responseData];
159
185
  }
160
- _c.label = 4;
161
- case 4: return [2, responseData];
186
+ if (!((_b = (_a = header === null || header === void 0 ? void 0 : header.get) === null || _a === void 0 ? void 0 : _a.call(header, 'content-type')) === null || _b === void 0 ? void 0 : _b.includes('application/json'))) return [3, 6];
187
+ return [4, readableStream2JsonObject(responseData)];
188
+ case 5:
189
+ json = _d.sent();
190
+ throwIfError(json);
191
+ _d.label = 6;
192
+ case 6: return [2, responseData];
162
193
  }
163
194
  });
164
195
  });
@@ -183,13 +214,25 @@ var AI = (function () {
183
214
  }
184
215
  MODELS[name] = model;
185
216
  };
217
+ AI.prototype.createImageModel = function (provider) {
218
+ return new models.DefaultImageModel(this.modelRequest, this.aiBaseUrl, provider);
219
+ };
186
220
  AI.prototype.registerFunctionTool = function (functionTool) {
187
221
  if (models.toolMap.has(functionTool.name)) {
188
222
  console.warn("AI function tool ".concat(functionTool.name, " already exists and will be overwritten!"));
189
223
  }
190
224
  models.toolMap.set(functionTool.name, functionTool.fn);
191
225
  };
226
+ AI.prototype.resolveUrl = function (url) {
227
+ if (!this._getBaseUrl)
228
+ return url;
229
+ var currentBase = this._getBaseUrl();
230
+ if (currentBase !== this.baseUrl && url.startsWith(this.baseUrl)) {
231
+ return url.replace(this.baseUrl, currentBase);
232
+ }
233
+ return url;
234
+ };
192
235
  return AI;
193
236
  }());
194
237
  export { AI };
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQUkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQUkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzNCLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFBO0FBRWxDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFeEMsSUFBQSxNQUFNLEdBQUssTUFBTSxPQUFYLENBQVc7QUFFekI7SUFPRSxZQUFvQixHQUF3QixFQUFTLE9BQWUsRUFBRSxJQUE4QjtRQUFwRyxpQkFTQztRQVRtQixRQUFHLEdBQUgsR0FBRyxDQUFxQjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFrRXBFLGlCQUFZLEdBQW1CLFVBQU8sRUFBdUM7Z0JBQXJDLEdBQUcsU0FBQSxFQUFFLElBQUksVUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE1BQU0sWUFBQSxFQUFFLE9BQU8sYUFBQTs7Ozs7Ozs7NEJBQ25FLFlBQVksR0FBRztnQ0FDbkIsY0FBYyxFQUFFLGtCQUFrQjs2QkFDbkMsQ0FBQTs0QkFFRCxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBOzRCQUU5QixXQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO29DQUMzRCxNQUFNLEVBQUUsTUFBTTtvQ0FDZCxPQUFPLGlDQUFLLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsZUFBZSxJQUFHLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsSUFBSSxPQUFLLFlBQVksR0FBSyxPQUFPLENBQUU7b0NBQ3ZGLElBQUksRUFBRSxJQUFJLENBQUMs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QUFBO0lBQ25CLENBQUM7SUFFRCwwQkFBYSxHQUFiLFVBQWMsSUFBWSxFQUFFLEtBQWlDO1FBQzNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFZLElBQUkscUJBQWtCLENBQUMsQ0FBQTtZQUNoRCxPQUFNO1NBQ1A7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFzREQsaUNBQW9CLEdBQXBCLFVBQXFCLFlBQWdDO1FBQ25ELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQW9CLFlBQVksQ0FBQyxJQUFJLDZDQUEwQyxDQUFDLENBQUE7U0FDOUY7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBQ0gsU0FBQztBQUFELENBQUMsQUFuSUQsSUFtSUM7QUFFRCxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNES1JlcXVlc3RJbnRlcmZhY2UgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQm90IH0gZnJvbSAnLi9ib3QnXG5pbXBvcnQgKiBhcyBtb2RlbHMgZnJvbSAnLi9tb2RlbHMnXG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL3R5cGUnXG5pbXBvcnQgeyByZWFkYWJsZVN0cmVhbTJKc29uT2JqZWN0IH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IElDbG91ZGJhc2VDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgbGFuZ0V2ZW50IH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5cbmNvbnN0IHsgTU9ERUxTIH0gPSBtb2RlbHNcblxuY2xhc3MgQUkge1xuICBwdWJsaWMgYWlCYXNlVXJsOiBzdHJpbmdcbiAgcHVibGljIGFpQm90QmFzZVVybDogc3RyaW5nXG4gIHB1YmxpYyBib3Q6IEJvdFxuICBwdWJsaWMgaTE4bjogSUNsb3VkYmFzZUNvbmZpZ1snaTE4biddXG4gIGRlZmF1bHRIZWFkZXJzOiB7IFt4OiBzdHJpbmddOiBhbnkgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxOiBTREtSZXF1ZXN0SW50ZXJmYWNlLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nLCBpMThuOiBJQ2xvdWRiYXNlQ29uZmlnWydpMThuJ10pIHtcbiAgICB0aGlzLmFpQmFzZVVybCA9IGAke2Jhc2VVcmx9L2FpYFxuICAgIHRoaXMuYWlCb3RCYXNlVXJsID0gYCR7YmFzZVVybH0vYWlib3RgXG4gICAgdGhpcy5ib3QgPSBuZXcgQm90KHRoaXMuYm90UmVxdWVzdCwgdGhpcy5haUJvdEJhc2VVcmwpXG4gICAgdGhpcy5pMThuID0gaTE4blxuXG4gICAgbGFuZ0V2ZW50LmJ1cy5vbihsYW5nRXZlbnQuTEFOR19DSEFOR0VfRVZFTlQsIChwYXJhbXMpID0+IHtcbiAgICAgIHRoaXMuaTE4biA9IHBhcmFtcy5kYXRhPy5pMThuIHx8IHRoaXMuaTE4blxuICAgIH0pXG4gIH1cblxuICBhc3luYyBoYW5kbGVSZXNwb25zZURhdGEocmVzcG9uc2VEYXRhOiBQcm9taXNlPHVua25vd24+IHwgUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4sIGhlYWRlcj86IEhlYWRlcnMpIHtcbiAgICBjb25zdCBHT19UT19BSV9URVhUID0gYCR7dGhpcy5pMThuLnQoJ+ivt+ajgOafpeiwg+eUqOaWueW8j++8jOaIluWJjeW+gOS6keW8gOWPkSBBSSsg6aaW6aG15p+l55yL5paH5qGjJyl977yaaHR0cHM6Ly90Y2IuY2xvdWQudGVuY2VudC5jb20vZGV2Iy9haWBcblxuICAgIGlmICh0eXBlb2YgcmVzcG9uc2VEYXRhID09PSAnb2JqZWN0JyAmJiByZXNwb25zZURhdGEgJiYgJ3RoZW4nIGluIHJlc3BvbnNlRGF0YSkge1xuICAgICAgLy8g6Z2e5rWB5byP6K+35rGC77yM55u05o6l6L+U5ZueIGpzb24g5pWw5o2uXG4gICAgICBjb25zdCBqc29uID0gKGF3YWl0IHJlc3BvbnNlRGF0YSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIGlmICh0eXBlb2YganNvbiA9PT0gJ29iamVjdCcgJiYganNvbiAmJiAnY29kZScgaW4ganNvbiAmJiBqc29uLmNvZGUgIT09ICdOT1JNQUwnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmkxOG4udCgnQUkrIOivt+axguWHuumUme+8jOmUmeivr+eggScpfe+8miR7anNvbi5jb2Rlfe+8jCR7dGhpcy5pMThuLnQoJ+mUmeivr+S/oeaBrycpfe+8miR7XG4gICAgICAgICAganNvbi5tZXNzYWdlXG4gICAgICAgIH1cXG4ke0dPX1RPX0FJX1RFWFR9XFxuJHtKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKX1gLClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YVxuICAgIH1cbiAgICAvLyDmtYHlvI/or7fmsYLvvIzlpoLmnpzmjqXlj6Plh7rplJnvvIzkvJrlj5jmiJDkvKAganNvbiDmoLzlvI/nmoTlk43lupTvvIzpgJrov4cgaGVhZGVyIOWIpOaWreagvOW8j1xuICAgIGlmIChoZWFkZXI/LmdldD8uKCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlYWRhYmxlU3RyZWFtMkpzb25PYmplY3QocmVzcG9uc2VEYXRhIGFzIFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+KVxuICAgICAgaWYgKHR5cGVvZiBqc29uID09PSAnb2JqZWN0JyAmJiBqc29uICYmICdjb2RlJyBpbiBqc29uICYmIGpzb24uY29kZSAhPT0gJ05PUk1BTCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMuaTE4bi50KCdBSSsg6K+35rGC5Ye66ZSZ77yM6ZSZ6K+v56CBJyl977yaJHtqc29uLmNvZGV977yMJHt0aGlzLmkxOG4udCgn6ZSZ6K+v5L+h5oGvJyl977yaJHtcbiAgICAgICAgICBqc29uLm1lc3NhZ2VcbiAgICAgICAgfVxcbiR7R09fVE9fQUlfVEVYVH1cXG4ke0pTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpfWAsKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2VEYXRhXG4gIH1cblxuICBjcmVhdGVNb2RlbChcbiAgICBtb2RlbDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBkZWZhdWx0TW9kZWxTdWJVcmw/OiBzdHJpbmdcbiAgICB9LFxuICApIHtcbiAgICBsZXQgc2ltcGxlTW9kZWw6IHR5cGVzLlNpbXBsZUNoYXRNb2RlbFxuXG4gICAgY29uc3QgU2ltcGxlTW9kZWxDb25zdHJ1Y3RvciA9IE1PREVMU1ttb2RlbF1cbiAgICBpZiAoU2ltcGxlTW9kZWxDb25zdHJ1Y3Rvcikge1xuICAgICAgc2ltcGxlTW9kZWwgPSBuZXcgU2ltcGxlTW9kZWxDb25zdHJ1Y3Rvcih0aGlzLm1vZGVsUmVxdWVzdCwgdGhpcy5haUJhc2VVcmwpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN1YlVybCA9IHR5cGVvZiBvcHRpb25zPy5kZWZhdWx0TW9kZWxTdWJVcmwgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5kZWZhdWx0TW9kZWxTdWJVcmwgOiAnL2NoYXQvY29tcGxldGlvbnMnXG5cbiAgICAgIHNpbXBsZU1vZGVsID0gbmV3IG1vZGVscy5EZWZhdWx0U2ltcGxlTW9kZWwodGhpcy5tb2RlbFJlcXVlc3QsIHRoaXMuYWlCYXNlVXJsLCBgJHttb2RlbH0ke3N1YlVybH1gKVxuICAgIH1cblxuICAgIGNvbnN0IHJlYWN0TW9kZWwgPSBuZXcgbW9kZWxzLlJlYWN0TW9kZWwoc2ltcGxlTW9kZWwpXG4gICAgcmV0dXJuIHJlYWN0TW9kZWxcbiAgfVxuXG4gIHJlZ2lzdGVyTW9kZWwobmFtZTogc3RyaW5nLCBtb2RlbDogdHlwZXMuQ2hhdE1vZGVsQ29uc3RydWN0b3IpIHtcbiAgICBpZiAoTU9ERUxTW25hbWVdICE9IG51bGwpIHtcbiAgICAgIGNvbnNvbGUud2FybihgQUkgbW9kZWwgJHtuYW1lfSBhbHJlYWR5IGV4aXN0cyFgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIE1PREVMU1tuYW1lXSA9IG1vZGVsXG4gIH1cblxuICBtb2RlbFJlcXVlc3Q6IHR5cGVzLk1vZGVsUmVxID0gYXN5bmMgKHsgdXJsLCBkYXRhLCBoZWFkZXJzLCBzdHJlYW0sIHRpbWVvdXQgfSkgPT4ge1xuICAgIGNvbnN0IGZldGNoSGVhZGVycyA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfVxuICAgIC8vIOW4piBBY2NlcHQ6IHRleHQvZXZlbnQtc3RyZWFtICDor7fmsYLlpLTmmL7lvI/mjIflrprmmK8gU1NFIOe7lei/hyA2MHMg55qE6ZmQ5Yi2XG4gICAgc3RyZWFtICYmIE9iamVjdC5hc3NpZ24oZmV0Y2hIZWFkZXJzLCB7IEFjY2VwdDogJ3RleHQvZXZlbnQtc3RyZWFtJyB9KVxuXG4gICAgY29uc3QgeyBkYXRhOiByZXNwb25zZURhdGEsIGhlYWRlciB9ID0gKGF3YWl0IHRoaXMucmVxLmZldGNoKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgaGVhZGVyczogeyBbdGhpcy5pMThuPy5MQU5HX0hFQURFUl9LRVldOiB0aGlzLmkxOG4/LmxhbmcsIC4uLmZldGNoSGVhZGVycywgLi4uaGVhZGVycyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gICAgICB1cmwsXG4gICAgICBzdHJlYW0sXG4gICAgICB0aW1lb3V0LFxuICAgIH0pKSBhcyB7IGRhdGE6IFByb21pc2U8dW5rbm93bj4gfCBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjsgaGVhZGVyPzogSGVhZGVycyB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXNwb25zZURhdGEocmVzcG9uc2VEYXRhLCBoZWFkZXIpIGFzIGFueVxuICB9XG5cbiAgYm90UmVxdWVzdDogdHlwZXMuQm90UmVxID0gYXN5bmMgKHsgbWV0aG9kLCB1cmwsIGRhdGEgPSB7fSwgaGVhZGVycywgc3RyZWFtLCB0aW1lb3V0IH0pID0+IHtcbiAgICBpZiAobWV0aG9kID09PSAnZ2V0Jykge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVzcG9uc2VEYXRhKChhd2FpdCB0aGlzLnJlcS5mZXRjaCh7IHVybDogYCR7dXJsfT8ke29iamVjdFRvUGFyYW0oZGF0YSl9YCwgbWV0aG9kLCBoZWFkZXJzLCBzdHJlYW0sIHRpbWVvdXQgfSkpLmRhdGEsKVxuICAgIH1cblxuICAgIGNvbnN0IGZldGNoSGVhZGVycyA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfVxuICAgIC8vIOW4piBBY2NlcHQ6IHRleHQvZXZlbnQtc3RyZWFtICDor7fmsYLlpLTmmL7lvI/mjIflrprmmK8gU1NFIOe7lei/hyA2MHMg55qE6ZmQ5Yi2XG4gICAgc3RyZWFtICYmIE9iamVjdC5hc3NpZ24oZmV0Y2hIZWFkZXJzLCB7IEFjY2VwdDogJ3RleHQvZXZlbnQtc3RyZWFtJyB9KVxuXG4gICAgY29uc3QgeyBkYXRhOiByZXNwb25zZURhdGEsIGhlYWRlciB9ID0gKGF3YWl0IHRoaXMucmVxLmZldGNoKHtcbiAgICAgIHVybCxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBbdGhpcy5pMThuPy5MQU5HX0hFQURFUl9LRVldOiB0aGlzLmkxOG4/LmxhbmcsXG4gICAgICAgIC4uLmZldGNoSGVhZGVycyxcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBzdHJlYW0sXG4gICAgICBtZXRob2QsXG4gICAgICB0aW1lb3V0LFxuICAgIH0pKSBhcyB7IGRhdGE6IFByb21pc2U8dW5rbm93bj4gfCBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjsgaGVhZGVyPzogSGVhZGVycyB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXNwb25zZURhdGEocmVzcG9uc2VEYXRhLCBoZWFkZXIpIGFzIGFueVxuXG4gICAgZnVuY3Rpb24gb2JqZWN0VG9QYXJhbShvYmo6IE9iamVjdCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iailcbiAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7dmFsdWV9YClcbiAgICAgICAgLmpvaW4oJyYnKVxuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyRnVuY3Rpb25Ub29sKGZ1bmN0aW9uVG9vbDogdHlwZXMuRnVuY3Rpb25Ub29sKSB7XG4gICAgaWYgKG1vZGVscy50b29sTWFwLmhhcyhmdW5jdGlvblRvb2wubmFtZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgQUkgZnVuY3Rpb24gdG9vbCAke2Z1bmN0aW9uVG9vbC5uYW1lfSBhbHJlYWR5IGV4aXN0cyBhbmQgd2lsbCBiZSBvdmVyd3JpdHRlbiFgKVxuICAgIH1cbiAgICBtb2RlbHMudG9vbE1hcC5zZXQoZnVuY3Rpb25Ub29sLm5hbWUsIGZ1bmN0aW9uVG9vbC5mbilcbiAgfVxufVxuXG5leHBvcnQgeyBBSSB9XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQUkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQUkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzNCLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFBO0FBRWxDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFeEMsSUFBQSxNQUFNLEdBQUssTUFBTSxPQUFYLENBQVc7QUFFekI7SUFnQkUsWUFDVSxHQUF3QixFQUN6QixPQUFlLEVBQ3RCLElBQThCLEVBQzlCLFVBQXlCO1FBSjNCLGlCQWFDO1FBWlMsUUFBRyxHQUFILEdBQUcsQ0FBcUI7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQXlGeEIsaUJBQVksR0FBbUIsVUFBTyxFQUF1QztnQkFBckMsR0FBRyxTQUFBLEVBQUUsSUFBSSxVQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsTUFBTSxZQUFBLEVBQUUsT0FBTyxhQUFBOzs7Ozs7Ozs0QkFDbkUsWUFBWSxHQUFHO2dDQUNuQixjQUFjLEVBQUUsa0JBQWtCOzZCQUNuQyxDQUFBOzRCQUVELE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7NEJBRTlCLFdBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0NBQzNELE1BQU0sRUFBRSxNQUFNO29DQUNkLE9BQU8saUNBQUssTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxlQUFlLElBQUcsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxJQUFJLE9BQUssWUFBWSxHQUFLLE9BQU8sQ0FBRTtvQ0FDdkYsSUFBSSxF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QUFHLEtBQUssQ0FBQTtJQUN0QixDQUFDO0lBRUQsNkJBQWdCLEdBQWhCLFVBQTRELFFBQVc7UUFDckUsT0FBTyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBSSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDckYsQ0FBQztJQXVERCxpQ0FBb0IsR0FBcEIsVUFBcUIsWUFBZ0M7UUFDbkQsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekMsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBb0IsWUFBWSxDQUFDLElBQUksNkNBQTBDLENBQUMsQ0FBQTtTQUM5RjtRQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUFHTyx1QkFBVSxHQUFsQixVQUFtQixHQUFXO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sR0FBRyxDQUFBO1FBQ2pDLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUN0QyxJQUFJLFdBQVcsS0FBSyxJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1NBQzlDO1FBQ0QsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDO0lBQ0gsU0FBQztBQUFELENBQUMsQUFoTEQsSUFnTEM7QUFFRCxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBlcWVxZXEgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuaW1wb3J0IHR5cGUgeyBTREtSZXF1ZXN0SW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IEJvdCB9IGZyb20gJy4vYm90J1xuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHsgcmVhZGFibGVTdHJlYW0ySnNvbk9iamVjdCB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IGxhbmdFdmVudCB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuXG5jb25zdCB7IE1PREVMUyB9ID0gbW9kZWxzXG5cbmNsYXNzIEFJIHtcbiAgcHVibGljIGJvdDogQm90XG4gIHB1YmxpYyBpMThuOiBJQ2xvdWRiYXNlQ29uZmlnWydpMThuJ11cbiAgZGVmYXVsdEhlYWRlcnM6IHsgW3g6IHN0cmluZ106IGFueSB9XG4gIHByaXZhdGUgX2dldEJhc2VVcmw/OiAoKSA9PiBzdHJpbmdcblxuICAvKiog5Yqo5oCB6I635Y+WIGFpQmFzZVVybO+8jOaUr+aMgSByZWdpc3RlckVuZFBvaW50V2l0aEtleSDlkI7nq6/ngrnlj5jmm7TnlJ/mlYggKi9cbiAgZ2V0IGFpQmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLl9nZXRCYXNlVXJsID8gdGhpcy5fZ2V0QmFzZVVybCgpIDogdGhpcy5iYXNlVXJsfS9haWBcbiAgfVxuXG4gIC8qKiDliqjmgIHojrflj5YgYWlCb3RCYXNlVXJs77yM5pSv5oyBIHJlZ2lzdGVyRW5kUG9pbnRXaXRoS2V5IOWQjuerr+eCueWPmOabtOeUn+aViCAqL1xuICBnZXQgYWlCb3RCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2dldEJhc2VVcmwgPyB0aGlzLl9nZXRCYXNlVXJsKCkgOiB0aGlzLmJhc2VVcmx9L2FpYm90YFxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgcHVibGljIGJhc2VVcmw6IHN0cmluZyxcbiAgICBpMThuOiBJQ2xvdWRiYXNlQ29uZmlnWydpMThuJ10sXG4gICAgZ2V0QmFzZVVybD86ICgpID0+IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5fZ2V0QmFzZVVybCA9IGdldEJhc2VVcmxcbiAgICB0aGlzLmJvdCA9IG5ldyBCb3QodGhpcy5ib3RSZXF1ZXN0LCB0aGlzLmFpQm90QmFzZVVybClcbiAgICB0aGlzLmkxOG4gPSBpMThuXG5cbiAgICBsYW5nRXZlbnQuYnVzLm9uKGxhbmdFdmVudC5MQU5HX0NIQU5HRV9FVkVOVCwgKHBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5pMThuID0gcGFyYW1zLmRhdGE/LmkxOG4gfHwgdGhpcy5pMThuXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVJlc3BvbnNlRGF0YShyZXNwb25zZURhdGE6IFByb21pc2U8dW5rbm93bj4gfCBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PiwgaGVhZGVyPzogSGVhZGVycykge1xuICAgIGNvbnN0IEdPX1RPX0FJX1RFWFQgPSBgJHt0aGlzLmkxOG4udCgn6K+35qOA5p+l6LCD55So5pa55byP77yM5oiW5YmN5b6A5LqR5byA5Y+RIEFJKyDpppbpobXmn6XnnIvmlofmoaMnKX3vvJpodHRwczovL3RjYi5jbG91ZC50ZW5jZW50LmNvbS9kZXYjL2FpYFxuXG4gICAgY29uc3QgdGhyb3dJZkVycm9yID0gKGpzb246IHVua25vd24pID0+IHtcbiAgICAgIGlmICh0eXBlb2YganNvbiA9PT0gJ29iamVjdCcgJiYganNvbiAmJiAnY29kZScgaW4ganNvbiAmJiAoanNvbiBhcyBhbnkpLmNvZGUgIT09ICdOT1JNQUwnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmkxOG4udCgnQUkrIOivt+axguWHuumUme+8jOmUmeivr+eggScpfe+8miR7KGpzb24gYXMgYW55KS5jb2Rlfe+8jCR7dGhpcy5pMThuLnQoJ+mUmeivr+S/oeaBrycpfe+8miR7XG4gICAgICAgICAgKGpzb24gYXMgYW55KS5tZXNzYWdlXG4gICAgICAgIH1cXG4ke0dPX1RPX0FJX1RFWFR9XFxuJHtKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKX1gLClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDpnZ7mtYHlvI/or7fmsYLvvJpcbiAgICAvLyAtIOWwj+eoi+W6jy9XZWIg6YCC6YWN5Zmo6L+U5ZueIFByb21pc2XvvIhoYXMgJ3RoZW4n77yJXG4gICAgLy8gLSBOb2RlIOmAgumFjeWZqOW3suWwhiBib2R5IOino+aekOS4uuaZrumAmuWvueixoe+8iOaXoCAndGhlbifjgIHml6AgZ2V0UmVhZGVy77yJXG4gICAgLy8g5Lik56eN5oOF5Ya16YO95oyJIEpTT04g5qCh6aqM6ZSZ6K+v56CB5ZCO5Y6f5qC36L+U5ZueXG4gICAgaWYgKHR5cGVvZiByZXNwb25zZURhdGEgPT09ICdvYmplY3QnICYmIHJlc3BvbnNlRGF0YSAmJiB0eXBlb2YgKHJlc3BvbnNlRGF0YSBhcyBhbnkpLmdldFJlYWRlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QganNvbiA9ICd0aGVuJyBpbiByZXNwb25zZURhdGEgPyBhd2FpdCByZXNwb25zZURhdGEgOiByZXNwb25zZURhdGFcbiAgICAgIHRocm93SWZFcnJvcihqc29uKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YVxuICAgIH1cblxuICAgIC8vIOWIpOaWrSByZXNwb25zZURhdGEg5piv5ZCm5pivIFJlYWRhYmxlU3RyZWFtIOWunuS+i++8iOWFvOWuuSBOb2RlLmpzIOmAgumFjeWZqOmdnua1geW8j+WcuuaZr+W3suino+aekOS4uiBKU09OIOWvueixoeeahOaDheWGte+8iVxuICAgIGNvbnN0IGlzU3RyZWFtID0gdHlwZW9mIChyZXNwb25zZURhdGEgYXMgYW55KT8uZ2V0UmVhZGVyID09PSAnZnVuY3Rpb24nXG5cbiAgICBpZiAoIWlzU3RyZWFtKSB7XG4gICAgICAvLyByZXNwb25zZURhdGEg5bey57uP5piv6Kej5p6Q5ZCO55qEIEpTT04g5a+56LGh77yI5aaCIE5vZGUuanMg6YCC6YWN5Zmo6Z2e5rWB5byP6L+U5Zue77yJ77yM55u05o6l5qOA5p+l6ZSZ6K+v56CBXG4gICAgICBjb25zdCBqc29uID0gcmVzcG9uc2VEYXRhIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIGlmICh0eXBlb2YganNvbiA9PT0gJ29iamVjdCcgJiYganNvbiAmJiAnY29kZScgaW4ganNvbiAmJiBqc29uLmNvZGUgIT09ICdOT1JNQUwnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmkxOG4udCgnQUkrIOivt+axguWHuumUme+8jOmUmeivr+eggScpfe+8miR7anNvbi5jb2Rlfe+8jCR7dGhpcy5pMThuLnQoJ+mUmeivr+S/oeaBrycpfe+8miR7XG4gICAgICAgICAganNvbi5tZXNzYWdlXG4gICAgICAgIH1cXG4ke0dPX1RPX0FJX1RFWFR9XFxuJHtKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKX1gLClcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNwb25zZURhdGFcbiAgICB9XG5cbiAgICAvLyDmtYHlvI/or7fmsYLvvIzlpoLmnpzmjqXlj6Plh7rplJnvvIzkvJrlj5jmiJDkvKAganNvbiDmoLzlvI/nmoTlk43lupTvvIzpgJrov4cgaGVhZGVyIOWIpOaWreagvOW8j1xuICAgIGlmIChoZWFkZXI/LmdldD8uKCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlYWRhYmxlU3RyZWFtMkpzb25PYmplY3QocmVzcG9uc2VEYXRhIGFzIFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+KVxuICAgICAgdGhyb3dJZkVycm9yKGpzb24pXG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZURhdGFcbiAgfVxuXG4gIGNyZWF0ZU1vZGVsKFxuICAgIG1vZGVsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGRlZmF1bHRNb2RlbFN1YlVybD86IHN0cmluZ1xuICAgIH0sXG4gICkge1xuICAgIGxldCBzaW1wbGVNb2RlbDogdHlwZXMuU2ltcGxlQ2hhdE1vZGVsXG5cbiAgICBjb25zdCBTaW1wbGVNb2RlbENvbnN0cnVjdG9yID0gTU9ERUxTW21vZGVsXVxuICAgIGlmIChTaW1wbGVNb2RlbENvbnN0cnVjdG9yKSB7XG4gICAgICBzaW1wbGVNb2RlbCA9IG5ldyBTaW1wbGVNb2RlbENvbnN0cnVjdG9yKHRoaXMubW9kZWxSZXF1ZXN0LCB0aGlzLmFpQmFzZVVybClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3ViVXJsID0gdHlwZW9mIG9wdGlvbnM/LmRlZmF1bHRNb2RlbFN1YlVybCA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmRlZmF1bHRNb2RlbFN1YlVybCA6ICcvY2hhdC9jb21wbGV0aW9ucydcblxuICAgICAgc2ltcGxlTW9kZWwgPSBuZXcgbW9kZWxzLkRlZmF1bHRTaW1wbGVNb2RlbCh0aGlzLm1vZGVsUmVxdWVzdCwgdGhpcy5haUJhc2VVcmwsIGAke21vZGVsfSR7c3ViVXJsfWApXG4gICAgfVxuXG4gICAgY29uc3QgcmVhY3RNb2RlbCA9IG5ldyBtb2RlbHMuUmVhY3RNb2RlbChzaW1wbGVNb2RlbClcbiAgICByZXR1cm4gcmVhY3RNb2RlbFxuICB9XG5cbiAgcmVnaXN0ZXJNb2RlbChuYW1lOiBzdHJpbmcsIG1vZGVsOiB0eXBlcy5DaGF0TW9kZWxDb25zdHJ1Y3Rvcikge1xuICAgIGlmIChNT0RFTFNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgY29uc29sZS53YXJuKGBBSSBtb2RlbCAke25hbWV9IGFscmVhZHkgZXhpc3RzIWApXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgTU9ERUxTW25hbWVdID0gbW9kZWxcbiAgfVxuXG4gIGNyZWF0ZUltYWdlTW9kZWw8VCBleHRlbmRzICdodW55dWFuLWltYWdlJyB8IChzdHJpbmcgJiB7fSk+KHByb3ZpZGVyOiBUKSB7XG4gICAgcmV0dXJuIG5ldyBtb2RlbHMuRGVmYXVsdEltYWdlTW9kZWw8VD4odGhpcy5tb2RlbFJlcXVlc3QsIHRoaXMuYWlCYXNlVXJsLCBwcm92aWRlcilcbiAgfVxuXG4gIG1vZGVsUmVxdWVzdDogdHlwZXMuTW9kZWxSZXEgPSBhc3luYyAoeyB1cmwsIGRhdGEsIGhlYWRlcnMsIHN0cmVhbSwgdGltZW91dCB9KSA9PiB7XG4gICAgY29uc3QgZmV0Y2hIZWFkZXJzID0ge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB9XG4gICAgLy8g5bimIEFjY2VwdDogdGV4dC9ldmVudC1zdHJlYW0gIOivt+axguWktOaYvuW8j+aMh+WumuaYryBTU0Ug57uV6L+HIDYwcyDnmoTpmZDliLZcbiAgICBzdHJlYW0gJiYgT2JqZWN0LmFzc2lnbihmZXRjaEhlYWRlcnMsIHsgQWNjZXB0OiAndGV4dC9ldmVudC1zdHJlYW0nIH0pXG5cbiAgICBjb25zdCB7IGRhdGE6IHJlc3BvbnNlRGF0YSwgaGVhZGVyIH0gPSAoYXdhaXQgdGhpcy5yZXEuZmV0Y2goe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBoZWFkZXJzOiB7IFt0aGlzLmkxOG4/LkxBTkdfSEVBREVSX0tFWV06IHRoaXMuaTE4bj8ubGFuZywgLi4uZmV0Y2hIZWFkZXJzLCAuLi5oZWFkZXJzIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgIHVybDogdGhpcy5yZXNvbHZlVXJsKHVybCksXG4gICAgICBzdHJlYW0sXG4gICAgICB0aW1lb3V0LFxuICAgIH0pKSBhcyB7IGRhdGE6IFByb21pc2U8dW5rbm93bj4gfCBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjsgaGVhZGVyPzogSGVhZGVycyB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXNwb25zZURhdGEocmVzcG9uc2VEYXRhLCBoZWFkZXIpIGFzIGFueVxuICB9XG5cbiAgYm90UmVxdWVzdDogdHlwZXMuQm90UmVxID0gYXN5bmMgKHsgbWV0aG9kLCB1cmwsIGRhdGEgPSB7fSwgaGVhZGVycywgc3RyZWFtLCB0aW1lb3V0IH0pID0+IHtcbiAgICBjb25zdCByZXNvbHZlZFVybCA9IHRoaXMucmVzb2x2ZVVybCh1cmwpXG4gICAgaWYgKG1ldGhvZCA9PT0gJ2dldCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlRGF0YSgoYXdhaXQgdGhpcy5yZXEuZmV0Y2goeyB1cmw6IGAke3Jlc29sdmVkVXJsfT8ke29iamVjdFRvUGFyYW0oZGF0YSl9YCwgbWV0aG9kLCBoZWFkZXJzLCBzdHJlYW0sIHRpbWVvdXQgfSkpLmRhdGEsKVxuICAgIH1cblxuICAgIGNvbnN0IGZldGNoSGVhZGVycyA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfVxuICAgIC8vIOW4piBBY2NlcHQ6IHRleHQvZXZlbnQtc3RyZWFtICDor7fmsYLlpLTmmL7lvI/mjIflrprmmK8gU1NFIOe7lei/hyA2MHMg55qE6ZmQ5Yi2XG4gICAgc3RyZWFtICYmIE9iamVjdC5hc3NpZ24oZmV0Y2hIZWFkZXJzLCB7IEFjY2VwdDogJ3RleHQvZXZlbnQtc3RyZWFtJyB9KVxuXG4gICAgY29uc3QgeyBkYXRhOiByZXNwb25zZURhdGEsIGhlYWRlciB9ID0gKGF3YWl0IHRoaXMucmVxLmZldGNoKHtcbiAgICAgIHVybDogcmVzb2x2ZWRVcmwsXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgW3RoaXMuaTE4bj8uTEFOR19IRUFERVJfS0VZXTogdGhpcy5pMThuPy5sYW5nLFxuICAgICAgICAuLi5mZXRjaEhlYWRlcnMsXG4gICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICB9LFxuICAgICAgc3RyZWFtLFxuICAgICAgbWV0aG9kLFxuICAgICAgdGltZW91dCxcbiAgICB9KSkgYXMgeyBkYXRhOiBQcm9taXNlPHVua25vd24+IHwgUmVhZGFibGVTdHJlYW08VWludDhBcnJheT47IGhlYWRlcj86IEhlYWRlcnMgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVzcG9uc2VEYXRhKHJlc3BvbnNlRGF0YSwgaGVhZGVyKSBhcyBhbnlcblxuICAgIGZ1bmN0aW9uIG9iamVjdFRvUGFyYW0ob2JqOiBPYmplY3QpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhvYmopXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlfWApXG4gICAgICAgIC5qb2luKCcmJylcbiAgICB9XG4gIH1cblxuICByZWdpc3RlckZ1bmN0aW9uVG9vbChmdW5jdGlvblRvb2w6IHR5cGVzLkZ1bmN0aW9uVG9vbCkge1xuICAgIGlmIChtb2RlbHMudG9vbE1hcC5oYXMoZnVuY3Rpb25Ub29sLm5hbWUpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYEFJIGZ1bmN0aW9uIHRvb2wgJHtmdW5jdGlvblRvb2wubmFtZX0gYWxyZWFkeSBleGlzdHMgYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4hYClcbiAgICB9XG4gICAgbW9kZWxzLnRvb2xNYXAuc2V0KGZ1bmN0aW9uVG9vbC5uYW1lLCBmdW5jdGlvblRvb2wuZm4pXG4gIH1cblxuICAvKiog5Yqo5oCB5pu/5o2iIFVSTCDkuK3nmoQgb3JpZ2luIOmDqOWIhu+8jOaUr+aMgSByZWdpc3RlckVuZFBvaW50V2l0aEtleSDlkI7nlJ/mlYggKi9cbiAgcHJpdmF0ZSByZXNvbHZlVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX2dldEJhc2VVcmwpIHJldHVybiB1cmxcbiAgICBjb25zdCBjdXJyZW50QmFzZSA9IHRoaXMuX2dldEJhc2VVcmwoKVxuICAgIGlmIChjdXJyZW50QmFzZSAhPT0gdGhpcy5iYXNlVXJsICYmIHVybC5zdGFydHNXaXRoKHRoaXMuYmFzZVVybCkpIHtcbiAgICAgIHJldHVybiB1cmwucmVwbGFjZSh0aGlzLmJhc2VVcmwsIGN1cnJlbnRCYXNlKVxuICAgIH1cbiAgICByZXR1cm4gdXJsXG4gIH1cbn1cblxuZXhwb3J0IHsgQUkgfVxuIl19
@@ -370,4 +370,4 @@ var StreamResult = (function () {
370
370
  });
371
371
  return StreamResult;
372
372
  }());
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYm90L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsc0NBQXNDLEVBQ3RDLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sVUFBVSxDQUFBO0FBRWpCO0lBR0UsYUFBWSxHQUFXLEVBQVMsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDN0MsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBQyxFQUF5QjtnQkFBdkIsSUFBQSxlQUFZLEVBQVosT0FBTyxtQkFBRyxFQUFFLEtBQUEsRUFBSyxJQUFJLGNBQXZCLFdBQXlCLENBQUY7Z0JBQU8sT0FBQSxHQUFHLHVCQUFNLElBQUksS0FBRSxPQUFPLHdCQUFPLE9BQU8sS0FBRSxhQUFhLEVBQUUsaUJBQVUsS0FBSyxDQUFFLE9BQUssQ0FBQTthQUFBLENBQUE7U0FDdEg7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsa0JBQUksR0FBSixVQUFLLEtBQWtCLEVBQUUsT0FBb0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2QsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU87U0FDMUIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJ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QUN6QixJQUFJO3dCQUNGLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO3FCQUN6QjtvQkFBQyxPQUFPLENBQUMsRUFBRTt3QkFDVixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFOzRCQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTt5QkFDNUU7NkJBQU07NEJBQ0wsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFBO3lCQUN2QjtxQkFDRjtnQkFDSCxDQUFDO2FBQ0YsQ0FBQyxDQUFFLENBQUUsQ0FBQTtRQUNSLENBQUM7OztPQUFBO0lBRUQsc0JBQUksb0NBQVU7YUFBZDtZQUNFLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxlQUFlLENBQTZCO2dCQUNyRyxTQUFTLFlBQUMsS0FBSyxFQUFFLFVBQVU7O29CQUN6QixVQUFVLENBQUMsT0FBTyxDQUFDLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sbUNBQUksRUFBRSxDQUFDLENBQUE7Z0JBQzFDLENBQUM7YUFDRixDQUFDLENBQUUsQ0FBRSxDQUFBO1FBQ1IsQ0FBQzs7O09BQUE7SUFDSCxtQkFBQztBQUFELENBQUMsQUE1Q0QsSUE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhcnNlZEV2ZW50IH0gZnJvbSAnLi4vZXZlbnRzb3VyY2VfcGFyc2VyJ1xuaW1wb3J0IHsgQm90UmVxLCBSZXFPcHRpb25zIH0gZnJvbSAnLi4vdHlwZSdcbmltcG9ydCB7XG4gIElCb3RDcmVhdGVDb252ZXJzYXRpb24sXG4gIElCb3REZWxldGVDb252ZXJzYXRpb24sXG4gIElCb3RHZXRDb252ZXJzYXRpb24sXG4gIElCb3RHZXRUZXh0VG9TcGVlY2hSZXN1bHQsXG4gIElCb3RQcmV2aWV3LFxuICBJQm90U2VuZE1lc3NhZ2UsXG4gIElCb3RTcGVlY2hUb1RleHQsXG4gIElCb3RUZXh0VG9TcGVlY2gsXG4gIElCb3RVcGxvYWRGaWxlcyxcbiAgSUNyZWF0ZUJvdCxcbiAgSURlbGV0ZUJvdCxcbiAgSUdlbmVyYXRlQm90LFxuICBJR2VuZXJhdGVJbWFnZSxcbiAgSUdldEJvdCxcbiAgSUdldEJvdENoYXRSZWNvcmRzLFxuICBJR2V0Qm90RmVlZGJhY2ssXG4gIElHZXRCb3RMaXN0LFxuICBJR2V0Qm90UmVjb21tZW5kUXVlc3Rpb25zLFxuICBJU2VuZEJvdEZlZWRiYWNrLFxuICBJVXBkYXRlQm90LFxufSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHtcbiAgY3JlYXRlQXN5bmNJdGVyYWJsZSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBjcmVhdGVFdmVudFNvdXJjZVBhcnNlclRyYW5zZm9ybVN0cmVhbSxcbiAgVGV4dERlY29kZXJTdHJlYW0sXG4gIFRyYW5zZm9ybVN0cmVhbSxcbn0gZnJvbSAnLi4vdXRpbHMnXG5cbmV4cG9ydCBjbGFzcyBCb3Qge1xuICByZXE6IEJvdFJlcVxuXG4gIGNvbnN0cnVjdG9yKHJlcTogQm90UmVxLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgdG9rZW4gPSBhcmd1bWVudHNbMl1cbiAgICBpZiAodHlwZW9mIHRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5yZXEgPSAoeyBoZWFkZXJzID0ge30sIC4uLnJlc3QgfSkgPT4gcmVxKHsgLi4ucmVzdCwgaGVhZGVyczogeyAuLi5oZWFkZXJzLCBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCB9IH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVxID0gcmVxXG4gICAgfVxuICB9XG5cbiAgbGlzdChwcm9wczogSUdldEJvdExpc3QsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IHRoaXMuam9pbignYm90cycpLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBjcmVhdGUoeyBib3RJbmZvIH06IElDcmVhdGVCb3QsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oJ2JvdHMnKSxcbiAgICAgIGRhdGE6IGJvdEluZm8sXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBnZXQoeyBib3RJZCB9OiBJR2V0Qm90LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH1gKSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZSh7IGJvdElkLCBib3RJbmZvIH06IElVcGRhdGVCb3QsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9YCksXG4gICAgICBkYXRhOiBib3RJbmZvLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlKHsgYm90SWQgfTogSURlbGV0ZUJvdCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoeyBtZXRob2Q6ICdkZWxldGUnLCB1cmw6IHRoaXMuam9pbihgYm90cy8ke2JvdElkfWApLCB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0IH0pXG4gIH1cblxuICBnZXRDaGF0UmVjb3Jkcyhwcm9wczogSUdldEJvdENoYXRSZWNvcmRzLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vcmVjb3Jkc2ApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBzZW5kRmVlZGJhY2soeyB1c2VyRmVlZGJhY2sgfTogSVNlbmRCb3RGZWVkYmFjaywgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3VzZXJGZWVkYmFjay5ib3RJZH0vZmVlZGJhY2tgKSxcbiAgICAgIGRhdGE6IHVzZXJGZWVkYmFjayxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGdldEZlZWRiYWNrKHByb3BzOiBJR2V0Qm90RmVlZGJhY2ssIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9mZWVkYmFja2ApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyB1cGxvYWRGaWxlcyhwcm9wczogSUJvdFVwbG9hZEZpbGVzLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7cHJvcHMuYm90SWR9L2ZpbGVzYCksXG4gICAgICBkYXRhOiBwcm9wcyxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnZlcnNhdGlvbih7IGJvdElkLCAuLi5yZXN0IH06IElCb3RDcmVhdGVDb252ZXJzYXRpb24sIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH0vY29udmVyc2F0aW9uYCksXG4gICAgICBkYXRhOiByZXN0LFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0Q29udmVyc2F0aW9uKHsgcGFnZVNpemUgPSAxMCwgcGFnZU51bWJlciA9IDEsIGJvdElkLCAuLi5yZXN0IH06IElCb3RHZXRDb252ZXJzYXRpb24sIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgaWYgKHBhZ2VOdW1iZXIgPCAxKSB0aHJvdyBuZXcgRXJyb3IoJ3BhZ2VOdW1iZXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCcpXG4gICAgY29uc3Qgb2Zmc2V0ID0gcGFnZVNpemUgKiAocGFnZU51bWJlciAtIDEpXG4gICAgY29uc3QgbGltaXQgPSBwYWdlU2l6ZVxuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH0vY29udmVyc2F0aW9uYCksXG4gICAgICBkYXRhOiB7IC4uLnJlc3QsIG9mZnNldCwgbGltaXQgfSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUNvbnZlcnNhdGlvbih7IGJvdElkLCBjb252ZXJzYXRpb25JZCwgLi4ucmVzdCB9OiBJQm90RGVsZXRlQ29udmVyc2F0aW9uLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH0vY29udmVyc2F0aW9uLyR7Y29udmVyc2F0aW9uSWR9YCksXG4gICAgICBkYXRhOiByZXN0LFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgc3BlZWNoVG9UZXh0KHByb3BzOiBJQm90U3BlZWNoVG9UZXh0LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7cHJvcHMuYm90SWR9L3NwZWVjaC10by10ZXh0YCksXG4gICAgICBkYXRhOiBwcm9wcyxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIHRleHRUb1NwZWVjaChwcm9wczogSUJvdFRleHRUb1NwZWVjaCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS90ZXh0LXRvLXNwZWVjaGApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRUZXh0VG9TcGVlY2hSZXN1bHQocHJvcHM6IElCb3RHZXRUZXh0VG9TcGVlY2hSZXN1bHQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS90ZXh0LXRvLXNwZWVjaGApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRSZWNvbW1lbmRRdWVzdGlvbnMocHJvcHM6IElHZXRCb3RSZWNvbW1lbmRRdWVzdGlvbnMsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9yZWNvbW1lbmQtcXVlc3Rpb25zYCksXG4gICAgICBkYXRhOiBwcm9wcyxcbiAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdChyZXMpXG4gIH1cblxuICBhc3luYyBnZW5lcmF0ZUJvdChwcm9wczogSUdlbmVyYXRlQm90LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oJ2dlbmVyYXRlLWJvdCcpLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQocmVzKVxuICB9XG5cbiAgYXN5bmMgZ2V0UHJldmlldyhwcm9wczogSUJvdFByZXZpZXcsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbigncHJldmlldycpLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQocmVzKVxuICB9XG5cbiAgZ2VuZXJhdGVJbWFnZShwcm9wczogSUdlbmVyYXRlSW1hZ2UsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHsgbWV0aG9kOiAncG9zdCcsIHVybDogdGhpcy5qb2luKCdnZW5lcmF0ZS1pbWFnZScpLCBkYXRhOiBwcm9wcywgdGltZW91dDogb3B0aW9ucz8udGltZW91dCB9KVxuICB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UocHJvcHM6IElCb3RTZW5kTWVzc2FnZSwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7cHJvcHMuYm90SWR9L3NlbmQtbWVzc2FnZWApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQocmVzKVxuICB9XG5cbiAgcHJpdmF0ZSBqb2luKHVybDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0vJHt1cmx9YFxuICB9XG59XG5cbnR5cGUgQm90RXZlbnRTdHJlYW1EYXRhID0geyBjb250ZW50OiBzdHJpbmcgfVxuXG5jbGFzcyBTdHJlYW1SZXN1bHQge1xuICBwcml2YXRlIF9ldmVudFNvdXJjZVN0cmVhbTogUmVhZGFibGVTdHJlYW08UGFyc2VkRXZlbnQ+XG5cbiAgY29uc3RydWN0b3IoX3N0cmVhbTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4pIHtcbiAgICBjb25zdCBzdHJlYW0gPSB0b1BvbHlmaWxsUmVhZGFibGUoX3N0cmVhbSkgYXMgdHlwZW9mIF9zdHJlYW1cbiAgICB0aGlzLl9ldmVudFNvdXJjZVN0cmVhbSA9IHN0cmVhbVxuICAgICAgLnBpcGVUaHJvdWdoKG5ldyBUZXh0RGVjb2RlclN0cmVhbSgpKVxuICAgICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUV2ZW50U291cmNlUGFyc2VyVHJhbnNmb3JtU3RyZWFtKCkpXG4gIH1cblxuICBwcml2YXRlIGdldCB0ZWVlZFN0cmVhbSgpIHtcbiAgICBjb25zdCBbczEsIHMyXSA9IHRoaXMuX2V2ZW50U291cmNlU3RyZWFtLnRlZSgpXG4gICAgdGhpcy5fZXZlbnRTb3VyY2VTdHJlYW0gPSBzMlxuICAgIHJldHVybiBzMVxuICB9XG5cbiAgZ2V0IGV2ZW50U291cmNlU3RyZWFtKCkge1xuICAgIHJldHVybiBjcmVhdGVBc3luY0l0ZXJhYmxlKHRoaXMudGVlZWRTdHJlYW0pXG4gIH1cblxuICBnZXQgZGF0YVN0cmVhbSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSh0aGlzLmV2ZW50U291cmNlU3RyZWFtLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW08UGFyc2VkRXZlbnQsIEJvdEV2ZW50U3RyZWFtRGF0YT4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoY2h1bmsuZGF0YSlcbiAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZGF0YSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChjaHVuay5kYXRhICE9PSAnW0RPTkVdJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB3aGVuIHRyYW5zZm9ybWluZyBldmVudCBzb3VyY2UgZGF0YSB0byBqc29uJywgZSwgY2h1bmspXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIudGVybWluYXRlKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSksKSwpXG4gIH1cblxuICBnZXQgdGV4dFN0cmVhbSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSh0aGlzLmRhdGFTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxCb3RFdmVudFN0cmVhbURhdGEsIHN0cmluZz4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuaz8uY29udGVudCA/PyAnJylcbiAgICAgIH0sXG4gICAgfSksKSwpXG4gIH1cbn1cbiJdfQ==
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYm90L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsc0NBQXNDLEVBQ3RDLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sVUFBVSxDQUFBO0FBRWpCO0lBR0UsYUFBWSxHQUFXLEVBQVMsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFFN0MsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBQyxFQUF5QjtnQkFBdkIsSUFBQSxlQUFZLEVBQVosT0FBTyxtQkFBRyxFQUFFLEtBQUEsRUFBSyxJQUFJLGNBQXZCLFdBQXlCLENBQUY7Z0JBQU8sT0FBQSxHQUFHLHVCQUFNLElBQUksS0FBRSxPQUFPLHdCQUFPLE9BQU8sS0FBRSxhQUFhLEVBQUUsaUJBQVUsS0FBSyxDQUFFLE9BQUssQ0FBQTthQUFBLENBQUE7U0FDdEg7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsa0JBQUksR0FBSixVQUFLLEtBQWtCLEVBQUUsT0FBb0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2QsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU87U0FDMUIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJ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QUN6QixJQUFJO3dCQUNGLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO3FCQUN6QjtvQkFBQyxPQUFPLENBQUMsRUFBRTt3QkFDVixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFOzRCQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTt5QkFDNUU7NkJBQU07NEJBQ0wsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFBO3lCQUN2QjtxQkFDRjtnQkFDSCxDQUFDO2FBQ0YsQ0FBQyxDQUFFLENBQUUsQ0FBQTtRQUNSLENBQUM7OztPQUFBO0lBRUQsc0JBQUksb0NBQVU7YUFBZDtZQUNFLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxlQUFlLENBQTZCO2dCQUNyRyxTQUFTLFlBQUMsS0FBSyxFQUFFLFVBQVU7O29CQUN6QixVQUFVLENBQUMsT0FBTyxDQUFDLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sbUNBQUksRUFBRSxDQUFDLENBQUE7Z0JBQzFDLENBQUM7YUFDRixDQUFDLENBQUUsQ0FBRSxDQUFBO1FBQ1IsQ0FBQzs7O09BQUE7SUFDSCxtQkFBQztBQUFELENBQUMsQUE3Q0QsSUE2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhcnNlZEV2ZW50IH0gZnJvbSAnLi4vZXZlbnRzb3VyY2VfcGFyc2VyJ1xuaW1wb3J0IHsgQm90UmVxLCBSZXFPcHRpb25zIH0gZnJvbSAnLi4vdHlwZSdcbmltcG9ydCB7XG4gIElCb3RDcmVhdGVDb252ZXJzYXRpb24sXG4gIElCb3REZWxldGVDb252ZXJzYXRpb24sXG4gIElCb3RHZXRDb252ZXJzYXRpb24sXG4gIElCb3RHZXRUZXh0VG9TcGVlY2hSZXN1bHQsXG4gIElCb3RQcmV2aWV3LFxuICBJQm90U2VuZE1lc3NhZ2UsXG4gIElCb3RTcGVlY2hUb1RleHQsXG4gIElCb3RUZXh0VG9TcGVlY2gsXG4gIElCb3RVcGxvYWRGaWxlcyxcbiAgSUNyZWF0ZUJvdCxcbiAgSURlbGV0ZUJvdCxcbiAgSUdlbmVyYXRlQm90LFxuICBJR2VuZXJhdGVJbWFnZSxcbiAgSUdldEJvdCxcbiAgSUdldEJvdENoYXRSZWNvcmRzLFxuICBJR2V0Qm90RmVlZGJhY2ssXG4gIElHZXRCb3RMaXN0LFxuICBJR2V0Qm90UmVjb21tZW5kUXVlc3Rpb25zLFxuICBJU2VuZEJvdEZlZWRiYWNrLFxuICBJVXBkYXRlQm90LFxufSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHtcbiAgY3JlYXRlQXN5bmNJdGVyYWJsZSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBjcmVhdGVFdmVudFNvdXJjZVBhcnNlclRyYW5zZm9ybVN0cmVhbSxcbiAgVGV4dERlY29kZXJTdHJlYW0sXG4gIFRyYW5zZm9ybVN0cmVhbSxcbn0gZnJvbSAnLi4vdXRpbHMnXG5cbmV4cG9ydCBjbGFzcyBCb3Qge1xuICByZXE6IEJvdFJlcVxuXG4gIGNvbnN0cnVjdG9yKHJlcTogQm90UmVxLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuICAgIGNvbnN0IHRva2VuID0gYXJndW1lbnRzWzJdXG4gICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMucmVxID0gKHsgaGVhZGVycyA9IHt9LCAuLi5yZXN0IH0pID0+IHJlcSh7IC4uLnJlc3QsIGhlYWRlcnM6IHsgLi4uaGVhZGVycywgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAgfSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlcSA9IHJlcVxuICAgIH1cbiAgfVxuXG4gIGxpc3QocHJvcHM6IElHZXRCb3RMaXN0LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oJ2JvdHMnKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgY3JlYXRlKHsgYm90SW5mbyB9OiBJQ3JlYXRlQm90LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKCdib3RzJyksXG4gICAgICBkYXRhOiBib3RJbmZvLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgZ2V0KHsgYm90SWQgfTogSUdldEJvdCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9YCksXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICB1cGRhdGUoeyBib3RJZCwgYm90SW5mbyB9OiBJVXBkYXRlQm90LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke2JvdElkfWApLFxuICAgICAgZGF0YTogYm90SW5mbyxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGRlbGV0ZSh7IGJvdElkIH06IElEZWxldGVCb3QsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHsgbWV0aG9kOiAnZGVsZXRlJywgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH1gKSwgdGltZW91dDogb3B0aW9ucz8udGltZW91dCB9KVxuICB9XG5cbiAgZ2V0Q2hhdFJlY29yZHMocHJvcHM6IElHZXRCb3RDaGF0UmVjb3Jkcywgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7cHJvcHMuYm90SWR9L3JlY29yZHNgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgc2VuZEZlZWRiYWNrKHsgdXNlckZlZWRiYWNrIH06IElTZW5kQm90RmVlZGJhY2ssIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHt1c2VyRmVlZGJhY2suYm90SWR9L2ZlZWRiYWNrYCksXG4gICAgICBkYXRhOiB1c2VyRmVlZGJhY2ssXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBnZXRGZWVkYmFjayhwcm9wczogSUdldEJvdEZlZWRiYWNrLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vZmVlZGJhY2tgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgdXBsb2FkRmlsZXMocHJvcHM6IElCb3RVcGxvYWRGaWxlcywgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9maWxlc2ApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBjcmVhdGVDb252ZXJzYXRpb24oeyBib3RJZCwgLi4ucmVzdCB9OiBJQm90Q3JlYXRlQ29udmVyc2F0aW9uLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9L2NvbnZlcnNhdGlvbmApLFxuICAgICAgZGF0YTogcmVzdCxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldENvbnZlcnNhdGlvbih7IHBhZ2VTaXplID0gMTAsIHBhZ2VOdW1iZXIgPSAxLCBib3RJZCwgLi4ucmVzdCB9OiBJQm90R2V0Q29udmVyc2F0aW9uLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIGlmIChwYWdlTnVtYmVyIDwgMSkgdGhyb3cgbmV3IEVycm9yKCdwYWdlTnVtYmVyIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAnKVxuICAgIGNvbnN0IG9mZnNldCA9IHBhZ2VTaXplICogKHBhZ2VOdW1iZXIgLSAxKVxuICAgIGNvbnN0IGxpbWl0ID0gcGFnZVNpemVcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9L2NvbnZlcnNhdGlvbmApLFxuICAgICAgZGF0YTogeyAuLi5yZXN0LCBvZmZzZXQsIGxpbWl0IH0sXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBkZWxldGVDb252ZXJzYXRpb24oeyBib3RJZCwgY29udmVyc2F0aW9uSWQsIC4uLnJlc3QgfTogSUJvdERlbGV0ZUNvbnZlcnNhdGlvbiwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9L2NvbnZlcnNhdGlvbi8ke2NvbnZlcnNhdGlvbklkfWApLFxuICAgICAgZGF0YTogcmVzdCxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIHNwZWVjaFRvVGV4dChwcm9wczogSUJvdFNwZWVjaFRvVGV4dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9zcGVlY2gtdG8tdGV4dGApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyB0ZXh0VG9TcGVlY2gocHJvcHM6IElCb3RUZXh0VG9TcGVlY2gsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vdGV4dC10by1zcGVlY2hgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0VGV4dFRvU3BlZWNoUmVzdWx0KHByb3BzOiBJQm90R2V0VGV4dFRvU3BlZWNoUmVzdWx0LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vdGV4dC10by1zcGVlY2hgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0UmVjb21tZW5kUXVlc3Rpb25zKHByb3BzOiBJR2V0Qm90UmVjb21tZW5kUXVlc3Rpb25zLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vcmVjb21tZW5kLXF1ZXN0aW9uc2ApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQocmVzKVxuICB9XG5cbiAgYXN5bmMgZ2VuZXJhdGVCb3QocHJvcHM6IElHZW5lcmF0ZUJvdCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKCdnZW5lcmF0ZS1ib3QnKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KHJlcylcbiAgfVxuXG4gIGFzeW5jIGdldFByZXZpZXcocHJvcHM6IElCb3RQcmV2aWV3LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oJ3ByZXZpZXcnKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KHJlcylcbiAgfVxuXG4gIGdlbmVyYXRlSW1hZ2UocHJvcHM6IElHZW5lcmF0ZUltYWdlLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6IHRoaXMuam9pbignZ2VuZXJhdGUtaW1hZ2UnKSwgZGF0YTogcHJvcHMsIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQgfSlcbiAgfVxuXG4gIGFzeW5jIHNlbmRNZXNzYWdlKHByb3BzOiBJQm90U2VuZE1lc3NhZ2UsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9zZW5kLW1lc3NhZ2VgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KHJlcylcbiAgfVxuXG4gIHByaXZhdGUgam9pbih1cmw6IHN0cmluZykge1xuICAgIHJldHVybiBgJHt0aGlzLmJhc2VVcmx9LyR7dXJsfWBcbiAgfVxufVxuXG50eXBlIEJvdEV2ZW50U3RyZWFtRGF0YSA9IHsgY29udGVudDogc3RyaW5nIH1cblxuY2xhc3MgU3RyZWFtUmVzdWx0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBwcml2YXRlIF9ldmVudFNvdXJjZVN0cmVhbTogUmVhZGFibGVTdHJlYW08UGFyc2VkRXZlbnQ+XG5cbiAgY29uc3RydWN0b3IoX3N0cmVhbTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4pIHtcbiAgICBjb25zdCBzdHJlYW0gPSB0b1BvbHlmaWxsUmVhZGFibGUoX3N0cmVhbSkgYXMgdHlwZW9mIF9zdHJlYW1cbiAgICB0aGlzLl9ldmVudFNvdXJjZVN0cmVhbSA9IHN0cmVhbVxuICAgICAgLnBpcGVUaHJvdWdoKG5ldyBUZXh0RGVjb2RlclN0cmVhbSgpKVxuICAgICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUV2ZW50U291cmNlUGFyc2VyVHJhbnNmb3JtU3RyZWFtKCkpXG4gIH1cblxuICBwcml2YXRlIGdldCB0ZWVlZFN0cmVhbSgpIHtcbiAgICBjb25zdCBbczEsIHMyXSA9IHRoaXMuX2V2ZW50U291cmNlU3RyZWFtLnRlZSgpXG4gICAgdGhpcy5fZXZlbnRTb3VyY2VTdHJlYW0gPSBzMlxuICAgIHJldHVybiBzMVxuICB9XG5cbiAgZ2V0IGV2ZW50U291cmNlU3RyZWFtKCkge1xuICAgIHJldHVybiBjcmVhdGVBc3luY0l0ZXJhYmxlKHRoaXMudGVlZWRTdHJlYW0pXG4gIH1cblxuICBnZXQgZGF0YVN0cmVhbSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSh0aGlzLmV2ZW50U291cmNlU3RyZWFtLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW08UGFyc2VkRXZlbnQsIEJvdEV2ZW50U3RyZWFtRGF0YT4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoY2h1bmsuZGF0YSlcbiAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZGF0YSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChjaHVuay5kYXRhICE9PSAnW0RPTkVdJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB3aGVuIHRyYW5zZm9ybWluZyBldmVudCBzb3VyY2UgZGF0YSB0byBqc29uJywgZSwgY2h1bmspXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIudGVybWluYXRlKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSksKSwpXG4gIH1cblxuICBnZXQgdGV4dFN0cmVhbSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSh0aGlzLmRhdGFTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxCb3RFdmVudFN0cmVhbURhdGEsIHN0cmluZz4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuaz8uY29udGVudCA/PyAnJylcbiAgICAgIH0sXG4gICAgfSksKSwpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export declare class InvalidParamsError extends Error {
2
+ code: string;
3
+ field?: string;
4
+ constructor(message: string, field?: string);
5
+ toJSON(): {
6
+ code: string;
7
+ message: string;
8
+ field: string;
9
+ };
10
+ }
@@ -0,0 +1,35 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var InvalidParamsError = (function (_super) {
17
+ __extends(InvalidParamsError, _super);
18
+ function InvalidParamsError(message, field) {
19
+ var _this = _super.call(this, message) || this;
20
+ _this.name = 'InvalidParamsError';
21
+ _this.code = 'INVALID_PARAMS';
22
+ _this.field = field;
23
+ return _this;
24
+ }
25
+ InvalidParamsError.prototype.toJSON = function () {
26
+ return {
27
+ code: this.code,
28
+ message: this.message,
29
+ field: this.field,
30
+ };
31
+ };
32
+ return InvalidParamsError;
33
+ }(Error));
34
+ export { InvalidParamsError };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFJQTtJQUF3QyxzQ0FBSztJQUkzQyw0QkFBWSxPQUFlLEVBQUUsS0FBYztRQUEzQyxZQUNFLGtCQUFNLE9BQU8sQ0FBQyxTQUlmO1FBSEMsS0FBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQTtRQUNoQyxLQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFBO1FBQzVCLEtBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBOztJQUNwQixDQUFDO0lBRUQsbUNBQU0sR0FBTjtRQUNFLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUE7SUFDSCxDQUFDO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBbEJELENBQXdDLEtBQUssR0FrQjVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDlj4LmlbDmoKHpqozplJnor6/nsbtcbiAqIOeUqOS6jue7n+S4gOWPguaVsOagoemqjOmUmeivr+eahOagvOW8j1xuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZFBhcmFtc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgY29kZTogc3RyaW5nXG4gIHB1YmxpYyBmaWVsZD86IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdJbnZhbGlkUGFyYW1zRXJyb3InXG4gICAgdGhpcy5jb2RlID0gJ0lOVkFMSURfUEFSQU1TJ1xuICAgIHRoaXMuZmllbGQgPSBmaWVsZFxuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiB0aGlzLmNvZGUsXG4gICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXG4gICAgICBmaWVsZDogdGhpcy5maWVsZCxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -15,6 +15,7 @@ declare const restModels: {
15
15
  HunYuanExpSimpleModel: typeof models.HunYuanExpSimpleModel;
16
16
  HunYuanOpenSimpleModel: typeof models.HunYuanOpenSimpleModel;
17
17
  DefaultSimpleModel: typeof models.DefaultSimpleModel;
18
+ DefaultImageModel: typeof models.DefaultImageModel;
18
19
  ReactModel: typeof models.ReactModel;
19
20
  toolMap: Map<string, CallableFunction>;
20
21
  };
@@ -22,9 +23,10 @@ interface IHandleRequestInstance {
22
23
  req: SDKRequestInterface;
23
24
  }
24
25
  type HandleRequestInstanceFunc = (options: IHandleRequestInstance) => SDKRequestInterface;
25
- interface ICreateAi {
26
+ interface ICreateAI {
26
27
  req: SDKRequestInterface;
27
28
  baseUrl?: string;
29
+ getBaseUrl?: () => string;
28
30
  env?: string;
29
31
  getAccessToken?: () => Promise<{
30
32
  accessToken: string;
@@ -32,7 +34,9 @@ interface ICreateAi {
32
34
  handleReqInstance?: HandleRequestInstanceFunc;
33
35
  i18n?: ICloudbaseConfig['i18n'];
34
36
  }
35
- declare function createAi({ env, baseUrl, req, getAccessToken, handleReqInstance, i18n }: ICreateAi): AI;
37
+ declare function createAI({ env, baseUrl, getBaseUrl: getBaseUrlFunc, req, getAccessToken, handleReqInstance, i18n }: ICreateAI): AI;
38
+ declare const createAi: typeof createAI;
36
39
  declare function registerAi(app: ICloudbase): void;
37
- export { AI, Bot, createAi, restModels as models, registerAi, utils };
40
+ export { AI, Bot, createAi, createAI, restModels as models, registerAi, utils };
38
41
  export * from './type';
42
+ export * from './errors';
package/dist/esm/index.js CHANGED
@@ -91,9 +91,12 @@ var createRequestInstanceWithAccessTokenHeader = function (_a) {
91
91
  fetch: fetch,
92
92
  };
93
93
  };
94
- function createAi(_a) {
95
- var env = _a.env, baseUrl = _a.baseUrl, req = _a.req, getAccessToken = _a.getAccessToken, handleReqInstance = _a.handleReqInstance, i18n = _a.i18n;
94
+ function createAI(_a) {
95
+ var env = _a.env, baseUrl = _a.baseUrl, getBaseUrlFunc = _a.getBaseUrl, req = _a.req, getAccessToken = _a.getAccessToken, handleReqInstance = _a.handleReqInstance, i18n = _a.i18n;
96
96
  var getBaseUrl = function () {
97
+ if (getBaseUrlFunc != null) {
98
+ return getBaseUrlFunc();
99
+ }
97
100
  if (baseUrl != null) {
98
101
  return baseUrl;
99
102
  }
@@ -111,11 +114,11 @@ function createAi(_a) {
111
114
  }
112
115
  return handleReqInstance({ req: req });
113
116
  };
114
- return new AI(getReq(), getBaseUrl(), i18n);
117
+ return new AI(getReq(), getBaseUrl(), i18n, getBaseUrlFunc);
115
118
  }
119
+ var createAi = createAI;
116
120
  function ai(options) {
117
121
  var _this = this;
118
- var _a;
119
122
  var req = this.request;
120
123
  if (req.fetch == null) {
121
124
  throw new Error('cloudbase.request.fetch() unimplemented!');
@@ -124,8 +127,13 @@ function ai(options) {
124
127
  var _a = _this.getEndPointWithKey('GATEWAY'), BASE_URL = _a.BASE_URL, PROTOCOL = _a.PROTOCOL;
125
128
  return "".concat(PROTOCOL).concat(BASE_URL);
126
129
  };
127
- var baseUrl = (_a = options === null || options === void 0 ? void 0 : options.baseUrl) !== null && _a !== void 0 ? _a : getUrlFromCloud();
128
- return createAi({ req: req, baseUrl: baseUrl, handleReqInstance: function (_a) {
130
+ if (options === null || options === void 0 ? void 0 : options.baseUrl) {
131
+ return createAI({ req: req, baseUrl: options.baseUrl, handleReqInstance: function (_a) {
132
+ var req = _a.req;
133
+ return req;
134
+ }, i18n: this.config.i18n });
135
+ }
136
+ return createAI({ req: req, baseUrl: getUrlFromCloud(), getBaseUrl: getUrlFromCloud, handleReqInstance: function (_a) {
129
137
  var req = _a.req;
130
138
  return req;
131
139
  }, i18n: this.config.i18n });
@@ -142,6 +150,11 @@ function registerAi(app) {
142
150
  console.warn(e);
143
151
  }
144
152
  }
145
- export { AI, Bot, createAi, restModels as models, registerAi, utils };
153
+ export { AI, Bot, createAi, createAI, restModels as models, registerAi, utils };
146
154
  export * from './type';
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUNsQyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQTtBQUVoQyxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUE7QUFFbkIsSUFBQSxNQUFNLEdBQW9CLE1BQU0sT0FBMUIsRUFBSyxVQUFVLFVBQUssTUFBTSxFQUFsQyxVQUF5QixDQUFGLENBQVc7QUFReEMsSUFBTSwwQ0FBMEMsR0FBRyxVQUFDLEVBR2tDO1FBRnBGLGNBQWMsb0JBQUEsRUFDZCxHQUFHLFNBQUE7SUFFSCxJQUFNLEtBQUssR0FBcUIsVUFBTyxPQUEyQzs7Ozs7b0JBQ2hGLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTt3QkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO3FCQUMvQztvQkFFTyxLQUFLLEdBQW1DLE9BQU8sTUFBMUMsRUFBRSxLQUFpQyxPQUFPLFFBQTVCLEVBQVosT0FBTyxtQkFBRyxFQUFFLEtBQUEsRUFBSyxXQUFXLFVBQUssT0FBTyxFQUFqRCxvQkFBdUMsQ0FBRixDQUFZO3lCQUVuRCxDQUFBLEtBQUssSUFBSSxJQUFJLENBQUEsRUFBYixjQUFhO29CQUNmLFdBQVcsR0FBRyxLQUFLLENBQUE7O3dCQUVKLFdBQU0sY0FBYyxFQUFFLEVBQUE7O29CQUFyQyxXQUFXLEdBQUcsQ0FBQyxTQUFzQixDQUFDLENBQUMsV0FBVyxDQUFBOzt3QkFHcEQsV0FBTyxHQUFH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QUUsUUFBUSxFQUFFLFVBQVUsSUFBSSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFBO0FBQ3JFLGNBQWMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJRmV0Y2hPcHRpb25zLCBTREtSZXF1ZXN0SW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB0eXBlIHsgSUNsb3VkYmFzZSwgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IElDbG91ZGJhc2VDb21wb25lbnQgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IEFJIH0gZnJvbSAnLi9BSSdcbmltcG9ydCB7IEJvdCB9IGZyb20gJy4vYm90J1xuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscydcblxuY29uc3QgQ09NUE9ORU5UX05BTUUgPSAnYWknXG5cbmNvbnN0IHsgTU9ERUxTLCAuLi5yZXN0TW9kZWxzIH0gPSBtb2RlbHNcblxuaW50ZXJmYWNlIElIYW5kbGVSZXF1ZXN0SW5zdGFuY2Uge1xuICByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2Vcbn1cblxudHlwZSBIYW5kbGVSZXF1ZXN0SW5zdGFuY2VGdW5jID0gKG9wdGlvbnM6IElIYW5kbGVSZXF1ZXN0SW5zdGFuY2UpID0+IFNES1JlcXVlc3RJbnRlcmZhY2VcblxuY29uc3QgY3JlYXRlUmVxdWVzdEluc3RhbmNlV2l0aEFjY2Vzc1Rva2VuSGVhZGVyID0gKHtcbiAgZ2V0QWNjZXNzVG9rZW4sXG4gIHJlcSxcbn06IElIYW5kbGVSZXF1ZXN0SW5zdGFuY2UgJiB7IGdldEFjY2Vzc1Rva2VuOiAoKSA9PiBQcm9taXNlPHsgYWNjZXNzVG9rZW46IHN0cmluZyB9PiB9KSA9PiB7XG4gIGNvbnN0IGZldGNoOiB0eXBlb2YgcmVxLmZldGNoID0gYXN5bmMgKG9wdGlvbnM6IElGZXRjaE9wdGlvbnMgJiB7IHRva2VuPzogc3RyaW5nIH0pID0+IHtcbiAgICBpZiAodHlwZW9mIHJlcS5mZXRjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXEuZmV0Y2ggaXMgbm90IGEgZnVuY3Rpb24nKVxuICAgIH1cblxuICAgIGNvbnN0IHsgdG9rZW4sIGhlYWRlcnMgPSB7fSwgLi4ucmVzdE9wdGlvbnMgfSA9IG9wdGlvbnNcbiAgICBsZXQgYWNjZXNzVG9rZW46IHN0cmluZ1xuICAgIGlmICh0b2tlbiAhPSBudWxsKSB7XG4gICAgICBhY2Nlc3NUb2tlbiA9IHRva2VuXG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY2Vzc1Rva2VuID0gKGF3YWl0IGdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc1Rva2VuXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcS5mZXRjaCh7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIC4uLnJlc3RPcHRpb25zLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRvd25sb2FkOiByZXEuZG93bmxvYWQsXG4gICAgcG9zdDogcmVxLnBvc3QsXG4gICAgdXBsb2FkOiByZXEudXBsb2FkLFxuICAgIGZldGNoLFxuICB9XG59XG5cbmludGVyZmFjZSBBSUluaXRPcHRpb24ge1xuICBiYXNlVXJsPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBJQ3JlYXRlQWkge1xuICByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2VcbiAgYmFzZVVybD86IHN0cmluZ1xuICBlbnY/OiBzdHJpbmdcbiAgZ2V0QWNjZXNzVG9rZW4/OiAoKSA9PiBQcm9taXNlPHsgYWNjZXNzVG9rZW46IHN0cmluZyB9PlxuICBoYW5kbGVSZXFJbnN0YW5jZT86IEhhbmRsZVJlcXVlc3RJbnN0YW5jZUZ1bmNcbiAgaTE4bj86IElDbG91ZGJhc2VDb25maWdbJ2kxOG4nXVxufVxuXG4vKipcbiAqIOacgOeugOWcsOWIm+W7uuS4gOS4quaOpeS6keW8gOWPkee9keWFs+acjeWKoeeahCBgQUlgIOWunuS+i++8jOivt+axguaXtuS8muiHquWKqOW4puS4iumJtOadg+ivt+axguWktOOAglxuICog5Y+q6ZyA6KaB5Lyg5YWl77yaXG4gKlxuICogLSBgZ2V0QWNjZXNzVG9rZW5gOiDojrflj5YgYWNjZXNzVG9rZW4g55qE5Ye95pWwXG4gKiAtIGByZXFgOiDor7fmsYLlh73mlbDvvIzkuIDoiKzku44gYWRhcHRlciDkuIrmi79cbiAqIC0gYGVudmA6IOS6keW8gOWPkeeOr+WigyBJRFxuICpcbiAqIOWFtuS7luWPguaVsOWPr+aMiemcgOS8oOWFpeimhuebluWHveaVsOmAu+i+keOAglxuICovXG5mdW5jdGlvbiBjcmVhdGVBaSh7IGVudiwgYmFzZVVybCwgcmVxLCBnZXRBY2Nlc3NUb2tlbiwgaGFuZGxlUmVxSW5zdGFuY2UsIGkxOG4gfTogSUNyZWF0ZUFpKSB7XG4gIGNvbnN0IGdldEJhc2VVcmwgPSAoKSA9PiB7XG4gICAgaWYgKGJhc2VVcmwgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGJhc2VVcmxcbiAgICB9XG4gICAgaWYgKGVudiA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BlbnZgIGlzIHJlcXVpcmVkIHdoZW4gYGJhc2VVcmxgIGlzIG5vdCBwcm92aWRlZCEnKVxuICAgIH1cbiAgICByZXR1cm4gYGh0dHBzOi8vJHtlbnZ9LmFwaS50Y2xvdWRiYXNlZ2F0ZXdheS5jb20vdjFgXG4gIH1cblxuICBjb25zdCBnZXRSZXEgPSAoKSA9PiB7XG4gICAgaWYgKGhhbmRsZVJlcUluc3RhbmNlID09IG51bGwpIHtcbiAgICAgIGlmIChnZXRBY2Nlc3NUb2tlbiA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYGdldEFjY2Vzc1Rva2VuYCBpcyByZXF1aXJlZCB3aGVuIGBoYW5kbGVSZXFJbnN0YW5jZWAgaXMgbm90IHByb3ZpZGVkIScpXG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlUmVxdWVzdEluc3RhbmNlV2l0aEFjY2Vzc1Rva2VuSGVhZGVyKHsgcmVxLCBnZXRBY2Nlc3NUb2tlbiB9KVxuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlUmVxSW5zdGFuY2UoeyByZXEgfSlcbiAgfVxuXG4gIHJldHVybiBuZXcgQUkoZ2V0UmVxKCksIGdldEJhc2VVcmwoKSwgaTE4bilcbn1cblxuLyoqXG4gKiDliJvlu7ogYEFJYCDlrp7kvovjgIJcbiAqIOivpeWHveaVsOaMgui9veWcqCBqcyBzZGsg55qEIENsb3VkYmFzZSDlrp7kvovkuIrjgIJcbiAqIOivpeWHveaVsOiwg+eUqOS6huacrOaooeWdl+aatOmcsueahCBgY3JlYXRlQWlgIOWHveaVsO+8jOS9huiwg+eUqOaXtumAmui/h+S8oOWFpeWPguaVsOWBmuS6humAu+i+keimhueblu+8mlxuICpcbiAqIC0g5Lyg5YWl5LuOIENsb3VkYmFzZSDlrp7kvovkuIrnmoTkuK3lv4PnmoQgYHJlcWBcbiAqIC0g5Lyg5YWl5LuOIENsb3VkYmFzZSDlrp7kvovkuIrmi7/liLDnmoQgYGJhc2VVcmxgXG4gKiAtIOS8oOWFpeS4gOS4quS4jeWkhOeQhiBgcmVxYCDnmoQgYGhhbmRsZVJlcUluc3RhbmNlYO+8jOeUseS6jiBgcmVxYCDmmK/ku44gQ2xvdWRiYXNlIOWunuS+i+S4iuaLv+WIsOeahO+8jOi/meS4quS4reW/g+eahCBgcmVxYCDlt7Lnu4/lj6/nlKjkuoZcbiAqIC0g5LiN55So5Lyg5YWlIGBlbnZgIOS6hu+8jOWboOS4uuW3sue7j+S8oOS6hiBgYmFzZVVybGBcbiAqIC0g5LiN55So5Lyg5YWlIGBnZXRBY2Nlc3NUb2tlbmAg5LqG77yM5Zug5Li65Lyg5LqGIGBoYW5kbGVSZXFJbnN0YW5jZWBcbiAqL1xuZnVuY3Rpb24gYWkoXG4gIHRoaXM6IElDbG91ZGJhc2UgJiB7IGdldEVuZFBvaW50V2l0aEtleTogKGtleTogJ0dBVEVXQVknKSA9PiB7IEJBU0VfVVJMOiBzdHJpbmc7IFBST1RPQ09MOiBzdHJpbmcgfSB9LFxuICBvcHRpb25zPzogQUlJbml0T3B0aW9uLFxuKSB7XG4gIGNvbnN0IHJlcSA9IHRoaXMucmVxdWVzdFxuXG4gIGlmIChyZXEuZmV0Y2ggPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xvdWRiYXNlLnJlcXVlc3QuZmV0Y2goKSB1bmltcGxlbWVudGVkIScpXG4gIH1cblxuICBjb25zdCBnZXRVcmxGcm9tQ2xvdWQgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBCQVNFX1VSTCwgUFJPVE9DT0wgfSA9IHRoaXMuZ2V0RW5kUG9pbnRXaXRoS2V5KCdHQVRFV0FZJylcbiAgICByZXR1cm4gYCR7UFJPVE9DT0x9JHtCQVNFX1VSTH1gXG4gIH1cblxuICBjb25zdCBiYXNlVXJsID0gb3B0aW9ucz8uYmFzZVVybCA/PyBnZXRVcmxGcm9tQ2xvdWQoKVxuXG4gIHJldHVybiBjcmVhdGVBaSh7IHJlcSwgYmFzZVVybCwgaGFuZGxlUmVxSW5zdGFuY2U6ICh7IHJlcSB9KSA9PiByZXEsIGkxOG46IHRoaXMuY29uZmlnLmkxOG4gfSlcbn1cblxuY29uc3QgY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50ID0ge1xuICBuYW1lOiBDT01QT05FTlRfTkFNRSxcbiAgZW50aXR5OiB7IGFpIH0sXG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyQWkoYXBwOiBJQ2xvdWRiYXNlKSB7XG4gIHRyeSB7XG4gICAgYXBwLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUud2FybihlKVxuICB9XG59XG5cbmV4cG9ydCB7IEFJLCBCb3QsIGNyZWF0ZUFpLCByZXN0TW9kZWxzIGFzIG1vZGVscywgcmVnaXN0ZXJBaSwgdXRpbHMgfVxuZXhwb3J0ICogZnJvbSAnLi90eXBlJ1xuIl19
155
+ export * from './errors';
156
+ try {
157
+ window.registerAi = registerAi;
158
+ }
159
+ catch (e) { }
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUNsQyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQTtBQUVoQyxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUE7QUFFbkIsSUFBQSxNQUFNLEdBQW9CLE1BQU0sT0FBMUIsRUFBSyxVQUFVLFVBQUssTUFBTSxFQUFsQyxVQUF5QixDQUFGLENBQVc7QUFReEMsSUFBTSwwQ0FBMEMsR0FBRyxVQUFDLEVBR2tDO1FBRnBGLGNBQWMsb0JBQUEsRUFDZCxHQUFHLFNBQUE7SUFFSCxJQUFNLEtBQUssR0FBcUIsVUFBTyxPQUEyQzs7Ozs7b0JBQ2hGLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTt3QkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO3FCQUMvQztvQkFFTyxLQUFLLEdBQW1DLE9BQU8sTUFBMUMsRUFBRSxLQUFpQyxPQUFPLFFBQTVCLEVBQVosT0FBTyxtQkFBRyxFQUFFLEtBQUEsRUFBSyxXQUFXLFVBQUssT0FBTyxFQUFqRCxvQkFBdUMsQ0FBRixDQUFZO3lCQUVuRCxDQUFBLEtBQUssSUFBSSxJQUFJLENBQUEsRUFBYixjQUFhO29CQUNmLFdBQVcsR0FBRyxLQUFLLENBQUE7O3dCQUVKLFdBQU0sY0FBYyxFQUFFLEVBQUE7O29CQUFyQyxXQUFXLEdBQUcsQ0FBQyxTQUFzQixDQUFDLENBQUMsV0FBVyxDQUFBOzt3QkFHcEQsV0FBTyxHQUFH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QyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ2hKLENBQUM7QUFFRCxJQUFNLFNBQVMsR0FBd0I7SUFDckMsSUFBSSxFQUFFLGNBQWM7SUFDcEIsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFBLEVBQUU7Q0FDZixDQUFBO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBZTtJQUNqQyxJQUFJO1FBQ0YsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0tBQ2pDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxJQUFJLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUE7QUFDL0UsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxVQUFVLENBQUE7QUFFeEIsSUFBSTtJQUNELE1BQWMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO0NBQ3hDO0FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuaW1wb3J0IHR5cGUgeyBJRmV0Y2hPcHRpb25zLCBTREtSZXF1ZXN0SW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB0eXBlIHsgSUNsb3VkYmFzZSwgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IElDbG91ZGJhc2VDb21wb25lbnQgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IEFJIH0gZnJvbSAnLi9BSSdcbmltcG9ydCB7IEJvdCB9IGZyb20gJy4vYm90J1xuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscydcblxuY29uc3QgQ09NUE9ORU5UX05BTUUgPSAnYWknXG5cbmNvbnN0IHsgTU9ERUxTLCAuLi5yZXN0TW9kZWxzIH0gPSBtb2RlbHNcblxuaW50ZXJmYWNlIElIYW5kbGVSZXF1ZXN0SW5zdGFuY2Uge1xuICByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2Vcbn1cblxudHlwZSBIYW5kbGVSZXF1ZXN0SW5zdGFuY2VGdW5jID0gKG9wdGlvbnM6IElIYW5kbGVSZXF1ZXN0SW5zdGFuY2UpID0+IFNES1JlcXVlc3RJbnRlcmZhY2VcblxuY29uc3QgY3JlYXRlUmVxdWVzdEluc3RhbmNlV2l0aEFjY2Vzc1Rva2VuSGVhZGVyID0gKHtcbiAgZ2V0QWNjZXNzVG9rZW4sXG4gIHJlcSxcbn06IElIYW5kbGVSZXF1ZXN0SW5zdGFuY2UgJiB7IGdldEFjY2Vzc1Rva2VuOiAoKSA9PiBQcm9taXNlPHsgYWNjZXNzVG9rZW46IHN0cmluZyB9PiB9KSA9PiB7XG4gIGNvbnN0IGZldGNoOiB0eXBlb2YgcmVxLmZldGNoID0gYXN5bmMgKG9wdGlvbnM6IElGZXRjaE9wdGlvbnMgJiB7IHRva2VuPzogc3RyaW5nIH0pID0+IHtcbiAgICBpZiAodHlwZW9mIHJlcS5mZXRjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXEuZmV0Y2ggaXMgbm90IGEgZnVuY3Rpb24nKVxuICAgIH1cblxuICAgIGNvbnN0IHsgdG9rZW4sIGhlYWRlcnMgPSB7fSwgLi4ucmVzdE9wdGlvbnMgfSA9IG9wdGlvbnNcbiAgICBsZXQgYWNjZXNzVG9rZW46IHN0cmluZ1xuICAgIGlmICh0b2tlbiAhPSBudWxsKSB7XG4gICAgICBhY2Nlc3NUb2tlbiA9IHRva2VuXG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY2Vzc1Rva2VuID0gKGF3YWl0IGdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc1Rva2VuXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcS5mZXRjaCh7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIC4uLnJlc3RPcHRpb25zLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRvd25sb2FkOiByZXEuZG93bmxvYWQsXG4gICAgcG9zdDogcmVxLnBvc3QsXG4gICAgdXBsb2FkOiByZXEudXBsb2FkLFxuICAgIGZldGNoLFxuICB9XG59XG5cbmludGVyZmFjZSBBSUluaXRPcHRpb24ge1xuICBiYXNlVXJsPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBJQ3JlYXRlQUkge1xuICByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2VcbiAgYmFzZVVybD86IHN0cmluZ1xuICAvKiog5Yqo5oCB6I635Y+WIGJhc2VVcmwg55qE5Ye95pWw77yM6Iul5o+Q5L6b5YiZ5LyY5YWI5L2/55So77yM5pSv5oyB56uv54K55Y+Y5pu05ZCO6K+35rGC6Ieq5Yqo6Lef6ZqPICovXG4gIGdldEJhc2VVcmw/OiAoKSA9PiBzdHJpbmdcbiAgZW52Pzogc3RyaW5nXG4gIGdldEFjY2Vzc1Rva2VuPzogKCkgPT4gUHJvbWlzZTx7IGFjY2Vzc1Rva2VuOiBzdHJpbmcgfT5cbiAgaGFuZGxlUmVxSW5zdGFuY2U/OiBIYW5kbGVSZXF1ZXN0SW5zdGFuY2VGdW5jXG4gIGkxOG4/OiBJQ2xvdWRiYXNlQ29uZmlnWydpMThuJ11cbn1cblxuLyoqXG4gKiDmnIDnroDlnLDliJvlu7rkuIDkuKrmjqXkupHlvIDlj5HnvZHlhbPmnI3liqHnmoQgYEFJYCDlrp7kvovvvIzor7fmsYLml7bkvJroh6rliqjluKbkuIrpibTmnYPor7fmsYLlpLTjgIJcbiAqIOWPqumcgOimgeS8oOWFpe+8mlxuICpcbiAqIC0gYGdldEFjY2Vzc1Rva2VuYDog6I635Y+WIGFjY2Vzc1Rva2VuIOeahOWHveaVsFxuICogLSBgcmVxYDog6K+35rGC5Ye95pWw77yM5LiA6Iis5LuOIGFkYXB0ZXIg5LiK5ou/XG4gKiAtIGBlbnZgOiDkupHlvIDlj5Hnjq/looMgSURcbiAqXG4gKiDlhbbku5blj4LmlbDlj6/mjInpnIDkvKDlhaXopobnm5blh73mlbDpgLvovpHjgIJcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQUkoeyBlbnYsIGJhc2VVcmwsIGdldEJhc2VVcmw6IGdldEJhc2VVcmxGdW5jLCByZXEsIGdldEFjY2Vzc1Rva2VuLCBoYW5kbGVSZXFJbnN0YW5jZSwgaTE4biB9OiBJQ3JlYXRlQUkpIHtcbiAgY29uc3QgZ2V0QmFzZVVybCA9ICgpID0+IHtcbiAgICBpZiAoZ2V0QmFzZVVybEZ1bmMgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGdldEJhc2VVcmxGdW5jKClcbiAgICB9XG4gICAgaWYgKGJhc2VVcmwgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGJhc2VVcmxcbiAgICB9XG4gICAgaWYgKGVudiA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BlbnZgIGlzIHJlcXVpcmVkIHdoZW4gYGJhc2VVcmxgIGlzIG5vdCBwcm92aWRlZCEnKVxuICAgIH1cbiAgICByZXR1cm4gYGh0dHBzOi8vJHtlbnZ9LmFwaS50Y2xvdWRiYXNlZ2F0ZXdheS5jb20vdjFgXG4gIH1cblxuICBjb25zdCBnZXRSZXEgPSAoKSA9PiB7XG4gICAgaWYgKGhhbmRsZVJlcUluc3RhbmNlID09IG51bGwpIHtcbiAgICAgIGlmIChnZXRBY2Nlc3NUb2tlbiA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYGdldEFjY2Vzc1Rva2VuYCBpcyByZXF1aXJlZCB3aGVuIGBoYW5kbGVSZXFJbnN0YW5jZWAgaXMgbm90IHByb3ZpZGVkIScpXG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlUmVxdWVzdEluc3RhbmNlV2l0aEFjY2Vzc1Rva2VuSGVhZGVyKHsgcmVxLCBnZXRBY2Nlc3NUb2tlbiB9KVxuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlUmVxSW5zdGFuY2UoeyByZXEgfSlcbiAgfVxuXG4gIHJldHVybiBuZXcgQUkoZ2V0UmVxKCksIGdldEJhc2VVcmwoKSwgaTE4biwgZ2V0QmFzZVVybEZ1bmMpXG59XG5cbi8vIOWFvOWuuVxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgYGNyZWF0ZUFJYFxuICovXG5jb25zdCBjcmVhdGVBaSA9IGNyZWF0ZUFJXG5cbi8qKlxuICog5Yib5bu6IGBBSWAg5a6e5L6L44CCXG4gKiDor6Xlh73mlbDmjILovb3lnKgganMgc2RrIOeahCBDbG91ZGJhc2Ug5a6e5L6L5LiK44CCXG4gKiDor6Xlh73mlbDosIPnlKjkuobmnKzmqKHlnZfmmrTpnLLnmoQgYGNyZWF0ZUFJYCDlh73mlbDvvIzkvYbosIPnlKjml7bpgJrov4fkvKDlhaXlj4LmlbDlgZrkuobpgLvovpHopobnm5bvvJpcbiAqXG4gKiAtIOS8oOWFpeS7jiBDbG91ZGJhc2Ug5a6e5L6L5LiK55qE5Lit5b+D55qEIGByZXFgXG4gKiAtIOS8oOWFpeS7jiBDbG91ZGJhc2Ug5a6e5L6L5LiK5ou/5Yiw55qEIGBiYXNlVXJsYFxuICogLSDkvKDlhaXkuIDkuKrkuI3lpITnkIYgYHJlcWAg55qEIGBoYW5kbGVSZXFJbnN0YW5jZWDvvIznlLHkuo4gYHJlcWAg5piv5LuOIENsb3VkYmFzZSDlrp7kvovkuIrmi7/liLDnmoTvvIzov5nkuKrkuK3lv4PnmoQgYHJlcWAg5bey57uP5Y+v55So5LqGXG4gKiAtIOS4jeeUqOS8oOWFpSBgZW52YCDkuobvvIzlm6DkuLrlt7Lnu4/kvKDkuoYgYGJhc2VVcmxgXG4gKiAtIOS4jeeUqOS8oOWFpSBgZ2V0QWNjZXNzVG9rZW5gIOS6hu+8jOWboOS4uuS8oOS6hiBgaGFuZGxlUmVxSW5zdGFuY2VgXG4gKi9cbmZ1bmN0aW9uIGFpKFxuICB0aGlzOiBJQ2xvdWRiYXNlICYgeyBnZXRFbmRQb2ludFdpdGhLZXk6IChrZXk6ICdHQVRFV0FZJykgPT4geyBCQVNFX1VSTDogc3RyaW5nOyBQUk9UT0NPTDogc3RyaW5nIH0gfSxcbiAgb3B0aW9ucz86IEFJSW5pdE9wdGlvbixcbikge1xuICBjb25zdCByZXEgPSB0aGlzLnJlcXVlc3RcblxuICBpZiAocmVxLmZldGNoID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nsb3VkYmFzZS5yZXF1ZXN0LmZldGNoKCkgdW5pbXBsZW1lbnRlZCEnKVxuICB9XG5cbiAgY29uc3QgZ2V0VXJsRnJvbUNsb3VkID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgQkFTRV9VUkwsIFBST1RPQ09MIH0gPSB0aGlzLmdldEVuZFBvaW50V2l0aEtleSgnR0FURVdBWScpXG4gICAgcmV0dXJuIGAke1BST1RPQ09MfSR7QkFTRV9VUkx9YFxuICB9XG5cbiAgLy8g6Iul55So5oi35Lyg5LqG6Z2Z5oCBIGJhc2VVcmwg5YiZ5L2/55So6Z2Z5oCB5YC877yM5ZCm5YiZ5Lyg5YWl5Yqo5oCB6I635Y+W5Ye95pWw5pSv5oyB56uv54K55Y+Y5pu05ZCO55Sf5pWIXG4gIGlmIChvcHRpb25zPy5iYXNlVXJsKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUFJKHsgcmVxLCBiYXNlVXJsOiBvcHRpb25zLmJhc2VVcmwsIGhhbmRsZVJlcUluc3RhbmNlOiAoeyByZXEgfSkgPT4gcmVxLCBpMThuOiB0aGlzLmNvbmZpZy5pMThuIH0pXG4gIH1cblxuICByZXR1cm4gY3JlYXRlQUkoeyByZXEsIGJhc2VVcmw6IGdldFVybEZyb21DbG91ZCgpLCBnZXRCYXNlVXJsOiBnZXRVcmxGcm9tQ2xvdWQsIGhhbmRsZVJlcUluc3RhbmNlOiAoeyByZXEgfSkgPT4gcmVxLCBpMThuOiB0aGlzLmNvbmZpZy5pMThuIH0pXG59XG5cbmNvbnN0IGNvbXBvbmVudDogSUNsb3VkYmFzZUNvbXBvbmVudCA9IHtcbiAgbmFtZTogQ09NUE9ORU5UX05BTUUsXG4gIGVudGl0eTogeyBhaSB9LFxufVxuXG5mdW5jdGlvbiByZWdpc3RlckFpKGFwcDogSUNsb3VkYmFzZSkge1xuICB0cnkge1xuICAgIGFwcC5yZWdpc3RlckNvbXBvbmVudChjb21wb25lbnQpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLndhcm4oZSlcbiAgfVxufVxuXG5leHBvcnQgeyBBSSwgQm90LCBjcmVhdGVBaSwgY3JlYXRlQUksIHJlc3RNb2RlbHMgYXMgbW9kZWxzLCByZWdpc3RlckFpLCB1dGlscyB9XG5leHBvcnQgKiBmcm9tICcuL3R5cGUnXG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycydcblxudHJ5IHtcbiAgKHdpbmRvdyBhcyBhbnkpLnJlZ2lzdGVyQWkgPSByZWdpc3RlckFpXG59IGNhdGNoIChlKSB7fVxuIl19
@@ -124,4 +124,4 @@ var ArkSimpleModel = (function () {
124
124
  return ArkSimpleModel;
125
125
  }());
126
126
  export { ArkSimpleModel };
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL0Fyay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFBO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUF1QyxLQUFLLFNBQTVDLEVBQUUsS0FBSyxHQUFnQyxLQUFLLE1BQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFNUQsNkJBQ0ssS0FBSyxLQUNSLFFBQVEsVUFBQSxFQUNSLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLFdBQVcsYUFBQSxJQUNaO0FBQ0gsQ0FBQztBQUVEO0lBRUUsd0JBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQURsRCxXQUFNLEdBQUcsNkJBQTZCLENBQUE7UUFFM0MsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLCtCQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxtQ0FBVSxHQUF2QixVQUF3QixJQUF3QixFQUFFLE9BQW9COzs7Ozs0QkFDdkQsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO3lCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBMEI7d0JBQzVCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksaUNBQVEsR0FBckIsVUFBc0IsSUFBd0IsRUFBRSxPQUFvQjs7Ozs7O3dCQUM5RCxVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7Z0NBQ1osT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLE9BQU8sR0FBRyxTQVFkO3dCQUNJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQW1CLENBQUE7d0JBRXRELFNBQVMsR0FBRyxrQkFBa0IsQ0FBc0IsTUFBTSxDQUFDLENBQUE7d0JBQzNELGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksZUFBZSxDQUF1RTs0QkFDcEksU0FBUyxZQUFDLEtBQUssRUFBRSxVQUFVO2dDQUN6QixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU07b0NBQzFDLElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUE7b0NBQzVCLElBQUksVUFBVSxJQUFJLElBQUk7d0NBQUUsVUFBVSxHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsT0FBTyxNQUFNLENBQUE7Z0NBQ2YsQ0FBQyxDQUFDLENBQUE7Z0NBQ0YsSUFBTSxRQUFRLHlCQUFRLEtBQUssS0FBRSxPQUFPLEVBQUUsVUFBVSxHQUFFLENBQUE7Z0NBQ2xELFVBQVUsQ0FBQyxPQUFPLHVCQUFNLFFBQVEsS0FBRSxXQUFXLEVBQUUsS0FBSyxJQUFHLENBQUE7NEJBQ3pELENBQUM7eUJBQ0YsQ0FBQyxDQUFFLENBQUE7d0JBRUosV0FBTyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsRUFBQTs7OztLQUMxQztJQUNILHFCQUFDO0FBQUQsQ0FBQyxBQTVERCxJQTREQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUFzeW5jSXRlcmFibGUsXG4gIFRyYW5zZm9ybVN0cmVhbSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBpbnRvU3RhbmRhcmRTdHJlYW0sXG4gIGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB0eXBlIHsgQXJrR2VuZXJhdGVUZXh0T3V0cHV0LCBBcmtJbnB1dERhdGEsIEFya1N0cmVhbVRleHRPdXRwdXQgfSBmcm9tICcuL3R5cGUnXG5pbXBvcnQgdHlwZSB7XG4gIE1vZGVsUmVxLFxuICBCYXNlQ2hhdE1vZGVsSW5wdXQsXG4gIFNpbXBsZUNoYXRNb2RlbCxcbiAgRG9HZW5lcmF0ZU91dHB1dCxcbiAgRG9TdHJlYW1PdXRwdXQsXG4gIEJhc2VEb1N0cmVhbU91dHB1dENodW5rLFxuICBSZXFPcHRpb25zLFxufSBmcm9tICcuLi8uLi90eXBlJ1xuXG5mdW5jdGlvbiBwcm9jZXNzSW5wdXQoaW5wdXQ6IEJhc2VDaGF0TW9kZWxJbnB1dCk6IEFya0lucHV0RGF0YSB7XG4gIGNvbnN0IHsgbWVzc2FnZXMsIG1vZGVsLCB0ZW1wZXJhdHVyZSwgdG9vbHMsIHRvcF9wIH0gPSBpbnB1dFxuXG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgbWVzc2FnZXMsXG4gICAgbW9kZWwsXG4gICAgdG9vbHMsXG4gICAgdG9wX3AsXG4gICAgdGVtcGVyYXR1cmUsXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFya1NpbXBsZU1vZGVsIGltcGxlbWVudHMgU2ltcGxlQ2hhdE1vZGVsIHtcbiAgcHVibGljIHN1YlVybCA9ICdhcmsvYXBpL3YzL2NoYXQvY29tcGxldGlvbnMnXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxOiBNb2RlbFJlcSwgcHVibGljIGJhc2VVcmw6IHN0cmluZywgc3ViVXJsPzogc3RyaW5nKSB7XG4gICAgaWYgKHN1YlVybCAhPSBudWxsKSB7XG4gICAgICB0aGlzLnN1YlVybCA9IHN1YlVybFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYXNlVXJsfS8ke3RoaXMuc3ViVXJsfWBcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb0dlbmVyYXRlKGRhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPERvR2VuZXJhdGVPdXRwdXQ+IHtcbiAgICBjb25zdCByZXMgPSAoYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ucHJvY2Vzc0lucHV0KGRhdGEpLFxuICAgICAgICBzdHJlYW06IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHN0cmVhbTogZmFsc2UsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pKSBhcyBBcmtHZW5lcmF0ZVRleHRPdXRwdXRcbiAgICByZXR1cm4geyAuLi5yZXMsIHJhd1Jlc3BvbnNlOiByZXMgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvU3RyZWFtKGRhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPERvU3RyZWFtT3V0cHV0PiB7XG4gICAgbGV0IGlzVG9vbENhbGw6IG51bGwgfCBib29sZWFuID0gbnVsbFxuICAgIGNvbnN0IF9zdHJlYW0gPSBhd2FpdCB0aGlzLnJlcSh7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgZGF0YToge1xuICAgICAgICAuLi5wcm9jZXNzSW5wdXQoZGF0YSksXG4gICAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgY29uc3Qgc3RyZWFtID0gdG9Qb2x5ZmlsbFJlYWRhYmxlKF9zdHJlYW0pIGFzIHR5cGVvZiBfc3RyZWFtXG5cbiAgICBjb25zdCBhcmtTdHJlYW0gPSBpbnRvU3RhbmRhcmRTdHJlYW08QXJrU3RyZWFtVGV4dE91dHB1dD4oc3RyZWFtKVxuICAgIGNvbnN0IHN0cmVhbVdpdGhSYXcgPSBhcmtTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxBcmtTdHJlYW1UZXh0T3V0cHV0LCBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayAmIHsgcmF3UmVzcG9uc2U/OiBhbnkgfT4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnN0IG5ld0Nob2ljZXMgPSBjaHVuay5jaG9pY2VzLm1hcCgoY2hvaWNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGNob2ljZS5kZWx0YVxuICAgICAgICAgIGlmIChpc1Rvb2xDYWxsID09IG51bGwpIGlzVG9vbENhbGwgPSBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAgIGlmIChpc1Rvb2xDYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5jaG9pY2UsXG4gICAgICAgICAgICAgIGZpbmlzaF9yZWFzb246ICd0b29sX2NhbGxzJyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgZGVsdGE6IG1lc3NhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjaG9pY2VcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgbmV3Q2h1bmsgPSB7IC4uLmNodW5rLCBjaG9pY2VzOiBuZXdDaG9pY2VzIH1cbiAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHsgLi4ubmV3Q2h1bmssIHJhd1Jlc3BvbnNlOiBjaHVuayB9KVxuICAgICAgfSxcbiAgICB9KSwpXG5cbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZShzdHJlYW1XaXRoUmF3KVxuICB9XG59XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL0Fyay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFBO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUF1QyxLQUFLLFNBQTVDLEVBQUUsS0FBSyxHQUFnQyxLQUFLLE1BQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFNUQsNkJBQ0ssS0FBSyxLQUNSLFFBQVEsVUFBQSxFQUNSLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLFdBQVcsYUFBQSxJQUNaO0FBQ0gsQ0FBQztBQUVEO0lBRUUsd0JBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQURsRCxXQUFNLEdBQUcsNkJBQTZCLENBQUE7UUFFM0MsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLCtCQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxtQ0FBVSxHQUF2QixVQUF3QixJQUF3QixFQUFFLE9BQW9COzs7Ozs0QkFDdkQsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO3lCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBMEI7d0JBQzVCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksaUNBQVEsR0FBckIsVUFBc0IsSUFBd0IsRUFBRSxPQUFvQjs7Ozs7O3dCQUM5RCxVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7Z0NBQ1osT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLE9BQU8sR0FBRyxTQVFkO3dCQUNJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQW1CLENBQUE7d0JBRXRELFNBQVMsR0FBRyxrQkFBa0IsQ0FBc0IsTUFBTSxDQUFDLENBQUE7d0JBQzNELGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksZUFBZSxDQUF1RTs0QkFDcEksU0FBUyxZQUFDLEtBQUssRUFBRSxVQUFVO2dDQUN6QixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU07b0NBQzFDLElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUE7b0NBQzVCLElBQUksVUFBVSxJQUFJLElBQUk7d0NBQUUsVUFBVSxHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsT0FBTyxNQUFNLENBQUE7Z0NBQ2YsQ0FBQyxDQUFDLENBQUE7Z0NBQ0YsSUFBTSxRQUFRLHlCQUFRLEtBQUssS0FBRSxPQUFPLEVBQUUsVUFBVSxHQUFFLENBQUE7Z0NBQ2xELFVBQVUsQ0FBQyxPQUFPLHVCQUFNLFFBQVEsS0FBRSxXQUFXLEVBQUUsS0FBSyxJQUFHLENBQUE7NEJBQ3pELENBQUM7eUJBQ0YsQ0FBQyxDQUFFLENBQUE7d0JBRUosV0FBTyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsRUFBQTs7OztLQUMxQztJQUNILHFCQUFDO0FBQUQsQ0FBQyxBQTVERCxJQTREQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQge1xuICBjcmVhdGVBc3luY0l0ZXJhYmxlLFxuICBUcmFuc2Zvcm1TdHJlYW0sXG4gIHRvUG9seWZpbGxSZWFkYWJsZSxcbiAgaW50b1N0YW5kYXJkU3RyZWFtLFxuICBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEFya0dlbmVyYXRlVGV4dE91dHB1dCwgQXJrSW5wdXREYXRhLCBBcmtTdHJlYW1UZXh0T3V0cHV0IH0gZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHR5cGUge1xuICBNb2RlbFJlcSxcbiAgQmFzZUNoYXRNb2RlbElucHV0LFxuICBTaW1wbGVDaGF0TW9kZWwsXG4gIERvR2VuZXJhdGVPdXRwdXQsXG4gIERvU3RyZWFtT3V0cHV0LFxuICBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayxcbiAgUmVxT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdHlwZSdcblxuZnVuY3Rpb24gcHJvY2Vzc0lucHV0KGlucHV0OiBCYXNlQ2hhdE1vZGVsSW5wdXQpOiBBcmtJbnB1dERhdGEge1xuICBjb25zdCB7IG1lc3NhZ2VzLCBtb2RlbCwgdGVtcGVyYXR1cmUsIHRvb2xzLCB0b3BfcCB9ID0gaW5wdXRcblxuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIG1lc3NhZ2VzLFxuICAgIG1vZGVsLFxuICAgIHRvb2xzLFxuICAgIHRvcF9wLFxuICAgIHRlbXBlcmF0dXJlLFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcmtTaW1wbGVNb2RlbCBpbXBsZW1lbnRzIFNpbXBsZUNoYXRNb2RlbCB7XG4gIHB1YmxpYyBzdWJVcmwgPSAnYXJrL2FwaS92My9jaGF0L2NvbXBsZXRpb25zJ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogTW9kZWxSZXEsIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcsIHN1YlVybD86IHN0cmluZykge1xuICAgIGlmIChzdWJVcmwgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdWJVcmwgPSBzdWJVcmxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCB1cmwoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0vJHt0aGlzLnN1YlVybH1gXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9HZW5lcmF0ZShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKTogUHJvbWlzZTxEb0dlbmVyYXRlT3V0cHV0PiB7XG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLnByb2Nlc3NJbnB1dChkYXRhKSxcbiAgICAgICAgc3RyZWFtOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IGZhbHNlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KSkgYXMgQXJrR2VuZXJhdGVUZXh0T3V0cHV0XG4gICAgcmV0dXJuIHsgLi4ucmVzLCByYXdSZXNwb25zZTogcmVzIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb1N0cmVhbShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKTogUHJvbWlzZTxEb1N0cmVhbU91dHB1dD4ge1xuICAgIGxldCBpc1Rvb2xDYWxsOiBudWxsIHwgYm9vbGVhbiA9IG51bGxcbiAgICBjb25zdCBfc3RyZWFtID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ucHJvY2Vzc0lucHV0KGRhdGEpLFxuICAgICAgICBzdHJlYW06IHRydWUsXG4gICAgICB9LFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIGNvbnN0IHN0cmVhbSA9IHRvUG9seWZpbGxSZWFkYWJsZShfc3RyZWFtKSBhcyB0eXBlb2YgX3N0cmVhbVxuXG4gICAgY29uc3QgYXJrU3RyZWFtID0gaW50b1N0YW5kYXJkU3RyZWFtPEFya1N0cmVhbVRleHRPdXRwdXQ+KHN0cmVhbSlcbiAgICBjb25zdCBzdHJlYW1XaXRoUmF3ID0gYXJrU3RyZWFtLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW08QXJrU3RyZWFtVGV4dE91dHB1dCwgQmFzZURvU3RyZWFtT3V0cHV0Q2h1bmsgJiB7IHJhd1Jlc3BvbnNlPzogYW55IH0+KHtcbiAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICBjb25zdCBuZXdDaG9pY2VzID0gY2h1bmsuY2hvaWNlcy5tYXAoKGNob2ljZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBjaG9pY2UuZGVsdGFcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCA9PSBudWxsKSBpc1Rvb2xDYWxsID0gaXNUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uY2hvaWNlLFxuICAgICAgICAgICAgICBmaW5pc2hfcmVhc29uOiAndG9vbF9jYWxscycgYXMgY29uc3QsXG4gICAgICAgICAgICAgIGRlbHRhOiBtZXNzYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY2hvaWNlXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG5ld0NodW5rID0geyAuLi5jaHVuaywgY2hvaWNlczogbmV3Q2hvaWNlcyB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh7IC4uLm5ld0NodW5rLCByYXdSZXNwb25zZTogY2h1bmsgfSlcbiAgICAgIH0sXG4gICAgfSksKVxuXG4gICAgcmV0dXJuIGNyZWF0ZUFzeW5jSXRlcmFibGUoc3RyZWFtV2l0aFJhdylcbiAgfVxufVxuIl19
@@ -124,4 +124,4 @@ var DSSimpleModel = (function () {
124
124
  return DSSimpleModel;
125
125
  }());
126
126
  export { DSSimpleModel };
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL0Rhc2hTY29wZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFBO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUF1QyxLQUFLLFNBQTVDLEVBQUUsS0FBSyxHQUFnQyxLQUFLLE1BQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFNUQsNkJBQ0ssS0FBSyxLQUNSLFFBQVEsVUFBQSxFQUNSLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLFdBQVcsYUFBQSxJQUNaO0FBQ0gsQ0FBQztBQUVEO0lBR0UsdUJBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUZsRCxXQUFNLEdBQUcsK0NBQStDLENBQUE7UUFHN0QsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLDhCQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxrQ0FBVSxHQUF2QixVQUF3QixJQUF3QixFQUFFLE9BQW9COzs7Ozs0QkFDdkQsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO3lCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBcUI7d0JBQ3ZCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksZ0NBQVEsR0FBckIsVUFBc0IsSUFBd0IsRUFBRSxPQUFvQjs7Ozs7O3dCQUM5RCxVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7Z0NBQ1osT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLE9BQU8sR0FBRyxTQVFkO3dCQUNJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQW1CLENBQUE7d0JBRXRELFNBQVMsR0FBRyxrQkFBa0IsQ0FBaUIsTUFBTSxDQUFDLENBQUE7d0JBQ3RELGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksZUFBZSxDQUFrRTs0QkFDL0gsU0FBUyxZQUFDLEtBQUssRUFBRSxVQUFVO2dDQUN6QixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU07b0NBQzFDLElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FFaEUsQ0FBQTtvQ0FDRCxJQUFJLFVBQVUsSUFBSSxJQUFJO3dDQUFFLFVBQVUsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtvQ0FDeEUsSUFBSSxVQUFVLEVBQUU7d0NBQ2QsNkJBQ0ssTUFBTSxLQUNULGFBQWEsRUFBRSxZQUFxQixFQUNwQyxLQUFLLEVBQUUsT0FBTyxJQUNmO3FDQUNGO29DQUNELDZCQUFZLE1BQU0sS0FBRSxLQUFLLEVBQUUsT0FBTyxJQUFFO2dDQUN0QyxDQUFDLENBQUMsQ0FBQTtnQ0FDRixJQUFNLFFBQVEseUJBQVEsS0FBSyxLQUFFLE9BQU8sRUFBRSxVQUFVLEdBQUUsQ0FBQTtnQ0FDbEQsVUFBVSxDQUFDLE9BQU8sdUJBQU0sUUFBUSxLQUFFLFdBQVcsRUFBRSxLQUFLLElBQUcsQ0FBQTs0QkFDekQsQ0FBQzt5QkFDRixDQUFDLENBQUUsQ0FBQTt3QkFFSixXQUFPLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxFQUFBOzs7O0tBQzFDO0lBQ0gsb0JBQUM7QUFBRCxDQUFDLEFBL0RELElBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlQXN5bmNJdGVyYWJsZSxcbiAgVHJhbnNmb3JtU3RyZWFtLFxuICBpbnRvU3RhbmRhcmRTdHJlYW0sXG4gIGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxuICB0b1BvbHlmaWxsUmVhZGFibGUsXG59IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBEU0lucHV0LCBEU0dlbmVyYXRlT3V0cHV0LCBEU1N0cmVhbU91dHB1dCB9IGZyb20gJy4vdHlwZSdcbmltcG9ydCB0eXBlIHtcbiAgTW9kZWxSZXEsXG4gIEJhc2VDaGF0TW9kZWxJbnB1dCxcbiAgRG9HZW5lcmF0ZU91dHB1dCxcbiAgRG9TdHJlYW1PdXRwdXQsXG4gIEJhc2VEb1N0cmVhbU91dHB1dENodW5rLFxuICBTaW1wbGVDaGF0TW9kZWwsXG4gIFJlcU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL3R5cGUnXG5cbmZ1bmN0aW9uIHByb2Nlc3NJbnB1dChpbnB1dDogQmFzZUNoYXRNb2RlbElucHV0KTogRFNJbnB1dCB7XG4gIGNvbnN0IHsgbWVzc2FnZXMsIG1vZGVsLCB0ZW1wZXJhdHVyZSwgdG9vbHMsIHRvcF9wIH0gPSBpbnB1dFxuXG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgbWVzc2FnZXMsXG4gICAgbW9kZWwsXG4gICAgdG9vbHMsXG4gICAgdG9wX3AsXG4gICAgdGVtcGVyYXR1cmUsXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERTU2ltcGxlTW9kZWwgaW1wbGVtZW50cyBTaW1wbGVDaGF0TW9kZWwge1xuICBwdWJsaWMgc3ViVXJsID0gJ2Rhc2hzY29wZS9jb21wYXRpYmxlLW1vZGUvdjEvY2hhdC9jb21wbGV0aW9ucydcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogTW9kZWxSZXEsIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcsIHN1YlVybD86IHN0cmluZykge1xuICAgIGlmIChzdWJVcmwgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdWJVcmwgPSBzdWJVcmxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCB1cmwoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0vJHt0aGlzLnN1YlVybH1gXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9HZW5lcmF0ZShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKTogUHJvbWlzZTxEb0dlbmVyYXRlT3V0cHV0PiB7XG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLnByb2Nlc3NJbnB1dChkYXRhKSxcbiAgICAgICAgc3RyZWFtOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IGZhbHNlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KSkgYXMgRFNHZW5lcmF0ZU91dHB1dFxuICAgIHJldHVybiB7IC4uLnJlcywgcmF3UmVzcG9uc2U6IHJlcyB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9TdHJlYW0oZGF0YTogQmFzZUNoYXRNb2RlbElucHV0LCBvcHRpb25zPzogUmVxT3B0aW9ucyk6IFByb21pc2U8RG9TdHJlYW1PdXRwdXQ+IHtcbiAgICBsZXQgaXNUb29sQ2FsbDogbnVsbCB8IGJvb2xlYW4gPSBudWxsXG4gICAgY29uc3QgX3N0cmVhbSA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLnByb2Nlc3NJbnB1dChkYXRhKSxcbiAgICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgICBjb25zdCBzdHJlYW0gPSB0b1BvbHlmaWxsUmVhZGFibGUoX3N0cmVhbSkgYXMgdHlwZW9mIF9zdHJlYW1cblxuICAgIGNvbnN0IGFya1N0cmVhbSA9IGludG9TdGFuZGFyZFN0cmVhbTxEU1N0cmVhbU91dHB1dD4oc3RyZWFtKVxuICAgIGNvbnN0IHN0cmVhbVdpdGhSYXcgPSBhcmtTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxEU1N0cmVhbU91dHB1dCwgQmFzZURvU3RyZWFtT3V0cHV0Q2h1bmsgJiB7IHJhd1Jlc3BvbnNlPzogYW55IH0+KHtcbiAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICBjb25zdCBuZXdDaG9pY2VzID0gY2h1bmsuY2hvaWNlcy5tYXAoKGNob2ljZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBPYmplY3QuYXNzaWduKGNob2ljZS5kZWx0YSwgeyByb2xlOiAnYXNzaXN0YW50JyB9KSBhcyB0eXBlb2YgY2hvaWNlLmRlbHRhICYge1xuICAgICAgICAgICAgcm9sZTogJ2Fzc2lzdGFudCdcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzVG9vbENhbGwgPT0gbnVsbCkgaXNUb29sQ2FsbCA9IGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAgICAgaWYgKGlzVG9vbENhbGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmNob2ljZSxcbiAgICAgICAgICAgICAgZmluaXNoX3JlYXNvbjogJ3Rvb2xfY2FsbHMnIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBkZWx0YTogbWVzc2FnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgLi4uY2hvaWNlLCBkZWx0YTogbWVzc2FnZSB9XG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG5ld0NodW5rID0geyAuLi5jaHVuaywgY2hvaWNlczogbmV3Q2hvaWNlcyB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh7IC4uLm5ld0NodW5rLCByYXdSZXNwb25zZTogY2h1bmsgfSlcbiAgICAgIH0sXG4gICAgfSksKVxuXG4gICAgcmV0dXJuIGNyZWF0ZUFzeW5jSXRlcmFibGUoc3RyZWFtV2l0aFJhdylcbiAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL0Rhc2hTY29wZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFBO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUF1QyxLQUFLLFNBQTVDLEVBQUUsS0FBSyxHQUFnQyxLQUFLLE1BQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFNUQsNkJBQ0ssS0FBSyxLQUNSLFFBQVEsVUFBQSxFQUNSLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLFdBQVcsYUFBQSxJQUNaO0FBQ0gsQ0FBQztBQUVEO0lBR0UsdUJBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUZsRCxXQUFNLEdBQUcsK0NBQStDLENBQUE7UUFHN0QsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLDhCQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxrQ0FBVSxHQUF2QixVQUF3QixJQUF3QixFQUFFLE9BQW9COzs7Ozs0QkFDdkQsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO3lCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBcUI7d0JBQ3ZCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksZ0NBQVEsR0FBckIsVUFBc0IsSUFBd0IsRUFBRSxPQUFvQjs7Ozs7O3dCQUM5RCxVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7Z0NBQ1osT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLE9BQU8sR0FBRyxTQVFkO3dCQUNJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQW1CLENBQUE7d0JBRXRELFNBQVMsR0FBRyxrQkFBa0IsQ0FBaUIsTUFBTSxDQUFDLENBQUE7d0JBQ3RELGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksZUFBZSxDQUFrRTs0QkFDL0gsU0FBUyxZQUFDLEtBQUssRUFBRSxVQUFVO2dDQUN6QixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU07b0NBQzFDLElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FFaEUsQ0FBQTtvQ0FDRCxJQUFJLFVBQVUsSUFBSSxJQUFJO3dDQUFFLFVBQVUsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtvQ0FDeEUsSUFBSSxVQUFVLEVBQUU7d0NBQ2QsNkJBQ0ssTUFBTSxLQUNULGFBQWEsRUFBRSxZQUFxQixFQUNwQyxLQUFLLEVBQUUsT0FBTyxJQUNmO3FDQUNGO29DQUNELDZCQUFZLE1BQU0sS0FBRSxLQUFLLEVBQUUsT0FBTyxJQUFFO2dDQUN0QyxDQUFDLENBQUMsQ0FBQTtnQ0FDRixJQUFNLFFBQVEseUJBQVEsS0FBSyxLQUFFLE9BQU8sRUFBRSxVQUFVLEdBQUUsQ0FBQTtnQ0FDbEQsVUFBVSxDQUFDLE9BQU8sdUJBQU0sUUFBUSxLQUFFLFdBQVcsRUFBRSxLQUFLLElBQUcsQ0FBQTs0QkFDekQsQ0FBQzt5QkFDRixDQUFDLENBQUUsQ0FBQTt3QkFFSixXQUFPLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxFQUFBOzs7O0tBQzFDO0lBQ0gsb0JBQUM7QUFBRCxDQUFDLEFBL0RELElBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB7XG4gIGNyZWF0ZUFzeW5jSXRlcmFibGUsXG4gIFRyYW5zZm9ybVN0cmVhbSxcbiAgaW50b1N0YW5kYXJkU3RyZWFtLFxuICBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB0eXBlIHsgRFNJbnB1dCwgRFNHZW5lcmF0ZU91dHB1dCwgRFNTdHJlYW1PdXRwdXQgfSBmcm9tICcuL3R5cGUnXG5pbXBvcnQgdHlwZSB7XG4gIE1vZGVsUmVxLFxuICBCYXNlQ2hhdE1vZGVsSW5wdXQsXG4gIERvR2VuZXJhdGVPdXRwdXQsXG4gIERvU3RyZWFtT3V0cHV0LFxuICBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayxcbiAgU2ltcGxlQ2hhdE1vZGVsLFxuICBSZXFPcHRpb25zLFxufSBmcm9tICcuLi8uLi90eXBlJ1xuXG5mdW5jdGlvbiBwcm9jZXNzSW5wdXQoaW5wdXQ6IEJhc2VDaGF0TW9kZWxJbnB1dCk6IERTSW5wdXQge1xuICBjb25zdCB7IG1lc3NhZ2VzLCBtb2RlbCwgdGVtcGVyYXR1cmUsIHRvb2xzLCB0b3BfcCB9ID0gaW5wdXRcblxuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIG1lc3NhZ2VzLFxuICAgIG1vZGVsLFxuICAgIHRvb2xzLFxuICAgIHRvcF9wLFxuICAgIHRlbXBlcmF0dXJlLFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEU1NpbXBsZU1vZGVsIGltcGxlbWVudHMgU2ltcGxlQ2hhdE1vZGVsIHtcbiAgcHVibGljIHN1YlVybCA9ICdkYXNoc2NvcGUvY29tcGF0aWJsZS1tb2RlL3YxL2NoYXQvY29tcGxldGlvbnMnXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXE6IE1vZGVsUmVxLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nLCBzdWJVcmw/OiBzdHJpbmcpIHtcbiAgICBpZiAoc3ViVXJsICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3ViVXJsID0gc3ViVXJsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdXJsKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmJhc2VVcmx9LyR7dGhpcy5zdWJVcmx9YFxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvR2VuZXJhdGUoZGF0YTogQmFzZUNoYXRNb2RlbElucHV0LCBvcHRpb25zPzogUmVxT3B0aW9ucyk6IFByb21pc2U8RG9HZW5lcmF0ZU91dHB1dD4ge1xuICAgIGNvbnN0IHJlcyA9IChhd2FpdCB0aGlzLnJlcSh7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgZGF0YToge1xuICAgICAgICAuLi5wcm9jZXNzSW5wdXQoZGF0YSksXG4gICAgICAgIHN0cmVhbTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc3RyZWFtOiBmYWxzZSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSkpIGFzIERTR2VuZXJhdGVPdXRwdXRcbiAgICByZXR1cm4geyAuLi5yZXMsIHJhd1Jlc3BvbnNlOiByZXMgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvU3RyZWFtKGRhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPERvU3RyZWFtT3V0cHV0PiB7XG4gICAgbGV0IGlzVG9vbENhbGw6IG51bGwgfCBib29sZWFuID0gbnVsbFxuICAgIGNvbnN0IF9zdHJlYW0gPSBhd2FpdCB0aGlzLnJlcSh7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgZGF0YToge1xuICAgICAgICAuLi5wcm9jZXNzSW5wdXQoZGF0YSksXG4gICAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgY29uc3Qgc3RyZWFtID0gdG9Qb2x5ZmlsbFJlYWRhYmxlKF9zdHJlYW0pIGFzIHR5cGVvZiBfc3RyZWFtXG5cbiAgICBjb25zdCBhcmtTdHJlYW0gPSBpbnRvU3RhbmRhcmRTdHJlYW08RFNTdHJlYW1PdXRwdXQ+KHN0cmVhbSlcbiAgICBjb25zdCBzdHJlYW1XaXRoUmF3ID0gYXJrU3RyZWFtLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW08RFNTdHJlYW1PdXRwdXQsIEJhc2VEb1N0cmVhbU91dHB1dENodW5rICYgeyByYXdSZXNwb25zZT86IGFueSB9Pih7XG4gICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgY29uc3QgbmV3Q2hvaWNlcyA9IGNodW5rLmNob2ljZXMubWFwKChjaG9pY2UpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gT2JqZWN0LmFzc2lnbihjaG9pY2UuZGVsdGEsIHsgcm9sZTogJ2Fzc2lzdGFudCcgfSkgYXMgdHlwZW9mIGNob2ljZS5kZWx0YSAmIHtcbiAgICAgICAgICAgIHJvbGU6ICdhc3Npc3RhbnQnXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1Rvb2xDYWxsID09IG51bGwpIGlzVG9vbENhbGwgPSBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAgIGlmIChpc1Rvb2xDYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5jaG9pY2UsXG4gICAgICAgICAgICAgIGZpbmlzaF9yZWFzb246ICd0b29sX2NhbGxzJyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgZGVsdGE6IG1lc3NhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IC4uLmNob2ljZSwgZGVsdGE6IG1lc3NhZ2UgfVxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBuZXdDaHVuayA9IHsgLi4uY2h1bmssIGNob2ljZXM6IG5ld0Nob2ljZXMgfVxuICAgICAgICBjb250cm9sbGVyLmVucXVldWUoeyAuLi5uZXdDaHVuaywgcmF3UmVzcG9uc2U6IGNodW5rIH0pXG4gICAgICB9LFxuICAgIH0pLClcblxuICAgIHJldHVybiBjcmVhdGVBc3luY0l0ZXJhYmxlKHN0cmVhbVdpdGhSYXcpXG4gIH1cbn1cbiJdfQ==