@vibes.diy/api-svc 14.1.37 → 14.1.38
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.
- package/cf-serve.d.ts +2 -0
- package/cf-serve.js +9 -2
- package/cf-serve.js.map +1 -1
- package/create-handler.js +2 -0
- package/create-handler.js.map +1 -1
- package/evento-handler-manifest.js +2 -0
- package/evento-handler-manifest.js.map +1 -1
- package/intern/ensure-slug-binding.js +1 -0
- package/intern/ensure-slug-binding.js.map +1 -1
- package/intern/hubspot-maker-facts.d.ts +5 -0
- package/intern/hubspot-maker-facts.js +86 -4
- package/intern/hubspot-maker-facts.js.map +1 -1
- package/intern/hubspot-signup.d.ts +6 -0
- package/intern/hubspot-signup.js +5 -2
- package/intern/hubspot-signup.js.map +1 -1
- package/intern/maker-identity.d.ts +41 -0
- package/intern/maker-identity.js +122 -0
- package/intern/maker-identity.js.map +1 -0
- package/intern/mint-job-store.js +0 -2
- package/intern/mint-job-store.js.map +1 -1
- package/intern/signup-attribution-capture.js +15 -3
- package/intern/signup-attribution-capture.js.map +1 -1
- package/package.json +12 -11
- package/public/recapture-screenshot.d.ts +5 -0
- package/public/recapture-screenshot.js +83 -0
- package/public/recapture-screenshot.js.map +1 -0
- package/public/report-activity.js +2 -2
- package/public/report-activity.js.map +1 -1
- package/public/report-cache.d.ts +5 -2
- package/public/report-cache.js +4 -1
- package/public/report-cache.js.map +1 -1
- package/public/set-mode-fsid.js +13 -2
- package/public/set-mode-fsid.js.map +1 -1
- package/public/vibe-mail-image.d.ts +10 -0
- package/public/vibe-mail-image.js +80 -0
- package/public/vibe-mail-image.js.map +1 -0
- package/types.d.ts +1 -0
- package/types.js.map +1 -1
- package/usage-report/backfill-hubspot-contacts.js +83 -3
- package/usage-report/backfill-hubspot-contacts.js.map +1 -1
- package/usage-report/gold-drip-sweep-util.d.ts +116 -0
- package/usage-report/gold-drip-sweep-util.js +197 -0
- package/usage-report/gold-drip-sweep-util.js.map +1 -0
- package/usage-report/gold-drip-sweep.d.ts +2 -0
- package/usage-report/gold-drip-sweep.js +327 -0
- package/usage-report/gold-drip-sweep.js.map +1 -0
- package/usage-report/new-user-alert-util.d.ts +9 -0
- package/usage-report/new-user-alert-util.js +10 -1
- package/usage-report/new-user-alert-util.js.map +1 -1
- package/usage-report/new-user-alert.js +13 -6
- package/usage-report/new-user-alert.js.map +1 -1
- package/vibes-req-res-evento.js +2 -1
- package/vibes-req-res-evento.js.map +1 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Result, Option, EventoResult } from "@adviser/cement";
|
|
2
|
+
import { reqRecaptureScreenshot, } from "@vibes.diy/api-types";
|
|
3
|
+
import { type } from "arktype";
|
|
4
|
+
import { unwrapMsgBase } from "../unwrap-msg-base.js";
|
|
5
|
+
import { checkAuth } from "../check-auth.js";
|
|
6
|
+
import { authorizeSlugOwner } from "./authorize-slug-owner.js";
|
|
7
|
+
import { logAdminOverride } from "./platform-admin.js";
|
|
8
|
+
import { selectTopProductionRelease } from "./select-app.js";
|
|
9
|
+
import { calcEntryPointUrl } from "../entry-point-utils.js";
|
|
10
|
+
function denialError(ownerHandle, appSlug) {
|
|
11
|
+
return {
|
|
12
|
+
type: "vibes.diy.res-error",
|
|
13
|
+
error: {
|
|
14
|
+
message: `not found or not authorized to re-capture the screenshot of ${ownerHandle}/${appSlug}`,
|
|
15
|
+
code: "recapture-screenshot-not-found",
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function unavailableError(message) {
|
|
20
|
+
return { type: "vibes.diy.res-error", error: { message, code: "recapture-screenshot-unavailable" } };
|
|
21
|
+
}
|
|
22
|
+
export async function recaptureScreenshot(vctx, req) {
|
|
23
|
+
const userId = req._auth.verifiedAuth.claims.userId;
|
|
24
|
+
const auth = await authorizeSlugOwner(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, userId });
|
|
25
|
+
if (auth === undefined)
|
|
26
|
+
return denialError(req.ownerHandle, req.appSlug);
|
|
27
|
+
if (!auth.isOwner) {
|
|
28
|
+
if (!auth.isAdmin)
|
|
29
|
+
return denialError(req.ownerHandle, req.appSlug);
|
|
30
|
+
logAdminOverride(vctx, {
|
|
31
|
+
op: "recapture-screenshot",
|
|
32
|
+
actingUserId: userId,
|
|
33
|
+
ownerHandle: req.ownerHandle,
|
|
34
|
+
appSlug: req.appSlug,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const release = await selectTopProductionRelease(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug });
|
|
38
|
+
if (release === undefined) {
|
|
39
|
+
return unavailableError(`${req.ownerHandle}/${req.appSlug} has no production release to photograph`);
|
|
40
|
+
}
|
|
41
|
+
const vibeUrl = calcEntryPointUrl({
|
|
42
|
+
...vctx.params.vibes.svc,
|
|
43
|
+
bindings: { ownerHandle: req.ownerHandle, appSlug: req.appSlug, fsId: release.fsId },
|
|
44
|
+
});
|
|
45
|
+
await vctx.postQueue({
|
|
46
|
+
payload: {
|
|
47
|
+
type: "vibes.diy.evt-recapture-screenshot",
|
|
48
|
+
ownerHandle: req.ownerHandle,
|
|
49
|
+
appSlug: req.appSlug,
|
|
50
|
+
fsId: release.fsId,
|
|
51
|
+
vibeUrl,
|
|
52
|
+
requestedBy: userId,
|
|
53
|
+
},
|
|
54
|
+
tid: "queue-event",
|
|
55
|
+
src: "recapture-screenshot",
|
|
56
|
+
dst: "vibes-service",
|
|
57
|
+
ttl: 1,
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
type: "vibes.diy.res-recapture-screenshot",
|
|
61
|
+
ownerHandle: req.ownerHandle,
|
|
62
|
+
appSlug: req.appSlug,
|
|
63
|
+
fsId: release.fsId,
|
|
64
|
+
enqueued: true,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export const recaptureScreenshotEvento = {
|
|
68
|
+
hash: "recapture-screenshot",
|
|
69
|
+
validate: unwrapMsgBase(async (msg) => {
|
|
70
|
+
const ret = reqRecaptureScreenshot(msg.payload);
|
|
71
|
+
if (ret instanceof type.errors) {
|
|
72
|
+
return Result.Ok(Option.None());
|
|
73
|
+
}
|
|
74
|
+
return Result.Ok(Option.Some({ ...msg, payload: ret }));
|
|
75
|
+
}),
|
|
76
|
+
handle: checkAuth(async (ctx) => {
|
|
77
|
+
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
78
|
+
const r = await recaptureScreenshot(vctx, ctx.validated.payload);
|
|
79
|
+
await ctx.send.send(ctx, r);
|
|
80
|
+
return Result.Ok(EventoResult.Continue);
|
|
81
|
+
}),
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=recapture-screenshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recapture-screenshot.js","sourceRoot":"","sources":["../../jsr/public/recapture-screenshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { unwrapMsgBase } from "../unwrap-msg-base.js";
|
|
|
6
6
|
import { checkAuth } from "../check-auth.js";
|
|
7
7
|
import { adminUserIdSet } from "./ensure-app-settings.js";
|
|
8
8
|
import { EXCLUDED_HANDLE_PATTERNS, KNOWN_STAFF_USER_IDS } from "../usage-report/new-user-alert-util.js";
|
|
9
|
-
import { cachedReport, hasReport } from "./report-cache.js";
|
|
9
|
+
import { cachedReport, hasReport, isStaffViewer } from "./report-cache.js";
|
|
10
10
|
import { last7DaysUTC } from "./report-dates.js";
|
|
11
11
|
const ANONYMOUS_USER_ID = "unknown";
|
|
12
12
|
const ANONYMOUS_LABEL = "(anonymous)";
|
|
@@ -181,7 +181,7 @@ export const reportActivityEvento = {
|
|
|
181
181
|
return Result.Ok(EventoResult.Continue);
|
|
182
182
|
}
|
|
183
183
|
const res = await cachedReport(vctx, "activity", resReportActivity, () => computeActivity(vctx));
|
|
184
|
-
await ctx.send.send(ctx, res);
|
|
184
|
+
await ctx.send.send(ctx, { ...res, viewerStaff: isStaffViewer(req._auth.verifiedAuth.claims) });
|
|
185
185
|
return Result.Ok(EventoResult.Continue);
|
|
186
186
|
}),
|
|
187
187
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-activity.js","sourceRoot":"","sources":["../../jsr/public/report-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,EAAsC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAUL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"report-activity.js","sourceRoot":"","sources":["../../jsr/public/report-activity.ts"],"names":[],"mappings":"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"}
|
package/public/report-cache.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { Type } from "arktype";
|
|
2
2
|
import { VibesApiSQLCtx } from "../types.js";
|
|
3
|
-
|
|
3
|
+
interface ReportClaims {
|
|
4
4
|
params?: {
|
|
5
5
|
email?: string;
|
|
6
6
|
public_meta?: unknown;
|
|
7
7
|
};
|
|
8
|
-
}
|
|
8
|
+
}
|
|
9
|
+
export declare function isStaffViewer(claims: ReportClaims): boolean;
|
|
10
|
+
export declare function hasReport(claims: ReportClaims, name: string): boolean;
|
|
9
11
|
export declare function cachedReport<S extends Type<unknown>>(vctx: VibesApiSQLCtx, key: string, schema: S, compute: () => Promise<S["infer"]>): Promise<S["infer"]>;
|
|
12
|
+
export {};
|
package/public/report-cache.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { type } from "arktype";
|
|
2
2
|
const reportsClaim = type({ "reports?": "(string)[]" });
|
|
3
|
+
export function isStaffViewer(claims) {
|
|
4
|
+
return claims.params?.email?.endsWith("@vibes.diy") === true;
|
|
5
|
+
}
|
|
3
6
|
export function hasReport(claims, name) {
|
|
4
|
-
if (claims
|
|
7
|
+
if (isStaffViewer(claims))
|
|
5
8
|
return true;
|
|
6
9
|
const parsed = reportsClaim(claims.params?.public_meta);
|
|
7
10
|
if (parsed instanceof type.errors)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-cache.js","sourceRoot":"","sources":["../../jsr/public/report-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,SAAS,CAAC;AAUrC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"report-cache.js","sourceRoot":"","sources":["../../jsr/public/report-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,SAAS,CAAC;AAUrC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;AASxD,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,OAAO,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,IAAY;IAC1D,IAAI,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAcD,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAoB,EACpB,GAAW,EACX,MAAS,EACT,OAAkC;IAElC,MAAM,GAAG,GAAG,WAAW,UAAU,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,GAAG,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpC,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;IAI7B,KAAK,IAAI,CAAC,KAAK;SACZ,GAAG,CACF,GAAG,EACH,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,EAAE;YACP,eAAe,EAAE,WAAW,iBAAiB,EAAE;YAC/C,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CACH;SACA,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACrG,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/public/set-mode-fsid.js
CHANGED
|
@@ -20,9 +20,10 @@ async function ownerUserIdOfHandle(vctx, ownerHandle) {
|
|
|
20
20
|
return row?.userId;
|
|
21
21
|
}
|
|
22
22
|
export async function setModeFsId(vctx, req, userId) {
|
|
23
|
+
const notFound = () => Result.Err(`not found or not authorized to change the mode of ${req.ownerHandle}/${req.appSlug}`);
|
|
23
24
|
const auth = await authorizeSlugOwner(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, userId });
|
|
24
25
|
if (auth === undefined || (auth.isOwner === false && auth.isAdmin === false)) {
|
|
25
|
-
return
|
|
26
|
+
return notFound();
|
|
26
27
|
}
|
|
27
28
|
if (auth.isAdmin) {
|
|
28
29
|
logAdminOverride(vctx, {
|
|
@@ -34,7 +35,17 @@ export async function setModeFsId(vctx, req, userId) {
|
|
|
34
35
|
}
|
|
35
36
|
const rowUserId = auth.isOwner ? userId : await ownerUserIdOfHandle(vctx, req.ownerHandle);
|
|
36
37
|
if (rowUserId === undefined) {
|
|
37
|
-
return
|
|
38
|
+
return notFound();
|
|
39
|
+
}
|
|
40
|
+
const apps = vctx.sql.tables.apps;
|
|
41
|
+
const fsRow = await vctx.sql.db
|
|
42
|
+
.select({ fsId: apps.fsId })
|
|
43
|
+
.from(apps)
|
|
44
|
+
.where(and(eq(apps.userId, rowUserId), eq(apps.ownerHandle, req.ownerHandle), eq(apps.appSlug, req.appSlug), eq(apps.fsId, req.fsId)))
|
|
45
|
+
.limit(1)
|
|
46
|
+
.then((r) => r[0]);
|
|
47
|
+
if (fsRow === undefined) {
|
|
48
|
+
return notFound();
|
|
38
49
|
}
|
|
39
50
|
if (req.mode === "production") {
|
|
40
51
|
const rReset = await exception2Result(() => vctx.sql.db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-mode-fsid.js","sourceRoot":"","sources":["../../jsr/public/set-mode-fsid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,EAAsC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpI,OAAO,EAGL,YAAY,GAKb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKlE,KAAK,UAAU,mBAAmB,CAAC,IAAoB,EAAE,WAAmB;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;SAC9B,IAAI,CAAC,GAAG,CAAC;SACT,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;SAClC,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,GAAG,EAAE,MAAM,CAAC;AACrB,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAoB,EAAE,GAAiB,EAAE,MAAc;IAUvF,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5G,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"set-mode-fsid.js","sourceRoot":"","sources":["../../jsr/public/set-mode-fsid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EventoHandler } from "@adviser/cement";
|
|
2
|
+
export declare const MAIL_IMAGE_MAX_AGE_CEILING_SECONDS = 3600;
|
|
3
|
+
interface VibeMailImageValidated {
|
|
4
|
+
readonly appSlug: string | undefined;
|
|
5
|
+
readonly fsId: string | undefined;
|
|
6
|
+
readonly ownerUserId: string | undefined;
|
|
7
|
+
readonly token: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare const vibeMailImage: EventoHandler<Request, VibeMailImageValidated, unknown>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { EventoResult, Option, Result, URI, exception2Result, } from "@adviser/cement";
|
|
2
|
+
import { and, eq } from "drizzle-orm";
|
|
3
|
+
import { MAIL_IMAGE_TOKEN_PARAM, MAIL_IMAGE_USER_PARAM, verifyMailImageToken, } from "@vibes.diy/api-types";
|
|
4
|
+
import { loadStoredScreenshot } from "../intern/stored-screenshot.js";
|
|
5
|
+
const MAIL_IMAGE_PATH_RE = /^\/assets\/vibe-mail-image\/([a-z0-9][a-z0-9-]*)\/([A-Za-z0-9]{1,128})\.(?:png|jpg|jpeg|webp)$/;
|
|
6
|
+
const MAIL_IMAGE_PREFIX = "/assets/vibe-mail-image/";
|
|
7
|
+
export const MAIL_IMAGE_MAX_AGE_CEILING_SECONDS = 3600;
|
|
8
|
+
export const vibeMailImage = {
|
|
9
|
+
hash: "vibe-mail-image",
|
|
10
|
+
validate: (ctx) => {
|
|
11
|
+
const { request: req } = ctx;
|
|
12
|
+
if (!req || (req.method !== "GET" && req.method !== "HEAD"))
|
|
13
|
+
return Promise.resolve(Result.Ok(Option.None()));
|
|
14
|
+
const uri = URI.from(req.url);
|
|
15
|
+
if (uri.pathname.startsWith(MAIL_IMAGE_PREFIX) === false)
|
|
16
|
+
return Promise.resolve(Result.Ok(Option.None()));
|
|
17
|
+
const none = { appSlug: undefined, fsId: undefined, ownerUserId: undefined, token: undefined };
|
|
18
|
+
const match = MAIL_IMAGE_PATH_RE.exec(uri.pathname);
|
|
19
|
+
if (match === null)
|
|
20
|
+
return Promise.resolve(Result.Ok(Option.Some(none)));
|
|
21
|
+
return Promise.resolve(Result.Ok(Option.Some({
|
|
22
|
+
appSlug: match[1],
|
|
23
|
+
fsId: match[2],
|
|
24
|
+
ownerUserId: uri.getParam(MAIL_IMAGE_USER_PARAM),
|
|
25
|
+
token: uri.getParam(MAIL_IMAGE_TOKEN_PARAM),
|
|
26
|
+
})));
|
|
27
|
+
},
|
|
28
|
+
handle: async (ctx) => {
|
|
29
|
+
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
30
|
+
const { appSlug, fsId, ownerUserId, token } = ctx.validated;
|
|
31
|
+
const refuse = async () => {
|
|
32
|
+
await ctx.send.send(ctx, {
|
|
33
|
+
type: "http.Response.JSON",
|
|
34
|
+
status: 404,
|
|
35
|
+
json: { type: "error", message: "No screenshot available" },
|
|
36
|
+
});
|
|
37
|
+
return Result.Ok(EventoResult.Stop);
|
|
38
|
+
};
|
|
39
|
+
if (appSlug === undefined || fsId === undefined || ownerUserId === undefined || token === undefined)
|
|
40
|
+
return refuse();
|
|
41
|
+
const nowMs = Date.now();
|
|
42
|
+
const rServe = await exception2Result(async () => {
|
|
43
|
+
const binding = { ownerUserId, appSlug, fsId };
|
|
44
|
+
const ok = await verifyMailImageToken(token, binding, vctx.mailImageTokenSecret, nowMs);
|
|
45
|
+
if (ok === false)
|
|
46
|
+
return undefined;
|
|
47
|
+
const t = vctx.sql.tables.apps;
|
|
48
|
+
const row = await vctx.sql.db
|
|
49
|
+
.select({ meta: t.meta })
|
|
50
|
+
.from(t)
|
|
51
|
+
.where(and(eq(t.userId, ownerUserId), eq(t.appSlug, appSlug), eq(t.fsId, fsId)))
|
|
52
|
+
.limit(1)
|
|
53
|
+
.then((r) => r[0]);
|
|
54
|
+
if (row === undefined)
|
|
55
|
+
return undefined;
|
|
56
|
+
const shot = await loadStoredScreenshot(vctx, row.meta);
|
|
57
|
+
if (shot === undefined)
|
|
58
|
+
return undefined;
|
|
59
|
+
const expUnix = Number(token.slice(0, token.indexOf(".")));
|
|
60
|
+
return { mime: shot.mime, body: shot.body, remainingSeconds: Math.floor((expUnix * 1000 - nowMs) / 1000) };
|
|
61
|
+
});
|
|
62
|
+
if (rServe.isErr())
|
|
63
|
+
return refuse();
|
|
64
|
+
const serve = rServe.Ok();
|
|
65
|
+
if (serve === undefined)
|
|
66
|
+
return refuse();
|
|
67
|
+
const maxAge = Math.max(0, Math.min(serve.remainingSeconds, MAIL_IMAGE_MAX_AGE_CEILING_SECONDS));
|
|
68
|
+
await ctx.send.send(ctx, {
|
|
69
|
+
type: "http.Response.Body",
|
|
70
|
+
status: 200,
|
|
71
|
+
headers: {
|
|
72
|
+
"Content-Type": serve.mime,
|
|
73
|
+
"Cache-Control": `private, max-age=${maxAge}`,
|
|
74
|
+
},
|
|
75
|
+
body: ctx.request.method === "HEAD" ? new ArrayBuffer(0) : serve.body,
|
|
76
|
+
});
|
|
77
|
+
return Result.Ok(EventoResult.Stop);
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=vibe-mail-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibe-mail-image.js","sourceRoot":"","sources":["../../jsr/public/vibe-mail-image.ts"],"names":[],"mappings":"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"}
|
package/types.d.ts
CHANGED
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../jsr/types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../jsr/types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAmU/B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAC;AAGH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,8BAA8B;IACpC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAOhB,cAAc,EAAE,SAAS;CAC1B,CAAC,CAAC;AAGH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,OAAO,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAGH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -4,7 +4,8 @@ import { Result, exception2Result } from "@adviser/cement";
|
|
|
4
4
|
import { formatError, loadDevVars } from "./usage-report-util.js";
|
|
5
5
|
import { resolveExclusions } from "./new-user-alert-util.js";
|
|
6
6
|
import { countPlan, formatPlanReport, isPopulationKey, POPULATIONS, reconcile, selectAccounts, } from "./backfill-hubspot-contacts-util.js";
|
|
7
|
-
import { planSignupContact, upsertSignupContact } from "../intern/hubspot-signup.js";
|
|
7
|
+
import { patchContactProperties, planSignupContact, readContactProperties, resolveContactForAccount, upsertSignupContact, } from "../intern/hubspot-signup.js";
|
|
8
|
+
import { MAKER_FACT_READ_PROPERTIES, planMakerIdentityBackfill } from "../intern/hubspot-maker-facts.js";
|
|
8
9
|
const CLERK_PAGE_SIZE = 500;
|
|
9
10
|
const REQUEST_GAP_MS = 60;
|
|
10
11
|
function arg(name) {
|
|
@@ -70,7 +71,7 @@ async function run() {
|
|
|
70
71
|
const population = arg("--population");
|
|
71
72
|
if (!isPopulationKey(population)) {
|
|
72
73
|
return Result.Err([
|
|
73
|
-
"usage: admin:backfill-hubspot-contacts --population <key> [--apply] [--enrich-only] [--limit N] [--only ids] [--out FILE]",
|
|
74
|
+
"usage: admin:backfill-hubspot-contacts --population <key> [--apply] [--enrich-only [--maker-id]] [--limit N] [--only ids] [--out FILE]",
|
|
74
75
|
...Object.entries(POPULATIONS).map(([key, description]) => ` --population ${key.padEnd(8)} ${description}`),
|
|
75
76
|
"",
|
|
76
77
|
"--population has no default on purpose: it is the decision the issue asks a human to make.",
|
|
@@ -87,6 +88,9 @@ async function run() {
|
|
|
87
88
|
return Result.Err("NEON_DATABASE_URL is required (prod Neon)");
|
|
88
89
|
const apply = flag("--apply");
|
|
89
90
|
const enrichOnly = flag("--enrich-only");
|
|
91
|
+
const makerId = flag("--maker-id");
|
|
92
|
+
if (makerId && !enrichOnly)
|
|
93
|
+
return Result.Err("--maker-id is part of the sweep and requires --enrich-only");
|
|
90
94
|
const limitRaw = arg("--limit");
|
|
91
95
|
const limit = limitRaw === undefined ? Number.POSITIVE_INFINITY : Number(limitRaw);
|
|
92
96
|
if (!Number.isFinite(limit) && limitRaw !== undefined)
|
|
@@ -114,6 +118,35 @@ async function run() {
|
|
|
114
118
|
}
|
|
115
119
|
console.log(`[backfill] clerk_accounts=${clerkUsers.length} accounts_with_handle=${handles.size} ` +
|
|
116
120
|
`handle_rows=${handleRes.rows.length} accounts_with_codegen_turn=${turns.size}`);
|
|
121
|
+
const appsByUser = new Map();
|
|
122
|
+
const recruitedByUser = new Map();
|
|
123
|
+
if (makerId) {
|
|
124
|
+
const appRes = await pool.query(`select u."userId", b."userSlug" as handle, b."appSlug",
|
|
125
|
+
b."unpublishedAt" = '' and exists (
|
|
126
|
+
select 1 from "Apps" a
|
|
127
|
+
where a."userSlug" = b."userSlug" and a."appSlug" = b."appSlug" and a.mode = 'production'
|
|
128
|
+
) as published
|
|
129
|
+
from "AppSlugBindings" b
|
|
130
|
+
join "UserSlugBindings" u on u."userSlug" = b."userSlug"
|
|
131
|
+
order by b.created`);
|
|
132
|
+
for (const r of appRes.rows) {
|
|
133
|
+
const userId = asString(r.userId);
|
|
134
|
+
const handle = asString(r.handle);
|
|
135
|
+
const appSlug = asString(r.appSlug);
|
|
136
|
+
if (userId === undefined || handle === undefined || appSlug === undefined)
|
|
137
|
+
continue;
|
|
138
|
+
appsByUser.set(userId, [...(appsByUser.get(userId) ?? []), { handle, appSlug, published: r.published === true }]);
|
|
139
|
+
}
|
|
140
|
+
const recruitedRes = await pool.query(`select "userId", "userSlug" as owner, "appSlug" from "SignupAttributions"`);
|
|
141
|
+
for (const r of recruitedRes.rows) {
|
|
142
|
+
const userId = asString(r.userId);
|
|
143
|
+
const owner = asString(r.owner);
|
|
144
|
+
const appSlug = asString(r.appSlug);
|
|
145
|
+
if (userId !== undefined && owner !== undefined && appSlug !== undefined)
|
|
146
|
+
recruitedByUser.set(userId, `${owner}/${appSlug}`);
|
|
147
|
+
}
|
|
148
|
+
console.log(`[backfill] maker-id: accounts_with_apps=${appsByUser.size} recruited_accounts=${recruitedByUser.size}`);
|
|
149
|
+
}
|
|
117
150
|
const accounts = clerkUsers.map((u) => ({
|
|
118
151
|
userId: u.id,
|
|
119
152
|
email: u.email_addresses.find((e) => e.id === u.primary_email_address_id)?.email_address ?? u.email_addresses[0]?.email_address,
|
|
@@ -195,6 +228,53 @@ async function run() {
|
|
|
195
228
|
}
|
|
196
229
|
entries.push({ userId: account.userId, handles: account.handles, action: write.action, contactId: write.id });
|
|
197
230
|
}
|
|
231
|
+
let identityPlanned = 0;
|
|
232
|
+
let identityWritten = 0;
|
|
233
|
+
let identityFailed = 0;
|
|
234
|
+
if (makerId) {
|
|
235
|
+
let identityActed = 0;
|
|
236
|
+
for (const account of candidates) {
|
|
237
|
+
const apps = appsByUser.get(account.userId) ?? [];
|
|
238
|
+
const recruitedByVibe = recruitedByUser.get(account.userId);
|
|
239
|
+
const rContact = await resolveContactForAccount({ token, userId: account.userId, properties: MAKER_FACT_READ_PROPERTIES });
|
|
240
|
+
await sleep(REQUEST_GAP_MS);
|
|
241
|
+
if (rContact.isErr()) {
|
|
242
|
+
identityFailed = identityFailed + 1;
|
|
243
|
+
console.warn(`[backfill] maker-id read failed for ${account.userId}: ${rContact.Err().message}`);
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
const contact = rContact.Ok();
|
|
247
|
+
if (contact === undefined)
|
|
248
|
+
continue;
|
|
249
|
+
const rExisting = await readContactProperties({ token, id: contact.id, properties: MAKER_FACT_READ_PROPERTIES });
|
|
250
|
+
await sleep(REQUEST_GAP_MS);
|
|
251
|
+
if (rExisting.isErr()) {
|
|
252
|
+
identityFailed = identityFailed + 1;
|
|
253
|
+
console.warn(`[backfill] maker-id read failed for ${account.userId}: ${rExisting.Err().message}`);
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
const delta = planMakerIdentityBackfill(rExisting.Ok(), { apps, recruitedByVibe });
|
|
257
|
+
if (Object.keys(delta).length === 0)
|
|
258
|
+
continue;
|
|
259
|
+
identityPlanned = identityPlanned + 1;
|
|
260
|
+
if (!apply) {
|
|
261
|
+
console.log(`[backfill] maker-id plan ${account.userId} → ${contact.id}: ${Object.keys(delta).join(", ")}`);
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
if (identityActed >= limit)
|
|
265
|
+
continue;
|
|
266
|
+
const rPatch = await patchContactProperties({ token, id: contact.id, properties: delta });
|
|
267
|
+
await sleep(REQUEST_GAP_MS);
|
|
268
|
+
identityActed = identityActed + 1;
|
|
269
|
+
if (rPatch.isErr()) {
|
|
270
|
+
identityFailed = identityFailed + 1;
|
|
271
|
+
console.warn(`[backfill] maker-id write failed for ${account.userId}: ${rPatch.Err().message}`);
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
identityWritten = identityWritten + 1;
|
|
275
|
+
}
|
|
276
|
+
console.log(`[backfill] maker-id: contacts_needing_fields=${identityPlanned} written=${identityWritten} failed=${identityFailed}${apply ? "" : " (dry run)"}`);
|
|
277
|
+
}
|
|
198
278
|
const rOrphans = await contactCount(token, [
|
|
199
279
|
{ propertyName: "stripe_customer_id", operator: "HAS_PROPERTY" },
|
|
200
280
|
{ propertyName: "clerk_user_id", operator: "NOT_HAS_PROPERTY" },
|
|
@@ -234,7 +314,7 @@ async function run() {
|
|
|
234
314
|
console.log(`\nreconciliation${verdict.ok ? "" : " — NEEDS EXPLAINING"}:`);
|
|
235
315
|
for (const line of verdict.lines)
|
|
236
316
|
console.log(` ${line}`);
|
|
237
|
-
if (counts.failed > 0) {
|
|
317
|
+
if (counts.failed > 0 || identityFailed > 0) {
|
|
238
318
|
process.exitCode = 1;
|
|
239
319
|
}
|
|
240
320
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill-hubspot-contacts.js","sourceRoot":"","sources":["../../jsr/usage-report/backfill-hubspot-contacts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backfill-hubspot-contacts.js","sourceRoot":"","sources":["../../jsr/usage-report/backfill-hubspot-contacts.ts"],"names":[],"mappings":"AA8CA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,GAIf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,GAEpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAGzG,MAAM,eAAe,GAAG,GAAG,CAAC;AAK5B,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AACD,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AACD,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AACD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAGD,KAAK,UAAU,aAAa,CAAC,GAAW;IACtC,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,IAAI,MAAM,GAAG,CAAC,GAAI,MAAM,IAAI,eAAe,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,wCAAwC,eAAe,WAAW,MAAM,yBAAyB,EAAE;YACzH,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA8B,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,KAAK,SAAS;gBAAE,SAAS;YAC/B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE;gBACF,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI;gBACtC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI;gBAC1C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI;gBACxC,eAAe,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC;oBAChH,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClB,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;iBAC/C,CAAC,CAAC;gBACH,UAAU,EAAE,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC/D,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,IAAI;aACvE,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe;YAAE,OAAO,KAAK,CAAC;IAClD,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,OAA0C;IACnF,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACvC,KAAK,CAAC,uDAAuD,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACjF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACvF,CAAC,CACH,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAAiC,CAAC,CAAC;IAC5F,IAAI,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,WAAW,EAAE,CAAC;IACd,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACvC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,GAAG,CACf;YACE,wIAAwI;YACxI,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5G,EAAE;YACF,4FAA4F;SAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IACjG,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC3H,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzF,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEnG,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IAKzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,IAAI,OAAO,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACrG,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAC3B,CAAC;IACF,MAAM,UAAU,GAAG,iBAAiB,CAAC;QACnC,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAC3D,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;KAC9D,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,IAAI,EAAE;QAI/C,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC/H,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,IAA4C,EAAE,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACpH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAA2C,EAAE,CAAC;YACpE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,GAAG,CACT,6BAA6B,UAAU,CAAC,MAAM,yBAAyB,OAAO,CAAC,IAAI,GAAG;YACpF,eAAe,SAAS,CAAC,IAAI,CAAC,MAAM,+BAA+B,KAAK,CAAC,IAAI,EAAE,CAClF,CAAC;QAQF,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;;;;;;;6BAOqB,CACtB,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAiC,EAAE,CAAC;gBACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;oBAAE,SAAS;gBACpF,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACpH,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;YACnH,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,IAAiC,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;oBACtE,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,2CAA2C,UAAU,CAAC,IAAI,uBAAuB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QACvH,CAAC;QAED,MAAM,QAAQ,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,MAAM,EAAE,CAAC,CAAC,EAAE;YACZ,KAAK,EACH,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,wBAAwB,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,aAAa;YAC1H,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;YAChC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;SACnC,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,EAAE,UAA2B,EAAE,UAAU,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAI3F,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACzG,IAAI,OAAO,CAAC,KAAK,EAAE;YAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;QAIlC,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS;YACjC,MAAM,MAAM,GAAG;gBACb,KAAK;gBACL,IAAI;gBACJ,OAAO,EAAE,OAAO,CAAC,OAAO;gBAKxB,gBAAgB,EAAE,IAAI;aACvB,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClH,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvG,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBAIX,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;iBAC1D,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAWD,MAAM,UAAU,GACd,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBACpC,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,KAAK,IAAI,KAAK;oBACd,CAAC,CAAC,8BAA8B;oBAChC,CAAC,CAAC,SAAS,CAAC;YAClB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBACzD,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAKD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACjG,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5B,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnH,SAAS;YACX,CAAC;YACD,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC7B,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;gBACpB,IAAI,WAAW;oBAAE,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAChH,CAAC;QAWD,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClD,MAAM,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAC3H,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC5B,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;oBACrB,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjG,SAAS;gBACX,CAAC;gBACD,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAC9B,IAAI,OAAO,KAAK,SAAS;oBAAE,SAAS;gBAGpC,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBACjH,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC5B,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;oBACtB,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBAClG,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;gBACnF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAC9C,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAGX,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5G,SAAS;gBACX,CAAC;gBACD,IAAI,aAAa,IAAI,KAAK;oBAAE,SAAS;gBACrC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1F,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC5B,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;gBAClC,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;oBACnB,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,wCAAwC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBAChG,SAAS;gBACX,CAAC;gBACD,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,CAAC,GAAG,CACT,gDAAgD,eAAe,YAAY,eAAe,WAAW,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAClJ,CAAC;QACJ,CAAC;QAKD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE;YACzC,EAAE,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE;YAChE,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,kBAAkB,EAAE;SAChE,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,gBAAgB,CAAC;YACf,UAAU,EAAE,UAA2B;YACvC,SAAS;YACT,MAAM;YACN,KAAK;YACL,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;YAC1D,UAAU,EAAE,IAAI;SACjB,CAAC,CACH,CAAC;QAEF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAGtB,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,8CAA8C,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QAKD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACxG,IAAI,MAAM,CAAC,KAAK,EAAE;YAAE,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,SAAS,CAAC;YACxB,QAAQ,EAAE,UAAU,CAAC,MAAM;YAC3B,YAAY;YACZ,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE;YAC3B,OAAO;YACP,MAAM;YACN,aAAa;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC3E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAS3D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;IACpB,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC"}
|