tnp-helpers 16.0.9 → 16.0.10

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 (49) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base-project.mjs +309 -0
  3. package/browser/esm2022/lib/index.mjs +2 -1
  4. package/browser/esm2022/lib/project.mjs +6 -1
  5. package/browser/fesm2022/tnp-helpers.mjs +315 -3
  6. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  7. package/browser/lib/base-project.d.ts +55 -0
  8. package/browser/lib/index.d.ts +1 -0
  9. package/browser/lib/project.d.ts +5 -0
  10. package/client/esm2022/lib/base-project.mjs +309 -0
  11. package/client/esm2022/lib/index.mjs +2 -1
  12. package/client/esm2022/lib/project.mjs +6 -1
  13. package/client/fesm2022/tnp-helpers.mjs +315 -3
  14. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  15. package/client/lib/base-project.d.ts +55 -0
  16. package/client/lib/index.d.ts +1 -0
  17. package/client/lib/project.d.ts +5 -0
  18. package/client/package.json +17 -10
  19. package/lib/base-project.d.ts +64 -0
  20. package/lib/base-project.js +365 -0
  21. package/lib/base-project.js.map +1 -0
  22. package/lib/for-backend/helpers-file-folders.backend.d.ts +6 -0
  23. package/lib/for-backend/helpers-file-folders.backend.js +12 -1
  24. package/lib/for-backend/helpers-file-folders.backend.js.map +1 -1
  25. package/lib/for-backend/helpers-git.backend.js +9 -0
  26. package/lib/for-backend/helpers-git.backend.js.map +1 -1
  27. package/lib/for-browser/angular.helper.js +3 -3
  28. package/lib/git-project.d.ts +2 -1
  29. package/lib/git-project.js +3 -0
  30. package/lib/git-project.js.map +1 -1
  31. package/lib/index.d.ts +1 -0
  32. package/lib/index.js +1 -0
  33. package/lib/index.js.map +1 -1
  34. package/lib/old/base-component.js +3 -3
  35. package/lib/old/base-formly-component.js +3 -3
  36. package/lib/old/dual-component-ctrl.js +3 -3
  37. package/lib/project.d.ts +5 -0
  38. package/lib/project.js +5 -0
  39. package/lib/project.js.map +1 -1
  40. package/package.json +3 -3
  41. package/tmp-environment.json +21 -14
  42. package/websql/esm2022/lib/base-project.mjs +296 -0
  43. package/websql/esm2022/lib/index.mjs +2 -1
  44. package/websql/esm2022/lib/project.mjs +6 -1
  45. package/websql/fesm2022/tnp-helpers.mjs +301 -4
  46. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  47. package/websql/lib/base-project.d.ts +55 -0
  48. package/websql/lib/index.d.ts +1 -0
  49. package/websql/lib/project.d.ts +5 -0
@@ -0,0 +1,296 @@
1
+ /* */
2
+ /* */
3
+ /* */
4
+ /* */
5
+ /* */
6
+ import { CLI } from 'tnp-cli/websql';
7
+ import { path, crossPlatformPath } from 'tnp-core/websql';
8
+ import { config } from 'tnp-config/websql';
9
+ import { _ } from 'tnp-core/websql';
10
+ import { HelpersFiredev } from './helpers';
11
+ const Helpers = HelpersFiredev.Instance;
12
+ const takenPorts = [];
13
+ export class BaseProjectResolver {
14
+ constructor(classFn) {
15
+ this.classFn = classFn;
16
+ this.NPM_PROJECT_KEY = 'npm';
17
+ this.projects = [];
18
+ this.emptyLocations = [];
19
+ }
20
+ get allowedTypes() {
21
+ return [this.NPM_PROJECT_KEY];
22
+ }
23
+ get Current() {
24
+ const current = (this.classFn).From(process.cwd());
25
+ if (!current) {
26
+ Helpers.warn(`[firedev-helpers] Current location is not a ${CLI.chalk.bold(config.frameworkName)} type project.
27
+
28
+ location: "${process.cwd()}"
29
+
30
+ }`);
31
+ return void 0;
32
+ }
33
+ return current;
34
+ }
35
+ /**
36
+ * override this
37
+ */
38
+ typeFrom(location) {
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ /* */
44
+ return (void 0);
45
+ }
46
+ From(locationOfProject) {
47
+ if (Array.isArray(locationOfProject)) {
48
+ locationOfProject = locationOfProject.join('/');
49
+ }
50
+ let location = crossPlatformPath(locationOfProject.replace(/\/\//g, '/'));
51
+ if (!_.isString(location)) {
52
+ Helpers.warn(`[project.from] location is not a string`);
53
+ return;
54
+ }
55
+ if (path.basename(location) === 'dist') {
56
+ location = path.dirname(location);
57
+ }
58
+ location = crossPlatformPath(path.resolve(location));
59
+ const alreadyExist = this.projects.find(l => l.location.trim() === location.trim());
60
+ if (alreadyExist) {
61
+ return alreadyExist;
62
+ }
63
+ /* */
64
+ /* */
65
+ /* */
66
+ /* */
67
+ /* */
68
+ /* */
69
+ /* */
70
+ /* */
71
+ /* */
72
+ /* */
73
+ /* */
74
+ /* */
75
+ /* */
76
+ /* */
77
+ /* */
78
+ /* */
79
+ /* */
80
+ /* */
81
+ /* */
82
+ /* */
83
+ /* */
84
+ /* */
85
+ /* */
86
+ /* */
87
+ /* */
88
+ /* */
89
+ /* */
90
+ }
91
+ nearestTo(absoluteLocation, options) {
92
+ /* */
93
+ /* */
94
+ /* */
95
+ /* */
96
+ /* */
97
+ /* */
98
+ /* */
99
+ /* */
100
+ /* */
101
+ /* */
102
+ /* */
103
+ /* */
104
+ /* */
105
+ /* */
106
+ /* */
107
+ /* */
108
+ /* */
109
+ /* */
110
+ /* */
111
+ /* */
112
+ /* */
113
+ /* */
114
+ /* */
115
+ /* */
116
+ /* */
117
+ /* */
118
+ /* */
119
+ /* */
120
+ /* */
121
+ /* */
122
+ /* */
123
+ /* */
124
+ /* */
125
+ /* */
126
+ /* */
127
+ /* */
128
+ /* */
129
+ /* */
130
+ /* */
131
+ /* */
132
+ /* */
133
+ /* */
134
+ /* */
135
+ /* */
136
+ /* */
137
+ /* */
138
+ /* */
139
+ /* */
140
+ /* */
141
+ /* */
142
+ /* */
143
+ /* */
144
+ /* */
145
+ /* */
146
+ /* */
147
+ /* */
148
+ /* */
149
+ /* */
150
+ return (void 0);
151
+ }
152
+ unload(project) {
153
+ this.projects = this.projects.filter(f => f !== project);
154
+ }
155
+ allProjectFrom(absoluteLocation, stopOnCwd = '/') {
156
+ /* */
157
+ /* */
158
+ /* */
159
+ /* */
160
+ /* */
161
+ /* */
162
+ /* */
163
+ /* */
164
+ /* */
165
+ /* */
166
+ /* */
167
+ /* */
168
+ /* */
169
+ /* */
170
+ /* */
171
+ /* */
172
+ /* */
173
+ /* */
174
+ /* */
175
+ /* */
176
+ /* */
177
+ /* */
178
+ /* */
179
+ /* */
180
+ /* */
181
+ /* */
182
+ return (void 0);
183
+ }
184
+ }
185
+ class BaseProject {
186
+ static { this.ins = new BaseProjectResolver(BaseProject); }
187
+ get name() {
188
+ return this.packageJSON?.name;
189
+ }
190
+ get version() {
191
+ return this.packageJSON?.version;
192
+ }
193
+ get parent() {
194
+ return this.ins.From(path.join(this.location, '..'));
195
+ }
196
+ get genericName() {
197
+ let parent = this.parent;
198
+ return [
199
+ parent ? path.basename(path.dirname(parent.location)) : void 0,
200
+ parent ? parent.basename : path.basename(this.location),
201
+ this.basename,
202
+ /* */
203
+ /* */
204
+ ]
205
+ .filter(f => !!f)
206
+ .join('/');
207
+ }
208
+ /**
209
+ * try run but continue when it fails
210
+ * @param command
211
+ * @param options
212
+ * @returns
213
+ */
214
+ tryRunSync(command
215
+ /* */
216
+ /* */
217
+ ) {
218
+ /* */
219
+ /* */
220
+ /* */
221
+ /* */
222
+ /* */
223
+ /* */
224
+ return (void 0);
225
+ }
226
+ pathFor(relativePath) {
227
+ /* */
228
+ /* */
229
+ /* */
230
+ /* */
231
+ /* */
232
+ return (void 0);
233
+ }
234
+ writeJson(relativePath, json) {
235
+ /* */
236
+ /* */
237
+ /* */
238
+ /* */
239
+ /* */
240
+ return (void 0);
241
+ }
242
+ run(command
243
+ /* */
244
+ /* */
245
+ ) {
246
+ /* */
247
+ /* */
248
+ /* */
249
+ /* */
250
+ /* */
251
+ return (void 0);
252
+ }
253
+ outputFrom(command
254
+ /* */
255
+ /* */
256
+ ) {
257
+ /* */
258
+ /* */
259
+ return (void 0);
260
+ }
261
+ remove(relativePath, exactPath = true) {
262
+ /* */
263
+ /* */
264
+ return (void 0);
265
+ }
266
+ async assignFreePort(startFrom = 4200) {
267
+ /* */
268
+ /* */
269
+ /* */
270
+ /* */
271
+ /* */
272
+ /* */
273
+ /* */
274
+ /* */
275
+ /* */
276
+ /* */
277
+ /* */
278
+ /* */
279
+ /* */
280
+ /* */
281
+ /* */
282
+ /* */
283
+ /* */
284
+ /* */
285
+ /* */
286
+ /* */
287
+ /* */
288
+ /* */
289
+ /* */
290
+ return (void 0);
291
+ }
292
+ }
293
+ export { BaseProject };
294
+ ;
295
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base-project.ts
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUczQyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDO0FBR3hDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUV0QixNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLFlBQXNCLE9BQVk7UUFBWixZQUFPLEdBQVAsT0FBTyxDQUFLO1FBSGYsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDakMsYUFBUSxHQUF3QixFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBYSxFQUFFLENBQUM7SUFDRixDQUFDO0lBQ3ZDLElBQUksWUFBWTtRQUVkLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFHaEMsQ0FBQztJQUVELElBQUksT0FBTztRQUVULE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUNsRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxDQUFD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S0FBSzs7UUFHTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZTtJQUM1QixLQUFLO0lBQ0wsS0FBSzs7UUFHTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBb0IsRUFBRSxTQUFTLEdBQUcsSUFBSTtRQUMvQyxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQW9CLElBQUk7UUFDL0MsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDOztTQTdJVSxXQUFXO0FBbUp2QixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDREQUE0RCIsInNvdXJjZXNDb250ZW50IjpbIlxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuaW1wb3J0IHsgQ0xJIH0gZnJvbSAndG5wLWNsaS93ZWJzcWwnO1xuaW1wb3J0IHsgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAndG5wLWNvbmZpZy93ZWJzcWwnO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBIZWxwZXJzRmlyZWRldiB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICd0bnAtbW9kZWxzL3dlYnNxbCc7XG5cbmNvbnN0IEhlbHBlcnMgPSBIZWxwZXJzRmlyZWRldi5JbnN0YW5jZTtcblxuXG5jb25zdCB0YWtlblBvcnRzID0gW107XG5cbmV4cG9ydCBjbGFzcyBCYXNlUHJvamVjdFJlc29sdmVyPFQ+IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgTlBNX1BST0pFQ1RfS0VZID0gJ25wbSc7XG4gIHByb3RlY3RlZCBwcm9qZWN0czogKFQgJiBCYXNlUHJvamVjdClbXSA9IFtdO1xuICBwcm90ZWN0ZWQgZW1wdHlMb2NhdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjbGFzc0ZuOiBhbnkpIHsgfVxuICBnZXQgYWxsb3dlZFR5cGVzKCk6IHN0cmluZ1tdIHtcblxuICAgIHJldHVybiBbdGhpcy5OUE1fUFJPSkVDVF9LRVldO1xuXG5cbiAgfVxuXG4gIGdldCBDdXJyZW50KCk6IFQge1xuXG4gICAgY29uc3QgY3VycmVudCA9ICh0aGlzLmNsYXNzRm4pLkZyb20ocHJvY2Vzcy5jd2QoKSlcbiAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgIEhlbHBlcnMud2FybihgW2ZpcmVkZXYtaGVscGVyc10gQ3VycmVudCBsb2NhdGlvbiBpcyBub3QgYSAke0NMSS5jaGFsay5ib2xkKGNvbmZpZy5mcmFtZXdvcmtOYW1lKX0gdHlwZSBwcm9qZWN0LlxuXG4gICAgIGxvY2F0aW9uOiBcIiR7cHJvY2Vzcy5jd2QoKX1cIlxuXG4gICAgIH1gKTtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50O1xuXG4gIH1cblxuICAvKipcbiAgICogb3ZlcnJpZGUgdGhpc1xuICAgKi9cbiAgdHlwZUZyb208VD4obG9jYXRpb246IHN0cmluZyk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIEZyb20obG9jYXRpb25PZlByb2plY3Q6IHN0cmluZyB8IHN0cmluZ1tdKTogVCB7XG5cblxuXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShsb2NhdGlvbk9mUHJvamVjdCkpIHtcbiAgICAgIGxvY2F0aW9uT2ZQcm9qZWN0ID0gbG9jYXRpb25PZlByb2plY3Quam9pbignLycpO1xuICAgIH1cbiAgICBsZXQgbG9jYXRpb24gPSBjcm9zc1BsYXRmb3JtUGF0aChsb2NhdGlvbk9mUHJvamVjdC5yZXBsYWNlKC9cXC9cXC8vZywgJy8nKSk7XG5cbiAgICBpZiAoIV8uaXNTdHJpbmcobG9jYXRpb24pKSB7XG4gICAgICBIZWxwZXJzLndhcm4oYFtwcm9qZWN0LmZyb21dIGxvY2F0aW9uIGlzIG5vdCBhIHN0cmluZ2ApXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChwYXRoLmJhc2VuYW1lKGxvY2F0aW9uKSA9PT0gJ2Rpc3QnKSB7XG4gICAgICBsb2NhdGlvbiA9IHBhdGguZGlybmFtZShsb2NhdGlvbik7XG4gICAgfVxuICAgIGxvY2F0aW9uID0gY3Jvc3NQbGF0Zm9ybVBhdGgocGF0aC5yZXNvbHZlKGxvY2F0aW9uKSk7XG5cbiAgICBjb25zdCBhbHJlYWR5RXhpc3QgPSB0aGlzLnByb2plY3RzLmZpbmQobCA9PiBsLmxvY2F0aW9uLnRyaW0oKSA9PT0gbG9jYXRpb24udHJpbSgpKTtcbiAgICBpZiAoYWxyZWFkeUV4aXN0KSB7XG4gICAgICByZXR1cm4gYWxyZWFkeUV4aXN0IGFzIGFueTtcbiAgICB9XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuICB9XG5cbiAgbmVhcmVzdFRvKFxuICAgIGFic29sdXRlTG9jYXRpb246IHN0cmluZyxcbiAgICBvcHRpb25zPzogeyB0eXBlPzogKHN0cmluZyB8IHN0cmluZ1tdKTsgZmluZEdpdFJvb3Q/OiBib29sZWFuOyBvbmx5T3V0U2lkZU5vZGVNb2R1bGVzPzogYm9vbGVhbiB9KTogVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICB1bmxvYWQocHJvamVjdDogVCkge1xuICAgIHRoaXMucHJvamVjdHMgPSB0aGlzLnByb2plY3RzLmZpbHRlcihmID0+IGYgIT09IHByb2plY3QpO1xuICB9XG5cblxuICBhbGxQcm9qZWN0RnJvbShhYnNvbHV0ZUxvY2F0aW9uOiBzdHJpbmcsIHN0b3BPbkN3ZDogc3RyaW5nID0gJy8nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG59XG5cblxuZXhwb3J0IGNsYXNzIEJhc2VQcm9qZWN0PFQgPSBhbnk+XG4vKiAqL1xuLyogKi9cbiAgXG57XG4gIHN0YXRpYyBpbnMgPSBuZXcgQmFzZVByb2plY3RSZXNvbHZlcjxCYXNlUHJvamVjdD4oQmFzZVByb2plY3QpO1xuICByZWFkb25seSBpbnM6IEJhc2VQcm9qZWN0UmVzb2x2ZXI8VD47XG4gIC8qKlxuICAgKiBpdCBkbyBub3QgbmVlZCB0byBiZSByZWFsdCBwYXRoXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBiYXNlbmFtZTogc3RyaW5nO1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8ubmFtZTtcbiAgfVxuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIGdldCB2ZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnBhY2thZ2VKU09OPy52ZXJzaW9uO1xuICB9XG4gIHByb3RlY3RlZCByZWFkb25seSBwYWNrYWdlSlNPTjogTW9kZWxzLm5wbS5JUGFja2FnZUpTT047XG4gIC8qKlxuICAgKiBvbmx5IGF2YWlsYWJsZSBhZnRlciBleGVjdXRpbmcgKnRoaXMuYXNzaWduRnJlZVBvcnQoKSpcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IHN0cmluZztcblxuXG4gIGdldCBwYXJlbnQoKTogVCB7XG5cbiAgICByZXR1cm4gdGhpcy5pbnMuRnJvbShwYXRoLmpvaW4odGhpcy5sb2NhdGlvbiwgJy4uJykpO1xuXG4gIH1cblxuICBnZXQgZ2VuZXJpY05hbWUoKSB7XG5cbiAgICBsZXQgcGFyZW50ID0gdGhpcy5wYXJlbnQgYXMgYW55IGFzIEJhc2VQcm9qZWN0O1xuICAgIHJldHVybiBbXG4gICAgICBwYXJlbnQgPyBwYXRoLmJhc2VuYW1lKHBhdGguZGlybmFtZShwYXJlbnQubG9jYXRpb24pKSA6IHZvaWQgMCxcbiAgICAgIHBhcmVudCA/IHBhcmVudC5iYXNlbmFtZSA6IHBhdGguYmFzZW5hbWUodGhpcy5sb2NhdGlvbiksXG4gICAgICB0aGlzLmJhc2VuYW1lLFxuLyogKi9cbi8qICovXG4gIFxuICAgIF1cbiAgICAgIC5maWx0ZXIoZiA9PiAhIWYpXG4gICAgICAuam9pbignLycpXG5cbiAgfVxuXG4gIC8qKlxuICAgKiB0cnkgcnVuIGJ1dCBjb250aW51ZSB3aGVuIGl0IGZhaWxzXG4gICAqIEBwYXJhbSBjb21tYW5kXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICB0cnlSdW5TeW5jKGNvbW1hbmQ6IHN0cmluZ1xuLyogKi9cbi8qICovXG4gIFxuICApOiB2b2lkIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwYXRoRm9yKHJlbGF0aXZlUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICB3cml0ZUpzb24ocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGpzb246IG9iamVjdCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICBydW4oY29tbWFuZDogc3RyaW5nXG4vKiAqL1xuLyogKi9cbiAgXG4gICkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgb3V0cHV0RnJvbShjb21tYW5kOiBzdHJpbmdcbi8qICovXG4vKiAqL1xuICBcbiAgKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICByZW1vdmUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGV4YWN0UGF0aCA9IHRydWUpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIGFzeW5jIGFzc2lnbkZyZWVQb3J0KHN0YXJ0RnJvbTogbnVtYmVyID0gNDIwMCk6IFByb21pc2U8TnVtYmVyPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlLXByb2plY3QudHMiXX0=
@@ -6,7 +6,8 @@ import { HelpersFiredev as Base } from './helpers';
6
6
  */
7
7
  export const Helpers = Base.Instance;
8
8
  export * from './project';
9
+ export * from './base-project';
9
10
  export * from './models';
10
11
  ;
11
12
  ({}); // @--end-of-file-for-module=tnp-helpers lib/index.ts
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzlELE9BQU8sRUFBRSxjQUFjLElBQUksSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5EOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDckMsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFHeEIsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxREFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMvdmFsaWRhdG9ycyc7XG5cbmV4cG9ydCB7IEhlbHBlcnNBbmd1bGFyIH0gZnJvbSAnLi9mb3ItYnJvd3Nlci9hbmd1bGFyLmhlbHBlcic7XG5cblxuaW1wb3J0IHsgSGVscGVyc0ZpcmVkZXYgYXMgQmFzZSB9IGZyb20gJy4vaGVscGVycyc7XG5cbi8qKlxuICogRmlyZWRldiBoZWxwZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBIZWxwZXJzID0gQmFzZS5JbnN0YW5jZTtcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9pbmRleC50cyJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzlELE9BQU8sRUFBRSxjQUFjLElBQUksSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5EOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDckMsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFVBQVUsQ0FBQztBQUd4QixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFEQUFxRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgSGVscGVyc0FuZ3VsYXIgfSBmcm9tICcuL2Zvci1icm93c2VyL2FuZ3VsYXIuaGVscGVyJztcblxuXG5pbXBvcnQgeyBIZWxwZXJzRmlyZWRldiBhcyBCYXNlIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLyoqXG4gKiBGaXJlZGV2IGhlbHBlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEhlbHBlcnMgPSBCYXNlLkluc3RhbmNlO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2luZGV4LnRzIl19
@@ -6,6 +6,11 @@
6
6
  /* */
7
7
  import { HelpersFiredev } from './helpers';
8
8
  const Helpers = HelpersFiredev.Instance;
9
+ /**
10
+ * @deprecated
11
+ *
12
+ * use BaseProject instead
13
+ */
9
14
  class Project {
10
15
  constructor() {
11
16
  this.cache = {};
@@ -407,4 +412,4 @@ export { Project };
407
412
  /* */
408
413
  ;
409
414
  ({}); // @--end-of-file-for-module=tnp-helpers lib/project.ts
410
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFRTCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTNDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7QUFJeEMsTUFBYSxPQUFPO0lBQXBCO1FBK1VZLFVBQUssR0FBRyxFQUFFLENBQUM7UUFPZCxZQUFPLEdBQTRDLEVBQVMsQ0FBQztJQTZHdEUsQ0FBQzthQTdiZSxhQUFRLEdBQW1CLEVBQUUsQUFBckIsQ0FBc0I7SUFDNUM7OztPQUdHO2FBQ1csbUJBQWMsR0FBYSxFQUFFLEFBQWYsQ0FBZ0I7SUFFNUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQjtRQUNsQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFnQjtRQUNuQyxPQUFPLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUFtQixjQUFpQztRQUN4RSxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FDckIsZ0JBQXdCLEVBQ3hCLE9BQWtHO1FBQ3RHLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7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Iiwic291cmNlc0NvbnRlbnQiOlsiXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuZGVjbGFyZSBjb25zdCBnbG9iYWw6IGFueTtcbmltcG9ydCB7IGNvbmZpZywgTGliVHlwZUFyciwgQ29uZmlnTW9kZWxzIH0gZnJvbSAndG5wLWNvbmZpZy93ZWJzcWwnO1xuaW1wb3J0IHsgXywgQ29yZUNvbmZpZyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAndG5wLW1vZGVscy93ZWJzcWwnO1xuaW1wb3J0IHsgTW9ycGhpIH0gZnJvbSAnbW9ycGhpL3dlYnNxbCc7XG5pbXBvcnQgeyBIZWxwZXJzRmlyZWRldiB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBFbXB0eVByb2plY3RTdHJ1Y3R1cmUgfSBmcm9tICcuL21vZGVscyc7XG5jb25zdCBIZWxwZXJzID0gSGVscGVyc0ZpcmVkZXYuSW5zdGFuY2U7XG5cblxuXG5leHBvcnQgY2xhc3MgUHJvamVjdDxUIGV4dGVuZHMgUHJvamVjdDxhbnk+ID0gYW55PlxuLyogKi9cbi8qICovXG4gIFxue1xuXG4gIHB1YmxpYyBzdGF0aWMgcHJvamVjdHM6IFByb2plY3Q8YW55PltdID0gW107XG4gIC8qKlxuICAgKiBUbyBzcGVlZCB1cCBjaGVja2luZyBmb2xkZXIgSSBhbSBrZWVwaW5nIHBhdGhlcyBmb3IgYWx0ZXJkeSBjaGVja2VkIGZvbGRlclxuICAgKiBUaGlzIG1heSBicmVhayB0aGluZ3MgdGhhdCBhcmUgY3JlYXRpbmcgbmV3IHByb2plY3RzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVtcHR5TG9jYXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHN0YXRpYyB0eXBlRnJvbShsb2NhdGlvbjogc3RyaW5nKTogQ29uZmlnTW9kZWxzLkxpYlR5cGUge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdW5sb2FkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBQcm9qZWN0LnByb2plY3RzID0gUHJvamVjdC5wcm9qZWN0cy5maWx0ZXIoZiA9PiBmICE9PSBwcm9qZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRnJvbTxUID0gUHJvamVjdDxhbnk+Pihsb2NhdGlvbk9mUHJvajogc3RyaW5nIHwgc3RyaW5nW10pOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG5lYXJlc3RUbzxUID0gUHJvamVjdD4oXG4gICAgYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IHR5cGU/OiBDb25maWdNb2RlbHMuTGliVHlwZTsgZmluZEdpdFJvb3Q/OiBib29sZWFuOyBvbmx5T3V0U2lkZU5vZGVNb2R1bGVzPzogYm9vbGVhbiB9KTogVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhbGxQcm9qZWN0RnJvbTxUID0gUHJvamVjdD4oYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLCBzdG9wT25Dd2Q6IHN0cmluZyA9ICcvJykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERlZmF1bHRQb3J0QnlUeXBlKHR5cGU6IENvbmZpZ01vZGVscy5MaWJUeXBlKTogbnVtYmVyIHtcbiAgICBpZiAodHlwZSA9PT0gJ3dvcmtzcGFjZScpIHsgcmV0dXJuIDUwMDA7IH1cbiAgICBpZiAodHlwZSA9PT0gJ2FuZ3VsYXItY2xpZW50JykgeyByZXR1cm4gNDMwMDsgfVxuICAgIGlmICh0eXBlID09PSAnYW5ndWxhci1saWInKSB7IHJldHVybiA0MjUwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdlbGVjdHJvbi1jbGllbnQnKSB7IHJldHVybiA0MzUwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdpb25pYy1jbGllbnQnKSB7IHJldHVybiA4MDgwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdkb2NrZXInKSB7IHJldHVybiA1MDAwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdpc29tb3JwaGljLWxpYicpIHsgcmV0dXJuIDQwMDA7IH1cbiAgICBpZiAodHlwZSA9PT0gJ2NvbnRhaW5lcicgfHwgdHlwZSA9PT0gJ3Vua25vdy1ucG0tcHJvamVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBpc0J1bmRsZU1vZGUoKSB7XG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuICBzdGF0aWMgZ2V0IEN1cnJlbnQoKTogUHJvamVjdDxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzdGF0aWMgZ2V0IFRucCgpOiBQcm9qZWN0PGFueT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGJ5PFQgPSBQcm9qZWN0PihcbiAgICBsaWJyYXJ5VHlwZTogQ29uZmlnTW9kZWxzLk5ld0ZhY3RvcnlUeXBlLFxuICAgIHZlcnNpb246IENvbmZpZ01vZGVscy5GcmFtZXdvcmtWZXJzaW9uXG4vKiAqL1xuLyogKi9cbiAgXG4gICk6IFQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgY2FjaGUgPSB7fTtcblxuICAvKipcbiAgICogRG8gdXNlIHRoaXMgdmFyaWFibGUgZm9yIGNvbXBhcmF0aW9zXG4gICAqIE9OTFkgRk9SIFZJRVdJTkdcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBfdHlwZTogQ29uZmlnTW9kZWxzLkxpYlR5cGU7XG4gIHB1YmxpYyBicm93c2VyOiBQaWNrPFByb2plY3Q8YW55PiwgJ2xvY2F0aW9uJyB8ICduYW1lJz4gPSB7fSBhcyBhbnk7XG4gIHB1YmxpYyBsb2NhdGlvbjogc3RyaW5nO1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZ2VuZXJpY05hbWU6IHN0cmluZztcbiAgcHVibGljIGlzV29ya3NwYWNlOiBib29sZWFuO1xuICBwdWJsaWMgaXNWc2NvZGVFeHRlbnNpb246IGJvb2xlYW47XG4gIHB1YmxpYyBpc0RvY2tlcjogYm9vbGVhbjtcbiAgcHVibGljIGlzU2l0ZTogYm9vbGVhbjtcbiAgcHVibGljIGlzU2l0ZUluU3RyaWN0TW9kZT86IGJvb2xlYW47XG4gIHB1YmxpYyBpc1NpdGVJbkRlcGVuZGVuY3lNb2RlPzogYm9vbGVhbjtcbiAgcHVibGljIGlzQ29yZVByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbW1hbmRMaW5lVG9vbE9ubHk6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgcHVibGljIGlzR2VuZXJhdGVkRm9yUmVsZWFzZTogYm9vbGVhbjtcbiAgcHVibGljIGlzV29ya3NwYWNlQ2hpbGRQcm9qZWN0OiBib29sZWFuO1xuICBwdWJsaWMgaXNCYXNlZE9uT3RoZXJQcm9qZWN0OiBib29sZWFuO1xuICBwdWJsaWMgaXNGb3JSZWNyZWF0aW9uOiBib29sZWFuO1xuICBwdWJsaWMgaXNDb250YWluZXI6IGJvb2xlYW47XG4gIHB1YmxpYyBpc1NtYXJ0Q29udGFpbmVyOiBib29sZWFuO1xuICBwdWJsaWMgaXNTbWFydENvbnRhaW5lckNoaWxkOiBib29sZWFuO1xuICBwdWJsaWMgaXNDb250YWluZXJXaXRoTGlua2VkUHJvamVjdHM6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbnRhaW5lckNoaWxkOiBib29sZWFuO1xuICBwdWJsaWMgaXNDb250YWluZXJDb3JlUHJvamVjdDogYm9vbGVhbjtcbiAgcHVibGljIGlzU3RhbmRhbG9uZVByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc01vbm9yZXBvOiBib29sZWFuO1xuICBwdWJsaWMgaXNVbmtub3dOcG1Qcm9qZWN0OiBib29sZWFuO1xuICBwdWJsaWMgaXNOYXZpQ2xpOiBib29sZWFuO1xuICBwdWJsaWMgdXNlRnJhbWV3b3JrOiBib29sZWFuO1xuICBwdWJsaWMgZGVmYXVsdFBvcnQ/OiBudW1iZXI7XG4gIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBsYXN0TnBtVmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIF9yb3V0ZXJUYXJnZXRIdHRwPzogc3RyaW5nO1xuICBwdWJsaWMgY3VzdG9taXphYmxlRmlsZXNBbmRGb2xkZXJzOiBzdHJpbmdbXTtcbiAgcHVibGljIHR5cGU6IENvbmZpZ01vZGVscy5MaWJUeXBlO1xuICBwdWJsaWMgYmFja3VwTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVzb3VyY2VzOiBzdHJpbmdbXTtcbiAgcHVibGljIGVudj86IGFueTtcbiAgcHVibGljIGFsbG93ZWRFbnZpcm9ubWVudHM6IENvbmZpZ01vZGVscy5FbnZpcm9ubWVudE5hbWVbXTtcblxuICBwdWJsaWMgY2hpbGRyZW46IFRbXTtcbiAgcHVibGljIHNtYXJ0Q29udGFpbmVyQnVpbGRUYXJnZXQ6IFQ7XG4gIHB1YmxpYyBncmFuZHBhOiBUO1xuXG4gIHB1YmxpYyBkaXN0cmlidXRpb246IFQ7XG5cbiAgcHVibGljIGNoaWxkcmVuVGhhdEFyZUxpYnM/OiBUW107XG5cbiAgcHVibGljIGNoaWxkcmVuVGhhdEFyZUNsaWVudHM/OiBUW107XG5cbiAgcHVibGljIGNoaWxkcmVuVGhhdEFyZVRoaXJkUGFydHlJbk5vZGVNb2R1bGVzPzogVFtdO1xuXG4gIHB1YmxpYyBwYXJlbnQ6IFQ7XG5cbiAgcHVibGljIHByZXZpZXc6IFQ7XG5cbiAgcHVibGljIGJhc2VsaW5lOiBUO1xuXG5cblxuICBkZWZpbmVQcm9wZXJ0eTxUPih2YXJpYWJsZU5hbWU6IGtleW9mIFQsIGNsYXNzRm46IEZ1bmN0aW9uKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHNldFR5cGUodGhpczogUHJvamVjdCwgdHlwZTogQ29uZmlnTW9kZWxzLkxpYlR5cGUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cbiAgcHVibGljIHR5cGVJcyh0aGlzOiBQcm9qZWN0LCAuLi50eXBlczogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSkge1xuICAgIHJldHVybiB0aGlzLl90eXBlICYmIHR5cGVzLmluY2x1ZGVzKHRoaXMuX3R5cGUpO1xuICB9XG5cbiAgcHVibGljIHR5cGVJc05vdCh0aGlzOiBQcm9qZWN0LCAuLi50eXBlczogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSkge1xuICAgIHJldHVybiAhdGhpcy50eXBlSXMoLi4udHlwZXMpO1xuICB9XG5cbiAgZm9yRW1wdHlTdHJ1Y3R1cmUoKTogRW1wdHlQcm9qZWN0U3RydWN0dXJlW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxufVxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9wcm9qZWN0LnRzIl19
415
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFRTCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTNDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7QUFHeEM7Ozs7R0FJRztBQUNILE1BQWEsT0FBTztJQUFwQjtRQStVWSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBT2QsWUFBTyxHQUE0QyxFQUFTLENBQUM7SUE2R3RFLENBQUM7YUE3YmUsYUFBUSxHQUFtQixFQUFFLEFBQXJCLENBQXNCO0lBQzVDOzs7T0FHRzthQUNXLG1CQUFjLEdBQWEsRUFBRSxBQUFmLENBQWdCO0lBRTVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBZ0I7UUFDbkMsT0FBTyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FBbUIsY0FBaUM7UUFDeEUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQ3JCLGdCQUF3QixFQUN4QixPQUFrRztRQUN0RyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtB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QyxDQUFDLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbIlxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmRlY2xhcmUgY29uc3QgZ2xvYmFsOiBhbnk7XG5pbXBvcnQgeyBjb25maWcsIExpYlR5cGVBcnIsIENvbmZpZ01vZGVscyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IF8sIENvcmVDb25maWcgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJ3RucC1tb2RlbHMvd2Vic3FsJztcbmltcG9ydCB7IE1vcnBoaSB9IGZyb20gJ21vcnBoaS93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVyc0ZpcmVkZXYgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgRW1wdHlQcm9qZWN0U3RydWN0dXJlIH0gZnJvbSAnLi9tb2RlbHMnO1xuY29uc3QgSGVscGVycyA9IEhlbHBlcnNGaXJlZGV2Lkluc3RhbmNlO1xuXG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqXG4gKiB1c2UgQmFzZVByb2plY3QgaW5zdGVhZFxuICovXG5leHBvcnQgY2xhc3MgUHJvamVjdDxUIGV4dGVuZHMgUHJvamVjdDxhbnk+ID0gYW55PlxuLyogKi9cbi8qICovXG4gIFxue1xuXG4gIHB1YmxpYyBzdGF0aWMgcHJvamVjdHM6IFByb2plY3Q8YW55PltdID0gW107XG4gIC8qKlxuICAgKiBUbyBzcGVlZCB1cCBjaGVja2luZyBmb2xkZXIgSSBhbSBrZWVwaW5nIHBhdGhlcyBmb3IgYWx0ZXJkeSBjaGVja2VkIGZvbGRlclxuICAgKiBUaGlzIG1heSBicmVhayB0aGluZ3MgdGhhdCBhcmUgY3JlYXRpbmcgbmV3IHByb2plY3RzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVtcHR5TG9jYXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHN0YXRpYyB0eXBlRnJvbShsb2NhdGlvbjogc3RyaW5nKTogQ29uZmlnTW9kZWxzLkxpYlR5cGUge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdW5sb2FkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBQcm9qZWN0LnByb2plY3RzID0gUHJvamVjdC5wcm9qZWN0cy5maWx0ZXIoZiA9PiBmICE9PSBwcm9qZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRnJvbTxUID0gUHJvamVjdDxhbnk+Pihsb2NhdGlvbk9mUHJvajogc3RyaW5nIHwgc3RyaW5nW10pOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG5lYXJlc3RUbzxUID0gUHJvamVjdD4oXG4gICAgYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IHR5cGU/OiBDb25maWdNb2RlbHMuTGliVHlwZTsgZmluZEdpdFJvb3Q/OiBib29sZWFuOyBvbmx5T3V0U2lkZU5vZGVNb2R1bGVzPzogYm9vbGVhbiB9KTogVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhbGxQcm9qZWN0RnJvbTxUID0gUHJvamVjdD4oYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLCBzdG9wT25Dd2Q6IHN0cmluZyA9ICcvJykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERlZmF1bHRQb3J0QnlUeXBlKHR5cGU6IENvbmZpZ01vZGVscy5MaWJUeXBlKTogbnVtYmVyIHtcbiAgICBpZiAodHlwZSA9PT0gJ3dvcmtzcGFjZScpIHsgcmV0dXJuIDUwMDA7IH1cbiAgICBpZiAodHlwZSA9PT0gJ2FuZ3VsYXItY2xpZW50JykgeyByZXR1cm4gNDMwMDsgfVxuICAgIGlmICh0eXBlID09PSAnYW5ndWxhci1saWInKSB7IHJldHVybiA0MjUwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdlbGVjdHJvbi1jbGllbnQnKSB7IHJldHVybiA0MzUwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdpb25pYy1jbGllbnQnKSB7IHJldHVybiA4MDgwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdkb2NrZXInKSB7IHJldHVybiA1MDAwOyB9XG4gICAgaWYgKHR5cGUgPT09ICdpc29tb3JwaGljLWxpYicpIHsgcmV0dXJuIDQwMDA7IH1cbiAgICBpZiAodHlwZSA9PT0gJ2NvbnRhaW5lcicgfHwgdHlwZSA9PT0gJ3Vua25vdy1ucG0tcHJvamVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBpc0J1bmRsZU1vZGUoKSB7XG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuICBzdGF0aWMgZ2V0IEN1cnJlbnQoKTogUHJvamVjdDxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzdGF0aWMgZ2V0IFRucCgpOiBQcm9qZWN0PGFueT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGJ5PFQgPSBQcm9qZWN0PihcbiAgICBsaWJyYXJ5VHlwZTogQ29uZmlnTW9kZWxzLk5ld0ZhY3RvcnlUeXBlLFxuICAgIHZlcnNpb246IENvbmZpZ01vZGVscy5GcmFtZXdvcmtWZXJzaW9uXG4vKiAqL1xuLyogKi9cbiAgXG4gICk6IFQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgY2FjaGUgPSB7fTtcblxuICAvKipcbiAgICogRG8gdXNlIHRoaXMgdmFyaWFibGUgZm9yIGNvbXBhcmF0aW9zXG4gICAqIE9OTFkgRk9SIFZJRVdJTkdcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBfdHlwZTogQ29uZmlnTW9kZWxzLkxpYlR5cGU7XG4gIHB1YmxpYyBicm93c2VyOiBQaWNrPFByb2plY3Q8YW55PiwgJ2xvY2F0aW9uJyB8ICduYW1lJz4gPSB7fSBhcyBhbnk7XG4gIHB1YmxpYyBsb2NhdGlvbjogc3RyaW5nO1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZ2VuZXJpY05hbWU6IHN0cmluZztcbiAgcHVibGljIGlzV29ya3NwYWNlOiBib29sZWFuO1xuICBwdWJsaWMgaXNWc2NvZGVFeHRlbnNpb246IGJvb2xlYW47XG4gIHB1YmxpYyBpc0RvY2tlcjogYm9vbGVhbjtcbiAgcHVibGljIGlzU2l0ZTogYm9vbGVhbjtcbiAgcHVibGljIGlzU2l0ZUluU3RyaWN0TW9kZT86IGJvb2xlYW47XG4gIHB1YmxpYyBpc1NpdGVJbkRlcGVuZGVuY3lNb2RlPzogYm9vbGVhbjtcbiAgcHVibGljIGlzQ29yZVByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbW1hbmRMaW5lVG9vbE9ubHk6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgcHVibGljIGlzR2VuZXJhdGVkRm9yUmVsZWFzZTogYm9vbGVhbjtcbiAgcHVibGljIGlzV29ya3NwYWNlQ2hpbGRQcm9qZWN0OiBib29sZWFuO1xuICBwdWJsaWMgaXNCYXNlZE9uT3RoZXJQcm9qZWN0OiBib29sZWFuO1xuICBwdWJsaWMgaXNGb3JSZWNyZWF0aW9uOiBib29sZWFuO1xuICBwdWJsaWMgaXNDb250YWluZXI6IGJvb2xlYW47XG4gIHB1YmxpYyBpc1NtYXJ0Q29udGFpbmVyOiBib29sZWFuO1xuICBwdWJsaWMgaXNTbWFydENvbnRhaW5lckNoaWxkOiBib29sZWFuO1xuICBwdWJsaWMgaXNDb250YWluZXJXaXRoTGlua2VkUHJvamVjdHM6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0NvbnRhaW5lckNoaWxkOiBib29sZWFuO1xuICBwdWJsaWMgaXNDb250YWluZXJDb3JlUHJvamVjdDogYm9vbGVhbjtcbiAgcHVibGljIGlzU3RhbmRhbG9uZVByb2plY3Q6IGJvb2xlYW47XG4gIHB1YmxpYyBpc01vbm9yZXBvOiBib29sZWFuO1xuICBwdWJsaWMgaXNVbmtub3dOcG1Qcm9qZWN0OiBib29sZWFuO1xuICBwdWJsaWMgaXNOYXZpQ2xpOiBib29sZWFuO1xuICBwdWJsaWMgdXNlRnJhbWV3b3JrOiBib29sZWFuO1xuICBwdWJsaWMgZGVmYXVsdFBvcnQ/OiBudW1iZXI7XG4gIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBsYXN0TnBtVmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIF9yb3V0ZXJUYXJnZXRIdHRwPzogc3RyaW5nO1xuICBwdWJsaWMgY3VzdG9taXphYmxlRmlsZXNBbmRGb2xkZXJzOiBzdHJpbmdbXTtcbiAgcHVibGljIHR5cGU6IENvbmZpZ01vZGVscy5MaWJUeXBlO1xuICBwdWJsaWMgYmFja3VwTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVzb3VyY2VzOiBzdHJpbmdbXTtcbiAgcHVibGljIGVudj86IGFueTtcbiAgcHVibGljIGFsbG93ZWRFbnZpcm9ubWVudHM6IENvbmZpZ01vZGVscy5FbnZpcm9ubWVudE5hbWVbXTtcblxuICBwdWJsaWMgY2hpbGRyZW46IFRbXTtcbiAgcHVibGljIHNtYXJ0Q29udGFpbmVyQnVpbGRUYXJnZXQ6IFQ7XG4gIHB1YmxpYyBncmFuZHBhOiBUO1xuXG4gIHB1YmxpYyBkaXN0cmlidXRpb246IFQ7XG5cbiAgcHVibGljIGNoaWxkcmVuVGhhdEFyZUxpYnM/OiBUW107XG5cbiAgcHVibGljIGNoaWxkcmVuVGhhdEFyZUNsaWVudHM/OiBUW107XG5cbiAgcHVibGljIGNoaWxkcmVuVGhhdEFyZVRoaXJkUGFydHlJbk5vZGVNb2R1bGVzPzogVFtdO1xuXG4gIHB1YmxpYyBwYXJlbnQ6IFQ7XG5cbiAgcHVibGljIHByZXZpZXc6IFQ7XG5cbiAgcHVibGljIGJhc2VsaW5lOiBUO1xuXG5cblxuICBkZWZpbmVQcm9wZXJ0eTxUPih2YXJpYWJsZU5hbWU6IGtleW9mIFQsIGNsYXNzRm46IEZ1bmN0aW9uKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHVibGljIHNldFR5cGUodGhpczogUHJvamVjdCwgdHlwZTogQ29uZmlnTW9kZWxzLkxpYlR5cGUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cbiAgcHVibGljIHR5cGVJcyh0aGlzOiBQcm9qZWN0LCAuLi50eXBlczogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSkge1xuICAgIHJldHVybiB0aGlzLl90eXBlICYmIHR5cGVzLmluY2x1ZGVzKHRoaXMuX3R5cGUpO1xuICB9XG5cbiAgcHVibGljIHR5cGVJc05vdCh0aGlzOiBQcm9qZWN0LCAuLi50eXBlczogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSkge1xuICAgIHJldHVybiAhdGhpcy50eXBlSXMoLi4udHlwZXMpO1xuICB9XG5cbiAgZm9yRW1wdHlTdHJ1Y3R1cmUoKTogRW1wdHlQcm9qZWN0U3RydWN0dXJlW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxufVxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9wcm9qZWN0LnRzIl19