@dsivd/prestations-ng 14.5.10 → 14.5.14-beta1

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 (27) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/bundles/dsivd-prestations-ng.umd.js +436 -23
  3. package/bundles/dsivd-prestations-ng.umd.js.map +1 -1
  4. package/dsivd-prestations-ng-v14.5.14-beta1.tgz +0 -0
  5. package/esm2015/foehn-footer/foehn-footer.component.js +2 -2
  6. package/esm2015/foehn-page/foehn-page.component.js +22 -17
  7. package/esm2015/foehn-table/foehn-table-column-configuration.js +3 -0
  8. package/esm2015/foehn-table/foehn-table-page-change-event.js +3 -0
  9. package/esm2015/foehn-table/foehn-table.component.js +148 -0
  10. package/esm2015/foehn-table/foehn-table.module.js +34 -0
  11. package/esm2015/foehn-table/tableSort.js +3 -0
  12. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +164 -0
  13. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.js +42 -0
  14. package/esm2015/index.js +10 -1
  15. package/esm2015/sdk-dictionary/default-dictionary.js +9 -2
  16. package/fesm2015/dsivd-prestations-ng.js +393 -19
  17. package/fesm2015/dsivd-prestations-ng.js.map +1 -1
  18. package/foehn-table/foehn-table-column-configuration.d.ts +8 -0
  19. package/foehn-table/foehn-table-page-change-event.d.ts +5 -0
  20. package/foehn-table/foehn-table.component.d.ts +33 -0
  21. package/foehn-table/foehn-table.module.d.ts +11 -0
  22. package/foehn-table/tableSort.d.ts +4 -0
  23. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +39 -0
  24. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.d.ts +13 -0
  25. package/index.d.ts +7 -0
  26. package/package.json +2 -1
  27. package/dsivd-prestations-ng-v14.5.10.tgz +0 -0
@@ -9,7 +9,7 @@ import * as i4 from "../foehn-icons/foehn-icon-chevron-up.component";
9
9
  import * as i5 from "@angular/common";
10
10
  const GUIDE_URL = 'https://www.vd.ch/index.php?id=67827';
11
11
  const TERM_OF_USE_URL = 'https://www.vd.ch/index.php?id=2015321';
12
- const SECURITY_BEST_PRACTICE_URL = 'https://www.vd.ch/securite-protection-donnees/';
12
+ const SECURITY_BEST_PRACTICE_URL = 'https://www.vd.ch/index.php?id=2015320';
13
13
  export class FoehnFooterComponent {
14
14
  constructor(applicationInfoService, gesdemEventService, gesdemService) {
15
15
  /**
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
129
129
  }], showDefaultSecurityBestPracticeLink: [{
130
130
  type: Input
131
131
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1mb290ZXIvZm9laG4tZm9vdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1mb290ZXIvZm9laG4tZm9vdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUdwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUVyQyxNQUFNLFNBQVMsR0FBRyxzQ0FBc0MsQ0FBQztBQUN6RCxNQUFNLGVBQWUsR0FBRyx3Q0FBd0MsQ0FBQztBQUNqRSxNQUFNLDBCQUEwQixHQUM1QixnREFBZ0QsQ0FBQztBQU1yRCxNQUFNLE9BQU8sb0JBQW9CO0lBcUM3QixZQUNJLHNCQUE4QyxFQUM5QyxrQkFBc0MsRUFDdEMsYUFBbUM7UUFwQ3ZDOztXQUVHO1FBRUgsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBRTlCOztXQUVHO1FBRUgseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRTVCOztXQUVHO1FBRUgsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBRWhDOztXQUVHO1FBRUgsd0NBQW1DLEdBQUcsSUFBSSxDQUFDO1FBU25DLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFPbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQzdDLElBQUksQ0FBQyxz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UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTztZQUNILEtBQUssRUFBRSwwQkFBMEI7WUFDakMsR0FBRyxFQUFFLGVBQWU7U0FDdkIsQ0FBQztJQUNOLENBQUM7SUFFTywyQkFBMkI7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTztZQUNILEtBQUssRUFDRCxnR0FBZ0c7WUFDcEcsR0FBRyxFQUFFLDBCQUEwQjtTQUNsQyxDQUFDO0lBQ04sQ0FBQzs7aUhBdkpRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHVVQ2xCakMsbzhsQkFpRkE7MkZEL0RhLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLCtCQUErQjtpQkFDL0M7aUxBR0csS0FBSztzQkFESixLQUFLO2dCQU9OLHNCQUFzQjtzQkFEckIsS0FBSztnQkFPTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBT04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQU9OLG1DQUFtQztzQkFEbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb290ZXJMaW5rIH0gZnJvbSAnLi9mb290ZXItbGluay50eXBlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuaW1wb3J0IHsgR2VzZGVtRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBHVUlERV9VUkwgPSAnaHR0cHM6Ly93d3cudmQuY2gvaW5kZXgucGhwP2lkPTY3ODI3JztcbmNvbnN0IFRFUk1fT0ZfVVNFX1VSTCA9ICdodHRwczovL3d3dy52ZC5jaC9pbmRleC5waHA/aWQ9MjAxNTMyMSc7XG5jb25zdCBTRUNVUklUWV9CRVNUX1BSQUNUSUNFX1VSTCA9XG4gICAgJ2h0dHBzOi8vd3d3LnZkLmNoL3NlY3VyaXRlLXByb3RlY3Rpb24tZG9ubmVlcy8nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWZvb3RlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWZvb3Rlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Gb290ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBsaW5rczogRm9vdGVyTGlua1tdO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgQ29udGFjdCBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRDb250YWN0TGluayA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBJZiBzZXQgdG8gJ2ZhbHNlJywgaGlkZSB0aGUgZGVmYXVsdCBHdWlkZSBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRHdWlkZUxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgVGVybXMgb2YgdXNlIGxpbmsuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RGVmYXVsdFRlcm1PZlVzZUxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgU2VjdXJpdHkgQmVzdCBQcmFjdGljZSBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRTZWN1cml0eUJlc3RQcmFjdGljZUxpbmsgPSB0cnVlO1xuXG4gICAgYXBwbGljYXRpb25JbmZvOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uSW5mbz47XG4gICAgYWxsTGlua3M6IE9ic2VydmFibGU8Rm9vdGVyTGlua1tdPjtcblxuICAgIHJlYWRvbmx5IGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2U7XG4gICAgcmVhZG9ubHkgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2U7XG4gICAgcmVhZG9ubHkgZ2VzZGVtU2VydmljZTogR2VzZGVtSGFuZGxlclNlcnZpY2U7XG5cbiAgICBwcml2YXRlIGlucHV0Q2hhbmdlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBhcHBsaWNhdGlvbkluZm9TZXJ2aWNlOiBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlLFxuICAgICAgICBnZXNkZW1FdmVudFNlcnZpY2U6IEdlc2RlbUV2ZW50U2VydmljZSxcbiAgICAgICAgZ2VzZGVtU2VydmljZTogR2VzZGVtSGFuZGxlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlID0gZ2VzZGVtU2VydmljZTtcbiAgICAgICAgdGhpcy5nZXNkZW1FdmVudFNlcnZpY2UgPSBnZXNkZW1FdmVudFNlcnZpY2U7XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZSA9IGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25JbmZvID0gdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmRhdGE7XG5cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlT2JzZXJ2YWJsZSA9IHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlXG4gICAgICAgICAgICAuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5nZXRTYWZlU3VwcG9ydEZvcm1VcmwoKSxcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5nZXRTYWZlU3VwcG9ydEZvcm1UaXRsZSgpXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW3VybCwgdGl0bGVdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbExpbmtzID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgbWVyZ2Uob2YobnVsbCksIHJlZmVyZW5jZU9ic2VydmFibGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDaGFuZ2VkXG4gICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW3JlZmVyZW5jZV0pID0+IFtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0TGlua3ModGl0bGUsIHVybCwgcmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHRoaXMubGlua3MgfHwgW10pXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlZC5uZXh0KHRoaXMuaW5wdXRDaGFuZ2VkLmdldFZhbHVlKCkgKyAxKTtcbiAgICB9XG5cbiAgICBnb3RUb1RvcChlOiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlZmF1bHRMaW5rcyhcbiAgICAgICAgY29udGFjdEZvcm1UaXRsZTogc3RyaW5nLFxuICAgICAgICBjb250YWN0Rm9ybVVybDogc3RyaW5nLFxuICAgICAgICByZWZlcmVuY2U6IHN0cmluZ1xuICAgICk6IEZvb3RlckxpbmtbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLmdldENvbnRhY3RMaW5rKGNvbnRhY3RGb3JtVGl0bGUsIGNvbnRhY3RGb3JtVXJsLCByZWZlcmVuY2UpLFxuICAgICAgICAgICAgdGhpcy5nZXRHdWlkZUxpbmsoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VGVybU9mVXNlTGluaygpLFxuICAgICAgICAgICAgdGhpcy5nZXRTZWN1cml0eUJlc3RQcmFjdGljZUxpbmsoKVxuICAgICAgICBdLmZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnRhY3RMaW5rKFxuICAgICAgICBjb250YWN0Rm9ybVRpdGxlOiBzdHJpbmcsXG4gICAgICAgIGNvbnRhY3RGb3JtVXJsOiBzdHJpbmcsXG4gICAgICAgIHJlZmVyZW5jZTogc3RyaW5nXG4gICAgKTogRm9vdGVyTGluayB8IG51bGwge1xuICAgICAgICBpZiAoIXRoaXMuc2hvd0RlZmF1bHRDb250YWN0TGluaykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWZlcmVuY2VRdWVyeVBhcmFtID0gISFyZWZlcmVuY2VcbiAgICAgICAgICAgID8gYD9jb25jZXJuZWRSZWZlcmVuY2U9JHtyZWZlcmVuY2V9YFxuICAgICAgICAgICAgOiAnJztcbiAgICAgICAgY29uc3QgZnVsbFN1cHBvcnRBcHBVcmwgPSBjb250YWN0Rm9ybVVybCArIHJlZmVyZW5jZVF1ZXJ5UGFyYW07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDogY29udGFjdEZvcm1UaXRsZSxcbiAgICAgICAgICAgIHVybDogZnVsbFN1cHBvcnRBcHBVcmxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEd1aWRlTGluaygpOiBGb290ZXJMaW5rIHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5zaG93RGVmYXVsdEd1aWRlTGluaykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWw6IFwiR3VpZGUgZCd1dGlsaXNhdGlvbiBkdSBwb3J0YWlsIHPDqWN1cmlzw6lcIixcbiAgICAgICAgICAgIHVybDogR1VJREVfVVJMXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUZXJtT2ZVc2VMaW5rKCk6IEZvb3RlckxpbmsgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dEZWZhdWx0VGVybU9mVXNlTGluaykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWw6IFwiQ29uZGl0aW9ucyBkJ3V0aWxpc2F0aW9uXCIsXG4gICAgICAgICAgICB1cmw6IFRFUk1fT0ZfVVNFX1VSTFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rKCk6IEZvb3RlckxpbmsgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dEZWZhdWx0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDpcbiAgICAgICAgICAgICAgICAnQm9ubmVzIHByYXRpcXVlcyBlbiBtYXRpw6hyZSBkZSBzw6ljdXJpdMOpIGluZm9ybWF0aXF1ZSBldCBkZSBwcm90ZWN0aW9uIGRlcyBkb25uw6llcyBwZXJzb25uZWxsZXMnLFxuICAgICAgICAgICAgdXJsOiBTRUNVUklUWV9CRVNUX1BSQUNUSUNFX1VSTFxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjxmb290ZXIgaWQ9XCJmb2Vobl9mb290ZXJDb250YWluZXJcIiBjbGFzcz1cIm10LTVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9XCJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGFya1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJSZXRvdXIgdmVycyBsZSBoYXV0IGRlIGxhIHBhZ2VcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnb3RUb1RvcCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBIYXV0Jm5ic3A7XG4gICAgICAgICAgICAgICAgPGZvZWhuLWljb24tY2hldnJvbi11cD48L2ZvZWhuLWljb24tY2hldnJvbi11cD5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEwXCIgKm5nSWY9XCJhbGxMaW5rcyB8IGFzeW5jIGFzIGxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuYXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJwaWVkIGRlIHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhIWxpbmtzICYmICEhbGlua3MubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBsaW5rIG9mIGxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9vdGVyLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LWNvbHVtbiBoLTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LWF1dG8gdy0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy52ZC5jaFwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXRvdXIgw6AgbGEgcGFnZSBkJ2FjY3VlaWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgZm9vdGVyLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFLQUFBQUlLQ0FNQUFBQ1RDYlMrQUFBREFGQk1WRVVBQUFELy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84SFBRc0lBQUFBLzNSU1RsTUFBUUlEQkFVR0J3Z0pDZ3NNRFE0UEVCRVNFeFFWRmhjWUdSb2JIQjBlSHlBaElpTWtKU1luS0NrcUt5d3RMaTh3TVRJek5EVTJOemc1T2pzOFBUNC9RRUZDUTBSRlJrZElTVXBMVEUxT1QxQlJVbE5VVlZaWFdGbGFXMXhkWGw5Z1lXSmpaR1ZtWjJocGFtdHNiVzV2Y0hGeWMzUjFkbmQ0ZVhwN2ZIMStmNENCZ29PRWhZYUhpSW1LaTR5TmpvK1FrWktUbEpXV2w1aVptcHVjblo2Zm9LR2lvNlNscHFlb3FhcXJySzJ1cjdDeHNyTzB0YmEzdUxtNnU3eTl2ci9Bd2NMRHhNWEd4OGpKeXN2TXpjN1AwTkhTMDlUVjF0ZlkyZHJiM04zZTMrRGg0dVBrNWVibjZPbnE2K3p0N3UvdzhmTHo5UFgyOS9qNSt2djgvZjdyQ05rMUFBQXEwVWxFUVZSNDJ1MWRaV0FVUnh2ZVMwaUlrSkFnd2QyZFFxRlFvRWh4ZDRJVUsrNFd0RGg4VUtCUW5OSmloZUlVMHFMRkN4UnBjU2xlM0FJRUNTRjYrKzNNMnV6dXpOemUzZHpsZnVUOUFYZTNlM05QZG5abjN1ZFZqaU9LMzRDZmpsOU1PVG04dElzM1I1UFA3L0FwTGVlS1VQQUZQK0pUWHY2aFhNTnZlRStROW1TQTJ6d0M0Q3d5d0g4OEF1QW1Nc0ROSGdGd0JobGdoRWNBYkVrR0dIRGJBL0FkdFZEV21UTG5VeHpmZ1Z6VWxkbzdmT2FPUTNiSk0vSnZmWHg4OS9xbHN5ZVBIajV4NXNMVlcvZGZXOG1uL24wUXl1WXBqVGkyNGpzeDN2QmpUNCt0R2hkZXEyeXVBUDNKWGhrTFYyclVlL2IyeTdHRzcxeXR6TGxFS2x6Ui9zNzduUkhWZzJ4L3paS3Y3ZHhMMm04bXp3OXdBYjZPMnN0M3RJMlBIVi9PTmUyNWRwYXpNc2MzRVIwL2NYa3B1KytQVGhmUUVlNlhZb3h2SmpyNnlUS09ET0U5NUIweXh1dGlUUEgxUnUrOVBoWUhSOGtaaVF6elh4YUcrT29sSWMvdEo0NlBZNW1CM29kK3pQQ2xmNklPKzI5ZXA0YnFsNndPOVQ5bUFIOVFCNzJkMGNteHVpS1BXbWxHK0txcXU4SUg1eCsrQlNyQ1UxNXNBQjVSaHd4M2ZqU2ZQOVhobWpQQlYwNGRjRDJMOFhKL1ZGZDdKZ0RYS3VQRjUyTXk0R3oxTHk3UFlMaXdCR1c0NzluY01xR3ZsUkZYTXhoT2Zld1NNak42NmlZcFE3NWk4SmhzVWtiYnlXclpLcWpPc2ZPYWwzZTBNbGhIWmd2cjM4cVlVNTBlcTRveVZtdzZaZ0NIcWZ1ZDAyTU5WTVk2ekc1dkw2MHVETjdPanJWWUdXc3VPNEErcXZKYnlObXhEaXBEZFdhb0hwMVZSbTNpN0ZDUGxhRlk2c0FybEZFam5Cd3BVRjBSUWhrQ25LeU11dHpKa2JLckFMMFpBbFFmNDgxT2psUkUxZlJaVW9pdmxXRjNPemxTZVdXa1J5d0J0bGFHUGVia1NOVlZvc2dTWUF0bDJQTk9qdFJJR2VrZFM0RGRsV0Z2T1RsU0hmVWhTY01RNEhEVlVPUGtTSitxQURNeEJEaE5HZlc0a3lNVlVBR1dZQWp3UjJYVTM1M1ZmbFdBWFJnQ1ZHMm5hNXdjeVV1bG5Fdlk0UXRJWkVjalhpcERuV1VIc0pvNkw5ODRPOVorMVJEQWJqTkd2RnlOMkQxdmZIOW1BRzh5WEJzYUk3NUpWdmpVN2NucGRacmpNaUVHczNLTUFQNnNEcm5PK2RFUWY4OTJOdmdLeHpPOWJXWWhsN0FlRTRCN0VIdC9UZ1ovTHdMd2hpOERmTTJRQVhleCtJTVI2eHMvMi9uaHNqN2tHZHZmT3FFRy9oN09qdVovQnZWVE1kR1EvRjRoUXliVWNtNHd5MWIwejUzTzVxbnJxM0dBTlhicWoxMlBqdlU4aEExQUwwMzBRUEl3eDBmS2NrcmpFR05tQ3ZoTTYxdGQ0K2ltWFBPQlpweGpGbFlBdWVWYWIyVlVEMGVHenJGQk8wcFNhV2I0dU9ETE9wZnY2YWIyMHZpc0U5L3J4aGpLa29YbGZxTDNTdDhmWjQrdnJjYW1CUDBBaXppbVVqN0c0RGhQT2ptdFJsb3pVOXQ1eldOalhNQk9iN1lBdVNaSnVQQ0QyQ05MQnRYSlJib2ovY3VHVDlwNEhSdTNjRFlkeDFycVJCT2pKT0tmWEQ2eWJmbThHUlBIalJrNWN2VFk4ZE5tTDF5MzU4eWRhSEpneGE1Z2pyMFV2c0VzSEdXT0YrY0tDZG5IQmw1OFY4NUY0ajMwTFFOOEo4cHlycE1zcTYxT3dudjZsWVZ6cVZRNjR3eTh1RGxCbk12bDg3VnhEc0s3SFpHSmM0dGtqSEFnY2k1cFJ6MEw1ejRwTWZqM2QzYWd1N0c0UlFqbmJrbnorZGpOMTVKc1lvcyt0cVJyVGk3RkpHM1pUdE5YN2pyN3lLQUw4Rzl1SE4yOGNFVDlGTVNtNVJvWjg1ZjhyUHFYZFJzMHJGZTdacFZQaXVSTXk2VktxcVJLcXFSS3FxUktxcVJLcWpoaEphZzNhYysxVi9GOGxHS0d6ZHVReEJwQ2VuNFh1WWU5clB1bU5sSDliYnBIQ1FpUGxUd0JWUVN3ZU1yZjdybkxVb1oyNThEK1l1bmo2RW1TSGZKNzRlVkxuRkcyWEJMdk9qbUl2U0lmTmVkSXFTY2R3ZXNYR0lwenhLVnBWODJNUDloSnRLNVliMnhZUEFzQnlFRVQ5MGJqN1JEalVvREdoSU1LMEc0Uk16c2JlSU1DVEhzTXZLdXVQeitibTFNbnZXRHM0eDdSUm1KQkFYSmhiM0hCNjk1eExnVm84RTZHUTN3U2FkVUM1RVlEUDFLWS9odC91eFNnSWZUNWdQRGhFemtWeGtzTE1PQWp6cDFaeDVYNEx1amRuYUhnQ1JuQjRRRnl1NFczV3cxMzdValhUZkpsUTdoVlhaRGtxTmdRdlhVQVJ3bHZ6eGlmKzRJemRseTU0WWpjZlBBcUhtZE9Fby8rdGJLMzBWME1Za2V2Y1NTQW5ZVzNEMWtialN0M1gvOVM1K3FqZUhTbmFYSUc5QUFiQW8rMUM2eU1YaFVuYVBQQkZ4SVR3c0NHdGtLMThPa0Fna2ZjNmhvWEJsZnZ0TWJSUk1yOG1DSWMzRXNFT0pwMUpLaEdtcUQ1ek5jSmRzTkJtbWdrSHgzQUg1akVLcEZ0aU9PUXBMcDcrUFFqRURXVm1JVUEwUGNKZzhCcnFqUkdIRUdYQW5GbkJBSlQ3VXdDUUJpYU84eVZBTG1paUw5dkMvWU1VUDdoclh3SmZUVUFNOXhpRkt0RWs0eDNWWVREY1NmQWpldHFGZ3pBa0xNc1lsNXRTbWxWZmZ1QVRjR0hrVjNYS29rYUZnS3dPc3hQVGlyaGFvQmNheXQ5a3ZORndXUDc2NmREQUdac2RwaFJSS2tKbWE1T2NrM2M4V29mSk5mVXRUOTNRNmk3ajk2U3YvQ3pPd2hsV2pXNmJDLzJoUEtQaWZxM2U1eHBhcnEzdFREMmhOQWx5VGg0RjZ1NWlaUDdxRS95Zk1JcCtXWSswSWR2YksvdnhibEx1cWlhRnprK3I4aFhNOWJ0TzNuMjB2a3pSN2N0SFZMTGozT2orS2lPMGlxZWFYajVsV0hxcEV1a3B3THdqR2NDektWR0kvcDdKa0sxcmtrWnp3UzRYUUhZempNQkxsTUFUdUNxWEloTE1DMXZOcWR6QzBBMWRYSXRkOTArTGozYUxRRDdJVGxOZG9aYnpYY0x3RlpJV3ZWU3UvQWx1bWRwYjRma2tGc2FEQm1PeWlncHNQelZYK3NYVEI0Yk1Ycjh0ei90dWlGcEQrdjZGSEhQUTlKZnJiNmlQK1FMaTlKOW5GZFU4Mmx3T0Z5Wm9pdTU2U21lb0FDOG96ODBIMXJYc3h2TkUxMkJuU2M2ekQwQTFaSXBsM1ZIU29DTXRqK3dVVGN0d0tHZjNBTlFEZWsvclR1eUVkanlBOG1MVTNKdXR3QThSQ3FPa0FhRThrNGlmQ3N6c0xEMmNRYyszeGlTRmIycXpocWpsWFhDd1VoM0FFVHkxbVpxajREYzhtamk5OFlCczVNN0FDTFpoTG9aRzBWTjJnYmVwcGZ1QUlpa2xlZ2Npbk9vZFh5YXVOQ0FpVW8yMWYxbjFibFl2NlZtMDRQQ0k4bHU0TWFMZVdJR09mVFZFSlBqNW9FZDBQWDRDaURobWovcUYyTmFZVXd2a0xUNmwrc0Iva0pKck10T0swTFRqbkhSRm9KVVFJTFozeG40K0Fud2NWL3NGN1BDNE9qUFhZMHYvMU9lVnNnTHBobGFlMksrbU9WZmFLQnhOYjZ3VzZqNmFmRCtjaGJvcnJEK3FnOVBDQmorbkd5eFl5aEJaMUY4T05wZVZFeXNzUjZJK0RLbitEaGJRc3AwV1A1Q3lrUnhNYjdLV29iVUdyc1B2bEZQaUhuOS9PVmJ0YVFBdjlhMXE3VC9kMXE3M3duOG1sdnNBb0dQZkhBdG8vTnVlbE9YZmtES2ZMRzB3QlhaalpudFVtMjY0UDhNaGwzYS9kUjR5YmxFVFo3TWpvak1yZ01YVW5NNEpyamxoSTFDcmdIVnVvNys5dnNsQytaTTZkOHlqNjJmQ0F5eFgwSnpGS3RVdDgzWDQ3YmdpOE0vejhIc0FyUSs5SlI5Tk1BclpxbFhGcGNVVDQ4dXorejY5WFVGdmpzTXE0emRjQUcrL1JuWTRmTmpIL3oyZmpETC9TQ01PYjRkaktuM1M3YndmaXZQZXBYZHdCRGQ4N2tsMlc4RDJhTVpvYnU5cEhFYWwyeFV4WjJQd1h5K2Y4NVgrVjI0MFpkb1BYcThRekp1ZVAvdTdiNG80S0hPbWxSSmxWUnhyUUduM1lBSnM0MHkyVE5jOUVXWGtWWGtlaWtQTC8wdnRGSUVDMU1jWDhuL3FMdlM0SlRHbDEwSlRJcVBlbUNRNnd0OFV4cmdNWkZUemErZjJUT2YzaVlRMzlKMEhydTh3QXM0eVhPWHYxQkFnVTU2OFByY2dra1JiUmZLWVBEMEJuZ0NrcENXSTlwZ1RFSWdQUE9LQjhETC9SUHdyQ2JQTkN4cTN6RnJhZUdNWlA0K2pyUnZBV2ZpbnlrTUwzaUtXc01zV1IrNjFVMzQ4R2FLd3ZNYm9iRUVqTkFkcmdCUXArQWVFalplMXc5dHRkN1lCNDczWXZpTEZyOTBwaVI5cG55Vk9rNDVZWWp1WGFzZkVHUmszSE5lSWNoUmYrU3kzLzUrOURiZVdVcHZjQ3praXNYNFFPMlRQRDAyUjdFeTFzUWFTL0JOaEtYMWZCeEZGOVR6RkVOalVuSXI0eTk0cllFSmQ4MGNxcTZYY2ZZSGxxYTR4M1dNUHhIUWRaTG9DbnU5ZmY1RW96RmxPQzJrMUhmQ081YndrcGRpYW1sYVR0djZWZzBpdmxJWG1Gb3l6M3lLM1FOdGZtOEJDVjgzcGhtVXIzcmo3ZFFCTnUraEVRUjhZMW5DczY0ZzFsaHJkaW42RFVVZXJ5TFk4cWF5eEpmQXZ1MWtWN2FXZE9ZUi9KV05oY240MXdlLzY5V3VZZFV5K2ZOQUthdVcvZnMyZjI1VUNueFNzL2ZDdTlvdmY4dFlBOUY3bTVJaWpkcXdlcE5pY3c0ckwzeE9UUjEzU21acDRkMGRteDF6MGtqbE9LRWhiSnJSNkRyUW55Ryt2Sm9KVHBxRzN5ZHRBdVM0b2llUVllcXlBL2lqNXZLUkRIUW1BSEplazVEcWVqYWEzNFhVbmJEaDBJVnJ0MjljUGhtNXFHdFJTc3hiSHZRQ0hpSFdzQnhsQXFBbXFlNHc1VGV6VDd5bU04RkYvMG9zQURrSnZYN2twcE1qVFFGRWV6cjJJNTBUT0NzQnR6aWR4MGQ1VzVBVjRoMGxzOUxjRmVRc2F2Kzc5NFNvaFNLa0NwdFdiT0prVlVvd25RTlhrTXVzTmlURVYzd3VLNStRZFBQbzlvMXJmOW15OTJ3MDdSdElOOVc5SEFPQVNHSmlIQzVYT093K1BQYjIyeXBJT0hydWJwS2VQTWo0QmFRd0xMVnI3Q2l6QUwxVWxXOHg1akFNZjR5ZmF0QVY2ME50TDY2QTRXbFhpUmk5SVpCcGdOem5hclNUTVNhK0l0UW1tdUxZeGwvWWxOKzY2Z1hzd2dnZ2QxVTV0WVBoMkVyd2NWdThTUUpVWmsvU2g2bXJmZEdTNk5YdVI1b0hPRUl0ZW1TZ0ZlOHBCc3lXT0N2L1NtVXdHM1pQT3dCbVVlTEdFdldLSzJ4YzFaUjA5MTdIbERGUTcyZ2JqUnpzbUdMdU4rWGNGcm9qdmNCeVI2emhPaCtUSWFQV3UyL0w3QW9pMFV6ZjZZNk01Mm1ONTREOVZkYzN6MHVONnluS0RxRGFnZXdVeG9CSmJtSFhGSHhGRzVtaHh2VllmZGdCOUZWc09nbit4bTNoQXZGN0lCc2lTYXN6bEZJak56aDJBRG0xdWtzcDR5ams1b2NUamVrYW42bmxpVmdDVkpQOWRDNEhtQkZJakozYWJFeUNVbk5uRG5Ic25tSnVpSEt5Ym5PRm1jZXpTRWEvZUtOWnV5NTVUWFhtQ3FwcCtQcmNBWkRmOTU0UXZRZksrZkFOTWM4TmxPMm1yNkNKNkxibXhISWFzRm5oWWF3cnB4MVlVWjdvekhJTmJWUmZ3VjFCRTBGUTFZa3FYREEwWWgvRTFFTHNCRmU4QWJwUGF5b2oyZXIvUEZRNTAwUithQm5sWklOVHBMTklRU2JvMmx0OEtkWWt2S0MzYTFZeS9aQ296VXhOaE9EbFFiSmo5YkpFaW92Zk5iNU4xZUlGY3VjclhMNSt2MlVTQzRneVVNR3lhcUVuRzcvWlJqblRSQVpyUG1KU2swRHdWeEJ0T2srTS9kN1VycE12YlB4bVBlWE0rcllCbGlabng0SXRsMUR6OEFCbWZRaFFEOXNJc3F1c25OamVOa0NWaVYzQ0hjNjVIR1BIL0FldnJVU1ROaVc5bEZCT0hHSWJvTG80SE1HZmtMN2pvbjhRY3Z4NFd3UXA5bFV0MmRDVC9wdTVpR3N2YmtsVFR2NlZmSkovaVZxdE8zYnIzSzV4aFd5VW9kU3VMaXZwdjVsZU9YR3JiWUNEbFpPZFRtaWVyMVpEcytHMWl5VWxYV05FZlZCbk9RdXdoNm9RMm9odnY2Z1FEZHUrUUxWdTVSajk4N0hxVjdJRk8zRFJpZkVXSEU4VnhVWVAwQzNLaVRaanViMWppY1JUb0NzdmlGNndhUmptRVpoc3c1U2krYmJKNGxqRmVPTEcvWkNtRHUzRDNSUG4xTXFMUGlZMWxOTzJBS3BrKzVuK0VBZ2N6RXY2M2tsY0p0UjM2bDlMYi9hSDBKZXNOZ0NlSlN0eHoya0FIOER5S2pwQmVyTnVwUCtzYXRiN21uNmkybnVkSDZrLzlvSUNzQ0xXK2g2c0x1aXhRU1p0MlRhTUVJamJ5bERyNnlVWllLYWorRHBUdTRrWjh6cHBaTTdTeVlXcDIrZHJ5WWlRbzBNdlNjQW1QSEhBZ1A3OSsvZnIxNjl2M3o1OSt2VHUzYnRYcjU2OWh5K0R6dUEzUnBVQWNZUGRvcWJTK0tsS3lGV2F2MXcxOThpN1lobnpmbkpNdG1BSUVqa1JUcjJFU005TFNnUFNTbFpEN2JlWnB2RmR3MFUrSWlrdnQ2Z3J6UmRJdEFReDNqazdZaUkvSUgwV1lSYmZYbXdmeEVySUdRT29seERwL2ZpYW9QaUxlZGFTeURFVjZYNnpIZCtTRUhWOGZrWEM3eUptNm9mVVM5Z05qWmpBYm5pNTBmNlY5MVU3a0plZmYwQzZvT0QwSVdDaExwWFdLRDdtOWdpYzBSYmRZNitoVHIzNWhsWEpaNlJHbWNjdC9DQ0h0cURkS3MwSjNxUTIybHd6SzQ4R2FaeTJHVHBmcFlkRkFYa2tITWhqTjhBcTZxZ2I2R2Z1MEZkZG5OcW1SdkZNL25rcU5oMTZNRkY3NkJuV3JYYUE1OTg1RUhiMGd6THNaUHFKWWVhanBscGhCeWgrNEc5SFlteUQvaU1YSHREUkliT3Bsc3M0cGxMMkplVyswVWcvay9oWUZ6M0pzMTNRWEQ5T01IRjdUREdEYjVFTGlyS0VmVkhjWEdiaG9HU2IrTDQzTTQ0WEpsRFNoOG1mMHRUR2t4Sm5zek53cnQ3cnJyL0MvWjFKKzVtME5zeTZpNGJ2ckMzelY4a05pZVJ2ajJkelA5UTdTL3FCdXgxdDNYNkRxUnZ6UEVaM3JLWEJGc3p2V0ErMHMza1h6YU1IbFRMTVQ4N1k4U2ROOUVIVTF0NG1OakZwbVVvNHVYaE0vKzRHQ2MvQitORlBWNloxLzFGVFpuNHpwR3MxYytIYllUQk1QV2FNbTZyazJTOXdnbS9uOTFSNFlpUjZUQUdQeGNkOVlzSXpuYUlDaldtRjdQeFNjUGZ2Rnc4cDVoNkFJQXJ4aWIwYmw1Z0llbjVnQmpjQW5NdmJYV0c1bUdMTGk5dFExK1dWNjZZZ1pOU2s3RWJYMnZ0VDhyb1c0QUFUTGlPZHZOSnRWdnZidTdJOE9jaXJlMjNYUEdYQkZMTlpVdDVsQURNa21mT2xJVlFXRzJ0NFlXQkdGeUU4Ym9wWEVEaXhSdW5jNUpvbjVpdVE4V0JYaGJ5cXhIenVCMVB5dVdDdkE2Rk96K3hhcW5YdDQ3VHFYVWZtZFR4S2dRRE02TFoyRWJvbDd5bmxuNVo4eWhoaEJWaEIrOXl3c2huTU03L0F6b2NvaWZzWEJ6TjhZanJjUTdpUzFTRHZ0NUZ5dC9OT3ZFT0dHTCtaVldlSmREYlRhc2FRYjkvcXF5aFQvWEFxRXlVemwwMUtQWjgrMVlmSlUyMDl4T0tKT1d6TDBHcHJDYUpPOVJ2bm54aWZsb05wMHRPRWNkTlNmU1ZscWk4UHllUUJlbTlnRjhwVXMzdGluQkxxVkRONllwemRsR2hQdGZWUUozOVBuK28zU3l0d25qN1ZySitZb0ZHYmVqT2U2dml0RGJ4WndmTWZGbVV1cnNuT3FYNDAzUUZEUVZDTnRyMkdSNkF5NGVjMzlPUlRKNmJhZXFTelhkVXhRa1pkSkZ1UncxM3pWTC85b2FMcGdYcFM5b0dFVWE1N3FxOE1OV2VBVzBUWmlROFhaL0JVM3lYLytkc2EybjVpK3NpUDE5TWJONkQ5ODlZMVFSNkovcUdoTGwvQUgwKzNzZHRuaFFUanhaUlBvTXVEVjF5TGdSMEEydVFXYmxqQWoxS2ZHTmplNTRoOE02QlJ6LzZnV2VIN0xPNVl3Tjh1LzR6NFBSQWFkVS94aFdqaXh2MXZPTEhLMkR2VlY0ZGxKbXZVNm00QjNxbTViU0J1TTU2cDhabzIxUW1iY1JhTzFtRFpUSzhCcU5yMUxjRG4ycEg1WGsxK3FpT05pWDlEdEpHVTRLenMyaFZvcFR2VnN1ZUd3RjJRNmZxSEZpQVNxZGJOWEh3bnc2bitSNjk3ejlQR3dPb0ExbkhBUU96a1ZPdWJyZjBQVk9OVjN5Wm9RODFBK2syOGV6VndYUWNhR0lPRUpHSUJQeitTTWx6VG1IVEZWcW8vMHdQVXAvR0JEc0N2Vlp2TUhXM0pSaEIrL2NGbDZESU92bWljNGlXNmsyQU1vM3JOam1pVGlrQlN6UVBYb1BQR2VtZU51My9hQkkzNUJYZ2xkcWhIUVpMeEhsZkFLekQxRVlGWUdiWldFRWVyTmpqcklMejdxQVRLdzlTTWNjelJCWFE1U2x5cWpTR2RBelVabjBFZzhsRnBZdktieVhRYXU2VFNqK1F5UCs4eCtRdVp3UnlmVTk2dUJlZXRnc3BEMkZhWTdjUVVYZGJoLzVLMTQ0OUxzUUhkczhFeEphRXBQL1J6ZmR5elpPays2RzVJL0l3ZHVqVE5JaE5wWmxtQzZ5OUlVTGp1cVcrSHVpVG1RNUJpczUvUkROc1VDcFZyOFVyVXRhb0paSnJHeWdMUTh5K2VtZG1tbVJMWWRyc1pHM2pWVmxHaWpoOU9zOXZ3NWR0ZzZlRnIxdzh2cWM4a0xpckgyRnMwWTN1RGxEVWQrcmJhUlFrZnZEZ2tZNHFpNDByUG8zUkJTSEZqWEVqZnZ5blB4V0c3bm9zeXY5OHk1c3lVUEg1aGxNUDNoNlgyZXJKRGozOHcyVDZuWTN2d2pCbXVOOWd2ZHpvV201ZDMwajNhYzFIUHpyOTdFRDZQNHhReGxKOHVmdTBQME54NGcrd09GU2tEMWJMOUJyMjVXU0x2QUtjcnZ6aWF0bDg0RURxUUZxWkM3c0Rjc2sxamNhVXRhSkpwOENYS2MzR3dvMFBCRjIxaGJoTFdDRlkxZ1NjMzI4T295RnNwZ1pMM0p6dnFqTjhKak1hRVp3R1doeklYQWxWdytpTktETzJtZWc2dkIySGdUaHRJbW43ZzZ2NmZHUnIrSjhVSWVuNlFNeUZVZ0pvbkU1TmgxMnJ0RG5pcFRGR1IrZWpGVG9iVUFOcDVqM2gwQUkvcHlLeFZrU01vS3JMMVFBZW5nNUltWUNxb2FHMWZNWTZxeVBjbjUyV3dZODdsYWVXZVljbDVrcG03K096bmxPZGlZeDAyZXRRRUtqVWZTS3lsRXR6ekpPMjVZQmRhQ0d6ODlOYXN1TElDbGRaUVZPVFhDejlocUJSVnhOUWJVWFdTSzlpU0hsbjJVcDZML2VGcDJhcThNWlNhUXMyd05RZ3kvVWVFZDI5aUhvNjFyQVlEdDhIZloyQm5UVElza2orUWVQZUcycTdvSkF5ekRCTndEVDFEVHVOTEVPRFZsWE1EUWwya21zTkV6Y1JGK3FJMWFUckJwcHJ4QnRkdUZsd2gzNFZsT1pkSmxnZWlsK0tYOEh6S0RBVlhuU0Faa0kzdFUzejBPa3Z5SCszU2NxNFVwVUFpLy9IZXViK09IanQ5VFUzd3dmV2YwVFloL1craTZ6dlJGNzVKdU8yVHNZRmxYeVBQeGZyYWJ1aXd6WEVCMDdFeGNLY0lpb2pjVWZwcy8xRE9YWklwNHB5TzZiejh1UnJ4N0RaL1JzZWNuMW5HelVRN1krMkJzMVpIN2ptNGY5Zm14UlBDUzFxNFZFbVZWRW1WVkVtVlZFbVZWR0VoL20wSGVaQjBURy9RcGkveEhpWDM5VUZ3NGJ5SHlYQWR3R0dlQmxCZnYyYVVwd0hVUjFUQ05pY0xPbnVFVE1LRkhuMERQbXptR1FzS3JPdjlnKzdEaVpnYTBDa2w1UUNXSHowWVlGbGNrYzVKbmdad0JlNEtOblliQnN2UU1uWUNuT0RlS3ppTFZrZ01POFhqYlZZSFpDbHRxWUhqNVhBQXg0RVBXN29MWVBWeE5QZE9lWUJsdWU3RDBlREQxcDd4a0lBZW5meFMzWWNSMUt5YjFwR0lLNzdTSHVoa3FCeTVTNURWMytTVjdwRmRvbXdEMXNUZ3RlRGxsdWxpdGJDaHUyUUJqYmF5YlpEZUxDT0Y3VUtEdnI3SkM0eDI2MFFDdUpPdnFyNlpJNVpobEJOazRzVCtLWXJ0RXpReCtsS3BDQWVtVWkxejlESXR4N1dYMzN3Z3BhNVZ4ZTNGd09QS2R5TUIzSTFXVHBzcmRpQmR6QS9La0NGajhWbjhCeGhVbjVDVUIvWlFnOEdudGZrRHdzdkM0WGRndWRJMHd1dHYrQlhDdjJBZU92Q2J4RzVyZ2FSZnE0RnJyOUdiV2xrYUQ3Q3JkSFZoTmJtRVJPVDgybEtJYmhtbE1IY2Y1UmZiMjJ3UFdodGcwVGVHNjQ2dHRXb0c0RXd4SWhZTGtJdEpzT2dCZHJBSnNBRXVaTEVqTlhXSkF0QnlVcncvc1FDejgwODUrd0cyd0JVMkJrNTFZOE5XT3NDWjFhcFZhN09UWHdNL1RVaXUvSmtnWXA1RkhSRmcva1BLYW9FQy9CMmMrQm01TGpCOGpQUk5KS0ZUZmFKOUFFVTVMcTVBY3VtUHJ1SVZUSGoyN05sYm5yOFdoZ0VvT1ZlSWNXL2RjR1ZKNitCU0VHd0EzRGQ3OXV5VjkvaVQwQkdlWUYzeG95RHpjNG1qSlVaRlJTWHhDNVJ5bkNqQW0rREVINGNUcjJBL1hGM2pxdFJLQUpSNzBPK29tQXVGdVFkblNiTnY3ejBJQ1Z4SE0xcXNxYWU0alZobEpkNElNTlA3cENLT0FCeUxxNFFKaTMydmN3UmdhMzRWQVNBM2cvK0ZjMkFkbklxTFQ4aE43WVZDQWVoN1NJd1d3QzB6R2Q4bEYzY0FJQXlLcjZYN01BT01IaVFEM0w0QXlQeGFLTUE5TTJiTVdINkh2eE1rUGlTTDRDbXo4NnZMRERlTjM0U1o0bi9oaVFzaVNHNjJoUUNMdnZDRUw3WGc5aXA1Zzk4bnZCa2pCaE5LNWJldFcwUm4vRk8wV0hoWjZTcUZ2bzZTUm1pcExMSkt0dzFyRnRxdkdTaEJBaTAxemYrTG1sQnFnR3lFZ0MraG5wUzJHdmlnaEp3d21yT0dLSlZoaEZKMUthS25pSndnbDZhV2ZLS2x2SFFtTVIxMkc3WmZ6V3RxZUpsYlpUOEFhTkRGUUJSTXRHY0FoR0VtaGpBbzBIa3cyVE84d3lEU0w4N3dLY3d2Q25KODFBNmdwTUFJNFpickFvc0xqQ2poK0ZDUHNZMXRmdE9tN05vdDhlK2ZDREtNUzN2eHlWTSs1c2tUSjdMT1FaN2liY09uTURiS2liaWNlRVJYZXpmSm1SbjJzbXJTcTFRcUpFaHRUd0NZSHQ4aVo3UnoxUjY0aEhYTm16Y3Z3d0lnYkNhMXcvQnhEeW9wTVFHUVY4TmduUVA0S2I1RlRuT3FTbTBDNE1UQXdFQnZGZ0RyNDNYbnFxUVlMYmZmZzUxd2xFUlNDRGM0Y1FXbmhncGlZUUJ3aUVKdE5KS1pxbS9aRmpIY2RnWjgvY0twMGlYVDhZMkJ2TUhxYzk3eFljczNGS1NCU09JK2RhcTZOb3c5eGFScWdtakJwNTZ3RlVOdEMxUE1CMmdMVmg4UEFBaFRLdExqVEd3T2RWOWdMNkE4eTBmTTU3Q25aMVViWnAxeGdveHNwV1RWcEIwanB1cG5IVDVPa2lGQWxhNFBYbzF1SjdWcDRiNXVJTElsNlpSQjZlay9Fa3VJZXg5bllxOTdLOFdNTHZLVDdiSWZzeXY3cE5vY1RvcGd0cTZCNmx0ZzBrMkZsdG51RkNLZWR4UnpvQXQrZmRSSW5MVjllUGhYMDZKa1ora05ubytBR0pvTEgvTWZ3OFBEbS9qQmE5QWhQTHpEMkh0aU1sa0cvaUc4eW54VU9KUkc5SjVtc0N2aGVzeUJMMDEwRm9oTGh2L2xmWmNNRjVLSy9GWCtvbndzRGY5V25TVDRYNllvUGd3RmVOdlVMUWl0ZzdNeEI0cVk2SGtuQWVRaStTL0Fmd3Y0THFlVjdId2pRRzR6MU4vc0JOZ0RIN2N0VEJOUHpjclJBUHdkUGsxcFhzUUdEWlkyRHl6QVAyQ2lvNTBBSnhJZEl1RFdmbXdLWU1HWUpQQWtOdUkzY3RtUzcxbElBQnNudncxR0FkNDFCUkEyN3NMMnpvTXJkWUNOaDZSYjE2NDk1MFNMMnRBRzROdzdLS2VEYWdCR2J0OGVlVkZLaEZNQThzbEFYdG5JZ3ptc0xSZUVDT2hTek5PL0xUbERFdWVBcVAyZzJGYytJQ0I5R1FhZ0dEN2ZqdE1BVExvSzVMaU4zTVNueFB5a0tiYWJmOFpaSTRZUEg5UkkvUHU2UWdOMFNQd3JIeVBBSW9VSzllVXZXclFBVGQyREliQmdEL1lRTlBSUE12V1FRRG5BMy90SGtJOVMvM2Y5UGVoMVZiclY3UU5ZaVd5b0xHKzdOeDRLTUlkU2FXOFQvaUZweTErQlBzMVF1d0IySlRkWFRBZExjcHNHR01IUHRBRHhmeWYyMHpNQXRGd1NieGo3cnVDM0ZMY3JTR3lOdFpnRmVGRnVHcnVHNzRKZlpscngxNzB4VzExajZsWVhTU25OY3BDbk5VNkVTNlg2ZU9WUXJJbjFSQ3JqRmFlb3V5L0Yra09XQzdCUG9LUXNoSnBURmtCU1N4SWh0V2VlVGE5N2EwVGJHYVhrNjQ4UWE2RjFWQ0lLV2tsclFiSHhjRm50THFwYjRXTkZHUlJNK1lWZ3dEeXVFUTYyWjlLejFUbUJuczVWaElNRlNKcVlHd1dHYVBVbEhRVVZMejU0cHloQVNEektrWTd1ZHRJRXgwQUF0L3hJckVFMnlYWVBUaGRMUVlEZ0JQRndROW9kNmhicFJHOGVDTTBmMXpPbG9DeTNvYkE4OElqbzBDSmtnS3M5QWQ4anlpM1EyUk1BcnFFQXpHcjFBSUJVblJtVy96bTlWeFNnZk8rWFhnT0x6ajNwOWQ0bm9LT085Qm80Z083TEI0QUw1cUQwR3BRSWZDQWZBR1ZlRDB1dkFlbDRKQjhBZC8wUitRMU1taytpWm9wT1FrbHBwVVFrdmtaUWcxN0lhZVNmSmlDUlFWdDUvcVhNY2NyR0lYMTZOL0I4dEp6VFcrb2pZaFQ0bWVmZnlzU2tlQ3pTSkJ5YXovKzBiV0gvUzlZSlJ3cC9qK3hxenloY2hJUHlnV0VDUS90U2VoMTZUOWpBNVhEQVFRSXhsRXMvQnQvbCtlUHl4dGtQc1pvRzNSSUl1THhiOUVMQ28yZkkvbWF5d0o1aG9yMEZxSGlDaHZoQXJ1VlFRMUR4eDhxbjdSTW90T3d3clpxRWROZ1c5dEpuWWNnTVRKRVA3TkROd0F6TUROelUxcEhFQ3V6Q0hDL3YxdG1GcmZGWFpQb1Q1TnB4V1o3ei9PK0lCcElrZS9BekMvZm5IdmxDanhZT2ZDSFBnS0N2NzVjUGpCQm1RQTVLQ0wwdjNKNXdCa3BCcm1wanIya0ZINlNiY2hHbXhvaDNKODBKbnI4aks1djFyV3JwQmUralNLSGpMNjJxalF6TXdFTjBCa2FUWnVBYjVRR3c1UWtKRWtPY1ZzdnY1d28wUmI3b2VhSjVOYzVrRnMvSHlYRUZPVjhoZFVuL3A1dUI3UWp2eHMvQUJHa0dZQXZqZXJhMjZ3UGlZdlNWYkVPOXdQT1gvWkhMMjExNjdmc1B6LzhyeHlpQ1doYTk1QXQ5U2pjRC9lUUxyWjhCdVU2cDk1OXdCZ3JEbm9NMkt3MzBrbXBYeTBFTlJUOGdnZjgvOFB4N3VSTlJvZmRJdGF0RmdxWmJWSHFkL3kzUC95d2YrRjVRNzByaVptQU9NZ081WG9NWkdBTis5eGViQ2srb1pIODVMYThEM1pDaVZnSC84dnhaWDhRa0szY2w4aE9tNTRMOHgzZEFtQnVZZ1N2eURMUkJYRWh3Qm1SVEZZZ1k3UEVQK05uNkp0MFVxSkZUV0hCZnk2NzQwbkZJQjgrMVBQOUdacWtsMEFWM0ZjKy9RMmRBQ1RrV3RLa1lkQVorUWl6NDBPTDAxQVRoYUNiSDNjamU3ZlJnSlphLzJGODRJUCtWd1hlRVJSMWRjT1ZRKzNUQ2duWmFkcmw4VFpxQnpzZ00rRjhSZi9RN0UwcXRMNkJPMXVzOC8wUk96UG84RVdudy9EdlBQNWREaGlvbUlPV3VmdVg1S0xuSWRybDRaQy9jSk15QVhMaTBUQnlpTVArQ3pFQkpzY3FlcVpvSU1MUnk5Vk9rdXE1dyt5Yko1Ull5b1F0dWhMRGcxcFRkQncva0JaZURZZG5xRFB3bmJMRHlEQXdnelFCTUpyaGtpaGRBQTFoVVU2dWFPdVlsS0NEM1pTV2psckRneXQ1TXkzNUJNWkhyUTFaTFVndnlXdmJvWmtCeGxmK21tNEZwNkswL3doeHpnZFUwT3dzN2Q3eHNiODN4RW5FQVRCVVdYTG1yVWRZWFBCK0ptTDhUNVlyd1ljSU03TEtvUHFJazJZZVZTVkRKOXNrSFJna3pVRU5jYVpLd1ZYZndBbk5MVHZtY0VRaFVJTExneW53L3pVbWV2eDJFVzNDUENWdXA3T2VxWTFYRG5qVXpVRE5aMVZqVUdZQk80cjBtdVY5MnVOMlZLL2dPMmZMbUMrdUFIS3lZN3czU2ZPODdZU1V1TGIzTy9ScXhnSDVMbW9GcG1CbEkrd0w4WkZPejdQUVhNV2VuRStLODg3c2szTUp5Z1RTUVo5bEZmdWpQOGZ5MUFHUXZsTU4zTlRQUUZPbExvSm1CaGxZWWtmd1ZMRWhydW9ZWVRPaUlEUVVrN3cycStpNUZmQm52NVBDL3dqSGFCVGRHWm8wRjNpRldnSVhJRE9SRloyQWVuQUVZOERiSVBNR0hGWHVIUWRYM1pCcGt3WlZWMzBCaG1memJCOW55Wkp1dC8xV2VQNThXTVJOZ1o2QWRvbzNBR2FnT3QzODdRdHZhd1FZbEZxNThBaExCc3Bublh5bmtJeDVaOWRmcnlJY1NqcjFHUno2VUpKWVZndEloejBBUllRYmUweTBlUmtuelVESzJEa05VMzVEN3lFbzhVRmh3NitMSVIxOGt4RGdkT2dNOVNUUFFUWEpDMjFWOEVucW9MMXEwcW04VmxIenMwcEdQcWZhUUQwai9VRzJFRmlPTmxReXhValI0bUtENjdrVEpSeFY1d1JYSXgxNTB3WlhwWHdaaEx6eUFJeDlnQm83SU16QVltWUZDRUdCMSsreGdNSUxoa3ZBNzlSRHk0U1dROGZzbytWRG9uNkNIUDVMSlIvVmt0WUsrUmVEaVQ5QVprRXVEV3hENk41ZnMvU0pMcm5pNUdCeVZmSlRIa1kvSndwWkhKUjlhK3BmOW8wTnBtekRwNjdKRnAvbzJSOGlIejJrQy9TT1REejM5RzY1b1Q2ZnN0bldLZjFkYnR1UkRNd016eEJuSUErZXFydjNXV09qV2dlN0FMa2psUC9Qa294dU9mSUFaNktHbGZ5dDRTdWxEbW1UNW9EUXkrVmxZaWZQZ3lNZEtIZm40QVNFZjc3SGtZNGx1QnRZVWdnVklhemhpMEo0RjJ4S0JTeGg4RzFsd2V5RnFSN29ieUlMYkhYR2tCVndqa0EvTkRBRFgxblhIK3laa2dodFFMMW4xblU0aUg3TnNrbzkxZ3RLQnpzQUNoUDVCcWVLWVR3QXFrUy9TeXd1dVBBMmhBdms0S0MrNFE4eVFqeUNCZkp5UVo2QVBTdjl1UUh5T3RoWUpnUVVJb1VIUzhvZXc1YUhrUS9hSlczWUxaRlltSDVWUitnZklSMVlNK2RETUFFd3BUWGJZdWRVWDJ1SUtHY2pIQkJMNUdJdlNQNEY4L0lHWVFqVXpjRWljZ2NBSHVGeG44K0lOUzZoRUtxcnZRQno1cUdzRnFxTktQaDdReVljMEE2SXBkQ2JVQTUzbzhpWG1DZGMxa0k5Y0tQbVlpZHJiWGlJV1QwQStLdURvM3lScEJvb20yTUUxOGJJRGNnVS9XZlc5S3EvRUxYWGs0d1pLUHZwUXlJY3lBM2ZUUzZhK1c3NU9lUi9qMVZSYVFENStKSkVQaGY0dFFDeWVnSHlzUTB5aE92b0g5WGJ6VkE0dk1QY3JvYmhDUGxyWkpCOFhCUjBESlIrZEVmSnhGVFdGRG9MbDAzYzY2Ui8xZzJhR1l4YXM1d05QUGo0Z3RWaCtRc2dIbUlIbGlDa1VTb3pUWWIyMWVUVzVISkNQWXlUeW9YZytlaUFsSlF6a0E1MEJYT1VnQndRMkhJb1dWOWFLS1BuWUxpeTRNdmtvajVLUExRTDl5Mm5MOS9TcFdGS2JRUWV5eksvQVNMc1Y4cUY0UGpJOFJNakhjQkw1SVBtZTRCS1lYSkZqSUdMSjJoNEsrVkE4SDEvUXlJZkc5NVFGb1gvaVh2aDVzcFBwSWFqc0EyTzl5MlAwUFJISngzaUUvbVZHNmQ4WTRhcUJHUWlFejk2ZFFEWUFjOEwrdTRjc2RNOEhvSCt5bjlSTFF6NlNFVk9vNUh0YUFpZTRHc2RJWUF5NHZCUFAwNUVQSlVsbXRrQSt5aUxrWTR1T2ZDRDByeDV2cjYzRGhzQ1lPV21EMEpDUFZqVHlRZlE5allWTDlIV0czYjZ6d0RaQkVpeEFQcGFSZkU4ckVGUDhoMklvK1VCTW9WQ1NHTFlmazlxWHlMRDA1T09jdk4xL3BTTWZGMUh5MFJHaGYwQ21jMHdGa2tONUg5aUlrSS9TZXZLQitwNFdvcjRuT2NtbWlWamxtbkdUeUVEWVBVTWlueHJ5Z2ZxZWdtNGpuby9laUtvU0tKQ1BNK0tXRndnM3VUZjVPTVpTQmpvWkplb0R5TWNrNUFsU3lFY0ZsUDV0USt4dHF1OXBIYlp4S0FPQlRRdmwwSTJ4aU9jam93bnlJZnFlNm5CeXArbWZPQmRJSk5LTjNJVG5RKzk3RXVsZmVUZ1Ivd2E0QW1CR1NNRmlTaXJrWXh1SmZQeUcrcDRxSS9SdmR5aXM4eDlibW5PSlZJQi8vYzMweXJPb2tJKy9FUExSQUNVZmYrcDhUMkp2cnM2Y2kwUU1GOWhoVWNnSDF2TXhWMGYvTmlHK0oyemJWWWF5RXVud3FDRWZiVkh5Y1JieFBXbm9uOWdNNFpTdjZ3RDZ3UkphVm5HOUxtYUtmQ3hUN1cwbFlaK2tGems1RjBwZXFGNS9LS2VRRDZ6bm95dnFlN29pMDcvTXNPTktVaTNPcFZJSDlqNThsRTBoSDlqQU41enZLZTBKVml6SnpIcDl4aDlMUHJDK0p5bndiUTN2U0Y4NUJ3UjZVQ1RMRE9yNTBBUytmWVlHdmtINkoyWlhIdk4xUGNBMEI1Rm1xT05KdnFmUnFPOUpvSC9YWVBEcGY1azVOMGlvMk1la041WjhZQVBmcWt2WlJlOUxjVzZSSWpEN05hbUpnWHlndnFkc3FPOXB0dWpQZEZ1TnpWclE1dlhoTTVsODlNU1JqMFlxL2N0OGk2ZVdsbU12SGVBZEZWVklUejd5b2VSRDhUMmxnMkZqYXN5WE8yUWsvTWs3WVZUeWNWN2tXVDUvd0pPM3VMZDk3VUxSOXBOZVR6NVdJdVJEcEgrVzllSUM0K2RXZkp6WHIyTHB2QUNKZkRReGtnL1JxdE1TK3Z6NGZ6TndiaFkvY2VmYTZ5dVJEMUxnbXhnditUUXY1M2JKY0ZtOHRid0o1RU9tZjVERHBVZ2VVcmJiOE1kWFdMRGtROUg1d1lKVWhVc1J5ZnRJc1FFWnlJZTQ1YldBdWs5Q2ZTNkZwSmpZVFd3eWhuekFSYmtCWE5DVDIzRXBKdVhGeWhBamRMNG5LZkN0bGhqMjJZdExRZmxDekJidkk1SVBPUWhjOUQxVmpZSEhSbkVwS2cyaHU4M2FDWklQamU5cDd6dW1QZW9kbHRid09VaHFpWkFQVGtwSE54dDM3R0xwQWhXSCtBWXcwbGpKdXRrbzRsdk1lWURBc3FsOGJDMDA2NmJJVTJXTjlBQVJWWnNQTlFENUVBUGZDajZHSDYzejRqeERKb3NJNjBEZmt3Q3FpSWh2cXpmbktUSkhyTzNkc2pyTXV2a0VKa2J4di90d25JY2hUQjQ2UmRqeVJyNFhZMDNTY3A0a2t1VXFVbWtvdTlPejhFbFJRS3BFK25LZUpnT1NFWHpMdlRuUGt5Wkt1OXVrTVp4SFNrNlJ2dkczS25PZUtqVTJQM3B6cUF1YjVlWC9xdzVWRXp3NFROc0FBQUFBU1VWT1JLNUNZSUk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkNhbnRvbiBkZSBWYXVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBOdW3DqXJvcyBkZSB2ZXJzaW9uIGRlIGwnYXBwbGkgLS0+XG4gICAgPCEtLSBPbiBsZXMgbWV0IGVuIGhpZGRlbiBwb3VyIHRvdXMgcG91ciDDqXZpdGVyIGRlcyBwcm9ibMOobWVzIGQnYWNjZXNzaWJpbGl0w6kgLS0+XG4gICAgPHNwYW5cbiAgICAgICAgaWQ9XCJhcHBpbmZvXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJkLW5vbmVcIlxuICAgICAgICAqbmdJZj1cImFwcGxpY2F0aW9uSW5mbyB8IGFzeW5jIGFzIGFwcEluZm9cIlxuICAgID5cbiAgICAgICAgPHNwYW4gaWQ9XCJlbnZpcm9ubWVudFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZC1ub25lXCI+XG4gICAgICAgICAgICB7eyBhcHBJbmZvLmVudmlyb25tZW50IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gaWQ9XCJ2ZXJzaW9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJkLW5vbmVcIj5cbiAgICAgICAgICAgIHt7IGFwcEluZm8udmVyc2lvbiB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGlkPVwiYnVpbGR0aW1lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJkLW5vbmVcIj5cbiAgICAgICAgICAgIHt7IGFwcEluZm8uYnVpbGR0aW1lIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gaWQ9XCJjb250ZXh0UGF0aFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZC1ub25lXCI+XG4gICAgICAgICAgICB7eyBhcHBJbmZvLmNvbnRleHRQYXRoIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG48L2Zvb3Rlcj5cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1mb290ZXIvZm9laG4tZm9vdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1mb290ZXIvZm9laG4tZm9vdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUdwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUVyQyxNQUFNLFNBQVMsR0FBRyxzQ0FBc0MsQ0FBQztBQUN6RCxNQUFNLGVBQWUsR0FBRyx3Q0FBd0MsQ0FBQztBQUNqRSxNQUFNLDBCQUEwQixHQUFHLHdDQUF3QyxDQUFDO0FBTTVFLE1BQU0sT0FBTyxvQkFBb0I7SUFxQzdCLFlBQ0ksc0JBQThDLEVBQzlDLGtCQUFzQyxFQUN0QyxhQUFtQztRQXBDdkM7O1dBRUc7UUFFSCwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFOUI7O1dBRUc7UUFFSCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFNUI7O1dBRUc7UUFFSCw2QkFBd0IsR0FBRyxJQUFJLENBQUM7UUFFaEM7O1dBRUc7UUFFSCx3Q0FBbUMsR0FBRyxJQUFJLENBQUM7UUFTbkMsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQU9sRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLHNC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QUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPO1lBQ0gsS0FBSyxFQUFFLDBCQUEwQjtZQUNqQyxHQUFHLEVBQUUsZUFBZTtTQUN2QixDQUFDO0lBQ04sQ0FBQztJQUVPLDJCQUEyQjtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxFQUFFO1lBQzNDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPO1lBQ0gsS0FBSyxFQUNELGdHQUFnRztZQUNwRyxHQUFHLEVBQUUsMEJBQTBCO1NBQ2xDLENBQUM7SUFDTixDQUFDOztpSEF2SlEsb0JBQW9CO3FHQUFwQixvQkFBb0IsdVVDakJqQyxvOGxCQWlGQTsyRkRoRWEsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixXQUFXLEVBQUUsK0JBQStCO2lCQUMvQztpTEFHRyxLQUFLO3NCQURKLEtBQUs7Z0JBT04sc0JBQXNCO3NCQURyQixLQUFLO2dCQU9OLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFPTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBT04sbUNBQW1DO3NCQURsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvb3RlckxpbmsgfSBmcm9tICcuL2Zvb3Rlci1saW5rLnR5cGUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mbyc7XG5pbXBvcnQgeyBHZXNkZW1FdmVudFNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IEdVSURFX1VSTCA9ICdodHRwczovL3d3dy52ZC5jaC9pbmRleC5waHA/aWQ9Njc4MjcnO1xuY29uc3QgVEVSTV9PRl9VU0VfVVJMID0gJ2h0dHBzOi8vd3d3LnZkLmNoL2luZGV4LnBocD9pZD0yMDE1MzIxJztcbmNvbnN0IFNFQ1VSSVRZX0JFU1RfUFJBQ1RJQ0VfVVJMID0gJ2h0dHBzOi8vd3d3LnZkLmNoL2luZGV4LnBocD9pZD0yMDE1MzIwJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1mb290ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1mb290ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpXG4gICAgbGlua3M6IEZvb3RlckxpbmtbXTtcblxuICAgIC8qKlxuICAgICAqIElmIHNldCB0byAnZmFsc2UnLCBoaWRlIHRoZSBkZWZhdWx0IENvbnRhY3QgbGluay5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0Q29udGFjdExpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgR3VpZGUgbGluay5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0R3VpZGVMaW5rID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIElmIHNldCB0byAnZmFsc2UnLCBoaWRlIHRoZSBkZWZhdWx0IFRlcm1zIG9mIHVzZSBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRUZXJtT2ZVc2VMaW5rID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIElmIHNldCB0byAnZmFsc2UnLCBoaWRlIHRoZSBkZWZhdWx0IFNlY3VyaXR5IEJlc3QgUHJhY3RpY2UgbGluay5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rID0gdHJ1ZTtcblxuICAgIGFwcGxpY2F0aW9uSW5mbzogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkluZm8+O1xuICAgIGFsbExpbmtzOiBPYnNlcnZhYmxlPEZvb3RlckxpbmtbXT47XG5cbiAgICByZWFkb25seSBhcHBsaWNhdGlvbkluZm9TZXJ2aWNlOiBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlO1xuICAgIHJlYWRvbmx5IGdlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlO1xuICAgIHJlYWRvbmx5IGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSBpbnB1dENoYW5nZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2UsXG4gICAgICAgIGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZ2VzZGVtU2VydmljZSA9IGdlc2RlbVNlcnZpY2U7XG4gICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlID0gZ2VzZGVtRXZlbnRTZXJ2aWNlO1xuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgPSBhcHBsaWNhdGlvbkluZm9TZXJ2aWNlO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mbyA9IHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5kYXRhO1xuXG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZU9ic2VydmFibGUgPSB0aGlzLmdlc2RlbUV2ZW50U2VydmljZVxuICAgICAgICAgICAgLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZ2V0U2FmZVN1cHBvcnRGb3JtVXJsKCksXG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZ2V0U2FmZVN1cHBvcnRGb3JtVGl0bGUoKVxuICAgICAgICBdKS5zdWJzY3JpYmUoKFt1cmwsIHRpdGxlXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hbGxMaW5rcyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIG1lcmdlKG9mKG51bGwpLCByZWZlcmVuY2VPYnNlcnZhYmxlKSxcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q2hhbmdlZFxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFtyZWZlcmVuY2VdKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdExpbmtzKHRpdGxlLCB1cmwsIHJlZmVyZW5jZSksXG4gICAgICAgICAgICAgICAgICAgIC4uLih0aGlzLmxpbmtzIHx8IFtdKVxuICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZWQubmV4dCh0aGlzLmlucHV0Q2hhbmdlZC5nZXRWYWx1ZSgpICsgMSk7XG4gICAgfVxuXG4gICAgZ290VG9Ub3AoZTogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0TGlua3MoXG4gICAgICAgIGNvbnRhY3RGb3JtVGl0bGU6IHN0cmluZyxcbiAgICAgICAgY29udGFjdEZvcm1Vcmw6IHN0cmluZyxcbiAgICAgICAgcmVmZXJlbmNlOiBzdHJpbmdcbiAgICApOiBGb290ZXJMaW5rW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5nZXRDb250YWN0TGluayhjb250YWN0Rm9ybVRpdGxlLCBjb250YWN0Rm9ybVVybCwgcmVmZXJlbmNlKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0R3VpZGVMaW5rKCksXG4gICAgICAgICAgICB0aGlzLmdldFRlcm1PZlVzZUxpbmsoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rKClcbiAgICAgICAgXS5maWx0ZXIodmFsdWUgPT4gISF2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb250YWN0TGluayhcbiAgICAgICAgY29udGFjdEZvcm1UaXRsZTogc3RyaW5nLFxuICAgICAgICBjb250YWN0Rm9ybVVybDogc3RyaW5nLFxuICAgICAgICByZWZlcmVuY2U6IHN0cmluZ1xuICAgICk6IEZvb3RlckxpbmsgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dEZWZhdWx0Q29udGFjdExpbmspIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlUXVlcnlQYXJhbSA9ICEhcmVmZXJlbmNlXG4gICAgICAgICAgICA/IGA/Y29uY2VybmVkUmVmZXJlbmNlPSR7cmVmZXJlbmNlfWBcbiAgICAgICAgICAgIDogJyc7XG4gICAgICAgIGNvbnN0IGZ1bGxTdXBwb3J0QXBwVXJsID0gY29udGFjdEZvcm1VcmwgKyByZWZlcmVuY2VRdWVyeVBhcmFtO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWw6IGNvbnRhY3RGb3JtVGl0bGUsXG4gICAgICAgICAgICB1cmw6IGZ1bGxTdXBwb3J0QXBwVXJsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRHdWlkZUxpbmsoKTogRm9vdGVyTGluayB8IG51bGwge1xuICAgICAgICBpZiAoIXRoaXMuc2hvd0RlZmF1bHRHdWlkZUxpbmspIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIkd1aWRlIGQndXRpbGlzYXRpb24gZHUgcG9ydGFpbCBzw6ljdXJpc8OpXCIsXG4gICAgICAgICAgICB1cmw6IEdVSURFX1VSTFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGVybU9mVXNlTGluaygpOiBGb290ZXJMaW5rIHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5zaG93RGVmYXVsdFRlcm1PZlVzZUxpbmspIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIkNvbmRpdGlvbnMgZCd1dGlsaXNhdGlvblwiLFxuICAgICAgICAgICAgdXJsOiBURVJNX09GX1VTRV9VUkxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlY3VyaXR5QmVzdFByYWN0aWNlTGluaygpOiBGb290ZXJMaW5rIHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5zaG93RGVmYXVsdFNlY3VyaXR5QmVzdFByYWN0aWNlTGluaykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWw6XG4gICAgICAgICAgICAgICAgJ0Jvbm5lcyBwcmF0aXF1ZXMgZW4gbWF0acOocmUgZGUgc8OpY3VyaXTDqSBpbmZvcm1hdGlxdWUgZXQgZGUgcHJvdGVjdGlvbiBkZXMgZG9ubsOpZXMgcGVyc29ubmVsbGVzJyxcbiAgICAgICAgICAgIHVybDogU0VDVVJJVFlfQkVTVF9QUkFDVElDRV9VUkxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8Zm9vdGVyIGlkPVwiZm9laG5fZm9vdGVyQ29udGFpbmVyXCIgY2xhc3M9XCJtdC01XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPVwiXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWRhcmtcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUmV0b3VyIHZlcnMgbGUgaGF1dCBkZSBsYSBwYWdlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ290VG9Ub3AoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgSGF1dCZuYnNwO1xuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tdXA+PC9mb2Vobi1pY29uLWNoZXZyb24tdXA+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMFwiICpuZ0lmPVwiYWxsTGlua3MgfCBhc3luYyBhcyBsaW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmF2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwicGllZCBkZSBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISFsaW5rcyAmJiAhIWxpbmtzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvb3Rlci1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1jb2x1bW4gaC0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC1hdXRvIHctMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93d3cudmQuY2hcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0b3VyIMOgIGxhIHBhZ2UgZCdhY2N1ZWlsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIGZvb3Rlci1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBS0FBQUFJS0NBTUFBQUNUQ2JTK0FBQURBRkJNVkVVQUFBRC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOEhQUXNJQUFBQS8zUlNUbE1BQVFJREJBVUdCd2dKQ2dzTURRNFBFQkVTRXhRVkZoY1lHUm9iSEIwZUh5QWhJaU1rSlNZbktDa3FLeXd0TGk4d01USXpORFUyTnpnNU9qczhQVDQvUUVGQ1EwUkZSa2RJU1VwTFRFMU9UMUJSVWxOVVZWWlhXRmxhVzF4ZFhsOWdZV0pqWkdWbVoyaHBhbXRzYlc1dmNIRnljM1IxZG5kNGVYcDdmSDErZjRDQmdvT0VoWWFIaUltS2k0eU5qbytRa1pLVGxKV1dsNWlabXB1Y25aNmZvS0dpbzZTbHBxZW9xYXFycksydXI3Q3hzck8wdGJhM3VMbTZ1N3k5dnIvQXdjTER4TVhHeDhqSnlzdk16YzdQME5IUzA5VFYxdGZZMmRyYjNOM2UzK0RoNHVQazVlYm42T25xNit6dDd1L3c4Zkx6OVBYMjkvajUrdnY4L2Y3ckNOazFBQUFxMFVsRVFWUjQydTFkWldBVVJ4dmVTMGlJa0pBZ3dkMmRRcUZRb0VoeGQ0SVVLKzRXdERoOFVLQlFuTkppaGVJVTBxTEZDeFJwY1NsZTNBSUVDU0Y2KyszTTJ1enV6TnplM2R6bGZ1VDlBWGUzZTNOUGRuWm4zdWRWamlPSzM0Q2ZqbDlNT1RtOHRJczNSNVBQNy9BcExlZUtVUEFGUCtKVFh2NmhYTU52ZUUrUTltU0EyendDNEN3eXdIODhBdUFtTXNETkhnRndCaGxnaEVjQWJFa0dHSERiQS9BZHRWRFdtVExuVXh6ZmdWelVsZG83Zk9hT1EzYkpNL0p2Zlh4ODkvcWxzeWVQSGo1eDVzTFZXL2RmVzhtbi9uMFF5dVlwalRpMjRqc3gzdkJqVDQrdEdoZGVxMnl1QVAzSlhoa0xWMnJVZS9iMnk3R0c3MXl0ekxsRUtselIvczc3blJIVmcyeC96Wkt2N2R4TDJtOG16dzl3QWI2TzJzdDN0STJQSFYvT05lMjVkcGF6TXNjM0VSMC9jWGtwdSsrUFRoZlFFZTZYWW94dkpqcjZ5VEtPRE9FOTVCMHl4dXRpVFBIMVJ1KzlQaFlIUjhrWmlRenpYeGFHK09vbEljL3RKNDZQWTVtQjNvZCt6UENsZjZJTysyOWVwNGJxbDZ3TzlUOW1BSDlRQjcyZDBjbXh1aUtQV21sRytLcXF1OElINXgrK0JTckNVMTVzQUI1Umh3eDNmalNmUDlYaG1qUEJWMDRkY0QyTDhYSi9WRmQ3SmdEWEt1UEY1Mk15NEd6MUx5N1BZTGl3QkdXNDc5bmNNcUd2bFJGWE14aE9mZXdTTWpONjZpWXBRNzVpOEpoc1VrYmJ5V3JaS3FqT3NmT2FsM2UwTWxoSFpndnIzOHFZVTUwZXE0b3lWbXc2WmdDSHFmdWQwMk1OVk1ZNnpHNXZMNjB1RE43T2pyVllHV3N1TzRBK3F2SmJ5Tm14RGlwRGRXYW9IcDFWUm0zaTdGQ1BsYUZZNnNBcmxGRWpuQndwVUYwUlFoa0NuS3lNdXR6SmtiS3JBTDBaQWxRZjQ4MU9qbFJFMWZSWlVvaXZsV0YzT3psU2VXV2tSeXdCdGxhR1BlYmtTTlZWb3NnU1lBdGwyUE5PanRSSUdla2RTNERkbFdGdk9UbFNIZlVoU2NNUTRIRFZVT1BrU0orcUFETXhCRGhOR2ZXNGt5TVZVQUdXWUFqd1IyWFUzNTNWZmxXQVhSZ0NWRzJuYTV3Y3lVdWxuRXZZNFF0SVpFY2pYaXBEbldVSHNKbzZMOTg0TzlaKzFSREFiak5HdkZ5TjJEMXZmSDltQUc4eVhCc2FJNzVKVnZqVTdjbnBkWnJqTWlFR3MzS01BUDZzRHJuTytkRVFmODkyTnZnS3h6TzliV1lobDdBZUU0QjdFSHQvVGdaL0x3THdoaThEZk0yUUFYZXgrSU1SNnhzLzIvbmhzajdrR2R2Zk9xRUcvaDdPanVaL0J2VlRNZEdRL0Y0aFF5YlVjbTR3eTFiMHo1M081cW5ycTNHQU5YYnFqMTJQanZVOGhBMUFMMDMwUVBJd3gwZktja3JqRUdObUN2aE02MXRkNCtpbVhQT0JacHhqRmxZQXVlVmFiMlZVRDBlR3pyRkJPMHBTYVdiNHVPRExPcGZ2NmFiMjB2aXNFOS9yeGhqS2tvWGxmcUwzU3Q4Zlo0K3ZyY2FtQlAwQWl6aW1VajdHNERoUE9qbXRSbG96VTl0NXpXTmpYTUJPYjdZQXVTWkp1UENEMkNOTEJ0WEpSYm9qL2N1R1Q5cDRIUnUzY0RZZHgxcnFSQk9qSk9LZlhENnliZm04R1JQSGpSazVjdlRZOGRObUwxeTM1OHlkYUhKZ3hhNWdqcjBVdnNFc0hHV09GK2NLQ2RuSEJsNThWODVGNGozMExRTjhKOHB5cnBNc3E2MU93bnY2bFlWenFWUTY0d3k4dURsQm5Ndmw4N1Z4RHNLN0haR0pjNHRrakhBZ2NpNXBSejBMNXo0cE1majNkM2FndTdHNFJRam5ia256K2RqTjE1SnNZb3MrdHFSclRpN0ZKRzNaVHROWDdqcjd5S0FMOEc5dUhOMjhjRVQ5Rk1TbTVSb1o4NWY4clBxWGRSczByRmU3WnBWUGl1Uk15NlZLcXFSS3FxUktxcVJLcXFSS3FqaGhKYWczYWMrMVYvRjhsR0tHemR1UXhCcENlbjRYdVllOXJQdW1ObEg5YmJwSENRaVBsVHdCVlFTd2VNcmY3cm5MVW9aMjU4RCtZdW5qNkVtU0hmSjc0ZVZMbkZHMlhCTHZPam1JdlNJZk5lZElxU2Nkd2VzWEdJcHp4S1ZwVjgyTVA5aEp0SzVZYjJ4WVBBc0J5RUVUOTBiajdSRGpVb0RHaElNSzBHNFJNenNiZUlNQ1RIc012S3V1UHorYm0xTW52V0RzNHg3UlJtSkJBWEpoYjNIQjY5NXhMZ1ZvOEU2R1Ezd1NhZFVDNUVZRFAxS1kvaHQvdXhTZ0lmVDVnUERoRXprVnhrc0xNT0FqenAxWng1WDRMdWpkbmFIZ0NSbkI0UUZ5dTRXM1d3MTM3VWpYVGZKbFE3aFZYWkRrcU5nUXZYVUFSd2x2enhpZis0SXpkbHk1NFlqY2ZQQXFIbWRPRW8vK3RiSzMwVjBNWWtldmNTU0FuWVczRDFrYmpTdDNYLzlTNStxamVIU25hWElHOUFBYkFvKzFDNnlNWGhVbmFQUEJGeElUd3NDR3RrSzE4T2tBZ2tmYzZob1hCbGZ2dE1iUlJNcjhtQ0ljM0VzRU9KcDFKS2hHbXFENXpOY0pkc05CbW1na0h4M0FINWpFS3BGdGlPT1FwTHA3K1BRakVEV1ZtSVVBMFBjSmc4QnJxalJHSEVHWEFuRm5CQUpUN1V3Q1FCaWFPOHlWQUxtaWlMOXZDL1lNVVA3aHJYd0pmVFVBTTl4aUZLdEVrNHgzVllURGNTZkFqZXRxRmd6QWtMTXNZbDV0U21sVmZmdUFUY0dIa1YzWEtva2FGZ0t3T3N4UFRpcmhhb0JjYXl0OWt2TkZ3V1A3NjZkREFHWnNkcGhSUktrSm1hNU9jazNjOFdvZkpOZlV0VDkzUTZpN2o5NlN2L0N6T3dobFdqVzZiQy8yaFBLUGlmcTNlNXhwYXJxM3RURDJoTkFseVRoNEY2dTVpWlA3cUUveWZNSXArV1krMElkdmJLL3Z4YmxMdXFpYUZ6aytyOGhYTTlidE8zbjIwdmt6UjdjdEhWTExqM09qK0tpTzBpcWVhWGo1bFdIcXBFdWtwd0x3akdjQ3pLVkdJL3A3SmtLMXJra1p6d1M0WFFIWXpqTUJMbE1BVHVDcVhJaExNQzF2TnFkekMwQTFkWEl0ZDkwK0xqM2FMUUQ3SVRsTmRvWmJ6WGNMd0ZaSVd2VlN1L0FsdW1kcGI0ZmtrRnNhREJtT3lpZ3BzUHpWWCtzWFRCNGJNWHI4dHovdHVpRnBEK3Y2RkhIUFE5SmZyYjZpUCtRTGk5SjluRmRVODJsd09GeVpvaXU1NlNtZW9BQzhvejgwSDFyWHN4dk5FMTJCblNjNnpEMEExWklwbDNWSFNvQ010ait3VVRjdHdLR2YzQU5RRGVrL3JUdXlFZGp5QThtTFUzSnV0d0E4UkNxT2tBYUU4azRpZkNzenNMRDJjUWMrM3hpU0ZiMnF6aHFqbFhYQ3dVaDNBRVR5MW1acWo0RGM4bWppOThZQnM1TTdBQ0xaaExvWkcwVk4yZ2JlcHBmdUFJaWtsZWdjaW5Pb2RYeWF1TkNBaVVvMjFmMW4xYmxZdjZWbTA0UENJOGx1NE1hTGVXSUdPZlRWRUpQajVvRWQwUFg0Q2lEaG1qL3FGMk5hWVV3dmtMVDZsK3NCL2tKSnJNdE9LMExUam5IUkZvSlVRSUxaM3huNCtBbndjVi9zRjdQQzRPalBYWTB2LzFPZVZzZ0xwaGxhZTJLK21PVmZhS0J4TmI2d1c2ajZhZkQrY2hib3JyRCtxZzlQQ0JqK25HeXhZeWhCWjFGOE9OcGVWRXlzc1I2SStES24rRGhiUXNwMFdQNUN5a1J4TWI3S1dvYlVHcnNQdmxGUGlIbjkvT1ZidGFRQXY5YTFxN1QvZDFxNzN3bjhtbHZzQW9HUGZIQXRvL051ZWxPWGZrREtmTEcwd0JYWmpabnRVbTI2NFA4TWhsM2EvZFI0eWJsRVRaN01qb2pNcmdNWFVuTTRKcmpsaEkxQ3JnSFZ1bzcrOXZzbEMrWk02ZDh5ajYyZkNBeXhYMEp6Rkt0VXQ4M1g0N2JnaThNL3o4SHNBclErOUpSOU5NQXJacWxYRnBjVVQ0OHV6K3o2OVhVRnZqc01xNHpkY0FHKy9Sblk0Zk5qSC96MmZqREwvU0NNT2I0ZGpLbjNTN2J3Zml2UGVwWGR3QkRkODdrbDJXOEQyYU1ab2J1OXBIRWFsMnhVeFoyUHdYeStmODVYK1YyNDBaZG9QWHE4UXpKdWVQL3U3YjRvNEtIT21sUkpsVlJ4clFHbjNZQUpzNDB5MlROYzlFV1hrVlhrZWlrUEwvMHZ0RklFQzFNY1g4bi9xTHZTNEpUR2wxMEpUSXFQZW1DUTZ3dDhVeHJnTVpGVHphK2YyVE9mM2lZUTM5SjBIcnU4d0FzNHlYT1h2MUJBZ1U1NjhQcmNna2tSYlJmS1lQRDBCbmdDa3BDV0k5cGdURUlnUFBPS0I4REwvUlB3ckNiUE5DeHEzekZyYWVHTVpQNCtqclJ2QVdmaW55a01MM2lLV3NNc1dSKzYxVTM0OEdhS3d2TWJvYkVFak5BZHJnQlFwK0FlRWpaZTF3OXR0ZDdZQjQ3M1l2aUxGcjkwcGlSOXBueVZPazQ1WVlqdVhhc2ZFR1JrM0hOZUljaFJmK1N5My81KzlEYmVXVXB2Y0N6a2lzWDRRTzJUUEQwMlI3RXkxc1FhUy9CTmhLWDFmQnhGRjlUekZFTmpVbklyNHk5NHJZRUpkODBjcXE2WGNmWUhscWE0eDNXTVB4SFFkWkxvQ251OWZmNUVvekZsT0MyazFIZkNPNWJ3a3BkaWFtbGFUdHY2VmcwaXZsSVhtRm95ejN5SzNRTnRmbThCQ1Y4M3BobVVyM3JqN2RRQk51K2hFUVI4WTFuQ3M2NGcxbGhyZGluNkRVVWVyeUxZOHFheXhKZkF2dTFrVjdhV2RPWVIvSldOaGNuNDF3ZS82OVd1WWRVeStmTkFLYXVXL2ZzMmYyNVVDbnhTcy9mQ3U5b3ZmOHRZQTlGN201SWlqZHF3ZXBOaWN3NHJMM3hPVFIxM1NtWnA0ZDBkbXgxejBramxPS0VoYkpyUjZEclFueUcrdkpvSlRwcUczeWR0QXVTNG9pZVFZZXF5QS9pajV2S1JESFFtQUhKZWs1RHFlamFhMzRYVW5iRGgwSVZydDI5Y1BobTVxR3RSU3N4Ykh2UUNIaUhXc0J4bEFxQW1xZTR3NVRlelQ3eW1NOEZGLzBvc0FEa0p2WDdrcHBNalRRRkVlenIySTUwVE9Dc0J0emlkeDBkNVc1QVY0aDBsczlMY0ZlUXNhdis3OTRTb2hTS2tDcHRXYk9Ka1ZVb3duUU5Ya011c05pVEVWM3d1SzUrUWRQUG85bzFyZjlteTkydzA3UnRJTjlXOUhBT0FTR0ppSEM1WE9PdytQUGIyMnlwSU9IcnVicEtlUE1qNEJhUXdMTFZyN0NpekFMMVVsVzh4NWpBTWY0eWZhdEFWNjBOdEw2NkE0V2xYaVJpOUlaQnBnTnpuYXJTVE1TYStJdFFtbXVMWXhsL1lsTis2NmdYc3dnZ2dkMVU1dFlQaDJFcndjVnU4U1FKVVprL1NoNm1yZmRHUzZOWHVSNW9IT0VJdGVtU2dGZThwQnN5V09Ddi9TbVV3RzNaUE93Qm1VZUxHRXZXS0syeGMxWlIwOTE3SGxERlE3MmdialJ6c21HTHVOK1hjRnJvanZjQnlSNnpoT2grVElhUFd1Mi9MN0FvaTBVemY2WTZNNTJtTjU0RDlWZGMzejB1TjZ5bktEcURhZ2V3VXhvQkpibUhYRkh4Rkc1bWh4dlZZZmRnQjlGVnNPZ24reG0zaEF2RjdJQnNpU2FzemxGSWpOemgyQURtMXVrc3A0eWprNW9jVGpla2FuNm5saVZnQ1ZKUDlkQzRIbUJGSWpKM2FiRXlDVW5ObkRuSHNubUp1aUhLeWJuT0ZtY2V6U0VhL2VLTlp1eTU1VFhYbUNxcHArUHJjQVpEZjk1NFF2UWZLK2ZBTk1jOE5sTzJtcjZDSjZMYm14SElhc0ZuaFlhd3JweDFZVVo3b3pISU5iVlJmd1YxQkUwRlExWWtxWERBMFloL0UxRUxzQkZlOEFicFBheW9qMmVyL1BGUTUwMFIrYUJubFpJTlRwTE5JUVNibzJsdDhLZFlrdktDM2ExWXkvWkNvelV4TmhPRGxRYkpqOWJKRWlvdmZOYjVOMWVJRmN1Y3JYTDUrdjJVU0M0Z3lVTUd5YXFFbkc3L1pSam5UUkFaclBtSlNrMER3VnhCdE9rK00vZDdVcnBNdmJQeG1QZVhNK3JZQmxpWm54NEl0bDFEejhBQm1mUWhRRDlzSXNxdXNuTmplTmtDVmlWM0NIYzY1SEdQSC9BZXZyVVNUTmlXOWxGQk9IR0lib0xvNEhNR2ZrTDdqb244UWN2eDRXd1FwOWxVdDJkQ1QvcHU1aUdzdmJrbFRUdjZWZkpKL2lWcXRPM2JyM0s1eGhXeVVvZFN1TGl2cHY1bGVPWEdyYllDRGxaT2RUbWllcjFaRHMrRzFpeVVsWFdORWZWQm5PUXV3aDZvUTJvaHZ2NmdRRGR1K1FMVnU1Umo5ODdIcVY3SUZPM0RSaWZFV0hFOFZ4VVlQMEMzS2lUWmp1YjFqaWNSVG9Dc3ZpRjZ3YVJqbUVaaHN3NVNpK2JiSjRsakZlT0xHL1pDbUR1M0QzUlBuMU1xTFBpWTFsTk8yQUtways1bitFQWdjekV2NjNrbGNKdFIzNmw5TGIvYUgwSmVzTmdDZUpTdHh6MmtBSDhEeUtqcEJlck51cFArc2F0YjdtbjZpMm51ZEg2ay85b0lDc0NMVytoNnNMdWl4UVNadDJUYU1FSWpieWxEcjZ5VVpZS2FqK0RwVHU0a1o4enBwWk03U3lZV3AyK2RyeVlpUW8wTXZTY0FtUEhIQWdQNzkrL2ZyMTY5djN6NTkrdlR1M2J0WHI1NjloeStEenVBM1JwVUFjWVBkb3FiUytLbEt5RldhdjF3MTk4aTdZaG56Zm5KTXRtQUlFamtSVHIyRVNNOUxTZ1BTU2xaRDdiZVpwdkZkdzBVK0lpa3Z0NmdyelJkSXRBUXgzams3WWlJL0lIMFdZUmJmWG13ZnhFcklHUU9vbHhEcC9maWFvUGlMZWRhU3lERVY2WDZ6SGQrU0VIVjhma1hDN3lKbTZvZlVTOWdOalpqQWJuaTUwZjZWOTFVN2tKZWZmMEM2b09EMElXQ2hMcFhXS0Q3bTlnaWMwUmJkWTYraFRyMzVobFhKWjZSR21jY3QvQ0NIdHFEZEtzMEozcVEyMmx3eks0OEdhWnkyR1RwZnBZZEZBWGtrSE1oak44QXE2cWdiNkdmdTBGZGRuTnFtUnZGTS9ua3FOaDE2TUZGNzZCbldyWGFBNTk4NUVIYjBnekxzWlBxSlllYWpwbHBoQnloKzRHOUhZbXlEL2lNWEh0RFJJYk9wbHNzNHBsTDJKZVcrMFVnL2svaFlGejNKczEzUVhEOU9NSEY3VERHRGI1RUxpcktFZlZIY1hHYmhvR1NiK0w0M000NFhKbERTaDhtZjB0VEdreEpuc3pOd3J0N3Jyci9DL1oxSis1bTBOc3k2aTRidnJDM3pWOGtOaWVSdmoyZHpQOVE3Uy9xQnV4MXQzWDZEcVJ2elBFWjNyS1hCRnN6dldBKzBzM2tYemFNSGxUTE1UODdZOFNkTjlFSFUxdDRtTmpGcG1VbzR1WGhNLys0R0NjL0IrTkZQVjZaMS8xRlRabjR6cEdzMWMrSGJZVEJNUFdhTW02cmsyUzl3Z20vbjkxUjRZaVI2VEFHUHhjZDlZc0l6bmFJQ2pXbUY3UHhTY1BmdkZ3OHA1aDZBSUFyeGliMGJsNWdJZW41Z0JqY0FuTXZiWFdHNW1HTExpOXRRMStXVjY2WWdaTlNrN0ViWDJ2dFQ4cm9XNEFBVExpT2R2Tkp0VnZ2YnU3SThPY2lyZTIzWFBHWEJGTE5aVXQ1bEFETWttZk9sSVZRV0cydDRZV0JHRnlFOGJvcFhFRGl4UnVuYzVKb241aXVROFdCWGhieXF4SHp1QjFQeXVXQ3ZBNkZPeit4YXFuWHQ0N1RxWFVmbWRUeEtnUURNNkxaMkVib2w3eW5sbjVaOHloaGhCVmhCKzl5d3Nobk1NNy9Bem9jb2lmc1hCek44WWpyY1E3aVMxU0R2dDVGeXQvTk92RU9HR0wrWlZXZUpkRGJUYXNhUWI5L3FxeWhUL1hBcUV5VXpsMDFLUFo4KzFZZkpVMjA5eE9LSk9XekwwR3ByQ2FKTzlSdm5ueGlmbG9OcDB0T0VjZE5TZlNWbHFpOFB5ZVFCZW05Z0Y4cFVzM3RpbkJMcVZETjZZcHpkbEdoUHRmVlFKMzlQbitvM1N5dHduajdWckorWW9GR2Jlak9lNnZpdERieFp3Zk1mRm1VdXJzbk9xWDQwM1FGRFFWQ050cjJHUjZBeTRlYzM5T1JUSjZiYWVxU3pYZFV4UWtaZEpGdVJ3MTN6VkwvOW9hTHBnWHBTOW9HRVVhNTdxcThNTldlQVcwVFppUThYWi9CVTN5WC8rZHNhMm41aStzaVAxOU1iTjZEOTg5WTFRUjZKL3FHaExsL0FIMCszc2R0bmhRVGp4WlJQb011RFYxeUxnUjBBMnVRV2JsakFqMUtmR05qZTU0aDhNNkJSei82Z1dlSDdMTzVZd044dS80ejRQUkFhZFUveGhXaml4djF2T0xISzJEdlZWNGRsSm12VTZtNEIzcW01YlNCdU01NnA4Wm8yMVFtYmNSYU8xbURaVEs4QnFOcjFMY0RuMnBINVhrMStxaU9OaVg5RHRKR1U0S3pzMmhWb3BUdlZzdWVHd0YyUTZmcUhGaUFTcWRiTlhId253Nm4rUjY5N3o5UEd3T29BMW5IQVFPemtWT3VicmYwUFZPTlYzeVpvUTgxQStrMjhlelZ3WFFjYUdJT0VKR0lCUHorU01selRtSFRGVnFvLzB3UFVwL0dCRHNDdlZadk1IVzNKUmhCKy9jRmw2RElPdm1pYzRpVzZrMkFNbzNyTmptaVRpa0JTelFQWG9QUEdlbWVOdTMvYUJJMzVCWGdsZHFoSFFaTHhIbGZBS3pEMUVZRllHYlpXRUVlck5qanJJTHo3cUFUS3c5U01jY3pSQlhRNVNseXFqU0dkQXpVWm4wRWc4bEZwWXZLYnlYUWF1NlRTaitReVArOHgrUXVad1J5ZlU5NnVCZWV0Z3NwRDJGYVk3Y1FVWGRiaC81SzE0NDlMc1FIZHM4RXhKYUVwUC9SemZkeXpaT2srNkc1SS9Jd2R1alROSWhOcFpsbUM2eTlJVUxqdXFXK0h1aVRtUTVCaXM1L1JETnNVQ3BWcjhVclV0YW9KWkpyR3lnTFE4eStlbWRtbW1STFlkcnNaRzNqVlZsR2lqaDlPczl2dzVkdGc2ZUZyMXc4dnFjOGtMaXJIMkZzMFkzdURsRFVkK3JiYVJRa2Z2RGdrWTRxaTQwclBvM1JCU0hGalhFamZ2eW5QeFdHN25vc3l2OTh5NXN5VVBINWhsTVAzaDZYMmVySkRqMzh3MlQ2blkzdndqQm11TjlndmR6b1dtNWQzMGozYWMxSFB6cjk3RUQ2UDR4UXhsSjh1ZnUwUDBOeDRnK3dPRlNrRDFiTDlCcjI1V1NMdkFLY3J2emlhdGw4NEVEcVFGcVpDN3NEY3NrMWpjYVV0YUpKcDhDWEtjM0d3bzBQQkYyMWhiaExXQ0ZZMWdTYzMyOE9veUZzcGdaTDNKenZxak44SmpNYUVad0dXaHpJWEFsVncraU5LRE8ybWVnNnZCMkhnVGh0SW1uN2c2djZmR1JyK0o4VUllbjZRTXlGVWdKb25FNU5oMTJydERuaXBURkdSK2VqRlRvYlVBTnA1ajNoMEFJL3B5S3hWa1NNb0tyTDFRQWVuZzVJbVlDcW9hRzFmTVk2cXlQY241Mld3WTg3bGFlV2VZY2w1a3BtNytPem5sT2RpWXgwMmV0UUVLalVmU0t5bEV0enpKTzI1WUJkYUNHejg5TmFzdUxJQ2xkWlFWT1RYQ3o5aHFCUlZ4TlFiVVhXU0s5aVNIbG4yVXA2TC9lRnAyYXE4TVpTYVFzMndOUWd5L1VlRWQyOWlIbzYxckFZRHQ4SGZaMkJuVFRJc2tqK1FlUGVHMnE3b0pBeXpEQk53RFQxRFR1TkxFT0RWbFhNRFFsMmttc05FemNSRitxSTFhVHJCcHByeEJ0ZHVGbHdoMzRWbE9aZEpsZ2VpbCtLWDhIektEQVZYblNBWmtJM3RVM3owT2t2eUgrM1NjcTRVcFVBaS8vSGV1YitPSGp0OVRVM3d3ZldmMFRZaC9XK2k2enZSRjc1SnVPMlRzWUZsWHlQUHhmcmFidWl3elhFQjA3RXhjS2NJaW9qY1VmcHMvMURPWFpJcDRweU82Yno4dVJyeDdEWi9Sc2VjbjFuR3pVUTdZKzJCczFaSDdqbTRmOWZteFJQQ1MxcTRWRW1WVkVtVlZFbVZWRW1WVkdFaC9tMEhlWkIwVEcvUXBpL3hIaVgzOVVGdzRieUh5WEFkd0dHZUJsQmZ2MmFVcHdIVVIxVENOaWNMT251RVRNS0ZIbjBEUG16bUdRc0tyT3Y5Zys3RGlaZ2EwQ2tsNVFDV0h6MFlZRmxja2M1Sm5nWndCZTRLTm5ZYkJzdlFNbllDbk9EZUt6aUxWa2dNTzhYamJWWUhaQ2x0cVlIajVYQUF4NEVQVzdvTFlQVnhOUGRPZVlCbHVlN0QwZUREMXA3eGtJQWVuZnhTM1ljUjFLeWIxcEdJSzc3U0h1aGtxQnk1UzVEVjMrU1Y3cEZkb213RDFzVGd0ZURsbHVsaXRiQ2h1MlFCamJheWJaRGVMQ09GN1VLRHZyN0pDNHgyNjBRQ3VKT3ZxcjZaSTVaaGxCTms0c1QrS1lydEV6UXgrbEtwQ0FlbVVpMXo5REl0eDdXWDMzd2dwYTVWeGUzRndPUEtkeU1CM0kxV1Rwc3JkaUJkekEvS2tDRmo4Vm44QnhoVW41Q1VCL1pRZzhHbnRma0R3c3ZDNFhkZ3VkSTB3dXR2K0JYQ3YyQWVPdkNieEc1cmdhUmZxNEZycjlHYldsa2FEN0NyZEhWaE5ibUVST1Q4MmxLSWJobWxNSGNmNVJmYjIyd1BXaHRnMFRlRzY0NnR0V29HNEV3eEloWUxrSXRKc09nQmRyQUpzQUV1WkxFak5YV0pBdEJ5VXJ3L3NRQ3o4MDg1K3dHMndCVTJCazUxWThOV09zQ1oxYXBWYTdPVFh3TS9UVWl1L0prZ1lwNUZIUkZnL2tQS2FvRUMvQjJjK0JtNUxqQjhqUFJOSktGVGZhSjlBRVU1THE1QWN1bVBydUlWVEhqMjdObGJucjhXaGdFb09WZUljVy9kY0dWSjYrQlNFR3dBM0RkNzl1eVY5L2lUMEJHZVlGM3hveUR6YzRtakpVWkZSU1h4QzVSeW5DakFtK0RFSDRjVHIyQS9YRjNqcXRSS0FKUjcwTytvbUF1RnVRZG5TYk52N3owSUNWeEhNMXFzcWFlNGpWaGxKZDRJTU5QN3BDS09BQnlMcTRRSmkzMnZjd1JnYTM0VkFTQTNnLytGYzJBZG5JcUxUOGhON1lWQ0FlaDdTSXdXd0MwekdkOGxGM2NBSUF5S3I2WDdNQU9NSGlRRDNMNEF5UHhhS01BOU0yYk1XSDZIdnhNa1BpU0w0Q216ODZ2TEREZU4zNFNaNG4vaGlRc2lTRzYyaFFDTHZ2Q0VMN1hnOWlwNWc5OG52QmtqQmhOSzViZXRXMFJuL0ZPMFdIaFo2U3FGdm82U1JtaXBMTEpLdHcxckZ0cXZHU2hCQWkwMXpmK0xtbEJxZ0d5RWdDK2hucFMyR3ZpZ2hKd3dtck9HS0pWaGhGSjFLYUtuaUp3Z2w2YVdmS0tsdkhRbU1SMTJHN1pmeld0cWVKbGJaVDhBYU5ERlFCUk10R2NBaEdFbWhqQW8wSGt3MlRPOHd5RFNMODd3S2N3dkNuSjgxQTZncE1BSTRaYnJBb3NMakNqaCtGQ1BzWTF0ZnRPbTdOb3Q4ZStmQ0RLTVMzdnh5Vk0rNXNrVEo3TE9RWjdpYmNPbk1EYktpYmljZUVSWGV6ZkptUm4yc21yU3ExUXFKRWh0VHdDWUh0OGlaN1J6MVI2NGhIWE5temN2d3dJZ2JDYTF3L0J4RHlvcE1RR1FWOE5nblFQNEtiNUZUbk9xU20wQzRNVEF3RUJ2RmdEcjQzWG5xcVFZTGJmZmc1MXdsRVJTQ0RjNGNRV25oZ3BpWVFCd2lFSnROSktacW0vWkZqSGNkZ1o4L2NLcDBpWFQ4WTJCdk1IcWM5N3hZY3MzRktTQlNPSStkYXE2Tm93OXhhUnFnbWpCcDU2d0ZVTnRDMVBNQjJnTFZoOFBBQWhUS3RMalRHd09kVjlnTDZBOHkwZk01N0NuWjFVYlpwMXhnb3hzcFdUVnBCMGpwdXBuSFQ1T2tpRkFsYTRQWG8xdUo3VnA0YjV1SUxJbDZaUkI2ZWsvRWt1SWV4OW5ZcTk3SzhXTUx2S1Q3Yklmc3l2N3BOb2NUb3BndHE2QjZsdGcwazJGbHRudUZDS2VkeFJ6b0F0K2ZkUkluTFY5ZVBoWDA2SmtaK2tObm8rQUdKb0xIL01mdzhQRG0vakJhOUFoUEx6RDJIdGlNbGtHL2lHOHlueFVPSlJHOUo1bXNDdmhlc3lCTDAxMEZvaExodi9sZlpjTUY1S0svRlgrb253c0RmOVduU1Q0WDZZb1Bnd0ZlTnZVTFFpdGc3TXhCNHFZNkhrbkFlUWkrUy9BZnd2NExxZVY3SHdqUUc0ejFOL3NCTmdESDdjdFRCTlB6Y3JSQVB3ZFBrMXBYc1FHRFpZMkR5ekFQMkNpbzUwQUp4SWRJdURXZm13S1lNR1lKUEFrTnVJM2N0bVM3MWxJQUJzbnZ3MUdBZDQxQlJBMjdzTDJ6b01yZFlDTmg2UmIxNjQ5NTBTTDJ0QUc0Tnc3S0tlRGFnQkdidDhlZVZGS2hGTUE4c2xBWHRuSWd6bXNMUmVFQ09oU3pOTy9MVGxERXVlQXFQMmcyRmMrSUNCOUdRYWdHRDdmanRNQVRMb0s1TGlOM01TbnhQeWtLYmFiZjhaWkk0WVBIOVJJL1B1NlFnTjBTUHdySHlQQUlvVUs5ZVV2V3JRQVRkMkRJYkJnRC9ZUU5QUlBNdldRUURuQTMvdEhrSTlTLzNmOVBlaDFWYnJWN1FOWWlXeW9MRys3Tng0S01JZFNhVzhUL2lGcHkxK0JQczFRdXdCMkpUZFhUQWRMY3BzR0dNSFB0QUR4ZnlmMjB6TUF0RndTYnhqN3J1QzNGTGNyU0d5TnRaZ0ZlRkZ1R3J1Rzc0SmZabHJ4MTcweFcxMWo2bFlYU1NuTmNwQ25OVTZFUzZYNmVPVlFySW4xUkNyakZhZW91eS9GK2tPV0M3QlBvS1FzaEpwVEZrQlNTeElodFdlZVRhOTdhMFRiR2FYazY0OFFhNkYxVkNJS1drbHJRYkh4Y0ZudExxcGI0V05GR1JSTStZVmd3RHl1RVE2Mlo5S3oxVG1CbnM1VmhJTUZTSnFZR3dXR2FQVWxIUVVWTHo1NHB5aEFTRHpLa1k3dWR0SUV4MEFBdC94SXJFRTJ5WFlQVGhkTFFZRGdCUEZ3UTlvZDZoYnBSRzhlQ00wZjF6T2xvQ3kzb2JBODhJam8wQ0prZ0tzOUFkOGp5aTNRMlJNQXJxRUF6R3IxQUlCVW5SbVcvem05VnhTZ2ZPK1hYZ09MemozcDlkNG5vS09POUJvNGdPN0xCNEFMNXFEMEdwUUlmQ0FmQUdWZUQwdXZBZWw0SkI4QWQvMFIrUTFNbWsraVpvcE9Ra2xwcFVRa3ZrWlFnMTdJYWVTZkppQ1JRVnQ1L3FYTWNjckdJWDE2Ti9COHRKelRXK29qWWhUNG1lZmZ5c1NrZUN6U0pCeWF6LyswYldIL1M5WUpSd3Avait4cXp5aGNoSVB5Z1dFQ1EvdFNlaDE2VDlqQTVYREFRUUl4bEVzL0J0L2wrZVB5eHRrUHNab0czUklJdUx4YjlFTENvMmZJL21heXdKNWhvcjBGcUhpQ2h2aEFydVZRUTFEeHg4cW43Uk1vdE93d3JacUVkTmdXOXRKblljZ01USkVQN05ETndBek1ETnpVMXBIRUN1ekNIQy92MXRtRnJmRlhaUG9UNU5weFdaN3ovTytJQnBJa2UvQXpDL2ZuSHZsQ2p4WU9mQ0hQZ0tDdjc1Y1BqQkJtUUE1S0NMMHYzSjV3QmtwQnJtcGpyMmtGSDZTYmNoR214b2gzSjgwSm5yOGpLNXYxcldycEJlK2pTS0hqTDYycWpRek13RU4wQmthVFp1QWI1UUd3NVFrSkVrT2NWc3Z2NXdvMFJiN29lYUo1TmM1a0ZzL0h5WEVGT1Y4aGRVbi9wNXVCN1FqdnhzL0FCR2tHWUF2amVyYTI2d1BpWXZTVmJFTzl3UE9YL1pITDIxMTY3ZnNQei84cnh5aUNXaGE5NUF0OVNqY0QvZVFMclo4QnVVNnA5NTl3QmdyRG5vTTJLdzMwa21wWHkwRU5SVDhnZ2Y4LzhQeDd1Uk5Sb2ZkSXRhdEZncVpiVkhxZC95M1AveXdmK0Y1UTcwcmlabUFPTWdPNVhvTVpHQU4rOXhlYkNrK29aSDg1TGE4RDNaQ2lWZ0gvOHZ4Wlg4UWtLM2NsOGhPbTU0TDh4M2RBbUJ1WWdTdnlETFJCWEVod0JtUlRGWWdZN1BFUCtObjZKdDBVcUpGVFdIQmZ5Njc0MG5GSUI4KzFQUDlHWnFrbDBBVjNGYysvUTJkQUNUa1d0S2tZZEFaK1FpejQwT0wwMUFUaGFDYkgzY2plN2ZSZ0paYS8yRjg0SVArVndYZUVSUjFkY09WUSszVENnblphZHJsOFRacUJ6c2dNK0Y4UmYvUTdFMHF0TDZCTzF1czgvMFJPelBvOEVXbncvRHZQUDVkRGhpb21JT1d1ZnVYNUtMbklkcmw0WkMvY0pNeUFYTGkwVEJ5aU1QK0N6RUJKc2NxZXFab0lNTFJ5OVZPa3VxNXcreWJKNVJZeW9RdHVoTERnMXBUZEJ3L2tCWmVEWWRucURQd25iTER5REF3Z3pRQk1KcmhraWhkQUExaFVVNnVhT3VZbEtDRDNaU1dqbHJEZ3l0NU15MzVCTVpIclExWkxVZ3Z5V3Zib1prQnhsZittbTRGcDZLMC93aHh6Z2RVME93czdkN3hzYjgzeEVuRUFUQlVXWExtclVkWVhQQitKbUw4VDVZcndZY0lNN0xLb1BxSWsyWWVWU1ZESjlza0hSZ2t6VUVOY2FaS3dWWGZ3QW5OTFR2bWNFUWhVSUxMZ3ludy96VW1ldngyRVczQ1BDVnVwN09lcVkxWERualV6VUROWjFWalVHWUJPNHIwbXVWOTJ1TjJWSy9nTzJmTG1DK3VBSEt5WTd3M1NmTzg3WVNVdUxiM08vUnF4Z0g1TG1vRnBtQmxJK3dMOFpGT3o3UFFYTVdlbkUrSzg4N3NrM01KeWdUU1FaOWxGZnVqUDhmeTFBR1F2bE1OM05UUFFGT2xMb0ptQmhsWVlrZndWTEVocnVvWVlUT2lJRFFVazd3MnEraTVGZkJudjVQQy93akhhQlRkR1pvMEYzaUZXZ0lYSURPUkZaMkFlbkFFWThEYklQTUdIRlh1SFFkWDNaQnBrd1pWVjMwQmhtZnpiQjlueVpKdXQvMVdlUDU4V01STmdaNkFkb28zQUdhZ090Mzg3UXR2YXdRWWxGcTU4QWhMQnNwbm5YeW5rSXg1WjlkZnJ5SWNTanIxR1J6NlVKSllWZ3RJaHowQVJZUWJlMHkwZVJrbnpVREsyRGtOVTM1RDd5RW84VUZodzYrTElSMThreERnZE9nTTlTVFBRVFhKQzIxVjhFbnFvTDFxMHFtOFZsSHpzMHBHUHFmYVFEMGovVUcyRUZpT05sUXl4VWpSNG1LRDY3a1RKUnhWNXdSWEl4MTUwd1pYcFh3WmhMenlBSXg5Z0JvN0lNekFZbVlGQ0VHQjErK3hnTUlMaGt2QTc5UkR5NFNXUThmc28rVkRvbjZDSFA1TEpSL1ZrdFlLK1JlRGlUOUFaa0V1RFd4RDZONWZzL1NKTHJuaTVHQnlWZkpUSGtZL0p3cFpISlI5YStwZjlvME5wbXpEcDY3SkZwL28yUjhpSHoya0MvU09URHozOUc2NW9UNmZzdG5XS2YxZGJ0dVJETXdNenhCbklBK2VxcnYzV1dPaldnZTdBTGtqbFAvUGtveHVPZklBWjZLR2xmeXQ0U3VsRG1tVDVvRFF5K1ZsWWlmUGd5TWRLSGZuNEFTRWY3N0hrWTRsdUJ0WVVnZ1ZJYXpoaTBKNEYyeEtCU3hoOEcxbHdleUZxUjdvYnlJTGJIWEdrQlZ3amtBL05EQURYMW5YSCt5WmtnaHRRTDFuMW5VNGlIN05za285MWd0S0J6c0FDaFA1QnFlS1lUd0Fxa1MvU3l3dXVQQTJoQXZrNEtDKzRROHlRanlDQmZKeVFaNkFQU3Y5dVFIeU90aFlKZ1FVSW9VSFM4b2V3NWFIa1EvYUpXM1lMWkZZbUg1VlIrZ2ZJUjFZTStkRE1BRXdwVFhiWXVkVVgydUlLR2NqSEJCTDVHSXZTUDRGOC9JR1lRalV6Y0VpY2djQUh1RnhuOCtJTlM2aEVLcXJ2UUJ6NXFHc0ZxcU5LUGg3UXlZYzBBNklwZENiVUE1M284aVhtQ2RjMWtJOWNLUG1ZaWRyYlhpSVdUMEErS3VEbzN5UnBCb29tMk1FMThiSURjZ1UvV2ZXOUtxL0VMWFhrNHdaS1B2cFF5SWN5QTNmVFM2YStXNzVPZVIvajFWUmFRRDUrSkpFUGhmNHRRQ3llZ0h5c1EweWhPdm9IOVhielZBNHZNUGNyb2JoQ1BsclpKQjhYQlIwREpSK2RFZkp4RlRXRkRvTGwwM2M2NlIvMWcyYUdZeGFzNXdOUFBqNGd0VmgrUXNnSG1JSGxpQ2tVU296VFliMjFlVFc1SEpDUFl5VHlvWGcrZWlBbEpRemtBNTBCWE9VZ0J3UTJISW9XVjlhS0tQbllMaXk0TXZrb2o1S1BMUUw5eTJuTDkvU3BXRktiUVFleXpLL0FTTHNWOHFGNFBqSThSTWpIY0JMNUlQbWU0QktZWEpGaklHTEoyaDRLK1ZBOEgxL1F5SWZHOTVRRm9YL2lYdmg1c3BQcElhanNBMk85eTJQMFBSSEp4M2lFL21WRzZkOFk0YXFCR1FpRXo5NmRRRFlBYzhMK3U0Y3NkTThIb0greW45UkxRejZTRVZPbzVIdGFBaWU0R3NkSVlBeTR2QlBQMDVFUEpVbG10a0EreWlMa1k0dU9mQ0Qwcng1dnI2M0Roc0NZT1dtRDBKQ1BWalR5UWZROWpZVkw5SFdHM2I2endEWkJFaXhBUHBhUmZFOHJFRlA4aDJJbytVQk1vVkNTR0xZZms5cVh5TEQwNU9PY3ZOMS9wU01mRjFIeTBSR2hmMENtYzB3RmtrTjVIOWlJa0kvU2V2S0IrcDRXb3I0bk9jbW1pVmpsbW5HVHlFRFlQVU1pbnhyeWdmcWVnbTRqbm8vZWlLb1NLSkNQTStLV0Z3ZzN1VGY1T01aU0Jqb1pKZW9EeU1jazVBbFN5RWNGbFA1dFEreHRxdTlwSGJaeEtBT0JUUXZsMEkyeGlPY2pvd255SWZxZTZuQnlwK21mT0JkSUpOS04zSVRuUSs5N0V1bGZlVGdSL3dhNEFtQkdTTUZpU2lya1l4dUpmUHlHK3A0cUkvUnZkeWlzOHg5Ym1uT0pWSUIvL2MzMHlyT29rSSsvRVBMUkFDVWZmK3A4VDJKdnJzNmNpMFFNRjloaFVjZ0gxdk14VjBmL05pRytKMnpiVllheUV1bndxQ0VmYlZIeWNSYnhQV25vbjlnTTRaU3Y2d0Q2d1JKYVZuRzlMbWFLZkN4VDdXMGxZWitrRnprNUYwcGVxRjUvS0tlUUQ2em5veXZxZTdvaTA3L01zT05LVWkzT3BWSUg5ajU4bEUwaEg5akFONXp2S2UwSlZpekp6SHA5eGg5TFByQytKeW53YlEzdlNGODVCd1I2VUNUTERPcjUwQVMrZllZR3ZrSDZKMlpYSHZOMVBjQTBCNUZtcU9OSnZxZlJxTzlKb0gvWFlQRHBmNWs1TjBpbzJNZWtONVo4WUFQZnFrdlpSZTlMY1c2UklqRDdOYW1KZ1h5Z3ZxZHNxTzlwdHVqUGRGdU56VnJRNXZYaE01bDg5TVNSajBZcS9jdDhpNmVXbG1NdkhlQWRGVlZJVHo3eW9lUkQ4VDJsZzJGamFzeVhPMlFrL01rN1lWVHljVjdrV1Q1L3dKTzN1TGQ5N1VMUjlwTmVUejVXSXVSRHBIK1c5ZUlDNCtkV2ZKelhyMkxwdkFDSmZEUXhrZy9ScXRNUyt2ejRmek53YmhZL2NlZmE2eXVSRDFMZ214Z3YrVFF2NTNiSmNGbTh0YndKNUVPbWY1RERwVWdlVXJiYjhNZFhXTERrUTlINXdZSlVoVXNSeWZ0SXNRRVp5SWU0NWJXQXVrOUNmUzZGcEpqWVRXd3lobnpBUmJrQlhOQ1QyM0VwSnVYRnloQWpkTDRuS2ZDdGxoajIyWXRMUWZsQ3pCYnZJNUlQT1FoYzlEMVZqWUhIUm5FcEtnMmh1ODNhQ1pJUGplOXA3enVtUGVvZGx0YndPVWhxaVpBUFRrcEhOeHQzN0dMcEFoV0grQVl3MGxqSnV0a280bHZNZVlEQXNxbDhiQzAwNjZiSVUyV045QUFSVlpzUE5RRDVFQVBmQ2o2R0g2M3o0anhESm9zSTYwRGZrd0NxaUlodnF6Zm5LVEpIck8zZHNqck11dmtFSmtieHYvdHduSWNoVEI0NlJkanlScjRYWTAzU2NwNGtrdVVxVW1rb3U5T3o4RWxSUUtwRStuS2VKZ09TRVh6THZUblBreVpLdTl1a01aeEhTazZSdnZHM0tuT2VLalUyUDNwenFBdWI1ZVgvcXc1VkV6dzRUTnNBQUFBQVNVVk9SSzVDWUlJPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDYW50b24gZGUgVmF1ZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gTnVtw6lyb3MgZGUgdmVyc2lvbiBkZSBsJ2FwcGxpIC0tPlxuICAgIDwhLS0gT24gbGVzIG1ldCBlbiBoaWRkZW4gcG91ciB0b3VzIHBvdXIgw6l2aXRlciBkZXMgcHJvYmzDqG1lcyBkJ2FjY2Vzc2liaWxpdMOpIC0tPlxuICAgIDxzcGFuXG4gICAgICAgIGlkPVwiYXBwaW5mb1wiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIGNsYXNzPVwiZC1ub25lXCJcbiAgICAgICAgKm5nSWY9XCJhcHBsaWNhdGlvbkluZm8gfCBhc3luYyBhcyBhcHBJbmZvXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGlkPVwiZW52aXJvbm1lbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImQtbm9uZVwiPlxuICAgICAgICAgICAge3sgYXBwSW5mby5lbnZpcm9ubWVudCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGlkPVwidmVyc2lvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZC1ub25lXCI+XG4gICAgICAgICAgICB7eyBhcHBJbmZvLnZlcnNpb24gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBpZD1cImJ1aWxkdGltZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZC1ub25lXCI+XG4gICAgICAgICAgICB7eyBhcHBJbmZvLmJ1aWxkdGltZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGlkPVwiY29udGV4dFBhdGhcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImQtbm9uZVwiPlxuICAgICAgICAgICAge3sgYXBwSW5mby5jb250ZXh0UGF0aCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuPC9mb290ZXI+XG4iXX0=
@@ -119,22 +119,27 @@ export class FoehnPageComponent {
119
119
  return false;
120
120
  }));
121
121
  const formInitializationObservable = merge(of(undefined), this.gesdemEventService.formInitializationObservable());
122
- this.displayLoginMessages = combineLatest([
123
- formInitializationObservable,
124
- this.sessionInfo.data,
125
- this.applicationInfoService.currentEtapeInfo
126
- ]).pipe(debounceTime(0), // without debounceTime, the outcome is less effective...
127
- map(([formInitialization, sessionInfoData, currentEtapeInfo]) => {
128
- const isConnectedCyberOrIam = !!sessionInfoData;
129
- const isLastPage = this.foehnNavigationService.isLastFormPage();
130
- if (isConnectedCyberOrIam ||
131
- !currentEtapeInfo.deployeeCyber ||
132
- !!formInitialization ||
133
- isLastPage) {
134
- return new DisplayLoginMessagesData(false, false);
135
- }
136
- return new DisplayLoginMessagesData(currentEtapeInfo === null || currentEtapeInfo === void 0 ? void 0 : currentEtapeInfo.decisionElectroniqueAvailable, true);
137
- }));
122
+ if (this.neverConnected) {
123
+ this.displayLoginMessages = of(new DisplayLoginMessagesData(false, false));
124
+ }
125
+ else {
126
+ this.displayLoginMessages = combineLatest([
127
+ formInitializationObservable,
128
+ this.sessionInfo.data,
129
+ this.applicationInfoService.currentEtapeInfo
130
+ ]).pipe(debounceTime(0), // without debounceTime, the outcome is less effective...
131
+ map(([formInitialization, sessionInfoData, currentEtapeInfo]) => {
132
+ const isConnectedCyberOrIam = !!sessionInfoData;
133
+ const isLastPage = this.foehnNavigationService.isLastFormPage();
134
+ if (isConnectedCyberOrIam ||
135
+ !currentEtapeInfo.deployeeCyber ||
136
+ !!formInitialization ||
137
+ isLastPage) {
138
+ return new DisplayLoginMessagesData(false, false);
139
+ }
140
+ return new DisplayLoginMessagesData(currentEtapeInfo === null || currentEtapeInfo === void 0 ? void 0 : currentEtapeInfo.decisionElectroniqueAvailable, true);
141
+ }));
142
+ }
138
143
  }
139
144
  ngOnChanges(changes) {
140
145
  const etapeIdChange = changes.etapeId;
@@ -206,4 +211,4 @@ export class DisplayLoginMessagesData {
206
211
  this.displayShouldLoginMessage = displayShouldLoginMessage;
207
212
  }
208
213
  }
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tcGFnZS9mb2Vobi1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBS1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBS3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUt6RCxNQUFNLHFCQUFxQixHQUN2QixrSEFBa0gsQ0FBQztBQUN2SCxNQUFNLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDO0FBQ3ZELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUM7QUFNekQsTUFBTSxPQUFPLGtCQUFrQjtJQXdFM0IsWUFDWSxhQUFvQixFQUNwQixnQkFBa0MsRUFDbEMsbUJBQXdDLEVBQ3hDLHNCQUE4QyxFQUM5QyxzQkFBOEMsRUFDOUMsa0JBQXNDLEVBQ3RDLGlCQUF5QyxFQUN6QyxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLG9CQUEwQztRQVYxQyxrQkFBYSxHQUFiLGFBQWEsQ0FBTztRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FB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RGxCLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQVdOLDRCQUE0QjtzQkFEM0IsS0FBSztnQkFPTiwwQkFBMEI7c0JBRHpCLEtBQUs7Z0JBT04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQU9OLG1DQUFtQztzQkFEbEMsS0FBSzs7QUErTFYsTUFBTSxPQUFPLHdCQUF3QjtJQUlqQyxZQUNJLDZCQUFzQyxFQUN0Qyx5QkFBa0M7UUFFbEMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLDZCQUE2QixDQUFDO1FBQ25FLElBQUksQ0FBQyx5QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztJQUMvRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZvb3RlckxpbmsgfSBmcm9tICcuLi9mb2Vobi1mb290ZXIvZm9vdGVyLWxpbmsudHlwZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4vZm9laG4tcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1cHBvcnRBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9zZGstc3VwcG9ydC1hbGVydC9zdXBwb3J0LWFsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1uYXZpZ2F0aW9uL2ZvZWhuLW5hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdGFwZUluZm8gfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgfSBmcm9tICcuLi9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwtY29udGVudCc7XG5pbXBvcnQgeyBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tYnJlYWRjcnVtYi9icmVhZGNydW1iLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgc3VwcG9ydGVkQnJvd3NlcnMgfSBmcm9tICcuLi9zdXBwb3J0ZWQtYnJvd3Nlcic7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5QYWdlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcblxuY29uc3QgTEVBVklOR19BTEVSVF9DT05URU5UID1cbiAgICAnQ2UgY2hhbmdlbWVudCBkZSBwYWdlIGVudHJhaW5lIHVuZSBwZXJ0ZSBkZXMgZG9ubsOpZXMgbm9uIHNhdXZlZ2FyZMOpZXMuPGJyLz5Tb3VoYWl0ZXotdm91cyBxdWFuZCBtw6ptZSBjb250aW51ZXIgPyc7XG5jb25zdCBMRUFWSU5HX0FMRVJUX09LID0gJ1BvdXJzdWl2cmUgc2FucyBzYXV2ZWdhcmRlcic7XG5jb25zdCBMRUFWSU5HX0FMRVJUX0NBTkNFTCA9ICdSZXRvdXJuZXIgw6AgbGEgcHJlc3RhdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLXBhZ2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgYXBwVGl0bGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZm9vdGVyTGlua3M6IEZvb3RlckxpbmtbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgbmV2ZXJDb25uZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHN1cHBvcnRBbGVydEVuYWJsZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzdXBwb3J0QWxlcnRVcmw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZXRhcGVJZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICB1c2VyQ29ubmVjdGVkQXNEaXNwbGF5ZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBjb25maXJtTGVhdmluZ0FsZXJ0OiBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgPSB7XG4gICAgICAgIGh0bWxDb250ZW50OiBMRUFWSU5HX0FMRVJUX0NPTlRFTlQsXG4gICAgICAgIG9rQnV0dG9uTGFiZWw6IExFQVZJTkdfQUxFUlRfT0ssXG4gICAgICAgIGNhbmNlbEJ1dHRvbkxhYmVsOiBMRUFWSU5HX0FMRVJUX0NBTkNFTFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJZiBzZXQgdG8gJ2ZhbHNlJywgaGlkZSB0aGUgZGVmYXVsdCBDb250YWN0IGxpbmsgaW4gdGhlIGZvb3Rlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0Q29udGFjdEZvb3RlckxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgR3VpZGUgbGluayBpbiB0aGUgZm9vdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRHdWlkZUZvb3RlckxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgVGVybXMgb2YgdXNlIGxpbmsuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RGVmYXVsdFRlcm1PZlVzZUxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgU2VjdXJpdHkgQmVzdCBQcmFjdGljZSBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRTZWN1cml0eUJlc3RQcmFjdGljZUxpbmsgPSB0cnVlO1xuXG4gICAgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgICBoYXNCbG9ja2luZ1N1cHBvcnRBbGVydDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIGRpc3BsYXlVc2VyQ2F0ZWdvcnk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBkaXNwbGF5TG9naW5NZXNzYWdlczogT2JzZXJ2YWJsZTxEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGE+O1xuXG4gICAgaXNCcm93c2VyU3VwcG9ydGVkOiBib29sZWFuO1xuXG4gICAgaXNBcHBsZVBsYXRmb3JtOiBib29sZWFuO1xuXG4gICAgYnJvd3NlckxpbmtUaXRsZVByZWZpeCA9XG4gICAgICAgICdMaWVuIHBvdXIgbGUgdMOpbMOpY2hhcmdlbWVudCBkdSBuYXZpZ2F0ZXVyIGludGVybmV0JztcblxuICAgIGJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3MgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmxvY2tlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3RpdGxlU2VydmljZTogVGl0bGUsXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzdXBwb3J0QWxlcnRTZXJ2aWNlOiBTdXBwb3J0QWxlcnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZvZWhuTmF2aWdhdGlvblNlcnZpY2U6IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1FdmVudFNlcnZpY2U6IEdlc2RlbUV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYkV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlTW9kYWxTZXJ2aWNlOiBGb2VoblBhZ2VNb2RhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2RrRGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQgPSBzdXBwb3J0QWxlcnRTZXJ2aWNlLmdldEhhc0F0TGVhc3RPbmVCbG9ja2luZ0FsZXJ0KCk7XG5cbiAgICAgICAgdGhpcy5ibG9ja2VkU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2UuZm9laG5QYWdlT2JzZXJ2YWJsZSgpLFxuICAgICAgICAgICAgLy8gRW5zdXJlcyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdmFsdWUgaW4gdGhlIG9ic2VydmFibGUuXG4gICAgICAgICAgICBtZXJnZShvZihmYWxzZSksIHRoaXMuaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQpXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW3RpdGxlLCBibG9ja2VkXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGJsb2NrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSgnUHJlc3RhdGlvbiBpbmRpc3BvbmlibGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlzQnJvd3NlclN1cHBvcnRlZCA9IHN1cHBvcnRlZEJyb3dzZXJzLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgICAgIHRoaXMuaXNBcHBsZVBsYXRmb3JtID0gLyhNYWN8aVBob25lfGlQb2R8aVBhZCkvaS50ZXN0KFxuICAgICAgICAgICAgbmF2aWdhdG9yLnBsYXRmb3JtXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXJTdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VUaXRsZSA9ICdOYXZpZ2F0ZXVyIG5vbiBzdXBwb3J0w6knO1xuICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLnNldFBhZ2VUaXRsZShwYWdlVGl0bGUpO1xuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5zZXRDdXJyZW50QnJlYWRjcnVtYih7XG4gICAgICAgICAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHBhZ2VUaXRsZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0luaXRpYWxTdGVwID0gdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmN1cnJlbnRFdGFwZUluZm8ucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoY3VycmVudEV0YXBlSW5mbzogRXRhcGVJbmZvKSA9PlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvICYmXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJFdGFwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJQcmVzdGF0aW9uXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gY29uc3QgbmF2aWdhdGlvblVwZGF0ZTogT2JzZXJ2YWJsZTxhbnk+ID0gb2YgKHRydWUpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25VcGRhdGU6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBFbnN1cmVzIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB2YWx1ZSBpbiB0aGUgb2JzZXJ2YWJsZS5cbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkFuZEluaXQgPSBtZXJnZShvZih0cnVlKSwgbmF2aWdhdGlvblVwZGF0ZSk7XG4gICAgICAgIGNvbnN0IGZvcm1UcmFuc21pdHRlZCA9IG1lcmdlKFxuICAgICAgICAgICAgb2YodW5kZWZpbmVkKSxcbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1UcmFuc21pdHRlZE9ic2VydmFibGUoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVVzZXJDYXRlZ29yeSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgaXNJbml0aWFsU3RlcCxcbiAgICAgICAgICAgIHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5oYXNCZWVuSW5pdGlhbGl6ZWQoKSxcbiAgICAgICAgICAgIGZvcm1UcmFuc21pdHRlZCxcbiAgICAgICAgICAgIG5hdmlnYXRpb25BbmRJbml0XG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHdpdGhvdXQgZGVib3VuY2VUaW1lLCB0aGUgb3V0Y29tZSBpcyBsZXNzIGVmZmVjdGl2ZS4uLlxuICAgICAgICAgICAgbWFwKChbaW5pdGlhbFN0ZXAsIG5hdlNlcnZpY2VJbml0aWFsaXplZCwgYmFja2VuZFJlc3BvbnNlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChuYXZTZXJ2aWNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNGaXJzdFBhZ2UgPSB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaXNGaXJzdEZvcm1QYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTGFzdFBhZ2UgPSB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaXNMYXN0Rm9ybVBhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50Um91dGVEZWZpbmVkID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRDdXJyZW50Um91dGVJbmRleCgpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9laG5QYWdlU2VydmljZS5pc1VzZXJDYXRlZ29yeVZpc2libGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTGFzdFBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDb25uZWN0ZWRBc0Rpc3BsYXllZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxTdGVwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXZlckNvbm5lY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tlbmRSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudFJvdXRlRGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUgPSBtZXJnZShcbiAgICAgICAgICAgIG9mKHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZS5mb3JtSW5pdGlhbGl6YXRpb25PYnNlcnZhYmxlKClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5TG9naW5NZXNzYWdlcyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSxcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm8uZGF0YSxcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5jdXJyZW50RXRhcGVJbmZvXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHdpdGhvdXQgZGVib3VuY2VUaW1lLCB0aGUgb3V0Y29tZSBpcyBsZXNzIGVmZmVjdGl2ZS4uLlxuICAgICAgICAgICAgbWFwKChbZm9ybUluaXRpYWxpemF0aW9uLCBzZXNzaW9uSW5mb0RhdGEsIGN1cnJlbnRFdGFwZUluZm9dKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlck9ySWFtID0gISFzZXNzaW9uSW5mb0RhdGE7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0UGFnZSA9IHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5pc0xhc3RGb3JtUGFnZSgpO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaXNDb25uZWN0ZWRDeWJlck9ySWFtIHx8XG4gICAgICAgICAgICAgICAgICAgICFjdXJyZW50RXRhcGVJbmZvLmRlcGxveWVlQ3liZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgISFmb3JtSW5pdGlhbGl6YXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgaXNMYXN0UGFnZVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERpc3BsYXlMb2dpbk1lc3NhZ2VzRGF0YShmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhKFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvPy5kZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXRhcGVJZENoYW5nZSA9IGNoYW5nZXMuZXRhcGVJZDtcbiAgICAgICAgaWYgKGV0YXBlSWRDaGFuZ2UgJiYgZXRhcGVJZENoYW5nZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9laG5QYWdlU2VydmljZS5zZXRDdXJyZW50RXRhcGVJZChldGFwZUlkQ2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcHBUaXRsZUNoYW5nZSA9IGNoYW5nZXMuYXBwVGl0bGU7XG4gICAgICAgIGlmIChhcHBUaXRsZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fdGl0bGVTZXJ2aWNlLnNldFRpdGxlKGFwcFRpdGxlQ2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tlZFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5ibG9ja2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGdWxsTG9naW5VcmwoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9laG5QYWdlTW9kYWxTZXJ2aWNlLmJ1aWxkU2VsZlJlZGlyZWN0aW9uVGhyb3VnaEN5YmVyTG9naW4oKTtcbiAgICB9XG5cbiAgICBnZXRGdWxsTG9naW5NZXNzYWdlKFxuICAgICAgICBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTogYm9vbGVhblxuICAgICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmIChkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2RrRGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5KCd1c2UtbG9naW4udGV4dCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2RrRGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5KFxuICAgICAgICAgICAgICAgICAgICAndXNlLWxvZ2luLnRleHQuZGVjaXNpb24tZWxlY3Ryb25pcXVlLWF2YWlsYWJsZSdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKFtsb2dpbk1zZywgZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGVNc2ddKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7bG9naW5Nc2d9PGJyLz48YnIvPiR7ZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGVNc2d9YFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2RrRGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5KCd1c2UtbG9naW4udGV4dCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlVGl0bGUgPSB0aXRsZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEge1xuICAgIGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlOiBib29sZWFuO1xuICAgIGRpc3BsYXlTaG91bGRMb2dpbk1lc3NhZ2U6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGU6IGJvb2xlYW4sXG4gICAgICAgIGRpc3BsYXlTaG91bGRMb2dpbk1lc3NhZ2U6IGJvb2xlYW5cbiAgICApIHtcbiAgICAgICAgdGhpcy5kZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZSA9IGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlO1xuICAgICAgICB0aGlzLmRpc3BsYXlTaG91bGRMb2dpbk1lc3NhZ2UgPSBkaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlO1xuICAgIH1cbn1cbiIsIjxmb2Vobi1oZWFkZXJcbiAgICBpZD1cImZvZWhuX2hlYWRlclwiXG4gICAgW3RpdGxlXT1cImFwcFRpdGxlXCJcbiAgICBbbmV2ZXJDb25uZWN0ZWRdPVwibmV2ZXJDb25uZWN0ZWRcIlxuPjwvZm9laG4taGVhZGVyPlxuPGZvZWhuLWdyb3dsIGlkPVwiZm9laG5fZ3Jvd2xcIj48L2ZvZWhuLWdyb3dsPlxuPGRpdiBjbGFzcz1cInZkLWJnLXBhdHRlcm4tZ3JheVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgPGZvZWhuLWJyZWFkY3J1bWJcbiAgICAgICAgICAgIFtuZXZlckNvbm5lY3RlZF09XCJuZXZlckNvbm5lY3RlZFwiXG4gICAgICAgICAgICBbY29uZmlybUxlYXZpbmdBbGVydF09XCJjb25maXJtTGVhdmluZ0FsZXJ0XCJcbiAgICAgICAgPjwvZm9laG4tYnJlYWRjcnVtYj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPG1haW4gaWQ9XCJtYWluXCI+XG4gICAgPGRpdiBjbGFzcz1cInZkLWJnLXBhdHRlcm4tZ3JheVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8IS0tIEZpeCBhbm5veWluZyBmbGlja2VyaW5nIHdoZW4gdGhlIHBhZ2UgbG9hZHMgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaDEgbXQtMFwiICpuZ0lmPVwiIXBhZ2VUaXRsZVwiPiZuYnNwOzwvZGl2PlxuICAgICAgICAgICAgPGgxXG4gICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTBcIlxuICAgICAgICAgICAgICAgIGlkPVwicGFnZS10aXRsZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhIXBhZ2VUaXRsZVwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJwYWdlVGl0bGVcIlxuICAgICAgICAgICAgPjwvaDE+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHNlY3Rpb25cbiAgICAgICAgKm5nSWY9XCIhaXNCcm93c2VyU3VwcG9ydGVkXCJcbiAgICAgICAgY2xhc3M9XCJjb250YWluZXIgYWxlcnQgYWxlcnQtZGFuZ2VyXCJcbiAgICAgICAgaWQ9XCJicm93c2VyX25vdF9zdXBwb3J0ZWRfYmxvY2tcIlxuICAgICAgICByb2xlPVwiYWxlcnRcIlxuICAgID5cbiAgICAgICAgPHAgY2xhc3M9XCJhbGVydC1oZWFkaW5nXCI+XG4gICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgIENldHRlIHByZXN0YXRpb24gbuKAmWVzdCBwYXMgY29tcGF0aWJsZSBhdmVjIHZvdHJlIG5hdmlnYXRldXIuXG4gICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPC9wPlxuICAgICAgICA8cCBjbGFzcz1cIm1iLTBcIj5cbiAgICAgICAgICAgIE5vdXMgdm91cyBpbnZpdG9ucyDDoCB1dGlsaXNlciB1bmUgdmVyc2lvbiByw6ljZW50ZSBkZVxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FwcGxlUGxhdGZvcm1cIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYnJvd3NlckxpbmtUaXRsZVByZWZpeCArICcgRWRnZSdcIlxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubWljcm9zb2Z0LmNvbS9mci1jaC93aW5kb3dzL21pY3Jvc29mdC1lZGdlXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEVkZ2VcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+KGxpZW4gZXh0ZXJuZSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+PC9mb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICxcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQXBwbGVQbGF0Zm9ybVwiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJicm93c2VyTGlua1RpdGxlUHJlZml4ICsgJyBTYWZhcmknXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vc3VwcG9ydC5hcHBsZS5jb20vZG93bmxvYWRzL3NhZmFyaVwiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBTYWZhcmlcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+KGxpZW4gZXh0ZXJuZSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+PC9mb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICxcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYnJvd3NlckxpbmtUaXRsZVByZWZpeCArICcgRmlyZWZveCdcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5tb3ppbGxhLm9yZy9mci9maXJlZm94L1wiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBGaXJlZm94XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+KGxpZW4gZXh0ZXJuZSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PjwvZm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICBvdVxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYnJvd3NlckxpbmtUaXRsZVByZWZpeCArICcgQ2hyb21lJ1wiXG4gICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vaW50bC9mci9jaHJvbWUvXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENocm9tZVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihsaWVuIGV4dGVybmUpPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD48L2ZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJicm93c2VyX25vdF9zdXBwb3J0ZWRfYnlwYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbG9hdC1yaWdodCBidG4gYnRuLWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3NcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnJvd3Nlck5vdFN1cHBvcnRlZEJ5cGFzcyA9IHRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQ29udGludWVyIGF2ZWMgY2UgbmF2aWdhdGV1clxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDxzZGstc3VwcG9ydC1hbGVydC1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJzdXBwb3J0QWxlcnRFbmFibGVkXCJcbiAgICAgICAgW2V0YXBlSWRdPVwiZXRhcGVJZFwiXG4gICAgICAgIFtzdXBwb3J0QWxlcnRVcmxdPVwic3VwcG9ydEFsZXJ0VXJsXCJcbiAgICA+PC9zZGstc3VwcG9ydC1hbGVydC1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgIShoYXNCbG9ja2luZ1N1cHBvcnRBbGVydCB8IGFzeW5jKSAmJlxuICAgICAgICAgICAgKGlzQnJvd3NlclN1cHBvcnRlZCB8fCBicm93c2VyTm90U3VwcG9ydGVkQnlwYXNzKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgaWQ9XCJwYWdlX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxmb2Vobi11c2VyLWNvbm5lY3RlZC1hc1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheVVzZXJDYXRlZ29yeSB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxvZ2luTWVzc2FnZXMgfCBhc3luYyBhcyBkaXNwbGF5TG9naW5NZXNzYWdlc0RhdGFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEuZGlzcGxheVNob3VsZExvZ2luTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZGlzcGxheUxvZ2luTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRGdWxsTG9naW5NZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEuZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IG1yLTIgbWItMiBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJnZXRGdWxsTG9naW5VcmwoKSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAndXNlLWxvZ2luLmJ1dHRvbi50ZXh0JyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG48L21haW4+XG48Zm9laG4tZm9vdGVyXG4gICAgaWQ9XCJmb2Vobl9mb290ZXJcIlxuICAgIFtsaW5rc109XCJmb290ZXJMaW5rc1wiXG4gICAgW3Nob3dEZWZhdWx0Q29udGFjdExpbmtdPVwic2hvd0RlZmF1bHRDb250YWN0Rm9vdGVyTGlua1wiXG4gICAgW3Nob3dEZWZhdWx0R3VpZGVMaW5rXT1cInNob3dEZWZhdWx0R3VpZGVGb290ZXJMaW5rXCJcbiAgICBbc2hvd0RlZmF1bHRUZXJtT2ZVc2VMaW5rXT1cInNob3dEZWZhdWx0VGVybU9mVXNlTGlua1wiXG4gICAgW3Nob3dEZWZhdWx0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rXT1cInNob3dEZWZhdWx0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rXCJcbj48L2ZvZWhuLWZvb3Rlcj5cbjxmb2Vobi1wYWdlLW1vZGFsPjwvZm9laG4tcGFnZS1tb2RhbD5cbjxmb2Vobi1jb25maXJtLW1vZGFsPjwvZm9laG4tY29uZmlybS1tb2RhbD5cbiJdfQ==
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tcGFnZS9mb2Vobi1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBS1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBS3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUt6RCxNQUFNLHFCQUFxQixHQUN2QixrSEFBa0gsQ0FBQztBQUN2SCxNQUFNLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDO0FBQ3ZELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUM7QUFNekQsTUFBTSxPQUFPLGtCQUFrQjtJQXdFM0IsWUFDWSxhQUFvQixFQUNwQixnQkFBa0MsRUFDbEMsbUJBQXdDLEVBQ3hDLHNCQUE4QyxFQUM5QyxzQkFBOEMsRUFDOUMsa0JBQXNDLEVBQ3RDLGlCQUF5QyxFQUN6QyxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLG9CQUEwQztRQVYxQyxrQkFBYSxHQUFiLGFBQWEsQ0FBTztRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQUN6QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBeEV0RCx3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFTM0IsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBR2hDLHdCQUFtQixHQUE2QjtZQUM1QyxXQUFXLEVBQUUscUJBQXFCO1lBQ2xDLGFBQWEsRUFBRSxnQkFBZ0I7WUFDL0IsaUJBQWlCLEVBQUUsb0JBQW9CO1NBQzFDLENBQUM7UUFFRjs7V0FFRztRQUVILGlDQUE0QixHQUFHLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUVILCtCQUEwQixHQUFHLElBQUksQ0FBQztRQUVsQzs7V0FFRztRQUVILDZCQUF3QixHQUFHLElBQUksQ0FBQztRQUVoQzs7V0FFRztRQUVILHdDQUFtQyxHQUFHLElBQUksQ0FBQztRQWMzQywyQkFBc0IsR0FDbEIsb0RBQW9ELENBQUM7UUFFekQsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBaUI5QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsbUJBQW1CLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUVuRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsYUFBYSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRTtZQUMzQyx5REFBeUQ7WUFDekQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUM7U0FDakQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2FBQ2hEO2lCQUFNLElBQUksS0FBSyxFQUFFO2dCQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxlQUFlLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUNqRCxTQUFTLENBQUMsUUFBUSxDQUNyQixDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFDO1lBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDO2dCQUN4QyxHQUFHLEVBQUUsSUFBSTtnQkFDVCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsS0FBSyxFQUFFLFNBQVM7YUFDbkIsQ0FBQyxDQUFDO1NBQ047UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUNuRSxHQUFHLENBQ0MsQ0FBQyxnQkFBMkIsRUFBRSxFQUFFLENBQzVCLGdCQUFnQjtZQUNoQixnQkFBZ0IsQ0FBQyxhQUFhO2dCQUMxQixnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FDOUMsQ0FDSixDQUFDO1FBRUYsc0RBQXNEO1FBQ3RELDhEQUE4RDtRQUM5RCxNQUFNLGdCQUFnQixHQUFvQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzdELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FDbEQsQ0FBQztRQUVGLHlEQUF5RDtRQUN6RCxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQ3pCLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLEVBQUUsQ0FDdEQsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxhQUFhLENBQUM7WUFDckMsYUFBYTtZQUNiLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsRUFBRTtZQUNoRCxlQUFlO1lBQ2YsaUJBQWlCO1NBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQ0gsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLHlEQUF5RDtRQUMxRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQzFELElBQUkscUJBQXFCLEVBQUU7Z0JBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDbEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNoRSxNQUFNLHFCQUFxQixHQUN2QixJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLEVBQUU7b0JBQ2xELElBQUksQ0FBQztnQkFDVCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FDOUMsV0FBVyxFQUNYLFVBQVUsRUFDVixJQUFJLENBQUMsd0JBQXdCLEVBQzdCLFdBQVcsRUFDWCxJQUFJLENBQUMsY0FBYyxFQUNuQixlQUFlLEVBQ2YscUJBQXFCLENBQ3hCLENBQUM7YUFDTDtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFFRixNQUFNLDRCQUE0QixHQUFHLEtBQUssQ0FDdEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsRUFBRSxDQUN6RCxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQzFCLElBQUksd0JBQXdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUM3QyxDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxhQUFhLENBQUM7Z0JBQ3RDLDRCQUE0QjtnQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO2dCQUNyQixJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCO2FBQy9DLENBQUMsQ0FBQyxJQUFJLENBQ0gsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLHlEQUF5RDtZQUMxRSxHQUFHLENBQ0MsQ0FBQyxDQUNHLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZ0JBQWdCLENBQ25CLEVBQUUsRUFBRTtnQkFDRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUM7Z0JBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDaEUsSUFDSSxxQkFBcUI7b0JBQ3JCLENBQUMsZ0JBQWdCLENBQUMsYUFBYTtvQkFDL0IsQ0FBQyxDQUFDLGtCQUFrQjtvQkFDcEIsVUFBVSxFQUNaO29CQUNFLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQ3JEO2dCQUVELE9BQU8sSUFBSSx3QkFBd0IsQ0FDL0IsZ0JBQWdCLGFBQWhCLGdCQUFnQix1QkFBaEIsZ0JBQWdCLENBQUUsNkJBQTZCLEVBQy9DLElBQUksQ0FDUCxDQUFDO1lBQ04sQ0FBQyxDQUNKLENBQ0osQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3RDLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxZQUFZLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RTtRQUVELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDeEMsSUFBSSxjQUFjLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFDQUFxQyxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVELG1CQUFtQixDQUNmLDZCQUFzQztRQUV0QyxJQUFJLDZCQUE2QixFQUFFO1lBQy9CLE9BQU8sYUFBYSxDQUFDO2dCQUNqQixJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNsRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUM1QixnREFBZ0QsQ0FDbkQ7YUFDSixDQUFDLENBQUMsSUFBSSxDQUNILEdBQUcsQ0FDQyxDQUFDLENBQUMsUUFBUSxFQUFFLGdDQUFnQyxDQUFDLEVBQUUsRUFBRSxDQUM3QyxHQUFHLFFBQVEsYUFBYSxnQ0FBZ0MsRUFBRSxDQUNqRSxDQUNKLENBQUM7U0FDTDtRQUNELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDOzsrR0EzUFEsa0JBQWtCO21HQUFsQixrQkFBa0IsdW1CQ25DL0IsK2hNQW1LQTsyRkRoSWEsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixXQUFXLEVBQUUsNkJBQTZCO2lCQUM3QztxYUFHRyxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQVdOLDRCQUE0QjtzQkFEM0IsS0FBSztnQkFPTiwwQkFBMEI7c0JBRHpCLEtBQUs7Z0JBT04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQU9OLG1DQUFtQztzQkFEbEMsS0FBSzs7QUE0TVYsTUFBTSxPQUFPLHdCQUF3QjtJQUlqQyxZQUNJLDZCQUFzQyxFQUN0Qyx5QkFBa0M7UUFFbEMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLDZCQUE2QixDQUFDO1FBQ25FLElBQUksQ0FBQyx5QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztJQUMvRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZvb3RlckxpbmsgfSBmcm9tICcuLi9mb2Vobi1mb290ZXIvZm9vdGVyLWxpbmsudHlwZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4vZm9laG4tcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1cHBvcnRBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9zZGstc3VwcG9ydC1hbGVydC9zdXBwb3J0LWFsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1uYXZpZ2F0aW9uL2ZvZWhuLW5hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdGFwZUluZm8gfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgfSBmcm9tICcuLi9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwtY29udGVudCc7XG5pbXBvcnQgeyBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tYnJlYWRjcnVtYi9icmVhZGNydW1iLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgc3VwcG9ydGVkQnJvd3NlcnMgfSBmcm9tICcuLi9zdXBwb3J0ZWQtYnJvd3Nlcic7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5QYWdlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcblxuY29uc3QgTEVBVklOR19BTEVSVF9DT05URU5UID1cbiAgICAnQ2UgY2hhbmdlbWVudCBkZSBwYWdlIGVudHJhaW5lIHVuZSBwZXJ0ZSBkZXMgZG9ubsOpZXMgbm9uIHNhdXZlZ2FyZMOpZXMuPGJyLz5Tb3VoYWl0ZXotdm91cyBxdWFuZCBtw6ptZSBjb250aW51ZXIgPyc7XG5jb25zdCBMRUFWSU5HX0FMRVJUX09LID0gJ1BvdXJzdWl2cmUgc2FucyBzYXV2ZWdhcmRlcic7XG5jb25zdCBMRUFWSU5HX0FMRVJUX0NBTkNFTCA9ICdSZXRvdXJuZXIgw6AgbGEgcHJlc3RhdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLXBhZ2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgYXBwVGl0bGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZm9vdGVyTGlua3M6IEZvb3RlckxpbmtbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgbmV2ZXJDb25uZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHN1cHBvcnRBbGVydEVuYWJsZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzdXBwb3J0QWxlcnRVcmw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZXRhcGVJZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICB1c2VyQ29ubmVjdGVkQXNEaXNwbGF5ZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBjb25maXJtTGVhdmluZ0FsZXJ0OiBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgPSB7XG4gICAgICAgIGh0bWxDb250ZW50OiBMRUFWSU5HX0FMRVJUX0NPTlRFTlQsXG4gICAgICAgIG9rQnV0dG9uTGFiZWw6IExFQVZJTkdfQUxFUlRfT0ssXG4gICAgICAgIGNhbmNlbEJ1dHRvbkxhYmVsOiBMRUFWSU5HX0FMRVJUX0NBTkNFTFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJZiBzZXQgdG8gJ2ZhbHNlJywgaGlkZSB0aGUgZGVmYXVsdCBDb250YWN0IGxpbmsgaW4gdGhlIGZvb3Rlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0Q29udGFjdEZvb3RlckxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgR3VpZGUgbGluayBpbiB0aGUgZm9vdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRHdWlkZUZvb3RlckxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgVGVybXMgb2YgdXNlIGxpbmsuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RGVmYXVsdFRlcm1PZlVzZUxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgU2VjdXJpdHkgQmVzdCBQcmFjdGljZSBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRTZWN1cml0eUJlc3RQcmFjdGljZUxpbmsgPSB0cnVlO1xuXG4gICAgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgICBoYXNCbG9ja2luZ1N1cHBvcnRBbGVydDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIGRpc3BsYXlVc2VyQ2F0ZWdvcnk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBkaXNwbGF5TG9naW5NZXNzYWdlczogT2JzZXJ2YWJsZTxEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGE+O1xuXG4gICAgaXNCcm93c2VyU3VwcG9ydGVkOiBib29sZWFuO1xuXG4gICAgaXNBcHBsZVBsYXRmb3JtOiBib29sZWFuO1xuXG4gICAgYnJvd3NlckxpbmtUaXRsZVByZWZpeCA9XG4gICAgICAgICdMaWVuIHBvdXIgbGUgdMOpbMOpY2hhcmdlbWVudCBkdSBuYXZpZ2F0ZXVyIGludGVybmV0JztcblxuICAgIGJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3MgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmxvY2tlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3RpdGxlU2VydmljZTogVGl0bGUsXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzdXBwb3J0QWxlcnRTZXJ2aWNlOiBTdXBwb3J0QWxlcnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZvZWhuTmF2aWdhdGlvblNlcnZpY2U6IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1FdmVudFNlcnZpY2U6IEdlc2RlbUV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYkV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlTW9kYWxTZXJ2aWNlOiBGb2VoblBhZ2VNb2RhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2RrRGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQgPSBzdXBwb3J0QWxlcnRTZXJ2aWNlLmdldEhhc0F0TGVhc3RPbmVCbG9ja2luZ0FsZXJ0KCk7XG5cbiAgICAgICAgdGhpcy5ibG9ja2VkU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2UuZm9laG5QYWdlT2JzZXJ2YWJsZSgpLFxuICAgICAgICAgICAgLy8gRW5zdXJlcyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdmFsdWUgaW4gdGhlIG9ic2VydmFibGUuXG4gICAgICAgICAgICBtZXJnZShvZihmYWxzZSksIHRoaXMuaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQpXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW3RpdGxlLCBibG9ja2VkXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGJsb2NrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSgnUHJlc3RhdGlvbiBpbmRpc3BvbmlibGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlzQnJvd3NlclN1cHBvcnRlZCA9IHN1cHBvcnRlZEJyb3dzZXJzLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgICAgIHRoaXMuaXNBcHBsZVBsYXRmb3JtID0gLyhNYWN8aVBob25lfGlQb2R8aVBhZCkvaS50ZXN0KFxuICAgICAgICAgICAgbmF2aWdhdG9yLnBsYXRmb3JtXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXJTdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VUaXRsZSA9ICdOYXZpZ2F0ZXVyIG5vbiBzdXBwb3J0w6knO1xuICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLnNldFBhZ2VUaXRsZShwYWdlVGl0bGUpO1xuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5zZXRDdXJyZW50QnJlYWRjcnVtYih7XG4gICAgICAgICAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHBhZ2VUaXRsZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0luaXRpYWxTdGVwID0gdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmN1cnJlbnRFdGFwZUluZm8ucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoY3VycmVudEV0YXBlSW5mbzogRXRhcGVJbmZvKSA9PlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvICYmXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJFdGFwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJQcmVzdGF0aW9uXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gY29uc3QgbmF2aWdhdGlvblVwZGF0ZTogT2JzZXJ2YWJsZTxhbnk+ID0gb2YgKHRydWUpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25VcGRhdGU6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBFbnN1cmVzIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB2YWx1ZSBpbiB0aGUgb2JzZXJ2YWJsZS5cbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkFuZEluaXQgPSBtZXJnZShvZih0cnVlKSwgbmF2aWdhdGlvblVwZGF0ZSk7XG4gICAgICAgIGNvbnN0IGZvcm1UcmFuc21pdHRlZCA9IG1lcmdlKFxuICAgICAgICAgICAgb2YodW5kZWZpbmVkKSxcbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1UcmFuc21pdHRlZE9ic2VydmFibGUoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVVzZXJDYXRlZ29yeSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgaXNJbml0aWFsU3RlcCxcbiAgICAgICAgICAgIHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5oYXNCZWVuSW5pdGlhbGl6ZWQoKSxcbiAgICAgICAgICAgIGZvcm1UcmFuc21pdHRlZCxcbiAgICAgICAgICAgIG5hdmlnYXRpb25BbmRJbml0XG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHdpdGhvdXQgZGVib3VuY2VUaW1lLCB0aGUgb3V0Y29tZSBpcyBsZXNzIGVmZmVjdGl2ZS4uLlxuICAgICAgICAgICAgbWFwKChbaW5pdGlhbFN0ZXAsIG5hdlNlcnZpY2VJbml0aWFsaXplZCwgYmFja2VuZFJlc3BvbnNlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChuYXZTZXJ2aWNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNGaXJzdFBhZ2UgPSB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaXNGaXJzdEZvcm1QYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTGFzdFBhZ2UgPSB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaXNMYXN0Rm9ybVBhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50Um91dGVEZWZpbmVkID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRDdXJyZW50Um91dGVJbmRleCgpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9laG5QYWdlU2VydmljZS5pc1VzZXJDYXRlZ29yeVZpc2libGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTGFzdFBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDb25uZWN0ZWRBc0Rpc3BsYXllZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxTdGVwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXZlckNvbm5lY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tlbmRSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudFJvdXRlRGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUgPSBtZXJnZShcbiAgICAgICAgICAgIG9mKHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZS5mb3JtSW5pdGlhbGl6YXRpb25PYnNlcnZhYmxlKClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5uZXZlckNvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5TG9naW5NZXNzYWdlcyA9IG9mKFxuICAgICAgICAgICAgICAgIG5ldyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEoZmFsc2UsIGZhbHNlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUxvZ2luTWVzc2FnZXMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICBmb3JtSW5pdGlhbGl6YXRpb25PYnNlcnZhYmxlLFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm8uZGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuY3VycmVudEV0YXBlSW5mb1xuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHdpdGhvdXQgZGVib3VuY2VUaW1lLCB0aGUgb3V0Y29tZSBpcyBsZXNzIGVmZmVjdGl2ZS4uLlxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Jbml0aWFsaXphdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25JbmZvRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm9cbiAgICAgICAgICAgICAgICAgICAgXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlck9ySWFtID0gISFzZXNzaW9uSW5mb0RhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xhc3RQYWdlID0gdGhpcy5mb2Vobk5hdmlnYXRpb25TZXJ2aWNlLmlzTGFzdEZvcm1QYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDb25uZWN0ZWRDeWJlck9ySWFtIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWN1cnJlbnRFdGFwZUluZm8uZGVwbG95ZWVDeWJlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICEhZm9ybUluaXRpYWxpemF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMYXN0UGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbz8uZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV0YXBlSWRDaGFuZ2UgPSBjaGFuZ2VzLmV0YXBlSWQ7XG4gICAgICAgIGlmIChldGFwZUlkQ2hhbmdlICYmIGV0YXBlSWRDaGFuZ2UuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2Uuc2V0Q3VycmVudEV0YXBlSWQoZXRhcGVJZENoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwVGl0bGVDaGFuZ2UgPSBjaGFuZ2VzLmFwcFRpdGxlO1xuICAgICAgICBpZiAoYXBwVGl0bGVDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpdGxlU2VydmljZS5zZXRUaXRsZShhcHBUaXRsZUNoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrZWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYmxvY2tlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RnVsbExvZ2luVXJsKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvZWhuUGFnZU1vZGFsU2VydmljZS5idWlsZFNlbGZSZWRpcmVjdGlvblRocm91Z2hDeWJlckxvZ2luKCk7XG4gICAgfVxuXG4gICAgZ2V0RnVsbExvZ2luTWVzc2FnZShcbiAgICAgICAgZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGU6IGJvb2xlYW5cbiAgICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAoZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleSgndXNlLWxvZ2luLnRleHQnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleShcbiAgICAgICAgICAgICAgICAgICAgJ3VzZS1sb2dpbi50ZXh0LmRlY2lzaW9uLWVsZWN0cm9uaXF1ZS1hdmFpbGFibGUnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgIChbbG9naW5Nc2csIGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlTXNnXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2xvZ2luTXNnfTxici8+PGJyLz4ke2RlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlTXNnfWBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleSgndXNlLWxvZ2luLnRleHQnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBhZ2VUaXRsZSh0aXRsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZVRpdGxlID0gdGl0bGU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhIHtcbiAgICBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTogYm9vbGVhbjtcbiAgICBkaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlOiBib29sZWFuLFxuICAgICAgICBkaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlOiBib29sZWFuXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUgPSBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlID0gZGlzcGxheVNob3VsZExvZ2luTWVzc2FnZTtcbiAgICB9XG59XG4iLCI8Zm9laG4taGVhZGVyXG4gICAgaWQ9XCJmb2Vobl9oZWFkZXJcIlxuICAgIFt0aXRsZV09XCJhcHBUaXRsZVwiXG4gICAgW25ldmVyQ29ubmVjdGVkXT1cIm5ldmVyQ29ubmVjdGVkXCJcbj48L2ZvZWhuLWhlYWRlcj5cbjxmb2Vobi1ncm93bCBpZD1cImZvZWhuX2dyb3dsXCI+PC9mb2Vobi1ncm93bD5cbjxkaXYgY2xhc3M9XCJ2ZC1iZy1wYXR0ZXJuLWdyYXlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxmb2Vobi1icmVhZGNydW1iXG4gICAgICAgICAgICBbbmV2ZXJDb25uZWN0ZWRdPVwibmV2ZXJDb25uZWN0ZWRcIlxuICAgICAgICAgICAgW2NvbmZpcm1MZWF2aW5nQWxlcnRdPVwiY29uZmlybUxlYXZpbmdBbGVydFwiXG4gICAgICAgID48L2ZvZWhuLWJyZWFkY3J1bWI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxtYWluIGlkPVwibWFpblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2ZC1iZy1wYXR0ZXJuLWdyYXlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPCEtLSBGaXggYW5ub3lpbmcgZmxpY2tlcmluZyB3aGVuIHRoZSBwYWdlIGxvYWRzIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgxIG10LTBcIiAqbmdJZj1cIiFwYWdlVGl0bGVcIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgIDxoMVxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0wXCJcbiAgICAgICAgICAgICAgICBpZD1cInBhZ2UtdGl0bGVcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiISFwYWdlVGl0bGVcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwicGFnZVRpdGxlXCJcbiAgICAgICAgICAgID48L2gxPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxzZWN0aW9uXG4gICAgICAgICpuZ0lmPVwiIWlzQnJvd3NlclN1cHBvcnRlZFwiXG4gICAgICAgIGNsYXNzPVwiY29udGFpbmVyIGFsZXJ0IGFsZXJ0LWRhbmdlclwiXG4gICAgICAgIGlkPVwiYnJvd3Nlcl9ub3Rfc3VwcG9ydGVkX2Jsb2NrXCJcbiAgICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwiYWxlcnQtaGVhZGluZ1wiPlxuICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICBDZXR0ZSBwcmVzdGF0aW9uIG7igJllc3QgcGFzIGNvbXBhdGlibGUgYXZlYyB2b3RyZSBuYXZpZ2F0ZXVyLlxuICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+XG4gICAgICAgICAgICBOb3VzIHZvdXMgaW52aXRvbnMgw6AgdXRpbGlzZXIgdW5lIHZlcnNpb24gcsOpY2VudGUgZGVcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNBcHBsZVBsYXRmb3JtXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImJyb3dzZXJMaW5rVGl0bGVQcmVmaXggKyAnIEVkZ2UnXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1pY3Jvc29mdC5jb20vZnItY2gvd2luZG93cy9taWNyb3NvZnQtZWRnZVwiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBFZGdlXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihsaWVuIGV4dGVybmUpPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PjwvZm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAsXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FwcGxlUGxhdGZvcm1cIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYnJvd3NlckxpbmtUaXRsZVByZWZpeCArICcgU2FmYXJpJ1wiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3N1cHBvcnQuYXBwbGUuY29tL2Rvd25sb2Fkcy9zYWZhcmlcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgU2FmYXJpXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihsaWVuIGV4dGVybmUpPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PjwvZm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAsXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImJyb3dzZXJMaW5rVGl0bGVQcmVmaXggKyAnIEZpcmVmb3gnXCJcbiAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubW96aWxsYS5vcmcvZnIvZmlyZWZveC9cIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgRmlyZWZveFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihsaWVuIGV4dGVybmUpPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD48L2ZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgb3VcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImJyb3dzZXJMaW5rVGl0bGVQcmVmaXggKyAnIENocm9tZSdcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5nb29nbGUuY29tL2ludGwvZnIvY2hyb21lL1wiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBDaHJvbWVcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj4obGllbiBleHRlcm5lKTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+PC9mb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIC5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYnJvd3Nlcl9ub3Rfc3VwcG9ydGVkX2J5cGFzc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHQgYnRuIGJ0bi1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFicm93c2VyTm90U3VwcG9ydGVkQnlwYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3MgPSB0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIENvbnRpbnVlciBhdmVjIGNlIG5hdmlnYXRldXJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2RrLXN1cHBvcnQtYWxlcnQtY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwic3VwcG9ydEFsZXJ0RW5hYmxlZFwiXG4gICAgICAgIFtldGFwZUlkXT1cImV0YXBlSWRcIlxuICAgICAgICBbc3VwcG9ydEFsZXJ0VXJsXT1cInN1cHBvcnRBbGVydFVybFwiXG4gICAgPjwvc2RrLXN1cHBvcnQtYWxlcnQtY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICEoaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQgfCBhc3luYykgJiZcbiAgICAgICAgICAgIChpc0Jyb3dzZXJTdXBwb3J0ZWQgfHwgYnJvd3Nlck5vdFN1cHBvcnRlZEJ5cGFzcylcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgbXQtNVwiIGlkPVwicGFnZV9jb250ZW50XCI+XG4gICAgICAgICAgICA8Zm9laG4tdXNlci1jb25uZWN0ZWQtYXNcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRpc3BsYXlVc2VyQ2F0ZWdvcnkgfCBhc3luY1wiXG4gICAgICAgICAgICA+PC9mb2Vobi11c2VyLWNvbm5lY3RlZC1hcz5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRpc3BsYXlMb2dpbk1lc3NhZ2VzIHwgYXN5bmMgYXMgZGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhLmRpc3BsYXlTaG91bGRMb2dpbk1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImRpc3BsYXlMb2dpbk1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RnVsbExvZ2luTWVzc2FnZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhLmRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBtci0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2V0RnVsbExvZ2luVXJsKCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3VzZS1sb2dpbi5idXR0b24udGV4dCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9tYWluPlxuPGZvZWhuLWZvb3RlclxuICAgIGlkPVwiZm9laG5fZm9vdGVyXCJcbiAgICBbbGlua3NdPVwiZm9vdGVyTGlua3NcIlxuICAgIFtzaG93RGVmYXVsdENvbnRhY3RMaW5rXT1cInNob3dEZWZhdWx0Q29udGFjdEZvb3RlckxpbmtcIlxuICAgIFtzaG93RGVmYXVsdEd1aWRlTGlua109XCJzaG93RGVmYXVsdEd1aWRlRm9vdGVyTGlua1wiXG4gICAgW3Nob3dEZWZhdWx0VGVybU9mVXNlTGlua109XCJzaG93RGVmYXVsdFRlcm1PZlVzZUxpbmtcIlxuICAgIFtzaG93RGVmYXVsdFNlY3VyaXR5QmVzdFByYWN0aWNlTGlua109XCJzaG93RGVmYXVsdFNlY3VyaXR5QmVzdFByYWN0aWNlTGlua1wiXG4+PC9mb2Vobi1mb290ZXI+XG48Zm9laG4tcGFnZS1tb2RhbD48L2ZvZWhuLXBhZ2UtbW9kYWw+XG48Zm9laG4tY29uZmlybS1tb2RhbD48L2ZvZWhuLWNvbmZpcm0tbW9kYWw+XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export class FoehnTableColumnConfiguration {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tdGFibGUtY29sdW1uLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdGFibGUvZm9laG4tdGFibGUtY29sdW1uLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLDZCQUE2QjtDQU96QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGb2VoblRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbjxUPiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBjb2x1bW5MYWJlbEtleTogc3RyaW5nO1xuICAgIGlzSW1wb3J0YW50PzogKGl0ZW06IFQpID0+IGJvb2xlYW47XG4gICAgdmFsdWVHZXR0ZXI6IChpdGVtOiBUKSA9PiBzdHJpbmc7XG4gICAgcm91dGVyTGlua0dldHRlcj86IChpdGVtOiBUKSA9PiBzdHJpbmc7XG4gICAgc29ydEF0dHJpYnV0ZT86IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export class FoehnTablePageChangeEvent {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tdGFibGUtcGFnZS1jaGFuZ2UtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdGFibGUvZm9laG4tdGFibGUtcGFnZS1jaGFuZ2UtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHlCQUF5QjtDQUlyQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGb2VoblRhYmxlUGFnZUNoYW5nZUV2ZW50IHtcbiAgICBwcmV2aW91c1BhZ2U6IG51bWJlcjtcbiAgICBjdXJyZW50UGFnZTogbnVtYmVyO1xuICAgIHBhZ2VDb3VudDogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,148 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../foehn-icons/foehn-icon-chevron-up.component";
4
+ import * as i2 from "../foehn-icons/foehn-icon-chevron-down.component";
5
+ import * as i3 from "../foehn-icons/foehn-icon-chevron-left.component";
6
+ import * as i4 from "../foehn-icons/foehn-icon-chevron-right.component";
7
+ import * as i5 from "@angular/common";
8
+ import * as i6 from "@angular/router";
9
+ import * as i7 from "../sdk-dictionary/sdk-dictionary.pipe";
10
+ const hasInputChanged = (change) => !(!change ||
11
+ !change.currentValue ||
12
+ change.previousValue === change.currentValue);
13
+ export class FoehnTableComponent {
14
+ constructor() {
15
+ this.itemsPerPage = 10;
16
+ this.id = 'foehn-table';
17
+ this.previousLabel = 'Précédent';
18
+ this.nextLabel = 'Suivant';
19
+ this.pageChange = new EventEmitter();
20
+ this.sortChange = new EventEmitter();
21
+ this.currentPage = 1;
22
+ this.filteredList = [];
23
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
+ this.trackByFn = (index, item) => index;
25
+ }
26
+ set list(list) {
27
+ this._list = list;
28
+ }
29
+ ngOnChanges(changes) {
30
+ const itemsPerPageChange = changes.itemsPerPage;
31
+ const listChange = changes.list;
32
+ const fixedPageCountChange = changes.fixedPageCount;
33
+ if (!hasInputChanged(itemsPerPageChange) &&
34
+ !hasInputChanged(listChange) &&
35
+ !hasInputChanged(fixedPageCountChange)) {
36
+ return;
37
+ }
38
+ this.buildFilteredList();
39
+ }
40
+ previousPage() {
41
+ this.currentPage = this.currentPage - 1;
42
+ this.buildFilteredList();
43
+ this.pageChange.next({
44
+ previousPage: this.currentPage + 1,
45
+ currentPage: this.currentPage,
46
+ pageCount: this.pagesCount()
47
+ });
48
+ }
49
+ hasPreviousPage() {
50
+ return this.currentPage > 1;
51
+ }
52
+ nextPage() {
53
+ this.currentPage = this.currentPage + 1;
54
+ this.buildFilteredList();
55
+ this.pageChange.next({
56
+ previousPage: this.currentPage - 1,
57
+ currentPage: this.currentPage,
58
+ pageCount: this.pagesCount()
59
+ });
60
+ }
61
+ hasNextPage() {
62
+ return this.currentPage < this.pagesCount();
63
+ }
64
+ showPage(page, emitPageChangeEvent = false) {
65
+ if (this.currentPage === page) {
66
+ return;
67
+ }
68
+ const previousPage = this.currentPage;
69
+ this.currentPage = page;
70
+ this.buildFilteredList();
71
+ if (emitPageChangeEvent) {
72
+ this.pageChange.next({
73
+ previousPage,
74
+ currentPage: this.currentPage,
75
+ pageCount: this.pagesCount()
76
+ });
77
+ }
78
+ }
79
+ pagesCount() {
80
+ if (!!this.fixedPageCount) {
81
+ return this.fixedPageCount;
82
+ }
83
+ return this._list
84
+ ? Math.ceil(this._list.length / this.itemsPerPage)
85
+ : 0;
86
+ }
87
+ triggerSort(sortAttribute) {
88
+ let sortDirection = 'DESC';
89
+ if (this.sort.sortAttribute === sortAttribute) {
90
+ sortDirection = this.sort.sortDirection === 'DESC' ? 'ASC' : 'DESC';
91
+ }
92
+ this.sortChange.next({
93
+ sortDirection,
94
+ sortAttribute
95
+ });
96
+ }
97
+ buildFilteredList() {
98
+ if (!!this.fixedPageCount) {
99
+ this.filteredList = this._list;
100
+ return;
101
+ }
102
+ const currentPageExists = (this.currentPage - 1) * this.itemsPerPage <= this._list.length;
103
+ if (!currentPageExists) {
104
+ this.currentPage = 1;
105
+ }
106
+ const start = (this.currentPage - 1) * this.itemsPerPage;
107
+ this.filteredList = this._list
108
+ ? this._list.slice(start, start + this.itemsPerPage)
109
+ : [];
110
+ }
111
+ }
112
+ FoehnTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
+ FoehnTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnTableComponent, selector: "foehn-table", inputs: { itemsPerPage: "itemsPerPage", id: "id", previousLabel: "previousLabel", nextLabel: "nextLabel", totalElements: "totalElements", fixedPageCount: "fixedPageCount", columnsConfiguration: "columnsConfiguration", sort: "sort", trackByFn: "trackByFn", list: "list" }, outputs: { pageChange: "pageChange", sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-12\">\n <h2 *ngIf=\"!!totalElements && totalElements === 1\">\n {{ 'list.search-criteria.totalElements.1' | fromDictionary }}\n </h2>\n <h2 *ngIf=\"!!totalElements && totalElements !== 1\">\n {{\n 'list.search-criteria.totalElements'\n | fromDictionary: { total: totalElements.toString() }\n }}\n </h2>\n </div>\n\n <div class=\"col-12 table-responsive\">\n <table class=\"table table-hover\">\n <thead class=\"vd-bg-pattern-bars-gray\">\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id\"\n >\n <ng-container *ngIf=\"!col.sortAttribute\">\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.sortAttribute\">\n <a\n href=\"#\"\n class=\"vd-text-thin\"\n (click)=\"\n $event.preventDefault();\n triggerSort(col.sortAttribute)\n \"\n [title]=\"\n 'Trier par ' +\n (col.columnLabelKey | fromDictionary)\n \"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n <ng-container\n *ngIf=\"\n sort.sortAttribute === col.sortAttribute\n \"\n >\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'ASC'\"\n >\n <foehn-icon-chevron-up></foehn-icon-chevron-up>\n </span>\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'DESC'\"\n >\n <foehn-icon-chevron-down></foehn-icon-chevron-down>\n </span>\n </ng-container>\n </a>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <td\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id + '-' + index\"\n >\n <ng-container *ngIf=\"!!col.isImportant\">\n <span\n *ngIf=\"col.isImportant(item)\"\n class=\"cell-vertical-align-middle\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"30\"\n style=\"color: var(--red)\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z\"\n />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!col.routerLinkGetter\">\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n class=\"cell-vertical-align-middle\"\n ></span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.routerLinkGetter\">\n <a\n [routerLink]=\"col.routerLinkGetter(item)\"\n queryParamsHandling=\"merge\"\n class=\"cell-vertical-align-middle\"\n >\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n ></span>\n </a>\n </ng-container>\n </td>\n </tr>\n <tr *ngIf=\"!filteredList.length\">\n <td [colSpan]=\"columnsConfiguration.length\">\n <div class=\"w-100 text-center\">Aucun r\u00E9sultat</div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;-webkit-text-decoration-line:none;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;-webkit-text-decoration-line:none;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:#ffbf47}.cell-vertical-align-middle{vertical-align:middle}\n"], components: [{ type: i1.FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up" }, { type: i2.FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down" }, { type: i3.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: i4.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "fromDictionary": i7.SdkDictionaryPipe } });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnTableComponent, decorators: [{
115
+ type: Component,
116
+ args: [{
117
+ selector: 'foehn-table',
118
+ templateUrl: './foehn-table.component.html',
119
+ styleUrls: ['./foehn-table.component.css']
120
+ }]
121
+ }], propDecorators: { itemsPerPage: [{
122
+ type: Input
123
+ }], id: [{
124
+ type: Input
125
+ }], previousLabel: [{
126
+ type: Input
127
+ }], nextLabel: [{
128
+ type: Input
129
+ }], totalElements: [{
130
+ type: Input
131
+ }], fixedPageCount: [{
132
+ type: Input
133
+ }], columnsConfiguration: [{
134
+ type: Input
135
+ }], pageChange: [{
136
+ type: Output
137
+ }], sort: [{
138
+ type: Input
139
+ }], sortChange: [{
140
+ type: Output
141
+ }],
142
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
143
+ trackByFn: [{
144
+ type: Input
145
+ }], list: [{
146
+ type: Input
147
+ }] } });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXRhYmxlL2ZvZWhuLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi10YWJsZS9mb2Vobi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdULE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFLdkIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFvQixFQUFXLEVBQUUsQ0FDdEQsQ0FBQyxDQUNHLENBQUMsTUFBTTtJQUNQLENBQUMsTUFBTSxDQUFDLFlBQVk7SUFDcEIsTUFBTSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsWUFBWSxDQUMvQyxDQUFDO0FBT04sTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9JLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBR2xCLE9BQUUsR0FBRyxhQUFhLENBQUM7UUFHbkIsa0JBQWEsR0FBRyxXQUFXLENBQUM7UUFHNUIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQVl0QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFNM0QsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFFM0MsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsaUJBQVksR0FBYyxFQUFFLENBQUM7UUFLN0IsNkRBQTZEO1FBQzdELGNBQVMsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFhLEVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQztLQTRHL0Q7SUExR0csSUFDSSxJQUFJLENBQUMsSUFBZTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRUQs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QUFjO3NCQURiLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsTUFBTTtnQkFJUCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxNQUFNOztRQVVQLDZEQUE2RDtRQUM3RCxTQUFTO3NCQUZSLEtBQUs7Z0JBS0YsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2VoblRhYmxlUGFnZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi9mb2Vobi10YWJsZS1wYWdlLWNoYW5nZS1ldmVudCc7XG5pbXBvcnQgeyBGb2VoblRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZm9laG4tdGFibGUtY29sdW1uLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgVGFibGVTb3J0IH0gZnJvbSAnLi90YWJsZVNvcnQnO1xuXG5jb25zdCBoYXNJbnB1dENoYW5nZWQgPSAoY2hhbmdlOiBTaW1wbGVDaGFuZ2UpOiBib29sZWFuID0+XG4gICAgIShcbiAgICAgICAgIWNoYW5nZSB8fFxuICAgICAgICAhY2hhbmdlLmN1cnJlbnRWYWx1ZSB8fFxuICAgICAgICBjaGFuZ2UucHJldmlvdXNWYWx1ZSA9PT0gY2hhbmdlLmN1cnJlbnRWYWx1ZVxuICAgICk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9laG4tdGFibGUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpXG4gICAgaXRlbXNQZXJQYWdlID0gMTA7XG5cbiAgICBASW5wdXQoKVxuICAgIGlkID0gJ2ZvZWhuLXRhYmxlJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHJldmlvdXNMYWJlbCA9ICdQcsOpY8OpZGVudCc7XG5cbiAgICBASW5wdXQoKVxuICAgIG5leHRMYWJlbCA9ICdTdWl2YW50JztcblxuICAgIEBJbnB1dCgpXG4gICAgdG90YWxFbGVtZW50czogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBmaXhlZFBhZ2VDb3VudDogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBjb2x1bW5zQ29uZmlndXJhdGlvbjogRm9laG5UYWJsZUNvbHVtbkNvbmZpZ3VyYXRpb248dW5rbm93bj5bXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZvZWhuVGFibGVQYWdlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNvcnQ6IFRhYmxlU29ydDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlU29ydD4oKTtcblxuICAgIGN1cnJlbnRQYWdlID0gMTtcblxuICAgIGZpbHRlcmVkTGlzdDogdW5rbm93bltdID0gW107XG5cbiAgICBwcml2YXRlIF9saXN0OiB1bmtub3duW107XG5cbiAgICBASW5wdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB0cmFja0J5Rm4gPSAoaW5kZXg6IG51bWJlciwgaXRlbTogdW5rbm93bik6IG51bWJlciA9PiBpbmRleDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpc3QobGlzdDogdW5rbm93bltdKSB7XG4gICAgICAgIHRoaXMuX2xpc3QgPSBsaXN0O1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbXNQZXJQYWdlQ2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLml0ZW1zUGVyUGFnZTtcbiAgICAgICAgY29uc3QgbGlzdENoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5saXN0O1xuICAgICAgICBjb25zdCBmaXhlZFBhZ2VDb3VudENoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5maXhlZFBhZ2VDb3VudDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhaGFzSW5wdXRDaGFuZ2VkKGl0ZW1zUGVyUGFnZUNoYW5nZSkgJiZcbiAgICAgICAgICAgICFoYXNJbnB1dENoYW5nZWQobGlzdENoYW5nZSkgJiZcbiAgICAgICAgICAgICFoYXNJbnB1dENoYW5nZWQoZml4ZWRQYWdlQ291bnRDaGFuZ2UpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5idWlsZEZpbHRlcmVkTGlzdCgpO1xuICAgIH1cblxuICAgIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UgLSAxO1xuICAgICAgICB0aGlzLmJ1aWxkRmlsdGVyZWRMaXN0KCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5uZXh0KHtcbiAgICAgICAgICAgIHByZXZpb3VzUGFnZTogdGhpcy5jdXJyZW50UGFnZSArIDEsXG4gICAgICAgICAgICBjdXJyZW50UGFnZTogdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgIHBhZ2VDb3VudDogdGhpcy5wYWdlc0NvdW50KClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFzUHJldmlvdXNQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA+IDE7XG4gICAgfVxuXG4gICAgbmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlICsgMTtcbiAgICAgICAgdGhpcy5idWlsZEZpbHRlcmVkTGlzdCgpO1xuXG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5uZXh0KHtcbiAgICAgICAgICAgIHByZXZpb3VzUGFnZTogdGhpcy5jdXJyZW50UGFnZSAtIDEsXG4gICAgICAgICAgICBjdXJyZW50UGFnZTogdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgIHBhZ2VDb3VudDogdGhpcy5wYWdlc0NvdW50KClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFzTmV4dFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlIDwgdGhpcy5wYWdlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgc2hvd1BhZ2UocGFnZTogbnVtYmVyLCBlbWl0UGFnZUNoYW5nZUV2ZW50OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPT09IHBhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgICAgICB0aGlzLmJ1aWxkRmlsdGVyZWRMaXN0KCk7XG5cbiAgICAgICAgaWYgKGVtaXRQYWdlQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZUNoYW5nZS5uZXh0KHtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1BhZ2UsXG4gICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgICAgICAgICAgcGFnZUNvdW50OiB0aGlzLnBhZ2VzQ291bnQoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYWdlc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIGlmICghIXRoaXMuZml4ZWRQYWdlQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpeGVkUGFnZUNvdW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3RcbiAgICAgICAgICAgID8gTWF0aC5jZWlsKHRoaXMuX2xpc3QubGVuZ3RoIC8gdGhpcy5pdGVtc1BlclBhZ2UpXG4gICAgICAgICAgICA6IDA7XG4gICAgfVxuXG4gICAgdHJpZ2dlclNvcnQoc29ydEF0dHJpYnV0ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCBzb3J0RGlyZWN0aW9uOiAnREVTQycgfCAnQVNDJyA9ICdERVNDJztcbiAgICAgICAgaWYgKHRoaXMuc29ydC5zb3J0QXR0cmlidXRlID09PSBzb3J0QXR0cmlidXRlKSB7XG4gICAgICAgICAgICBzb3J0RGlyZWN0aW9uID0gdGhpcy5zb3J0LnNvcnREaXJlY3Rpb24gPT09ICdERVNDJyA/ICdBU0MnIDogJ0RFU0MnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zb3J0Q2hhbmdlLm5leHQoe1xuICAgICAgICAgICAgc29ydERpcmVjdGlvbixcbiAgICAgICAgICAgIHNvcnRBdHRyaWJ1dGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEZpbHRlcmVkTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhdGhpcy5maXhlZFBhZ2VDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZExpc3QgPSB0aGlzLl9saXN0O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VFeGlzdHMgPVxuICAgICAgICAgICAgKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMuaXRlbXNQZXJQYWdlIDw9IHRoaXMuX2xpc3QubGVuZ3RoO1xuICAgICAgICBpZiAoIWN1cnJlbnRQYWdlRXhpc3RzKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFydCA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZExpc3QgPSB0aGlzLl9saXN0XG4gICAgICAgICAgICA/IHRoaXMuX2xpc3Quc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgdGhpcy5pdGVtc1BlclBhZ2UpXG4gICAgICAgICAgICA6IFtdO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIiBbaWRdPVwiaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDxoMiAqbmdJZj1cIiEhdG90YWxFbGVtZW50cyAmJiB0b3RhbEVsZW1lbnRzID09PSAxXCI+XG4gICAgICAgICAgICB7eyAnbGlzdC5zZWFyY2gtY3JpdGVyaWEudG90YWxFbGVtZW50cy4xJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxoMiAqbmdJZj1cIiEhdG90YWxFbGVtZW50cyAmJiB0b3RhbEVsZW1lbnRzICE9PSAxXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdsaXN0LnNlYXJjaC1jcml0ZXJpYS50b3RhbEVsZW1lbnRzJ1xuICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5OiB7IHRvdGFsOiB0b3RhbEVsZW1lbnRzLnRvU3RyaW5nKCkgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgPC9oMj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGFibGUtcmVzcG9uc2l2ZVwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ob3ZlclwiPlxuICAgICAgICAgICAgPHRoZWFkIGNsYXNzPVwidmQtYmctcGF0dGVybi1iYXJzLWdyYXlcIj5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGU9XCJjb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiY29sLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2wuc29ydEF0dHJpYnV0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2wuY29sdW1uTGFiZWxLZXkgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhY29sLnNvcnRBdHRyaWJ1dGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtdGV4dC10aGluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyU29ydChjb2wuc29ydEF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RyaWVyIHBhciAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2wuY29sdW1uTGFiZWxLZXkgfCBmcm9tRGljdGlvbmFyeSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbC5jb2x1bW5MYWJlbEtleSB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQuc29ydEF0dHJpYnV0ZSA9PT0gY29sLnNvcnRBdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnQuc29ydERpcmVjdGlvbiA9PT0gJ0FTQydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tdXA+PC9mb2Vobi1pY29uLWNoZXZyb24tdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0LnNvcnREaXJlY3Rpb24gPT09ICdERVNDJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tY2hldnJvbi1kb3duPjwvZm9laG4taWNvbi1jaGV2cm9uLWRvd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIGZpbHRlcmVkTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUZuXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImNvbC5pZCArICctJyArIGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhY29sLmlzSW1wb3J0YW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2wuaXNJbXBvcnRhbnQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNlbGwtdmVydGljYWwtYWxpZ24tbWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1yZWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1leGNsYW1hdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuMDAyIDExYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMHpNNy4xIDQuOTk1YS45MDUuOTA1IDAgMSAxIDEuOCAwbC0uMzUgMy41MDdhLjU1My41NTMgMCAwIDEtMS4xIDBMNy4xIDQuOTk1elwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2wucm91dGVyTGlua0dldHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiY29sLnZhbHVlR2V0dGVyKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsLXZlcnRpY2FsLWFsaWduLW1pZGRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFjb2wucm91dGVyTGlua0dldHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImNvbC5yb3V0ZXJMaW5rR2V0dGVyKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsLXZlcnRpY2FsLWFsaWduLW1pZGRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJjb2wudmFsdWVHZXR0ZXIoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiIWZpbHRlcmVkTGlzdC5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIFtjb2xTcGFuXT1cImNvbHVtbnNDb25maWd1cmF0aW9uLmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyXCI+QXVjdW4gcsOpc3VsdGF0PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gcC0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLW1kLTMgY29sLXNtLTYgY29sLXhzLTZcIj5cbiAgICAgICAgICAgICAgICA8bmF2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNQcmV2aW91c1BhZ2UoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2l0ZW0gdmQtcGFnaW5hdGlvbl9faXRlbS0tcHJldmlvdXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tbGluayB2ZC1wYWdpbmF0aW9uX19saW5rIGJ0bi1uby1leHRyYSB2ZC1wYWdpbmF0aW9uX19saW5rLXJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tbGVmdD48L2ZvZWhuLWljb24tY2hldnJvbi1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJldmlvdXNMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGN1cnJlbnRQYWdlIC0gMSB9fSBzdXIge3sgcGFnZXNDb3VudCgpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC1tZC0zIGNvbC1zbS02IGNvbC14cy02XCI+XG4gICAgICAgICAgICAgICAgPG5hdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZkLXBhZ2luYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUGFnaW5hdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTmV4dFBhZ2UoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2l0ZW0gdmQtcGFnaW5hdGlvbl9faXRlbS0tbmV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1saW5rIHZkLXBhZ2luYXRpb25fX2xpbmsgYnRuLW5vLWV4dHJhIHZkLXBhZ2luYXRpb25fX2xpbmstcmVzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBuZXh0TGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+PC9mb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY3VycmVudFBhZ2UgKyAxIH19IHN1ciB7eyBwYWdlc0NvdW50KCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19