@decaf-ts/for-nest 0.11.2-refactor.2 → 0.11.2-refactor.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
@@ -6,6 +6,7 @@ exports.Repository = Repository;
6
6
  const common_1 = require("@nestjs/common");
7
7
  const core_1 = require("@decaf-ts/core");
8
8
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
9
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
9
10
  const pendingProviders = new Map();
10
11
  /**
11
12
  * @description Drains the providers registered by {@link Service}/{@link Repository} usages.
@@ -50,7 +51,7 @@ function Service(key) {
50
51
  resolved = paramTypes[parameterIndex];
51
52
  }
52
53
  if (typeof resolved === "undefined") {
53
- throw new Error(`@Service() could not determine an injection type for parameter ${parameterIndex} of ${target.name}. Provide an explicit argument, e.g. @Service(SomeService).`);
54
+ throw new db_decorators_1.InternalError(`@Service() could not determine an injection type for parameter ${parameterIndex} of ${target.name}. Provide an explicit argument, e.g. @Service(SomeService).`);
54
55
  }
55
56
  const asModel = typeof resolved !== "string" && isModelConstructor(resolved);
56
57
  const token = asModel
@@ -81,5 +82,5 @@ function Repository(model, flavour) {
81
82
  return (0, common_1.Inject)(token)(target, propertyKey, parameterIndex);
82
83
  };
83
84
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixVQUFVLElBQUksY0FBYyxFQUM1QixPQUFPLElBQUksV0FBVyxHQUN2QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU92RCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO0FBRWpFOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsVUFBeUI7SUFDaEUsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTztJQUN4QyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEtBQWM7SUFDeEMsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxDQUFDLFNBQVMsWUFBWSxLQUFLLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsS0FBdUI7SUFDaEQsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FDM0IsS0FBdUIsRUFDdkIsT0FBZ0I7SUFFaEIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksY0FBYyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUM7QUFDcEYsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUErQjtJQUNyRCxPQUFPLENBQ0wsTUFBYyxFQUNkLFdBQXdDLEVBQ3hDLGNBQXNCLEVBQ2hCLEVBQUU7UUFDUixJQUFJLFFBQVEsR0FBMEMsR0FBRyxDQUFDO1FBQzFELElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsTUFBTSxVQUFVLEdBQ2QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekQsUUFBUSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUNiLGtFQUFrRSxjQUFjLE9BQVEsTUFBMkIsQ0FBQyxJQUFJLDZEQUE2RCxDQUN0TCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxNQUFNLEtBQUssR0FBRyxPQUFPO1lBQ25CLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUE0QixDQUFDO1lBQ2pELENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFxQyxDQUFDLENBQUM7UUFFaEUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUMzQixJQUFJLE9BQU87Z0JBQUUsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQTRCLENBQUMsQ0FBQztZQUN4RSxPQUFPLE9BQU8sUUFBUSxLQUFLLFFBQVE7Z0JBQ2pDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBNEIsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQ3hCLEtBQXVCLEVBQ3ZCLE9BQWdCO0lBRWhCLE9BQU8sQ0FDTCxNQUFjLEVBQ2QsV0FBd0MsRUFDeEMsY0FBc0IsRUFDaEIsRUFBRTtRQUNSLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQge1xuICBpbmplY3RhYmxlU2VydmljZUtleSxcbiAgTW9kZWxTZXJ2aWNlLFxuICBSZXBvc2l0b3J5IGFzIENvcmVSZXBvc2l0b3J5LFxuICBTZXJ2aWNlIGFzIENvcmVTZXJ2aWNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5leHBvcnQgdHlwZSBEZWNhZkZhY3RvcnlQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogc3RyaW5nO1xuICB1c2VGYWN0b3J5OiAoKSA9PiB1bmtub3duO1xufTtcblxuY29uc3QgcGVuZGluZ1Byb3ZpZGVycyA9IG5ldyBNYXA8c3RyaW5nLCBEZWNhZkZhY3RvcnlQcm92aWRlcj4oKTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRHJhaW5zIHRoZSBwcm92aWRlcnMgcmVnaXN0ZXJlZCBieSB7QGxpbmsgU2VydmljZX0ve0BsaW5rIFJlcG9zaXRvcnl9IHVzYWdlcy5cbiAqIEBzdW1tYXJ5IENvbnN1bWVkIGJ5IHtAbGluayBEZWNhZkNvcmVNb2R1bGUuZm9yUm9vdH0gdG8gd2lyZSB0aGUgdG9rZW5zIHRoYXQgdGhvc2UgcGFyYW1ldGVyXG4gKiBkZWNvcmF0b3JzIHJlZmVyZW5jZSBiYWNrIGludG8gTmVzdCdzIERJIGNvbnRhaW5lciwgc2luY2UgYSBwYXJhbWV0ZXIgZGVjb3JhdG9yIGFsb25lIGNhbm5vdFxuICogc3VwcGx5IGEgcHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWdpc3RlcmVkRGVjYWZQcm92aWRlcnMoKTogRGVjYWZGYWN0b3J5UHJvdmlkZXJbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHBlbmRpbmdQcm92aWRlcnMudmFsdWVzKCkpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlclByb3ZpZGVyKHRva2VuOiBzdHJpbmcsIHVzZUZhY3Rvcnk6ICgpID0+IHVua25vd24pOiB2b2lkIHtcbiAgaWYgKHBlbmRpbmdQcm92aWRlcnMuaGFzKHRva2VuKSkgcmV0dXJuO1xuICBwZW5kaW5nUHJvdmlkZXJzLnNldCh0b2tlbiwgeyBwcm92aWRlOiB0b2tlbiwgdXNlRmFjdG9yeSB9KTtcbn1cblxuZnVuY3Rpb24gaXNNb2RlbENvbnN0cnVjdG9yKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQ29uc3RydWN0b3I8YW55PiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJiB2YWx1ZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBNb2RlbDtcbn1cblxuZnVuY3Rpb24gbW9kZWxTZXJ2aWNlVG9rZW4obW9kZWw6IENvbnN0cnVjdG9yPGFueT4pOiBzdHJpbmcge1xuICByZXR1cm4gYCR7bW9kZWwubmFtZX1TZXJ2aWNlYDtcbn1cblxuZnVuY3Rpb24gbW9kZWxSZXBvc2l0b3J5VG9rZW4oXG4gIG1vZGVsOiBDb25zdHJ1Y3Rvcjxhbnk+LFxuICBmbGF2b3VyPzogc3RyaW5nXG4pOiBzdHJpbmcge1xuICByZXR1cm4gZmxhdm91ciA/IGAke21vZGVsLm5hbWV9UmVwb3NpdG9yeUAke2ZsYXZvdXJ9YCA6IGAke21vZGVsLm5hbWV9UmVwb3NpdG9yeWA7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYgc2VydmljZS5cbiAqIEBzdW1tYXJ5IFRyYW5zbGF0ZXMgZGVjYWYncyBzZXJ2aWNlIHJlc29sdXRpb24gQVBJcyBpbnRvIGEgTmVzdCBgQEluamVjdCgpYCBjYWxsOlxuICogLSBgQFNlcnZpY2UoU29tZU1vZGVsKWAgaW5qZWN0cyB0aGUgYE1vZGVsU2VydmljZTxTb21lTW9kZWw+YCBzaW5nbGV0b24gZm9yIHRoYXQgbW9kZWxcbiAqICAgKHZpYSB7QGxpbmsgTW9kZWxTZXJ2aWNlLmZvck1vZGVsfSkuXG4gKiAtIGBAU2VydmljZShTb21lU2VydmljZUNsYXNzKWAgb3IgYEBTZXJ2aWNlKFwiYWxpYXNcIilgIGluamVjdHMgdGhlIG1hdGNoaW5nIGBAc2VydmljZSgpYC1kZWNvcmF0ZWRcbiAqICAgZGVjYWYge0BsaW5rIENvcmVTZXJ2aWNlfSAodmlhIHtAbGluayBDb3JlU2VydmljZS5nZXR9KS5cbiAqIC0gYEBTZXJ2aWNlKClgIGluZmVycyB0aGUgcGFyYW1ldGVyJ3MgdHlwZSBmcm9tIGVtaXR0ZWQgY29uc3RydWN0b3IgbWV0YWRhdGEgYW5kIHJlc29sdmVzIGl0IHRoZVxuICogICBzYW1lIHdheSwgcHJvdmlkZWQgdGhlIHBhcmFtZXRlciBpcyB0eXBlZCBhcyBhIGNvbmNyZXRlIGNsYXNzIChnZW5lcmljcyBsaWtlIGBNb2RlbFNlcnZpY2U8WD5gXG4gKiAgIGFyZSBlcmFzZWQgYXQgcnVudGltZSwgc28gdGhlIG1vZGVsLXNlcnZpY2UgZm9ybSBhbHdheXMgcmVxdWlyZXMgYW4gZXhwbGljaXQgYXJndW1lbnQpLlxuICogQHBhcmFtIGtleSB0aGUgbW9kZWwgY2xhc3MsIHNlcnZpY2UgY2xhc3MsIG9yIGFsaWFzIHRvIHJlc29sdmUuIE9taXQgdG8gaW5mZXIgZnJvbSB0aGUgcGFyYW1ldGVyIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlKGtleT86IHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4pOiBQYXJhbWV0ZXJEZWNvcmF0b3Ige1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogb2JqZWN0LFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wgfCB1bmRlZmluZWQsXG4gICAgcGFyYW1ldGVySW5kZXg6IG51bWJlclxuICApOiB2b2lkID0+IHtcbiAgICBsZXQgcmVzb2x2ZWQ6IHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4gfCB1bmRlZmluZWQgPSBrZXk7XG4gICAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uc3QgcGFyYW1UeXBlczogYW55W10gPVxuICAgICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgdGFyZ2V0KSB8fCBbXTtcbiAgICAgIHJlc29sdmVkID0gcGFyYW1UeXBlc1twYXJhbWV0ZXJJbmRleF07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEBTZXJ2aWNlKCkgY291bGQgbm90IGRldGVybWluZSBhbiBpbmplY3Rpb24gdHlwZSBmb3IgcGFyYW1ldGVyICR7cGFyYW1ldGVySW5kZXh9IG9mICR7KHRhcmdldCBhcyBDb25zdHJ1Y3Rvcjxhbnk+KS5uYW1lfS4gUHJvdmlkZSBhbiBleHBsaWNpdCBhcmd1bWVudCwgZS5nLiBAU2VydmljZShTb21lU2VydmljZSkuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBhc01vZGVsID0gdHlwZW9mIHJlc29sdmVkICE9PSBcInN0cmluZ1wiICYmIGlzTW9kZWxDb25zdHJ1Y3RvcihyZXNvbHZlZCk7XG4gICAgY29uc3QgdG9rZW4gPSBhc01vZGVsXG4gICAgICA/IG1vZGVsU2VydmljZVRva2VuKHJlc29sdmVkIGFzIENvbnN0cnVjdG9yPGFueT4pXG4gICAgICA6IGluamVjdGFibGVTZXJ2aWNlS2V5KHJlc29sdmVkIGFzIHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4pO1xuXG4gICAgcmVnaXN0ZXJQcm92aWRlcih0b2tlbiwgKCkgPT4ge1xuICAgICAgaWYgKGFzTW9kZWwpIHJldHVybiBNb2RlbFNlcnZpY2UuZm9yTW9kZWwocmVzb2x2ZWQgYXMgQ29uc3RydWN0b3I8YW55Pik7XG4gICAgICByZXR1cm4gdHlwZW9mIHJlc29sdmVkID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gQ29yZVNlcnZpY2UuZ2V0KHJlc29sdmVkKVxuICAgICAgICA6IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZCBhcyBDb25zdHJ1Y3Rvcjxhbnk+KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBJbmplY3QodG9rZW4pKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiB7QGxpbmsgQ29yZVJlcG9zaXRvcnl9IGZvciBgbW9kZWxgLlxuICogQHN1bW1hcnkgVW5saWtlIHtAbGluayBTZXJ2aWNlfSwgYG1vZGVsYCBpcyBhbHdheXMgdHJlYXRlZCBhcyBhIE1vZGVsIGNsYXNzOiB0aGUgc2FtZSBjbGFzcyBwYXNzZWRcbiAqIHRvIGBAU2VydmljZShtb2RlbClgIGFuZCBgQFJlcG9zaXRvcnkobW9kZWwpYCByZXNvbHZlcyB0byB0d28gZGlmZmVyZW50IGluamVjdGVkIG9iamVjdHMgKGFcbiAqIGBNb2RlbFNlcnZpY2U8TT5gIHZzIGEgYFJlcG9zaXRvcnk8TT5gIHJlc3BlY3RpdmVseSksIHZpYSB7QGxpbmsgQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWx9LlxuICogQHBhcmFtIG1vZGVsIHRoZSBtb2RlbCBjbGFzcyB0byByZXNvbHZlIGEgcmVwb3NpdG9yeSBmb3IuXG4gKiBAcGFyYW0gZmxhdm91ciBvcHRpb25hbCBhZGFwdGVyIGZsYXZvdXIvYWxpYXMsIGZvcndhcmRlZCB0byB7QGxpbmsgQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWx9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gUmVwb3NpdG9yeShcbiAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4sXG4gIGZsYXZvdXI/OiBzdHJpbmdcbik6IFBhcmFtZXRlckRlY29yYXRvciB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBvYmplY3QsXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBwYXJhbWV0ZXJJbmRleDogbnVtYmVyXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHRva2VuID0gbW9kZWxSZXBvc2l0b3J5VG9rZW4obW9kZWwsIGZsYXZvdXIpO1xuICAgIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sICgpID0+IENvcmVSZXBvc2l0b3J5LmZvck1vZGVsKG1vZGVsLCBmbGF2b3VyKSk7XG4gICAgcmV0dXJuIEluamVjdCh0b2tlbikodGFyZ2V0LCBwcm9wZXJ0eUtleSwgcGFyYW1ldGVySW5kZXgpO1xuICB9O1xufVxuIl19
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxrRUFFQztBQTJCRCwwQkF1QkM7QUFTRCxnQ0FNQztBQTdFRCwyQ0FBd0M7QUFDeEMseUNBQTJIO0FBQzNILHlFQUF1RDtBQUN2RCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDbkM7Ozs7O0dBS0c7QUFDSCxTQUFnQiwyQkFBMkI7SUFDdkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUNELFNBQVMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFVBQVU7SUFDdkMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQzNCLE9BQU87SUFDWCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFDRCxTQUFTLGtCQUFrQixDQUFDLEtBQUs7SUFDN0IsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxDQUFDLFNBQVMsWUFBWSw0QkFBSyxDQUFDO0FBQzNFLENBQUM7QUFDRCxTQUFTLGlCQUFpQixDQUFDLEtBQUs7SUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNsQyxDQUFDO0FBQ0QsU0FBUyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTztJQUN4QyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxjQUFjLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQztBQUN0RixDQUFDO0FBQ0Q7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixPQUFPLENBQUMsR0FBRztJQUN2QixPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsRUFBRTtRQUMzQyxJQUFJLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDbkIsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxRSxRQUFRLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLGNBQWMsT0FBTyxNQUFNLENBQUMsSUFBSSw2REFBNkQsQ0FBQyxDQUFDO1FBQ3JMLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQUcsT0FBTztZQUNqQixDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFBLDJCQUFvQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDekIsSUFBSSxPQUFPO2dCQUNQLE9BQU8sbUJBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsT0FBTyxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUMvQixDQUFDLENBQUMsY0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxjQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFBLGVBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPO0lBQ3JDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUFFO1FBQzNDLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFBLGVBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRCw4eFNBQTh4UyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZVNlcnZpY2VLZXksIE1vZGVsU2VydmljZSwgUmVwb3NpdG9yeSBhcyBDb3JlUmVwb3NpdG9yeSwgU2VydmljZSBhcyBDb3JlU2VydmljZSwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuY29uc3QgcGVuZGluZ1Byb3ZpZGVycyA9IG5ldyBNYXAoKTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIERyYWlucyB0aGUgcHJvdmlkZXJzIHJlZ2lzdGVyZWQgYnkge0BsaW5rIFNlcnZpY2V9L3tAbGluayBSZXBvc2l0b3J5fSB1c2FnZXMuXG4gKiBAc3VtbWFyeSBDb25zdW1lZCBieSB7QGxpbmsgRGVjYWZDb3JlTW9kdWxlLmZvclJvb3R9IHRvIHdpcmUgdGhlIHRva2VucyB0aGF0IHRob3NlIHBhcmFtZXRlclxuICogZGVjb3JhdG9ycyByZWZlcmVuY2UgYmFjayBpbnRvIE5lc3QncyBESSBjb250YWluZXIsIHNpbmNlIGEgcGFyYW1ldGVyIGRlY29yYXRvciBhbG9uZSBjYW5ub3RcbiAqIHN1cHBseSBhIHByb3ZpZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVnaXN0ZXJlZERlY2FmUHJvdmlkZXJzKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHBlbmRpbmdQcm92aWRlcnMudmFsdWVzKCkpO1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJQcm92aWRlcih0b2tlbiwgdXNlRmFjdG9yeSkge1xuICAgIGlmIChwZW5kaW5nUHJvdmlkZXJzLmhhcyh0b2tlbikpXG4gICAgICAgIHJldHVybjtcbiAgICBwZW5kaW5nUHJvdmlkZXJzLnNldCh0b2tlbiwgeyBwcm92aWRlOiB0b2tlbiwgdXNlRmFjdG9yeSB9KTtcbn1cbmZ1bmN0aW9uIGlzTW9kZWxDb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJiB2YWx1ZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBNb2RlbDtcbn1cbmZ1bmN0aW9uIG1vZGVsU2VydmljZVRva2VuKG1vZGVsKSB7XG4gICAgcmV0dXJuIGAke21vZGVsLm5hbWV9U2VydmljZWA7XG59XG5mdW5jdGlvbiBtb2RlbFJlcG9zaXRvcnlUb2tlbihtb2RlbCwgZmxhdm91cikge1xuICAgIHJldHVybiBmbGF2b3VyID8gYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5QCR7Zmxhdm91cn1gIDogYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5YDtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYgc2VydmljZS5cbiAqIEBzdW1tYXJ5IFRyYW5zbGF0ZXMgZGVjYWYncyBzZXJ2aWNlIHJlc29sdXRpb24gQVBJcyBpbnRvIGEgTmVzdCBgQEluamVjdCgpYCBjYWxsOlxuICogLSBgQFNlcnZpY2UoU29tZU1vZGVsKWAgaW5qZWN0cyB0aGUgYE1vZGVsU2VydmljZTxTb21lTW9kZWw+YCBzaW5nbGV0b24gZm9yIHRoYXQgbW9kZWxcbiAqICAgKHZpYSB7QGxpbmsgTW9kZWxTZXJ2aWNlLmZvck1vZGVsfSkuXG4gKiAtIGBAU2VydmljZShTb21lU2VydmljZUNsYXNzKWAgb3IgYEBTZXJ2aWNlKFwiYWxpYXNcIilgIGluamVjdHMgdGhlIG1hdGNoaW5nIGBAc2VydmljZSgpYC1kZWNvcmF0ZWRcbiAqICAgZGVjYWYge0BsaW5rIENvcmVTZXJ2aWNlfSAodmlhIHtAbGluayBDb3JlU2VydmljZS5nZXR9KS5cbiAqIC0gYEBTZXJ2aWNlKClgIGluZmVycyB0aGUgcGFyYW1ldGVyJ3MgdHlwZSBmcm9tIGVtaXR0ZWQgY29uc3RydWN0b3IgbWV0YWRhdGEgYW5kIHJlc29sdmVzIGl0IHRoZVxuICogICBzYW1lIHdheSwgcHJvdmlkZWQgdGhlIHBhcmFtZXRlciBpcyB0eXBlZCBhcyBhIGNvbmNyZXRlIGNsYXNzIChnZW5lcmljcyBsaWtlIGBNb2RlbFNlcnZpY2U8WD5gXG4gKiAgIGFyZSBlcmFzZWQgYXQgcnVudGltZSwgc28gdGhlIG1vZGVsLXNlcnZpY2UgZm9ybSBhbHdheXMgcmVxdWlyZXMgYW4gZXhwbGljaXQgYXJndW1lbnQpLlxuICogQHBhcmFtIGtleSB0aGUgbW9kZWwgY2xhc3MsIHNlcnZpY2UgY2xhc3MsIG9yIGFsaWFzIHRvIHJlc29sdmUuIE9taXQgdG8gaW5mZXIgZnJvbSB0aGUgcGFyYW1ldGVyIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlKGtleSkge1xuICAgIHJldHVybiAodGFyZ2V0LCBwcm9wZXJ0eUtleSwgcGFyYW1ldGVySW5kZXgpID0+IHtcbiAgICAgICAgbGV0IHJlc29sdmVkID0ga2V5O1xuICAgICAgICBpZiAodHlwZW9mIHJlc29sdmVkID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbVR5cGVzID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIHRhcmdldCkgfHwgW107XG4gICAgICAgICAgICByZXNvbHZlZCA9IHBhcmFtVHlwZXNbcGFyYW1ldGVySW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQFNlcnZpY2UoKSBjb3VsZCBub3QgZGV0ZXJtaW5lIGFuIGluamVjdGlvbiB0eXBlIGZvciBwYXJhbWV0ZXIgJHtwYXJhbWV0ZXJJbmRleH0gb2YgJHt0YXJnZXQubmFtZX0uIFByb3ZpZGUgYW4gZXhwbGljaXQgYXJndW1lbnQsIGUuZy4gQFNlcnZpY2UoU29tZVNlcnZpY2UpLmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFzTW9kZWwgPSB0eXBlb2YgcmVzb2x2ZWQgIT09IFwic3RyaW5nXCIgJiYgaXNNb2RlbENvbnN0cnVjdG9yKHJlc29sdmVkKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBhc01vZGVsXG4gICAgICAgICAgICA/IG1vZGVsU2VydmljZVRva2VuKHJlc29sdmVkKVxuICAgICAgICAgICAgOiBpbmplY3RhYmxlU2VydmljZUtleShyZXNvbHZlZCk7XG4gICAgICAgIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhc01vZGVsKVxuICAgICAgICAgICAgICAgIHJldHVybiBNb2RlbFNlcnZpY2UuZm9yTW9kZWwocmVzb2x2ZWQpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByZXNvbHZlZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgID8gQ29yZVNlcnZpY2UuZ2V0KHJlc29sdmVkKVxuICAgICAgICAgICAgICAgIDogQ29yZVNlcnZpY2UuZ2V0KHJlc29sdmVkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBJbmplY3QodG9rZW4pKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KTtcbiAgICB9O1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiB7QGxpbmsgQ29yZVJlcG9zaXRvcnl9IGZvciBgbW9kZWxgLlxuICogQHN1bW1hcnkgVW5saWtlIHtAbGluayBTZXJ2aWNlfSwgYG1vZGVsYCBpcyBhbHdheXMgdHJlYXRlZCBhcyBhIE1vZGVsIGNsYXNzOiB0aGUgc2FtZSBjbGFzcyBwYXNzZWRcbiAqIHRvIGBAU2VydmljZShtb2RlbClgIGFuZCBgQFJlcG9zaXRvcnkobW9kZWwpYCByZXNvbHZlcyB0byB0d28gZGlmZmVyZW50IGluamVjdGVkIG9iamVjdHMgKGFcbiAqIGBNb2RlbFNlcnZpY2U8TT5gIHZzIGEgYFJlcG9zaXRvcnk8TT5gIHJlc3BlY3RpdmVseSksIHZpYSB7QGxpbmsgQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWx9LlxuICogQHBhcmFtIG1vZGVsIHRoZSBtb2RlbCBjbGFzcyB0byByZXNvbHZlIGEgcmVwb3NpdG9yeSBmb3IuXG4gKiBAcGFyYW0gZmxhdm91ciBvcHRpb25hbCBhZGFwdGVyIGZsYXZvdXIvYWxpYXMsIGZvcndhcmRlZCB0byB7QGxpbmsgQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWx9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gUmVwb3NpdG9yeShtb2RlbCwgZmxhdm91cikge1xuICAgIHJldHVybiAodGFyZ2V0LCBwcm9wZXJ0eUtleSwgcGFyYW1ldGVySW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBtb2RlbFJlcG9zaXRvcnlUb2tlbihtb2RlbCwgZmxhdm91cik7XG4gICAgICAgIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sICgpID0+IENvcmVSZXBvc2l0b3J5LmZvck1vZGVsKG1vZGVsLCBmbGF2b3VyKSk7XG4gICAgICAgIHJldHVybiBJbmplY3QodG9rZW4pKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KTtcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdWamIzSmhkRzl5Y3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTlrWldOdmNtRjBiM0p6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVWNFF5eFBRVUZQTEVWQlEwd3NiMEpCUVc5Q0xFVkJRM0JDTEZsQlFWa3NSVUZEV2l4VlFVRlZMRWxCUVVrc1kwRkJZeXhGUVVNMVFpeFBRVUZQTEVsQlFVa3NWMEZCVnl4SFFVTjJRaXhOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUTNoQ0xFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4blEwRkJaME1zUTBGQlF6dEJRVTkyUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RlFVRm5ReXhEUVVGRE8wRkJSV3BGT3pzN096dEhRVXRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMREpDUVVFeVFqdEpRVU42UXl4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU12UXl4RFFVRkRPMEZCUlVRc1UwRkJVeXhuUWtGQlowSXNRMEZCUXl4TFFVRmhMRVZCUVVVc1ZVRkJlVUk3U1VGRGFFVXNTVUZCU1N4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUVVVc1QwRkJUenRKUVVONFF5eG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlF6bEVMRU5CUVVNN1FVRkZSQ3hUUVVGVExHdENRVUZyUWl4RFFVRkRMRXRCUVdNN1NVRkRlRU1zVDBGQlR5eFBRVUZQTEV0QlFVc3NTMEZCU3l4VlFVRlZMRWxCUVVrc1MwRkJTeXhEUVVGRExGTkJRVk1zV1VGQldTeExRVUZMTEVOQlFVTTdRVUZEZWtVc1EwRkJRenRCUVVWRUxGTkJRVk1zYVVKQlFXbENMRU5CUVVNc1MwRkJkVUk3U1VGRGFFUXNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhKUVVGSkxGTkJRVk1zUTBGQlF6dEJRVU5vUXl4RFFVRkRPMEZCUlVRc1UwRkJVeXh2UWtGQmIwSXNRMEZETTBJc1MwRkJkVUlzUlVGRGRrSXNUMEZCWjBJN1NVRkZhRUlzVDBGQlR5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzWTBGQll5eFBRVUZQTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTTdRVUZEY0VZc1EwRkJRenRCUVVWRU96czdPenM3T3pzN096dEhRVmRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMRTlCUVU4c1EwRkJReXhIUVVFclFqdEpRVU55UkN4UFFVRlBMRU5CUTB3c1RVRkJZeXhGUVVOa0xGZEJRWGRETEVWQlEzaERMR05CUVhOQ0xFVkJRMmhDTEVWQlFVVTdVVUZEVWl4SlFVRkpMRkZCUVZFc1IwRkJNRU1zUjBGQlJ5eERRVUZETzFGQlF6RkVMRWxCUVVrc1QwRkJUeXhSUVVGUkxFdEJRVXNzVjBGQlZ5eEZRVUZGTEVOQlFVTTdXVUZEY0VNc1RVRkJUU3hWUVVGVkxFZEJRMlFzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRla1FzVVVGQlVTeEhRVUZITEZWQlFWVXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRSUVVONFF5eERRVUZETzFGQlEwUXNTVUZCU1N4UFFVRlBMRkZCUVZFc1MwRkJTeXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU53UXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVOaUxHdEZRVUZyUlN4alFVRmpMRTlCUVZFc1RVRkJNa0lzUTBGQlF5eEpRVUZKTERaRVFVRTJSQ3hEUVVOMFRDeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFOUJRVThzVVVGQlVTeExRVUZMTEZGQlFWRXNTVUZCU1N4clFrRkJhMElzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eFBRVUZQTzFsQlEyNUNMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4UlFVRTBRaXhEUVVGRE8xbEJRMnBFTEVOQlFVTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eFJRVUZ4UXl4RFFVRkRMRU5CUVVNN1VVRkZhRVVzWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJUdFpRVU16UWl4SlFVRkpMRTlCUVU4N1owSkJRVVVzVDBGQlR5eFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVRSQ0xFTkJRVU1zUTBGQlF6dFpRVU40UlN4UFFVRlBMRTlCUVU4c1VVRkJVU3hMUVVGTExGRkJRVkU3WjBKQlEycERMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXp0blFrRkRNMElzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJORUlzUTBGQlF5eERRVUZETzFGQlEzQkVMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSVWdzVDBGQlR5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeGpRVUZqTEVOQlFVTXNRMEZCUXp0SlFVTTFSQ3hEUVVGRExFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFZRVUZWTEVOQlEzaENMRXRCUVhWQ0xFVkJRM1pDTEU5QlFXZENPMGxCUldoQ0xFOUJRVThzUTBGRFRDeE5RVUZqTEVWQlEyUXNWMEZCZDBNc1JVRkRlRU1zWTBGQmMwSXNSVUZEYUVJc1JVRkJSVHRSUVVOU0xFMUJRVTBzUzBGQlN5eEhRVUZITEc5Q1FVRnZRaXhEUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnVSQ3huUWtGQlowSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU4yUlN4UFFVRlBMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJRelZFTEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkpibXBsWTNRZ2ZTQm1jbTl0SUZ3aVFHNWxjM1JxY3k5amIyMXRiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFTnZibk4wY25WamRHOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JwYm1wbFkzUmhZbXhsVTJWeWRtbGpaVXRsZVN4Y2JpQWdUVzlrWld4VFpYSjJhV05sTEZ4dUlDQlNaWEJ2YzJsMGIzSjVJR0Z6SUVOdmNtVlNaWEJ2YzJsMGIzSjVMRnh1SUNCVFpYSjJhV05sSUdGeklFTnZjbVZUWlhKMmFXTmxMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUUxdlpHVnNJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCRVpXTmhaa1poWTNSdmNubFFjbTkyYVdSbGNpQTlJSHRjYmlBZ2NISnZkbWxrWlRvZ2MzUnlhVzVuTzF4dUlDQjFjMlZHWVdOMGIzSjVPaUFvS1NBOVBpQjFibXR1YjNkdU8xeHVmVHRjYmx4dVkyOXVjM1FnY0dWdVpHbHVaMUJ5YjNacFpHVnljeUE5SUc1bGR5Qk5ZWEE4YzNSeWFXNW5MQ0JFWldOaFprWmhZM1J2Y25sUWNtOTJhV1JsY2o0b0tUdGNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JISmhhVzV6SUhSb1pTQndjbTkyYVdSbGNuTWdjbVZuYVhOMFpYSmxaQ0JpZVNCN1FHeHBibXNnVTJWeWRtbGpaWDB2ZTBCc2FXNXJJRkpsY0c5emFYUnZjbmw5SUhWellXZGxjeTVjYmlBcUlFQnpkVzF0WVhKNUlFTnZibk4xYldWa0lHSjVJSHRBYkdsdWF5QkVaV05oWmtOdmNtVk5iMlIxYkdVdVptOXlVbTl2ZEgwZ2RHOGdkMmx5WlNCMGFHVWdkRzlyWlc1eklIUm9ZWFFnZEdodmMyVWdjR0Z5WVcxbGRHVnlYRzRnS2lCa1pXTnZjbUYwYjNKeklISmxabVZ5Wlc1alpTQmlZV05ySUdsdWRHOGdUbVZ6ZENkeklFUkpJR052Ym5SaGFXNWxjaXdnYzJsdVkyVWdZU0J3WVhKaGJXVjBaWElnWkdWamIzSmhkRzl5SUdGc2IyNWxJR05oYm01dmRGeHVJQ29nYzNWd2NHeDVJR0VnY0hKdmRtbGtaWEl1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm5aWFJTWldkcGMzUmxjbVZrUkdWallXWlFjbTkyYVdSbGNuTW9LVG9nUkdWallXWkdZV04wYjNKNVVISnZkbWxrWlhKYlhTQjdYRzRnSUhKbGRIVnliaUJCY25KaGVTNW1jbTl0S0hCbGJtUnBibWRRY205MmFXUmxjbk11ZG1Gc2RXVnpLQ2twTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJ5WldkcGMzUmxjbEJ5YjNacFpHVnlLSFJ2YTJWdU9pQnpkSEpwYm1jc0lIVnpaVVpoWTNSdmNuazZJQ2dwSUQwK0lIVnVhMjV2ZDI0cE9pQjJiMmxrSUh0Y2JpQWdhV1lnS0hCbGJtUnBibWRRY205MmFXUmxjbk11YUdGektIUnZhMlZ1S1NrZ2NtVjBkWEp1TzF4dUlDQndaVzVrYVc1blVISnZkbWxrWlhKekxuTmxkQ2gwYjJ0bGJpd2dleUJ3Y205MmFXUmxPaUIwYjJ0bGJpd2dkWE5sUm1GamRHOXllU0I5S1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYVhOTmIyUmxiRU52Ym5OMGNuVmpkRzl5S0haaGJIVmxPaUIxYm10dWIzZHVLVG9nZG1Gc2RXVWdhWE1nUTI5dWMzUnlkV04wYjNJOFlXNTVQaUI3WEc0Z0lISmxkSFZ5YmlCMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQW1KaUIyWVd4MVpTNXdjbTkwYjNSNWNHVWdhVzV6ZEdGdVkyVnZaaUJOYjJSbGJEdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2JXOWtaV3hUWlhKMmFXTmxWRzlyWlc0b2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwT2lCemRISnBibWNnZTF4dUlDQnlaWFIxY200Z1lDUjdiVzlrWld3dWJtRnRaWDFUWlhKMmFXTmxZRHRjYm4xY2JseHVablZ1WTNScGIyNGdiVzlrWld4U1pYQnZjMmwwYjNKNVZHOXJaVzRvWEc0Z0lHMXZaR1ZzT2lCRGIyNXpkSEoxWTNSdmNqeGhibmsrTEZ4dUlDQm1iR0YyYjNWeVB6b2djM1J5YVc1blhHNHBPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnWm14aGRtOTFjaUEvSUdBa2UyMXZaR1ZzTG01aGJXVjlVbVZ3YjNOcGRHOXllVUFrZTJac1lYWnZkWEo5WUNBNklHQWtlMjF2WkdWc0xtNWhiV1Y5VW1Wd2IzTnBkRzl5ZVdBN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnZibk4wY25WamRHOXlJSEJoY21GdFpYUmxjaUJrWldOdmNtRjBiM0lnZEdoaGRDQnBibXBsWTNSeklHRWdaR1ZqWVdZZ2MyVnlkbWxqWlM1Y2JpQXFJRUJ6ZFcxdFlYSjVJRlJ5WVc1emJHRjBaWE1nWkdWallXWW5jeUJ6WlhKMmFXTmxJSEpsYzI5c2RYUnBiMjRnUVZCSmN5QnBiblJ2SUdFZ1RtVnpkQ0JnUUVsdWFtVmpkQ2dwWUNCallXeHNPbHh1SUNvZ0xTQmdRRk5sY25acFkyVW9VMjl0WlUxdlpHVnNLV0FnYVc1cVpXTjBjeUIwYUdVZ1lFMXZaR1ZzVTJWeWRtbGpaVHhUYjIxbFRXOWtaV3crWUNCemFXNW5iR1YwYjI0Z1ptOXlJSFJvWVhRZ2JXOWtaV3hjYmlBcUlDQWdLSFpwWVNCN1FHeHBibXNnVFc5a1pXeFRaWEoyYVdObExtWnZjazF2WkdWc2ZTa3VYRzRnS2lBdElHQkFVMlZ5ZG1salpTaFRiMjFsVTJWeWRtbGpaVU5zWVhOektXQWdiM0lnWUVCVFpYSjJhV05sS0Z3aVlXeHBZWE5jSWlsZ0lHbHVhbVZqZEhNZ2RHaGxJRzFoZEdOb2FXNW5JR0JBYzJWeWRtbGpaU2dwWUMxa1pXTnZjbUYwWldSY2JpQXFJQ0FnWkdWallXWWdlMEJzYVc1cklFTnZjbVZUWlhKMmFXTmxmU0FvZG1saElIdEFiR2x1YXlCRGIzSmxVMlZ5ZG1salpTNW5aWFI5S1M1Y2JpQXFJQzBnWUVCVFpYSjJhV05sS0NsZ0lHbHVabVZ5Y3lCMGFHVWdjR0Z5WVcxbGRHVnlKM01nZEhsd1pTQm1jbTl0SUdWdGFYUjBaV1FnWTI5dWMzUnlkV04wYjNJZ2JXVjBZV1JoZEdFZ1lXNWtJSEpsYzI5c2RtVnpJR2wwSUhSb1pWeHVJQ29nSUNCellXMWxJSGRoZVN3Z2NISnZkbWxrWldRZ2RHaGxJSEJoY21GdFpYUmxjaUJwY3lCMGVYQmxaQ0JoY3lCaElHTnZibU55WlhSbElHTnNZWE56SUNoblpXNWxjbWxqY3lCc2FXdGxJR0JOYjJSbGJGTmxjblpwWTJVOFdENWdYRzRnS2lBZ0lHRnlaU0JsY21GelpXUWdZWFFnY25WdWRHbHRaU3dnYzI4Z2RHaGxJRzF2WkdWc0xYTmxjblpwWTJVZ1ptOXliU0JoYkhkaGVYTWdjbVZ4ZFdseVpYTWdZVzRnWlhod2JHbGphWFFnWVhKbmRXMWxiblFwTGx4dUlDb2dRSEJoY21GdElHdGxlU0IwYUdVZ2JXOWtaV3dnWTJ4aGMzTXNJSE5sY25acFkyVWdZMnhoYzNNc0lHOXlJR0ZzYVdGeklIUnZJSEpsYzI5c2RtVXVJRTl0YVhRZ2RHOGdhVzVtWlhJZ1puSnZiU0IwYUdVZ2NHRnlZVzFsZEdWeUlIUjVjR1V1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQlRaWEoyYVdObEtHdGxlVDg2SUhOMGNtbHVaeUI4SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwT2lCUVlYSmhiV1YwWlhKRVpXTnZjbUYwYjNJZ2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lIUmhjbWRsZERvZ2IySnFaV04wTEZ4dUlDQWdJSEJ5YjNCbGNuUjVTMlY1T2lCemRISnBibWNnZkNCemVXMWliMndnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnY0dGeVlXMWxkR1Z5U1c1a1pYZzZJRzUxYldKbGNseHVJQ0FwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0JzWlhRZ2NtVnpiMngyWldRNklITjBjbWx1WnlCOElFTnZibk4wY25WamRHOXlQR0Z1ZVQ0Z2ZDQjFibVJsWm1sdVpXUWdQU0JyWlhrN1hHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCeVpYTnZiSFpsWkNBOVBUMGdYQ0oxYm1SbFptbHVaV1JjSWlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY0dGeVlXMVVlWEJsY3pvZ1lXNTVXMTBnUFZ4dUlDQWdJQ0FnSUNCU1pXWnNaV04wTG1kbGRFMWxkR0ZrWVhSaEtGd2laR1Z6YVdkdU9uQmhjbUZ0ZEhsd1pYTmNJaXdnZEdGeVoyVjBLU0I4ZkNCYlhUdGNiaUFnSUNBZ0lISmxjMjlzZG1Wa0lEMGdjR0Z5WVcxVWVYQmxjMXR3WVhKaGJXVjBaWEpKYm1SbGVGMDdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2NtVnpiMngyWldRZ1BUMDlJRndpZFc1a1pXWnBibVZrWENJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1lFQlRaWEoyYVdObEtDa2dZMjkxYkdRZ2JtOTBJR1JsZEdWeWJXbHVaU0JoYmlCcGJtcGxZM1JwYjI0Z2RIbHdaU0JtYjNJZ2NHRnlZVzFsZEdWeUlDUjdjR0Z5WVcxbGRHVnlTVzVrWlhoOUlHOW1JQ1I3S0hSaGNtZGxkQ0JoY3lCRGIyNXpkSEoxWTNSdmNqeGhibmsrS1M1dVlXMWxmUzRnVUhKdmRtbGtaU0JoYmlCbGVIQnNhV05wZENCaGNtZDFiV1Z1ZEN3Z1pTNW5MaUJBVTJWeWRtbGpaU2hUYjIxbFUyVnlkbWxqWlNrdVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JoYzAxdlpHVnNJRDBnZEhsd1pXOW1JSEpsYzI5c2RtVmtJQ0U5UFNCY0luTjBjbWx1WjF3aUlDWW1JR2x6VFc5a1pXeERiMjV6ZEhKMVkzUnZjaWh5WlhOdmJIWmxaQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RHOXJaVzRnUFNCaGMwMXZaR1ZzWEc0Z0lDQWdJQ0EvSUcxdlpHVnNVMlZ5ZG1salpWUnZhMlZ1S0hKbGMyOXNkbVZrSUdGeklFTnZibk4wY25WamRHOXlQR0Z1ZVQ0cFhHNGdJQ0FnSUNBNklHbHVhbVZqZEdGaWJHVlRaWEoyYVdObFMyVjVLSEpsYzI5c2RtVmtJR0Z6SUhOMGNtbHVaeUI4SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwTzF4dVhHNGdJQ0FnY21WbmFYTjBaWEpRY205MmFXUmxjaWgwYjJ0bGJpd2dLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLR0Z6VFc5a1pXd3BJSEpsZEhWeWJpQk5iMlJsYkZObGNuWnBZMlV1Wm05eVRXOWtaV3dvY21WemIyeDJaV1FnWVhNZ1EyOXVjM1J5ZFdOMGIzSThZVzU1UGlrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEhsd1pXOW1JSEpsYzI5c2RtVmtJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lEOGdRMjl5WlZObGNuWnBZMlV1WjJWMEtISmxjMjlzZG1Wa0tWeHVJQ0FnSUNBZ0lDQTZJRU52Y21WVFpYSjJhV05sTG1kbGRDaHlaWE52YkhabFpDQmhjeUJEYjI1emRISjFZM1J2Y2p4aGJuaytLVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQkpibXBsWTNRb2RHOXJaVzRwS0hSaGNtZGxkQ3dnY0hKdmNHVnlkSGxMWlhrc0lIQmhjbUZ0WlhSbGNrbHVaR1Y0S1R0Y2JpQWdmVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTI5dWMzUnlkV04wYjNJZ2NHRnlZVzFsZEdWeUlHUmxZMjl5WVhSdmNpQjBhR0YwSUdsdWFtVmpkSE1nWVNCa1pXTmhaaUI3UUd4cGJtc2dRMjl5WlZKbGNHOXphWFJ2Y25sOUlHWnZjaUJnYlc5a1pXeGdMbHh1SUNvZ1FITjFiVzFoY25rZ1ZXNXNhV3RsSUh0QWJHbHVheUJUWlhKMmFXTmxmU3dnWUcxdlpHVnNZQ0JwY3lCaGJIZGhlWE1nZEhKbFlYUmxaQ0JoY3lCaElFMXZaR1ZzSUdOc1lYTnpPaUIwYUdVZ2MyRnRaU0JqYkdGemN5QndZWE56WldSY2JpQXFJSFJ2SUdCQVUyVnlkbWxqWlNodGIyUmxiQ2xnSUdGdVpDQmdRRkpsY0c5emFYUnZjbmtvYlc5a1pXd3BZQ0J5WlhOdmJIWmxjeUIwYnlCMGQyOGdaR2xtWm1WeVpXNTBJR2x1YW1WamRHVmtJRzlpYW1WamRITWdLR0ZjYmlBcUlHQk5iMlJsYkZObGNuWnBZMlU4VFQ1Z0lIWnpJR0VnWUZKbGNHOXphWFJ2Y25rOFRUNWdJSEpsYzNCbFkzUnBkbVZzZVNrc0lIWnBZU0I3UUd4cGJtc2dRMjl5WlZKbGNHOXphWFJ2Y25rdVptOXlUVzlrWld4OUxseHVJQ29nUUhCaGNtRnRJRzF2WkdWc0lIUm9aU0J0YjJSbGJDQmpiR0Z6Y3lCMGJ5QnlaWE52YkhabElHRWdjbVZ3YjNOcGRHOXllU0JtYjNJdVhHNGdLaUJBY0dGeVlXMGdabXhoZG05MWNpQnZjSFJwYjI1aGJDQmhaR0Z3ZEdWeUlHWnNZWFp2ZFhJdllXeHBZWE1zSUdadmNuZGhjbVJsWkNCMGJ5QjdRR3hwYm1zZ1EyOXlaVkpsY0c5emFYUnZjbmt1Wm05eVRXOWtaV3g5TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdVbVZ3YjNOcGRHOXllU2hjYmlBZ2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRzWEc0Z0lHWnNZWFp2ZFhJL09pQnpkSEpwYm1kY2JpazZJRkJoY21GdFpYUmxja1JsWTI5eVlYUnZjaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnZEdGeVoyVjBPaUJ2WW1wbFkzUXNYRzRnSUNBZ2NISnZjR1Z5ZEhsTFpYazZJSE4wY21sdVp5QjhJSE41YldKdmJDQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQndZWEpoYldWMFpYSkpibVJsZURvZ2JuVnRZbVZ5WEc0Z0lDazZJSFp2YVdRZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnYlc5a1pXeFNaWEJ2YzJsMGIzSjVWRzlyWlc0b2JXOWtaV3dzSUdac1lYWnZkWElwTzF4dUlDQWdJSEpsWjJsemRHVnlVSEp2ZG1sa1pYSW9kRzlyWlc0c0lDZ3BJRDArSUVOdmNtVlNaWEJ2YzJsMGIzSjVMbVp2Y2sxdlpHVnNLRzF2WkdWc0xDQm1iR0YyYjNWeUtTazdYRzRnSUNBZ2NtVjBkWEp1SUVsdWFtVmpkQ2gwYjJ0bGJpa29kR0Z5WjJWMExDQndjbTl3WlhKMGVVdGxlU3dnY0dGeVlXMWxkR1Z5U1c1a1pYZ3BPMXh1SUNCOU8xeHVmVnh1SWwxOSJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixVQUFVLElBQUksY0FBYyxFQUM1QixPQUFPLElBQUksV0FBVyxHQUN2QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztBQUVqRTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFVBQXlCO0lBQ2hFLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU87SUFDeEMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxLQUFjO0lBQ3hDLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxTQUFTLFlBQVksS0FBSyxDQUFDO0FBQ3pFLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQXVCO0lBQ2hELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDaEMsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLEtBQXVCLEVBQ3ZCLE9BQWdCO0lBRWhCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLGNBQWMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDO0FBQ3BGLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBK0I7SUFDckQsT0FBTyxDQUNMLE1BQWMsRUFDZCxXQUF3QyxFQUN4QyxjQUFzQixFQUNoQixFQUFFO1FBQ1IsSUFBSSxRQUFRLEdBQTBDLEdBQUcsQ0FBQztRQUMxRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sVUFBVSxHQUNkLE9BQU8sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pELFFBQVEsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLGFBQWEsQ0FDckIsa0VBQWtFLGNBQWMsT0FBUSxNQUEyQixDQUFDLElBQUksNkRBQTZELENBQ3RMLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sS0FBSyxHQUFHLE9BQU87WUFDbkIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQTRCLENBQUM7WUFDakQsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFFBQXFDLENBQUMsQ0FBQztRQUVoRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzNCLElBQUksT0FBTztnQkFBRSxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBNEIsQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sT0FBTyxRQUFRLEtBQUssUUFBUTtnQkFDakMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUMzQixDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUE0QixDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsS0FBdUIsRUFDdkIsT0FBZ0I7SUFFaEIsT0FBTyxDQUNMLE1BQWMsRUFDZCxXQUF3QyxFQUN4QyxjQUFzQixFQUNoQixFQUFFO1FBQ1IsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIGluamVjdGFibGVTZXJ2aWNlS2V5LFxuICBNb2RlbFNlcnZpY2UsXG4gIFJlcG9zaXRvcnkgYXMgQ29yZVJlcG9zaXRvcnksXG4gIFNlcnZpY2UgYXMgQ29yZVNlcnZpY2UsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmV4cG9ydCB0eXBlIERlY2FmRmFjdG9yeVByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBzdHJpbmc7XG4gIHVzZUZhY3Rvcnk6ICgpID0+IHVua25vd247XG59O1xuXG5jb25zdCBwZW5kaW5nUHJvdmlkZXJzID0gbmV3IE1hcDxzdHJpbmcsIERlY2FmRmFjdG9yeVByb3ZpZGVyPigpO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEcmFpbnMgdGhlIHByb3ZpZGVycyByZWdpc3RlcmVkIGJ5IHtAbGluayBTZXJ2aWNlfS97QGxpbmsgUmVwb3NpdG9yeX0gdXNhZ2VzLlxuICogQHN1bW1hcnkgQ29uc3VtZWQgYnkge0BsaW5rIERlY2FmQ29yZU1vZHVsZS5mb3JSb290fSB0byB3aXJlIHRoZSB0b2tlbnMgdGhhdCB0aG9zZSBwYXJhbWV0ZXJcbiAqIGRlY29yYXRvcnMgcmVmZXJlbmNlIGJhY2sgaW50byBOZXN0J3MgREkgY29udGFpbmVyLCBzaW5jZSBhIHBhcmFtZXRlciBkZWNvcmF0b3IgYWxvbmUgY2Fubm90XG4gKiBzdXBwbHkgYSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZ2lzdGVyZWREZWNhZlByb3ZpZGVycygpOiBEZWNhZkZhY3RvcnlQcm92aWRlcltdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20ocGVuZGluZ1Byb3ZpZGVycy52YWx1ZXMoKSk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW46IHN0cmluZywgdXNlRmFjdG9yeTogKCkgPT4gdW5rbm93bik6IHZvaWQge1xuICBpZiAocGVuZGluZ1Byb3ZpZGVycy5oYXModG9rZW4pKSByZXR1cm47XG4gIHBlbmRpbmdQcm92aWRlcnMuc2V0KHRva2VuLCB7IHByb3ZpZGU6IHRva2VuLCB1c2VGYWN0b3J5IH0pO1xufVxuXG5mdW5jdGlvbiBpc01vZGVsQ29uc3RydWN0b3IodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBDb25zdHJ1Y3Rvcjxhbnk+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIE1vZGVsO1xufVxuXG5mdW5jdGlvbiBtb2RlbFNlcnZpY2VUb2tlbihtb2RlbDogQ29uc3RydWN0b3I8YW55Pik6IHN0cmluZyB7XG4gIHJldHVybiBgJHttb2RlbC5uYW1lfVNlcnZpY2VgO1xufVxuXG5mdW5jdGlvbiBtb2RlbFJlcG9zaXRvcnlUb2tlbihcbiAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4sXG4gIGZsYXZvdXI/OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIHJldHVybiBmbGF2b3VyID8gYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5QCR7Zmxhdm91cn1gIDogYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5YDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiBzZXJ2aWNlLlxuICogQHN1bW1hcnkgVHJhbnNsYXRlcyBkZWNhZidzIHNlcnZpY2UgcmVzb2x1dGlvbiBBUElzIGludG8gYSBOZXN0IGBASW5qZWN0KClgIGNhbGw6XG4gKiAtIGBAU2VydmljZShTb21lTW9kZWwpYCBpbmplY3RzIHRoZSBgTW9kZWxTZXJ2aWNlPFNvbWVNb2RlbD5gIHNpbmdsZXRvbiBmb3IgdGhhdCBtb2RlbFxuICogICAodmlhIHtAbGluayBNb2RlbFNlcnZpY2UuZm9yTW9kZWx9KS5cbiAqIC0gYEBTZXJ2aWNlKFNvbWVTZXJ2aWNlQ2xhc3MpYCBvciBgQFNlcnZpY2UoXCJhbGlhc1wiKWAgaW5qZWN0cyB0aGUgbWF0Y2hpbmcgYEBzZXJ2aWNlKClgLWRlY29yYXRlZFxuICogICBkZWNhZiB7QGxpbmsgQ29yZVNlcnZpY2V9ICh2aWEge0BsaW5rIENvcmVTZXJ2aWNlLmdldH0pLlxuICogLSBgQFNlcnZpY2UoKWAgaW5mZXJzIHRoZSBwYXJhbWV0ZXIncyB0eXBlIGZyb20gZW1pdHRlZCBjb25zdHJ1Y3RvciBtZXRhZGF0YSBhbmQgcmVzb2x2ZXMgaXQgdGhlXG4gKiAgIHNhbWUgd2F5LCBwcm92aWRlZCB0aGUgcGFyYW1ldGVyIGlzIHR5cGVkIGFzIGEgY29uY3JldGUgY2xhc3MgKGdlbmVyaWNzIGxpa2UgYE1vZGVsU2VydmljZTxYPmBcbiAqICAgYXJlIGVyYXNlZCBhdCBydW50aW1lLCBzbyB0aGUgbW9kZWwtc2VydmljZSBmb3JtIGFsd2F5cyByZXF1aXJlcyBhbiBleHBsaWNpdCBhcmd1bWVudCkuXG4gKiBAcGFyYW0ga2V5IHRoZSBtb2RlbCBjbGFzcywgc2VydmljZSBjbGFzcywgb3IgYWxpYXMgdG8gcmVzb2x2ZS4gT21pdCB0byBpbmZlciBmcm9tIHRoZSBwYXJhbWV0ZXIgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlcnZpY2Uoa2V5Pzogc3RyaW5nIHwgQ29uc3RydWN0b3I8YW55Pik6IFBhcmFtZXRlckRlY29yYXRvciB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBvYmplY3QsXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBwYXJhbWV0ZXJJbmRleDogbnVtYmVyXG4gICk6IHZvaWQgPT4ge1xuICAgIGxldCByZXNvbHZlZDogc3RyaW5nIHwgQ29uc3RydWN0b3I8YW55PiB8IHVuZGVmaW5lZCA9IGtleTtcbiAgICBpZiAodHlwZW9mIHJlc29sdmVkID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBjb25zdCBwYXJhbVR5cGVzOiBhbnlbXSA9XG4gICAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCB0YXJnZXQpIHx8IFtdO1xuICAgICAgcmVzb2x2ZWQgPSBwYXJhbVR5cGVzW3BhcmFtZXRlckluZGV4XTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBAU2VydmljZSgpIGNvdWxkIG5vdCBkZXRlcm1pbmUgYW4gaW5qZWN0aW9uIHR5cGUgZm9yIHBhcmFtZXRlciAke3BhcmFtZXRlckluZGV4fSBvZiAkeyh0YXJnZXQgYXMgQ29uc3RydWN0b3I8YW55PikubmFtZX0uIFByb3ZpZGUgYW4gZXhwbGljaXQgYXJndW1lbnQsIGUuZy4gQFNlcnZpY2UoU29tZVNlcnZpY2UpLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYXNNb2RlbCA9IHR5cGVvZiByZXNvbHZlZCAhPT0gXCJzdHJpbmdcIiAmJiBpc01vZGVsQ29uc3RydWN0b3IocmVzb2x2ZWQpO1xuICAgIGNvbnN0IHRva2VuID0gYXNNb2RlbFxuICAgICAgPyBtb2RlbFNlcnZpY2VUb2tlbihyZXNvbHZlZCBhcyBDb25zdHJ1Y3Rvcjxhbnk+KVxuICAgICAgOiBpbmplY3RhYmxlU2VydmljZUtleShyZXNvbHZlZCBhcyBzdHJpbmcgfCBDb25zdHJ1Y3Rvcjxhbnk+KTtcblxuICAgIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sICgpID0+IHtcbiAgICAgIGlmIChhc01vZGVsKSByZXR1cm4gTW9kZWxTZXJ2aWNlLmZvck1vZGVsKHJlc29sdmVkIGFzIENvbnN0cnVjdG9yPGFueT4pO1xuICAgICAgcmV0dXJuIHR5cGVvZiByZXNvbHZlZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZClcbiAgICAgICAgOiBDb3JlU2VydmljZS5nZXQocmVzb2x2ZWQgYXMgQ29uc3RydWN0b3I8YW55Pik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYge0BsaW5rIENvcmVSZXBvc2l0b3J5fSBmb3IgYG1vZGVsYC5cbiAqIEBzdW1tYXJ5IFVubGlrZSB7QGxpbmsgU2VydmljZX0sIGBtb2RlbGAgaXMgYWx3YXlzIHRyZWF0ZWQgYXMgYSBNb2RlbCBjbGFzczogdGhlIHNhbWUgY2xhc3MgcGFzc2VkXG4gKiB0byBgQFNlcnZpY2UobW9kZWwpYCBhbmQgYEBSZXBvc2l0b3J5KG1vZGVsKWAgcmVzb2x2ZXMgdG8gdHdvIGRpZmZlcmVudCBpbmplY3RlZCBvYmplY3RzIChhXG4gKiBgTW9kZWxTZXJ2aWNlPE0+YCB2cyBhIGBSZXBvc2l0b3J5PE0+YCByZXNwZWN0aXZlbHkpLCB2aWEge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqIEBwYXJhbSBtb2RlbCB0aGUgbW9kZWwgY2xhc3MgdG8gcmVzb2x2ZSBhIHJlcG9zaXRvcnkgZm9yLlxuICogQHBhcmFtIGZsYXZvdXIgb3B0aW9uYWwgYWRhcHRlciBmbGF2b3VyL2FsaWFzLCBmb3J3YXJkZWQgdG8ge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJlcG9zaXRvcnkoXG4gIG1vZGVsOiBDb25zdHJ1Y3Rvcjxhbnk+LFxuICBmbGF2b3VyPzogc3RyaW5nXG4pOiBQYXJhbWV0ZXJEZWNvcmF0b3Ige1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogb2JqZWN0LFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wgfCB1bmRlZmluZWQsXG4gICAgcGFyYW1ldGVySW5kZXg6IG51bWJlclxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCB0b2tlbiA9IG1vZGVsUmVwb3NpdG9yeVRva2VuKG1vZGVsLCBmbGF2b3VyKTtcbiAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiBDb3JlUmVwb3NpdG9yeS5mb3JNb2RlbChtb2RlbCwgZmxhdm91cikpO1xuICAgIHJldHVybiBJbmplY3QodG9rZW4pKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KTtcbiAgfTtcbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxrRUFFQztBQTJCRCwwQkF1QkM7QUFTRCxnQ0FNQztBQTlFRCwyQ0FBd0M7QUFDeEMseUNBQTJIO0FBQzNILHlFQUF1RDtBQUN2RCwyREFBd0Q7QUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ25DOzs7OztHQUtHO0FBQ0gsU0FBZ0IsMkJBQTJCO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFDRCxTQUFTLGdCQUFnQixDQUFDLEtBQUssRUFBRSxVQUFVO0lBQ3ZDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUMzQixPQUFPO0lBQ1gsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBQ0QsU0FBUyxrQkFBa0IsQ0FBQyxLQUFLO0lBQzdCLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxTQUFTLFlBQVksNEJBQUssQ0FBQztBQUMzRSxDQUFDO0FBQ0QsU0FBUyxpQkFBaUIsQ0FBQyxLQUFLO0lBQzVCLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDbEMsQ0FBQztBQUNELFNBQVMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU87SUFDeEMsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksY0FBYyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUM7QUFDdEYsQ0FBQztBQUNEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLEdBQUc7SUFDdkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEVBQUU7UUFDM0MsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ25CLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUUsUUFBUSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksNkJBQWEsQ0FBQyxrRUFBa0UsY0FBYyxPQUFPLE1BQU0sQ0FBQyxJQUFJLDZEQUE2RCxDQUFDLENBQUM7UUFDN0wsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxNQUFNLEtBQUssR0FBRyxPQUFPO1lBQ2pCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDN0IsQ0FBQyxDQUFDLElBQUEsMkJBQW9CLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUN6QixJQUFJLE9BQU87Z0JBQ1AsT0FBTyxtQkFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxPQUFPLE9BQU8sUUFBUSxLQUFLLFFBQVE7Z0JBQy9CLENBQUMsQ0FBQyxjQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLGNBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUEsZUFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU87SUFDckMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEVBQUU7UUFDM0MsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUEsZUFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNELHM3U0FBczdTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBpbmplY3RhYmxlU2VydmljZUtleSwgTW9kZWxTZXJ2aWNlLCBSZXBvc2l0b3J5IGFzIENvcmVSZXBvc2l0b3J5LCBTZXJ2aWNlIGFzIENvcmVTZXJ2aWNlLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5jb25zdCBwZW5kaW5nUHJvdmlkZXJzID0gbmV3IE1hcCgpO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gRHJhaW5zIHRoZSBwcm92aWRlcnMgcmVnaXN0ZXJlZCBieSB7QGxpbmsgU2VydmljZX0ve0BsaW5rIFJlcG9zaXRvcnl9IHVzYWdlcy5cbiAqIEBzdW1tYXJ5IENvbnN1bWVkIGJ5IHtAbGluayBEZWNhZkNvcmVNb2R1bGUuZm9yUm9vdH0gdG8gd2lyZSB0aGUgdG9rZW5zIHRoYXQgdGhvc2UgcGFyYW1ldGVyXG4gKiBkZWNvcmF0b3JzIHJlZmVyZW5jZSBiYWNrIGludG8gTmVzdCdzIERJIGNvbnRhaW5lciwgc2luY2UgYSBwYXJhbWV0ZXIgZGVjb3JhdG9yIGFsb25lIGNhbm5vdFxuICogc3VwcGx5IGEgcHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWdpc3RlcmVkRGVjYWZQcm92aWRlcnMoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20ocGVuZGluZ1Byb3ZpZGVycy52YWx1ZXMoKSk7XG59XG5mdW5jdGlvbiByZWdpc3RlclByb3ZpZGVyKHRva2VuLCB1c2VGYWN0b3J5KSB7XG4gICAgaWYgKHBlbmRpbmdQcm92aWRlcnMuaGFzKHRva2VuKSlcbiAgICAgICAgcmV0dXJuO1xuICAgIHBlbmRpbmdQcm92aWRlcnMuc2V0KHRva2VuLCB7IHByb3ZpZGU6IHRva2VuLCB1c2VGYWN0b3J5IH0pO1xufVxuZnVuY3Rpb24gaXNNb2RlbENvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIE1vZGVsO1xufVxuZnVuY3Rpb24gbW9kZWxTZXJ2aWNlVG9rZW4obW9kZWwpIHtcbiAgICByZXR1cm4gYCR7bW9kZWwubmFtZX1TZXJ2aWNlYDtcbn1cbmZ1bmN0aW9uIG1vZGVsUmVwb3NpdG9yeVRva2VuKG1vZGVsLCBmbGF2b3VyKSB7XG4gICAgcmV0dXJuIGZsYXZvdXIgPyBgJHttb2RlbC5uYW1lfVJlcG9zaXRvcnlAJHtmbGF2b3VyfWAgOiBgJHttb2RlbC5uYW1lfVJlcG9zaXRvcnlgO1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiBzZXJ2aWNlLlxuICogQHN1bW1hcnkgVHJhbnNsYXRlcyBkZWNhZidzIHNlcnZpY2UgcmVzb2x1dGlvbiBBUElzIGludG8gYSBOZXN0IGBASW5qZWN0KClgIGNhbGw6XG4gKiAtIGBAU2VydmljZShTb21lTW9kZWwpYCBpbmplY3RzIHRoZSBgTW9kZWxTZXJ2aWNlPFNvbWVNb2RlbD5gIHNpbmdsZXRvbiBmb3IgdGhhdCBtb2RlbFxuICogICAodmlhIHtAbGluayBNb2RlbFNlcnZpY2UuZm9yTW9kZWx9KS5cbiAqIC0gYEBTZXJ2aWNlKFNvbWVTZXJ2aWNlQ2xhc3MpYCBvciBgQFNlcnZpY2UoXCJhbGlhc1wiKWAgaW5qZWN0cyB0aGUgbWF0Y2hpbmcgYEBzZXJ2aWNlKClgLWRlY29yYXRlZFxuICogICBkZWNhZiB7QGxpbmsgQ29yZVNlcnZpY2V9ICh2aWEge0BsaW5rIENvcmVTZXJ2aWNlLmdldH0pLlxuICogLSBgQFNlcnZpY2UoKWAgaW5mZXJzIHRoZSBwYXJhbWV0ZXIncyB0eXBlIGZyb20gZW1pdHRlZCBjb25zdHJ1Y3RvciBtZXRhZGF0YSBhbmQgcmVzb2x2ZXMgaXQgdGhlXG4gKiAgIHNhbWUgd2F5LCBwcm92aWRlZCB0aGUgcGFyYW1ldGVyIGlzIHR5cGVkIGFzIGEgY29uY3JldGUgY2xhc3MgKGdlbmVyaWNzIGxpa2UgYE1vZGVsU2VydmljZTxYPmBcbiAqICAgYXJlIGVyYXNlZCBhdCBydW50aW1lLCBzbyB0aGUgbW9kZWwtc2VydmljZSBmb3JtIGFsd2F5cyByZXF1aXJlcyBhbiBleHBsaWNpdCBhcmd1bWVudCkuXG4gKiBAcGFyYW0ga2V5IHRoZSBtb2RlbCBjbGFzcywgc2VydmljZSBjbGFzcywgb3IgYWxpYXMgdG8gcmVzb2x2ZS4gT21pdCB0byBpbmZlciBmcm9tIHRoZSBwYXJhbWV0ZXIgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlcnZpY2Uoa2V5KSB7XG4gICAgcmV0dXJuICh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCkgPT4ge1xuICAgICAgICBsZXQgcmVzb2x2ZWQgPSBrZXk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtVHlwZXMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgdGFyZ2V0KSB8fCBbXTtcbiAgICAgICAgICAgIHJlc29sdmVkID0gcGFyYW1UeXBlc1twYXJhbWV0ZXJJbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEBTZXJ2aWNlKCkgY291bGQgbm90IGRldGVybWluZSBhbiBpbmplY3Rpb24gdHlwZSBmb3IgcGFyYW1ldGVyICR7cGFyYW1ldGVySW5kZXh9IG9mICR7dGFyZ2V0Lm5hbWV9LiBQcm92aWRlIGFuIGV4cGxpY2l0IGFyZ3VtZW50LCBlLmcuIEBTZXJ2aWNlKFNvbWVTZXJ2aWNlKS5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhc01vZGVsID0gdHlwZW9mIHJlc29sdmVkICE9PSBcInN0cmluZ1wiICYmIGlzTW9kZWxDb25zdHJ1Y3RvcihyZXNvbHZlZCk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYXNNb2RlbFxuICAgICAgICAgICAgPyBtb2RlbFNlcnZpY2VUb2tlbihyZXNvbHZlZClcbiAgICAgICAgICAgIDogaW5qZWN0YWJsZVNlcnZpY2VLZXkocmVzb2x2ZWQpO1xuICAgICAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXNNb2RlbClcbiAgICAgICAgICAgICAgICByZXR1cm4gTW9kZWxTZXJ2aWNlLmZvck1vZGVsKHJlc29sdmVkKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgcmVzb2x2ZWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZClcbiAgICAgICAgICAgICAgICA6IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gICAgfTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYge0BsaW5rIENvcmVSZXBvc2l0b3J5fSBmb3IgYG1vZGVsYC5cbiAqIEBzdW1tYXJ5IFVubGlrZSB7QGxpbmsgU2VydmljZX0sIGBtb2RlbGAgaXMgYWx3YXlzIHRyZWF0ZWQgYXMgYSBNb2RlbCBjbGFzczogdGhlIHNhbWUgY2xhc3MgcGFzc2VkXG4gKiB0byBgQFNlcnZpY2UobW9kZWwpYCBhbmQgYEBSZXBvc2l0b3J5KG1vZGVsKWAgcmVzb2x2ZXMgdG8gdHdvIGRpZmZlcmVudCBpbmplY3RlZCBvYmplY3RzIChhXG4gKiBgTW9kZWxTZXJ2aWNlPE0+YCB2cyBhIGBSZXBvc2l0b3J5PE0+YCByZXNwZWN0aXZlbHkpLCB2aWEge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqIEBwYXJhbSBtb2RlbCB0aGUgbW9kZWwgY2xhc3MgdG8gcmVzb2x2ZSBhIHJlcG9zaXRvcnkgZm9yLlxuICogQHBhcmFtIGZsYXZvdXIgb3B0aW9uYWwgYWRhcHRlciBmbGF2b3VyL2FsaWFzLCBmb3J3YXJkZWQgdG8ge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJlcG9zaXRvcnkobW9kZWwsIGZsYXZvdXIpIHtcbiAgICByZXR1cm4gKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gbW9kZWxSZXBvc2l0b3J5VG9rZW4obW9kZWwsIGZsYXZvdXIpO1xuICAgICAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiBDb3JlUmVwb3NpdG9yeS5mb3JNb2RlbChtb2RlbCwgZmxhdm91cikpO1xuICAgICAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHVmpiM0poZEc5eWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5a1pXTnZjbUYwYjNKekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVjRReXhQUVVGUExFVkJRMHdzYjBKQlFXOUNMRVZCUTNCQ0xGbEJRVmtzUlVGRFdpeFZRVUZWTEVsQlFVa3NZMEZCWXl4RlFVTTFRaXhQUVVGUExFbEJRVWtzVjBGQlZ5eEhRVU4yUWl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlEzaENMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeG5RMEZCWjBNc1EwRkJRenRCUVVOMlJDeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZQZUVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJaME1zUTBGQlF6dEJRVVZxUlRzN096czdSMEZMUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3d5UWtGQk1rSTdTVUZEZWtNc1QwRkJUeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZETDBNc1EwRkJRenRCUVVWRUxGTkJRVk1zWjBKQlFXZENMRU5CUVVNc1MwRkJZU3hGUVVGRkxGVkJRWGxDTzBsQlEyaEZMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVGRkxFOUJRVTg3U1VGRGVFTXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTTVSQ3hEUVVGRE8wRkJSVVFzVTBGQlV5eHJRa0ZCYTBJc1EwRkJReXhMUVVGak8wbEJRM2hETEU5QlFVOHNUMEZCVHl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFRRVUZUTEZsQlFWa3NTMEZCU3l4RFFVRkRPMEZCUTNwRkxFTkJRVU03UVVGRlJDeFRRVUZUTEdsQ1FVRnBRaXhEUVVGRExFdEJRWFZDTzBsQlEyaEVMRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zU1VGQlNTeFRRVUZUTEVOQlFVTTdRVUZEYUVNc1EwRkJRenRCUVVWRUxGTkJRVk1zYjBKQlFXOUNMRU5CUXpOQ0xFdEJRWFZDTEVWQlEzWkNMRTlCUVdkQ08wbEJSV2hDTEU5QlFVOHNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTEdOQlFXTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRPMEZCUTNCR0xFTkJRVU03UVVGRlJEczdPenM3T3pzN096czdSMEZYUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hQUVVGUExFTkJRVU1zUjBGQkswSTdTVUZEY2tRc1QwRkJUeXhEUVVOTUxFMUJRV01zUlVGRFpDeFhRVUYzUXl4RlFVTjRReXhqUVVGelFpeEZRVU5vUWl4RlFVRkZPMUZCUTFJc1NVRkJTU3hSUVVGUkxFZEJRVEJETEVkQlFVY3NRMEZCUXp0UlFVTXhSQ3hKUVVGSkxFOUJRVThzVVVGQlVTeExRVUZMTEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNCRExFMUJRVTBzVlVGQlZTeEhRVU5rTEU5QlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNc2JVSkJRVzFDTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xbEJRM3BFTEZGQlFWRXNSMEZCUnl4VlFVRlZMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGRGVFTXNRMEZCUXp0UlFVTkVMRWxCUVVrc1QwRkJUeXhSUVVGUkxFdEJRVXNzVjBGQlZ5eEZRVUZGTEVOQlFVTTdXVUZEY0VNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNhMFZCUVd0RkxHTkJRV01zVDBGQlVTeE5RVUV5UWl4RFFVRkRMRWxCUVVrc05rUkJRVFpFTEVOQlEzUk1MRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJSVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NUMEZCVHl4UlFVRlJMRXRCUVVzc1VVRkJVU3hKUVVGSkxHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRemRGTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTlCUVU4N1dVRkRia0lzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExGRkJRVFJDTEVOQlFVTTdXVUZEYWtRc1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRkZCUVhGRExFTkJRVU1zUTBGQlF6dFJRVVZvUlN4blFrRkJaMElzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZPMWxCUXpOQ0xFbEJRVWtzVDBGQlR6dG5Ra0ZCUlN4UFFVRlBMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQk5FSXNRMEZCUXl4RFFVRkRPMWxCUTNoRkxFOUJRVThzVDBGQlR5eFJRVUZSTEV0QlFVc3NVVUZCVVR0blFrRkRha01zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRE8yZENRVU16UWl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUUwUWl4RFFVRkRMRU5CUVVNN1VVRkRjRVFzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4UFFVRlBMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJRelZFTEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSRHM3T3pzN096dEhRVTlITzBGQlEwZ3NUVUZCVFN4VlFVRlZMRlZCUVZVc1EwRkRlRUlzUzBGQmRVSXNSVUZEZGtJc1QwRkJaMEk3U1VGRmFFSXNUMEZCVHl4RFFVTk1MRTFCUVdNc1JVRkRaQ3hYUVVGM1F5eEZRVU40UXl4alFVRnpRaXhGUVVOb1FpeEZRVUZGTzFGQlExSXNUVUZCVFN4TFFVRkxMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMjVFTEdkQ1FVRm5RaXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4alFVRmpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNaRkxFOUJRVThzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzWTBGQll5eERRVUZETEVOQlFVTTdTVUZETlVRc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRWx1YW1WamRDQjlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dRMjl1YzNSeWRXTjBiM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdYRzRnSUdsdWFtVmpkR0ZpYkdWVFpYSjJhV05sUzJWNUxGeHVJQ0JOYjJSbGJGTmxjblpwWTJVc1hHNGdJRkpsY0c5emFYUnZjbmtnWVhNZ1EyOXlaVkpsY0c5emFYUnZjbmtzWEc0Z0lGTmxjblpwWTJVZ1lYTWdRMjl5WlZObGNuWnBZMlVzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1RXOWtaV3dnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJKYm5SbGNtNWhiRVZ5Y205eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUVSbFkyRm1SbUZqZEc5eWVWQnliM1pwWkdWeUlEMGdlMXh1SUNCd2NtOTJhV1JsT2lCemRISnBibWM3WEc0Z0lIVnpaVVpoWTNSdmNuazZJQ2dwSUQwK0lIVnVhMjV2ZDI0N1hHNTlPMXh1WEc1amIyNXpkQ0J3Wlc1a2FXNW5VSEp2ZG1sa1pYSnpJRDBnYm1WM0lFMWhjRHh6ZEhKcGJtY3NJRVJsWTJGbVJtRmpkRzl5ZVZCeWIzWnBaR1Z5UGlncE8xeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRWNtRnBibk1nZEdobElIQnliM1pwWkdWeWN5QnlaV2RwYzNSbGNtVmtJR0o1SUh0QWJHbHVheUJUWlhKMmFXTmxmUzk3UUd4cGJtc2dVbVZ3YjNOcGRHOXllWDBnZFhOaFoyVnpMbHh1SUNvZ1FITjFiVzFoY25rZ1EyOXVjM1Z0WldRZ1lua2dlMEJzYVc1cklFUmxZMkZtUTI5eVpVMXZaSFZzWlM1bWIzSlNiMjkwZlNCMGJ5QjNhWEpsSUhSb1pTQjBiMnRsYm5NZ2RHaGhkQ0IwYUc5elpTQndZWEpoYldWMFpYSmNiaUFxSUdSbFkyOXlZWFJ2Y25NZ2NtVm1aWEpsYm1ObElHSmhZMnNnYVc1MGJ5Qk9aWE4wSjNNZ1JFa2dZMjl1ZEdGcGJtVnlMQ0J6YVc1alpTQmhJSEJoY21GdFpYUmxjaUJrWldOdmNtRjBiM0lnWVd4dmJtVWdZMkZ1Ym05MFhHNGdLaUJ6ZFhCd2JIa2dZU0J3Y205MmFXUmxjaTVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRkpsWjJsemRHVnlaV1JFWldOaFpsQnliM1pwWkdWeWN5Z3BPaUJFWldOaFprWmhZM1J2Y25sUWNtOTJhV1JsY2x0ZElIdGNiaUFnY21WMGRYSnVJRUZ5Y21GNUxtWnliMjBvY0dWdVpHbHVaMUJ5YjNacFpHVnljeTUyWVd4MVpYTW9LU2s3WEc1OVhHNWNibVoxYm1OMGFXOXVJSEpsWjJsemRHVnlVSEp2ZG1sa1pYSW9kRzlyWlc0NklITjBjbWx1Wnl3Z2RYTmxSbUZqZEc5eWVUb2dLQ2tnUFQ0Z2RXNXJibTkzYmlrNklIWnZhV1FnZTF4dUlDQnBaaUFvY0dWdVpHbHVaMUJ5YjNacFpHVnljeTVvWVhNb2RHOXJaVzRwS1NCeVpYUjFjbTQ3WEc0Z0lIQmxibVJwYm1kUWNtOTJhV1JsY25NdWMyVjBLSFJ2YTJWdUxDQjdJSEJ5YjNacFpHVTZJSFJ2YTJWdUxDQjFjMlZHWVdOMGIzSjVJSDBwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJwYzAxdlpHVnNRMjl1YzNSeWRXTjBiM0lvZG1Gc2RXVTZJSFZ1YTI1dmQyNHBPaUIyWVd4MVpTQnBjeUJEYjI1emRISjFZM1J2Y2p4aGJuaytJSHRjYmlBZ2NtVjBkWEp1SUhSNWNHVnZaaUIyWVd4MVpTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUlDWW1JSFpoYkhWbExuQnliM1J2ZEhsd1pTQnBibk4wWVc1alpXOW1JRTF2WkdWc08xeHVmVnh1WEc1bWRXNWpkR2x2YmlCdGIyUmxiRk5sY25acFkyVlViMnRsYmlodGIyUmxiRG9nUTI5dWMzUnlkV04wYjNJOFlXNTVQaWs2SUhOMGNtbHVaeUI3WEc0Z0lISmxkSFZ5YmlCZ0pIdHRiMlJsYkM1dVlXMWxmVk5sY25acFkyVmdPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnRiMlJsYkZKbGNHOXphWFJ2Y25sVWIydGxiaWhjYmlBZ2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRzWEc0Z0lHWnNZWFp2ZFhJL09pQnpkSEpwYm1kY2JpazZJSE4wY21sdVp5QjdYRzRnSUhKbGRIVnliaUJtYkdGMmIzVnlJRDhnWUNSN2JXOWtaV3d1Ym1GdFpYMVNaWEJ2YzJsMGIzSjVRQ1I3Wm14aGRtOTFjbjFnSURvZ1lDUjdiVzlrWld3dWJtRnRaWDFTWlhCdmMybDBiM0o1WUR0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyOXVjM1J5ZFdOMGIzSWdjR0Z5WVcxbGRHVnlJR1JsWTI5eVlYUnZjaUIwYUdGMElHbHVhbVZqZEhNZ1lTQmtaV05oWmlCelpYSjJhV05sTGx4dUlDb2dRSE4xYlcxaGNua2dWSEpoYm5Oc1lYUmxjeUJrWldOaFppZHpJSE5sY25acFkyVWdjbVZ6YjJ4MWRHbHZiaUJCVUVseklHbHVkRzhnWVNCT1pYTjBJR0JBU1c1cVpXTjBLQ2xnSUdOaGJHdzZYRzRnS2lBdElHQkFVMlZ5ZG1salpTaFRiMjFsVFc5a1pXd3BZQ0JwYm1wbFkzUnpJSFJvWlNCZ1RXOWtaV3hUWlhKMmFXTmxQRk52YldWTmIyUmxiRDVnSUhOcGJtZHNaWFJ2YmlCbWIzSWdkR2hoZENCdGIyUmxiRnh1SUNvZ0lDQW9kbWxoSUh0QWJHbHVheUJOYjJSbGJGTmxjblpwWTJVdVptOXlUVzlrWld4OUtTNWNiaUFxSUMwZ1lFQlRaWEoyYVdObEtGTnZiV1ZUWlhKMmFXTmxRMnhoYzNNcFlDQnZjaUJnUUZObGNuWnBZMlVvWENKaGJHbGhjMXdpS1dBZ2FXNXFaV04wY3lCMGFHVWdiV0YwWTJocGJtY2dZRUJ6WlhKMmFXTmxLQ2xnTFdSbFkyOXlZWFJsWkZ4dUlDb2dJQ0JrWldOaFppQjdRR3hwYm1zZ1EyOXlaVk5sY25acFkyVjlJQ2gyYVdFZ2UwQnNhVzVySUVOdmNtVlRaWEoyYVdObExtZGxkSDBwTGx4dUlDb2dMU0JnUUZObGNuWnBZMlVvS1dBZ2FXNW1aWEp6SUhSb1pTQndZWEpoYldWMFpYSW5jeUIwZVhCbElHWnliMjBnWlcxcGRIUmxaQ0JqYjI1emRISjFZM1J2Y2lCdFpYUmhaR0YwWVNCaGJtUWdjbVZ6YjJ4MlpYTWdhWFFnZEdobFhHNGdLaUFnSUhOaGJXVWdkMkY1TENCd2NtOTJhV1JsWkNCMGFHVWdjR0Z5WVcxbGRHVnlJR2x6SUhSNWNHVmtJR0Z6SUdFZ1kyOXVZM0psZEdVZ1kyeGhjM01nS0dkbGJtVnlhV056SUd4cGEyVWdZRTF2WkdWc1UyVnlkbWxqWlR4WVBtQmNiaUFxSUNBZ1lYSmxJR1Z5WVhObFpDQmhkQ0J5ZFc1MGFXMWxMQ0J6YnlCMGFHVWdiVzlrWld3dGMyVnlkbWxqWlNCbWIzSnRJR0ZzZDJGNWN5QnlaWEYxYVhKbGN5QmhiaUJsZUhCc2FXTnBkQ0JoY21kMWJXVnVkQ2t1WEc0Z0tpQkFjR0Z5WVcwZ2EyVjVJSFJvWlNCdGIyUmxiQ0JqYkdGemN5d2djMlZ5ZG1salpTQmpiR0Z6Y3l3Z2IzSWdZV3hwWVhNZ2RHOGdjbVZ6YjJ4MlpTNGdUMjFwZENCMGJ5QnBibVpsY2lCbWNtOXRJSFJvWlNCd1lYSmhiV1YwWlhJZ2RIbHdaUzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlGTmxjblpwWTJVb2EyVjVQem9nYzNSeWFXNW5JSHdnUTI5dWMzUnlkV04wYjNJOFlXNTVQaWs2SUZCaGNtRnRaWFJsY2tSbFkyOXlZWFJ2Y2lCN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ2RHRnlaMlYwT2lCdlltcGxZM1FzWEc0Z0lDQWdjSEp2Y0dWeWRIbExaWGs2SUhOMGNtbHVaeUI4SUhONWJXSnZiQ0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0J3WVhKaGJXVjBaWEpKYm1SbGVEb2diblZ0WW1WeVhHNGdJQ2s2SUhadmFXUWdQVDRnZTF4dUlDQWdJR3hsZENCeVpYTnZiSFpsWkRvZ2MzUnlhVzVuSUh3Z1EyOXVjM1J5ZFdOMGIzSThZVzU1UGlCOElIVnVaR1ZtYVc1bFpDQTlJR3RsZVR0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhKbGMyOXNkbVZrSUQwOVBTQmNJblZ1WkdWbWFXNWxaRndpS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J3WVhKaGJWUjVjR1Z6T2lCaGJubGJYU0E5WEc0Z0lDQWdJQ0FnSUZKbFpteGxZM1F1WjJWMFRXVjBZV1JoZEdFb1hDSmtaWE5wWjI0NmNHRnlZVzEwZVhCbGMxd2lMQ0IwWVhKblpYUXBJSHg4SUZ0ZE8xeHVJQ0FnSUNBZ2NtVnpiMngyWldRZ1BTQndZWEpoYlZSNWNHVnpXM0JoY21GdFpYUmxja2x1WkdWNFhUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCeVpYTnZiSFpsWkNBOVBUMGdYQ0oxYm1SbFptbHVaV1JjSWlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUdCQVUyVnlkbWxqWlNncElHTnZkV3hrSUc1dmRDQmtaWFJsY20xcGJtVWdZVzRnYVc1cVpXTjBhVzl1SUhSNWNHVWdabTl5SUhCaGNtRnRaWFJsY2lBa2UzQmhjbUZ0WlhSbGNrbHVaR1Y0ZlNCdlppQWtleWgwWVhKblpYUWdZWE1nUTI5dWMzUnlkV04wYjNJOFlXNTVQaWt1Ym1GdFpYMHVJRkJ5YjNacFpHVWdZVzRnWlhod2JHbGphWFFnWVhKbmRXMWxiblFzSUdVdVp5NGdRRk5sY25acFkyVW9VMjl0WlZObGNuWnBZMlVwTG1CY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdZWE5OYjJSbGJDQTlJSFI1Y0dWdlppQnlaWE52YkhabFpDQWhQVDBnWENKemRISnBibWRjSWlBbUppQnBjMDF2WkdWc1EyOXVjM1J5ZFdOMGIzSW9jbVZ6YjJ4MlpXUXBPMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnWVhOTmIyUmxiRnh1SUNBZ0lDQWdQeUJ0YjJSbGJGTmxjblpwWTJWVWIydGxiaWh5WlhOdmJIWmxaQ0JoY3lCRGIyNXpkSEoxWTNSdmNqeGhibmsrS1Z4dUlDQWdJQ0FnT2lCcGJtcGxZM1JoWW14bFUyVnlkbWxqWlV0bGVTaHlaWE52YkhabFpDQmhjeUJ6ZEhKcGJtY2dmQ0JEYjI1emRISjFZM1J2Y2p4aGJuaytLVHRjYmx4dUlDQWdJSEpsWjJsemRHVnlVSEp2ZG1sa1pYSW9kRzlyWlc0c0lDZ3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaGhjMDF2WkdWc0tTQnlaWFIxY200Z1RXOWtaV3hUWlhKMmFXTmxMbVp2Y2sxdlpHVnNLSEpsYzI5c2RtVmtJR0Z6SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnlaWE52YkhabFpDQTlQVDBnWENKemRISnBibWRjSWx4dUlDQWdJQ0FnSUNBL0lFTnZjbVZUWlhKMmFXTmxMbWRsZENoeVpYTnZiSFpsWkNsY2JpQWdJQ0FnSUNBZ09pQkRiM0psVTJWeWRtbGpaUzVuWlhRb2NtVnpiMngyWldRZ1lYTWdRMjl1YzNSeWRXTjBiM0k4WVc1NVBpazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnlaWFIxY200Z1NXNXFaV04wS0hSdmEyVnVLU2gwWVhKblpYUXNJSEJ5YjNCbGNuUjVTMlY1TENCd1lYSmhiV1YwWlhKSmJtUmxlQ2s3WEc0Z0lIMDdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ym5OMGNuVmpkRzl5SUhCaGNtRnRaWFJsY2lCa1pXTnZjbUYwYjNJZ2RHaGhkQ0JwYm1wbFkzUnpJR0VnWkdWallXWWdlMEJzYVc1cklFTnZjbVZTWlhCdmMybDBiM0o1ZlNCbWIzSWdZRzF2WkdWc1lDNWNiaUFxSUVCemRXMXRZWEo1SUZWdWJHbHJaU0I3UUd4cGJtc2dVMlZ5ZG1salpYMHNJR0J0YjJSbGJHQWdhWE1nWVd4M1lYbHpJSFJ5WldGMFpXUWdZWE1nWVNCTmIyUmxiQ0JqYkdGemN6b2dkR2hsSUhOaGJXVWdZMnhoYzNNZ2NHRnpjMlZrWEc0Z0tpQjBieUJnUUZObGNuWnBZMlVvYlc5a1pXd3BZQ0JoYm1RZ1lFQlNaWEJ2YzJsMGIzSjVLRzF2WkdWc0tXQWdjbVZ6YjJ4MlpYTWdkRzhnZEhkdklHUnBabVpsY21WdWRDQnBibXBsWTNSbFpDQnZZbXBsWTNSeklDaGhYRzRnS2lCZ1RXOWtaV3hUWlhKMmFXTmxQRTArWUNCMmN5QmhJR0JTWlhCdmMybDBiM0o1UEUwK1lDQnlaWE53WldOMGFYWmxiSGtwTENCMmFXRWdlMEJzYVc1cklFTnZjbVZTWlhCdmMybDBiM0o1TG1admNrMXZaR1ZzZlM1Y2JpQXFJRUJ3WVhKaGJTQnRiMlJsYkNCMGFHVWdiVzlrWld3Z1kyeGhjM01nZEc4Z2NtVnpiMngyWlNCaElISmxjRzl6YVhSdmNua2dabTl5TGx4dUlDb2dRSEJoY21GdElHWnNZWFp2ZFhJZ2IzQjBhVzl1WVd3Z1lXUmhjSFJsY2lCbWJHRjJiM1Z5TDJGc2FXRnpMQ0JtYjNKM1lYSmtaV1FnZEc4Z2UwQnNhVzVySUVOdmNtVlNaWEJ2YzJsMGIzSjVMbVp2Y2sxdlpHVnNmUzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlGSmxjRzl6YVhSdmNua29YRzRnSUcxdlpHVnNPaUJEYjI1emRISjFZM1J2Y2p4aGJuaytMRnh1SUNCbWJHRjJiM1Z5UHpvZ2MzUnlhVzVuWEc0cE9pQlFZWEpoYldWMFpYSkVaV052Y21GMGIzSWdlMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJSFJoY21kbGREb2diMkpxWldOMExGeHVJQ0FnSUhCeWIzQmxjblI1UzJWNU9pQnpkSEpwYm1jZ2ZDQnplVzFpYjJ3Z2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ2NHRnlZVzFsZEdWeVNXNWtaWGc2SUc1MWJXSmxjbHh1SUNBcE9pQjJiMmxrSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0IwYjJ0bGJpQTlJRzF2WkdWc1VtVndiM05wZEc5eWVWUnZhMlZ1S0cxdlpHVnNMQ0JtYkdGMmIzVnlLVHRjYmlBZ0lDQnlaV2RwYzNSbGNsQnliM1pwWkdWeUtIUnZhMlZ1TENBb0tTQTlQaUJEYjNKbFVtVndiM05wZEc5eWVTNW1iM0pOYjJSbGJDaHRiMlJsYkN3Z1pteGhkbTkxY2lrcE8xeHVJQ0FnSUhKbGRIVnliaUJKYm1wbFkzUW9kRzlyWlc0cEtIUmhjbWRsZEN3Z2NISnZjR1Z5ZEhsTFpYa3NJSEJoY21GdFpYUmxja2x1WkdWNEtUdGNiaUFnZlR0Y2JuMWNiaUpkZlE9PSJdfQ==
package/lib/cjs/index.cjs CHANGED
@@ -60,21 +60,21 @@ __exportStar(require("./events-module/index.cjs"), exports);
60
60
  * @constant
61
61
  * @type {string}
62
62
  */
63
- exports.VERSION = "0.11.2-refactor.2";
63
+ exports.VERSION = "0.11.2-refactor.4";
64
64
  /**
65
65
  * @description Represents the current commit hash of the module build.
66
66
  * @summary Stores the current git commit hash for the package. The build replaces
67
67
  * the placeholder with the actual commit hash at publish time.
68
68
  * @const COMMIT
69
69
  */
70
- exports.COMMIT = "85f1cec";
70
+ exports.COMMIT = "55b8f3e";
71
71
  /**
72
72
  * @description Represents the full version string of the module.
73
73
  * @summary Stores the semver version and commit hash for the package.
74
74
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
75
75
  * @const FULL_VERSION
76
76
  */
77
- exports.FULL_VERSION = "0.11.2-refactor.2-85f1cec";
77
+ exports.FULL_VERSION = "0.11.2-refactor.4-55b8f3e";
78
78
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
79
79
  decoration_1.Metadata.allowReregistration(true);
80
80
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
@@ -31,6 +31,9 @@ let DecafRequestContext = class DecafRequestContext extends server_1.RequestCont
31
31
  this.uuid = core_2.UUID.instance.generate();
32
32
  this.request = req;
33
33
  }
34
+ get headers() {
35
+ return this.getOrUndefined("headers");
36
+ }
34
37
  put(record) {
35
38
  let overrides;
36
39
  try {
@@ -51,5 +54,5 @@ exports.DecafRequestContext = DecafRequestContext = __decorate([
51
54
  __param(0, (0, common_1.Inject)(core_1.REQUEST)),
52
55
  __metadata("design:paramtypes", [Object])
53
56
  ], DecafRequestContext);
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZSZXF1ZXN0Q29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXF1ZXN0L0RlY2FmUmVxdWVzdENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBTXBELElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQStELFNBQVEsY0FBdUI7SUFJekcsWUFBNkIsR0FBNkI7UUFDeEQsS0FBSyxDQUNIO1lBQ0UsU0FBUyxFQUFFLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUUsT0FBZSxFQUFFLE9BQU8sSUFBSSxTQUFTO1NBQ2pFLEVBQ1IsR0FBRyxDQUNKLENBQUM7UUFOMEMsUUFBRyxHQUFILEdBQUcsQ0FBUztRQUgxRCxTQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQVU5QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQXdCO1FBQzFCLElBQUksU0FBYyxDQUFDO1FBQ25CLElBQUksQ0FBQztZQUNILFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xDLDZEQUE2RDtRQUMvRCxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2QsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQTtBQTNCWSxtQkFBbUI7SUFEL0IsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUt0QixXQUFBLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTs7R0FKakIsbUJBQW1CLENBMkIvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgU2NvcGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJFUVVFU1QgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5pbXBvcnQgeyBVVUlEIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBSZXF1ZXN0Q29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWh0dHAvc2VydmVyXCI7XG5pbXBvcnQgeyB0eXBlIFJlcXVlc3QgfSBmcm9tIFwiZXhwcmVzc1wiO1xuXG5pbXBvcnQgeyBEZWNhZlNlcnZlckN0eCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuQEluamVjdGFibGUoeyBzY29wZTogU2NvcGUuUkVRVUVTVCB9KVxuZXhwb3J0IGNsYXNzIERlY2FmUmVxdWVzdENvbnRleHQ8QyBleHRlbmRzIERlY2FmU2VydmVyQ3R4ID0gRGVjYWZTZXJ2ZXJDdHg+IGV4dGVuZHMgUmVxdWVzdENvbnRleHQ8UmVxdWVzdD4ge1xuICB1dWlkID0gVVVJRC5pbnN0YW5jZS5nZW5lcmF0ZSgpO1xuICBvdmVycmlkZSByZWFkb25seSByZXF1ZXN0OiBSZXF1ZXN0O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUkVRVUVTVCkgcHJpdmF0ZSByZWFkb25seSByZXE6IFJlcXVlc3QpIHtcbiAgICBzdXBlcihcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyc09mOiAocmVxdWVzdDogUmVxdWVzdCkgPT4gKHJlcXVlc3QgYXMgYW55KT8uaGVhZGVycyB8fCB1bmRlZmluZWQsXG4gICAgICB9IGFzIGFueSxcbiAgICAgIHJlcVxuICAgICk7XG4gICAgdGhpcy5yZXF1ZXN0ID0gcmVxO1xuICB9XG5cbiAgcHV0KHJlY29yZDogUmVjb3JkPGFueSwgYW55Pikge1xuICAgIGxldCBvdmVycmlkZXM6IGFueTtcbiAgICB0cnkge1xuICAgICAgb3ZlcnJpZGVzID0gdGhpcy5nZXQoXCJvdmVycmlkZXNcIik7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgb3ZlcnJpZGVzID0ge307XG4gICAgfVxuXG4gICAgdGhpcy5hY2N1bXVsYXRlKHtcbiAgICAgIG92ZXJyaWRlczogT2JqZWN0LmFzc2lnbihvdmVycmlkZXMsIHJlY29yZCksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZSZXF1ZXN0Q29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlY2FmUmVxdWVzdENvbnRleHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEosT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUNGLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQ3hELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3RyxDQUFDLENBQUM7QUFDRixJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsU0FBUztJQUNuRSxPQUFPLFVBQVUsTUFBTSxFQUFFLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN6RSxDQUFDLENBQUM7QUFDRiwyQ0FBMkQ7QUFDM0QsdUNBQXVDO0FBQ3ZDLHlDQUFzQztBQUN0QyxzREFBMkQ7QUFDM0QsSUFBSSxtQkFBbUIsR0FBRyxNQUFNLG1CQUFvQixTQUFRLHVCQUFjO0lBQ3RFLFlBQVksR0FBRztRQUNYLEtBQUssQ0FBQztZQUNGLFNBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTO1NBQ3hELEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDUixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBQ0QsR0FBRyxDQUFDLE1BQU07UUFDTixJQUFJLFNBQVMsQ0FBQztRQUNkLElBQUksQ0FBQztZQUNELFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xDLDZEQUE2RDtRQUNqRSxDQUFDO1FBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNQLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUM7WUFDWixTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO1NBQzlDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSixDQUFDO0FBTU8sa0RBQW1CO0FBTDVCLDhCQUFBLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztJQUM3QixJQUFBLG1CQUFVLEVBQUMsRUFBRSxLQUFLLEVBQUUsY0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBQSxlQUFNLEVBQUMsY0FBTyxDQUFDLENBQUM7SUFDM0IsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDNUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBRXhCLGs3RkFBazdGIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIF9fbWV0YWRhdGEgPSAodGhpcyAmJiB0aGlzLl9fbWV0YWRhdGEpIHx8IGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGssIHYpO1xufTtcbnZhciBfX3BhcmFtID0gKHRoaXMgJiYgdGhpcy5fX3BhcmFtKSB8fCBmdW5jdGlvbiAocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XG59O1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBTY29wZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgUkVRVUVTVCB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IFVVSUQgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcbmxldCBEZWNhZlJlcXVlc3RDb250ZXh0ID0gY2xhc3MgRGVjYWZSZXF1ZXN0Q29udGV4dCBleHRlbmRzIFJlcXVlc3RDb250ZXh0IHtcbiAgICBjb25zdHJ1Y3RvcihyZXEpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaGVhZGVyc09mOiAocmVxdWVzdCkgPT4gcmVxdWVzdD8uaGVhZGVycyB8fCB1bmRlZmluZWQsXG4gICAgICAgIH0sIHJlcSk7XG4gICAgICAgIHRoaXMucmVxID0gcmVxO1xuICAgICAgICB0aGlzLnV1aWQgPSBVVUlELmluc3RhbmNlLmdlbmVyYXRlKCk7XG4gICAgICAgIHRoaXMucmVxdWVzdCA9IHJlcTtcbiAgICB9XG4gICAgcHV0KHJlY29yZCkge1xuICAgICAgICBsZXQgb3ZlcnJpZGVzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgb3ZlcnJpZGVzID0gdGhpcy5nZXQoXCJvdmVycmlkZXNcIik7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlcyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWNjdW11bGF0ZSh7XG4gICAgICAgICAgICBvdmVycmlkZXM6IE9iamVjdC5hc3NpZ24ob3ZlcnJpZGVzLCByZWNvcmQpLFxuICAgICAgICB9KTtcbiAgICB9XG59O1xuRGVjYWZSZXF1ZXN0Q29udGV4dCA9IF9fZGVjb3JhdGUoW1xuICAgIEluamVjdGFibGUoeyBzY29wZTogU2NvcGUuUkVRVUVTVCB9KSxcbiAgICBfX3BhcmFtKDAsIEluamVjdChSRVFVRVNUKSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3RdKVxuXSwgRGVjYWZSZXF1ZXN0Q29udGV4dCk7XG5leHBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSR1ZqWVdaU1pYRjFaWE4wUTI5dWRHVjRkQzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwzTnlZeTl5WlhGMVpYTjBMMFJsWTJGbVVtVnhkV1Z6ZEVOdmJuUmxlSFF1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlN4VlFVRlZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRNMFFzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4TlFVRk5MR05CUVdNc1EwRkJRenRCUVVOMlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEZEVNc1QwRkJUeXhGUVVGRkxHTkJRV01zUlVGQlJTeE5RVUZOTERKQ1FVRXlRaXhEUVVGRE8wRkJUWEJFTEVsQlFVMHNiVUpCUVcxQ0xFZEJRWHBDTEUxQlFVMHNiVUpCUVN0RUxGTkJRVkVzWTBGQmRVSTdTVUZKZWtjc1dVRkJOa0lzUjBGQk5rSTdVVUZEZUVRc1MwRkJTeXhEUVVOSU8xbEJRMFVzVTBGQlV5eEZRVUZGTEVOQlFVTXNUMEZCWjBJc1JVRkJSU3hGUVVGRkxFTkJRVVVzVDBGQlpTeEZRVUZGTEU5QlFVOHNTVUZCU1N4VFFVRlRPMU5CUTJwRkxFVkJRMUlzUjBGQlJ5eERRVU5LTEVOQlFVTTdVVUZPTUVNc1VVRkJSeXhIUVVGSUxFZEJRVWNzUTBGQlV6dFJRVWd4UkN4VFFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0UlFWVTVRaXhKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVkQlFVY3NRMEZCUXp0SlFVTnlRaXhEUVVGRE8wbEJSVVFzUjBGQlJ5eERRVUZETEUxQlFYZENPMUZCUXpGQ0xFbEJRVWtzVTBGQll5eERRVUZETzFGQlEyNUNMRWxCUVVrc1EwRkJRenRaUVVOSUxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xbEJRMnhETERaRVFVRTJSRHRSUVVNdlJDeERRVUZETzFGQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRaUVVOd1FpeFRRVUZUTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTJwQ0xFTkJRVU03VVVGRlJDeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRPMWxCUTJRc1UwRkJVeXhGUVVGRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVRkZMRTFCUVUwc1EwRkJRenRUUVVNMVF5eERRVUZETEVOQlFVTTdTVUZEVEN4RFFVRkRPME5CUTBZc1EwRkJRVHRCUVROQ1dTeHRRa0ZCYlVJN1NVRkVMMElzVlVGQlZTeERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEpRVXQwUWl4WFFVRkJMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlFUczdSMEZLYWtJc2JVSkJRVzFDTEVOQk1rSXZRaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVsdWFtVmpkQ3dnU1c1cVpXTjBZV0pzWlN3Z1UyTnZjR1VnZlNCbWNtOXRJRndpUUc1bGMzUnFjeTlqYjIxdGIyNWNJanRjYm1sdGNHOXlkQ0I3SUZKRlVWVkZVMVFnZlNCbWNtOXRJRndpUUc1bGMzUnFjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJWVlVsRUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QlNaWEYxWlhOMFEyOXVkR1Y0ZENCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlptOXlMV2gwZEhBdmMyVnlkbVZ5WENJN1hHNXBiWEJ2Y25RZ2V5QjBlWEJsSUZKbGNYVmxjM1FnZlNCbWNtOXRJRndpWlhod2NtVnpjMXdpTzF4dVhHNXBiWEJ2Y25RZ2V5QkVaV05oWmxObGNuWmxja04wZUNCOUlHWnliMjBnWENJdUxpOWpiMjV6ZEdGdWRITmNJanRjYmx4dVFFbHVhbVZqZEdGaWJHVW9leUJ6WTI5d1pUb2dVMk52Y0dVdVVrVlJWVVZUVkNCOUtWeHVaWGh3YjNKMElHTnNZWE56SUVSbFkyRm1VbVZ4ZFdWemRFTnZiblJsZUhROFF5QmxlSFJsYm1SeklFUmxZMkZtVTJWeWRtVnlRM1I0SUQwZ1JHVmpZV1pUWlhKMlpYSkRkSGcrSUdWNGRHVnVaSE1nVW1WeGRXVnpkRU52Ym5SbGVIUThVbVZ4ZFdWemRENGdlMXh1SUNCMWRXbGtJRDBnVlZWSlJDNXBibk4wWVc1alpTNW5aVzVsY21GMFpTZ3BPMXh1SUNCdmRtVnljbWxrWlNCeVpXRmtiMjVzZVNCeVpYRjFaWE4wT2lCU1pYRjFaWE4wTzF4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0VCSmJtcGxZM1FvVWtWUlZVVlRWQ2tnY0hKcGRtRjBaU0J5WldGa2IyNXNlU0J5WlhFNklGSmxjWFZsYzNRcElIdGNiaUFnSUNCemRYQmxjaWhjYmlBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnYUdWaFpHVnljMDltT2lBb2NtVnhkV1Z6ZERvZ1VtVnhkV1Z6ZENrZ1BUNGdLSEpsY1hWbGMzUWdZWE1nWVc1NUtUOHVhR1ZoWkdWeWN5QjhmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0I5SUdGeklHRnVlU3hjYmlBZ0lDQWdJSEpsY1Z4dUlDQWdJQ2s3WEc0Z0lDQWdkR2hwY3k1eVpYRjFaWE4wSUQwZ2NtVnhPMXh1SUNCOVhHNWNiaUFnY0hWMEtISmxZMjl5WkRvZ1VtVmpiM0prUEdGdWVTd2dZVzU1UGlrZ2UxeHVJQ0FnSUd4bGRDQnZkbVZ5Y21sa1pYTTZJR0Z1ZVR0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2IzWmxjbkpwWkdWeklEMGdkR2hwY3k1blpYUW9YQ0p2ZG1WeWNtbGtaWE5jSWlrN1hHNGdJQ0FnSUNBdkx5QmxjMnhwYm5RdFpHbHpZV0pzWlMxdVpYaDBMV3hwYm1VZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNXZMWFZ1ZFhObFpDMTJZWEp6WEc0Z0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnYjNabGNuSnBaR1Z6SUQwZ2UzMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVoWTJOMWJYVnNZWFJsS0h0Y2JpQWdJQ0FnSUc5MlpYSnlhV1JsY3pvZ1QySnFaV04wTG1GemMybG5iaWh2ZG1WeWNtbGtaWE1zSUhKbFkyOXlaQ2tzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZSZXF1ZXN0Q29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXF1ZXN0L0RlY2FmUmVxdWVzdENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBTXBELElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQStELFNBQVEsY0FBdUI7SUFJekcsWUFBNkIsR0FBNkI7UUFDeEQsS0FBSyxDQUNIO1lBQ0UsU0FBUyxFQUFFLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUUsT0FBZSxFQUFFLE9BQU8sSUFBSSxTQUFTO1NBQ2pFLEVBQ1IsR0FBRyxDQUNKLENBQUM7UUFOMEMsUUFBRyxHQUFILEdBQUcsQ0FBUztRQUgxRCxTQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQVU5QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQWdCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQXdCO1FBQzFCLElBQUksU0FBYyxDQUFDO1FBQ25CLElBQUksQ0FBQztZQUNILFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xDLDZEQUE2RDtRQUMvRCxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2QsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQTtBQS9CWSxtQkFBbUI7SUFEL0IsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUt0QixXQUFBLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTs7R0FKakIsbUJBQW1CLENBK0IvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgU2NvcGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJFUVVFU1QgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5pbXBvcnQgeyBVVUlEIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBSZXF1ZXN0Q29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWh0dHAvc2VydmVyXCI7XG5pbXBvcnQgeyB0eXBlIFJlcXVlc3QgfSBmcm9tIFwiZXhwcmVzc1wiO1xuXG5pbXBvcnQgeyBEZWNhZlNlcnZlckN0eCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuQEluamVjdGFibGUoeyBzY29wZTogU2NvcGUuUkVRVUVTVCB9KVxuZXhwb3J0IGNsYXNzIERlY2FmUmVxdWVzdENvbnRleHQ8QyBleHRlbmRzIERlY2FmU2VydmVyQ3R4ID0gRGVjYWZTZXJ2ZXJDdHg+IGV4dGVuZHMgUmVxdWVzdENvbnRleHQ8UmVxdWVzdD4ge1xuICB1dWlkID0gVVVJRC5pbnN0YW5jZS5nZW5lcmF0ZSgpO1xuICBvdmVycmlkZSByZWFkb25seSByZXF1ZXN0OiBSZXF1ZXN0O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUkVRVUVTVCkgcHJpdmF0ZSByZWFkb25seSByZXE6IFJlcXVlc3QpIHtcbiAgICBzdXBlcihcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyc09mOiAocmVxdWVzdDogUmVxdWVzdCkgPT4gKHJlcXVlc3QgYXMgYW55KT8uaGVhZGVycyB8fCB1bmRlZmluZWQsXG4gICAgICB9IGFzIGFueSxcbiAgICAgIHJlcVxuICAgICk7XG4gICAgdGhpcy5yZXF1ZXN0ID0gcmVxO1xuICB9XG5cbiAgZ2V0IGhlYWRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXRPclVuZGVmaW5lZChcImhlYWRlcnNcIiBhcyBhbnkpO1xuICB9XG5cbiAgcHV0KHJlY29yZDogUmVjb3JkPGFueSwgYW55Pikge1xuICAgIGxldCBvdmVycmlkZXM6IGFueTtcbiAgICB0cnkge1xuICAgICAgb3ZlcnJpZGVzID0gdGhpcy5nZXQoXCJvdmVycmlkZXNcIik7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgb3ZlcnJpZGVzID0ge307XG4gICAgfVxuXG4gICAgdGhpcy5hY2N1bXVsYXRlKHtcbiAgICAgIG92ZXJyaWRlczogT2JqZWN0LmFzc2lnbihvdmVycmlkZXMsIHJlY29yZCksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZSZXF1ZXN0Q29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlY2FmUmVxdWVzdENvbnRleHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEosT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUNGLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQ3hELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3RyxDQUFDLENBQUM7QUFDRixJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsU0FBUztJQUNuRSxPQUFPLFVBQVUsTUFBTSxFQUFFLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN6RSxDQUFDLENBQUM7QUFDRiwyQ0FBMkQ7QUFDM0QsdUNBQXVDO0FBQ3ZDLHlDQUFzQztBQUN0QyxzREFBMkQ7QUFDM0QsSUFBSSxtQkFBbUIsR0FBRyxNQUFNLG1CQUFvQixTQUFRLHVCQUFjO0lBQ3RFLFlBQVksR0FBRztRQUNYLEtBQUssQ0FBQztZQUNGLFNBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTO1NBQ3hELEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDUixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxHQUFHLENBQUMsTUFBTTtRQUNOLElBQUksU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDO1lBQ0QsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsNkRBQTZEO1FBQ2pFLENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1AsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNaLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKLENBQUM7QUFNTyxrREFBbUI7QUFMNUIsOEJBQUEsbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0lBQzdCLElBQUEsbUJBQVUsRUFBQyxFQUFFLEtBQUssRUFBRSxjQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFBLGVBQU0sRUFBQyxjQUFPLENBQUMsQ0FBQztJQUMzQixVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUM1QyxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFFeEIsMHNHQUEwc0ciLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xudmFyIF9fcGFyYW0gPSAodGhpcyAmJiB0aGlzLl9fcGFyYW0pIHx8IGZ1bmN0aW9uIChwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cbn07XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIFNjb3BlIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBSRVFVRVNUIH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgVVVJRCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1odHRwL3NlcnZlclwiO1xubGV0IERlY2FmUmVxdWVzdENvbnRleHQgPSBjbGFzcyBEZWNhZlJlcXVlc3RDb250ZXh0IGV4dGVuZHMgUmVxdWVzdENvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKHJlcSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBoZWFkZXJzT2Y6IChyZXF1ZXN0KSA9PiByZXF1ZXN0Py5oZWFkZXJzIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgfSwgcmVxKTtcbiAgICAgICAgdGhpcy5yZXEgPSByZXE7XG4gICAgICAgIHRoaXMudXVpZCA9IFVVSUQuaW5zdGFuY2UuZ2VuZXJhdGUoKTtcbiAgICAgICAgdGhpcy5yZXF1ZXN0ID0gcmVxO1xuICAgIH1cbiAgICBnZXQgaGVhZGVycygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JVbmRlZmluZWQoXCJoZWFkZXJzXCIpO1xuICAgIH1cbiAgICBwdXQocmVjb3JkKSB7XG4gICAgICAgIGxldCBvdmVycmlkZXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBvdmVycmlkZXMgPSB0aGlzLmdldChcIm92ZXJyaWRlc1wiKTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgb3ZlcnJpZGVzID0ge307XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY2N1bXVsYXRlKHtcbiAgICAgICAgICAgIG92ZXJyaWRlczogT2JqZWN0LmFzc2lnbihvdmVycmlkZXMsIHJlY29yZCksXG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5EZWNhZlJlcXVlc3RDb250ZXh0ID0gX19kZWNvcmF0ZShbXG4gICAgSW5qZWN0YWJsZSh7IHNjb3BlOiBTY29wZS5SRVFVRVNUIH0pLFxuICAgIF9fcGFyYW0oMCwgSW5qZWN0KFJFUVVFU1QpKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW09iamVjdF0pXG5dLCBEZWNhZlJlcXVlc3RDb250ZXh0KTtcbmV4cG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJHVmpZV1pTWlhGMVpYTjBRMjl1ZEdWNGRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OXlaWEYxWlhOMEwwUmxZMkZtVW1WeGRXVnpkRU52Ym5SbGVIUXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3TzBGQlFVRXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSU3hWUVVGVkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRE0wUXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hOUVVGTkxHTkJRV01zUTBGQlF6dEJRVU4yUXl4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRkRU1zVDBGQlR5eEZRVUZGTEdOQlFXTXNSVUZCUlN4TlFVRk5MREpDUVVFeVFpeERRVUZETzBGQlRYQkVMRWxCUVUwc2JVSkJRVzFDTEVkQlFYcENMRTFCUVUwc2JVSkJRU3RFTEZOQlFWRXNZMEZCZFVJN1NVRkpla2NzV1VGQk5rSXNSMEZCTmtJN1VVRkRlRVFzUzBGQlN5eERRVU5JTzFsQlEwVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1QwRkJaMElzUlVGQlJTeEZRVUZGTEVOQlFVVXNUMEZCWlN4RlFVRkZMRTlCUVU4c1NVRkJTU3hUUVVGVE8xTkJRMnBGTEVWQlExSXNSMEZCUnl4RFFVTktMRU5CUVVNN1VVRk9NRU1zVVVGQlJ5eEhRVUZJTEVkQlFVY3NRMEZCVXp0UlFVZ3hSQ3hUUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRSUVZVNVFpeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWRCUVVjc1EwRkJRenRKUVVOeVFpeERRVUZETzBsQlJVUXNTVUZCU1N4UFFVRlBPMUZCUTFRc1QwRkJUeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEZOQlFXZENMRU5CUVVNc1EwRkJRenRKUVVNdlF5eERRVUZETzBsQlJVUXNSMEZCUnl4RFFVRkRMRTFCUVhkQ08xRkJRekZDTEVsQlFVa3NVMEZCWXl4RFFVRkRPMUZCUTI1Q0xFbEJRVWtzUTBGQlF6dFpRVU5JTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFsQlEyeERMRFpFUVVFMlJEdFJRVU12UkN4RFFVRkRPMUZCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dFpRVU53UWl4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMnBDTEVOQlFVTTdVVUZGUkN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xbEJRMlFzVTBGQlV5eEZRVUZGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhGUVVGRkxFMUJRVTBzUTBGQlF6dFRRVU0xUXl4RFFVRkRMRU5CUVVNN1NVRkRUQ3hEUVVGRE8wTkJRMFlzUTBGQlFUdEJRUzlDV1N4dFFrRkJiVUk3U1VGRUwwSXNWVUZCVlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0SlFVdDBRaXhYUVVGQkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUVRzN1IwRktha0lzYlVKQlFXMUNMRU5CSzBJdlFpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRWx1YW1WamRDd2dTVzVxWldOMFlXSnNaU3dnVTJOdmNHVWdmU0JtY205dElGd2lRRzVsYzNScWN5OWpiMjF0YjI1Y0lqdGNibWx0Y0c5eWRDQjdJRkpGVVZWRlUxUWdmU0JtY205dElGd2lRRzVsYzNScWN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QlZWVWxFSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCU1pYRjFaWE4wUTI5dWRHVjRkQ0I5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12Wm05eUxXaDBkSEF2YzJWeWRtVnlYQ0k3WEc1cGJYQnZjblFnZXlCMGVYQmxJRkpsY1hWbGMzUWdmU0JtY205dElGd2laWGh3Y21WemMxd2lPMXh1WEc1cGJYQnZjblFnZXlCRVpXTmhabE5sY25abGNrTjBlQ0I5SUdaeWIyMGdYQ0l1TGk5amIyNXpkR0Z1ZEhOY0lqdGNibHh1UUVsdWFtVmpkR0ZpYkdVb2V5QnpZMjl3WlRvZ1UyTnZjR1V1VWtWUlZVVlRWQ0I5S1Z4dVpYaHdiM0owSUdOc1lYTnpJRVJsWTJGbVVtVnhkV1Z6ZEVOdmJuUmxlSFE4UXlCbGVIUmxibVJ6SUVSbFkyRm1VMlZ5ZG1WeVEzUjRJRDBnUkdWallXWlRaWEoyWlhKRGRIZytJR1Y0ZEdWdVpITWdVbVZ4ZFdWemRFTnZiblJsZUhROFVtVnhkV1Z6ZEQ0Z2UxeHVJQ0IxZFdsa0lEMGdWVlZKUkM1cGJuTjBZVzVqWlM1blpXNWxjbUYwWlNncE8xeHVJQ0J2ZG1WeWNtbGtaU0J5WldGa2IyNXNlU0J5WlhGMVpYTjBPaUJTWlhGMVpYTjBPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLRUJKYm1wbFkzUW9Va1ZSVlVWVFZDa2djSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQnlaWEU2SUZKbGNYVmxjM1FwSUh0Y2JpQWdJQ0J6ZFhCbGNpaGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdhR1ZoWkdWeWMwOW1PaUFvY21WeGRXVnpkRG9nVW1WeGRXVnpkQ2tnUFQ0Z0tISmxjWFZsYzNRZ1lYTWdZVzU1S1Q4dWFHVmhaR1Z5Y3lCOGZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQjlJR0Z6SUdGdWVTeGNiaUFnSUNBZ0lISmxjVnh1SUNBZ0lDazdYRzRnSUNBZ2RHaHBjeTV5WlhGMVpYTjBJRDBnY21WeE8xeHVJQ0I5WEc1Y2JpQWdaMlYwSUdobFlXUmxjbk1vS1RvZ1VtVmpiM0prUEhOMGNtbHVaeXdnYzNSeWFXNW5JSHdnYzNSeWFXNW5XMTBnZkNCMWJtUmxabWx1WldRK0lId2dkVzVrWldacGJtVmtJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbWhsWVdSbGNuTmNJaUJoY3lCaGJua3BPMXh1SUNCOVhHNWNiaUFnY0hWMEtISmxZMjl5WkRvZ1VtVmpiM0prUEdGdWVTd2dZVzU1UGlrZ2UxeHVJQ0FnSUd4bGRDQnZkbVZ5Y21sa1pYTTZJR0Z1ZVR0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2IzWmxjbkpwWkdWeklEMGdkR2hwY3k1blpYUW9YQ0p2ZG1WeWNtbGtaWE5jSWlrN1hHNGdJQ0FnSUNBdkx5QmxjMnhwYm5RdFpHbHpZV0pzWlMxdVpYaDBMV3hwYm1VZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNXZMWFZ1ZFhObFpDMTJZWEp6WEc0Z0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnYjNabGNuSnBaR1Z6SUQwZ2UzMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVoWTJOMWJYVnNZWFJsS0h0Y2JpQWdJQ0FnSUc5MlpYSnlhV1JsY3pvZ1QySnFaV04wTG1GemMybG5iaWh2ZG1WeWNtbGtaWE1zSUhKbFkyOXlaQ2tzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
@@ -14,7 +14,7 @@ import { Injectable, Inject, Optional, Scope, } from "@nestjs/common";
14
14
  import { Reflector } from "@nestjs/core";
15
15
  import { Logging } from "@decaf-ts/logging";
16
16
  import { Adapter } from "@decaf-ts/core";
17
- import { AUTH_HANDLER, AUTH_META_KEY, IS_PUBLIC_KEY, REQUIRED_ROLES_KEY, SKIP_MODEL_ROLES_KEY } from "./constants.js";
17
+ import { AUTH_HANDLER, AUTH_META_KEY, IS_PUBLIC_KEY, REQUIRED_ROLES_KEY, SKIP_MODEL_ROLES_KEY, } from "./constants.js";
18
18
  import { DecafRequestContext } from "./../request/DecafRequestContext.js";
19
19
  let AuthInterceptor = class AuthInterceptor {
20
20
  constructor(reflector, requestContext, authHandler) {
@@ -64,7 +64,10 @@ let AuthInterceptor = class AuthInterceptor {
64
64
  const transformer = Adapter.transformerFor(flavour);
65
65
  if (!transformer)
66
66
  continue;
67
- const from = await transformer.from(this.requestContext);
67
+ const instance = transformer.from
68
+ ? transformer
69
+ : new transformer();
70
+ const from = await instance.from(this.requestContext);
68
71
  if (from)
69
72
  this.requestContext.accumulate(from);
70
73
  }
@@ -78,4 +81,4 @@ AuthInterceptor = __decorate([
78
81
  DecafRequestContext, Object])
79
82
  ], AuthInterceptor);
80
83
  export { AuthInterceptor };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvQXV0aEludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBSVYsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHVCQUFvQjtBQUVuSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNENBQXVDO0FBRzlELElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFDMUIsWUFDbUIsU0FBb0IsRUFDbEIsY0FBbUMsRUFDSCxXQUF5QjtRQUYzRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNILGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQzNFLENBQUM7SUFFSixLQUFLLENBQUMsU0FBUyxDQUNiLEdBQXFCLEVBQ3JCLElBQWlCO1FBRWpCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBVyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFVLGFBQWEsRUFBRTtZQUN4RSxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxRQUFRLEVBQUU7U0FDZixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FD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M0IsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUtoQyxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQUUsV0FBQSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7cUNBRkwsU0FBUztRQUNGLG1CQUFtQjtHQUg3QyxlQUFlLENBaUYzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE5lc3RJbnRlcmNlcHRvcixcbiAgRXhlY3V0aW9uQ29udGV4dCxcbiAgQ2FsbEhhbmRsZXIsXG4gIEluamVjdCxcbiAgT3B0aW9uYWwsXG4gIFNjb3BlLFxufSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJlZmxlY3RvciB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUmVxdWVzdFRvQ29udGV4dFRyYW5zZm9ybWVyIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcblxuaW1wb3J0IHsgQVVUSF9IQU5ETEVSLCBBVVRIX01FVEFfS0VZLCBJU19QVUJMSUNfS0VZLCBSRVFVSVJFRF9ST0xFU19LRVksIFNLSVBfTU9ERUxfUk9MRVNfS0VZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEF1dGhIYW5kbGVyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4uL3JlcXVlc3QvRGVjYWZSZXF1ZXN0Q29udGV4dFwiO1xuXG5ASW5qZWN0YWJsZSh7IHNjb3BlOiBTY29wZS5SRVFVRVNUIH0pXG5leHBvcnQgY2xhc3MgQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgTmVzdEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWZsZWN0b3I6IFJlZmxlY3RvcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVxdWVzdENvbnRleHQ6IERlY2FmUmVxdWVzdENvbnRleHQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX0hBTkRMRVIpIHByaXZhdGUgcmVhZG9ubHkgYXV0aEhhbmRsZXI/OiBBdXRoSGFuZGxlclxuICApIHt9XG5cbiAgYXN5bmMgaW50ZXJjZXB0KFxuICAgIGN0eDogRXhlY3V0aW9uQ29udGV4dCxcbiAgICBuZXh0OiBDYWxsSGFuZGxlclxuICApOiBQcm9taXNlPE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKHRoaXMgYXMgYW55KS5mb3IodGhpcy5pbnRlcmNlcHQpO1xuXG4gICAgY29uc3QgaXNQdWJsaWMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZTxib29sZWFuPihJU19QVUJMSUNfS0VZLCBbXG4gICAgICBjdHguZ2V0SGFuZGxlcigpLFxuICAgICAgY3R4LmdldENsYXNzKCksXG4gICAgXSk7XG5cbiAgICBjb25zdCBtb2RlbE5hbWUgPVxuICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0PHN0cmluZyB8IENvbnN0cnVjdG9yPihcbiAgICAgICAgQVVUSF9NRVRBX0tFWSxcbiAgICAgICAgY3R4LmdldEhhbmRsZXIoKVxuICAgICAgKSA/P1xuICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0PHN0cmluZyB8IENvbnN0cnVjdG9yPihBVVRIX01FVEFfS0VZLCBjdHguZ2V0Q2xhc3MoKSk7XG5cbiAgICBjb25zdCByZXF1aXJlZFJvbGVzID0gdGhpcy5yZWZsZWN0b3IuZ2V0QWxsQW5kT3ZlcnJpZGU8c3RyaW5nW10+KFxuICAgICAgUkVRVUlSRURfUk9MRVNfS0VZLFxuICAgICAgW2N0eC5nZXRIYW5kbGVyKCksIGN0eC5nZXRDbGFzcygpXVxuICAgICk7XG5cbiAgICBjb25zdCBza2lwTW9kZWxSb2xlcyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlPGJvb2xlYW4+KFxuICAgICAgU0tJUF9NT0RFTF9ST0xFU19LRVksXG4gICAgICBbY3R4LmdldEhhbmRsZXIoKSwgY3R4LmdldENsYXNzKCldXG4gICAgKTtcblxuICAgIGNvbnN0IGVmZmVjdGl2ZU1vZGVsID0gc2tpcE1vZGVsUm9sZXMgPyB1bmRlZmluZWQgOiBtb2RlbE5hbWU7XG5cbiAgICBsb2cudmVyYm9zZShgSW50ZXJjZXB0ZWQgcmVxdWVzdCR7bW9kZWxOYW1lID8gYCBmb3IgJHttb2RlbE5hbWV9YCA6IFwiXCJ9YCk7XG5cbiAgICBpZiAoaXNQdWJsaWMpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUHVibGljIHJvdXRlIOKAlCBza2lwcGluZyBhdXRoYCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1dGhIYW5kbGVyKSB7XG4gICAgICBhd2FpdCB0aGlzLmF1dGhIYW5kbGVyLmF1dGhvcml6ZShcbiAgICAgICAgY3R4LFxuICAgICAgICBlZmZlY3RpdmVNb2RlbCBhcyBzdHJpbmcgfCBDb25zdHJ1Y3RvcixcbiAgICAgICAgcmVxdWlyZWRSb2xlcyxcbiAgICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmRlYnVnKGBObyBhdXRoIGhhbmRsZXIgcmVnaXN0ZXJlZGApO1xuICAgIH1cblxuICAgIC8vIFRyYW5zZm9ybWVycyBydW4gQUZURVIgYXV0aCBzbyB0aGV5IGNhbiByZWFkIGF1dGgtcG9wdWxhdGVkIGZpZWxkc1xuICAgIC8vIChlLmcuIGB1c2VyYCkgZnJvbSB0aGUgY29udGV4dCBhbmQgbWFwIHRoZW0gdG8gYWRhcHRlci1zcGVjaWZpYyBrZXlzXG4gICAgLy8gKGUuZy4gYFVVSURgIGZvciBSYW1BZGFwdGVyJ3MgQGNyZWF0ZWRCeS9AdXBkYXRlZEJ5IGhhbmRsZXJzKS5cbiAgICBhd2FpdCB0aGlzLmFwcGx5VHJhbnNmb3JtZXJzKCk7XG5cbiAgICBjb25zdCB1c2VyID0gdGhpcy5yZXF1ZXN0Q29udGV4dC5nZXRPclVuZGVmaW5lZChcInVzZXJcIiBhcyBhbnkpO1xuICAgIGNvbnN0IG9yZ2FuaXphdGlvbiA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJvcmdhbml6YXRpb25cIiBhcyBhbnkpO1xuICAgIGlmICh1c2VyIHx8IG9yZ2FuaXphdGlvbikge1xuICAgICAgY29uc3QgY3VycmVudExvZyA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0KFwibG9nZ2VyXCIgYXMgYW55KTtcbiAgICAgIGNvbnN0IGNoaWxkTG9nID0gY3VycmVudExvZy5mb3IoeyB1c2VyLCBvcmdhbml6YXRpb24gfSk7XG4gICAgICB0aGlzLnJlcXVlc3RDb250ZXh0LmFjY3VtdWxhdGUoeyBsb2dnZXI6IGNoaWxkTG9nIH0gYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBhcHBseVRyYW5zZm9ybWVycygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmbGF2b3VycyA9IEFkYXB0ZXIuZmxhdm91cnNUb1RyYW5zZm9ybSgpO1xuICAgIGlmICghZmxhdm91cnMpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgZmxhdm91ciBvZiBmbGF2b3Vycykge1xuICAgICAgY29uc3QgdHJhbnNmb3JtZXIgPSBBZGFwdGVyLnRyYW5zZm9ybWVyRm9yKFxuICAgICAgICBmbGF2b3VyXG4gICAgICApIGFzIFJlcXVlc3RUb0NvbnRleHRUcmFuc2Zvcm1lcjxhbnk+O1xuICAgICAgaWYgKCF0cmFuc2Zvcm1lcikgY29udGludWU7XG4gICAgICBjb25zdCBmcm9tID0gYXdhaXQgdHJhbnNmb3JtZXIuZnJvbSh0aGlzLnJlcXVlc3RDb250ZXh0KTtcbiAgICAgIGlmIChmcm9tKSB0aGlzLnJlcXVlc3RDb250ZXh0LmFjY3VtdWxhdGUoZnJvbSk7XG4gICAgfVxuICB9XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvQXV0aEludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBSVYsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEVBQ2IsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDckIsdUJBQW9CO0FBRXJCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSw0Q0FBdUM7QUFHOUQsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUMxQixZQUNtQixTQUFvQixFQUNsQixjQUFtQyxFQUNILFdBQXlCO1FBRjNELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBQ0gsZ0JBQVcsR0FBWCxXQUFXLENBQWM7SUFDM0UsQ0FBQztJQUVKLEtBQUssQ0FBQyxTQUFTLENBQ2IsR0FBcUIsRUFDckIsSUFBaUI7UUFFakIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQVUsYUFBYSxFQUFFO1lBQ3hFLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDaEIsR0FBRyxDQUFDLFFBQVEsRUFBRTtTQUNmLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxH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QUk7Z0JBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBdEZZLGVBQWU7SUFEM0IsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUtoQyxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQUUsV0FBQSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7cUNBRkwsU0FBUztRQUNGLG1CQUFtQjtHQUg3QyxlQUFlLENBc0YzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE5lc3RJbnRlcmNlcHRvcixcbiAgRXhlY3V0aW9uQ29udGV4dCxcbiAgQ2FsbEhhbmRsZXIsXG4gIEluamVjdCxcbiAgT3B0aW9uYWwsXG4gIFNjb3BlLFxufSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJlZmxlY3RvciB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUmVxdWVzdFRvQ29udGV4dFRyYW5zZm9ybWVyIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcblxuaW1wb3J0IHtcbiAgQVVUSF9IQU5ETEVSLFxuICBBVVRIX01FVEFfS0VZLFxuICBJU19QVUJMSUNfS0VZLFxuICBSRVFVSVJFRF9ST0xFU19LRVksXG4gIFNLSVBfTU9ERUxfUk9MRVNfS0VZLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgQXV0aEhhbmRsZXIgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi4vcmVxdWVzdC9EZWNhZlJlcXVlc3RDb250ZXh0XCI7XG5cbkBJbmplY3RhYmxlKHsgc2NvcGU6IFNjb3BlLlJFUVVFU1QgfSlcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBOZXN0SW50ZXJjZXB0b3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZmxlY3RvcjogUmVmbGVjdG9yLFxuICAgIHByb3RlY3RlZCByZWFkb25seSByZXF1ZXN0Q29udGV4dDogRGVjYWZSZXF1ZXN0Q29udGV4dCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFVVEhfSEFORExFUikgcHJpdmF0ZSByZWFkb25seSBhdXRoSGFuZGxlcj86IEF1dGhIYW5kbGVyXG4gICkge31cblxuICBhc3luYyBpbnRlcmNlcHQoXG4gICAgY3R4OiBFeGVjdXRpb25Db250ZXh0LFxuICAgIG5leHQ6IENhbGxIYW5kbGVyXG4gICk6IFByb21pc2U8T2JzZXJ2YWJsZTxhbnk+PiB7XG4gICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGhpcyBhcyBhbnkpLmZvcih0aGlzLmludGVyY2VwdCk7XG5cbiAgICBjb25zdCBpc1B1YmxpYyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlPGJvb2xlYW4+KElTX1BVQkxJQ19LRVksIFtcbiAgICAgIGN0eC5nZXRIYW5kbGVyKCksXG4gICAgICBjdHguZ2V0Q2xhc3MoKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IG1vZGVsTmFtZSA9XG4gICAgICB0aGlzLnJlZmxlY3Rvci5nZXQ8c3RyaW5nIHwgQ29uc3RydWN0b3I+KFxuICAgICAgICBBVVRIX01FVEFfS0VZLFxuICAgICAgICBjdHguZ2V0SGFuZGxlcigpXG4gICAgICApID8/XG4gICAgICB0aGlzLnJlZmxlY3Rvci5nZXQ8c3RyaW5nIHwgQ29uc3RydWN0b3I+KEFVVEhfTUVUQV9LRVksIGN0eC5nZXRDbGFzcygpKTtcblxuICAgIGNvbnN0IHJlcXVpcmVkUm9sZXMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZTxzdHJpbmdbXT4oXG4gICAgICBSRVFVSVJFRF9ST0xFU19LRVksXG4gICAgICBbY3R4LmdldEhhbmRsZXIoKSwgY3R4LmdldENsYXNzKCldXG4gICAgKTtcblxuICAgIGNvbnN0IHNraXBNb2RlbFJvbGVzID0gdGhpcy5yZWZsZWN0b3IuZ2V0QWxsQW5kT3ZlcnJpZGU8Ym9vbGVhbj4oXG4gICAgICBTS0lQX01PREVMX1JPTEVTX0tFWSxcbiAgICAgIFtjdHguZ2V0SGFuZGxlcigpLCBjdHguZ2V0Q2xhc3MoKV1cbiAgICApO1xuXG4gICAgY29uc3QgZWZmZWN0aXZlTW9kZWwgPSBza2lwTW9kZWxSb2xlcyA/IHVuZGVmaW5lZCA6IG1vZGVsTmFtZTtcblxuICAgIGxvZy52ZXJib3NlKGBJbnRlcmNlcHRlZCByZXF1ZXN0JHttb2RlbE5hbWUgPyBgIGZvciAke21vZGVsTmFtZX1gIDogXCJcIn1gKTtcblxuICAgIGlmIChpc1B1YmxpYykge1xuICAgICAgbG9nLmRlYnVnKGBQdWJsaWMgcm91dGUg4oCUIHNraXBwaW5nIGF1dGhgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXV0aEhhbmRsZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMuYXV0aEhhbmRsZXIuYXV0aG9yaXplKFxuICAgICAgICBjdHgsXG4gICAgICAgIGVmZmVjdGl2ZU1vZGVsIGFzIHN0cmluZyB8IENvbnN0cnVjdG9yLFxuICAgICAgICByZXF1aXJlZFJvbGVzLFxuICAgICAgICB0aGlzLnJlcXVlc3RDb250ZXh0XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZGVidWcoYE5vIGF1dGggaGFuZGxlciByZWdpc3RlcmVkYCk7XG4gICAgfVxuXG4gICAgLy8gVHJhbnNmb3JtZXJzIHJ1biBBRlRFUiBhdXRoIHNvIHRoZXkgY2FuIHJlYWQgYXV0aC1wb3B1bGF0ZWQgZmllbGRzXG4gICAgLy8gKGUuZy4gYHVzZXJgKSBmcm9tIHRoZSBjb250ZXh0IGFuZCBtYXAgdGhlbSB0byBhZGFwdGVyLXNwZWNpZmljIGtleXNcbiAgICAvLyAoZS5nLiBgVVVJRGAgZm9yIFJhbUFkYXB0ZXIncyBAY3JlYXRlZEJ5L0B1cGRhdGVkQnkgaGFuZGxlcnMpLlxuICAgIGF3YWl0IHRoaXMuYXBwbHlUcmFuc2Zvcm1lcnMoKTtcblxuICAgIGNvbnN0IHVzZXIgPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldE9yVW5kZWZpbmVkKFwidXNlclwiIGFzIGFueSk7XG4gICAgY29uc3Qgb3JnYW5pemF0aW9uID0gdGhpcy5yZXF1ZXN0Q29udGV4dC5nZXRPclVuZGVmaW5lZChcbiAgICAgIFwib3JnYW5pemF0aW9uXCIgYXMgYW55XG4gICAgKTtcbiAgICBpZiAodXNlciB8fCBvcmdhbml6YXRpb24pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRMb2cgPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldChcImxvZ2dlclwiIGFzIGFueSk7XG4gICAgICBjb25zdCBjaGlsZExvZyA9IGN1cnJlbnRMb2cuZm9yKHsgdXNlciwgb3JnYW5pemF0aW9uIH0pO1xuICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dC5hY2N1bXVsYXRlKHsgbG9nZ2VyOiBjaGlsZExvZyB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYXBwbHlUcmFuc2Zvcm1lcnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmxhdm91cnMgPSBBZGFwdGVyLmZsYXZvdXJzVG9UcmFuc2Zvcm0oKTtcbiAgICBpZiAoIWZsYXZvdXJzKSByZXR1cm47XG5cbiAgICBmb3IgKGNvbnN0IGZsYXZvdXIgb2YgZmxhdm91cnMpIHtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gQWRhcHRlci50cmFuc2Zvcm1lckZvcihcbiAgICAgICAgZmxhdm91clxuICAgICAgKSBhcyBSZXF1ZXN0VG9Db250ZXh0VHJhbnNmb3JtZXI8YW55PjtcbiAgICAgIGlmICghdHJhbnNmb3JtZXIpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSAodHJhbnNmb3JtZXIgYXMgYW55KS5mcm9tXG4gICAgICAgID8gdHJhbnNmb3JtZXJcbiAgICAgICAgOiBuZXcgKHRyYW5zZm9ybWVyIGFzIGFueSkoKTtcbiAgICAgIGNvbnN0IGZyb20gPSBhd2FpdCBpbnN0YW5jZS5mcm9tKHRoaXMucmVxdWVzdENvbnRleHQpO1xuICAgICAgaWYgKGZyb20pIHRoaXMucmVxdWVzdENvbnRleHQuYWNjdW11bGF0ZShmcm9tKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==