@payloadcms/db-mongodb 3.0.0-alpha.18 → 3.0.0-alpha.19

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 (45) hide show
  1. package/dist/connect.js +5 -20
  2. package/dist/create.js +6 -21
  3. package/dist/createGlobal.js +6 -21
  4. package/dist/createGlobalVersion.js +4 -14
  5. package/dist/createMigration.js +9 -24
  6. package/dist/createVersion.js +4 -14
  7. package/dist/deleteMany.js +4 -14
  8. package/dist/deleteOne.js +6 -21
  9. package/dist/deleteVersions.js +4 -14
  10. package/dist/destroy.js +7 -22
  11. package/dist/find.js +10 -25
  12. package/dist/findGlobal.js +8 -23
  13. package/dist/findGlobalVersions.js +12 -27
  14. package/dist/findOne.js +6 -21
  15. package/dist/findVersions.js +10 -25
  16. package/dist/index.js +64 -79
  17. package/dist/init.js +24 -39
  18. package/dist/migrateFresh.js +11 -24
  19. package/dist/models/buildCollectionSchema.js +8 -23
  20. package/dist/models/buildGlobalModel.js +9 -24
  21. package/dist/models/buildSchema.js +22 -37
  22. package/dist/queries/buildAndOrConditions.js +4 -14
  23. package/dist/queries/buildQuery.js +6 -16
  24. package/dist/queries/buildSearchParams.js +20 -32
  25. package/dist/queries/buildSortParam.js +4 -14
  26. package/dist/queries/getLocalizedSortProperty.js +8 -18
  27. package/dist/queries/getLocalizedSortProperty.spec.js +19 -23
  28. package/dist/queries/mock.js +0 -1
  29. package/dist/queries/operatorMap.js +2 -12
  30. package/dist/queries/parseParams.js +12 -27
  31. package/dist/queries/sanitizeQueryValue.js +8 -23
  32. package/dist/queryDrafts.js +11 -26
  33. package/dist/testCredentials.js +4 -25
  34. package/dist/transactions/beginTransaction.js +6 -16
  35. package/dist/transactions/commitTransaction.js +2 -12
  36. package/dist/transactions/rollbackTransaction.js +2 -12
  37. package/dist/types.js +2 -5
  38. package/dist/updateGlobal.js +6 -21
  39. package/dist/updateGlobalVersion.js +4 -14
  40. package/dist/updateOne.js +8 -23
  41. package/dist/updateVersion.js +4 -14
  42. package/dist/utilities/handleError.js +6 -21
  43. package/dist/utilities/sanitizeInternalFields.js +2 -12
  44. package/dist/withSession.js +5 -12
  45. package/package.json +3 -3
@@ -1,20 +1,5 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/no-use-before-define */ "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
12
- const _types = require("payload/types");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/no-use-before-define */ import mongoose from 'mongoose';
2
+ import { fieldAffectsData, fieldIsLocalized, fieldIsPresentationalOnly, tabHasName } from 'payload/types';
18
3
  const formatBaseSchema = (field, buildSchemaOptions)=>{
19
4
  const { disableUnique, draftsEnabled, indexSortableFields } = buildSchemaOptions;
20
5
  const schema = {
@@ -22,7 +7,7 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
22
7
  required: false,
23
8
  unique: !disableUnique && field.unique || false
24
9
  };
25
- if (schema.unique && (field.localized || draftsEnabled || (0, _types.fieldAffectsData)(field) && field.type !== 'group' && field.type !== 'tab' && field.required !== true)) {
10
+ if (schema.unique && (field.localized || draftsEnabled || fieldAffectsData(field) && field.type !== 'group' && field.type !== 'tab' && field.required !== true)) {
26
11
  schema.sparse = true;
27
12
  }
28
13
  if (field.hidden) {
@@ -31,7 +16,7 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
31
16
  return schema;
32
17
  };
33
18
  const localizeSchema = (entity, schema, localization)=>{
34
- if ((0, _types.fieldIsLocalized)(entity) && localization && Array.isArray(localization.locales)) {
19
+ if (fieldIsLocalized(entity) && localization && Array.isArray(localization.locales)) {
35
20
  return {
36
21
  type: localization.localeCodes.reduce((localeSchema, locale)=>({
37
22
  ...localeSchema,
@@ -49,17 +34,17 @@ const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
49
34
  let fields = {};
50
35
  let schemaFields = configFields;
51
36
  if (!allowIDField) {
52
- const idField = schemaFields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
37
+ const idField = schemaFields.find((field)=>fieldAffectsData(field) && field.name === 'id');
53
38
  if (idField) {
54
39
  fields = {
55
40
  _id: idField.type === 'number' ? Number : String
56
41
  };
57
- schemaFields = schemaFields.filter((field)=>!((0, _types.fieldAffectsData)(field) && field.name === 'id'));
42
+ schemaFields = schemaFields.filter((field)=>!(fieldAffectsData(field) && field.name === 'id'));
58
43
  }
59
44
  }
60
- const schema = new _mongoose.default.Schema(fields, options);
45
+ const schema = new mongoose.Schema(fields, options);
61
46
  schemaFields.forEach((field)=>{
62
- if (!(0, _types.fieldIsPresentationalOnly)(field)) {
47
+ if (!fieldIsPresentationalOnly(field)) {
63
48
  const addFieldSchema = fieldToSchemaMap[field.type];
64
49
  if (addFieldSchema) {
65
50
  addFieldSchema(field, schema, config, buildSchemaOptions);
@@ -93,7 +78,7 @@ const fieldToSchemaMap = {
93
78
  blocks: (field, schema, config, buildSchemaOptions)=>{
94
79
  const fieldSchema = {
95
80
  type: [
96
- new _mongoose.default.Schema({}, {
81
+ new mongoose.Schema({}, {
97
82
  _id: false,
98
83
  discriminatorKey: 'blockType'
99
84
  })
@@ -104,7 +89,7 @@ const fieldToSchemaMap = {
104
89
  [field.name]: localizeSchema(field, fieldSchema, config.localization)
105
90
  });
106
91
  field.blocks.forEach((blockItem)=>{
107
- const blockSchema = new _mongoose.default.Schema({}, {
92
+ const blockSchema = new mongoose.Schema({}, {
108
93
  _id: false,
109
94
  id: false
110
95
  });
@@ -195,7 +180,7 @@ const fieldToSchemaMap = {
195
180
  json: (field, schema, config, buildSchemaOptions)=>{
196
181
  const baseSchema = {
197
182
  ...formatBaseSchema(field, buildSchemaOptions),
198
- type: _mongoose.default.Schema.Types.Mixed
183
+ type: mongoose.Schema.Types.Mixed
199
184
  };
200
185
  schema.add({
201
186
  [field.name]: localizeSchema(field, baseSchema, config.localization)
@@ -277,20 +262,20 @@ const fieldToSchemaMap = {
277
262
  localeSchema = {
278
263
  ...formatBaseSchema(field, buildSchemaOptions),
279
264
  _id: false,
280
- type: _mongoose.default.Schema.Types.Mixed,
265
+ type: mongoose.Schema.Types.Mixed,
281
266
  relationTo: {
282
267
  type: String,
283
268
  enum: field.relationTo
284
269
  },
285
270
  value: {
286
- type: _mongoose.default.Schema.Types.Mixed,
271
+ type: mongoose.Schema.Types.Mixed,
287
272
  refPath: `${field.name}.${locale}.relationTo`
288
273
  }
289
274
  };
290
275
  } else {
291
276
  localeSchema = {
292
277
  ...formatBaseSchema(field, buildSchemaOptions),
293
- type: _mongoose.default.Schema.Types.Mixed,
278
+ type: mongoose.Schema.Types.Mixed,
294
279
  ref: field.relationTo
295
280
  };
296
281
  }
@@ -310,13 +295,13 @@ const fieldToSchemaMap = {
310
295
  schemaToReturn = {
311
296
  ...formatBaseSchema(field, buildSchemaOptions),
312
297
  _id: false,
313
- type: _mongoose.default.Schema.Types.Mixed,
298
+ type: mongoose.Schema.Types.Mixed,
314
299
  relationTo: {
315
300
  type: String,
316
301
  enum: field.relationTo
317
302
  },
318
303
  value: {
319
- type: _mongoose.default.Schema.Types.Mixed,
304
+ type: mongoose.Schema.Types.Mixed,
320
305
  refPath: `${field.name}.relationTo`
321
306
  }
322
307
  };
@@ -331,7 +316,7 @@ const fieldToSchemaMap = {
331
316
  } else {
332
317
  schemaToReturn = {
333
318
  ...formatBaseSchema(field, buildSchemaOptions),
334
- type: _mongoose.default.Schema.Types.Mixed,
319
+ type: mongoose.Schema.Types.Mixed,
335
320
  ref: field.relationTo
336
321
  };
337
322
  if (field.hasMany) {
@@ -350,7 +335,7 @@ const fieldToSchemaMap = {
350
335
  richText: (field, schema, config, buildSchemaOptions)=>{
351
336
  const baseSchema = {
352
337
  ...formatBaseSchema(field, buildSchemaOptions),
353
- type: _mongoose.default.Schema.Types.Mixed
338
+ type: mongoose.Schema.Types.Mixed
354
339
  };
355
340
  schema.add({
356
341
  [field.name]: localizeSchema(field, baseSchema, config.localization)
@@ -384,7 +369,7 @@ const fieldToSchemaMap = {
384
369
  },
385
370
  tabs: (field, schema, config, buildSchemaOptions)=>{
386
371
  field.tabs.forEach((tab)=>{
387
- if ((0, _types.tabHasName)(tab)) {
372
+ if (tabHasName(tab)) {
388
373
  const baseSchema = {
389
374
  type: buildSchema(config, tab.fields, {
390
375
  disableUnique: buildSchemaOptions.disableUnique,
@@ -432,7 +417,7 @@ const fieldToSchemaMap = {
432
417
  upload: (field, schema, config, buildSchemaOptions)=>{
433
418
  const baseSchema = {
434
419
  ...formatBaseSchema(field, buildSchemaOptions),
435
- type: _mongoose.default.Schema.Types.Mixed,
420
+ type: mongoose.Schema.Types.Mixed,
436
421
  ref: field.relationTo
437
422
  };
438
423
  schema.add({
@@ -440,6 +425,6 @@ const fieldToSchemaMap = {
440
425
  });
441
426
  }
442
427
  };
443
- const _default = buildSchema;
428
+ export default buildSchema;
444
429
 
445
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmltcG9ydCB0eXBlIHsgSW5kZXhPcHRpb25zLCBTY2hlbWEsIFNjaGVtYU9wdGlvbnMsIFNjaGVtYVR5cGVPcHRpb25zIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZywgU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIEFycmF5RmllbGQsXG4gIEJsb2NrLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgR3JvdXBGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOb25QcmVzZW50YXRpb25hbEZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFiLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBtb25nb29zZSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB7XG4gIGZpZWxkQWZmZWN0c0RhdGEsXG4gIGZpZWxkSXNMb2NhbGl6ZWQsXG4gIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHksXG4gIHRhYkhhc05hbWUsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmV4cG9ydCB0eXBlIEJ1aWxkU2NoZW1hT3B0aW9ucyA9IHtcbiAgYWxsb3dJREZpZWxkPzogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBkcmFmdHNFbmFibGVkPzogYm9vbGVhblxuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICBvcHRpb25zPzogU2NoZW1hT3B0aW9uc1xufVxuXG50eXBlIEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gKFxuICBmaWVsZDogRmllbGQsXG4gIHNjaGVtYTogU2NoZW1hLFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4pID0+IHZvaWRcblxuY29uc3QgZm9ybWF0QmFzZVNjaGVtYSA9IChmaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhLCBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucykgPT4ge1xuICBjb25zdCB7IGRpc2FibGVVbmlxdWUsIGRyYWZ0c0VuYWJsZWQsIGluZGV4U29ydGFibGVGaWVsZHMgfSA9IGJ1aWxkU2NoZW1hT3B0aW9uc1xuICBjb25zdCBzY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgIGluZGV4OiBmaWVsZC5pbmRleCB8fCAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBpbmRleFNvcnRhYmxlRmllbGRzIHx8IGZhbHNlLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB1bmlxdWU6ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGZhbHNlLFxuICB9XG5cbiAgaWYgKFxuICAgIHNjaGVtYS51bmlxdWUgJiZcbiAgICAoZmllbGQubG9jYWxpemVkIHx8XG4gICAgICBkcmFmdHNFbmFibGVkIHx8XG4gICAgICAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ2dyb3VwJyAmJlxuICAgICAgICBmaWVsZC50eXBlICE9PSAndGFiJyAmJlxuICAgICAgICBmaWVsZC5yZXF1aXJlZCAhPT0gdHJ1ZSkpXG4gICkge1xuICAgIHNjaGVtYS5zcGFyc2UgPSB0cnVlXG4gIH1cblxuICBpZiAoZmllbGQuaGlkZGVuKSB7XG4gICAgc2NoZW1hLmhpZGRlbiA9IHRydWVcbiAgfVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgbG9jYWxpemVTY2hlbWEgPSAoXG4gIGVudGl0eTogTm9uUHJlc2VudGF0aW9uYWxGaWVsZCB8IFRhYixcbiAgc2NoZW1hLFxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlLFxuKSA9PiB7XG4gIGlmIChmaWVsZElzTG9jYWxpemVkKGVudGl0eSkgJiYgbG9jYWxpemF0aW9uICYmIEFycmF5LmlzQXJyYXkobG9jYWxpemF0aW9uLmxvY2FsZXMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoXG4gICAgICAgIChsb2NhbGVTY2hlbWEsIGxvY2FsZSkgPT4gKHtcbiAgICAgICAgICAuLi5sb2NhbGVTY2hlbWEsXG4gICAgICAgICAgW2xvY2FsZV06IHNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBidWlsZFNjaGVtYSA9IChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGNvbmZpZ0ZpZWxkczogRmllbGRbXSxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7fSxcbik6IFNjaGVtYSA9PiB7XG4gIGNvbnN0IHsgYWxsb3dJREZpZWxkLCBvcHRpb25zIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgbGV0IGZpZWxkcyA9IHt9XG5cbiAgbGV0IHNjaGVtYUZpZWxkcyA9IGNvbmZpZ0ZpZWxkc1xuXG4gIGlmICghYWxsb3dJREZpZWxkKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IHNjaGVtYUZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcbiAgICBpZiAoaWRGaWVsZCkge1xuICAgICAgZmllbGRzID0ge1xuICAgICAgICBfaWQ6IGlkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyBOdW1iZXIgOiBTdHJpbmcsXG4gICAgICB9XG4gICAgICBzY2hlbWFGaWVsZHMgPSBzY2hlbWFGaWVsZHMuZmlsdGVyKFxuICAgICAgICAoZmllbGQpID0+ICEoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyksXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hID0gbmV3IG1vbmdvb3NlLlNjaGVtYShmaWVsZHMsIG9wdGlvbnMpXG5cbiAgc2NoZW1hRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCFmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5KGZpZWxkKSkge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtmaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoZmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgZmllbGRUb1NjaGVtYU1hcDogUmVjb3JkPHN0cmluZywgRmllbGRTY2hlbWFHZW5lcmF0b3I+ID0ge1xuICBhcnJheTogKFxuICAgIGZpZWxkOiBBcnJheUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFtcbiAgICAgICAgYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgICBhbGxvd0lERmllbGQ6IHRydWUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBibG9ja3M6IChcbiAgICBmaWVsZDogQmxvY2tGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSB7XG4gICAgICB0eXBlOiBbbmV3IG1vbmdvb3NlLlNjaGVtYSh7fSwgeyBfaWQ6IGZhbHNlLCBkaXNjcmltaW5hdG9yS2V5OiAnYmxvY2tUeXBlJyB9KV0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBmaWVsZFNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGZpZWxkLmJsb2Nrcy5mb3JFYWNoKChibG9ja0l0ZW06IEJsb2NrKSA9PiB7XG4gICAgICBjb25zdCBibG9ja1NjaGVtYSA9IG5ldyBtb25nb29zZS5TY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgaWQ6IGZhbHNlIH0pXG5cbiAgICAgIGJsb2NrSXRlbS5maWVsZHMuZm9yRWFjaCgoYmxvY2tGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW2Jsb2NrRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgYWRkRmllbGRTY2hlbWEoYmxvY2tGaWVsZCwgYmxvY2tTY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5mb3JFYWNoKChsb2NhbGVDb2RlKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICAgIHNjaGVtYS5wYXRoKGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlQ29kZX1gKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQb3NzaWJsZSBpbmNvcnJlY3QgdHlwaW5nIGluIG1vbmdvb3NlIHR5cGVzLCB0aGlzIHdvcmtzXG4gICAgICAgIHNjaGVtYS5wYXRoKGZpZWxkLm5hbWUpLmRpc2NyaW1pbmF0b3IoYmxvY2tJdGVtLnNsdWcsIGJsb2NrU2NoZW1hKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGNoZWNrYm94OiAoXG4gICAgZmllbGQ6IENoZWNrYm94RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IEJvb2xlYW4gfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2RlOiAoXG4gICAgZmllbGQ6IENvZGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29sbGFwc2libGU6IChcbiAgICBmaWVsZDogQ29sbGFwc2libGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgZGF0ZTogKFxuICAgIGZpZWxkOiBEYXRlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IERhdGUgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBlbWFpbDogKFxuICAgIGZpZWxkOiBFbWFpbEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBncm91cDogKFxuICAgIGZpZWxkOiBHcm91cEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRCYXNlU2NoZW1hID0gZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKVxuXG4gICAgLy8gY2FycnkgaW5kZXhTb3J0YWJsZUZpZWxkcyB0aHJvdWdoIHRvIHZlcnNpb25zIGlmIGRyYWZ0cyBlbmFibGVkXG4gICAgY29uc3QgaW5kZXhTb3J0YWJsZUZpZWxkcyA9XG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuaW5kZXhTb3J0YWJsZUZpZWxkcyAmJlxuICAgICAgZmllbGQubmFtZSA9PT0gJ3ZlcnNpb24nICYmXG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZFxuXG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdHRlZEJhc2VTY2hlbWEsXG4gICAgICB0eXBlOiBidWlsZFNjaGVtYShjb25maWcsIGZpZWxkLmZpZWxkcywge1xuICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgIGluZGV4U29ydGFibGVGaWVsZHMsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGpzb246IChcbiAgICBmaWVsZDogSlNPTkZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIG51bWJlcjogKFxuICAgIGZpZWxkOiBOdW1iZXJGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW051bWJlcl0gOiBOdW1iZXIsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXG4gICAgICB9LFxuICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgdHlwZTogW051bWJlcl0sXG4gICAgICAgIGRlZmF1bHQ6IGZpZWxkLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUgJiYgZmllbGQubG9jYWxpemVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmNvb3JkaW5hdGVzLnNwYXJzZSA9IHRydWVcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBpZiAoZmllbGQuaW5kZXggPT09IHRydWUgfHwgZmllbGQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaW5kZXhPcHRpb25zOiBJbmRleE9wdGlvbnMgPSB7fVxuICAgICAgaWYgKCFidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgaW5kZXhPcHRpb25zLnNwYXJzZSA9IHRydWVcbiAgICAgICAgaW5kZXhPcHRpb25zLnVuaXF1ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZXMuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgc2NoZW1hLmluZGV4KHsgW2Ake2ZpZWxkLm5hbWV9LiR7bG9jYWxlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiAoXG4gICAgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICB0eXBlOiBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZSgobG9jYWxlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgbGV0IGxvY2FsZVNjaGVtYTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICAgICAgICBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlfS5yZWxhdGlvblRvYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubG9jYWxlcyxcbiAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZC5oYXNNYW55ID8geyB0eXBlOiBbbG9jYWxlU2NoZW1hXSwgZGVmYXVsdDogdW5kZWZpbmVkIH0gOiBsb2NhbGVTY2hlbWEsXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LnJlbGF0aW9uVG9gLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICByZWY6IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IHNjaGVtYVRvUmV0dXJuLFxuICAgIH0pXG4gIH0sXG4gIHJpY2hUZXh0OiAoXG4gICAgZmllbGQ6IFJpY2hUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJzcGFyc2UiLCJoaWRkZW4iLCJsb2NhbGl6ZVNjaGVtYSIsImVudGl0eSIsImxvY2FsaXphdGlvbiIsImZpZWxkSXNMb2NhbGl6ZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsb2NhbGVzIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsIm5hbWUiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJtb25nb29zZSIsIlNjaGVtYSIsImZvckVhY2giLCJmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5IiwiYWRkRmllbGRTY2hlbWEiLCJmaWVsZFRvU2NoZW1hTWFwIiwiYXJyYXkiLCJiYXNlU2NoZW1hIiwiaWQiLCJtaW5pbWl6ZSIsImRlZmF1bHQiLCJ1bmRlZmluZWQiLCJhZGQiLCJibG9ja3MiLCJmaWVsZFNjaGVtYSIsImRpc2NyaW1pbmF0b3JLZXkiLCJibG9ja0l0ZW0iLCJibG9ja1NjaGVtYSIsImJsb2NrRmllbGQiLCJsb2NhbGVDb2RlIiwicGF0aCIsImRpc2NyaW1pbmF0b3IiLCJzbHVnIiwiY2hlY2tib3giLCJCb29sZWFuIiwiY29kZSIsImNvbGxhcHNpYmxlIiwic3ViRmllbGQiLCJkYXRlIiwiRGF0ZSIsImVtYWlsIiwiZ3JvdXAiLCJmb3JtYXR0ZWRCYXNlU2NoZW1hIiwianNvbiIsIlR5cGVzIiwiTWl4ZWQiLCJudW1iZXIiLCJoYXNNYW55IiwicG9pbnQiLCJlbnVtIiwiY29vcmRpbmF0ZXMiLCJkZWZhdWx0VmFsdWUiLCJpbmRleE9wdGlvbnMiLCJyYWRpbyIsIm1hcCIsIm9wdGlvbiIsInZhbHVlIiwicmVsYXRpb25zaGlwIiwiaGFzTWFueVJlbGF0aW9ucyIsInJlbGF0aW9uVG8iLCJzY2hlbWFUb1JldHVybiIsInJlZlBhdGgiLCJyZWYiLCJyaWNoVGV4dCIsInJvdyIsInNlbGVjdCIsInB1c2giLCJ0YWJzIiwidGFiIiwidGFiSGFzTmFtZSIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9ELEdBQ3BELHlDQUF5QyxHQUN6QywwREFBMEQ7Ozs7K0JBeWxCMUQ7OztlQUFBOzs7aUVBMWpCcUI7dUJBTWQ7Ozs7OztBQWlCUCxNQUFNQSxtQkFBbUIsQ0FBQ0MsT0FBMkJDO0lBQ25ELE1BQU0sRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLG1CQUFtQixFQUFFLEdBQUdIO0lBQzlELE1BQU1JLFNBQXFDO1FBQ3pDQyxPQUFPTixNQUFNTSxLQUFLLElBQUssQ0FBQ0osaUJBQWlCRixNQUFNTyxNQUFNLElBQUtILHVCQUF1QjtRQUNqRkksVUFBVTtRQUNWRCxRQUFRLEFBQUMsQ0FBQ0wsaUJBQWlCRixNQUFNTyxNQUFNLElBQUs7SUFDOUM7SUFFQSxJQUNFRixPQUFPRSxNQUFNLElBQ1pQLENBQUFBLE1BQU1TLFNBQVMsSUFDZE4saUJBQ0NPLElBQUFBLHVCQUFnQixFQUFDVixVQUNoQkEsTUFBTVcsSUFBSSxLQUFLLFdBQ2ZYLE1BQU1XLElBQUksS0FBSyxTQUNmWCxNQUFNUSxRQUFRLEtBQUssSUFBSSxHQUMzQjtRQUNBSCxPQUFPTyxNQUFNLEdBQUc7SUFDbEI7SUFFQSxJQUFJWixNQUFNYSxNQUFNLEVBQUU7UUFDaEJSLE9BQU9RLE1BQU0sR0FBRztJQUNsQjtJQUVBLE9BQU9SO0FBQ1Q7QUFFQSxNQUFNUyxpQkFBaUIsQ0FDckJDLFFBQ0FWLFFBQ0FXO0lBRUEsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNGLFdBQVdDLGdC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
430
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmltcG9ydCB0eXBlIHsgSW5kZXhPcHRpb25zLCBTY2hlbWEsIFNjaGVtYU9wdGlvbnMsIFNjaGVtYVR5cGVPcHRpb25zIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZywgU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIEFycmF5RmllbGQsXG4gIEJsb2NrLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgR3JvdXBGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOb25QcmVzZW50YXRpb25hbEZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFiLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBtb25nb29zZSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB7XG4gIGZpZWxkQWZmZWN0c0RhdGEsXG4gIGZpZWxkSXNMb2NhbGl6ZWQsXG4gIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHksXG4gIHRhYkhhc05hbWUsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmV4cG9ydCB0eXBlIEJ1aWxkU2NoZW1hT3B0aW9ucyA9IHtcbiAgYWxsb3dJREZpZWxkPzogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBkcmFmdHNFbmFibGVkPzogYm9vbGVhblxuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICBvcHRpb25zPzogU2NoZW1hT3B0aW9uc1xufVxuXG50eXBlIEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gKFxuICBmaWVsZDogRmllbGQsXG4gIHNjaGVtYTogU2NoZW1hLFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4pID0+IHZvaWRcblxuY29uc3QgZm9ybWF0QmFzZVNjaGVtYSA9IChmaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhLCBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucykgPT4ge1xuICBjb25zdCB7IGRpc2FibGVVbmlxdWUsIGRyYWZ0c0VuYWJsZWQsIGluZGV4U29ydGFibGVGaWVsZHMgfSA9IGJ1aWxkU2NoZW1hT3B0aW9uc1xuICBjb25zdCBzY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgIGluZGV4OiBmaWVsZC5pbmRleCB8fCAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBpbmRleFNvcnRhYmxlRmllbGRzIHx8IGZhbHNlLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB1bmlxdWU6ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGZhbHNlLFxuICB9XG5cbiAgaWYgKFxuICAgIHNjaGVtYS51bmlxdWUgJiZcbiAgICAoZmllbGQubG9jYWxpemVkIHx8XG4gICAgICBkcmFmdHNFbmFibGVkIHx8XG4gICAgICAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ2dyb3VwJyAmJlxuICAgICAgICBmaWVsZC50eXBlICE9PSAndGFiJyAmJlxuICAgICAgICBmaWVsZC5yZXF1aXJlZCAhPT0gdHJ1ZSkpXG4gICkge1xuICAgIHNjaGVtYS5zcGFyc2UgPSB0cnVlXG4gIH1cblxuICBpZiAoZmllbGQuaGlkZGVuKSB7XG4gICAgc2NoZW1hLmhpZGRlbiA9IHRydWVcbiAgfVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgbG9jYWxpemVTY2hlbWEgPSAoXG4gIGVudGl0eTogTm9uUHJlc2VudGF0aW9uYWxGaWVsZCB8IFRhYixcbiAgc2NoZW1hLFxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlLFxuKSA9PiB7XG4gIGlmIChmaWVsZElzTG9jYWxpemVkKGVudGl0eSkgJiYgbG9jYWxpemF0aW9uICYmIEFycmF5LmlzQXJyYXkobG9jYWxpemF0aW9uLmxvY2FsZXMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoXG4gICAgICAgIChsb2NhbGVTY2hlbWEsIGxvY2FsZSkgPT4gKHtcbiAgICAgICAgICAuLi5sb2NhbGVTY2hlbWEsXG4gICAgICAgICAgW2xvY2FsZV06IHNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBidWlsZFNjaGVtYSA9IChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGNvbmZpZ0ZpZWxkczogRmllbGRbXSxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7fSxcbik6IFNjaGVtYSA9PiB7XG4gIGNvbnN0IHsgYWxsb3dJREZpZWxkLCBvcHRpb25zIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgbGV0IGZpZWxkcyA9IHt9XG5cbiAgbGV0IHNjaGVtYUZpZWxkcyA9IGNvbmZpZ0ZpZWxkc1xuXG4gIGlmICghYWxsb3dJREZpZWxkKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IHNjaGVtYUZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcbiAgICBpZiAoaWRGaWVsZCkge1xuICAgICAgZmllbGRzID0ge1xuICAgICAgICBfaWQ6IGlkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyBOdW1iZXIgOiBTdHJpbmcsXG4gICAgICB9XG4gICAgICBzY2hlbWFGaWVsZHMgPSBzY2hlbWFGaWVsZHMuZmlsdGVyKFxuICAgICAgICAoZmllbGQpID0+ICEoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyksXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hID0gbmV3IG1vbmdvb3NlLlNjaGVtYShmaWVsZHMsIG9wdGlvbnMpXG5cbiAgc2NoZW1hRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCFmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5KGZpZWxkKSkge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtmaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoZmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgZmllbGRUb1NjaGVtYU1hcDogUmVjb3JkPHN0cmluZywgRmllbGRTY2hlbWFHZW5lcmF0b3I+ID0ge1xuICBhcnJheTogKFxuICAgIGZpZWxkOiBBcnJheUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFtcbiAgICAgICAgYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgICBhbGxvd0lERmllbGQ6IHRydWUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBibG9ja3M6IChcbiAgICBmaWVsZDogQmxvY2tGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSB7XG4gICAgICB0eXBlOiBbbmV3IG1vbmdvb3NlLlNjaGVtYSh7fSwgeyBfaWQ6IGZhbHNlLCBkaXNjcmltaW5hdG9yS2V5OiAnYmxvY2tUeXBlJyB9KV0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBmaWVsZFNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGZpZWxkLmJsb2Nrcy5mb3JFYWNoKChibG9ja0l0ZW06IEJsb2NrKSA9PiB7XG4gICAgICBjb25zdCBibG9ja1NjaGVtYSA9IG5ldyBtb25nb29zZS5TY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgaWQ6IGZhbHNlIH0pXG5cbiAgICAgIGJsb2NrSXRlbS5maWVsZHMuZm9yRWFjaCgoYmxvY2tGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW2Jsb2NrRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgYWRkRmllbGRTY2hlbWEoYmxvY2tGaWVsZCwgYmxvY2tTY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5mb3JFYWNoKChsb2NhbGVDb2RlKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICAgIHNjaGVtYS5wYXRoKGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlQ29kZX1gKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQb3NzaWJsZSBpbmNvcnJlY3QgdHlwaW5nIGluIG1vbmdvb3NlIHR5cGVzLCB0aGlzIHdvcmtzXG4gICAgICAgIHNjaGVtYS5wYXRoKGZpZWxkLm5hbWUpLmRpc2NyaW1pbmF0b3IoYmxvY2tJdGVtLnNsdWcsIGJsb2NrU2NoZW1hKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGNoZWNrYm94OiAoXG4gICAgZmllbGQ6IENoZWNrYm94RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IEJvb2xlYW4gfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2RlOiAoXG4gICAgZmllbGQ6IENvZGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29sbGFwc2libGU6IChcbiAgICBmaWVsZDogQ29sbGFwc2libGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgZGF0ZTogKFxuICAgIGZpZWxkOiBEYXRlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IERhdGUgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBlbWFpbDogKFxuICAgIGZpZWxkOiBFbWFpbEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBncm91cDogKFxuICAgIGZpZWxkOiBHcm91cEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRCYXNlU2NoZW1hID0gZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKVxuXG4gICAgLy8gY2FycnkgaW5kZXhTb3J0YWJsZUZpZWxkcyB0aHJvdWdoIHRvIHZlcnNpb25zIGlmIGRyYWZ0cyBlbmFibGVkXG4gICAgY29uc3QgaW5kZXhTb3J0YWJsZUZpZWxkcyA9XG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuaW5kZXhTb3J0YWJsZUZpZWxkcyAmJlxuICAgICAgZmllbGQubmFtZSA9PT0gJ3ZlcnNpb24nICYmXG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZFxuXG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdHRlZEJhc2VTY2hlbWEsXG4gICAgICB0eXBlOiBidWlsZFNjaGVtYShjb25maWcsIGZpZWxkLmZpZWxkcywge1xuICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgIGluZGV4U29ydGFibGVGaWVsZHMsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGpzb246IChcbiAgICBmaWVsZDogSlNPTkZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIG51bWJlcjogKFxuICAgIGZpZWxkOiBOdW1iZXJGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW051bWJlcl0gOiBOdW1iZXIsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXG4gICAgICB9LFxuICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgdHlwZTogW051bWJlcl0sXG4gICAgICAgIGRlZmF1bHQ6IGZpZWxkLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUgJiYgZmllbGQubG9jYWxpemVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmNvb3JkaW5hdGVzLnNwYXJzZSA9IHRydWVcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBpZiAoZmllbGQuaW5kZXggPT09IHRydWUgfHwgZmllbGQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaW5kZXhPcHRpb25zOiBJbmRleE9wdGlvbnMgPSB7fVxuICAgICAgaWYgKCFidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgaW5kZXhPcHRpb25zLnNwYXJzZSA9IHRydWVcbiAgICAgICAgaW5kZXhPcHRpb25zLnVuaXF1ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZXMuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgc2NoZW1hLmluZGV4KHsgW2Ake2ZpZWxkLm5hbWV9LiR7bG9jYWxlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiAoXG4gICAgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICB0eXBlOiBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZSgobG9jYWxlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgbGV0IGxvY2FsZVNjaGVtYTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICAgICAgICBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlfS5yZWxhdGlvblRvYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubG9jYWxlcyxcbiAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZC5oYXNNYW55ID8geyB0eXBlOiBbbG9jYWxlU2NoZW1hXSwgZGVmYXVsdDogdW5kZWZpbmVkIH0gOiBsb2NhbGVTY2hlbWEsXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LnJlbGF0aW9uVG9gLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICByZWY6IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IHNjaGVtYVRvUmV0dXJuLFxuICAgIH0pXG4gIH0sXG4gIHJpY2hUZXh0OiAoXG4gICAgZmllbGQ6IFJpY2hUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJtb25nb29zZSIsImZpZWxkQWZmZWN0c0RhdGEiLCJmaWVsZElzTG9jYWxpemVkIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsInRhYkhhc05hbWUiLCJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwidHlwZSIsInNwYXJzZSIsImhpZGRlbiIsImxvY2FsaXplU2NoZW1hIiwiZW50aXR5IiwibG9jYWxpemF0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibG9jYWxlcyIsImxvY2FsZUNvZGVzIiwicmVkdWNlIiwibG9jYWxlU2NoZW1hIiwibG9jYWxlIiwiX2lkIiwiYnVpbGRTY2hlbWEiLCJjb25maWciLCJjb25maWdGaWVsZHMiLCJhbGxvd0lERmllbGQiLCJvcHRpb25zIiwiZmllbGRzIiwic2NoZW1hRmllbGRzIiwiaWRGaWVsZCIsImZpbmQiLCJuYW1lIiwiTnVtYmVyIiwiU3RyaW5nIiwiZmlsdGVyIiwiU2NoZW1hIiwiZm9yRWFjaCIsImFkZEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiYmFzZVNjaGVtYSIsImlkIiwibWluaW1pemUiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiYWRkIiwiYmxvY2tzIiwiZmllbGRTY2hlbWEiLCJkaXNjcmltaW5hdG9yS2V5IiwiYmxvY2tJdGVtIiwiYmxvY2tTY2hlbWEiLCJibG9ja0ZpZWxkIiwibG9jYWxlQ29kZSIsInBhdGgiLCJkaXNjcmltaW5hdG9yIiwic2x1ZyIsImNoZWNrYm94IiwiQm9vbGVhbiIsImNvZGUiLCJjb2xsYXBzaWJsZSIsInN1YkZpZWxkIiwiZGF0ZSIsIkRhdGUiLCJlbWFpbCIsImdyb3VwIiwiZm9ybWF0dGVkQmFzZVNjaGVtYSIsImpzb24iLCJUeXBlcyIsIk1peGVkIiwibnVtYmVyIiwiaGFzTWFueSIsInBvaW50IiwiZW51bSIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiaW5kZXhPcHRpb25zIiwicmFkaW8iLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsInJlbGF0aW9uc2hpcCIsImhhc01hbnlSZWxhdGlvbnMiLCJyZWxhdGlvblRvIiwic2NoZW1hVG9SZXR1cm4iLCJyZWZQYXRoIiwicmVmIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJwdXNoIiwidGFicyIsInRhYiIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9ELEdBQ3BELHlDQUF5QyxHQUN6QywwREFBMEQsR0ErQjFELE9BQU9BLGNBQWMsV0FBVTtBQUMvQixTQUNFQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixFQUNoQkMseUJBQXlCLEVBQ3pCQyxVQUFVLFFBQ0wsZ0JBQWU7QUFpQnRCLE1BQU1DLG1CQUFtQixDQUFDQyxPQUEyQkM7SUFDbkQsTUFBTSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsbUJBQW1CLEVBQUUsR0FBR0g7SUFDOUQsTUFBTUksU0FBcUM7UUFDekNDLE9BQU9OLE1BQU1NLEtBQUssSUFBSyxDQUFDSixpQkFBaUJGLE1BQU1PLE1BQU0sSUFBS0gsdUJBQXVCO1FBQ2pGSSxVQUFVO1FBQ1ZELFFBQVEsQUFBQyxDQUFDTCxpQkFBaUJGLE1BQU1PLE1BQU0sSUFBSztJQUM5QztJQUVBLElBQ0VGLE9BQU9FLE1BQU0sSUFDWlAsQ0FBQUEsTUFBTVMsU0FBUyxJQUNkTixpQkFDQ1IsaUJBQWlCSyxVQUNoQkEsTUFBTVUsSUFBSSxLQUFLLFdBQ2ZWLE1BQU1VLElBQUksS0FBSyxTQUNmVixNQUFNUSxRQUFRLEtBQUssSUFBSSxHQUMzQjtRQUNBSCxPQUFPTSxNQUFNLEdBQUc7SUFDbEI7SUFFQSxJQUFJWCxNQUFNWSxNQUFNLEVBQUU7UUFDaEJQLE9BQU9PLE1BQU0sR0FBRztJQUNsQjtJQUVBLE9BQU9QO0FBQ1Q7QUFFQSxNQUFNUSxpQkFBaUIsQ0FDckJDLFFBQ0FULFFB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
@@ -1,15 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "buildAndOrConditions", {
6
- enumerable: true,
7
- get: function() {
8
- return buildAndOrConditions;
9
- }
10
- });
11
- const _parseParams = require("./parseParams");
12
- async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale, payload, where }) {
1
+ import { parseParams } from './parseParams';
2
+ export async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale, payload, where }) {
13
3
  const completedConditions = [];
14
4
  // Loop over all AND / OR operations and add them to the AND / OR query param
15
5
  // Operations should come through as an array
@@ -18,7 +8,7 @@ async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale
18
8
  // If the operation is properly formatted as an object
19
9
  if (typeof condition === 'object') {
20
10
  // eslint-disable-next-line no-await-in-loop
21
- const result = await (0, _parseParams.parseParams)({
11
+ const result = await parseParams({
22
12
  collectionSlug,
23
13
  fields,
24
14
  globalSlug,
@@ -34,4 +24,4 @@ async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale
34
24
  return completedConditions;
35
25
  }
36
26
 
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkQW5kT3JDb25kaXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBXaGVyZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlUGFyYW1zIH0gZnJvbSAnLi9wYXJzZVBhcmFtcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgbG9jYWxlLFxuICBwYXlsb2FkLFxuICB3aGVyZSxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgd2hlcmU6IFdoZXJlW11cbn0pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+IHtcbiAgY29uc3QgY29tcGxldGVkQ29uZGl0aW9ucyA9IFtdXG4gIC8vIExvb3Agb3ZlciBhbGwgQU5EIC8gT1Igb3BlcmF0aW9ucyBhbmQgYWRkIHRoZW0gdG8gdGhlIEFORCAvIE9SIHF1ZXJ5IHBhcmFtXG4gIC8vIE9wZXJhdGlvbnMgc2hvdWxkIGNvbWUgdGhyb3VnaCBhcyBhbiBhcnJheVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBjb25kaXRpb24gb2Ygd2hlcmUpIHtcbiAgICAvLyBJZiB0aGUgb3BlcmF0aW9uIGlzIHByb3Blcmx5IGZvcm1hdHRlZCBhcyBhbiBvYmplY3RcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgIH0pXG4gICAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbXBsZXRlZENvbmRpdGlvbnMucHVzaChyZXN1bHQpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjb21wbGV0ZWRDb25kaXRpb25zXG59XG4iXSwibmFtZXMiOlsiYnVpbGRBbmRPckNvbmRpdGlvbnMiLCJjb2xsZWN0aW9uU2x1ZyIsImZpZWxkcyIsImdsb2JhbFNsdWciLCJsb2NhbGUiLCJwYXlsb2FkIiwid2hlcmUiLCJjb21wbGV0ZWRDb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwicGFyc2VQYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFLc0JBOzs7ZUFBQUE7Ozs2QkFGTTtBQUVyQixlQUFlQSxxQkFBcUIsRUFDekNDLGNBQWMsRUFDZEMsTUFBTSxFQUNOQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxLQUFLLEVBUU47SUFDQyxNQUFNQyxzQkFBc0IsRUFBRTtJQUM5Qiw2RUFBNkU7SUFDN0UsNkNBQTZDO0lBQzdDLGdEQUFnRDtJQUNoRCxLQUFLLE1BQU1DLGFBQWFGLE1BQU87UUFDN0Isc0RBQXNEO1FBQ3RELElBQUksT0FBT0UsY0FBYyxVQUFVO1lBQ2pDLDRDQUE0QztZQUM1QyxNQUFNQyxTQUFTLE1BQU1DLElBQUFBLHdCQUFXLEVBQUM7Z0JBQy9CVDtnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDLE9BQU9FO1lBQ1Q7WUFDQSxJQUFJRyxPQUFPQyxJQUFJLENBQUNILFFBQVFJLE1BQU0sR0FBRyxHQUFHO2dCQUNsQ04sb0JBQW9CTyxJQUFJLENBQUNMO1lBQzNCO1FBQ0Y7SUFDRjtJQUNBLE9BQU9GO0FBQ1QifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkQW5kT3JDb25kaXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBXaGVyZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlUGFyYW1zIH0gZnJvbSAnLi9wYXJzZVBhcmFtcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgbG9jYWxlLFxuICBwYXlsb2FkLFxuICB3aGVyZSxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgd2hlcmU6IFdoZXJlW11cbn0pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+IHtcbiAgY29uc3QgY29tcGxldGVkQ29uZGl0aW9ucyA9IFtdXG4gIC8vIExvb3Agb3ZlciBhbGwgQU5EIC8gT1Igb3BlcmF0aW9ucyBhbmQgYWRkIHRoZW0gdG8gdGhlIEFORCAvIE9SIHF1ZXJ5IHBhcmFtXG4gIC8vIE9wZXJhdGlvbnMgc2hvdWxkIGNvbWUgdGhyb3VnaCBhcyBhbiBhcnJheVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBjb25kaXRpb24gb2Ygd2hlcmUpIHtcbiAgICAvLyBJZiB0aGUgb3BlcmF0aW9uIGlzIHByb3Blcmx5IGZvcm1hdHRlZCBhcyBhbiBvYmplY3RcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgIH0pXG4gICAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbXBsZXRlZENvbmRpdGlvbnMucHVzaChyZXN1bHQpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjb21wbGV0ZWRDb25kaXRpb25zXG59XG4iXSwibmFtZXMiOlsicGFyc2VQYXJhbXMiLCJidWlsZEFuZE9yQ29uZGl0aW9ucyIsImNvbGxlY3Rpb25TbHVnIiwiZmllbGRzIiwiZ2xvYmFsU2x1ZyIsImxvY2FsZSIsInBheWxvYWQiLCJ3aGVyZSIsImNvbXBsZXRlZENvbmRpdGlvbnMiLCJjb25kaXRpb24iLCJyZXN1bHQiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBR0EsU0FBU0EsV0FBVyxRQUFRLGdCQUFlO0FBRTNDLE9BQU8sZUFBZUMscUJBQXFCLEVBQ3pDQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLE9BQU8sRUFDUEMsS0FBSyxFQVFOO0lBQ0MsTUFBTUMsc0JBQXNCLEVBQUU7SUFDOUIsNkVBQTZFO0lBQzdFLDZDQUE2QztJQUM3QyxnREFBZ0Q7SUFDaEQsS0FBSyxNQUFNQyxhQUFhRixNQUFPO1FBQzdCLHNEQUFzRDtRQUN0RCxJQUFJLE9BQU9FLGNBQWMsVUFBVTtZQUNqQyw0Q0FBNEM7WUFDNUMsTUFBTUMsU0FBUyxNQUFNVixZQUFZO2dCQUMvQkU7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQyxPQUFPRTtZQUNUO1lBQ0EsSUFBSUUsT0FBT0MsSUFBSSxDQUFDRixRQUFRRyxNQUFNLEdBQUcsR0FBRztnQkFDbENMLG9CQUFvQk0sSUFBSSxDQUFDSjtZQUMzQjtRQUNGO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUIn0=
@@ -1,15 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _errors = require("payload/errors");
12
- const _parseParams = require("./parseParams");
1
+ import { QueryError } from 'payload/errors';
2
+ import { parseParams } from './parseParams';
13
3
  // This plugin asynchronously builds a list of Mongoose query constraints
14
4
  // which can then be used in subsequent Mongoose queries.
15
5
  const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
@@ -28,7 +18,7 @@ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
28
18
  }
29
19
  }
30
20
  const errors = [];
31
- const result = await (0, _parseParams.parseParams)({
21
+ const result = await parseParams({
32
22
  collectionSlug,
33
23
  fields,
34
24
  globalSlug,
@@ -37,13 +27,13 @@ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
37
27
  where
38
28
  });
39
29
  if (errors.length > 0) {
40
- throw new _errors.QueryError(errors);
30
+ throw new QueryError(errors);
41
31
  }
42
32
  return result;
43
33
  }
44
34
  modifiedSchema.statics.buildQuery = buildQuery;
45
35
  };
46
36
  };
47
- const _default = getBuildQueryPlugin;
37
+ export default getBuildQueryPlugin;
48
38
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuXG5pbXBvcnQgeyBwYXJzZVBhcmFtcyB9IGZyb20gJy4vcGFyc2VQYXJhbXMnXG5cbnR5cGUgR2V0QnVpbGRRdWVyeVBsdWdpbkFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIHZlcnNpb25zRmllbGRzPzogRmllbGRbXVxufVxuXG5leHBvcnQgdHlwZSBCdWlsZFF1ZXJ5QXJncyA9IHtcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB3aGVyZTogV2hlcmVcbn1cblxuLy8gVGhpcyBwbHVnaW4gYXN5bmNocm9ub3VzbHkgYnVpbGRzIGEgbGlzdCBvZiBNb25nb29zZSBxdWVyeSBjb25zdHJhaW50c1xuLy8gd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IE1vbmdvb3NlIHF1ZXJpZXMuXG5jb25zdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luID0gKHsgY29sbGVjdGlvblNsdWcsIHZlcnNpb25zRmllbGRzIH06IEdldEJ1aWxkUXVlcnlQbHVnaW5BcmdzID0ge30pID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJ1aWxkUXVlcnlQbHVnaW4oc2NoZW1hKSB7XG4gICAgY29uc3QgbW9kaWZpZWRTY2hlbWEgPSBzY2hlbWFcbiAgICBhc3luYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KHtcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgd2hlcmUsXG4gICAgfTogQnVpbGRRdWVyeUFyZ3MpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICBsZXQgZmllbGRzID0gdmVyc2lvbnNGaWVsZHNcbiAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gZ2xvYmFsU2x1ZylcbiAgICAgICAgICBmaWVsZHMgPSBnbG9iYWxDb25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICAgICAgICAgIGZpZWxkcyA9IGNvbGxlY3Rpb25Db25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoZXJyb3JzKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIG1vZGlmaWVkU2NoZW1hLnN0YXRpY3MuYnVpbGRRdWVyeSA9IGJ1aWxkUXVlcnlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luXG4iXSwibmFtZXMiOlsiZ2V0QnVpbGRRdWVyeVBsdWdpbiIsImNvbGxlY3Rpb25TbHVnIiwidmVyc2lvbnNGaWVsZHMiLCJidWlsZFF1ZXJ5UGx1Z2luIiwic2NoZW1hIiwibW9kaWZpZWRTY2hlbWEiLCJidWlsZFF1ZXJ5IiwiZ2xvYmFsU2x1ZyIsImxvY2FsZSIsInBheWxvYWQiLCJ3aGVyZSIsImZpZWxkcyIsImdsb2JhbENvbmZpZyIsImdsb2JhbHMiLCJjb25maWciLCJmaW5kIiwic2x1ZyIsImNvbGxlY3Rpb25Db25maWciLCJjb2xsZWN0aW9ucyIsImVycm9ycyIsInJlc3VsdCIsInBhcnNlUGFyYW1zIiwibGVuZ3RoIiwiUXVlcnlFcnJvciIsInN0YXRpY3MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBNkRBOzs7ZUFBQTs7O3dCQTFEMkI7NkJBRUM7QUFjNUIseUVBQXlFO0FBQ3pFLHlEQUF5RDtBQUN6RCxNQUFNQSxzQkFBc0IsQ0FBQyxFQUFFQyxjQUFjLEVBQUVDLGNBQWMsRUFBMkIsR0FBRyxDQUFDLENBQUM7SUFDM0YsT0FBTyxTQUFTQyxpQkFBaUJDLE1BQU07UUFDckMsTUFBTUMsaUJBQWlCRDtRQUN2QixlQUFlRSxXQUFXLEVBQ3hCQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxLQUFLLEVBQ1U7WUFDZixJQUFJQyxTQUFTVDtZQUNiLElBQUksQ0FBQ1MsUUFBUTtnQkFDWCxJQUFJSixZQUFZO29CQUNkLE1BQU1LLGVBQWVILFFBQVFJLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxFQUFFQyxJQUFJLEVBQUUsR0FBS0EsU0FBU1Q7b0JBQ3hFSSxTQUFTQyxhQUFhRCxNQUFNO2dCQUM5QjtnQkFDQSxJQUFJVixnQkFBZ0I7b0JBQ2xCLE1BQU1nQixtQkFBbUJSLFFBQVFTLFdBQVcsQ0FBQ2pCLGVBQWUsQ0FBQ2EsTUFBTTtvQkFDbkVILFNBQVNNLGlCQUFpQk4sTUFBTTtnQkFDbEM7WUFDRjtZQUNBLE1BQU1RLFNBQVMsRUFBRTtZQUNqQixNQUFNQyxTQUFTLE1BQU1DLElBQUFBLHdCQUFXLEVBQUM7Z0JBQy9CcEI7Z0JBQ0FVO2dCQUNBSjtnQkFDQUM7Z0JBQ0FDO2dCQUNBQztZQUNGO1lBRUEsSUFBSVMsT0FBT0csTUFBTSxHQUFHLEdBQUc7Z0JBQ3JCLE1BQU0sSUFBSUMsa0JBQVUsQ0FBQ0o7WUFDdkI7WUFFQSxPQUFPQztRQUNUO1FBQ0FmLGVBQWVtQixPQUFPLENBQUNsQixVQUFVLEdBQUdBO0lBQ3RDO0FBQ0Y7TUFFQSxXQUFlTiJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuXG5pbXBvcnQgeyBwYXJzZVBhcmFtcyB9IGZyb20gJy4vcGFyc2VQYXJhbXMnXG5cbnR5cGUgR2V0QnVpbGRRdWVyeVBsdWdpbkFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIHZlcnNpb25zRmllbGRzPzogRmllbGRbXVxufVxuXG5leHBvcnQgdHlwZSBCdWlsZFF1ZXJ5QXJncyA9IHtcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB3aGVyZTogV2hlcmVcbn1cblxuLy8gVGhpcyBwbHVnaW4gYXN5bmNocm9ub3VzbHkgYnVpbGRzIGEgbGlzdCBvZiBNb25nb29zZSBxdWVyeSBjb25zdHJhaW50c1xuLy8gd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IE1vbmdvb3NlIHF1ZXJpZXMuXG5jb25zdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luID0gKHsgY29sbGVjdGlvblNsdWcsIHZlcnNpb25zRmllbGRzIH06IEdldEJ1aWxkUXVlcnlQbHVnaW5BcmdzID0ge30pID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJ1aWxkUXVlcnlQbHVnaW4oc2NoZW1hKSB7XG4gICAgY29uc3QgbW9kaWZpZWRTY2hlbWEgPSBzY2hlbWFcbiAgICBhc3luYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KHtcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgd2hlcmUsXG4gICAgfTogQnVpbGRRdWVyeUFyZ3MpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICBsZXQgZmllbGRzID0gdmVyc2lvbnNGaWVsZHNcbiAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gZ2xvYmFsU2x1ZylcbiAgICAgICAgICBmaWVsZHMgPSBnbG9iYWxDb25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICAgICAgICAgIGZpZWxkcyA9IGNvbGxlY3Rpb25Db25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoZXJyb3JzKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIG1vZGlmaWVkU2NoZW1hLnN0YXRpY3MuYnVpbGRRdWVyeSA9IGJ1aWxkUXVlcnlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luXG4iXSwibmFtZXMiOlsiUXVlcnlFcnJvciIsInBhcnNlUGFyYW1zIiwiZ2V0QnVpbGRRdWVyeVBsdWdpbiIsImNvbGxlY3Rpb25TbHVnIiwidmVyc2lvbnNGaWVsZHMiLCJidWlsZFF1ZXJ5UGx1Z2luIiwic2NoZW1hIiwibW9kaWZpZWRTY2hlbWEiLCJidWlsZFF1ZXJ5IiwiZ2xvYmFsU2x1ZyIsImxvY2FsZSIsInBheWxvYWQiLCJ3aGVyZSIsImZpZWxkcyIsImdsb2JhbENvbmZpZyIsImdsb2JhbHMiLCJjb25maWciLCJmaW5kIiwic2x1ZyIsImNvbGxlY3Rpb25Db25maWciLCJjb2xsZWN0aW9ucyIsImVycm9ycyIsInJlc3VsdCIsImxlbmd0aCIsInN0YXRpY3MiXSwibWFwcGluZ3MiOiJBQUdBLFNBQVNBLFVBQVUsUUFBUSxpQkFBZ0I7QUFFM0MsU0FBU0MsV0FBVyxRQUFRLGdCQUFlO0FBYzNDLHlFQUF5RTtBQUN6RSx5REFBeUQ7QUFDekQsTUFBTUMsc0JBQXNCLENBQUMsRUFBRUMsY0FBYyxFQUFFQyxjQUFjLEVBQTJCLEdBQUcsQ0FBQyxDQUFDO0lBQzNGLE9BQU8sU0FBU0MsaUJBQWlCQyxNQUFNO1FBQ3JDLE1BQU1DLGlCQUFpQkQ7UUFDdkIsZUFBZUUsV0FBVyxFQUN4QkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLE9BQU8sRUFDUEMsS0FBSyxFQUNVO1lBQ2YsSUFBSUMsU0FBU1Q7WUFDYixJQUFJLENBQUNTLFFBQVE7Z0JBQ1gsSUFBSUosWUFBWTtvQkFDZCxNQUFNSyxlQUFlSCxRQUFRSSxPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsRUFBRUMsSUFBSSxFQUFFLEdBQUtBLFNBQVNUO29CQUN4RUksU0FBU0MsYUFBYUQsTUFBTTtnQkFDOUI7Z0JBQ0EsSUFBSVYsZ0JBQWdCO29CQUNsQixNQUFNZ0IsbUJBQW1CUixRQUFRUyxXQUFXLENBQUNqQixlQUFlLENBQUNhLE1BQU07b0JBQ25FSCxTQUFTTSxpQkFBaUJOLE1BQU07Z0JBQ2xDO1lBQ0Y7WUFDQSxNQUFNUSxTQUFTLEVBQUU7WUFDakIsTUFBTUMsU0FBUyxNQUFNckIsWUFBWTtnQkFDL0JFO2dCQUNBVTtnQkFDQUo7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7WUFDRjtZQUVBLElBQUlTLE9BQU9FLE1BQU0sR0FBRyxHQUFHO2dCQUNyQixNQUFNLElBQUl2QixXQUFXcUI7WUFDdkI7WUFFQSxPQUFPQztRQUNUO1FBQ0FmLGVBQWVpQixPQUFPLENBQUNoQixVQUFVLEdBQUdBO0lBQ3RDO0FBQ0Y7QUFFQSxlQUFlTixvQkFBbUIifQ==