@azure/msal-common 14.4.1-beta.1 → 14.6.0-alpha.0

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 (209) hide show
  1. package/dist/account/AccountInfo.d.ts +27 -0
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AccountInfo.mjs +64 -0
  4. package/dist/account/AccountInfo.mjs.map +1 -0
  5. package/dist/account/AuthToken.mjs +1 -1
  6. package/dist/account/AuthToken.mjs.map +1 -1
  7. package/dist/account/CcsCredential.mjs +1 -1
  8. package/dist/account/CcsCredential.mjs.map +1 -1
  9. package/dist/account/ClientInfo.d.ts +1 -2
  10. package/dist/account/ClientInfo.d.ts.map +1 -1
  11. package/dist/account/ClientInfo.mjs +3 -3
  12. package/dist/account/ClientInfo.mjs.map +1 -1
  13. package/dist/account/TokenClaims.d.ts +18 -0
  14. package/dist/account/TokenClaims.d.ts.map +1 -1
  15. package/dist/account/TokenClaims.mjs +25 -0
  16. package/dist/account/TokenClaims.mjs.map +1 -0
  17. package/dist/authority/Authority.d.ts +7 -2
  18. package/dist/authority/Authority.d.ts.map +1 -1
  19. package/dist/authority/Authority.mjs +34 -7
  20. package/dist/authority/Authority.mjs.map +1 -1
  21. package/dist/authority/AuthorityFactory.mjs +1 -1
  22. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  23. package/dist/authority/AuthorityMetadata.mjs +1 -1
  24. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  25. package/dist/authority/AuthorityOptions.mjs +1 -1
  26. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  27. package/dist/authority/AuthorityType.mjs +1 -1
  28. package/dist/authority/AuthorityType.mjs.map +1 -1
  29. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
  30. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
  31. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
  32. package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
  33. package/dist/authority/OpenIdConfigResponse.mjs +1 -1
  34. package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
  35. package/dist/authority/ProtocolMode.mjs +1 -1
  36. package/dist/authority/ProtocolMode.mjs.map +1 -1
  37. package/dist/authority/RegionDiscovery.mjs +1 -1
  38. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  39. package/dist/cache/CacheManager.d.ts +50 -27
  40. package/dist/cache/CacheManager.d.ts.map +1 -1
  41. package/dist/cache/CacheManager.mjs +243 -107
  42. package/dist/cache/CacheManager.mjs.map +1 -1
  43. package/dist/cache/entities/AccountEntity.d.ts +9 -4
  44. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  45. package/dist/cache/entities/AccountEntity.mjs +56 -28
  46. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  47. package/dist/cache/entities/AppMetadataEntity.mjs +1 -1
  48. package/dist/cache/entities/AppMetadataEntity.mjs.map +1 -1
  49. package/dist/cache/entities/AuthorityMetadataEntity.mjs +1 -1
  50. package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +1 -1
  51. package/dist/cache/entities/CacheRecord.mjs +1 -1
  52. package/dist/cache/entities/CacheRecord.mjs.map +1 -1
  53. package/dist/cache/entities/ThrottlingEntity.d.ts +2 -8
  54. package/dist/cache/entities/ThrottlingEntity.d.ts.map +1 -1
  55. package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
  56. package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
  57. package/dist/cache/utils/CacheHelpers.d.ts +7 -1
  58. package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
  59. package/dist/cache/utils/CacheHelpers.mjs +20 -4
  60. package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
  61. package/dist/cache/utils/CacheTypes.d.ts +2 -0
  62. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  63. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  64. package/dist/client/AuthorizationCodeClient.mjs +10 -9
  65. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  66. package/dist/client/BaseClient.mjs +1 -1
  67. package/dist/client/BaseClient.mjs.map +1 -1
  68. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  69. package/dist/client/RefreshTokenClient.mjs +25 -11
  70. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  71. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  72. package/dist/client/SilentFlowClient.mjs +20 -9
  73. package/dist/client/SilentFlowClient.mjs.map +1 -1
  74. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  75. package/dist/config/ClientConfiguration.mjs +2 -4
  76. package/dist/config/ClientConfiguration.mjs.map +1 -1
  77. package/dist/constants/AADServerParamKeys.d.ts +53 -0
  78. package/dist/constants/AADServerParamKeys.d.ts.map +1 -0
  79. package/dist/constants/AADServerParamKeys.mjs +61 -0
  80. package/dist/constants/AADServerParamKeys.mjs.map +1 -0
  81. package/dist/crypto/ICrypto.mjs +1 -1
  82. package/dist/crypto/ICrypto.mjs.map +1 -1
  83. package/dist/crypto/JoseHeader.mjs +1 -1
  84. package/dist/crypto/JoseHeader.mjs.map +1 -1
  85. package/dist/crypto/PopTokenGenerator.mjs +2 -2
  86. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  87. package/dist/error/AuthError.mjs +1 -1
  88. package/dist/error/AuthError.mjs.map +1 -1
  89. package/dist/error/AuthErrorCodes.mjs +1 -1
  90. package/dist/error/AuthErrorCodes.mjs.map +1 -1
  91. package/dist/error/ClientAuthError.mjs +1 -1
  92. package/dist/error/ClientAuthError.mjs.map +1 -1
  93. package/dist/error/ClientAuthErrorCodes.mjs +1 -1
  94. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -1
  95. package/dist/error/ClientConfigurationError.mjs +1 -1
  96. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  97. package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
  98. package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -1
  99. package/dist/error/InteractionRequiredAuthError.d.ts +4 -0
  100. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  101. package/dist/error/InteractionRequiredAuthError.mjs +10 -3
  102. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  103. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +1 -0
  104. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
  105. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +4 -3
  106. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
  107. package/dist/error/JoseHeaderError.mjs +1 -1
  108. package/dist/error/JoseHeaderError.mjs.map +1 -1
  109. package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
  110. package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -1
  111. package/dist/error/ServerError.mjs +1 -1
  112. package/dist/error/ServerError.mjs.map +1 -1
  113. package/dist/index.cjs +797 -416
  114. package/dist/index.cjs.map +1 -1
  115. package/dist/index.d.ts +5 -4
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.mjs +7 -4
  118. package/dist/index.mjs.map +1 -1
  119. package/dist/logger/Logger.mjs +1 -1
  120. package/dist/logger/Logger.mjs.map +1 -1
  121. package/dist/network/INetworkModule.mjs +1 -1
  122. package/dist/network/INetworkModule.mjs.map +1 -1
  123. package/dist/network/NetworkManager.mjs +1 -1
  124. package/dist/network/NetworkManager.mjs.map +1 -1
  125. package/dist/network/ThrottlingUtils.mjs +1 -1
  126. package/dist/network/ThrottlingUtils.mjs.map +1 -1
  127. package/dist/packageMetadata.d.ts +1 -1
  128. package/dist/packageMetadata.d.ts.map +1 -1
  129. package/dist/packageMetadata.mjs +2 -2
  130. package/dist/packageMetadata.mjs.map +1 -1
  131. package/dist/request/AuthenticationHeaderParser.mjs +1 -1
  132. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  133. package/dist/request/CommonRefreshTokenRequest.d.ts +0 -1
  134. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  135. package/dist/request/CommonSilentFlowRequest.d.ts +7 -1
  136. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  137. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  138. package/dist/request/RequestParameterBuilder.mjs +46 -45
  139. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  140. package/dist/request/RequestValidator.mjs +1 -1
  141. package/dist/request/RequestValidator.mjs.map +1 -1
  142. package/dist/request/ScopeSet.mjs +1 -1
  143. package/dist/request/ScopeSet.mjs.map +1 -1
  144. package/dist/response/ResponseHandler.d.ts +3 -1
  145. package/dist/response/ResponseHandler.d.ts.map +1 -1
  146. package/dist/response/ResponseHandler.mjs +56 -20
  147. package/dist/response/ResponseHandler.mjs.map +1 -1
  148. package/dist/response/ServerAuthorizationTokenResponse.d.ts +1 -0
  149. package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
  150. package/dist/telemetry/performance/IPerformanceClient.d.ts +6 -0
  151. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  152. package/dist/telemetry/performance/PerformanceClient.d.ts +9 -2
  153. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  154. package/dist/telemetry/performance/PerformanceClient.mjs +17 -13
  155. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  156. package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
  157. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  158. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  159. package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
  160. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  161. package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
  162. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  163. package/dist/url/UrlString.mjs +1 -1
  164. package/dist/url/UrlString.mjs.map +1 -1
  165. package/dist/utils/Constants.d.ts +2 -69
  166. package/dist/utils/Constants.d.ts.map +1 -1
  167. package/dist/utils/Constants.mjs +6 -70
  168. package/dist/utils/Constants.mjs.map +1 -1
  169. package/dist/utils/FunctionWrappers.mjs +1 -1
  170. package/dist/utils/FunctionWrappers.mjs.map +1 -1
  171. package/dist/utils/ProtocolUtils.mjs +1 -1
  172. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  173. package/dist/utils/StringUtils.mjs +1 -1
  174. package/dist/utils/StringUtils.mjs.map +1 -1
  175. package/dist/utils/TimeUtils.mjs +1 -1
  176. package/dist/utils/TimeUtils.mjs.map +1 -1
  177. package/dist/utils/UrlUtils.mjs +1 -1
  178. package/dist/utils/UrlUtils.mjs.map +1 -1
  179. package/package.json +93 -92
  180. package/src/account/AccountInfo.ts +96 -0
  181. package/src/account/ClientInfo.ts +2 -3
  182. package/src/account/TokenClaims.ts +28 -0
  183. package/src/authority/Authority.ts +38 -5
  184. package/src/cache/CacheManager.ts +410 -162
  185. package/src/cache/entities/AccountEntity.ts +84 -33
  186. package/src/cache/entities/ThrottlingEntity.ts +2 -24
  187. package/src/cache/utils/CacheHelpers.ts +22 -2
  188. package/src/cache/utils/CacheTypes.ts +11 -0
  189. package/src/client/AuthorizationCodeClient.ts +4 -5
  190. package/src/client/RefreshTokenClient.ts +35 -14
  191. package/src/client/SilentFlowClient.ts +31 -11
  192. package/src/config/ClientConfiguration.ts +4 -4
  193. package/src/constants/AADServerParamKeys.ts +57 -0
  194. package/src/crypto/PopTokenGenerator.ts +1 -1
  195. package/src/error/InteractionRequiredAuthError.ts +12 -2
  196. package/src/error/InteractionRequiredAuthErrorCodes.ts +1 -0
  197. package/src/index.ts +18 -5
  198. package/src/packageMetadata.ts +1 -1
  199. package/src/request/CommonRefreshTokenRequest.ts +0 -1
  200. package/src/request/CommonSilentFlowRequest.ts +7 -1
  201. package/src/request/RequestParameterBuilder.ts +7 -5
  202. package/src/response/ResponseHandler.ts +109 -25
  203. package/src/response/ServerAuthorizationTokenResponse.ts +1 -0
  204. package/src/telemetry/performance/IPerformanceClient.ts +6 -0
  205. package/src/telemetry/performance/PerformanceClient.ts +24 -31
  206. package/src/telemetry/performance/StubPerformanceClient.ts +0 -1
  207. package/src/utils/Constants.ts +4 -72
  208. package/dist/cache/entities/ThrottlingEntity.mjs +0 -30
  209. package/dist/cache/entities/ThrottlingEntity.mjs.map +0 -1
@@ -1,10 +1,11 @@
1
- /*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
1
+ /*! @azure/msal-common v14.6.0-alpha.0 2023-12-15 */
2
2
  'use strict';
3
3
  import { Separators, CredentialType, AuthenticationScheme, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.mjs';
4
4
  import { generateCredentialKey } from './utils/CacheHelpers.mjs';
5
5
  import { ScopeSet } from '../request/ScopeSet.mjs';
6
6
  import { AccountEntity } from './entities/AccountEntity.mjs';
7
7
  import { createClientAuthError } from '../error/ClientAuthError.mjs';
8
+ import { updateAccountTenantProfileData, tenantIdMatchesHomeTenant } from '../account/AccountInfo.mjs';
8
9
  import { extractTokenClaims } from '../account/AuthToken.mjs';
9
10
  import { name, version } from '../packageMetadata.mjs';
10
11
  import { getAliasesFromStaticSources } from '../authority/AuthorityMetadata.mjs';
@@ -31,25 +32,19 @@ class CacheManager {
31
32
  * @returns Array of AccountInfo objects in cache
32
33
  */
33
34
  getAllAccounts(accountFilter) {
34
- const validAccounts = [];
35
- this.getAccountsFilteredBy(accountFilter || {}).forEach((accountEntity) => {
36
- const accountInfo = this.getAccountInfoFromEntity(accountEntity, accountFilter);
37
- if (accountInfo) {
38
- validAccounts.push(accountInfo);
39
- }
40
- });
41
- return validAccounts;
35
+ return this.buildTenantProfiles(this.getAccountsFilteredBy(accountFilter || {}), accountFilter);
42
36
  }
43
37
  /**
44
- * Gets accountInfo object based on provided filters
38
+ * Gets first tenanted AccountInfo object found based on provided filters
45
39
  */
46
40
  getAccountInfoFilteredBy(accountFilter) {
47
41
  const allAccounts = this.getAllAccounts(accountFilter);
48
42
  if (allAccounts.length > 1) {
49
- // If one or more accounts are found, further filter to the first account that has an ID token
50
- return allAccounts.filter((account) => {
51
- return !!account.idTokenClaims;
52
- })[0];
43
+ // If one or more accounts are found, prioritize accounts that have an ID token
44
+ const sortedAccounts = allAccounts.sort((account) => {
45
+ return account.idTokenClaims ? -1 : 1;
46
+ });
47
+ return sortedAccounts[0];
53
48
  }
54
49
  else if (allAccounts.length === 1) {
55
50
  // If only one account is found, return it regardless of whether a matching ID token was found
@@ -73,27 +68,104 @@ class CacheManager {
73
68
  return null;
74
69
  }
75
70
  }
76
- getAccountInfoFromEntity(accountEntity, accountFilter) {
77
- const accountInfo = accountEntity.getAccountInfo();
78
- const idToken = this.getIdToken(accountInfo);
71
+ /**
72
+ * Matches filtered account entities with cached ID tokens that match the tenant profile-specific account filters
73
+ * and builds the account info objects from the matching ID token's claims
74
+ * @param cachedAccounts
75
+ * @param accountFilter
76
+ * @returns Array of AccountInfo objects that match account and tenant profile filters
77
+ */
78
+ buildTenantProfiles(cachedAccounts, accountFilter) {
79
+ return cachedAccounts.flatMap((accountEntity) => {
80
+ return this.getAccountInfoForTenantProfiles(accountEntity, accountFilter);
81
+ });
82
+ }
83
+ getAccountInfoForTenantProfiles(accountEntity, accountFilter) {
84
+ return this.getTenantProfilesFromAccountEntity(accountEntity, accountFilter?.tenantId, accountFilter);
85
+ }
86
+ getTenantedAccountInfoByFilter(accountInfo, tokenKeys, tenantProfile, tenantProfileFilter) {
87
+ let tenantedAccountInfo = null;
88
+ let idTokenClaims;
89
+ if (tenantProfileFilter) {
90
+ if (!this.tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter)) {
91
+ return null;
92
+ }
93
+ }
94
+ const idToken = this.getIdToken(accountInfo, tokenKeys, tenantProfile.tenantId);
79
95
  if (idToken) {
80
- const idTokenClaims = extractTokenClaims(idToken.secret, this.cryptoImpl.base64Decode);
81
- if (this.idTokenClaimsMatchAccountFilter(idTokenClaims, accountFilter)) {
82
- accountInfo.idToken = idToken.secret;
83
- accountInfo.idTokenClaims = idTokenClaims;
84
- return accountInfo;
96
+ idTokenClaims = extractTokenClaims(idToken.secret, this.cryptoImpl.base64Decode);
97
+ if (!this.idTokenClaimsMatchTenantProfileFilter(idTokenClaims, tenantProfileFilter)) {
98
+ // ID token sourced claims don't match so this tenant profile is not a match
99
+ return null;
100
+ }
101
+ }
102
+ // Expand tenant profile into account info based on matching tenant profile and if available matching ID token claims
103
+ tenantedAccountInfo = updateAccountTenantProfileData(accountInfo, tenantProfile, idTokenClaims);
104
+ return tenantedAccountInfo;
105
+ }
106
+ getTenantProfilesFromAccountEntity(accountEntity, targetTenantId, tenantProfileFilter) {
107
+ const accountInfo = accountEntity.getAccountInfo();
108
+ let searchTenantProfiles = accountInfo.tenantProfiles || new Map();
109
+ const tokenKeys = this.getTokenKeys();
110
+ // If a tenant ID was provided, only return the tenant profile for that tenant ID if it exists
111
+ if (targetTenantId) {
112
+ const tenantProfile = searchTenantProfiles.get(targetTenantId);
113
+ if (tenantProfile) {
114
+ // Reduce search field to just this tenant profile
115
+ searchTenantProfiles = new Map([
116
+ [targetTenantId, tenantProfile],
117
+ ]);
118
+ }
119
+ else {
120
+ // No tenant profile for search tenant ID, return empty array
121
+ return [];
85
122
  }
86
123
  }
87
- return accountInfo;
124
+ const matchingTenantProfiles = [];
125
+ searchTenantProfiles.forEach((tenantProfile) => {
126
+ const tenantedAccountInfo = this.getTenantedAccountInfoByFilter(accountInfo, tokenKeys, tenantProfile, tenantProfileFilter);
127
+ if (tenantedAccountInfo) {
128
+ matchingTenantProfiles.push(tenantedAccountInfo);
129
+ }
130
+ });
131
+ return matchingTenantProfiles;
132
+ }
133
+ tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter) {
134
+ if (!!tenantProfileFilter.localAccountId &&
135
+ !this.matchLocalAccountIdFromTenantProfile(tenantProfile, tenantProfileFilter.localAccountId)) {
136
+ return false;
137
+ }
138
+ if (!!tenantProfileFilter.name &&
139
+ !(tenantProfile.name === tenantProfileFilter.name)) {
140
+ return false;
141
+ }
142
+ if (tenantProfileFilter.isHomeTenant !== undefined &&
143
+ !(tenantProfile.isHomeTenant === tenantProfileFilter.isHomeTenant)) {
144
+ return false;
145
+ }
146
+ return true;
88
147
  }
89
- idTokenClaimsMatchAccountFilter(idTokenClaims, accountFilter) {
90
- if (accountFilter) {
91
- if (!!accountFilter.loginHint &&
92
- !this.matchLoginHint(idTokenClaims, accountFilter.loginHint)) {
148
+ idTokenClaimsMatchTenantProfileFilter(idTokenClaims, tenantProfileFilter) {
149
+ // Tenant Profile filtering
150
+ if (tenantProfileFilter) {
151
+ if (!!tenantProfileFilter.localAccountId &&
152
+ !this.matchLocalAccountIdFromTokenClaims(idTokenClaims, tenantProfileFilter.localAccountId)) {
153
+ return false;
154
+ }
155
+ if (!!tenantProfileFilter.loginHint &&
156
+ !this.matchLoginHintFromTokenClaims(idTokenClaims, tenantProfileFilter.loginHint)) {
157
+ return false;
158
+ }
159
+ if (!!tenantProfileFilter.username &&
160
+ !this.matchUsername(idTokenClaims.preferred_username, tenantProfileFilter.username)) {
93
161
  return false;
94
162
  }
95
- if (!!accountFilter.sid &&
96
- !this.matchSid(idTokenClaims, accountFilter.sid)) {
163
+ if (!!tenantProfileFilter.name &&
164
+ !this.matchName(idTokenClaims, tenantProfileFilter.name)) {
165
+ return false;
166
+ }
167
+ if (!!tenantProfileFilter.sid &&
168
+ !this.matchSid(idTokenClaims, tenantProfileFilter.sid)) {
97
169
  return false;
98
170
  }
99
171
  }
@@ -158,7 +230,7 @@ class CacheManager {
158
230
  this.setAccessTokenCredential(credential);
159
231
  }
160
232
  /**
161
- * Retrieve accounts matching all provided filters; if no filter is set, get all accounts
233
+ * Retrieve account entities matching all provided tenant-agnostic filters; if no filter is set, get all account entities in the cache
162
234
  * Not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared
163
235
  * @param accountFilter - An object containing Account properties to filter by
164
236
  */
@@ -166,11 +238,12 @@ class CacheManager {
166
238
  const allAccountKeys = this.getAccountKeys();
167
239
  const matchingAccounts = [];
168
240
  allAccountKeys.forEach((cacheKey) => {
169
- if (!this.isAccountKey(cacheKey, accountFilter.homeAccountId, accountFilter.tenantId)) {
241
+ if (!this.isAccountKey(cacheKey, accountFilter.homeAccountId)) {
170
242
  // Don't parse value if the key doesn't match the account filters
171
243
  return;
172
244
  }
173
- const entity = this.getAccount(cacheKey);
245
+ const entity = this.getAccount(cacheKey, this.commonLogger);
246
+ // Match base account fields
174
247
  if (!entity) {
175
248
  return;
176
249
  }
@@ -178,12 +251,8 @@ class CacheManager {
178
251
  !this.matchHomeAccountId(entity, accountFilter.homeAccountId)) {
179
252
  return;
180
253
  }
181
- if (!!accountFilter.localAccountId &&
182
- !this.matchLocalAccountId(entity, accountFilter.localAccountId)) {
183
- return;
184
- }
185
254
  if (!!accountFilter.username &&
186
- !this.matchUsername(entity, accountFilter.username)) {
255
+ !this.matchUsername(entity.username, accountFilter.username)) {
187
256
  return;
188
257
  }
189
258
  if (!!accountFilter.environment &&
@@ -194,11 +263,6 @@ class CacheManager {
194
263
  !this.matchRealm(entity, accountFilter.realm)) {
195
264
  return;
196
265
  }
197
- // tenantId is another name for realm
198
- if (!!accountFilter.tenantId &&
199
- !this.matchRealm(entity, accountFilter.tenantId)) {
200
- return;
201
- }
202
266
  if (!!accountFilter.nativeAccountId &&
203
267
  !this.matchNativeAccountId(entity, accountFilter.nativeAccountId)) {
204
268
  return;
@@ -207,8 +271,16 @@ class CacheManager {
207
271
  !this.matchAuthorityType(entity, accountFilter.authorityType)) {
208
272
  return;
209
273
  }
210
- if (!!accountFilter.name &&
211
- !this.matchName(entity, accountFilter.name)) {
274
+ // If at least one tenant profile matches the tenant profile filter, add the account to the list of matching accounts
275
+ const tenantProfileFilter = {
276
+ localAccountId: accountFilter?.localAccountId,
277
+ name: accountFilter?.name,
278
+ };
279
+ const matchingTenantProfiles = entity.tenantProfiles?.filter((tenantProfile) => {
280
+ return this.tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter);
281
+ });
282
+ if (matchingTenantProfiles && matchingTenantProfiles.length === 0) {
283
+ // No tenant profile for this account matches filter, don't add to list of matching accounts
212
284
  return;
213
285
  }
214
286
  matchingAccounts.push(entity);
@@ -415,7 +487,7 @@ class CacheManager {
415
487
  * @param account
416
488
  */
417
489
  async removeAccount(accountKey) {
418
- const account = this.getAccount(accountKey);
490
+ const account = this.getAccount(accountKey, this.commonLogger);
419
491
  if (!account) {
420
492
  return;
421
493
  }
@@ -447,6 +519,61 @@ class CacheManager {
447
519
  });
448
520
  await Promise.all(removedCredentials);
449
521
  }
522
+ /**
523
+ * Migrates a single-tenant account and all it's associated alternate cross-tenant account objects in the
524
+ * cache into a condensed multi-tenant account object with tenant profiles.
525
+ * @param accountKey
526
+ * @param accountEntity
527
+ * @param logger
528
+ * @returns
529
+ */
530
+ updateOutdatedCachedAccount(accountKey, accountEntity, logger) {
531
+ // Only update if account entity is defined and has no tenantProfiles object (is outdated)
532
+ if (accountEntity && accountEntity.isSingleTenant()) {
533
+ this.commonLogger?.verbose("updateOutdatedCachedAccount: Found a single-tenant (outdated) account entity in the cache, migrating to multi-tenant account entity");
534
+ // Get keys of all accounts belonging to user
535
+ const matchingAccountKeys = this.getAccountKeys().filter((key) => {
536
+ return key.startsWith(accountEntity.homeAccountId);
537
+ });
538
+ // Get all account entities belonging to user
539
+ const accountsToMerge = [];
540
+ matchingAccountKeys.forEach((key) => {
541
+ const account = this.getCachedAccountEntity(key);
542
+ if (account) {
543
+ accountsToMerge.push(account);
544
+ }
545
+ });
546
+ // Set base account to home account if available, any account if not
547
+ const baseAccount = accountsToMerge.find((account) => {
548
+ return tenantIdMatchesHomeTenant(account.realm, account.homeAccountId);
549
+ }) || accountsToMerge[0];
550
+ // Populate tenant profiles built from each account entity belonging to the user
551
+ baseAccount.tenantProfiles = accountsToMerge.map((account) => {
552
+ return {
553
+ tenantId: account.realm,
554
+ localAccountId: account.localAccountId,
555
+ name: account.name,
556
+ isHomeTenant: tenantIdMatchesHomeTenant(account.realm, account.homeAccountId),
557
+ };
558
+ });
559
+ const updatedAccount = CacheManager.toObject(new AccountEntity(), {
560
+ ...baseAccount,
561
+ });
562
+ const newAccountKey = updatedAccount.generateAccountKey();
563
+ // Clear cache of legacy account objects that have been collpsed into tenant profiles
564
+ matchingAccountKeys.forEach((key) => {
565
+ if (key !== newAccountKey) {
566
+ this.removeOutdatedAccount(accountKey);
567
+ }
568
+ });
569
+ // Cache updated account object
570
+ this.setAccount(updatedAccount);
571
+ logger?.verbose("Updated an outdated account entity in the cache");
572
+ return updatedAccount;
573
+ }
574
+ // No update is necessary
575
+ return accountEntity;
576
+ }
450
577
  /**
451
578
  * returns a boolean if the given credential is removed
452
579
  * @param credential
@@ -486,74 +613,73 @@ class CacheManager {
486
613
  });
487
614
  return true;
488
615
  }
489
- /**
490
- * Retrieve the cached credentials into a cacherecord
491
- * @param account {AccountInfo}
492
- * @param request {BaseAuthRequest}
493
- * @param environment {string}
494
- * @param performanceClient {?IPerformanceClient}
495
- * @param correlationId {?string}
496
- */
497
- readCacheRecord(account, request, environment, performanceClient, correlationId) {
498
- const tokenKeys = this.getTokenKeys();
499
- const cachedAccount = this.readAccountFromCache(account);
500
- const cachedIdToken = this.getIdToken(account, tokenKeys, performanceClient, correlationId);
501
- const cachedAccessToken = this.getAccessToken(account, request, tokenKeys, performanceClient, correlationId);
502
- const cachedRefreshToken = this.getRefreshToken(account, false, tokenKeys, performanceClient, correlationId);
503
- const cachedAppMetadata = this.readAppMetadataFromCache(environment);
504
- if (cachedAccount && cachedIdToken) {
505
- cachedAccount.idTokenClaims = extractTokenClaims(cachedIdToken.secret, this.cryptoImpl.base64Decode);
506
- }
507
- return {
508
- account: cachedAccount,
509
- idToken: cachedIdToken,
510
- accessToken: cachedAccessToken,
511
- refreshToken: cachedRefreshToken,
512
- appMetadata: cachedAppMetadata,
513
- };
514
- }
515
616
  /**
516
617
  * Retrieve AccountEntity from cache
517
618
  * @param account
518
619
  */
519
620
  readAccountFromCache(account) {
520
621
  const accountKey = AccountEntity.generateAccountCacheKey(account);
521
- return this.getAccount(accountKey);
622
+ return this.getAccount(accountKey, this.commonLogger);
522
623
  }
523
624
  /**
524
625
  * Retrieve IdTokenEntity from cache
525
626
  * @param account {AccountInfo}
526
627
  * @param tokenKeys {?TokenKeys}
628
+ * @param targetRealm {?string}
527
629
  * @param performanceClient {?IPerformanceClient}
528
630
  * @param correlationId {?string}
529
631
  */
530
- getIdToken(account, tokenKeys, performanceClient, correlationId) {
632
+ getIdToken(account, tokenKeys, targetRealm, performanceClient, correlationId) {
531
633
  this.commonLogger.trace("CacheManager - getIdToken called");
532
634
  const idTokenFilter = {
533
635
  homeAccountId: account.homeAccountId,
534
636
  environment: account.environment,
535
637
  credentialType: CredentialType.ID_TOKEN,
536
638
  clientId: this.clientId,
537
- realm: account.tenantId,
639
+ realm: targetRealm,
538
640
  };
539
- const idTokens = this.getIdTokensByFilter(idTokenFilter, tokenKeys);
540
- const numIdTokens = idTokens.length;
641
+ const idTokenMap = this.getIdTokensByFilter(idTokenFilter, tokenKeys);
642
+ const numIdTokens = idTokenMap.size;
541
643
  if (numIdTokens < 1) {
542
644
  this.commonLogger.info("CacheManager:getIdToken - No token found");
543
645
  return null;
544
646
  }
545
647
  else if (numIdTokens > 1) {
546
- this.commonLogger.info("CacheManager:getIdToken - Multiple id tokens found, clearing them");
547
- idTokens.forEach((idToken) => {
548
- this.removeIdToken(generateCredentialKey(idToken));
648
+ let tokensToBeRemoved = idTokenMap;
649
+ // Multiple tenant profiles and no tenant specified, pick home account
650
+ if (!targetRealm) {
651
+ const homeIdTokenMap = new Map();
652
+ idTokenMap.forEach((idToken, key) => {
653
+ if (idToken.realm === account.tenantId) {
654
+ homeIdTokenMap.set(key, idToken);
655
+ }
656
+ });
657
+ const numHomeIdTokens = homeIdTokenMap.size;
658
+ if (numHomeIdTokens < 1) {
659
+ this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result");
660
+ return idTokenMap.values().next().value;
661
+ }
662
+ else if (numHomeIdTokens === 1) {
663
+ this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile");
664
+ return homeIdTokenMap.values().next().value;
665
+ }
666
+ else {
667
+ // Multiple ID tokens for home tenant profile, remove all and return null
668
+ tokensToBeRemoved = homeIdTokenMap;
669
+ }
670
+ }
671
+ // Multiple tokens for a single tenant profile, remove all and return null
672
+ this.commonLogger.info("CacheManager:getIdToken - Multiple matching ID tokens found, clearing them");
673
+ tokensToBeRemoved.forEach((idToken, key) => {
674
+ this.removeIdToken(key);
549
675
  });
550
676
  if (performanceClient && correlationId) {
551
- performanceClient.addFields({ multiMatchedID: idTokens.length }, correlationId);
677
+ performanceClient.addFields({ multiMatchedID: idTokenMap.size }, correlationId);
552
678
  }
553
679
  return null;
554
680
  }
555
- this.commonLogger.info("CacheManager:getIdToken - Returning id token");
556
- return idTokens[0];
681
+ this.commonLogger.info("CacheManager:getIdToken - Returning ID token");
682
+ return idTokenMap.values().next().value;
557
683
  }
558
684
  /**
559
685
  * Gets all idTokens matching the given filter
@@ -562,7 +688,7 @@ class CacheManager {
562
688
  */
563
689
  getIdTokensByFilter(filter, tokenKeys) {
564
690
  const idTokenKeys = (tokenKeys && tokenKeys.idToken) || this.getTokenKeys().idToken;
565
- const idTokens = [];
691
+ const idTokens = new Map();
566
692
  idTokenKeys.forEach((key) => {
567
693
  if (!this.idTokenKeyMatchesFilter(key, {
568
694
  clientId: this.clientId,
@@ -572,7 +698,7 @@ class CacheManager {
572
698
  }
573
699
  const idToken = this.getIdTokenCredential(key);
574
700
  if (idToken && this.credentialMatchesFilter(idToken, filter)) {
575
- idTokens.push(idToken);
701
+ idTokens.set(key, idToken);
576
702
  }
577
703
  });
578
704
  return idTokens;
@@ -617,7 +743,7 @@ class CacheManager {
617
743
  * @param performanceClient {?IPerformanceClient}
618
744
  * @param correlationId {?string}
619
745
  */
620
- getAccessToken(account, request, tokenKeys, performanceClient, correlationId) {
746
+ getAccessToken(account, request, tokenKeys, targetRealm, performanceClient, correlationId) {
621
747
  this.commonLogger.trace("CacheManager - getAccessToken called");
622
748
  const scopes = ScopeSet.createSearchScopes(request.scopes);
623
749
  const authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;
@@ -635,7 +761,7 @@ class CacheManager {
635
761
  environment: account.environment,
636
762
  credentialType: credentialType,
637
763
  clientId: this.clientId,
638
- realm: account.tenantId,
764
+ realm: targetRealm || account.tenantId,
639
765
  target: scopes,
640
766
  tokenType: authScheme,
641
767
  keyId: request.sshKid,
@@ -844,19 +970,12 @@ class CacheManager {
844
970
  * @param localAccountId
845
971
  * @returns
846
972
  */
847
- matchLocalAccountId(entity, localAccountId) {
848
- return !!(typeof entity.localAccountId === "string" &&
849
- localAccountId === entity.localAccountId);
973
+ matchLocalAccountIdFromTokenClaims(tokenClaims, localAccountId) {
974
+ const idTokenLocalAccountId = tokenClaims.oid || tokenClaims.sub;
975
+ return localAccountId === idTokenLocalAccountId;
850
976
  }
851
- /**
852
- * helper to match usernames
853
- * @param entity
854
- * @param username
855
- * @returns
856
- */
857
- matchUsername(entity, username) {
858
- return !!(typeof entity.username === "string" &&
859
- username.toLowerCase() === entity.username.toLowerCase());
977
+ matchLocalAccountIdFromTenantProfile(tenantProfile, localAccountId) {
978
+ return tenantProfile.localAccountId === localAccountId;
860
979
  }
861
980
  /**
862
981
  * helper to match names
@@ -864,8 +983,19 @@ class CacheManager {
864
983
  * @param name
865
984
  * @returns true if the downcased name properties are present and match in the filter and the entity
866
985
  */
867
- matchName(entity, name) {
868
- return !!(name.toLowerCase() === entity.name?.toLowerCase());
986
+ matchName(claims, name) {
987
+ return !!(name.toLowerCase() === claims.name?.toLowerCase());
988
+ }
989
+ /**
990
+ * helper to match usernames
991
+ * @param entity
992
+ * @param username
993
+ * @returns
994
+ */
995
+ matchUsername(cachedUsername, filterUsername) {
996
+ return !!(cachedUsername &&
997
+ typeof cachedUsername === "string" &&
998
+ filterUsername?.toLowerCase() === cachedUsername.toLowerCase());
869
999
  }
870
1000
  /**
871
1001
  * helper to match assertion
@@ -929,7 +1059,7 @@ class CacheManager {
929
1059
  * @param realm
930
1060
  */
931
1061
  matchRealm(entity, realm) {
932
- return !!(entity.realm && realm === entity.realm);
1062
+ return !!(entity.realm?.toLowerCase() === realm.toLowerCase());
933
1063
  }
934
1064
  /**
935
1065
  * helper to match nativeAccountId
@@ -949,26 +1079,26 @@ class CacheManager {
949
1079
  * @param loginHint
950
1080
  * @returns
951
1081
  */
952
- matchLoginHint(idTokenClaims, loginHint) {
953
- if (idTokenClaims?.login_hint === loginHint) {
1082
+ matchLoginHintFromTokenClaims(tokenClaims, loginHint) {
1083
+ if (tokenClaims.login_hint === loginHint) {
954
1084
  return true;
955
1085
  }
956
- if (idTokenClaims.preferred_username === loginHint) {
1086
+ if (tokenClaims.preferred_username === loginHint) {
957
1087
  return true;
958
1088
  }
959
- if (idTokenClaims?.upn === loginHint) {
1089
+ if (tokenClaims.upn === loginHint) {
960
1090
  return true;
961
1091
  }
962
1092
  return false;
963
1093
  }
964
1094
  /**
965
1095
  * Helper to match sid
966
- * @param idTokenClaims
1096
+ * @param entity
967
1097
  * @param sid
968
1098
  * @returns true if the sid claim is present and matches the filter
969
1099
  */
970
1100
  matchSid(idTokenClaims, sid) {
971
- return !!(idTokenClaims?.sid && idTokenClaims.sid === sid);
1101
+ return idTokenClaims.sid === sid;
972
1102
  }
973
1103
  matchAuthorityType(entity, authorityType) {
974
1104
  return !!(entity.authorityType &&
@@ -1045,6 +1175,9 @@ class DefaultStorageClass extends CacheManager {
1045
1175
  getAccount() {
1046
1176
  throw createClientAuthError(methodNotImplemented);
1047
1177
  }
1178
+ getCachedAccountEntity() {
1179
+ throw createClientAuthError(methodNotImplemented);
1180
+ }
1048
1181
  setIdTokenCredential() {
1049
1182
  throw createClientAuthError(methodNotImplemented);
1050
1183
  }
@@ -1111,6 +1244,9 @@ class DefaultStorageClass extends CacheManager {
1111
1244
  updateCredentialCacheKey() {
1112
1245
  throw createClientAuthError(methodNotImplemented);
1113
1246
  }
1247
+ removeOutdatedAccount() {
1248
+ throw createClientAuthError(methodNotImplemented);
1249
+ }
1114
1250
  }
1115
1251
 
1116
1252
  export { CacheManager, DefaultStorageClass };
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.mjs","sources":["../../src/cache/CacheManager.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.invalidCacheRecord","ClientAuthErrorCodes.bindingKeyNotRemoved"],"mappings":"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"}
1
+ {"version":3,"file":"CacheManager.mjs","sources":["../../src/cache/CacheManager.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.invalidCacheRecord","ClientAuthErrorCodes.bindingKeyNotRemoved","ClientAuthErrorCodes.multipleMatchingAppMetadata","ClientAuthErrorCodes.methodNotImplemented"],"mappings":";;;;;;;;;;;;;AAAA;;;AAGG;AAqDH;;;AAGG;MACmB,YAAY,CAAA;AAO9B,IAAA,WAAA,CACI,QAAgB,EAChB,UAAmB,EACnB,MAAc,EACd,sBAA+C,EAAA;AAE/C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;KACxD;AAgLD;;;;AAIG;AACH,IAAA,cAAc,CAAC,aAA6B,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAC3B,IAAI,CAAC,qBAAqB,CAAC,aAAa,IAAI,EAAE,CAAC,EAC/C,aAAa,CAChB,CAAC;KACL;AAED;;AAEG;AACH,IAAA,wBAAwB,CAAC,aAA4B,EAAA;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AACvD,QAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;;YAExB,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;AAChD,gBAAA,OAAO,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;;AAEjC,YAAA,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;AAED;;;;AAIG;AACH,IAAA,kBAAkB,CAAC,aAA4B,EAAA;QAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAClE,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;AAC9C,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;AAED;;;;;;AAMG;IACK,mBAAmB,CACvB,cAA+B,EAC/B,aAA6B,EAAA;AAE7B,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,KAAI;YAC5C,OAAO,IAAI,CAAC,+BAA+B,CACvC,aAAa,EACb,aAAa,CAChB,CAAC;AACN,SAAC,CAAC,CAAC;KACN;IAEO,+BAA+B,CACnC,aAA4B,EAC5B,aAA6B,EAAA;AAE7B,QAAA,OAAO,IAAI,CAAC,kCAAkC,CAC1C,aAAa,EACb,aAAa,EAAE,QAAQ,EACvB,aAAa,CAChB,CAAC;KACL;AAEO,IAAA,8BAA8B,CAClC,WAAwB,EACxB,SAAoB,EACpB,aAA4B,EAC5B,mBAAyC,EAAA;QAEzC,IAAI,mBAAmB,GAAuB,IAAI,CAAC;AACnD,QAAA,IAAI,aAAsC,CAAC;AAE3C,QAAA,IAAI,mBAAmB,EAAE;YACrB,IACI,CAAC,IAAI,CAAC,0BAA0B,CAC5B,aAAa,EACb,mBAAmB,CACtB,EACH;AACE,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACJ,SAAA;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAC3B,WAAW,EACX,SAAS,EACT,aAAa,CAAC,QAAQ,CACzB,CAAC;AAEF,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,aAAa,GAAG,kBAAkB,CAC9B,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,UAAU,CAAC,YAAY,CAC/B,CAAC;YAEF,IACI,CAAC,IAAI,CAAC,qCAAqC,CACvC,aAAa,EACb,mBAAmB,CACtB,EACH;;AAEE,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACJ,SAAA;;QAGD,mBAAmB,GAAG,8BAA8B,CAChD,WAAW,EACX,aAAa,EACb,aAAa,CAChB,CAAC;AAEF,QAAA,OAAO,mBAAmB,CAAC;KAC9B;AAEO,IAAA,kCAAkC,CACtC,aAA4B,EAC5B,cAAuB,EACvB,mBAAyC,EAAA;AAEzC,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;QACnD,IAAI,oBAAoB,GACpB,WAAW,CAAC,cAAc,IAAI,IAAI,GAAG,EAAyB,CAAC;AACnE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;;AAGtC,QAAA,IAAI,cAAc,EAAE;YAChB,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC/D,YAAA,IAAI,aAAa,EAAE;;gBAEf,oBAAoB,GAAG,IAAI,GAAG,CAAwB;oBAClD,CAAC,cAAc,EAAE,aAAa,CAAC;AAClC,iBAAA,CAAC,CAAC;AACN,aAAA;AAAM,iBAAA;;AAEH,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;AACJ,SAAA;QAED,MAAM,sBAAsB,GAAkB,EAAE,CAAC;AACjD,QAAA,oBAAoB,CAAC,OAAO,CAAC,CAAC,aAA4B,KAAI;AAC1D,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,CAC3D,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,CACtB,CAAC;AACF,YAAA,IAAI,mBAAmB,EAAE;AACrB,gBAAA,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACpD,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,sBAAsB,CAAC;KACjC;IAEO,0BAA0B,CAC9B,aAA4B,EAC5B,mBAAwC,EAAA;AAExC,QAAA,IACI,CAAC,CAAC,mBAAmB,CAAC,cAAc;YACpC,CAAC,IAAI,CAAC,oCAAoC,CACtC,aAAa,EACb,mBAAmB,CAAC,cAAc,CACrC,EACH;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IACI,CAAC,CAAC,mBAAmB,CAAC,IAAI;YAC1B,EAAE,aAAa,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,CAAC,EACpD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IACI,mBAAmB,CAAC,YAAY,KAAK,SAAS;YAC9C,EAAE,aAAa,CAAC,YAAY,KAAK,mBAAmB,CAAC,YAAY,CAAC,EACpE;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;IAEO,qCAAqC,CACzC,aAA0B,EAC1B,mBAAyC,EAAA;;AAGzC,QAAA,IAAI,mBAAmB,EAAE;AACrB,YAAA,IACI,CAAC,CAAC,mBAAmB,CAAC,cAAc;gBACpC,CAAC,IAAI,CAAC,kCAAkC,CACpC,aAAa,EACb,mBAAmB,CAAC,cAAc,CACrC,EACH;AACE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AAED,YAAA,IACI,CAAC,CAAC,mBAAmB,CAAC,SAAS;gBAC/B,CAAC,IAAI,CAAC,6BAA6B,CAC/B,aAAa,EACb,mBAAmB,CAAC,SAAS,CAChC,EACH;AACE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AAED,YAAA,IACI,CAAC,CAAC,mBAAmB,CAAC,QAAQ;AAC9B,gBAAA,CAAC,IAAI,CAAC,aAAa,CACf,aAAa,CAAC,kBAAkB,EAChC,mBAAmB,CAAC,QAAQ,CAC/B,EACH;AACE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AAED,YAAA,IACI,CAAC,CAAC,mBAAmB,CAAC,IAAI;gBAC1B,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAC1D;AACE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AAED,YAAA,IACI,CAAC,CAAC,mBAAmB,CAAC,GAAG;gBACzB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC,EACxD;AACE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;AAGG;AACH,IAAA,MAAM,eAAe,CACjB,WAAwB,EACxB,YAA2B,EAAA;QAE3B,IAAI,CAAC,WAAW,EAAE;AACd,YAAA,MAAM,qBAAqB,CACvBA,kBAAuC,CAC1C,CAAC;AACL,SAAA;AAED,QAAA,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACxC,SAAA;QAED,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK,KAAK,EAAE;AAC1D,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAClD,SAAA;QAED,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,IAAI,YAAY,EAAE,WAAW,KAAK,KAAK,EAAE;YAClE,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AACvD,SAAA;AAED,QAAA,IACI,CAAC,CAAC,WAAW,CAAC,YAAY;AAC1B,YAAA,YAAY,EAAE,YAAY,KAAK,KAAK,EACtC;AACE,YAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC5D,SAAA;AAED,QAAA,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAChD,SAAA;KACJ;AAED;;;AAGG;IACK,MAAM,eAAe,CACzB,UAA6B,EAAA;AAE7B,QAAA,MAAM,iBAAiB,GAAqB;YACxC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;SACtD,CAAC;AAEF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,mBAAmB,GAAyB,EAAE,CAAC;QACrD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YAClC,IACI,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAClE;gBACE,OAAO;AACV,aAAA;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAEvD,YAAA,IACI,WAAW;AACX,gBAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAC9D;gBACE,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9D,gBAAA,IAAI,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE;oBACpD,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;KAC7C;AAED;;;;AAIG;AACH,IAAA,qBAAqB,CAAC,aAA4B,EAAA;AAC9C,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,gBAAgB,GAAoB,EAAE,CAAC;AAC7C,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;YAChC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,EAAE;;gBAE3D,OAAO;AACV,aAAA;AAED,YAAA,MAAM,MAAM,GAAyB,IAAI,CAAC,UAAU,CAChD,QAAQ,EACR,IAAI,CAAC,YAAY,CACpB,CAAC;;YAIF,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;AACV,aAAA;AAED,YAAA,IACI,CAAC,CAAC,aAAa,CAAC,aAAa;gBAC7B,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,EAC/D;gBACE,OAAO;AACV,aAAA;AAED,YAAA,IACI,CAAC,CAAC,aAAa,CAAC,QAAQ;AACxB,gBAAA,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC9D;gBACE,OAAO;AACV,aAAA;AAED,YAAA,IACI,CAAC,CAAC,aAAa,CAAC,WAAW;gBAC3B,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAC3D;gBACE,OAAO;AACV,aAAA;AAED,YAAA,IACI,CAAC,CAAC,aAAa,CAAC,KAAK;gBACrB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAC/C;gBACE,OAAO;AACV,aAAA;AAED,YAAA,IACI,CAAC,CAAC,aAAa,CAAC,eAAe;gBAC/B,CAAC,IAAI,CAAC,oBAAoB,CACtB,MAAM,EACN,aAAa,CAAC,eAAe,CAChC,EACH;gBACE,OAAO;AACV,aAAA;AAED,YAAA,IACI,CAAC,CAAC,aAAa,CAAC,aAAa;gBAC7B,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,EAC/D;gBACE,OAAO;AACV,aAAA;;AAGD,YAAA,MAAM,mBAAmB,GAAwB;gBAC7C,cAAc,EAAE,aAAa,EAAE,cAAc;gBAC7C,IAAI,EAAE,aAAa,EAAE,IAAI;aAC5B,CAAC;YAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CACxD,CAAC,aAA4B,KAAI;gBAC7B,OAAO,IAAI,CAAC,0BAA0B,CAClC,aAAa,EACb,mBAAmB,CACtB,CAAC;AACN,aAAC,CACJ,CAAC;AAEF,YAAA,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAE/D,OAAO;AACV,aAAA;AAED,YAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,gBAAgB,CAAC;KAC3B;AAED;;;;;;AAMG;AACH,IAAA,YAAY,CACR,GAAW,EACX,aAAsB,EACtB,QAAiB,EAAA;AAEjB,QAAA,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEtD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IACI,aAAa;AACb,YAAA,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAC1D;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;AACjE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;;AAID,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEtD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;;QAEvC,IACI,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AACvD,YAAA,CAAC,CAAC;YACN,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AAC3D,gBAAA,CAAC,CAAC;AACN,YAAA,YAAY,CAAC,OAAO,CAChB,cAAc,CAAC,6BAA6B,CAAC,WAAW,EAAE,CAC7D,KAAK,CAAC,CAAC;YACR,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AAC5D,gBAAA,CAAC,CAAC,EACR;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IACI,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AAChE,YAAA,CAAC,CAAC,EACJ;;AAEE,YAAA,MAAM,kBAAkB,GAAG,CAAA,EAAG,cAAc,CAAC,aAAa,GAAG,UAAU,CAAC,mBAAmB,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAA,EAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC;AAC/I,YAAA,MAAM,kBAAkB,GAAG,CAAA,EAAG,cAAc,CAAC,aAAa,CAAG,EAAA,UAAU,CAAC,mBAAmB,GAAG,aAAa,CAAA,EAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC;YAC/I,IACI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC7D,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAC/D;AACE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;;AAEjE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;;;AAKG;IACH,uBAAuB,CACnB,MAA2B,EAC3B,MAAwB,EAAA;AAExB,QAAA,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AACnE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IACI,CAAC,CAAC,MAAM,CAAC,iBAAiB;YAC1B,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAChE;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED;;;AAGG;AACH,QAAA,IACI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;YACxC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EACxD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IACI,CAAC,CAAC,MAAM,CAAC,WAAW;YACpB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EACpD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;AAC1D,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IACI,CAAC,CAAC,MAAM,CAAC,cAAc;YACvB,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,EAC1D;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AACnE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED;;;AAGG;AACH,QAAA,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;AAC7D,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;;AAGD,QAAA,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,EAAE;;AAE1D,YAAA,IAAI,MAAM,CAAC,mBAAmB,KAAK,MAAM,CAAC,mBAAmB,EAAE;AAC3D,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;;QAGD,IACI,MAAM,CAAC,cAAc;YACrB,cAAc,CAAC,6BAA6B,EAC9C;AACE,YAAA,IACI,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EAChD;AACE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;;AAGD,YAAA,IAAI,MAAM,CAAC,SAAS,KAAK,oBAAoB,CAAC,GAAG,EAAE;AAC/C,gBAAA,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;AACxD,oBAAA,OAAO,KAAK,CAAC;AAChB,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;AAGG;AACH,IAAA,wBAAwB,CAAC,MAAyB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,gCAAgC,CACxC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,QAAQ,CAClB,CAAC;KACL;AAED;;;;AAIG;IACK,gCAAgC,CACpC,WAAoB,EACpB,QAAiB,EAAA;AAEjB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,mBAAmB,GAAqB,EAAE,CAAC;AAEjD,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;;AAE9B,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;gBAC/B,OAAO;AACV,aAAA;;YAGD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAE7C,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;AACV,aAAA;AAED,YAAA,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;gBAC9D,OAAO;AACV,aAAA;AAED,YAAA,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;gBACrD,OAAO;AACV,aAAA;AAED,YAAA,mBAAmB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC3C,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,mBAAmB,CAAC;KAC9B;AAED;;;AAGG;AACH,IAAA,2BAA2B,CAAC,IAAY,EAAA;AACpC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACrD,IAAI,aAAa,GAAG,IAAI,CAAC;AAEzB,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;;AAE9B,YAAA,IACI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;gBACnC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EACxC;gBACE,OAAO;AACV,aAAA;;YAGD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAEnD,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;AACV,aAAA;YAED,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrC,OAAO;AACV,aAAA;YAED,aAAa,GAAG,MAAM,CAAC;AAC3B,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,aAAa,CAAC;KACxB;AAED;;AAEG;AACH,IAAA,MAAM,iBAAiB,GAAA;AACnB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAyB,EAAE,CAAC;AAEjD,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;YAChC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KACtC;AAED;;;AAGG;IACH,MAAM,aAAa,CAAC,UAAkB,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;AACV,SAAA;AACD,QAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;KAC/B;AAED;;;AAGG;IACH,MAAM,oBAAoB,CAAC,OAAsB,EAAA;AAC7C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACzC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9C,MAAM,kBAAkB,GAAyB,EAAE,CAAC;QAEpD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACjC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC3B,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACrC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC9B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACtC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAChC,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;KACzC;AAED;;;;;;;AAOG;AACO,IAAA,2BAA2B,CACjC,UAAkB,EAClB,aAAmC,EACnC,MAAe,EAAA;;AAGf,QAAA,IAAI,aAAa,IAAI,aAAa,CAAC,cAAc,EAAE,EAAE;AACjD,YAAA,IAAI,CAAC,YAAY,EAAE,OAAO,CACtB,qIAAqI,CACxI,CAAC;;AAGF,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CACpD,CAAC,GAAW,KAAI;gBACZ,OAAO,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AACvD,aAAC,CACJ,CAAC;;YAGF,MAAM,eAAe,GAAoB,EAAE,CAAC;AAC5C,YAAA,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;AACjD,gBAAA,IAAI,OAAO,EAAE;AACT,oBAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,iBAAA;AACL,aAAC,CAAC,CAAC;;YAGH,MAAM,WAAW,GACb,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;gBAC7B,OAAO,yBAAyB,CAC5B,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,aAAa,CACxB,CAAC;AACN,aAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;;YAG7B,WAAW,CAAC,cAAc,GAAG,eAAe,CAAC,GAAG,CAC5C,CAAC,OAAsB,KAAI;gBACvB,OAAO;oBACH,QAAQ,EAAE,OAAO,CAAC,KAAK;oBACvB,cAAc,EAAE,OAAO,CAAC,cAAc;oBACtC,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,YAAY,EAAE,yBAAyB,CACnC,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,aAAa,CACxB;iBACJ,CAAC;AACN,aAAC,CACJ,CAAC;YAEF,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,EAAE;AAC9D,gBAAA,GAAG,WAAW;AACjB,aAAA,CAAC,CAAC;AAEH,YAAA,MAAM,aAAa,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;;AAG1D,YAAA,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;gBACxC,IAAI,GAAG,KAAK,aAAa,EAAE;AACvB,oBAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC1C,iBAAA;AACL,aAAC,CAAC,CAAC;;AAGH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAChC,YAAA,MAAM,EAAE,OAAO,CAAC,iDAAiD,CAAC,CAAC;AACnE,YAAA,OAAO,cAAc,CAAC;AACzB,SAAA;;AAGD,QAAA,OAAO,aAAa,CAAC;KACxB;AAED;;;AAGG;IACH,MAAM,iBAAiB,CAAC,GAAW,EAAA;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE;YACb,OAAO;AACV,SAAA;;AAGD,QAAA,IACI,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE;AACvC,YAAA,cAAc,CAAC,6BAA6B,CAAC,WAAW,EAAE,EAC5D;AACE,YAAA,IAAI,UAAU,CAAC,SAAS,KAAK,oBAAoB,CAAC,GAAG,EAAE;gBACnD,MAAM,+BAA+B,GACjC,UAA+B,CAAC;AACpC,gBAAA,MAAM,GAAG,GAAG,+BAA+B,CAAC,KAAK,CAAC;AAElD,gBAAA,IAAI,GAAG,EAAE;oBACL,IAAI;wBACA,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACpD,qBAAA;AAAC,oBAAA,OAAO,KAAK,EAAE;AACZ,wBAAA,MAAM,qBAAqB,CACvBC,oBAAyC,CAC5C,CAAC;AACL,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC/B;AAED;;AAEG;IACH,iBAAiB,GAAA;AACb,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AACpC,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC9B,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7B,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;AAGG;AACH,IAAA,oBAAoB,CAAC,OAAoB,EAAA;QACrC,MAAM,UAAU,GACZ,aAAa,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACzD;AAED;;;;;;;AAOG;IACH,UAAU,CACN,OAAoB,EACpB,SAAqB,EACrB,WAAoB,EACpB,iBAAsC,EACtC,aAAsB,EAAA;AAEtB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAC5D,QAAA,MAAM,aAAa,GAAqB;YACpC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,cAAc,EAAE,cAAc,CAAC,QAAQ;YACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,KAAK,EAAE,WAAW;SACrB,CAAC;QAEF,MAAM,UAAU,GAA+B,IAAI,CAAC,mBAAmB,CACnE,aAAa,EACb,SAAS,CACZ,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;QAEpC,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;AACnE,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;aAAM,IAAI,WAAW,GAAG,CAAC,EAAE;YACxB,IAAI,iBAAiB,GAA+B,UAAU,CAAC;;YAE/D,IAAI,CAAC,WAAW,EAAE;AACd,gBAAA,MAAM,cAAc,GAA+B,IAAI,GAAG,EAGvD,CAAC;gBACJ,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,KAAI;AAChC,oBAAA,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,EAAE;AACpC,wBAAA,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACpC,qBAAA;AACL,iBAAC,CAAC,CAAC;AACH,gBAAA,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC;gBAC5C,IAAI,eAAe,GAAG,CAAC,EAAE;AACrB,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAClB,gIAAgI,CACnI,CAAC;oBACF,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAC3C,iBAAA;qBAAM,IAAI,eAAe,KAAK,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAClB,mGAAmG,CACtG,CAAC;oBACF,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAC/C,iBAAA;AAAM,qBAAA;;oBAEH,iBAAiB,GAAG,cAAc,CAAC;AACtC,iBAAA;AACJ,aAAA;;AAED,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAClB,4EAA4E,CAC/E,CAAC;YACF,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,KAAI;AACvC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAC,CAAC,CAAC;YACH,IAAI,iBAAiB,IAAI,aAAa,EAAE;AACpC,gBAAA,iBAAiB,CAAC,SAAS,CACvB,EAAE,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,EACnC,aAAa,CAChB,CAAC;AACL,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACvE,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;KAC3C;AAED;;;;AAIG;IACH,mBAAmB,CACf,MAAwB,EACxB,SAAqB,EAAA;AAErB,QAAA,MAAM,WAAW,GACb,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC;AAEpE,QAAA,MAAM,QAAQ,GAA+B,IAAI,GAAG,EAGjD,CAAC;AACJ,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACxB,YAAA,IACI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,GAAG,MAAM;AACZ,aAAA,CAAC,EACJ;gBACE,OAAO;AACV,aAAA;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;AAC1D,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9B,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,QAAQ,CAAC;KACnB;AAED;;;;;AAKG;IACH,uBAAuB,CACnB,QAAgB,EAChB,MAAwB,EAAA;AAExB,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnC,IACI,MAAM,CAAC,QAAQ;AACf,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EACnD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IACI,MAAM,CAAC,aAAa;AACpB,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EACxD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,GAAW,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KACxB;AAED;;;AAGG;AACH,IAAA,kBAAkB,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KACxB;AAED;;;;;;;AAOG;IACH,cAAc,CACV,OAAoB,EACpB,OAAwB,EACxB,SAAqB,EACrB,WAAoB,EACpB,iBAAsC,EACtC,aAAsB,EAAA;AAEtB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,UAAU,GACZ,OAAO,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,CAAC;AAChE;;;AAGG;QACH,MAAM,cAAc,GAChB,UAAU;YACV,UAAU,CAAC,WAAW,EAAE;AACpB,gBAAA,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE;cACvC,cAAc,CAAC,6BAA6B;AAC9C,cAAE,cAAc,CAAC,YAAY,CAAC;AAEtC,QAAA,MAAM,iBAAiB,GAAqB;YACxC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;AAChC,YAAA,cAAc,EAAE,cAAc;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,KAAK,EAAE,WAAW,IAAI,OAAO,CAAC,QAAQ;AACtC,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACnD,CAAC;QAEF,MAAM,eAAe,GACjB,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW;AACnC,YAAA,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;QACpC,MAAM,YAAY,GAAwB,EAAE,CAAC;AAE7C,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;YAE5B,IACI,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAChE;gBACE,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;;AAGvD,gBAAA,IACI,WAAW;AACX,oBAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAC9D;AACE,oBAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC;QAC5C,IAAI,eAAe,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAClB,8CAA8C,CACjD,CAAC;AACF,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;aAAM,IAAI,eAAe,GAAG,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAClB,2EAA2E,CAC9E,CAAC;AACF,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;gBACjC,KAAK,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;AACpE,aAAC,CAAC,CAAC;YACH,IAAI,iBAAiB,IAAI,aAAa,EAAE;AACpC,gBAAA,iBAAiB,CAAC,SAAS,CACvB,EAAE,cAAc,EAAE,YAAY,CAAC,MAAM,EAAE,EACvC,aAAa,CAChB,CAAC;AACL,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAClB,sDAAsD,CACzD,CAAC;AACF,QAAA,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;KAC1B;AAED;;;;;;AAMG;AACH,IAAA,2BAA2B,CACvB,QAAgB,EAChB,MAAwB,EACxB,uBAAgC,EAAA;AAEhC,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnC,IACI,MAAM,CAAC,QAAQ;AACf,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EACnD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IACI,MAAM,CAAC,aAAa;AACpB,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EACxD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;AAChE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IACI,MAAM,CAAC,mBAAmB;AAC1B,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAC9D;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IAAI,MAAM,CAAC,MAAM,EAAE;YACf,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACvC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,gBAAA,IACI,uBAAuB;AACvB,oBAAA,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EACxC;;AAEE,oBAAA,OAAO,KAAK,CAAC;AAChB,iBAAA;AAAM,qBAAA,IACH,CAAC,uBAAuB;oBACxB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EACvC;;AAEE,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;;AAIG;AACH,IAAA,uBAAuB,CAAC,MAAwB,EAAA;AAC5C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YAClC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;gBACtD,OAAO;AACV,aAAA;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;AACvD,YAAA,IACI,WAAW;AACX,gBAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,EACnD;AACE,gBAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,YAAY,CAAC;KACvB;AAED;;;;;;;AAOG;IACH,eAAe,CACX,OAAoB,EACpB,QAAiB,EACjB,SAAqB,EACrB,iBAAsC,EACtC,aAAsB,EAAA;AAEtB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACjE,MAAM,EAAE,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAChD,QAAA,MAAM,kBAAkB,GAAqB;YACzC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,cAAc,EAAE,cAAc,CAAC,aAAa;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,QAAQ,EAAE,EAAE;SACf,CAAC;QAEF,MAAM,gBAAgB,GAClB,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY;AACpC,YAAA,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC;QACrC,MAAM,aAAa,GAAyB,EAAE,CAAC;AAE/C,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;YAE7B,IAAI,IAAI,CAAC,4BAA4B,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE;gBAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;;AAEzD,gBAAA,IACI,YAAY;AACZ,oBAAA,IAAI,CAAC,uBAAuB,CACxB,YAAY,EACZ,kBAAkB,CACrB,EACH;AACE,oBAAA,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpC,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC;QAC9C,IAAI,gBAAgB,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAClB,wDAAwD,CAC3D,CAAC;AACF,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;;AAGD,QAAA,IAAI,gBAAgB,GAAG,CAAC,IAAI,iBAAiB,IAAI,aAAa,EAAE;YAC5D,iBAAiB,CAAC,SAAS,CACvB,EAAE,cAAc,EAAE,gBAAgB,EAAE,EACpC,aAAa,CAChB,CAAC;AACL,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAClB,wDAAwD,CAC3D,CAAC;AACF,QAAA,OAAO,aAAa,CAAC,CAAC,CAAuB,CAAC;KACjD;AAED;;;;AAIG;IACH,4BAA4B,CACxB,QAAgB,EAChB,MAAwB,EAAA;AAExB,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnC,IACI,MAAM,CAAC,QAAQ;AACf,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EACnD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;;QAGD,IACI,CAAC,MAAM,CAAC,QAAQ;AAChB,YAAA,MAAM,CAAC,QAAQ;AACf,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EACnD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IACI,MAAM,CAAC,aAAa;AACpB,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EACxD;AACE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;AAEG;AACH,IAAA,wBAAwB,CAAC,WAAmB,EAAA;AACxC,QAAA,MAAM,iBAAiB,GAAsB;YACzC,WAAW;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC;QAEF,MAAM,WAAW,GACb,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,kBAAkB,GAAwB,MAAM,CAAC,IAAI,CACvD,WAAW,CACd,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjC,QAAA,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACjD,IAAI,cAAc,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;aAAM,IAAI,cAAc,GAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,qBAAqB,CACvBC,2BAAgD,CACnD,CAAC;AACL,SAAA;AAED,QAAA,OAAO,kBAAkB,CAAC,CAAC,CAAsB,CAAC;KACrD;AAED;;;;AAIG;AACH,IAAA,iBAAiB,CAAC,WAAmB,EAAA;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC/D,OAAO,CAAC,EAAE,WAAW,IAAI,WAAW,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC;KACpE;AAED;;;;AAIG;IACK,kBAAkB,CACtB,MAAwC,EACxC,aAAqB,EAAA;QAErB,OAAO,CAAC,EACJ,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;AACxC,YAAA,aAAa,KAAK,MAAM,CAAC,aAAa,CACzC,CAAC;KACL;AAED;;;;;AAKG;IACK,kCAAkC,CACtC,WAAwB,EACxB,cAAsB,EAAA;QAEtB,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC;QACjE,OAAO,cAAc,KAAK,qBAAqB,CAAC;KACnD;IAEO,oCAAoC,CACxC,aAA4B,EAC5B,cAAsB,EAAA;AAEtB,QAAA,OAAO,aAAa,CAAC,cAAc,KAAK,cAAc,CAAC;KAC1D;AAED;;;;;AAKG;IACK,SAAS,CAAC,MAAmB,EAAE,IAAY,EAAA;AAC/C,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;KAChE;AAED;;;;;AAKG;IACK,aAAa,CACjB,cAAuB,EACvB,cAAuB,EAAA;QAEvB,OAAO,CAAC,EACJ,cAAc;YACd,OAAO,cAAc,KAAK,QAAQ;YAClC,cAAc,EAAE,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CACjE,CAAC;KACL;AAED;;;;AAIG;IACK,sBAAsB,CAC1B,MAAwB,EACxB,iBAAyB,EAAA;AAEzB,QAAA,OAAO,CAAC,EACJ,MAAM,CAAC,iBAAiB;AACxB,YAAA,iBAAiB,KAAK,MAAM,CAAC,iBAAiB,CACjD,CAAC;KACL;AAED;;;;AAIG;IACK,gBAAgB,CACpB,MAA4D,EAC5D,WAAmB,EAAA;;QAGnB,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,MAAM,aAAa,GAAG,2BAA2B,CAC7C,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,YAAY,CACpB,CAAC;AACF,YAAA,IACI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;AACnC,gBAAA,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAC5C;AACE,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACJ,SAAA;;QAGD,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;AACpE,QAAA,IACI,aAAa;AACb,YAAA,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EACxD;AACE,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;;AAIG;IACK,mBAAmB,CACvB,MAAwB,EACxB,cAAsB,EAAA;QAEtB,QACI,MAAM,CAAC,cAAc;YACrB,cAAc,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,EACtE;KACL;AAED;;;;AAIG;IACK,aAAa,CACjB,MAA4C,EAC5C,QAAgB,EAAA;AAEhB,QAAA,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC9D;AAED;;;;AAIG;IACK,aAAa,CACjB,MAA4C,EAC5C,QAAgB,EAAA;AAEhB,QAAA,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC9D;AAED;;;;AAIG;IACK,UAAU,CACd,MAAwC,EACxC,KAAa,EAAA;AAEb,QAAA,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;KAClE;AAED;;;;;AAKG;IACK,oBAAoB,CACxB,MAAqB,EACrB,eAAuB,EAAA;AAEvB,QAAA,OAAO,CAAC,EACJ,MAAM,CAAC,eAAe,IAAI,eAAe,KAAK,MAAM,CAAC,eAAe,CACvE,CAAC;KACL;AAED;;;;;;;;AAQG;IACK,6BAA6B,CACjC,WAAwB,EACxB,SAAiB,EAAA;AAEjB,QAAA,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,kBAAkB,KAAK,SAAS,EAAE;AAC9C,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE;AAC/B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;;;AAKG;IACK,QAAQ,CAAC,aAA0B,EAAE,GAAW,EAAA;AACpD,QAAA,OAAO,aAAa,CAAC,GAAG,KAAK,GAAG,CAAC;KACpC;IAEO,kBAAkB,CACtB,MAAqB,EACrB,aAAqB,EAAA;AAErB,QAAA,OAAO,CAAC,EACJ,MAAM,CAAC,aAAa;YACpB,aAAa,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CACrE,CAAC;KACL;AAED;;;;AAIG;IACK,WAAW,CAAC,MAAwB,EAAE,MAAgB,EAAA;QAC1D,MAAM,0BAA0B,GAC5B,MAAM,CAAC,cAAc,KAAK,cAAc,CAAC,YAAY;AACrD,YAAA,MAAM,CAAC,cAAc;gBACjB,cAAc,CAAC,6BAA6B,CAAC;AAErD,QAAA,IAAI,0BAA0B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9C,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,MAAM,cAAc,GAAa,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEpE,QAAA,OAAO,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;KAClD;AAED;;;;AAIG;IACK,cAAc,CAClB,MAAwB,EACxB,SAA+B,EAAA;AAE/B,QAAA,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;KACjE;AAED;;;;AAIG;IACK,UAAU,CAAC,MAAwB,EAAE,KAAa,EAAA;AACtD,QAAA,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;KACrD;AAED;;;AAGG;AACK,IAAA,aAAa,CAAC,GAAW,EAAA;QAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3C;AAED;;;AAGG;AACO,IAAA,mBAAmB,CAAC,GAAW,EAAA;QACrC,OAAO,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACrE;AAED;;AAEG;AACH,IAAA,iCAAiC,CAAC,SAAiB,EAAA;QAC/C,OAAO,CAAA,EAAG,4BAA4B,CAAC,SAAS,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC;KACpF;AAED;;;;AAIG;AACH,IAAA,OAAO,QAAQ,CAAI,GAAM,EAAE,IAAY,EAAA;AACnC,QAAA,KAAK,MAAM,YAAY,IAAI,IAAI,EAAE;YAC7B,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACd;AACJ,CAAA;AAED;AACM,MAAO,mBAAoB,SAAQ,YAAY,CAAA;IACjD,UAAU,GAAA;AACN,QAAA,MAAM,qBAAqB,CAACC,oBAAyC,CAAC,CAAC;KAC1E;IACD,UAAU,GAAA;AACN,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,sBAAsB,GAAA;AAClB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,oBAAoB,GAAA;AAChB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,oBAAoB,GAAA;AAChB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,wBAAwB,GAAA;AACpB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,wBAAwB,GAAA;AACpB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,yBAAyB,GAAA;AACrB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,yBAAyB,GAAA;AACrB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,cAAc,GAAA;AACV,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,cAAc,GAAA;AACV,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,kBAAkB,GAAA;AACd,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,kBAAkB,GAAA;AACd,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,oBAAoB,GAAA;AAChB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,oBAAoB,GAAA;AAChB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,wBAAwB,GAAA;AACpB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,kBAAkB,GAAA;AACd,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,kBAAkB,GAAA;AACd,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,UAAU,GAAA;AACN,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,WAAW,GAAA;AACP,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,OAAO,GAAA;AACH,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,cAAc,GAAA;AACV,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,YAAY,GAAA;AACR,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;AACD,IAAA,MAAM,KAAK,GAAA;AACP,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,wBAAwB,GAAA;AACpB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;IACD,qBAAqB,GAAA;AACjB,QAAA,MAAM,qBAAqB,CAACA,oBAAyC,CAAC,CAAC;KAC1E;AACJ;;;;"}