@uql/core 0.4.82 → 0.4.85

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.
@@ -9,10 +9,10 @@ const id_1 = require("./id");
9
9
  const field_1 = require("./field");
10
10
  it('User', () => {
11
11
  const meta = (0, definition_1.getMeta)(test_1.User);
12
- expect(meta.fields.companyId.reference.entity()).toBe(test_1.Company);
12
+ expect(meta.fields.companyId.reference()).toBe(test_1.Company);
13
13
  expect(meta.relations.company.entity()).toBe(test_1.Company);
14
14
  expect(meta.relations.company.references).toEqual([{ local: 'companyId', foreign: 'id' }]);
15
- expect(meta.fields.creatorId.reference.entity()).toBe(test_1.User);
15
+ expect(meta.fields.creatorId.reference()).toBe(test_1.User);
16
16
  expect(meta.relations.creator.entity()).toBe(test_1.User);
17
17
  expect(meta.relations.creator.references).toEqual([{ local: 'creatorId', foreign: 'id' }]);
18
18
  const expectedMeta = {
@@ -25,12 +25,12 @@ it('User', () => {
25
25
  companyId: {
26
26
  name: 'companyId',
27
27
  type: Number,
28
- reference: { entity: expect.any(Function) },
28
+ reference: expect.any(Function),
29
29
  },
30
30
  creatorId: {
31
31
  name: 'creatorId',
32
32
  type: Number,
33
- reference: { entity: expect.any(Function) },
33
+ reference: expect.any(Function),
34
34
  },
35
35
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
36
36
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -78,12 +78,12 @@ it('Profile', () => {
78
78
  companyId: {
79
79
  name: 'companyId',
80
80
  type: Number,
81
- reference: { entity: expect.any(Function) },
81
+ reference: expect.any(Function),
82
82
  },
83
83
  creatorId: {
84
84
  name: 'creatorId',
85
85
  type: Number,
86
- reference: { entity: expect.any(Function) },
86
+ reference: expect.any(Function),
87
87
  },
88
88
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
89
89
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -116,12 +116,12 @@ it('Item', () => {
116
116
  companyId: {
117
117
  name: 'companyId',
118
118
  type: Number,
119
- reference: { entity: expect.any(Function) },
119
+ reference: expect.any(Function),
120
120
  },
121
121
  creatorId: {
122
122
  name: 'creatorId',
123
123
  type: Number,
124
- reference: { entity: expect.any(Function) },
124
+ reference: expect.any(Function),
125
125
  },
126
126
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
127
127
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -131,22 +131,22 @@ it('Item', () => {
131
131
  buyLedgerAccountId: {
132
132
  name: 'buyLedgerAccountId',
133
133
  type: Number,
134
- reference: { entity: expect.any(Function) },
134
+ reference: expect.any(Function),
135
135
  },
136
136
  saleLedgerAccountId: {
137
137
  name: 'saleLedgerAccountId',
138
138
  type: Number,
139
- reference: { entity: expect.any(Function) },
139
+ reference: expect.any(Function),
140
140
  },
141
141
  taxId: {
142
142
  name: 'taxId',
143
143
  type: Number,
144
- reference: { entity: expect.any(Function) },
144
+ reference: expect.any(Function),
145
145
  },
146
146
  measureUnitId: {
147
147
  name: 'measureUnitId',
148
148
  type: Number,
149
- reference: { entity: expect.any(Function) },
149
+ reference: expect.any(Function),
150
150
  },
151
151
  salePrice: { name: 'salePrice', type: Number },
152
152
  inventoryable: { name: 'inventoryable', type: Boolean },
@@ -216,9 +216,7 @@ it('Tag', () => {
216
216
  },
217
217
  companyId: {
218
218
  name: 'companyId',
219
- reference: {
220
- entity: expect.any(Function),
221
- },
219
+ reference: expect.any(Function),
222
220
  type: Number,
223
221
  },
224
222
  createdAt: {
@@ -245,9 +243,7 @@ it('Tag', () => {
245
243
  },
246
244
  creatorId: {
247
245
  name: 'creatorId',
248
- reference: {
249
- entity: expect.any(Function),
250
- },
246
+ reference: expect.any(Function),
251
247
  type: Number,
252
248
  },
253
249
  },
@@ -288,12 +284,12 @@ it('ItemTag', () => {
288
284
  itemId: {
289
285
  name: 'itemId',
290
286
  type: Number,
291
- reference: { entity: expect.any(Function) },
287
+ reference: expect.any(Function),
292
288
  },
293
289
  tagId: {
294
290
  name: 'tagId',
295
291
  type: Number,
296
- reference: { entity: expect.any(Function) },
292
+ reference: expect.any(Function),
297
293
  },
298
294
  },
299
295
  relations: {
@@ -323,12 +319,12 @@ it('TaxCategory', () => {
323
319
  companyId: {
324
320
  name: 'companyId',
325
321
  type: Number,
326
- reference: { entity: expect.any(Function) },
322
+ reference: expect.any(Function),
327
323
  },
328
324
  creatorId: {
329
325
  name: 'creatorId',
330
326
  type: Number,
331
- reference: { entity: expect.any(Function) },
327
+ reference: expect.any(Function),
332
328
  },
333
329
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
334
330
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -361,9 +357,7 @@ it('Tax', () => {
361
357
  id: { name: 'id', type: Number, isId: true },
362
358
  categoryId: {
363
359
  name: 'categoryId',
364
- reference: {
365
- entity: expect.any(Function),
366
- },
360
+ reference: expect.any(Function),
367
361
  type: String,
368
362
  },
369
363
  percentage: {
@@ -373,12 +367,12 @@ it('Tax', () => {
373
367
  companyId: {
374
368
  name: 'companyId',
375
369
  type: Number,
376
- reference: { entity: expect.any(Function) },
370
+ reference: expect.any(Function),
377
371
  },
378
372
  creatorId: {
379
373
  name: 'creatorId',
380
374
  type: Number,
381
- reference: { entity: expect.any(Function) },
375
+ reference: expect.any(Function),
382
376
  },
383
377
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
384
378
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -425,16 +419,12 @@ it('ItemAdjustment', () => {
425
419
  },
426
420
  inventoryAdjustmentId: {
427
421
  name: 'inventoryAdjustmentId',
428
- reference: {
429
- entity: expect.any(Function),
430
- },
422
+ reference: expect.any(Function),
431
423
  type: Number,
432
424
  },
433
425
  itemId: {
434
426
  name: 'itemId',
435
- reference: {
436
- entity: expect.any(Function),
437
- },
427
+ reference: expect.any(Function),
438
428
  type: Number,
439
429
  },
440
430
  number: {
@@ -443,20 +433,18 @@ it('ItemAdjustment', () => {
443
433
  },
444
434
  storehouseId: {
445
435
  name: 'storehouseId',
446
- reference: {
447
- entity: expect.any(Function),
448
- },
436
+ reference: expect.any(Function),
449
437
  type: Number,
450
438
  },
451
439
  companyId: {
452
440
  name: 'companyId',
453
441
  type: Number,
454
- reference: { entity: expect.any(Function) },
442
+ reference: expect.any(Function),
455
443
  },
456
444
  creatorId: {
457
445
  name: 'creatorId',
458
446
  type: Number,
459
- reference: { entity: expect.any(Function) },
447
+ reference: expect.any(Function),
460
448
  },
461
449
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
462
450
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -508,12 +496,12 @@ it('InventoryAdjustment', () => {
508
496
  companyId: {
509
497
  name: 'companyId',
510
498
  type: Number,
511
- reference: { entity: expect.any(Function) },
499
+ reference: expect.any(Function),
512
500
  },
513
501
  creatorId: {
514
502
  name: 'creatorId',
515
503
  type: Number,
516
- reference: { entity: expect.any(Function) },
504
+ reference: expect.any(Function),
517
505
  },
518
506
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
519
507
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -556,12 +544,12 @@ it('MeasureUnitCategory', () => {
556
544
  companyId: {
557
545
  name: 'companyId',
558
546
  type: Number,
559
- reference: { entity: expect.any(Function) },
547
+ reference: expect.any(Function),
560
548
  },
561
549
  creatorId: {
562
550
  name: 'creatorId',
563
551
  type: Number,
564
- reference: { entity: expect.any(Function) },
552
+ reference: expect.any(Function),
565
553
  },
566
554
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
567
555
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -571,7 +559,7 @@ it('MeasureUnitCategory', () => {
571
559
  measureUnits: {
572
560
  cardinality: '1m',
573
561
  entity: expect.any(Function),
574
- mappedBy: 'category',
562
+ mappedBy: 'categoryId',
575
563
  references: [{ local: 'id', foreign: 'categoryId' }],
576
564
  },
577
565
  company: {
@@ -602,17 +590,17 @@ it('MeasureUnit', () => {
602
590
  categoryId: {
603
591
  name: 'categoryId',
604
592
  type: Number,
605
- reference: { entity: expect.any(Function) },
593
+ reference: expect.any(Function),
606
594
  },
607
595
  companyId: {
608
596
  name: 'companyId',
609
597
  type: Number,
610
- reference: { entity: expect.any(Function) },
598
+ reference: expect.any(Function),
611
599
  },
612
600
  creatorId: {
613
601
  name: 'creatorId',
614
602
  type: Number,
615
- reference: { entity: expect.any(Function) },
603
+ reference: expect.any(Function),
616
604
  },
617
605
  createdAt: { name: 'createdAt', type: Number, onInsert: expect.any(Function) },
618
606
  updatedAt: { name: 'updatedAt', type: Number, onUpdate: expect.any(Function) },
@@ -734,4 +722,4 @@ it('max 1 onDelete', () => {
734
722
  ], SomeEntity);
735
723
  }).toThrow(`'SomeEntity' must have one field with 'onDelete' as maximum`);
736
724
  });
737
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9kZWNvcmF0b3IvZGVmaW5pdGlvbi5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUFxQztBQUNyQyx5Q0Fld0I7QUFDeEIsNkNBQW9EO0FBQ3BELHFDQUFrQztBQUNsQyw2QkFBMEI7QUFDMUIsbUNBQWdDO0FBRWhDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0lBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBQSxvQkFBTyxFQUFDLFdBQUksQ0FBQyxDQUFDO0lBRTNCLE1BQU0sQ0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUE4QixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQU8sQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFPLENBQUMsQ0FBQztJQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFM0YsTUFBTSxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQThCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBSSxDQUFDLENBQUM7SUFDbEYsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQUksQ0FBQyxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENB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RSxDQUFDO1dBQ3ZCLFVBQVUsQ0FLZjtJQUNILENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0FBQzVFLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5TWV0YSwgUmVmZXJlbmNlT3B0aW9ucyB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IFJhdyB9IGZyb20gJ0B1cWwvY29yZS91dGlsJztcbmltcG9ydCB7XG4gIFVzZXIsXG4gIEl0ZW0sXG4gIFRheENhdGVnb3J5LFxuICBQcm9maWxlLFxuICBDb21wYW55LFxuICBNZWFzdXJlVW5pdCxcbiAgVGF4LFxuICBMZWRnZXJBY2NvdW50LFxuICBJbnZlbnRvcnlBZGp1c3RtZW50LFxuICBJdGVtQWRqdXN0bWVudCxcbiAgTWVhc3VyZVVuaXRDYXRlZ29yeSxcbiAgU3RvcmVob3VzZSxcbiAgVGFnLFxuICBJdGVtVGFnLFxufSBmcm9tICdAdXFsL2NvcmUvdGVzdCc7XG5pbXBvcnQgeyBnZXRFbnRpdGllcywgZ2V0TWV0YSB9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eSc7XG5pbXBvcnQgeyBJZCB9IGZyb20gJy4vaWQnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcblxuaXQoJ1VzZXInLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKFVzZXIpO1xuXG4gIGV4cGVjdCgobWV0YS5maWVsZHMuY29tcGFueUlkLnJlZmVyZW5jZSBhcyBSZWZlcmVuY2VPcHRpb25zKS5lbnRpdHkoKSkudG9CZShDb21wYW55KTtcbiAgZXhwZWN0KG1ldGEucmVsYXRpb25zLmNvbXBhbnkuZW50aXR5KCkpLnRvQmUoQ29tcGFueSk7XG4gIGV4cGVjdChtZXRhLnJlbGF0aW9ucy5jb21wYW55LnJlZmVyZW5jZXMpLnRvRXF1YWwoW3sgbG9jYWw6ICdjb21wYW55SWQnLCBmb3JlaWduOiAnaWQnIH1dKTtcblxuICBleHBlY3QoKG1ldGEuZmllbGRzLmNyZWF0b3JJZC5yZWZlcmVuY2UgYXMgUmVmZXJlbmNlT3B0aW9ucykuZW50aXR5KCkpLnRvQmUoVXNlcik7XG4gIGV4cGVjdChtZXRhLnJlbGF0aW9ucy5jcmVhdG9yLmVudGl0eSgpKS50b0JlKFVzZXIpO1xuICBleHBlY3QobWV0YS5yZWxhdGlvbnMuY3JlYXRvci5yZWZlcmVuY2VzKS50b0VxdWFsKFt7IGxvY2FsOiAnY3JlYXRvcklkJywgZm9yZWlnbjogJ2lkJyB9XSk7XG5cbiAgY29uc3QgZXhwZWN0ZWRNZXRhOiBFbnRpdHlNZXRhPFVzZXI+ID0ge1xuICAgIGVudGl0eTogVXNlcixcbiAgICBuYW1lOiAnVXNlcicsXG4gICAgaWQ6ICdpZCcsXG4gICAgcHJvY2Vzc2VkOiB0cnVlLFxuICAgIGZpZWxkczoge1xuICAgICAgaWQ6IHsgbmFtZTogJ2lkJywgdHlwZTogTnVtYmVyLCBpc0lkOiB0cnVlIH0sXG4gICAgICBjb21wYW55SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnlJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9ySWQ6IHtcbiAgICAgICAgbmFtZTogJ2NyZWF0b3JJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVkQXQ6IHsgbmFtZTogJ2NyZWF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25JbnNlcnQ6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB1cGRhdGVkQXQ6IHsgbmFtZTogJ3VwZGF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25VcGRhdGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICBuYW1lOiB7IG5hbWU6ICduYW1lJywgdHlwZTogU3RyaW5nIH0sXG4gICAgICBlbWFpbDogeyBuYW1lOiAnZW1haWwnLCB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHBhc3N3b3JkOiB7IG5hbWU6ICdwYXNzd29yZCcsIHR5cGU6IFN0cmluZyB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBjb21wYW55OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NvbXBhbnlJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcjoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjcmVhdG9ySWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIHVzZXJzOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnMW0nLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICBtYXBwZWRCeTogJ2NyZWF0b3InLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2lkJywgZm9yZWlnbjogJ2NyZWF0b3JJZCcgfV0sXG4gICAgICB9LFxuICAgICAgcHJvZmlsZToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJzExJyxcbiAgICAgICAgY2FzY2FkZTogdHJ1ZSxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgbWFwcGVkQnk6ICdjcmVhdG9yJyxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdpZCcsIGZvcmVpZ246ICdjcmVhdG9ySWQnIH1dLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGV4cGVjdChtZXRhKS50b0VxdWFsKGV4cGVjdGVkTWV0YSk7XG59KTtcblxuaXQoJ1Byb2ZpbGUnLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKFByb2ZpbGUpO1xuICBjb25zdCBleHBlY3RlZE1ldGE6IEVudGl0eU1ldGE8UHJvZmlsZT4gPSB7XG4gICAgZW50aXR5OiBQcm9maWxlLFxuICAgIG5hbWU6ICd1c2VyX3Byb2ZpbGUnLFxuICAgIGlkOiAnaWQnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7IG5hbWU6ICdwaycsIHR5cGU6IE51bWJlciwgaXNJZDogdHJ1ZSB9LFxuICAgICAgY29tcGFueUlkOiB7XG4gICAgICAgIG5hbWU6ICdjb21wYW55SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogeyBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcklkOiB7XG4gICAgICAgIG5hbWU6ICdjcmVhdG9ySWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogeyBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB9LFxuICAgICAgY3JlYXRlZEF0OiB7IG5hbWU6ICdjcmVhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uSW5zZXJ0OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgdXBkYXRlZEF0OiB7IG5hbWU6ICd1cGRhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uVXBkYXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgcGljdHVyZTogeyBuYW1lOiAnaW1hZ2UnLCB0eXBlOiBTdHJpbmcgfSxcbiAgICB9LFxuICAgIHJlbGF0aW9uczoge1xuICAgICAgY29tcGFueToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjb21wYW55SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3I6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICcxMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY3JlYXRvcklkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnSXRlbScsICgpID0+IHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEoSXRlbSk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxJdGVtPiA9IHtcbiAgICBlbnRpdHk6IEl0ZW0sXG4gICAgbmFtZTogJ0l0ZW0nLFxuICAgIGlkOiAnaWQnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7IG5hbWU6ICdpZCcsIHR5cGU6IE51bWJlciwgaXNJZDogdHJ1ZSB9LFxuICAgICAgY29tcGFueUlkOiB7XG4gICAgICAgIG5hbWU6ICdjb21wYW55SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogeyBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcklkOiB7XG4gICAgICAgIG5hbWU6ICdjcmVhdG9ySWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogeyBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB9LFxuICAgICAgY3JlYXRlZEF0OiB7IG5hbWU6ICdjcmVhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uSW5zZXJ0OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgdXBkYXRlZEF0OiB7IG5hbWU6ICd1cGRhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uVXBkYXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgbmFtZTogeyBuYW1lOiAnbmFtZScsIHR5cGU6IFN0cmluZyB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgdHlwZTogU3RyaW5nIH0sXG4gICAgICBjb2RlOiB7IG5hbWU6ICdjb2RlJywgdHlwZTogU3RyaW5nIH0sXG4gICAgICBidXlMZWRnZXJBY2NvdW50SWQ6IHtcbiAgICAgICAgbmFtZTogJ2J1eUxlZGdlckFjY291bnRJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBzYWxlTGVkZ2VyQWNjb3VudElkOiB7XG4gICAgICAgIG5hbWU6ICdzYWxlTGVkZ2VyQWNjb3VudElkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IHsgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgfSxcbiAgICAgIHRheElkOiB7XG4gICAgICAgIG5hbWU6ICd0YXhJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBtZWFzdXJlVW5pdElkOiB7XG4gICAgICAgIG5hbWU6ICdtZWFzdXJlVW5pdElkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IHsgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgfSxcbiAgICAgIHNhbGVQcmljZTogeyBuYW1lOiAnc2FsZVByaWNlJywgdHlwZTogTnVtYmVyIH0sXG4gICAgICBpbnZlbnRvcnlhYmxlOiB7IG5hbWU6ICdpbnZlbnRvcnlhYmxlJywgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgdGFnc0NvdW50OiB7XG4gICAgICAgIG5hbWU6ICd0YWdzQ291bnQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHZpcnR1YWw6IGV4cGVjdC5hbnkoUmF3KSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZWxhdGlvbnM6IHtcbiAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY29tcGFueUlkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9yOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NyZWF0b3JJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgYnV5TGVkZ2VyQWNjb3VudDoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdidXlMZWRnZXJBY2NvdW50SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIHNhbGVMZWRnZXJBY2NvdW50OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ3NhbGVMZWRnZXJBY2NvdW50SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIHRheDoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICd0YXhJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgbWVhc3VyZVVuaXQ6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnbWVhc3VyZVVuaXRJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgdGFnczoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ21tJyxcbiAgICAgICAgY2FzY2FkZTogdHJ1ZSxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgdGhyb3VnaDogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFtcbiAgICAgICAgICB7IGxvY2FsOiAnaXRlbUlkJywgZm9yZWlnbjogJ2lkJyB9LFxuICAgICAgICAgIHsgbG9jYWw6ICd0YWdJZCcsIGZvcmVpZ246ICdpZCcgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnVGFnJywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShUYWcpO1xuICBjb25zdCBleHBlY3RlZE1ldGE6IEVudGl0eU1ldGE8VGFnPiA9IHtcbiAgICBlbnRpdHk6IFRhZyxcbiAgICBpZDogJ2lkJyxcbiAgICBuYW1lOiAnVGFnJyxcbiAgICBwcm9jZXNzZWQ6IHRydWUsXG4gICAgZmllbGRzOiB7XG4gICAgICBpZDoge1xuICAgICAgICBpc0lkOiB0cnVlLFxuICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgICAgY29tcGFueUlkOiB7XG4gICAgICAgIG5hbWU6ICdjb21wYW55SWQnLFxuICAgICAgICByZWZlcmVuY2U6IHtcbiAgICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgICAgY3JlYXRlZEF0OiB7XG4gICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgICBvbkluc2VydDogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIH0sXG4gICAgICBuYW1lOiB7XG4gICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgfSxcbiAgICAgIGl0ZW1zQ291bnQ6IHtcbiAgICAgICAgbmFtZTogJ2l0ZW1zQ291bnQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHZpcnR1YWw6IHtcbiAgICAgICAgICBhbGlhczogdW5kZWZpbmVkLFxuICAgICAgICAgIHZhbHVlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1cGRhdGVkQXQ6IHtcbiAgICAgICAgbmFtZTogJ3VwZGF0ZWRBdCcsXG4gICAgICAgIG9uVXBkYXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3JJZDoge1xuICAgICAgICBuYW1lOiAnY3JlYXRvcklkJyxcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJlbGF0aW9uczoge1xuICAgICAgY29tcGFueToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjb21wYW55SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbW0nLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICBtYXBwZWRCeTogJ3RhZ3MnLFxuICAgICAgICB0aHJvdWdoOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW1xuICAgICAgICAgIHsgbG9jYWw6ICd0YWdJZCcsIGZvcmVpZ246ICdpZCcgfSxcbiAgICAgICAgICB7IGxvY2FsOiAnaXRlbUlkJywgZm9yZWlnbjogJ2lkJyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3I6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY3JlYXRvcklkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnSXRlbVRhZycsICgpID0+IHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEoSXRlbVRhZyk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxJdGVtVGFnPiA9IHtcbiAgICBlbnRpdHk6IEl0ZW1UYWcsXG4gICAgbmFtZTogJ0l0ZW1UYWcnLFxuICAgIGlkOiAnaWQnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7IG5hbWU6ICdpZCcsIHR5cGU6IE51bWJlciwgaXNJZDogdHJ1ZSB9LFxuICAgICAgaXRlbUlkOiB7XG4gICAgICAgIG5hbWU6ICdpdGVtSWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogeyBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB9LFxuICAgICAgdGFnSWQ6IHtcbiAgICAgICAgbmFtZTogJ3RhZ0lkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IHsgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJlbGF0aW9uczoge1xuICAgICAgaXRlbToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdpdGVtSWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIHRhZzoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICd0YWdJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG4gIGV4cGVjdChtZXRhKS50b0VxdWFsKGV4cGVjdGVkTWV0YSk7XG59KTtcblxuaXQoJ1RheENhdGVnb3J5JywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShUYXhDYXRlZ29yeSk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxUYXhDYXRlZ29yeT4gPSB7XG4gICAgZW50aXR5OiBUYXhDYXRlZ29yeSxcbiAgICBuYW1lOiAnVGF4Q2F0ZWdvcnknLFxuICAgIGlkOiAncGsnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIHBrOiB7IG5hbWU6ICdwaycsIHR5cGU6IFN0cmluZywgaXNJZDogdHJ1ZSwgb25JbnNlcnQ6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICBjb21wYW55SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnlJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9ySWQ6IHtcbiAgICAgICAgbmFtZTogJ2NyZWF0b3JJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVkQXQ6IHsgbmFtZTogJ2NyZWF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25JbnNlcnQ6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB1cGRhdGVkQXQ6IHsgbmFtZTogJ3VwZGF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25VcGRhdGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICBuYW1lOiB7IG5hbWU6ICduYW1lJywgdHlwZTogU3RyaW5nIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyBuYW1lOiAnZGVzY3JpcHRpb24nLCB0eXBlOiBTdHJpbmcgfSxcbiAgICB9LFxuICAgIHJlbGF0aW9uczoge1xuICAgICAgY29tcGFueToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjb21wYW55SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3I6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY3JlYXRvcklkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnVGF4JywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShUYXgpO1xuICBjb25zdCBleHBlY3RlZE1ldGE6IEVudGl0eU1ldGE8VGF4PiA9IHtcbiAgICBlbnRpdHk6IFRheCxcbiAgICBuYW1lOiAnVGF4JyxcbiAgICBpZDogJ2lkJyxcbiAgICBwcm9jZXNzZWQ6IHRydWUsXG4gICAgZmllbGRzOiB7XG4gICAgICBpZDogeyBuYW1lOiAnaWQnLCB0eXBlOiBOdW1iZXIsIGlzSWQ6IHRydWUgfSxcbiAgICAgIGNhdGVnb3J5SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NhdGVnb3J5SWQnLFxuICAgICAgICByZWZlcmVuY2U6IHtcbiAgICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB9LFxuICAgICAgcGVyY2VudGFnZToge1xuICAgICAgICBuYW1lOiAncGVyY2VudGFnZScsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIH0sXG4gICAgICBjb21wYW55SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnlJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9ySWQ6IHtcbiAgICAgICAgbmFtZTogJ2NyZWF0b3JJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVkQXQ6IHsgbmFtZTogJ2NyZWF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25JbnNlcnQ6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB1cGRhdGVkQXQ6IHsgbmFtZTogJ3VwZGF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25VcGRhdGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICBuYW1lOiB7IG5hbWU6ICduYW1lJywgdHlwZTogU3RyaW5nIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyBuYW1lOiAnZGVzY3JpcHRpb24nLCB0eXBlOiBTdHJpbmcgfSxcbiAgICB9LFxuICAgIHJlbGF0aW9uczoge1xuICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsb2NhbDogJ2NhdGVnb3J5SWQnLFxuICAgICAgICAgICAgZm9yZWlnbjogJ3BrJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY29tcGFueUlkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9yOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NyZWF0b3JJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG4gIGV4cGVjdChtZXRhKS50b0VxdWFsKGV4cGVjdGVkTWV0YSk7XG59KTtcblxuaXQoJ0l0ZW1BZGp1c3RtZW50JywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShJdGVtQWRqdXN0bWVudCk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxJdGVtQWRqdXN0bWVudD4gPSB7XG4gICAgZW50aXR5OiBJdGVtQWRqdXN0bWVudCxcbiAgICBuYW1lOiAnSXRlbUFkanVzdG1lbnQnLFxuICAgIGlkOiAnaWQnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7IG5hbWU6ICdpZCcsIHR5cGU6IE51bWJlciwgaXNJZDogdHJ1ZSB9LFxuICAgICAgYnV5UHJpY2U6IHtcbiAgICAgICAgbmFtZTogJ2J1eVByaWNlJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICAgIGludmVudG9yeUFkanVzdG1lbnRJZDoge1xuICAgICAgICBuYW1lOiAnaW52ZW50b3J5QWRqdXN0bWVudElkJyxcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICAgIGl0ZW1JZDoge1xuICAgICAgICBuYW1lOiAnaXRlbUlkJyxcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICAgIG51bWJlcjoge1xuICAgICAgICBuYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICAgIHN0b3JlaG91c2VJZDoge1xuICAgICAgICBuYW1lOiAnc3RvcmVob3VzZUlkJyxcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICAgIGNvbXBhbnlJZDoge1xuICAgICAgICBuYW1lOiAnY29tcGFueUlkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IHsgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3JJZDoge1xuICAgICAgICBuYW1lOiAnY3JlYXRvcklkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IHsgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgfSxcbiAgICAgIGNyZWF0ZWRBdDogeyBuYW1lOiAnY3JlYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvbkluc2VydDogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIHVwZGF0ZWRBdDogeyBuYW1lOiAndXBkYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvblVwZGF0ZTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICB9LFxuICAgIHJlbGF0aW9uczoge1xuICAgICAgc3RvcmVob3VzZToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdzdG9yZWhvdXNlSWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnaXRlbUlkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjb21wYW55OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NvbXBhbnlJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcjoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjcmVhdG9ySWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGludmVudG9yeUFkanVzdG1lbnQ6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsb2NhbDogJ2ludmVudG9yeUFkanVzdG1lbnRJZCcsXG4gICAgICAgICAgICBmb3JlaWduOiAnaWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG4gIGV4cGVjdChtZXRhKS50b0VxdWFsKGV4cGVjdGVkTWV0YSk7XG59KTtcblxuaXQoJ0ludmVudG9yeUFkanVzdG1lbnQnLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKEludmVudG9yeUFkanVzdG1lbnQpO1xuICBjb25zdCBleHBlY3RlZE1ldGE6IEVudGl0eU1ldGE8SW52ZW50b3J5QWRqdXN0bWVudD4gPSB7XG4gICAgZW50aXR5OiBJbnZlbnRvcnlBZGp1c3RtZW50LFxuICAgIG5hbWU6ICdJbnZlbnRvcnlBZGp1c3RtZW50JyxcbiAgICBpZDogJ2lkJyxcbiAgICBwcm9jZXNzZWQ6IHRydWUsXG4gICAgZmllbGRzOiB7XG4gICAgICBpZDogeyBuYW1lOiAnaWQnLCB0eXBlOiBOdW1iZXIsIGlzSWQ6IHRydWUgfSxcbiAgICAgIGNvbXBhbnlJZDoge1xuICAgICAgICBuYW1lOiAnY29tcGFueUlkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IHsgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3JJZDoge1xuICAgICAgICBuYW1lOiAnY3JlYXRvcklkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IHsgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgfSxcbiAgICAgIGNyZWF0ZWRBdDogeyBuYW1lOiAnY3JlYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvbkluc2VydDogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIHVwZGF0ZWRBdDogeyBuYW1lOiAndXBkYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvblVwZGF0ZTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIHR5cGU6IFN0cmluZyB9LFxuICAgICAgZGF0ZTogeyBuYW1lOiAnZGF0ZScsIHR5cGU6IERhdGUgfSxcbiAgICB9LFxuICAgIHJlbGF0aW9uczoge1xuICAgICAgaXRlbUFkanVzdG1lbnRzOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnMW0nLFxuICAgICAgICBjYXNjYWRlOiB0cnVlLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICBtYXBwZWRCeTogJ2ludmVudG9yeUFkanVzdG1lbnQnLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2lkJywgZm9yZWlnbjogJ2ludmVudG9yeUFkanVzdG1lbnRJZCcgfV0sXG4gICAgICB9LFxuICAgICAgY29tcGFueToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjb21wYW55SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3I6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY3JlYXRvcklkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnTWVhc3VyZVVuaXRDYXRlZ29yeScsICgpID0+IHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEoTWVhc3VyZVVuaXRDYXRlZ29yeSk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxNZWFzdXJlVW5pdENhdGVnb3J5PiA9IHtcbiAgICBlbnRpdHk6IE1lYXN1cmVVbml0Q2F0ZWdvcnksXG4gICAgbmFtZTogJ01lYXN1cmVVbml0Q2F0ZWdvcnknLFxuICAgIGlkOiAnaWQnLFxuICAgIHNvZnREZWxldGU6ICdkZWxldGVkQXQnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7IG5hbWU6ICdpZCcsIHR5cGU6IE51bWJlciwgaXNJZDogdHJ1ZSB9LFxuICAgICAgbmFtZTogeyBuYW1lOiAnbmFtZScsIHR5cGU6IFN0cmluZyB9LFxuICAgICAgY29tcGFueUlkOiB7XG4gICAgICAgIG5hbWU6ICdjb21wYW55SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogeyBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcklkOiB7XG4gICAgICAgIG5hbWU6ICdjcmVhdG9ySWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogeyBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB9LFxuICAgICAgY3JlYXRlZEF0OiB7IG5hbWU6ICdjcmVhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uSW5zZXJ0OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgdXBkYXRlZEF0OiB7IG5hbWU6ICd1cGRhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uVXBkYXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgZGVsZXRlZEF0OiB7IG5hbWU6ICdkZWxldGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uRGVsZXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBtZWFzdXJlVW5pdHM6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICcxbScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIG1hcHBlZEJ5OiAnY2F0ZWdvcnknLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2lkJywgZm9yZWlnbjogJ2NhdGVnb3J5SWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY29tcGFueUlkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9yOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NyZWF0b3JJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG4gIGV4cGVjdChtZXRhKS50b0VxdWFsKGV4cGVjdGVkTWV0YSk7XG59KTtcblxuaXQoJ01lYXN1cmVVbml0JywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShNZWFzdXJlVW5pdCk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxNZWFzdXJlVW5pdD4gPSB7XG4gICAgZW50aXR5OiBNZWFzdXJlVW5pdCxcbiAgICBuYW1lOiAnTWVhc3VyZVVuaXQnLFxuICAgIGlkOiAnaWQnLFxuICAgIHNvZnREZWxldGU6ICdkZWxldGVkQXQnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7IG5hbWU6ICdpZCcsIHR5cGU6IE51bWJlciwgaXNJZDogdHJ1ZSB9LFxuICAgICAgbmFtZTogeyBuYW1lOiAnbmFtZScsIHR5cGU6IFN0cmluZyB9LFxuICAgICAgY2F0ZWdvcnlJZDoge1xuICAgICAgICBuYW1lOiAnY2F0ZWdvcnlJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjb21wYW55SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnlJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9ySWQ6IHtcbiAgICAgICAgbmFtZTogJ2NyZWF0b3JJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiB7IGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVkQXQ6IHsgbmFtZTogJ2NyZWF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25JbnNlcnQ6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB1cGRhdGVkQXQ6IHsgbmFtZTogJ3VwZGF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25VcGRhdGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICBkZWxldGVkQXQ6IHsgbmFtZTogJ2RlbGV0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25EZWxldGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgfSxcbiAgICByZWxhdGlvbnM6IHtcbiAgICAgIGNhdGVnb3J5OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBjYXNjYWRlOiAncGVyc2lzdCcsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY2F0ZWdvcnlJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgY29tcGFueToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjb21wYW55SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3I6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY3JlYXRvcklkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnbm90IGFuIEBFbnRpdHknLCAoKSA9PiB7XG4gIGNsYXNzIFNvbWVDbGFzcyB7fVxuXG4gIGV4cGVjdCgoKSA9PiB7XG4gICAgZ2V0TWV0YShTb21lQ2xhc3MpO1xuICB9KS50b1Rocm93KGAnU29tZUNsYXNzJyBpcyBub3QgYW4gZW50aXR5YCk7XG5cbiAgY2xhc3MgQW5vdGhlckNsYXNzIHtcbiAgICBpZDogc3RyaW5nO1xuICB9XG5cbiAgZXhwZWN0KCgpID0+IGdldE1ldGEoQW5vdGhlckNsYXNzKSkudG9UaHJvdyhgJ0Fub3RoZXJDbGFzcycgaXMgbm90IGFuIGVudGl0eWApO1xufSk7XG5cbml0KCdnZXRFbnRpdGllcycsICgpID0+IHtcbiAgY29uc3QgZW50aXRpZXMgPSBnZXRFbnRpdGllcygpO1xuICBleHBlY3QoZW50aXRpZXMuc29ydCgpKS50b0VxdWFsKFxuICAgIFtcbiAgICAgIENvbXBhbnksXG4gICAgICBQcm9maWxlLFxuICAgICAgVXNlcixcbiAgICAgIExlZGdlckFjY291bnQsXG4gICAgICBUYXhDYXRlZ29yeSxcbiAgICAgIFRheCxcbiAgICAgIE1lYXN1cmVVbml0Q2F0ZWdvcnksXG4gICAgICBNZWFzdXJlVW5pdCxcbiAgICAgIFN0b3JlaG91c2UsXG4gICAgICBJdGVtLFxuICAgICAgVGFnLFxuICAgICAgSXRlbVRhZyxcbiAgICAgIEl0ZW1BZGp1c3RtZW50LFxuICAgICAgSW52ZW50b3J5QWRqdXN0bWVudCxcbiAgICBdLnNvcnQoKVxuICApO1xufSk7XG5cbml0KCdubyBASWQnLCAoKSA9PiB7XG4gIGV4cGVjdCgoKSA9PiB7XG4gICAgQEVudGl0eSgpXG4gICAgY2xhc3MgU29tZUVudGl0eSB7XG4gICAgICBARmllbGQoKVxuICAgICAgaWQ6IHN0cmluZztcbiAgICB9XG4gIH0pLnRvVGhyb3coYCdTb21lRW50aXR5JyBtdXN0IGhhdmUgb25lIGZpZWxkIGRlY29yYXRlZCB3aXRoIEBJZGApO1xufSk7XG5cbml0KCdvbmUgQElkJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4ge1xuICAgIGNsYXNzIFNvbWVFbnRpdHkge1xuICAgICAgQElkKClcbiAgICAgIGlkT25lOiBzdHJpbmc7XG4gICAgICBASWQoKVxuICAgICAgaWRUd286IHN0cmluZztcbiAgICB9XG4gIH0pLnRvVGhyb3coYCdTb21lRW50aXR5JyBtdXN0IGhhdmUgYSBzaW5nbGUgZmllbGQgZGVjb3JhdGVkIHdpdGggQElkYCk7XG59KTtcblxuaXQoJ25vIGZpZWxkcycsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+IHtcbiAgICBARW50aXR5KClcbiAgICBjbGFzcyBTb21lRW50aXR5IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfVxuICB9KS50b1Rocm93KGAnU29tZUVudGl0eScgbXVzdCBoYXZlIGZpZWxkc2ApO1xufSk7XG5cbml0KCdzb2Z0RGVsZXRlIG9uRGVsZXRlJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4ge1xuICAgIEBFbnRpdHkoeyBzb2Z0RGVsZXRlOiB0cnVlIH0pXG4gICAgY2xhc3MgU29tZUVudGl0eSB7XG4gICAgICBARmllbGQoKVxuICAgICAgaWQ6IHN0cmluZztcbiAgICB9XG4gIH0pLnRvVGhyb3coYCdTb21lRW50aXR5JyBtdXN0IGhhdmUgb25lIGZpZWxkIHdpdGggJ29uRGVsZXRlJyB0byBlbmFibGUgJ3NvZnREZWxldGUnYCk7XG59KTtcblxuaXQoJ21heCAxIG9uRGVsZXRlJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4ge1xuICAgIEBFbnRpdHkoeyBzb2Z0RGVsZXRlOiB0cnVlIH0pXG4gICAgY2xhc3MgU29tZUVudGl0eSB7XG4gICAgICBARmllbGQoeyBvbkRlbGV0ZTogRGF0ZS5ub3cgfSlcbiAgICAgIGRlbGV0ZWRBdDogbnVtYmVyO1xuICAgICAgQEZpZWxkKHsgb25EZWxldGU6ICgpID0+IHRydWUgfSlcbiAgICAgIGRlbGV0ZWQ6IGJvb2xlYW47XG4gICAgfVxuICB9KS50b1Rocm93KGAnU29tZUVudGl0eScgbXVzdCBoYXZlIG9uZSBmaWVsZCB3aXRoICdvbkRlbGV0ZScgYXMgbWF4aW11bWApO1xufSk7XG4iXX0=
725
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VudGl0eS9kZWNvcmF0b3IvZGVmaW5pdGlvbi5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUFxQztBQUNyQyx5Q0Fld0I7QUFDeEIsNkNBQW9EO0FBQ3BELHFDQUFrQztBQUNsQyw2QkFBMEI7QUFDMUIsbUNBQWdDO0FBRWhDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0lBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBQSxvQkFBTyxFQUFDLFdBQUksQ0FBQyxDQUFDO0lBRTNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFPLENBQUMsQ0FBQztJQUN4RCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBTyxDQUFDLENBQUM7SUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFJLENBQUMsQ0FBQztJQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBSSxDQUFDLENBQUM7SUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFF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RTtRQUVWLElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVU7U0FLZixDQUFBO1FBSEM7WUFEQyxJQUFBLGFBQUssRUFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7O3FEQUNaO1FBRWxCO1lBREMsSUFBQSxhQUFLLEVBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7O21EQUNmO1FBSmIsVUFBVTtZQURmLElBQUEsZUFBTSxFQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO1dBQ3ZCLFVBQVUsQ0FLZjtJQUNILENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0FBQzVFLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5TWV0YSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IFJhdyB9IGZyb20gJ0B1cWwvY29yZS91dGlsJztcbmltcG9ydCB7XG4gIFVzZXIsXG4gIEl0ZW0sXG4gIFRheENhdGVnb3J5LFxuICBQcm9maWxlLFxuICBDb21wYW55LFxuICBNZWFzdXJlVW5pdCxcbiAgVGF4LFxuICBMZWRnZXJBY2NvdW50LFxuICBJbnZlbnRvcnlBZGp1c3RtZW50LFxuICBJdGVtQWRqdXN0bWVudCxcbiAgTWVhc3VyZVVuaXRDYXRlZ29yeSxcbiAgU3RvcmVob3VzZSxcbiAgVGFnLFxuICBJdGVtVGFnLFxufSBmcm9tICdAdXFsL2NvcmUvdGVzdCc7XG5pbXBvcnQgeyBnZXRFbnRpdGllcywgZ2V0TWV0YSB9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eSc7XG5pbXBvcnQgeyBJZCB9IGZyb20gJy4vaWQnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcblxuaXQoJ1VzZXInLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKFVzZXIpO1xuXG4gIGV4cGVjdChtZXRhLmZpZWxkcy5jb21wYW55SWQucmVmZXJlbmNlKCkpLnRvQmUoQ29tcGFueSk7XG4gIGV4cGVjdChtZXRhLnJlbGF0aW9ucy5jb21wYW55LmVudGl0eSgpKS50b0JlKENvbXBhbnkpO1xuICBleHBlY3QobWV0YS5yZWxhdGlvbnMuY29tcGFueS5yZWZlcmVuY2VzKS50b0VxdWFsKFt7IGxvY2FsOiAnY29tcGFueUlkJywgZm9yZWlnbjogJ2lkJyB9XSk7XG5cbiAgZXhwZWN0KG1ldGEuZmllbGRzLmNyZWF0b3JJZC5yZWZlcmVuY2UoKSkudG9CZShVc2VyKTtcbiAgZXhwZWN0KG1ldGEucmVsYXRpb25zLmNyZWF0b3IuZW50aXR5KCkpLnRvQmUoVXNlcik7XG4gIGV4cGVjdChtZXRhLnJlbGF0aW9ucy5jcmVhdG9yLnJlZmVyZW5jZXMpLnRvRXF1YWwoW3sgbG9jYWw6ICdjcmVhdG9ySWQnLCBmb3JlaWduOiAnaWQnIH1dKTtcblxuICBjb25zdCBleHBlY3RlZE1ldGE6IEVudGl0eU1ldGE8VXNlcj4gPSB7XG4gICAgZW50aXR5OiBVc2VyLFxuICAgIG5hbWU6ICdVc2VyJyxcbiAgICBpZDogJ2lkJyxcbiAgICBwcm9jZXNzZWQ6IHRydWUsXG4gICAgZmllbGRzOiB7XG4gICAgICBpZDogeyBuYW1lOiAnaWQnLCB0eXBlOiBOdW1iZXIsIGlzSWQ6IHRydWUgfSxcbiAgICAgIGNvbXBhbnlJZDoge1xuICAgICAgICBuYW1lOiAnY29tcGFueUlkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3JJZDoge1xuICAgICAgICBuYW1lOiAnY3JlYXRvcklkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgfSxcbiAgICAgIGNyZWF0ZWRBdDogeyBuYW1lOiAnY3JlYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvbkluc2VydDogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIHVwZGF0ZWRBdDogeyBuYW1lOiAndXBkYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvblVwZGF0ZTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIG5hbWU6IHsgbmFtZTogJ25hbWUnLCB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGVtYWlsOiB7IG5hbWU6ICdlbWFpbCcsIHR5cGU6IFN0cmluZyB9LFxuICAgICAgcGFzc3dvcmQ6IHsgbmFtZTogJ3Bhc3N3b3JkJywgdHlwZTogU3RyaW5nIH0sXG4gICAgfSxcbiAgICByZWxhdGlvbnM6IHtcbiAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY29tcGFueUlkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9yOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NyZWF0b3JJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgdXNlcnM6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICcxbScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIG1hcHBlZEJ5OiAnY3JlYXRvcicsXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnaWQnLCBmb3JlaWduOiAnY3JlYXRvcklkJyB9XSxcbiAgICAgIH0sXG4gICAgICBwcm9maWxlOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnMTEnLFxuICAgICAgICBjYXNjYWRlOiB0cnVlLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICBtYXBwZWRCeTogJ2NyZWF0b3InLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2lkJywgZm9yZWlnbjogJ2NyZWF0b3JJZCcgfV0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnUHJvZmlsZScsICgpID0+IHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEoUHJvZmlsZSk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxQcm9maWxlPiA9IHtcbiAgICBlbnRpdHk6IFByb2ZpbGUsXG4gICAgbmFtZTogJ3VzZXJfcHJvZmlsZScsXG4gICAgaWQ6ICdpZCcsXG4gICAgcHJvY2Vzc2VkOiB0cnVlLFxuICAgIGZpZWxkczoge1xuICAgICAgaWQ6IHsgbmFtZTogJ3BrJywgdHlwZTogTnVtYmVyLCBpc0lkOiB0cnVlIH0sXG4gICAgICBjb21wYW55SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnlJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9ySWQ6IHtcbiAgICAgICAgbmFtZTogJ2NyZWF0b3JJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVkQXQ6IHsgbmFtZTogJ2NyZWF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25JbnNlcnQ6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB1cGRhdGVkQXQ6IHsgbmFtZTogJ3VwZGF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25VcGRhdGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICBwaWN0dXJlOiB7IG5hbWU6ICdpbWFnZScsIHR5cGU6IFN0cmluZyB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBjb21wYW55OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NvbXBhbnlJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcjoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJzExJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjcmVhdG9ySWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuICBleHBlY3QobWV0YSkudG9FcXVhbChleHBlY3RlZE1ldGEpO1xufSk7XG5cbml0KCdJdGVtJywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShJdGVtKTtcbiAgY29uc3QgZXhwZWN0ZWRNZXRhOiBFbnRpdHlNZXRhPEl0ZW0+ID0ge1xuICAgIGVudGl0eTogSXRlbSxcbiAgICBuYW1lOiAnSXRlbScsXG4gICAgaWQ6ICdpZCcsXG4gICAgcHJvY2Vzc2VkOiB0cnVlLFxuICAgIGZpZWxkczoge1xuICAgICAgaWQ6IHsgbmFtZTogJ2lkJywgdHlwZTogTnVtYmVyLCBpc0lkOiB0cnVlIH0sXG4gICAgICBjb21wYW55SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnlJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9ySWQ6IHtcbiAgICAgICAgbmFtZTogJ2NyZWF0b3JJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVkQXQ6IHsgbmFtZTogJ2NyZWF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25JbnNlcnQ6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB1cGRhdGVkQXQ6IHsgbmFtZTogJ3VwZGF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25VcGRhdGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICBuYW1lOiB7IG5hbWU6ICduYW1lJywgdHlwZTogU3RyaW5nIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyBuYW1lOiAnZGVzY3JpcHRpb24nLCB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGNvZGU6IHsgbmFtZTogJ2NvZGUnLCB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGJ1eUxlZGdlckFjY291bnRJZDoge1xuICAgICAgICBuYW1lOiAnYnV5TGVkZ2VyQWNjb3VudElkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgfSxcbiAgICAgIHNhbGVMZWRnZXJBY2NvdW50SWQ6IHtcbiAgICAgICAgbmFtZTogJ3NhbGVMZWRnZXJBY2NvdW50SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgdGF4SWQ6IHtcbiAgICAgICAgbmFtZTogJ3RheElkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgfSxcbiAgICAgIG1lYXN1cmVVbml0SWQ6IHtcbiAgICAgICAgbmFtZTogJ21lYXN1cmVVbml0SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgc2FsZVByaWNlOiB7IG5hbWU6ICdzYWxlUHJpY2UnLCB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGludmVudG9yeWFibGU6IHsgbmFtZTogJ2ludmVudG9yeWFibGUnLCB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB0YWdzQ291bnQ6IHtcbiAgICAgICAgbmFtZTogJ3RhZ3NDb3VudCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgdmlydHVhbDogZXhwZWN0LmFueShSYXcpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJlbGF0aW9uczoge1xuICAgICAgY29tcGFueToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjb21wYW55SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3I6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY3JlYXRvcklkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBidXlMZWRnZXJBY2NvdW50OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2J1eUxlZGdlckFjY291bnRJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgc2FsZUxlZGdlckFjY291bnQ6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnc2FsZUxlZGdlckFjY291bnRJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgdGF4OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ3RheElkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBtZWFzdXJlVW5pdDoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdtZWFzdXJlVW5pdElkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICB0YWdzOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbW0nLFxuICAgICAgICBjYXNjYWRlOiB0cnVlLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB0aHJvdWdoOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW1xuICAgICAgICAgIHsgbG9jYWw6ICdpdGVtSWQnLCBmb3JlaWduOiAnaWQnIH0sXG4gICAgICAgICAgeyBsb2NhbDogJ3RhZ0lkJywgZm9yZWlnbjogJ2lkJyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuICBleHBlY3QobWV0YSkudG9FcXVhbChleHBlY3RlZE1ldGEpO1xufSk7XG5cbml0KCdUYWcnLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKFRhZyk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxUYWc+ID0ge1xuICAgIGVudGl0eTogVGFnLFxuICAgIGlkOiAnaWQnLFxuICAgIG5hbWU6ICdUYWcnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7XG4gICAgICAgIGlzSWQ6IHRydWUsXG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIH0sXG4gICAgICBjb21wYW55SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnlJZCcsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIH0sXG4gICAgICBjcmVhdGVkQXQ6IHtcbiAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgIG9uSW5zZXJ0OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICAgIG5hbWU6IHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB9LFxuICAgICAgaXRlbXNDb3VudDoge1xuICAgICAgICBuYW1lOiAnaXRlbXNDb3VudCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgdmlydHVhbDoge1xuICAgICAgICAgIGFsaWFzOiB1bmRlZmluZWQsXG4gICAgICAgICAgdmFsdWU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVwZGF0ZWRBdDoge1xuICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcbiAgICAgICAgb25VcGRhdGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgICAgY3JlYXRvcklkOiB7XG4gICAgICAgIG5hbWU6ICdjcmVhdG9ySWQnLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBjb21wYW55OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NvbXBhbnlJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgaXRlbXM6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtbScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIG1hcHBlZEJ5OiAndGFncycsXG4gICAgICAgIHRocm91Z2g6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbXG4gICAgICAgICAgeyBsb2NhbDogJ3RhZ0lkJywgZm9yZWlnbjogJ2lkJyB9LFxuICAgICAgICAgIHsgbG9jYWw6ICdpdGVtSWQnLCBmb3JlaWduOiAnaWQnIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcjoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjcmVhdG9ySWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuICBleHBlY3QobWV0YSkudG9FcXVhbChleHBlY3RlZE1ldGEpO1xufSk7XG5cbml0KCdJdGVtVGFnJywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShJdGVtVGFnKTtcbiAgY29uc3QgZXhwZWN0ZWRNZXRhOiBFbnRpdHlNZXRhPEl0ZW1UYWc+ID0ge1xuICAgIGVudGl0eTogSXRlbVRhZyxcbiAgICBuYW1lOiAnSXRlbVRhZycsXG4gICAgaWQ6ICdpZCcsXG4gICAgcHJvY2Vzc2VkOiB0cnVlLFxuICAgIGZpZWxkczoge1xuICAgICAgaWQ6IHsgbmFtZTogJ2lkJywgdHlwZTogTnVtYmVyLCBpc0lkOiB0cnVlIH0sXG4gICAgICBpdGVtSWQ6IHtcbiAgICAgICAgbmFtZTogJ2l0ZW1JZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgIH0sXG4gICAgICB0YWdJZDoge1xuICAgICAgICBuYW1lOiAndGFnSWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBpdGVtOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2l0ZW1JZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgdGFnOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ3RhZ0lkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnVGF4Q2F0ZWdvcnknLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKFRheENhdGVnb3J5KTtcbiAgY29uc3QgZXhwZWN0ZWRNZXRhOiBFbnRpdHlNZXRhPFRheENhdGVnb3J5PiA9IHtcbiAgICBlbnRpdHk6IFRheENhdGVnb3J5LFxuICAgIG5hbWU6ICdUYXhDYXRlZ29yeScsXG4gICAgaWQ6ICdwaycsXG4gICAgcHJvY2Vzc2VkOiB0cnVlLFxuICAgIGZpZWxkczoge1xuICAgICAgcGs6IHsgbmFtZTogJ3BrJywgdHlwZTogU3RyaW5nLCBpc0lkOiB0cnVlLCBvbkluc2VydDogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIGNvbXBhbnlJZDoge1xuICAgICAgICBuYW1lOiAnY29tcGFueUlkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3JJZDoge1xuICAgICAgICBuYW1lOiAnY3JlYXRvcklkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgfSxcbiAgICAgIGNyZWF0ZWRBdDogeyBuYW1lOiAnY3JlYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvbkluc2VydDogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIHVwZGF0ZWRBdDogeyBuYW1lOiAndXBkYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvblVwZGF0ZTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIG5hbWU6IHsgbmFtZTogJ25hbWUnLCB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIHR5cGU6IFN0cmluZyB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBjb21wYW55OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NvbXBhbnlJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcjoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjcmVhdG9ySWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuICBleHBlY3QobWV0YSkudG9FcXVhbChleHBlY3RlZE1ldGEpO1xufSk7XG5cbml0KCdUYXgnLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKFRheCk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxUYXg+ID0ge1xuICAgIGVudGl0eTogVGF4LFxuICAgIG5hbWU6ICdUYXgnLFxuICAgIGlkOiAnaWQnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7IG5hbWU6ICdpZCcsIHR5cGU6IE51bWJlciwgaXNJZDogdHJ1ZSB9LFxuICAgICAgY2F0ZWdvcnlJZDoge1xuICAgICAgICBuYW1lOiAnY2F0ZWdvcnlJZCcsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIH0sXG4gICAgICBwZXJjZW50YWdlOiB7XG4gICAgICAgIG5hbWU6ICdwZXJjZW50YWdlJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgfSxcbiAgICAgIGNvbXBhbnlJZDoge1xuICAgICAgICBuYW1lOiAnY29tcGFueUlkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3JJZDoge1xuICAgICAgICBuYW1lOiAnY3JlYXRvcklkJyxcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgfSxcbiAgICAgIGNyZWF0ZWRBdDogeyBuYW1lOiAnY3JlYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvbkluc2VydDogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIHVwZGF0ZWRBdDogeyBuYW1lOiAndXBkYXRlZEF0JywgdHlwZTogTnVtYmVyLCBvblVwZGF0ZTogZXhwZWN0LmFueShGdW5jdGlvbikgfSxcbiAgICAgIG5hbWU6IHsgbmFtZTogJ25hbWUnLCB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIHR5cGU6IFN0cmluZyB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBjYXRlZ29yeToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxvY2FsOiAnY2F0ZWdvcnlJZCcsXG4gICAgICAgICAgICBmb3JlaWduOiAncGsnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgY29tcGFueToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjb21wYW55SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNyZWF0b3I6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY3JlYXRvcklkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnSXRlbUFkanVzdG1lbnQnLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKEl0ZW1BZGp1c3RtZW50KTtcbiAgY29uc3QgZXhwZWN0ZWRNZXRhOiBFbnRpdHlNZXRhPEl0ZW1BZGp1c3RtZW50PiA9IHtcbiAgICBlbnRpdHk6IEl0ZW1BZGp1c3RtZW50LFxuICAgIG5hbWU6ICdJdGVtQWRqdXN0bWVudCcsXG4gICAgaWQ6ICdpZCcsXG4gICAgcHJvY2Vzc2VkOiB0cnVlLFxuICAgIGZpZWxkczoge1xuICAgICAgaWQ6IHsgbmFtZTogJ2lkJywgdHlwZTogTnVtYmVyLCBpc0lkOiB0cnVlIH0sXG4gICAgICBidXlQcmljZToge1xuICAgICAgICBuYW1lOiAnYnV5UHJpY2UnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgICAgaW52ZW50b3J5QWRqdXN0bWVudElkOiB7XG4gICAgICAgIG5hbWU6ICdpbnZlbnRvcnlBZGp1c3RtZW50SWQnLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgICAgaXRlbUlkOiB7XG4gICAgICAgIG5hbWU6ICdpdGVtSWQnLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgICAgbnVtYmVyOiB7XG4gICAgICAgIG5hbWU6ICdudW1iZXInLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgICAgc3RvcmVob3VzZUlkOiB7XG4gICAgICAgIG5hbWU6ICdzdG9yZWhvdXNlSWQnLFxuICAgICAgICByZWZlcmVuY2U6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICB9LFxuICAgICAgY29tcGFueUlkOiB7XG4gICAgICAgIG5hbWU6ICdjb21wYW55SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgY3JlYXRvcklkOiB7XG4gICAgICAgIG5hbWU6ICdjcmVhdG9ySWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgY3JlYXRlZEF0OiB7IG5hbWU6ICdjcmVhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uSW5zZXJ0OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgdXBkYXRlZEF0OiB7IG5hbWU6ICd1cGRhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uVXBkYXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBzdG9yZWhvdXNlOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ3N0b3JlaG91c2VJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgaXRlbToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdpdGVtSWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY29tcGFueUlkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9yOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NyZWF0b3JJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgaW52ZW50b3J5QWRqdXN0bWVudDoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxvY2FsOiAnaW52ZW50b3J5QWRqdXN0bWVudElkJyxcbiAgICAgICAgICAgIGZvcmVpZ246ICdpZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgZXhwZWN0KG1ldGEpLnRvRXF1YWwoZXhwZWN0ZWRNZXRhKTtcbn0pO1xuXG5pdCgnSW52ZW50b3J5QWRqdXN0bWVudCcsICgpID0+IHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEoSW52ZW50b3J5QWRqdXN0bWVudCk7XG4gIGNvbnN0IGV4cGVjdGVkTWV0YTogRW50aXR5TWV0YTxJbnZlbnRvcnlBZGp1c3RtZW50PiA9IHtcbiAgICBlbnRpdHk6IEludmVudG9yeUFkanVzdG1lbnQsXG4gICAgbmFtZTogJ0ludmVudG9yeUFkanVzdG1lbnQnLFxuICAgIGlkOiAnaWQnLFxuICAgIHByb2Nlc3NlZDogdHJ1ZSxcbiAgICBmaWVsZHM6IHtcbiAgICAgIGlkOiB7IG5hbWU6ICdpZCcsIHR5cGU6IE51bWJlciwgaXNJZDogdHJ1ZSB9LFxuICAgICAgY29tcGFueUlkOiB7XG4gICAgICAgIG5hbWU6ICdjb21wYW55SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgY3JlYXRvcklkOiB7XG4gICAgICAgIG5hbWU6ICdjcmVhdG9ySWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgY3JlYXRlZEF0OiB7IG5hbWU6ICdjcmVhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uSW5zZXJ0OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgdXBkYXRlZEF0OiB7IG5hbWU6ICd1cGRhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uVXBkYXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgdHlwZTogU3RyaW5nIH0sXG4gICAgICBkYXRlOiB7IG5hbWU6ICdkYXRlJywgdHlwZTogRGF0ZSB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBpdGVtQWRqdXN0bWVudHM6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICcxbScsXG4gICAgICAgIGNhc2NhZGU6IHRydWUsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIG1hcHBlZEJ5OiAnaW52ZW50b3J5QWRqdXN0bWVudCcsXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnaWQnLCBmb3JlaWduOiAnaW52ZW50b3J5QWRqdXN0bWVudElkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjb21wYW55OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NvbXBhbnlJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcjoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjcmVhdG9ySWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuICBleHBlY3QobWV0YSkudG9FcXVhbChleHBlY3RlZE1ldGEpO1xufSk7XG5cbml0KCdNZWFzdXJlVW5pdENhdGVnb3J5JywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShNZWFzdXJlVW5pdENhdGVnb3J5KTtcbiAgY29uc3QgZXhwZWN0ZWRNZXRhOiBFbnRpdHlNZXRhPE1lYXN1cmVVbml0Q2F0ZWdvcnk+ID0ge1xuICAgIGVudGl0eTogTWVhc3VyZVVuaXRDYXRlZ29yeSxcbiAgICBuYW1lOiAnTWVhc3VyZVVuaXRDYXRlZ29yeScsXG4gICAgaWQ6ICdpZCcsXG4gICAgc29mdERlbGV0ZTogJ2RlbGV0ZWRBdCcsXG4gICAgcHJvY2Vzc2VkOiB0cnVlLFxuICAgIGZpZWxkczoge1xuICAgICAgaWQ6IHsgbmFtZTogJ2lkJywgdHlwZTogTnVtYmVyLCBpc0lkOiB0cnVlIH0sXG4gICAgICBuYW1lOiB7IG5hbWU6ICduYW1lJywgdHlwZTogU3RyaW5nIH0sXG4gICAgICBjb21wYW55SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NvbXBhbnlJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9ySWQ6IHtcbiAgICAgICAgbmFtZTogJ2NyZWF0b3JJZCcsXG4gICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgcmVmZXJlbmNlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgIH0sXG4gICAgICBjcmVhdGVkQXQ6IHsgbmFtZTogJ2NyZWF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25JbnNlcnQ6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICB1cGRhdGVkQXQ6IHsgbmFtZTogJ3VwZGF0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25VcGRhdGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgICBkZWxldGVkQXQ6IHsgbmFtZTogJ2RlbGV0ZWRBdCcsIHR5cGU6IE51bWJlciwgb25EZWxldGU6IGV4cGVjdC5hbnkoRnVuY3Rpb24pIH0sXG4gICAgfSxcbiAgICByZWxhdGlvbnM6IHtcbiAgICAgIG1lYXN1cmVVbml0czoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJzFtJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgbWFwcGVkQnk6ICdjYXRlZ29yeUlkJyxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdpZCcsIGZvcmVpZ246ICdjYXRlZ29yeUlkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjb21wYW55OiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NvbXBhbnlJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgICAgY3JlYXRvcjoge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgZW50aXR5OiBleHBlY3QuYW55KEZ1bmN0aW9uKSxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6ICdjcmVhdG9ySWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuICBleHBlY3QobWV0YSkudG9FcXVhbChleHBlY3RlZE1ldGEpO1xufSk7XG5cbml0KCdNZWFzdXJlVW5pdCcsICgpID0+IHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEoTWVhc3VyZVVuaXQpO1xuICBjb25zdCBleHBlY3RlZE1ldGE6IEVudGl0eU1ldGE8TWVhc3VyZVVuaXQ+ID0ge1xuICAgIGVudGl0eTogTWVhc3VyZVVuaXQsXG4gICAgbmFtZTogJ01lYXN1cmVVbml0JyxcbiAgICBpZDogJ2lkJyxcbiAgICBzb2Z0RGVsZXRlOiAnZGVsZXRlZEF0JyxcbiAgICBwcm9jZXNzZWQ6IHRydWUsXG4gICAgZmllbGRzOiB7XG4gICAgICBpZDogeyBuYW1lOiAnaWQnLCB0eXBlOiBOdW1iZXIsIGlzSWQ6IHRydWUgfSxcbiAgICAgIG5hbWU6IHsgbmFtZTogJ25hbWUnLCB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGNhdGVnb3J5SWQ6IHtcbiAgICAgICAgbmFtZTogJ2NhdGVnb3J5SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgY29tcGFueUlkOiB7XG4gICAgICAgIG5hbWU6ICdjb21wYW55SWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgY3JlYXRvcklkOiB7XG4gICAgICAgIG5hbWU6ICdjcmVhdG9ySWQnLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHJlZmVyZW5jZTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICB9LFxuICAgICAgY3JlYXRlZEF0OiB7IG5hbWU6ICdjcmVhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uSW5zZXJ0OiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgdXBkYXRlZEF0OiB7IG5hbWU6ICd1cGRhdGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uVXBkYXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgICAgZGVsZXRlZEF0OiB7IG5hbWU6ICdkZWxldGVkQXQnLCB0eXBlOiBOdW1iZXIsIG9uRGVsZXRlOiBleHBlY3QuYW55KEZ1bmN0aW9uKSB9LFxuICAgIH0sXG4gICAgcmVsYXRpb25zOiB7XG4gICAgICBjYXRlZ29yeToge1xuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgY2FzY2FkZTogJ3BlcnNpc3QnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NhdGVnb3J5SWQnLCBmb3JlaWduOiAnaWQnIH1dLFxuICAgICAgfSxcbiAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIGVudGl0eTogZXhwZWN0LmFueShGdW5jdGlvbiksXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiAnY29tcGFueUlkJywgZm9yZWlnbjogJ2lkJyB9XSxcbiAgICAgIH0sXG4gICAgICBjcmVhdG9yOiB7XG4gICAgICAgIGNhcmRpbmFsaXR5OiAnbTEnLFxuICAgICAgICBlbnRpdHk6IGV4cGVjdC5hbnkoRnVuY3Rpb24pLFxuICAgICAgICByZWZlcmVuY2VzOiBbeyBsb2NhbDogJ2NyZWF0b3JJZCcsIGZvcmVpZ246ICdpZCcgfV0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG4gIGV4cGVjdChtZXRhKS50b0VxdWFsKGV4cGVjdGVkTWV0YSk7XG59KTtcblxuaXQoJ25vdCBhbiBARW50aXR5JywgKCkgPT4ge1xuICBjbGFzcyBTb21lQ2xhc3Mge31cblxuICBleHBlY3QoKCkgPT4ge1xuICAgIGdldE1ldGEoU29tZUNsYXNzKTtcbiAgfSkudG9UaHJvdyhgJ1NvbWVDbGFzcycgaXMgbm90IGFuIGVudGl0eWApO1xuXG4gIGNsYXNzIEFub3RoZXJDbGFzcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgfVxuXG4gIGV4cGVjdCgoKSA9PiBnZXRNZXRhKEFub3RoZXJDbGFzcykpLnRvVGhyb3coYCdBbm90aGVyQ2xhc3MnIGlzIG5vdCBhbiBlbnRpdHlgKTtcbn0pO1xuXG5pdCgnZ2V0RW50aXRpZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGVudGl0aWVzID0gZ2V0RW50aXRpZXMoKTtcbiAgZXhwZWN0KGVudGl0aWVzLnNvcnQoKSkudG9FcXVhbChcbiAgICBbXG4gICAgICBDb21wYW55LFxuICAgICAgUHJvZmlsZSxcbiAgICAgIFVzZXIsXG4gICAgICBMZWRnZXJBY2NvdW50LFxuICAgICAgVGF4Q2F0ZWdvcnksXG4gICAgICBUYXgsXG4gICAgICBNZWFzdXJlVW5pdENhdGVnb3J5LFxuICAgICAgTWVhc3VyZVVuaXQsXG4gICAgICBTdG9yZWhvdXNlLFxuICAgICAgSXRlbSxcbiAgICAgIFRhZyxcbiAgICAgIEl0ZW1UYWcsXG4gICAgICBJdGVtQWRqdXN0bWVudCxcbiAgICAgIEludmVudG9yeUFkanVzdG1lbnQsXG4gICAgXS5zb3J0KClcbiAgKTtcbn0pO1xuXG5pdCgnbm8gQElkJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4ge1xuICAgIEBFbnRpdHkoKVxuICAgIGNsYXNzIFNvbWVFbnRpdHkge1xuICAgICAgQEZpZWxkKClcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfVxuICB9KS50b1Rocm93KGAnU29tZUVudGl0eScgbXVzdCBoYXZlIG9uZSBmaWVsZCBkZWNvcmF0ZWQgd2l0aCBASWRgKTtcbn0pO1xuXG5pdCgnb25lIEBJZCcsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+IHtcbiAgICBjbGFzcyBTb21lRW50aXR5IHtcbiAgICAgIEBJZCgpXG4gICAgICBpZE9uZTogc3RyaW5nO1xuICAgICAgQElkKClcbiAgICAgIGlkVHdvOiBzdHJpbmc7XG4gICAgfVxuICB9KS50b1Rocm93KGAnU29tZUVudGl0eScgbXVzdCBoYXZlIGEgc2luZ2xlIGZpZWxkIGRlY29yYXRlZCB3aXRoIEBJZGApO1xufSk7XG5cbml0KCdubyBmaWVsZHMnLCAoKSA9PiB7XG4gIGV4cGVjdCgoKSA9PiB7XG4gICAgQEVudGl0eSgpXG4gICAgY2xhc3MgU29tZUVudGl0eSB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH1cbiAgfSkudG9UaHJvdyhgJ1NvbWVFbnRpdHknIG11c3QgaGF2ZSBmaWVsZHNgKTtcbn0pO1xuXG5pdCgnc29mdERlbGV0ZSBvbkRlbGV0ZScsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+IHtcbiAgICBARW50aXR5KHsgc29mdERlbGV0ZTogdHJ1ZSB9KVxuICAgIGNsYXNzIFNvbWVFbnRpdHkge1xuICAgICAgQEZpZWxkKClcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfVxuICB9KS50b1Rocm93KGAnU29tZUVudGl0eScgbXVzdCBoYXZlIG9uZSBmaWVsZCB3aXRoICdvbkRlbGV0ZScgdG8gZW5hYmxlICdzb2Z0RGVsZXRlJ2ApO1xufSk7XG5cbml0KCdtYXggMSBvbkRlbGV0ZScsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+IHtcbiAgICBARW50aXR5KHsgc29mdERlbGV0ZTogdHJ1ZSB9KVxuICAgIGNsYXNzIFNvbWVFbnRpdHkge1xuICAgICAgQEZpZWxkKHsgb25EZWxldGU6IERhdGUubm93IH0pXG4gICAgICBkZWxldGVkQXQ6IG51bWJlcjtcbiAgICAgIEBGaWVsZCh7IG9uRGVsZXRlOiAoKSA9PiB0cnVlIH0pXG4gICAgICBkZWxldGVkOiBib29sZWFuO1xuICAgIH1cbiAgfSkudG9UaHJvdyhgJ1NvbWVFbnRpdHknIG11c3QgaGF2ZSBvbmUgZmllbGQgd2l0aCAnb25EZWxldGUnIGFzIG1heGltdW1gKTtcbn0pO1xuIl19
package/options.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import { Querier, QuerierPool, Repository, Type, UqlOptions } from '@uql/core/type';
2
- export declare function setOptions(opts: UqlOptions): void;
3
- export declare function getOptions(): UqlOptions;
4
- export declare function getQuerierPool(): QuerierPool;
1
+ import { Querier, QuerierPool, Repository, Type } from '@uql/core/type';
2
+ export declare function setDefaultQuerierPool<T extends QuerierPool = QuerierPool>(pool: T): void;
3
+ export declare function getDefaultQuerierPool(): QuerierPool;
5
4
  export declare function getQuerier(): Promise<Querier>;
6
5
  export declare function getRepository<E>(entity: Type<E>, querier: Querier): Repository<E>;
package/options.js CHANGED
@@ -1,31 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRepository = exports.getQuerier = exports.getQuerierPool = exports.getOptions = exports.setOptions = void 0;
3
+ exports.getRepository = exports.getQuerier = exports.getDefaultQuerierPool = exports.setDefaultQuerierPool = void 0;
4
4
  const repository_1 = require("@uql/core/repository");
5
- let options;
6
- const defaultOptions = {};
7
- function setOptions(opts) {
8
- options = { ...defaultOptions, ...opts };
5
+ let defaultPool;
6
+ function setDefaultQuerierPool(pool) {
7
+ defaultPool = pool;
9
8
  }
10
- exports.setOptions = setOptions;
11
- function getOptions() {
12
- return options ?? { ...defaultOptions };
13
- }
14
- exports.getOptions = getOptions;
15
- function getQuerierPool() {
16
- const options = getOptions();
17
- if (!options.querierPool) {
18
- throw TypeError(`'querierPool' has to be passed via 'setOptions'`);
9
+ exports.setDefaultQuerierPool = setDefaultQuerierPool;
10
+ function getDefaultQuerierPool() {
11
+ if (!defaultPool) {
12
+ throw new TypeError('A default querier-pool has to be set first');
19
13
  }
20
- return options.querierPool;
14
+ return defaultPool;
21
15
  }
22
- exports.getQuerierPool = getQuerierPool;
16
+ exports.getDefaultQuerierPool = getDefaultQuerierPool;
23
17
  function getQuerier() {
24
- return getQuerierPool().getQuerier();
18
+ return defaultPool.getQuerier();
25
19
  }
26
20
  exports.getQuerier = getQuerier;
27
21
  function getRepository(entity, querier) {
28
22
  return new repository_1.GenericRepository(entity, querier);
29
23
  }
30
24
  exports.getRepository = getRepository;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF5RDtBQUd6RCxJQUFJLE9BQW1CLENBQUM7QUFDeEIsTUFBTSxjQUFjLEdBQUcsRUFBeUIsQ0FBQztBQUVqRCxTQUFnQixVQUFVLENBQUMsSUFBZ0I7SUFDekMsT0FBTyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sT0FBTyxJQUFJLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixjQUFjO0lBQzVCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1FBQ3hCLE1BQU0sU0FBUyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7S0FDcEU7SUFDRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7QUFDN0IsQ0FBQztBQU5ELHdDQU1DO0FBRUQsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLGNBQWMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxNQUFlLEVBQUUsT0FBZ0I7SUFDaEUsT0FBTyxJQUFJLDhCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsc0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJ0B1cWwvY29yZS9yZXBvc2l0b3J5JztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBSZXBvc2l0b3J5LCBUeXBlLCBVcWxPcHRpb25zIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuXG5sZXQgb3B0aW9uczogVXFsT3B0aW9ucztcbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge30gYXMgY29uc3QgYXMgVXFsT3B0aW9ucztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldE9wdGlvbnMob3B0czogVXFsT3B0aW9ucyk6IHZvaWQge1xuICBvcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0cyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3B0aW9ucygpOiBVcWxPcHRpb25zIHtcbiAgcmV0dXJuIG9wdGlvbnMgPz8geyAuLi5kZWZhdWx0T3B0aW9ucyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVlcmllclBvb2woKTogUXVlcmllclBvb2wge1xuICBjb25zdCBvcHRpb25zID0gZ2V0T3B0aW9ucygpO1xuICBpZiAoIW9wdGlvbnMucXVlcmllclBvb2wpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCdxdWVyaWVyUG9vbCcgaGFzIHRvIGJlIHBhc3NlZCB2aWEgJ3NldE9wdGlvbnMnYCk7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnMucXVlcmllclBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZ2V0UXVlcmllclBvb2woKS5nZXRRdWVyaWVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvc2l0b3J5PEU+KGVudGl0eTogVHlwZTxFPiwgcXVlcmllcjogUXVlcmllcik6IFJlcG9zaXRvcnk8RT4ge1xuICByZXR1cm4gbmV3IEdlbmVyaWNSZXBvc2l0b3J5KGVudGl0eSwgcXVlcmllcik7XG59XG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF5RDtBQUd6RCxJQUFJLFdBQXdCLENBQUM7QUFFN0IsU0FBZ0IscUJBQXFCLENBQXNDLElBQU87SUFDaEYsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRkQsc0RBRUM7QUFFRCxTQUFnQixxQkFBcUI7SUFDbkMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixNQUFNLElBQUksU0FBUyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7S0FDbkU7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBTEQsc0RBS0M7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxNQUFlLEVBQUUsT0FBZ0I7SUFDaEUsT0FBTyxJQUFJLDhCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsc0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJ0B1cWwvY29yZS9yZXBvc2l0b3J5JztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBSZXBvc2l0b3J5LCBUeXBlIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuXG5sZXQgZGVmYXVsdFBvb2w6IFF1ZXJpZXJQb29sO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0RGVmYXVsdFF1ZXJpZXJQb29sPFQgZXh0ZW5kcyBRdWVyaWVyUG9vbCA9IFF1ZXJpZXJQb29sPihwb29sOiBUKTogdm9pZCB7XG4gIGRlZmF1bHRQb29sID0gcG9vbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRRdWVyaWVyUG9vbCgpOiBRdWVyaWVyUG9vbCB7XG4gIGlmICghZGVmYXVsdFBvb2wpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIGRlZmF1bHQgcXVlcmllci1wb29sIGhhcyB0byBiZSBzZXQgZmlyc3QnKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZGVmYXVsdFBvb2wuZ2V0UXVlcmllcigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwb3NpdG9yeTxFPihlbnRpdHk6IFR5cGU8RT4sIHF1ZXJpZXI6IFF1ZXJpZXIpOiBSZXBvc2l0b3J5PEU+IHtcbiAgcmV0dXJuIG5ldyBHZW5lcmljUmVwb3NpdG9yeShlbnRpdHksIHF1ZXJpZXIpO1xufVxuIl19