@annalib/anna-cognito-lib 2.3.20 → 2.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2022/lib/components/anna-login/anna-login.component.mjs +13 -12
  2. package/esm2022/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.mjs +3 -4
  3. package/esm2022/lib/components/forgot-password/forgot-password.component.mjs +21 -20
  4. package/esm2022/lib/components/password-matching/password-matching.component.mjs +18 -16
  5. package/esm2022/lib/components/powered-by-logo-template/powered-by-logo-template.component.mjs +3 -5
  6. package/esm2022/lib/components/set-new-password/set-new-password.component.mjs +10 -9
  7. package/esm2022/lib/components/sso-login/sso-login.component.mjs +4 -4
  8. package/esm2022/lib/components/surewaves-year-logo/surewaves-year-logo.component.mjs +2 -3
  9. package/esm2022/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.mjs +15 -15
  10. package/esm2022/lib/components/version-and-term-policy/version-and-term-policy.component.mjs +1 -2
  11. package/esm2022/lib/config/auth-service.token.mjs +1 -1
  12. package/esm2022/lib/constants/loginConstant.mjs +17 -13
  13. package/esm2022/lib/directives/spinner-button/spinner-button.directive.mjs +8 -11
  14. package/esm2022/lib/models/auth.model.mjs +2 -2
  15. package/esm2022/lib/services/acl.service.mjs +2 -2
  16. package/esm2022/lib/services/auth.service.mjs +41 -40
  17. package/esm2022/lib/services/config.service.mjs +1 -1
  18. package/esm2022/lib/services/sso-login.service.mjs +1 -1
  19. package/esm2022/public-api.mjs +13 -13
  20. package/fesm2022/annalib-anna-cognito-lib.mjs +182 -180
  21. package/fesm2022/annalib-anna-cognito-lib.mjs.map +1 -1
  22. package/lib/components/anna-login/anna-login.component.d.ts +4 -3
  23. package/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.d.ts +1 -3
  24. package/lib/components/forgot-password/forgot-password.component.d.ts +7 -7
  25. package/lib/components/password-matching/password-matching.component.d.ts +1 -2
  26. package/lib/components/powered-by-logo-template/powered-by-logo-template.component.d.ts +1 -4
  27. package/lib/components/set-new-password/set-new-password.component.d.ts +7 -7
  28. package/lib/components/sso-login/sso-login.component.d.ts +2 -1
  29. package/lib/components/surewaves-year-logo/surewaves-year-logo.component.d.ts +0 -1
  30. package/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.d.ts +6 -6
  31. package/lib/components/version-and-term-policy/version-and-term-policy.component.d.ts +1 -3
  32. package/lib/directives/spinner-button/spinner-button.directive.d.ts +4 -5
  33. package/lib/services/auth.service.d.ts +1 -2
  34. package/package.json +1 -1
  35. package/public-api.d.ts +8 -8
@@ -6,7 +6,7 @@ export class AnnaLibAclService {
6
6
  this.consumingProjectAclService = consumingProjectAclService;
7
7
  }
8
8
  isUserAuthorisedToAccessPage(url) {
9
- let privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];
9
+ const privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];
10
10
  return this.userGroupsInCognitoJWT.includes(privilegeName);
11
11
  }
12
12
  isUserAuthorisedToAccessElement(privilege) {
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
24
24
  type: Inject,
25
25
  args: [ACL_SERVICE_TOKEN]
26
26
  }] }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvc2VydmljZXMvYWNsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBSzdFLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBOEMsMEJBQXVDO1FBQXZDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBYTtJQUFHLENBQUM7SUFHekYsNEJBQTRCLENBQUMsR0FBVztRQUNwQyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxTQUFpQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0QsQ0FBQzsrR0FYUSxpQkFBaUIsa0JBQ04saUJBQWlCO21IQUQ1QixpQkFBaUIsY0FGZCxNQUFNOzs0RkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFFZ0IsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJQWNsU2VydmljZSwgQUNMX1NFUlZJQ0VfVE9LRU4gfSBmcm9tIFwiLi4vY29uZmlnL2FjbC1zZXJ2aWNlLnRva2VuXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFMaWJBY2xTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoQUNMX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0QWNsU2VydmljZTogSUFjbFNlcnZpY2UpIHt9XHJcblxyXG4gICAgdXNlckdyb3Vwc0luQ29nbml0b0pXVDogc3RyaW5nW107XHJcbiAgICBpc1VzZXJBdXRob3Jpc2VkVG9BY2Nlc3NQYWdlKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IHByaXZpbGVnZU5hbWUgPSB0aGlzLmNvbnN1bWluZ1Byb2plY3RBY2xTZXJ2aWNlLnVybFRvQ29nbml0b1ByaXZpbGVnZU1hcFt1cmxdO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QuaW5jbHVkZXMocHJpdmlsZWdlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNVc2VyQXV0aG9yaXNlZFRvQWNjZXNzRWxlbWVudChwcml2aWxlZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QuaW5jbHVkZXMocHJpdmlsZWdlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvc2VydmljZXMvYWNsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFlLE1BQU0sNkJBQTZCLENBQUM7O0FBSzdFLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBOEMsMEJBQXVDO1FBQXZDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBYTtJQUFHLENBQUM7SUFHekYsNEJBQTRCLENBQUMsR0FBVztRQUNwQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxTQUFpQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0QsQ0FBQzsrR0FYUSxpQkFBaUIsa0JBQ04saUJBQWlCO21IQUQ1QixpQkFBaUIsY0FGZCxNQUFNOzs0RkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFFZ0IsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgQUNMX1NFUlZJQ0VfVE9LRU4sIElBY2xTZXJ2aWNlIH0gZnJvbSBcIi4uL2NvbmZpZy9hY2wtc2VydmljZS50b2tlblwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hTGliQWNsU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEFDTF9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdEFjbFNlcnZpY2U6IElBY2xTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHVzZXJHcm91cHNJbkNvZ25pdG9KV1Q6IHN0cmluZ1tdO1xyXG4gICAgaXNVc2VyQXV0aG9yaXNlZFRvQWNjZXNzUGFnZSh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHByaXZpbGVnZU5hbWUgPSB0aGlzLmNvbnN1bWluZ1Byb2plY3RBY2xTZXJ2aWNlLnVybFRvQ29nbml0b1ByaXZpbGVnZU1hcFt1cmxdO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QuaW5jbHVkZXMocHJpdmlsZWdlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNVc2VyQXV0aG9yaXNlZFRvQWNjZXNzRWxlbWVudChwcml2aWxlZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QuaW5jbHVkZXMocHJpdmlsZWdlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,15 +1,16 @@
1
1
  // Angular import statements
2
2
  import { HttpClient } from "@angular/common/http";
3
3
  import { Inject, Injectable } from "@angular/core";
4
+ // eslint-disable-next-line import/no-extraneous-dependencies
4
5
  import { Router } from "@angular/router";
5
6
  // Third party import statements
6
7
  import { confirmResetPassword, confirmSignIn, fetchAuthSession, getCurrentUser, resetPassword, signIn, signOut, } from "aws-amplify/auth";
7
8
  import { ToastrService } from "ngx-toastr";
8
9
  // User defined import statements
9
10
  import { AUTH_SERVICE_TOKEN } from "../config/auth-service.token";
11
+ import { SSO_LOGIN_SERVICE_TOKEN } from "../config/sso-login-service.token";
10
12
  import { LoginConstant } from "../constants/loginConstant";
11
13
  import { AnnaLibAclService } from "./acl.service";
12
- import { SSO_LOGIN_SERVICE_TOKEN } from "../config/sso-login-service.token";
13
14
  import * as i0 from "@angular/core";
14
15
  import * as i1 from "@angular/router";
15
16
  import * as i2 from "./acl.service";
@@ -29,7 +30,6 @@ export class AnnaLibAuthService {
29
30
  throw new Error("You must provide a authService");
30
31
  }
31
32
  }
32
- ngOnInit() { }
33
33
  async isUserLoggedIn() {
34
34
  try {
35
35
  // await getCurrentUser();
@@ -68,26 +68,27 @@ export class AnnaLibAuthService {
68
68
  this.router.navigate([afterLogoutRedirectTo]);
69
69
  }
70
70
  computeTokenExpiration(idToken) {
71
- let currentTime = Math.floor(Date.now() / 1000);
72
- let tokenTime = idToken.payload.exp;
73
- let expTime = (tokenTime - currentTime) * 1000;
71
+ const currentTime = Math.floor(Date.now() / 1000);
72
+ const tokenTime = idToken.payload.exp;
73
+ const expTime = (tokenTime - currentTime) * 1000;
74
74
  return expTime;
75
75
  }
76
76
  async handleSignIn({ username, password }) {
77
77
  try {
78
- let session = await fetchAuthSession();
78
+ const session = await fetchAuthSession();
79
79
  if (session?.tokens) {
80
80
  await this.handleSignOut();
81
81
  }
82
- const { isSignedIn, nextStep } = await signIn({ username, password });
82
+ const { nextStep } = await signIn({ username, password });
83
83
  switch (nextStep?.signInStep) {
84
- case "DONE":
85
- let session = await fetchAuthSession();
86
- this.onLoginOrSetNewPassword(session);
84
+ case "DONE": {
85
+ const authSession = await fetchAuthSession();
86
+ this.onLoginOrSetNewPassword(authSession);
87
87
  await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(false);
88
- this.consumingProjectAuthService.getAllCognitoTokenAndGroups(session.tokens);
88
+ this.consumingProjectAuthService.getAllCognitoTokenAndGroups(authSession.tokens);
89
89
  this.refreshAccessToken();
90
90
  break;
91
+ }
91
92
  case "CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED":
92
93
  this.consumingProjectAuthService.isLoggingIn = false;
93
94
  this.consumingProjectAuthService.userName = username;
@@ -96,12 +97,12 @@ export class AnnaLibAuthService {
96
97
  break;
97
98
  case "RESET_PASSWORD":
98
99
  break;
100
+ // no default
99
101
  }
100
102
  }
101
103
  catch (error) {
102
- console.log(error);
103
104
  this.consumingProjectAuthService.isLoggingIn = false;
104
- if (error?.message == LoginConstant.tempPasswordExpiryError) {
105
+ if (error?.message === LoginConstant.tempPasswordExpiryError) {
105
106
  this.loginErrorMessage = LoginConstant.tempPasswordOnExpiryErrorMsg;
106
107
  this.consumingProjectAuthService.sendRegenerationEmail(username);
107
108
  }
@@ -116,7 +117,7 @@ export class AnnaLibAuthService {
116
117
  }
117
118
  }
118
119
  onLoginOrSetNewPassword(session) {
119
- let newExpTime = this.computeTokenExpiration(session.tokens.idToken);
120
+ const newExpTime = this.computeTokenExpiration(session.tokens.idToken);
120
121
  this.consumingProjectAuthService.accessToken = session.tokens.accessToken.toString();
121
122
  this.consumingProjectAuthService.IdToken = session.tokens.idToken.toString();
122
123
  localStorage.setItem("accessTokenExpiration", newExpTime.toString());
@@ -130,7 +131,7 @@ export class AnnaLibAuthService {
130
131
  async getAllCognitoTokenAndGroups(token) {
131
132
  this.setAccessAndIDTokens(token);
132
133
  if ("cognito:groups" in token.accessToken.payload) {
133
- let userGroupsInCognitoJWT = token.accessToken.payload["cognito:groups"];
134
+ const userGroupsInCognitoJWT = token.accessToken.payload["cognito:groups"];
134
135
  this.aclService.userGroupsInCognitoJWT = userGroupsInCognitoJWT;
135
136
  }
136
137
  else {
@@ -138,14 +139,14 @@ export class AnnaLibAuthService {
138
139
  }
139
140
  }
140
141
  refreshAccessToken() {
141
- let accessTokenExpiration = localStorage.getItem("accessTokenExpiration");
142
- let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration) : 0;
142
+ const accessTokenExpiration = localStorage.getItem("accessTokenExpiration");
143
+ let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration, 10) : 0;
143
144
  this.accessTokenTimerId = setInterval(() => {
144
145
  let counter = 1000;
145
- let delayFunction = setTimeout(async () => {
146
+ const delayFunction = setTimeout(async () => {
146
147
  try {
147
- let session = await fetchAuthSession();
148
- let token = session.tokens;
148
+ const session = await fetchAuthSession();
149
+ const token = session.tokens;
149
150
  if (token) {
150
151
  this.consumingProjectAuthService.getAllCognitoTokenAndGroups(token);
151
152
  let newExpTime = this.computeTokenExpiration(this.consumingProjectAuthService.IdToken);
@@ -175,52 +176,52 @@ export class AnnaLibAuthService {
175
176
  }
176
177
  async changePassword(newPassword) {
177
178
  try {
178
- let inputParam = {
179
+ const inputParam = {
179
180
  challengeResponse: newPassword,
180
181
  };
181
182
  const data = await confirmSignIn(inputParam);
182
183
  const { username } = await getCurrentUser();
183
- console.log(data);
184
- let session = await fetchAuthSession();
184
+ const session = await fetchAuthSession();
185
185
  this.onLoginOrSetNewPassword(session);
186
186
  this.consumingProjectAuthService.onPasswordUpdate(username);
187
187
  this.router.navigate([LoginConstant.loginPageUrl]);
188
188
  this.consumingProjectAuthService.newPasswordSetThenUpdateToBackend(username);
189
189
  }
190
190
  catch (err) {
191
- console.log(err);
192
191
  this.setNewPasswordErrorMessage = LoginConstant.sessionExpired;
193
192
  this.setNewPasswordButtonMessage = LoginConstant.loginAgain;
194
193
  }
195
194
  }
196
195
  async onForgotPasswordGenerateOTP(email) {
197
- let username = email;
196
+ const username = email;
198
197
  this.consumingProjectAuthService.userName = email;
199
198
  try {
200
- let result = await resetPassword({ username });
199
+ const result = await resetPassword({ username });
201
200
  this.verifyAndSetNewPasswordMessage =
202
201
  LoginConstant.verifyAndSetNewPasswordMessage +
203
- result?.nextStep?.codeDeliveryDetails?.destination +
202
+ (result?.nextStep?.codeDeliveryDetails?.destination ?? "") +
204
203
  LoginConstant.pleaseEnterItBelow;
205
204
  this.router.navigate([LoginConstant.verifyAndSetNewPasswordUrl]);
206
205
  }
207
- catch (err) { }
206
+ catch (err) {
207
+ // do nothing
208
+ }
208
209
  }
209
210
  async verifyCode(confirmationCode, newPassword) {
210
211
  try {
211
212
  confirmResetPassword({
212
213
  username: this.consumingProjectAuthService.userName,
213
- newPassword: newPassword,
214
- confirmationCode: confirmationCode,
214
+ newPassword,
215
+ confirmationCode,
215
216
  }).then((response) => {
216
217
  this.expiryAllExistingCurrentSession(this.consumingProjectAuthService.userName, newPassword);
217
218
  }, (err) => {
218
- this.noOfAttempts = this.noOfAttempts + 1;
219
+ this.noOfAttempts += 1;
219
220
  this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(err, this.noOfAttempts);
220
221
  });
221
222
  }
222
223
  catch (err) {
223
- this.noOfAttempts = this.noOfAttempts + 1;
224
+ this.noOfAttempts += 1;
224
225
  this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(err, this.noOfAttempts);
225
226
  }
226
227
  finally {
@@ -229,8 +230,7 @@ export class AnnaLibAuthService {
229
230
  }
230
231
  forgotPasswordError(err, noOfAttempts) {
231
232
  let errorMessage = "";
232
- console.log(err);
233
- let errorThrown = JSON.stringify(err);
233
+ const errorThrown = JSON.stringify(err);
234
234
  if (errorThrown.includes("LimitExceededException")) {
235
235
  this.sessionLocked = true;
236
236
  errorMessage = LoginConstant.attemptLimitExceeded;
@@ -240,12 +240,12 @@ export class AnnaLibAuthService {
240
240
  this.verifyAndSetNewPasswordButton = LoginConstant.regenerateOtp;
241
241
  }
242
242
  else {
243
- errorMessage = LoginConstant.attempt + " " + noOfAttempts + LoginConstant.attemptMessage;
243
+ errorMessage = `${LoginConstant.attempt} ${noOfAttempts}${LoginConstant.attemptMessage}`;
244
244
  }
245
245
  return errorMessage;
246
246
  }
247
247
  async signInWithSSO() {
248
- let session = await fetchAuthSession();
248
+ const session = await fetchAuthSession();
249
249
  if (session?.tokens) {
250
250
  await this.handleSignOut().then((response) => {
251
251
  this.consumingProjectAuthService.signInWithSSO();
@@ -261,7 +261,7 @@ export class AnnaLibAuthService {
261
261
  this.sessionTimeout();
262
262
  }
263
263
  catch (error) {
264
- console.log("error signing out: ", error);
264
+ // do nothing
265
265
  }
266
266
  }
267
267
  expiryAllExistingCurrentSession(username, newPassword) {
@@ -277,10 +277,11 @@ export class AnnaLibAuthService {
277
277
  this.consumingProjectAuthService.onPasswordUpdate(this.consumingProjectAuthService.userName);
278
278
  this.onCallGlobalSignout();
279
279
  break;
280
+ // no default
280
281
  }
281
282
  }
282
283
  catch (error) {
283
- this.noOfAttempts = this.noOfAttempts + 1;
284
+ this.noOfAttempts += 1;
284
285
  this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(error, this.noOfAttempts);
285
286
  }
286
287
  }
@@ -291,7 +292,7 @@ export class AnnaLibAuthService {
291
292
  this.router.navigate([LoginConstant.loginPageUrl]);
292
293
  }
293
294
  catch (error) {
294
- console.log("error signing out: ", error);
295
+ // do nothing
295
296
  }
296
297
  }
297
298
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaLibAuthService, deps: [{ token: i1.Router }, { token: i2.AnnaLibAclService }, { token: i3.HttpClient }, { token: i4.ToastrService }, { token: SSO_LOGIN_SERVICE_TOKEN }, { token: AUTH_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -309,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
309
310
  type: Inject,
310
311
  args: [AUTH_SERVICE_TOKEN]
311
312
  }] }]; } });
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUdILG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxFQUNOLE9BQU8sR0FDVixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7O0FBSzlGLE1BQU0sT0FBTyxrQkFBa0I7SUFZM0IsWUFDWSxNQUFjLEVBQ2YsVUFBNkIsRUFDN0IsVUFBc0IsRUFDckIsTUFBcUIsRUFDVywrQkFBaUQsRUFDdEQsMkJBQXlDO1FBTHBFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDVyxvQ0FBK0IsR0FBL0IsK0JBQStC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LE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7XHJcbiAgICBBdXRoVG9rZW5zLFxyXG4gICAgU2lnbkluSW5wdXQsXHJcbiAgICBjb25maXJtUmVzZXRQYXNzd29yZCxcclxuICAgIGNvbmZpcm1TaWduSW4sXHJcbiAgICBmZXRjaEF1dGhTZXNzaW9uLFxyXG4gICAgZ2V0Q3VycmVudFVzZXIsXHJcbiAgICByZXNldFBhc3N3b3JkLFxyXG4gICAgc2lnbkluLFxyXG4gICAgc2lnbk91dCxcclxufSBmcm9tIFwiYXdzLWFtcGxpZnkvYXV0aFwiO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSBcIm5neC10b2FzdHJcIjtcclxuXHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBBVVRIX1NFUlZJQ0VfVE9LRU4sIElBdXRoU2VydmljZSB9IGZyb20gXCIuLi9jb25maWcvYXV0aC1zZXJ2aWNlLnRva2VuXCI7XHJcbmltcG9ydCB7IExvZ2luQ29uc3RhbnQgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2xvZ2luQ29uc3RhbnRcIjtcclxuaW1wb3J0IHsgQW5uYUxpYkFjbFNlcnZpY2UgfSBmcm9tIFwiLi9hY2wuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gXCIuLi9jb25maWcvc3NvLWxvZ2luLXNlcnZpY2UudG9rZW5cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUxpYkF1dGhTZXJ2aWNlIHtcclxuICAgIGxvZ2luRXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgc2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHNldE5ld1Bhc3N3b3JkQnV0dG9uTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRCdXR0b246IHN0cmluZztcclxuICAgIG5vT2ZBdHRlbXB0cyA9IDA7XHJcbiAgICBzZXNzaW9uTG9ja2VkID0gZmFsc2U7XHJcbiAgICBhY2Nlc3NUb2tlblRpbWVySWQ6IGFueTtcclxuICAgIGZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlcjogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHB1YmxpYyBhY2xTZXJ2aWNlOiBBbm5hTGliQWNsU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KFNTT19MT0dJTl9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZTogSVNTT0xvZ2luU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KEFVVEhfU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZTogSUF1dGhTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKCFjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IG11c3QgcHJvdmlkZSBhIGF1dGhTZXJ2aWNlXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gICAgYXN5bmMgaXNVc2VyTG9nZ2VkSW4oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gYXdhaXQgZ2V0Q3VycmVudFVzZXIoKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNlc3Npb246IGFueSA9IGF3YWl0IGZldGNoQXV0aFNlc3Npb24oKTtcclxuICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uPy50b2tlbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5JZFRva2VuID0gc2Vzc2lvbj8udG9rZW5zLmlkVG9rZW4udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHMoc2Vzc2lvbi50b2tlbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWRFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTaWduT3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlc3Npb25UaW1lb3V0KCkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgIGxldCBhZnRlckxvZ291dFJlZGlyZWN0VG86IHN0cmluZztcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZS5pc1Nzb0ludGVncmF0ZWQgJiZcclxuICAgICAgICAgICAgIXRoaXMuY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZS5sb2dnZWRJblZpYVNzb1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBhZnRlckxvZ291dFJlZGlyZWN0VG8gPSBMb2dpbkNvbnN0YW50LmNvUGlsb3Rsb2dpblBhZ2VVcmw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWZ0ZXJMb2dvdXRSZWRpcmVjdFRvID0gTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFthZnRlckxvZ291dFJlZGlyZWN0VG9dKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wdXRlVG9rZW5FeHBpcmF0aW9uKGlkVG9rZW46IGFueSkge1xyXG4gICAgICAgIGxldCBjdXJyZW50VGltZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gICAgICAgIGxldCB0b2tlblRpbWUgPSBpZFRva2VuLnBheWxvYWQuZXhwO1xyXG4gICAgICAgIGxldCBleHBUaW1lID0gKHRva2VuVGltZSAtIGN1cnJlbnRUaW1lKSAqIDEwMDA7XHJcbiAgICAgICAgcmV0dXJuIGV4cFRpbWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaGFuZGxlU2lnbkluKHsgdXNlcm5hbWUsIHBhc3N3b3JkIH06IFNpZ25JbklucHV0KSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHNlc3Npb24gPSBhd2FpdCBmZXRjaEF1dGhTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgIGlmIChzZXNzaW9uPy50b2tlbnMpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlU2lnbk91dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHsgaXNTaWduZWRJbiwgbmV4dFN0ZXAgfSA9IGF3YWl0IHNpZ25Jbih7IHVzZXJuYW1lLCBwYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgc3dpdGNoIChuZXh0U3RlcD8uc2lnbkluU3RlcCkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkRPTkVcIjpcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc2Vzc2lvbiA9IGF3YWl0IGZldGNoQXV0aFNlc3Npb24oKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTG9naW5PclNldE5ld1Bhc3N3b3JkKHNlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLm9uU3VjY2Vzc2Z1bEF1dGhlbnRpY2F0aW5nVXNlcihmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHNlc3Npb24udG9rZW5zKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgXCJDT05GSVJNX1NJR05fSU5fV0lUSF9ORVdfUEFTU1dPUkRfUkVRVUlSRURcIjpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lID0gdXNlcm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQuc2V0TmV3UGFzc3dvcmRVcmxdKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiUkVTRVRfUEFTU1dPUkRcIjpcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT0gTG9naW5Db25zdGFudC50ZW1wUGFzc3dvcmRFeHBpcnlFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQudGVtcFBhc3N3b3JkT25FeHBpcnlFcnJvck1zZztcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNlbmRSZWdlbmVyYXRpb25FbWFpbCh1c2VybmFtZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT09IFwiUGFzc3dvcmQgYXR0ZW1wdHMgZXhjZWVkZWRcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuYXR0ZW1wdExpbWl0RXhjZWVkZWQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gdGhpcy5jb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlLmlzU3NvSW50ZWdyYXRlZFxyXG4gICAgICAgICAgICAgICAgICAgID8gTG9naW5Db25zdGFudC51c2VyQ29kZVBhc3N3b3JkSW5jb3JyZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgOiBMb2dpbkNvbnN0YW50LnVzZXJOYW1lUGFzc3dvcmRJbmNvcnJlY3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Mb2dpbk9yU2V0TmV3UGFzc3dvcmQoc2Vzc2lvbjogYW55KSB7XHJcbiAgICAgICAgbGV0IG5ld0V4cFRpbWUgPSB0aGlzLmNvbXB1dGVUb2tlbkV4cGlyYXRpb24oc2Vzc2lvbi50b2tlbnMuaWRUb2tlbik7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuYWNjZXNzVG9rZW4gPSBzZXNzaW9uLnRva2Vucy5hY2Nlc3NUb2tlbi50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLklkVG9rZW4gPSBzZXNzaW9uLnRva2Vucy5pZFRva2VuLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEFjY2Vzc0FuZElEVG9rZW5zKHRva2VuOiBBdXRoVG9rZW5zKSB7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuYWNjZXNzVG9rZW4gPSB0b2tlbj8uYWNjZXNzVG9rZW4/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuSWRUb2tlbiA9IHRva2VuPy5pZFRva2VuO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3Vwcyh0b2tlbjogQXV0aFRva2Vucykge1xyXG4gICAgICAgIHRoaXMuc2V0QWNjZXNzQW5kSURUb2tlbnModG9rZW4pO1xyXG4gICAgICAgIGlmIChcImNvZ25pdG86Z3JvdXBzXCIgaW4gdG9rZW4uYWNjZXNzVG9rZW4ucGF5bG9hZCkge1xyXG4gICAgICAgICAgICBsZXQgdXNlckdyb3Vwc0luQ29nbml0b0pXVDogYW55ID0gdG9rZW4uYWNjZXNzVG9rZW4ucGF5bG9hZFtcImNvZ25pdG86Z3JvdXBzXCJdO1xyXG4gICAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UudXNlckdyb3Vwc0luQ29nbml0b0pXVCA9IHVzZXJHcm91cHNJbkNvZ25pdG9KV1Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hY2xTZXJ2aWNlLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaEFjY2Vzc1Rva2VuKCkge1xyXG4gICAgICAgIGxldCBhY2Nlc3NUb2tlbkV4cGlyYXRpb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuRXhwaXJhdGlvblwiKTtcclxuICAgICAgICBsZXQgZXhwVGltZSA9IGFjY2Vzc1Rva2VuRXhwaXJhdGlvbiA/IHBhcnNlSW50KGFjY2Vzc1Rva2VuRXhwaXJhdGlvbikgOiAwO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY291bnRlciA9IDEwMDA7XHJcbiAgICAgICAgICAgIGxldCBkZWxheUZ1bmN0aW9uID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0b2tlbiA9IHNlc3Npb24udG9rZW5zO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHModG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3RXhwVGltZSA9IHRoaXMuY29tcHV0ZVRva2VuRXhwaXJhdGlvbih0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5JZFRva2VuKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdFeHBUaW1lIDw9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0V4cFRpbWUgPSAxMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVsYXlGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoZGVsYXlGdW5jdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwVGltZSA9IG5ld0V4cFRpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYWNjZXNzVG9rZW5FeHBpcmF0aW9uXCIsIG5ld0V4cFRpbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWRFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2lnbk91dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZEVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNpZ25PdXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgY291bnRlcik7XHJcbiAgICAgICAgfSwgZXhwVGltZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2hhbmdlUGFzc3dvcmQobmV3UGFzc3dvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxldCBpbnB1dFBhcmFtID0ge1xyXG4gICAgICAgICAgICAgICAgY2hhbGxlbmdlUmVzcG9uc2U6IG5ld1Bhc3N3b3JkLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgY29uZmlybVNpZ25JbihpbnB1dFBhcmFtKTtcclxuICAgICAgICAgICAgY29uc3QgeyB1c2VybmFtZSB9ID0gYXdhaXQgZ2V0Q3VycmVudFVzZXIoKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgICAgIGxldCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICB0aGlzLm9uTG9naW5PclNldE5ld1Bhc3N3b3JkKHNlc3Npb24pO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5vblBhc3N3b3JkVXBkYXRlKHVzZXJuYW1lKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLm5ld1Bhc3N3b3JkU2V0VGhlblVwZGF0ZVRvQmFja2VuZCh1c2VybmFtZSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkO1xyXG4gICAgICAgICAgICB0aGlzLnNldE5ld1Bhc3N3b3JkQnV0dG9uTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQubG9naW5BZ2FpbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3Jnb3RQYXNzd29yZEdlbmVyYXRlT1RQKGVtYWlsOiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdXNlcm5hbWUgPSBlbWFpbDtcclxuICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS51c2VyTmFtZSA9IGVtYWlsO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxldCByZXN1bHQ6IGFueSA9IGF3YWl0IHJlc2V0UGFzc3dvcmQoeyB1c2VybmFtZSB9KTtcclxuICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgPVxyXG4gICAgICAgICAgICAgICAgTG9naW5Db25zdGFudC52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgK1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0Py5uZXh0U3RlcD8uY29kZURlbGl2ZXJ5RGV0YWlscz8uZGVzdGluYXRpb24gK1xyXG4gICAgICAgICAgICAgICAgTG9naW5Db25zdGFudC5wbGVhc2VFbnRlckl0QmVsb3c7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkVXJsXSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7fVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHZlcmlmeUNvZGUoY29uZmlybWF0aW9uQ29kZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uZmlybVJlc2V0UGFzc3dvcmQoe1xyXG4gICAgICAgICAgICAgICAgdXNlcm5hbWU6IHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICAgICAgbmV3UGFzc3dvcmQ6IG5ld1Bhc3N3b3JkLFxyXG4gICAgICAgICAgICAgICAgY29uZmlybWF0aW9uQ29kZTogY29uZmlybWF0aW9uQ29kZSxcclxuICAgICAgICAgICAgfSkudGhlbihcclxuICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwaXJ5QWxsRXhpc3RpbmdDdXJyZW50U2Vzc2lvbih0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS51c2VyTmFtZSwgbmV3UGFzc3dvcmQpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vT2ZBdHRlbXB0cyA9IHRoaXMubm9PZkF0dGVtcHRzICsgMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlID0gdGhpcy5mb3Jnb3RQYXNzd29yZEVycm9yKGVyciwgdGhpcy5ub09mQXR0ZW1wdHMpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgdGhpcy5ub09mQXR0ZW1wdHMgPSB0aGlzLm5vT2ZBdHRlbXB0cyArIDE7XHJcbiAgICAgICAgICAgIHRoaXMudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2UgPSB0aGlzLmZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyLCB0aGlzLm5vT2ZBdHRlbXB0cyk7XHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgdGhpcy5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yZ290UGFzc3dvcmRFcnJvcihlcnI6IGFueSwgbm9PZkF0dGVtcHRzOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gXCJcIjtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIGxldCBlcnJvclRocm93biA9IEpTT04uc3RyaW5naWZ5KGVycik7XHJcbiAgICAgICAgaWYgKGVycm9yVGhyb3duLmluY2x1ZGVzKFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25Mb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LmF0dGVtcHRMaW1pdEV4Y2VlZGVkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JUaHJvd24uaW5jbHVkZXMoXCJFeHBpcmVkQ29kZUV4Y2VwdGlvblwiKSkge1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkO1xyXG4gICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uID0gTG9naW5Db25zdGFudC5yZWdlbmVyYXRlT3RwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuYXR0ZW1wdCArIFwiIFwiICsgbm9PZkF0dGVtcHRzICsgTG9naW5Db25zdGFudC5hdHRlbXB0TWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzaWduSW5XaXRoU1NPKCkge1xyXG4gICAgICAgIGxldCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgIGlmIChzZXNzaW9uPy50b2tlbnMpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVTaWduT3V0KCkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNpZ25JbldpdGhTU08oKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2Uuc2lnbkluV2l0aFNTTygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBoYW5kbGVTaWduT3V0KCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHNpZ25PdXQoeyBnbG9iYWw6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25UaW1lb3V0KCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvciBzaWduaW5nIG91dDogXCIsIGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwaXJ5QWxsRXhpc3RpbmdDdXJyZW50U2Vzc2lvbih1c2VybmFtZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5vbkxvZ2luSW5Db2dudGlvVG9HZXRBY2Nlc3NUb2tlbih1c2VybmFtZSwgbmV3UGFzc3dvcmQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uTG9naW5JbkNvZ250aW9Ub0dldEFjY2Vzc1Rva2VuKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB7IG5leHRTdGVwIH0gPSBhd2FpdCBzaWduSW4oeyB1c2VybmFtZSwgcGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgIHN3aXRjaCAobmV4dFN0ZXA/LnNpZ25JblN0ZXApIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJET05FXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBY2Nlc3NBbmRJRFRva2Vucyhhd2FpdCAoYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpKS50b2tlbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLm9uUGFzc3dvcmRVcGRhdGUodGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UudXNlck5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25DYWxsR2xvYmFsU2lnbm91dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICB0aGlzLm5vT2ZBdHRlbXB0cyA9IHRoaXMubm9PZkF0dGVtcHRzICsgMTtcclxuICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IHRoaXMuZm9yZ290UGFzc3dvcmRFcnJvcihlcnJvciwgdGhpcy5ub09mQXR0ZW1wdHMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkNhbGxHbG9iYWxTaWdub3V0KCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHNpZ25PdXQoeyBnbG9iYWw6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9yZ290UGFzc3dvcmRBbmRHbG9iYWxTaWdub3V0TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybF0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3Igc2lnbmluZyBvdXQ6IFwiLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFFSCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsYUFBYSxFQUNiLE1BQU0sRUFFTixPQUFPLEdBQ1YsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLGlDQUFpQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUtsRCxNQUFNLE9BQU8sa0JBQWtCO0lBWTNCLFlBQ1ksTUFBYyxFQUNmLFVBQTZCLEVBQzdCLFVBQXNCLEVBQ3JCLE1BQXFCLEVBQ1csK0JBQWlELEVBQ3RELDJCQUF5QztRQUxwRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ1csb0NBQStCLEdBQS9CLCtCQUErQixDQUFrQjtRQUN0RCxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQWM7UUFYaEYsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFZbEIsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNyRDtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNoQixJQUFJO1lBQ0EsMEJBQTBCO1lBQzFCLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDekMsTUFBTSxPQUFPLEdBQVEsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUU7b0JBQ2pCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLEdBQUcsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzlFLElBQUksQ0FBQywyQkFBMkIsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzdFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDakI7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNsQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDM0IsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1YsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLGFBQWEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2QyxJQUFJLHFCQUE2QixDQUFDO1FBQ2xDLElBQ0ksSUFBSSxDQUFDLCtCQUErQixDQUFDLGVBQWU7WUFDcEQsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsY0FBYyxFQUN0RDtZQUNFLHFCQUFxQixHQUFHLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQztTQUM3RDthQUFNO1lBQ0gscUJBQXFCLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztTQUN0RDtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFZO1FBQy9CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWU7UUFDbEQsSUFBSTtZQUNBLE1BQU0sT0FBTyxHQUFHLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQ2pCLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQzlCO1lBQ0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUQsUUFBUSxRQUFRLEVBQUUsVUFBVSxFQUFFO2dCQUMxQixLQUFLLE1BQU0sQ0FBQyxDQUFDO29CQUNULE1BQU0sV0FBVyxHQUFHLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMxQyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDN0UsSUFBSSxDQUFDLDJCQUEyQixDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQzFCLE1BQU07aUJBQ1Q7Z0JBQ0QsS0FBSyw0Q0FBNEM7b0JBQzdDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO29CQUNyRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO29CQUN2QyxNQUFNO2dCQUVWLEtBQUssZ0JBQWdCO29CQUNqQixNQUFNO2dCQUVWLGFBQWE7YUFDaEI7U0FDSjtRQUFDLE9BQU8sS0FBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3JELElBQUksS0FBSyxFQUFFLE9BQU8sS0FBSyxhQUFhLENBQUMsdUJBQXVCLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxhQUFhLENBQUMsNEJBQTRCLENBQUM7Z0JBQ3BFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNwRTtpQkFBTSxJQUFJLEtBQUssRUFBRSxPQUFPLEtBQUssNEJBQTRCLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxhQUFhLENBQUMsb0JBQW9CLENBQUM7YUFDL0Q7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxlQUFlO29CQUN6RSxDQUFDLENBQUMsYUFBYSxDQUFDLHlCQUF5QjtvQkFDekMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQzthQUNqRDtTQUNKO0lBQ0wsQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQVk7UUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRixJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdFLFlBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBaUI7UUFDbEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzlFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUM5RCxDQUFDO0lBRUQsS0FBSyxDQUFDLDJCQUEyQixDQUFDLEtBQWlCO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQy9DLE1BQU0sc0JBQXNCLEdBQVEsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO1NBQ25FO2FBQU07WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztTQUMvQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxNQUFNLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUM1RSxJQUFJLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDeEMsSUFBSTtvQkFDQSxNQUFNLE9BQU8sR0FBRyxNQUFNLGdCQUFnQixFQUFFLENBQUM7b0JBQ3pDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQzdCLElBQUksS0FBSyxFQUFFO3dCQUNQLElBQUksQ0FBQywyQkFBMkIsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDcEUsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFFdkYsSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFOzRCQUNqQixVQUFVLEdBQUcsSUFBSSxDQUFDOzRCQUNsQixPQUFPLEdBQUcsQ0FBQyxDQUFDOzRCQUNaLElBQUksYUFBYSxFQUFFO2dDQUNmLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQzs2QkFDaEM7eUJBQ0o7d0JBQ0QsT0FBTyxHQUFHLFVBQVUsQ0FBQzt3QkFDckIsWUFBWSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzt3QkFDckUsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO3dCQUN2QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztxQkFDN0I7eUJBQU07d0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7d0JBQ3JELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztxQkFDeEI7aUJBQ0o7Z0JBQUMsT0FBTyxLQUFLLEVBQUU7b0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDeEI7WUFDTCxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQW1CO1FBQ3BDLElBQUk7WUFDQSxNQUFNLFVBQVUsR0FBRztnQkFDZixpQkFBaUIsRUFBRSxXQUFXO2FBQ2pDLENBQUM7WUFDRixNQUFNLElBQUksR0FBRyxNQUFNLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxjQUFjLEVBQUUsQ0FBQztZQUM1QyxNQUFNLE9BQU8sR0FBRyxNQUFNLGdCQUFnQixFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQywyQkFBMkIsQ0FBQyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoRjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLDBCQUEwQixHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUM7WUFDL0QsSUFBSSxDQUFDLDJCQUEyQixHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7U0FDL0Q7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLDJCQUEyQixDQUFDLEtBQWE7UUFDM0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2xELElBQUk7WUFDQSxNQUFNLE1BQU0sR0FBUSxNQUFNLGFBQWEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLDhCQUE4QjtnQkFDL0IsYUFBYSxDQUFDLDhCQUE4QjtvQkFDNUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7b0JBQzFELGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7U0FDcEU7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNWLGFBQWE7U0FDaEI7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxnQkFBd0IsRUFBRSxXQUFtQjtRQUMxRCxJQUFJO1lBQ0Esb0JBQW9CLENBQUM7Z0JBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUTtnQkFDbkQsV0FBVztnQkFDWCxnQkFBZ0I7YUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FDSCxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNULElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNKLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsbUNBQW1DLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEcsQ0FBQyxDQUNKLENBQUM7U0FDTDtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLG1DQUFtQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQy9GO2dCQUFTO1lBQ04sSUFBSSxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQztTQUNyRDtJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsWUFBb0I7UUFDOUMsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsWUFBWSxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQztTQUNyRDthQUFNLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQ3JELFlBQVksR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDO1lBQzVDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDO1NBQ3BFO2FBQU07WUFDSCxZQUFZLEdBQUcsR0FBRyxhQUFhLENBQUMsT0FBTyxJQUFJLFlBQVksR0FBRyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDNUY7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDZixNQUFNLE9BQU8sR0FBRyxNQUFNLGdCQUFnQixFQUFFLENBQUM7UUFDekMsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsMkJBQTJCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2YsSUFBSTtZQUNBLE1BQU0sT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixhQUFhO1NBQ2hCO0lBQ0wsQ0FBQztJQUVELCtCQUErQixDQUFDLFFBQWdCLEVBQUUsV0FBbUI7UUFDakUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsZ0NBQWdDLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUNyRSxJQUFJO1lBQ0EsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUQsUUFBUSxRQUFRLEVBQUUsVUFBVSxFQUFFO2dCQUMxQixLQUFLLE1BQU07b0JBQ1AsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDbkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDN0YsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7b0JBQzNCLE1BQU07Z0JBQ1YsYUFBYTthQUNoQjtTQUNKO1FBQUMsT0FBTyxLQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLG1DQUFtQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2pHO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUI7UUFDckIsSUFBSTtZQUNBLE1BQU0sT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQztZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQ3REO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixhQUFhO1NBQ2hCO0lBQ0wsQ0FBQzsrR0F0U1Esa0JBQWtCLGdJQWlCZix1QkFBdUIsYUFDdkIsa0JBQWtCO21IQWxCckIsa0JBQWtCLGNBRmYsTUFBTTs7NEZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBa0JRLE1BQU07MkJBQUMsdUJBQXVCOzswQkFDOUIsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7XHJcbiAgICBBdXRoVG9rZW5zLFxyXG4gICAgY29uZmlybVJlc2V0UGFzc3dvcmQsXHJcbiAgICBjb25maXJtU2lnbkluLFxyXG4gICAgZmV0Y2hBdXRoU2Vzc2lvbixcclxuICAgIGdldEN1cnJlbnRVc2VyLFxyXG4gICAgcmVzZXRQYXNzd29yZCxcclxuICAgIHNpZ25JbixcclxuICAgIFNpZ25JbklucHV0LFxyXG4gICAgc2lnbk91dCxcclxufSBmcm9tIFwiYXdzLWFtcGxpZnkvYXV0aFwiO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSBcIm5neC10b2FzdHJcIjtcclxuXHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBBVVRIX1NFUlZJQ0VfVE9LRU4sIElBdXRoU2VydmljZSB9IGZyb20gXCIuLi9jb25maWcvYXV0aC1zZXJ2aWNlLnRva2VuXCI7XHJcbmltcG9ydCB7IElTU09Mb2dpblNlcnZpY2UsIFNTT19MT0dJTl9TRVJWSUNFX1RPS0VOIH0gZnJvbSBcIi4uL2NvbmZpZy9zc28tbG9naW4tc2VydmljZS50b2tlblwiO1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcbmltcG9ydCB7IEFubmFMaWJBY2xTZXJ2aWNlIH0gZnJvbSBcIi4vYWNsLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUxpYkF1dGhTZXJ2aWNlIHtcclxuICAgIGxvZ2luRXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgc2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHNldE5ld1Bhc3N3b3JkQnV0dG9uTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRCdXR0b246IHN0cmluZztcclxuICAgIG5vT2ZBdHRlbXB0cyA9IDA7XHJcbiAgICBzZXNzaW9uTG9ja2VkID0gZmFsc2U7XHJcbiAgICBhY2Nlc3NUb2tlblRpbWVySWQ6IGFueTtcclxuICAgIGZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlcjogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHB1YmxpYyBhY2xTZXJ2aWNlOiBBbm5hTGliQWNsU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KFNTT19MT0dJTl9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZTogSVNTT0xvZ2luU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KEFVVEhfU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZTogSUF1dGhTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKCFjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IG11c3QgcHJvdmlkZSBhIGF1dGhTZXJ2aWNlXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpc1VzZXJMb2dnZWRJbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBhd2FpdCBnZXRDdXJyZW50VXNlcigpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbjogYW55ID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlc3Npb24/LnRva2Vucykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLklkVG9rZW4gPSBzZXNzaW9uPy50b2tlbnMuaWRUb2tlbi50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhzZXNzaW9uLnRva2Vucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZEVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNpZ25PdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2Vzc2lvblRpbWVvdXQoKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgbGV0IGFmdGVyTG9nb3V0UmVkaXJlY3RUbzogc3RyaW5nO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlLmlzU3NvSW50ZWdyYXRlZCAmJlxyXG4gICAgICAgICAgICAhdGhpcy5jb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlLmxvZ2dlZEluVmlhU3NvXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGFmdGVyTG9nb3V0UmVkaXJlY3RUbyA9IExvZ2luQ29uc3RhbnQuY29QaWxvdGxvZ2luUGFnZVVybDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBhZnRlckxvZ291dFJlZGlyZWN0VG8gPSBMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2FmdGVyTG9nb3V0UmVkaXJlY3RUb10pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXB1dGVUb2tlbkV4cGlyYXRpb24oaWRUb2tlbjogYW55KSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICAgICAgICBjb25zdCB0b2tlblRpbWUgPSBpZFRva2VuLnBheWxvYWQuZXhwO1xyXG4gICAgICAgIGNvbnN0IGV4cFRpbWUgPSAodG9rZW5UaW1lIC0gY3VycmVudFRpbWUpICogMTAwMDtcclxuICAgICAgICByZXR1cm4gZXhwVGltZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBoYW5kbGVTaWduSW4oeyB1c2VybmFtZSwgcGFzc3dvcmQgfTogU2lnbkluSW5wdXQpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICBpZiAoc2Vzc2lvbj8udG9rZW5zKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVNpZ25PdXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB7IG5leHRTdGVwIH0gPSBhd2FpdCBzaWduSW4oeyB1c2VybmFtZSwgcGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgIHN3aXRjaCAobmV4dFN0ZXA/LnNpZ25JblN0ZXApIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJET05FXCI6IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRoU2Vzc2lvbiA9IGF3YWl0IGZldGNoQXV0aFNlc3Npb24oKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTG9naW5PclNldE5ld1Bhc3N3b3JkKGF1dGhTZXNzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5vblN1Y2Nlc3NmdWxBdXRoZW50aWNhdGluZ1VzZXIoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhhdXRoU2Vzc2lvbi50b2tlbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiQ09ORklSTV9TSUdOX0lOX1dJVEhfTkVXX1BBU1NXT1JEX1JFUVVJUkVEXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuaXNMb2dnaW5nSW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS51c2VyTmFtZSA9IHVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LnNldE5ld1Bhc3N3b3JkVXJsXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlJFU0VUX1BBU1NXT1JEXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gbm8gZGVmYXVsdFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT09IExvZ2luQ29uc3RhbnQudGVtcFBhc3N3b3JkRXhwaXJ5RXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnRlbXBQYXNzd29yZE9uRXhwaXJ5RXJyb3JNc2c7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5zZW5kUmVnZW5lcmF0aW9uRW1haWwodXNlcm5hbWUpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVycm9yPy5tZXNzYWdlID09PSBcIlBhc3N3b3JkIGF0dGVtcHRzIGV4Y2VlZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LmF0dGVtcHRMaW1pdEV4Y2VlZGVkO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IHRoaXMuY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZS5pc1Nzb0ludGVncmF0ZWRcclxuICAgICAgICAgICAgICAgICAgICA/IExvZ2luQ29uc3RhbnQudXNlckNvZGVQYXNzd29yZEluY29ycmVjdFxyXG4gICAgICAgICAgICAgICAgICAgIDogTG9naW5Db25zdGFudC51c2VyTmFtZVBhc3N3b3JkSW5jb3JyZWN0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uTG9naW5PclNldE5ld1Bhc3N3b3JkKHNlc3Npb246IGFueSkge1xyXG4gICAgICAgIGNvbnN0IG5ld0V4cFRpbWUgPSB0aGlzLmNvbXB1dGVUb2tlbkV4cGlyYXRpb24oc2Vzc2lvbi50b2tlbnMuaWRUb2tlbik7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuYWNjZXNzVG9rZW4gPSBzZXNzaW9uLnRva2Vucy5hY2Nlc3NUb2tlbi50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLklkVG9rZW4gPSBzZXNzaW9uLnRva2Vucy5pZFRva2VuLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEFjY2Vzc0FuZElEVG9rZW5zKHRva2VuOiBBdXRoVG9rZW5zKSB7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuYWNjZXNzVG9rZW4gPSB0b2tlbj8uYWNjZXNzVG9rZW4/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuSWRUb2tlbiA9IHRva2VuPy5pZFRva2VuO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3Vwcyh0b2tlbjogQXV0aFRva2Vucykge1xyXG4gICAgICAgIHRoaXMuc2V0QWNjZXNzQW5kSURUb2tlbnModG9rZW4pO1xyXG4gICAgICAgIGlmIChcImNvZ25pdG86Z3JvdXBzXCIgaW4gdG9rZW4uYWNjZXNzVG9rZW4ucGF5bG9hZCkge1xyXG4gICAgICAgICAgICBjb25zdCB1c2VyR3JvdXBzSW5Db2duaXRvSldUOiBhbnkgPSB0b2tlbi5hY2Nlc3NUb2tlbi5wYXlsb2FkW1wiY29nbml0bzpncm91cHNcIl07XHJcbiAgICAgICAgICAgIHRoaXMuYWNsU2VydmljZS51c2VyR3JvdXBzSW5Db2duaXRvSldUID0gdXNlckdyb3Vwc0luQ29nbml0b0pXVDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UudXNlckdyb3Vwc0luQ29nbml0b0pXVCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoQWNjZXNzVG9rZW4oKSB7XHJcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW5FeHBpcmF0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIik7XHJcbiAgICAgICAgbGV0IGV4cFRpbWUgPSBhY2Nlc3NUb2tlbkV4cGlyYXRpb24gPyBwYXJzZUludChhY2Nlc3NUb2tlbkV4cGlyYXRpb24sIDEwKSA6IDA7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlblRpbWVySWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudGVyID0gMTAwMDtcclxuICAgICAgICAgICAgY29uc3QgZGVsYXlGdW5jdGlvbiA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gc2Vzc2lvbi50b2tlbnM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3Vwcyh0b2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdFeHBUaW1lID0gdGhpcy5jb21wdXRlVG9rZW5FeHBpcmF0aW9uKHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLklkVG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0V4cFRpbWUgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RXhwVGltZSA9IDEwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudGVyID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWxheUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChkZWxheUZ1bmN0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBUaW1lID0gbmV3RXhwVGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZEVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTaWduT3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2lnbk91dCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCBjb3VudGVyKTtcclxuICAgICAgICB9LCBleHBUaW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjaGFuZ2VQYXNzd29yZChuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgaW5wdXRQYXJhbSA9IHtcclxuICAgICAgICAgICAgICAgIGNoYWxsZW5nZVJlc3BvbnNlOiBuZXdQYXNzd29yZCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGNvbmZpcm1TaWduSW4oaW5wdXRQYXJhbSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgdXNlcm5hbWUgfSA9IGF3YWl0IGdldEN1cnJlbnRVc2VyKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBmZXRjaEF1dGhTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgIHRoaXMub25Mb2dpbk9yU2V0TmV3UGFzc3dvcmQoc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLm9uUGFzc3dvcmRVcGRhdGUodXNlcm5hbWUpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UubmV3UGFzc3dvcmRTZXRUaGVuVXBkYXRlVG9CYWNrZW5kKHVzZXJuYW1lKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRCdXR0b25NZXNzYWdlID0gTG9naW5Db25zdGFudC5sb2dpbkFnYWluO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkZvcmdvdFBhc3N3b3JkR2VuZXJhdGVPVFAoZW1haWw6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHVzZXJuYW1lID0gZW1haWw7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UudXNlck5hbWUgPSBlbWFpbDtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHJlc2V0UGFzc3dvcmQoeyB1c2VybmFtZSB9KTtcclxuICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgPVxyXG4gICAgICAgICAgICAgICAgTG9naW5Db25zdGFudC52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgK1xyXG4gICAgICAgICAgICAgICAgKHJlc3VsdD8ubmV4dFN0ZXA/LmNvZGVEZWxpdmVyeURldGFpbHM/LmRlc3RpbmF0aW9uID8/IFwiXCIpICtcclxuICAgICAgICAgICAgICAgIExvZ2luQ29uc3RhbnQucGxlYXNlRW50ZXJJdEJlbG93O1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC52ZXJpZnlBbmRTZXROZXdQYXNzd29yZFVybF0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAvLyBkbyBub3RoaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHZlcmlmeUNvZGUoY29uZmlybWF0aW9uQ29kZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uZmlybVJlc2V0UGFzc3dvcmQoe1xyXG4gICAgICAgICAgICAgICAgdXNlcm5hbWU6IHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICAgICAgbmV3UGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtYXRpb25Db2RlLFxyXG4gICAgICAgICAgICB9KS50aGVuKFxyXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lLCBuZXdQYXNzd29yZCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9PZkF0dGVtcHRzICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IHRoaXMuZm9yZ290UGFzc3dvcmRFcnJvcihlcnIsIHRoaXMubm9PZkF0dGVtcHRzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9PZkF0dGVtcHRzICs9IDE7XHJcbiAgICAgICAgICAgIHRoaXMudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2UgPSB0aGlzLmZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyLCB0aGlzLm5vT2ZBdHRlbXB0cyk7XHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgdGhpcy5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yZ290UGFzc3dvcmRFcnJvcihlcnI6IGFueSwgbm9PZkF0dGVtcHRzOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gXCJcIjtcclxuICAgICAgICBjb25zdCBlcnJvclRocm93biA9IEpTT04uc3RyaW5naWZ5KGVycik7XHJcbiAgICAgICAgaWYgKGVycm9yVGhyb3duLmluY2x1ZGVzKFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25Mb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LmF0dGVtcHRMaW1pdEV4Y2VlZGVkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JUaHJvd24uaW5jbHVkZXMoXCJFeHBpcmVkQ29kZUV4Y2VwdGlvblwiKSkge1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkO1xyXG4gICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uID0gTG9naW5Db25zdGFudC5yZWdlbmVyYXRlT3RwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke0xvZ2luQ29uc3RhbnQuYXR0ZW1wdH0gJHtub09mQXR0ZW1wdHN9JHtMb2dpbkNvbnN0YW50LmF0dGVtcHRNZXNzYWdlfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2lnbkluV2l0aFNTTygpIHtcclxuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgIGlmIChzZXNzaW9uPy50b2tlbnMpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVTaWduT3V0KCkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNpZ25JbldpdGhTU08oKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2Uuc2lnbkluV2l0aFNTTygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBoYW5kbGVTaWduT3V0KCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHNpZ25PdXQoeyBnbG9iYWw6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25UaW1lb3V0KCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgLy8gZG8gbm90aGluZ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKHVzZXJuYW1lOiBzdHJpbmcsIG5ld1Bhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICB0aGlzLm9uTG9naW5JbkNvZ250aW9Ub0dldEFjY2Vzc1Rva2VuKHVzZXJuYW1lLCBuZXdQYXNzd29yZCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Mb2dpbkluQ29nbnRpb1RvR2V0QWNjZXNzVG9rZW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbmV4dFN0ZXAgfSA9IGF3YWl0IHNpZ25Jbih7IHVzZXJuYW1lLCBwYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgc3dpdGNoIChuZXh0U3RlcD8uc2lnbkluU3RlcCkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkRPTkVcIjpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFjY2Vzc0FuZElEVG9rZW5zKGF3YWl0IChhd2FpdCBmZXRjaEF1dGhTZXNzaW9uKCkpLnRva2Vucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2Uub25QYXNzd29yZFVwZGF0ZSh0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS51c2VyTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNhbGxHbG9iYWxTaWdub3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAvLyBubyBkZWZhdWx0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9PZkF0dGVtcHRzICs9IDE7XHJcbiAgICAgICAgICAgIHRoaXMudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2UgPSB0aGlzLmZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyb3IsIHRoaXMubm9PZkF0dGVtcHRzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25DYWxsR2xvYmFsU2lnbm91dCgpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBhd2FpdCBzaWduT3V0KHsgZ2xvYmFsOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAvLyBkbyBub3RoaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17
17
  type: Inject,
18
18
  args: [CONFIG_SERVICE_TOKEN]
19
19
  }] }]; } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFrQixvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUt0RixNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQWlELDZCQUE2QztRQUE3QyxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQWdCO0lBQUcsQ0FBQzsrR0FEekYsaUJBQWlCLGtCQUNOLG9CQUFvQjttSEFEL0IsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBRWdCLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSUNvbmZpZ1NlcnZpY2UsIENPTkZJR19TRVJWSUNFX1RPS0VOIH0gZnJvbSBcIi4uL2NvbmZpZy9jb25maWctc2VydmljZS50b2tlblwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hQ29uZmlnU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlKSB7fVxyXG59XHJcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFrQixNQUFNLGdDQUFnQyxDQUFDOztBQUt0RixNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQWlELDZCQUE2QztRQUE3QyxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQWdCO0lBQUcsQ0FBQzsrR0FEekYsaUJBQWlCLGtCQUNOLG9CQUFvQjttSEFEL0IsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBRWdCLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IENPTkZJR19TRVJWSUNFX1RPS0VOLCBJQ29uZmlnU2VydmljZSB9IGZyb20gXCIuLi9jb25maWcvY29uZmlnLXNlcnZpY2UudG9rZW5cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUNvbmZpZ1NlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChDT05GSUdfU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RDb25maWdTZXJ2aWNlOiBJQ29uZmlnU2VydmljZSkge31cclxufVxyXG4iXX0=
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17
17
  type: Inject,
18
18
  args: [SSO_LOGIN_SERVICE_TOKEN]
19
19
  }] }]; } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NvLWxvZ2luLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvc2VydmljZXMvc3NvLWxvZ2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUs5RixNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQW9ELCtCQUFpRDtRQUFqRCxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWtCO0lBQUcsQ0FBQzsrR0FEaEcsbUJBQW1CLGtCQUNSLHVCQUF1QjttSEFEbEMsbUJBQW1CLGNBRmhCLE1BQU07OzRGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUVnQixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IElTU09Mb2dpblNlcnZpY2UsIFNTT19MT0dJTl9TRVJWSUNFX1RPS0VOIH0gZnJvbSBcIi4uL2NvbmZpZy9zc28tbG9naW4tc2VydmljZS50b2tlblwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hU1NPTG9naW5TZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoU1NPX0xPR0lOX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlOiBJU1NPTG9naW5TZXJ2aWNlKSB7fVxyXG59XHJcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NvLWxvZ2luLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvc2VydmljZXMvc3NvLWxvZ2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUs5RixNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQW9ELCtCQUFpRDtRQUFqRCxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWtCO0lBQUcsQ0FBQzsrR0FEaEcsbUJBQW1CLGtCQUNSLHVCQUF1QjttSEFEbEMsbUJBQW1CLGNBRmhCLE1BQU07OzRGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUVnQixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gXCIuLi9jb25maWcvc3NvLWxvZ2luLXNlcnZpY2UudG9rZW5cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYVNTT0xvZ2luU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFNTT19MT0dJTl9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZTogSVNTT0xvZ2luU2VydmljZSkge31cclxufVxyXG4iXX0=
@@ -1,28 +1,28 @@
1
1
  /*
2
2
  * Public API Surface of anna-cognito-lib
3
3
  */
4
- //COMPONENTS
5
- export * from "./lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component";
4
+ // COMPONENTS
6
5
  export * from "./lib/components/anna-login/anna-login.component";
7
- export * from "./lib/components/sso-login/sso-login.component";
6
+ export * from "./lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component";
8
7
  export * from "./lib/components/forgot-password/forgot-password.component";
9
- export * from "./lib/components/set-new-password/set-new-password.component";
10
8
  export * from "./lib/components/password-matching/password-matching.component";
11
- export * from "./lib/components/verify-and-set-new-password/verify-and-set-new-password.component";
12
- export * from "./lib/components/version-and-term-policy/version-and-term-policy.component";
13
9
  export * from "./lib/components/powered-by-logo-template/powered-by-logo-template.component";
10
+ export * from "./lib/components/set-new-password/set-new-password.component";
11
+ export * from "./lib/components/sso-login/sso-login.component";
14
12
  export * from "./lib/components/surewaves-year-logo/surewaves-year-logo.component";
15
- //SERVICES
16
- export * from "./lib/services/auth.service";
17
- export * from "./lib/services/acl.service";
18
- export * from "./lib/config/auth-service.token";
13
+ export * from "./lib/components/verify-and-set-new-password/verify-and-set-new-password.component";
14
+ export * from "./lib/components/version-and-term-policy/version-and-term-policy.component";
15
+ // SERVICES
19
16
  export * from "./lib/config/acl-service.token";
17
+ export * from "./lib/config/auth-service.token";
20
18
  export * from "./lib/config/config-service.token";
21
19
  export * from "./lib/config/sso-login-service.token";
20
+ export * from "./lib/services/acl.service";
21
+ export * from "./lib/services/auth.service";
22
22
  export * from "./lib/services/config.service";
23
23
  export * from "./lib/services/sso-login.service";
24
- //DIRECTIVES
24
+ // DIRECTIVES
25
25
  export * from "./lib/directives/spinner-button";
26
- //CONSTANTS
26
+ // CONSTANTS
27
27
  export * from "./lib/constants/loginConstant";
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxZQUFZO0FBQ1osY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxvRkFBb0YsQ0FBQztBQUNuRyxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyxvRUFBb0UsQ0FBQztBQUVuRixVQUFVO0FBQ1YsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELFlBQVk7QUFDWixjQUFjLGlDQUFpQyxDQUFDO0FBRWhELFdBQVc7QUFDWCxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFubmEtY29nbml0by1saWJcclxuICovXHJcblxyXG4vL0NPTVBPTkVOVFNcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY29nbml0by1hbmQtc3NvLWxvZ2luLWNvbnRhaW5lci9jb2duaXRvLWFuZC1zc28tbG9naW4tY29udGFpbmVyLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9hbm5hLWxvZ2luL2FubmEtbG9naW4uY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3Nzby1sb2dpbi9zc28tbG9naW4uY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NldC1uZXctcGFzc3dvcmQvc2V0LW5ldy1wYXNzd29yZC5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvcGFzc3dvcmQtbWF0Y2hpbmcvcGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3ZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZC92ZXJpZnktYW5kLXNldC1uZXctcGFzc3dvcmQuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5L3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5LmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGUvcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zdXJld2F2ZXMteWVhci1sb2dvL3N1cmV3YXZlcy15ZWFyLWxvZ28uY29tcG9uZW50XCI7XHJcblxyXG4vL1NFUlZJQ0VTXHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2FjbC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb25maWcvYXV0aC1zZXJ2aWNlLnRva2VuXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb25maWcvYWNsLXNlcnZpY2UudG9rZW5cIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbmZpZy9jb25maWctc2VydmljZS50b2tlblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29uZmlnL3Nzby1sb2dpbi1zZXJ2aWNlLnRva2VuXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9jb25maWcuc2VydmljZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvc3NvLWxvZ2luLnNlcnZpY2VcIjtcclxuXHJcbi8vRElSRUNUSVZFU1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvblwiO1xyXG5cclxuLy9DT05TVEFOVFNcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxhQUFhO0FBQ2IsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDRGQUE0RixDQUFDO0FBQzNHLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsb0ZBQW9GLENBQUM7QUFDbkcsY0FBYyw0RUFBNEUsQ0FBQztBQUUzRixXQUFXO0FBQ1gsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGFBQWE7QUFDYixjQUFjLGlDQUFpQyxDQUFDO0FBRWhELFlBQVk7QUFDWixjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFubmEtY29nbml0by1saWJcclxuICovXHJcblxyXG4vLyBDT01QT05FTlRTXHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2FubmEtbG9naW4vYW5uYS1sb2dpbi5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY29nbml0by1hbmQtc3NvLWxvZ2luLWNvbnRhaW5lci9jb2duaXRvLWFuZC1zc28tbG9naW4tY29udGFpbmVyLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9wYXNzd29yZC1tYXRjaGluZy9wYXNzd29yZC1tYXRjaGluZy5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvc2V0LW5ldy1wYXNzd29yZC9zZXQtbmV3LXBhc3N3b3JkLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zc28tbG9naW4vc3NvLWxvZ2luLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zdXJld2F2ZXMteWVhci1sb2dvL3N1cmV3YXZlcy15ZWFyLWxvZ28uY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3ZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZC92ZXJpZnktYW5kLXNldC1uZXctcGFzc3dvcmQuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5L3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5LmNvbXBvbmVudFwiO1xyXG5cclxuLy8gU0VSVklDRVNcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbmZpZy9hY2wtc2VydmljZS50b2tlblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29uZmlnL2F1dGgtc2VydmljZS50b2tlblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29uZmlnL2NvbmZpZy1zZXJ2aWNlLnRva2VuXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb25maWcvc3NvLWxvZ2luLXNlcnZpY2UudG9rZW5cIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2FjbC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9zc28tbG9naW4uc2VydmljZVwiO1xyXG5cclxuLy8gRElSRUNUSVZFU1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvblwiO1xyXG5cclxuLy8gQ09OU1RBTlRTXHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb25zdGFudHMvbG9naW5Db25zdGFudFwiO1xyXG4iXX0=