kwikid-forms 0.7.1 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/bundles/kwikid-forms.umd.js +407 -220
  2. package/bundles/kwikid-forms.umd.js.map +1 -1
  3. package/esm2015/lib/builder/builder-form-editor/builder.form-editor.constants.js +18 -7
  4. package/esm2015/lib/builder/builder.component.js +1 -1
  5. package/esm2015/lib/renderer/config-converter/config-converter.constants.js +36 -3
  6. package/esm2015/lib/renderer/config-converter/config-converter.js +41 -10
  7. package/esm2015/lib/renderer/form-view/definitions/form-view.actions.definition.js +1 -1
  8. package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +3 -1
  9. package/esm2015/lib/renderer/form-view/form-view.component.js +75 -36
  10. package/esm2015/lib/renderer/form-view/form-view.module.js +11 -5
  11. package/esm2015/lib/renderer/form-view/helpers/form-view.form-data.helper.js +65 -0
  12. package/esm2015/lib/renderer/form-view/helpers/form-view.form-validations.helper.js +4 -2
  13. package/esm2015/lib/renderer/helpers/forms-storage.helper.js +1 -1
  14. package/fesm2015/kwikid-forms.js +248 -63
  15. package/fesm2015/kwikid-forms.js.map +1 -1
  16. package/lib/builder/builder-form-editor/builder.form-editor.constants.d.ts +102 -0
  17. package/lib/renderer/config-converter/config-converter.constants.d.ts +33 -0
  18. package/lib/renderer/form-view/definitions/form-view.actions.definition.d.ts +8 -2
  19. package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +41 -3
  20. package/lib/renderer/form-view/form-view.component.d.ts +1 -1
  21. package/lib/renderer/form-view/form-view.module.d.ts +1 -1
  22. package/lib/renderer/form-view/helpers/form-view.form-data.helper.d.ts +25 -0
  23. package/package.json +3 -3
@@ -149,6 +149,7 @@ export class Converter {
149
149
  const formatFieldTypeTextarea = (field) => {
150
150
  field = setFieldKeyHidden(field);
151
151
  field = setFieldAsFormElement(field, true);
152
+ field = updateFormFieldProperties(field);
152
153
  return field;
153
154
  };
154
155
  const formatFieldTypeCheckbox = (field) => {
@@ -323,6 +324,12 @@ export class Converter {
323
324
  }, field.properties));
324
325
  return field;
325
326
  };
327
+ const formatFieldTypeMasked = (field) => {
328
+ field = setFieldKeyHidden(field);
329
+ field = setFieldAsFormElement(field, true);
330
+ field = updateFormFieldProperties(field);
331
+ return field;
332
+ };
326
333
  const formatFieldTypeAadhaarNumber = (field) => {
327
334
  field = setFieldKeyHidden(field);
328
335
  field = setFieldAsFormElement(field, true);
@@ -360,6 +367,12 @@ export class Converter {
360
367
  field = updateFormFieldProperties(field);
361
368
  return field;
362
369
  };
370
+ const formatFieldTypeMic = (field) => {
371
+ field = setFieldKeyHidden(field);
372
+ field = setFieldAsFormElement(field, true);
373
+ field = updateFormFieldProperties(field);
374
+ return field;
375
+ };
363
376
  switch (field.type) {
364
377
  case EFieldType.HTML:
365
378
  field = formatFieldTypeHtml(field);
@@ -449,12 +462,18 @@ export class Converter {
449
462
  case EFieldType.RECORD:
450
463
  field = formatFieldTypeRecord(field);
451
464
  break;
465
+ case EFieldType.MIC:
466
+ field = formatFieldTypeMic(field);
467
+ break;
452
468
  case EFieldType.STAR_RATING:
453
469
  field = formatFieldTypeStarRating(field);
454
470
  break;
455
471
  case EFieldType.CURRENCY:
456
472
  field = formatFieldTypeCurrency(field);
457
473
  break;
474
+ case EFieldType.MASKED:
475
+ field = formatFieldTypeMasked(field);
476
+ break;
458
477
  default:
459
478
  break;
460
479
  }
@@ -497,15 +516,17 @@ export class Converter {
497
516
  ? Number(field.length)
498
517
  : checkObjectKeyExists(field, "maxLength")
499
518
  ? Number(field.maxLength)
500
- : null, pattern: checkObjectKeyExists(validators, "pattern")
501
- ? isNotEmptyValue(validators.pattern)
502
- ? validators.pattern
503
- : undefined
504
- : checkObjectKeyExists(field, "pattern")
505
- ? { key: "CUSTOM", pattern: String(field.pattern) }
506
- : checkObjectKeyExists(field, "regex")
507
- ? { key: "CUSTOM", pattern: String(field.regex) }
508
- : undefined }));
519
+ : null, pattern: field.type === EFieldType.MASKED
520
+ ? undefined
521
+ : checkObjectKeyExists(validators, "pattern")
522
+ ? isNotEmptyValue(validators.pattern)
523
+ ? validators.pattern
524
+ : undefined
525
+ : checkObjectKeyExists(field, "pattern")
526
+ ? { key: "CUSTOM", pattern: String(field.pattern) }
527
+ : checkObjectKeyExists(field, "regex")
528
+ ? { key: "CUSTOM", pattern: String(field.regex) }
529
+ : undefined }));
509
530
  delete field.min;
510
531
  delete field.max;
511
532
  delete field.required;
@@ -554,6 +575,16 @@ export class Converter {
554
575
  delete field.validators.maxLength;
555
576
  delete field.validators.pattern;
556
577
  break;
578
+ case EFieldType.MIC:
579
+ delete field.validators.min;
580
+ delete field.validators.max;
581
+ delete field.validators.minLength;
582
+ delete field.validators.maxLength;
583
+ delete field.validators.pattern;
584
+ break;
585
+ case EFieldType.MASKED:
586
+ delete field.validators.pattern;
587
+ break;
557
588
  default:
558
589
  break;
559
590
  }
@@ -790,4 +821,4 @@ __decorate([
790
821
  __decorate([
791
822
  logMethod
792
823
  ], Converter.prototype, "convertFormConfig", null);
793
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2NvbmZpZy1jb252ZXJ0ZXIvY29uZmlnLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxVQUFVLEVBRVgsTUFBTSxzREFBc0QsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLFdBQVcsRUFDWCxVQUFVLEVBQ1YsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsY0FBYyxFQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFPbkMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsWUFBNkIsVUFBNEIsRUFBRTtRQUE5QixZQUFPLEdBQVAsT0FBTyxDQUF1QjtJQUFHLENBQUM7SUFFdkQsZUFBZTs7UUFDckIsT0FBTyxXQUFXLENBQUMsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsbUNBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUdELDZCQUE2QixDQUFDLFVBQWUsRUFBRSxJQUFTO1FBQ3RELElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEVBQUU7WUFDakQsVUFBVSxHQUFHLG9CQUFvQixDQUMvQixVQUFVLEVBQ1Ys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QztDQUNGO0FBdjdCQztJQURDLFNBQVM7OERBV1Q7QUFHRDtJQURDLFNBQVM7K0RBZVQ7QUFHRDtJQURDLFNBQVM7MkRBd0ZUO0FBR0Q7SUFEQyxTQUFTO2tEQSt6QlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgY2hlY2tPYmplY3RQYXRoRXhpc3RzLFxuICBnZXRPYmplY3REZWVwQ29weSxcbiAgaXNFbXB0eVZhbHVlLFxuICBpc05vdEVtcHR5VmFsdWUsXG4gIGlzT2JqZWN0LFxuICBsb2dNZXRob2QsXG4gIG1lcmdlT2JqZWN0cyxcbiAgc2V0TWlzc2luZ0tleVZhbHVlLFxuICBzZXRWYWx1ZVRvT2JqZWN0UGF0aFxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7XG4gIEVGaWVsZFR5cGUsXG4gIFRGaWVsZFxufSBmcm9tIFwiLi4vZm9ybS12aWV3L2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgRklFTERfUFJPUEVSVElFUyB9IGZyb20gXCIuL2NvbmZpZy1jb252ZXJ0ZXIuY29uc3RhbnRzXCI7XG5pbXBvcnQge1xuICBnZXRGb3JtRmllbGRzLFxuICBnZXRMYW5ndWFnZSxcbiAgZ2V0TWF4RGF0ZSxcbiAgZ2V0TWluRGF0ZSxcbiAgc2V0RmllbGRBc0Zvcm1FbGVtZW50LFxuICBzZXRGaWVsZEtleURpc2FibGVkLFxuICBzZXRGaWVsZEtleUhpZGRlbixcbiAgc2V0RmllbGRLZXlWYWx1ZSxcbiAgc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUsXG4gIHVwZGF0ZUxhbmd1YWdlXG59IGZyb20gXCIuL2NvbmZpZy1jb252ZXJ0ZXIuaGVscGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVydGVyQ29udGV4dCB7XG4gIHJlZHV4RGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB1c2VyQ29uZmlnPzogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgQ29udmVydGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0ID0ge30pIHt9XG5cbiAgcHJpdmF0ZSByZXNvbHZlTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0TGFuZ3VhZ2UodGhpcy5jb250ZXh0LnJlZHV4RGF0YSA/PyB7fSwgdGhpcy5jb250ZXh0LnVzZXJDb25maWcpO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICB1cGRhdGVGb3JtQ29uZmlnTWlzY2VsbGFuZW91cyhmb3JtQ29uZmlnOiBhbnksIGFyZ3M6IGFueSk6IGFueSB7XG4gICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFyZ3MsIFwiZm9ybXNMaXN0TGVuZ3RoXCIpKSB7XG4gICAgICBmb3JtQ29uZmlnID0gc2V0VmFsdWVUb09iamVjdFBhdGgoXG4gICAgICAgIGZvcm1Db25maWcsXG4gICAgICAgIFwiZm9ybXNMaXN0TGVuZ3RoXCIsXG4gICAgICAgIGFyZ3MuZm9ybXNMaXN0TGVuZ3RoXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICB1cGRhdGVGb3JtQ29uZmlnRnJvbVVzZXJDb25maWcoZm9ybUNvbmZpZzogYW55LCB1c2VyQ29uZmlnOiBhbnkpOiBhbnkge1xuICAgIGlmIChpc05vdEVtcHR5VmFsdWUodXNlckNvbmZpZykpIHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyh1c2VyQ29uZmlnLCBcInRoZW1lXCIpKSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyh1c2VyQ29uZmlnLnRoZW1lLCBcImNsaWVudExvZ29cIikpIHtcbiAgICAgICAgICBzZXRWYWx1ZVRvT2JqZWN0UGF0aChcbiAgICAgICAgICAgIGZvcm1Db25maWcsXG4gICAgICAgICAgICBcInByb3BlcnRpZXMuaGVhZGVyLmxvZ28uc3JjXCIsXG4gICAgICAgICAgICB1c2VyQ29uZmlnLnRoZW1lLmNsaWVudExvZ29cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdQcm9wZXJ0aWVzKGZvcm1Db25maWc6IGFueSk6IGFueSB7XG4gICAgZm9ybUNvbmZpZyA9XG4gICAgICBmb3JtQ29uZmlnICYmIHR5cGVvZiBmb3JtQ29uZmlnID09PSBcIm9iamVjdFwiXG4gICAgICAgID8gZ2V0T2JqZWN0RGVlcENvcHkoZm9ybUNvbmZpZylcbiAgICAgICAgOiBmb3JtQ29uZmlnO1xuXG4gICAgY29uc3QgZm9ybVZpZXdQcm9wZXJ0aWVzID0ge1xuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIGxvZ286IHtcbiAgICAgICAgICBzcmM6IFwiXCIsXG4gICAgICAgICAgYWx0OiBcIkxvZ29cIixcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIHN0eWxlczogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBiYWNrQnV0dG9uOiB7XG4gICAgICAgICAgbW9kZTogXCJUQUJCRURcIixcbiAgICAgICAgICBieXBhc3NDb25maXJtYXRpb246IGZhbHNlLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgbGFiZWw6IGZvcm1Db25maWc/LnRpdGxlID8/IGZvcm1Db25maWc/LnByb3BzLnRpdGxlID8/IFwiRm9ybVwiLFxuICAgICAgICAgIHN0eWxlczogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBzdGVwczoge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgc3R5bGVzOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBtYWluOiB7XG4gICAgICAgIHN0eWxlczogXCJcIlxuICAgICAgfSxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICB2aWV3Rm9ybXNCdXR0b246IHtcbiAgICAgICAgICBieXBhc3NDb25maXJtYXRpb246IGZhbHNlLFxuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgbGFiZWw6IFwiVmlldyBGb3Jtc1wiLFxuICAgICAgICAgIHN0eWxlczogXCJ3aWR0aDogMTAwJVwiXG4gICAgICAgIH0sXG4gICAgICAgIHNhdmVCdXR0b246IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBcIlNhdmVcIixcbiAgICAgICAgICBzdHlsZXM6IFwid2lkdGg6IDEwMCVcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaXNVbnNhdmVkRGF0YUFsZXJ0RW5hYmxlZDogZmFsc2VcbiAgICB9O1xuXG4gICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm1Db25maWcsIFwicHJvcGVydGllc1wiKSkge1xuICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgIG1lcmdlT2JqZWN0cyhmb3JtVmlld1Byb3BlcnRpZXMsIGZvcm1Db25maWcucHJvcGVydGllcylcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IGZvcm1WaWV3UHJvcGVydGllcztcbiAgICB9XG5cbiAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMucmVzb2x2ZUxhbmd1YWdlKCk7XG5cbiAgICBpZiAoY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZvcm1Db25maWcsIFwicHJvcGVydGllcy5oZWFkZXIudGl0bGUubGFiZWxcIikpIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5oZWFkZXIudGl0bGUubGFiZWwgPSB1cGRhdGVMYW5ndWFnZShcbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmhlYWRlci50aXRsZS5sYWJlbCxcbiAgICAgICAgbGFuZ3VhZ2VcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RQYXRoRXhpc3RzKFxuICAgICAgICBmb3JtQ29uZmlnLFxuICAgICAgICBcInByb3BlcnRpZXMuZm9vdGVyLnZpZXdGb3Jtc0J1dHRvbi5sYWJlbFwiXG4gICAgICApXG4gICAgKSB7XG4gICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMuZm9vdGVyLnZpZXdGb3Jtc0J1dHRvbi5sYWJlbCA9IHVwZGF0ZUxhbmd1YWdlKFxuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMuZm9vdGVyLnZpZXdGb3Jtc0J1dHRvbi5sYWJlbCxcbiAgICAgICAgbGFuZ3VhZ2VcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZvcm1Db25maWcsIFwicHJvcGVydGllcy5mb290ZXIuc2F2ZUJ1dHRvbi5sYWJlbFwiKVxuICAgICkge1xuICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmZvb3Rlci5zYXZlQnV0dG9uLmxhYmVsID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5mb290ZXIuc2F2ZUJ1dHRvbi5sYWJlbCxcbiAgICAgICAgbGFuZ3VhZ2VcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGNvbnZlcnRGb3JtQ29uZmlnKGZvcm1Db25maWc6IGFueSk6IGFueSB7XG4gICAgY29uc3QgZm9ybWF0T25GaWVsZFR5cGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoRklFTERfUFJPUEVSVElFUywgZmllbGQudHlwZSkpIHtcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gbWVyZ2VPYmplY3RzKFxuICAgICAgICAgICAgZ2V0T2JqZWN0RGVlcENvcHkoRklFTERfUFJPUEVSVElFU1tmaWVsZC50eXBlXSksXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUh0bWwgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUaXRsZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUJ1dHRvbiA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgZmFsc2UpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUZXh0ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVQYXNzd29yZCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlRW1haWwgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVN0YXJSYXRpbmcgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUN1cnJlbmN5ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUZXh0YXJlYSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUNoZWNrYm94ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlTnVtYmVyID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJrZXlcIikpIHtcbiAgICAgICAgICBpZiAoZmllbGQua2V5ID09PSBcImFhZGhhYXJfbnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYWFkaGFhcl9udW1iZXJcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaWVsZC5rZXkgPT09IFwiY29udGFjdF9udW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJwaG9uZVwiKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gXCJwaG9uZVwiIHx8IGZpZWxkLnR5cGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUltYWdlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVEYXRlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICBtZXJnZU9iamVjdHMoXG4gICAgICAgICAgICBnZXRPYmplY3REZWVwQ29weShGSUVMRF9QUk9QRVJUSUVTW2ZpZWxkLnR5cGVdKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWF4OiBnZXRNYXhEYXRlKGZpZWxkKSxcbiAgICAgICAgICAgICAgbWluOiBnZXRNaW5EYXRlKGZpZWxkKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXNcbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRpbWUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVBob25lID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVSYWRpbyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKHg6IGFueSk6IGFueSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogeCwgZGlzYWJsZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogXCJcIiB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImxhYmVsXCIpICYmXG4gICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRpc2FibGVkXCIpICYmXG4gICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRlc2NyaXB0aW9uXCIpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRpc2FibGVkXCIpKSB7XG4gICAgICAgICAgICB4ID0geyAuLi54LCBkaXNhYmxlZDogZmFsc2UgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRlc2NyaXB0aW9uXCIpKSB7XG4gICAgICAgICAgICB4ID0geyAuLi54LCBkZXNjcmlwdGlvbjogZmFsc2UgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTbGlkZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVNlbGVjdCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQXBpID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJzaG93TG9hZGVyXCIpKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInNob3dMb2FkZXJcIiwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhcGlcIikpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZEFwaURlZmF1bHRzID0ge1xuICAgICAgICAgICAgdXJsOiBcIlwiLFxuICAgICAgICAgICAgcmVxdWVzdDoge30sXG4gICAgICAgICAgICByZXNwb25zZToge30sXG4gICAgICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBcIkNhbGwgQVBJXCIsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogXCJDYWxsIEFQSVwiLFxuICAgICAgICAgICAgICAgIHJldHJ5OiBcIlJldHJ5IEFQSVwiLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IFwiQVBJIFN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICBmYWlsZWQ6IFwiQVBJIEZhaWxlZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZpZWxkLmFwaSA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgICAgbWVyZ2VPYmplY3RzKGZpZWxkQXBpRGVmYXVsdHMsIGZpZWxkQXBpRGVmYXVsdHMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmFwaSwgXCJyZXF1ZXN0XCIpICYmXG4gICAgICAgICAgIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmFwaSwgXCJlbnRyeXBvaW50XCIpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGFwaUVudHJ5cG9pbnQgPSB7XG4gICAgICAgICAgICB0cmlnZ2VyczogW1wiT05fQVBJX0NBTExcIl0sXG4gICAgICAgICAgICBydWxlczogW10sXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAga2V5OiBcIkFQSV9DQUxMXCIsXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgZmllbGRLZXk6IGZpZWxkLmtleSxcbiAgICAgICAgICAgICAgICAgIGFwaUtleTogZmllbGQuYXBpLmVuZHBvaW50c1swXS5hcGlLZXlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZpZWxkLmVudHJ5cG9pbnQgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICAgIG1lcmdlT2JqZWN0cyhhcGlFbnRyeXBvaW50LCBmaWVsZC5hcGkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlTGl2ZUxvY2F0aW9uID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJzaG93TG9hZGVyXCIpKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInNob3dMb2FkZXJcIiwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhcGlcIikpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZEFwaURlZmF1bHRzID0ge1xuICAgICAgICAgICAgdXJsOiBcIlwiLFxuICAgICAgICAgICAgcmVxdWVzdDoge30sXG4gICAgICAgICAgICByZXNwb25zZToge30sXG4gICAgICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBcIkdldCBMaXZlIExvY2F0aW9uXCIsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogXCJHZXR0aW5nIExpdmUgTG9jYXRpb25cIixcbiAgICAgICAgICAgICAgICByZXRyeTogXCJHZXQgTGl2ZSBMb2NhdGlvblwiLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IFwiTGl2ZSBMb2NhdGlvblwiLFxuICAgICAgICAgICAgICAgIGZhaWxlZDogXCJMaXZlIExvY2F0aW9uXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgZmllbGQuYXBpID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgICBtZXJnZU9iamVjdHMoZmllbGRBcGlEZWZhdWx0cywgZmllbGRBcGlEZWZhdWx0cylcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZURhdGFIb2xkZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5RGlzYWJsZWQoZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZU90cCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgbWVyZ2VPYmplY3RzKFxuICAgICAgICAgICAgZ2V0T2JqZWN0RGVlcENvcHkoRklFTERfUFJPUEVSVElFU1tmaWVsZC50eXBlXSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1hc2s6IG5ldyBBcnJheShmaWVsZD8ucHJvcGVydGllcz8ub3RwTGVuZ3RoID8/IDQpXG4gICAgICAgICAgICAgICAgLmZpbGwoXCIjXCIpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllc1xuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQWFkaGFhck51bWJlciA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlRmlsZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQ2FwdHVyZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoe1xuICAgICAgICAgIC4uLmZpZWxkLnByb3BlcnRpZXMsXG4gICAgICAgICAgZmVhdHVyZXM6IHtcbiAgICAgICAgICAgIC4uLmZpZWxkLnByb3BlcnRpZXMuZmVhdHVyZXMsXG4gICAgICAgICAgICB3YXRlcm1hcms6IHtcbiAgICAgICAgICAgICAgaXNFbmFibGVkOlxuICAgICAgICAgICAgICAgIGZpZWxkPy5wcm9wZXJ0aWVzPy5jYW1lcmFDb25maWc/Lm90aGVycz8uaXNXYXRlcm1hcmsgPz9cbiAgICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLmZlYXR1cmVzLndhdGVybWFyay5pc1dhdGVybWFyayxcbiAgICAgICAgICAgICAgaXNXYXRlcm1hcmtGcm9tU2VydmVyOlxuICAgICAgICAgICAgICAgIGZpZWxkPy5wcm9wZXJ0aWVzPy5jYW1lcmFDb25maWc/Lm90aGVyc1xuICAgICAgICAgICAgICAgICAgPy5pc1dhdGVybWFya0Zyb21TZXJ2ZXIgPz9cbiAgICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLmZlYXR1cmVzLndhdGVybWFyay5pc1dhdGVybWFya0Zyb21TZXJ2ZXIsXG4gICAgICAgICAgICAgIHNvdXJjZXM6XG4gICAgICAgICAgICAgICAgZmllbGQ/LnByb3BlcnRpZXM/LndhdGVybWFya0RhdGFTb3VyY2VzID8/XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcy5mZWF0dXJlcy53YXRlcm1hcmsuc291cmNlc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGVsZXRlIGZpZWxkLnByb3BlcnRpZXMud2F0ZXJtYXJrRGF0YVNvdXJjZXM7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEN1cnJlbnQgY29tbWVudGVkIGJlY2F1c2UgaW4ga3dpa2lkLWNhbWVyYSBuZXcgY29uZmlnIHN0cnVjdHVyZSBpcyBub3QgaGFuZGxlZFxuICAgICAgICAgKiBXaWxsIHVuY29tbWVudCBvbmNlIGhhbmRsZWQgaGVyZSBhbmQgbW9kaWZ5IHRoZSBzdHJ1Y3R1cmUgYSBsaXR0bGUgYml0IGhlcmUgYXMgd2VsbC5cbiAgICAgICAgICovXG4gICAgICAgIC8vIGRlbGV0ZSBmaWVsZC5wcm9wZXJ0aWVzLmNhbWVyYUNvbmZpZy5vdGhlcnMuaXNXYXRlcm1hcms7XG4gICAgICAgIC8vIGRlbGV0ZSBmaWVsZC5wcm9wZXJ0aWVzLmNhbWVyYUNvbmZpZy5vdGhlcnMuaXNXYXRlcm1hcmtGb3JJbWFnZVVwbG9hZDtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlUmVjb3JkID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG5cbiAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuSFRNTDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUh0bWwoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVElUTEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUaXRsZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5CVVRUT046XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVCdXR0b24oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVEVYVDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRleHQoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUEFTU1dPUkQ6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVQYXNzd29yZChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5FTUFJTDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUVtYWlsKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFRBUkVBOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGV4dGFyZWEoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVDaGVja2JveChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVOdW1iZXIoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUFJFVklFV19JTUFHRTpcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcImltYWdlXCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSW1hZ2UoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuSU1BR0U6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVJbWFnZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRGF0ZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5USU1FOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGltZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5QSE9ORTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVBob25lKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlJBRElPOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUmFkaW8oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0xJREVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2xpZGVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInNlYXJjaC10ZXh0XCI6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJzZWxlY3RcIik7XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWxlY3QoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0g6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJzZWxlY3RcIik7XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWxlY3QoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0VMRUNUOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSV9DQUxMOlxuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYXBpXCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQXBpKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkxJVkVfTE9DQVRJT046XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVMaXZlTG9jYXRpb24oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuREFUQV9IT0xERVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVEYXRhSG9sZGVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUFwaShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5PVFA6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVPdHAoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQUFESEFBUl9OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVBYWRoYWFyTnVtYmVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVGaWxlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVDYXB0dXJlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlJFQ09SRDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVJlY29yZChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5TVEFSX1JBVElORzpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVN0YXJSYXRpbmcoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVDdXJyZW5jeShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRWYWxpZGF0b3JzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIilcbiAgICAgICAgICA/IGZpZWxkLnZhbGlkYXRvcnNcbiAgICAgICAgICA6IHt9O1xuXG4gICAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7fSk7XG5cbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInZhbGlkYXRvcnNcIiwge1xuICAgICAgICAgIC4uLmZpZWxkLnZhbGlkYXRvcnMsXG4gICAgICAgICAgbWluOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1pblwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5taW4pXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWluKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluXCIpXG4gICAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1pbilcbiAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIG1heDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtYXhcIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWF4KVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heClcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heFwiKVxuICAgICAgICAgICAgICA/IE51bWJlcihmaWVsZC5tYXgpXG4gICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICByZXF1aXJlZDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJyZXF1aXJlZFwiKVxuICAgICAgICAgICAgPyBCb29sZWFuKHZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInJlcXVpcmVkXCIpXG4gICAgICAgICAgICAgID8gQm9vbGVhbihmaWVsZC5yZXF1aXJlZClcbiAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICBtaW5MZW5ndGg6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwibWluTGVuZ3RoXCIpXG4gICAgICAgICAgICA/IGlzTm90RW1wdHlWYWx1ZSh2YWxpZGF0b3JzLm1pbkxlbmd0aClcbiAgICAgICAgICAgICAgPyBOdW1iZXIodmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtaW5MZW5ndGhcIilcbiAgICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWluTGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgbWF4TGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibGVuZ3RoXCIpXG4gICAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLmxlbmd0aClcbiAgICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtYXhMZW5ndGhcIilcbiAgICAgICAgICAgICAgICA/IE51bWJlcihmaWVsZC5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHBhdHRlcm46IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwicGF0dGVyblwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5wYXR0ZXJuKVxuICAgICAgICAgICAgICA/IHZhbGlkYXRvcnMucGF0dGVyblxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJwYXR0ZXJuXCIpXG4gICAgICAgICAgICAgID8geyBrZXk6IFwiQ1VTVE9NXCIsIHBhdHRlcm46IFN0cmluZyhmaWVsZC5wYXR0ZXJuKSB9XG4gICAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicmVnZXhcIilcbiAgICAgICAgICAgICAgICA/IHsga2V5OiBcIkNVU1RPTVwiLCBwYXR0ZXJuOiBTdHJpbmcoZmllbGQucmVnZXgpIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcblxuICAgICAgICBkZWxldGUgZmllbGQubWluO1xuICAgICAgICBkZWxldGUgZmllbGQubWF4O1xuICAgICAgICBkZWxldGUgZmllbGQucmVxdWlyZWQ7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5taW5MZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5sZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5tYXhMZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5wYXR0ZXJuO1xuICAgICAgICBkZWxldGUgZmllbGQucmVnZXg7XG5cbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuREFUQV9IT0xERVI6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUFJFVklFV19JTUFHRTpcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbkxlbmd0aDtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4O1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5DQVBUVVJFOlxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4O1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5SRUNPUkQ6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5taW4pKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWF4KSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1pbkxlbmd0aCkpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5tYXhMZW5ndGgpKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ucGF0dGVybikpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgZmllbGQuaW52YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkRGVmYXVsdFZhbHVlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRWYWx1ZVwiKSkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcImRlZmF1bHQudmFsdWUuc291cmNlc1wiKSkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcImRlZmF1bHQudmFsdWUucnVsZXNcIikgJiZcbiAgICAgICAgICBjaGVja09iamVjdFBhdGhFeGlzdHMoZmllbGQsIFwiZGVmYXVsdC52YWx1ZS5hY3Rpb25zXCIpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcImRlZmF1bHQudmFsdWUudmFsdWVcIikgJiZcbiAgICAgICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQuZGVmYXVsdC52YWx1ZS52YWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcImRlZmF1bHQudmFsdWUuc291cmNlc1wiKSkge1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgdHJpZ2dlcnM6IFtcIk9OX0lOSVRcIl0sXG4gICAgICAgICAgICBydWxlczogW10sXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAga2V5OiBcIlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFXCIsXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5OiBcIk9CSkVDVFwiLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIkZPUk1fREFUQVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGZpZWxkID0gc2V0VmFsdWVUb09iamVjdFBhdGgoZmllbGQsIFwiZGVmYXVsdC52YWx1ZVwiLCBkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5kZWZhdWx0VmFsO1xuICAgICAgICBkZWxldGUgZmllbGQuZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkRGlzYWJpbGl0eSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0tleVZhbHVlKGZpZWxkLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZE1lc3NhZ2VzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgZmllbGQgPSBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJtZXNzYWdlc1wiLCBbXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRSZXNldEJ1dHRvbiA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhY3Rpb25cIikgJiZcbiAgICAgICAgICBmaWVsZC5hY3Rpb24gPT09IFwicmVzZXRcIiAmJlxuICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImZpZWxkc1wiKVxuICAgICAgICApIHtcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwicmVzZXRcIiwge1xuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHNldEZvcm1GaWVsZHMgPSAoZm9ybUNvbmZpZzogYW55LCBmaWVsZHM6IGFueVtdKTogYW55ID0+IHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtQ29uZmlnLCBcIm11bHRpRm9ybVwiKSkge1xuICAgICAgICBmb3JtQ29uZmlnLm11bHRpRm9ybS5maWVsZHMgPSBmaWVsZHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtQ29uZmlnLmZpZWxkcyA9IGZpZWxkcztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcm1Db25maWc7XG4gICAgfTtcblxuICAgIGNvbnN0IHNldEZvcm1GaWVsZEdyb3VwcyA9IChmb3JtQ29uZmlnOiBhbnksIGdyb3VwczogYW55KTogYW55ID0+IHtcbiAgICAgIGZvcm1Db25maWcuZmllbGRHcm91cHMgPSBncm91cHM7XG5cbiAgICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZEdyb3VwS2V5ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJncm91cEtleVwiKSAmJlxuICAgICAgICAhQXJyYXkuaXNBcnJheShmaWVsZC5ncm91cEtleSlcbiAgICAgICkge1xuICAgICAgICBmaWVsZC5ncm91cEtleSA9IFtmaWVsZC5ncm91cEtleV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRm9ybUZpZWxkR3JvdXBzID0gKGZpZWxkR3JvdXBzOiBhbnksIGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImdyb3VwS2V5XCIpKSB7XG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXBLZXkgb2YgZmllbGQuZ3JvdXBLZXkpIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGRHcm91cHMsIGdyb3VwS2V5KSkge1xuICAgICAgICAgICAgZmllbGRHcm91cHNbZ3JvdXBLZXldLnB1c2goZmllbGQua2V5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRHcm91cHNbZ3JvdXBLZXldID0gW2ZpZWxkLmtleV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZEdyb3VwcztcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRMYW5ndWFnZSA9IChmaWVsZDogVEZpZWxkLCBsYW5ndWFnZTogc3RyaW5nKTogYW55ID0+IHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJsYWJlbFwiKSkge1xuICAgICAgICBmaWVsZC5sYWJlbCA9IHVwZGF0ZUxhbmd1YWdlKGZpZWxkLmxhYmVsLCBsYW5ndWFnZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGVja09iamVjdFBhdGhFeGlzdHMoZmllbGQsIFwicHJvcGVydGllcy5wbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAoZmllbGQucHJvcGVydGllcyBhcyBhbnkpLnBsYWNlaG9sZGVyID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgICAgKGZpZWxkLnByb3BlcnRpZXMgYXMgYW55KS5wbGFjZWhvbGRlcixcbiAgICAgICAgICBsYW5ndWFnZVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcInByb3BlcnRpZXMubGFiZWxcIikpIHtcbiAgICAgICAgKGZpZWxkLnByb3BlcnRpZXMgYXMgYW55KS5sYWJlbCA9IHVwZGF0ZUxhbmd1YWdlKFxuICAgICAgICAgIChmaWVsZC5wcm9wZXJ0aWVzIGFzIGFueSkubGFiZWwsXG4gICAgICAgICAgbGFuZ3VhZ2VcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXBkYXRlQXBpU3RhdHVzID0gKGZpZWxkQXBpU3RhdHVzKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qgc3RhdHVzIGluIGZpZWxkQXBpU3RhdHVzKSB7XG4gICAgICAgICAgaWYgKGlzTm90RW1wdHlWYWx1ZShzdGF0dXMpKSB7XG4gICAgICAgICAgICBmaWVsZEFwaVN0YXR1c1tzdGF0dXNdID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgICAgICAgIGZpZWxkQXBpU3RhdHVzW3N0YXR1c10sXG4gICAgICAgICAgICAgIGxhbmd1YWdlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGRBcGlTdGF0dXM7XG4gICAgICB9O1xuXG4gICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkhUTUw6XG4gICAgICAgICAgKGZpZWxkIGFzIGFueSkuaHRtbCA9IHVwZGF0ZUxhbmd1YWdlKChmaWVsZCBhcyBhbnkpLmh0bWwsIGxhbmd1YWdlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgICAgKGZpZWxkLnByb3BlcnRpZXMgYXMgYW55KS5jYW1lcmFDb25maWcuaGVhZGVyLnRpdGxlID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgICAgICAoZmllbGQucHJvcGVydGllcyBhcyBhbnkpLmNhbWVyYUNvbmZpZy5oZWFkZXIudGl0bGUsXG4gICAgICAgICAgICBsYW5ndWFnZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5SRUNPUkQ6XG4gICAgICAgICAgKGZpZWxkLnByb3BlcnRpZXMgYXMgYW55KS5jYW1lcmFDb25maWcuaGVhZGVyLnRpdGxlID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgICAgICAoZmllbGQucHJvcGVydGllcyBhcyBhbnkpLmNhbWVyYUNvbmZpZy5oZWFkZXIudGl0bGUsXG4gICAgICAgICAgICBsYW5ndWFnZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5TRUxFQ1Q6XG4gICAgICAgICAgZmllbGQub3B0aW9ucyA9IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdChvcHRpb24pKSB7XG4gICAgICAgICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhvcHRpb24sIFwidGl0bGVcIikpIHtcbiAgICAgICAgICAgICAgICBvcHRpb24udGl0bGUgPSB1cGRhdGVMYW5ndWFnZShvcHRpb24udGl0bGUsIGxhbmd1YWdlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvcHRpb24gPSB1cGRhdGVMYW5ndWFnZShvcHRpb24sIGxhbmd1YWdlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkRST1BET1dOX1dJVEhfU0VBUkNIOlxuICAgICAgICAgIGZpZWxkLm9wdGlvbnMgPSBmaWVsZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3Qob3B0aW9uKSkge1xuICAgICAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMob3B0aW9uLCBcInRpdGxlXCIpKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLnRpdGxlID0gdXBkYXRlTGFuZ3VhZ2Uob3B0aW9uLnRpdGxlLCBsYW5ndWFnZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uID0gdXBkYXRlTGFuZ3VhZ2Uob3B0aW9uLCBsYW5ndWFnZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcHRpb247XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5SQURJTzpcbiAgICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKG9wdGlvbiwgXCJsYWJlbFwiKSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbCA9IHVwZGF0ZUxhbmd1YWdlKG9wdGlvbi5sYWJlbCwgbGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9wdGlvbiA9IHVwZGF0ZUxhbmd1YWdlKG9wdGlvbiwgbGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQVBJX0NBTEw6XG4gICAgICAgICAgZmllbGQuYXBpLnN0YXR1cy5sYWJlbHMgPSB1cGRhdGVBcGlTdGF0dXMoZmllbGQuYXBpLnN0YXR1cy5sYWJlbHMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuTElWRV9MT0NBVElPTjpcbiAgICAgICAgICBmaWVsZC5hcGkuc3RhdHVzLmxhYmVscyA9IHVwZGF0ZUFwaVN0YXR1cyhmaWVsZC5hcGkuc3RhdHVzLmxhYmVscyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgZmllbGRzOiBhbnlbXSA9IGdldEZvcm1GaWVsZHMoZm9ybUNvbmZpZyk7XG5cbiAgICBsZXQgZmllbGRHcm91cHM6IGFueSA9IHt9O1xuXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkTGFuZ3VhZ2UoZmllbGQsIHRoaXMucmVzb2x2ZUxhbmd1YWdlKCkpO1xuXG4gICAgICBmaWVsZCA9IGZvcm1hdE9uRmllbGRUeXBlKGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZERpc2FiaWxpdHkoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkR3JvdXBLZXkoZmllbGQpO1xuXG4gICAgICBmaWVsZEdyb3VwcyA9IHVwZGF0ZUZvcm1GaWVsZEdyb3VwcyhmaWVsZEdyb3VwcywgZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkRGVmYXVsdFZhbHVlKGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZFZhbGlkYXRvcnMoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24oZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkTWVzc2FnZXMoZmllbGQpO1xuICAgIH1cblxuICAgIGZvcm1Db25maWcgPSBzZXRGb3JtRmllbGRHcm91cHMoZm9ybUNvbmZpZywgZmllbGRHcm91cHMpO1xuXG4gICAgZm9ybUNvbmZpZyA9IHNldEZvcm1GaWVsZHMoZm9ybUNvbmZpZywgZmllbGRzKTtcblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG59XG4iXX0=
824
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2NvbmZpZy1jb252ZXJ0ZXIvY29uZmlnLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxVQUFVLEVBRVgsTUFBTSxzREFBc0QsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLFdBQVcsRUFDWCxVQUFVLEVBQ1YsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsY0FBYyxFQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFPbkMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsWUFBNkIsVUFBNEIsRUFBRTtRQUE5QixZQUFPLEdBQVAsT0FBTyxDQUF1QjtJQUFHLENBQUM7SUFFdkQsZUFBZTs7UUFDckIsT0FBTyxXQUFXLENBQUMsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsbUNBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUdELDZCQUE2QixDQUFDLFVBQWUsRUFBRSxJQUFTO1FBQ3RELElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEVBQUU7WUFDakQsVUFBVSxHQUFHLG9CQUFvQixDQUMvQixVQUFVLEVBQ1Ys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SyxDQUFDLENBQUM7U0FDcEM7UUFFRCxVQUFVLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXpELFVBQVUsR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRS9DLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQTE5QkM7SUFEQyxTQUFTOzhEQVdUO0FBR0Q7SUFEQyxTQUFTOytEQWVUO0FBR0Q7SUFEQyxTQUFTOzJEQXdGVDtBQUdEO0lBREMsU0FBUztrREFrMkJUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RLZXlFeGlzdHMsXG4gIGNoZWNrT2JqZWN0UGF0aEV4aXN0cyxcbiAgZ2V0T2JqZWN0RGVlcENvcHksXG4gIGlzRW1wdHlWYWx1ZSxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBpc09iamVjdCxcbiAgbG9nTWV0aG9kLFxuICBtZXJnZU9iamVjdHMsXG4gIHNldE1pc3NpbmdLZXlWYWx1ZSxcbiAgc2V0VmFsdWVUb09iamVjdFBhdGhcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQge1xuICBFRmllbGRUeXBlLFxuICBURmllbGRcbn0gZnJvbSBcIi4uL2Zvcm0tdmlldy9kZWZpbml0aW9ucy9mb3JtLXZpZXcuZmllbGRzLmRlZmluaXRpb25cIjtcbmltcG9ydCB7IEZJRUxEX1BST1BFUlRJRVMgfSBmcm9tIFwiLi9jb25maWctY29udmVydGVyLmNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgZ2V0Rm9ybUZpZWxkcyxcbiAgZ2V0TGFuZ3VhZ2UsXG4gIGdldE1heERhdGUsXG4gIGdldE1pbkRhdGUsXG4gIHNldEZpZWxkQXNGb3JtRWxlbWVudCxcbiAgc2V0RmllbGRLZXlEaXNhYmxlZCxcbiAgc2V0RmllbGRLZXlIaWRkZW4sXG4gIHNldEZpZWxkS2V5VmFsdWUsXG4gIHNldE1pc3NpbmdGaWVsZEtleVZhbHVlLFxuICB1cGRhdGVMYW5ndWFnZVxufSBmcm9tIFwiLi9jb25maWctY29udmVydGVyLmhlbHBlclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnRlckNvbnRleHQge1xuICByZWR1eERhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdXNlckNvbmZpZz86IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnZlcnRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogQ29udmVydGVyQ29udGV4dCA9IHt9KSB7fVxuXG4gIHByaXZhdGUgcmVzb2x2ZUxhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldExhbmd1YWdlKHRoaXMuY29udGV4dC5yZWR1eERhdGEgPz8ge30sIHRoaXMuY29udGV4dC51c2VyQ29uZmlnKTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybUNvbmZpZ01pc2NlbGxhbmVvdXMoZm9ybUNvbmZpZzogYW55LCBhcmdzOiBhbnkpOiBhbnkge1xuICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhcmdzLCBcImZvcm1zTGlzdExlbmd0aFwiKSkge1xuICAgICAgZm9ybUNvbmZpZyA9IHNldFZhbHVlVG9PYmplY3RQYXRoKFxuICAgICAgICBmb3JtQ29uZmlnLFxuICAgICAgICBcImZvcm1zTGlzdExlbmd0aFwiLFxuICAgICAgICBhcmdzLmZvcm1zTGlzdExlbmd0aFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybUNvbmZpZ0Zyb21Vc2VyQ29uZmlnKGZvcm1Db25maWc6IGFueSwgdXNlckNvbmZpZzogYW55KTogYW55IHtcbiAgICBpZiAoaXNOb3RFbXB0eVZhbHVlKHVzZXJDb25maWcpKSB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHModXNlckNvbmZpZywgXCJ0aGVtZVwiKSkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHModXNlckNvbmZpZy50aGVtZSwgXCJjbGllbnRMb2dvXCIpKSB7XG4gICAgICAgICAgc2V0VmFsdWVUb09iamVjdFBhdGgoXG4gICAgICAgICAgICBmb3JtQ29uZmlnLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzLmhlYWRlci5sb2dvLnNyY1wiLFxuICAgICAgICAgICAgdXNlckNvbmZpZy50aGVtZS5jbGllbnRMb2dvXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICB1cGRhdGVGb3JtQ29uZmlnUHJvcGVydGllcyhmb3JtQ29uZmlnOiBhbnkpOiBhbnkge1xuICAgIGZvcm1Db25maWcgPVxuICAgICAgZm9ybUNvbmZpZyAmJiB0eXBlb2YgZm9ybUNvbmZpZyA9PT0gXCJvYmplY3RcIlxuICAgICAgICA/IGdldE9iamVjdERlZXBDb3B5KGZvcm1Db25maWcpXG4gICAgICAgIDogZm9ybUNvbmZpZztcblxuICAgIGNvbnN0IGZvcm1WaWV3UHJvcGVydGllcyA9IHtcbiAgICAgIGhlYWRlcjoge1xuICAgICAgICBsb2dvOiB7XG4gICAgICAgICAgc3JjOiBcIlwiLFxuICAgICAgICAgIGFsdDogXCJMb2dvXCIsXG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBzdHlsZXM6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgYmFja0J1dHRvbjoge1xuICAgICAgICAgIG1vZGU6IFwiVEFCQkVEXCIsXG4gICAgICAgICAgYnlwYXNzQ29uZmlybWF0aW9uOiBmYWxzZSxcbiAgICAgICAgICBoaWRkZW46IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBmb3JtQ29uZmlnPy50aXRsZSA/PyBmb3JtQ29uZmlnPy5wcm9wcy50aXRsZSA/PyBcIkZvcm1cIixcbiAgICAgICAgICBzdHlsZXM6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgc3RlcHM6IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIHN0eWxlczogXCJcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbWFpbjoge1xuICAgICAgICBzdHlsZXM6IFwiXCJcbiAgICAgIH0sXG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgdmlld0Zvcm1zQnV0dG9uOiB7XG4gICAgICAgICAgYnlwYXNzQ29uZmlybWF0aW9uOiBmYWxzZSxcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBcIlZpZXcgRm9ybXNcIixcbiAgICAgICAgICBzdHlsZXM6IFwid2lkdGg6IDEwMCVcIlxuICAgICAgICB9LFxuICAgICAgICBzYXZlQnV0dG9uOiB7XG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogXCJTYXZlXCIsXG4gICAgICAgICAgc3R5bGVzOiBcIndpZHRoOiAxMDAlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGlzVW5zYXZlZERhdGFBbGVydEVuYWJsZWQ6IGZhbHNlXG4gICAgfTtcblxuICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtQ29uZmlnLCBcInByb3BlcnRpZXNcIikpIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICBtZXJnZU9iamVjdHMoZm9ybVZpZXdQcm9wZXJ0aWVzLCBmb3JtQ29uZmlnLnByb3BlcnRpZXMpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMgPSBmb3JtVmlld1Byb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLnJlc29sdmVMYW5ndWFnZSgpO1xuXG4gICAgaWYgKGNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmb3JtQ29uZmlnLCBcInByb3BlcnRpZXMuaGVhZGVyLnRpdGxlLmxhYmVsXCIpKSB7XG4gICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMuaGVhZGVyLnRpdGxlLmxhYmVsID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5oZWFkZXIudGl0bGUubGFiZWwsXG4gICAgICAgIGxhbmd1YWdlXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0UGF0aEV4aXN0cyhcbiAgICAgICAgZm9ybUNvbmZpZyxcbiAgICAgICAgXCJwcm9wZXJ0aWVzLmZvb3Rlci52aWV3Rm9ybXNCdXR0b24ubGFiZWxcIlxuICAgICAgKVxuICAgICkge1xuICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmZvb3Rlci52aWV3Rm9ybXNCdXR0b24ubGFiZWwgPSB1cGRhdGVMYW5ndWFnZShcbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmZvb3Rlci52aWV3Rm9ybXNCdXR0b24ubGFiZWwsXG4gICAgICAgIGxhbmd1YWdlXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmb3JtQ29uZmlnLCBcInByb3BlcnRpZXMuZm9vdGVyLnNhdmVCdXR0b24ubGFiZWxcIilcbiAgICApIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5mb290ZXIuc2F2ZUJ1dHRvbi5sYWJlbCA9IHVwZGF0ZUxhbmd1YWdlKFxuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMuZm9vdGVyLnNhdmVCdXR0b24ubGFiZWwsXG4gICAgICAgIGxhbmd1YWdlXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBjb252ZXJ0Rm9ybUNvbmZpZyhmb3JtQ29uZmlnOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IGZvcm1hdE9uRmllbGRUeXBlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKEZJRUxEX1BST1BFUlRJRVMsIGZpZWxkLnR5cGUpKSB7XG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICAgIGdldE9iamVjdERlZXBDb3B5KEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0pLFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllc1xuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVIdG1sID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGl0bGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVCdXR0b24gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIGZhbHNlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGV4dCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlUGFzc3dvcmQgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUVtYWlsID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTdGFyUmF0aW5nID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVDdXJyZW5jeSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGV4dGFyZWEgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUNoZWNrYm94ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlTnVtYmVyID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJrZXlcIikpIHtcbiAgICAgICAgICBpZiAoZmllbGQua2V5ID09PSBcImFhZGhhYXJfbnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYWFkaGFhcl9udW1iZXJcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaWVsZC5rZXkgPT09IFwiY29udGFjdF9udW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJwaG9uZVwiKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gXCJwaG9uZVwiIHx8IGZpZWxkLnR5cGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUltYWdlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVEYXRlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICBtZXJnZU9iamVjdHMoXG4gICAgICAgICAgICBnZXRPYmplY3REZWVwQ29weShGSUVMRF9QUk9QRVJUSUVTW2ZpZWxkLnR5cGVdKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWF4OiBnZXRNYXhEYXRlKGZpZWxkKSxcbiAgICAgICAgICAgICAgbWluOiBnZXRNaW5EYXRlKGZpZWxkKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXNcbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRpbWUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVBob25lID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVSYWRpbyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKHg6IGFueSk6IGFueSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogeCwgZGlzYWJsZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogXCJcIiB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImxhYmVsXCIpICYmXG4gICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRpc2FibGVkXCIpICYmXG4gICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRlc2NyaXB0aW9uXCIpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRpc2FibGVkXCIpKSB7XG4gICAgICAgICAgICB4ID0geyAuLi54LCBkaXNhYmxlZDogZmFsc2UgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRlc2NyaXB0aW9uXCIpKSB7XG4gICAgICAgICAgICB4ID0geyAuLi54LCBkZXNjcmlwdGlvbjogZmFsc2UgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTbGlkZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVNlbGVjdCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQXBpID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJzaG93TG9hZGVyXCIpKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInNob3dMb2FkZXJcIiwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhcGlcIikpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZEFwaURlZmF1bHRzID0ge1xuICAgICAgICAgICAgdXJsOiBcIlwiLFxuICAgICAgICAgICAgcmVxdWVzdDoge30sXG4gICAgICAgICAgICByZXNwb25zZToge30sXG4gICAgICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBcIkNhbGwgQVBJXCIsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogXCJDYWxsIEFQSVwiLFxuICAgICAgICAgICAgICAgIHJldHJ5OiBcIlJldHJ5IEFQSVwiLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IFwiQVBJIFN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICBmYWlsZWQ6IFwiQVBJIEZhaWxlZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZpZWxkLmFwaSA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgICAgbWVyZ2VPYmplY3RzKGZpZWxkQXBpRGVmYXVsdHMsIGZpZWxkQXBpRGVmYXVsdHMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmFwaSwgXCJyZXF1ZXN0XCIpICYmXG4gICAgICAgICAgIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmFwaSwgXCJlbnRyeXBvaW50XCIpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGFwaUVudHJ5cG9pbnQgPSB7XG4gICAgICAgICAgICB0cmlnZ2VyczogW1wiT05fQVBJX0NBTExcIl0sXG4gICAgICAgICAgICBydWxlczogW10sXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAga2V5OiBcIkFQSV9DQUxMXCIsXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgZmllbGRLZXk6IGZpZWxkLmtleSxcbiAgICAgICAgICAgICAgICAgIGFwaUtleTogZmllbGQuYXBpLmVuZHBvaW50c1swXS5hcGlLZXlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZpZWxkLmVudHJ5cG9pbnQgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICAgIG1lcmdlT2JqZWN0cyhhcGlFbnRyeXBvaW50LCBmaWVsZC5hcGkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlTGl2ZUxvY2F0aW9uID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJzaG93TG9hZGVyXCIpKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInNob3dMb2FkZXJcIiwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhcGlcIikpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZEFwaURlZmF1bHRzID0ge1xuICAgICAgICAgICAgdXJsOiBcIlwiLFxuICAgICAgICAgICAgcmVxdWVzdDoge30sXG4gICAgICAgICAgICByZXNwb25zZToge30sXG4gICAgICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBcIkdldCBMaXZlIExvY2F0aW9uXCIsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogXCJHZXR0aW5nIExpdmUgTG9jYXRpb25cIixcbiAgICAgICAgICAgICAgICByZXRyeTogXCJHZXQgTGl2ZSBMb2NhdGlvblwiLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IFwiTGl2ZSBMb2NhdGlvblwiLFxuICAgICAgICAgICAgICAgIGZhaWxlZDogXCJMaXZlIExvY2F0aW9uXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgZmllbGQuYXBpID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgICBtZXJnZU9iamVjdHMoZmllbGRBcGlEZWZhdWx0cywgZmllbGRBcGlEZWZhdWx0cylcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZURhdGFIb2xkZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5RGlzYWJsZWQoZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZU90cCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgbWVyZ2VPYmplY3RzKFxuICAgICAgICAgICAgZ2V0T2JqZWN0RGVlcENvcHkoRklFTERfUFJPUEVSVElFU1tmaWVsZC50eXBlXSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1hc2s6IG5ldyBBcnJheShmaWVsZD8ucHJvcGVydGllcz8ub3RwTGVuZ3RoID8/IDQpXG4gICAgICAgICAgICAgICAgLmZpbGwoXCIjXCIpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllc1xuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlTWFza2VkID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVBYWRoYWFyTnVtYmVyID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVGaWxlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVDYXB0dXJlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weSh7XG4gICAgICAgICAgLi4uZmllbGQucHJvcGVydGllcyxcbiAgICAgICAgICBmZWF0dXJlczoge1xuICAgICAgICAgICAgLi4uZmllbGQucHJvcGVydGllcy5mZWF0dXJlcyxcbiAgICAgICAgICAgIHdhdGVybWFyazoge1xuICAgICAgICAgICAgICBpc0VuYWJsZWQ6XG4gICAgICAgICAgICAgICAgZmllbGQ/LnByb3BlcnRpZXM/LmNhbWVyYUNvbmZpZz8ub3RoZXJzPy5pc1dhdGVybWFyayA/P1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMuZmVhdHVyZXMud2F0ZXJtYXJrLmlzV2F0ZXJtYXJrLFxuICAgICAgICAgICAgICBpc1dhdGVybWFya0Zyb21TZXJ2ZXI6XG4gICAgICAgICAgICAgICAgZmllbGQ/LnByb3BlcnRpZXM/LmNhbWVyYUNvbmZpZz8ub3RoZXJzXG4gICAgICAgICAgICAgICAgICA/LmlzV2F0ZXJtYXJrRnJvbVNlcnZlciA/P1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMuZmVhdHVyZXMud2F0ZXJtYXJrLmlzV2F0ZXJtYXJrRnJvbVNlcnZlcixcbiAgICAgICAgICAgICAgc291cmNlczpcbiAgICAgICAgICAgICAgICBmaWVsZD8ucHJvcGVydGllcz8ud2F0ZXJtYXJrRGF0YVNvdXJjZXMgPz9cbiAgICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLmZlYXR1cmVzLndhdGVybWFyay5zb3VyY2VzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBkZWxldGUgZmllbGQucHJvcGVydGllcy53YXRlcm1hcmtEYXRhU291cmNlcztcblxuICAgICAgICAvKipcbiAgICAgICAgICogQ3VycmVudCBjb21tZW50ZWQgYmVjYXVzZSBpbiBrd2lraWQtY2FtZXJhIG5ldyBjb25maWcgc3RydWN0dXJlIGlzIG5vdCBoYW5kbGVkXG4gICAgICAgICAqIFdpbGwgdW5jb21tZW50IG9uY2UgaGFuZGxlZCBoZXJlIGFuZCBtb2RpZnkgdGhlIHN0cnVjdHVyZSBhIGxpdHRsZSBiaXQgaGVyZSBhcyB3ZWxsLlxuICAgICAgICAgKi9cbiAgICAgICAgLy8gZGVsZXRlIGZpZWxkLnByb3BlcnRpZXMuY2FtZXJhQ29uZmlnLm90aGVycy5pc1dhdGVybWFyaztcbiAgICAgICAgLy8gZGVsZXRlIGZpZWxkLnByb3BlcnRpZXMuY2FtZXJhQ29uZmlnLm90aGVycy5pc1dhdGVybWFya0ZvckltYWdlVXBsb2FkO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVSZWNvcmQgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZU1pYyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuXG4gICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkhUTUw6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVIdG1sKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRJVExFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGl0bGUoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQlVUVE9OOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQnV0dG9uKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUZXh0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlBBU1NXT1JEOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUGFzc3dvcmQoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuRU1BSUw6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVFbWFpbChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5URVhUQVJFQTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRleHRhcmVhKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNIRUNLQk9YOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQ2hlY2tib3goZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuTlVNQkVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlTnVtYmVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0U6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJpbWFnZVwiKTtcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUltYWdlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLklNQUdFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSW1hZ2UoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuREFURTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZURhdGUoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVElNRTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRpbWUoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUEhPTkU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVQaG9uZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5SQURJTzpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVJhZGlvKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlNMSURFUjpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVNsaWRlcihmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzZWFyY2gtdGV4dFwiOlxuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwic2VsZWN0XCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkRST1BET1dOX1dJVEhfU0VBUkNIOlxuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwic2VsZWN0XCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlNFTEVDVDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVNlbGVjdChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5BUElfQ0FMTDpcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcImFwaVwiKTtcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUFwaShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5MSVZFX0xPQ0FUSU9OOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlTGl2ZUxvY2F0aW9uKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkRBVEFfSE9MREVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRGF0YUhvbGRlcihmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5BUEk6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVBcGkoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuT1RQOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlT3RwKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFBREhBQVJfTlVNQkVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQWFkaGFhck51bWJlcihmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRmlsZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5DQVBUVVJFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQ2FwdHVyZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5SRUNPUkQ6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVSZWNvcmQoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuTUlDOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlTWljKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlNUQVJfUkFUSU5HOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU3RhclJhdGluZyhmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5DVVJSRU5DWTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUN1cnJlbmN5KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLk1BU0tFRDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZU1hc2tlZChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRWYWxpZGF0b3JzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIilcbiAgICAgICAgICA/IGZpZWxkLnZhbGlkYXRvcnNcbiAgICAgICAgICA6IHt9O1xuXG4gICAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7fSk7XG5cbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInZhbGlkYXRvcnNcIiwge1xuICAgICAgICAgIC4uLmZpZWxkLnZhbGlkYXRvcnMsXG4gICAgICAgICAgbWluOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1pblwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5taW4pXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWluKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluXCIpXG4gICAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1pbilcbiAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIG1heDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtYXhcIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWF4KVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heClcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heFwiKVxuICAgICAgICAgICAgICA/IE51bWJlcihmaWVsZC5tYXgpXG4gICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICByZXF1aXJlZDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJyZXF1aXJlZFwiKVxuICAgICAgICAgICAgPyBCb29sZWFuKHZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInJlcXVpcmVkXCIpXG4gICAgICAgICAgICAgID8gQm9vbGVhbihmaWVsZC5yZXF1aXJlZClcbiAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICBtaW5MZW5ndGg6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwibWluTGVuZ3RoXCIpXG4gICAgICAgICAgICA/IGlzTm90RW1wdHlWYWx1ZSh2YWxpZGF0b3JzLm1pbkxlbmd0aClcbiAgICAgICAgICAgICAgPyBOdW1iZXIodmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtaW5MZW5ndGhcIilcbiAgICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWluTGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgbWF4TGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibGVuZ3RoXCIpXG4gICAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLmxlbmd0aClcbiAgICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtYXhMZW5ndGhcIilcbiAgICAgICAgICAgICAgICA/IE51bWJlcihmaWVsZC5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHBhdHRlcm46XG4gICAgICAgICAgICBmaWVsZC50eXBlID09PSBFRmllbGRUeXBlLk1BU0tFRFxuICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwicGF0dGVyblwiKVxuICAgICAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMucGF0dGVybilcbiAgICAgICAgICAgICAgICAgID8gdmFsaWRhdG9ycy5wYXR0ZXJuXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicGF0dGVyblwiKVxuICAgICAgICAgICAgICAgICAgPyB7IGtleTogXCJDVVNUT01cIiwgcGF0dGVybjogU3RyaW5nKGZpZWxkLnBhdHRlcm4pIH1cbiAgICAgICAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicmVnZXhcIilcbiAgICAgICAgICAgICAgICAgICAgPyB7IGtleTogXCJDVVNUT01cIiwgcGF0dGVybjogU3RyaW5nKGZpZWxkLnJlZ2V4KSB9XG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5taW47XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5tYXg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5yZXF1aXJlZDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLm1pbkxlbmd0aDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLmxlbmd0aDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLm1heExlbmd0aDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLnBhdHRlcm47XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5yZWdleDtcblxuICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVEVYVDpcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRBX0hPTERFUjpcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5DSEVDS0JPWDpcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5QUkVWSUVXX0lNQUdFOlxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4O1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlJFQ09SRDpcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbkxlbmd0aDtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aDtcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm47XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuTUlDOlxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4O1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5NQVNLRUQ6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5taW4pKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWF4KSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1pbkxlbmd0aCkpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5tYXhMZW5ndGgpKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ucGF0dGVybikpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgZmllbGQuaW52YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkRGVmYXVsdFZhbHVlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRWYWx1ZVwiKSkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcImRlZmF1bHQudmFsdWUuc291cmNlc1wiKSkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcImRlZmF1bHQudmFsdWUucnVsZXNcIikgJiZcbiAgICAgICAgICBjaGVja09iamVjdFBhdGhFeGlzdHMoZmllbGQsIFwiZGVmYXVsdC52YWx1ZS5hY3Rpb25zXCIpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcImRlZmF1bHQudmFsdWUudmFsdWVcIikgJiZcbiAgICAgICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQuZGVmYXVsdC52YWx1ZS52YWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcImRlZmF1bHQudmFsdWUuc291cmNlc1wiKSkge1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgdHJpZ2dlcnM6IFtcIk9OX0lOSVRcIl0sXG4gICAgICAgICAgICBydWxlczogW10sXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAga2V5OiBcIlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFXCIsXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5OiBcIk9CSkVDVFwiLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIkZPUk1fREFUQVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGZpZWxkID0gc2V0VmFsdWVUb09iamVjdFBhdGgoZmllbGQsIFwiZGVmYXVsdC52YWx1ZVwiLCBkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5kZWZhdWx0VmFsO1xuICAgICAgICBkZWxldGUgZmllbGQuZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkRGlzYWJpbGl0eSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0tleVZhbHVlKGZpZWxkLCBcImRpc2FibGVkXCIsIGZhbHNlKTtcblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZE1lc3NhZ2VzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgZmllbGQgPSBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJtZXNzYWdlc1wiLCBbXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRSZXNldEJ1dHRvbiA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhY3Rpb25cIikgJiZcbiAgICAgICAgICBmaWVsZC5hY3Rpb24gPT09IFwicmVzZXRcIiAmJlxuICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImZpZWxkc1wiKVxuICAgICAgICApIHtcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwicmVzZXRcIiwge1xuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHNldEZvcm1GaWVsZHMgPSAoZm9ybUNvbmZpZzogYW55LCBmaWVsZHM6IGFueVtdKTogYW55ID0+IHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtQ29uZmlnLCBcIm11bHRpRm9ybVwiKSkge1xuICAgICAgICBmb3JtQ29uZmlnLm11bHRpRm9ybS5maWVsZHMgPSBmaWVsZHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtQ29uZmlnLmZpZWxkcyA9IGZpZWxkcztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcm1Db25maWc7XG4gICAgfTtcblxuICAgIGNvbnN0IHNldEZvcm1GaWVsZEdyb3VwcyA9IChmb3JtQ29uZmlnOiBhbnksIGdyb3VwczogYW55KTogYW55ID0+IHtcbiAgICAgIGZvcm1Db25maWcuZmllbGRHcm91cHMgPSBncm91cHM7XG5cbiAgICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZEdyb3VwS2V5ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJncm91cEtleVwiKSAmJlxuICAgICAgICAhQXJyYXkuaXNBcnJheShmaWVsZC5ncm91cEtleSlcbiAgICAgICkge1xuICAgICAgICBmaWVsZC5ncm91cEtleSA9IFtmaWVsZC5ncm91cEtleV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRm9ybUZpZWxkR3JvdXBzID0gKGZpZWxkR3JvdXBzOiBhbnksIGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImdyb3VwS2V5XCIpKSB7XG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXBLZXkgb2YgZmllbGQuZ3JvdXBLZXkpIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGRHcm91cHMsIGdyb3VwS2V5KSkge1xuICAgICAgICAgICAgZmllbGRHcm91cHNbZ3JvdXBLZXldLnB1c2goZmllbGQua2V5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRHcm91cHNbZ3JvdXBLZXldID0gW2ZpZWxkLmtleV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZEdyb3VwcztcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRMYW5ndWFnZSA9IChmaWVsZDogVEZpZWxkLCBsYW5ndWFnZTogc3RyaW5nKTogYW55ID0+IHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJsYWJlbFwiKSkge1xuICAgICAgICBmaWVsZC5sYWJlbCA9IHVwZGF0ZUxhbmd1YWdlKGZpZWxkLmxhYmVsLCBsYW5ndWFnZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGVja09iamVjdFBhdGhFeGlzdHMoZmllbGQsIFwicHJvcGVydGllcy5wbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAoZmllbGQucHJvcGVydGllcyBhcyBhbnkpLnBsYWNlaG9sZGVyID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgICAgKGZpZWxkLnByb3BlcnRpZXMgYXMgYW55KS5wbGFjZWhvbGRlcixcbiAgICAgICAgICBsYW5ndWFnZVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZpZWxkLCBcInByb3BlcnRpZXMubGFiZWxcIikpIHtcbiAgICAgICAgKGZpZWxkLnByb3BlcnRpZXMgYXMgYW55KS5sYWJlbCA9IHVwZGF0ZUxhbmd1YWdlKFxuICAgICAgICAgIChmaWVsZC5wcm9wZXJ0aWVzIGFzIGFueSkubGFiZWwsXG4gICAgICAgICAgbGFuZ3VhZ2VcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXBkYXRlQXBpU3RhdHVzID0gKGZpZWxkQXBpU3RhdHVzKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qgc3RhdHVzIGluIGZpZWxkQXBpU3RhdHVzKSB7XG4gICAgICAgICAgaWYgKGlzTm90RW1wdHlWYWx1ZShzdGF0dXMpKSB7XG4gICAgICAgICAgICBmaWVsZEFwaVN0YXR1c1tzdGF0dXNdID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgICAgICAgIGZpZWxkQXBpU3RhdHVzW3N0YXR1c10sXG4gICAgICAgICAgICAgIGxhbmd1YWdlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGRBcGlTdGF0dXM7XG4gICAgICB9O1xuXG4gICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkhUTUw6XG4gICAgICAgICAgKGZpZWxkIGFzIGFueSkuaHRtbCA9IHVwZGF0ZUxhbmd1YWdlKChmaWVsZCBhcyBhbnkpLmh0bWwsIGxhbmd1YWdlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgICAgKGZpZWxkLnByb3BlcnRpZXMgYXMgYW55KS5jYW1lcmFDb25maWcuaGVhZGVyLnRpdGxlID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgICAgICAoZmllbGQucHJvcGVydGllcyBhcyBhbnkpLmNhbWVyYUNvbmZpZy5oZWFkZXIudGl0bGUsXG4gICAgICAgICAgICBsYW5ndWFnZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5SRUNPUkQ6XG4gICAgICAgICAgKGZpZWxkLnByb3BlcnRpZXMgYXMgYW55KS5jYW1lcmFDb25maWcuaGVhZGVyLnRpdGxlID0gdXBkYXRlTGFuZ3VhZ2UoXG4gICAgICAgICAgICAoZmllbGQucHJvcGVydGllcyBhcyBhbnkpLmNhbWVyYUNvbmZpZy5oZWFkZXIudGl0bGUsXG4gICAgICAgICAgICBsYW5ndWFnZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5TRUxFQ1Q6XG4gICAgICAgICAgZmllbGQub3B0aW9ucyA9IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdChvcHRpb24pKSB7XG4gICAgICAgICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhvcHRpb24sIFwidGl0bGVcIikpIHtcbiAgICAgICAgICAgICAgICBvcHRpb24udGl0bGUgPSB1cGRhdGVMYW5ndWFnZShvcHRpb24udGl0bGUsIGxhbmd1YWdlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvcHRpb24gPSB1cGRhdGVMYW5ndWFnZShvcHRpb24sIGxhbmd1YWdlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkRST1BET1dOX1dJVEhfU0VBUkNIOlxuICAgICAgICAgIGZpZWxkLm9wdGlvbnMgPSBmaWVsZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3Qob3B0aW9uKSkge1xuICAgICAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMob3B0aW9uLCBcInRpdGxlXCIpKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLnRpdGxlID0gdXBkYXRlTGFuZ3VhZ2Uob3B0aW9uLnRpdGxlLCBsYW5ndWFnZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uID0gdXBkYXRlTGFuZ3VhZ2Uob3B0aW9uLCBsYW5ndWFnZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcHRpb247XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5SQURJTzpcbiAgICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKG9wdGlvbiwgXCJsYWJlbFwiKSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbCA9IHVwZGF0ZUxhbmd1YWdlKG9wdGlvbi5sYWJlbCwgbGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9wdGlvbiA9IHVwZGF0ZUxhbmd1YWdlKG9wdGlvbiwgbGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQVBJX0NBTEw6XG4gICAgICAgICAgZmllbGQuYXBpLnN0YXR1cy5sYWJlbHMgPSB1cGRhdGVBcGlTdGF0dXMoZmllbGQuYXBpLnN0YXR1cy5sYWJlbHMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuTElWRV9MT0NBVElPTjpcbiAgICAgICAgICBmaWVsZC5hcGkuc3RhdHVzLmxhYmVscyA9IHVwZGF0ZUFwaVN0YXR1cyhmaWVsZC5hcGkuc3RhdHVzLmxhYmVscyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgZmllbGRzOiBhbnlbXSA9IGdldEZvcm1GaWVsZHMoZm9ybUNvbmZpZyk7XG5cbiAgICBsZXQgZmllbGRHcm91cHM6IGFueSA9IHt9O1xuXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkTGFuZ3VhZ2UoZmllbGQsIHRoaXMucmVzb2x2ZUxhbmd1YWdlKCkpO1xuXG4gICAgICBmaWVsZCA9IGZvcm1hdE9uRmllbGRUeXBlKGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZERpc2FiaWxpdHkoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkR3JvdXBLZXkoZmllbGQpO1xuXG4gICAgICBmaWVsZEdyb3VwcyA9IHVwZGF0ZUZvcm1GaWVsZEdyb3VwcyhmaWVsZEdyb3VwcywgZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkRGVmYXVsdFZhbHVlKGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZFZhbGlkYXRvcnMoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24oZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkTWVzc2FnZXMoZmllbGQpO1xuICAgIH1cblxuICAgIGZvcm1Db25maWcgPSBzZXRGb3JtRmllbGRHcm91cHMoZm9ybUNvbmZpZywgZmllbGRHcm91cHMpO1xuXG4gICAgZm9ybUNvbmZpZyA9IHNldEZvcm1GaWVsZHMoZm9ybUNvbmZpZywgZmllbGRzKTtcblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG59XG4iXX0=
@@ -54,4 +54,4 @@ export var EActionKey;
54
54
  EActionKey["ALERT_SHOW"] = "ALERT_SHOW";
55
55
  EActionKey["SET_HTML"] = "SET_HTML";
56
56
  })(EActionKey || (EActionKey = {}));
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmFjdGlvbnMuZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9kZWZpbml0aW9ucy9mb3JtLXZpZXcuYWN0aW9ucy5kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBTixJQUFZLFVBc0RYO0FBdERELFdBQVksVUFBVTtJQUNwQix5RUFBMkQsQ0FBQTtJQUMzRCxxQ0FBdUIsQ0FBQTtJQUN2QixpRUFBbUQsQ0FBQTtJQUNuRCwrQ0FBaUMsQ0FBQTtJQUNqQywyREFBNkMsQ0FBQTtJQUM3QyxpRUFBbUQsQ0FBQTtJQUNuRCx1REFBeUMsQ0FBQTtJQUN6Qyw2REFBK0MsQ0FBQTtJQUMvQywyRUFBNkQsQ0FBQTtJQUM3RCwyRUFBNkQsQ0FBQTtJQUM3RCx1REFBeUMsQ0FBQTtJQUN6Qyx1REFBeUMsQ0FBQTtJQUN6Qyx5REFBMkMsQ0FBQTtJQUMzQyxtREFBcUMsQ0FBQTtJQUNyQyxtREFBcUMsQ0FBQTtJQUNyQyx1Q0FBeUIsQ0FBQTtJQUN6Qix1Q0FBeUIsQ0FBQTtJQUN6QiwyQ0FBNkIsQ0FBQTtJQUM3Qiw2Q0FBK0IsQ0FBQTtJQUMvQix5Q0FBMkIsQ0FBQTtJQUMzQix5RUFBMkQsQ0FBQTtJQUMzRCx5RUFBMkQsQ0FBQTtJQUMzRCw2REFBK0MsQ0FBQTtJQUMvQyw2REFBK0MsQ0FBQTtJQUMvQyxxRUFBdUQsQ0FBQTtJQUN2RCwrQkFBaUIsQ0FBQTtJQUNqQixpREFBbUMsQ0FBQTtJQUNuQyxtREFBcUMsQ0FBQTtJQUNyQyxtREFBcUMsQ0FBQTtJQUNyQyx1REFBeUMsQ0FBQTtJQUN6Qyx5REFBMkMsQ0FBQTtJQUMzQyxxREFBdUMsQ0FBQTtJQUN2QywyREFBNkMsQ0FBQTtJQUM3QyxtQ0FBcUIsQ0FBQTtJQUNyQixxREFBdUMsQ0FBQTtJQUN2Qyw2REFBK0MsQ0FBQTtJQUMvQyw2Q0FBK0IsQ0FBQTtJQUMvQiwrREFBaUQsQ0FBQTtJQUNqRCx1RUFBeUQsQ0FBQTtJQUN6RCx5REFBMkMsQ0FBQTtJQUMzQyx1REFBeUMsQ0FBQTtJQUN6QyxpREFBbUMsQ0FBQTtJQUNuQywyQ0FBNkIsQ0FBQTtJQUM3QixpRUFBbUQsQ0FBQTtJQUNuRCxpRUFBbUQsQ0FBQTtJQUNuRCx5Q0FBMkIsQ0FBQTtJQUMzQix5Q0FBMkIsQ0FBQTtJQUMzQiw2REFBK0MsQ0FBQTtJQUMvQyx5REFBMkMsQ0FBQTtJQUMzQyxpREFBbUMsQ0FBQTtJQUNuQyxxQ0FBdUIsQ0FBQTtJQUN2Qix1Q0FBeUIsQ0FBQTtJQUN6QixtQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBdERXLFVBQVUsS0FBVixVQUFVLFFBc0RyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBUQWN0aW9uLCBUU291cmNlIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBUTWVzc2FnZSB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb21tb25zLmRlZmluaXRpb25cIjtcblxuZXhwb3J0IGVudW0gRUFjdGlvbktleSB7XG4gIFJFTU9WRV9LRVlfRlJPTV9PQkpFQ1RfUEFUSCA9IFwiUkVNT1ZFX0tFWV9GUk9NX09CSkVDVF9QQVRIXCIsXG4gIFNFVF9WQUxVRSA9IFwiU0VUX1ZBTFVFXCIsXG4gIFNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFID0gXCJTRVRfRklFTERfREVGQVVMVF9WQUxVRVwiLFxuICBTRVRfQVBJX1NUQVRVUyA9IFwiU0VUX0FQSV9TVEFUVVNcIixcbiAgU0VUX0FQSV9IRUFERVJfVkFMVUUgPSBcIlNFVF9BUElfSEVBREVSX1ZBTFVFXCIsXG4gIFNFVF9BUElfSEVBREVSX1ZBTElESVRZID0gXCJTRVRfQVBJX0hFQURFUl9WQUxJRElUWVwiLFxuICBTRVRfQVBJX0JPRFlfVkFMVUUgPSBcIlNFVF9BUElfQk9EWV9WQUxVRVwiLFxuICBTRVRfQVBJX0JPRFlfVkFMSURJVFkgPSBcIlNFVF9BUElfQk9EWV9WQUxJRElUWVwiLFxuICBGSUVMRF9BUElfVElNRVJfTUVTU0FHRV9TSE9XID0gXCJGSUVMRF9BUElfVElNRVJfTUVTU0FHRV9TSE9XXCIsXG4gIEZJRUxEX0FQSV9USU1FUl9NRVNTQUdFX0hJREUgPSBcIkZJRUxEX0FQSV9USU1FUl9NRVNTQUdFX0hJREVcIixcbiAgU0VUX0ZJRUxEX1ZBTElESVRZID0gXCJTRVRfRklFTERfVkFMSURJVFlcIixcbiAgRklFTERfTUVTU0FHRV9TSE9XID0gXCJGSUVMRF9NRVNTQUdFX1NIT1dcIixcbiAgRklFTERfTUVTU0FHRVNfSElERSA9IFwiRklFTERfTUVTU0FHRVNfSElERVwiLFxuICBGSUVMRF9FUlJPUl9TSE9XID0gXCJGSUVMRF9FUlJPUl9TSE9XXCIsXG4gIEZJRUxEX0VSUk9SX0hJREUgPSBcIkZJRUxEX0VSUk9SX0hJREVcIixcbiAgRklFTERfU0hPVyA9IFwiRklFTERfU0hPV1wiLFxuICBGSUVMRF9ISURFID0gXCJGSUVMRF9ISURFXCIsXG4gIEZJRUxEX0VOQUJMRSA9IFwiRklFTERfRU5BQkxFXCIsXG4gIEZJRUxEX0RJU0FCTEUgPSBcIkZJRUxEX0RJU0FCTEVcIixcbiAgRklFTERfUkVTRVQgPSBcIkZJRUxEX1JFU0VUXCIsXG4gIEZJRUxEX0dST1VQX1NIT1dfQVBJX0xPQURFUiA9IFwiRklFTERfR1JPVVBfU0hPV19BUElfTE9BREVSXCIsXG4gIEZJRUxEX0dST1VQX0hJREVfQVBJX0xPQURFUiA9IFwiRklFTERfR1JPVVBfSElERV9BUElfTE9BREVSXCIsXG4gIEZJRUxEX1NIT1dfQVBJX0xPQURFUiA9IFwiRklFTERfU0hPV19BUElfTE9BREVSXCIsXG4gIEZJRUxEX0hJREVfQVBJX0xPQURFUiA9IFwiRklFTERfSElERV9BUElfTE9BREVSXCIsXG4gIEhBTkRMRV9DT05ORUNURURfRUxFTUVOVFMgPSBcIkhBTkRMRV9DT05ORUNURURfRUxFTUVOVFNcIixcbiAgQ1VTVE9NID0gXCJDVVNUT01cIixcbiAgU0NST0xMX1RPX0ZJRUxEID0gXCJTQ1JPTExfVE9fRklFTERcIixcbiAgRklFTERfR1JPVVBfU0hPVyA9IFwiRklFTERfR1JPVVBfU0hPV1wiLFxuICBGSUVMRF9HUk9VUF9ISURFID0gXCJGSUVMRF9HUk9VUF9ISURFXCIsXG4gIEZJRUxEX0dST1VQX0VOQUJMRSA9IFwiRklFTERfR1JPVVBfRU5BQkxFXCIsXG4gIEZJRUxEX0dST1VQX0RJU0FCTEUgPSBcIkZJRUxEX0dST1VQX0RJU0FCTEVcIixcbiAgRklFTERfR1JPVVBfUkVTRVQgPSBcIkZJRUxEX0dST1VQX1JFU0VUXCIsXG4gIFNFVF9EUk9QRE9XTl9PUFRJT05TID0gXCJTRVRfRFJPUERPV05fT1BUSU9OU1wiLFxuICBBUElfQ0FMTCA9IFwiQVBJX0NBTExcIixcbiAgQVBJX0NBTExfTVVMVElQTEUgPSBcIkFQSV9DQUxMX01VTFRJUExFXCIsXG4gIEFQSV9DQUxMX01VTFRJUExFX0VORCA9IFwiQVBJX0NBTExfTVVMVElQTEVfRU5EXCIsXG4gIFRBU0tfQVBJX0NBTEwgPSBcIlRBU0tfQVBJX0NBTExcIixcbiAgVEFTS19BUElfQ0FMTF9NVUxUSVBMRSA9IFwiVEFTS19BUElfQ0FMTF9NVUxUSVBMRVwiLFxuICBUQVNLX0FQSV9DQUxMX01VTFRJUExFX0VORCA9IFwiVEFTS19BUElfQ0FMTF9NVUxUSVBMRV9FTkRcIixcbiAgUFJFVklFV19ESUFMT0dfU0hPVyA9IFwiUFJFVklFV19ESUFMT0dfU0hPV1wiLFxuICBQUkVWSUVXX0VSUk9SX1NIT1cgPSBcIlBSRVZJRVdfRVJST1JfU0hPV1wiLFxuICBQT1BVUF9GT1JNX1NIT1cgPSBcIlBPUFVQX0ZPUk1fU0hPV1wiLFxuICBTVE9QX1dBSVRJTkcgPSBcIlNUT1BfV0FJVElOR1wiLFxuICBOT1RJRklDQVRJT05fRVJST1JfU0hPVyA9IFwiTk9USUZJQ0FUSU9OX0VSUk9SX1NIT1dcIixcbiAgTk9USUZJQ0FUSU9OX0VSUk9SX0hJREUgPSBcIk5PVElGSUNBVElPTl9FUlJPUl9ISURFXCIsXG4gIERJQUxPR19TSE9XID0gXCJESUFMT0dfU0hPV1wiLFxuICBESUFMT0dfSElERSA9IFwiRElBTE9HX0hJREVcIixcbiAgUkVTVU1FX1RBU0tfRVhFQ1VUSU9OID0gXCJSRVNVTUVfVEFTS19FWEVDVVRJT05cIixcbiAgU1RPUF9UQVNLX0VYRUNVVElPTiA9IFwiU1RPUF9UQVNLX0VYRUNVVElPTlwiLFxuICBSRURJUkVDVF9UT19VUkwgPSBcIlJFRElSRUNUX1RPX1VSTFwiLFxuICBTQVZFX0ZPUk0gPSBcIlNBVkVfRk9STVwiLFxuICBBTEVSVF9TSE9XID0gXCJBTEVSVF9TSE9XXCIsXG4gIFNFVF9IVE1MID0gXCJTRVRfSFRNTFwiXG59XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25LZXkgPVxuICB8IEVBY3Rpb25LZXkuU0VUX1ZBTFVFXG4gIHwgRUFjdGlvbktleS5TRVRfRklFTERfREVGQVVMVF9WQUxVRVxuICB8IEVBY3Rpb25LZXkuU0VUX0FQSV9TVEFUVVNcbiAgfCBFQWN0aW9uS2V5LlNFVF9BUElfSEVBREVSX1ZBTFVFXG4gIHwgRUFjdGlvbktleS5TRVRfQVBJX0hFQURFUl9WQUxJRElUWVxuICB8IEVBY3Rpb25LZXkuU0VUX0FQSV9CT0RZX1ZBTFVFXG4gIHwgRUFjdGlvbktleS5TRVRfQVBJX0JPRFlfVkFMSURJVFlcbiAgfCBFQWN0aW9uS2V5LlNFVF9GSUVMRF9WQUxJRElUWVxuICB8IEVBY3Rpb25LZXkuRklFTERfQVBJX1RJTUVSX01FU1NBR0VfU0hPV1xuICB8IEVBY3Rpb25LZXkuRklFTERfQVBJX1RJTUVSX01FU1NBR0VfSElERVxuICB8IEVBY3Rpb25LZXkuRklFTERfTUVTU0FHRV9TSE9XXG4gIHwgRUFjdGlvbktleS5GSUVMRF9NRVNTQUdFU19ISURFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9FUlJPUl9TSE9XXG4gIHwgRUFjdGlvbktleS5GSUVMRF9FUlJPUl9ISURFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9TSE9XXG4gIHwgRUFjdGlvbktleS5GSUVMRF9ISURFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9FTkFCTEVcbiAgfCBFQWN0aW9uS2V5LkZJRUxEX0RJU0FCTEVcbiAgfCBFQWN0aW9uS2V5LkZJRUxEX1JFU0VUXG4gIHwgRUFjdGlvbktleS5GSUVMRF9HUk9VUF9TSE9XX0FQSV9MT0FERVJcbiAgfCBFQWN0aW9uS2V5LkZJRUxEX0dST1VQX0hJREVfQVBJX0xPQURFUlxuICB8IEVBY3Rpb25LZXkuRklFTERfU0hPV19BUElfTE9BREVSXG4gIHwgRUFjdGlvbktleS5GSUVMRF9ISURFX0FQSV9MT0FERVJcbiAgfCBFQWN0aW9uS2V5LkhBTkRMRV9DT05ORUNURURfRUxFTUVOVFNcbiAgfCBFQWN0aW9uS2V5LkNVU1RPTVxuICB8IEVBY3Rpb25LZXkuRklFTERfR1JPVVBfU0hPV1xuICB8IEVBY3Rpb25LZXkuRklFTERfR1JPVVBfSElERVxuICB8IEVBY3Rpb25LZXkuRklFTERfR1JPVVBfRU5BQkxFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9HUk9VUF9ESVNBQkxFXG4gIHwgRUFjdGlvbktleS5BUElfQ0FMTFxuICB8IEVBY3Rpb25LZXkuQVBJX0NBTExfTVVMVElQTEVcbiAgfCBFQWN0aW9uS2V5LkFQSV9DQUxMX01VTFRJUExFX0VORFxuICB8IEVBY3Rpb25LZXkuVEFTS19BUElfQ0FMTFxuICB8IEVBY3Rpb25LZXkuVEFTS19BUElfQ0FMTF9NVUxUSVBMRVxuICB8IEVBY3Rpb25LZXkuVEFTS19BUElfQ0FMTF9NVUxUSVBMRV9FTkRcbiAgfCBFQWN0aW9uS2V5LlNFVF9EUk9QRE9XTl9PUFRJT05TXG4gIHwgRUFjdGlvbktleS5QUkVWSUVXX0RJQUxPR19TSE9XXG4gIHwgRUFjdGlvbktleS5QT1BVUF9GT1JNX1NIT1dcbiAgfCBFQWN0aW9uS2V5LlNUT1BfV0FJVElOR1xuICB8IEVBY3Rpb25LZXkuTk9USUZJQ0FUSU9OX0VSUk9SX1NIT1dcbiAgfCBFQWN0aW9uS2V5Lk5PVElGSUNBVElPTl9FUlJPUl9ISURFXG4gIHwgRUFjdGlvbktleS5ESUFMT0dfU0hPV1xuICB8IEVBY3Rpb25LZXkuRElBTE9HX0hJREVcbiAgfCBFQWN0aW9uS2V5LlJFU1VNRV9UQVNLX0VYRUNVVElPTlxuICB8IEVBY3Rpb25LZXkuU1RPUF9UQVNLX0VYRUNVVElPTlxuICB8IEVBY3Rpb25LZXkuUkVESVJFQ1RfVE9fVVJMXG4gIHwgRUFjdGlvbktleS5TQVZFX0ZPUk1cbiAgfCBFQWN0aW9uS2V5LkFMRVJUX1NIT1dcbiAgfCBFQWN0aW9uS2V5LlNFVF9IVE1MO1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uU2V0VmFsdWUgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuU0VUX1ZBTFVFO1xuICBwcm9wczoge1xuICAgIHZhbHVlOiB7XG4gICAgICBzb3VyY2U6IFRTb3VyY2U7XG4gICAgICBkZXN0aW5hdGlvbjogVFNvdXJjZTtcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvblNldEZpZWxkRGVmYXVsdFZhbHVlID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gICAgc291cmNlOiBUU291cmNlO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvbkZpZWxkTWVzc2FnZVNob3cgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuRklFTERfTUVTU0FHRV9TSE9XO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gICAgbWVzc2FnZTogVE1lc3NhZ2U7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uRmllbGRNZXNzYWdlSGlkZSA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5GSUVMRF9NRVNTQUdFU19ISURFO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gICAgbWVzc2FnZTogVE1lc3NhZ2U7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uRmllbGRFcnJvclNob3cgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuRklFTERfRVJST1JfU0hPVztcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IFRNZXNzYWdlO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgSUZpZWxkRXJyb3JIaWRlID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkZJRUxEX0VSUk9SX0hJREU7XG4gIHByb3BzOiB7XG4gICAgZmllbGRLZXk6IHN0cmluZztcbiAgICBtZXNzYWdlOiBUTWVzc2FnZTtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25GaWVsZFNob3cgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuRklFTERfU0hPVztcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvbkZpZWxkSGlkZSA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5GSUVMRF9ISURFO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uRmllbGRFbmFibGUgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuRklFTERfRU5BQkxFO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uRmllbGREaXNhYmxlID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkZJRUxEX0RJU0FCTEU7XG4gIHByb3BzOiB7XG4gICAgZmllbGRLZXk6IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25GaWVsZFJlc2V0ID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkZJRUxEX1JFU0VUO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uSGFuZGxlQ29ubmVjdGVkRWxlbWVudCA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5IQU5ETEVfQ09OTkVDVEVEX0VMRU1FTlRTO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uQXBpQ2FsbCA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5BUElfQ0FMTDtcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICAgIGFwaUtleTogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvbkFwaUNhbGxzRG9uZSA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5BUElfQ0FMTDtcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvblByZXZpZXdEaWFsb2dTaG93ID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LlBSRVZJRVdfRElBTE9HX1NIT1c7XG4gIHByb3BzOiB7XG4gICAgaHRtbD86IHtcbiAgICAgIGJlZm9yZT86IHN0cmluZztcbiAgICAgIGFmdGVyPzogc3RyaW5nO1xuICAgIH07XG4gICAgaWZyYW1lPzoge1xuICAgICAgc3JjOiBzdHJpbmc7XG4gICAgICB0aXRsZT86IHN0cmluZztcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvblNldEh0bWwgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuU0VUX0hUTUw7XG4gIHByb3BzOiB7XG4gICAgZmllbGRLZXk6IHN0cmluZztcbiAgICBtZXNzYWdlOiBUTWVzc2FnZTtcbiAgfTtcbn07XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmFjdGlvbnMuZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9kZWZpbml0aW9ucy9mb3JtLXZpZXcuYWN0aW9ucy5kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBTixJQUFZLFVBc0RYO0FBdERELFdBQVksVUFBVTtJQUNwQix5RUFBMkQsQ0FBQTtJQUMzRCxxQ0FBdUIsQ0FBQTtJQUN2QixpRUFBbUQsQ0FBQTtJQUNuRCwrQ0FBaUMsQ0FBQTtJQUNqQywyREFBNkMsQ0FBQTtJQUM3QyxpRUFBbUQsQ0FBQTtJQUNuRCx1REFBeUMsQ0FBQTtJQUN6Qyw2REFBK0MsQ0FBQTtJQUMvQywyRUFBNkQsQ0FBQTtJQUM3RCwyRUFBNkQsQ0FBQTtJQUM3RCx1REFBeUMsQ0FBQTtJQUN6Qyx1REFBeUMsQ0FBQTtJQUN6Qyx5REFBMkMsQ0FBQTtJQUMzQyxtREFBcUMsQ0FBQTtJQUNyQyxtREFBcUMsQ0FBQTtJQUNyQyx1Q0FBeUIsQ0FBQTtJQUN6Qix1Q0FBeUIsQ0FBQTtJQUN6QiwyQ0FBNkIsQ0FBQTtJQUM3Qiw2Q0FBK0IsQ0FBQTtJQUMvQix5Q0FBMkIsQ0FBQTtJQUMzQix5RUFBMkQsQ0FBQTtJQUMzRCx5RUFBMkQsQ0FBQTtJQUMzRCw2REFBK0MsQ0FBQTtJQUMvQyw2REFBK0MsQ0FBQTtJQUMvQyxxRUFBdUQsQ0FBQTtJQUN2RCwrQkFBaUIsQ0FBQTtJQUNqQixpREFBbUMsQ0FBQTtJQUNuQyxtREFBcUMsQ0FBQTtJQUNyQyxtREFBcUMsQ0FBQTtJQUNyQyx1REFBeUMsQ0FBQTtJQUN6Qyx5REFBMkMsQ0FBQTtJQUMzQyxxREFBdUMsQ0FBQTtJQUN2QywyREFBNkMsQ0FBQTtJQUM3QyxtQ0FBcUIsQ0FBQTtJQUNyQixxREFBdUMsQ0FBQTtJQUN2Qyw2REFBK0MsQ0FBQTtJQUMvQyw2Q0FBK0IsQ0FBQTtJQUMvQiwrREFBaUQsQ0FBQTtJQUNqRCx1RUFBeUQsQ0FBQTtJQUN6RCx5REFBMkMsQ0FBQTtJQUMzQyx1REFBeUMsQ0FBQTtJQUN6QyxpREFBbUMsQ0FBQTtJQUNuQywyQ0FBNkIsQ0FBQTtJQUM3QixpRUFBbUQsQ0FBQTtJQUNuRCxpRUFBbUQsQ0FBQTtJQUNuRCx5Q0FBMkIsQ0FBQTtJQUMzQix5Q0FBMkIsQ0FBQTtJQUMzQiw2REFBK0MsQ0FBQTtJQUMvQyx5REFBMkMsQ0FBQTtJQUMzQyxpREFBbUMsQ0FBQTtJQUNuQyxxQ0FBdUIsQ0FBQTtJQUN2Qix1Q0FBeUIsQ0FBQTtJQUN6QixtQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBdERXLFVBQVUsS0FBVixVQUFVLFFBc0RyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBUQWN0aW9uLCBUU291cmNlIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBUTWVzc2FnZSB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb21tb25zLmRlZmluaXRpb25cIjtcblxuZXhwb3J0IGVudW0gRUFjdGlvbktleSB7XG4gIFJFTU9WRV9LRVlfRlJPTV9PQkpFQ1RfUEFUSCA9IFwiUkVNT1ZFX0tFWV9GUk9NX09CSkVDVF9QQVRIXCIsXG4gIFNFVF9WQUxVRSA9IFwiU0VUX1ZBTFVFXCIsXG4gIFNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFID0gXCJTRVRfRklFTERfREVGQVVMVF9WQUxVRVwiLFxuICBTRVRfQVBJX1NUQVRVUyA9IFwiU0VUX0FQSV9TVEFUVVNcIixcbiAgU0VUX0FQSV9IRUFERVJfVkFMVUUgPSBcIlNFVF9BUElfSEVBREVSX1ZBTFVFXCIsXG4gIFNFVF9BUElfSEVBREVSX1ZBTElESVRZID0gXCJTRVRfQVBJX0hFQURFUl9WQUxJRElUWVwiLFxuICBTRVRfQVBJX0JPRFlfVkFMVUUgPSBcIlNFVF9BUElfQk9EWV9WQUxVRVwiLFxuICBTRVRfQVBJX0JPRFlfVkFMSURJVFkgPSBcIlNFVF9BUElfQk9EWV9WQUxJRElUWVwiLFxuICBGSUVMRF9BUElfVElNRVJfTUVTU0FHRV9TSE9XID0gXCJGSUVMRF9BUElfVElNRVJfTUVTU0FHRV9TSE9XXCIsXG4gIEZJRUxEX0FQSV9USU1FUl9NRVNTQUdFX0hJREUgPSBcIkZJRUxEX0FQSV9USU1FUl9NRVNTQUdFX0hJREVcIixcbiAgU0VUX0ZJRUxEX1ZBTElESVRZID0gXCJTRVRfRklFTERfVkFMSURJVFlcIixcbiAgRklFTERfTUVTU0FHRV9TSE9XID0gXCJGSUVMRF9NRVNTQUdFX1NIT1dcIixcbiAgRklFTERfTUVTU0FHRVNfSElERSA9IFwiRklFTERfTUVTU0FHRVNfSElERVwiLFxuICBGSUVMRF9FUlJPUl9TSE9XID0gXCJGSUVMRF9FUlJPUl9TSE9XXCIsXG4gIEZJRUxEX0VSUk9SX0hJREUgPSBcIkZJRUxEX0VSUk9SX0hJREVcIixcbiAgRklFTERfU0hPVyA9IFwiRklFTERfU0hPV1wiLFxuICBGSUVMRF9ISURFID0gXCJGSUVMRF9ISURFXCIsXG4gIEZJRUxEX0VOQUJMRSA9IFwiRklFTERfRU5BQkxFXCIsXG4gIEZJRUxEX0RJU0FCTEUgPSBcIkZJRUxEX0RJU0FCTEVcIixcbiAgRklFTERfUkVTRVQgPSBcIkZJRUxEX1JFU0VUXCIsXG4gIEZJRUxEX0dST1VQX1NIT1dfQVBJX0xPQURFUiA9IFwiRklFTERfR1JPVVBfU0hPV19BUElfTE9BREVSXCIsXG4gIEZJRUxEX0dST1VQX0hJREVfQVBJX0xPQURFUiA9IFwiRklFTERfR1JPVVBfSElERV9BUElfTE9BREVSXCIsXG4gIEZJRUxEX1NIT1dfQVBJX0xPQURFUiA9IFwiRklFTERfU0hPV19BUElfTE9BREVSXCIsXG4gIEZJRUxEX0hJREVfQVBJX0xPQURFUiA9IFwiRklFTERfSElERV9BUElfTE9BREVSXCIsXG4gIEhBTkRMRV9DT05ORUNURURfRUxFTUVOVFMgPSBcIkhBTkRMRV9DT05ORUNURURfRUxFTUVOVFNcIixcbiAgQ1VTVE9NID0gXCJDVVNUT01cIixcbiAgU0NST0xMX1RPX0ZJRUxEID0gXCJTQ1JPTExfVE9fRklFTERcIixcbiAgRklFTERfR1JPVVBfU0hPVyA9IFwiRklFTERfR1JPVVBfU0hPV1wiLFxuICBGSUVMRF9HUk9VUF9ISURFID0gXCJGSUVMRF9HUk9VUF9ISURFXCIsXG4gIEZJRUxEX0dST1VQX0VOQUJMRSA9IFwiRklFTERfR1JPVVBfRU5BQkxFXCIsXG4gIEZJRUxEX0dST1VQX0RJU0FCTEUgPSBcIkZJRUxEX0dST1VQX0RJU0FCTEVcIixcbiAgRklFTERfR1JPVVBfUkVTRVQgPSBcIkZJRUxEX0dST1VQX1JFU0VUXCIsXG4gIFNFVF9EUk9QRE9XTl9PUFRJT05TID0gXCJTRVRfRFJPUERPV05fT1BUSU9OU1wiLFxuICBBUElfQ0FMTCA9IFwiQVBJX0NBTExcIixcbiAgQVBJX0NBTExfTVVMVElQTEUgPSBcIkFQSV9DQUxMX01VTFRJUExFXCIsXG4gIEFQSV9DQUxMX01VTFRJUExFX0VORCA9IFwiQVBJX0NBTExfTVVMVElQTEVfRU5EXCIsXG4gIFRBU0tfQVBJX0NBTEwgPSBcIlRBU0tfQVBJX0NBTExcIixcbiAgVEFTS19BUElfQ0FMTF9NVUxUSVBMRSA9IFwiVEFTS19BUElfQ0FMTF9NVUxUSVBMRVwiLFxuICBUQVNLX0FQSV9DQUxMX01VTFRJUExFX0VORCA9IFwiVEFTS19BUElfQ0FMTF9NVUxUSVBMRV9FTkRcIixcbiAgUFJFVklFV19ESUFMT0dfU0hPVyA9IFwiUFJFVklFV19ESUFMT0dfU0hPV1wiLFxuICBQUkVWSUVXX0VSUk9SX1NIT1cgPSBcIlBSRVZJRVdfRVJST1JfU0hPV1wiLFxuICBQT1BVUF9GT1JNX1NIT1cgPSBcIlBPUFVQX0ZPUk1fU0hPV1wiLFxuICBTVE9QX1dBSVRJTkcgPSBcIlNUT1BfV0FJVElOR1wiLFxuICBOT1RJRklDQVRJT05fRVJST1JfU0hPVyA9IFwiTk9USUZJQ0FUSU9OX0VSUk9SX1NIT1dcIixcbiAgTk9USUZJQ0FUSU9OX0VSUk9SX0hJREUgPSBcIk5PVElGSUNBVElPTl9FUlJPUl9ISURFXCIsXG4gIERJQUxPR19TSE9XID0gXCJESUFMT0dfU0hPV1wiLFxuICBESUFMT0dfSElERSA9IFwiRElBTE9HX0hJREVcIixcbiAgUkVTVU1FX1RBU0tfRVhFQ1VUSU9OID0gXCJSRVNVTUVfVEFTS19FWEVDVVRJT05cIixcbiAgU1RPUF9UQVNLX0VYRUNVVElPTiA9IFwiU1RPUF9UQVNLX0VYRUNVVElPTlwiLFxuICBSRURJUkVDVF9UT19VUkwgPSBcIlJFRElSRUNUX1RPX1VSTFwiLFxuICBTQVZFX0ZPUk0gPSBcIlNBVkVfRk9STVwiLFxuICBBTEVSVF9TSE9XID0gXCJBTEVSVF9TSE9XXCIsXG4gIFNFVF9IVE1MID0gXCJTRVRfSFRNTFwiXG59XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25LZXkgPVxuICB8IEVBY3Rpb25LZXkuU0VUX1ZBTFVFXG4gIHwgRUFjdGlvbktleS5TRVRfRklFTERfREVGQVVMVF9WQUxVRVxuICB8IEVBY3Rpb25LZXkuU0VUX0FQSV9TVEFUVVNcbiAgfCBFQWN0aW9uS2V5LlNFVF9BUElfSEVBREVSX1ZBTFVFXG4gIHwgRUFjdGlvbktleS5TRVRfQVBJX0hFQURFUl9WQUxJRElUWVxuICB8IEVBY3Rpb25LZXkuU0VUX0FQSV9CT0RZX1ZBTFVFXG4gIHwgRUFjdGlvbktleS5TRVRfQVBJX0JPRFlfVkFMSURJVFlcbiAgfCBFQWN0aW9uS2V5LlNFVF9GSUVMRF9WQUxJRElUWVxuICB8IEVBY3Rpb25LZXkuRklFTERfQVBJX1RJTUVSX01FU1NBR0VfU0hPV1xuICB8IEVBY3Rpb25LZXkuRklFTERfQVBJX1RJTUVSX01FU1NBR0VfSElERVxuICB8IEVBY3Rpb25LZXkuRklFTERfTUVTU0FHRV9TSE9XXG4gIHwgRUFjdGlvbktleS5GSUVMRF9NRVNTQUdFU19ISURFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9FUlJPUl9TSE9XXG4gIHwgRUFjdGlvbktleS5GSUVMRF9FUlJPUl9ISURFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9TSE9XXG4gIHwgRUFjdGlvbktleS5GSUVMRF9ISURFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9FTkFCTEVcbiAgfCBFQWN0aW9uS2V5LkZJRUxEX0RJU0FCTEVcbiAgfCBFQWN0aW9uS2V5LkZJRUxEX1JFU0VUXG4gIHwgRUFjdGlvbktleS5GSUVMRF9HUk9VUF9TSE9XX0FQSV9MT0FERVJcbiAgfCBFQWN0aW9uS2V5LkZJRUxEX0dST1VQX0hJREVfQVBJX0xPQURFUlxuICB8IEVBY3Rpb25LZXkuRklFTERfU0hPV19BUElfTE9BREVSXG4gIHwgRUFjdGlvbktleS5GSUVMRF9ISURFX0FQSV9MT0FERVJcbiAgfCBFQWN0aW9uS2V5LkhBTkRMRV9DT05ORUNURURfRUxFTUVOVFNcbiAgfCBFQWN0aW9uS2V5LkNVU1RPTVxuICB8IEVBY3Rpb25LZXkuRklFTERfR1JPVVBfU0hPV1xuICB8IEVBY3Rpb25LZXkuRklFTERfR1JPVVBfSElERVxuICB8IEVBY3Rpb25LZXkuRklFTERfR1JPVVBfRU5BQkxFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9HUk9VUF9ESVNBQkxFXG4gIHwgRUFjdGlvbktleS5GSUVMRF9HUk9VUF9SRVNFVFxuICB8IEVBY3Rpb25LZXkuQVBJX0NBTExcbiAgfCBFQWN0aW9uS2V5LkFQSV9DQUxMX01VTFRJUExFXG4gIHwgRUFjdGlvbktleS5BUElfQ0FMTF9NVUxUSVBMRV9FTkRcbiAgfCBFQWN0aW9uS2V5LlRBU0tfQVBJX0NBTExcbiAgfCBFQWN0aW9uS2V5LlRBU0tfQVBJX0NBTExfTVVMVElQTEVcbiAgfCBFQWN0aW9uS2V5LlRBU0tfQVBJX0NBTExfTVVMVElQTEVfRU5EXG4gIHwgRUFjdGlvbktleS5TRVRfRFJPUERPV05fT1BUSU9OU1xuICB8IEVBY3Rpb25LZXkuUFJFVklFV19ESUFMT0dfU0hPV1xuICB8IEVBY3Rpb25LZXkuUE9QVVBfRk9STV9TSE9XXG4gIHwgRUFjdGlvbktleS5TVE9QX1dBSVRJTkdcbiAgfCBFQWN0aW9uS2V5Lk5PVElGSUNBVElPTl9FUlJPUl9TSE9XXG4gIHwgRUFjdGlvbktleS5OT1RJRklDQVRJT05fRVJST1JfSElERVxuICB8IEVBY3Rpb25LZXkuRElBTE9HX1NIT1dcbiAgfCBFQWN0aW9uS2V5LkRJQUxPR19ISURFXG4gIHwgRUFjdGlvbktleS5SRVNVTUVfVEFTS19FWEVDVVRJT05cbiAgfCBFQWN0aW9uS2V5LlNUT1BfVEFTS19FWEVDVVRJT05cbiAgfCBFQWN0aW9uS2V5LlJFRElSRUNUX1RPX1VSTFxuICB8IEVBY3Rpb25LZXkuU0FWRV9GT1JNXG4gIHwgRUFjdGlvbktleS5BTEVSVF9TSE9XXG4gIHwgRUFjdGlvbktleS5TRVRfSFRNTDtcblxuZXhwb3J0IHR5cGUgVEFjdGlvblNldFZhbHVlID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LlNFVF9WQUxVRTtcbiAgcHJvcHM6IHtcbiAgICB2YWx1ZToge1xuICAgICAgc291cmNlOiBUU291cmNlO1xuICAgICAgZGVzdGluYXRpb246IFRTb3VyY2U7XG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25TZXRGaWVsZERlZmF1bHRWYWx1ZSA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5TRVRfRklFTERfREVGQVVMVF9WQUxVRTtcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICAgIHNvdXJjZTogVFNvdXJjZTtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25GaWVsZE1lc3NhZ2VTaG93ID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkZJRUxEX01FU1NBR0VfU0hPVztcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IFRNZXNzYWdlO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvbkZpZWxkTWVzc2FnZUhpZGUgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuRklFTERfTUVTU0FHRVNfSElERTtcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IFRNZXNzYWdlO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvbkZpZWxkRXJyb3JTaG93ID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkZJRUxEX0VSUk9SX1NIT1c7XG4gIHByb3BzOiB7XG4gICAgZmllbGRLZXk6IHN0cmluZztcbiAgICBtZXNzYWdlOiBUTWVzc2FnZTtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIElGaWVsZEVycm9ySGlkZSA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5GSUVMRF9FUlJPUl9ISURFO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gICAgbWVzc2FnZT86IFRNZXNzYWdlO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvbkZpZWxkR3JvdXBSZXNldCA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5GSUVMRF9HUk9VUF9SRVNFVDtcbiAgcHJvcHM6IHtcbiAgICBncm91cEtleTogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvbkZpZWxkU2hvdyA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5GSUVMRF9TSE9XO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uRmllbGRIaWRlID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkZJRUxEX0hJREU7XG4gIHByb3BzOiB7XG4gICAgZmllbGRLZXk6IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25GaWVsZEVuYWJsZSA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5GSUVMRF9FTkFCTEU7XG4gIHByb3BzOiB7XG4gICAgZmllbGRLZXk6IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25GaWVsZERpc2FibGUgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuRklFTERfRElTQUJMRTtcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEFjdGlvbkZpZWxkUmVzZXQgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuRklFTERfUkVTRVQ7XG4gIHByb3BzOiB7XG4gICAgZmllbGRLZXk6IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25IYW5kbGVDb25uZWN0ZWRFbGVtZW50ID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkhBTkRMRV9DT05ORUNURURfRUxFTUVOVFM7XG4gIHByb3BzOiB7XG4gICAgZmllbGRLZXk6IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRBY3Rpb25BcGlDYWxsID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkFQSV9DQUxMO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gICAgYXBpS2V5OiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uQXBpQ2FsbHNEb25lID0gVEFjdGlvbiAmIHtcbiAga2V5OiBFQWN0aW9uS2V5LkFQSV9DQUxMO1xuICBwcm9wczoge1xuICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uUHJldmlld0RpYWxvZ1Nob3cgPSBUQWN0aW9uICYge1xuICBrZXk6IEVBY3Rpb25LZXkuUFJFVklFV19ESUFMT0dfU0hPVztcbiAgcHJvcHM6IHtcbiAgICBodG1sPzoge1xuICAgICAgYmVmb3JlPzogc3RyaW5nO1xuICAgICAgYWZ0ZXI/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBpZnJhbWU/OiB7XG4gICAgICBzcmM6IHN0cmluZztcbiAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBUQWN0aW9uU2V0SHRtbCA9IFRBY3Rpb24gJiB7XG4gIGtleTogRUFjdGlvbktleS5TRVRfSFRNTDtcbiAgcHJvcHM6IHtcbiAgICBmaWVsZEtleTogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IFRNZXNzYWdlO1xuICB9O1xufTtcbiJdfQ==
@@ -25,9 +25,11 @@ export var EFieldType;
25
25
  EFieldType["EMAIL"] = "email";
26
26
  EFieldType["CAPTURE"] = "capture";
27
27
  EFieldType["RECORD"] = "record";
28
+ EFieldType["MIC"] = "mic";
28
29
  EFieldType["STAR_RATING"] = "star-rating";
29
30
  EFieldType["LIVE_LOCATION"] = "live-location";
30
31
  EFieldType["DATA_HOLDER"] = "data-holder";
31
32
  EFieldType["CURRENCY"] = "currency";
33
+ EFieldType["MASKED"] = "masked";
32
34
  })(EFieldType || (EFieldType = {}));
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQU4sSUFBWSxVQThCWDtBQTlCRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLDZCQUFlLENBQUE7SUFDZiwyQkFBYSxDQUFBO0lBQ2IsK0JBQWlCLENBQUE7SUFDakIsbUNBQXFCLENBQUE7SUFDckIsbUNBQXFCLENBQUE7SUFDckIsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtJQUNiLDJCQUFhLENBQUE7SUFDYiw2QkFBZSxDQUFBO0lBQ2YsNkNBQStCLENBQUE7SUFDL0IsNkJBQWUsQ0FBQTtJQUNmLDZCQUFlLENBQUE7SUFDZiwrQkFBaUIsQ0FBQTtJQUNqQiwyREFBNkMsQ0FBQTtJQUM3QyxtQ0FBcUIsQ0FBQTtJQUNyQix5QkFBVyxDQUFBO0lBQ1gseUJBQVcsQ0FBQTtJQUNYLCtDQUFpQyxDQUFBO0lBQ2pDLCtCQUFpQixDQUFBO0lBQ2pCLDJCQUFhLENBQUE7SUFDYixtQ0FBcUIsQ0FBQTtJQUNyQiw2QkFBZSxDQUFBO0lBQ2YsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIseUNBQTJCLENBQUE7SUFDM0IsNkNBQStCLENBQUE7SUFDL0IseUNBQTJCLENBQUE7SUFDM0IsbUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQTlCVyxVQUFVLEtBQVYsVUFBVSxRQThCckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuaW1wb3J0IHsgVEFjdGlvbiwgVEVuZ2luZSwgVFJ1bGUsIFRTb3VyY2UgfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IFRBcGkgfSBmcm9tIFwiLi9mb3JtLXZpZXcuYXBpcy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUTWVzc2FnZSB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb21tb25zLmRlZmluaXRpb25cIjtcbmltcG9ydCB7IFRWYWxpZGF0b3IgfSBmcm9tIFwiLi9mb3JtLXZpZXcuZm9ybS12YWxpZGF0aW9ucy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUVHJpZ2dlciB9IGZyb20gXCIuL2Zvcm0tdmlldy50cmlnZ2Vycy5kZWZpbml0aW9uXCI7XG5cbmV4cG9ydCBlbnVtIEVGaWVsZFR5cGUge1xuICBIVE1MID0gXCJodG1sXCIsXG4gIFRJVExFID0gXCJ0aXRsZVwiLFxuICBURVhUID0gXCJ0ZXh0XCIsXG4gIEJVVFRPTiA9IFwiYnV0dG9uXCIsXG4gIFRFWFRBUkVBID0gXCJ0ZXh0YXJlYVwiLFxuICBDSEVDS0JPWCA9IFwiY2hlY2tib3hcIixcbiAgTlVNQkVSID0gXCJudW1iZXJcIixcbiAgREFURSA9IFwiZGF0ZVwiLFxuICBUSU1FID0gXCJ0aW1lXCIsXG4gIElNQUdFID0gXCJpbWFnZVwiLFxuICBQUkVWSUVXX0lNQUdFID0gXCJwcmV2aWV3LWltYWdlXCIsXG4gIFBIT05FID0gXCJwaG9uZVwiLFxuICBSQURJTyA9IFwicmFkaW9cIixcbiAgU0VMRUNUID0gXCJzZWxlY3RcIixcbiAgRFJPUERPV05fV0lUSF9TRUFSQ0ggPSBcImRyb3Bkb3duLXdpdGgtc2VhcmNoXCIsXG4gIEFQSV9DQUxMID0gXCJhcGktY2FsbFwiLFxuICBBUEkgPSBcImFwaVwiLFxuICBPVFAgPSBcIm90cFwiLFxuICBBQURIQUFSX05VTUJFUiA9IFwiYWFkaGFhci1udW1iZXJcIixcbiAgU0xJREVSID0gXCJzbGlkZXJcIixcbiAgRklMRSA9IFwiZmlsZVwiLFxuICBQQVNTV09SRCA9IFwicGFzc3dvcmRcIixcbiAgRU1BSUwgPSBcImVtYWlsXCIsXG4gIENBUFRVUkUgPSBcImNhcHR1cmVcIixcbiAgUkVDT1JEID0gXCJyZWNvcmRcIixcbiAgU1RBUl9SQVRJTkcgPSBcInN0YXItcmF0aW5nXCIsXG4gIExJVkVfTE9DQVRJT04gPSBcImxpdmUtbG9jYXRpb25cIixcbiAgREFUQV9IT0xERVIgPSBcImRhdGEtaG9sZGVyXCIsXG4gIENVUlJFTkNZID0gXCJjdXJyZW5jeVwiXG59XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFR5cGUgPVxuICB8IEVGaWVsZFR5cGUuSFRNTFxuICB8IEVGaWVsZFR5cGUuVElUTEVcbiAgfCBFRmllbGRUeXBlLkJVVFRPTlxuICB8IEVGaWVsZFR5cGUuVEVYVFxuICB8IEVGaWVsZFR5cGUuVEVYVEFSRUFcbiAgfCBFRmllbGRUeXBlLkNIRUNLQk9YXG4gIHwgRUZpZWxkVHlwZS5OVU1CRVJcbiAgfCBFRmllbGRUeXBlLkRBVEVcbiAgfCBFRmllbGRUeXBlLlRJTUVcbiAgfCBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0VcbiAgfCBFRmllbGRUeXBlLlBIT05FXG4gIHwgRUZpZWxkVHlwZS5SQURJT1xuICB8IEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0hcbiAgfCBFRmllbGRUeXBlLlNFTEVDVFxuICB8IEVGaWVsZFR5cGUuQVBJXG4gIHwgRUZpZWxkVHlwZS5BUElfQ0FMTFxuICB8IEVGaWVsZFR5cGUuT1RQXG4gIHwgRUZpZWxkVHlwZS5BQURIQUFSX05VTUJFUlxuICB8IEVGaWVsZFR5cGUuU0xJREVSXG4gIHwgRUZpZWxkVHlwZS5GSUxFXG4gIHwgRUZpZWxkVHlwZS5QQVNTV09SRFxuICB8IEVGaWVsZFR5cGUuRU1BSUxcbiAgfCBFRmllbGRUeXBlLkNBUFRVUkVcbiAgfCBFRmllbGRUeXBlLlJFQ09SRFxuICB8IEVGaWVsZFR5cGUuU1RBUl9SQVRJTkdcbiAgfCBFRmllbGRUeXBlLkxJVkVfTE9DQVRJT05cbiAgfCBFRmllbGRUeXBlLkRBVEFfSE9MREVSXG4gIHwgRUZpZWxkVHlwZS5DVVJSRU5DWTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkU2VsZWN0T3B0aW9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUmFkaW9PcHRpb24gPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRpc2FibGVkOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGVmYXVsdFZhbHVlID0ge1xuICB2YWx1ZTogYW55O1xuICBzb3VyY2U/OiBURW5naW5lO1xuICBzb3VyY2VzPzogQXJyYXk8VFNvdXJjZT47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREZWZhdWx0RHJvcGRvd25PcHRpb25zID0ge1xuICB0cmlnZ2VyczogVFRyaWdnZXJbXTtcbiAgcnVsZXM6IFRSdWxlW107XG4gIGFjdGlvbnM6IFRBY3Rpb25bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERlZmF1bHRBcGlWYWx1ZSA9IHtcbiAgdHJpZ2dlcnM6IFRUcmlnZ2VyW107XG4gIHJ1bGVzOiBUUnVsZVtdO1xuICBhY3Rpb25zOiBUQWN0aW9uW107XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREZWZhdWx0ID0ge1xuICB2YWx1ZTogVEZpZWxkRGVmYXVsdFZhbHVlO1xuICBvcHRpb25zOiBURmllbGREZWZhdWx0RHJvcGRvd25PcHRpb25zO1xuICBhcGk6IFRGaWVsZERlZmF1bHRBcGlWYWx1ZTtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFRleHRQcm9wZXJ0aWVzID0ge1xuICBjYXNlOiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDdXJyZW5jeVByb3BlcnRpZXMgPSB7XG4gIGNvbnRhaW5lclN0eWxlczogc3RyaW5nO1xuICBjdXJyZW5jeVR5cGU6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEVtYWlsUHJvcGVydGllcyA9IHtcbiAgY2FzZTogc3RyaW5nO1xuICBkb21haW5zOiBBcnJheTxzdHJpbmc+O1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUGFzc3dvcmRQcm9wZXJ0aWVzID0ge1xuICBpc1Nob3dMYWJlbE91dHNpZGU6IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIGhpbnRDb250ZW50OiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRUZXh0YXJlYVByb3BlcnRpZXMgPSB7XG4gIGlzU2hvd0xhYmVsT3V0c2lkZTogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZENoZWNrYm94UHJvcGVydGllcyA9IHtcbiAgY29udGVudEFsaWduOiBzdHJpbmc7XG4gIHNpemU6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE51bWJlclByb3BlcnRpZXMgPSB7XG4gIGlzU2hvd0xhYmVsT3V0c2lkZTogYm9vbGVhbjtcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xuICBwcmVmaXg6IG51bWJlcjtcbiAgcG9zdGZpeDogbnVtYmVyO1xuICBwcmVjaXNpb246IG51bWJlcjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgZGVjaW1hbDogc3RyaW5nO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERhdGVQcm9wZXJ0aWVzID0ge1xuICBpc1Nob3dMYWJlbE91dHNpZGU6IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIG1pbjoge1xuICAgIHllYXI6IG51bWJlcjtcbiAgICBtb250aDogbnVtYmVyO1xuICAgIGRheTogbnVtYmVyO1xuICB9O1xuICBtYXg6IHtcbiAgICB5ZWFyOiBudW1iZXI7XG4gICAgbW9udGg6IG51bWJlcjtcbiAgICBkYXk6IG51bWJlcjtcbiAgfTtcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQaG9uZVByb3BlcnRpZXMgPSB7XG4gIGlzU2hvd0xhYmVsT3V0c2lkZTogYm9vbGVhbjtcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZTogc3RyaW5nO1xuICByZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZTogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQcmV2aWV3SW1hZ2VQcm9wZXJ0aWVzID0ge1xuICBhbHRUZXh0OiBzdHJpbmc7XG4gIGh0bWw6IHtcbiAgICBiZWZvcmU6IHN0cmluZztcbiAgICBhZnRlcjogc3RyaW5nO1xuICB9O1xuICBpbWFnZVR5cGU6IHN0cmluZztcbiAgbG9hZGluZ1R5cGU6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFNsaWRlclByb3BlcnRpZXMgPSB7XG4gIGlzU2hvd0xhYmVsT3V0c2lkZTogYm9vbGVhbjtcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xuICBzdGVwOiBudW1iZXI7XG4gIHF1YW50dW06IG51bWJlcjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRSYWRpb1Byb3BlcnRpZXMgPSB7XG4gIHNpemU6IHN0cmluZztcbiAgb3JpZW50YXRpb246IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFNlbGVjdFByb3BlcnRpZXMgPSB7XG4gIGlzU2hvd0xhYmVsT3V0c2lkZTogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRBcGlDYWxsUHJvcGVydGllcyA9IHt9O1xuXG5leHBvcnQgdHlwZSBURmllbGREYXRhSG9sZGVyUHJvcGVydGllcyA9IHt9O1xuXG5leHBvcnQgdHlwZSBURmllbGRPdHBQcm9wZXJ0aWVzID0ge1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBtYXNrOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRBYWRoYWFyTnVtYmVyUHJvcGVydGllcyA9IHtcbiAgbWFzazogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQ2FwdHVyZVByb3BlcnRpZXMgPSB7XG4gIGNvbnRhaW5lclN0eWxlczogc3RyaW5nO1xuICBidXR0b25UZXh0OiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgc2hvd01lZGlhRmlsZXM6IGJvb2xlYW47XG4gIHVwbG9hZEZpbGVUb1NlcnZlcjogYm9vbGVhbjtcbiAgaXNDcm9wcGVkSW1hZ2U6IGJvb2xlYW47XG4gIGlzTWFza2VkSW1hZ2U6IGJvb2xlYW47XG4gIGZlYXR1cmVzOiB7XG4gICAgb2NyOiB7XG4gICAgICBpc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgICBkb2N1bWVudFR5cGU6IFwiUEFOXCIgfCBcIkFBREhBQVJcIjtcbiAgICAgIGRvY3VtZW50U2lkZTogXCJGUk9OVFwiIHwgXCJCQUNLXCI7XG4gICAgICBpc09jckZyb21TZXJ2ZXI6IGJvb2xlYW47XG4gICAgfTtcbiAgICBmYWNlbWF0Y2g6IHtcbiAgICAgIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIGlzRmFjZW1hdGNoRnJvbVNlcnZlcjogYm9vbGVhbjtcbiAgICAgIHNvdXJjZXM6IFRTb3VyY2VbXTtcbiAgICB9O1xuICAgIGxpdmVsaW5lc3M6IHtcbiAgICAgIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIGlzTGl2ZWxpbmVzc0Zyb21TZXJ2ZXI6IGJvb2xlYW47XG4gICAgfTtcbiAgICB3YXRlcm1hcms6IHtcbiAgICAgIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIGlzV2F0ZXJtYXJrRnJvbVNlcnZlcjogYm9vbGVhbjtcbiAgICAgIHNvdXJjZXM6IFRTb3VyY2VbXTtcbiAgICB9O1xuICB9O1xuICBjYW1lcmFDb25maWc6IHtcbiAgICBoZWFkZXI6IHtcbiAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICBpc0JhY2s6IGJvb2xlYW47XG4gICAgICBpc0V4cGFuZDogYm9vbGVhbjtcbiAgICAgIGlzQ2xvc2U6IGJvb2xlYW47XG4gICAgfTtcbiAgICBmb290ZXI6IHtcbiAgICAgIGlzVXBsb2FkOiBib29sZWFuO1xuICAgICAgaXNGbGlwOiBib29sZWFuO1xuICAgICAgaXNTd2l0Y2g6IGJvb2xlYW47XG4gICAgfTtcbiAgICBvdGhlcnM6IHtcbiAgICAgIGlzRnJvbnRDYW1lcmE6IGJvb2xlYW47XG4gICAgICBmbGlwSG9yaXpvbnRhbDogYm9vbGVhbjtcbiAgICAgIG1hc2s6IHtcbiAgICAgICAgc2hhcGU6IHN0cmluZztcbiAgICAgIH07XG4gICAgICBwcmV2aWV3OiB7XG4gICAgICAgIHNob3c6IGJvb2xlYW47XG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIGlzQmFjazogYm9vbGVhbjtcbiAgICAgICAgICBpc0Nsb3NlOiBib29sZWFuO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUmVjb3JkUHJvcGVydGllcyA9IHtcbiAgY29udGFpbmVyU3R5bGVzOiBzdHJpbmc7XG4gIGJ1dHRvblRleHQ6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBzaG93TWVkaWFGaWxlczogYm9vbGVhbjtcbiAgdXBsb2FkRmlsZVRvU2VydmVyOiBib29sZWFuO1xuICBjYW1lcmFDb25maWc6IHtcbiAgICBoZWFkZXI6IHtcbiAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICBpc0JhY2s6IGJvb2xlYW47XG4gICAgICBpc0V4cGFuZDogYm9vbGVhbjtcbiAgICAgIGlzQ2xvc2U6IGJvb2xlYW47XG4gICAgfTtcbiAgICBmb290ZXI6IHtcbiAgICAgIGlzVXBsb2FkOiBib29sZWFuO1xuICAgICAgaXNGbGlwOiBib29sZWFuO1xuICAgICAgaXNTd2l0Y2g6IGJvb2xlYW47XG4gICAgfTtcbiAgICBvdGhlcnM6IHtcbiAgICAgIGlzRnJvbnRDYW1lcmE6IGJvb2xlYW47XG4gICAgICBmbGlwSG9yaXpvbnRhbDogYm9vbGVhbjtcbiAgICAgIG1pblJlY29yZGluZ1RpbWVJblNlY29uZHM6IG51bWJlcjtcbiAgICAgIG1heFJlY29yZGluZ1RpbWVJblNlY29uZHM6IG51bWJlcjtcbiAgICAgIHByZXZpZXc6IHtcbiAgICAgICAgc2hvdzogYm9vbGVhbjtcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgaXNCYWNrOiBib29sZWFuO1xuICAgICAgICAgIGlzQ2xvc2U6IGJvb2xlYW47XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRTdGFyUmF0aW5nUHJvcGVydGllcyA9IHtcbiAgY29sb3I6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBpY29uTWFya2VkOiBzdHJpbmc7XG4gIG1pbjogbnVtYmVyO1xuICBtYXg6IG51bWJlcjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgc2l6ZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkTGl2ZUxvY2F0aW9uUHJvcGVydGllcyA9IHtcbiAgaXNHZXRMb2NhdGlvbkZyb21MYXRMb25nOiBib29sZWFuO1xuICBpc1Nob3dMYXRMb25nQ2FwdHVyZVRpbWVzdGFtcDogYm9vbGVhbjtcbiAgY29sb3I6IHN0cmluZztcbiAgY29udGFpbmVyU3R5bGVzOiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHNpemU6IHN0cmluZztcbiAgc3R5bGVzOiBzdHJpbmc7XG4gIHNoYXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQcm9wZXJ0aWVzID1cbiAgfCBURmllbGRUZXh0UHJvcGVydGllc1xuICB8IFRGaWVsZEN1cnJlbmN5UHJvcGVydGllc1xuICB8IFRGaWVsZEVtYWlsUHJvcGVydGllc1xuICB8IFRGaWVsZFBhc3N3b3JkUHJvcGVydGllc1xuICB8IFRGaWVsZFRleHRhcmVhUHJvcGVydGllc1xuICB8IFRGaWVsZENoZWNrYm94UHJvcGVydGllc1xuICB8IFRGaWVsZE51bWJlclByb3BlcnRpZXNcbiAgfCBURmllbGREYXRlUHJvcGVydGllc1xuICB8IFRGaWVsZFBob25lUHJvcGVydGllc1xuICB8IFRGaWVsZFByZXZpZXdJbWFnZVByb3BlcnRpZXNcbiAgfCBURmllbGRTbGlkZXJQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkUmFkaW9Qcm9wZXJ0aWVzXG4gIHwgVEZpZWxkU2VsZWN0UHJvcGVydGllc1xuICB8IFRGaWVsZEFwaUNhbGxQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkT3RwUHJvcGVydGllc1xuICB8IFRGaWVsZEFhZGhhYXJOdW1iZXJQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkQ2FwdHVyZVByb3BlcnRpZXNcbiAgfCBURmllbGRSZWNvcmRQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkU3RhclJhdGluZ1Byb3BlcnRpZXNcbiAgfCBURmllbGRMaXZlTG9jYXRpb25Qcm9wZXJ0aWVzO1xuXG5leHBvcnQgdHlwZSBURmllbGQgPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHR5cGU6IFRGaWVsZFR5cGU7XG4gIGtleTogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgbWVzc2FnZXM6IEFycmF5PFRNZXNzYWdlPjtcbiAgZGVmYXVsdDogVEZpZWxkRGVmYXVsdDtcbiAgdmFsaWRhdG9yczogVFZhbGlkYXRvcjtcbiAgdmFsaWRhdGlvbjogVEVuZ2luZTtcbiAgYXBpPzogVEFwaTtcbiAgcHJvcGVydGllczogVEZpZWxkUHJvcGVydGllcztcbiAgb3B0aW9ucz86IEFycmF5PGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRUaXRsZSA9IHtcbiAgdHlwZTogVEZpZWxkVHlwZTtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIHJlc2V0Pzoge1xuICAgIGZpZWxkczogQXJyYXk8e1xuICAgICAgZmllbGRLZXk6IHN0cmluZztcbiAgICAgIGFjdGlvbnM6IEFycmF5PFRBY3Rpb24+O1xuICAgIH0+O1xuICAgIGZpZWxkR3JvdXBzOiBBcnJheTx7XG4gICAgICBncm91cEtleTogc3RyaW5nO1xuICAgICAgYWN0aW9uczogQXJyYXk8VEFjdGlvbj47XG4gICAgfT47XG4gIH07XG4gIHByb3BlcnRpZXM/OiB7XG4gICAgYnlwYXNzUmVzZXRDb25maXJtYXRpb24/OiBib29sZWFuO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGV4dCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkVGV4dFByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDdXJyZW5jeSA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkQ3VycmVuY3lQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGV4dEFyZWEgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZFRleHRhcmVhUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZENoZWNrYm94ID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRDaGVja2JveFByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGROdW1iZXIgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZE51bWJlclByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREYXRlID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGREYXRlUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFBob25lID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRQaG9uZVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRSYWRpbyA9IFRGaWVsZCAmIHtcbiAgb3B0aW9uczogQXJyYXk8VEZpZWxkUmFkaW9PcHRpb24+O1xuICBwcm9wZXJ0aWVzOiBURmllbGRSYWRpb1Byb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRFbWFpbCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkRW1haWxQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkU2VsZWN0ID0gVEZpZWxkICYge1xuICBvcHRpb25zOiBBcnJheTxURmllbGRTZWxlY3RPcHRpb24+O1xuICBwcm9wZXJ0aWVzOiBURmllbGRTZWxlY3RQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQXBpQ2FsbCA9IFRGaWVsZCAmIHtcbiAgYXBpOiBUQXBpO1xuICBzaG93TG9hZGVyOiBib29sZWFuO1xuICBwcm9wZXJ0aWVzOiBURmllbGRBcGlDYWxsUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZExpdmVMb2NhdGlvbiA9IFRGaWVsZCAmIHtcbiAgYXBpOiBUQXBpO1xuICBwcm9wZXJ0aWVzOiBURmllbGRMaXZlTG9jYXRpb25Qcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkT3RwID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRPdHBQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQWFkaGFhck51bWJlciA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkQWFkaGFhck51bWJlclByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQcmV2aWV3SW1hZ2UgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZFByZXZpZXdJbWFnZVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDYXB0dXJlID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRDYXB0dXJlUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFN0YXJSYXRpbmcgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZFN0YXJSYXRpbmdQcm9wZXJ0aWVzO1xufTtcbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQU4sSUFBWSxVQWdDWDtBQWhDRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLDZCQUFlLENBQUE7SUFDZiwyQkFBYSxDQUFBO0lBQ2IsK0JBQWlCLENBQUE7SUFDakIsbUNBQXFCLENBQUE7SUFDckIsbUNBQXFCLENBQUE7SUFDckIsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtJQUNiLDJCQUFhLENBQUE7SUFDYiw2QkFBZSxDQUFBO0lBQ2YsNkNBQStCLENBQUE7SUFDL0IsNkJBQWUsQ0FBQTtJQUNmLDZCQUFlLENBQUE7SUFDZiwrQkFBaUIsQ0FBQTtJQUNqQiwyREFBNkMsQ0FBQTtJQUM3QyxtQ0FBcUIsQ0FBQTtJQUNyQix5QkFBVyxDQUFBO0lBQ1gseUJBQVcsQ0FBQTtJQUNYLCtDQUFpQyxDQUFBO0lBQ2pDLCtCQUFpQixDQUFBO0lBQ2pCLDJCQUFhLENBQUE7SUFDYixtQ0FBcUIsQ0FBQTtJQUNyQiw2QkFBZSxDQUFBO0lBQ2YsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIseUJBQVcsQ0FBQTtJQUNYLHlDQUEyQixDQUFBO0lBQzNCLDZDQUErQixDQUFBO0lBQy9CLHlDQUEyQixDQUFBO0lBQzNCLG1DQUFxQixDQUFBO0lBQ3JCLCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFoQ1csVUFBVSxLQUFWLFVBQVUsUUFnQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IFRBY3Rpb24sIFRFbmdpbmUsIFRSdWxlLCBUU291cmNlIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBUQXBpIH0gZnJvbSBcIi4vZm9ybS12aWV3LmFwaXMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgVE1lc3NhZ2UgfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tbW9ucy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUVmFsaWRhdG9yIH0gZnJvbSBcIi4vZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgVFRyaWdnZXIgfSBmcm9tIFwiLi9mb3JtLXZpZXcudHJpZ2dlcnMuZGVmaW5pdGlvblwiO1xuXG5leHBvcnQgZW51bSBFRmllbGRUeXBlIHtcbiAgSFRNTCA9IFwiaHRtbFwiLFxuICBUSVRMRSA9IFwidGl0bGVcIixcbiAgVEVYVCA9IFwidGV4dFwiLFxuICBCVVRUT04gPSBcImJ1dHRvblwiLFxuICBURVhUQVJFQSA9IFwidGV4dGFyZWFcIixcbiAgQ0hFQ0tCT1ggPSBcImNoZWNrYm94XCIsXG4gIE5VTUJFUiA9IFwibnVtYmVyXCIsXG4gIERBVEUgPSBcImRhdGVcIixcbiAgVElNRSA9IFwidGltZVwiLFxuICBJTUFHRSA9IFwiaW1hZ2VcIixcbiAgUFJFVklFV19JTUFHRSA9IFwicHJldmlldy1pbWFnZVwiLFxuICBQSE9ORSA9IFwicGhvbmVcIixcbiAgUkFESU8gPSBcInJhZGlvXCIsXG4gIFNFTEVDVCA9IFwic2VsZWN0XCIsXG4gIERST1BET1dOX1dJVEhfU0VBUkNIID0gXCJkcm9wZG93bi13aXRoLXNlYXJjaFwiLFxuICBBUElfQ0FMTCA9IFwiYXBpLWNhbGxcIixcbiAgQVBJID0gXCJhcGlcIixcbiAgT1RQID0gXCJvdHBcIixcbiAgQUFESEFBUl9OVU1CRVIgPSBcImFhZGhhYXItbnVtYmVyXCIsXG4gIFNMSURFUiA9IFwic2xpZGVyXCIsXG4gIEZJTEUgPSBcImZpbGVcIixcbiAgUEFTU1dPUkQgPSBcInBhc3N3b3JkXCIsXG4gIEVNQUlMID0gXCJlbWFpbFwiLFxuICBDQVBUVVJFID0gXCJjYXB0dXJlXCIsXG4gIFJFQ09SRCA9IFwicmVjb3JkXCIsXG4gIE1JQyA9IFwibWljXCIsXG4gIFNUQVJfUkFUSU5HID0gXCJzdGFyLXJhdGluZ1wiLFxuICBMSVZFX0xPQ0FUSU9OID0gXCJsaXZlLWxvY2F0aW9uXCIsXG4gIERBVEFfSE9MREVSID0gXCJkYXRhLWhvbGRlclwiLFxuICBDVVJSRU5DWSA9IFwiY3VycmVuY3lcIixcbiAgTUFTS0VEID0gXCJtYXNrZWRcIlxufVxuXG5leHBvcnQgdHlwZSBURmllbGRUeXBlID1cbiAgfCBFRmllbGRUeXBlLkhUTUxcbiAgfCBFRmllbGRUeXBlLlRJVExFXG4gIHwgRUZpZWxkVHlwZS5CVVRUT05cbiAgfCBFRmllbGRUeXBlLlRFWFRcbiAgfCBFRmllbGRUeXBlLlRFWFRBUkVBXG4gIHwgRUZpZWxkVHlwZS5DSEVDS0JPWFxuICB8IEVGaWVsZFR5cGUuTlVNQkVSXG4gIHwgRUZpZWxkVHlwZS5EQVRFXG4gIHwgRUZpZWxkVHlwZS5USU1FXG4gIHwgRUZpZWxkVHlwZS5QUkVWSUVXX0lNQUdFXG4gIHwgRUZpZWxkVHlwZS5QSE9ORVxuICB8IEVGaWVsZFR5cGUuUkFESU9cbiAgfCBFRmllbGRUeXBlLkRST1BET1dOX1dJVEhfU0VBUkNIXG4gIHwgRUZpZWxkVHlwZS5TRUxFQ1RcbiAgfCBFRmllbGRUeXBlLkFQSVxuICB8IEVGaWVsZFR5cGUuQVBJX0NBTExcbiAgfCBFRmllbGRUeXBlLk9UUFxuICB8IEVGaWVsZFR5cGUuQUFESEFBUl9OVU1CRVJcbiAgfCBFRmllbGRUeXBlLlNMSURFUlxuICB8IEVGaWVsZFR5cGUuRklMRVxuICB8IEVGaWVsZFR5cGUuUEFTU1dPUkRcbiAgfCBFRmllbGRUeXBlLkVNQUlMXG4gIHwgRUZpZWxkVHlwZS5DQVBUVVJFXG4gIHwgRUZpZWxkVHlwZS5SRUNPUkRcbiAgfCBFRmllbGRUeXBlLk1JQ1xuICB8IEVGaWVsZFR5cGUuU1RBUl9SQVRJTkdcbiAgfCBFRmllbGRUeXBlLkxJVkVfTE9DQVRJT05cbiAgfCBFRmllbGRUeXBlLkRBVEFfSE9MREVSXG4gIHwgRUZpZWxkVHlwZS5DVVJSRU5DWVxuICB8IEVGaWVsZFR5cGUuTUFTS0VEO1xuXG5leHBvcnQgdHlwZSBURmllbGRTZWxlY3RPcHRpb24gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRSYWRpb09wdGlvbiA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREZWZhdWx0VmFsdWUgPSB7XG4gIHZhbHVlOiBhbnk7XG4gIHNvdXJjZT86IFRFbmdpbmU7XG4gIHNvdXJjZXM/OiBBcnJheTxUU291cmNlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERlZmF1bHREcm9wZG93bk9wdGlvbnMgPSB7XG4gIHRyaWdnZXJzOiBUVHJpZ2dlcltdO1xuICBydWxlczogVFJ1bGVbXTtcbiAgYWN0aW9uczogVEFjdGlvbltdO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGVmYXVsdEFwaVZhbHVlID0ge1xuICB0cmlnZ2VyczogVFRyaWdnZXJbXTtcbiAgcnVsZXM6IFRSdWxlW107XG4gIGFjdGlvbnM6IFRBY3Rpb25bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERlZmF1bHQgPSB7XG4gIHZhbHVlOiBURmllbGREZWZhdWx0VmFsdWU7XG4gIG9wdGlvbnM6IFRGaWVsZERlZmF1bHREcm9wZG93bk9wdGlvbnM7XG4gIGFwaTogVEZpZWxkRGVmYXVsdEFwaVZhbHVlO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGV4dFByb3BlcnRpZXMgPSB7XG4gIGNhc2U6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3BlZWNoVG9UZXh0OiBib29sZWFuO1xuICB0ZXh0VG9TcGVlY2g6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDdXJyZW5jeVByb3BlcnRpZXMgPSB7XG4gIGNvbnRhaW5lclN0eWxlczogc3RyaW5nO1xuICBjdXJyZW5jeVR5cGU6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE1hc2tlZFByb3BlcnRpZXMgPSB7XG4gIGNvbnRhaW5lclN0eWxlczogc3RyaW5nO1xuICBtYXNrQ2hhcjogc3RyaW5nO1xuICBtYXNrQ291bnQ6IG51bWJlcjtcbiAgbWFza0RpcmVjdGlvbjogc3RyaW5nO1xuICBtYXhMZW5ndGg6IG51bWJlciB8IG51bGw7XG4gIHBhdHRlcm46IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbiAgc3RvcmVNYXNrVmFsdWU6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRFbWFpbFByb3BlcnRpZXMgPSB7XG4gIGNhc2U6IHN0cmluZztcbiAgZG9tYWluczogQXJyYXk8c3RyaW5nPjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFBhc3N3b3JkUHJvcGVydGllcyA9IHtcbiAgaXNTaG93TGFiZWxPdXRzaWRlOiBib29sZWFuO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBoaW50Q29udGVudDogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGV4dGFyZWFQcm9wZXJ0aWVzID0ge1xuICBpc1Nob3dMYWJlbE91dHNpZGU6IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHNwZWVjaFRvVGV4dDogYm9vbGVhbjtcbiAgdGV4dFRvU3BlZWNoOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQ2hlY2tib3hQcm9wZXJ0aWVzID0ge1xuICBjb250ZW50QWxpZ246IHN0cmluZztcbiAgc2l6ZTogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkTnVtYmVyUHJvcGVydGllcyA9IHtcbiAgaXNTaG93TGFiZWxPdXRzaWRlOiBib29sZWFuO1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG4gIHByZWZpeDogbnVtYmVyO1xuICBwb3N0Zml4OiBudW1iZXI7XG4gIHByZWNpc2lvbjogbnVtYmVyO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBkZWNpbWFsOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGF0ZVByb3BlcnRpZXMgPSB7XG4gIGlzU2hvd0xhYmVsT3V0c2lkZTogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgbWluOiB7XG4gICAgeWVhcjogbnVtYmVyO1xuICAgIG1vbnRoOiBudW1iZXI7XG4gICAgZGF5OiBudW1iZXI7XG4gIH07XG4gIG1heDoge1xuICAgIHllYXI6IG51bWJlcjtcbiAgICBtb250aDogbnVtYmVyO1xuICAgIGRheTogbnVtYmVyO1xuICB9O1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFBob25lUHJvcGVydGllcyA9IHtcbiAgaXNTaG93TGFiZWxPdXRzaWRlOiBib29sZWFuO1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlOiBzdHJpbmc7XG4gIHJlbW92ZUNvdW50cnlDb2RlRnJvbVZhbHVlOiBib29sZWFuO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFByZXZpZXdJbWFnZVByb3BlcnRpZXMgPSB7XG4gIGFsdFRleHQ6IHN0cmluZztcbiAgaHRtbDoge1xuICAgIGJlZm9yZTogc3RyaW5nO1xuICAgIGFmdGVyOiBzdHJpbmc7XG4gIH07XG4gIGltYWdlVHlwZTogc3RyaW5nO1xuICBsb2FkaW5nVHlwZTogc3RyaW5nO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkU2xpZGVyUHJvcGVydGllcyA9IHtcbiAgaXNTaG93TGFiZWxPdXRzaWRlOiBib29sZWFuO1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG4gIHN0ZXA6IG51bWJlcjtcbiAgcXVhbnR1bTogbnVtYmVyO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFJhZGlvUHJvcGVydGllcyA9IHtcbiAgc2l6ZTogc3RyaW5nO1xuICBvcmllbnRhdGlvbjogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkU2VsZWN0UHJvcGVydGllcyA9IHtcbiAgaXNTaG93TGFiZWxPdXRzaWRlOiBib29sZWFuO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICByZWFkT25seTogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEFwaUNhbGxQcm9wZXJ0aWVzID0ge307XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERhdGFIb2xkZXJQcm9wZXJ0aWVzID0ge307XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE90cFByb3BlcnRpZXMgPSB7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIG1hc2s6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEFhZGhhYXJOdW1iZXJQcm9wZXJ0aWVzID0ge1xuICBtYXNrOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDYXB0dXJlUHJvcGVydGllcyA9IHtcbiAgY29udGFpbmVyU3R5bGVzOiBzdHJpbmc7XG4gIGJ1dHRvblRleHQ6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBzaG93TWVkaWFGaWxlczogYm9vbGVhbjtcbiAgdXBsb2FkRmlsZVRvU2VydmVyOiBib29sZWFuO1xuICBpc0Nyb3BwZWRJbWFnZTogYm9vbGVhbjtcbiAgaXNNYXNrZWRJbWFnZTogYm9vbGVhbjtcbiAgZmVhdHVyZXM6IHtcbiAgICBvY3I6IHtcbiAgICAgIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIGRvY3VtZW50VHlwZTogXCJQQU5cIiB8IFwiQUFESEFBUlwiO1xuICAgICAgZG9jdW1lbnRTaWRlOiBcIkZST05UXCIgfCBcIkJBQ0tcIjtcbiAgICAgIGlzT2NyRnJvbVNlcnZlcjogYm9vbGVhbjtcbiAgICB9O1xuICAgIGZhY2VtYXRjaDoge1xuICAgICAgaXNFbmFibGVkOiBib29sZWFuO1xuICAgICAgaXNGYWNlbWF0Y2hGcm9tU2VydmVyOiBib29sZWFuO1xuICAgICAgc291cmNlczogVFNvdXJjZVtdO1xuICAgIH07XG4gICAgbGl2ZWxpbmVzczoge1xuICAgICAgaXNFbmFibGVkOiBib29sZWFuO1xuICAgICAgaXNMaXZlbGluZXNzRnJvbVNlcnZlcjogYm9vbGVhbjtcbiAgICB9O1xuICAgIHdhdGVybWFyazoge1xuICAgICAgaXNFbmFibGVkOiBib29sZWFuO1xuICAgICAgaXNXYXRlcm1hcmtGcm9tU2VydmVyOiBib29sZWFuO1xuICAgICAgc291cmNlczogVFNvdXJjZVtdO1xuICAgIH07XG4gIH07XG4gIGNhbWVyYUNvbmZpZzoge1xuICAgIGhlYWRlcjoge1xuICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgIGlzQmFjazogYm9vbGVhbjtcbiAgICAgIGlzRXhwYW5kOiBib29sZWFuO1xuICAgICAgaXNDbG9zZTogYm9vbGVhbjtcbiAgICB9O1xuICAgIGZvb3Rlcjoge1xuICAgICAgaXNVcGxvYWQ6IGJvb2xlYW47XG4gICAgICBpc0ZsaXA6IGJvb2xlYW47XG4gICAgICBpc1N3aXRjaDogYm9vbGVhbjtcbiAgICB9O1xuICAgIG90aGVyczoge1xuICAgICAgaXNGcm9udENhbWVyYTogYm9vbGVhbjtcbiAgICAgIGZsaXBIb3Jpem9udGFsOiBib29sZWFuO1xuICAgICAgbWFzazoge1xuICAgICAgICBzaGFwZTogc3RyaW5nO1xuICAgICAgfTtcbiAgICAgIHByZXZpZXc6IHtcbiAgICAgICAgc2hvdzogYm9vbGVhbjtcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgaXNCYWNrOiBib29sZWFuO1xuICAgICAgICAgIGlzQ2xvc2U6IGJvb2xlYW47XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRSZWNvcmRQcm9wZXJ0aWVzID0ge1xuICBjb250YWluZXJTdHlsZXM6IHN0cmluZztcbiAgYnV0dG9uVGV4dDogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIHNob3dNZWRpYUZpbGVzOiBib29sZWFuO1xuICB1cGxvYWRGaWxlVG9TZXJ2ZXI6IGJvb2xlYW47XG4gIGNhbWVyYUNvbmZpZzoge1xuICAgIGhlYWRlcjoge1xuICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgIGlzQmFjazogYm9vbGVhbjtcbiAgICAgIGlzRXhwYW5kOiBib29sZWFuO1xuICAgICAgaXNDbG9zZTogYm9vbGVhbjtcbiAgICB9O1xuICAgIGZvb3Rlcjoge1xuICAgICAgaXNVcGxvYWQ6IGJvb2xlYW47XG4gICAgICBpc0ZsaXA6IGJvb2xlYW47XG4gICAgICBpc1N3aXRjaDogYm9vbGVhbjtcbiAgICB9O1xuICAgIG90aGVyczoge1xuICAgICAgaXNGcm9udENhbWVyYTogYm9vbGVhbjtcbiAgICAgIGZsaXBIb3Jpem9udGFsOiBib29sZWFuO1xuICAgICAgbWluUmVjb3JkaW5nVGltZUluU2Vjb25kczogbnVtYmVyO1xuICAgICAgbWF4UmVjb3JkaW5nVGltZUluU2Vjb25kczogbnVtYmVyO1xuICAgICAgcHJldmlldzoge1xuICAgICAgICBzaG93OiBib29sZWFuO1xuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBpc0JhY2s6IGJvb2xlYW47XG4gICAgICAgICAgaXNDbG9zZTogYm9vbGVhbjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE1pY1Byb3BlcnRpZXMgPSB7XG4gIGFjY2VwdDogc3RyaW5nO1xuICBjb250YWluZXJTdHlsZXM6IHN0cmluZztcbiAgYnV0dG9uVGV4dDogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGlzVXBsb2FkOiBib29sZWFuO1xuICBtaW5SZWNvcmRpbmdUaW1lSW5TZWNvbmRzOiBudW1iZXI7XG4gIG1heFJlY29yZGluZ1RpbWVJblNlY29uZHM6IG51bWJlcjtcbiAgbWltZVR5cGU6IHN0cmluZztcbiAgc2hvd01lZGlhRmlsZXM6IGJvb2xlYW47XG4gIHVwbG9hZEZpbGVUb1NlcnZlcjogYm9vbGVhbjtcbiAgcHJldmlldzoge1xuICAgIHNob3c6IGJvb2xlYW47XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRTdGFyUmF0aW5nUHJvcGVydGllcyA9IHtcbiAgY29sb3I6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBpY29uTWFya2VkOiBzdHJpbmc7XG4gIG1pbjogbnVtYmVyO1xuICBtYXg6IG51bWJlcjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgc2l6ZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkTGl2ZUxvY2F0aW9uUHJvcGVydGllcyA9IHtcbiAgaXNHZXRMb2NhdGlvbkZyb21MYXRMb25nOiBib29sZWFuO1xuICBpc1Nob3dMYXRMb25nQ2FwdHVyZVRpbWVzdGFtcDogYm9vbGVhbjtcbiAgY29sb3I6IHN0cmluZztcbiAgY29udGFpbmVyU3R5bGVzOiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHNpemU6IHN0cmluZztcbiAgc3R5bGVzOiBzdHJpbmc7XG4gIHNoYXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQcm9wZXJ0aWVzID1cbiAgfCBURmllbGRUZXh0UHJvcGVydGllc1xuICB8IFRGaWVsZEN1cnJlbmN5UHJvcGVydGllc1xuICB8IFRGaWVsZEVtYWlsUHJvcGVydGllc1xuICB8IFRGaWVsZFBhc3N3b3JkUHJvcGVydGllc1xuICB8IFRGaWVsZFRleHRhcmVhUHJvcGVydGllc1xuICB8IFRGaWVsZENoZWNrYm94UHJvcGVydGllc1xuICB8IFRGaWVsZE51bWJlclByb3BlcnRpZXNcbiAgfCBURmllbGREYXRlUHJvcGVydGllc1xuICB8IFRGaWVsZFBob25lUHJvcGVydGllc1xuICB8IFRGaWVsZFByZXZpZXdJbWFnZVByb3BlcnRpZXNcbiAgfCBURmllbGRTbGlkZXJQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkUmFkaW9Qcm9wZXJ0aWVzXG4gIHwgVEZpZWxkU2VsZWN0UHJvcGVydGllc1xuICB8IFRGaWVsZEFwaUNhbGxQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkT3RwUHJvcGVydGllc1xuICB8IFRGaWVsZEFhZGhhYXJOdW1iZXJQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkQ2FwdHVyZVByb3BlcnRpZXNcbiAgfCBURmllbGRSZWNvcmRQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkTWljUHJvcGVydGllc1xuICB8IFRGaWVsZFN0YXJSYXRpbmdQcm9wZXJ0aWVzXG4gIHwgVEZpZWxkTGl2ZUxvY2F0aW9uUHJvcGVydGllcztcblxuZXhwb3J0IHR5cGUgVEZpZWxkID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiBURmllbGRUeXBlO1xuICBrZXk6IHN0cmluZztcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIG1lc3NhZ2VzOiBBcnJheTxUTWVzc2FnZT47XG4gIGRlZmF1bHQ6IFRGaWVsZERlZmF1bHQ7XG4gIHZhbGlkYXRvcnM6IFRWYWxpZGF0b3I7XG4gIHZhbGlkYXRpb246IFRFbmdpbmU7XG4gIGFwaT86IFRBcGk7XG4gIHByb3BlcnRpZXM6IFRGaWVsZFByb3BlcnRpZXM7XG4gIG9wdGlvbnM/OiBBcnJheTxhbnk+O1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGl0bGUgPSB7XG4gIHR5cGU6IFRGaWVsZFR5cGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICByZXNldD86IHtcbiAgICBmaWVsZHM6IEFycmF5PHtcbiAgICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gICAgICBhY3Rpb25zOiBBcnJheTxUQWN0aW9uPjtcbiAgICB9PjtcbiAgICBmaWVsZEdyb3VwczogQXJyYXk8e1xuICAgICAgZ3JvdXBLZXk6IHN0cmluZztcbiAgICAgIGFjdGlvbnM6IEFycmF5PFRBY3Rpb24+O1xuICAgIH0+O1xuICB9O1xuICBwcm9wZXJ0aWVzPzoge1xuICAgIGJ5cGFzc1Jlc2V0Q29uZmlybWF0aW9uPzogYm9vbGVhbjtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFRleHQgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZFRleHRQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQ3VycmVuY3kgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZEN1cnJlbmN5UHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFRleHRBcmVhID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRUZXh0YXJlYVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDaGVja2JveCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkQ2hlY2tib3hQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkTnVtYmVyID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGROdW1iZXJQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGF0ZSA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkRGF0ZVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQaG9uZSA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkUGhvbmVQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUmFkaW8gPSBURmllbGQgJiB7XG4gIG9wdGlvbnM6IEFycmF5PFRGaWVsZFJhZGlvT3B0aW9uPjtcbiAgcHJvcGVydGllczogVEZpZWxkUmFkaW9Qcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRW1haWwgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZEVtYWlsUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFNlbGVjdCA9IFRGaWVsZCAmIHtcbiAgb3B0aW9uczogQXJyYXk8VEZpZWxkU2VsZWN0T3B0aW9uPjtcbiAgcHJvcGVydGllczogVEZpZWxkU2VsZWN0UHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEFwaUNhbGwgPSBURmllbGQgJiB7XG4gIGFwaTogVEFwaTtcbiAgc2hvd0xvYWRlcjogYm9vbGVhbjtcbiAgcHJvcGVydGllczogVEZpZWxkQXBpQ2FsbFByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRMaXZlTG9jYXRpb24gPSBURmllbGQgJiB7XG4gIGFwaTogVEFwaTtcbiAgcHJvcGVydGllczogVEZpZWxkTGl2ZUxvY2F0aW9uUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE90cCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkT3RwUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEFhZGhhYXJOdW1iZXIgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZEFhZGhhYXJOdW1iZXJQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUHJldmlld0ltYWdlID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRQcmV2aWV3SW1hZ2VQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQ2FwdHVyZSA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkQ2FwdHVyZVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRNaWMgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZE1pY1Byb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRTdGFyUmF0aW5nID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRTdGFyUmF0aW5nUHJvcGVydGllcztcbn07XG4iXX0=