@songsid/agend 2.3.0-beta.6 → 2.3.0-beta.8

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 (193) hide show
  1. package/dist/agent-cli-instructions.md +1 -1
  2. package/dist/agent-cli.js +21 -2
  3. package/dist/agent-cli.js.map +1 -1
  4. package/dist/agent-endpoint.js +4 -0
  5. package/dist/agent-endpoint.js.map +1 -1
  6. package/dist/agent-file-read.js +68 -8
  7. package/dist/agent-file-read.js.map +1 -1
  8. package/dist/agent-whats-new.js +4 -0
  9. package/dist/agent-whats-new.js.map +1 -1
  10. package/dist/auth-api.js +3 -1
  11. package/dist/auth-api.js.map +1 -1
  12. package/dist/authority/authority-state.d.ts +38 -0
  13. package/dist/authority/authority-state.js +114 -0
  14. package/dist/authority/authority-state.js.map +1 -0
  15. package/dist/authority/session-authorizations.d.ts +43 -0
  16. package/dist/authority/session-authorizations.js +102 -0
  17. package/dist/authority/session-authorizations.js.map +1 -0
  18. package/dist/authority/web-authority.d.ts +31 -11
  19. package/dist/authority/web-authority.js +39 -12
  20. package/dist/authority/web-authority.js.map +1 -1
  21. package/dist/cache-ledger.d.ts +16 -3
  22. package/dist/cache-ledger.js +33 -13
  23. package/dist/cache-ledger.js.map +1 -1
  24. package/dist/cache-service.d.ts +55 -3
  25. package/dist/cache-service.js +152 -16
  26. package/dist/cache-service.js.map +1 -1
  27. package/dist/channel/mcp-tools.js +13 -7
  28. package/dist/channel/mcp-tools.js.map +1 -1
  29. package/dist/classic-channel-manager.d.ts +2 -2
  30. package/dist/classic-channel-manager.js +2 -6
  31. package/dist/classic-channel-manager.js.map +1 -1
  32. package/dist/config-validator.js +10 -4
  33. package/dist/config-validator.js.map +1 -1
  34. package/dist/daemon.d.ts +2 -0
  35. package/dist/daemon.js +31 -9
  36. package/dist/daemon.js.map +1 -1
  37. package/dist/delivery-outbox.d.ts +8 -0
  38. package/dist/delivery-outbox.js +7 -1
  39. package/dist/delivery-outbox.js.map +1 -1
  40. package/dist/fleet-manager.d.ts +109 -2
  41. package/dist/fleet-manager.js +280 -12
  42. package/dist/fleet-manager.js.map +1 -1
  43. package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +2 -1
  44. package/dist/general-knowledge/skills/multi-channel/SKILL.md +2 -1
  45. package/dist/general-knowledge/skills/web-appearance/SKILL.md +89 -30
  46. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +62 -8
  47. package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +1 -1
  48. package/dist/human-delivery-receipts.d.ts +14 -0
  49. package/dist/human-delivery-receipts.js +42 -6
  50. package/dist/human-delivery-receipts.js.map +1 -1
  51. package/dist/instance-config-impact.js +1 -0
  52. package/dist/instance-config-impact.js.map +1 -1
  53. package/dist/instance-names.d.ts +4 -0
  54. package/dist/instance-names.js +12 -0
  55. package/dist/instance-names.js.map +1 -0
  56. package/dist/instructions.d.ts +8 -1
  57. package/dist/instructions.js +9 -2
  58. package/dist/instructions.js.map +1 -1
  59. package/dist/locale.js +52 -0
  60. package/dist/locale.js.map +1 -1
  61. package/dist/outbound-handlers.d.ts +6 -0
  62. package/dist/outbound-handlers.js +49 -2
  63. package/dist/outbound-handlers.js.map +1 -1
  64. package/dist/outbound-schemas.d.ts +57 -1
  65. package/dist/outbound-schemas.js +34 -2
  66. package/dist/outbound-schemas.js.map +1 -1
  67. package/dist/public-web-gateway.js +8 -2
  68. package/dist/public-web-gateway.js.map +1 -1
  69. package/dist/rollout-index.d.ts +5 -0
  70. package/dist/rollout-index.js +26 -5
  71. package/dist/rollout-index.js.map +1 -1
  72. package/dist/settings-api.d.ts +6 -0
  73. package/dist/settings-api.js +54 -1
  74. package/dist/settings-api.js.map +1 -1
  75. package/dist/settings-change.js +31 -0
  76. package/dist/settings-change.js.map +1 -1
  77. package/dist/settings-effect.js +10 -1
  78. package/dist/settings-effect.js.map +1 -1
  79. package/dist/tool-permissions.d.ts +0 -7
  80. package/dist/tool-permissions.js +73 -5
  81. package/dist/tool-permissions.js.map +1 -1
  82. package/dist/topic-commands.d.ts +2 -1
  83. package/dist/topic-commands.js +2 -4
  84. package/dist/topic-commands.js.map +1 -1
  85. package/dist/types.d.ts +13 -2
  86. package/dist/ui/app-effects.js +46 -28
  87. package/dist/ui/chat-ambient.js +307 -0
  88. package/dist/ui/chat-effect-posters.js +8 -8
  89. package/dist/ui/chat-effects.js +51 -22
  90. package/dist/ui/chat-strings.js +21 -6
  91. package/dist/ui/chat-thread.js +1 -1
  92. package/dist/ui/fleet-usage.js +401 -0
  93. package/dist/ui/panel-chat.js +22 -9
  94. package/dist/ui/panel-fleet.js +6 -5
  95. package/dist/ui/panel-settings.js +10 -2
  96. package/dist/ui/settings-appearance.js +8 -0
  97. package/dist/ui/settings-mods.js +19 -6
  98. package/dist/ui/settings-owner-effects.js +3 -3
  99. package/dist/ui/settings-strings.js +30 -0
  100. package/dist/ui/settings-web-authority.js +91 -0
  101. package/dist/ui/shared/app-route.js +1 -1
  102. package/dist/ui/shared/app-session.js +2 -0
  103. package/dist/ui/shared/app-shell.js +2 -1
  104. package/dist/ui/shared/app-themes.js +24 -6
  105. package/dist/ui/shared/app.css +95 -0
  106. package/dist/ui/shared/effect-app-runtime.js +68 -19
  107. package/dist/ui/shared/effect-chat-runtime.js +16 -3
  108. package/dist/ui/shared/effect-frame.js +17 -3
  109. package/dist/ui/shared/effect-policy.js +18 -5
  110. package/dist/ui/shared/effect-profiler.js +31 -9
  111. package/dist/ui/shared/effect-registry.js +17 -41
  112. package/dist/ui/shared/effect-stock-trust.js +4 -4
  113. package/dist/ui/shared/effect-trial-stage.js +18 -7
  114. package/dist/ui/shared/fx-motion.js +67 -0
  115. package/dist/ui/shared/usage-dialog.js +8 -0
  116. package/dist/ui/shared/view-strings.js +4 -0
  117. package/dist/ui/shared/web-authorize.js +151 -0
  118. package/dist/usage-report.d.ts +158 -0
  119. package/dist/usage-report.js +226 -0
  120. package/dist/usage-report.js.map +1 -0
  121. package/dist/usage-rollup.d.ts +51 -0
  122. package/dist/usage-rollup.js +168 -0
  123. package/dist/usage-rollup.js.map +1 -0
  124. package/dist/web-ambient.d.ts +72 -0
  125. package/dist/web-ambient.js +154 -0
  126. package/dist/web-ambient.js.map +1 -0
  127. package/dist/web-api.d.ts +33 -0
  128. package/dist/web-api.js +148 -18
  129. package/dist/web-api.js.map +1 -1
  130. package/dist/web-appearance-tools.d.ts +3 -0
  131. package/dist/web-appearance-tools.js +18 -3
  132. package/dist/web-appearance-tools.js.map +1 -1
  133. package/dist/web-appearance-view.d.ts +14 -2
  134. package/dist/web-appearance-view.js +32 -5
  135. package/dist/web-appearance-view.js.map +1 -1
  136. package/dist/web-appearance.d.ts +15 -1
  137. package/dist/web-appearance.js +77 -1
  138. package/dist/web-appearance.js.map +1 -1
  139. package/dist/web-asset-parts.d.ts +2 -2
  140. package/dist/web-asset-parts.js +3 -3
  141. package/dist/web-asset-parts.js.map +1 -1
  142. package/dist/web-auth.js +3 -1
  143. package/dist/web-auth.js.map +1 -1
  144. package/dist/web-effect-bootstrap.d.ts +12 -0
  145. package/dist/web-effect-bootstrap.js +49 -0
  146. package/dist/web-effect-bootstrap.js.map +1 -0
  147. package/dist/web-effect-bundle.js +46 -1
  148. package/dist/web-effect-bundle.js.map +1 -1
  149. package/dist/web-effect-playback.d.ts +30 -0
  150. package/dist/web-effect-playback.js +71 -0
  151. package/dist/web-effect-playback.js.map +1 -0
  152. package/dist/web-effect-profiles.d.ts +4 -4
  153. package/dist/web-effect-service.d.ts +11 -4
  154. package/dist/web-effect-service.js +25 -4
  155. package/dist/web-effect-service.js.map +1 -1
  156. package/dist/web-effect-tools.d.ts +1 -0
  157. package/dist/web-effect-tools.js +2 -1
  158. package/dist/web-effect-tools.js.map +1 -1
  159. package/dist/web-effect-worker.d.ts +1 -1
  160. package/dist/web-effect-worker.js +2 -2
  161. package/dist/web-effect-worker.js.map +1 -1
  162. package/dist/web-guest-access.js +3 -1
  163. package/dist/web-guest-access.js.map +1 -1
  164. package/dist/web-mod-agent.js +5 -1
  165. package/dist/web-mod-agent.js.map +1 -1
  166. package/dist/web-mod-bundle.d.ts +9 -1
  167. package/dist/web-mod-bundle.js +62 -3
  168. package/dist/web-mod-bundle.js.map +1 -1
  169. package/dist/web-mod-export.d.ts +9 -0
  170. package/dist/web-mod-export.js +21 -0
  171. package/dist/web-mod-export.js.map +1 -1
  172. package/dist/web-mod-store.d.ts +2 -1
  173. package/dist/web-mod-store.js +13 -6
  174. package/dist/web-mod-store.js.map +1 -1
  175. package/dist/web-session-authorization.d.ts +132 -0
  176. package/dist/web-session-authorization.js +193 -0
  177. package/dist/web-session-authorization.js.map +1 -0
  178. package/dist/web-session.d.ts +5 -0
  179. package/dist/web-session.js +16 -0
  180. package/dist/web-session.js.map +1 -1
  181. package/dist/web-settings-patch.d.ts +26 -2
  182. package/dist/web-settings-patch.js +50 -1
  183. package/dist/web-settings-patch.js.map +1 -1
  184. package/dist/web-settings-tools.d.ts +8 -0
  185. package/dist/web-settings-tools.js +14 -1
  186. package/dist/web-settings-tools.js.map +1 -1
  187. package/dist/web-shell-routes.d.ts +1 -1
  188. package/dist/web-shell-routes.js +1 -1
  189. package/dist/web-shell-routes.js.map +1 -1
  190. package/dist/web-theme-store.d.ts +39 -0
  191. package/dist/web-theme-store.js +122 -11
  192. package/dist/web-theme-store.js.map +1 -1
  193. package/package.json +1 -1
@@ -47,6 +47,8 @@ export function modPlan(mod, installed) {
47
47
  if (w)
48
48
  items.push({ part: "widget", slot, spec: w.spec, data: w.data });
49
49
  }
50
+ if (mod.ambient)
51
+ items.push({ part: "ambient", ...mod.ambient.specs, pictures: mod.ambient.pictures.map(p => ({ path: p.path, slot: p.slot, id: p.id, bytes: p.kept.length })) });
50
52
  for (const e of mod.effects)
51
53
  items.push({ part: "effect", path: e.path, ...e.summary });
52
54
  if (mod.ownerCss)
@@ -65,7 +67,7 @@ export function modPlan(mod, installed) {
65
67
  ...(same && same[0] !== mod.id ? { replaces: { id: same[0], version: same[1].version } } : {}),
66
68
  },
67
69
  items,
68
- needs_target: !!(mod.theme || mod.identity || mod.widgets.chat_header || mod.widgets.details),
70
+ needs_target: !!(mod.theme || mod.identity || mod.widgets.chat_header || mod.widgets.details || mod.ambient),
69
71
  warnings,
70
72
  };
71
73
  }
@@ -283,7 +285,8 @@ export class ModStore {
283
285
  /** A picture of this person's staged mod (its theme's), so the plan can show it before anything is applied. */
284
286
  stagedPicture(person, id) {
285
287
  this.sweep();
286
- const p = this.stages.get(person)?.mod.theme?.pictures.find(x => x.id === id);
288
+ const mod = this.stages.get(person)?.mod;
289
+ const p = [...(mod?.theme?.pictures ?? []), ...(mod?.ambient?.pictures ?? [])].find(x => x.id === id);
287
290
  return p ? { bytes: p.kept, mime: MEDIA_MIME[p.kind] } : null;
288
291
  }
289
292
  abort(person, stage) {
@@ -350,18 +353,19 @@ export class ModStore {
350
353
  return { ok: false, status: 409, error: "plan_changed" };
351
354
  const include = parseInclude(body.include);
352
355
  if (!include)
353
- return { ok: false, status: 400, error: "include", detail: "{ theme?, identity?, effects?, ownerCss?, widgets?: { chat_header?, details?, sidebar? }, replace? } of booleans" };
356
+ return { ok: false, status: 400, error: "include", detail: "{ theme?, identity?, ambient?, effects?, ownerCss?, widgets?: { chat_header?, details?, sidebar? }, replace? } of booleans" };
354
357
  const mod = s.mod;
355
358
  const want = {
356
359
  theme: !!(include.theme && mod.theme), identity: !!(include.identity && mod.identity), effects: !!(include.effects && mod.effects.length),
357
360
  ownerCss: !!(include.ownerCss && mod.ownerCss),
361
+ ambient: !!(include.ambient && mod.ambient),
358
362
  widgets: AGENT_WIDGET_SLOTS.filter(slot => include.widgets?.[slot] && mod.widgets[slot]),
359
363
  sidebar: !!(include.widgets?.sidebar && mod.widgets.sidebar),
360
364
  };
361
365
  // Effect placements ride with the theme, and need the effects installed.
362
366
  if (want.theme && mod.theme?.effects.length && !want.effects)
363
367
  return { ok: false, status: 400, error: "include", detail: "the theme places this mod's effects: include effects too" };
364
- const toInstance = want.theme || want.identity || want.widgets.length > 0;
368
+ const toInstance = want.theme || want.identity || want.widgets.length > 0 || want.ambient;
365
369
  let target;
366
370
  if (toInstance) {
367
371
  if (typeof body.target !== "string" || !this.deps.isKnownInstance(body.target))
@@ -427,7 +431,8 @@ export class ModStore {
427
431
  const w = this.deps.themes.applyLook(target, {
428
432
  ...(want.theme && t ? { theme: t.theme } : {}),
429
433
  ...(want.identity && mod.identity ? { identity: mod.identity } : {}),
430
- pictures: want.theme && t ? t.pictures.map(p => ({ slot: p.slot, id: p.id, kind: p.kind, kept: p.kept })) : [],
434
+ pictures: [...(want.theme && t ? t.pictures : []), ...(want.ambient && mod.ambient ? mod.ambient.pictures : [])].map(p => ({ slot: p.slot, id: p.id, kind: p.kind, kept: p.kept })),
435
+ ...(want.ambient && mod.ambient ? { ambient: mod.ambient.specs } : {}),
431
436
  widgets: Object.fromEntries(want.widgets.map(slot => [slot, mod.widgets[slot]])),
432
437
  ...(want.theme && t && t.effects.length ? { effects: t.effects.map(e => ({ id: effectIds.get(e.effect), params: e.params })) } : {}),
433
438
  }, "human");
@@ -441,6 +446,8 @@ export class ModStore {
441
446
  applied.push("identity");
442
447
  for (const slot of want.widgets)
443
448
  applied.push(`widget:${slot}`);
449
+ if (want.ambient)
450
+ applied.push("ambient");
444
451
  }
445
452
  if (want.sidebar) {
446
453
  const who = this.deps.prefsIdentity;
@@ -610,7 +617,7 @@ function parseInclude(raw) {
610
617
  return null;
611
618
  const out = {};
612
619
  for (const [k, v] of Object.entries(raw)) {
613
- if (["theme", "identity", "effects", "ownerCss", "replace"].includes(k)) {
620
+ if (["theme", "identity", "ambient", "effects", "ownerCss", "replace"].includes(k)) {
614
621
  if (typeof v !== "boolean")
615
622
  return null;
616
623
  out[k] = v;
@@ -1 +1 @@
1
- {"version":3,"file":"web-mod-store.js","sourceRoot":"","sources":["../src/web-mod-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAmB,cAAc,EAAsD,MAAM,qBAAqB,CAAC;AAGzI,OAAO,EAAE,kBAAkB,EAAwB,MAAM,iBAAiB,CAAC;AAE3E,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAkEhC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvF,MAAM,KAAK,GAAG,CAAC,CAAU,EAAgC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;AAErD,2GAA2G;AAC3G,MAAM,UAAU,OAAO,CAAC,GAAe,EAAE,SAAyC;IAChF,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;IACpB,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzI,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpE,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAU,EAAE,CAAC;QAClE,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACxF,IAAI,GAAG,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACpL,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,GAAG,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAClH,OAAO;QACL,GAAG,EAAE;YACH,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK;YAC7F,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/F;QACD,KAAK;QACL,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7F,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,QAAQ;IAIU;IAAkC;IAHvD,KAAK,GAAiB,IAAI,CAAC;IAClB,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC1C,IAAI,CAAS;IACtB,YAA6B,OAAe,EAAmB,IAW9D;QAX4B,YAAO,GAAP,OAAO,CAAQ;QAAmB,SAAI,GAAJ,IAAI,CAWlE;QACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC7C,CAAC;IACO,KAAK,KAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,GAAG,KAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,EAAU,IAAY,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE1F,IAAI;QACV,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAI,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC;QAC1J,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA8E,CAAC;YAC1G,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC;YAChH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;YAC1C,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;oBAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAyB,CAAC,CAAC;YACvJ,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;YACjD,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC,CAAC;YACjM,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC;QAAC,CAAC;IACjD,CAAC;IACO,IAAI,CAAC,IAA4B,EAAE,SAAmC,EAAE,GAAW;QACzF,MAAM,GAAG,GAAG,CAAI,CAAiB,EAAE,EAAE,GAAG,MAAM,GAAG,GAAsB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QACjM,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnJ,CAAC;IACD,sFAAsF;IAC9E,WAAW,CAAC,IAA4B,EAAE,SAAoC;QACpF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACtF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QACnJ,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC7C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3B,CAAC;IACO,YAAY,CAAC,QAAgB,IAAY,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,aAAa,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEzJ;;;OAGG;IACH,OAAO,CAAC,QAAgB,EAAE,IAAY,EAAE,GAAe;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACtF,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzC,yGAAyG;QACzG,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,CAAC;YAAC,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC;YAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAAC,CAAC;QACnJ,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAC9G,MAAM,QAAQ,GAAgB,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAClK,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,IAAI,CAAC;gBAAC,IAAI,MAAM,KAAK,IAAI;oBAAE,UAAU,CAAC,IAAI,CAAC,CAAC;;oBAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACnI,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IACD,gDAAgD;IAChD,SAAS;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC;IACD,0GAA0G;IAC1G,aAAa,CAAC,MAAc,EAAE,QAAiB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACtF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC/H,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAAC,CAAC;QACzI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,8CAA8C;IAC9C,OAAO,CAAC,QAAiB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACtF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC/H,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC7E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,+HAA+H;IAC/H,YAAY,KAAiB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE1D,oCAAoC;IACpC,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACxE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,8FAA8F;IAC9F,UAAU,CAAC,EAAU;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/E,IAAI,CAAC;YAAC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC5E,CAAC;IACD;;;;OAIG;IACH,aAAa,CAAC,EAAU;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,qHAAqH;QACrH,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,IAAI,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyD,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;YACtH,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;QACxF,CAAC;QAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,2EAA2E;IACnE,KAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxG,CAAC;IACO,IAAI,CAAC,MAAc;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,sEAAsE;IACtE,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9J,CAAC;IACD,oHAAoH;IACpH,WAAW,CAAC,MAAc;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IACD,+GAA+G;IAC/G,aAAa,CAAC,MAAc,EAAE,EAAU;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IACD,KAAK,CAAC,MAAc,EAAE,KAAc;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAc,EAAE,IAAY,EAAE,OAA8B,EAAE;QAClE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACtF,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,wGAAwG;QACxG,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QACtH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,kBAAkB;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,kBAAkB,YAAY,EAAE,CAAC;YACnJ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,cAAc;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,cAAc,GAAG,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAClK,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,IAAI,OAAyB,CAAC;QAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;YACxF,wGAAwG;YACxG,6GAA6G;YAC7G,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;YAChG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9H,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACxF,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAU,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACpN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAc,EAAE,IAAmF;QACxG,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QACzF,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAC5F,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,kHAAkH,EAAE,CAAC;QAC9L,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QAClB,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YACzI,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxF,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;SAC7D,CAAC;QACF,yEAAyE;QACzE,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,0DAA0D,EAAE,CAAC;QACtL,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1E,IAAI,MAA0B,CAAC;QAC/B,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;YACxK,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QAC5G,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACnJ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QACrC,iHAAiH;QACjH,qGAAqG;QACrG,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,yEAAyE,EAAE,CAAC;QAC9I,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QACtG,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;YACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;QACtH,CAAC;QACD,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,QAAQ,CAAC,OAAO,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,gCAAgC,EAAE,CAAC;QACpL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,kBAAkB,YAAY,EAAE,CAAC;YACtJ,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,cAAc;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,cAAc,GAAG,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpM,CAAC;QAED,MAAM,IAAI,GAAsB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,MAAe,EAAmB,EAAE;YACnF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,2CAA2C,CAAC,CAAC;YAAC,CAAC;YACtG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACrE,CAAC,CAAC;QACF,kHAAkH;QAClH,yEAAyE;QACzE,IAAI,CAAC;YACH,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,OAAO,GAAa,EAAE,CAAC;YAC3B,IAAI,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC1C,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,CAAC,CAAC,CAAC,EAAE;oBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;gBACpB,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ,GAAwB,IAAI,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBACpB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;oBAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9C,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpE,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC9G,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC;oBACjF,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtI,EAAE,OAAO,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,EAAE;oBAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACtB,IAAI,IAAI,CAAC,KAAK;oBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,MAAM,CAAC,UAAU;oBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;gBAChE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzF,IAAI,CAAC,CAAC,CAAC,EAAE;oBAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrF,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,GAAwE,CAAC;YAC7E,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACjC,8GAA8G;gBAC9G,oEAAoE;gBACpE,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;wBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChG,CAAC;gBACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,EAAE;oBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YAED,oHAAoH;YACpH,kHAAkH;YAClH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,IAAI,QAAQ;gBAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;gBACf,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK;gBACnG,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE;gBACtF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;gBACzD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtJ,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;aAC9D,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5E,IAAI,CAAC,IAAI;oBAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAAC,OAAO,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACpF,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;oBAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,+DAA+D;YAC/D,IAAI,SAA+C,CAAC;YACpD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC;gBAAC,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YACnJ,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,kHAAkH;YAClH,+FAA+F;YAC/F,IAAI,WAAW,GAAa,EAAE,CAAC;YAC/B,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC3H,IAAI,CAAC,CAAC,CAAC,EAAE;oBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACpE,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC;YAC3B,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBAAC,IAAI,CAAC;oBAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAS,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAAC,CAAC;YACnG,oEAAoE;YACpE,QAAQ,EAAE,EAAE,CAAC;YACb,IAAI,QAAQ,EAAE,CAAC;gBAAC,IAAI,CAAC;oBAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAAC,CAAC;YAC1F,IAAI,WAAW,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,WAAW,CAAC,CAAC;YAC9E,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAG,gCAAgC;YAC/G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,QAAQ,CAAC,GAAG,EAAE,kBAAkB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;IACrF,CAAC;IAED,iHAAiH;IACjH,SAAS,CAAC,EAAW;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACtF,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QACzG,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QAC9B,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAA2B,IAAI,CAAC;QACxC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;YACxF,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAClH,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAChG,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;YAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,EAAE,EAAE,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAClC,IAAI,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC/D,IAAI,QAAQ,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,0FAA0F;IAC1F,cAAc,CAAC,IAAY;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO;QACvH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7K,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IACD,yCAAyC;IACzC,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/D,mFAAmF;IACnF,KAAK,KAAW,IAAI,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CACtG;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,IAAI,OAAO,CAAC,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YAAE,GAA+B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACxK,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,CAAC,GAAuC,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YAClG,CAAC,CAAC,IAAmC,CAAC,GAAG,EAAE,CAAC;QAC9C,CAAC;QACD,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"web-mod-store.js","sourceRoot":"","sources":["../src/web-mod-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import type { WebAuthorityRefusal, WebPeer } from "./authority/web-authority.js";
2
+ export declare const AUTHORIZATION_CARD_TTL_MS: number;
3
+ export declare const AUTHORIZATION_ASKS_PER_HOUR = 3;
4
+ export declare const AUTHORIZATION_CALLBACK_PREFIX = "wauth:";
5
+ export type AuthorizationAskRefusal = WebAuthorityRefusal | "pending" | "rate_limited" | "dm_unavailable";
6
+ export interface AuthorizationOwner {
7
+ adapterId: string;
8
+ userId: string;
9
+ }
10
+ export interface AuthorizationCardText {
11
+ ask(c: {
12
+ label: string;
13
+ peer: WebPeer;
14
+ askedAt: number;
15
+ until: number;
16
+ }): string;
17
+ confirmed(c: {
18
+ label: string;
19
+ peer: WebPeer;
20
+ until: number;
21
+ }): string;
22
+ denied(c: {
23
+ label: string;
24
+ }): string;
25
+ expired(c: {
26
+ label: string;
27
+ }): string;
28
+ refused(c: {
29
+ label: string;
30
+ refusal: string;
31
+ }): string;
32
+ revoked(c: {
33
+ label: string;
34
+ }): string;
35
+ ended(c: {
36
+ label: string;
37
+ }): string;
38
+ generalHint(): string;
39
+ confirmLabel(): string;
40
+ notMeLabel(): string;
41
+ notYours(): string;
42
+ }
43
+ export interface SessionAuthorizationDeps {
44
+ /** Monotonic ms (performance.now). */
45
+ now(): number;
46
+ /** Wall-clock ms (Date.now): only what the card and the app show. */
47
+ wallNow(): number;
48
+ /** How long an authorization given now would last (max_session_hours). */
49
+ maxSessionMs(): number;
50
+ /** The account's DM, with buttons; null when no DM can be sent. */
51
+ sendDirect(owner: AuthorizationOwner, text: string, choices: Array<{
52
+ id: string;
53
+ label: string;
54
+ }>): Promise<{
55
+ chatId: string;
56
+ messageId: string;
57
+ } | null>;
58
+ /** One line with no details in the account's adapter's General (no DM could be sent). */
59
+ sendGeneralHint(owner: AuthorizationOwner, text: string): Promise<void>;
60
+ /** Edit the card in place: new text, these buttons (none: removed). */
61
+ editCard(owner: AuthorizationOwner, where: {
62
+ chatId: string;
63
+ messageId: string;
64
+ }, text: string, choices: Array<{
65
+ id: string;
66
+ label: string;
67
+ }>): Promise<void>;
68
+ /** §3 at the tap, then record it (FleetManager.authorizeWebSession); the session read again by its handle. */
69
+ authorize(handle: string, peer: WebPeer): {
70
+ ok: true;
71
+ until: number;
72
+ } | {
73
+ ok: false;
74
+ refusal: WebAuthorityRefusal | "session_gone";
75
+ };
76
+ /** Not me: sign this session out and end its authorization. */
77
+ signOut(handle: string): void;
78
+ event(type: string, payload: Record<string, unknown>): void;
79
+ text: AuthorizationCardText;
80
+ log: {
81
+ warn(obj: object, msg?: string): void;
82
+ };
83
+ }
84
+ export declare class SessionAuthorizationRequests {
85
+ private readonly deps;
86
+ private byNonce;
87
+ /** One pending card per session. */
88
+ private pendingByHandle;
89
+ /** Monotonic times of each account's asks in the last hour. */
90
+ private asks;
91
+ constructor(deps: SessionAuthorizationDeps);
92
+ private choices;
93
+ private recentAsks;
94
+ /**
95
+ * This session's pending card. One past its deadline is expired now, whether or not its timer has run yet (a timer can
96
+ * run late): the app never shows "waiting 0:00", and a new ask is not refused as "pending".
97
+ */
98
+ private livePending;
99
+ /** What the app shows for this session: a pending card (until when), or nothing pending. */
100
+ pending(handle: string): {
101
+ expiresInMs: number;
102
+ } | null;
103
+ /**
104
+ * The session asks (it qualifies under §3 — the caller checked, on this request). Refused while a card for it is
105
+ * pending, after 3 asks this hour by the account, or when no DM can be sent (General then gets a line, no details).
106
+ */
107
+ ask(input: {
108
+ handle: string;
109
+ owner: AuthorizationOwner;
110
+ label: string;
111
+ peer: WebPeer;
112
+ sessionEnd: number;
113
+ }): Promise<{
114
+ ok: true;
115
+ expiresInMs: number;
116
+ } | {
117
+ ok: false;
118
+ refusal: AuthorizationAskRefusal;
119
+ retryAfterMs?: number;
120
+ }>;
121
+ private forget;
122
+ private edit;
123
+ private expire;
124
+ /** A confirmed card at its authorization's end: forgotten, and edited to say so (no Not me left to press). */
125
+ private end;
126
+ /** A tap on a card's button. Only the account it was sent to may tap it; anyone else is told it is not theirs. */
127
+ handleCallback(data: {
128
+ callbackData: string;
129
+ userId?: string;
130
+ ack?: (notice?: string) => void;
131
+ }, adapterId: string): Promise<boolean>;
132
+ }
@@ -0,0 +1,193 @@
1
+ /**
2
+ * #1939 S2b (design §0, §0.1): "Authorize this browser". A signed-in session asks; AgEnD posts a Confirm card in the DM of
3
+ * the account the session was signed in as; **Confirm** there authorizes that session, **Not me** signs it out. The card
4
+ * is the one gate that stops a stolen cookie speaking as the person, so it is guarded against confirm fatigue:
5
+ * - it says exactly what it authorizes (this browser, its device label, this computer or the network, when, until when);
6
+ * - one pending card per session, at most 3 asks an hour per account; a refusal is explained in the app;
7
+ * - a card expires after 5 minutes (marked in place), and Confirm is judged at the tap (the session read again by its
8
+ * handle and §3 run again — FleetManager.authorizeWebSession);
9
+ * - after Confirm the card stays as the notice, with Not me (sign the session out) for as long as the authorization lasts,
10
+ * and says so (no buttons) when it ends;
11
+ * - when no DM can be sent, the adapter's General gets one line with no details.
12
+ * Durations use a monotonic clock; what the card shows is wall-clock time.
13
+ */
14
+ import { randomBytes } from "node:crypto";
15
+ export const AUTHORIZATION_CARD_TTL_MS = 5 * 60_000;
16
+ export const AUTHORIZATION_ASKS_PER_HOUR = 3;
17
+ const HOUR_MS = 3_600_000;
18
+ export const AUTHORIZATION_CALLBACK_PREFIX = "wauth:";
19
+ export class SessionAuthorizationRequests {
20
+ deps;
21
+ byNonce = new Map();
22
+ /** One pending card per session. */
23
+ pendingByHandle = new Map();
24
+ /** Monotonic times of each account's asks in the last hour. */
25
+ asks = new Map();
26
+ constructor(deps) {
27
+ this.deps = deps;
28
+ }
29
+ choices(c, confirm) {
30
+ return [
31
+ ...(confirm ? [{ id: `${AUTHORIZATION_CALLBACK_PREFIX}${c.nonce}:confirm`, label: this.deps.text.confirmLabel() }] : []),
32
+ { id: `${AUTHORIZATION_CALLBACK_PREFIX}${c.nonce}:notme`, label: this.deps.text.notMeLabel() },
33
+ ];
34
+ }
35
+ recentAsks(key) {
36
+ const now = this.deps.now();
37
+ const kept = (this.asks.get(key) ?? []).filter(t => now - t < HOUR_MS);
38
+ if (kept.length)
39
+ this.asks.set(key, kept);
40
+ else
41
+ this.asks.delete(key);
42
+ return kept;
43
+ }
44
+ /**
45
+ * This session's pending card. One past its deadline is expired now, whether or not its timer has run yet (a timer can
46
+ * run late): the app never shows "waiting 0:00", and a new ask is not refused as "pending".
47
+ */
48
+ livePending(handle) {
49
+ const c = this.pendingByHandle.get(handle);
50
+ if (!c || c.state !== "pending")
51
+ return null;
52
+ if (this.deps.now() >= c.expiresAt) {
53
+ void this.expire(c);
54
+ return null;
55
+ }
56
+ return c;
57
+ }
58
+ /** What the app shows for this session: a pending card (until when), or nothing pending. */
59
+ pending(handle) {
60
+ const c = this.livePending(handle);
61
+ return c ? { expiresInMs: Math.max(0, c.expiresAt - this.deps.now()) } : null;
62
+ }
63
+ /**
64
+ * The session asks (it qualifies under §3 — the caller checked, on this request). Refused while a card for it is
65
+ * pending, after 3 asks this hour by the account, or when no DM can be sent (General then gets a line, no details).
66
+ */
67
+ async ask(input) {
68
+ const existing = this.livePending(input.handle);
69
+ if (existing)
70
+ return { ok: false, refusal: "pending", retryAfterMs: Math.max(0, existing.expiresAt - this.deps.now()) };
71
+ const key = `${input.owner.adapterId}:${input.owner.userId}`;
72
+ const recent = this.recentAsks(key);
73
+ if (recent.length >= AUTHORIZATION_ASKS_PER_HOUR)
74
+ return { ok: false, refusal: "rate_limited", retryAfterMs: Math.max(0, recent[0] + HOUR_MS - this.deps.now()) };
75
+ recent.push(this.deps.now());
76
+ this.asks.set(key, recent);
77
+ const c = { nonce: randomBytes(16).toString("hex"), handle: input.handle, owner: { ...input.owner }, label: input.label, peer: input.peer,
78
+ expiresAt: this.deps.now() + AUTHORIZATION_CARD_TTL_MS, state: "pending", where: null };
79
+ this.byNonce.set(c.nonce, c);
80
+ this.pendingByHandle.set(c.handle, c);
81
+ const wall = this.deps.wallNow();
82
+ let where = null;
83
+ try {
84
+ // Until when it would last: the authorization's end, or the session's own when that comes first (as Confirm says).
85
+ const until = Math.min(wall + this.deps.maxSessionMs(), input.sessionEnd);
86
+ where = await this.deps.sendDirect(c.owner, this.deps.text.ask({ label: c.label, peer: c.peer, askedAt: wall, until }), this.choices(c, true));
87
+ }
88
+ catch (err) {
89
+ this.deps.log.warn({ err: err?.message }, "Web authorization card could not be sent");
90
+ }
91
+ if (!where) {
92
+ this.forget(c);
93
+ try {
94
+ await this.deps.sendGeneralHint(c.owner, this.deps.text.generalHint());
95
+ }
96
+ catch { /* best effort: the app says why */ }
97
+ this.deps.event("session_authorization_failed", { session: c.handle, actor: key, peer: c.peer, reason: "dm_unavailable" });
98
+ return { ok: false, refusal: "dm_unavailable" };
99
+ }
100
+ c.where = where;
101
+ c.timer = setTimeout(() => { void this.expire(c); }, AUTHORIZATION_CARD_TTL_MS);
102
+ c.timer.unref?.();
103
+ this.deps.event("session_authorization_issued", { challenge: c.nonce, session: c.handle, actor: key, peer: c.peer });
104
+ return { ok: true, expiresInMs: AUTHORIZATION_CARD_TTL_MS };
105
+ }
106
+ forget(c) {
107
+ if (c.timer)
108
+ clearTimeout(c.timer);
109
+ if (this.pendingByHandle.get(c.handle) === c)
110
+ this.pendingByHandle.delete(c.handle);
111
+ }
112
+ async edit(c, text, confirm) {
113
+ if (!c.where)
114
+ return;
115
+ try {
116
+ await this.deps.editCard(c.owner, c.where, text, confirm === null ? [] : this.choices(c, confirm));
117
+ }
118
+ catch (err) {
119
+ this.deps.log.warn({ err: err?.message }, "Web authorization card could not be updated");
120
+ }
121
+ }
122
+ async expire(c) {
123
+ if (c.state !== "pending")
124
+ return;
125
+ c.state = "expired";
126
+ this.forget(c);
127
+ this.byNonce.delete(c.nonce);
128
+ this.deps.event("session_authorization_expired", { challenge: c.nonce, session: c.handle, actor: `${c.owner.adapterId}:${c.owner.userId}`, peer: c.peer });
129
+ await this.edit(c, this.deps.text.expired({ label: c.label }), null);
130
+ }
131
+ /** A confirmed card at its authorization's end: forgotten, and edited to say so (no Not me left to press). */
132
+ async end(c) {
133
+ if (c.state !== "confirmed" || this.byNonce.get(c.nonce) !== c)
134
+ return;
135
+ c.state = "ended";
136
+ this.byNonce.delete(c.nonce);
137
+ await this.edit(c, this.deps.text.ended({ label: c.label }), null);
138
+ }
139
+ /** A tap on a card's button. Only the account it was sent to may tap it; anyone else is told it is not theirs. */
140
+ async handleCallback(data, adapterId) {
141
+ if (!data.callbackData.startsWith(AUTHORIZATION_CALLBACK_PREFIX))
142
+ return false;
143
+ const m = /^wauth:([0-9a-f]{32}):(confirm|notme)$/.exec(data.callbackData);
144
+ const c = m ? this.byNonce.get(m[1]) : undefined;
145
+ if (!m || !c) {
146
+ data.ack?.();
147
+ return true;
148
+ }
149
+ if (c.owner.adapterId !== adapterId || c.owner.userId !== String(data.userId ?? "")) {
150
+ data.ack?.(this.deps.text.notYours());
151
+ return true;
152
+ }
153
+ const key = `${c.owner.adapterId}:${c.owner.userId}`;
154
+ if (m[2] === "notme") {
155
+ // Before or after Confirm: sign that session out (its authorization ends with it).
156
+ const was = c.state;
157
+ c.state = was === "confirmed" ? "revoked" : "denied";
158
+ this.forget(c);
159
+ this.byNonce.delete(c.nonce);
160
+ this.deps.signOut(c.handle);
161
+ this.deps.event("session_authorization_failed", { challenge: c.nonce, session: c.handle, actor: key, peer: c.peer, reason: was === "confirmed" ? "not_me_after_confirm" : "not_me" });
162
+ data.ack?.();
163
+ await this.edit(c, was === "confirmed" ? this.deps.text.revoked({ label: c.label }) : this.deps.text.denied({ label: c.label }), null);
164
+ return true;
165
+ }
166
+ // Confirm: only a pending card, before it expires, judged now.
167
+ if (c.state !== "pending" || this.deps.now() >= c.expiresAt) {
168
+ data.ack?.();
169
+ if (c.state === "pending")
170
+ await this.expire(c);
171
+ return true;
172
+ }
173
+ this.forget(c);
174
+ const r = this.deps.authorize(c.handle, c.peer);
175
+ data.ack?.();
176
+ if (!r.ok) {
177
+ c.state = "refused";
178
+ this.byNonce.delete(c.nonce);
179
+ this.deps.event("session_authorization_failed", { challenge: c.nonce, session: c.handle, actor: key, peer: c.peer, reason: r.refusal });
180
+ await this.edit(c, this.deps.text.refused({ label: c.label, refusal: r.refusal }), null);
181
+ return true;
182
+ }
183
+ c.state = "confirmed";
184
+ c.until = r.until;
185
+ this.deps.event("session_authorization_verified", { challenge: c.nonce, session: c.handle, actor: key, peer: c.peer });
186
+ // The card stays as the notice, with Not me, for as long as the authorization lasts; then it says it ended.
187
+ await this.edit(c, this.deps.text.confirmed({ label: c.label, peer: c.peer, until: r.until }), false);
188
+ const end = setTimeout(() => { void this.end(c); }, Math.max(0, Math.min(c.until - this.deps.wallNow(), 2 ** 31 - 1)));
189
+ end.unref?.();
190
+ return true;
191
+ }
192
+ }
193
+ //# sourceMappingURL=web-session-authorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-session-authorization.js","sourceRoot":"","sources":["../src/web-session-authorization.ts"],"names":[],"mappings":"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"}
@@ -233,6 +233,11 @@ export declare class WebSessionStore {
233
233
  sessions: number;
234
234
  lastSeen: number;
235
235
  }>;
236
+ /**
237
+ * #1939 S2b: the live session with this handle (an active one, not expired — limits applied), or null. Read-only: a
238
+ * Confirm tapped in Discord is judged against the session as it is at that moment.
239
+ */
240
+ findByHandle(handle: string): SessionRecord | null;
236
241
  /** #1920: `only` as in list() — a session it rejects is not found. */
237
242
  revokeByHandle(handle: string, only?: (r: SessionRecord) => boolean): {
238
243
  found: boolean;
@@ -354,6 +354,22 @@ export class WebSessionStore {
354
354
  }
355
355
  return [...by.values()];
356
356
  }
357
+ /**
358
+ * #1939 S2b: the live session with this handle (an active one, not expired — limits applied), or null. Read-only: a
359
+ * Confirm tapped in Discord is judged against the session as it is at that moment.
360
+ */
361
+ findByHandle(handle) {
362
+ if (!HANDLE_PATTERN.test(handle))
363
+ return null;
364
+ const now = this.now();
365
+ for (const record of this.byHash.values()) {
366
+ if (record.handle !== handle || this.pending.has(record.idHash))
367
+ continue;
368
+ this.limit(record);
369
+ return now < record.absoluteExpiry && now < record.idleExpiry ? record : null;
370
+ }
371
+ return null;
372
+ }
357
373
  /** #1920: `only` as in list() — a session it rejects is not found. */
358
374
  revokeByHandle(handle, only) {
359
375
  if (!HANDLE_PATTERN.test(handle))