@openora/core 0.4.1-canary.152 → 0.4.1-canary.154

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 (163) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/admin-console/__tests__/backoffice.service.int.test.js +20 -3
  3. package/dist/admin-console/__tests__/backoffice.service.int.test.js.map +1 -1
  4. package/dist/audit/__tests__/map-event.test.js +46 -0
  5. package/dist/audit/__tests__/map-event.test.js.map +1 -1
  6. package/dist/audit/plugin.d.ts.map +1 -1
  7. package/dist/audit/plugin.js +74 -1
  8. package/dist/audit/plugin.js.map +1 -1
  9. package/dist/audit/service/audit.service.d.ts.map +1 -1
  10. package/dist/audit/service/audit.service.js +1 -6
  11. package/dist/audit/service/audit.service.js.map +1 -1
  12. package/dist/casino/gaming/__tests__/admin-reporting.int.test.js +20 -3
  13. package/dist/casino/gaming/__tests__/admin-reporting.int.test.js.map +1 -1
  14. package/dist/casino/gaming/__tests__/game-category.service.int.test.d.ts +2 -0
  15. package/dist/casino/gaming/__tests__/game-category.service.int.test.d.ts.map +1 -0
  16. package/dist/casino/gaming/__tests__/game-category.service.int.test.js +134 -0
  17. package/dist/casino/gaming/__tests__/game-category.service.int.test.js.map +1 -0
  18. package/dist/casino/gaming/__tests__/game-provider.service.int.test.d.ts +2 -0
  19. package/dist/casino/gaming/__tests__/game-provider.service.int.test.d.ts.map +1 -0
  20. package/dist/casino/gaming/__tests__/game-provider.service.int.test.js +274 -0
  21. package/dist/casino/gaming/__tests__/game-provider.service.int.test.js.map +1 -0
  22. package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.d.ts +2 -0
  23. package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.d.ts.map +1 -0
  24. package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.js +174 -0
  25. package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.js.map +1 -0
  26. package/dist/casino/gaming/__tests__/gaming-migration.int.test.d.ts +2 -0
  27. package/dist/casino/gaming/__tests__/gaming-migration.int.test.d.ts.map +1 -0
  28. package/dist/casino/gaming/__tests__/gaming-migration.int.test.js +171 -0
  29. package/dist/casino/gaming/__tests__/gaming-migration.int.test.js.map +1 -0
  30. package/dist/casino/gaming/__tests__/gaming.service.int.test.js +274 -13
  31. package/dist/casino/gaming/__tests__/gaming.service.int.test.js.map +1 -1
  32. package/dist/casino/gaming/contract/index.d.ts +520 -18
  33. package/dist/casino/gaming/contract/index.d.ts.map +1 -1
  34. package/dist/casino/gaming/contract/index.js +167 -4
  35. package/dist/casino/gaming/contract/index.js.map +1 -1
  36. package/dist/casino/gaming/drizzle/migrations/0005_natural_thunderbolt_ross.sql +223 -0
  37. package/dist/casino/gaming/drizzle/migrations/meta/0005_snapshot.json +680 -0
  38. package/dist/casino/gaming/drizzle/migrations/meta/_journal.json +7 -0
  39. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  40. package/dist/casino/gaming/plugin.js +9 -2
  41. package/dist/casino/gaming/plugin.js.map +1 -1
  42. package/dist/casino/gaming/router/index.d.ts +372 -18
  43. package/dist/casino/gaming/router/index.d.ts.map +1 -1
  44. package/dist/casino/gaming/router/index.js +62 -6
  45. package/dist/casino/gaming/router/index.js.map +1 -1
  46. package/dist/casino/gaming/schema/index.d.ts +499 -4
  47. package/dist/casino/gaming/schema/index.d.ts.map +1 -1
  48. package/dist/casino/gaming/schema/index.js +72 -6
  49. package/dist/casino/gaming/schema/index.js.map +1 -1
  50. package/dist/casino/gaming/service/game-category.service.d.ts +109 -0
  51. package/dist/casino/gaming/service/game-category.service.d.ts.map +1 -0
  52. package/dist/casino/gaming/service/game-category.service.js +176 -0
  53. package/dist/casino/gaming/service/game-category.service.js.map +1 -0
  54. package/dist/casino/gaming/service/game-provider.service.d.ts +118 -0
  55. package/dist/casino/gaming/service/game-provider.service.d.ts.map +1 -0
  56. package/dist/casino/gaming/service/game-provider.service.js +251 -0
  57. package/dist/casino/gaming/service/game-provider.service.js.map +1 -0
  58. package/dist/casino/gaming/service/gaming.service.d.ts +122 -14
  59. package/dist/casino/gaming/service/gaming.service.d.ts.map +1 -1
  60. package/dist/casino/gaming/service/gaming.service.js +189 -23
  61. package/dist/casino/gaming/service/gaming.service.js.map +1 -1
  62. package/dist/casino/lobby/__tests__/lobby.cache.int.test.js +137 -4
  63. package/dist/casino/lobby/__tests__/lobby.cache.int.test.js.map +1 -1
  64. package/dist/casino/lobby/contract/index.d.ts +68 -8
  65. package/dist/casino/lobby/contract/index.d.ts.map +1 -1
  66. package/dist/casino/lobby/contract/index.js +4 -3
  67. package/dist/casino/lobby/contract/index.js.map +1 -1
  68. package/dist/casino/lobby/router/index.d.ts +34 -4
  69. package/dist/casino/lobby/router/index.d.ts.map +1 -1
  70. package/dist/casino/lobby/service/lobby.service.d.ts +34 -4
  71. package/dist/casino/lobby/service/lobby.service.d.ts.map +1 -1
  72. package/dist/casino/lobby/service/lobby.service.js +60 -26
  73. package/dist/casino/lobby/service/lobby.service.js.map +1 -1
  74. package/dist/casino/shared/game-catalog.d.ts +32 -0
  75. package/dist/casino/shared/game-catalog.d.ts.map +1 -0
  76. package/dist/casino/shared/game-catalog.js +67 -0
  77. package/dist/casino/shared/game-catalog.js.map +1 -0
  78. package/dist/compliance/__tests__/compliance.service.int.test.js +248 -25
  79. package/dist/compliance/__tests__/compliance.service.int.test.js.map +1 -1
  80. package/dist/compliance/__tests__/regulatory-overview.router.int.test.d.ts +2 -0
  81. package/dist/compliance/__tests__/regulatory-overview.router.int.test.d.ts.map +1 -0
  82. package/dist/compliance/__tests__/regulatory-overview.router.int.test.js +102 -0
  83. package/dist/compliance/__tests__/regulatory-overview.router.int.test.js.map +1 -0
  84. package/dist/compliance/__tests__/rg-monitoring.service.int.test.js +17 -3
  85. package/dist/compliance/__tests__/rg-monitoring.service.int.test.js.map +1 -1
  86. package/dist/compliance/__tests__/rg-self-service.int.test.js +2 -2
  87. package/dist/compliance/__tests__/rg-self-service.int.test.js.map +1 -1
  88. package/dist/compliance/contract/index.d.ts +77 -2
  89. package/dist/compliance/contract/index.d.ts.map +1 -1
  90. package/dist/compliance/contract/index.js +50 -1
  91. package/dist/compliance/contract/index.js.map +1 -1
  92. package/dist/compliance/drizzle/migrations/0008_omniscient_northstar.sql +14 -0
  93. package/dist/compliance/drizzle/migrations/meta/0008_snapshot.json +870 -0
  94. package/dist/compliance/drizzle/migrations/meta/_journal.json +7 -0
  95. package/dist/compliance/plugin.d.ts.map +1 -1
  96. package/dist/compliance/plugin.js +2 -2
  97. package/dist/compliance/plugin.js.map +1 -1
  98. package/dist/compliance/router/index.d.ts +43 -1
  99. package/dist/compliance/router/index.d.ts.map +1 -1
  100. package/dist/compliance/router/index.js +32 -4
  101. package/dist/compliance/router/index.js.map +1 -1
  102. package/dist/compliance/schema/index.d.ts +181 -2
  103. package/dist/compliance/schema/index.d.ts.map +1 -1
  104. package/dist/compliance/schema/index.js +15 -2
  105. package/dist/compliance/schema/index.js.map +1 -1
  106. package/dist/compliance/server.d.ts +1 -1
  107. package/dist/compliance/server.d.ts.map +1 -1
  108. package/dist/compliance/server.js +1 -1
  109. package/dist/compliance/server.js.map +1 -1
  110. package/dist/compliance/service/compliance.service.d.ts +61 -14
  111. package/dist/compliance/service/compliance.service.d.ts.map +1 -1
  112. package/dist/compliance/service/compliance.service.js +226 -30
  113. package/dist/compliance/service/compliance.service.js.map +1 -1
  114. package/dist/contracts/__tests__/kit.test.js +21 -1
  115. package/dist/contracts/__tests__/kit.test.js.map +1 -1
  116. package/dist/contracts/adapters/audit.d.ts +1 -1
  117. package/dist/contracts/adapters/audit.d.ts.map +1 -1
  118. package/dist/contracts/adapters/audit.js.map +1 -1
  119. package/dist/contracts/kit.d.ts +3 -0
  120. package/dist/contracts/kit.d.ts.map +1 -1
  121. package/dist/contracts/kit.js +8 -0
  122. package/dist/contracts/kit.js.map +1 -1
  123. package/dist/contracts/schemas/__tests__/events.test.js +7 -0
  124. package/dist/contracts/schemas/__tests__/events.test.js.map +1 -1
  125. package/dist/contracts/schemas/__tests__/game-schemas.test.d.ts +2 -0
  126. package/dist/contracts/schemas/__tests__/game-schemas.test.d.ts.map +1 -0
  127. package/dist/contracts/schemas/__tests__/game-schemas.test.js +43 -0
  128. package/dist/contracts/schemas/__tests__/game-schemas.test.js.map +1 -0
  129. package/dist/contracts/schemas/events.d.ts +109 -0
  130. package/dist/contracts/schemas/events.d.ts.map +1 -1
  131. package/dist/contracts/schemas/events.js +87 -3
  132. package/dist/contracts/schemas/events.js.map +1 -1
  133. package/dist/contracts/schemas/game.d.ts +39 -0
  134. package/dist/contracts/schemas/game.d.ts.map +1 -1
  135. package/dist/contracts/schemas/game.js +32 -0
  136. package/dist/contracts/schemas/game.js.map +1 -1
  137. package/dist/contracts/schemas/iam.d.ts +2 -1
  138. package/dist/contracts/schemas/iam.d.ts.map +1 -1
  139. package/dist/contracts/schemas/iam.js +2 -1
  140. package/dist/contracts/schemas/iam.js.map +1 -1
  141. package/dist/iam/seed/data/default-admin-roles.d.ts.map +1 -1
  142. package/dist/iam/seed/data/default-admin-roles.js +1 -0
  143. package/dist/iam/seed/data/default-admin-roles.js.map +1 -1
  144. package/dist/iam/service/iam.service.d.ts +1 -1
  145. package/dist/react/client.d.ts +2 -1
  146. package/dist/react/client.d.ts.map +1 -1
  147. package/dist/react/client.js +2 -1
  148. package/dist/react/client.js.map +1 -1
  149. package/dist/server/auth/permissions.d.ts +24 -12
  150. package/dist/server/auth/permissions.d.ts.map +1 -1
  151. package/dist/server/auth/permissions.js +2 -1
  152. package/dist/server/auth/permissions.js.map +1 -1
  153. package/dist/server/db/__tests__/query-helpers.test.js +47 -1
  154. package/dist/server/db/__tests__/query-helpers.test.js.map +1 -1
  155. package/dist/server/db/index.d.ts +1 -1
  156. package/dist/server/db/index.d.ts.map +1 -1
  157. package/dist/server/db/index.js +1 -1
  158. package/dist/server/db/index.js.map +1 -1
  159. package/dist/server/db/query-helpers.d.ts +5 -0
  160. package/dist/server/db/query-helpers.d.ts.map +1 -1
  161. package/dist/server/db/query-helpers.js +37 -0
  162. package/dist/server/db/query-helpers.js.map +1 -1
  163. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-provider.service.js","sourceRoot":"","sources":["../../../../src/casino/gaming/service/game-provider.service.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
1
  import { type EventBus, DrizzleService } from '@openora/core/server';
2
- import { type GameAdapter, type PlayEligibilityPort, type RgLimitsPort, type WalletCommands, type IdentityReader, type User } from '@openora/core/contracts';
2
+ import { type ClientMeta, type GameAdapter, type PlayEligibilityPort, type RgLimitsPort, type WalletCommands, type IdentityReader, type User } from '@openora/core/contracts';
3
3
  import { type Game, type GameRound } from '../schema/index.js';
4
+ import type { ListAdminGamesInput, ListGamesInput, UpdateGameInput } from '../contract/index.js';
4
5
  export declare const GameNotFoundError: new (id: string) => Error & {
5
6
  data?: Record<string, string>;
6
7
  };
7
8
  export declare const GameRoundNotFoundError: new (id: string) => Error & {
8
9
  data?: Record<string, string>;
9
10
  };
11
+ export declare const GameSlugTakenError: new () => Error & {
12
+ data?: Record<string, string>;
13
+ };
14
+ export declare const GameAggregatorNotMappedError: new (providerId: string, aggregator: string) => Error & {
15
+ data?: Record<string, string>;
16
+ };
17
+ type Actor = {
18
+ actorId: User['id'];
19
+ } & ClientMeta;
10
20
  export declare const RgRestrictedError: new () => Error & {
11
21
  data?: Record<string, string>;
12
22
  };
@@ -28,21 +38,92 @@ export declare class GamingService {
28
38
  private readonly identityReader;
29
39
  private readonly rgLimits?;
30
40
  constructor(drizzle: DrizzleService, events: EventBus, provider: GameAdapter, playEligibility: PlayEligibilityPort, walletCommands: WalletCommands, identityReader: IdentityReader, rgLimits?: RgLimitsPort | undefined);
31
- listGames(): Promise<{
32
- id: string;
33
- name: string;
34
- provider: string;
35
- category: string;
36
- gameType: "sportsbook" | "original" | "casino";
37
- thumbnailUrl: string | null;
38
- isActive: boolean;
39
- metadata: unknown;
40
- }[]>;
41
- getGame(id: string): Promise<{
41
+ listGamesPublic(input: ListGamesInput): Promise<{
42
+ items: {
43
+ id: string;
44
+ name: string;
45
+ slug: string;
46
+ provider: {
47
+ id: string;
48
+ slug: string;
49
+ name: string;
50
+ logoUrl: string | null;
51
+ };
52
+ aggregator: string;
53
+ categories: {
54
+ id: string;
55
+ slug: string;
56
+ name: string;
57
+ translations: Record<string, {
58
+ name: string;
59
+ }>;
60
+ icon: string | null;
61
+ sortOrder: number;
62
+ }[];
63
+ gameType: "sportsbook" | "original" | "casino";
64
+ thumbnailUrl: string | null;
65
+ isActive: boolean;
66
+ metadata: unknown;
67
+ }[];
68
+ total: number;
69
+ page: number;
70
+ limit: number;
71
+ }>;
72
+ listGamesAdmin(input: ListAdminGamesInput): Promise<{
73
+ items: {
74
+ id: string;
75
+ name: string;
76
+ slug: string;
77
+ provider: {
78
+ id: string;
79
+ slug: string;
80
+ name: string;
81
+ logoUrl: string | null;
82
+ };
83
+ aggregator: string;
84
+ categories: {
85
+ id: string;
86
+ slug: string;
87
+ name: string;
88
+ translations: Record<string, {
89
+ name: string;
90
+ }>;
91
+ icon: string | null;
92
+ sortOrder: number;
93
+ }[];
94
+ gameType: "sportsbook" | "original" | "casino";
95
+ thumbnailUrl: string | null;
96
+ isActive: boolean;
97
+ metadata: unknown;
98
+ }[];
99
+ total: number;
100
+ page: number;
101
+ limit: number;
102
+ }>;
103
+ private listGames;
104
+ getGame(id: string, opts?: {
105
+ activeOnly?: boolean;
106
+ }): Promise<{
42
107
  id: string;
43
108
  name: string;
44
- provider: string;
45
- category: string;
109
+ slug: string;
110
+ provider: {
111
+ id: string;
112
+ slug: string;
113
+ name: string;
114
+ logoUrl: string | null;
115
+ };
116
+ aggregator: string;
117
+ categories: {
118
+ id: string;
119
+ slug: string;
120
+ name: string;
121
+ translations: Record<string, {
122
+ name: string;
123
+ }>;
124
+ icon: string | null;
125
+ sortOrder: number;
126
+ }[];
46
127
  gameType: "sportsbook" | "original" | "casino";
47
128
  thumbnailUrl: string | null;
48
129
  isActive: boolean;
@@ -87,5 +168,32 @@ export declare class GamingService {
87
168
  winAmount: string;
88
169
  endedAt: Date | null;
89
170
  }, "startedAt" | "endedAt">[]>;
171
+ updateGame({ id, categoryIds, actorId, ip, userAgent, ...patchInput }: UpdateGameInput & Actor): Promise<{
172
+ id: string;
173
+ name: string;
174
+ slug: string;
175
+ provider: {
176
+ id: string;
177
+ slug: string;
178
+ name: string;
179
+ logoUrl: string | null;
180
+ };
181
+ aggregator: string;
182
+ categories: {
183
+ id: string;
184
+ slug: string;
185
+ name: string;
186
+ translations: Record<string, {
187
+ name: string;
188
+ }>;
189
+ icon: string | null;
190
+ sortOrder: number;
191
+ }[];
192
+ gameType: "sportsbook" | "original" | "casino";
193
+ thumbnailUrl: string | null;
194
+ isActive: boolean;
195
+ metadata: unknown;
196
+ }>;
90
197
  }
198
+ export {};
91
199
  //# sourceMappingURL=gaming.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gaming.service.d.ts","sourceRoot":"","sources":["../../../../src/casino/gaming/service/gaming.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAKb,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAmB,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEhF,eAAO,MAAM,iBAAiB;QAbP,CAAC;CAakC,CAAC;AAE3D,eAAO,MAAM,sBAAsB;QAfZ,CAAC;CAe4C,CAAC;AAErE,eAAO,MAAM,iBAAiB;QAjBP,CAAC;CAoBvB,CAAC;AACF,eAAO,MAAM,wBAAwB;QArBd,CAAC;CAwBvB,CAAC;AAGF,eAAO,MAAM,oBAAoB;QA3BV,CAAC;CA8BvB,CAAC;AAEF,eAAO,MAAM,+BAA+B;QAhCrB,CAAC;CAoCvB,CAAC;AAmBF,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBANT,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,WAAW,EACrB,eAAe,EAAE,mBAAmB,EACpC,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,YAAY,YAAA;IAGpC,SAAS;;;;;;;;;;IAST,OAAO,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAQlB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;IA6DtF,QAAQ,CACZ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAClB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,GACvB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IA+DhD;;;;OAIG;IACG,uBAAuB,CAC3B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GACA,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAyCxE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;CASvC"}
1
+ {"version":3,"file":"gaming.service.d.ts","sourceRoot":"","sources":["../../../../src/casino/gaming/service/gaming.service.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,56 @@
1
- import { createDomainError, makeNotFoundError, makeConflictError, findOneOrThrow, serializeRow, } from '@openora/core/server';
2
- import { eq, and, asc, desc, sql } from 'drizzle-orm';
1
+ import { createDomainError, makeNotFoundError, makeConflictError, findOneOrThrow, likeContains, pageToOffset, serializeRow, uniqueConstraintName, } from '@openora/core/server';
2
+ import { eq, and, asc, count, desc, exists, ilike, inArray, ne, or, sql } from 'drizzle-orm';
3
3
  import { RgLimitExceededError, } from '@openora/core/contracts';
4
- import { game, gameRound } from '../schema/index.js';
4
+ import { game, gameCategory, gameCategoryGame, gameProvider, gameProviderAggregatorMapping, gameRound, } from '../schema/index.js';
5
+ import { GameProviderNotFoundError } from './game-provider.service.js';
6
+ import { GameCategoryNotFoundError } from './game-category.service.js';
7
+ import { categoriesByGameIds, isGamePlayable, playableGameCondition, toCategorySummary, } from '../../shared/game-catalog.js';
5
8
  export const GameNotFoundError = makeNotFoundError('Game');
6
9
  export const GameRoundNotFoundError = makeNotFoundError('GameRound');
10
+ export const GameSlugTakenError = makeConflictError('GameSlugTakenError', 'A game with this slug already exists');
11
+ export const GameAggregatorNotMappedError = createDomainError('GameAggregatorNotMappedError', (providerId, aggregator) => `Provider ${providerId} has no mapping for aggregator ${aggregator}`);
7
12
  export const RgRestrictedError = makeConflictError('RgRestrictedError', 'play is restricted by an active responsible-gambling exclusion');
8
13
  export const InsufficientBalanceError = createDomainError('InsufficientBalanceError', (available, requested) => `Insufficient balance: available ${available}, requested ${requested}`);
9
14
  // Thrown inside the settlement transaction, so the round stays `active` and the win can be
10
15
  // settled again rather than being lost silently.
11
16
  export const WinCreditFailedError = createDomainError('WinCreditFailedError', (roundId, reason) => `win credit failed for round ${roundId}: ${reason}`);
12
17
  export const ExternalRoundOwnerMismatchError = createDomainError('ExternalRoundOwnerMismatchError', (externalRoundId) => `externalRoundId ${externalRoundId} is already tagged to a different game/user`);
13
- function toGame(record) {
18
+ function toGame(row) {
14
19
  return {
15
- id: record.id,
16
- name: record.name,
17
- provider: record.provider,
18
- category: record.category,
19
- gameType: record.gameType,
20
- thumbnailUrl: record.thumbnailUrl,
21
- isActive: record.isActive,
22
- metadata: record.metadata,
20
+ id: row.game.id,
21
+ name: row.game.name,
22
+ slug: row.game.slug,
23
+ provider: {
24
+ id: row.provider.id,
25
+ slug: row.provider.slug,
26
+ name: row.provider.name,
27
+ logoUrl: row.provider.logoUrl,
28
+ },
29
+ aggregator: row.game.aggregator,
30
+ categories: row.categories.map(toCategorySummary),
31
+ gameType: row.game.gameType,
32
+ thumbnailUrl: row.game.thumbnailUrl,
33
+ isActive: row.game.isActive,
34
+ metadata: row.game.metadata,
35
+ };
36
+ }
37
+ // Reads the links through the caller's transaction so the snapshot matches the
38
+ // locked row; ordered so identical link sets always serialize identically.
39
+ async function gameAuditSnapshot(tx, row) {
40
+ const links = await tx
41
+ .select({ categoryId: gameCategoryGame.categoryId })
42
+ .from(gameCategoryGame)
43
+ .where(eq(gameCategoryGame.gameId, row.id))
44
+ .orderBy(asc(gameCategoryGame.categoryId));
45
+ return {
46
+ slug: row.slug,
47
+ name: row.name,
48
+ providerId: row.providerId,
49
+ aggregator: row.aggregator,
50
+ thumbnailUrl: row.thumbnailUrl,
51
+ isActive: row.isActive,
52
+ categoryIds: links.map((link) => link.categoryId),
53
+ metadata: row.metadata ?? null,
23
54
  };
24
55
  }
25
56
  function toGameRound(record) {
@@ -42,17 +73,64 @@ export class GamingService {
42
73
  this.identityReader = identityReader;
43
74
  this.rgLimits = rgLimits;
44
75
  }
45
- async listGames() {
46
- const games = await this.drizzle.db
47
- .select()
48
- .from(game)
49
- .where(eq(game.isActive, true))
50
- .orderBy(asc(game.name));
51
- return games.map(toGame);
76
+ async listGamesPublic(input) {
77
+ return this.listGames({ ...input, playableOnly: true, sort: 'public' });
78
+ }
79
+ async listGamesAdmin(input) {
80
+ return this.listGames({ ...input, playableOnly: false, sort: 'admin' });
52
81
  }
53
- async getGame(id) {
54
- const record = findOneOrThrow(await this.drizzle.db.select().from(game).where(eq(game.id, id)), new GameNotFoundError(id));
55
- return toGame(record);
82
+ async listGames({ page, limit, q, providerId, categoryId, isActive, playableOnly, sort, }) {
83
+ const where = and(q
84
+ ? or(ilike(game.name, likeContains(q)), ilike(game.slug, likeContains(q)), ilike(gameProvider.name, likeContains(q)))
85
+ : undefined, providerId ? eq(game.providerId, providerId) : undefined, playableOnly
86
+ ? playableGameCondition()
87
+ : isActive === undefined
88
+ ? undefined
89
+ : eq(game.isActive, isActive), categoryId
90
+ ? exists(this.drizzle.db
91
+ .select({ gameId: gameCategoryGame.gameId })
92
+ .from(gameCategoryGame)
93
+ .innerJoin(gameCategory, eq(gameCategoryGame.categoryId, gameCategory.id))
94
+ .where(and(eq(gameCategoryGame.gameId, game.id), eq(gameCategoryGame.categoryId, categoryId), playableOnly ? eq(gameCategory.isActive, true) : undefined)))
95
+ : undefined);
96
+ const [rows, [{ n }]] = await Promise.all([
97
+ this.drizzle.db
98
+ .select({ game, provider: gameProvider })
99
+ .from(game)
100
+ .innerJoin(gameProvider, eq(game.providerId, gameProvider.id))
101
+ .where(where)
102
+ .orderBy(...(sort === 'admin'
103
+ ? [asc(gameProvider.name), asc(gameProvider.slug), asc(game.name), asc(game.id)]
104
+ : [asc(game.name)]))
105
+ .limit(limit)
106
+ .offset(pageToOffset(page, limit)),
107
+ this.drizzle.db
108
+ .select({ n: count() })
109
+ .from(game)
110
+ .innerJoin(gameProvider, eq(game.providerId, gameProvider.id))
111
+ .where(where),
112
+ ]);
113
+ const categories = await categoriesByGameIds(this.drizzle.db, rows.map((r) => r.game.id), playableOnly);
114
+ return {
115
+ items: rows.map((r) => toGame({ ...r, categories: categories.get(r.game.id) ?? [] })),
116
+ total: Number(n),
117
+ page,
118
+ limit,
119
+ };
120
+ }
121
+ async getGame(id, opts = {}) {
122
+ const row = findOneOrThrow(await this.drizzle.db
123
+ .select({ game, provider: gameProvider })
124
+ .from(game)
125
+ .innerJoin(gameProvider, eq(game.providerId, gameProvider.id))
126
+ .where(eq(game.id, id)), new GameNotFoundError(id));
127
+ // The public detail route passes activeOnly: internal callers (updateGame's
128
+ // return value) keep the unfiltered row so an admin still sees what they wrote.
129
+ if (opts.activeOnly && !isGamePlayable(row.game, row.provider)) {
130
+ throw new GameNotFoundError(id);
131
+ }
132
+ const categories = await categoriesByGameIds(this.drizzle.db, [row.game.id], opts.activeOnly);
133
+ return toGame({ ...row, categories: categories.get(row.game.id) ?? [] });
56
134
  }
57
135
  async startRound(userId, gameId, currency, betAmount) {
58
136
  if (await this.playEligibility.isRestricted(userId)) {
@@ -62,7 +140,7 @@ export class GamingService {
62
140
  if (decision && !decision.allowed) {
63
141
  throw new RgLimitExceededError('wager_limit_exceeded', decision);
64
142
  }
65
- await this.getGame(gameId);
143
+ await this.getGame(gameId, { activeOnly: true });
66
144
  const { round, completedBonusCredits } = await this.drizzle.db.transaction(async (tx) => {
67
145
  // The same currency the RG pre-check above weighed. Left off, the debit falls on the
68
146
  // player's active currency, and the two would then judge different moves.
@@ -207,5 +285,93 @@ export class GamingService {
207
285
  .limit(50);
208
286
  return rounds.map(toGameRound);
209
287
  }
288
+ async updateGame({ id, categoryIds, actorId, ip, userAgent, ...patchInput }) {
289
+ const uniqueCategoryIds = categoryIds === undefined ? undefined : [...new Set(categoryIds)];
290
+ const patch = { ...patchInput };
291
+ const hasScalarChanges = Object.values(patch).some((value) => value !== undefined);
292
+ if (!hasScalarChanges && uniqueCategoryIds === undefined) {
293
+ return this.getGame(id);
294
+ }
295
+ const transition = await this.drizzle.db
296
+ .transaction(async (tx) => {
297
+ // The row lock serializes concurrent PATCHes, so the audited `before` is the
298
+ // state this write replaced and `after` is what it persisted (docs/standards/audit.md).
299
+ const beforeRow = findOneOrThrow(await tx.select().from(game).where(eq(game.id, id)).limit(1).for('update'), new GameNotFoundError(id));
300
+ const before = await gameAuditSnapshot(tx, beforeRow);
301
+ if (patchInput.providerId !== undefined || patchInput.aggregator !== undefined) {
302
+ const nextProviderId = patchInput.providerId ?? beforeRow.providerId;
303
+ const nextAggregator = patchInput.aggregator ?? beforeRow.aggregator;
304
+ // FOR SHARE conflicts with updateProvider's FOR UPDATE, so the mapping checked
305
+ // below cannot be removed until this game has committed against it.
306
+ findOneOrThrow(await tx
307
+ .select({ id: gameProvider.id })
308
+ .from(gameProvider)
309
+ .where(eq(gameProvider.id, nextProviderId))
310
+ .limit(1)
311
+ .for('share'), new GameProviderNotFoundError(nextProviderId));
312
+ const [mapping] = await tx
313
+ .select({ id: gameProviderAggregatorMapping.id })
314
+ .from(gameProviderAggregatorMapping)
315
+ .where(and(eq(gameProviderAggregatorMapping.providerId, nextProviderId), eq(gameProviderAggregatorMapping.aggregator, nextAggregator)))
316
+ .limit(1);
317
+ if (!mapping) {
318
+ throw new GameAggregatorNotMappedError(nextProviderId, nextAggregator);
319
+ }
320
+ }
321
+ if (patchInput.slug !== undefined) {
322
+ const [clash] = await tx
323
+ .select({ id: game.id })
324
+ .from(game)
325
+ .where(and(eq(game.slug, patchInput.slug), ne(game.id, id)))
326
+ .limit(1);
327
+ if (clash) {
328
+ throw new GameSlugTakenError();
329
+ }
330
+ }
331
+ if (uniqueCategoryIds !== undefined) {
332
+ const rows = uniqueCategoryIds.length > 0
333
+ ? await tx
334
+ .select({ id: gameCategory.id })
335
+ .from(gameCategory)
336
+ .where(inArray(gameCategory.id, uniqueCategoryIds))
337
+ : [];
338
+ const found = new Set(rows.map((r) => r.id));
339
+ const missing = uniqueCategoryIds.find((categoryId) => !found.has(categoryId));
340
+ if (missing) {
341
+ throw new GameCategoryNotFoundError(missing);
342
+ }
343
+ }
344
+ if (hasScalarChanges) {
345
+ await tx.update(game).set(patch).where(eq(game.id, id));
346
+ }
347
+ if (uniqueCategoryIds !== undefined) {
348
+ await tx.delete(gameCategoryGame).where(eq(gameCategoryGame.gameId, id));
349
+ if (uniqueCategoryIds.length > 0) {
350
+ await tx
351
+ .insert(gameCategoryGame)
352
+ .values(uniqueCategoryIds.map((categoryId) => ({ gameId: id, categoryId })));
353
+ }
354
+ }
355
+ const afterRow = findOneOrThrow(await tx.select().from(game).where(eq(game.id, id)).limit(1), new GameNotFoundError(id));
356
+ return { before, after: await gameAuditSnapshot(tx, afterRow) };
357
+ })
358
+ .catch((error) => {
359
+ // The transaction also writes category links: only a slug collision maps
360
+ // to GameSlugTakenError, a link race must not masquerade as one.
361
+ if (uniqueConstraintName(error) === 'game_slug_key') {
362
+ throw new GameSlugTakenError();
363
+ }
364
+ throw error;
365
+ });
366
+ this.events.emit('gaming.game.updated', {
367
+ gameId: id,
368
+ actorId,
369
+ before: transition.before,
370
+ after: transition.after,
371
+ ip: ip ?? null,
372
+ userAgent: userAgent ?? null,
373
+ });
374
+ return this.getGame(id);
375
+ }
210
376
  }
211
377
  //# sourceMappingURL=gaming.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gaming.service.js","sourceRoot":"","sources":["../../../../src/casino/gaming/service/gaming.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gaming.service.js","sourceRoot":"","sources":["../../../../src/casino/gaming/service/gaming.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAEjB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EACL,oBAAoB,GAQrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,6BAA6B,EAC7B,SAAS,GAGV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CACjD,oBAAoB,EACpB,sCAAsC,CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAG3D,8BAA8B,EAC9B,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,YAAY,UAAU,kCAAkC,UAAU,EAAE,CACjG,CAAC;AAMF,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAChD,mBAAmB,EACnB,gEAAgE,CACjE,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CACvD,0BAA0B,EAC1B,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,mCAAmC,SAAS,eAAe,SAAS,EAAE,CACjG,CAAC;AACF,2FAA2F;AAC3F,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CACnD,sBAAsB,EACtB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,+BAA+B,OAAO,KAAK,MAAM,EAAE,CACzE,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAAiB,CAC9D,iCAAiC,EACjC,CAAC,eAAe,EAAE,EAAE,CAClB,mBAAmB,eAAe,6CAA6C,CAClF,CAAC;AAEF,SAAS,MAAM,CAAC,GAIf;IACC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;QACf,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;QACnB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;QACnB,QAAQ,EAAE;YACR,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI;YACvB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI;YACvB,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO;SAC9B;QACD,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;QAC/B,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACjD,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;QAC3B,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY;QACnC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;QAC3B,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;KAC5B,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,2EAA2E;AAC3E,KAAK,UAAU,iBAAiB,CAAC,EAAa,EAAE,GAAS;IACvD,MAAM,KAAK,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC;SACnD,IAAI,CAAC,gBAAgB,CAAC;SACtB,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;SAC1C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;QACjD,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAqC;IACxD,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,OAAO,aAAa;IAEL;IACA;IACA;IACA;IACA;IACA;IACA;IAPnB,YACmB,OAAuB,EACvB,MAAgB,EAChB,QAAqB,EACrB,eAAoC,EACpC,cAA8B,EAC9B,cAA8B,EAC9B,QAAuB;QANvB,YAAO,GAAP,OAAO,CAAgB;QACvB,WAAM,GAAN,MAAM,CAAU;QAChB,aAAQ,GAAR,QAAQ,CAAa;QACrB,oBAAe,GAAf,eAAe,CAAqB;QACpC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,aAAQ,GAAR,QAAQ,CAAe;IACvC,CAAC;IAEJ,KAAK,CAAC,eAAe,CAAC,KAAqB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAA0B;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,EACtB,IAAI,EACJ,KAAK,EACL,CAAC,EACD,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,IAAI,GAKL;QACC,MAAM,KAAK,GAAG,GAAG,CACf,CAAC;YACC,CAAC,CAAC,EAAE,CACA,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EACjC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EACjC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAC1C;YACH,CAAC,CAAC,SAAS,EACb,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EACxD,YAAY;YACV,CAAC,CAAC,qBAAqB,EAAE;YACzB,CAAC,CAAC,QAAQ,KAAK,SAAS;gBACtB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACjC,UAAU;YACR,CAAC,CAAC,MAAM,CACJ,IAAI,CAAC,OAAO,CAAC,EAAE;iBACZ,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC;iBAC3C,IAAI,CAAC,gBAAgB,CAAC;iBACtB,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;iBACzE,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EACpC,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,EAC3C,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAC3D,CACF,CACJ;YACH,CAAC,CAAC,SAAS,CACd,CAAC;QACF,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,EAAE;iBACZ,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;iBACxC,IAAI,CAAC,IAAI,CAAC;iBACV,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;iBAC7D,KAAK,CAAC,KAAK,CAAC;iBACZ,OAAO,CACN,GAAG,CAAC,IAAI,KAAK,OAAO;gBAClB,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB;iBACA,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,EAAE;iBACZ,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;iBACtB,IAAI,CAAC,IAAI,CAAC;iBACV,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;iBAC7D,KAAK,CAAC,KAAK,CAAC;SAChB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,IAAI,CAAC,OAAO,CAAC,EAAE,EACf,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAC1B,YAAY,CACb,CAAC;QACF,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrF,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAChB,IAAI;YACJ,KAAK;SACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,OAAiC,EAAE;QAC3D,MAAM,GAAG,GAAG,cAAc,CACxB,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClB,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC;aACV,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;aAC7D,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EACzB,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAC1B,CAAC;QACF,4EAA4E;QAC5E,gFAAgF;QAChF,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9F,OAAO,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAkB,EAAE,MAAkB,EAAE,QAAgB,EAAE,SAAiB;QAC1F,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/F,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,IAAI,oBAAoB,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACtF,qFAAqF;YACrF,0EAA0E;YAC1E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClD,MAAM;gBACN,MAAM,EAAE,SAAS;gBACjB,QAAQ;gBACR,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,wBAAwB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,aAAa,GAAG,cAAc,CAClC,MAAM,EAAE;iBACL,MAAM,CAAC,SAAS,CAAC;iBACjB,MAAM,CAAC;gBACN,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,SAAS;gBACT,MAAM,EAAE,QAAQ;aACjB,CAAC;iBACD,SAAS,EAAE,EACd,IAAI,sBAAsB,CAAC,MAAM,CAAC,CACnC,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,IAAI,EAAE,EAAE,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;gBAClD,MAAM;gBACN,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEtF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACvC,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,MAAM;YACN,MAAM;YACN,QAAQ,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACnE,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,MAAkB,EAClB,OAAwB;QAExB,qFAAqF;QACrF,MAAM,KAAK,GAAG,cAAc,CAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACtE,IAAI,sBAAsB,CAAC,OAAO,CAAC,CACpC,CAAC;QAEF,mFAAmF;QACnF,oEAAoE;QACpE,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACvD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,iFAAiF;QACjF,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,GAAG,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAC1D,+EAA+E;YAC/E,2EAA2E;YAC3E,MAAM,OAAO,GAAG,MAAM,EAAE;iBACrB,MAAM,CAAC,SAAS,CAAC;iBACjB,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC;iBAC5D,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EACzB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAC/B,CACF;iBACA,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,6EAA6E;gBAC7E,4EAA4E;gBAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE;oBACpD,MAAM;oBACN,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,KAAK;oBACX,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACrC,OAAO;YACP,MAAM;YACN,QAAQ,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,MAAM,CAAC;SACpE,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,uBAAuB,CAC3B,EAAW,EACX,IAQC;QAED,MAAM,GAAG,GAAG,EAAe,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG;aACpB,MAAM,CAAC,SAAS,CAAC;aACjB,MAAM,CAAC;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;YACnB,MAAM;YACN,OAAO;SACR,CAAC;aACD,kBAAkB,CAAC;YAClB,MAAM,EAAE,SAAS,CAAC,eAAe;YACjC,WAAW,EAAE,GAAG,CAAA,GAAG,SAAS,CAAC,eAAe,cAAc;YAC1D,GAAG,EAAE;gBACH,SAAS,EAAE,GAAG,CAAA,GAAG,SAAS,CAAC,SAAS,MAAM,QAAQ,WAAW;gBAC7D,SAAS,EAAE,GAAG,CAAA,GAAG,SAAS,CAAC,SAAS,MAAM,QAAQ,WAAW;gBAC7D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C;YACD,6EAA6E;YAC7E,iEAAiE;YACjE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpF,CAAC;aACD,SAAS,CAAC;YACT,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B,CAAC,CAAC;QACL,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,+BAA+B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAkB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACjC,MAAM,EAAE;aACR,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACnC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;aAClC,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EACf,EAAE,EACF,WAAW,EACX,OAAO,EACP,EAAE,EACF,SAAS,EACT,GAAG,UAAU,EACW;QACxB,MAAM,iBAAiB,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAsC,EAAE,GAAG,UAAU,EAAE,CAAC;QACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACrC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACxB,6EAA6E;YAC7E,wFAAwF;YACxF,MAAM,SAAS,GAAG,cAAc,CAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAC1E,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAC1B,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACtD,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC/E,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC;gBACrE,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC;gBACrE,+EAA+E;gBAC/E,oEAAoE;gBACpE,cAAc,CACZ,MAAM,EAAE;qBACL,MAAM,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;qBAC/B,IAAI,CAAC,YAAY,CAAC;qBAClB,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;qBAC1C,KAAK,CAAC,CAAC,CAAC;qBACR,GAAG,CAAC,OAAO,CAAC,EACf,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAC9C,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;qBACvB,MAAM,CAAC,EAAE,EAAE,EAAE,6BAA6B,CAAC,EAAE,EAAE,CAAC;qBAChD,IAAI,CAAC,6BAA6B,CAAC;qBACnC,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,6BAA6B,CAAC,UAAU,EAAE,cAAc,CAAC,EAC5D,EAAE,CAAC,6BAA6B,CAAC,UAAU,EAAE,cAAc,CAAC,CAC7D,CACF;qBACA,KAAK,CAAC,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,4BAA4B,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE;qBACrB,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;qBACvB,IAAI,CAAC,IAAI,CAAC;qBACV,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;qBAC3D,KAAK,CAAC,CAAC,CAAC,CAAC;gBACZ,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,kBAAkB,EAAE,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,IAAI,GACR,iBAAiB,CAAC,MAAM,GAAG,CAAC;oBAC1B,CAAC,CAAC,MAAM,EAAE;yBACL,MAAM,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;yBAC/B,IAAI,CAAC,YAAY,CAAC;yBAClB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;oBACvD,CAAC,CAAC,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC/E,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,EAAE;yBACL,MAAM,CAAC,gBAAgB,CAAC;yBACxB,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,cAAc,CAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAC5D,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAC1B,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;QAClE,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,yEAAyE;YACzE,iEAAiE;YACjE,IAAI,oBAAoB,CAAC,KAAK,CAAC,KAAK,eAAe,EAAE,CAAC;gBACpD,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACjC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACtC,MAAM,EAAE,EAAE;YACV,OAAO;YACP,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,EAAE,EAAE,EAAE,IAAI,IAAI;YACd,SAAS,EAAE,SAAS,IAAI,IAAI;SAC7B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;CACF"}