@decaf-ts/for-nest 0.11.2-refactor.3 → 0.11.2-refactor.5

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 (40) hide show
  1. package/README.md +273 -1
  2. package/dist/for-nest.cjs +111 -346
  3. package/dist/for-nest.js +115 -349
  4. package/lib/cjs/controllers.cjs +4 -6
  5. package/lib/cjs/decaf-model/DecafModelModule.cjs +7 -2
  6. package/lib/cjs/decaf-model/FromModelController.cjs +210 -346
  7. package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs +2 -2
  8. package/lib/cjs/decaf-model/decorators/utils.cjs +4 -3
  9. package/lib/cjs/decaf-model/utils.cjs +10 -4
  10. package/lib/cjs/decorators.cjs +4 -3
  11. package/lib/cjs/events-module/utils.cjs +2 -2
  12. package/lib/cjs/factory/NestBootstraper.cjs +3 -4
  13. package/lib/cjs/index.cjs +3 -3
  14. package/lib/cjs/request/DecafRequestContext.cjs +2 -3
  15. package/lib/cjs/request/DecafResponseInterceptor.cjs +5 -3
  16. package/lib/cjs/swagger-types.cjs +2 -2
  17. package/lib/cjs/types.cjs +2 -2
  18. package/lib/cjs/webhooks/DecafWebhookModule.cjs +3 -2
  19. package/lib/cjs/webhooks/controllers.cjs +50 -55
  20. package/lib/esm/controllers.js +3 -5
  21. package/lib/esm/decaf-model/DecafModelModule.js +6 -1
  22. package/lib/esm/decaf-model/FromModelController.js +212 -348
  23. package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js +1 -1
  24. package/lib/esm/decaf-model/decorators/utils.js +3 -2
  25. package/lib/esm/decaf-model/utils.js +9 -3
  26. package/lib/esm/decorators.js +3 -2
  27. package/lib/esm/events-module/utils.js +1 -1
  28. package/lib/esm/factory/NestBootstraper.js +2 -3
  29. package/lib/esm/index.js +3 -3
  30. package/lib/esm/request/DecafRequestContext.js +1 -2
  31. package/lib/esm/request/DecafResponseInterceptor.js +4 -2
  32. package/lib/esm/swagger-types.js +1 -1
  33. package/lib/esm/types.js +1 -1
  34. package/lib/esm/webhooks/DecafWebhookModule.js +2 -1
  35. package/lib/esm/webhooks/controllers.js +49 -54
  36. package/lib/types/decaf-model/FromModelController.d.cts +3 -11
  37. package/lib/types/decaf-model/FromModelController.d.mts +3 -11
  38. package/lib/types/index.d.cts +3 -3
  39. package/lib/types/index.d.mts +3 -3
  40. package/package.json +7 -1
@@ -100,5 +100,5 @@ function resolveBlockTarget(verb, path) {
100
100
  }
101
101
  return undefined;
102
102
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpT3BlcmF0aW9uRnJvbU1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RlY2FmLW1vZGVsL2RlY29yYXRvcnMvQXBpT3BlcmF0aW9uRnJvbU1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQVksTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGFBQWEsR0FFZCxNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtCQUFrQixJQUFJLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkQ7Ozs7Ozs7R0FPRztBQUNIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGdCQUF1QyxFQUN2QyxJQUFlLEVBQ2YsSUFBYTtJQUViLE1BQU0sVUFBVSxHQUdaO1FBQ0YsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7UUFDOUIsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7UUFDbEMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7UUFDaEMsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFDcEMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7S0FDdkMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLE9BQU8sTUFBTTtRQUNYLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsSUFBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDMUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztZQUNsRCxDQUFDLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFDRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxnQkFBdUMsRUFDdkMsSUFBZSxFQUNmLElBQWE7SUFFYixNQUFNLFVBQVUsR0FHWjtRQUNGLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7UUFDMUMsSUFBSSxFQUFFLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztRQUM5QyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO1FBQzVDLEtBQUssRUFBRSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7UUFDaEQsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQztLQUNuRCxDQUFDO0lBRUYsTUFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2pFLE9BQU8sTUFBTTtRQUNYLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsSUFBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDMUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixFQUFFLE1BQWEsRUFBRSxNQUFhLENBQUM7WUFDeEUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBQ0QsU0FBUyxrQkFBa0IsQ0FDekIsSUFBZSxFQUNmLElBQWE7SUFFYixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sZ0JBQWdCLEdBQTJCO1FBQy9DLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPO1FBQzVDLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDLE9BQU87UUFDdEQsYUFBYSxFQUFFLHFCQUFxQixDQUFDLElBQUk7UUFDekMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLElBQUk7UUFDekMsdUJBQXVCLEVBQUUscUJBQXFCLENBQUMsV0FBVztRQUMxRCxvQkFBb0IsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPO1FBQ25ELHlCQUF5QixFQUFFLFdBQVc7UUFDdEMsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUMsUUFBUTtRQUNoRCxjQUFjLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUM1QyxjQUFjLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUM1QyxjQUFjLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUM1QyxjQUFjLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUM1QyxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxXQUFXO1FBQ3RELGdCQUFnQixFQUFFLHFCQUFxQixDQUFDLFFBQVE7S0FDakQsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXBwbHksIE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBBcGlFeGNsdWRlRW5kcG9pbnQgfSBmcm9tIFwiQG5lc3Rqcy9zd2FnZ2VyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIE9wZXJhdGlvbktleXMsXG4gIENydWRPcGVyYXRpb25zLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE1vZGVsQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBEZWxldGUsIEdldCwgUGF0Y2gsIFBvc3QsIFB1dCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuXG5pbXBvcnQgeyBpc09wZXJhdGlvbkJsb2NrZWQgYXMgY29yZUlzT3BlcmF0aW9uQmxvY2tlZCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBIdHRwVmVyYnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gQ1JVRCBvcGVyYXRpb24gaXMgYmxvY2tlZCBmb3IgYSBzcGVjaWZpYyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgb3BlcmF0aW9uLWJsb2NraW5nIGhhbmRsZXIgbWV0YWRhdGEgc3RvcmVkIG9uIHRoZSBwcm92aWRlZCBtb2RlbCBjb25zdHJ1Y3RvciAodW5kZXIgYE9wZXJhdGlvbktleXMuUkVGTEVDVCArIE9wZXJhdGlvbktleXMuQkxPQ0tgKSwgZXhlY3V0ZXMgaXQgKGlmIHByZXNlbnQpIHdpdGggaXRzIHBlcnNpc3RlZCBhcmd1bWVudHMgcGx1cyB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbiwgYW5kIHJldHVybnMgd2hldGhlciB0aGUgb3BlcmF0aW9uIGlzIGJsb2NrZWQuIElmIG5vIGhhbmRsZXIgZXhpc3RzLCB0aGUgb3BlcmF0aW9uIGlzIGNvbnNpZGVyZWQgYWxsb3dlZCAocmV0dXJucyBgZmFsc2VgKS5cbiAqIEBwYXJhbSB7TW9kZWxDb25zdHJ1Y3Rvcjxhbnk+fSBNb2RlbENvbnN0cnVjdG9yIC0gVGhlIHRhcmdldCBtb2RlbCBjb25zdHJ1Y3RvciB3aG9zZSBtZXRhZGF0YSBtYXkgaW5jbHVkZSBhIGJsb2NraW5nIGhhbmRsZXIuXG4gKiBAcGFyYW0ge0NydWRPcGVyYXRpb25zfSBvcCAtIFRoZSBDUlVEIG9wZXJhdGlvbiB0byBldmFsdWF0ZSAoZS5nLiwgYE9wZXJhdGlvbktleXMuQ1JFQVRFYCwgYE9wZXJhdGlvbktleXMuUkVBRGAsIGBPcGVyYXRpb25LZXlzLlVQREFURWAsIGBPcGVyYXRpb25LZXlzLkRFTEVURWApLlxuICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBleHBsaWNpdGx5IGJsb2NrZWQgYnkgdGhlIG1vZGVsJ3MgaGFuZGxlcjsgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKiBAZnVuY3Rpb24gaXNPcGVyYXRpb25CbG9ja2VkXG4gKi9cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmRpdGlvbmFsbHkgYXBwbGllcyBhbiBIVFRQIG1ldGhvZCBkZWNvcmF0b3IgZm9yIGEgZ2l2ZW4gbW9kZWwgYW5kIHZlcmIsIGhpZGluZyB0aGUgZW5kcG9pbnQgaW4gU3dhZ2dlciAoYW5kIG5vdCByZWdpc3RlcmluZyB0aGUgcm91dGUpIHdoZW4gdGhlIG1vZGVsIGJsb2NrcyB0aGF0IENSVUQgb3BlcmF0aW9uLlxuICogQHN1bW1hcnkgTWFwcyBhbiBIVFRQIHZlcmIgdG8gaXRzIGNvcnJlc3BvbmRpbmcgYENydWRPcGVyYXRpb25zYCBrZXkgYW5kIE5lc3QgSFRUUCBkZWNvcmF0b3IgKGBAR2V0YCwgYEBQb3N0YCwgZXRjLikuIEl0IGNoZWNrcyBgaXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIGNydWRPcClgIGFuZCwgaWYgYmxvY2tlZCwgYXBwbGllcyBvbmx5IGBAQXBpRXhjbHVkZUVuZHBvaW50KClgIChTd2FnZ2VyLWhpZGRlbiwgbm8gTmVzdCByb3V0ZSkuIElmIHBlcm1pdHRlZCwgaXQgYXBwbGllcyB0aGUgYXBwcm9wcmlhdGUgSFRUUCBkZWNvcmF0b3Igd2l0aCB0aGUgb3B0aW9uYWwgYHBhdGhgLlxuICogQHBhcmFtIHtNb2RlbENvbnN0cnVjdG9yPGFueT59IE1vZGVsQ29uc3RydWN0b3IgLSBUaGUgbW9kZWwgY29uc3RydWN0b3IgdXNlZCB0byByZXNvbHZlIG9wZXJhdGlvbi1ibG9ja2luZyBydWxlcy5cbiAqIEBwYXJhbSB7SHR0cFZlcmJzfSB2ZXJiIC0gVGhlIEhUVFAgdmVyYiB0byBtYXAgKGUuZy4sIGBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJQQVRDSFwiIHwgXCJERUxFVEVcImApLlxuICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoXSAtIE9wdGlvbmFsIHJvdXRlIHBhdGggcGFzc2VkIHRocm91Z2ggdG8gdGhlIGNvcnJlc3BvbmRpbmcgTmVzdCBIVFRQIG1ldGhvZCBkZWNvcmF0b3IuXG4gKiBAcmV0dXJuIHtNZXRob2REZWNvcmF0b3J9IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IGVpdGhlciBleGNsdWRlcyB0aGUgZW5kcG9pbnQgZnJvbSBTd2FnZ2VyIChhbmQgcm91dGUgcmVnaXN0cmF0aW9uKSBvciBhcHBsaWVzIHRoZSBjb3JyZWN0IEhUVFAgZGVjb3JhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQXBpT3BlcmF0aW9uRnJvbU1vZGVsKFxuICBNb2RlbENvbnN0cnVjdG9yOiBNb2RlbENvbnN0cnVjdG9yPGFueT4sXG4gIHZlcmI6IEh0dHBWZXJicyxcbiAgcGF0aD86IHN0cmluZ1xuKTogTWV0aG9kRGVjb3JhdG9yIHtcbiAgY29uc3QgaHR0cFRvQ3J1ZDogUmVjb3JkPFxuICAgIEh0dHBWZXJicyxcbiAgICBbQ3J1ZE9wZXJhdGlvbnMsIChwYXRoPzogc3RyaW5nKSA9PiBNZXRob2REZWNvcmF0b3JdXG4gID4gPSB7XG4gICAgR0VUOiBbT3BlcmF0aW9uS2V5cy5SRUFELCBHZXRdLFxuICAgIFBPU1Q6IFtPcGVyYXRpb25LZXlzLkNSRUFURSwgUG9zdF0sXG4gICAgUFVUOiBbT3BlcmF0aW9uS2V5cy5VUERBVEUsIFB1dF0sXG4gICAgUEFUQ0g6IFtPcGVyYXRpb25LZXlzLlVQREFURSwgUGF0Y2hdLFxuICAgIERFTEVURTogW09wZXJhdGlvbktleXMuREVMRVRFLCBEZWxldGVdLFxuICB9O1xuXG4gIGNvbnN0IFtjcnVkT3AsIEh0dHBNZXRob2REZWNvcmF0b3JdID0gaHR0cFRvQ3J1ZFt2ZXJiXTtcbiAgY29uc3QgdGFyZ2V0ID0gcmVzb2x2ZUJsb2NrVGFyZ2V0KHZlcmIsIHBhdGgpO1xuICByZXR1cm4gdGFyZ2V0XG4gICAgPyBjb3JlSXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIHRhcmdldC5raW5kIGFzIGFueSwgdGFyZ2V0LnZhbHVlKVxuICAgICAgPyBhcHBseShBcGlFeGNsdWRlRW5kcG9pbnQoKSlcbiAgICAgIDogYXBwbHkoSHR0cE1ldGhvZERlY29yYXRvcihwYXRoKSlcbiAgICA6IGNvcmVJc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgY3J1ZE9wKVxuICAgID8gYXBwbHkoQXBpRXhjbHVkZUVuZHBvaW50KCkpXG4gICAgOiBhcHBseShIdHRwTWV0aG9kRGVjb3JhdG9yKHBhdGgpKTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmRpdGlvbmFsbHkgYXBwbGllcyBhbiBIVFRQIG1ldGhvZCBkZWNvcmF0b3IgZm9yIGEgZ2l2ZW4gbW9kZWwgYW5kIHZlcmIsIGhpZGluZyB0aGUgZW5kcG9pbnQgaW4gU3dhZ2dlciAoYW5kIG5vdCByZWdpc3RlcmluZyB0aGUgcm91dGUpIHdoZW4gdGhlIG1vZGVsIGJsb2NrcyB0aGF0IENSVUQgb3BlcmF0aW9uLlxuICogQHN1bW1hcnkgTWFwcyBhbiBIVFRQIHZlcmIgdG8gaXRzIGNvcnJlc3BvbmRpbmcgYENydWRPcGVyYXRpb25zYCBrZXkgYW5kIE5lc3QgSFRUUCBkZWNvcmF0b3IgKGBAR2V0YCwgYEBQb3N0YCwgZXRjLikuIEl0IGNoZWNrcyBgaXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIGNydWRPcClgIGFuZCwgaWYgYmxvY2tlZCwgYXBwbGllcyBvbmx5IGBAQXBpRXhjbHVkZUVuZHBvaW50KClgIChTd2FnZ2VyLWhpZGRlbiwgbm8gTmVzdCByb3V0ZSkuIElmIHBlcm1pdHRlZCwgaXQgYXBwbGllcyB0aGUgYXBwcm9wcmlhdGUgSFRUUCBkZWNvcmF0b3Igd2l0aCB0aGUgb3B0aW9uYWwgYHBhdGhgLlxuICogQHBhcmFtIHtNb2RlbENvbnN0cnVjdG9yPGFueT59IE1vZGVsQ29uc3RydWN0b3IgLSBUaGUgbW9kZWwgY29uc3RydWN0b3IgdXNlZCB0byByZXNvbHZlIG9wZXJhdGlvbi1ibG9ja2luZyBydWxlcy5cbiAqIEBwYXJhbSB7SHR0cFZlcmJzfSB2ZXJiIC0gVGhlIEhUVFAgdmVyYiB0byBtYXAgKGUuZy4sIGBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJQQVRDSFwiIHwgXCJERUxFVEVcImApLlxuICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoXSAtIE9wdGlvbmFsIHJvdXRlIHBhdGggcGFzc2VkIHRocm91Z2ggdG8gdGhlIGNvcnJlc3BvbmRpbmcgTmVzdCBIVFRQIG1ldGhvZCBkZWNvcmF0b3IuXG4gKiBAcmV0dXJuIHtNZXRob2REZWNvcmF0b3J9IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IGVpdGhlciBleGNsdWRlcyB0aGUgZW5kcG9pbnQgZnJvbSBTd2FnZ2VyIChhbmQgcm91dGUgcmVnaXN0cmF0aW9uKSBvciBhcHBsaWVzIHRoZSBjb3JyZWN0IEhUVFAgZGVjb3JhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQnVsa0FwaU9wZXJhdGlvbkZyb21Nb2RlbChcbiAgTW9kZWxDb25zdHJ1Y3RvcjogTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+LFxuICB2ZXJiOiBIdHRwVmVyYnMsXG4gIHBhdGg/OiBzdHJpbmdcbik6IE1ldGhvZERlY29yYXRvciB7XG4gIGNvbnN0IGh0dHBUb0NydWQ6IFJlY29yZDxcbiAgICBIdHRwVmVyYnMsXG4gICAgW0J1bGtDcnVkT3BlcmF0aW9uS2V5cywgKHBhdGg/OiBzdHJpbmcpID0+IE1ldGhvZERlY29yYXRvcl1cbiAgPiA9IHtcbiAgICBHRVQ6IFtCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEwsIEdldF0sXG4gICAgUE9TVDogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLCBQb3N0XSxcbiAgICBQVVQ6IFtCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCwgUHV0XSxcbiAgICBQQVRDSDogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCBQYXRjaF0sXG4gICAgREVMRVRFOiBbQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsIERlbGV0ZV0sXG4gIH07XG5cbiAgY29uc3QgW2NydWRPcCwgSHR0cE1ldGhvZERlY29yYXRvcl0gPSBodHRwVG9DcnVkW3ZlcmJdO1xuICBjb25zdCB0YXJnZXQgPSBwYXRoID8gcmVzb2x2ZUJsb2NrVGFyZ2V0KHZlcmIsIHBhdGgpIDogdW5kZWZpbmVkO1xuICByZXR1cm4gdGFyZ2V0XG4gICAgPyBjb3JlSXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIHRhcmdldC5raW5kIGFzIGFueSwgdGFyZ2V0LnZhbHVlKVxuICAgICAgPyBhcHBseShBcGlFeGNsdWRlRW5kcG9pbnQoKSlcbiAgICAgIDogYXBwbHkoSHR0cE1ldGhvZERlY29yYXRvcihwYXRoKSlcbiAgICA6IGNvcmVJc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgXCJidWxrXCIgYXMgYW55LCBjcnVkT3AgYXMgYW55KVxuICAgID8gYXBwbHkoQXBpRXhjbHVkZUVuZHBvaW50KCkpXG4gICAgOiBhcHBseShIdHRwTWV0aG9kRGVjb3JhdG9yKHBhdGgpKTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVCbG9ja1RhcmdldChcbiAgdmVyYjogSHR0cFZlcmJzLFxuICBwYXRoPzogc3RyaW5nXG4pOiB7IGtpbmQ6IFwiY3J1ZFwiIHwgXCJzdGF0ZW1lbnRcIiB8IFwicXVlcnlcIiB8IFwiYnVsa1wiOyB2YWx1ZTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICBpZiAoIXBhdGgpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBhdGgucmVwbGFjZSgvXlxcLyt8XFwvKyQvZywgXCJcIik7XG4gIGNvbnN0IHN0YXRlbWVudFRhcmdldHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgXCJsaXN0QnkvOmtleVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSxcbiAgICBcInBhZ2luYXRlQnkvOmtleS86cGFnZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWSxcbiAgICBcImZpbmQvOnZhbHVlXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5ELFxuICAgIFwicGFnZS86dmFsdWVcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0UsXG4gICAgXCJmaW5kT25lQnkvOmtleS86dmFsdWVcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZLFxuICAgIFwiZmluZEJ5LzprZXkvOnZhbHVlXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX0JZLFxuICAgIFwic3RhdGVtZW50LzptZXRob2QvKmFyZ3NcIjogXCJzdGF0ZW1lbnRcIixcbiAgICBcImNvdW50T2YvOmZpZWxkXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRixcbiAgICBcIm1heE9mLzpmaWVsZFwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUFYX09GLFxuICAgIFwibWluT2YvOmZpZWxkXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsXG4gICAgXCJhdmdPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRixcbiAgICBcInN1bU9mLzpmaWVsZFwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuU1VNX09GLFxuICAgIFwiZGlzdGluY3RPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLFxuICAgIFwiZ3JvdXBPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLFxuICB9O1xuXG4gIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoXCJxdWVyeS9cIikpIHtcbiAgICByZXR1cm4geyBraW5kOiBcInF1ZXJ5XCIsIHZhbHVlOiBub3JtYWxpemVkLnJlcGxhY2UoL15xdWVyeVxcLy8sIFwiXCIpIH07XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRWYWx1ZSA9IHN0YXRlbWVudFRhcmdldHNbbm9ybWFsaXplZF07XG4gIGlmIChzdGF0ZW1lbnRWYWx1ZSkge1xuICAgIHJldHVybiB7IGtpbmQ6IFwic3RhdGVtZW50XCIsIHZhbHVlOiBzdGF0ZW1lbnRWYWx1ZSB9O1xuICB9XG5cbiAgaWYgKHZlcmIgPT09IFwiR0VUXCIgJiYgbm9ybWFsaXplZCA9PT0gXCJcIikge1xuICAgIHJldHVybiB7IGtpbmQ6IFwiY3J1ZFwiLCB2YWx1ZTogT3BlcmF0aW9uS2V5cy5SRUFEIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpT3BlcmF0aW9uRnJvbU1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQXBpT3BlcmF0aW9uRnJvbU1vZGVsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBc0JBLHNEQWlCQztBQVNELDhEQWlCQztBQWpFRCxxREFBNkM7QUFDN0MsNkNBQXFEO0FBQ3JELDJEQUFnRjtBQUNoRiwyQ0FBK0Q7QUFDL0QseUNBQThFO0FBQzlFLHlDQUF1RDtBQUN2RDs7Ozs7OztHQU9HO0FBQ0g7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxJQUFJO0lBQzlELE1BQU0sVUFBVSxHQUFHO1FBQ2YsR0FBRyxFQUFFLENBQUMsNkJBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBRyxDQUFDO1FBQzlCLElBQUksRUFBRSxDQUFDLDZCQUFhLENBQUMsTUFBTSxFQUFFLGFBQUksQ0FBQztRQUNsQyxHQUFHLEVBQUUsQ0FBQyw2QkFBYSxDQUFDLE1BQU0sRUFBRSxZQUFHLENBQUM7UUFDaEMsS0FBSyxFQUFFLENBQUMsNkJBQWEsQ0FBQyxNQUFNLEVBQUUsY0FBSyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxDQUFDLDZCQUFhLENBQUMsTUFBTSxFQUFFLGVBQU0sQ0FBQztLQUN6QyxDQUFDO0lBQ0YsTUFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsT0FBTyxNQUFNO1FBQ1QsQ0FBQyxDQUFDLElBQUEseUJBQXNCLEVBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxJQUFBLGtCQUFLLEVBQUMsSUFBQSw0QkFBa0IsR0FBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJ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QztJQUNGLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsNkJBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUNELHNqYkFBc2piIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXBwbHkgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEFwaUV4Y2x1ZGVFbmRwb2ludCB9IGZyb20gXCJAbmVzdGpzL3N3YWdnZXJcIjtcbmltcG9ydCB7IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cywgT3BlcmF0aW9uS2V5cywgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IERlbGV0ZSwgR2V0LCBQYXRjaCwgUG9zdCwgUHV0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBpc09wZXJhdGlvbkJsb2NrZWQgYXMgY29yZUlzT3BlcmF0aW9uQmxvY2tlZCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gQ1JVRCBvcGVyYXRpb24gaXMgYmxvY2tlZCBmb3IgYSBzcGVjaWZpYyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgb3BlcmF0aW9uLWJsb2NraW5nIGhhbmRsZXIgbWV0YWRhdGEgc3RvcmVkIG9uIHRoZSBwcm92aWRlZCBtb2RlbCBjb25zdHJ1Y3RvciAodW5kZXIgYE9wZXJhdGlvbktleXMuUkVGTEVDVCArIE9wZXJhdGlvbktleXMuQkxPQ0tgKSwgZXhlY3V0ZXMgaXQgKGlmIHByZXNlbnQpIHdpdGggaXRzIHBlcnNpc3RlZCBhcmd1bWVudHMgcGx1cyB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbiwgYW5kIHJldHVybnMgd2hldGhlciB0aGUgb3BlcmF0aW9uIGlzIGJsb2NrZWQuIElmIG5vIGhhbmRsZXIgZXhpc3RzLCB0aGUgb3BlcmF0aW9uIGlzIGNvbnNpZGVyZWQgYWxsb3dlZCAocmV0dXJucyBgZmFsc2VgKS5cbiAqIEBwYXJhbSB7TW9kZWxDb25zdHJ1Y3Rvcjxhbnk+fSBNb2RlbENvbnN0cnVjdG9yIC0gVGhlIHRhcmdldCBtb2RlbCBjb25zdHJ1Y3RvciB3aG9zZSBtZXRhZGF0YSBtYXkgaW5jbHVkZSBhIGJsb2NraW5nIGhhbmRsZXIuXG4gKiBAcGFyYW0ge0NydWRPcGVyYXRpb25zfSBvcCAtIFRoZSBDUlVEIG9wZXJhdGlvbiB0byBldmFsdWF0ZSAoZS5nLiwgYE9wZXJhdGlvbktleXMuQ1JFQVRFYCwgYE9wZXJhdGlvbktleXMuUkVBRGAsIGBPcGVyYXRpb25LZXlzLlVQREFURWAsIGBPcGVyYXRpb25LZXlzLkRFTEVURWApLlxuICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBleHBsaWNpdGx5IGJsb2NrZWQgYnkgdGhlIG1vZGVsJ3MgaGFuZGxlcjsgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKiBAZnVuY3Rpb24gaXNPcGVyYXRpb25CbG9ja2VkXG4gKi9cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmRpdGlvbmFsbHkgYXBwbGllcyBhbiBIVFRQIG1ldGhvZCBkZWNvcmF0b3IgZm9yIGEgZ2l2ZW4gbW9kZWwgYW5kIHZlcmIsIGhpZGluZyB0aGUgZW5kcG9pbnQgaW4gU3dhZ2dlciAoYW5kIG5vdCByZWdpc3RlcmluZyB0aGUgcm91dGUpIHdoZW4gdGhlIG1vZGVsIGJsb2NrcyB0aGF0IENSVUQgb3BlcmF0aW9uLlxuICogQHN1bW1hcnkgTWFwcyBhbiBIVFRQIHZlcmIgdG8gaXRzIGNvcnJlc3BvbmRpbmcgYENydWRPcGVyYXRpb25zYCBrZXkgYW5kIE5lc3QgSFRUUCBkZWNvcmF0b3IgKGBAR2V0YCwgYEBQb3N0YCwgZXRjLikuIEl0IGNoZWNrcyBgaXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIGNydWRPcClgIGFuZCwgaWYgYmxvY2tlZCwgYXBwbGllcyBvbmx5IGBAQXBpRXhjbHVkZUVuZHBvaW50KClgIChTd2FnZ2VyLWhpZGRlbiwgbm8gTmVzdCByb3V0ZSkuIElmIHBlcm1pdHRlZCwgaXQgYXBwbGllcyB0aGUgYXBwcm9wcmlhdGUgSFRUUCBkZWNvcmF0b3Igd2l0aCB0aGUgb3B0aW9uYWwgYHBhdGhgLlxuICogQHBhcmFtIHtNb2RlbENvbnN0cnVjdG9yPGFueT59IE1vZGVsQ29uc3RydWN0b3IgLSBUaGUgbW9kZWwgY29uc3RydWN0b3IgdXNlZCB0byByZXNvbHZlIG9wZXJhdGlvbi1ibG9ja2luZyBydWxlcy5cbiAqIEBwYXJhbSB7SHR0cFZlcmJzfSB2ZXJiIC0gVGhlIEhUVFAgdmVyYiB0byBtYXAgKGUuZy4sIGBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJQQVRDSFwiIHwgXCJERUxFVEVcImApLlxuICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoXSAtIE9wdGlvbmFsIHJvdXRlIHBhdGggcGFzc2VkIHRocm91Z2ggdG8gdGhlIGNvcnJlc3BvbmRpbmcgTmVzdCBIVFRQIG1ldGhvZCBkZWNvcmF0b3IuXG4gKiBAcmV0dXJuIHtNZXRob2REZWNvcmF0b3J9IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IGVpdGhlciBleGNsdWRlcyB0aGUgZW5kcG9pbnQgZnJvbSBTd2FnZ2VyIChhbmQgcm91dGUgcmVnaXN0cmF0aW9uKSBvciBhcHBsaWVzIHRoZSBjb3JyZWN0IEhUVFAgZGVjb3JhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQXBpT3BlcmF0aW9uRnJvbU1vZGVsKE1vZGVsQ29uc3RydWN0b3IsIHZlcmIsIHBhdGgpIHtcbiAgICBjb25zdCBodHRwVG9DcnVkID0ge1xuICAgICAgICBHRVQ6IFtPcGVyYXRpb25LZXlzLlJFQUQsIEdldF0sXG4gICAgICAgIFBPU1Q6IFtPcGVyYXRpb25LZXlzLkNSRUFURSwgUG9zdF0sXG4gICAgICAgIFBVVDogW09wZXJhdGlvbktleXMuVVBEQVRFLCBQdXRdLFxuICAgICAgICBQQVRDSDogW09wZXJhdGlvbktleXMuVVBEQVRFLCBQYXRjaF0sXG4gICAgICAgIERFTEVURTogW09wZXJhdGlvbktleXMuREVMRVRFLCBEZWxldGVdLFxuICAgIH07XG4gICAgY29uc3QgW2NydWRPcCwgSHR0cE1ldGhvZERlY29yYXRvcl0gPSBodHRwVG9DcnVkW3ZlcmJdO1xuICAgIGNvbnN0IHRhcmdldCA9IHJlc29sdmVCbG9ja1RhcmdldCh2ZXJiLCBwYXRoKTtcbiAgICByZXR1cm4gdGFyZ2V0XG4gICAgICAgID8gY29yZUlzT3BlcmF0aW9uQmxvY2tlZChNb2RlbENvbnN0cnVjdG9yLCB0YXJnZXQua2luZCwgdGFyZ2V0LnZhbHVlKVxuICAgICAgICAgICAgPyBhcHBseShBcGlFeGNsdWRlRW5kcG9pbnQoKSlcbiAgICAgICAgICAgIDogYXBwbHkoSHR0cE1ldGhvZERlY29yYXRvcihwYXRoKSlcbiAgICAgICAgOiBjb3JlSXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIGNydWRPcClcbiAgICAgICAgICAgID8gYXBwbHkoQXBpRXhjbHVkZUVuZHBvaW50KCkpXG4gICAgICAgICAgICA6IGFwcGx5KEh0dHBNZXRob2REZWNvcmF0b3IocGF0aCkpO1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uZGl0aW9uYWxseSBhcHBsaWVzIGFuIEhUVFAgbWV0aG9kIGRlY29yYXRvciBmb3IgYSBnaXZlbiBtb2RlbCBhbmQgdmVyYiwgaGlkaW5nIHRoZSBlbmRwb2ludCBpbiBTd2FnZ2VyIChhbmQgbm90IHJlZ2lzdGVyaW5nIHRoZSByb3V0ZSkgd2hlbiB0aGUgbW9kZWwgYmxvY2tzIHRoYXQgQ1JVRCBvcGVyYXRpb24uXG4gKiBAc3VtbWFyeSBNYXBzIGFuIEhUVFAgdmVyYiB0byBpdHMgY29ycmVzcG9uZGluZyBgQ3J1ZE9wZXJhdGlvbnNgIGtleSBhbmQgTmVzdCBIVFRQIGRlY29yYXRvciAoYEBHZXRgLCBgQFBvc3RgLCBldGMuKS4gSXQgY2hlY2tzIGBpc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgY3J1ZE9wKWAgYW5kLCBpZiBibG9ja2VkLCBhcHBsaWVzIG9ubHkgYEBBcGlFeGNsdWRlRW5kcG9pbnQoKWAgKFN3YWdnZXItaGlkZGVuLCBubyBOZXN0IHJvdXRlKS4gSWYgcGVybWl0dGVkLCBpdCBhcHBsaWVzIHRoZSBhcHByb3ByaWF0ZSBIVFRQIGRlY29yYXRvciB3aXRoIHRoZSBvcHRpb25hbCBgcGF0aGAuXG4gKiBAcGFyYW0ge01vZGVsQ29uc3RydWN0b3I8YW55Pn0gTW9kZWxDb25zdHJ1Y3RvciAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIHRvIHJlc29sdmUgb3BlcmF0aW9uLWJsb2NraW5nIHJ1bGVzLlxuICogQHBhcmFtIHtIdHRwVmVyYnN9IHZlcmIgLSBUaGUgSFRUUCB2ZXJiIHRvIG1hcCAoZS5nLiwgYFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIlBBVENIXCIgfCBcIkRFTEVURVwiYCkuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3BhdGhdIC0gT3B0aW9uYWwgcm91dGUgcGF0aCBwYXNzZWQgdGhyb3VnaCB0byB0aGUgY29ycmVzcG9uZGluZyBOZXN0IEhUVFAgbWV0aG9kIGRlY29yYXRvci5cbiAqIEByZXR1cm4ge01ldGhvZERlY29yYXRvcn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgZWl0aGVyIGV4Y2x1ZGVzIHRoZSBlbmRwb2ludCBmcm9tIFN3YWdnZXIgKGFuZCByb3V0ZSByZWdpc3RyYXRpb24pIG9yIGFwcGxpZXMgdGhlIGNvcnJlY3QgSFRUUCBkZWNvcmF0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBCdWxrQXBpT3BlcmF0aW9uRnJvbU1vZGVsKE1vZGVsQ29uc3RydWN0b3IsIHZlcmIsIHBhdGgpIHtcbiAgICBjb25zdCBodHRwVG9DcnVkID0ge1xuICAgICAgICBHRVQ6IFtCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEwsIEdldF0sXG4gICAgICAgIFBPU1Q6IFtCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCwgUG9zdF0sXG4gICAgICAgIFBVVDogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCBQdXRdLFxuICAgICAgICBQQVRDSDogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCBQYXRjaF0sXG4gICAgICAgIERFTEVURTogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5ERUxFVEVfQUxMLCBEZWxldGVdLFxuICAgIH07XG4gICAgY29uc3QgW2NydWRPcCwgSHR0cE1ldGhvZERlY29yYXRvcl0gPSBodHRwVG9DcnVkW3ZlcmJdO1xuICAgIGNvbnN0IHRhcmdldCA9IHBhdGggPyByZXNvbHZlQmxvY2tUYXJnZXQodmVyYiwgcGF0aCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRhcmdldFxuICAgICAgICA/IGNvcmVJc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgdGFyZ2V0LmtpbmQsIHRhcmdldC52YWx1ZSlcbiAgICAgICAgICAgID8gYXBwbHkoQXBpRXhjbHVkZUVuZHBvaW50KCkpXG4gICAgICAgICAgICA6IGFwcGx5KEh0dHBNZXRob2REZWNvcmF0b3IocGF0aCkpXG4gICAgICAgIDogY29yZUlzT3BlcmF0aW9uQmxvY2tlZChNb2RlbENvbnN0cnVjdG9yLCBcImJ1bGtcIiwgY3J1ZE9wKVxuICAgICAgICAgICAgPyBhcHBseShBcGlFeGNsdWRlRW5kcG9pbnQoKSlcbiAgICAgICAgICAgIDogYXBwbHkoSHR0cE1ldGhvZERlY29yYXRvcihwYXRoKSk7XG59XG5mdW5jdGlvbiByZXNvbHZlQmxvY2tUYXJnZXQodmVyYiwgcGF0aCkge1xuICAgIGlmICghcGF0aClcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBub3JtYWxpemVkID0gcGF0aC5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCBcIlwiKTtcbiAgICBjb25zdCBzdGF0ZW1lbnRUYXJnZXRzID0ge1xuICAgICAgICBcImxpc3RCeS86a2V5XCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5MSVNUX0JZLFxuICAgICAgICBcInBhZ2luYXRlQnkvOmtleS86cGFnZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWSxcbiAgICAgICAgXCJmaW5kLzp2YWx1ZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORCxcbiAgICAgICAgXCJwYWdlLzp2YWx1ZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRSxcbiAgICAgICAgXCJmaW5kT25lQnkvOmtleS86dmFsdWVcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZLFxuICAgICAgICBcImZpbmRCeS86a2V5Lzp2YWx1ZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORF9CWSxcbiAgICAgICAgXCJzdGF0ZW1lbnQvOm1ldGhvZC8qYXJnc1wiOiBcInN0YXRlbWVudFwiLFxuICAgICAgICBcImNvdW50T2YvOmZpZWxkXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRixcbiAgICAgICAgXCJtYXhPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1BWF9PRixcbiAgICAgICAgXCJtaW5PZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1JTl9PRixcbiAgICAgICAgXCJhdmdPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRixcbiAgICAgICAgXCJzdW1PZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRixcbiAgICAgICAgXCJkaXN0aW5jdE9mLzpmaWVsZFwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuRElTVElOQ1RfT0YsXG4gICAgICAgIFwiZ3JvdXBPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLFxuICAgIH07XG4gICAgaWYgKG5vcm1hbGl6ZWQuc3RhcnRzV2l0aChcInF1ZXJ5L1wiKSkge1xuICAgICAgICByZXR1cm4geyBraW5kOiBcInF1ZXJ5XCIsIHZhbHVlOiBub3JtYWxpemVkLnJlcGxhY2UoL15xdWVyeVxcLy8sIFwiXCIpIH07XG4gICAgfVxuICAgIGNvbnN0IHN0YXRlbWVudFZhbHVlID0gc3RhdGVtZW50VGFyZ2V0c1tub3JtYWxpemVkXTtcbiAgICBpZiAoc3RhdGVtZW50VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHsga2luZDogXCJzdGF0ZW1lbnRcIiwgdmFsdWU6IHN0YXRlbWVudFZhbHVlIH07XG4gICAgfVxuICAgIGlmICh2ZXJiID09PSBcIkdFVFwiICYmIG5vcm1hbGl6ZWQgPT09IFwiXCIpIHtcbiAgICAgICAgcmV0dXJuIHsga2luZDogXCJjcnVkXCIsIHZhbHVlOiBPcGVyYXRpb25LZXlzLlJFQUQgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVFYQnBUM0JsY21GMGFXOXVSbkp2YlUxdlpHVnNMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJSbFkyRm1MVzF2WkdWc0wyUmxZMjl5WVhSdmNuTXZRWEJwVDNCbGNtRjBhVzl1Um5KdmJVMXZaR1ZzTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVmtzVFVGQlRTeHpRa0ZCYzBJc1EwRkJRenRCUVVOMlJDeFBRVUZQTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVOeVJDeFBRVUZQTEVWQlEwd3NjVUpCUVhGQ0xFVkJRM0pDTEdGQlFXRXNSMEZGWkN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlJXcERMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkZMMFFzVDBGQlR5eEZRVUZGTEd0Q1FVRnJRaXhKUVVGSkxITkNRVUZ6UWl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZET1VVc1QwRkJUeXhGUVVGRkxIRkNRVUZ4UWl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZIZGtRN096czdPenM3UjBGUFJ6dEJRVU5JT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzY1VKQlFYRkNMRU5CUTI1RExHZENRVUYxUXl4RlFVTjJReXhKUVVGbExFVkJRMllzU1VGQllUdEpRVVZpTEUxQlFVMHNWVUZCVlN4SFFVZGFPMUZCUTBZc1IwRkJSeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNN1VVRkRPVUlzU1VGQlNTeEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU03VVVGRGJFTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1lVRkJZU3hEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTTdVVUZEYUVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNN1VVRkRjRU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU03UzBGRGRrTXNRMEZCUXp0SlFVVkdMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEZGtRc1RVRkJUU3hOUVVGTkxFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6bERMRTlCUVU4c1RVRkJUVHRSUVVOWUxFTkJRVU1zUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJWeXhGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZETVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xbEJRemRDTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF5eERRVUZETEhOQ1FVRnpRaXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRTFCUVUwc1EwRkJRenRaUVVOc1JDeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEVOQlFVTTdXVUZETjBJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzWkRMRU5CUVVNN1FVRkRSRHM3T3pzN096dEhRVTlITzBGQlEwZ3NUVUZCVFN4VlFVRlZMSGxDUVVGNVFpeERRVU4yUXl4blFrRkJkVU1zUlVGRGRrTXNTVUZCWlN4RlFVTm1MRWxCUVdFN1NVRkZZaXhOUVVGTkxGVkJRVlVzUjBGSFdqdFJRVU5HTEVkQlFVY3NSVUZCUlN4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZGQlFWRXNSVUZCUlN4SFFVRkhMRU5CUVVNN1VVRkRNVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXp0UlFVTTVReXhIUVVGSExFVkJRVVVzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhWUVVGVkxFVkJRVVVzUjBGQlJ5eERRVUZETzFGQlF6VkRMRXRCUVVzc1JVRkJSU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRlZCUVZVc1JVRkJSU3hMUVVGTExFTkJRVU03VVVGRGFFUXNUVUZCVFN4RlFVRkZMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNWVUZCVlN4RlFVRkZMRTFCUVUwc1EwRkJRenRMUVVOdVJDeERRVUZETzBsQlJVWXNUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSU3h0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU4yUkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8wbEJRMnBGTEU5QlFVOHNUVUZCVFR0UlFVTllMRU5CUVVNc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCVnl4RlFVRkZMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03V1VGRE1VVXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMWxCUXpkQ0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJReXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEUxQlFXRXNSVUZCUlN4TlFVRmhMRU5CUVVNN1dVRkRlRVVzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUlVGQlJTeERRVUZETzFsQlF6ZENMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4yUXl4RFFVRkRPMEZCUTBRc1UwRkJVeXhyUWtGQmEwSXNRMEZEZWtJc1NVRkJaU3hGUVVObUxFbEJRV0U3U1VGRllpeEpRVUZKTEVOQlFVTXNTVUZCU1R0UlFVRkZMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJSVFZDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUTJ4RUxFMUJRVTBzWjBKQlFXZENMRWRCUVRKQ08xRkJReTlETEdGQlFXRXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTzFGQlF6VkRMSFZDUVVGMVFpeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExFOUJRVTg3VVVGRGRFUXNZVUZCWVN4RlFVRkZMSEZDUVVGeFFpeERRVUZETEVsQlFVazdVVUZEZWtNc1lVRkJZU3hGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrN1VVRkRla01zZFVKQlFYVkNMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNWMEZCVnp0UlFVTXhSQ3h2UWtGQmIwSXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTzFGQlEyNUVMSGxDUVVGNVFpeEZRVUZGTEZkQlFWYzdVVUZEZEVNc1owSkJRV2RDTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVVVGQlVUdFJRVU5vUkN4alFVRmpMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFR0UlFVTTFReXhqUVVGakxFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1RVRkJUVHRSUVVNMVF5eGpRVUZqTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVFVGQlRUdFJRVU0xUXl4alFVRmpMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFR0UlFVTTFReXh0UWtGQmJVSXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFhRVUZYTzFGQlEzUkVMR2RDUVVGblFpeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExGRkJRVkU3UzBGRGFrUXNRMEZCUXp0SlFVVkdMRWxCUVVrc1ZVRkJWU3hEUVVGRExGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRPMUZCUTNCRExFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRM1JGTEVOQlFVTTdTVUZGUkN4TlFVRk5MR05CUVdNc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVOd1JDeEpRVUZKTEdOQlFXTXNSVUZCUlN4RFFVRkRPMUZCUTI1Q0xFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNWMEZCVnl4RlFVRkZMRXRCUVVzc1JVRkJSU3hqUVVGakxFVkJRVVVzUTBGQlF6dEpRVU4wUkN4RFFVRkRPMGxCUlVRc1NVRkJTU3hKUVVGSkxFdEJRVXNzUzBGQlN5eEpRVUZKTEZWQlFWVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJRenRSUVVONFF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTNKRUxFTkJRVU03U1VGRlJDeFBRVUZQTEZOQlFWTXNRMEZCUXp0QlFVTnVRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dZWEJ3Ykhrc0lFMWxkR0ZrWVhSaElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtaV052Y21GMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCQmNHbEZlR05zZFdSbFJXNWtjRzlwYm5RZ2ZTQm1jbTl0SUZ3aVFHNWxjM1JxY3k5emQyRm5aMlZ5WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNc1hHNGdJRTl3WlhKaGRHbHZia3RsZVhNc1hHNGdJRU55ZFdSUGNHVnlZWFJwYjI1ekxGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJpTFdSbFkyOXlZWFJ2Y25OY0lqdGNibWx0Y0c5eWRDQjdJRTF2WkdWc1EyOXVjM1J5ZFdOMGIzSWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnZjaTEyWVd4cFpHRjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2V5QkVaV3hsZEdVc0lFZGxkQ3dnVUdGMFkyZ3NJRkJ2YzNRc0lGQjFkQ0I5SUdaeWIyMGdYQ0pBYm1WemRHcHpMMk52YlcxdmJsd2lPMXh1WEc1cGJYQnZjblFnZXlCcGMwOXdaWEpoZEdsdmJrSnNiMk5yWldRZ1lYTWdZMjl5WlVselQzQmxjbUYwYVc5dVFteHZZMnRsWkNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJJZEhSd1ZtVnlZbk1nZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJFWlhSbGNtMXBibVZ6SUdsbUlHRWdaMmwyWlc0Z1ExSlZSQ0J2Y0dWeVlYUnBiMjRnYVhNZ1lteHZZMnRsWkNCbWIzSWdZU0J6Y0dWamFXWnBZeUJ0YjJSbGJDQmpiMjV6ZEhKMVkzUnZjaTVjYmlBcUlFQnpkVzF0WVhKNUlGSmxkSEpwWlhabGN5QjBhR1VnYjNCbGNtRjBhVzl1TFdKc2IyTnJhVzVuSUdoaGJtUnNaWElnYldWMFlXUmhkR0VnYzNSdmNtVmtJRzl1SUhSb1pTQndjbTkyYVdSbFpDQnRiMlJsYkNCamIyNXpkSEoxWTNSdmNpQW9kVzVrWlhJZ1lFOXdaWEpoZEdsdmJrdGxlWE11VWtWR1RFVkRWQ0FySUU5d1pYSmhkR2x2Ymt0bGVYTXVRa3hQUTB0Z0tTd2daWGhsWTNWMFpYTWdhWFFnS0dsbUlIQnlaWE5sYm5RcElIZHBkR2dnYVhSeklIQmxjbk5wYzNSbFpDQmhjbWQxYldWdWRITWdjR3gxY3lCMGFHVWdjbVZ4ZFdWemRHVmtJRzl3WlhKaGRHbHZiaXdnWVc1a0lISmxkSFZ5Ym5NZ2QyaGxkR2hsY2lCMGFHVWdiM0JsY21GMGFXOXVJR2x6SUdKc2IyTnJaV1F1SUVsbUlHNXZJR2hoYm1Sc1pYSWdaWGhwYzNSekxDQjBhR1VnYjNCbGNtRjBhVzl1SUdseklHTnZibk5wWkdWeVpXUWdZV3hzYjNkbFpDQW9jbVYwZFhKdWN5QmdabUZzYzJWZ0tTNWNiaUFxSUVCd1lYSmhiU0I3VFc5a1pXeERiMjV6ZEhKMVkzUnZjanhoYm5rK2ZTQk5iMlJsYkVOdmJuTjBjblZqZEc5eUlDMGdWR2hsSUhSaGNtZGxkQ0J0YjJSbGJDQmpiMjV6ZEhKMVkzUnZjaUIzYUc5elpTQnRaWFJoWkdGMFlTQnRZWGtnYVc1amJIVmtaU0JoSUdKc2IyTnJhVzVuSUdoaGJtUnNaWEl1WEc0Z0tpQkFjR0Z5WVcwZ2UwTnlkV1JQY0dWeVlYUnBiMjV6ZlNCdmNDQXRJRlJvWlNCRFVsVkVJRzl3WlhKaGRHbHZiaUIwYnlCbGRtRnNkV0YwWlNBb1pTNW5MaXdnWUU5d1pYSmhkR2x2Ymt0bGVYTXVRMUpGUVZSRllDd2dZRTl3WlhKaGRHbHZia3RsZVhNdVVrVkJSR0FzSUdCUGNHVnlZWFJwYjI1TFpYbHpMbFZRUkVGVVJXQXNJR0JQY0dWeVlYUnBiMjVMWlhsekxrUkZURVZVUldBcExseHVJQ29nUUhKbGRIVnliaUI3WW05dmJHVmhibjBnWUhSeWRXVmdJSGRvWlc0Z2RHaGxJRzl3WlhKaGRHbHZiaUJwY3lCbGVIQnNhV05wZEd4NUlHSnNiMk5yWldRZ1lua2dkR2hsSUcxdlpHVnNKM01nYUdGdVpHeGxjanNnYjNSb1pYSjNhWE5sSUdCbVlXeHpaV0F1WEc0Z0tpQkFablZ1WTNScGIyNGdhWE5QY0dWeVlYUnBiMjVDYkc5amEyVmtYRzRnS2k5Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ym1ScGRHbHZibUZzYkhrZ1lYQndiR2xsY3lCaGJpQklWRlJRSUcxbGRHaHZaQ0JrWldOdmNtRjBiM0lnWm05eUlHRWdaMmwyWlc0Z2JXOWtaV3dnWVc1a0lIWmxjbUlzSUdocFpHbHVaeUIwYUdVZ1pXNWtjRzlwYm5RZ2FXNGdVM2RoWjJkbGNpQW9ZVzVrSUc1dmRDQnlaV2RwYzNSbGNtbHVaeUIwYUdVZ2NtOTFkR1VwSUhkb1pXNGdkR2hsSUcxdlpHVnNJR0pzYjJOcmN5QjBhR0YwSUVOU1ZVUWdiM0JsY21GMGFXOXVMbHh1SUNvZ1FITjFiVzFoY25rZ1RXRndjeUJoYmlCSVZGUlFJSFpsY21JZ2RHOGdhWFJ6SUdOdmNuSmxjM0J2Ym1ScGJtY2dZRU55ZFdSUGNHVnlZWFJwYjI1ellDQnJaWGtnWVc1a0lFNWxjM1FnU0ZSVVVDQmtaV052Y21GMGIzSWdLR0JBUjJWMFlDd2dZRUJRYjNOMFlDd2daWFJqTGlrdUlFbDBJR05vWldOcmN5QmdhWE5QY0dWeVlYUnBiMjVDYkc5amEyVmtLRTF2WkdWc1EyOXVjM1J5ZFdOMGIzSXNJR055ZFdSUGNDbGdJR0Z1WkN3Z2FXWWdZbXh2WTJ0bFpDd2dZWEJ3YkdsbGN5QnZibXg1SUdCQVFYQnBSWGhqYkhWa1pVVnVaSEJ2YVc1MEtDbGdJQ2hUZDJGbloyVnlMV2hwWkdSbGJpd2dibThnVG1WemRDQnliM1YwWlNrdUlFbG1JSEJsY20xcGRIUmxaQ3dnYVhRZ1lYQndiR2xsY3lCMGFHVWdZWEJ3Y205d2NtbGhkR1VnU0ZSVVVDQmtaV052Y21GMGIzSWdkMmwwYUNCMGFHVWdiM0IwYVc5dVlXd2dZSEJoZEdoZ0xseHVJQ29nUUhCaGNtRnRJSHROYjJSbGJFTnZibk4wY25WamRHOXlQR0Z1ZVQ1OUlFMXZaR1ZzUTI5dWMzUnlkV04wYjNJZ0xTQlVhR1VnYlc5a1pXd2dZMjl1YzNSeWRXTjBiM0lnZFhObFpDQjBieUJ5WlhOdmJIWmxJRzl3WlhKaGRHbHZiaTFpYkc5amEybHVaeUJ5ZFd4bGN5NWNiaUFxSUVCd1lYSmhiU0I3U0hSMGNGWmxjbUp6ZlNCMlpYSmlJQzBnVkdobElFaFVWRkFnZG1WeVlpQjBieUJ0WVhBZ0tHVXVaeTRzSUdCY0lrZEZWRndpSUh3Z1hDSlFUMU5VWENJZ2ZDQmNJbEJWVkZ3aUlId2dYQ0pRUVZSRFNGd2lJSHdnWENKRVJVeEZWRVZjSW1BcExseHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR3WVhSb1hTQXRJRTl3ZEdsdmJtRnNJSEp2ZFhSbElIQmhkR2dnY0dGemMyVmtJSFJvY205MVoyZ2dkRzhnZEdobElHTnZjbkpsYzNCdmJtUnBibWNnVG1WemRDQklWRlJRSUcxbGRHaHZaQ0JrWldOdmNtRjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdE5aWFJvYjJSRVpXTnZjbUYwYjNKOUlFRWdiV1YwYUc5a0lHUmxZMjl5WVhSdmNpQjBhR0YwSUdWcGRHaGxjaUJsZUdOc2RXUmxjeUIwYUdVZ1pXNWtjRzlwYm5RZ1puSnZiU0JUZDJGbloyVnlJQ2hoYm1RZ2NtOTFkR1VnY21WbmFYTjBjbUYwYVc5dUtTQnZjaUJoY0hCc2FXVnpJSFJvWlNCamIzSnlaV04wSUVoVVZGQWdaR1ZqYjNKaGRHOXlMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1FYQnBUM0JsY21GMGFXOXVSbkp2YlUxdlpHVnNLRnh1SUNCTmIyUmxiRU52Ym5OMGNuVmpkRzl5T2lCTmIyUmxiRU52Ym5OMGNuVmpkRzl5UEdGdWVUNHNYRzRnSUhabGNtSTZJRWgwZEhCV1pYSmljeXhjYmlBZ2NHRjBhRDg2SUhOMGNtbHVaMXh1S1RvZ1RXVjBhRzlrUkdWamIzSmhkRzl5SUh0Y2JpQWdZMjl1YzNRZ2FIUjBjRlJ2UTNKMVpEb2dVbVZqYjNKa1BGeHVJQ0FnSUVoMGRIQldaWEppY3l4Y2JpQWdJQ0JiUTNKMVpFOXdaWEpoZEdsdmJuTXNJQ2h3WVhSb1B6b2djM1J5YVc1bktTQTlQaUJOWlhSb2IyUkVaV052Y21GMGIzSmRYRzRnSUQ0Z1BTQjdYRzRnSUNBZ1IwVlVPaUJiVDNCbGNtRjBhVzl1UzJWNWN5NVNSVUZFTENCSFpYUmRMRnh1SUNBZ0lGQlBVMVE2SUZ0UGNHVnlZWFJwYjI1TFpYbHpMa05TUlVGVVJTd2dVRzl6ZEYwc1hHNGdJQ0FnVUZWVU9pQmJUM0JsY21GMGFXOXVTMlY1Y3k1VlVFUkJWRVVzSUZCMWRGMHNYRzRnSUNBZ1VFRlVRMGc2SUZ0UGNHVnlZWFJwYjI1TFpYbHpMbFZRUkVGVVJTd2dVR0YwWTJoZExGeHVJQ0FnSUVSRlRFVlVSVG9nVzA5d1pYSmhkR2x2Ymt0bGVYTXVSRVZNUlZSRkxDQkVaV3hsZEdWZExGeHVJQ0I5TzF4dVhHNGdJR052Ym5OMElGdGpjblZrVDNBc0lFaDBkSEJOWlhSb2IyUkVaV052Y21GMGIzSmRJRDBnYUhSMGNGUnZRM0oxWkZ0MlpYSmlYVHRjYmlBZ1kyOXVjM1FnZEdGeVoyVjBJRDBnY21WemIyeDJaVUpzYjJOclZHRnlaMlYwS0habGNtSXNJSEJoZEdncE8xeHVJQ0J5WlhSMWNtNGdkR0Z5WjJWMFhHNGdJQ0FnUHlCamIzSmxTWE5QY0dWeVlYUnBiMjVDYkc5amEyVmtLRTF2WkdWc1EyOXVjM1J5ZFdOMGIzSXNJSFJoY21kbGRDNXJhVzVrSUdGeklHRnVlU3dnZEdGeVoyVjBMblpoYkhWbEtWeHVJQ0FnSUNBZ1B5QmhjSEJzZVNoQmNHbEZlR05zZFdSbFJXNWtjRzlwYm5Rb0tTbGNiaUFnSUNBZ0lEb2dZWEJ3Ykhrb1NIUjBjRTFsZEdodlpFUmxZMjl5WVhSdmNpaHdZWFJvS1NsY2JpQWdJQ0E2SUdOdmNtVkpjMDl3WlhKaGRHbHZia0pzYjJOclpXUW9UVzlrWld4RGIyNXpkSEoxWTNSdmNpd2dZM0oxWkU5d0tWeHVJQ0FnSUQ4Z1lYQndiSGtvUVhCcFJYaGpiSFZrWlVWdVpIQnZhVzUwS0NrcFhHNGdJQ0FnT2lCaGNIQnNlU2hJZEhSd1RXVjBhRzlrUkdWamIzSmhkRzl5S0hCaGRHZ3BLVHRjYm4xY2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ym1ScGRHbHZibUZzYkhrZ1lYQndiR2xsY3lCaGJpQklWRlJRSUcxbGRHaHZaQ0JrWldOdmNtRjBiM0lnWm05eUlHRWdaMmwyWlc0Z2JXOWtaV3dnWVc1a0lIWmxjbUlzSUdocFpHbHVaeUIwYUdVZ1pXNWtjRzlwYm5RZ2FXNGdVM2RoWjJkbGNpQW9ZVzVrSUc1dmRDQnlaV2RwYzNSbGNtbHVaeUIwYUdVZ2NtOTFkR1VwSUhkb1pXNGdkR2hsSUcxdlpHVnNJR0pzYjJOcmN5QjBhR0YwSUVOU1ZVUWdiM0JsY21GMGFXOXVMbHh1SUNvZ1FITjFiVzFoY25rZ1RXRndjeUJoYmlCSVZGUlFJSFpsY21JZ2RHOGdhWFJ6SUdOdmNuSmxjM0J2Ym1ScGJtY2dZRU55ZFdSUGNHVnlZWFJwYjI1ellDQnJaWGtnWVc1a0lFNWxjM1FnU0ZSVVVDQmtaV052Y21GMGIzSWdLR0JBUjJWMFlDd2dZRUJRYjNOMFlDd2daWFJqTGlrdUlFbDBJR05vWldOcmN5QmdhWE5QY0dWeVlYUnBiMjVDYkc5amEyVmtLRTF2WkdWc1EyOXVjM1J5ZFdOMGIzSXNJR055ZFdSUGNDbGdJR0Z1WkN3Z2FXWWdZbXh2WTJ0bFpDd2dZWEJ3YkdsbGN5QnZibXg1SUdCQVFYQnBSWGhqYkhWa1pVVnVaSEJ2YVc1MEtDbGdJQ2hUZDJGbloyVnlMV2hwWkdSbGJpd2dibThnVG1WemRDQnliM1YwWlNrdUlFbG1JSEJsY20xcGRIUmxaQ3dnYVhRZ1lYQndiR2xsY3lCMGFHVWdZWEJ3Y205d2NtbGhkR1VnU0ZSVVVDQmtaV052Y21GMGIzSWdkMmwwYUNCMGFHVWdiM0IwYVc5dVlXd2dZSEJoZEdoZ0xseHVJQ29nUUhCaGNtRnRJSHROYjJSbGJFTnZibk4wY25WamRHOXlQR0Z1ZVQ1OUlFMXZaR1ZzUTI5dWMzUnlkV04wYjNJZ0xTQlVhR1VnYlc5a1pXd2dZMjl1YzNSeWRXTjBiM0lnZFhObFpDQjBieUJ5WlhOdmJIWmxJRzl3WlhKaGRHbHZiaTFpYkc5amEybHVaeUJ5ZFd4bGN5NWNiaUFxSUVCd1lYSmhiU0I3U0hSMGNGWmxjbUp6ZlNCMlpYSmlJQzBnVkdobElFaFVWRkFnZG1WeVlpQjBieUJ0WVhBZ0tHVXVaeTRzSUdCY0lrZEZWRndpSUh3Z1hDSlFUMU5VWENJZ2ZDQmNJbEJWVkZ3aUlId2dYQ0pRUVZSRFNGd2lJSHdnWENKRVJVeEZWRVZjSW1BcExseHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR3WVhSb1hTQXRJRTl3ZEdsdmJtRnNJSEp2ZFhSbElIQmhkR2dnY0dGemMyVmtJSFJvY205MVoyZ2dkRzhnZEdobElHTnZjbkpsYzNCdmJtUnBibWNnVG1WemRDQklWRlJRSUcxbGRHaHZaQ0JrWldOdmNtRjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdE5aWFJvYjJSRVpXTnZjbUYwYjNKOUlFRWdiV1YwYUc5a0lHUmxZMjl5WVhSdmNpQjBhR0YwSUdWcGRHaGxjaUJsZUdOc2RXUmxjeUIwYUdVZ1pXNWtjRzlwYm5RZ1puSnZiU0JUZDJGbloyVnlJQ2hoYm1RZ2NtOTFkR1VnY21WbmFYTjBjbUYwYVc5dUtTQnZjaUJoY0hCc2FXVnpJSFJvWlNCamIzSnlaV04wSUVoVVZGQWdaR1ZqYjNKaGRHOXlMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1FuVnNhMEZ3YVU5d1pYSmhkR2x2YmtaeWIyMU5iMlJsYkNoY2JpQWdUVzlrWld4RGIyNXpkSEoxWTNSdmNqb2dUVzlrWld4RGIyNXpkSEoxWTNSdmNqeGhibmsrTEZ4dUlDQjJaWEppT2lCSWRIUndWbVZ5WW5Nc1hHNGdJSEJoZEdnL09pQnpkSEpwYm1kY2JpazZJRTFsZEdodlpFUmxZMjl5WVhSdmNpQjdYRzRnSUdOdmJuTjBJR2gwZEhCVWIwTnlkV1E2SUZKbFkyOXlaRHhjYmlBZ0lDQklkSFJ3Vm1WeVluTXNYRzRnSUNBZ1cwSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeXdnS0hCaGRHZy9PaUJ6ZEhKcGJtY3BJRDArSUUxbGRHaHZaRVJsWTI5eVlYUnZjbDFjYmlBZ1BpQTlJSHRjYmlBZ0lDQkhSVlE2SUZ0Q2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTXVVa1ZCUkY5QlRFd3NJRWRsZEYwc1hHNGdJQ0FnVUU5VFZEb2dXMEoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3k1RFVrVkJWRVZmUVV4TUxDQlFiM04wWFN4Y2JpQWdJQ0JRVlZRNklGdENkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE11VlZCRVFWUkZYMEZNVEN3Z1VIVjBYU3hjYmlBZ0lDQlFRVlJEU0RvZ1cwSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeTVWVUVSQlZFVmZRVXhNTENCUVlYUmphRjBzWEc0Z0lDQWdSRVZNUlZSRk9pQmJRblZzYTBOeWRXUlBjR1Z5WVhScGIyNUxaWGx6TGtSRlRFVlVSVjlCVEV3c0lFUmxiR1YwWlYwc1hHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ1cyTnlkV1JQY0N3Z1NIUjBjRTFsZEdodlpFUmxZMjl5WVhSdmNsMGdQU0JvZEhSd1ZHOURjblZrVzNabGNtSmRPMXh1SUNCamIyNXpkQ0IwWVhKblpYUWdQU0J3WVhSb0lEOGdjbVZ6YjJ4MlpVSnNiMk5yVkdGeVoyVjBLSFpsY21Jc0lIQmhkR2dwSURvZ2RXNWtaV1pwYm1Wa08xeHVJQ0J5WlhSMWNtNGdkR0Z5WjJWMFhHNGdJQ0FnUHlCamIzSmxTWE5QY0dWeVlYUnBiMjVDYkc5amEyVmtLRTF2WkdWc1EyOXVjM1J5ZFdOMGIzSXNJSFJoY21kbGRDNXJhVzVrSUdGeklHRnVlU3dnZEdGeVoyVjBMblpoYkhWbEtWeHVJQ0FnSUNBZ1B5QmhjSEJzZVNoQmNHbEZlR05zZFdSbFJXNWtjRzlwYm5Rb0tTbGNiaUFnSUNBZ0lEb2dZWEJ3Ykhrb1NIUjBjRTFsZEdodlpFUmxZMjl5WVhSdmNpaHdZWFJvS1NsY2JpQWdJQ0E2SUdOdmNtVkpjMDl3WlhKaGRHbHZia0pzYjJOclpXUW9UVzlrWld4RGIyNXpkSEoxWTNSdmNpd2dYQ0ppZFd4clhDSWdZWE1nWVc1NUxDQmpjblZrVDNBZ1lYTWdZVzU1S1Z4dUlDQWdJRDhnWVhCd2JIa29RWEJwUlhoamJIVmtaVVZ1WkhCdmFXNTBLQ2twWEc0Z0lDQWdPaUJoY0hCc2VTaElkSFJ3VFdWMGFHOWtSR1ZqYjNKaGRHOXlLSEJoZEdncEtUdGNibjFjYm1aMWJtTjBhVzl1SUhKbGMyOXNkbVZDYkc5amExUmhjbWRsZENoY2JpQWdkbVZ5WWpvZ1NIUjBjRlpsY21KekxGeHVJQ0J3WVhSb1B6b2djM1J5YVc1blhHNHBPaUI3SUd0cGJtUTZJRndpWTNKMVpGd2lJSHdnWENKemRHRjBaVzFsYm5SY0lpQjhJRndpY1hWbGNubGNJaUI4SUZ3aVluVnNhMXdpT3lCMllXeDFaVG9nYzNSeWFXNW5JSDBnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0JwWmlBb0lYQmhkR2dwSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc1Y2JpQWdZMjl1YzNRZ2JtOXliV0ZzYVhwbFpDQTlJSEJoZEdndWNtVndiR0ZqWlNndlhseGNMeXQ4WEZ3dkt5UXZaeXdnWENKY0lpazdYRzRnSUdOdmJuTjBJSE4wWVhSbGJXVnVkRlJoY21kbGRITTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1Wno0Z1BTQjdYRzRnSUNBZ1hDSnNhWE4wUW5rdk9tdGxlVndpT2lCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXVURWxUVkY5Q1dTeGNiaUFnSUNCY0luQmhaMmx1WVhSbFFua3ZPbXRsZVM4NmNHRm5aVndpT2lCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXVVRUZIUlY5Q1dTeGNiaUFnSUNCY0ltWnBibVF2T25aaGJIVmxYQ0k2SUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUdTVTVFTEZ4dUlDQWdJRndpY0dGblpTODZkbUZzZFdWY0lqb2dVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGxCQlIwVXNYRzRnSUNBZ1hDSm1hVzVrVDI1bFFua3ZPbXRsZVM4NmRtRnNkV1ZjSWpvZ1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMa1pKVGtSZlQwNUZYMEpaTEZ4dUlDQWdJRndpWm1sdVpFSjVMenByWlhrdk9uWmhiSFZsWENJNklGQnlaWEJoY21Wa1UzUmhkR1Z0Wlc1MFMyVjVjeTVHU1U1RVgwSlpMRnh1SUNBZ0lGd2ljM1JoZEdWdFpXNTBMenB0WlhSb2IyUXZLbUZ5WjNOY0lqb2dYQ0p6ZEdGMFpXMWxiblJjSWl4Y2JpQWdJQ0JjSW1OdmRXNTBUMll2T21acFpXeGtYQ0k2SUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NURUMVZPVkY5UFJpeGNiaUFnSUNCY0ltMWhlRTltTHpwbWFXVnNaRndpT2lCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXVUVUZZWDA5R0xGeHVJQ0FnSUZ3aWJXbHVUMll2T21acFpXeGtYQ0k2SUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NU5TVTVmVDBZc1hHNGdJQ0FnWENKaGRtZFBaaTg2Wm1sbGJHUmNJam9nVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrRldSMTlQUml4Y2JpQWdJQ0JjSW5OMWJVOW1MenBtYVdWc1pGd2lPaUJRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVUxVk5YMDlHTEZ4dUlDQWdJRndpWkdsemRHbHVZM1JQWmk4NlptbGxiR1JjSWpvZ1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMa1JKVTFSSlRrTlVYMDlHTEZ4dUlDQWdJRndpWjNKdmRYQlBaaTg2Wm1sbGJHUmNJam9nVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrZFNUMVZRWDA5R0xGeHVJQ0I5TzF4dVhHNGdJR2xtSUNodWIzSnRZV3hwZW1Wa0xuTjBZWEowYzFkcGRHZ29YQ0p4ZFdWeWVTOWNJaWtwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdleUJyYVc1a09pQmNJbkYxWlhKNVhDSXNJSFpoYkhWbE9pQnViM0p0WVd4cGVtVmtMbkpsY0d4aFkyVW9MMTV4ZFdWeWVWeGNMeThzSUZ3aVhDSXBJSDA3WEc0Z0lIMWNibHh1SUNCamIyNXpkQ0J6ZEdGMFpXMWxiblJXWVd4MVpTQTlJSE4wWVhSbGJXVnVkRlJoY21kbGRITmJibTl5YldGc2FYcGxaRjA3WEc0Z0lHbG1JQ2h6ZEdGMFpXMWxiblJXWVd4MVpTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCN0lHdHBibVE2SUZ3aWMzUmhkR1Z0Wlc1MFhDSXNJSFpoYkhWbE9pQnpkR0YwWlcxbGJuUldZV3gxWlNCOU8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0habGNtSWdQVDA5SUZ3aVIwVlVYQ0lnSmlZZ2JtOXliV0ZzYVhwbFpDQTlQVDBnWENKY0lpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCN0lHdHBibVE2SUZ3aVkzSjFaRndpTENCMllXeDFaVG9nVDNCbGNtRjBhVzl1UzJWNWN5NVNSVUZFSUgwN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVmVnh1SWwxOSJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpT3BlcmF0aW9uRnJvbU1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RlY2FmLW1vZGVsL2RlY29yYXRvcnMvQXBpT3BlcmF0aW9uRnJvbU1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGFBQWEsR0FFZCxNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtCQUFrQixJQUFJLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkQ7Ozs7Ozs7R0FPRztBQUNIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGdCQUF1QyxFQUN2QyxJQUFlLEVBQ2YsSUFBYTtJQUViLE1BQU0sVUFBVSxHQUdaO1FBQ0YsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7UUFDOUIsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7UUFDbEMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7UUFDaEMsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFDcEMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7S0FDdkMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENB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TTtRQUM1QyxjQUFjLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUM1QyxjQUFjLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUM1QyxjQUFjLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUM1QyxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxXQUFXO1FBQ3RELGdCQUFnQixFQUFFLHFCQUFxQixDQUFDLFFBQVE7S0FDakQsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXBwbHkgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEFwaUV4Y2x1ZGVFbmRwb2ludCB9IGZyb20gXCJAbmVzdGpzL3N3YWdnZXJcIjtcbmltcG9ydCB7XG4gIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyxcbiAgT3BlcmF0aW9uS2V5cyxcbiAgQ3J1ZE9wZXJhdGlvbnMsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTW9kZWxDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IERlbGV0ZSwgR2V0LCBQYXRjaCwgUG9zdCwgUHV0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5cbmltcG9ydCB7IGlzT3BlcmF0aW9uQmxvY2tlZCBhcyBjb3JlSXNPcGVyYXRpb25CbG9ja2VkIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBQcmVwYXJlZFN0YXRlbWVudEtleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEh0dHBWZXJicyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERldGVybWluZXMgaWYgYSBnaXZlbiBDUlVEIG9wZXJhdGlvbiBpcyBibG9ja2VkIGZvciBhIHNwZWNpZmljIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBvcGVyYXRpb24tYmxvY2tpbmcgaGFuZGxlciBtZXRhZGF0YSBzdG9yZWQgb24gdGhlIHByb3ZpZGVkIG1vZGVsIGNvbnN0cnVjdG9yICh1bmRlciBgT3BlcmF0aW9uS2V5cy5SRUZMRUNUICsgT3BlcmF0aW9uS2V5cy5CTE9DS2ApLCBleGVjdXRlcyBpdCAoaWYgcHJlc2VudCkgd2l0aCBpdHMgcGVyc2lzdGVkIGFyZ3VtZW50cyBwbHVzIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uLCBhbmQgcmV0dXJucyB3aGV0aGVyIHRoZSBvcGVyYXRpb24gaXMgYmxvY2tlZC4gSWYgbm8gaGFuZGxlciBleGlzdHMsIHRoZSBvcGVyYXRpb24gaXMgY29uc2lkZXJlZCBhbGxvd2VkIChyZXR1cm5zIGBmYWxzZWApLlxuICogQHBhcmFtIHtNb2RlbENvbnN0cnVjdG9yPGFueT59IE1vZGVsQ29uc3RydWN0b3IgLSBUaGUgdGFyZ2V0IG1vZGVsIGNvbnN0cnVjdG9yIHdob3NlIG1ldGFkYXRhIG1heSBpbmNsdWRlIGEgYmxvY2tpbmcgaGFuZGxlci5cbiAqIEBwYXJhbSB7Q3J1ZE9wZXJhdGlvbnN9IG9wIC0gVGhlIENSVUQgb3BlcmF0aW9uIHRvIGV2YWx1YXRlIChlLmcuLCBgT3BlcmF0aW9uS2V5cy5DUkVBVEVgLCBgT3BlcmF0aW9uS2V5cy5SRUFEYCwgYE9wZXJhdGlvbktleXMuVVBEQVRFYCwgYE9wZXJhdGlvbktleXMuREVMRVRFYCkuXG4gKiBAcmV0dXJuIHtib29sZWFufSBgdHJ1ZWAgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGV4cGxpY2l0bHkgYmxvY2tlZCBieSB0aGUgbW9kZWwncyBoYW5kbGVyOyBvdGhlcndpc2UgYGZhbHNlYC5cbiAqIEBmdW5jdGlvbiBpc09wZXJhdGlvbkJsb2NrZWRcbiAqL1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uZGl0aW9uYWxseSBhcHBsaWVzIGFuIEhUVFAgbWV0aG9kIGRlY29yYXRvciBmb3IgYSBnaXZlbiBtb2RlbCBhbmQgdmVyYiwgaGlkaW5nIHRoZSBlbmRwb2ludCBpbiBTd2FnZ2VyIChhbmQgbm90IHJlZ2lzdGVyaW5nIHRoZSByb3V0ZSkgd2hlbiB0aGUgbW9kZWwgYmxvY2tzIHRoYXQgQ1JVRCBvcGVyYXRpb24uXG4gKiBAc3VtbWFyeSBNYXBzIGFuIEhUVFAgdmVyYiB0byBpdHMgY29ycmVzcG9uZGluZyBgQ3J1ZE9wZXJhdGlvbnNgIGtleSBhbmQgTmVzdCBIVFRQIGRlY29yYXRvciAoYEBHZXRgLCBgQFBvc3RgLCBldGMuKS4gSXQgY2hlY2tzIGBpc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgY3J1ZE9wKWAgYW5kLCBpZiBibG9ja2VkLCBhcHBsaWVzIG9ubHkgYEBBcGlFeGNsdWRlRW5kcG9pbnQoKWAgKFN3YWdnZXItaGlkZGVuLCBubyBOZXN0IHJvdXRlKS4gSWYgcGVybWl0dGVkLCBpdCBhcHBsaWVzIHRoZSBhcHByb3ByaWF0ZSBIVFRQIGRlY29yYXRvciB3aXRoIHRoZSBvcHRpb25hbCBgcGF0aGAuXG4gKiBAcGFyYW0ge01vZGVsQ29uc3RydWN0b3I8YW55Pn0gTW9kZWxDb25zdHJ1Y3RvciAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIHRvIHJlc29sdmUgb3BlcmF0aW9uLWJsb2NraW5nIHJ1bGVzLlxuICogQHBhcmFtIHtIdHRwVmVyYnN9IHZlcmIgLSBUaGUgSFRUUCB2ZXJiIHRvIG1hcCAoZS5nLiwgYFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIlBBVENIXCIgfCBcIkRFTEVURVwiYCkuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3BhdGhdIC0gT3B0aW9uYWwgcm91dGUgcGF0aCBwYXNzZWQgdGhyb3VnaCB0byB0aGUgY29ycmVzcG9uZGluZyBOZXN0IEhUVFAgbWV0aG9kIGRlY29yYXRvci5cbiAqIEByZXR1cm4ge01ldGhvZERlY29yYXRvcn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgZWl0aGVyIGV4Y2x1ZGVzIHRoZSBlbmRwb2ludCBmcm9tIFN3YWdnZXIgKGFuZCByb3V0ZSByZWdpc3RyYXRpb24pIG9yIGFwcGxpZXMgdGhlIGNvcnJlY3QgSFRUUCBkZWNvcmF0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBBcGlPcGVyYXRpb25Gcm9tTW9kZWwoXG4gIE1vZGVsQ29uc3RydWN0b3I6IE1vZGVsQ29uc3RydWN0b3I8YW55PixcbiAgdmVyYjogSHR0cFZlcmJzLFxuICBwYXRoPzogc3RyaW5nXG4pOiBNZXRob2REZWNvcmF0b3Ige1xuICBjb25zdCBodHRwVG9DcnVkOiBSZWNvcmQ8XG4gICAgSHR0cFZlcmJzLFxuICAgIFtDcnVkT3BlcmF0aW9ucywgKHBhdGg/OiBzdHJpbmcpID0+IE1ldGhvZERlY29yYXRvcl1cbiAgPiA9IHtcbiAgICBHRVQ6IFtPcGVyYXRpb25LZXlzLlJFQUQsIEdldF0sXG4gICAgUE9TVDogW09wZXJhdGlvbktleXMuQ1JFQVRFLCBQb3N0XSxcbiAgICBQVVQ6IFtPcGVyYXRpb25LZXlzLlVQREFURSwgUHV0XSxcbiAgICBQQVRDSDogW09wZXJhdGlvbktleXMuVVBEQVRFLCBQYXRjaF0sXG4gICAgREVMRVRFOiBbT3BlcmF0aW9uS2V5cy5ERUxFVEUsIERlbGV0ZV0sXG4gIH07XG5cbiAgY29uc3QgW2NydWRPcCwgSHR0cE1ldGhvZERlY29yYXRvcl0gPSBodHRwVG9DcnVkW3ZlcmJdO1xuICBjb25zdCB0YXJnZXQgPSByZXNvbHZlQmxvY2tUYXJnZXQodmVyYiwgcGF0aCk7XG4gIHJldHVybiB0YXJnZXRcbiAgICA/IGNvcmVJc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgdGFyZ2V0LmtpbmQgYXMgYW55LCB0YXJnZXQudmFsdWUpXG4gICAgICA/IGFwcGx5KEFwaUV4Y2x1ZGVFbmRwb2ludCgpKVxuICAgICAgOiBhcHBseShIdHRwTWV0aG9kRGVjb3JhdG9yKHBhdGgpKVxuICAgIDogY29yZUlzT3BlcmF0aW9uQmxvY2tlZChNb2RlbENvbnN0cnVjdG9yLCBjcnVkT3ApXG4gICAgICA/IGFwcGx5KEFwaUV4Y2x1ZGVFbmRwb2ludCgpKVxuICAgICAgOiBhcHBseShIdHRwTWV0aG9kRGVjb3JhdG9yKHBhdGgpKTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmRpdGlvbmFsbHkgYXBwbGllcyBhbiBIVFRQIG1ldGhvZCBkZWNvcmF0b3IgZm9yIGEgZ2l2ZW4gbW9kZWwgYW5kIHZlcmIsIGhpZGluZyB0aGUgZW5kcG9pbnQgaW4gU3dhZ2dlciAoYW5kIG5vdCByZWdpc3RlcmluZyB0aGUgcm91dGUpIHdoZW4gdGhlIG1vZGVsIGJsb2NrcyB0aGF0IENSVUQgb3BlcmF0aW9uLlxuICogQHN1bW1hcnkgTWFwcyBhbiBIVFRQIHZlcmIgdG8gaXRzIGNvcnJlc3BvbmRpbmcgYENydWRPcGVyYXRpb25zYCBrZXkgYW5kIE5lc3QgSFRUUCBkZWNvcmF0b3IgKGBAR2V0YCwgYEBQb3N0YCwgZXRjLikuIEl0IGNoZWNrcyBgaXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIGNydWRPcClgIGFuZCwgaWYgYmxvY2tlZCwgYXBwbGllcyBvbmx5IGBAQXBpRXhjbHVkZUVuZHBvaW50KClgIChTd2FnZ2VyLWhpZGRlbiwgbm8gTmVzdCByb3V0ZSkuIElmIHBlcm1pdHRlZCwgaXQgYXBwbGllcyB0aGUgYXBwcm9wcmlhdGUgSFRUUCBkZWNvcmF0b3Igd2l0aCB0aGUgb3B0aW9uYWwgYHBhdGhgLlxuICogQHBhcmFtIHtNb2RlbENvbnN0cnVjdG9yPGFueT59IE1vZGVsQ29uc3RydWN0b3IgLSBUaGUgbW9kZWwgY29uc3RydWN0b3IgdXNlZCB0byByZXNvbHZlIG9wZXJhdGlvbi1ibG9ja2luZyBydWxlcy5cbiAqIEBwYXJhbSB7SHR0cFZlcmJzfSB2ZXJiIC0gVGhlIEhUVFAgdmVyYiB0byBtYXAgKGUuZy4sIGBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJQQVRDSFwiIHwgXCJERUxFVEVcImApLlxuICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoXSAtIE9wdGlvbmFsIHJvdXRlIHBhdGggcGFzc2VkIHRocm91Z2ggdG8gdGhlIGNvcnJlc3BvbmRpbmcgTmVzdCBIVFRQIG1ldGhvZCBkZWNvcmF0b3IuXG4gKiBAcmV0dXJuIHtNZXRob2REZWNvcmF0b3J9IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IGVpdGhlciBleGNsdWRlcyB0aGUgZW5kcG9pbnQgZnJvbSBTd2FnZ2VyIChhbmQgcm91dGUgcmVnaXN0cmF0aW9uKSBvciBhcHBsaWVzIHRoZSBjb3JyZWN0IEhUVFAgZGVjb3JhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQnVsa0FwaU9wZXJhdGlvbkZyb21Nb2RlbChcbiAgTW9kZWxDb25zdHJ1Y3RvcjogTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+LFxuICB2ZXJiOiBIdHRwVmVyYnMsXG4gIHBhdGg/OiBzdHJpbmdcbik6IE1ldGhvZERlY29yYXRvciB7XG4gIGNvbnN0IGh0dHBUb0NydWQ6IFJlY29yZDxcbiAgICBIdHRwVmVyYnMsXG4gICAgW0J1bGtDcnVkT3BlcmF0aW9uS2V5cywgKHBhdGg/OiBzdHJpbmcpID0+IE1ldGhvZERlY29yYXRvcl1cbiAgPiA9IHtcbiAgICBHRVQ6IFtCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEwsIEdldF0sXG4gICAgUE9TVDogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLCBQb3N0XSxcbiAgICBQVVQ6IFtCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCwgUHV0XSxcbiAgICBQQVRDSDogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCBQYXRjaF0sXG4gICAgREVMRVRFOiBbQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsIERlbGV0ZV0sXG4gIH07XG5cbiAgY29uc3QgW2NydWRPcCwgSHR0cE1ldGhvZERlY29yYXRvcl0gPSBodHRwVG9DcnVkW3ZlcmJdO1xuICBjb25zdCB0YXJnZXQgPSBwYXRoID8gcmVzb2x2ZUJsb2NrVGFyZ2V0KHZlcmIsIHBhdGgpIDogdW5kZWZpbmVkO1xuICByZXR1cm4gdGFyZ2V0XG4gICAgPyBjb3JlSXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIHRhcmdldC5raW5kIGFzIGFueSwgdGFyZ2V0LnZhbHVlKVxuICAgICAgPyBhcHBseShBcGlFeGNsdWRlRW5kcG9pbnQoKSlcbiAgICAgIDogYXBwbHkoSHR0cE1ldGhvZERlY29yYXRvcihwYXRoKSlcbiAgICA6IGNvcmVJc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgXCJidWxrXCIgYXMgYW55LCBjcnVkT3AgYXMgYW55KVxuICAgICAgPyBhcHBseShBcGlFeGNsdWRlRW5kcG9pbnQoKSlcbiAgICAgIDogYXBwbHkoSHR0cE1ldGhvZERlY29yYXRvcihwYXRoKSk7XG59XG5mdW5jdGlvbiByZXNvbHZlQmxvY2tUYXJnZXQoXG4gIHZlcmI6IEh0dHBWZXJicyxcbiAgcGF0aD86IHN0cmluZ1xuKTpcbiAgfCB7IGtpbmQ6IFwiY3J1ZFwiIHwgXCJzdGF0ZW1lbnRcIiB8IFwicXVlcnlcIiB8IFwiYnVsa1wiOyB2YWx1ZTogc3RyaW5nIH1cbiAgfCB1bmRlZmluZWQge1xuICBpZiAoIXBhdGgpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBhdGgucmVwbGFjZSgvXlxcLyt8XFwvKyQvZywgXCJcIik7XG4gIGNvbnN0IHN0YXRlbWVudFRhcmdldHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgXCJsaXN0QnkvOmtleVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSxcbiAgICBcInBhZ2luYXRlQnkvOmtleS86cGFnZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWSxcbiAgICBcImZpbmQvOnZhbHVlXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5ELFxuICAgIFwicGFnZS86dmFsdWVcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0UsXG4gICAgXCJmaW5kT25lQnkvOmtleS86dmFsdWVcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZLFxuICAgIFwiZmluZEJ5LzprZXkvOnZhbHVlXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX0JZLFxuICAgIFwic3RhdGVtZW50LzptZXRob2QvKmFyZ3NcIjogXCJzdGF0ZW1lbnRcIixcbiAgICBcImNvdW50T2YvOmZpZWxkXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRixcbiAgICBcIm1heE9mLzpmaWVsZFwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUFYX09GLFxuICAgIFwibWluT2YvOmZpZWxkXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsXG4gICAgXCJhdmdPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRixcbiAgICBcInN1bU9mLzpmaWVsZFwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuU1VNX09GLFxuICAgIFwiZGlzdGluY3RPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLFxuICAgIFwiZ3JvdXBPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLFxuICB9O1xuXG4gIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoXCJxdWVyeS9cIikpIHtcbiAgICByZXR1cm4geyBraW5kOiBcInF1ZXJ5XCIsIHZhbHVlOiBub3JtYWxpemVkLnJlcGxhY2UoL15xdWVyeVxcLy8sIFwiXCIpIH07XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRWYWx1ZSA9IHN0YXRlbWVudFRhcmdldHNbbm9ybWFsaXplZF07XG4gIGlmIChzdGF0ZW1lbnRWYWx1ZSkge1xuICAgIHJldHVybiB7IGtpbmQ6IFwic3RhdGVtZW50XCIsIHZhbHVlOiBzdGF0ZW1lbnRWYWx1ZSB9O1xuICB9XG5cbiAgaWYgKHZlcmIgPT09IFwiR0VUXCIgJiYgbm9ybWFsaXplZCA9PT0gXCJcIikge1xuICAgIHJldHVybiB7IGtpbmQ6IFwiY3J1ZFwiLCB2YWx1ZTogT3BlcmF0aW9uS2V5cy5SRUFEIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpT3BlcmF0aW9uRnJvbU1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQXBpT3BlcmF0aW9uRnJvbU1vZGVsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBc0JBLHNEQWlCQztBQVNELDhEQWlCQztBQWpFRCxxREFBNkM7QUFDN0MsNkNBQXFEO0FBQ3JELDJEQUFnRjtBQUNoRiwyQ0FBK0Q7QUFDL0QseUNBQThFO0FBQzlFLHlDQUF1RDtBQUN2RDs7Ozs7OztHQU9HO0FBQ0g7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxJQUFJO0lBQzlELE1BQU0sVUFBVSxHQUFHO1FBQ2YsR0FBRyxFQUFFLENBQUMsNkJBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBRyxDQUFDO1FBQzlCLElBQUksRUFBRSxDQUFDLDZCQUFhLENBQUMsTUFBTSxFQUFFLGFBQUksQ0FBQztRQUNsQyxHQUFHLEVBQUUsQ0FBQyw2QkFBYSxDQUFDLE1BQU0sRUFBRSxZQUFHLENBQUM7UUFDaEMsS0FBSyxFQUFFLENBQUMsNkJBQWEsQ0FBQyxNQUFNLEVBQUUsY0FBSyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxDQUFDLDZCQUFhLENBQUMsTUFBTSxFQUFFLGVBQU0sQ0FBQztLQUN6QyxDQUFDO0lBQ0YsTUFBTSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsT0FBTyxNQUFNO1FBQ1QsQ0FBQyxDQUFDLElBQUEseUJBQXNCLEVBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxJQUFBLGtCQUFLLEVBQUMsSUFBQSw0QkFBa0IsR0FBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJ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QztJQUNGLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsNkJBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUNELDhqYkFBOGpiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXBwbHkgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEFwaUV4Y2x1ZGVFbmRwb2ludCB9IGZyb20gXCJAbmVzdGpzL3N3YWdnZXJcIjtcbmltcG9ydCB7IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cywgT3BlcmF0aW9uS2V5cywgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IERlbGV0ZSwgR2V0LCBQYXRjaCwgUG9zdCwgUHV0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBpc09wZXJhdGlvbkJsb2NrZWQgYXMgY29yZUlzT3BlcmF0aW9uQmxvY2tlZCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gQ1JVRCBvcGVyYXRpb24gaXMgYmxvY2tlZCBmb3IgYSBzcGVjaWZpYyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgb3BlcmF0aW9uLWJsb2NraW5nIGhhbmRsZXIgbWV0YWRhdGEgc3RvcmVkIG9uIHRoZSBwcm92aWRlZCBtb2RlbCBjb25zdHJ1Y3RvciAodW5kZXIgYE9wZXJhdGlvbktleXMuUkVGTEVDVCArIE9wZXJhdGlvbktleXMuQkxPQ0tgKSwgZXhlY3V0ZXMgaXQgKGlmIHByZXNlbnQpIHdpdGggaXRzIHBlcnNpc3RlZCBhcmd1bWVudHMgcGx1cyB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbiwgYW5kIHJldHVybnMgd2hldGhlciB0aGUgb3BlcmF0aW9uIGlzIGJsb2NrZWQuIElmIG5vIGhhbmRsZXIgZXhpc3RzLCB0aGUgb3BlcmF0aW9uIGlzIGNvbnNpZGVyZWQgYWxsb3dlZCAocmV0dXJucyBgZmFsc2VgKS5cbiAqIEBwYXJhbSB7TW9kZWxDb25zdHJ1Y3Rvcjxhbnk+fSBNb2RlbENvbnN0cnVjdG9yIC0gVGhlIHRhcmdldCBtb2RlbCBjb25zdHJ1Y3RvciB3aG9zZSBtZXRhZGF0YSBtYXkgaW5jbHVkZSBhIGJsb2NraW5nIGhhbmRsZXIuXG4gKiBAcGFyYW0ge0NydWRPcGVyYXRpb25zfSBvcCAtIFRoZSBDUlVEIG9wZXJhdGlvbiB0byBldmFsdWF0ZSAoZS5nLiwgYE9wZXJhdGlvbktleXMuQ1JFQVRFYCwgYE9wZXJhdGlvbktleXMuUkVBRGAsIGBPcGVyYXRpb25LZXlzLlVQREFURWAsIGBPcGVyYXRpb25LZXlzLkRFTEVURWApLlxuICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBleHBsaWNpdGx5IGJsb2NrZWQgYnkgdGhlIG1vZGVsJ3MgaGFuZGxlcjsgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKiBAZnVuY3Rpb24gaXNPcGVyYXRpb25CbG9ja2VkXG4gKi9cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmRpdGlvbmFsbHkgYXBwbGllcyBhbiBIVFRQIG1ldGhvZCBkZWNvcmF0b3IgZm9yIGEgZ2l2ZW4gbW9kZWwgYW5kIHZlcmIsIGhpZGluZyB0aGUgZW5kcG9pbnQgaW4gU3dhZ2dlciAoYW5kIG5vdCByZWdpc3RlcmluZyB0aGUgcm91dGUpIHdoZW4gdGhlIG1vZGVsIGJsb2NrcyB0aGF0IENSVUQgb3BlcmF0aW9uLlxuICogQHN1bW1hcnkgTWFwcyBhbiBIVFRQIHZlcmIgdG8gaXRzIGNvcnJlc3BvbmRpbmcgYENydWRPcGVyYXRpb25zYCBrZXkgYW5kIE5lc3QgSFRUUCBkZWNvcmF0b3IgKGBAR2V0YCwgYEBQb3N0YCwgZXRjLikuIEl0IGNoZWNrcyBgaXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIGNydWRPcClgIGFuZCwgaWYgYmxvY2tlZCwgYXBwbGllcyBvbmx5IGBAQXBpRXhjbHVkZUVuZHBvaW50KClgIChTd2FnZ2VyLWhpZGRlbiwgbm8gTmVzdCByb3V0ZSkuIElmIHBlcm1pdHRlZCwgaXQgYXBwbGllcyB0aGUgYXBwcm9wcmlhdGUgSFRUUCBkZWNvcmF0b3Igd2l0aCB0aGUgb3B0aW9uYWwgYHBhdGhgLlxuICogQHBhcmFtIHtNb2RlbENvbnN0cnVjdG9yPGFueT59IE1vZGVsQ29uc3RydWN0b3IgLSBUaGUgbW9kZWwgY29uc3RydWN0b3IgdXNlZCB0byByZXNvbHZlIG9wZXJhdGlvbi1ibG9ja2luZyBydWxlcy5cbiAqIEBwYXJhbSB7SHR0cFZlcmJzfSB2ZXJiIC0gVGhlIEhUVFAgdmVyYiB0byBtYXAgKGUuZy4sIGBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJQQVRDSFwiIHwgXCJERUxFVEVcImApLlxuICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoXSAtIE9wdGlvbmFsIHJvdXRlIHBhdGggcGFzc2VkIHRocm91Z2ggdG8gdGhlIGNvcnJlc3BvbmRpbmcgTmVzdCBIVFRQIG1ldGhvZCBkZWNvcmF0b3IuXG4gKiBAcmV0dXJuIHtNZXRob2REZWNvcmF0b3J9IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IGVpdGhlciBleGNsdWRlcyB0aGUgZW5kcG9pbnQgZnJvbSBTd2FnZ2VyIChhbmQgcm91dGUgcmVnaXN0cmF0aW9uKSBvciBhcHBsaWVzIHRoZSBjb3JyZWN0IEhUVFAgZGVjb3JhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQXBpT3BlcmF0aW9uRnJvbU1vZGVsKE1vZGVsQ29uc3RydWN0b3IsIHZlcmIsIHBhdGgpIHtcbiAgICBjb25zdCBodHRwVG9DcnVkID0ge1xuICAgICAgICBHRVQ6IFtPcGVyYXRpb25LZXlzLlJFQUQsIEdldF0sXG4gICAgICAgIFBPU1Q6IFtPcGVyYXRpb25LZXlzLkNSRUFURSwgUG9zdF0sXG4gICAgICAgIFBVVDogW09wZXJhdGlvbktleXMuVVBEQVRFLCBQdXRdLFxuICAgICAgICBQQVRDSDogW09wZXJhdGlvbktleXMuVVBEQVRFLCBQYXRjaF0sXG4gICAgICAgIERFTEVURTogW09wZXJhdGlvbktleXMuREVMRVRFLCBEZWxldGVdLFxuICAgIH07XG4gICAgY29uc3QgW2NydWRPcCwgSHR0cE1ldGhvZERlY29yYXRvcl0gPSBodHRwVG9DcnVkW3ZlcmJdO1xuICAgIGNvbnN0IHRhcmdldCA9IHJlc29sdmVCbG9ja1RhcmdldCh2ZXJiLCBwYXRoKTtcbiAgICByZXR1cm4gdGFyZ2V0XG4gICAgICAgID8gY29yZUlzT3BlcmF0aW9uQmxvY2tlZChNb2RlbENvbnN0cnVjdG9yLCB0YXJnZXQua2luZCwgdGFyZ2V0LnZhbHVlKVxuICAgICAgICAgICAgPyBhcHBseShBcGlFeGNsdWRlRW5kcG9pbnQoKSlcbiAgICAgICAgICAgIDogYXBwbHkoSHR0cE1ldGhvZERlY29yYXRvcihwYXRoKSlcbiAgICAgICAgOiBjb3JlSXNPcGVyYXRpb25CbG9ja2VkKE1vZGVsQ29uc3RydWN0b3IsIGNydWRPcClcbiAgICAgICAgICAgID8gYXBwbHkoQXBpRXhjbHVkZUVuZHBvaW50KCkpXG4gICAgICAgICAgICA6IGFwcGx5KEh0dHBNZXRob2REZWNvcmF0b3IocGF0aCkpO1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uZGl0aW9uYWxseSBhcHBsaWVzIGFuIEhUVFAgbWV0aG9kIGRlY29yYXRvciBmb3IgYSBnaXZlbiBtb2RlbCBhbmQgdmVyYiwgaGlkaW5nIHRoZSBlbmRwb2ludCBpbiBTd2FnZ2VyIChhbmQgbm90IHJlZ2lzdGVyaW5nIHRoZSByb3V0ZSkgd2hlbiB0aGUgbW9kZWwgYmxvY2tzIHRoYXQgQ1JVRCBvcGVyYXRpb24uXG4gKiBAc3VtbWFyeSBNYXBzIGFuIEhUVFAgdmVyYiB0byBpdHMgY29ycmVzcG9uZGluZyBgQ3J1ZE9wZXJhdGlvbnNgIGtleSBhbmQgTmVzdCBIVFRQIGRlY29yYXRvciAoYEBHZXRgLCBgQFBvc3RgLCBldGMuKS4gSXQgY2hlY2tzIGBpc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgY3J1ZE9wKWAgYW5kLCBpZiBibG9ja2VkLCBhcHBsaWVzIG9ubHkgYEBBcGlFeGNsdWRlRW5kcG9pbnQoKWAgKFN3YWdnZXItaGlkZGVuLCBubyBOZXN0IHJvdXRlKS4gSWYgcGVybWl0dGVkLCBpdCBhcHBsaWVzIHRoZSBhcHByb3ByaWF0ZSBIVFRQIGRlY29yYXRvciB3aXRoIHRoZSBvcHRpb25hbCBgcGF0aGAuXG4gKiBAcGFyYW0ge01vZGVsQ29uc3RydWN0b3I8YW55Pn0gTW9kZWxDb25zdHJ1Y3RvciAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIHRvIHJlc29sdmUgb3BlcmF0aW9uLWJsb2NraW5nIHJ1bGVzLlxuICogQHBhcmFtIHtIdHRwVmVyYnN9IHZlcmIgLSBUaGUgSFRUUCB2ZXJiIHRvIG1hcCAoZS5nLiwgYFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIlBBVENIXCIgfCBcIkRFTEVURVwiYCkuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3BhdGhdIC0gT3B0aW9uYWwgcm91dGUgcGF0aCBwYXNzZWQgdGhyb3VnaCB0byB0aGUgY29ycmVzcG9uZGluZyBOZXN0IEhUVFAgbWV0aG9kIGRlY29yYXRvci5cbiAqIEByZXR1cm4ge01ldGhvZERlY29yYXRvcn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgZWl0aGVyIGV4Y2x1ZGVzIHRoZSBlbmRwb2ludCBmcm9tIFN3YWdnZXIgKGFuZCByb3V0ZSByZWdpc3RyYXRpb24pIG9yIGFwcGxpZXMgdGhlIGNvcnJlY3QgSFRUUCBkZWNvcmF0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBCdWxrQXBpT3BlcmF0aW9uRnJvbU1vZGVsKE1vZGVsQ29uc3RydWN0b3IsIHZlcmIsIHBhdGgpIHtcbiAgICBjb25zdCBodHRwVG9DcnVkID0ge1xuICAgICAgICBHRVQ6IFtCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEwsIEdldF0sXG4gICAgICAgIFBPU1Q6IFtCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCwgUG9zdF0sXG4gICAgICAgIFBVVDogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCBQdXRdLFxuICAgICAgICBQQVRDSDogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCBQYXRjaF0sXG4gICAgICAgIERFTEVURTogW0J1bGtDcnVkT3BlcmF0aW9uS2V5cy5ERUxFVEVfQUxMLCBEZWxldGVdLFxuICAgIH07XG4gICAgY29uc3QgW2NydWRPcCwgSHR0cE1ldGhvZERlY29yYXRvcl0gPSBodHRwVG9DcnVkW3ZlcmJdO1xuICAgIGNvbnN0IHRhcmdldCA9IHBhdGggPyByZXNvbHZlQmxvY2tUYXJnZXQodmVyYiwgcGF0aCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRhcmdldFxuICAgICAgICA/IGNvcmVJc09wZXJhdGlvbkJsb2NrZWQoTW9kZWxDb25zdHJ1Y3RvciwgdGFyZ2V0LmtpbmQsIHRhcmdldC52YWx1ZSlcbiAgICAgICAgICAgID8gYXBwbHkoQXBpRXhjbHVkZUVuZHBvaW50KCkpXG4gICAgICAgICAgICA6IGFwcGx5KEh0dHBNZXRob2REZWNvcmF0b3IocGF0aCkpXG4gICAgICAgIDogY29yZUlzT3BlcmF0aW9uQmxvY2tlZChNb2RlbENvbnN0cnVjdG9yLCBcImJ1bGtcIiwgY3J1ZE9wKVxuICAgICAgICAgICAgPyBhcHBseShBcGlFeGNsdWRlRW5kcG9pbnQoKSlcbiAgICAgICAgICAgIDogYXBwbHkoSHR0cE1ldGhvZERlY29yYXRvcihwYXRoKSk7XG59XG5mdW5jdGlvbiByZXNvbHZlQmxvY2tUYXJnZXQodmVyYiwgcGF0aCkge1xuICAgIGlmICghcGF0aClcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBub3JtYWxpemVkID0gcGF0aC5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCBcIlwiKTtcbiAgICBjb25zdCBzdGF0ZW1lbnRUYXJnZXRzID0ge1xuICAgICAgICBcImxpc3RCeS86a2V5XCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5MSVNUX0JZLFxuICAgICAgICBcInBhZ2luYXRlQnkvOmtleS86cGFnZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWSxcbiAgICAgICAgXCJmaW5kLzp2YWx1ZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORCxcbiAgICAgICAgXCJwYWdlLzp2YWx1ZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRSxcbiAgICAgICAgXCJmaW5kT25lQnkvOmtleS86dmFsdWVcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZLFxuICAgICAgICBcImZpbmRCeS86a2V5Lzp2YWx1ZVwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORF9CWSxcbiAgICAgICAgXCJzdGF0ZW1lbnQvOm1ldGhvZC8qYXJnc1wiOiBcInN0YXRlbWVudFwiLFxuICAgICAgICBcImNvdW50T2YvOmZpZWxkXCI6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRixcbiAgICAgICAgXCJtYXhPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1BWF9PRixcbiAgICAgICAgXCJtaW5PZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1JTl9PRixcbiAgICAgICAgXCJhdmdPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRixcbiAgICAgICAgXCJzdW1PZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRixcbiAgICAgICAgXCJkaXN0aW5jdE9mLzpmaWVsZFwiOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuRElTVElOQ1RfT0YsXG4gICAgICAgIFwiZ3JvdXBPZi86ZmllbGRcIjogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLFxuICAgIH07XG4gICAgaWYgKG5vcm1hbGl6ZWQuc3RhcnRzV2l0aChcInF1ZXJ5L1wiKSkge1xuICAgICAgICByZXR1cm4geyBraW5kOiBcInF1ZXJ5XCIsIHZhbHVlOiBub3JtYWxpemVkLnJlcGxhY2UoL15xdWVyeVxcLy8sIFwiXCIpIH07XG4gICAgfVxuICAgIGNvbnN0IHN0YXRlbWVudFZhbHVlID0gc3RhdGVtZW50VGFyZ2V0c1tub3JtYWxpemVkXTtcbiAgICBpZiAoc3RhdGVtZW50VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHsga2luZDogXCJzdGF0ZW1lbnRcIiwgdmFsdWU6IHN0YXRlbWVudFZhbHVlIH07XG4gICAgfVxuICAgIGlmICh2ZXJiID09PSBcIkdFVFwiICYmIG5vcm1hbGl6ZWQgPT09IFwiXCIpIHtcbiAgICAgICAgcmV0dXJuIHsga2luZDogXCJjcnVkXCIsIHZhbHVlOiBPcGVyYXRpb25LZXlzLlJFQUQgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVFYQnBUM0JsY21GMGFXOXVSbkp2YlUxdlpHVnNMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJSbFkyRm1MVzF2WkdWc0wyUmxZMjl5WVhSdmNuTXZRWEJwVDNCbGNtRjBhVzl1Um5KdmJVMXZaR1ZzTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeHpRa0ZCYzBJc1EwRkJRenRCUVVNM1F5eFBRVUZQTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVOeVJDeFBRVUZQTEVWQlEwd3NjVUpCUVhGQ0xFVkJRM0pDTEdGQlFXRXNSMEZGWkN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlJXcERMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkZMMFFzVDBGQlR5eEZRVUZGTEd0Q1FVRnJRaXhKUVVGSkxITkNRVUZ6UWl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZET1VVc1QwRkJUeXhGUVVGRkxIRkNRVUZ4UWl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZIZGtRN096czdPenM3UjBGUFJ6dEJRVU5JT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzY1VKQlFYRkNMRU5CUTI1RExHZENRVUYxUXl4RlFVTjJReXhKUVVGbExFVkJRMllzU1VGQllUdEpRVVZpTEUxQlFVMHNWVUZCVlN4SFFVZGFPMUZCUTBZc1IwRkJSeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNN1VVRkRPVUlzU1VGQlNTeEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU03VVVGRGJFTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1lVRkJZU3hEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTTdVVUZEYUVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNN1VVRkRjRU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU03UzBGRGRrTXNRMEZCUXp0SlFVVkdMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEZGtRc1RVRkJUU3hOUVVGTkxFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6bERMRTlCUVU4c1RVRkJUVHRSUVVOWUxFTkJRVU1zUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJWeXhGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZETVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xbEJRemRDTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF5eERRVUZETEhOQ1FVRnpRaXhEUVVGRExHZENRVUZuUWl4RlFVRkZMRTFCUVUwc1EwRkJRenRaUVVOb1JDeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEVOQlFVTTdXVUZETjBJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzcERMRU5CUVVNN1FVRkRSRHM3T3pzN096dEhRVTlITzBGQlEwZ3NUVUZCVFN4VlFVRlZMSGxDUVVGNVFpeERRVU4yUXl4blFrRkJkVU1zUlVGRGRrTXNTVUZCWlN4RlFVTm1MRWxCUVdFN1NVRkZZaXhOUVVGTkxGVkJRVlVzUjBGSFdqdFJRVU5HTEVkQlFVY3NSVUZCUlN4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZGQlFWRXNSVUZCUlN4SFFVRkhMRU5CUVVNN1VVRkRNVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXp0UlFVTTVReXhIUVVGSExFVkJRVVVzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhWUVVGVkxFVkJRVVVzUjBGQlJ5eERRVUZETzFGQlF6VkRMRXRCUVVzc1JVRkJSU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRlZCUVZVc1JVRkJSU3hMUVVGTExFTkJRVU03VVVGRGFFUXNUVUZCVFN4RlFVRkZMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNWVUZCVlN4RlFVRkZMRTFCUVUwc1EwRkJRenRMUVVOdVJDeERRVUZETzBsQlJVWXNUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSU3h0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU4yUkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8wbEJRMnBGTEU5QlFVOHNUVUZCVFR0UlFVTllMRU5CUVVNc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCVnl4RlFVRkZMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03V1VGRE1VVXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMWxCUXpkQ0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJReXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEUxQlFXRXNSVUZCUlN4TlFVRmhMRU5CUVVNN1dVRkRkRVVzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUlVGQlJTeERRVUZETzFsQlF6ZENMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU42UXl4RFFVRkRPMEZCUTBRc1UwRkJVeXhyUWtGQmEwSXNRMEZEZWtJc1NVRkJaU3hGUVVObUxFbEJRV0U3U1VGSllpeEpRVUZKTEVOQlFVTXNTVUZCU1R0UlFVRkZMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJSVFZDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUTJ4RUxFMUJRVTBzWjBKQlFXZENMRWRCUVRKQ08xRkJReTlETEdGQlFXRXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTzFGQlF6VkRMSFZDUVVGMVFpeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExFOUJRVTg3VVVGRGRFUXNZVUZCWVN4RlFVRkZMSEZDUVVGeFFpeERRVUZETEVsQlFVazdVVUZEZWtNc1lVRkJZU3hGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrN1VVRkRla01zZFVKQlFYVkNMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNWMEZCVnp0UlFVTXhSQ3h2UWtGQmIwSXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTzFGQlEyNUVMSGxDUVVGNVFpeEZRVUZGTEZkQlFWYzdVVUZEZEVNc1owSkJRV2RDTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVVVGQlVUdFJRVU5vUkN4alFVRmpMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFR0UlFVTTFReXhqUVVGakxFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1RVRkJUVHRSUVVNMVF5eGpRVUZqTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVFVGQlRUdFJRVU0xUXl4alFVRmpMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFR0UlFVTTFReXh0UWtGQmJVSXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFhRVUZYTzFGQlEzUkVMR2RDUVVGblFpeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExGRkJRVkU3UzBGRGFrUXNRMEZCUXp0SlFVVkdMRWxCUVVrc1ZVRkJWU3hEUVVGRExGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRPMUZCUTNCRExFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRM1JGTEVOQlFVTTdTVUZGUkN4TlFVRk5MR05CUVdNc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVOd1JDeEpRVUZKTEdOQlFXTXNSVUZCUlN4RFFVRkRPMUZCUTI1Q0xFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNWMEZCVnl4RlFVRkZMRXRCUVVzc1JVRkJSU3hqUVVGakxFVkJRVVVzUTBGQlF6dEpRVU4wUkN4RFFVRkRPMGxCUlVRc1NVRkJTU3hKUVVGSkxFdEJRVXNzUzBGQlN5eEpRVUZKTEZWQlFWVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJRenRSUVVONFF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTNKRUxFTkJRVU03U1VGRlJDeFBRVUZQTEZOQlFWTXNRMEZCUXp0QlFVTnVRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dZWEJ3YkhrZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUVGd2FVVjRZMngxWkdWRmJtUndiMmx1ZENCOUlHWnliMjBnWENKQWJtVnpkR3B6TDNOM1lXZG5aWEpjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJRUoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3l4Y2JpQWdUM0JsY21GMGFXOXVTMlY1Y3l4Y2JpQWdRM0oxWkU5d1pYSmhkR2x2Ym5Nc1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR0l0WkdWamIzSmhkRzl5YzF3aU8xeHVhVzF3YjNKMElIc2dUVzlrWld4RGIyNXpkSEoxWTNSdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHOXlMWFpoYkdsa1lYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFUmxiR1YwWlN3Z1IyVjBMQ0JRWVhSamFDd2dVRzl6ZEN3Z1VIVjBJSDBnWm5KdmJTQmNJa0J1WlhOMGFuTXZZMjl0Ylc5dVhDSTdYRzVjYm1sdGNHOXlkQ0I3SUdselQzQmxjbUYwYVc5dVFteHZZMnRsWkNCaGN5QmpiM0psU1hOUGNHVnlZWFJwYjI1Q2JHOWphMlZrSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRWgwZEhCV1pYSmljeUI5SUdaeWIyMGdYQ0l1TDNSNWNHVnpYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRVJsZEdWeWJXbHVaWE1nYVdZZ1lTQm5hWFpsYmlCRFVsVkVJRzl3WlhKaGRHbHZiaUJwY3lCaWJHOWphMlZrSUdadmNpQmhJSE53WldOcFptbGpJRzF2WkdWc0lHTnZibk4wY25WamRHOXlMbHh1SUNvZ1FITjFiVzFoY25rZ1VtVjBjbWxsZG1WeklIUm9aU0J2Y0dWeVlYUnBiMjR0WW14dlkydHBibWNnYUdGdVpHeGxjaUJ0WlhSaFpHRjBZU0J6ZEc5eVpXUWdiMjRnZEdobElIQnliM1pwWkdWa0lHMXZaR1ZzSUdOdmJuTjBjblZqZEc5eUlDaDFibVJsY2lCZ1QzQmxjbUYwYVc5dVMyVjVjeTVTUlVaTVJVTlVJQ3NnVDNCbGNtRjBhVzl1UzJWNWN5NUNURTlEUzJBcExDQmxlR1ZqZFhSbGN5QnBkQ0FvYVdZZ2NISmxjMlZ1ZENrZ2QybDBhQ0JwZEhNZ2NHVnljMmx6ZEdWa0lHRnlaM1Z0Wlc1MGN5QndiSFZ6SUhSb1pTQnlaWEYxWlhOMFpXUWdiM0JsY21GMGFXOXVMQ0JoYm1RZ2NtVjBkWEp1Y3lCM2FHVjBhR1Z5SUhSb1pTQnZjR1Z5WVhScGIyNGdhWE1nWW14dlkydGxaQzRnU1dZZ2JtOGdhR0Z1Wkd4bGNpQmxlR2x6ZEhNc0lIUm9aU0J2Y0dWeVlYUnBiMjRnYVhNZ1kyOXVjMmxrWlhKbFpDQmhiR3h2ZDJWa0lDaHlaWFIxY201eklHQm1ZV3h6WldBcExseHVJQ29nUUhCaGNtRnRJSHROYjJSbGJFTnZibk4wY25WamRHOXlQR0Z1ZVQ1OUlFMXZaR1ZzUTI5dWMzUnlkV04wYjNJZ0xTQlVhR1VnZEdGeVoyVjBJRzF2WkdWc0lHTnZibk4wY25WamRHOXlJSGRvYjNObElHMWxkR0ZrWVhSaElHMWhlU0JwYm1Oc2RXUmxJR0VnWW14dlkydHBibWNnYUdGdVpHeGxjaTVjYmlBcUlFQndZWEpoYlNCN1EzSjFaRTl3WlhKaGRHbHZibk45SUc5d0lDMGdWR2hsSUVOU1ZVUWdiM0JsY21GMGFXOXVJSFJ2SUdWMllXeDFZWFJsSUNobExtY3VMQ0JnVDNCbGNtRjBhVzl1UzJWNWN5NURVa1ZCVkVWZ0xDQmdUM0JsY21GMGFXOXVTMlY1Y3k1U1JVRkVZQ3dnWUU5d1pYSmhkR2x2Ymt0bGVYTXVWVkJFUVZSRllDd2dZRTl3WlhKaGRHbHZia3RsZVhNdVJFVk1SVlJGWUNrdVhHNGdLaUJBY21WMGRYSnVJSHRpYjI5c1pXRnVmU0JnZEhKMVpXQWdkMmhsYmlCMGFHVWdiM0JsY21GMGFXOXVJR2x6SUdWNGNHeHBZMmwwYkhrZ1lteHZZMnRsWkNCaWVTQjBhR1VnYlc5a1pXd25jeUJvWVc1a2JHVnlPeUJ2ZEdobGNuZHBjMlVnWUdaaGJITmxZQzVjYmlBcUlFQm1kVzVqZEdsdmJpQnBjMDl3WlhKaGRHbHZia0pzYjJOclpXUmNiaUFxTDF4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdRMjl1WkdsMGFXOXVZV3hzZVNCaGNIQnNhV1Z6SUdGdUlFaFVWRkFnYldWMGFHOWtJR1JsWTI5eVlYUnZjaUJtYjNJZ1lTQm5hWFpsYmlCdGIyUmxiQ0JoYm1RZ2RtVnlZaXdnYUdsa2FXNW5JSFJvWlNCbGJtUndiMmx1ZENCcGJpQlRkMkZuWjJWeUlDaGhibVFnYm05MElISmxaMmx6ZEdWeWFXNW5JSFJvWlNCeWIzVjBaU2tnZDJobGJpQjBhR1VnYlc5a1pXd2dZbXh2WTJ0eklIUm9ZWFFnUTFKVlJDQnZjR1Z5WVhScGIyNHVYRzRnS2lCQWMzVnRiV0Z5ZVNCTllYQnpJR0Z1SUVoVVZGQWdkbVZ5WWlCMGJ5QnBkSE1nWTI5eWNtVnpjRzl1WkdsdVp5QmdRM0oxWkU5d1pYSmhkR2x2Ym5OZ0lHdGxlU0JoYm1RZ1RtVnpkQ0JJVkZSUUlHUmxZMjl5WVhSdmNpQW9ZRUJIWlhSZ0xDQmdRRkJ2YzNSZ0xDQmxkR011S1M0Z1NYUWdZMmhsWTJ0eklHQnBjMDl3WlhKaGRHbHZia0pzYjJOclpXUW9UVzlrWld4RGIyNXpkSEoxWTNSdmNpd2dZM0oxWkU5d0tXQWdZVzVrTENCcFppQmliRzlqYTJWa0xDQmhjSEJzYVdWeklHOXViSGtnWUVCQmNHbEZlR05zZFdSbFJXNWtjRzlwYm5Rb0tXQWdLRk4zWVdkblpYSXRhR2xrWkdWdUxDQnVieUJPWlhOMElISnZkWFJsS1M0Z1NXWWdjR1Z5YldsMGRHVmtMQ0JwZENCaGNIQnNhV1Z6SUhSb1pTQmhjSEJ5YjNCeWFXRjBaU0JJVkZSUUlHUmxZMjl5WVhSdmNpQjNhWFJvSUhSb1pTQnZjSFJwYjI1aGJDQmdjR0YwYUdBdVhHNGdLaUJBY0dGeVlXMGdlMDF2WkdWc1EyOXVjM1J5ZFdOMGIzSThZVzU1UG4wZ1RXOWtaV3hEYjI1emRISjFZM1J2Y2lBdElGUm9aU0J0YjJSbGJDQmpiMjV6ZEhKMVkzUnZjaUIxYzJWa0lIUnZJSEpsYzI5c2RtVWdiM0JsY21GMGFXOXVMV0pzYjJOcmFXNW5JSEoxYkdWekxseHVJQ29nUUhCaGNtRnRJSHRJZEhSd1ZtVnlZbk45SUhabGNtSWdMU0JVYUdVZ1NGUlVVQ0IyWlhKaUlIUnZJRzFoY0NBb1pTNW5MaXdnWUZ3aVIwVlVYQ0lnZkNCY0lsQlBVMVJjSWlCOElGd2lVRlZVWENJZ2ZDQmNJbEJCVkVOSVhDSWdmQ0JjSWtSRlRFVlVSVndpWUNrdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXM0JoZEdoZElDMGdUM0IwYVc5dVlXd2djbTkxZEdVZ2NHRjBhQ0J3WVhOelpXUWdkR2h5YjNWbmFDQjBieUIwYUdVZ1kyOXljbVZ6Y0c5dVpHbHVaeUJPWlhOMElFaFVWRkFnYldWMGFHOWtJR1JsWTI5eVlYUnZjaTVjYmlBcUlFQnlaWFIxY200Z2UwMWxkR2h2WkVSbFkyOXlZWFJ2Y24wZ1FTQnRaWFJvYjJRZ1pHVmpiM0poZEc5eUlIUm9ZWFFnWldsMGFHVnlJR1Y0WTJ4MVpHVnpJSFJvWlNCbGJtUndiMmx1ZENCbWNtOXRJRk4zWVdkblpYSWdLR0Z1WkNCeWIzVjBaU0J5WldkcGMzUnlZWFJwYjI0cElHOXlJR0Z3Y0d4cFpYTWdkR2hsSUdOdmNuSmxZM1FnU0ZSVVVDQmtaV052Y21GMGIzSXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCQmNHbFBjR1Z5WVhScGIyNUdjbTl0VFc5a1pXd29YRzRnSUUxdlpHVnNRMjl1YzNSeWRXTjBiM0k2SUUxdlpHVnNRMjl1YzNSeWRXTjBiM0k4WVc1NVBpeGNiaUFnZG1WeVlqb2dTSFIwY0ZabGNtSnpMRnh1SUNCd1lYUm9Qem9nYzNSeWFXNW5YRzRwT2lCTlpYUm9iMlJFWldOdmNtRjBiM0lnZTF4dUlDQmpiMjV6ZENCb2RIUndWRzlEY25Wa09pQlNaV052Y21ROFhHNGdJQ0FnU0hSMGNGWmxjbUp6TEZ4dUlDQWdJRnREY25Wa1QzQmxjbUYwYVc5dWN5d2dLSEJoZEdnL09pQnpkSEpwYm1jcElEMCtJRTFsZEdodlpFUmxZMjl5WVhSdmNsMWNiaUFnUGlBOUlIdGNiaUFnSUNCSFJWUTZJRnRQY0dWeVlYUnBiMjVMWlhsekxsSkZRVVFzSUVkbGRGMHNYRzRnSUNBZ1VFOVRWRG9nVzA5d1pYSmhkR2x2Ymt0bGVYTXVRMUpGUVZSRkxDQlFiM04wWFN4Y2JpQWdJQ0JRVlZRNklGdFBjR1Z5WVhScGIyNUxaWGx6TGxWUVJFRlVSU3dnVUhWMFhTeGNiaUFnSUNCUVFWUkRTRG9nVzA5d1pYSmhkR2x2Ymt0bGVYTXVWVkJFUVZSRkxDQlFZWFJqYUYwc1hHNGdJQ0FnUkVWTVJWUkZPaUJiVDNCbGNtRjBhVzl1UzJWNWN5NUVSVXhGVkVVc0lFUmxiR1YwWlYwc1hHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ1cyTnlkV1JQY0N3Z1NIUjBjRTFsZEdodlpFUmxZMjl5WVhSdmNsMGdQU0JvZEhSd1ZHOURjblZrVzNabGNtSmRPMXh1SUNCamIyNXpkQ0IwWVhKblpYUWdQU0J5WlhOdmJIWmxRbXh2WTJ0VVlYSm5aWFFvZG1WeVlpd2djR0YwYUNrN1hHNGdJSEpsZEhWeWJpQjBZWEpuWlhSY2JpQWdJQ0EvSUdOdmNtVkpjMDl3WlhKaGRHbHZia0pzYjJOclpXUW9UVzlrWld4RGIyNXpkSEoxWTNSdmNpd2dkR0Z5WjJWMExtdHBibVFnWVhNZ1lXNTVMQ0IwWVhKblpYUXVkbUZzZFdVcFhHNGdJQ0FnSUNBL0lHRndjR3g1S0VGd2FVVjRZMngxWkdWRmJtUndiMmx1ZENncEtWeHVJQ0FnSUNBZ09pQmhjSEJzZVNoSWRIUndUV1YwYUc5a1JHVmpiM0poZEc5eUtIQmhkR2dwS1Z4dUlDQWdJRG9nWTI5eVpVbHpUM0JsY21GMGFXOXVRbXh2WTJ0bFpDaE5iMlJsYkVOdmJuTjBjblZqZEc5eUxDQmpjblZrVDNBcFhHNGdJQ0FnSUNBL0lHRndjR3g1S0VGd2FVVjRZMngxWkdWRmJtUndiMmx1ZENncEtWeHVJQ0FnSUNBZ09pQmhjSEJzZVNoSWRIUndUV1YwYUc5a1JHVmpiM0poZEc5eUtIQmhkR2dwS1R0Y2JuMWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVOdmJtUnBkR2x2Ym1Gc2JIa2dZWEJ3YkdsbGN5QmhiaUJJVkZSUUlHMWxkR2h2WkNCa1pXTnZjbUYwYjNJZ1ptOXlJR0VnWjJsMlpXNGdiVzlrWld3Z1lXNWtJSFpsY21Jc0lHaHBaR2x1WnlCMGFHVWdaVzVrY0c5cGJuUWdhVzRnVTNkaFoyZGxjaUFvWVc1a0lHNXZkQ0J5WldkcGMzUmxjbWx1WnlCMGFHVWdjbTkxZEdVcElIZG9aVzRnZEdobElHMXZaR1ZzSUdKc2IyTnJjeUIwYUdGMElFTlNWVVFnYjNCbGNtRjBhVzl1TGx4dUlDb2dRSE4xYlcxaGNua2dUV0Z3Y3lCaGJpQklWRlJRSUhabGNtSWdkRzhnYVhSeklHTnZjbkpsYzNCdmJtUnBibWNnWUVOeWRXUlBjR1Z5WVhScGIyNXpZQ0JyWlhrZ1lXNWtJRTVsYzNRZ1NGUlVVQ0JrWldOdmNtRjBiM0lnS0dCQVIyVjBZQ3dnWUVCUWIzTjBZQ3dnWlhSakxpa3VJRWwwSUdOb1pXTnJjeUJnYVhOUGNHVnlZWFJwYjI1Q2JHOWphMlZrS0UxdlpHVnNRMjl1YzNSeWRXTjBiM0lzSUdOeWRXUlBjQ2xnSUdGdVpDd2dhV1lnWW14dlkydGxaQ3dnWVhCd2JHbGxjeUJ2Ym14NUlHQkFRWEJwUlhoamJIVmtaVVZ1WkhCdmFXNTBLQ2xnSUNoVGQyRm5aMlZ5TFdocFpHUmxiaXdnYm04Z1RtVnpkQ0J5YjNWMFpTa3VJRWxtSUhCbGNtMXBkSFJsWkN3Z2FYUWdZWEJ3YkdsbGN5QjBhR1VnWVhCd2NtOXdjbWxoZEdVZ1NGUlVVQ0JrWldOdmNtRjBiM0lnZDJsMGFDQjBhR1VnYjNCMGFXOXVZV3dnWUhCaGRHaGdMbHh1SUNvZ1FIQmhjbUZ0SUh0TmIyUmxiRU52Ym5OMGNuVmpkRzl5UEdGdWVUNTlJRTF2WkdWc1EyOXVjM1J5ZFdOMGIzSWdMU0JVYUdVZ2JXOWtaV3dnWTI5dWMzUnlkV04wYjNJZ2RYTmxaQ0IwYnlCeVpYTnZiSFpsSUc5d1pYSmhkR2x2YmkxaWJHOWphMmx1WnlCeWRXeGxjeTVjYmlBcUlFQndZWEpoYlNCN1NIUjBjRlpsY21KemZTQjJaWEppSUMwZ1ZHaGxJRWhVVkZBZ2RtVnlZaUIwYnlCdFlYQWdLR1V1Wnk0c0lHQmNJa2RGVkZ3aUlId2dYQ0pRVDFOVVhDSWdmQ0JjSWxCVlZGd2lJSHdnWENKUVFWUkRTRndpSUh3Z1hDSkVSVXhGVkVWY0ltQXBMbHh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0d1lYUm9YU0F0SUU5d2RHbHZibUZzSUhKdmRYUmxJSEJoZEdnZ2NHRnpjMlZrSUhSb2NtOTFaMmdnZEc4Z2RHaGxJR052Y25KbGMzQnZibVJwYm1jZ1RtVnpkQ0JJVkZSUUlHMWxkR2h2WkNCa1pXTnZjbUYwYjNJdVhHNGdLaUJBY21WMGRYSnVJSHROWlhSb2IyUkVaV052Y21GMGIzSjlJRUVnYldWMGFHOWtJR1JsWTI5eVlYUnZjaUIwYUdGMElHVnBkR2hsY2lCbGVHTnNkV1JsY3lCMGFHVWdaVzVrY0c5cGJuUWdabkp2YlNCVGQyRm5aMlZ5SUNoaGJtUWdjbTkxZEdVZ2NtVm5hWE4wY21GMGFXOXVLU0J2Y2lCaGNIQnNhV1Z6SUhSb1pTQmpiM0p5WldOMElFaFVWRkFnWkdWamIzSmhkRzl5TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdRblZzYTBGd2FVOXdaWEpoZEdsdmJrWnliMjFOYjJSbGJDaGNiaUFnVFc5a1pXeERiMjV6ZEhKMVkzUnZjam9nVFc5a1pXeERiMjV6ZEhKMVkzUnZjanhoYm5rK0xGeHVJQ0IyWlhKaU9pQklkSFJ3Vm1WeVluTXNYRzRnSUhCaGRHZy9PaUJ6ZEhKcGJtZGNiaWs2SUUxbGRHaHZaRVJsWTI5eVlYUnZjaUI3WEc0Z0lHTnZibk4wSUdoMGRIQlViME55ZFdRNklGSmxZMjl5WkR4Y2JpQWdJQ0JJZEhSd1ZtVnlZbk1zWEc0Z0lDQWdXMEoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3l3Z0tIQmhkR2cvT2lCemRISnBibWNwSUQwK0lFMWxkR2h2WkVSbFkyOXlZWFJ2Y2wxY2JpQWdQaUE5SUh0Y2JpQWdJQ0JIUlZRNklGdENkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE11VWtWQlJGOUJURXdzSUVkbGRGMHNYRzRnSUNBZ1VFOVRWRG9nVzBKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWN5NURVa1ZCVkVWZlFVeE1MQ0JRYjNOMFhTeGNiaUFnSUNCUVZWUTZJRnRDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNdVZWQkVRVlJGWDBGTVRDd2dVSFYwWFN4Y2JpQWdJQ0JRUVZSRFNEb2dXMEoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3k1VlVFUkJWRVZmUVV4TUxDQlFZWFJqYUYwc1hHNGdJQ0FnUkVWTVJWUkZPaUJiUW5Wc2EwTnlkV1JQY0dWeVlYUnBiMjVMWlhsekxrUkZURVZVUlY5QlRFd3NJRVJsYkdWMFpWMHNYRzRnSUgwN1hHNWNiaUFnWTI5dWMzUWdXMk55ZFdSUGNDd2dTSFIwY0UxbGRHaHZaRVJsWTI5eVlYUnZjbDBnUFNCb2RIUndWRzlEY25Wa1czWmxjbUpkTzF4dUlDQmpiMjV6ZENCMFlYSm5aWFFnUFNCd1lYUm9JRDhnY21WemIyeDJaVUpzYjJOclZHRnlaMlYwS0habGNtSXNJSEJoZEdncElEb2dkVzVrWldacGJtVmtPMXh1SUNCeVpYUjFjbTRnZEdGeVoyVjBYRzRnSUNBZ1B5QmpiM0psU1hOUGNHVnlZWFJwYjI1Q2JHOWphMlZrS0UxdlpHVnNRMjl1YzNSeWRXTjBiM0lzSUhSaGNtZGxkQzVyYVc1a0lHRnpJR0Z1ZVN3Z2RHRnlaMlYwTG5aaGJIVmxLVnh1SUNBZ0lDQWdQeUJoY0hCc2VTaEJjR2xGZUdOc2RXUmxSVzVrY0c5cGJuUW9LU2xjYmlBZ0lDQWdJRG9nWVhCd2JIa29TSFIwY0UxbGRHaHZaRVJsWTI5eVlYUnZjaWh3WVhSb0tTbGNiaUFnSUNBNklHTnZjbVZKYzA5d1pYSmhkR2x2YmtKc2IyTnJaV1FvVFc5a1pXeERiMjV6ZEhKMVkzUnZjaXdnWENKaWRXeHJYQ0lnWVhNZ1lXNTVMQ0JqY25Wa1QzQWdZWE1nWVc1NUtWeHVJQ0FnSUNBZ1B5QmhjSEJzZVNoQmNHbEZlR05zZFdSbFJXNWtjRzlwYm5Rb0tTbGNiaUFnSUNBZ0lEb2dZWEJ3Ykhrb1NIUjBjRTFsZEdodlpFUmxZMjl5WVhSdmNpaHdZWFJvS1NrN1hHNTlYRzVtZFc1amRHbHZiaUJ5WlhOdmJIWmxRbXh2WTJ0VVlYSm5aWFFvWEc0Z0lIWmxjbUk2SUVoMGRIQldaWEppY3l4Y2JpQWdjR0YwYUQ4NklITjBjbWx1WjF4dUtUcGNiaUFnZkNCN0lHdHBibVE2SUZ3aVkzSjFaRndpSUh3Z1hDSnpkR0YwWlcxbGJuUmNJaUI4SUZ3aWNYVmxjbmxjSWlCOElGd2lZblZzYTF3aU95QjJZV3gxWlRvZ2MzUnlhVzVuSUgxY2JpQWdmQ0IxYm1SbFptbHVaV1FnZTF4dUlDQnBaaUFvSVhCaGRHZ3BJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzVjYmlBZ1kyOXVjM1FnYm05eWJXRnNhWHBsWkNBOUlIQmhkR2d1Y21Wd2JHRmpaU2d2WGx4Y0x5dDhYRnd2S3lRdlp5d2dYQ0pjSWlrN1hHNGdJR052Ym5OMElITjBZWFJsYldWdWRGUmhjbWRsZEhNNklGSmxZMjl5WkR4emRISnBibWNzSUhOMGNtbHVaejRnUFNCN1hHNGdJQ0FnWENKc2FYTjBRbmt2T210bGVWd2lPaUJRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVRFbFRWRjlDV1N4Y2JpQWdJQ0JjSW5CaFoybHVZWFJsUW5rdk9tdGxlUzg2Y0dGblpWd2lPaUJRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVVFRkhSVjlDV1N4Y2JpQWdJQ0JjSW1acGJtUXZPblpoYkhWbFhDSTZJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1R1NVNUVMRnh1SUNBZ0lGd2ljR0ZuWlM4NmRtRnNkV1ZjSWpvZ1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMbEJCUjBVc1hHNGdJQ0FnWENKbWFXNWtUMjVsUW5rdk9tdGxlUzg2ZG1Gc2RXVmNJam9nVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrWkpUa1JmVDA1RlgwSlpMRnh1SUNBZ0lGd2labWx1WkVKNUx6cHJaWGt2T25aaGJIVmxYQ0k2SUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUdTVTVFWDBKWkxGeHVJQ0FnSUZ3aWMzUmhkR1Z0Wlc1MEx6cHRaWFJvYjJRdkttRnlaM05jSWpvZ1hDSnpkR0YwWlcxbGJuUmNJaXhjYmlBZ0lDQmNJbU52ZFc1MFQyWXZPbVpwWld4a1hDSTZJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1RFQxVk9WRjlQUml4Y2JpQWdJQ0JjSW0xaGVFOW1MenBtYVdWc1pGd2lPaUJRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVRVRllYMDlHTEZ4dUlDQWdJRndpYldsdVQyWXZPbVpwWld4a1hDSTZJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1TlNVNWZUMFlzWEc0Z0lDQWdYQ0poZG1kUFppODZabWxsYkdSY0lqb2dVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGtGV1IxOVBSaXhjYmlBZ0lDQmNJbk4xYlU5bUx6cG1hV1ZzWkZ3aU9pQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VTFWTlgwOUdMRnh1SUNBZ0lGd2laR2x6ZEdsdVkzUlBaaTg2Wm1sbGJHUmNJam9nVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrUkpVMVJKVGtOVVgwOUdMRnh1SUNBZ0lGd2laM0p2ZFhCUFppODZabWxsYkdSY0lqb2dVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGtkU1QxVlFYMDlHTEZ4dUlDQjlPMXh1WEc0Z0lHbG1JQ2h1YjNKdFlXeHBlbVZrTG5OMFlYSjBjMWRwZEdnb1hDSnhkV1Z5ZVM5Y0lpa3BJSHRjYmlBZ0lDQnlaWFIxY200Z2V5QnJhVzVrT2lCY0luRjFaWEo1WENJc0lIWmhiSFZsT2lCdWIzSnRZV3hwZW1Wa0xuSmxjR3hoWTJVb0wxNXhkV1Z5ZVZ4Y0x5OHNJRndpWENJcElIMDdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQnpkR0YwWlcxbGJuUldZV3gxWlNBOUlITjBZWFJsYldWdWRGUmhjbWRsZEhOYmJtOXliV0ZzYVhwbFpGMDdYRzRnSUdsbUlDaHpkR0YwWlcxbGJuUldZV3gxWlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUI3SUd0cGJtUTZJRndpYzNSaGRHVnRaVzUwWENJc0lIWmhiSFZsT2lCemRHRjBaVzFsYm5SV1lXeDFaU0I5TzF4dUlDQjlYRzVjYmlBZ2FXWWdLSFpsY21JZ1BUMDlJRndpUjBWVVhDSWdKaVlnYm05eWJXRnNhWHBsWkNBOVBUMGdYQ0pjSWlrZ2UxeHVJQ0FnSUhKbGRIVnliaUI3SUd0cGJtUTZJRndpWTNKMVpGd2lMQ0IyWVd4MVpUb2dUM0JsY21GMGFXOXVTMlY1Y3k1U1JVRkVJSDA3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dWZWeHVJbDE5Il19
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HttpVerbToDecorator = HttpVerbToDecorator;
4
4
  const common_1 = require("@nestjs/common");
5
+ const core_1 = require("@decaf-ts/core");
5
6
  /**
6
7
  * Maps an HTTP verb to its corresponding NestJS method decorator.
7
8
  *
@@ -21,9 +22,9 @@ function HttpVerbToDecorator(verb) {
21
22
  };
22
23
  const decorator = httpToCrud[verb];
23
24
  if (!decorator) {
24
- throw new Error(`Unsupported HTTP verb "${verb}". No NestJS decorator mapping was found.`);
25
+ throw new core_1.UnsupportedError(`Unsupported HTTP verb "${verb}". No NestJS decorator mapping was found.`);
25
26
  }
26
27
  return decorator;
27
28
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjYWYtbW9kZWwvZGVjb3JhdG9ycy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRy9EOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxJQUFlO0lBRWYsTUFBTSxVQUFVLEdBQTBEO1FBQ3hFLEdBQUcsRUFBRSxHQUFHO1FBQ1IsSUFBSSxFQUFFLElBQUk7UUFDVixHQUFHLEVBQUUsR0FBRztRQUNSLEtBQUssRUFBRSxLQUFLO1FBQ1osTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5DLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQ2IsMEJBQTBCLElBQUksMkNBQTJDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlbGV0ZSwgR2V0LCBQYXRjaCwgUG9zdCwgUHV0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBIdHRwVmVyYnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIE1hcHMgYW4gSFRUUCB2ZXJiIHRvIGl0cyBjb3JyZXNwb25kaW5nIE5lc3RKUyBtZXRob2QgZGVjb3JhdG9yLlxuICpcbiAqIEBwYXJhbSB2ZXJiIC0gSFRUUCB2ZXJiIHRvIGJlIGNvbnZlcnRlZCAoZS5nLiBHRVQsIFBPU1QsIFBVVCwgUEFUQ0gsIERFTEVURSkuXG4gKiBAcmV0dXJucyBBIE5lc3RKUyBtZXRob2QgZGVjb3JhdG9yIG1hdGNoaW5nIHRoZSBwcm92aWRlZCBIVFRQIHZlcmIuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBwcm92aWRlZCBIVFRQIHZlcmIgaXMgbm90IHN1cHBvcnRlZCBvciBub3QgbWFwcGVkXG4gKiB0byBhIE5lc3RKUyBkZWNvcmF0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBIdHRwVmVyYlRvRGVjb3JhdG9yKFxuICB2ZXJiOiBIdHRwVmVyYnNcbik6IChwYXRoPzogc3RyaW5nKSA9PiBNZXRob2REZWNvcmF0b3Ige1xuICBjb25zdCBodHRwVG9DcnVkOiBSZWNvcmQ8SHR0cFZlcmJzLCAocGF0aD86IHN0cmluZykgPT4gTWV0aG9kRGVjb3JhdG9yPiA9IHtcbiAgICBHRVQ6IEdldCxcbiAgICBQT1NUOiBQb3N0LFxuICAgIFBVVDogUHV0LFxuICAgIFBBVENIOiBQYXRjaCxcbiAgICBERUxFVEU6IERlbGV0ZSxcbiAgfTtcblxuICBjb25zdCBkZWNvcmF0b3IgPSBodHRwVG9DcnVkW3ZlcmJdO1xuXG4gIGlmICghZGVjb3JhdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFVuc3VwcG9ydGVkIEhUVFAgdmVyYiBcIiR7dmVyYn1cIi4gTm8gTmVzdEpTIGRlY29yYXRvciBtYXBwaW5nIHdhcyBmb3VuZC5gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBkZWNvcmF0b3I7XG59XG4iXX0=
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLGtEQWFDO0FBdkJELDJDQUErRDtBQUMvRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLElBQUk7SUFDcEMsTUFBTSxVQUFVLEdBQUc7UUFDZixHQUFHLEVBQUUsWUFBRztRQUNSLElBQUksRUFBRSxhQUFJO1FBQ1YsR0FBRyxFQUFFLFlBQUc7UUFDUixLQUFLLEVBQUUsY0FBSztRQUNaLE1BQU0sRUFBRSxlQUFNO0tBQ2pCLENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSwyQ0FBMkMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBQ0Qsa2lFQUFraUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWxldGUsIEdldCwgUGF0Y2gsIFBvc3QsIFB1dCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuLyoqXG4gKiBNYXBzIGFuIEhUVFAgdmVyYiB0byBpdHMgY29ycmVzcG9uZGluZyBOZXN0SlMgbWV0aG9kIGRlY29yYXRvci5cbiAqXG4gKiBAcGFyYW0gdmVyYiAtIEhUVFAgdmVyYiB0byBiZSBjb252ZXJ0ZWQgKGUuZy4gR0VULCBQT1NULCBQVVQsIFBBVENILCBERUxFVEUpLlxuICogQHJldHVybnMgQSBOZXN0SlMgbWV0aG9kIGRlY29yYXRvciBtYXRjaGluZyB0aGUgcHJvdmlkZWQgSFRUUCB2ZXJiLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgcHJvdmlkZWQgSFRUUCB2ZXJiIGlzIG5vdCBzdXBwb3J0ZWQgb3Igbm90IG1hcHBlZFxuICogdG8gYSBOZXN0SlMgZGVjb3JhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gSHR0cFZlcmJUb0RlY29yYXRvcih2ZXJiKSB7XG4gICAgY29uc3QgaHR0cFRvQ3J1ZCA9IHtcbiAgICAgICAgR0VUOiBHZXQsXG4gICAgICAgIFBPU1Q6IFBvc3QsXG4gICAgICAgIFBVVDogUHV0LFxuICAgICAgICBQQVRDSDogUGF0Y2gsXG4gICAgICAgIERFTEVURTogRGVsZXRlLFxuICAgIH07XG4gICAgY29uc3QgZGVjb3JhdG9yID0gaHR0cFRvQ3J1ZFt2ZXJiXTtcbiAgICBpZiAoIWRlY29yYXRvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEhUVFAgdmVyYiBcIiR7dmVyYn1cIi4gTm8gTmVzdEpTIGRlY29yYXRvciBtYXBwaW5nIHdhcyBmb3VuZC5gKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlY29yYXRvcjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRYUnBiSE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlpHVmpZV1l0Ylc5a1pXd3ZaR1ZqYjNKaGRHOXljeTkxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUnk5RU96czdPenM3T3p0SFFWRkhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHMUNRVUZ0UWl4RFFVTnFReXhKUVVGbE8wbEJSV1lzVFVGQlRTeFZRVUZWTEVkQlFUQkVPMUZCUTNoRkxFZEJRVWNzUlVGQlJTeEhRVUZITzFGQlExSXNTVUZCU1N4RlFVRkZMRWxCUVVrN1VVRkRWaXhIUVVGSExFVkJRVVVzUjBGQlJ6dFJRVU5TTEV0QlFVc3NSVUZCUlN4TFFVRkxPMUZCUTFvc1RVRkJUU3hGUVVGRkxFMUJRVTA3UzBGRFppeERRVUZETzBsQlJVWXNUVUZCVFN4VFFVRlRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlJXNURMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dFJRVU5tTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUTJJc01FSkJRVEJDTEVsQlFVa3NNa05CUVRKRExFTkJRekZGTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1QwRkJUeXhUUVVGVExFTkJRVU03UVVGRGJrSXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFUmxiR1YwWlN3Z1IyVjBMQ0JRWVhSamFDd2dVRzl6ZEN3Z1VIVjBJSDBnWm5KdmJTQmNJa0J1WlhOMGFuTXZZMjl0Ylc5dVhDSTdYRzVwYlhCdmNuUWdleUJJZEhSd1ZtVnlZbk1nZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dVhHNHZLaXBjYmlBcUlFMWhjSE1nWVc0Z1NGUlVVQ0IyWlhKaUlIUnZJR2wwY3lCamIzSnlaWE53YjI1a2FXNW5JRTVsYzNSS1V5QnRaWFJvYjJRZ1pHVmpiM0poZEc5eUxseHVJQ3BjYmlBcUlFQndZWEpoYlNCMlpYSmlJQzBnU0ZSVVVDQjJaWEppSUhSdklHSmxJR052Ym5abGNuUmxaQ0FvWlM1bkxpQkhSVlFzSUZCUFUxUXNJRkJWVkN3Z1VFRlVRMGdzSUVSRlRFVlVSU2t1WEc0Z0tpQkFjbVYwZFhKdWN5QkJJRTVsYzNSS1V5QnRaWFJvYjJRZ1pHVmpiM0poZEc5eUlHMWhkR05vYVc1bklIUm9aU0J3Y205MmFXUmxaQ0JJVkZSUUlIWmxjbUl1WEc0Z0tseHVJQ29nUUhSb2NtOTNjeUI3UlhKeWIzSjlJRWxtSUhSb1pTQndjbTkyYVdSbFpDQklWRlJRSUhabGNtSWdhWE1nYm05MElITjFjSEJ2Y25SbFpDQnZjaUJ1YjNRZ2JXRndjR1ZrWEc0Z0tpQjBieUJoSUU1bGMzUktVeUJrWldOdmNtRjBiM0l1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQklkSFJ3Vm1WeVlsUnZSR1ZqYjNKaGRHOXlLRnh1SUNCMlpYSmlPaUJJZEhSd1ZtVnlZbk5jYmlrNklDaHdZWFJvUHpvZ2MzUnlhVzVuS1NBOVBpQk5aWFJvYjJSRVpXTnZjbUYwYjNJZ2UxeHVJQ0JqYjI1emRDQm9kSFJ3Vkc5RGNuVmtPaUJTWldOdmNtUThTSFIwY0ZabGNtSnpMQ0FvY0dGMGFEODZJSE4wY21sdVp5a2dQVDRnVFdWMGFHOWtSR1ZqYjNKaGRHOXlQaUE5SUh0Y2JpQWdJQ0JIUlZRNklFZGxkQ3hjYmlBZ0lDQlFUMU5VT2lCUWIzTjBMRnh1SUNBZ0lGQlZWRG9nVUhWMExGeHVJQ0FnSUZCQlZFTklPaUJRWVhSamFDeGNiaUFnSUNCRVJVeEZWRVU2SUVSbGJHVjBaU3hjYmlBZ2ZUdGNibHh1SUNCamIyNXpkQ0JrWldOdmNtRjBiM0lnUFNCb2RIUndWRzlEY25Wa1czWmxjbUpkTzF4dVhHNGdJR2xtSUNnaFpHVmpiM0poZEc5eUtTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0Z4dUlDQWdJQ0FnWUZWdWMzVndjRzl5ZEdWa0lFaFVWRkFnZG1WeVlpQmNJaVI3ZG1WeVluMWNJaTRnVG04Z1RtVnpkRXBUSUdSbFkyOXlZWFJ2Y2lCdFlYQndhVzVuSUhkaGN5Qm1iM1Z1WkM1Z1hHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCa1pXTnZjbUYwYjNJN1hHNTlYRzRpWFgwPSJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjYWYtbW9kZWwvZGVjb3JhdG9ycy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxJQUFlO0lBRWYsTUFBTSxVQUFVLEdBQTBEO1FBQ3hFLEdBQUcsRUFBRSxHQUFHO1FBQ1IsSUFBSSxFQUFFLElBQUk7UUFDVixHQUFHLEVBQUUsR0FBRztRQUNSLEtBQUssRUFBRSxLQUFLO1FBQ1osTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5DLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxnQkFBZ0IsQ0FDeEIsMEJBQTBCLElBQUksMkNBQTJDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlbGV0ZSwgR2V0LCBQYXRjaCwgUG9zdCwgUHV0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBIdHRwVmVyYnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuXG4vKipcbiAqIE1hcHMgYW4gSFRUUCB2ZXJiIHRvIGl0cyBjb3JyZXNwb25kaW5nIE5lc3RKUyBtZXRob2QgZGVjb3JhdG9yLlxuICpcbiAqIEBwYXJhbSB2ZXJiIC0gSFRUUCB2ZXJiIHRvIGJlIGNvbnZlcnRlZCAoZS5nLiBHRVQsIFBPU1QsIFBVVCwgUEFUQ0gsIERFTEVURSkuXG4gKiBAcmV0dXJucyBBIE5lc3RKUyBtZXRob2QgZGVjb3JhdG9yIG1hdGNoaW5nIHRoZSBwcm92aWRlZCBIVFRQIHZlcmIuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBwcm92aWRlZCBIVFRQIHZlcmIgaXMgbm90IHN1cHBvcnRlZCBvciBub3QgbWFwcGVkXG4gKiB0byBhIE5lc3RKUyBkZWNvcmF0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBIdHRwVmVyYlRvRGVjb3JhdG9yKFxuICB2ZXJiOiBIdHRwVmVyYnNcbik6IChwYXRoPzogc3RyaW5nKSA9PiBNZXRob2REZWNvcmF0b3Ige1xuICBjb25zdCBodHRwVG9DcnVkOiBSZWNvcmQ8SHR0cFZlcmJzLCAocGF0aD86IHN0cmluZykgPT4gTWV0aG9kRGVjb3JhdG9yPiA9IHtcbiAgICBHRVQ6IEdldCxcbiAgICBQT1NUOiBQb3N0LFxuICAgIFBVVDogUHV0LFxuICAgIFBBVENIOiBQYXRjaCxcbiAgICBERUxFVEU6IERlbGV0ZSxcbiAgfTtcblxuICBjb25zdCBkZWNvcmF0b3IgPSBodHRwVG9DcnVkW3ZlcmJdO1xuXG4gIGlmICghZGVjb3JhdG9yKSB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBgVW5zdXBwb3J0ZWQgSFRUUCB2ZXJiIFwiJHt2ZXJifVwiLiBObyBOZXN0SlMgZGVjb3JhdG9yIG1hcHBpbmcgd2FzIGZvdW5kLmBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGRlY29yYXRvcjtcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBLGtEQWFDO0FBeEJELDJDQUErRDtBQUMvRCx5Q0FBa0Q7QUFDbEQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFJO0lBQ3BDLE1BQU0sVUFBVSxHQUFHO1FBQ2YsR0FBRyxFQUFFLFlBQUc7UUFDUixJQUFJLEVBQUUsYUFBSTtRQUNWLEdBQUcsRUFBRSxZQUFHO1FBQ1IsS0FBSyxFQUFFLGNBQUs7UUFDWixNQUFNLEVBQUUsZUFBTTtLQUNqQixDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSx1QkFBZ0IsQ0FBQywwQkFBMEIsSUFBSSwyQ0FBMkMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBQ0QsMHJFQUEwckUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWxldGUsIEdldCwgUGF0Y2gsIFBvc3QsIFB1dCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuLyoqXG4gKiBNYXBzIGFuIEhUVFAgdmVyYiB0byBpdHMgY29ycmVzcG9uZGluZyBOZXN0SlMgbWV0aG9kIGRlY29yYXRvci5cbiAqXG4gKiBAcGFyYW0gdmVyYiAtIEhUVFAgdmVyYiB0byBiZSBjb252ZXJ0ZWQgKGUuZy4gR0VULCBQT1NULCBQVVQsIFBBVENILCBERUxFVEUpLlxuICogQHJldHVybnMgQSBOZXN0SlMgbWV0aG9kIGRlY29yYXRvciBtYXRjaGluZyB0aGUgcHJvdmlkZWQgSFRUUCB2ZXJiLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgcHJvdmlkZWQgSFRUUCB2ZXJiIGlzIG5vdCBzdXBwb3J0ZWQgb3Igbm90IG1hcHBlZFxuICogdG8gYSBOZXN0SlMgZGVjb3JhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gSHR0cFZlcmJUb0RlY29yYXRvcih2ZXJiKSB7XG4gICAgY29uc3QgaHR0cFRvQ3J1ZCA9IHtcbiAgICAgICAgR0VUOiBHZXQsXG4gICAgICAgIFBPU1Q6IFBvc3QsXG4gICAgICAgIFBVVDogUHV0LFxuICAgICAgICBQQVRDSDogUGF0Y2gsXG4gICAgICAgIERFTEVURTogRGVsZXRlLFxuICAgIH07XG4gICAgY29uc3QgZGVjb3JhdG9yID0gaHR0cFRvQ3J1ZFt2ZXJiXTtcbiAgICBpZiAoIWRlY29yYXRvcikge1xuICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihgVW5zdXBwb3J0ZWQgSFRUUCB2ZXJiIFwiJHt2ZXJifVwiLiBObyBOZXN0SlMgZGVjb3JhdG9yIG1hcHBpbmcgd2FzIGZvdW5kLmApO1xuICAgIH1cbiAgICByZXR1cm4gZGVjb3JhdG9yO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFhScGJITXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WkdWallXWXRiVzlrWld3dlpHVmpiM0poZEc5eWN5OTFkR2xzY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzUlVGQlJTeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJSUzlFTEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUlVGQlJTeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJSV3hFT3pzN096czdPenRIUVZGSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEcxQ1FVRnRRaXhEUVVOcVF5eEpRVUZsTzBsQlJXWXNUVUZCVFN4VlFVRlZMRWRCUVRCRU8xRkJRM2hGTEVkQlFVY3NSVUZCUlN4SFFVRkhPMUZCUTFJc1NVRkJTU3hGUVVGRkxFbEJRVWs3VVVGRFZpeEhRVUZITEVWQlFVVXNSMEZCUnp0UlFVTlNMRXRCUVVzc1JVRkJSU3hMUVVGTE8xRkJRMW9zVFVGQlRTeEZRVUZGTEUxQlFVMDdTMEZEWml4RFFVRkRPMGxCUlVZc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUlc1RExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0UlFVTm1MRTFCUVUwc1NVRkJTU3huUWtGQlowSXNRMEZEZUVJc01FSkJRVEJDTEVsQlFVa3NNa05CUVRKRExFTkJRekZGTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1QwRkJUeXhUUVVGVExFTkJRVU03UVVGRGJrSXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFUmxiR1YwWlN3Z1IyVjBMQ0JRWVhSamFDd2dVRzl6ZEN3Z1VIVjBJSDBnWm5KdmJTQmNJa0J1WlhOMGFuTXZZMjl0Ylc5dVhDSTdYRzVwYlhCdmNuUWdleUJJZEhSd1ZtVnlZbk1nZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1ZXNXpkWEJ3YjNKMFpXUkZjbkp2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dVhHNHZLaXBjYmlBcUlFMWhjSE1nWVc0Z1NGUlVVQ0IyWlhKaUlIUnZJR2wwY3lCamIzSnlaWE53YjI1a2FXNW5JRTVsYzNSS1V5QnRaWFJvYjJRZ1pHVmpiM0poZEc5eUxseHVJQ3BjYmlBcUlFQndZWEpoYlNCMlpYSmlJQzBnU0ZSVVVDQjJaWEppSUhSdklHSmxJR052Ym5abGNuUmxaQ0FvWlM1bkxpQkhSVlFzSUZCUFUxUXNJRkJWVkN3Z1VFRlVRMGdzSUVSRlRFVlVSU2t1WEc0Z0tpQkFjbVYwZFhKdWN5QkJJRTVsYzNSS1V5QnRaWFJvYjJRZ1pHVmpiM0poZEc5eUlHMWhkR05vYVc1bklIUm9aU0J3Y205MmFXUmxaQ0JJVkZSUUlIWmxjbUl1WEc0Z0tseHVJQ29nUUhSb2NtOTNjeUI3UlhKeWIzSjlJRWxtSUhSb1pTQndjbTkyYVdSbFpDQklWRlJRSUhabGNtSWdhWE1nYm05MElITjFjSEJ2Y25SbFpDQnZjaUJ1YjNRZ2JXRndjR1ZrWEc0Z0tpQjBieUJoSUU1bGMzUktVeUJrWldOdmNtRjBiM0l1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQklkSFJ3Vm1WeVlsUnZSR1ZqYjNKaGRHOXlLRnh1SUNCMlpYSmlPaUJJZEhSd1ZtVnlZbk5jYmlrNklDaHdZWFJvUHpvZ2MzUnlhVzVuS1NBOVBpQk5aWFJvYjJSRVpXTnZjbUYwYjNJZ2UxeHVJQ0JqYjI1emRDQm9kSFJ3Vkc5RGNuVmtPaUJTWldOdmNtUThTSFIwY0ZabGNtSnpMQ0FvY0dGMGFEODZJSE4wY21sdVp5a2dQVDRnVFdWMGFHOWtSR1ZqYjNKaGRHOXlQaUE5SUh0Y2JpQWdJQ0JIUlZRNklFZGxkQ3hjYmlBZ0lDQlFUMU5VT2lCUWIzTjBMRnh1SUNBZ0lGQlZWRG9nVUhWMExGeHVJQ0FnSUZCQlZFTklPaUJRWVhSamFDeGNiaUFnSUNCRVJVeEZWRVU2SUVSbGJHVjBaU3hjYmlBZ2ZUdGNibHh1SUNCamIyNXpkQ0JrWldOdmNtRjBiM0lnUFNCb2RIUndWRzlEY25Wa1czWmxjbUpkTzF4dVhHNGdJR2xtSUNnaFpHVmpiM0poZEc5eUtTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lGVnVjM1Z3Y0c5eWRHVmtSWEp5YjNJb1hHNGdJQ0FnSUNCZ1ZXNXpkWEJ3YjNKMFpXUWdTRlJVVUNCMlpYSmlJRndpSkh0MlpYSmlmVndpTGlCT2J5Qk9aWE4wU2xNZ1pHVmpiM0poZEc5eUlHMWhjSEJwYm1jZ2QyRnpJR1p2ZFc1a0xtQmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlHUmxZMjl5WVhSdmNqdGNibjFjYmlKZGZRPT0iXX0=
@@ -10,6 +10,7 @@ const swagger_1 = require("@nestjs/swagger");
10
10
  const index_js_1 = require("./decorators/index.cjs");
11
11
  const core_1 = require("@decaf-ts/core");
12
12
  const utils_js_1 = require("./decorators/utils.cjs");
13
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
13
14
  const extractPathParams = (routePath) => {
14
15
  return routePath
15
16
  .split("/")
@@ -22,6 +23,11 @@ const apiParamSpec = (name) => ({
22
23
  required: true,
23
24
  type: String,
24
25
  });
26
+ function toDecafError(error, fallbackMessage) {
27
+ if (error instanceof db_decorators_1.BaseError)
28
+ return error;
29
+ return new db_decorators_1.InternalError(error instanceof Error ? `${fallbackMessage}: ${error.message}` : fallbackMessage);
30
+ }
25
31
  function getApiDecorators(methodName, routePath, httpVerb, includeQueryParams = false) {
26
32
  const NestHttpRouteDec = (0, utils_js_1.HttpVerbToDecorator)(httpVerb);
27
33
  const apiPathParams = extractPathParams(routePath).map(apiParamSpec);
@@ -73,7 +79,7 @@ function resolvePersistenceMethod(persistence, methodName, ...args) {
73
79
  }
74
80
  if (typeof persistence[methodName] === "function")
75
81
  return persistence[methodName](...args);
76
- throw new Error(`Persistence method "${methodName}" not found on ${persistence?.constructor?.name}`);
82
+ throw new db_decorators_1.InternalError(`Persistence method "${methodName}" not found on ${persistence?.constructor?.name}`);
77
83
  }
78
84
  function createRouteHandler(methodName) {
79
85
  return async function (pathParams, queryParams) {
@@ -85,7 +91,7 @@ function createRouteHandler(methodName) {
85
91
  }
86
92
  catch (e) {
87
93
  log.error(`Custom query "${methodName}" failed`, e);
88
- throw e;
94
+ throw toDecafError(e, `Custom query "${methodName}" failed`);
89
95
  }
90
96
  };
91
97
  }
@@ -96,5 +102,5 @@ function defineRouteMethod(ControllerClass, methodName, handler) {
96
102
  });
97
103
  return Object.getOwnPropertyDescriptor(ControllerClass.prototype || ControllerClass, methodName);
98
104
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVjYWYtbW9kZWwvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFlBQVksRUFDWixRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUdMLFdBQVcsR0FDWiw4QkFBcUI7QUFFdEIsT0FBTyxFQUVMLFlBQVksRUFDWixjQUFjLEdBRWYsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsOEJBQTJCO0FBR3pELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFpQixFQUFZLEVBQUU7SUFDeEQsT0FBTyxTQUFTO1NBQ2IsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBb0IsRUFBRSxDQUFDLENBQUM7SUFDeEQsSUFBSTtJQUNKLFdBQVcsRUFBRSxHQUFHLElBQUksMEJBQTBCO0lBQzlDLFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLE1BQU07Q0FDYixDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFVBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLFFBQW1CLEVBQ25CLHFCQUE4QixLQUFLO0lBRW5DLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7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LENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQztZQUNILEdBQUcsQ0FBQyxLQUFLLENBQ1AsZ0NBQWdDLFVBQVUsdUJBQXVCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQzVHLENBQUM7WUFDRixNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUM7WUFDakQsT0FBTyxNQUFNLHdCQUF3QixDQUNuQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQ2xCLFVBQVUsRUFDVixHQUFHLFVBQVUsQ0FBQyxhQUFhLEVBQzNCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxDQUNQLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixVQUFVLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixlQUE0QyxFQUM1QyxVQUFrQixFQUNsQixPQUFnQztJQUVoQyxNQUFNLENBQUMsY0FBYyxDQUNuQixlQUFlLENBQUMsU0FBUyxJQUFJLGVBQWUsRUFDNUMsVUFBVSxFQUNWO1FBQ0UsS0FBSyxFQUFFLE9BQU87UUFDZCxRQUFRLEVBQUUsS0FBSztLQUNoQixDQUNGLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDcEMsZUFBZSxDQUFDLFNBQVMsSUFBSSxlQUFlLEVBQzVDLFVBQVUsQ0FDWCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IHR5cGUgRGVjb3JhdG9yQnVuZGxlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7XG4gIEFwaU5vQ29udGVudFJlc3BvbnNlLFxuICBBcGlPa1Jlc3BvbnNlLFxuICBBcGlPcGVyYXRpb24sXG4gIEFwaVBhcmFtLFxuICBBcGlRdWVyeSxcbn0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuaW1wb3J0IHtcbiAgRGVjYWZBcGlQcm9wZXJ0eSxcbiAgdHlwZSBEZWNhZlBhcmFtUHJvcHMsXG4gIERlY2FmUGFyYW1zLFxufSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7IEh0dHBWZXJicyB9IGZyb20gXCIuL2RlY29yYXRvcnMvdHlwZXNcIjtcbmltcG9ydCB7XG4gIERpcmVjdGlvbkxpbWl0T2Zmc2V0LFxuICBNb2RlbFNlcnZpY2UsXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBSZXBvLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgSHR0cFZlcmJUb0RlY29yYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnMvdXRpbHNcIjtcbmltcG9ydCB7IERlY2FmTW9kZWxDb250cm9sbGVyIH0gZnJvbSBcIi4uL2NvbnRyb2xsZXJzXCI7XG5cbmNvbnN0IGV4dHJhY3RQYXRoUGFyYW1zID0gKHJvdXRlUGF0aDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuICByZXR1cm4gcm91dGVQYXRoXG4gICAgLnNwbGl0KFwiL1wiKVxuICAgIC5maWx0ZXIoKHApID0+IHAuc3RhcnRzV2l0aChcIjpcIikpXG4gICAgLm1hcCgocCkgPT4gcC5zbGljZSgxKSk7XG59O1xuXG5jb25zdCBhcGlQYXJhbVNwZWMgPSAobmFtZTogc3RyaW5nKTogRGVjYWZBcGlQcm9wZXJ0eSA9PiAoe1xuICBuYW1lLFxuICBkZXNjcmlwdGlvbjogYCR7bmFtZX0gcGFyYW1ldGVyIGZvciB0aGUgcXVlcnlgLFxuICByZXF1aXJlZDogdHJ1ZSxcbiAgdHlwZTogU3RyaW5nLFxufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcGlEZWNvcmF0b3JzKFxuICBtZXRob2ROYW1lOiBzdHJpbmcsXG4gIHJvdXRlUGF0aDogc3RyaW5nLFxuICBodHRwVmVyYjogSHR0cFZlcmJzLFxuICBpbmNsdWRlUXVlcnlQYXJhbXM6IGJvb2xlYW4gPSBmYWxzZVxuKTogRGVjb3JhdG9yQnVuZGxlIHtcbiAgY29uc3QgTmVzdEh0dHBSb3V0ZURlYyA9IEh0dHBWZXJiVG9EZWNvcmF0b3IoaHR0cFZlcmIpO1xuICBjb25zdCBhcGlQYXRoUGFyYW1zID0gZXh0cmFjdFBhdGhQYXJhbXMocm91dGVQYXRoKS5tYXAoYXBpUGFyYW1TcGVjKTtcblxuICBjb25zdCBzd2FnZ2VyUXVlcnlQYXJhbXMgPSBbXTtcbiAgaWYgKGh0dHBWZXJiID09PSBcIkdFVFwiICYmIGluY2x1ZGVRdWVyeVBhcmFtcykge1xuICAgIHN3YWdnZXJRdWVyeVBhcmFtcy5wdXNoKFxuICAgICAgQXBpUXVlcnkoe1xuICAgICAgICBuYW1lOiBcImRpcmVjdGlvblwiLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVudW06IE9yZGVyRGlyZWN0aW9uLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJ0aGUgc29ydCBvcmRlciB3aGVuIGFwcGxpY2FibGVcIixcbiAgICAgIH0pLFxuICAgICAgQXBpUXVlcnkoe1xuICAgICAgICBuYW1lOiBcImxpbWl0XCIsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwibGltaXQgb3IgcGFnZSBzaXplIHdoZW4gYXBwbGljYWJsZVwiLFxuICAgICAgfSksXG4gICAgICBBcGlRdWVyeSh7XG4gICAgICAgIG5hbWU6IFwib2Zmc2V0XCIsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwib2Zmc2V0IG9yIGJvb2ttYXJrIHdoZW4gYXBwbGljYWJsZVwiLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtZXRob2Q6IFtcbiAgICAgIE5lc3RIdHRwUm91dGVEZWMocm91dGVQYXRoKSxcbiAgICAgIC4uLmFwaVBhdGhQYXJhbXMubWFwKEFwaVBhcmFtKSxcbiAgICAgIC4uLnN3YWdnZXJRdWVyeVBhcmFtcyxcbiAgICAgIEFwaU9wZXJhdGlvbih7XG4gICAgICAgIHN1bW1hcnk6IGBSZXRyaWV2ZSByZWNvcmRzIHVzaW5nIGFjY29yZGluZyB0byBcIiR7bWV0aG9kTmFtZX1cIi5gLFxuICAgICAgfSksXG4gICAgICBBcGlPa1Jlc3BvbnNlKHtcbiAgICAgICAgZGVzY3JpcHRpb246IGBSZXN1bHQgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZC5gLFxuICAgICAgfSksXG4gICAgICBBcGlOb0NvbnRlbnRSZXNwb25zZSh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgTm8gY29udGVudCByZXR1cm5lZCBieSB0aGUgbWV0aG9kLmAsXG4gICAgICB9KSxcbiAgICBdLFxuICAgIHBhcmFtczogW0RlY2FmUGFyYW1zKGFwaVBhdGhQYXJhbXMpLCBRdWVyeSgpXSwgLy8gLCBEZWNhZkJvZHkoKV0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUFwaURlY29yYXRvcnMoXG4gIHRhcmdldDogYW55LFxuICBtZXRob2ROYW1lOiBzdHJpbmcsXG4gIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcixcbiAgZGVjb3JhdG9yczogRGVjb3JhdG9yQnVuZGxlXG4pIHtcbiAgY29uc3QgcHJvdG8gPSB0YXJnZXQ/LnByb3RvdHlwZSA/PyB0YXJnZXQ7XG4gIGRlY29yYXRvcnMubWV0aG9kLmZvckVhY2goKGQpID0+IGQocHJvdG8sIG1ldGhvZE5hbWUsIGRlc2NyaXB0b3IpKTtcbiAgZGVjb3JhdG9ycy5wYXJhbXM/LmZvckVhY2goKGQsIGluZGV4KSA9PiBkKHByb3RvLCBtZXRob2ROYW1lLCBpbmRleCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBlcnNpc3RlbmNlTWV0aG9kPFQgZXh0ZW5kcyBNb2RlbDxib29sZWFuPj4oXG4gIHBlcnNpc3RlbmNlOiBSZXBvPFQ+IHwgTW9kZWxTZXJ2aWNlPFQ+LFxuICBtZXRob2ROYW1lOiBzdHJpbmcsXG4gIC4uLmFyZ3M6IGFueVtdXG4pOiBhbnkge1xuICBpZiAocGVyc2lzdGVuY2UgaW5zdGFuY2VvZiBNb2RlbFNlcnZpY2UpIHtcbiAgICByZXR1cm4gdHlwZW9mIChwZXJzaXN0ZW5jZSBhcyBhbnkpW21ldGhvZE5hbWVdID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gKHBlcnNpc3RlbmNlIGFzIGFueSlbbWV0aG9kTmFtZV0oLi4uYXJncylcbiAgICAgIDogcGVyc2lzdGVuY2Uuc3RhdGVtZW50KG1ldGhvZE5hbWUsIC4uLmFyZ3MpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiAocGVyc2lzdGVuY2UgYXMgYW55KVttZXRob2ROYW1lXSA9PT0gXCJmdW5jdGlvblwiKVxuICAgIHJldHVybiAocGVyc2lzdGVuY2UgYXMgYW55KVttZXRob2ROYW1lXSguLi5hcmdzKTtcblxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYFBlcnNpc3RlbmNlIG1ldGhvZCBcIiR7bWV0aG9kTmFtZX1cIiBub3QgZm91bmQgb24gJHtwZXJzaXN0ZW5jZT8uY29uc3RydWN0b3I/Lm5hbWV9YFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUm91dGVIYW5kbGVyPFQ+KG1ldGhvZE5hbWU6IHN0cmluZykge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgIHRoaXM6IERlY2FmTW9kZWxDb250cm9sbGVyPGFueT4sXG4gICAgcGF0aFBhcmFtczogRGVjYWZQYXJhbVByb3BzLFxuICAgIHF1ZXJ5UGFyYW1zOiBEaXJlY3Rpb25MaW1pdE9mZnNldFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBsb2c6IExvZ2dlciA9IHRoaXMubG9nLmZvcihtZXRob2ROYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBJbnZva2luZyBwZXJzaXN0ZW5jZSBtZXRob2QgXCIke21ldGhvZE5hbWV9XCIgZ2l2ZW4gcGFyYW1ldGVyczogJHtKU09OLnN0cmluZ2lmeShwYXRoUGFyYW1zLnZhbHVlc0luT3JkZXIpfWBcbiAgICAgICk7XG4gICAgICBjb25zdCB7IGRpcmVjdGlvbiwgbGltaXQsIG9mZnNldCB9ID0gcXVlcnlQYXJhbXM7XG4gICAgICByZXR1cm4gYXdhaXQgcmVzb2x2ZVBlcnNpc3RlbmNlTWV0aG9kKFxuICAgICAgICB0aGlzLnBlcnNpc3RlbmNlKCksXG4gICAgICAgIG1ldGhvZE5hbWUsXG4gICAgICAgIC4uLnBhdGhQYXJhbXMudmFsdWVzSW5PcmRlcixcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBsaW1pdCxcbiAgICAgICAgb2Zmc2V0XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgbG9nLmVycm9yKGBDdXN0b20gcXVlcnkgXCIke21ldGhvZE5hbWV9XCIgZmFpbGVkYCwgZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVJvdXRlTWV0aG9kKFxuICBDb250cm9sbGVyQ2xhc3M6IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueSxcbiAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICBoYW5kbGVyOiAoLi4uYXJnczogYW55W10pID0+IGFueVxuKTogUHJvcGVydHlEZXNjcmlwdG9yIHwgdW5kZWZpbmVkIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgIENvbnRyb2xsZXJDbGFzcy5wcm90b3R5cGUgfHwgQ29udHJvbGxlckNsYXNzLFxuICAgIG1ldGhvZE5hbWUsXG4gICAge1xuICAgICAgdmFsdWU6IGhhbmRsZXIsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgfVxuICApO1xuXG4gIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICAgIENvbnRyb2xsZXJDbGFzcy5wcm90b3R5cGUgfHwgQ29udHJvbGxlckNsYXNzLFxuICAgIG1ldGhvZE5hbWVcbiAgKTtcbn1cbiJdfQ==
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSw0Q0FxQ0M7QUFDRCxnREFJQztBQUNELDREQVNDO0FBQ0QsZ0RBYUM7QUFDRCw4Q0FNQztBQTFGRCwyQ0FBdUM7QUFDdkMsNkNBQXlHO0FBQ3pHLG9EQUFxRDtBQUNyRCx5Q0FBK0Q7QUFDL0Qsb0RBQTREO0FBQzVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRTtJQUNwQyxPQUFPLFNBQVM7U0FDWCxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUNGLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLElBQUk7SUFDSixXQUFXLEVBQUUsR0FBRyxJQUFJLDBCQUEwQjtJQUM5QyxRQUFRLEVBQUUsSUFBSTtJQUNkLElBQUksRUFBRSxNQUFNO0NBQ2YsQ0FBQyxDQUFDO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEdBQUcsS0FBSztJQUN4RixNQUFNLGdCQUFnQixHQUFHLElBQUEsOEJBQW1CLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLElBQUksUUFBUSxLQUFLLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxDQUFD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RSxDQUFDLENBQUM7WUFDdkgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDO1lBQ2pELE9BQU8sTUFBTSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pJLENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1AsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsVUFBVSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTSxDQUFDLENBQUM7UUFDWixDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNELFNBQWdCLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsT0FBTztJQUNsRSxNQUFNLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxTQUFTLElBQUksZUFBZSxFQUFFLFVBQVUsRUFBRTtRQUM1RSxLQUFLLEVBQUUsT0FBTztRQUNkLFFBQVEsRUFBRSxLQUFLO0tBQ2xCLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxTQUFTLElBQUksZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3JHLENBQUM7QUFDRCxzdFZBQXN0ViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBBcGlOb0NvbnRlbnRSZXNwb25zZSwgQXBpT2tSZXNwb25zZSwgQXBpT3BlcmF0aW9uLCBBcGlQYXJhbSwgQXBpUXVlcnksIH0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuaW1wb3J0IHsgRGVjYWZQYXJhbXMsIH0gZnJvbSBcIi4vZGVjb3JhdG9ycy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgTW9kZWxTZXJ2aWNlLCBPcmRlckRpcmVjdGlvbiwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEh0dHBWZXJiVG9EZWNvcmF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzL3V0aWxzLmpzXCI7XG5jb25zdCBleHRyYWN0UGF0aFBhcmFtcyA9IChyb3V0ZVBhdGgpID0+IHtcbiAgICByZXR1cm4gcm91dGVQYXRoXG4gICAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgICAgLmZpbHRlcigocCkgPT4gcC5zdGFydHNXaXRoKFwiOlwiKSlcbiAgICAgICAgLm1hcCgocCkgPT4gcC5zbGljZSgxKSk7XG59O1xuY29uc3QgYXBpUGFyYW1TcGVjID0gKG5hbWUpID0+ICh7XG4gICAgbmFtZSxcbiAgICBkZXNjcmlwdGlvbjogYCR7bmFtZX0gcGFyYW1ldGVyIGZvciB0aGUgcXVlcnlgLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIHR5cGU6IFN0cmluZyxcbn0pO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFwaURlY29yYXRvcnMobWV0aG9kTmFtZSwgcm91dGVQYXRoLCBodHRwVmVyYiwgaW5jbHVkZVF1ZXJ5UGFyYW1zID0gZmFsc2UpIHtcbiAgICBjb25zdCBOZXN0SHR0cFJvdXRlRGVjID0gSHR0cFZlcmJUb0RlY29yYXRvcihodHRwVmVyYik7XG4gICAgY29uc3QgYXBpUGF0aFBhcmFtcyA9IGV4dHJhY3RQYXRoUGFyYW1zKHJvdXRlUGF0aCkubWFwKGFwaVBhcmFtU3BlYyk7XG4gICAgY29uc3Qgc3dhZ2dlclF1ZXJ5UGFyYW1zID0gW107XG4gICAgaWYgKGh0dHBWZXJiID09PSBcIkdFVFwiICYmIGluY2x1ZGVRdWVyeVBhcmFtcykge1xuICAgICAgICBzd2FnZ2VyUXVlcnlQYXJhbXMucHVzaChBcGlRdWVyeSh7XG4gICAgICAgICAgICBuYW1lOiBcImRpcmVjdGlvblwiLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZW51bTogT3JkZXJEaXJlY3Rpb24sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJ0aGUgc29ydCBvcmRlciB3aGVuIGFwcGxpY2FibGVcIixcbiAgICAgICAgfSksIEFwaVF1ZXJ5KHtcbiAgICAgICAgICAgIG5hbWU6IFwibGltaXRcIixcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcImxpbWl0IG9yIHBhZ2Ugc2l6ZSB3aGVuIGFwcGxpY2FibGVcIixcbiAgICAgICAgfSksIEFwaVF1ZXJ5KHtcbiAgICAgICAgICAgIG5hbWU6IFwib2Zmc2V0XCIsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJvZmZzZXQgb3IgYm9va21hcmsgd2hlbiBhcHBsaWNhYmxlXCIsXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBbXG4gICAgICAgICAgICBOZXN0SHR0cFJvdXRlRGVjKHJvdXRlUGF0aCksXG4gICAgICAgICAgICAuLi5hcGlQYXRoUGFyYW1zLm1hcChBcGlQYXJhbSksXG4gICAgICAgICAgICAuLi5zd2FnZ2VyUXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBBcGlPcGVyYXRpb24oe1xuICAgICAgICAgICAgICAgIHN1bW1hcnk6IGBSZXRyaWV2ZSByZWNvcmRzIHVzaW5nIGFjY29yZGluZyB0byBcIiR7bWV0aG9kTmFtZX1cIi5gLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBBcGlPa1Jlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFJlc3VsdCBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLmAsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIEFwaU5vQ29udGVudFJlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYE5vIGNvbnRlbnQgcmV0dXJuZWQgYnkgdGhlIG1ldGhvZC5gLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIHBhcmFtczogW0RlY2FmUGFyYW1zKGFwaVBhdGhQYXJhbXMpLCBRdWVyeSgpXSwgLy8gLCBEZWNhZkJvZHkoKV0sXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUFwaURlY29yYXRvcnModGFyZ2V0LCBtZXRob2ROYW1lLCBkZXNjcmlwdG9yLCBkZWNvcmF0b3JzKSB7XG4gICAgY29uc3QgcHJvdG8gPSB0YXJnZXQ/LnByb3RvdHlwZSA/PyB0YXJnZXQ7XG4gICAgZGVjb3JhdG9ycy5tZXRob2QuZm9yRWFjaCgoZCkgPT4gZChwcm90bywgbWV0aG9kTmFtZSwgZGVzY3JpcHRvcikpO1xuICAgIGRlY29yYXRvcnMucGFyYW1zPy5mb3JFYWNoKChkLCBpbmRleCkgPT4gZChwcm90bywgbWV0aG9kTmFtZSwgaW5kZXgpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGVyc2lzdGVuY2VNZXRob2QocGVyc2lzdGVuY2UsIG1ldGhvZE5hbWUsIC4uLmFyZ3MpIHtcbiAgICBpZiAocGVyc2lzdGVuY2UgaW5zdGFuY2VvZiBNb2RlbFNlcnZpY2UpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBwZXJzaXN0ZW5jZVttZXRob2ROYW1lXSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICA/IHBlcnNpc3RlbmNlW21ldGhvZE5hbWVdKC4uLmFyZ3MpXG4gICAgICAgICAgICA6IHBlcnNpc3RlbmNlLnN0YXRlbWVudChtZXRob2ROYW1lLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwZXJzaXN0ZW5jZVttZXRob2ROYW1lXSA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICByZXR1cm4gcGVyc2lzdGVuY2VbbWV0aG9kTmFtZV0oLi4uYXJncyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBQZXJzaXN0ZW5jZSBtZXRob2QgXCIke21ldGhvZE5hbWV9XCIgbm90IGZvdW5kIG9uICR7cGVyc2lzdGVuY2U/LmNvbnN0cnVjdG9yPy5uYW1lfWApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvdXRlSGFuZGxlcihtZXRob2ROYW1lKSB7XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcykge1xuICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IobWV0aG9kTmFtZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYEludm9raW5nIHBlcnNpc3RlbmNlIG1ldGhvZCBcIiR7bWV0aG9kTmFtZX1cIiBnaXZlbiBwYXJhbWV0ZXJzOiAke0pTT04uc3RyaW5naWZ5KHBhdGhQYXJhbXMudmFsdWVzSW5PcmRlcil9YCk7XG4gICAgICAgICAgICBjb25zdCB7IGRpcmVjdGlvbiwgbGltaXQsIG9mZnNldCB9ID0gcXVlcnlQYXJhbXM7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzb2x2ZVBlcnNpc3RlbmNlTWV0aG9kKHRoaXMucGVyc2lzdGVuY2UoKSwgbWV0aG9kTmFtZSwgLi4ucGF0aFBhcmFtcy52YWx1ZXNJbk9yZGVyLCBkaXJlY3Rpb24sIGxpbWl0LCBvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoYEN1c3RvbSBxdWVyeSBcIiR7bWV0aG9kTmFtZX1cIiBmYWlsZWRgLCBlKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVJvdXRlTWV0aG9kKENvbnRyb2xsZXJDbGFzcywgbWV0aG9kTmFtZSwgaGFuZGxlcikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb250cm9sbGVyQ2xhc3MucHJvdG90eXBlIHx8IENvbnRyb2xsZXJDbGFzcywgbWV0aG9kTmFtZSwge1xuICAgICAgICB2YWx1ZTogaGFuZGxlcixcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0pO1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKENvbnRyb2xsZXJDbGFzcy5wcm90b3R5cGUgfHwgQ29udHJvbGxlckNsYXNzLCBtZXRob2ROYW1lKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRYUnBiSE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12WkdWallXWXRiVzlrWld3dmRYUnBiSE11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUjNaRExFOUJRVThzUlVGRFRDeHZRa0ZCYjBJc1JVRkRjRUlzWVVGQllTeEZRVU5pTEZsQlFWa3NSVUZEV2l4UlFVRlJMRVZCUTFJc1VVRkJVU3hIUVVOVUxFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkRla0lzVDBGQlR5eEZRVWRNTEZkQlFWY3NSMEZEV2l3NFFrRkJjVUk3UVVGRmRFSXNUMEZCVHl4RlFVVk1MRmxCUVZrc1JVRkRXaXhqUVVGakxFZEJSV1lzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVWNFFpeFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVVVzT0VKQlFUSkNPMEZCUjNwRUxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1EwRkJReXhUUVVGcFFpeEZRVUZaTEVWQlFVVTdTVUZEZUVRc1QwRkJUeXhUUVVGVE8xTkJRMklzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXp0VFFVTldMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFRRVU5vUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0xUWl4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eERRVUZETEVsQlFWa3NSVUZCYjBJc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGVFUXNTVUZCU1R0SlFVTktMRmRCUVZjc1JVRkJSU3hIUVVGSExFbEJRVWtzTUVKQlFUQkNPMGxCUXpsRExGRkJRVkVzUlVGQlJTeEpRVUZKTzBsQlEyUXNTVUZCU1N4RlFVRkZMRTFCUVUwN1EwRkRZaXhEUVVGRExFTkJRVU03UVVGRlNDeE5RVUZOTEZWQlFWVXNaMEpCUVdkQ0xFTkJRemxDTEZWQlFXdENMRVZCUTJ4Q0xGTkJRV2xDTEVWQlEycENMRkZCUVcxQ0xFVkJRMjVDTEhGQ1FVRTRRaXhMUVVGTE8wbEJSVzVETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRGRrUXNUVUZCVFN4aFFVRmhMRWRCUVVjc2FVSkJRV2xDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzBsQlJYSkZMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUXpsQ0xFbEJRVWtzVVVGQlVTeExRVUZMTEV0QlFVc3NTVUZCU1N4clFrRkJhMElzUlVGQlJTeERRVUZETzFGQlF6ZERMR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZEY2tJc1VVRkJVU3hEUVVGRE8xbEJRMUFzU1VGQlNTeEZRVUZGTEZkQlFWYzdXVUZEYWtJc1VVRkJVU3hGUVVGRkxFdEJRVXM3V1VGRFppeEpRVUZKTEVWQlFVVXNZMEZCWXp0WlFVTndRaXhYUVVGWExFVkJRVVVzWjBOQlFXZERPMU5CUXpsRExFTkJRVU1zUlVGRFJpeFJRVUZSTEVOQlFVTTdXVUZEVUN4SlFVRkpMRVZCUVVVc1QwRkJUenRaUVVOaUxGRkJRVkVzUlVGQlJTeExRVUZMTzFsQlEyWXNWMEZCVnl4RlFVRkZMRzlEUVVGdlF6dFRRVU5zUkN4RFFVRkRMRVZCUTBZc1VVRkJVU3hEUVVGRE8xbEJRMUFzU1VGQlNTeEZRVUZGTEZGQlFWRTdXVUZEWkN4UlFVRlJMRVZCUVVVc1MwRkJTenRaUVVObUxGZEJRVmNzUlVGQlJTeHZRMEZCYjBNN1UwRkRiRVFzUTBGQlF5eERRVU5JTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1QwRkJUenRSUVVOTUxFMUJRVTBzUlVGQlJUdFpRVU5PTEdkQ1FVRm5RaXhEUVVGRExGTkJRVk1zUTBGQlF6dFpRVU16UWl4SFFVRkhMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETzFsQlF6bENMRWRCUVVjc2EwSkJRV3RDTzFsQlEzSkNMRmxCUVZrc1EwRkJRenRuUWtGRFdDeFBRVUZQTEVWQlFVVXNkME5CUVhkRExGVkJRVlVzU1VGQlNUdGhRVU5vUlN4RFFVRkRPMWxCUTBZc1lVRkJZU3hEUVVGRE8yZENRVU5hTEZkQlFWY3NSVUZCUlN4blEwRkJaME03WVVGRE9VTXNRMEZCUXp0WlFVTkdMRzlDUVVGdlFpeERRVUZETzJkQ1FVTnVRaXhYUVVGWExFVkJRVVVzYjBOQlFXOURPMkZCUTJ4RUxFTkJRVU03VTBGRFNEdFJRVU5FTEUxQlFVMHNSVUZCUlN4RFFVRkRMRmRCUVZjc1EwRkJReXhoUVVGaExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMR3RDUVVGclFqdExRVU5zUlN4RFFVRkRPMEZCUTBvc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHJRa0ZCYTBJc1EwRkRhRU1zVFVGQlZ5eEZRVU5ZTEZWQlFXdENMRVZCUTJ4Q0xGVkJRVGhDTEVWQlF6bENMRlZCUVRKQ08wbEJSVE5DTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTFCUVUwc1JVRkJSU3hUUVVGVExFbEJRVWtzVFVGQlRTeERRVUZETzBsQlF6RkRMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEZWQlFWVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMjVGTEZWQlFWVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeFZRVUZWTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONFJTeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSGRDUVVGM1FpeERRVU4wUXl4WFFVRnpReXhGUVVOMFF5eFZRVUZyUWl4RlFVTnNRaXhIUVVGSExFbEJRVmM3U1VGRlpDeEpRVUZKTEZkQlFWY3NXVUZCV1N4WlFVRlpMRVZCUVVVc1EwRkJRenRSUVVONFF5eFBRVUZQTEU5QlFWRXNWMEZCYlVJc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eFZRVUZWTzFsQlF6TkVMRU5CUVVNc1EwRkJSU3hYUVVGdFFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRE8xbEJRek5ETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1UwRkJVeXhEUVVGRExGVkJRVlVzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTJwRUxFTkJRVU03U1VGRlJDeEpRVUZKTEU5QlFWRXNWMEZCYlVJc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eFZRVUZWTzFGQlEzaEVMRTlCUVZFc1YwRkJiVUlzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJSVzVFTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUTJJc2RVSkJRWFZDTEZWQlFWVXNhMEpCUVd0Q0xGZEJRVmNzUlVGQlJTeFhRVUZYTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUTNCR0xFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR3RDUVVGclFpeERRVUZKTEZWQlFXdENPMGxCUTNSRUxFOUJRVThzUzBGQlN5eFhRVVZXTEZWQlFUSkNMRVZCUXpOQ0xGZEJRV2xETzFGQlJXcERMRTFCUVUwc1IwRkJSeXhIUVVGWExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJSVGRETEVsQlFVa3NRMEZCUXp0WlFVTklMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRMUFzWjBOQlFXZERMRlZCUVZVc2RVSkJRWFZDTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTEVOQlF6VkhMRU5CUVVNN1dVRkRSaXhOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhYUVVGWExFTkJRVU03V1VGRGFrUXNUMEZCVHl4TlFVRk5MSGRDUVVGM1FpeERRVU51UXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRMnhDTEZWQlFWVXNSVUZEVml4SFFVRkhMRlZCUVZVc1EwRkJReXhoUVVGaExFVkJRek5DTEZOQlFWTXNSVUZEVkN4TFFVRkxMRVZCUTB3c1RVRkJUU3hEUVVOUUxFTkJRVU03VVVGRFNpeERRVUZETzFGQlFVTXNUMEZCVHl4RFFVRk5MRVZCUVVVc1EwRkJRenRaUVVOb1FpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeFZRVUZWTEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOd1JDeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTldMRU5CUVVNN1NVRkRTQ3hEUVVGRExFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2xDUVVGcFFpeERRVU12UWl4bFFVRTBReXhGUVVNMVF5eFZRVUZyUWl4RlFVTnNRaXhQUVVGblF6dEpRVVZvUXl4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVOdVFpeGxRVUZsTEVOQlFVTXNVMEZCVXl4SlFVRkpMR1ZCUVdVc1JVRkROVU1zVlVGQlZTeEZRVU5XTzFGQlEwVXNTMEZCU3l4RlFVRkZMRTlCUVU4N1VVRkRaQ3hSUVVGUkxFVkJRVVVzUzBGQlN6dExRVU5vUWl4RFFVTkdMRU5CUVVNN1NVRkZSaXhQUVVGUExFMUJRVTBzUTBGQlF5eDNRa0ZCZDBJc1EwRkRjRU1zWlVGQlpTeERRVUZETEZOQlFWTXNTVUZCU1N4bFFVRmxMRVZCUXpWRExGVkJRVlVzUTBGRFdDeERRVUZETzBGQlEwb3NRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lGRjFaWEo1SUgwZ1puSnZiU0JjSWtCdVpYTjBhbk12WTI5dGJXOXVYQ0k3WEc1cGJYQnZjblFnZXlCTWIyZG5aWElnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJ4dloyZHBibWRjSWp0Y2JtbHRjRzl5ZENCN0lIUjVjR1VnUkdWamIzSmhkRzl5UW5WdVpHeGxJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFRndhVTV2UTI5dWRHVnVkRkpsYzNCdmJuTmxMRnh1SUNCQmNHbFBhMUpsYzNCdmJuTmxMRnh1SUNCQmNHbFBjR1Z5WVhScGIyNHNYRzRnSUVGd2FWQmhjbUZ0TEZ4dUlDQkJjR2xSZFdWeWVTeGNibjBnWm5KdmJTQmNJa0J1WlhOMGFuTXZjM2RoWjJkbGNsd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1JHVmpZV1pCY0dsUWNtOXdaWEowZVN4Y2JpQWdkSGx3WlNCRVpXTmhabEJoY21GdFVISnZjSE1zWEc0Z0lFUmxZMkZtVUdGeVlXMXpMRnh1ZlNCbWNtOXRJRndpTGk5a1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN0lFaDBkSEJXWlhKaWN5QjlJR1p5YjIwZ1hDSXVMMlJsWTI5eVlYUnZjbk12ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFUnBjbVZqZEdsdmJreHBiV2wwVDJabWMyVjBMRnh1SUNCTmIyUmxiRk5sY25acFkyVXNYRzRnSUU5eVpHVnlSR2x5WldOMGFXOXVMRnh1SUNCU1pYQnZMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUUxdlpHVnNJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dTSFIwY0ZabGNtSlViMFJsWTI5eVlYUnZjaUI5SUdaeWIyMGdYQ0l1TDJSbFkyOXlZWFJ2Y25NdmRYUnBiSE5jSWp0Y2JtbHRjRzl5ZENCN0lFUmxZMkZtVFc5a1pXeERiMjUwY205c2JHVnlJSDBnWm5KdmJTQmNJaTR1TDJOdmJuUnliMnhzWlhKelhDSTdYRzVjYm1OdmJuTjBJR1Y0ZEhKaFkzUlFZWFJvVUdGeVlXMXpJRDBnS0hKdmRYUmxVR0YwYURvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuVzEwZ1BUNGdlMXh1SUNCeVpYUjFjbTRnY205MWRHVlFZWFJvWEc0Z0lDQWdMbk53YkdsMEtGd2lMMXdpS1Z4dUlDQWdJQzVtYVd4MFpYSW9LSEFwSUQwK0lIQXVjM1JoY25SelYybDBhQ2hjSWpwY0lpa3BYRzRnSUNBZ0xtMWhjQ2dvY0NrZ1BUNGdjQzV6YkdsalpTZ3hLU2s3WEc1OU8xeHVYRzVqYjI1emRDQmhjR2xRWVhKaGJWTndaV01nUFNBb2JtRnRaVG9nYzNSeWFXNW5LVG9nUkdWallXWkJjR2xRY205d1pYSjBlU0E5UGlBb2UxeHVJQ0J1WVcxbExGeHVJQ0JrWlhOamNtbHdkR2x2YmpvZ1lDUjdibUZ0WlgwZ2NHRnlZVzFsZEdWeUlHWnZjaUIwYUdVZ2NYVmxjbmxnTEZ4dUlDQnlaWEYxYVhKbFpEb2dkSEoxWlN4Y2JpQWdkSGx3WlRvZ1UzUnlhVzVuTEZ4dWZTazdYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlhSQmNHbEVaV052Y21GMGIzSnpLRnh1SUNCdFpYUm9iMlJPWVcxbE9pQnpkSEpwYm1jc1hHNGdJSEp2ZFhSbFVHRjBhRG9nYzNSeWFXNW5MRnh1SUNCb2RIUndWbVZ5WWpvZ1NIUjBjRlpsY21KekxGeHVJQ0JwYm1Oc2RXUmxVWFZsY25sUVlYSmhiWE02SUdKdmIyeGxZVzRnUFNCbVlXeHpaVnh1S1RvZ1JHVmpiM0poZEc5eVFuVnVaR3hsSUh0Y2JpQWdZMjl1YzNRZ1RtVnpkRWgwZEhCU2IzVjBaVVJsWXlBOUlFaDBkSEJXWlhKaVZHOUVaV052Y21GMGIzSW9hSFIwY0ZabGNtSXBPMXh1SUNCamIyNXpkQ0JoY0dsUVlYUm9VR0Z5WVcxeklEMGdaWGgwY21GamRGQmhkR2hRWVhKaGJYTW9jbTkxZEdWUVlYUm9LUzV0WVhBb1lYQnBVR0Z5WVcxVGNHVmpLVHRjYmx4dUlDQmpiMjV6ZENCemQyRm5aMlZ5VVhWbGNubFFZWEpoYlhNZ1BTQmJYVHRjYmlBZ2FXWWdLR2gwZEhCV1pYSmlJRDA5UFNCY0lrZEZWRndpSUNZbUlHbHVZMngxWkdWUmRXVnllVkJoY21GdGN5a2dlMXh1SUNBZ0lITjNZV2RuWlhKUmRXVnllVkJoY21GdGN5NXdkWE5vS0Z4dUlDQWdJQ0FnUVhCcFVYVmxjbmtvZTF4dUlDQWdJQ0FnSUNCdVlXMWxPaUJjSW1ScGNtVmpkR2x2Ymx3aUxGeHVJQ0FnSUNBZ0lDQnlaWEYxYVhKbFpEb2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lHVnVkVzA2SUU5eVpHVnlSR2x5WldOMGFXOXVMRnh1SUNBZ0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ1hDSjBhR1VnYzI5eWRDQnZjbVJsY2lCM2FHVnVJR0Z3Y0d4cFkyRmliR1ZjSWl4Y2JpQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ1FYQnBVWFZsY25rb2UxeHVJQ0FnSUNBZ0lDQnVZVzFsT2lCY0lteHBiV2wwWENJc1hHNGdJQ0FnSUNBZ0lISmxjWFZwY21Wa09pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ1pHVnpZM0pwY0hScGIyNDZJRndpYkdsdGFYUWdiM0lnY0dGblpTQnphWHBsSUhkb1pXNGdZWEJ3YkdsallXSnNaVndpTEZ4dUlDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNCQmNHbFJkV1Z5ZVNoN1hHNGdJQ0FnSUNBZ0lHNWhiV1U2SUZ3aWIyWm1jMlYwWENJc1hHNGdJQ0FnSUNBZ0lISmxjWFZwY21Wa09pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ1pHVnpZM0pwY0hScGIyNDZJRndpYjJabWMyVjBJRzl5SUdKdmIydHRZWEpySUhkb1pXNGdZWEJ3YkdsallXSnNaVndpTEZ4dUlDQWdJQ0FnZlNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0J0WlhSb2IyUTZJRnRjYmlBZ0lDQWdJRTVsYzNSSWRIUndVbTkxZEdWRVpXTW9jbTkxZEdWUVlYUm9LU3hjYmlBZ0lDQWdJQzR1TG1Gd2FWQmhkR2hRWVhKaGJYTXViV0Z3S0VGd2FWQmhjbUZ0S1N4Y2JpQWdJQ0FnSUM0dUxuTjNZV2RuWlhKUmRXVnllVkJoY21GdGN5eGNiaUFnSUNBZ0lFRndhVTl3WlhKaGRHbHZiaWg3WEc0Z0lDQWdJQ0FnSUhOMWJXMWhjbms2SUdCU1pYUnlhV1YyWlNCeVpXTnZjbVJ6SUhWemFXNW5JR0ZqWTI5eVpHbHVaeUIwYnlCY0lpUjdiV1YwYUc5a1RtRnRaWDFjSWk1Z0xGeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQkJjR2xQYTFKbGMzQnZibk5sS0h0Y2JpQWdJQ0FnSUNBZ1pHVnpZM0pwY0hScGIyNDZJR0JTWlhOMWJIUWdjM1ZqWTJWemMyWjFiR3g1SUhKbGRISnBaWFpsWkM1Z0xGeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQkJjR2xPYjBOdmJuUmxiblJTWlhOd2IyNXpaU2g3WEc0Z0lDQWdJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQmdUbThnWTI5dWRHVnVkQ0J5WlhSMWNtNWxaQ0JpZVNCMGFHVWdiV1YwYUc5a0xtQXNYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQmRMRnh1SUNBZ0lIQmhjbUZ0Y3pvZ1cwUmxZMkZtVUdGeVlXMXpLR0Z3YVZCaGRHaFFZWEpoYlhNcExDQlJkV1Z5ZVNncFhTd2dMeThnTENCRVpXTmhaa0p2Wkhrb0tWMHNYRzRnSUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoY0hCc2VVRndhVVJsWTI5eVlYUnZjbk1vWEc0Z0lIUmhjbWRsZERvZ1lXNTVMRnh1SUNCdFpYUm9iMlJPWVcxbE9pQnpkSEpwYm1jc1hHNGdJR1JsYzJOeWFYQjBiM0k2SUZCeWIzQmxjblI1UkdWelkzSnBjSFJ2Y2l4Y2JpQWdaR1ZqYjNKaGRHOXljem9nUkdWamIzSmhkRzl5UW5WdVpHeGxYRzRwSUh0Y2JpQWdZMjl1YzNRZ2NISnZkRzhnUFNCMFlYSm5aWFEvTG5CeWIzUnZkSGx3WlNBL1B5QjBZWEpuWlhRN1hHNGdJR1JsWTI5eVlYUnZjbk11YldWMGFHOWtMbVp2Y2tWaFkyZ29LR1FwSUQwK0lHUW9jSEp2ZEc4c0lHMWxkR2h2WkU1aGJXVXNJR1JsYzJOeWFYQjBiM0lwS1R0Y2JpQWdaR1ZqYjNKaGRHOXljeTV3WVhKaGJYTS9MbVp2Y2tWaFkyZ29LR1FzSUdsdVpHVjRLU0E5UGlCa0tIQnliM1J2TENCdFpYUm9iMlJPWVcxbExDQnBibVJsZUNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21WemIyeDJaVkJsY25OcGMzUmxibU5sVFdWMGFHOWtQRlFnWlhoMFpXNWtjeUJOYjJSbGJEeGliMjlzWldGdVBqNG9YRzRnSUhCbGNuTnBjM1JsYm1ObE9pQlNaWEJ2UEZRK0lId2dUVzlrWld4VFpYSjJhV05sUEZRK0xGeHVJQ0J0WlhSb2IyUk9ZVzFsT2lCemRISnBibWNzWEc0Z0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0cE9pQmhibmtnZTF4dUlDQnBaaUFvY0dWeWMybHpkR1Z1WTJVZ2FXNXpkR0Z1WTJWdlppQk5iMlJsYkZObGNuWnBZMlVwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlDaHdaWEp6YVhOMFpXNWpaU0JoY3lCaGJua3BXMjFsZEdodlpFNWhiV1ZkSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0pjYmlBZ0lDQWdJRDhnS0hCbGNuTnBjM1JsYm1ObElHRnpJR0Z1ZVNsYmJXVjBhRzlrVG1GdFpWMG9MaTR1WVhKbmN5bGNiaUFnSUNBZ0lEb2djR1Z5YzJsemRHVnVZMlV1YzNSaGRHVnRaVzUwS0cxbGRHaHZaRTVoYldVc0lDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0hSNWNHVnZaaUFvY0dWeWMybHpkR1Z1WTJVZ1lYTWdZVzU1S1Z0dFpYUm9iMlJPWVcxbFhTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUtWeHVJQ0FnSUhKbGRIVnliaUFvY0dWeWMybHpkR1Z1WTJVZ1lYTWdZVzU1S1Z0dFpYUm9iMlJPWVcxbFhTZ3VMaTVoY21kektUdGNibHh1SUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWEc0Z0lDQWdZRkJsY25OcGMzUmxibU5sSUcxbGRHaHZaQ0JjSWlSN2JXVjBhRzlrVG1GdFpYMWNJaUJ1YjNRZ1ptOTFibVFnYjI0Z0pIdHdaWEp6YVhOMFpXNWpaVDh1WTI5dWMzUnlkV04wYjNJL0xtNWhiV1Y5WUZ4dUlDQXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kzSmxZWFJsVW05MWRHVklZVzVrYkdWeVBGUStLRzFsZEdodlpFNWhiV1U2SUhOMGNtbHVaeWtnZTF4dUlDQnlaWFIxY200Z1lYTjVibU1nWm5WdVkzUnBiMjRnS0Z4dUlDQWdJSFJvYVhNNklFUmxZMkZtVFc5a1pXeERiMjUwY205c2JHVnlQR0Z1ZVQ0c1hHNGdJQ0FnY0dGMGFGQmhjbUZ0Y3pvZ1JHVmpZV1pRWVhKaGJWQnliM0J6TEZ4dUlDQWdJSEYxWlhKNVVHRnlZVzF6T2lCRWFYSmxZM1JwYjI1TWFXMXBkRTltWm5ObGRGeHVJQ0FwT2lCUWNtOXRhWE5sUEZRK0lIdGNiaUFnSUNCamIyNXpkQ0JzYjJjNklFeHZaMmRsY2lBOUlIUm9hWE11Ykc5bkxtWnZjaWh0WlhSb2IyUk9ZVzFsS1R0Y2JseHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQnNiMmN1WkdWaWRXY29YRzRnSUNBZ0lDQWdJR0JKYm5admEybHVaeUJ3WlhKemFYTjBaVzVqWlNCdFpYUm9iMlFnWENJa2UyMWxkR2h2WkU1aGJXVjlYQ0lnWjJsMlpXNGdjR0Z5WVcxbGRHVnljem9nSkh0S1UwOU9Mbk4wY21sdVoybG1lU2h3WVhSb1VHRnlZVzF6TG5aaGJIVmxjMGx1VDNKa1pYSXBmV0JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQjdJR1JwY21WamRHbHZiaXdnYkdsdGFYUXNJRzltWm5ObGRDQjlJRDBnY1hWbGNubFFZWEpoYlhNN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWVhkaGFYUWdjbVZ6YjJ4MlpWQmxjbk5wYzNSbGJtTmxUV1YwYUc5a0tGeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CbGNuTnBjM1JsYm1ObEtDa3NYRzRnSUNBZ0lDQWdJRzFsZEdodlpFNWhiV1VzWEc0Z0lDQWdJQ0FnSUM0dUxuQmhkR2hRWVhKaGJYTXVkbUZzZFdWelNXNVBjbVJsY2l4Y2JpQWdJQ0FnSUNBZ1pHbHlaV04wYVc5dUxGeHVJQ0FnSUNBZ0lDQnNhVzFwZEN4Y2JpQWdJQ0FnSUNBZ2IyWm1jMlYwWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUdGdWVTa2dlMXh1SUNBZ0lDQWdiRzluTG1WeWNtOXlLR0JEZFhOMGIyMGdjWFZsY25rZ1hDSWtlMjFsZEdodlpFNWhiV1Y5WENJZ1ptRnBiR1ZrWUN3Z1pTazdYRzRnSUNBZ0lDQjBhSEp2ZHlCbE8xeHVJQ0FnSUgxY2JpQWdmVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHUmxabWx1WlZKdmRYUmxUV1YwYUc5a0tGeHVJQ0JEYjI1MGNtOXNiR1Z5UTJ4aGMzTTZJRzVsZHlBb0xpNHVZWEpuY3pvZ1lXNTVXMTBwSUQwK0lHRnVlU3hjYmlBZ2JXVjBhRzlrVG1GdFpUb2djM1J5YVc1bkxGeHVJQ0JvWVc1a2JHVnlPaUFvTGk0dVlYSm5jem9nWVc1NVcxMHBJRDArSUdGdWVWeHVLVG9nVUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5SUh3Z2RXNWtaV1pwYm1Wa0lIdGNiaUFnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtGeHVJQ0FnSUVOdmJuUnliMnhzWlhKRGJHRnpjeTV3Y205MGIzUjVjR1VnZkh3Z1EyOXVkSEp2Ykd4bGNrTnNZWE56TEZ4dUlDQWdJRzFsZEdodlpFNWhiV1VzWEc0Z0lDQWdlMXh1SUNBZ0lDQWdkbUZzZFdVNklHaGhibVJzWlhJc1hHNGdJQ0FnSUNCM2NtbDBZV0pzWlRvZ1ptRnNjMlVzWEc0Z0lDQWdmVnh1SUNBcE8xeHVYRzRnSUhKbGRIVnliaUJQWW1wbFkzUXVaMlYwVDNkdVVISnZjR1Z5ZEhsRVpYTmpjbWx3ZEc5eUtGeHVJQ0FnSUVOdmJuUnliMnhzWlhKRGJHRnpjeTV3Y205MGIzUjVjR1VnZkh3Z1EyOXVkSEp2Ykd4bGNrTnNZWE56TEZ4dUlDQWdJRzFsZEdodlpFNWhiV1ZjYmlBZ0tUdGNibjFjYmlKZGZRPT0iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVjYWYtbW9kZWwvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFlBQVksRUFDWixRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUdMLFdBQVcsR0FDWiw4QkFBcUI7QUFFdEIsT0FBTyxFQUVMLFlBQVksRUFDWixjQUFjLEdBRWYsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsOEJBQTJCO0FBRXpELE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWlCLEVBQVksRUFBRTtJQUN4RCxPQUFPLFNBQVM7U0FDYixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFvQixFQUFFLENBQUMsQ0FBQztJQUN4RCxJQUFJO0lBQ0osV0FBVyxFQUFFLEdBQUcsSUFBSSwwQkFBMEI7SUFDOUMsUUFBUSxFQUFFLElBQUk7SUFDZCxJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUMsQ0FBQztBQUVILFNBQVMsWUFBWSxDQUFDLEtBQWMsRUFBRSxlQUF1QjtJQUMzRCxJQUFJLEtBQUssWUFBWSxTQUFTO1FBQUUsT0FBTyxL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QUFlLEVBQzVDLFVBQVUsRUFDVjtRQUNFLEtBQUssRUFBRSxPQUFPO1FBQ2QsUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FDRixDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQ3BDLGVBQWUsQ0FBQyxTQUFTLElBQUksZUFBZSxFQUM1QyxVQUFVLENBQ1gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyB0eXBlIERlY29yYXRvckJ1bmRsZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQge1xuICBBcGlOb0NvbnRlbnRSZXNwb25zZSxcbiAgQXBpT2tSZXNwb25zZSxcbiAgQXBpT3BlcmF0aW9uLFxuICBBcGlQYXJhbSxcbiAgQXBpUXVlcnksXG59IGZyb20gXCJAbmVzdGpzL3N3YWdnZXJcIjtcbmltcG9ydCB7XG4gIERlY2FmQXBpUHJvcGVydHksXG4gIHR5cGUgRGVjYWZQYXJhbVByb3BzLFxuICBEZWNhZlBhcmFtcyxcbn0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwVmVyYnMgfSBmcm9tIFwiLi9kZWNvcmF0b3JzL3R5cGVzXCI7XG5pbXBvcnQge1xuICBEaXJlY3Rpb25MaW1pdE9mZnNldCxcbiAgTW9kZWxTZXJ2aWNlLFxuICBPcmRlckRpcmVjdGlvbixcbiAgUmVwbyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEh0dHBWZXJiVG9EZWNvcmF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzL3V0aWxzXCI7XG5pbXBvcnQgeyBEZWNhZk1vZGVsQ29udHJvbGxlciB9IGZyb20gXCIuLi9jb250cm9sbGVyc1wiO1xuaW1wb3J0IHsgQmFzZUVycm9yLCBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmNvbnN0IGV4dHJhY3RQYXRoUGFyYW1zID0gKHJvdXRlUGF0aDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuICByZXR1cm4gcm91dGVQYXRoXG4gICAgLnNwbGl0KFwiL1wiKVxuICAgIC5maWx0ZXIoKHApID0+IHAuc3RhcnRzV2l0aChcIjpcIikpXG4gICAgLm1hcCgocCkgPT4gcC5zbGljZSgxKSk7XG59O1xuXG5jb25zdCBhcGlQYXJhbVNwZWMgPSAobmFtZTogc3RyaW5nKTogRGVjYWZBcGlQcm9wZXJ0eSA9PiAoe1xuICBuYW1lLFxuICBkZXNjcmlwdGlvbjogYCR7bmFtZX0gcGFyYW1ldGVyIGZvciB0aGUgcXVlcnlgLFxuICByZXF1aXJlZDogdHJ1ZSxcbiAgdHlwZTogU3RyaW5nLFxufSk7XG5cbmZ1bmN0aW9uIHRvRGVjYWZFcnJvcihlcnJvcjogdW5rbm93biwgZmFsbGJhY2tNZXNzYWdlOiBzdHJpbmcpOiBCYXNlRXJyb3Ige1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBCYXNlRXJyb3IpIHJldHVybiBlcnJvcjtcbiAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKFxuICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBgJHtmYWxsYmFja01lc3NhZ2V9OiAke2Vycm9yLm1lc3NhZ2V9YCA6IGZhbGxiYWNrTWVzc2FnZVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBpRGVjb3JhdG9ycyhcbiAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICByb3V0ZVBhdGg6IHN0cmluZyxcbiAgaHR0cFZlcmI6IEh0dHBWZXJicyxcbiAgaW5jbHVkZVF1ZXJ5UGFyYW1zOiBib29sZWFuID0gZmFsc2Vcbik6IERlY29yYXRvckJ1bmRsZSB7XG4gIGNvbnN0IE5lc3RIdHRwUm91dGVEZWMgPSBIdHRwVmVyYlRvRGVjb3JhdG9yKGh0dHBWZXJiKTtcbiAgY29uc3QgYXBpUGF0aFBhcmFtcyA9IGV4dHJhY3RQYXRoUGFyYW1zKHJvdXRlUGF0aCkubWFwKGFwaVBhcmFtU3BlYyk7XG5cbiAgY29uc3Qgc3dhZ2dlclF1ZXJ5UGFyYW1zID0gW107XG4gIGlmIChodHRwVmVyYiA9PT0gXCJHRVRcIiAmJiBpbmNsdWRlUXVlcnlQYXJhbXMpIHtcbiAgICBzd2FnZ2VyUXVlcnlQYXJhbXMucHVzaChcbiAgICAgIEFwaVF1ZXJ5KHtcbiAgICAgICAgbmFtZTogXCJkaXJlY3Rpb25cIixcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBlbnVtOiBPcmRlckRpcmVjdGlvbixcbiAgICAgICAgZGVzY3JpcHRpb246IFwidGhlIHNvcnQgb3JkZXIgd2hlbiBhcHBsaWNhYmxlXCIsXG4gICAgICB9KSxcbiAgICAgIEFwaVF1ZXJ5KHtcbiAgICAgICAgbmFtZTogXCJsaW1pdFwiLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcImxpbWl0IG9yIHBhZ2Ugc2l6ZSB3aGVuIGFwcGxpY2FibGVcIixcbiAgICAgIH0pLFxuICAgICAgQXBpUXVlcnkoe1xuICAgICAgICBuYW1lOiBcIm9mZnNldFwiLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIm9mZnNldCBvciBib29rbWFyayB3aGVuIGFwcGxpY2FibGVcIixcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWV0aG9kOiBbXG4gICAgICBOZXN0SHR0cFJvdXRlRGVjKHJvdXRlUGF0aCksXG4gICAgICAuLi5hcGlQYXRoUGFyYW1zLm1hcChBcGlQYXJhbSksXG4gICAgICAuLi5zd2FnZ2VyUXVlcnlQYXJhbXMsXG4gICAgICBBcGlPcGVyYXRpb24oe1xuICAgICAgICBzdW1tYXJ5OiBgUmV0cmlldmUgcmVjb3JkcyB1c2luZyBhY2NvcmRpbmcgdG8gXCIke21ldGhvZE5hbWV9XCIuYCxcbiAgICAgIH0pLFxuICAgICAgQXBpT2tSZXNwb25zZSh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgUmVzdWx0IHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQuYCxcbiAgICAgIH0pLFxuICAgICAgQXBpTm9Db250ZW50UmVzcG9uc2Uoe1xuICAgICAgICBkZXNjcmlwdGlvbjogYE5vIGNvbnRlbnQgcmV0dXJuZWQgYnkgdGhlIG1ldGhvZC5gLFxuICAgICAgfSksXG4gICAgXSxcbiAgICBwYXJhbXM6IFtEZWNhZlBhcmFtcyhhcGlQYXRoUGFyYW1zKSwgUXVlcnkoKV0sIC8vICwgRGVjYWZCb2R5KCldLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlBcGlEZWNvcmF0b3JzKFxuICB0YXJnZXQ6IGFueSxcbiAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IsXG4gIGRlY29yYXRvcnM6IERlY29yYXRvckJ1bmRsZVxuKSB7XG4gIGNvbnN0IHByb3RvID0gdGFyZ2V0Py5wcm90b3R5cGUgPz8gdGFyZ2V0O1xuICBkZWNvcmF0b3JzLm1ldGhvZC5mb3JFYWNoKChkKSA9PiBkKHByb3RvLCBtZXRob2ROYW1lLCBkZXNjcmlwdG9yKSk7XG4gIGRlY29yYXRvcnMucGFyYW1zPy5mb3JFYWNoKChkLCBpbmRleCkgPT4gZChwcm90bywgbWV0aG9kTmFtZSwgaW5kZXgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQZXJzaXN0ZW5jZU1ldGhvZDxUIGV4dGVuZHMgTW9kZWw8Ym9vbGVhbj4+KFxuICBwZXJzaXN0ZW5jZTogUmVwbzxUPiB8IE1vZGVsU2VydmljZTxUPixcbiAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICAuLi5hcmdzOiBhbnlbXVxuKTogYW55IHtcbiAgaWYgKHBlcnNpc3RlbmNlIGluc3RhbmNlb2YgTW9kZWxTZXJ2aWNlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiAocGVyc2lzdGVuY2UgYXMgYW55KVttZXRob2ROYW1lXSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICA/IChwZXJzaXN0ZW5jZSBhcyBhbnkpW21ldGhvZE5hbWVdKC4uLmFyZ3MpXG4gICAgICA6IHBlcnNpc3RlbmNlLnN0YXRlbWVudChtZXRob2ROYW1lLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgKHBlcnNpc3RlbmNlIGFzIGFueSlbbWV0aG9kTmFtZV0gPT09IFwiZnVuY3Rpb25cIilcbiAgICByZXR1cm4gKHBlcnNpc3RlbmNlIGFzIGFueSlbbWV0aG9kTmFtZV0oLi4uYXJncyk7XG5cbiAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgYFBlcnNpc3RlbmNlIG1ldGhvZCBcIiR7bWV0aG9kTmFtZX1cIiBub3QgZm91bmQgb24gJHtwZXJzaXN0ZW5jZT8uY29uc3RydWN0b3I/Lm5hbWV9YFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUm91dGVIYW5kbGVyPFQ+KG1ldGhvZE5hbWU6IHN0cmluZykge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgIHRoaXM6IERlY2FmTW9kZWxDb250cm9sbGVyPGFueT4sXG4gICAgcGF0aFBhcmFtczogRGVjYWZQYXJhbVByb3BzLFxuICAgIHF1ZXJ5UGFyYW1zOiBEaXJlY3Rpb25MaW1pdE9mZnNldFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBsb2c6IExvZ2dlciA9IHRoaXMubG9nLmZvcihtZXRob2ROYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBJbnZva2luZyBwZXJzaXN0ZW5jZSBtZXRob2QgXCIke21ldGhvZE5hbWV9XCIgZ2l2ZW4gcGFyYW1ldGVyczogJHtKU09OLnN0cmluZ2lmeShwYXRoUGFyYW1zLnZhbHVlc0luT3JkZXIpfWBcbiAgICAgICk7XG4gICAgICBjb25zdCB7IGRpcmVjdGlvbiwgbGltaXQsIG9mZnNldCB9ID0gcXVlcnlQYXJhbXM7XG4gICAgICByZXR1cm4gYXdhaXQgcmVzb2x2ZVBlcnNpc3RlbmNlTWV0aG9kKFxuICAgICAgICB0aGlzLnBlcnNpc3RlbmNlKCksXG4gICAgICAgIG1ldGhvZE5hbWUsXG4gICAgICAgIC4uLnBhdGhQYXJhbXMudmFsdWVzSW5PcmRlcixcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBsaW1pdCxcbiAgICAgICAgb2Zmc2V0XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgbG9nLmVycm9yKGBDdXN0b20gcXVlcnkgXCIke21ldGhvZE5hbWV9XCIgZmFpbGVkYCwgZSk7XG4gICAgICB0aHJvdyB0b0RlY2FmRXJyb3IoZSwgYEN1c3RvbSBxdWVyeSBcIiR7bWV0aG9kTmFtZX1cIiBmYWlsZWRgKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVSb3V0ZU1ldGhvZChcbiAgQ29udHJvbGxlckNsYXNzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksXG4gIG1ldGhvZE5hbWU6IHN0cmluZyxcbiAgaGFuZGxlcjogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnlcbik6IFByb3BlcnR5RGVzY3JpcHRvciB8IHVuZGVmaW5lZCB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICBDb250cm9sbGVyQ2xhc3MucHJvdG90eXBlIHx8IENvbnRyb2xsZXJDbGFzcyxcbiAgICBtZXRob2ROYW1lLFxuICAgIHtcbiAgICAgIHZhbHVlOiBoYW5kbGVyLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH1cbiAgKTtcblxuICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICBDb250cm9sbGVyQ2xhc3MucHJvdG90eXBlIHx8IENvbnRyb2xsZXJDbGFzcyxcbiAgICBtZXRob2ROYW1lXG4gICk7XG59XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXVCQSw0Q0FxQ0M7QUFDRCxnREFJQztBQUNELDREQVNDO0FBQ0QsZ0RBYUM7QUFDRCw4Q0FNQztBQWhHRCwyQ0FBdUM7QUFDdkMsNkNBQXlHO0FBQ3pHLG9EQUFxRDtBQUNyRCx5Q0FBK0Q7QUFDL0Qsb0RBQTREO0FBQzVELDJEQUFtRTtBQUNuRSxNQUFNLGlCQUFpQixHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUU7SUFDcEMsT0FBTyxTQUFTO1NBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFDRixNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QixJQUFJO0lBQ0osV0FBVyxFQUFFLEdBQUcsSUFBSSwwQkFBMEI7SUFDOUMsUUFBUSxFQUFFLElBQUk7SUFDZCxJQUFJLEVBQUUsTUFBTTtDQUNmLENBQUMsQ0FBQztBQUNILFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRSxlQUFlO0lBQ3hDLElBQUksS0FBSyxZQUFZLHlCQUFTO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLE9BQU8sSUFBSSw2QkFBYSxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDaEgsQ0FBQztBQUNELFNBQWdCLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxF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Q29udGVudCI6WyJpbXBvcnQgeyBRdWVyeSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgQXBpTm9Db250ZW50UmVzcG9uc2UsIEFwaU9rUmVzcG9uc2UsIEFwaU9wZXJhdGlvbiwgQXBpUGFyYW0sIEFwaVF1ZXJ5LCB9IGZyb20gXCJAbmVzdGpzL3N3YWdnZXJcIjtcbmltcG9ydCB7IERlY2FmUGFyYW1zLCB9IGZyb20gXCIuL2RlY29yYXRvcnMvaW5kZXguanNcIjtcbmltcG9ydCB7IE1vZGVsU2VydmljZSwgT3JkZXJEaXJlY3Rpb24sIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBIdHRwVmVyYlRvRGVjb3JhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9ycy91dGlscy5qc1wiO1xuaW1wb3J0IHsgQmFzZUVycm9yLCBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5jb25zdCBleHRyYWN0UGF0aFBhcmFtcyA9IChyb3V0ZVBhdGgpID0+IHtcbiAgICByZXR1cm4gcm91dGVQYXRoXG4gICAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgICAgLmZpbHRlcigocCkgPT4gcC5zdGFydHNXaXRoKFwiOlwiKSlcbiAgICAgICAgLm1hcCgocCkgPT4gcC5zbGljZSgxKSk7XG59O1xuY29uc3QgYXBpUGFyYW1TcGVjID0gKG5hbWUpID0+ICh7XG4gICAgbmFtZSxcbiAgICBkZXNjcmlwdGlvbjogYCR7bmFtZX0gcGFyYW1ldGVyIGZvciB0aGUgcXVlcnlgLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIHR5cGU6IFN0cmluZyxcbn0pO1xuZnVuY3Rpb24gdG9EZWNhZkVycm9yKGVycm9yLCBmYWxsYmFja01lc3NhZ2UpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBCYXNlRXJyb3IpXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGAke2ZhbGxiYWNrTWVzc2FnZX06ICR7ZXJyb3IubWVzc2FnZX1gIDogZmFsbGJhY2tNZXNzYWdlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcGlEZWNvcmF0b3JzKG1ldGhvZE5hbWUsIHJvdXRlUGF0aCwgaHR0cFZlcmIsIGluY2x1ZGVRdWVyeVBhcmFtcyA9IGZhbHNlKSB7XG4gICAgY29uc3QgTmVzdEh0dHBSb3V0ZURlYyA9IEh0dHBWZXJiVG9EZWNvcmF0b3IoaHR0cFZlcmIpO1xuICAgIGNvbnN0IGFwaVBhdGhQYXJhbXMgPSBleHRyYWN0UGF0aFBhcmFtcyhyb3V0ZVBhdGgpLm1hcChhcGlQYXJhbVNwZWMpO1xuICAgIGNvbnN0IHN3YWdnZXJRdWVyeVBhcmFtcyA9IFtdO1xuICAgIGlmIChodHRwVmVyYiA9PT0gXCJHRVRcIiAmJiBpbmNsdWRlUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgc3dhZ2dlclF1ZXJ5UGFyYW1zLnB1c2goQXBpUXVlcnkoe1xuICAgICAgICAgICAgbmFtZTogXCJkaXJlY3Rpb25cIixcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIGVudW06IE9yZGVyRGlyZWN0aW9uLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidGhlIHNvcnQgb3JkZXIgd2hlbiBhcHBsaWNhYmxlXCIsXG4gICAgICAgIH0pLCBBcGlRdWVyeSh7XG4gICAgICAgICAgICBuYW1lOiBcImxpbWl0XCIsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJsaW1pdCBvciBwYWdlIHNpemUgd2hlbiBhcHBsaWNhYmxlXCIsXG4gICAgICAgIH0pLCBBcGlRdWVyeSh7XG4gICAgICAgICAgICBuYW1lOiBcIm9mZnNldFwiLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwib2Zmc2V0IG9yIGJvb2ttYXJrIHdoZW4gYXBwbGljYWJsZVwiLFxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogW1xuICAgICAgICAgICAgTmVzdEh0dHBSb3V0ZURlYyhyb3V0ZVBhdGgpLFxuICAgICAgICAgICAgLi4uYXBpUGF0aFBhcmFtcy5tYXAoQXBpUGFyYW0pLFxuICAgICAgICAgICAgLi4uc3dhZ2dlclF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgQXBpT3BlcmF0aW9uKHtcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiBgUmV0cmlldmUgcmVjb3JkcyB1c2luZyBhY2NvcmRpbmcgdG8gXCIke21ldGhvZE5hbWV9XCIuYCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgQXBpT2tSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBSZXN1bHQgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZC5gLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBBcGlOb0NvbnRlbnRSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBObyBjb250ZW50IHJldHVybmVkIGJ5IHRoZSBtZXRob2QuYCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICBwYXJhbXM6IFtEZWNhZlBhcmFtcyhhcGlQYXRoUGFyYW1zKSwgUXVlcnkoKV0sIC8vICwgRGVjYWZCb2R5KCldLFxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gYXBwbHlBcGlEZWNvcmF0b3JzKHRhcmdldCwgbWV0aG9kTmFtZSwgZGVzY3JpcHRvciwgZGVjb3JhdG9ycykge1xuICAgIGNvbnN0IHByb3RvID0gdGFyZ2V0Py5wcm90b3R5cGUgPz8gdGFyZ2V0O1xuICAgIGRlY29yYXRvcnMubWV0aG9kLmZvckVhY2goKGQpID0+IGQocHJvdG8sIG1ldGhvZE5hbWUsIGRlc2NyaXB0b3IpKTtcbiAgICBkZWNvcmF0b3JzLnBhcmFtcz8uZm9yRWFjaCgoZCwgaW5kZXgpID0+IGQocHJvdG8sIG1ldGhvZE5hbWUsIGluZGV4KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBlcnNpc3RlbmNlTWV0aG9kKHBlcnNpc3RlbmNlLCBtZXRob2ROYW1lLCAuLi5hcmdzKSB7XG4gICAgaWYgKHBlcnNpc3RlbmNlIGluc3RhbmNlb2YgTW9kZWxTZXJ2aWNlKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgcGVyc2lzdGVuY2VbbWV0aG9kTmFtZV0gPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyBwZXJzaXN0ZW5jZVttZXRob2ROYW1lXSguLi5hcmdzKVxuICAgICAgICAgICAgOiBwZXJzaXN0ZW5jZS5zdGF0ZW1lbnQobWV0aG9kTmFtZSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGVyc2lzdGVuY2VbbWV0aG9kTmFtZV0gPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgcmV0dXJuIHBlcnNpc3RlbmNlW21ldGhvZE5hbWVdKC4uLmFyZ3MpO1xuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBQZXJzaXN0ZW5jZSBtZXRob2QgXCIke21ldGhvZE5hbWV9XCIgbm90IGZvdW5kIG9uICR7cGVyc2lzdGVuY2U/LmNvbnN0cnVjdG9yPy5uYW1lfWApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvdXRlSGFuZGxlcihtZXRob2ROYW1lKSB7XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcykge1xuICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IobWV0aG9kTmFtZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYEludm9raW5nIHBlcnNpc3RlbmNlIG1ldGhvZCBcIiR7bWV0aG9kTmFtZX1cIiBnaXZlbiBwYXJhbWV0ZXJzOiAke0pTT04uc3RyaW5naWZ5KHBhdGhQYXJhbXMudmFsdWVzSW5PcmRlcil9YCk7XG4gICAgICAgICAgICBjb25zdCB7IGRpcmVjdGlvbiwgbGltaXQsIG9mZnNldCB9ID0gcXVlcnlQYXJhbXM7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzb2x2ZVBlcnNpc3RlbmNlTWV0aG9kKHRoaXMucGVyc2lzdGVuY2UoKSwgbWV0aG9kTmFtZSwgLi4ucGF0aFBhcmFtcy52YWx1ZXNJbk9yZGVyLCBkaXJlY3Rpb24sIGxpbWl0LCBvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoYEN1c3RvbSBxdWVyeSBcIiR7bWV0aG9kTmFtZX1cIiBmYWlsZWRgLCBlKTtcbiAgICAgICAgICAgIHRocm93IHRvRGVjYWZFcnJvcihlLCBgQ3VzdG9tIHF1ZXJ5IFwiJHttZXRob2ROYW1lfVwiIGZhaWxlZGApO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVSb3V0ZU1ldGhvZChDb250cm9sbGVyQ2xhc3MsIG1ldGhvZE5hbWUsIGhhbmRsZXIpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29udHJvbGxlckNsYXNzLnByb3RvdHlwZSB8fCBDb250cm9sbGVyQ2xhc3MsIG1ldGhvZE5hbWUsIHtcbiAgICAgICAgdmFsdWU6IGhhbmRsZXIsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDb250cm9sbGVyQ2xhc3MucHJvdG90eXBlIHx8IENvbnRyb2xsZXJDbGFzcywgbWV0aG9kTmFtZSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTl6Y21NdlpHVmpZV1l0Ylc5a1pXd3ZkWFJwYkhNdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlIzWkRMRTlCUVU4c1JVRkRUQ3h2UWtGQmIwSXNSVUZEY0VJc1lVRkJZU3hGUVVOaUxGbEJRVmtzUlVGRFdpeFJRVUZSTEVWQlExSXNVVUZCVVN4SFFVTlVMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZEZWtJc1QwRkJUeXhGUVVkTUxGZEJRVmNzUjBGRFdpdzRRa0ZCY1VJN1FVRkZkRUlzVDBGQlR5eEZRVVZNTEZsQlFWa3NSVUZEV2l4alFVRmpMRWRCUldZc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVjRRaXhQUVVGUExFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc09FSkJRVEpDTzBGQlJYcEVMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzWVVGQllTeEZRVUZGTEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRmJrVXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEZOQlFXbENMRVZCUVZrc1JVRkJSVHRKUVVONFJDeFBRVUZQTEZOQlFWTTdVMEZEWWl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRE8xTkJRMVlzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTJoRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpWQ0xFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNXVUZCV1N4SFFVRkhMRU5CUVVNc1NVRkJXU3hGUVVGdlFpeEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hKUVVGSk8wbEJRMG9zVjBGQlZ5eEZRVUZGTEVkQlFVY3NTVUZCU1N3d1FrRkJNRUk3U1VGRE9VTXNVVUZCVVN4RlFVRkZMRWxCUVVrN1NVRkRaQ3hKUVVGSkxFVkJRVVVzVFVGQlRUdERRVU5pTEVOQlFVTXNRMEZCUXp0QlFVVklMRk5CUVZNc1dVRkJXU3hEUVVGRExFdEJRV01zUlVGQlJTeGxRVUYxUWp0SlFVTXpSQ3hKUVVGSkxFdEJRVXNzV1VGQldTeFRRVUZUTzFGQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkROME1zVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZEZEVJc1MwRkJTeXhaUVVGWkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4bFFVRmxMRXRCUVVzc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUTJ4R0xFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2RDUVVGblFpeERRVU01UWl4VlFVRnJRaXhGUVVOc1FpeFRRVUZwUWl4RlFVTnFRaXhSUVVGdFFpeEZRVU51UWl4eFFrRkJPRUlzUzBGQlN6dEpRVVZ1UXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEcxQ1FVRnRRaXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBsQlEzWkVMRTFCUVUwc1lVRkJZU3hIUVVGSExHbENRVUZwUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0SlFVVnlSU3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVNNVFpeEpRVUZKTEZGQlFWRXNTMEZCU3l4TFFVRkxMRWxCUVVrc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0UlFVTTNReXhyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRU5CUTNKQ0xGRkJRVkVzUTBGQlF6dFpRVU5RTEVsQlFVa3NSVUZCUlN4WFFVRlhPMWxCUTJwQ0xGRkJRVkVzUlVGQlJTeExRVUZMTzFsQlEyWXNTVUZCU1N4RlFVRkZMR05CUVdNN1dVRkRjRUlzVjBGQlZ5eEZRVUZGTEdkRFFVRm5RenRUUVVNNVF5eERRVUZETEVWQlEwWXNVVUZCVVN4RFFVRkRPMWxCUTFBc1NVRkJTU3hGUVVGRkxFOUJRVTg3V1VGRFlpeFJRVUZSTEVWQlFVVXNTMEZCU3p0WlFVTm1MRmRCUVZjc1JVRkJSU3h2UTBGQmIwTTdVMEZEYkVRc1EwRkJReXhGUVVOR0xGRkJRVkVzUTBGQlF6dFpRVU5RTEVsQlFVa3NSVUZCUlN4UlFVRlJPMWxCUTJRc1VVRkJVU3hGUVVGRkxFdEJRVXM3V1VGRFppeFhRVUZYTEVWQlFVVXNiME5CUVc5RE8xTkJRMnhFTEVOQlFVTXNRMEZEU0N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFOUJRVTg3VVVGRFRDeE5RVUZOTEVWQlFVVTdXVUZEVGl4blFrRkJaMElzUTBGQlF5eFRRVUZUTEVOQlFVTTdXVUZETTBJc1IwRkJSeXhoUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXp0WlFVTTVRaXhIUVVGSExHdENRVUZyUWp0WlFVTnlRaXhaUVVGWkxFTkJRVU03WjBKQlExZ3NUMEZCVHl4RlFVRkZMSGREUVVGM1F5eFZRVUZWTEVsQlFVazdZVUZEYUVVc1EwRkJRenRaUVVOR0xHRkJRV0VzUTBGQlF6dG5Ra0ZEV2l4WFFVRlhMRVZCUVVVc1owTkJRV2RETzJGQlF6bERMRU5CUVVNN1dVRkRSaXh2UWtGQmIwSXNRMEZCUXp0blFrRkRia0lzVjBGQlZ5eEZRVUZGTEc5RFFVRnZRenRoUVVOc1JDeERRVUZETzFOQlEwZzdVVUZEUkN4TlFVRk5MRVZCUVVVc1EwRkJReXhYUVVGWExFTkJRVU1zWVVGQllTeERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hyUWtGQmEwSTdTMEZEYkVVc1EwRkJRenRCUVVOS0xFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNhMEpCUVd0Q0xFTkJRMmhETEUxQlFWY3NSVUZEV0N4VlFVRnJRaXhGUVVOc1FpeFZRVUU0UWl4RlFVTTVRaXhWUVVFeVFqdEpRVVV6UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhOUVVGTkxFVkJRVVVzVTBGQlV5eEpRVUZKTEUxQlFVMHNRMEZCUXp0SlFVTXhReXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4VlFVRlZMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU51UlN4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNWVUZCVlN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFVXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3gzUWtGQmQwSXNRMEZEZEVNc1YwRkJjME1zUlVGRGRFTXNWVUZCYTBJc1JVRkRiRUlzUjBGQlJ5eEpRVUZYTzBsQlJXUXNTVUZCU1N4WFFVRlhMRmxCUVZrc1dVRkJXU3hGUVVGRkxFTkJRVU03VVVGRGVFTXNUMEZCVHl4UFFVRlJMRmRCUVcxQ0xFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NWVUZCVlR0WlFVTXpSQ3hEUVVGRExFTkJRVVVzVjBGQmJVSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6dFpRVU16UXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eFZRVUZWTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOcVJDeERRVUZETzBsQlJVUXNTVUZCU1N4UFFVRlJMRmRCUVcxQ0xFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NWVUZCVlR0UlFVTjRSQ3hQUVVGUkxGZEJRVzFDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVVZ1UkN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVOeVFpeDFRa0ZCZFVJc1ZVRkJWU3hyUWtGQmEwSXNWMEZCVnl4RlFVRkZMRmRCUVZjc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGRGNFWXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVrc1ZVRkJhMEk3U1VGRGRFUXNUMEZCVHl4TFFVRkxMRmRCUlZZc1ZVRkJNa0lzUlVGRE0wSXNWMEZCYVVNN1VVRkZha01zVFVGQlRTeEhRVUZITEVkQlFWY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZGTjBNc1NVRkJTU3hEUVVGRE8xbEJRMGdzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN4blEwRkJaME1zVlVGQlZTeDFRa0ZCZFVJc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFZRVUZWTEVOQlFVTXNZVUZCWVN4RFFVRkRMRVZCUVVVc1EwRkROVWNzUTBGQlF6dFpRVU5HTEUxQlFVMHNSVUZCUlN4VFFVRlRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeEhRVUZITEZkQlFWY3NRMEZCUXp0WlFVTnFSQ3hQUVVGUExFMUJRVTBzZDBKQlFYZENMRU5CUTI1RExFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNSVUZEYkVJc1ZVRkJWU3hGUVVOV0xFZEJRVWNzVlVGQlZTeERRVUZETEdGQlFXRXNSVUZETTBJc1UwRkJVeXhGUVVOVUxFdEJRVXNzUlVGRFRDeE5RVUZOTEVOQlExQXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkJReXhQUVVGUExFTkJRVTBzUlVGQlJTeERRVUZETzFsQlEyaENMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zYVVKQlFXbENMRlZCUVZVc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzQkVMRTFCUVUwc1dVRkJXU3hEUVVGRExFTkJRVU1zUlVGQlJTeHBRa0ZCYVVJc1ZVRkJWU3hWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU12UkN4RFFVRkRPMGxCUTBnc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4cFFrRkJhVUlzUTBGREwwSXNaVUZCTkVNc1JVRkROVU1zVlVGQmEwSXNSVUZEYkVJc1QwRkJaME03U1VGRmFFTXNUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkRia0lzWlVGQlpTeERRVUZETEZOQlFWTXNTVUZCU1N4bFFVRmxMRVZCUXpWRExGVkJRVlVzUlVGRFZqdFJRVU5GTEV0QlFVc3NSVUZCUlN4UFFVRlBPMUZCUTJRc1VVRkJVU3hGUVVGRkxFdEJRVXM3UzBGRGFFSXNRMEZEUml4RFFVRkRPMGxCUlVZc1QwRkJUeXhOUVVGTkxFTkJRVU1zZDBKQlFYZENMRU5CUTNCRExHVkJRV1VzUTBGQlF5eFRRVUZUTEVsQlFVa3NaVUZCWlN4RlFVTTFReXhWUVVGVkxFTkJRMWdzUTBGQlF6dEJRVU5LTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJSZFdWeWVTQjlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dURzluWjJWeUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OXNiMmRuYVc1blhDSTdYRzVwYlhCdmNuUWdleUIwZVhCbElFUmxZMjl5WVhSdmNrSjFibVJzWlNCOUlHWnliMjBnWENJdUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JCY0dsT2IwTnZiblJsYm5SU1pYTndiMjV6WlN4Y2JpQWdRWEJwVDJ0U1pYTndiMjV6WlN4Y2JpQWdRWEJwVDNCbGNtRjBhVzl1TEZ4dUlDQkJjR2xRWVhKaGJTeGNiaUFnUVhCcFVYVmxjbmtzWEc1OUlHWnliMjBnWENKQWJtVnpkR3B6TDNOM1lXZG5aWEpjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJRVJsWTJGbVFYQnBVSEp2Y0dWeWRIa3NYRzRnSUhSNWNHVWdSR1ZqWVdaUVlYSmhiVkJ5YjNCekxGeHVJQ0JFWldOaFpsQmhjbUZ0Y3l4Y2JuMGdabkp2YlNCY0lpNHZaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUhSNWNHVWdleUJJZEhSd1ZtVnlZbk1nZlNCbWNtOXRJRndpTGk5a1pXTnZjbUYwYjNKekwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JFYVhKbFkzUnBiMjVNYVcxcGRFOW1abk5sZEN4Y2JpQWdUVzlrWld4VFpYSjJhV05sTEZ4dUlDQlBjbVJsY2tScGNtVmpkR2x2Yml4Y2JpQWdVbVZ3Ynl4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5Qk5iMlJsYkNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUVoMGRIQldaWEppVkc5RVpXTnZjbUYwYjNJZ2ZTQm1jbTl0SUZ3aUxpOWtaV052Y21GMGIzSnpMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdleUJFWldOaFprMXZaR1ZzUTI5dWRISnZiR3hsY2lCOUlHWnliMjBnWENJdUxpOWpiMjUwY205c2JHVnljMXdpTzF4dWFXMXdiM0owSUhzZ1FtRnpaVVZ5Y205eUxDQkpiblJsY201aGJFVnljbTl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1Y2JtTnZibk4wSUdWNGRISmhZM1JRWVhSb1VHRnlZVzF6SUQwZ0tISnZkWFJsVUdGMGFEb2djM1J5YVc1bktUb2djM1J5YVc1blcxMGdQVDRnZTF4dUlDQnlaWFIxY200Z2NtOTFkR1ZRWVhSb1hHNGdJQ0FnTG5Od2JHbDBLRndpTDF3aUtWeHVJQ0FnSUM1bWFXeDBaWElvS0hBcElEMCtJSEF1YzNSaGNuUnpWMmwwYUNoY0lqcGNJaWtwWEc0Z0lDQWdMbTFoY0Nnb2NDa2dQVDRnY0M1emJHbGpaU2d4S1NrN1hHNTlPMXh1WEc1amIyNXpkQ0JoY0dsUVlYSmhiVk53WldNZ1BTQW9ibUZ0WlRvZ2MzUnlhVzVuS1RvZ1JHVmpZV1pCY0dsUWNtOXdaWEowZVNBOVBpQW9lMXh1SUNCdVlXMWxMRnh1SUNCa1pYTmpjbWx3ZEdsdmJqb2dZQ1I3Ym1GdFpYMGdjR0Z5WVcxbGRHVnlJR1p2Y2lCMGFHVWdjWFZsY25sZ0xGeHVJQ0J5WlhGMWFYSmxaRG9nZEhKMVpTeGNiaUFnZEhsd1pUb2dVM1J5YVc1bkxGeHVmU2s3WEc1Y2JtWjFibU4wYVc5dUlIUnZSR1ZqWVdaRmNuSnZjaWhsY25KdmNqb2dkVzVyYm05M2Jpd2dabUZzYkdKaFkydE5aWE56WVdkbE9pQnpkSEpwYm1jcE9pQkNZWE5sUlhKeWIzSWdlMXh1SUNCcFppQW9aWEp5YjNJZ2FXNXpkR0Z1WTJWdlppQkNZWE5sUlhKeWIzSXBJSEpsZEhWeWJpQmxjbkp2Y2p0Y2JpQWdjbVYwZFhKdUlHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGeHVJQ0FnSUdWeWNtOXlJR2x1YzNSaGJtTmxiMllnUlhKeWIzSWdQeUJnSkh0bVlXeHNZbUZqYTAxbGMzTmhaMlY5T2lBa2UyVnljbTl5TG0xbGMzTmhaMlY5WUNBNklHWmhiR3hpWVdOclRXVnpjMkZuWlZ4dUlDQXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBRWEJwUkdWamIzSmhkRzl5Y3loY2JpQWdiV1YwYUc5a1RtRnRaVG9nYzNSeWFXNW5MRnh1SUNCeWIzVjBaVkJoZEdnNklITjBjbWx1Wnl4Y2JpQWdhSFIwY0ZabGNtSTZJRWgwZEhCV1pYSmljeXhjYmlBZ2FXNWpiSFZrWlZGMVpYSjVVR0Z5WVcxek9pQmliMjlzWldGdUlEMGdabUZzYzJWY2JpazZJRVJsWTI5eVlYUnZja0oxYm1Sc1pTQjdYRzRnSUdOdmJuTjBJRTVsYzNSSWRIUndVbTkxZEdWRVpXTWdQU0JJZEhSd1ZtVnlZbFJ2UkdWamIzSmhkRzl5S0doMGRIQldaWEppS1R0Y2JpQWdZMjl1YzNRZ1lYQnBVR0YwYUZCaGNtRnRjeUE5SUdWNGRISmhZM1JRWVhSb1VHRnlZVzF6S0hKdmRYUmxVR0YwYUNrdWJXRndLR0Z3YVZCaGNtRnRVM0JsWXlrN1hHNWNiaUFnWTI5dWMzUWdjM2RoWjJkbGNsRjFaWEo1VUdGeVlXMXpJRDBnVzEwN1hHNGdJR2xtSUNob2RIUndWbVZ5WWlBOVBUMGdYQ0pIUlZSY0lpQW1KaUJwYm1Oc2RXUmxVWFZsY25sUVlYSmhiWE1wSUh0Y2JpQWdJQ0J6ZDJGbloyVnlVWFZsY25sUVlYSmhiWE11Y0hWemFDaGNiaUFnSUNBZ0lFRndhVkYxWlhKNUtIdGNiaUFnSUNBZ0lDQWdibUZ0WlRvZ1hDSmthWEpsWTNScGIyNWNJaXhjYmlBZ0lDQWdJQ0FnY21WeGRXbHlaV1E2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0JsYm5WdE9pQlBjbVJsY2tScGNtVmpkR2x2Yml4Y2JpQWdJQ0FnSUNBZ1pHVnpZM0pwY0hScGIyNDZJRndpZEdobElITnZjblFnYjNKa1pYSWdkMmhsYmlCaGNIQnNhV05oWW14bFhDSXNYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJRUZ3YVZGMVpYSjVLSHRjYmlBZ0lDQWdJQ0FnYm1GdFpUb2dYQ0pzYVcxcGRGd2lMRnh1SUNBZ0lDQWdJQ0J5WlhGMWFYSmxaRG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJR1JsYzJOeWFYQjBhVzl1T2lCY0lteHBiV2wwSUc5eUlIQmhaMlVnYzJsNlpTQjNhR1Z1SUdGd2NHeHBZMkZpYkdWY0lpeGNiaUFnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdRWEJwVVhWbGNua29lMXh1SUNBZ0lDQWdJQ0J1WVcxbE9pQmNJbTltWm5ObGRGd2lMRnh1SUNBZ0lDQWdJQ0J5WlhGMWFYSmxaRG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJR1JsYzJOeWFYQjBhVzl1T2lCY0ltOW1abk5sZENCdmNpQmliMjlyYldGeWF5QjNhR1Z1SUdGd2NHeHBZMkZpYkdWY0lpeGNiaUFnSUNBZ0lIMHBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQjdYRzRnSUNBZ2JXVjBhRzlrT2lCYlhHNGdJQ0FnSUNCT1pYTjBTSFIwY0ZKdmRYUmxSR1ZqS0hKdmRYUmxVR0YwYUNrc1hHNGdJQ0FnSUNBdUxpNWhjR2xRWVhSb1VHRnlZVzF6TG0xaGNDaEJjR2xRWVhKaGJTa3NYRzRnSUNBZ0lDQXVMaTV6ZDJGbloyVnlVWFZsY25sUVlYSmhiWE1zWEc0Z0lDQWdJQ0JCY0dsUGNHVnlZWFJwYjI0b2UxeHVJQ0FnSUNBZ0lDQnpkVzF0WVhKNU9pQmdVbVYwY21sbGRtVWdjbVZqYjNKa2N5QjFjMmx1WnlCaFkyTnZjbVJwYm1jZ2RHOGdYQ0lrZTIxbGRHaHZaRTVoYldWOVhDSXVZQ3hjYmlBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnUVhCcFQydFNaWE53YjI1elpTaDdYRzRnSUNBZ0lDQWdJR1JsYzJOeWFYQjBhVzl1T2lCZ1VtVnpkV3gwSUhOMVkyTmxjM05tZFd4c2VTQnlaWFJ5YVdWMlpXUXVZQ3hjYmlBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnUVhCcFRtOURiMjUwWlc1MFVtVnpjRzl1YzJVb2UxeHVJQ0FnSUNBZ0lDQmtaWE5qY21sd2RHbHZiam9nWUU1dklHTnZiblJsYm5RZ2NtVjBkWEp1WldRZ1lua2dkR2hsSUcxbGRHaHZaQzVnTEZ4dUlDQWdJQ0FnZlNrc1hHNGdJQ0FnWFN4Y2JpQWdJQ0J3WVhKaGJYTTZJRnRFWldOaFpsQmhjbUZ0Y3loaGNHbFFZWFJvVUdGeVlXMXpLU3dnVVhWbGNua29LVjBzSUM4dklDd2dSR1ZqWVdaQ2IyUjVLQ2xkTEZ4dUlDQjlPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYQndiSGxCY0dsRVpXTnZjbUYwYjNKektGeHVJQ0IwWVhKblpYUTZJR0Z1ZVN4Y2JpQWdiV1YwYUc5a1RtRnRaVG9nYzNSeWFXNW5MRnh1SUNCa1pYTmpjbWx3ZEc5eU9pQlFjbTl3WlhKMGVVUmxjMk55YVhCMGIzSXNYRzRnSUdSbFkyOXlZWFJ2Y25NNklFUmxZMjl5WVhSdmNrSjFibVJzWlZ4dUtTQjdYRzRnSUdOdmJuTjBJSEJ5YjNSdklEMGdkR0Z5WjJWMFB5NXdjbTkwYjNSNWNHVWdQejhnZEdGeVoyVjBPMXh1SUNCa1pXTnZjbUYwYjNKekxtMWxkR2h2WkM1bWIzSkZZV05vS0Noa0tTQTlQaUJrS0hCeWIzUnZMQ0J0WlhSb2IyUk9ZVzFsTENCa1pYTmpjbWx3ZEc5eUtTazdYRzRnSUdSbFkyOXlZWFJ2Y25NdWNHRnlZVzF6UHk1bWIzSkZZV05vS0Noa0xDQnBibVJsZUNrZ1BUNGdaQ2h3Y205MGJ5d2diV1YwYUc5a1RtRnRaU3dnYVc1a1pYZ3BLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlISmxjMjlzZG1WUVpYSnphWE4wWlc1alpVMWxkR2h2WkR4VUlHVjRkR1Z1WkhNZ1RXOWtaV3c4WW05dmJHVmhiajQrS0Z4dUlDQndaWEp6YVhOMFpXNWpaVG9nVW1Wd2J6eFVQaUI4SUUxdlpHVnNVMlZ5ZG1salpUeFVQaXhjYmlBZ2JXVjBhRzlrVG1GdFpUb2djM1J5YVc1bkxGeHVJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVLVG9nWVc1NUlIdGNiaUFnYVdZZ0tIQmxjbk5wYzNSbGJtTmxJR2x1YzNSaGJtTmxiMllnVFc5a1pXeFRaWEoyYVdObEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSNWNHVnZaaUFvY0dWeWMybHpkR1Z1WTJVZ1lYTWdZVzU1S1Z0dFpYUm9iMlJPWVcxbFhTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aVhHNGdJQ0FnSUNBL0lDaHdaWEp6YVhOMFpXNWpaU0JoY3lCaGJua3BXMjFsZEdodlpFNWhiV1ZkS0M0dUxtRnlaM01wWEc0Z0lDQWdJQ0E2SUhCbGNuTnBjM1JsYm1ObExuTjBZWFJsYldWdWRDaHRaWFJvYjJST1lXMWxMQ0F1TGk1aGNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdsbUlDaDBlWEJsYjJZZ0tIQmxjbk5wYzNSbGJtTmxJR0Z6SUdGdWVTbGJiV1YwYUc5a1RtRnRaVjBnUFQwOUlGd2lablZ1WTNScGIyNWNJaWxjYmlBZ0lDQnlaWFIxY200Z0tIQmxjbk5wYzNSbGJtTmxJR0Z6SUdGdWVTbGJiV1YwYUc5a1RtRnRaVjBvTGk0dVlYSm5jeWs3WEc1Y2JpQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnWUZCbGNuTnBjM1JsYm1ObElHMWxkR2h2WkNCY0lpUjdiV1YwYUc5a1RtRnRaWDFjSWlCdWIzUWdabTkxYm1RZ2IyNGdKSHR3WlhKemFYTjBaVzVqWlQ4dVkyOXVjM1J5ZFdOMGIzSS9MbTVoYldWOVlGeHVJQ0FwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZM0psWVhSbFVtOTFkR1ZJWVc1a2JHVnlQRlErS0cxbGRHaHZaRTVoYldVNklITjBjbWx1WnlrZ2UxeHVJQ0J5WlhSMWNtNGdZWE41Ym1NZ1puVnVZM1JwYjI0Z0tGeHVJQ0FnSUhSb2FYTTZJRVJsWTJGbVRXOWtaV3hEYjI1MGNtOXNiR1Z5UEdGdWVUNHNYRzRnSUNBZ2NHRjBhRkJoY21GdGN6b2dSR1ZqWVdaUVlYSmhiVkJ5YjNCekxGeHVJQ0FnSUhGMVpYSjVVR0Z5WVcxek9pQkVhWEpsWTNScGIyNU1hVzFwZEU5bVpuTmxkRnh1SUNBcE9pQlFjbTl0YVhObFBGUStJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyYzZJRXh2WjJkbGNpQTlJSFJvYVhNdWJHOW5MbVp2Y2lodFpYUm9iMlJPWVcxbEtUdGNibHh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JzYjJjdVpHVmlkV2NvWEc0Z0lDQWdJQ0FnSUdCSmJuWnZhMmx1WnlCd1pYSnphWE4wWlc1alpTQnRaWFJvYjJRZ1hDSWtlMjFsZEdodlpFNWhiV1Y5WENJZ1oybDJaVzRnY0dGeVlXMWxkR1Z5Y3pvZ0pIdEtVMDlPTG5OMGNtbHVaMmxtZVNod1lYUm9VR0Z5WVcxekxuWmhiSFZsYzBsdVQzSmtaWElwZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCamIyNXpkQ0I3SUdScGNtVmpkR2x2Yml3Z2JHbHRhWFFzSUc5bVpuTmxkQ0I5SUQwZ2NYVmxjbmxRWVhKaGJYTTdYRzRnSUNBZ0lDQnlaWFIxY200Z1lYZGhhWFFnY21WemIyeDJaVkJsY25OcGMzUmxibU5sVFdWMGFHOWtLRnh1SUNBZ0lDQWdJQ0IwYUdsekxuQmxjbk5wYzNSbGJtTmxLQ2tzWEc0Z0lDQWdJQ0FnSUcxbGRHaHZaRTVoYldVc1hHNGdJQ0FnSUNBZ0lDNHVMbkJoZEdoUVlYSmhiWE11ZG1Gc2RXVnpTVzVQY21SbGNpeGNiaUFnSUNBZ0lDQWdaR2x5WldOMGFXOXVMRnh1SUNBZ0lDQWdJQ0JzYVcxcGRDeGNiaUFnSUNBZ0lDQWdiMlptYzJWMFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklHRnVlU2tnZTF4dUlDQWdJQ0FnYkc5bkxtVnljbTl5S0dCRGRYTjBiMjBnY1hWbGNua2dYQ0lrZTIxbGRHaHZaRTVoYldWOVhDSWdabUZwYkdWa1lDd2daU2s3WEc0Z0lDQWdJQ0IwYUhKdmR5QjBiMFJsWTJGbVJYSnliM0lvWlN3Z1lFTjFjM1J2YlNCeGRXVnllU0JjSWlSN2JXVjBhRzlrVG1GdFpYMWNJaUJtWVdsc1pXUmdLVHRjYmlBZ0lDQjlYRzRnSUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJrWldacGJtVlNiM1YwWlUxbGRHaHZaQ2hjYmlBZ1EyOXVkSEp2Ykd4bGNrTnNZWE56T2lCdVpYY2dLQzR1TG1GeVozTTZJR0Z1ZVZ0ZEtTQTlQaUJoYm5rc1hHNGdJRzFsZEdodlpFNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ2FHRnVaR3hsY2pvZ0tDNHVMbUZ5WjNNNklHRnVlVnRkS1NBOVBpQmhibmxjYmlrNklGQnliM0JsY25SNVJHVnpZM0pwY0hSdmNpQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2hjYmlBZ0lDQkRiMjUwY205c2JHVnlRMnhoYzNNdWNISnZkRzkwZVhCbElIeDhJRU52Ym5SeWIyeHNaWEpEYkdGemN5eGNiaUFnSUNCdFpYUm9iMlJPWVcxbExGeHVJQ0FnSUh0Y2JpQWdJQ0FnSUhaaGJIVmxPaUJvWVc1a2JHVnlMRnh1SUNBZ0lDQWdkM0pwZEdGaWJHVTZJR1poYkhObExGeHVJQ0FnSUgxY2JpQWdLVHRjYmx4dUlDQnlaWFIxY200Z1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVSR1Z6WTNKcGNIUnZjaWhjYmlBZ0lDQkRiMjUwY205c2JHVnlRMnhoYzNNdWNISnZkRzkwZVhCbElIeDhJRU52Ym5SeWIyeHNaWEpEYkdGemN5eGNiaUFnSUNCdFpYUm9iMlJPWVcxbFhHNGdJQ2s3WEc1OVhHNGlYWDA9Il19