@payloadcms/db-mongodb 1.4.2 → 1.4.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,aAAa,EAAqB,MAAM,UAAU,CAAA;AAC9E,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,EASV,KAAK,EAcN,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAQjC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AAkDD,QAAA,MAAM,WAAW,WACP,eAAe,gBACT,KAAK,EAAE,uBACD,kBAAkB,KACrC,MA+BF,CAAA;AAycD,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,aAAa,EAAqB,MAAM,UAAU,CAAA;AAC9E,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,EASV,KAAK,EAiBN,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAQjC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AA0DD,QAAA,MAAM,WAAW,WACP,eAAe,gBACT,KAAK,EAAE,uBACD,kBAAkB,KACrC,MA+BF,CAAA;AAycD,eAAe,WAAW,CAAA"}
@@ -17,7 +17,7 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
17
17
  required: false,
18
18
  unique: !disableUnique && field.unique || false
19
19
  };
20
- if (schema.unique && (field.localized || draftsEnabled)) {
20
+ if (schema.unique && (field.localized || draftsEnabled || (0, _types.fieldAffectsData)(field) && field.type !== 'group' && field.type !== 'tab' && field.required !== true)) {
21
21
  schema.sparse = true;
22
22
  }
23
23
  if (field.hidden) {
@@ -28,13 +28,13 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
28
28
  const localizeSchema = (entity, schema, localization)=>{
29
29
  if ((0, _types.fieldIsLocalized)(entity) && localization && Array.isArray(localization.locales)) {
30
30
  return {
31
- localized: true,
32
31
  type: localization.localeCodes.reduce((localeSchema, locale)=>({
33
32
  ...localeSchema,
34
33
  [locale]: schema
35
34
  }), {
36
35
  _id: false
37
- })
36
+ }),
37
+ localized: true
38
38
  };
39
39
  }
40
40
  return schema;
@@ -67,7 +67,6 @@ const fieldToSchemaMap = {
67
67
  array: (field, schema, config, buildSchemaOptions)=>{
68
68
  const baseSchema = {
69
69
  ...formatBaseSchema(field, buildSchemaOptions),
70
- default: undefined,
71
70
  type: [
72
71
  buildSchema(config, field.fields, {
73
72
  allowIDField: true,
@@ -79,7 +78,8 @@ const fieldToSchemaMap = {
79
78
  minimize: false
80
79
  }
81
80
  })
82
- ]
81
+ ],
82
+ default: undefined
83
83
  };
84
84
  schema.add({
85
85
  [field.name]: localizeSchema(field, baseSchema, config.localization)
@@ -87,13 +87,13 @@ const fieldToSchemaMap = {
87
87
  },
88
88
  blocks: (field, schema, config, buildSchemaOptions)=>{
89
89
  const fieldSchema = {
90
- default: undefined,
91
90
  type: [
92
91
  new _mongoose.Schema({}, {
93
92
  _id: false,
94
93
  discriminatorKey: 'blockType'
95
94
  })
96
- ]
95
+ ],
96
+ default: undefined
97
97
  };
98
98
  schema.add({
99
99
  [field.name]: localizeSchema(field, fieldSchema, config.localization)
@@ -112,12 +112,12 @@ const fieldToSchemaMap = {
112
112
  if (field.localized && config.localization) {
113
113
  config.localization.localeCodes.forEach((localeCode)=>{
114
114
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
115
- // @ts-ignore Possible incorrect typing in mongoose types, this works
115
+ // @ts-expect-error Possible incorrect typing in mongoose types, this works
116
116
  schema.path(`${field.name}.${localeCode}`).discriminator(blockItem.slug, blockSchema);
117
117
  });
118
118
  } else {
119
119
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
120
- // @ts-ignore Possible incorrect typing in mongoose types, this works
120
+ // @ts-expect-error Possible incorrect typing in mongoose types, this works
121
121
  schema.path(field.name).discriminator(blockItem.slug, blockSchema);
122
122
  }
123
123
  });
@@ -209,18 +209,18 @@ const fieldToSchemaMap = {
209
209
  },
210
210
  point: (field, schema, config, buildSchemaOptions)=>{
211
211
  const baseSchema = {
212
- coordinates: {
213
- default: field.defaultValue || undefined,
214
- required: false,
215
- type: [
216
- Number
217
- ]
218
- },
219
212
  type: {
213
+ type: String,
220
214
  enum: [
221
215
  'Point'
216
+ ]
217
+ },
218
+ coordinates: {
219
+ type: [
220
+ Number
222
221
  ],
223
- type: String
222
+ default: field.defaultValue || undefined,
223
+ required: false
224
224
  }
225
225
  };
226
226
  if (buildSchemaOptions.disableUnique && field.unique && field.localized) {
@@ -251,11 +251,11 @@ const fieldToSchemaMap = {
251
251
  radio: (field, schema, config, buildSchemaOptions)=>{
252
252
  const baseSchema = {
253
253
  ...formatBaseSchema(field, buildSchemaOptions),
254
+ type: String,
254
255
  enum: field.options.map((option)=>{
255
256
  if (typeof option === 'object') return option.value;
256
257
  return option;
257
- }),
258
- type: String
258
+ })
259
259
  };
260
260
  schema.add({
261
261
  [field.name]: localizeSchema(field, baseSchema, config.localization)
@@ -266,75 +266,75 @@ const fieldToSchemaMap = {
266
266
  let schemaToReturn = {};
267
267
  if (field.localized && config.localization) {
268
268
  schemaToReturn = {
269
- localized: true,
270
269
  type: config.localization.localeCodes.reduce((locales, locale)=>{
271
270
  let localeSchema = {};
272
271
  if (hasManyRelations) {
273
272
  localeSchema = {
274
273
  ...formatBaseSchema(field, buildSchemaOptions),
275
274
  _id: false,
275
+ type: _mongoose.Schema.Types.Mixed,
276
276
  relationTo: {
277
- enum: field.relationTo,
278
- type: String
277
+ type: String,
278
+ enum: field.relationTo
279
279
  },
280
- type: _mongoose.Schema.Types.Mixed,
281
280
  value: {
282
- refPath: `${field.name}.${locale}.relationTo`,
283
- type: _mongoose.Schema.Types.Mixed
281
+ type: _mongoose.Schema.Types.Mixed,
282
+ refPath: `${field.name}.${locale}.relationTo`
284
283
  }
285
284
  };
286
285
  } else {
287
286
  localeSchema = {
288
287
  ...formatBaseSchema(field, buildSchemaOptions),
289
- ref: field.relationTo,
290
- type: _mongoose.Schema.Types.Mixed
288
+ type: _mongoose.Schema.Types.Mixed,
289
+ ref: field.relationTo
291
290
  };
292
291
  }
293
292
  return {
294
293
  ...locales,
295
294
  [locale]: field.hasMany ? {
296
- default: undefined,
297
295
  type: [
298
296
  localeSchema
299
- ]
297
+ ],
298
+ default: undefined
300
299
  } : localeSchema
301
300
  };
302
- }, {})
301
+ }, {}),
302
+ localized: true
303
303
  };
304
304
  } else if (hasManyRelations) {
305
305
  schemaToReturn = {
306
306
  ...formatBaseSchema(field, buildSchemaOptions),
307
307
  _id: false,
308
+ type: _mongoose.Schema.Types.Mixed,
308
309
  relationTo: {
309
- enum: field.relationTo,
310
- type: String
310
+ type: String,
311
+ enum: field.relationTo
311
312
  },
312
- type: _mongoose.Schema.Types.Mixed,
313
313
  value: {
314
- refPath: `${field.name}.relationTo`,
315
- type: _mongoose.Schema.Types.Mixed
314
+ type: _mongoose.Schema.Types.Mixed,
315
+ refPath: `${field.name}.relationTo`
316
316
  }
317
317
  };
318
318
  if (field.hasMany) {
319
319
  schemaToReturn = {
320
- default: undefined,
321
320
  type: [
322
321
  schemaToReturn
323
- ]
322
+ ],
323
+ default: undefined
324
324
  };
325
325
  }
326
326
  } else {
327
327
  schemaToReturn = {
328
328
  ...formatBaseSchema(field, buildSchemaOptions),
329
- ref: field.relationTo,
330
- type: _mongoose.Schema.Types.Mixed
329
+ type: _mongoose.Schema.Types.Mixed,
330
+ ref: field.relationTo
331
331
  };
332
332
  if (field.hasMany) {
333
333
  schemaToReturn = {
334
- default: undefined,
335
334
  type: [
336
335
  schemaToReturn
337
- ]
336
+ ],
337
+ default: undefined
338
338
  };
339
339
  }
340
340
  }
@@ -362,11 +362,11 @@ const fieldToSchemaMap = {
362
362
  select: (field, schema, config, buildSchemaOptions)=>{
363
363
  const baseSchema = {
364
364
  ...formatBaseSchema(field, buildSchemaOptions),
365
+ type: String,
365
366
  enum: field.options.map((option)=>{
366
367
  if (typeof option === 'object') return option.value;
367
368
  return option;
368
- }),
369
- type: String
369
+ })
370
370
  };
371
371
  if (buildSchemaOptions.draftsEnabled || !field.required) {
372
372
  baseSchema.enum.push(null);
@@ -427,8 +427,8 @@ const fieldToSchemaMap = {
427
427
  upload: (field, schema, config, buildSchemaOptions)=>{
428
428
  const baseSchema = {
429
429
  ...formatBaseSchema(field, buildSchemaOptions),
430
- ref: field.relationTo,
431
- type: _mongoose.Schema.Types.Mixed
430
+ type: _mongoose.Schema.Types.Mixed,
431
+ ref: field.relationTo
432
432
  };
433
433
  schema.add({
434
434
  [field.name]: localizeSchema(field, baseSchema, config.localization)
@@ -437,4 +437,4 @@ const fieldToSchemaMap = {
437
437
  };
438
438
  const _default = buildSchema;
439
439
 
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEluZGV4T3B0aW9ucywgU2NoZW1hT3B0aW9ucywgU2NoZW1hVHlwZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnLCBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgR3JvdXBGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFic0ZpZWxkLFxuICBUZXh0RmllbGQsXG4gIFRleHRhcmVhRmllbGQsXG4gIFVwbG9hZEZpZWxkLFxufSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZEFmZmVjdGluZ0RhdGEsIE5vblByZXNlbnRhdGlvbmFsRmllbGQsIFRhYiwgVW5uYW1lZFRhYiB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHtcbiAgZmllbGRBZmZlY3RzRGF0YSxcbiAgZmllbGRJc0xvY2FsaXplZCxcbiAgZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSxcbiAgdGFiSGFzTmFtZSxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuZXhwb3J0IHR5cGUgQnVpbGRTY2hlbWFPcHRpb25zID0ge1xuICBhbGxvd0lERmllbGQ/OiBib29sZWFuXG4gIGRpc2FibGVVbmlxdWU/OiBib29sZWFuXG4gIGRyYWZ0c0VuYWJsZWQ/OiBib29sZWFuXG4gIGluZGV4U29ydGFibGVGaWVsZHM/OiBib29sZWFuXG4gIG9wdGlvbnM/OiBTY2hlbWFPcHRpb25zXG59XG5cbnR5cGUgRmllbGRTY2hlbWFHZW5lcmF0b3IgPSAoXG4gIGZpZWxkOiBGaWVsZCxcbiAgc2NoZW1hOiBTY2hlbWEsXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbikgPT4gdm9pZFxuXG5jb25zdCBmb3JtYXRCYXNlU2NoZW1hID0gKGZpZWxkOiBGaWVsZEFmZmVjdGluZ0RhdGEsIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zKSA9PiB7XG4gIGNvbnN0IHsgZGlzYWJsZVVuaXF1ZSwgZHJhZnRzRW5hYmxlZCwgaW5kZXhTb3J0YWJsZUZpZWxkcyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGNvbnN0IHNjaGVtYTogU2NoZW1hVHlwZU9wdGlvbnM8dW5rbm93bj4gPSB7XG4gICAgaW5kZXg6IGZpZWxkLmluZGV4IHx8ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGluZGV4U29ydGFibGVGaWVsZHMgfHwgZmFsc2UsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIHVuaXF1ZTogKCFkaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkgfHwgZmFsc2UsXG4gIH1cblxuICBpZiAoc2NoZW1hLnVuaXF1ZSAmJiAoZmllbGQubG9jYWxpemVkIHx8IGRyYWZ0c0VuYWJsZWQpKSB7XG4gICAgc2NoZW1hLnNwYXJzZSA9IHRydWVcbiAgfVxuXG4gIGlmIChmaWVsZC5oaWRkZW4pIHtcbiAgICBzY2hlbWEuaGlkZGVuID0gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBsb2NhbGl6ZVNjaGVtYSA9IChcbiAgZW50aXR5OiBOb25QcmVzZW50YXRpb25hbEZpZWxkIHwgVGFiLFxuICBzY2hlbWEsXG4gIGxvY2FsaXphdGlvbjogU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2UsXG4pID0+IHtcbiAgaWYgKGZpZWxkSXNMb2NhbGl6ZWQoZW50aXR5KSAmJiBsb2NhbGl6YXRpb24gJiYgQXJyYXkuaXNBcnJheShsb2NhbGl6YXRpb24ubG9jYWxlcykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgdHlwZTogbG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZShcbiAgICAgICAgKGxvY2FsZVNjaGVtYSwgbG9jYWxlKSA9PiAoe1xuICAgICAgICAgIC4uLmxvY2FsZVNjaGVtYSxcbiAgICAgICAgICBbbG9jYWxlXTogc2NoZW1hLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgIH1cbiAgfVxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGJ1aWxkU2NoZW1hID0gKFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgY29uZmlnRmllbGRzOiBGaWVsZFtdLFxuICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyA9IHt9LFxuKTogU2NoZW1hID0+IHtcbiAgY29uc3QgeyBhbGxvd0lERmllbGQsIG9wdGlvbnMgfSA9IGJ1aWxkU2NoZW1hT3B0aW9uc1xuICBsZXQgZmllbGRzID0ge31cblxuICBsZXQgc2NoZW1hRmllbGRzID0gY29uZmlnRmllbGRzXG5cbiAgaWYgKCFhbGxvd0lERmllbGQpIHtcbiAgICBjb25zdCBpZEZpZWxkID0gc2NoZW1hRmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuICAgIGlmIChpZEZpZWxkKSB7XG4gICAgICBmaWVsZHMgPSB7XG4gICAgICAgIF9pZDogaWRGaWVsZC50eXBlID09PSAnbnVtYmVyJyA/IE51bWJlciA6IFN0cmluZyxcbiAgICAgIH1cbiAgICAgIHNjaGVtYUZpZWxkcyA9IHNjaGVtYUZpZWxkcy5maWx0ZXIoXG4gICAgICAgIChmaWVsZCkgPT4gIShmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBjb25zdCBzY2hlbWEgPSBuZXcgU2NoZW1hKGZpZWxkcywgb3B0aW9ucylcblxuICBzY2hlbWFGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBpZiAoIWZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkoZmllbGQpKSB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW2ZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShmaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBmaWVsZFRvU2NoZW1hTWFwOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZFNjaGVtYUdlbmVyYXRvcj4gPSB7XG4gIGFycmF5OiAoXG4gICAgZmllbGQ6IEFycmF5RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICkgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgdHlwZTogW1xuICAgICAgICBidWlsZFNjaGVtYShjb25maWcsIGZpZWxkLmZpZWxkcywge1xuICAgICAgICAgIGFsbG93SURGaWVsZDogdHJ1ZSxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBkcmFmdHNFbmFibGVkOiBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGJsb2NrczogKFxuICAgIGZpZWxkOiBCbG9ja0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmaWVsZFNjaGVtYSA9IHtcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgIHR5cGU6IFtuZXcgU2NoZW1hKHt9LCB7IF9pZDogZmFsc2UsIGRpc2NyaW1pbmF0b3JLZXk6ICdibG9ja1R5cGUnIH0pXSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGZpZWxkU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuXG4gICAgZmllbGQuYmxvY2tzLmZvckVhY2goKGJsb2NrSXRlbTogQmxvY2spID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrU2NoZW1hID0gbmV3IFNjaGVtYSh7fSwgeyBfaWQ6IGZhbHNlLCBpZDogZmFsc2UgfSlcblxuICAgICAgYmxvY2tJdGVtLmZpZWxkcy5mb3JFYWNoKChibG9ja0ZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbYmxvY2tGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICBhZGRGaWVsZFNjaGVtYShibG9ja0ZpZWxkLCBibG9ja1NjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLmZvckVhY2goKGxvY2FsZUNvZGUpID0+IHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZSBQb3NzaWJsZSBpbmNvcnJlY3QgdHlwaW5nIGluIG1vbmdvb3NlIHR5cGVzLCB0aGlzIHdvcmtzXG4gICAgICAgICAgc2NoZW1hLnBhdGgoYCR7ZmllbGQubmFtZX0uJHtsb2NhbGVDb2RlfWApLmRpc2NyaW1pbmF0b3IoYmxvY2tJdGVtLnNsdWcsIGJsb2NrU2NoZW1hKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlIFBvc3NpYmxlIGluY29ycmVjdCB0eXBpbmcgaW4gbW9uZ29vc2UgdHlwZXMsIHRoaXMgd29ya3NcbiAgICAgICAgc2NoZW1hLnBhdGgoZmllbGQubmFtZSkuZGlzY3JpbWluYXRvcihibG9ja0l0ZW0uc2x1ZywgYmxvY2tTY2hlbWEpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgY2hlY2tib3g6IChcbiAgICBmaWVsZDogQ2hlY2tib3hGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogQm9vbGVhbiB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGNvZGU6IChcbiAgICBmaWVsZDogQ29kZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2xsYXBzaWJsZTogKFxuICAgIGZpZWxkOiBDb2xsYXBzaWJsZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBkYXRlOiAoXG4gICAgZmllbGQ6IERhdGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogRGF0ZSB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGVtYWlsOiAoXG4gICAgZmllbGQ6IEVtYWlsRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGdyb3VwOiAoXG4gICAgZmllbGQ6IEdyb3VwRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGZvcm1hdHRlZEJhc2VTY2hlbWEgPSBmb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpXG5cbiAgICAvLyBjYXJyeSBpbmRleFNvcnRhYmxlRmllbGRzIHRocm91Z2ggdG8gdmVyc2lvbnMgaWYgZHJhZnRzIGVuYWJsZWRcbiAgICBjb25zdCBpbmRleFNvcnRhYmxlRmllbGRzID1cbiAgICAgIGJ1aWxkU2NoZW1hT3B0aW9ucy5pbmRleFNvcnRhYmxlRmllbGRzICYmXG4gICAgICBmaWVsZC5uYW1lID09PSAndmVyc2lvbicgJiZcbiAgICAgIGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkXG5cbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0dGVkQmFzZVNjaGVtYSxcbiAgICAgIHR5cGU6IGJ1aWxkU2NoZW1hKGNvbmZpZywgZmllbGQuZmllbGRzLCB7XG4gICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICBkcmFmdHNFbmFibGVkOiBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZCxcbiAgICAgICAgaW5kZXhTb3J0YWJsZUZpZWxkcyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAganNvbjogKFxuICAgIGZpZWxkOiBKU09ORmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIG51bWJlcjogKFxuICAgIGZpZWxkOiBOdW1iZXJGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW051bWJlcl0gOiBOdW1iZXIsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICAgIGNvb3JkaW5hdGVzOiB7XG4gICAgICAgIGRlZmF1bHQ6IGZpZWxkLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgdHlwZTogW051bWJlcl0sXG4gICAgICB9LFxuICAgICAgdHlwZToge1xuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUgJiYgZmllbGQubG9jYWxpemVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmNvb3JkaW5hdGVzLnNwYXJzZSA9IHRydWVcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBpZiAoZmllbGQuaW5kZXggPT09IHRydWUgfHwgZmllbGQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaW5kZXhPcHRpb25zOiBJbmRleE9wdGlvbnMgPSB7fVxuICAgICAgaWYgKCFidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgaW5kZXhPcHRpb25zLnNwYXJzZSA9IHRydWVcbiAgICAgICAgaW5kZXhPcHRpb25zLnVuaXF1ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZXMuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgc2NoZW1hLmluZGV4KHsgW2Ake2ZpZWxkLm5hbWV9LiR7bG9jYWxlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiAoXG4gICAgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgIHR5cGU6IGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKChsb2NhbGVzLCBsb2NhbGUpID0+IHtcbiAgICAgICAgICBsZXQgbG9jYWxlU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgIGlmIChoYXNNYW55UmVsYXRpb25zKSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHsgZW51bTogZmllbGQucmVsYXRpb25UbywgdHlwZTogU3RyaW5nIH0sXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICByZWZQYXRoOiBgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sb2NhbGVzLFxuICAgICAgICAgICAgW2xvY2FsZV06IGZpZWxkLmhhc01hbnkgPyB7IGRlZmF1bHQ6IHVuZGVmaW5lZCwgdHlwZTogW2xvY2FsZVNjaGVtYV0gfSA6IGxvY2FsZVNjaGVtYSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICByZWxhdGlvblRvOiB7IGVudW06IGZpZWxkLnJlbGF0aW9uVG8sIHR5cGU6IFN0cmluZyB9LFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICAgICAgdHlwZTogW3NjaGVtYVRvUmV0dXJuXSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IHNjaGVtYVRvUmV0dXJuLFxuICAgIH0pXG4gIH0sXG4gIHJpY2hUZXh0OiAoXG4gICAgZmllbGQ6IFJpY2hUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHJvdzogKFxuICAgIGZpZWxkOiBSb3dGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgc2VsZWN0OiAoXG4gICAgZmllbGQ6IFNlbGVjdEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH1cblxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZCB8fCAhZmllbGQucmVxdWlyZWQpIHtcbiAgICAgIGJhc2VTY2hlbWEuZW51bS5wdXNoKG51bGwpXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgZmllbGQuaGFzTWFueSA/IFtiYXNlU2NoZW1hXSA6IGJhc2VTY2hlbWEsXG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24sXG4gICAgICApLFxuICAgIH0pXG4gIH0sXG4gIHRhYnM6IChcbiAgICBmaWVsZDogVGFic0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgaWYgKHRhYkhhc05hbWUodGFiKSkge1xuICAgICAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgICAgIHR5cGU6IGJ1aWxkU2NoZW1hKGNvbmZpZywgdGFiLmZpZWxkcywge1xuICAgICAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgICBkcmFmdHNFbmFibGVkOiBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9XG5cbiAgICAgICAgc2NoZW1hLmFkZCh7XG4gICAgICAgICAgW3RhYi5uYW1lXTogbG9jYWxpemVTY2hlbWEodGFiLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYi5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgdGV4dDogKFxuICAgIGZpZWxkOiBUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogZmllbGQuaGFzTWFueSA/IFtTdHJpbmddIDogU3RyaW5nLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgdGV4dGFyZWE6IChcbiAgICBmaWVsZDogVGV4dGFyZWFGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgdXBsb2FkOiAoXG4gICAgZmllbGQ6IFVwbG9hZEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkU2NoZW1hXG4iXSwibmFtZXMiOlsiZm9ybWF0QmFzZVNjaGVtYSIsImZpZWxkIiwiYnVpbGRTY2hlbWFPcHRpb25zIiwiZGlzYWJsZVVuaXF1ZSIsImRyYWZ0c0VuYWJsZWQiLCJpbmRleFNvcnRhYmxlRmllbGRzIiwic2NoZW1hIiwiaW5kZXgiLCJ1bmlxdWUiLCJyZXF1aXJlZCIsImxvY2FsaXplZCIsInNwYXJzZSIsImhpZGRlbiIsImxvY2FsaXplU2NoZW1hIiwiZW50aXR5IiwibG9jYWxpemF0aW9uIiwiZmllbGRJc0xvY2FsaXplZCIsIkFycmF5IiwiaXNBcnJheSIsImxvY2FsZXMiLCJ0eXBlIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwiTnVtYmVyIiwiU3RyaW5nIiwiZmlsdGVyIiwiU2NoZW1hIiwiZm9yRWFjaCIsImZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkiLCJhZGRGaWVsZFNjaGVtYSIsImZpZWxkVG9TY2hlbWFNYXAiLCJhcnJheSIsImJhc2VTY2hlbWEiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiaWQiLCJtaW5pbWl6ZSIsImFkZCIsImJsb2NrcyIsImZpZWxkU2NoZW1hIiwiZGlzY3JpbWluYXRvcktleSIsImJsb2NrSXRlbSIsImJsb2NrU2NoZW1hIiwiYmxvY2tGaWVsZCIsImxvY2FsZUNvZGUiLCJwYXRoIiwiZGlzY3JpbWluYXRvciIsInNsdWciLCJjaGVja2JveCIsIkJvb2xlYW4iLCJjb2RlIiwiY29sbGFwc2libGUiLCJzdWJGaWVsZCIsImRhdGUiLCJEYXRlIiwiZW1haWwiLCJncm91cCIsImZvcm1hdHRlZEJhc2VTY2hlbWEiLCJqc29uIiwiVHlwZXMiLCJNaXhlZCIsIm51bWJlciIsImhhc01hbnkiLCJwb2ludCIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiZW51bSIsImluZGV4T3B0aW9ucyIsInJhZGlvIiwibWFwIiwib3B0aW9uIiwidmFsdWUiLCJyZWxhdGlvbnNoaXAiLCJoYXNNYW55UmVsYXRpb25zIiwicmVsYXRpb25UbyIsInNjaGVtYVRvUmV0dXJuIiwicmVmUGF0aCIsInJlZiIsInJpY2hUZXh0Iiwicm93Iiwic2VsZWN0IiwicHVzaCIsInRhYnMiLCJ0YWIiLCJ0YWJIYXNOYW1lIiwidGV4dCIsInRleHRhcmVhIiwidXBsb2FkIl0sIm1hcHBpbmdzIjoiQUFB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
440
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEluZGV4T3B0aW9ucywgU2NoZW1hT3B0aW9ucywgU2NoZW1hVHlwZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnLCBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgRmllbGRBZmZlY3RpbmdEYXRhLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE5vblByZXNlbnRhdGlvbmFsRmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWIsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgU2NoZW1hIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQge1xuICBmaWVsZEFmZmVjdHNEYXRhLFxuICBmaWVsZElzTG9jYWxpemVkLFxuICBmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5LFxuICB0YWJIYXNOYW1lLFxufSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7XG4gIGFsbG93SURGaWVsZD86IGJvb2xlYW5cbiAgZGlzYWJsZVVuaXF1ZT86IGJvb2xlYW5cbiAgZHJhZnRzRW5hYmxlZD86IGJvb2xlYW5cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgb3B0aW9ucz86IFNjaGVtYU9wdGlvbnNcbn1cblxudHlwZSBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IChcbiAgZmllbGQ6IEZpZWxkLFxuICBzY2hlbWE6IFNjaGVtYSxcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuKSA9PiB2b2lkXG5cbmNvbnN0IGZvcm1hdEJhc2VTY2hlbWEgPSAoZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSwgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMpID0+IHtcbiAgY29uc3QgeyBkaXNhYmxlVW5pcXVlLCBkcmFmdHNFbmFibGVkLCBpbmRleFNvcnRhYmxlRmllbGRzIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgY29uc3Qgc2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICBpbmRleDogZmllbGQuaW5kZXggfHwgKCFkaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkgfHwgaW5kZXhTb3J0YWJsZUZpZWxkcyB8fCBmYWxzZSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgdW5pcXVlOiAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBmYWxzZSxcbiAgfVxuXG4gIGlmIChcbiAgICBzY2hlbWEudW5pcXVlICYmXG4gICAgKGZpZWxkLmxvY2FsaXplZCB8fFxuICAgICAgZHJhZnRzRW5hYmxlZCB8fFxuICAgICAgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmXG4gICAgICAgIGZpZWxkLnR5cGUgIT09ICdncm91cCcgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ3RhYicgJiZcbiAgICAgICAgZmllbGQucmVxdWlyZWQgIT09IHRydWUpKVxuICApIHtcbiAgICBzY2hlbWEuc3BhcnNlID0gdHJ1ZVxuICB9XG5cbiAgaWYgKGZpZWxkLmhpZGRlbikge1xuICAgIHNjaGVtYS5oaWRkZW4gPSB0cnVlXG4gIH1cblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGxvY2FsaXplU2NoZW1hID0gKFxuICBlbnRpdHk6IE5vblByZXNlbnRhdGlvbmFsRmllbGQgfCBUYWIsXG4gIHNjaGVtYSxcbiAgbG9jYWxpemF0aW9uOiBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZSxcbikgPT4ge1xuICBpZiAoZmllbGRJc0xvY2FsaXplZChlbnRpdHkpICYmIGxvY2FsaXphdGlvbiAmJiBBcnJheS5pc0FycmF5KGxvY2FsaXphdGlvbi5sb2NhbGVzKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBsb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKFxuICAgICAgICAobG9jYWxlU2NoZW1hLCBsb2NhbGUpID0+ICh7XG4gICAgICAgICAgLi4ubG9jYWxlU2NoZW1hLFxuICAgICAgICAgIFtsb2NhbGVdOiBzY2hlbWEsXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgfVxuICB9XG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgYnVpbGRTY2hlbWEgPSAoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBjb25maWdGaWVsZHM6IEZpZWxkW10sXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zID0ge30sXG4pOiBTY2hlbWEgPT4ge1xuICBjb25zdCB7IGFsbG93SURGaWVsZCwgb3B0aW9ucyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGxldCBmaWVsZHMgPSB7fVxuXG4gIGxldCBzY2hlbWFGaWVsZHMgPSBjb25maWdGaWVsZHNcblxuICBpZiAoIWFsbG93SURGaWVsZCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBzY2hlbWFGaWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG4gICAgaWYgKGlkRmllbGQpIHtcbiAgICAgIGZpZWxkcyA9IHtcbiAgICAgICAgX2lkOiBpZEZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyIDogU3RyaW5nLFxuICAgICAgfVxuICAgICAgc2NoZW1hRmllbGRzID0gc2NoZW1hRmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkKSA9PiAhKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYSA9IG5ldyBTY2hlbWEoZmllbGRzLCBvcHRpb25zKVxuXG4gIHNjaGVtYUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmICghZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZCkpIHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKGZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGZpZWxkVG9TY2hlbWFNYXA6IFJlY29yZDxzdHJpbmcsIEZpZWxkU2NoZW1hR2VuZXJhdG9yPiA9IHtcbiAgYXJyYXk6IChcbiAgICBmaWVsZDogQXJyYXlGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKSA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBbXG4gICAgICAgIGJ1aWxkU2NoZW1hKGNvbmZpZywgZmllbGQuZmllbGRzLCB7XG4gICAgICAgICAgYWxsb3dJREZpZWxkOiB0cnVlLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgYmxvY2tzOiAoXG4gICAgZmllbGQ6IEJsb2NrRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGZpZWxkU2NoZW1hID0ge1xuICAgICAgdHlwZTogW25ldyBTY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgZGlzY3JpbWluYXRvcktleTogJ2Jsb2NrVHlwZScgfSldLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgZmllbGRTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBmaWVsZC5ibG9ja3MuZm9yRWFjaCgoYmxvY2tJdGVtOiBCbG9jaykgPT4ge1xuICAgICAgY29uc3QgYmxvY2tTY2hlbWEgPSBuZXcgU2NoZW1hKHt9LCB7IF9pZDogZmFsc2UsIGlkOiBmYWxzZSB9KVxuXG4gICAgICBibG9ja0l0ZW0uZmllbGRzLmZvckVhY2goKGJsb2NrRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtibG9ja0ZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKGJsb2NrRmllbGQsIGJsb2NrU2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuZm9yRWFjaCgobG9jYWxlQ29kZSkgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFBvc3NpYmxlIGluY29ycmVjdCB0eXBpbmcgaW4gbW9uZ29vc2UgdHlwZXMsIHRoaXMgd29ya3NcbiAgICAgICAgICBzY2hlbWEucGF0aChgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZUNvZGV9YCkuZGlzY3JpbWluYXRvcihibG9ja0l0ZW0uc2x1ZywgYmxvY2tTY2hlbWEpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICBzY2hlbWEucGF0aChmaWVsZC5uYW1lKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBjaGVja2JveDogKFxuICAgIGZpZWxkOiBDaGVja2JveEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBCb29sZWFuIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29kZTogKFxuICAgIGZpZWxkOiBDb2RlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGNvbGxhcHNpYmxlOiAoXG4gICAgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGRhdGU6IChcbiAgICBmaWVsZDogRGF0ZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBEYXRlIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZW1haWw6IChcbiAgICBmaWVsZDogRW1haWxGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZ3JvdXA6IChcbiAgICBmaWVsZDogR3JvdXBGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZm9ybWF0dGVkQmFzZVNjaGVtYSA9IGZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucylcblxuICAgIC8vIGNhcnJ5IGluZGV4U29ydGFibGVGaWVsZHMgdGhyb3VnaCB0byB2ZXJzaW9ucyBpZiBkcmFmdHMgZW5hYmxlZFxuICAgIGNvbnN0IGluZGV4U29ydGFibGVGaWVsZHMgPVxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmluZGV4U29ydGFibGVGaWVsZHMgJiZcbiAgICAgIGZpZWxkLm5hbWUgPT09ICd2ZXJzaW9uJyAmJlxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWRcblxuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXR0ZWRCYXNlU2NoZW1hLFxuICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICBpbmRleFNvcnRhYmxlRmllbGRzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBqc29uOiAoXG4gICAgZmllbGQ6IEpTT05GaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgbnVtYmVyOiAoXG4gICAgZmllbGQ6IE51bWJlckZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IGZpZWxkLmhhc01hbnkgPyBbTnVtYmVyXSA6IE51bWJlcixcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHBvaW50OiAoXG4gICAgZmllbGQ6IFBvaW50RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgICAgdHlwZToge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGVudW06IFsnUG9pbnQnXSxcbiAgICAgIH0sXG4gICAgICBjb29yZGluYXRlczoge1xuICAgICAgICB0eXBlOiBbTnVtYmVyXSxcbiAgICAgICAgZGVmYXVsdDogZmllbGQuZGVmYXVsdFZhbHVlIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9XG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSAmJiBmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIGJhc2VTY2hlbWEuY29vcmRpbmF0ZXMuc3BhcnNlID0gdHJ1ZVxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGlmIChmaWVsZC5pbmRleCA9PT0gdHJ1ZSB8fCBmaWVsZC5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpbmRleE9wdGlvbnM6IEluZGV4T3B0aW9ucyA9IHt9XG4gICAgICBpZiAoIWJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkge1xuICAgICAgICBpbmRleE9wdGlvbnMuc3BhcnNlID0gdHJ1ZVxuICAgICAgICBpbmRleE9wdGlvbnMudW5pcXVlID0gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlcy5mb3JFYWNoKChsb2NhbGUpID0+IHtcbiAgICAgICAgICBzY2hlbWEuaW5kZXgoeyBbYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9YF06ICcyZHNwaGVyZScgfSwgaW5kZXhPcHRpb25zKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NoZW1hLmluZGV4KHsgW2ZpZWxkLm5hbWVdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHJhZGlvOiAoXG4gICAgZmllbGQ6IFJhZGlvRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICByZWxhdGlvbnNoaXA6IChcbiAgICBmaWVsZDogUmVsYXRpb25zaGlwRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICkgPT4ge1xuICAgIGNvbnN0IGhhc01hbnlSZWxhdGlvbnMgPSBBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pXG4gICAgbGV0IHNjaGVtYVRvUmV0dXJuOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIHR5cGU6IGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKChsb2NhbGVzLCBsb2NhbGUpID0+IHtcbiAgICAgICAgICBsZXQgbG9jYWxlU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgIGlmIChoYXNNYW55UmVsYXRpb25zKSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9LnJlbGF0aW9uVG9gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sb2NhbGVzLFxuICAgICAgICAgICAgW2xvY2FsZV06IGZpZWxkLmhhc01hbnkgPyB7IHR5cGU6IFtsb2NhbGVTY2hlbWFdLCBkZWZhdWx0OiB1bmRlZmluZWQgfSA6IGxvY2FsZVNjaGVtYSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgICAgdHlwZTogW3NjaGVtYVRvUmV0dXJuXSxcbiAgICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogc2NoZW1hVG9SZXR1cm4sXG4gICAgfSlcbiAgfSxcbiAgcmljaFRleHQ6IChcbiAgICBmaWVsZDogUmljaFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJzcGFyc2UiLCJoaWRkZW4iLCJsb2NhbGl6ZVNjaGVtYSIsImVudGl0eSIsImxvY2FsaXphdGlvbiIsImZpZWxkSXNMb2NhbGl6ZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsb2NhbGVzIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsIm5hbWUiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJTY2hlbWEiLCJmb3JFYWNoIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsImFkZEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiYmFzZVNjaGVtYSIsImlkIiwibWluaW1pemUiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiYWRkIiwiYmxvY2tzIiwiZmllbGRTY2hlbWEiLCJkaXNjcmltaW5hdG9yS2V5IiwiYmxvY2tJdGVtIiwiYmxvY2tTY2hlbWEiLCJibG9ja0ZpZWxkIiwibG9jYWxlQ29kZSIsInBhdGgiLCJkaXNjcmltaW5hdG9yIiwic2x1ZyIsImNoZWNrYm94IiwiQm9vbGVhbiIsImNvZGUiLCJjb2xsYXBzaWJsZSIsInN1YkZpZWxkIiwiZGF0ZSIsIkRhdGUiLCJlbWFpbCIsImdyb3VwIiwiZm9ybWF0dGVkQmFzZVNjaGVtYSIsImpzb24iLCJUeXBlcyIsIk1peGVkIiwibnVtYmVyIiwiaGFzTWFueSIsInBvaW50IiwiZW51bSIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiaW5kZXhPcHRpb25zIiwicmFkaW8iLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsInJlbGF0aW9uc2hpcCIsImhhc01hbnlSZWxhdGlvbnMiLCJyZWxhdGlvblRvIiwic2NoZW1hVG9SZXR1cm4iLCJyZWZQYXRoIiwicmVmIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJwdXNoIiwidGFicyIsInRhYiIsInRhYkhhc05hbWUiLCJ0ZXh0IiwidGV4dGFyZWEiLCJ1cGxvYWQiXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRCxHQUNwRCx5Q0FBeUMsR0FDekMsMERBQTBELEdBQzFELHVDQUF1Qzs7OzsrQkFtbEJ2Qzs7O2VBQUE7OzswQkFwakJ1Qjt1QkFNaEI7QUFpQlAsTUFBTUEsbUJBQW1CLENBQUNDLE9BQTJCQztJQUNuRCxNQUFNLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxtQkFBbUIsRUFBRSxHQUFHSDtJQUM5RCxNQUFNSSxTQUFxQztRQUN6Q0MsT0FBT04sTUFBTU0sS0FBSyxJQUFLLENBQUNKLGlCQUFpQkYsTUFBTU8sTUFBTSxJQUFLSCx1QkFBdUI7UUFDakZJLFVBQVU7UUFDVkQsUUFBUSxBQUFDLENBQUNMLGlCQUFpQkYsTUFBTU8sTUFBTSxJQUFLO0lBQzlDO0lBRUEsSUFDRUYsT0FBT0UsTUFBTSxJQUNaUCxDQUFBQSxNQUFNUyxTQUFTLElBQ2ROLGlCQUNDTyxJQUFBQSx1QkFBZ0IsRUFBQ1YsVUFDaEJBLE1BQU1XLElBQUksS0FBSyxXQUNmWCxNQUFNVyxJQUFJLEtBQUssU0FDZlgsTUFBTVEsUUFBUSxLQUFLLElBQUksR0FDM0I7UUFDQUgsT0FBT08sTUFBTSxHQUFHO0lBQ2xCO0lBRUEsSUFBSVosTUFBTWEsTUFBTSxFQUFFO1FBQ2hCUixPQUFPUSxNQUFNLEdBQUc7SUFDbEI7SUFFQSxPQUFPUjtBQUNUO0FBRUEsTUFBTVMsaUJBQWlCLENBQ3JCQyxRQUNBVixRQUNBVztJQUVBLElBQUlDLElBQUFBLHVCQUFnQixFQUFDRixXQUFXQyxnQkFBZ0JFLE1BQU1DLE9BQU8sQ0FBQ0gsYUFBYUksT0FBTyxHQUFHO1FBQ25GLE9BQU87WUFDTFQsTUFBTUssYUFBYUssV0FBVyxDQUFDQyxNQUFNLENBQ25DLENBQUNDLGNBQWNDLFNBQVksQ0FBQTtv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
@@ -57,7 +57,7 @@ const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
57
57
  if (field.type === 'number' && typeof formattedValue === 'string') {
58
58
  formattedValue = Number(val);
59
59
  }
60
- if (field.type === 'date' && typeof val === 'string') {
60
+ if (field.type === 'date' && typeof val === 'string' && operator !== 'exists') {
61
61
  formattedValue = new Date(val);
62
62
  if (Number.isNaN(Date.parse(formattedValue))) {
63
63
  return undefined;
@@ -199,4 +199,4 @@ const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
199
199
  };
200
200
  };
201
201
 
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgU2FuaXRpemVRdWVyeVZhbHVlQXJncyA9IHtcbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBoYXNDdXN0b21JRDogYm9vbGVhblxuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgZmllbGQsXG4gIGhhc0N1c3RvbUlELFxuICBvcGVyYXRvcixcbiAgcGF0aCxcbiAgdmFsLFxufTogU2FuaXRpemVRdWVyeVZhbHVlQXJncyk6IHtcbiAgb3BlcmF0b3I/OiBzdHJpbmdcbiAgcmF3UXVlcnk/OiB1bmtub3duXG4gIHZhbD86IHVua25vd25cbn0gPT4ge1xuICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWxcbiAgbGV0IGZvcm1hdHRlZE9wZXJhdG9yID0gb3BlcmF0b3JcblxuICAvLyBEaXNyZWdhcmQgaW52YWxpZCBfaWRzXG4gIGlmIChwYXRoID09PSAnX2lkJyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuc3BsaXQoJywnKS5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoIWhhc0N1c3RvbUlEKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZCh2YWwpXG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogdW5kZWZpbmVkIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHBhcnNlRmxvYXQodmFsKVxuXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3I6IGZvcm1hdHRlZE9wZXJhdG9yLCB2YWw6IHVuZGVmaW5lZCB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FzdCBpbmNvbWluZyB2YWx1ZXMgYXMgcHJvcGVyIHNlYXJjaGFibGUgdHlwZXNcbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdjaGVja2JveCcgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJykgZm9ybWF0dGVkVmFsdWUgPSB0cnVlXG4gICAgaWYgKHZhbC50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSBmb3JtYXR0ZWRWYWx1ZSA9IGZhbHNlXG4gIH1cblxuICBpZiAoWydhbGwnLCAnaW4nLCAnbm90X2luJ10uaW5jbHVkZXMob3BlcmF0b3IpICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZChmb3JtYXR0ZWRWYWx1ZSlcblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZS5tYXAoKGFycmF5VmFsKSA9PiBwYXJzZUZsb2F0KGFycmF5VmFsKSlcbiAgICB9XG4gIH1cblxuICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gTnVtYmVyKHZhbClcbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoTnVtYmVyLmlzTmFOKERhdGUucGFyc2UoZm9ybWF0dGVkVmFsdWUpKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIGlmIChbJ3JlbGF0aW9uc2hpcCcsICd1cGxvYWQnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgIGlmICh2YWwgPT09ICdudWxsJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBudWxsXG4gICAgfVxuXG4gICAgLy8gT2JqZWN0IGVxdWFsaXR5IHJlcXVpcmVzIHRoZSB2YWx1ZSB0byBiZSB0aGUgZmlyc3Qga2V5IGluIHRoZSBvYmplY3QgdGhhdCBpcyBiZWluZyBxdWVyaWVkLlxuICAgIGlmIChcbiAgICAgIG9wZXJhdG9yID09PSAnZXF1YWxzJyAmJlxuICAgICAgZm9ybWF0dGVkVmFsdWUgJiZcbiAgICAgIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIGZvcm1hdHRlZFZhbHVlLnZhbHVlICYmXG4gICAgICBmb3JtYXR0ZWRWYWx1ZS5yZWxhdGlvblRvXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByYXdRdWVyeToge1xuICAgICAgICAgICRhbmQ6IFtcbiAgICAgICAgICAgIHsgW2Ake3BhdGh9LnZhbHVlYF06IHsgJGVxOiBmb3JtYXR0ZWRWYWx1ZS52YWx1ZSB9IH0sXG4gICAgICAgICAgICB7IFtgJHtwYXRofS5yZWxhdGlvblRvYF06IHsgJGVxOiBmb3JtYXR0ZWRWYWx1ZS5yZWxhdGlvblRvIH0gfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcGVyYXRvciA9PT0gJ2luJyAmJiBBcnJheS5pc0FycmF5KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZS5yZWR1Y2UoKGZvcm1hdHRlZFZhbHVlcywgaW5WYWwpID0+IHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWVzID0gW2luVmFsXVxuICAgICAgICBpZiAobW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZChpblZhbCkpXG4gICAgICAgICAgbmV3VmFsdWVzLnB1c2gobmV3IG1vbmdvb3NlLlR5cGVzLk9iamVjdElkKGluVmFsKSlcblxuICAgICAgICBjb25zdCBwYXJzZWROdW1iZXIgPSBwYXJzZUZsb2F0KGluVmFsKVxuICAgICAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWROdW1iZXIpKSBuZXdWYWx1ZXMucHVzaChwYXJzZWROdW1iZXIpXG5cbiAgICAgICAgcmV0dXJuIFsuLi5mb3JtYXR0ZWRWYWx1ZXMsIC4uLm5ld1ZhbHVlc11cbiAgICAgIH0sIFtdKVxuICAgIH1cbiAgfVxuXG4gIC8vIFNldCB1cCBzcGVjaWZpYyBmb3JtYXR0aW5nIG5lY2Vzc2FyeSBieSBvcGVyYXRvcnNcblxuICBpZiAob3BlcmF0b3IgPT09ICduZWFyJykge1xuICAgIGxldCBsbmdcbiAgICBsZXQgbGF0XG4gICAgbGV0IG1heERpc3RhbmNlXG4gICAgbGV0IG1pbkRpc3RhbmNlXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIDtbbG5nLCBsYXQsIG1heERpc3RhbmNlLCBtaW5EaXN0YW5jZV0gPSBmb3JtYXR0ZWRWYWx1ZVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICA7W2xuZywgbGF0LCBtYXhEaXN0YW5jZSwgbWluRGlzdGFuY2VdID0gY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkKGZvcm1hdHRlZFZhbHVlKVxuICAgIH1cblxuICAgIGlmIChsbmcgPT0gbnVsbCB8fCBsYXQgPT0gbnVsbCB8fCAobWF4RGlzdGFuY2UgPT0gbnVsbCAmJiBtaW5EaXN0YW5jZSA9PSBudWxsKSkge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB1bmRlZmluZWRcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAgICRnZW9tZXRyeTogeyB0eXBlOiAnUG9pbnQnLCBjb29yZGluYXRlczogW3BhcnNlRmxvYXQobG5nKSwgcGFyc2VGbG9hdChsYXQpXSB9LFxuICAgICAgfVxuXG4gICAgICBpZiAobWF4RGlzdGFuY2UpIGZvcm1hdHRlZFZhbHVlLiRtYXhEaXN0YW5jZSA9IHBhcnNlRmxvYXQobWF4RGlzdGFuY2UpXG4gICAgICBpZiAobWluRGlzdGFuY2UpIGZvcm1hdHRlZFZhbHVlLiRtaW5EaXN0YW5jZSA9IHBhcnNlRmxvYXQobWluRGlzdGFuY2UpXG4gICAgfVxuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnd2l0aGluJyB8fCBvcGVyYXRvciA9PT0gJ2ludGVyc2VjdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAkZ2VvbWV0cnk6IGZvcm1hdHRlZFZhbHVlLFxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXRoICE9PSAnX2lkJyB8fCAocGF0aCA9PT0gJ19pZCcgJiYgaGFzQ3VzdG9tSUQgJiYgZmllbGQudHlwZSA9PT0gJ3RleHQnKSkge1xuICAgIGlmIChvcGVyYXRvciA9PT0gJ2NvbnRhaW5zJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB7ICRvcHRpb25zOiAnaScsICRyZWdleDogZm9ybWF0dGVkVmFsdWUgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChcbiAgICAocGF0aCA9PT0gJ19pZCcgfHwgcGF0aCA9PT0gJ3BhcmVudCcpICYmXG4gICAgb3BlcmF0b3IgPT09ICdsaWtlJyAmJlxuICAgIGZvcm1hdHRlZFZhbHVlLmxlbmd0aCA9PT0gMjQgJiZcbiAgICAhaGFzQ3VzdG9tSURcbiAgKSB7XG4gICAgZm9ybWF0dGVkT3BlcmF0b3IgPSAnZXF1YWxzJ1xuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnZXhpc3RzJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUgPT09ICd0cnVlJyB8fCBmb3JtYXR0ZWRWYWx1ZSA9PT0gdHJ1ZVxuXG4gICAgLy8gQ2xlYXJhYmxlIGZpZWxkc1xuICAgIGlmIChbJ3JlbGF0aW9uc2hpcCcsICdzZWxlY3QnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJhd1F1ZXJ5OiB7XG4gICAgICAgICAgICAkYW5kOiBbeyBbcGF0aF06IHsgJGV4aXN0czogdHJ1ZSB9IH0sIHsgW3BhdGhdOiB7ICRuZTogbnVsbCB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmF3UXVlcnk6IHtcbiAgICAgICAgICAgICRvcjogW3sgW3BhdGhdOiB7ICRleGlzdHM6IGZhbHNlIH0gfSwgeyBbcGF0aF06IHsgJGVxOiBudWxsIH0gfV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IG9wZXJhdG9yOiBmb3JtYXR0ZWRPcGVyYXRvciwgdmFsOiBmb3JtYXR0ZWRWYWx1ZSB9XG59XG4iXSwibmFtZXMiOlsic2FuaXRpemVRdWVyeVZhbHVlIiwiZmllbGQiLCJoYXNDdXN0b21JRCIsIm9wZXJhdG9yIiwicGF0aCIsInZhbCIsImZvcm1hdHRlZFZhbHVlIiwiZm9ybWF0dGVkT3BlcmF0b3IiLCJzcGxpdCIsImxlbmd0aCIsImlzVmFsaWQiLCJtb25nb29zZSIsIlR5cGVzIiwiT2JqZWN0SWQiLCJ1bmRlZmluZWQiLCJ0eXBlIiwicGFyc2VkTnVtYmVyIiwicGFyc2VGbG9hdCIsIk51bWJlciIsImlzTmFOIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsImNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCIsIm1hcCIsImFycmF5VmFsIiwiRGF0ZSIsInBhcnNlIiwidmFsdWUiLCJyZWxhdGlvblRvIiwicmF3UXVlcnkiLCIkYW5kIiwiJGVxIiwiQXJyYXkiLCJpc0FycmF5IiwicmVkdWNlIiwiZm9ybWF0dGVkVmFsdWVzIiwiaW5WYWwiLCJuZXdWYWx1ZXMiLCJwdXNoIiwibG5nIiwibGF0IiwibWF4RGlzdGFuY2UiLCJtaW5EaXN0YW5jZSIsIiRnZW9tZXRyeSIsImNvb3JkaW5hdGVzIiwiJG1heERpc3RhbmNlIiwiJG1pbkRpc3RhbmNlIiwiJG9wdGlvbnMiLCIkcmVnZXgiLCIkZXhpc3RzIiwiJG5lIiwiJG9yIl0sIm1hcHBpbmdzIjoiOzs7OytCQWFhQTs7O2VBQUFBOzs7aUVBWFE7MkJBQzBCOzs7Ozs7QUFVeEMsTUFBTUEscUJBQXFCLENBQUMsRUFDakNDLEtBQUssRUFDTEMsV0FBVyxFQUNYQyxRQUFRLEVBQ1JDLElBQUksRUFDSkMsR0FBRyxFQUNvQjtJQUt2QixJQUFJQyxpQkFBaUJEO0lBQ3JCLElBQUlFLG9CQUFvQko7SUFFeEIseUJBQXlCO0lBQ3pCLElBQUlDLFNBQVMsU0FBUyxPQUFPQyxRQUFRLFlBQVlBLElBQUlHLEtBQUssQ0FBQyxLQUFLQyxNQUFNLEtBQUssR0FBRztRQUM1RSxJQUFJLENBQUNQLGFBQWE7WUFDaEIsTUFBTVEsVUFBVUMsaUJBQVEsQ0FBQ0MsS0FBSyxDQUFDQyxRQUFRLENBQUNILE9BQU8sQ0FBQ0w7WUFFaEQsSUFBSSxDQUFDSyxTQUFTO2dCQUNaLE9BQU87b0JBQUVQLFVBQVVJO29CQUFtQkYsS0FBS1M7Z0JBQVU7WUFDdkQ7UUFDRjtRQUVBLElBQUliLE1BQU1jLElBQUksS0FBSyxVQUFVO1lBQzNCLE1BQU1DLGVBQWVDLFdBQVdaO1lBRWhDLElBQUlhLE9BQU9DLEtBQUssQ0FBQ0gsZUFBZTtnQkFDOUIsT0FBTztvQkFBRWIsVUFBVUk7b0JBQW1CRixLQUFLUztnQkFBVTtZQUN2RDtRQUNGO0lBQ0Y7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
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgU2FuaXRpemVRdWVyeVZhbHVlQXJncyA9IHtcbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBoYXNDdXN0b21JRDogYm9vbGVhblxuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgZmllbGQsXG4gIGhhc0N1c3RvbUlELFxuICBvcGVyYXRvcixcbiAgcGF0aCxcbiAgdmFsLFxufTogU2FuaXRpemVRdWVyeVZhbHVlQXJncyk6IHtcbiAgb3BlcmF0b3I/OiBzdHJpbmdcbiAgcmF3UXVlcnk/OiB1bmtub3duXG4gIHZhbD86IHVua25vd25cbn0gPT4ge1xuICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWxcbiAgbGV0IGZvcm1hdHRlZE9wZXJhdG9yID0gb3BlcmF0b3JcblxuICAvLyBEaXNyZWdhcmQgaW52YWxpZCBfaWRzXG4gIGlmIChwYXRoID09PSAnX2lkJyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuc3BsaXQoJywnKS5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoIWhhc0N1c3RvbUlEKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZCh2YWwpXG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogdW5kZWZpbmVkIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHBhcnNlRmxvYXQodmFsKVxuXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3I6IGZvcm1hdHRlZE9wZXJhdG9yLCB2YWw6IHVuZGVmaW5lZCB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FzdCBpbmNvbWluZyB2YWx1ZXMgYXMgcHJvcGVyIHNlYXJjaGFibGUgdHlwZXNcbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdjaGVja2JveCcgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJykgZm9ybWF0dGVkVmFsdWUgPSB0cnVlXG4gICAgaWYgKHZhbC50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSBmb3JtYXR0ZWRWYWx1ZSA9IGZhbHNlXG4gIH1cblxuICBpZiAoWydhbGwnLCAnaW4nLCAnbm90X2luJ10uaW5jbHVkZXMob3BlcmF0b3IpICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZChmb3JtYXR0ZWRWYWx1ZSlcblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZS5tYXAoKGFycmF5VmFsKSA9PiBwYXJzZUZsb2F0KGFycmF5VmFsKSlcbiAgICB9XG4gIH1cblxuICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gTnVtYmVyKHZhbClcbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgb3BlcmF0b3IgIT09ICdleGlzdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBuZXcgRGF0ZSh2YWwpXG4gICAgaWYgKE51bWJlci5pc05hTihEYXRlLnBhcnNlKGZvcm1hdHRlZFZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBpZiAoWydyZWxhdGlvbnNoaXAnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICBpZiAodmFsID09PSAnbnVsbCcpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gbnVsbFxuICAgIH1cblxuICAgIC8vIE9iamVjdCBlcXVhbGl0eSByZXF1aXJlcyB0aGUgdmFsdWUgdG8gYmUgdGhlIGZpcnN0IGtleSBpbiB0aGUgb2JqZWN0IHRoYXQgaXMgYmVpbmcgcXVlcmllZC5cbiAgICBpZiAoXG4gICAgICBvcGVyYXRvciA9PT0gJ2VxdWFscycgJiZcbiAgICAgIGZvcm1hdHRlZFZhbHVlICYmXG4gICAgICB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICBmb3JtYXR0ZWRWYWx1ZS52YWx1ZSAmJlxuICAgICAgZm9ybWF0dGVkVmFsdWUucmVsYXRpb25Ub1xuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmF3UXVlcnk6IHtcbiAgICAgICAgICAkYW5kOiBbXG4gICAgICAgICAgICB7IFtgJHtwYXRofS52YWx1ZWBdOiB7ICRlcTogZm9ybWF0dGVkVmFsdWUudmFsdWUgfSB9LFxuICAgICAgICAgICAgeyBbYCR7cGF0aH0ucmVsYXRpb25Ub2BdOiB7ICRlcTogZm9ybWF0dGVkVmFsdWUucmVsYXRpb25UbyB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3BlcmF0b3IgPT09ICdpbicgJiYgQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUucmVkdWNlKChmb3JtYXR0ZWRWYWx1ZXMsIGluVmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IFtpblZhbF1cbiAgICAgICAgaWYgKG1vbmdvb3NlLlR5cGVzLk9iamVjdElkLmlzVmFsaWQoaW5WYWwpKVxuICAgICAgICAgIG5ld1ZhbHVlcy5wdXNoKG5ldyBtb25nb29zZS5UeXBlcy5PYmplY3RJZChpblZhbCkpXG5cbiAgICAgICAgY29uc3QgcGFyc2VkTnVtYmVyID0gcGFyc2VGbG9hdChpblZhbClcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4ocGFyc2VkTnVtYmVyKSkgbmV3VmFsdWVzLnB1c2gocGFyc2VkTnVtYmVyKVxuXG4gICAgICAgIHJldHVybiBbLi4uZm9ybWF0dGVkVmFsdWVzLCAuLi5uZXdWYWx1ZXNdXG4gICAgICB9LCBbXSlcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgdXAgc3BlY2lmaWMgZm9ybWF0dGluZyBuZWNlc3NhcnkgYnkgb3BlcmF0b3JzXG5cbiAgaWYgKG9wZXJhdG9yID09PSAnbmVhcicpIHtcbiAgICBsZXQgbG5nXG4gICAgbGV0IGxhdFxuICAgIGxldCBtYXhEaXN0YW5jZVxuICAgIGxldCBtaW5EaXN0YW5jZVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybWF0dGVkVmFsdWUpKSB7XG4gICAgICA7W2xuZywgbGF0LCBtYXhEaXN0YW5jZSwgbWluRGlzdGFuY2VdID0gZm9ybWF0dGVkVmFsdWVcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgO1tsbmcsIGxhdCwgbWF4RGlzdGFuY2UsIG1pbkRpc3RhbmNlXSA9IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZChmb3JtYXR0ZWRWYWx1ZSlcbiAgICB9XG5cbiAgICBpZiAobG5nID09IG51bGwgfHwgbGF0ID09IG51bGwgfHwgKG1heERpc3RhbmNlID09IG51bGwgJiYgbWluRGlzdGFuY2UgPT0gbnVsbCkpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gdW5kZWZpbmVkXG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0ge1xuICAgICAgICAkZ2VvbWV0cnk6IHsgdHlwZTogJ1BvaW50JywgY29vcmRpbmF0ZXM6IFtwYXJzZUZsb2F0KGxuZyksIHBhcnNlRmxvYXQobGF0KV0gfSxcbiAgICAgIH1cblxuICAgICAgaWYgKG1heERpc3RhbmNlKSBmb3JtYXR0ZWRWYWx1ZS4kbWF4RGlzdGFuY2UgPSBwYXJzZUZsb2F0KG1heERpc3RhbmNlKVxuICAgICAgaWYgKG1pbkRpc3RhbmNlKSBmb3JtYXR0ZWRWYWx1ZS4kbWluRGlzdGFuY2UgPSBwYXJzZUZsb2F0KG1pbkRpc3RhbmNlKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ3dpdGhpbicgfHwgb3BlcmF0b3IgPT09ICdpbnRlcnNlY3RzJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0ge1xuICAgICAgJGdlb21ldHJ5OiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICB9XG4gIH1cblxuICBpZiAocGF0aCAhPT0gJ19pZCcgfHwgKHBhdGggPT09ICdfaWQnICYmIGhhc0N1c3RvbUlEICYmIGZpZWxkLnR5cGUgPT09ICd0ZXh0JykpIHtcbiAgICBpZiAob3BlcmF0b3IgPT09ICdjb250YWlucycpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0geyAkb3B0aW9uczogJ2knLCAkcmVnZXg6IGZvcm1hdHRlZFZhbHVlIH1cbiAgICB9XG4gIH1cblxuICBpZiAoXG4gICAgKHBhdGggPT09ICdfaWQnIHx8IHBhdGggPT09ICdwYXJlbnQnKSAmJlxuICAgIG9wZXJhdG9yID09PSAnbGlrZScgJiZcbiAgICBmb3JtYXR0ZWRWYWx1ZS5sZW5ndGggPT09IDI0ICYmXG4gICAgIWhhc0N1c3RvbUlEXG4gICkge1xuICAgIGZvcm1hdHRlZE9wZXJhdG9yID0gJ2VxdWFscydcbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlID09PSAndHJ1ZScgfHwgZm9ybWF0dGVkVmFsdWUgPT09IHRydWVcblxuICAgIC8vIENsZWFyYWJsZSBmaWVsZHNcbiAgICBpZiAoWydyZWxhdGlvbnNoaXAnLCAnc2VsZWN0JywgJ3VwbG9hZCddLmluY2x1ZGVzKGZpZWxkLnR5cGUpKSB7XG4gICAgICBpZiAoZm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByYXdRdWVyeToge1xuICAgICAgICAgICAgJGFuZDogW3sgW3BhdGhdOiB7ICRleGlzdHM6IHRydWUgfSB9LCB7IFtwYXRoXTogeyAkbmU6IG51bGwgfSB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJhd1F1ZXJ5OiB7XG4gICAgICAgICAgICAkb3I6IFt7IFtwYXRoXTogeyAkZXhpc3RzOiBmYWxzZSB9IH0sIHsgW3BhdGhdOiB7ICRlcTogbnVsbCB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogZm9ybWF0dGVkVmFsdWUgfVxufVxuIl0sIm5hbWVzIjpbInNhbml0aXplUXVlcnlWYWx1ZSIsImZpZWxkIiwiaGFzQ3VzdG9tSUQiLCJvcGVyYXRvciIsInBhdGgiLCJ2YWwiLCJmb3JtYXR0ZWRWYWx1ZSIsImZvcm1hdHRlZE9wZXJhdG9yIiwic3BsaXQiLCJsZW5ndGgiLCJpc1ZhbGlkIiwibW9uZ29vc2UiLCJUeXBlcyIsIk9iamVjdElkIiwidW5kZWZpbmVkIiwidHlwZSIsInBhcnNlZE51bWJlciIsInBhcnNlRmxvYXQiLCJOdW1iZXIiLCJpc05hTiIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJjcmVhdGVBcnJheUZyb21Db21tYURlbGluZWF0ZWQiLCJtYXAiLCJhcnJheVZhbCIsIkRhdGUiLCJwYXJzZSIsInZhbHVlIiwicmVsYXRpb25UbyIsInJhd1F1ZXJ5IiwiJGFuZCIsIiRlcSIsIkFycmF5IiwiaXNBcnJheSIsInJlZHVjZSIsImZvcm1hdHRlZFZhbHVlcyIsImluVmFsIiwibmV3VmFsdWVzIiwicHVzaCIsImxuZyIsImxhdCIsIm1heERpc3RhbmNlIiwibWluRGlzdGFuY2UiLCIkZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsIiRtYXhEaXN0YW5jZSIsIiRtaW5EaXN0YW5jZSIsIiRvcHRpb25zIiwiJHJlZ2V4IiwiJGV4aXN0cyIsIiRuZSIsIiRvciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFhYUE7OztlQUFBQTs7O2lFQVhROzJCQUMwQjs7Ozs7O0FBVXhDLE1BQU1BLHFCQUFxQixDQUFDLEVBQ2pDQyxLQUFLLEVBQ0xDLFdBQVcsRUFDWEMsUUFBUSxFQUNSQyxJQUFJLEVBQ0pDLEdBQUcsRUFDb0I7SUFLdkIsSUFBSUMsaUJBQWlCRDtJQUNyQixJQUFJRSxvQkFBb0JKO0lBRXhCLHlCQUF5QjtJQUN6QixJQUFJQyxTQUFTLFNBQVMsT0FBT0MsUUFBUSxZQUFZQSxJQUFJRyxLQUFLLENBQUMsS0FBS0MsTUFBTSxLQUFLLEdBQUc7UUFDNUUsSUFBSSxDQUFDUCxhQUFhO1lBQ2hCLE1BQU1RLFVBQVVDLGlCQUFRLENBQUNDLEtBQUssQ0FBQ0MsUUFBUSxDQUFDSCxPQUFPLENBQUNMO1lBRWhELElBQUksQ0FBQ0ssU0FBUztnQkFDWixPQUFPO29CQUFFUCxVQUFVSTtvQkFBbUJGLEtBQUtTO2dCQUFVO1lBQ3ZEO1FBQ0Y7UUFFQSxJQUFJYixNQUFNYyxJQUFJLEtBQUssVUFBVTtZQUMzQixNQUFNQyxlQUFlQyxXQUFXWjtZQUVoQyxJQUFJYSxPQUFPQyxLQUFLLENBQUNILGVBQWU7Z0JBQzlCLE9BQU87b0JBQUViLFVBQVVJO29CQUFtQkYsS0FB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
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "@payloadcms/db-mongodb",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
4
4
  "description": "The officially supported MongoDB database adapter for Payload",
5
- "repository": "https://github.com/payloadcms/payload",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/payloadcms/payload.git",
8
+ "directory": "packages/db-mongodb"
9
+ },
6
10
  "license": "MIT",
7
11
  "homepage": "https://payloadcms.com",
8
12
  "author": {
@@ -27,8 +31,8 @@
27
31
  "@types/mongoose-aggregate-paginate-v2": "1.0.9",
28
32
  "mongodb": "4.17.1",
29
33
  "mongodb-memory-server": "^9",
30
- "@payloadcms/eslint-config": "1.1.1",
31
- "payload": "2.11.1"
34
+ "payload": "2.12.1",
35
+ "@payloadcms/eslint-config": "1.1.1"
32
36
  },
33
37
  "peerDependencies": {
34
38
  "payload": "^2.0.0"