dev3000 0.0.115 → 0.0.116
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/dist/cdp-monitor.d.ts.map +1 -1
- package/dist/cdp-monitor.js +20 -28
- package/dist/cdp-monitor.js.map +1 -1
- package/dist/cli.js +42 -20
- package/dist/cli.js.map +1 -1
- package/dist/dev-environment.d.ts.map +1 -1
- package/dist/dev-environment.js +38 -7
- package/dist/dev-environment.js.map +1 -1
- package/mcp-server/.next/BUILD_ID +1 -1
- package/mcp-server/.next/build-manifest.json +2 -2
- package/mcp-server/.next/fallback-build-manifest.json +2 -2
- package/mcp-server/.next/prerender-manifest.json +3 -3
- package/mcp-server/.next/server/app/_global-error.html +2 -2
- package/mcp-server/.next/server/app/_global-error.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.html +1 -1
- package/mcp-server/.next/server/app/_not-found.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/auth/error.html +1 -1
- package/mcp-server/.next/server/app/auth/error.rsc +1 -1
- package/mcp-server/.next/server/app/auth/error.segments/_full.segment.rsc +1 -1
- package/mcp-server/.next/server/app/auth/error.segments/_head.segment.rsc +1 -1
- package/mcp-server/.next/server/app/auth/error.segments/_index.segment.rsc +1 -1
- package/mcp-server/.next/server/app/auth/error.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/auth/error.segments/auth/error/__PAGE__.segment.rsc +1 -1
- package/mcp-server/.next/server/app/auth/error.segments/auth/error.segment.rsc +1 -1
- package/mcp-server/.next/server/app/auth/error.segments/auth.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.html +1 -1
- package/mcp-server/.next/server/app/index.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/mcp/route.js +2 -2
- package/mcp-server/.next/server/chunks/[root-of-the-server]__157de66b._.js +305 -123
- package/mcp-server/.next/server/chunks/[root-of-the-server]__157de66b._.js.map +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__748f411f._.js +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__748f411f._.js.map +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__8a84f9f4._.js +20 -20
- package/mcp-server/.next/server/chunks/[root-of-the-server]__8a84f9f4._.js.map +1 -1
- package/mcp-server/.next/server/chunks/bee4f_next_dist_esm_build_templates_app-route_1ece9366.js +52 -52
- package/mcp-server/.next/server/chunks/bee4f_next_dist_esm_build_templates_app-route_1ece9366.js.map +1 -1
- package/mcp-server/.next/server/chunks/mcp-server_app_api_cloud_fix-workflow_steps_ts_b65f3271._.js +106 -26
- package/mcp-server/.next/server/chunks/mcp-server_app_api_cloud_fix-workflow_steps_ts_b65f3271._.js.map +1 -1
- package/mcp-server/.next/server/server-reference-manifest.js +1 -1
- package/mcp-server/.next/server/server-reference-manifest.json +1 -1
- package/mcp-server/app/api/cloud/fix-workflow/steps.ts +92 -0
- package/mcp-server/app/api/tools/route.ts +11 -12
- package/mcp-server/app/mcp/tools.ts +58 -98
- package/package.json +1 -1
- /package/mcp-server/.next/static/{5zfTZk2QSS7WLdL1K8Q5I → G5taiQ-Jp0B_MdvkQuoIT}/_buildManifest.js +0 -0
- /package/mcp-server/.next/static/{5zfTZk2QSS7WLdL1K8Q5I → G5taiQ-Jp0B_MdvkQuoIT}/_clientMiddlewareManifest.json +0 -0
- /package/mcp-server/.next/static/{5zfTZk2QSS7WLdL1K8Q5I → G5taiQ-Jp0B_MdvkQuoIT}/_ssgManifest.js +0 -0
package/mcp-server/.next/server/chunks/bee4f_next_dist_esm_build_templates_app-route_1ece9366.js
CHANGED
|
@@ -1,61 +1,13 @@
|
|
|
1
|
-
module.exports=[42960,e=>{"use strict";var l=e.i(63382),c=e.i(64639),
|
|
1
|
+
module.exports=[42960,e=>{"use strict";var l=e.i(63382),c=e.i(64639),F=e.i(9710),B=e.i(54585),o=e.i(55812),s=e.i(18725),t=e.i(94777),a=e.i(19465),b=e.i(59382),U=e.i(75932),d=e.i(22566),r=e.i(91442),i=e.i(77038),I=e.i(94658),m=e.i(16211),Q=e.i(93484),Z=e.i(93695);e.i(3056);var n=e.i(62863);e.i(43699);var G=e.i(75525);let V=`var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
var __export = (target, all) => {
|
|
4
4
|
for (var name in all)
|
|
5
5
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
// app/api/cloud/
|
|
8
|
+
// app/api/cloud/fix-workflow/workflow.ts
|
|
9
9
|
var workflow_exports = {};
|
|
10
10
|
__export(workflow_exports, {
|
|
11
|
-
cloudCheckPRWorkflow: () => cloudCheckPRWorkflow
|
|
12
|
-
});
|
|
13
|
-
async function cloudCheckPRWorkflow(params) {
|
|
14
|
-
const { previewUrl, prTitle, prBody, changedFiles, repoOwner, repoName, prNumber } = params;
|
|
15
|
-
console.log("[Workflow] Starting cloud check-pr workflow...");
|
|
16
|
-
console.log(\`[Workflow] Preview URL: \${previewUrl}\`);
|
|
17
|
-
console.log(\`[Workflow] PR #\${prNumber}: \${prTitle}\`);
|
|
18
|
-
console.log(\`[Workflow] Changed files: \${changedFiles.length}\`);
|
|
19
|
-
console.log(\`[Workflow] Timestamp: \${(/* @__PURE__ */ new Date()).toISOString()}\`);
|
|
20
|
-
const pagesToCheck = await identifyAffectedPagesStep(changedFiles, prBody);
|
|
21
|
-
const crawlResults = await crawlPreviewPagesStep(previewUrl, pagesToCheck);
|
|
22
|
-
const verification = await verifyPRClaimsStep(prTitle, prBody, crawlResults, changedFiles);
|
|
23
|
-
const performanceResults = await checkPerformanceStep(previewUrl, pagesToCheck);
|
|
24
|
-
const report = await generateReportStep({
|
|
25
|
-
prTitle,
|
|
26
|
-
prBody,
|
|
27
|
-
prNumber,
|
|
28
|
-
previewUrl,
|
|
29
|
-
changedFiles,
|
|
30
|
-
pagesToCheck,
|
|
31
|
-
crawlResults,
|
|
32
|
-
verification,
|
|
33
|
-
performanceResults,
|
|
34
|
-
repoOwner,
|
|
35
|
-
repoName
|
|
36
|
-
});
|
|
37
|
-
const blobResult = await uploadReportStep(report, repoOwner, repoName, prNumber);
|
|
38
|
-
return Response.json({
|
|
39
|
-
success: verification.allChecksPassed,
|
|
40
|
-
reportUrl: blobResult.blobUrl,
|
|
41
|
-
prComment: true,
|
|
42
|
-
verification: verification.summary,
|
|
43
|
-
performance: performanceResults.summary,
|
|
44
|
-
message: verification.allChecksPassed ? "All PR checks passed! \\u2705" : "Some PR checks failed - see report for details"
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
__name(cloudCheckPRWorkflow, "cloudCheckPRWorkflow");
|
|
48
|
-
var identifyAffectedPagesStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//identifyAffectedPagesStep");
|
|
49
|
-
var crawlPreviewPagesStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//crawlPreviewPagesStep");
|
|
50
|
-
var verifyPRClaimsStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//verifyPRClaimsStep");
|
|
51
|
-
var checkPerformanceStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//checkPerformanceStep");
|
|
52
|
-
var generateReportStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//generateReportStep");
|
|
53
|
-
var uploadReportStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//uploadReportStep");
|
|
54
|
-
cloudCheckPRWorkflow.workflowId = "workflow//app/api/cloud/check-pr/workflow.ts//cloudCheckPRWorkflow";
|
|
55
|
-
|
|
56
|
-
// app/api/cloud/fix-workflow/workflow.ts
|
|
57
|
-
var workflow_exports2 = {};
|
|
58
|
-
__export(workflow_exports2, {
|
|
59
11
|
cloudFixWorkflow: () => cloudFixWorkflow
|
|
60
12
|
});
|
|
61
13
|
async function cloudFixWorkflow(params) {
|
|
@@ -106,11 +58,59 @@ var uploadToBlob = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cl
|
|
|
106
58
|
var createGitHubPR = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/fix-workflow/workflow.ts//createGitHubPR");
|
|
107
59
|
cloudFixWorkflow.workflowId = "workflow//app/api/cloud/fix-workflow/workflow.ts//cloudFixWorkflow";
|
|
108
60
|
|
|
61
|
+
// app/api/cloud/check-pr/workflow.ts
|
|
62
|
+
var workflow_exports2 = {};
|
|
63
|
+
__export(workflow_exports2, {
|
|
64
|
+
cloudCheckPRWorkflow: () => cloudCheckPRWorkflow
|
|
65
|
+
});
|
|
66
|
+
async function cloudCheckPRWorkflow(params) {
|
|
67
|
+
const { previewUrl, prTitle, prBody, changedFiles, repoOwner, repoName, prNumber } = params;
|
|
68
|
+
console.log("[Workflow] Starting cloud check-pr workflow...");
|
|
69
|
+
console.log(\`[Workflow] Preview URL: \${previewUrl}\`);
|
|
70
|
+
console.log(\`[Workflow] PR #\${prNumber}: \${prTitle}\`);
|
|
71
|
+
console.log(\`[Workflow] Changed files: \${changedFiles.length}\`);
|
|
72
|
+
console.log(\`[Workflow] Timestamp: \${(/* @__PURE__ */ new Date()).toISOString()}\`);
|
|
73
|
+
const pagesToCheck = await identifyAffectedPagesStep(changedFiles, prBody);
|
|
74
|
+
const crawlResults = await crawlPreviewPagesStep(previewUrl, pagesToCheck);
|
|
75
|
+
const verification = await verifyPRClaimsStep(prTitle, prBody, crawlResults, changedFiles);
|
|
76
|
+
const performanceResults = await checkPerformanceStep(previewUrl, pagesToCheck);
|
|
77
|
+
const report = await generateReportStep({
|
|
78
|
+
prTitle,
|
|
79
|
+
prBody,
|
|
80
|
+
prNumber,
|
|
81
|
+
previewUrl,
|
|
82
|
+
changedFiles,
|
|
83
|
+
pagesToCheck,
|
|
84
|
+
crawlResults,
|
|
85
|
+
verification,
|
|
86
|
+
performanceResults,
|
|
87
|
+
repoOwner,
|
|
88
|
+
repoName
|
|
89
|
+
});
|
|
90
|
+
const blobResult = await uploadReportStep(report, repoOwner, repoName, prNumber);
|
|
91
|
+
return Response.json({
|
|
92
|
+
success: verification.allChecksPassed,
|
|
93
|
+
reportUrl: blobResult.blobUrl,
|
|
94
|
+
prComment: true,
|
|
95
|
+
verification: verification.summary,
|
|
96
|
+
performance: performanceResults.summary,
|
|
97
|
+
message: verification.allChecksPassed ? "All PR checks passed! \\u2705" : "Some PR checks failed - see report for details"
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
__name(cloudCheckPRWorkflow, "cloudCheckPRWorkflow");
|
|
101
|
+
var identifyAffectedPagesStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//identifyAffectedPagesStep");
|
|
102
|
+
var crawlPreviewPagesStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//crawlPreviewPagesStep");
|
|
103
|
+
var verifyPRClaimsStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//verifyPRClaimsStep");
|
|
104
|
+
var checkPerformanceStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//checkPerformanceStep");
|
|
105
|
+
var generateReportStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//generateReportStep");
|
|
106
|
+
var uploadReportStep = globalThis[Symbol.for("WORKFLOW_USE_STEP")]("step//app/api/cloud/check-pr/workflow.ts//uploadReportStep");
|
|
107
|
+
cloudCheckPRWorkflow.workflowId = "workflow//app/api/cloud/check-pr/workflow.ts//cloudCheckPRWorkflow";
|
|
108
|
+
|
|
109
109
|
// virtual-entry.js
|
|
110
110
|
globalThis.__private_workflows = /* @__PURE__ */ new Map();
|
|
111
111
|
Object.values(workflow_exports).map((item) => item?.workflowId && globalThis.__private_workflows.set(item.workflowId, item));
|
|
112
112
|
Object.values(workflow_exports2).map((item) => item?.workflowId && globalThis.__private_workflows.set(item.workflowId, item));
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cyIsICJhcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cyIsICJ2aXJ0dWFsLWVudHJ5LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipfX2ludGVybmFsX3dvcmtmbG93c3tcIndvcmtmbG93c1wiOntcImFwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHNcIjp7XCJjbG91ZENoZWNrUFJXb3JrZmxvd1wiOntcIndvcmtmbG93SWRcIjpcIndvcmtmbG93Ly9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jbG91ZENoZWNrUFJXb3JrZmxvd1wifX19LFwic3RlcHNcIjp7XCJhcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzXCI6e1wiY2hlY2tQZXJmb3JtYW5jZVN0ZXBcIjp7XCJzdGVwSWRcIjpcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2NoZWNrUGVyZm9ybWFuY2VTdGVwXCJ9LFwiY3Jhd2xQcmV2aWV3UGFnZXNTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jcmF3bFByZXZpZXdQYWdlc1N0ZXBcIn0sXCJnZW5lcmF0ZVJlcG9ydFN0ZXBcIjp7XCJzdGVwSWRcIjpcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2dlbmVyYXRlUmVwb3J0U3RlcFwifSxcImlkZW50aWZ5QWZmZWN0ZWRQYWdlc1N0ZXBcIjp7XCJzdGVwSWRcIjpcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2lkZW50aWZ5QWZmZWN0ZWRQYWdlc1N0ZXBcIn0sXCJ1cGxvYWRSZXBvcnRTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy91cGxvYWRSZXBvcnRTdGVwXCJ9LFwidmVyaWZ5UFJDbGFpbXNTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy92ZXJpZnlQUkNsYWltc1N0ZXBcIn19fX0qLztcbi8qKlxuICogQ2xvdWQgQ2hlY2sgUFIgV29ya2Zsb3cgRnVuY3Rpb24gLSBDb3JlIHdvcmtmbG93IGxvZ2ljXG4gKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIE9OTFkgdGhlIHdvcmtmbG93IGZ1bmN0aW9uIGFuZCBzdGVwIHdyYXBwZXJzLlxuICogSXQgZG9lcyBOT1QgaW1wb3J0IHdvcmtmbG93L2FwaSB0byBhdm9pZCBidW5kbGVyIGlzc3Vlcy5cbiAqLyAvKipcbiAqIE1haW4gd29ya2Zsb3cgZnVuY3Rpb24gdGhhdCBjaGVja3MgYSBQUidzIGNoYW5nZXNcbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xvdWRDaGVja1BSV29ya2Zsb3cocGFyYW1zKSB7XG4gICAgY29uc3QgeyBwcmV2aWV3VXJsLCBwclRpdGxlLCBwckJvZHksIGNoYW5nZWRGaWxlcywgcmVwb093bmVyLCByZXBvTmFtZSwgcHJOdW1iZXIgfSA9IHBhcmFtcztcbiAgICBjb25zb2xlLmxvZyhcIltXb3JrZmxvd10gU3RhcnRpbmcgY2xvdWQgY2hlY2stcHIgd29ya2Zsb3cuLi5cIik7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gUHJldmlldyBVUkw6ICR7cHJldmlld1VybH1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBQUiAjJHtwck51bWJlcn06ICR7cHJUaXRsZX1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBDaGFuZ2VkIGZpbGVzOiAke2NoYW5nZWRGaWxlcy5sZW5ndGh9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gVGltZXN0YW1wOiAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gKTtcbiAgICAvLyBTdGVwIDE6IERldGVybWluZSB3aGljaCBwYWdlcyB0byBjaGVjayBiYXNlZCBvbiBjaGFuZ2VkIGZpbGVzXG4gICAgY29uc3QgcGFnZXNUb0NoZWNrID0gYXdhaXQgaWRlbnRpZnlBZmZlY3RlZFBhZ2VzU3RlcChjaGFuZ2VkRmlsZXMsIHByQm9keSk7XG4gICAgLy8gU3RlcCAyOiBDcmF3bCB0aGUgcHJldmlldyBkZXBsb3ltZW50XG4gICAgY29uc3QgY3Jhd2xSZXN1bHRzID0gYXdhaXQgY3Jhd2xQcmV2aWV3UGFnZXNTdGVwKHByZXZpZXdVcmwsIHBhZ2VzVG9DaGVjayk7XG4gICAgLy8gU3RlcCAzOiBWZXJpZnkgUFIgY2xhaW1zIGFnYWluc3QgYWN0dWFsIGJlaGF2aW9yXG4gICAgY29uc3QgdmVyaWZpY2F0aW9uID0gYXdhaXQgdmVyaWZ5UFJDbGFpbXNTdGVwKHByVGl0bGUsIHByQm9keSwgY3Jhd2xSZXN1bHRzLCBjaGFuZ2VkRmlsZXMpO1xuICAgIC8vIFN0ZXAgNDogQ2hlY2sgcGVyZm9ybWFuY2UgbWV0cmljc1xuICAgIGNvbnN0IHBlcmZvcm1hbmNlUmVzdWx0cyA9IGF3YWl0IGNoZWNrUGVyZm9ybWFuY2VTdGVwKHByZXZpZXdVcmwsIHBhZ2VzVG9DaGVjayk7XG4gICAgLy8gU3RlcCA1OiBHZW5lcmF0ZSBjb21wcmVoZW5zaXZlIHJlcG9ydFxuICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IGdlbmVyYXRlUmVwb3J0U3RlcCh7XG4gICAgICAgIHByVGl0bGUsXG4gICAgICAgIHByQm9keSxcbiAgICAgICAgcHJOdW1iZXIsXG4gICAgICAgIHByZXZpZXdVcmwsXG4gICAgICAgIGNoYW5nZWRGaWxlcyxcbiAgICAgICAgcGFnZXNUb0NoZWNrLFxuICAgICAgICBjcmF3bFJlc3VsdHMsXG4gICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgcGVyZm9ybWFuY2VSZXN1bHRzLFxuICAgICAgICByZXBvT3duZXIsXG4gICAgICAgIHJlcG9OYW1lXG4gICAgfSk7XG4gICAgLy8gU3RlcCA2OiBVcGxvYWQgcmVwb3J0IHRvIGJsb2Igc3RvcmFnZVxuICAgIGNvbnN0IGJsb2JSZXN1bHQgPSBhd2FpdCB1cGxvYWRSZXBvcnRTdGVwKHJlcG9ydCwgcmVwb093bmVyLCByZXBvTmFtZSwgcHJOdW1iZXIpO1xuICAgIHJldHVybiBSZXNwb25zZS5qc29uKHtcbiAgICAgICAgc3VjY2VzczogdmVyaWZpY2F0aW9uLmFsbENoZWNrc1Bhc3NlZCxcbiAgICAgICAgcmVwb3J0VXJsOiBibG9iUmVzdWx0LmJsb2JVcmwsXG4gICAgICAgIHByQ29tbWVudDogdHJ1ZSxcbiAgICAgICAgdmVyaWZpY2F0aW9uOiB2ZXJpZmljYXRpb24uc3VtbWFyeSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlUmVzdWx0cy5zdW1tYXJ5LFxuICAgICAgICBtZXNzYWdlOiB2ZXJpZmljYXRpb24uYWxsQ2hlY2tzUGFzc2VkID8gXCJBbGwgUFIgY2hlY2tzIHBhc3NlZCEgXHUyNzA1XCIgOiBcIlNvbWUgUFIgY2hlY2tzIGZhaWxlZCAtIHNlZSByZXBvcnQgZm9yIGRldGFpbHNcIlxuICAgIH0pO1xufVxuLy8gU3RlcCBmdW5jdGlvbiB3cmFwcGVycyB0aGF0IGR5bmFtaWNhbGx5IGltcG9ydCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uc1xudmFyIGlkZW50aWZ5QWZmZWN0ZWRQYWdlc1N0ZXAgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9pZGVudGlmeUFmZmVjdGVkUGFnZXNTdGVwXCIpO1xudmFyIGNyYXdsUHJldmlld1BhZ2VzU3RlcCA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2NyYXdsUHJldmlld1BhZ2VzU3RlcFwiKTtcbi8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTogQUktZ2VuZXJhdGVkIGNyYXdsIGRhdGEgaGFzIGR5bmFtaWMgc3RydWN0dXJlXG52YXIgdmVyaWZ5UFJDbGFpbXNTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vdmVyaWZ5UFJDbGFpbXNTdGVwXCIpO1xudmFyIGNoZWNrUGVyZm9ybWFuY2VTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vY2hlY2tQZXJmb3JtYW5jZVN0ZXBcIik7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IFJlcG9ydCBkYXRhIGhhcyBkeW5hbWljIHN0cnVjdHVyZSBmcm9tIHByZXZpb3VzIHN0ZXBzXG52YXIgZ2VuZXJhdGVSZXBvcnRTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vZ2VuZXJhdGVSZXBvcnRTdGVwXCIpO1xudmFyIHVwbG9hZFJlcG9ydFN0ZXAgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy91cGxvYWRSZXBvcnRTdGVwXCIpO1xuY2xvdWRDaGVja1BSV29ya2Zsb3cud29ya2Zsb3dJZCA9IFwid29ya2Zsb3cvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2Nsb3VkQ2hlY2tQUldvcmtmbG93XCI7XG4iLCAiLyoqX19pbnRlcm5hbF93b3JrZmxvd3N7XCJ3b3JrZmxvd3NcIjp7XCJhcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50c1wiOntcImNsb3VkRml4V29ya2Zsb3dcIjp7XCJ3b3JrZmxvd0lkXCI6XCJ3b3JrZmxvdy8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2Nsb3VkRml4V29ya2Zsb3dcIn19fSxcInN0ZXBzXCI6e1wiYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHNcIjp7XCJhbmFseXplTG9nc1dpdGhBZ2VudFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2FuYWx5emVMb2dzV2l0aEFnZW50XCJ9LFwiY3JlYXRlRDNrU2FuZGJveFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2NyZWF0ZUQza1NhbmRib3hcIn0sXCJjcmVhdGVHaXRIdWJQUlwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2NyZWF0ZUdpdEh1YlBSXCJ9LFwiZmV0Y2hSZWFsTG9nc1wiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2ZldGNoUmVhbExvZ3NcIn0sXCJ1cGxvYWRUb0Jsb2JcIjp7XCJzdGVwSWRcIjpcInN0ZXAvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy91cGxvYWRUb0Jsb2JcIn19fX0qLztcbi8qKlxuICogQ2xvdWQgRml4IFdvcmtmbG93IEZ1bmN0aW9uIC0gQ29yZSB3b3JrZmxvdyBsb2dpY1xuICpcbiAqIFRoaXMgZmlsZSBjb250YWlucyBPTkxZIHRoZSB3b3JrZmxvdyBmdW5jdGlvbiBhbmQgc3RlcCB3cmFwcGVycy5cbiAqIEl0IGRvZXMgTk9UIGltcG9ydCB3b3JrZmxvdy9hcGkgdG8gYXZvaWQgYnVuZGxlciBpc3N1ZXMuXG4gKi8gLyoqXG4gKiBNYWluIHdvcmtmbG93IGZ1bmN0aW9uIHRoYXQgb3JjaGVzdHJhdGVzIHRoZSBmaXggcHJvY2Vzc1xuICovIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbG91ZEZpeFdvcmtmbG93KHBhcmFtcykge1xuICAgIGNvbnN0IHsgZGV2VXJsLCBwcm9qZWN0TmFtZSwgdmVyY2VsVG9rZW4sIHZlcmNlbE9pZGNUb2tlbjogdmVyY2VsT2lkY1Rva2VuUGFyYW0sIHJlcG9Pd25lciwgcmVwb05hbWUsIGJhc2VCcmFuY2ggPSBcIm1haW5cIiwgYnlwYXNzVG9rZW4sIHJlcG9VcmwsIHJlcG9CcmFuY2ggfSA9IHBhcmFtcztcbiAgICBjb25zb2xlLmxvZyhcIltXb3JrZmxvd10gU3RhcnRpbmcgY2xvdWQgZml4IHdvcmtmbG93Li4uXCIpO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIERldiBVUkw6ICR7ZGV2VXJsfWApO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFByb2plY3Q6ICR7cHJvamVjdE5hbWV9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gVGltZXN0YW1wOiAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBCeXBhc3MgVG9rZW46ICR7YnlwYXNzVG9rZW4gPyBcInByb3ZpZGVkXCIgOiBcIm5vdCBwcm92aWRlZFwifWApO1xuICAgIGlmIChyZXBvT3duZXIgJiYgcmVwb05hbWUpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gR2l0SHViIFJlcG86ICR7cmVwb093bmVyfS8ke3JlcG9OYW1lfWApO1xuICAgICAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBCYXNlIEJyYW5jaDogJHtiYXNlQnJhbmNofWApO1xuICAgIH1cbiAgICBpZiAocmVwb1VybCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBXaWxsIGNyZWF0ZSBzYW5kYm94IGZyb206ICR7cmVwb1VybH1gKTtcbiAgICAgICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gQnJhbmNoOiAke3JlcG9CcmFuY2ggfHwgXCJtYWluXCJ9YCk7XG4gICAgfVxuICAgIC8vIFVzZSBWRVJDRUxfT0lEQ19UT0tFTiBmcm9tIHBhcmFtcyAocGFzc2VkIGZyb20gcmVxdWVzdCBoZWFkZXIpIG9yIGZhbGwgYmFjayB0byBlbnZcbiAgICAvLyBBdCBydW50aW1lLCBPSURDIHRva2VuIGlzIGluIHgtdmVyY2VsLW9pZGMtdG9rZW4gaGVhZGVyLCBub3QgcHJvY2Vzcy5lbnZcbiAgICBjb25zdCB2ZXJjZWxPaWRjVG9rZW4gPSB2ZXJjZWxPaWRjVG9rZW5QYXJhbSB8fCBwcm9jZXNzLmVudi5WRVJDRUxfT0lEQ19UT0tFTjtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBWRVJDRUxfT0lEQ19UT0tFTiBmcm9tIHBhcmFtOiAkeyEhdmVyY2VsT2lkY1Rva2VuUGFyYW19YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gVkVSQ0VMX09JRENfVE9LRU4gZnJvbSBlbnY6ICR7ISFwcm9jZXNzLmVudi5WRVJDRUxfT0lEQ19UT0tFTn1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBWRVJDRUxfT0lEQ19UT0tFTiBhdmFpbGFibGU6ICR7ISF2ZXJjZWxPaWRjVG9rZW59YCk7XG4gICAgLy8gU3RlcCAwOiBDcmVhdGUgZDNrIHNhbmRib3ggaWYgcmVwb1VybCBwcm92aWRlZFxuICAgIC8vIFRoaXMgc3RlcCBhbHNvIGNhcHR1cmVzIENMUyBkYXRhLCBcImJlZm9yZVwiIHNjcmVlbnNob3QsIGFuZCBnaXQgZGlmZiBmcm9tIGluc2lkZSB0aGUgc2FuZGJveFxuICAgIGxldCBzYW5kYm94SW5mbyA9IG51bGw7XG4gICAgaWYgKHJlcG9VcmwpIHtcbiAgICAgICAgc2FuZGJveEluZm8gPSBhd2FpdCBjcmVhdGVEM2tTYW5kYm94KHJlcG9VcmwsIHJlcG9CcmFuY2ggfHwgXCJtYWluXCIsIHByb2plY3ROYW1lLCB2ZXJjZWxUb2tlbiwgdmVyY2VsT2lkY1Rva2VuKTtcbiAgICB9XG4gICAgLy8gU3RlcCAxOiBGZXRjaCByZWFsIGxvZ3MgKHVzaW5nIHNhbmRib3ggTUNQIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGRldlVybCBkaXJlY3RseSlcbiAgICAvLyBJZiB3ZSBnb3QgQ0xTIGRhdGEgZnJvbSBTdGVwIDAsIHBhc3MgaXQgdG8gU3RlcCAxIHRvIGF2b2lkIHJlLWZldGNoaW5nXG4gICAgLy8gVXNlIGJ5cGFzcyB0b2tlbiBmcm9tIHNhbmRib3ggaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIHByb3ZpZGVkIG9uZVxuICAgIC8vIEFsc28gcGFzcyB0aGUgYmVmb3JlU2NyZWVuc2hvdFVybCBmcm9tIFN0ZXAgMCBpZiBhdmFpbGFibGVcbiAgICBjb25zdCBlZmZlY3RpdmVCeXBhc3NUb2tlbiA9IHNhbmRib3hJbmZvPy5ieXBhc3NUb2tlbiB8fCBieXBhc3NUb2tlbjtcbiAgICBjb25zdCBzdGVwMVJlc3VsdCA9IGF3YWl0IGZldGNoUmVhbExvZ3Moc2FuZGJveEluZm8/Lm1jcFVybCB8fCBkZXZVcmwsIGVmZmVjdGl2ZUJ5cGFzc1Rva2VuLCBzYW5kYm94SW5mbz8uZGV2VXJsLCBzYW5kYm94SW5mbz8uY2xzRGF0YSwgc2FuZGJveEluZm8/Lm1jcEVycm9yLCBzYW5kYm94SW5mbz8uYmVmb3JlU2NyZWVuc2hvdFVybCk7XG4gICAgY29uc3QgeyBsb2dBbmFseXNpcywgYmVmb3JlU2NyZWVuc2hvdFVybCB9ID0gc3RlcDFSZXN1bHQ7XG4gICAgLy8gU3RlcCAyOiBJbnZva2UgQUkgYWdlbnQgdG8gYW5hbHl6ZSBsb2dzIGFuZCBjcmVhdGUgZml4XG4gICAgY29uc3QgZml4UHJvcG9zYWwgPSBhd2FpdCBhbmFseXplTG9nc1dpdGhBZ2VudChsb2dBbmFseXNpcywgc2FuZGJveEluZm8/LmRldlVybCB8fCBkZXZVcmwpO1xuICAgIC8vIFN0ZXAgMzogVXBsb2FkIHRvIGJsb2Igc3RvcmFnZSB3aXRoIGZ1bGwgY29udGV4dCwgc2NyZWVuc2hvdCwgYW5kIGdpdCBkaWZmXG4gICAgY29uc3QgYmxvYlJlc3VsdCA9IGF3YWl0IHVwbG9hZFRvQmxvYihmaXhQcm9wb3NhbCwgcHJvamVjdE5hbWUsIGxvZ0FuYWx5c2lzLCBzYW5kYm94SW5mbz8uZGV2VXJsIHx8IGRldlVybCwgYmVmb3JlU2NyZWVuc2hvdFVybCwgc2FuZGJveEluZm8/LmdpdERpZmYpO1xuICAgIC8vIFN0ZXAgNDogQ3JlYXRlIEdpdEh1YiBQUiBpZiByZXBvIGluZm8gcHJvdmlkZWQgQU5EIHRoZXJlIGFyZSBhY3R1YWwgZml4ZXMgdG8gYXBwbHlcbiAgICBsZXQgcHJSZXN1bHQgPSBudWxsO1xuICAgIGNvbnN0IGhhc0dpdFBhdGNoID0gZml4UHJvcG9zYWwuaW5jbHVkZXMoXCJgYGBkaWZmXCIpO1xuICAgIGlmIChyZXBvT3duZXIgJiYgcmVwb05hbWUgJiYgaGFzR2l0UGF0Y2gpIHtcbiAgICAgICAgcHJSZXN1bHQgPSBhd2FpdCBjcmVhdGVHaXRIdWJQUihmaXhQcm9wb3NhbCwgYmxvYlJlc3VsdC5ibG9iVXJsLCByZXBvT3duZXIsIHJlcG9OYW1lLCBiYXNlQnJhbmNoLCBwcm9qZWN0TmFtZSk7XG4gICAgfSBlbHNlIGlmIChyZXBvT3duZXIgJiYgcmVwb05hbWUgJiYgIWhhc0dpdFBhdGNoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiW1dvcmtmbG93XSBObyBnaXQgcGF0Y2ggZm91bmQgLSBza2lwcGluZyBQUiBjcmVhdGlvbiAoc3lzdGVtIGlzIGhlYWx0aHkpXCIpO1xuICAgIH1cbiAgICAvLyBOb3RlOiBTYW5kYm94IGNsZWFudXAgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzYW5kYm94IHRpbWVvdXRcbiAgICAvLyBXZSBjYW5ub3Qgc3RvcmUgY2xlYW51cCBmdW5jdGlvbnMgYXMgdGhleSdyZSBub3Qgc2VyaWFsaXphYmxlXG4gICAgcmV0dXJuIFJlc3BvbnNlLmpzb24oe1xuICAgICAgICAuLi5ibG9iUmVzdWx0LFxuICAgICAgICBwcjogcHJSZXN1bHRcbiAgICB9KTtcbn1cbi8vIFN0ZXAgZnVuY3Rpb24gd3JhcHBlcnMgdGhhdCBkeW5hbWljYWxseSBpbXBvcnQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbnNcbnZhciBjcmVhdGVEM2tTYW5kYm94ID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2NyZWF0ZUQza1NhbmRib3hcIik7XG52YXIgZmV0Y2hSZWFsTG9ncyA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy9mZXRjaFJlYWxMb2dzXCIpO1xudmFyIGFuYWx5emVMb2dzV2l0aEFnZW50ID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2FuYWx5emVMb2dzV2l0aEFnZW50XCIpO1xudmFyIHVwbG9hZFRvQmxvYiA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy91cGxvYWRUb0Jsb2JcIik7XG52YXIgY3JlYXRlR2l0SHViUFIgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY3JlYXRlR2l0SHViUFJcIik7XG5jbG91ZEZpeFdvcmtmbG93LndvcmtmbG93SWQgPSBcIndvcmtmbG93Ly9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY2xvdWRGaXhXb3JrZmxvd1wiO1xuIiwgImdsb2JhbFRoaXMuX19wcml2YXRlX3dvcmtmbG93cyA9IG5ldyBNYXAoKTtcbmltcG9ydCAqIGFzIHdvcmtmbG93RmlsZTAgZnJvbSAnLi9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzJztcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMod29ya2Zsb3dGaWxlMCkubWFwKGl0ZW0gPT4gaXRlbT8ud29ya2Zsb3dJZCAmJiBnbG9iYWxUaGlzLl9fcHJpdmF0ZV93b3JrZmxvd3Muc2V0KGl0ZW0ud29ya2Zsb3dJZCwgaXRlbSkpXG5pbXBvcnQgKiBhcyB3b3JrZmxvd0ZpbGUxIGZyb20gJy4vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMnO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyh3b3JrZmxvd0ZpbGUxKS5tYXAoaXRlbSA9PiBpdGVtPy53b3JrZmxvd0lkICYmIGdsb2JhbFRoaXMuX19wcml2YXRlX3dvcmtmbG93cy5zZXQoaXRlbS53b3JrZmxvd0lkLCBpdGVtKSkiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUksZUFBc0IscUJBQXFCLFFBQVE7QUFDbkQsUUFBTSxFQUFFLFlBQVksU0FBUyxRQUFRLGNBQWMsV0FBVyxVQUFVLFNBQVMsSUFBSTtBQUNyRixVQUFRLElBQUksZ0RBQWdEO0FBQzVELFVBQVEsSUFBSSwyQkFBMkIsVUFBVSxFQUFFO0FBQ25ELFVBQVEsSUFBSSxrQkFBa0IsUUFBUSxLQUFLLE9BQU8sRUFBRTtBQUNwRCxVQUFRLElBQUksNkJBQTZCLGFBQWEsTUFBTSxFQUFFO0FBQzlELFVBQVEsSUFBSSwwQkFBeUIsb0JBQUksS0FBSyxHQUFFLFlBQVksQ0FBQyxFQUFFO0FBRS9ELFFBQU0sZUFBZSxNQUFNLDBCQUEwQixjQUFjLE1BQU07QUFFekUsUUFBTSxlQUFlLE1BQU0sc0JBQXNCLFlBQVksWUFBWTtBQUV6RSxRQUFNLGVBQWUsTUFBTSxtQkFBbUIsU0FBUyxRQUFRLGNBQWMsWUFBWTtBQUV6RixRQUFNLHFCQUFx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
|
|
114
|
-
`,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMiLCAiYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cyIsICJ2aXJ0dWFsLWVudHJ5LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipfX2ludGVybmFsX3dvcmtmbG93c3tcIndvcmtmbG93c1wiOntcImFwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzXCI6e1wiY2xvdWRGaXhXb3JrZmxvd1wiOntcIndvcmtmbG93SWRcIjpcIndvcmtmbG93Ly9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY2xvdWRGaXhXb3JrZmxvd1wifX19LFwic3RlcHNcIjp7XCJhcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50c1wiOntcImFuYWx5emVMb2dzV2l0aEFnZW50XCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vYW5hbHl6ZUxvZ3NXaXRoQWdlbnRcIn0sXCJjcmVhdGVEM2tTYW5kYm94XCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY3JlYXRlRDNrU2FuZGJveFwifSxcImNyZWF0ZUdpdEh1YlBSXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY3JlYXRlR2l0SHViUFJcIn0sXCJmZXRjaFJlYWxMb2dzXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vZmV0Y2hSZWFsTG9nc1wifSxcInVwbG9hZFRvQmxvYlwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL3VwbG9hZFRvQmxvYlwifX19fSovO1xuLyoqXG4gKiBDbG91ZCBGaXggV29ya2Zsb3cgRnVuY3Rpb24gLSBDb3JlIHdvcmtmbG93IGxvZ2ljXG4gKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIE9OTFkgdGhlIHdvcmtmbG93IGZ1bmN0aW9uIGFuZCBzdGVwIHdyYXBwZXJzLlxuICogSXQgZG9lcyBOT1QgaW1wb3J0IHdvcmtmbG93L2FwaSB0byBhdm9pZCBidW5kbGVyIGlzc3Vlcy5cbiAqLyAvKipcbiAqIE1haW4gd29ya2Zsb3cgZnVuY3Rpb24gdGhhdCBvcmNoZXN0cmF0ZXMgdGhlIGZpeCBwcm9jZXNzXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsb3VkRml4V29ya2Zsb3cocGFyYW1zKSB7XG4gICAgY29uc3QgeyBkZXZVcmwsIHByb2plY3ROYW1lLCB2ZXJjZWxUb2tlbiwgdmVyY2VsT2lkY1Rva2VuOiB2ZXJjZWxPaWRjVG9rZW5QYXJhbSwgcmVwb093bmVyLCByZXBvTmFtZSwgYmFzZUJyYW5jaCA9IFwibWFpblwiLCBieXBhc3NUb2tlbiwgcmVwb1VybCwgcmVwb0JyYW5jaCB9ID0gcGFyYW1zO1xuICAgIGNvbnNvbGUubG9nKFwiW1dvcmtmbG93XSBTdGFydGluZyBjbG91ZCBmaXggd29ya2Zsb3cuLi5cIik7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gRGV2IFVSTDogJHtkZXZVcmx9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gUHJvamVjdDogJHtwcm9qZWN0TmFtZX1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBUaW1lc3RhbXA6ICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIEJ5cGFzcyBUb2tlbjogJHtieXBhc3NUb2tlbiA/IFwicHJvdmlkZWRcIiA6IFwibm90IHByb3ZpZGVkXCJ9YCk7XG4gICAgaWYgKHJlcG9Pd25lciAmJiByZXBvTmFtZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBHaXRIdWIgUmVwbzogJHtyZXBvT3duZXJ9LyR7cmVwb05hbWV9YCk7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIEJhc2UgQnJhbmNoOiAke2Jhc2VCcmFuY2h9YCk7XG4gICAgfVxuICAgIGlmIChyZXBvVXJsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFdpbGwgY3JlYXRlIHNhbmRib3ggZnJvbTogJHtyZXBvVXJsfWApO1xuICAgICAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBCcmFuY2g6ICR7cmVwb0JyYW5jaCB8fCBcIm1haW5cIn1gKTtcbiAgICB9XG4gICAgLy8gVXNlIFZFUkNFTF9PSURDX1RPS0VOIGZyb20gcGFyYW1zIChwYXNzZWQgZnJvbSByZXF1ZXN0IGhlYWRlcikgb3IgZmFsbCBiYWNrIHRvIGVudlxuICAgIC8vIEF0IHJ1bnRpbWUsIE9JREMgdG9rZW4gaXMgaW4geC12ZXJjZWwtb2lkYy10b2tlbiBoZWFkZXIsIG5vdCBwcm9jZXNzLmVudlxuICAgIGNvbnN0IHZlcmNlbE9pZGNUb2tlbiA9IHZlcmNlbE9pZGNUb2tlblBhcmFtIHx8IHByb2Nlc3MuZW52LlZFUkNFTF9PSURDX1RPS0VOO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFZFUkNFTF9PSURDX1RPS0VOIGZyb20gcGFyYW06ICR7ISF2ZXJjZWxPaWRjVG9rZW5QYXJhbX1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBWRVJDRUxfT0lEQ19UT0tFTiBmcm9tIGVudjogJHshIXByb2Nlc3MuZW52LlZFUkNFTF9PSURDX1RPS0VOfWApO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFZFUkNFTF9PSURDX1RPS0VOIGF2YWlsYWJsZTogJHshIXZlcmNlbE9pZGNUb2tlbn1gKTtcbiAgICAvLyBTdGVwIDA6IENyZWF0ZSBkM2sgc2FuZGJveCBpZiByZXBvVXJsIHByb3ZpZGVkXG4gICAgLy8gVGhpcyBzdGVwIGFsc28gY2FwdHVyZXMgQ0xTIGRhdGEsIFwiYmVmb3JlXCIgc2NyZWVuc2hvdCwgYW5kIGdpdCBkaWZmIGZyb20gaW5zaWRlIHRoZSBzYW5kYm94XG4gICAgbGV0IHNhbmRib3hJbmZvID0gbnVsbDtcbiAgICBpZiAocmVwb1VybCkge1xuICAgICAgICBzYW5kYm94SW5mbyA9IGF3YWl0IGNyZWF0ZUQza1NhbmRib3gocmVwb1VybCwgcmVwb0JyYW5jaCB8fCBcIm1haW5cIiwgcHJvamVjdE5hbWUsIHZlcmNlbFRva2VuLCB2ZXJjZWxPaWRjVG9rZW4pO1xuICAgIH1cbiAgICAvLyBTdGVwIDE6IEZldGNoIHJlYWwgbG9ncyAodXNpbmcgc2FuZGJveCBNQ1AgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgZGV2VXJsIGRpcmVjdGx5KVxuICAgIC8vIElmIHdlIGdvdCBDTFMgZGF0YSBmcm9tIFN0ZXAgMCwgcGFzcyBpdCB0byBTdGVwIDEgdG8gYXZvaWQgcmUtZmV0Y2hpbmdcbiAgICAvLyBVc2UgYnlwYXNzIHRva2VuIGZyb20gc2FuZGJveCBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2UgcHJvdmlkZWQgb25lXG4gICAgLy8gQWxzbyBwYXNzIHRoZSBiZWZvcmVTY3JlZW5zaG90VXJsIGZyb20gU3RlcCAwIGlmIGF2YWlsYWJsZVxuICAgIGNvbnN0IGVmZmVjdGl2ZUJ5cGFzc1Rva2VuID0gc2FuZGJveEluZm8/LmJ5cGFzc1Rva2VuIHx8IGJ5cGFzc1Rva2VuO1xuICAgIGNvbnN0IHN0ZXAxUmVzdWx0ID0gYXdhaXQgZmV0Y2hSZWFsTG9ncyhzYW5kYm94SW5mbz8ubWNwVXJsIHx8IGRldlVybCwgZWZmZWN0aXZlQnlwYXNzVG9rZW4sIHNhbmRib3hJbmZvPy5kZXZVcmwsIHNhbmRib3hJbmZvPy5jbHNEYXRhLCBzYW5kYm94SW5mbz8ubWNwRXJyb3IsIHNhbmRib3hJbmZvPy5iZWZvcmVTY3JlZW5zaG90VXJsKTtcbiAgICBjb25zdCB7IGxvZ0FuYWx5c2lzLCBiZWZvcmVTY3JlZW5zaG90VXJsIH0gPSBzdGVwMVJlc3VsdDtcbiAgICAvLyBTdGVwIDI6IEludm9rZSBBSSBhZ2VudCB0byBhbmFseXplIGxvZ3MgYW5kIGNyZWF0ZSBmaXhcbiAgICBjb25zdCBmaXhQcm9wb3NhbCA9IGF3YWl0IGFuYWx5emVMb2dzV2l0aEFnZW50KGxvZ0FuYWx5c2lzLCBzYW5kYm94SW5mbz8uZGV2VXJsIHx8IGRldlVybCk7XG4gICAgLy8gU3RlcCAzOiBVcGxvYWQgdG8gYmxvYiBzdG9yYWdlIHdpdGggZnVsbCBjb250ZXh0LCBzY3JlZW5zaG90LCBhbmQgZ2l0IGRpZmZcbiAgICBjb25zdCBibG9iUmVzdWx0ID0gYXdhaXQgdXBsb2FkVG9CbG9iKGZpeFByb3Bvc2FsLCBwcm9qZWN0TmFtZSwgbG9nQW5hbHlzaXMsIHNhbmRib3hJbmZvPy5kZXZVcmwgfHwgZGV2VXJsLCBiZWZvcmVTY3JlZW5zaG90VXJsLCBzYW5kYm94SW5mbz8uZ2l0RGlmZik7XG4gICAgLy8gU3RlcCA0OiBDcmVhdGUgR2l0SHViIFBSIGlmIHJlcG8gaW5mbyBwcm92aWRlZCBBTkQgdGhlcmUgYXJlIGFjdHVhbCBmaXhlcyB0byBhcHBseVxuICAgIGxldCBwclJlc3VsdCA9IG51bGw7XG4gICAgY29uc3QgaGFzR2l0UGF0Y2ggPSBmaXhQcm9wb3NhbC5pbmNsdWRlcyhcImBgYGRpZmZcIik7XG4gICAgaWYgKHJlcG9Pd25lciAmJiByZXBvTmFtZSAmJiBoYXNHaXRQYXRjaCkge1xuICAgICAgICBwclJlc3VsdCA9IGF3YWl0IGNyZWF0ZUdpdEh1YlBSKGZpeFByb3Bvc2FsLCBibG9iUmVzdWx0LmJsb2JVcmwsIHJlcG9Pd25lciwgcmVwb05hbWUsIGJhc2VCcmFuY2gsIHByb2plY3ROYW1lKTtcbiAgICB9IGVsc2UgaWYgKHJlcG9Pd25lciAmJiByZXBvTmFtZSAmJiAhaGFzR2l0UGF0Y2gpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJbV29ya2Zsb3ddIE5vIGdpdCBwYXRjaCBmb3VuZCAtIHNraXBwaW5nIFBSIGNyZWF0aW9uIChzeXN0ZW0gaXMgaGVhbHRoeSlcIik7XG4gICAgfVxuICAgIC8vIE5vdGU6IFNhbmRib3ggY2xlYW51cCBpcyBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNhbmRib3ggdGltZW91dFxuICAgIC8vIFdlIGNhbm5vdCBzdG9yZSBjbGVhbnVwIGZ1bmN0aW9ucyBhcyB0aGV5J3JlIG5vdCBzZXJpYWxpemFibGVcbiAgICByZXR1cm4gUmVzcG9uc2UuanNvbih7XG4gICAgICAgIC4uLmJsb2JSZXN1bHQsXG4gICAgICAgIHByOiBwclJlc3VsdFxuICAgIH0pO1xufVxuLy8gU3RlcCBmdW5jdGlvbiB3cmFwcGVycyB0aGF0IGR5bmFtaWNhbGx5IGltcG9ydCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uc1xudmFyIGNyZWF0ZUQza1NhbmRib3ggPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY3JlYXRlRDNrU2FuZGJveFwiKTtcbnZhciBmZXRjaFJlYWxMb2dzID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2ZldGNoUmVhbExvZ3NcIik7XG52YXIgYW5hbHl6ZUxvZ3NXaXRoQWdlbnQgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vYW5hbHl6ZUxvZ3NXaXRoQWdlbnRcIik7XG52YXIgdXBsb2FkVG9CbG9iID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL3VwbG9hZFRvQmxvYlwiKTtcbnZhciBjcmVhdGVHaXRIdWJQUiA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy9jcmVhdGVHaXRIdWJQUlwiKTtcbmNsb3VkRml4V29ya2Zsb3cud29ya2Zsb3dJZCA9IFwid29ya2Zsb3cvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy9jbG91ZEZpeFdvcmtmbG93XCI7XG4iLCAiLyoqX19pbnRlcm5hbF93b3JrZmxvd3N7XCJ3b3JrZmxvd3NcIjp7XCJhcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzXCI6e1wiY2xvdWRDaGVja1BSV29ya2Zsb3dcIjp7XCJ3b3JrZmxvd0lkXCI6XCJ3b3JrZmxvdy8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vY2xvdWRDaGVja1BSV29ya2Zsb3dcIn19fSxcInN0ZXBzXCI6e1wiYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50c1wiOntcImNoZWNrUGVyZm9ybWFuY2VTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jaGVja1BlcmZvcm1hbmNlU3RlcFwifSxcImNyYXdsUHJldmlld1BhZ2VzU3RlcFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vY3Jhd2xQcmV2aWV3UGFnZXNTdGVwXCJ9LFwiZ2VuZXJhdGVSZXBvcnRTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9nZW5lcmF0ZVJlcG9ydFN0ZXBcIn0sXCJpZGVudGlmeUFmZmVjdGVkUGFnZXNTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9pZGVudGlmeUFmZmVjdGVkUGFnZXNTdGVwXCJ9LFwidXBsb2FkUmVwb3J0U3RlcFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vdXBsb2FkUmVwb3J0U3RlcFwifSxcInZlcmlmeVBSQ2xhaW1zU3RlcFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vdmVyaWZ5UFJDbGFpbXNTdGVwXCJ9fX19Ki87XG4vKipcbiAqIENsb3VkIENoZWNrIFBSIFdvcmtmbG93IEZ1bmN0aW9uIC0gQ29yZSB3b3JrZmxvdyBsb2dpY1xuICpcbiAqIFRoaXMgZmlsZSBjb250YWlucyBPTkxZIHRoZSB3b3JrZmxvdyBmdW5jdGlvbiBhbmQgc3RlcCB3cmFwcGVycy5cbiAqIEl0IGRvZXMgTk9UIGltcG9ydCB3b3JrZmxvdy9hcGkgdG8gYXZvaWQgYnVuZGxlciBpc3N1ZXMuXG4gKi8gLyoqXG4gKiBNYWluIHdvcmtmbG93IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGEgUFIncyBjaGFuZ2VzXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsb3VkQ2hlY2tQUldvcmtmbG93KHBhcmFtcykge1xuICAgIGNvbnN0IHsgcHJldmlld1VybCwgcHJUaXRsZSwgcHJCb2R5LCBjaGFuZ2VkRmlsZXMsIHJlcG9Pd25lciwgcmVwb05hbWUsIHByTnVtYmVyIH0gPSBwYXJhbXM7XG4gICAgY29uc29sZS5sb2coXCJbV29ya2Zsb3ddIFN0YXJ0aW5nIGNsb3VkIGNoZWNrLXByIHdvcmtmbG93Li4uXCIpO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFByZXZpZXcgVVJMOiAke3ByZXZpZXdVcmx9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gUFIgIyR7cHJOdW1iZXJ9OiAke3ByVGl0bGV9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gQ2hhbmdlZCBmaWxlczogJHtjaGFuZ2VkRmlsZXMubGVuZ3RofWApO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFRpbWVzdGFtcDogJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCk7XG4gICAgLy8gU3RlcCAxOiBEZXRlcm1pbmUgd2hpY2ggcGFnZXMgdG8gY2hlY2sgYmFzZWQgb24gY2hhbmdlZCBmaWxlc1xuICAgIGNvbnN0IHBhZ2VzVG9DaGVjayA9IGF3YWl0IGlkZW50aWZ5QWZmZWN0ZWRQYWdlc1N0ZXAoY2hhbmdlZEZpbGVzLCBwckJvZHkpO1xuICAgIC8vIFN0ZXAgMjogQ3Jhd2wgdGhlIHByZXZpZXcgZGVwbG95bWVudFxuICAgIGNvbnN0IGNyYXdsUmVzdWx0cyA9IGF3YWl0IGNyYXdsUHJldmlld1BhZ2VzU3RlcChwcmV2aWV3VXJsLCBwYWdlc1RvQ2hlY2spO1xuICAgIC8vIFN0ZXAgMzogVmVyaWZ5IFBSIGNsYWltcyBhZ2FpbnN0IGFjdHVhbCBiZWhhdmlvclxuICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IGF3YWl0IHZlcmlmeVBSQ2xhaW1zU3RlcChwclRpdGxlLCBwckJvZHksIGNyYXdsUmVzdWx0cywgY2hhbmdlZEZpbGVzKTtcbiAgICAvLyBTdGVwIDQ6IENoZWNrIHBlcmZvcm1hbmNlIG1ldHJpY3NcbiAgICBjb25zdCBwZXJmb3JtYW5jZVJlc3VsdHMgPSBhd2FpdCBjaGVja1BlcmZvcm1hbmNlU3RlcChwcmV2aWV3VXJsLCBwYWdlc1RvQ2hlY2spO1xuICAgIC8vIFN0ZXAgNTogR2VuZXJhdGUgY29tcHJlaGVuc2l2ZSByZXBvcnRcbiAgICBjb25zdCByZXBvcnQgPSBhd2FpdCBnZW5lcmF0ZVJlcG9ydFN0ZXAoe1xuICAgICAgICBwclRpdGxlLFxuICAgICAgICBwckJvZHksXG4gICAgICAgIHByTnVtYmVyLFxuICAgICAgICBwcmV2aWV3VXJsLFxuICAgICAgICBjaGFuZ2VkRmlsZXMsXG4gICAgICAgIHBhZ2VzVG9DaGVjayxcbiAgICAgICAgY3Jhd2xSZXN1bHRzLFxuICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICAgIHBlcmZvcm1hbmNlUmVzdWx0cyxcbiAgICAgICAgcmVwb093bmVyLFxuICAgICAgICByZXBvTmFtZVxuICAgIH0pO1xuICAgIC8vIFN0ZXAgNjogVXBsb2FkIHJlcG9ydCB0byBibG9iIHN0b3JhZ2VcbiAgICBjb25zdCBibG9iUmVzdWx0ID0gYXdhaXQgdXBsb2FkUmVwb3J0U3RlcChyZXBvcnQsIHJlcG9Pd25lciwgcmVwb05hbWUsIHByTnVtYmVyKTtcbiAgICByZXR1cm4gUmVzcG9uc2UuanNvbih7XG4gICAgICAgIHN1Y2Nlc3M6IHZlcmlmaWNhdGlvbi5hbGxDaGVja3NQYXNzZWQsXG4gICAgICAgIHJlcG9ydFVybDogYmxvYlJlc3VsdC5ibG9iVXJsLFxuICAgICAgICBwckNvbW1lbnQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvbjogdmVyaWZpY2F0aW9uLnN1bW1hcnksXG4gICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZVJlc3VsdHMuc3VtbWFyeSxcbiAgICAgICAgbWVzc2FnZTogdmVyaWZpY2F0aW9uLmFsbENoZWNrc1Bhc3NlZCA/IFwiQWxsIFBSIGNoZWNrcyBwYXNzZWQhIFx1MjcwNVwiIDogXCJTb21lIFBSIGNoZWNrcyBmYWlsZWQgLSBzZWUgcmVwb3J0IGZvciBkZXRhaWxzXCJcbiAgICB9KTtcbn1cbi8vIFN0ZXAgZnVuY3Rpb24gd3JhcHBlcnMgdGhhdCBkeW5hbWljYWxseSBpbXBvcnQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbnNcbnZhciBpZGVudGlmeUFmZmVjdGVkUGFnZXNTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vaWRlbnRpZnlBZmZlY3RlZFBhZ2VzU3RlcFwiKTtcbnZhciBjcmF3bFByZXZpZXdQYWdlc1N0ZXAgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jcmF3bFByZXZpZXdQYWdlc1N0ZXBcIik7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IEFJLWdlbmVyYXRlZCBjcmF3bCBkYXRhIGhhcyBkeW5hbWljIHN0cnVjdHVyZVxudmFyIHZlcmlmeVBSQ2xhaW1zU3RlcCA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL3ZlcmlmeVBSQ2xhaW1zU3RlcFwiKTtcbnZhciBjaGVja1BlcmZvcm1hbmNlU3RlcCA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2NoZWNrUGVyZm9ybWFuY2VTdGVwXCIpO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0V4cGxpY2l0QW55OiBSZXBvcnQgZGF0YSBoYXMgZHluYW1pYyBzdHJ1Y3R1cmUgZnJvbSBwcmV2aW91cyBzdGVwc1xudmFyIGdlbmVyYXRlUmVwb3J0U3RlcCA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2dlbmVyYXRlUmVwb3J0U3RlcFwiKTtcbnZhciB1cGxvYWRSZXBvcnRTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vdXBsb2FkUmVwb3J0U3RlcFwiKTtcbmNsb3VkQ2hlY2tQUldvcmtmbG93LndvcmtmbG93SWQgPSBcIndvcmtmbG93Ly9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jbG91ZENoZWNrUFJXb3JrZmxvd1wiO1xuIiwgImdsb2JhbFRoaXMuX19wcml2YXRlX3dvcmtmbG93cyA9IG5ldyBNYXAoKTtcbmltcG9ydCAqIGFzIHdvcmtmbG93RmlsZTAgZnJvbSAnLi9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cyc7XG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKHdvcmtmbG93RmlsZTApLm1hcChpdGVtID0+IGl0ZW0/LndvcmtmbG93SWQgJiYgZ2xvYmFsVGhpcy5fX3ByaXZhdGVfd29ya2Zsb3dzLnNldChpdGVtLndvcmtmbG93SWQsIGl0ZW0pKVxuaW1wb3J0ICogYXMgd29ya2Zsb3dGaWxlMSBmcm9tICcuL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMnO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyh3b3JrZmxvd0ZpbGUxKS5tYXAoaXRlbSA9PiBpdGVtPy53b3JrZmxvd0lkICYmIGdsb2JhbFRoaXMuX19wcml2YXRlX3dvcmtmbG93cy5zZXQoaXRlbS53b3JrZmxvd0lkLCBpdGVtKSkiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUksZUFBc0IsaUJBQWlCLFFBQVE7QUFDL0MsUUFBTSxFQUFFLFFBQVEsYUFBYSxhQUFhLGlCQUFpQixzQkFBc0IsV0FBVyxVQUFVLGFBQWEsUUFBUSxhQUFhLFNBQVMsV0FBVyxJQUFJO0FBQ2hLLFVBQVEsSUFBSSwyQ0FBMkM7QUFDdkQsVUFBUSxJQUFJLHVCQUF1QixNQUFNLEVBQUU7QUFDM0MsVUFBUSxJQUFJLHVCQUF1QixXQUFXLEVBQUU7QUFDaEQsVUFBUSxJQUFJLDBCQUF5QixvQkFBSSxLQUFLLEdBQUUsWUFBWSxDQUFDLEVBQUU7QUFDL0QsVUFBUSxJQUFJLDRCQUE0QixjQUFjLGFBQWEsY0FBYyxFQUFFO0FBQ25GLE1BQUksYUFBYSxVQUFVO0FBQ3ZCLFlBQVEsSUFBSSwyQkFBMkIsU0FBUyxJQUFJLFFBQVEsRUFBRTtBQUM5RCxZQUFRLElBQUksMkJBQTJCLFVBQVUsRUFBRTtBQUFBLEVBQ3ZEO0FBQ0EsTUFB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
|
|
114
|
+
`,g=(0,G.workflowEntrypoint)(V);e.s(["POST",0,g],90668);var C=e.i(90668);let w=new l.AppRouteRouteModule({definition:{kind:c.RouteKind.APP_ROUTE,page:"/.well-known/workflow/v1/flow/route",pathname:"/.well-known/workflow/v1/flow",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/mcp-server/app/.well-known/workflow/v1/flow/route.js",nextConfigOutput:"",userland:C}),{workAsyncStorage:p,workUnitAsyncStorage:v,serverHooks:X}=w;function x(){return(0,F.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:v})}async function R(e,l,F){w.isDev&&(0,B.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let G="/.well-known/workflow/v1/flow/route";G=G.replace(/\/index$/,"")||"/";let V=await w.prepare(e,l,{srcPage:G,multiZoneDraftMode:!1});if(!V)return l.statusCode=400,l.end("Bad Request"),null==F.waitUntil||F.waitUntil.call(F,Promise.resolve()),null;let{buildId:g,params:C,nextConfig:p,parsedUrl:v,isDraftMode:X,prerenderManifest:x,routerServerContext:R,isOnDemandRevalidate:y,revalidateOnlyGenerated:W,resolvedPathname:h,clientReferenceManifest:u,serverActionsManifest:L}=V,N=(0,a.normalizeAppPath)(G),S=!!(x.dynamicRoutes[N]||x.routes[h]),k=async()=>((null==R?void 0:R.render404)?await R.render404(e,l,v,!1):l.end("This page could not be found"),null);if(S&&!X){let e=!!x.routes[h],l=x.dynamicRoutes[N];if(l&&!1===l.fallback&&!e){if(p.experimental.adapterPath)return await k();throw new Z.NoFallbackError}}let J=null;!S||w.isDev||X||(J="/index"===(J=h)?"/":J);let Y=!0===w.isDev||!S,E=S&&!Y;L&&u&&(0,s.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:u,serverActionsManifest:L,serverModuleMap:(0,t.createServerModuleMap)({serverActionsManifest:L})});let A=e.method||"GET",f=(0,o.getTracer)(),T=f.getActiveScopeSpan(),H={params:C,prerenderManifest:x,renderOpts:{experimental:{authInterrupts:!!p.experimental.authInterrupts},cacheComponents:!!p.cacheComponents,supportsDynamicResponse:Y,incrementalCache:(0,B.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:p.cacheLife,waitUntil:F.waitUntil,onClose:e=>{l.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(l,c,F,B)=>w.onRequestError(e,l,F,B,R)},sharedContext:{buildId:g}},O=new b.NodeNextRequest(e),z=new b.NodeNextResponse(l),j=U.NextRequestAdapter.fromNodeNextRequest(O,(0,U.signalFromNodeResponse)(l));try{let s=async e=>w.handle(j,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":l.statusCode,"next.rsc":!1});let c=f.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let F=c.get("next.route");if(F){let l=`${A} ${F}`;e.setAttributes({"next.route":F,"http.route":F,"next.span_name":l}),e.updateName(l)}else e.updateName(`${A} ${G}`)}),t=!!(0,B.getRequestMeta)(e,"minimalMode"),a=async B=>{var o,a;let b=async({previousCacheEntry:c})=>{try{if(!t&&y&&W&&!c)return l.statusCode=404,l.setHeader("x-nextjs-cache","REVALIDATED"),l.end("This page could not be found"),null;let o=await s(B);e.fetchMetrics=H.renderOpts.fetchMetrics;let a=H.renderOpts.pendingWaitUntil;a&&F.waitUntil&&(F.waitUntil(a),a=void 0);let b=H.renderOpts.collectedTags;if(!S)return await (0,i.sendResponse)(O,z,o,H.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),l=(0,I.toNodeOutgoingHttpHeaders)(o.headers);b&&(l[Q.NEXT_CACHE_TAGS_HEADER]=b),!l["content-type"]&&e.type&&(l["content-type"]=e.type);let c=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=Q.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,F=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=Q.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:n.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:l},cacheControl:{revalidate:c,expire:F}}}}catch(l){throw(null==c?void 0:c.isStale)&&await w.onRequestError(e,l,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,r.getRevalidateReason)({isStaticGeneration:E,isOnDemandRevalidate:y})},!1,R),l}},U=await w.handleResponse({req:e,nextConfig:p,cacheKey:J,routeKind:c.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:y,revalidateOnlyGenerated:W,responseGenerator:b,waitUntil:F.waitUntil,isMinimalMode:t});if(!S)return null;if((null==U||null==(o=U.value)?void 0:o.kind)!==n.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==U||null==(a=U.value)?void 0:a.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});t||l.setHeader("x-nextjs-cache",y?"REVALIDATED":U.isMiss?"MISS":U.isStale?"STALE":"HIT"),X&&l.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,I.fromNodeOutgoingHttpHeaders)(U.value.headers);return t&&S||d.delete(Q.NEXT_CACHE_TAGS_HEADER),!U.cacheControl||l.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(U.cacheControl)),await (0,i.sendResponse)(O,z,new Response(U.value.body,{headers:d,status:U.value.status||200})),null};T?await a(T):await f.withPropagatedContext(e.headers,()=>f.trace(d.BaseServerSpan.handleRequest,{spanName:`${A} ${G}`,kind:o.SpanKind.SERVER,attributes:{"http.method":A,"http.target":e.url}},a))}catch(l){if(l instanceof Z.NoFallbackError||await w.onRequestError(e,l,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,r.getRevalidateReason)({isStaticGeneration:E,isOnDemandRevalidate:y})},!1,R),S)throw l;return await (0,i.sendResponse)(O,z,new Response(null,{status:500})),null}}e.s(["handler",()=>R,"patchFetch",()=>x,"routeModule",()=>w,"serverHooks",()=>X,"workAsyncStorage",()=>p,"workUnitAsyncStorage",()=>v],42960)}];
|
|
115
115
|
|
|
116
116
|
//# sourceMappingURL=bee4f_next_dist_esm_build_templates_app-route_1ece9366.js.map
|
package/mcp-server/.next/server/chunks/bee4f_next_dist_esm_build_templates_app-route_1ece9366.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.0-canary.9_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-d_e89f05fa6262f945d2946e6441ada21f/node_modules/next/dist/esm/build/templates/app-route.js","../../../../mcp-server/app/.well-known/workflow/v1/flow/route.js"],"sourcesContent":["import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setReferenceManifestsSingleton } from \"next/dist/esm/server/app-render/encryption-utils\";\nimport { createServerModuleMap } from \"next/dist/esm/server/app-render/action-utils\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/.well-known/workflow/v1/flow/route\",\n pathname: \"/.well-known/workflow/v1/flow\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/mcp-server/app/.well-known/workflow/v1/flow/route.js\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/.well-known/workflow/v1/flow/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setReferenceManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n serverModuleMap: createServerModuleMap({\n serverActionsManifest\n })\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","// biome-ignore-all lint: generated file\n/* eslint-disable */\nimport { workflowEntrypoint } from 'workflow/runtime';\n\nconst workflowCode = `var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// app/api/cloud/check-pr/workflow.ts\nvar workflow_exports = {};\n__export(workflow_exports, {\n cloudCheckPRWorkflow: () => cloudCheckPRWorkflow\n});\nasync function cloudCheckPRWorkflow(params) {\n const { previewUrl, prTitle, prBody, changedFiles, repoOwner, repoName, prNumber } = params;\n console.log(\"[Workflow] Starting cloud check-pr workflow...\");\n console.log(\\`[Workflow] Preview URL: \\${previewUrl}\\`);\n console.log(\\`[Workflow] PR #\\${prNumber}: \\${prTitle}\\`);\n console.log(\\`[Workflow] Changed files: \\${changedFiles.length}\\`);\n console.log(\\`[Workflow] Timestamp: \\${(/* @__PURE__ */ new Date()).toISOString()}\\`);\n const pagesToCheck = await identifyAffectedPagesStep(changedFiles, prBody);\n const crawlResults = await crawlPreviewPagesStep(previewUrl, pagesToCheck);\n const verification = await verifyPRClaimsStep(prTitle, prBody, crawlResults, changedFiles);\n const performanceResults = await checkPerformanceStep(previewUrl, pagesToCheck);\n const report = await generateReportStep({\n prTitle,\n prBody,\n prNumber,\n previewUrl,\n changedFiles,\n pagesToCheck,\n crawlResults,\n verification,\n performanceResults,\n repoOwner,\n repoName\n });\n const blobResult = await uploadReportStep(report, repoOwner, repoName, prNumber);\n return Response.json({\n success: verification.allChecksPassed,\n reportUrl: blobResult.blobUrl,\n prComment: true,\n verification: verification.summary,\n performance: performanceResults.summary,\n message: verification.allChecksPassed ? \"All PR checks passed! \\\\u2705\" : \"Some PR checks failed - see report for details\"\n });\n}\n__name(cloudCheckPRWorkflow, \"cloudCheckPRWorkflow\");\nvar identifyAffectedPagesStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//identifyAffectedPagesStep\");\nvar crawlPreviewPagesStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//crawlPreviewPagesStep\");\nvar verifyPRClaimsStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//verifyPRClaimsStep\");\nvar checkPerformanceStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//checkPerformanceStep\");\nvar generateReportStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//generateReportStep\");\nvar uploadReportStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//uploadReportStep\");\ncloudCheckPRWorkflow.workflowId = \"workflow//app/api/cloud/check-pr/workflow.ts//cloudCheckPRWorkflow\";\n\n// app/api/cloud/fix-workflow/workflow.ts\nvar workflow_exports2 = {};\n__export(workflow_exports2, {\n cloudFixWorkflow: () => cloudFixWorkflow\n});\nasync function cloudFixWorkflow(params) {\n const { devUrl, projectName, vercelToken, vercelOidcToken: vercelOidcTokenParam, repoOwner, repoName, baseBranch = \"main\", bypassToken, repoUrl, repoBranch } = params;\n console.log(\"[Workflow] Starting cloud fix workflow...\");\n console.log(\\`[Workflow] Dev URL: \\${devUrl}\\`);\n console.log(\\`[Workflow] Project: \\${projectName}\\`);\n console.log(\\`[Workflow] Timestamp: \\${(/* @__PURE__ */ new Date()).toISOString()}\\`);\n console.log(\\`[Workflow] Bypass Token: \\${bypassToken ? \"provided\" : \"not provided\"}\\`);\n if (repoOwner && repoName) {\n console.log(\\`[Workflow] GitHub Repo: \\${repoOwner}/\\${repoName}\\`);\n console.log(\\`[Workflow] Base Branch: \\${baseBranch}\\`);\n }\n if (repoUrl) {\n console.log(\\`[Workflow] Will create sandbox from: \\${repoUrl}\\`);\n console.log(\\`[Workflow] Branch: \\${repoBranch || \"main\"}\\`);\n }\n const vercelOidcToken = vercelOidcTokenParam || process.env.VERCEL_OIDC_TOKEN;\n console.log(\\`[Workflow] VERCEL_OIDC_TOKEN from param: \\${!!vercelOidcTokenParam}\\`);\n console.log(\\`[Workflow] VERCEL_OIDC_TOKEN from env: \\${!!process.env.VERCEL_OIDC_TOKEN}\\`);\n console.log(\\`[Workflow] VERCEL_OIDC_TOKEN available: \\${!!vercelOidcToken}\\`);\n let sandboxInfo = null;\n if (repoUrl) {\n sandboxInfo = await createD3kSandbox(repoUrl, repoBranch || \"main\", projectName, vercelToken, vercelOidcToken);\n }\n const effectiveBypassToken = sandboxInfo?.bypassToken || bypassToken;\n const step1Result = await fetchRealLogs(sandboxInfo?.mcpUrl || devUrl, effectiveBypassToken, sandboxInfo?.devUrl, sandboxInfo?.clsData, sandboxInfo?.mcpError, sandboxInfo?.beforeScreenshotUrl);\n const { logAnalysis, beforeScreenshotUrl } = step1Result;\n const fixProposal = await analyzeLogsWithAgent(logAnalysis, sandboxInfo?.devUrl || devUrl);\n const blobResult = await uploadToBlob(fixProposal, projectName, logAnalysis, sandboxInfo?.devUrl || devUrl, beforeScreenshotUrl, sandboxInfo?.gitDiff);\n let prResult = null;\n const hasGitPatch = fixProposal.includes(\"\\`\\`\\`diff\");\n if (repoOwner && repoName && hasGitPatch) {\n prResult = await createGitHubPR(fixProposal, blobResult.blobUrl, repoOwner, repoName, baseBranch, projectName);\n } else if (repoOwner && repoName && !hasGitPatch) {\n console.log(\"[Workflow] No git patch found - skipping PR creation (system is healthy)\");\n }\n return Response.json({\n ...blobResult,\n pr: prResult\n });\n}\n__name(cloudFixWorkflow, \"cloudFixWorkflow\");\nvar createD3kSandbox = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//createD3kSandbox\");\nvar fetchRealLogs = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//fetchRealLogs\");\nvar analyzeLogsWithAgent = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//analyzeLogsWithAgent\");\nvar uploadToBlob = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//uploadToBlob\");\nvar createGitHubPR = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//createGitHubPR\");\ncloudFixWorkflow.workflowId = \"workflow//app/api/cloud/fix-workflow/workflow.ts//cloudFixWorkflow\";\n\n// virtual-entry.js\nglobalThis.__private_workflows = /* @__PURE__ */ new Map();\nObject.values(workflow_exports).map((item) => item?.workflowId && globalThis.__private_workflows.set(item.workflowId, item));\nObject.values(workflow_exports2).map((item) => item?.workflowId && globalThis.__private_workflows.set(item.workflowId, item));\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cyIsICJhcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cyIsICJ2aXJ0dWFsLWVudHJ5LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipfX2ludGVybmFsX3dvcmtmbG93c3tcIndvcmtmbG93c1wiOntcImFwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHNcIjp7XCJjbG91ZENoZWNrUFJXb3JrZmxvd1wiOntcIndvcmtmbG93SWRcIjpcIndvcmtmbG93Ly9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jbG91ZENoZWNrUFJXb3JrZmxvd1wifX19LFwic3RlcHNcIjp7XCJhcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzXCI6e1wiY2hlY2tQZXJmb3JtYW5jZVN0ZXBcIjp7XCJzdGVwSWRcIjpcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2NoZWNrUGVyZm9ybWFuY2VTdGVwXCJ9LFwiY3Jhd2xQcmV2aWV3UGFnZXNTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jcmF3bFByZXZpZXdQYWdlc1N0ZXBcIn0sXCJnZW5lcmF0ZVJlcG9ydFN0ZXBcIjp7XCJzdGVwSWRcIjpcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2dlbmVyYXRlUmVwb3J0U3RlcFwifSxcImlkZW50aWZ5QWZmZWN0ZWRQYWdlc1N0ZXBcIjp7XCJzdGVwSWRcIjpcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2lkZW50aWZ5QWZmZWN0ZWRQYWdlc1N0ZXBcIn0sXCJ1cGxvYWRSZXBvcnRTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy91cGxvYWRSZXBvcnRTdGVwXCJ9LFwidmVyaWZ5UFJDbGFpbXNTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy92ZXJpZnlQUkNsYWltc1N0ZXBcIn19fX0qLztcbi8qKlxuICogQ2xvdWQgQ2hlY2sgUFIgV29ya2Zsb3cgRnVuY3Rpb24gLSBDb3JlIHdvcmtmbG93IGxvZ2ljXG4gKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIE9OTFkgdGhlIHdvcmtmbG93IGZ1bmN0aW9uIGFuZCBzdGVwIHdyYXBwZXJzLlxuICogSXQgZG9lcyBOT1QgaW1wb3J0IHdvcmtmbG93L2FwaSB0byBhdm9pZCBidW5kbGVyIGlzc3Vlcy5cbiAqLyAvKipcbiAqIE1haW4gd29ya2Zsb3cgZnVuY3Rpb24gdGhhdCBjaGVja3MgYSBQUidzIGNoYW5nZXNcbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xvdWRDaGVja1BSV29ya2Zsb3cocGFyYW1zKSB7XG4gICAgY29uc3QgeyBwcmV2aWV3VXJsLCBwclRpdGxlLCBwckJvZHksIGNoYW5nZWRGaWxlcywgcmVwb093bmVyLCByZXBvTmFtZSwgcHJOdW1iZXIgfSA9IHBhcmFtcztcbiAgICBjb25zb2xlLmxvZyhcIltXb3JrZmxvd10gU3RhcnRpbmcgY2xvdWQgY2hlY2stcHIgd29ya2Zsb3cuLi5cIik7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gUHJldmlldyBVUkw6ICR7cHJldmlld1VybH1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBQUiAjJHtwck51bWJlcn06ICR7cHJUaXRsZX1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBDaGFuZ2VkIGZpbGVzOiAke2NoYW5nZWRGaWxlcy5sZW5ndGh9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gVGltZXN0YW1wOiAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gKTtcbiAgICAvLyBTdGVwIDE6IERldGVybWluZSB3aGljaCBwYWdlcyB0byBjaGVjayBiYXNlZCBvbiBjaGFuZ2VkIGZpbGVzXG4gICAgY29uc3QgcGFnZXNUb0NoZWNrID0gYXdhaXQgaWRlbnRpZnlBZmZlY3RlZFBhZ2VzU3RlcChjaGFuZ2VkRmlsZXMsIHByQm9keSk7XG4gICAgLy8gU3RlcCAyOiBDcmF3bCB0aGUgcHJldmlldyBkZXBsb3ltZW50XG4gICAgY29uc3QgY3Jhd2xSZXN1bHRzID0gYXdhaXQgY3Jhd2xQcmV2aWV3UGFnZXNTdGVwKHByZXZpZXdVcmwsIHBhZ2VzVG9DaGVjayk7XG4gICAgLy8gU3RlcCAzOiBWZXJpZnkgUFIgY2xhaW1zIGFnYWluc3QgYWN0dWFsIGJlaGF2aW9yXG4gICAgY29uc3QgdmVyaWZpY2F0aW9uID0gYXdhaXQgdmVyaWZ5UFJDbGFpbXNTdGVwKHByVGl0bGUsIHByQm9keSwgY3Jhd2xSZXN1bHRzLCBjaGFuZ2VkRmlsZXMpO1xuICAgIC8vIFN0ZXAgNDogQ2hlY2sgcGVyZm9ybWFuY2UgbWV0cmljc1xuICAgIGNvbnN0IHBlcmZvcm1hbmNlUmVzdWx0cyA9IGF3YWl0IGNoZWNrUGVyZm9ybWFuY2VTdGVwKHByZXZpZXdVcmwsIHBhZ2VzVG9DaGVjayk7XG4gICAgLy8gU3RlcCA1OiBHZW5lcmF0ZSBjb21wcmVoZW5zaXZlIHJlcG9ydFxuICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IGdlbmVyYXRlUmVwb3J0U3RlcCh7XG4gICAgICAgIHByVGl0bGUsXG4gICAgICAgIHByQm9keSxcbiAgICAgICAgcHJOdW1iZXIsXG4gICAgICAgIHByZXZpZXdVcmwsXG4gICAgICAgIGNoYW5nZWRGaWxlcyxcbiAgICAgICAgcGFnZXNUb0NoZWNrLFxuICAgICAgICBjcmF3bFJlc3VsdHMsXG4gICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgcGVyZm9ybWFuY2VSZXN1bHRzLFxuICAgICAgICByZXBvT3duZXIsXG4gICAgICAgIHJlcG9OYW1lXG4gICAgfSk7XG4gICAgLy8gU3RlcCA2OiBVcGxvYWQgcmVwb3J0IHRvIGJsb2Igc3RvcmFnZVxuICAgIGNvbnN0IGJsb2JSZXN1bHQgPSBhd2FpdCB1cGxvYWRSZXBvcnRTdGVwKHJlcG9ydCwgcmVwb093bmVyLCByZXBvTmFtZSwgcHJOdW1iZXIpO1xuICAgIHJldHVybiBSZXNwb25zZS5qc29uKHtcbiAgICAgICAgc3VjY2VzczogdmVyaWZpY2F0aW9uLmFsbENoZWNrc1Bhc3NlZCxcbiAgICAgICAgcmVwb3J0VXJsOiBibG9iUmVzdWx0LmJsb2JVcmwsXG4gICAgICAgIHByQ29tbWVudDogdHJ1ZSxcbiAgICAgICAgdmVyaWZpY2F0aW9uOiB2ZXJpZmljYXRpb24uc3VtbWFyeSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHBlcmZvcm1hbmNlUmVzdWx0cy5zdW1tYXJ5LFxuICAgICAgICBtZXNzYWdlOiB2ZXJpZmljYXRpb24uYWxsQ2hlY2tzUGFzc2VkID8gXCJBbGwgUFIgY2hlY2tzIHBhc3NlZCEgXHUyNzA1XCIgOiBcIlNvbWUgUFIgY2hlY2tzIGZhaWxlZCAtIHNlZSByZXBvcnQgZm9yIGRldGFpbHNcIlxuICAgIH0pO1xufVxuLy8gU3RlcCBmdW5jdGlvbiB3cmFwcGVycyB0aGF0IGR5bmFtaWNhbGx5IGltcG9ydCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uc1xudmFyIGlkZW50aWZ5QWZmZWN0ZWRQYWdlc1N0ZXAgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9pZGVudGlmeUFmZmVjdGVkUGFnZXNTdGVwXCIpO1xudmFyIGNyYXdsUHJldmlld1BhZ2VzU3RlcCA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2NyYXdsUHJldmlld1BhZ2VzU3RlcFwiKTtcbi8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTogQUktZ2VuZXJhdGVkIGNyYXdsIGRhdGEgaGFzIGR5bmFtaWMgc3RydWN0dXJlXG52YXIgdmVyaWZ5UFJDbGFpbXNTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vdmVyaWZ5UFJDbGFpbXNTdGVwXCIpO1xudmFyIGNoZWNrUGVyZm9ybWFuY2VTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vY2hlY2tQZXJmb3JtYW5jZVN0ZXBcIik7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IFJlcG9ydCBkYXRhIGhhcyBkeW5hbWljIHN0cnVjdHVyZSBmcm9tIHByZXZpb3VzIHN0ZXBzXG52YXIgZ2VuZXJhdGVSZXBvcnRTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vZ2VuZXJhdGVSZXBvcnRTdGVwXCIpO1xudmFyIHVwbG9hZFJlcG9ydFN0ZXAgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy91cGxvYWRSZXBvcnRTdGVwXCIpO1xuY2xvdWRDaGVja1BSV29ya2Zsb3cud29ya2Zsb3dJZCA9IFwid29ya2Zsb3cvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2Nsb3VkQ2hlY2tQUldvcmtmbG93XCI7XG4iLCAiLyoqX19pbnRlcm5hbF93b3JrZmxvd3N7XCJ3b3JrZmxvd3NcIjp7XCJhcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50c1wiOntcImNsb3VkRml4V29ya2Zsb3dcIjp7XCJ3b3JrZmxvd0lkXCI6XCJ3b3JrZmxvdy8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2Nsb3VkRml4V29ya2Zsb3dcIn19fSxcInN0ZXBzXCI6e1wiYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHNcIjp7XCJhbmFseXplTG9nc1dpdGhBZ2VudFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2FuYWx5emVMb2dzV2l0aEFnZW50XCJ9LFwiY3JlYXRlRDNrU2FuZGJveFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2NyZWF0ZUQza1NhbmRib3hcIn0sXCJjcmVhdGVHaXRIdWJQUlwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2NyZWF0ZUdpdEh1YlBSXCJ9LFwiZmV0Y2hSZWFsTG9nc1wiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2ZldGNoUmVhbExvZ3NcIn0sXCJ1cGxvYWRUb0Jsb2JcIjp7XCJzdGVwSWRcIjpcInN0ZXAvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy91cGxvYWRUb0Jsb2JcIn19fX0qLztcbi8qKlxuICogQ2xvdWQgRml4IFdvcmtmbG93IEZ1bmN0aW9uIC0gQ29yZSB3b3JrZmxvdyBsb2dpY1xuICpcbiAqIFRoaXMgZmlsZSBjb250YWlucyBPTkxZIHRoZSB3b3JrZmxvdyBmdW5jdGlvbiBhbmQgc3RlcCB3cmFwcGVycy5cbiAqIEl0IGRvZXMgTk9UIGltcG9ydCB3b3JrZmxvdy9hcGkgdG8gYXZvaWQgYnVuZGxlciBpc3N1ZXMuXG4gKi8gLyoqXG4gKiBNYWluIHdvcmtmbG93IGZ1bmN0aW9uIHRoYXQgb3JjaGVzdHJhdGVzIHRoZSBmaXggcHJvY2Vzc1xuICovIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbG91ZEZpeFdvcmtmbG93KHBhcmFtcykge1xuICAgIGNvbnN0IHsgZGV2VXJsLCBwcm9qZWN0TmFtZSwgdmVyY2VsVG9rZW4sIHZlcmNlbE9pZGNUb2tlbjogdmVyY2VsT2lkY1Rva2VuUGFyYW0sIHJlcG9Pd25lciwgcmVwb05hbWUsIGJhc2VCcmFuY2ggPSBcIm1haW5cIiwgYnlwYXNzVG9rZW4sIHJlcG9VcmwsIHJlcG9CcmFuY2ggfSA9IHBhcmFtcztcbiAgICBjb25zb2xlLmxvZyhcIltXb3JrZmxvd10gU3RhcnRpbmcgY2xvdWQgZml4IHdvcmtmbG93Li4uXCIpO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIERldiBVUkw6ICR7ZGV2VXJsfWApO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFByb2plY3Q6ICR7cHJvamVjdE5hbWV9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gVGltZXN0YW1wOiAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBCeXBhc3MgVG9rZW46ICR7YnlwYXNzVG9rZW4gPyBcInByb3ZpZGVkXCIgOiBcIm5vdCBwcm92aWRlZFwifWApO1xuICAgIGlmIChyZXBvT3duZXIgJiYgcmVwb05hbWUpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gR2l0SHViIFJlcG86ICR7cmVwb093bmVyfS8ke3JlcG9OYW1lfWApO1xuICAgICAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBCYXNlIEJyYW5jaDogJHtiYXNlQnJhbmNofWApO1xuICAgIH1cbiAgICBpZiAocmVwb1VybCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBXaWxsIGNyZWF0ZSBzYW5kYm94IGZyb206ICR7cmVwb1VybH1gKTtcbiAgICAgICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gQnJhbmNoOiAke3JlcG9CcmFuY2ggfHwgXCJtYWluXCJ9YCk7XG4gICAgfVxuICAgIC8vIFVzZSBWRVJDRUxfT0lEQ19UT0tFTiBmcm9tIHBhcmFtcyAocGFzc2VkIGZyb20gcmVxdWVzdCBoZWFkZXIpIG9yIGZhbGwgYmFjayB0byBlbnZcbiAgICAvLyBBdCBydW50aW1lLCBPSURDIHRva2VuIGlzIGluIHgtdmVyY2VsLW9pZGMtdG9rZW4gaGVhZGVyLCBub3QgcHJvY2Vzcy5lbnZcbiAgICBjb25zdCB2ZXJjZWxPaWRjVG9rZW4gPSB2ZXJjZWxPaWRjVG9rZW5QYXJhbSB8fCBwcm9jZXNzLmVudi5WRVJDRUxfT0lEQ19UT0tFTjtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBWRVJDRUxfT0lEQ19UT0tFTiBmcm9tIHBhcmFtOiAkeyEhdmVyY2VsT2lkY1Rva2VuUGFyYW19YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gVkVSQ0VMX09JRENfVE9LRU4gZnJvbSBlbnY6ICR7ISFwcm9jZXNzLmVudi5WRVJDRUxfT0lEQ19UT0tFTn1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBWRVJDRUxfT0lEQ19UT0tFTiBhdmFpbGFibGU6ICR7ISF2ZXJjZWxPaWRjVG9rZW59YCk7XG4gICAgLy8gU3RlcCAwOiBDcmVhdGUgZDNrIHNhbmRib3ggaWYgcmVwb1VybCBwcm92aWRlZFxuICAgIC8vIFRoaXMgc3RlcCBhbHNvIGNhcHR1cmVzIENMUyBkYXRhLCBcImJlZm9yZVwiIHNjcmVlbnNob3QsIGFuZCBnaXQgZGlmZiBmcm9tIGluc2lkZSB0aGUgc2FuZGJveFxuICAgIGxldCBzYW5kYm94SW5mbyA9IG51bGw7XG4gICAgaWYgKHJlcG9VcmwpIHtcbiAgICAgICAgc2FuZGJveEluZm8gPSBhd2FpdCBjcmVhdGVEM2tTYW5kYm94KHJlcG9VcmwsIHJlcG9CcmFuY2ggfHwgXCJtYWluXCIsIHByb2plY3ROYW1lLCB2ZXJjZWxUb2tlbiwgdmVyY2VsT2lkY1Rva2VuKTtcbiAgICB9XG4gICAgLy8gU3RlcCAxOiBGZXRjaCByZWFsIGxvZ3MgKHVzaW5nIHNhbmRib3ggTUNQIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGRldlVybCBkaXJlY3RseSlcbiAgICAvLyBJZiB3ZSBnb3QgQ0xTIGRhdGEgZnJvbSBTdGVwIDAsIHBhc3MgaXQgdG8gU3RlcCAxIHRvIGF2b2lkIHJlLWZldGNoaW5nXG4gICAgLy8gVXNlIGJ5cGFzcyB0b2tlbiBmcm9tIHNhbmRib3ggaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIHByb3ZpZGVkIG9uZVxuICAgIC8vIEFsc28gcGFzcyB0aGUgYmVmb3JlU2NyZWVuc2hvdFVybCBmcm9tIFN0ZXAgMCBpZiBhdmFpbGFibGVcbiAgICBjb25zdCBlZmZlY3RpdmVCeXBhc3NUb2tlbiA9IHNhbmRib3hJbmZvPy5ieXBhc3NUb2tlbiB8fCBieXBhc3NUb2tlbjtcbiAgICBjb25zdCBzdGVwMVJlc3VsdCA9IGF3YWl0IGZldGNoUmVhbExvZ3Moc2FuZGJveEluZm8/Lm1jcFVybCB8fCBkZXZVcmwsIGVmZmVjdGl2ZUJ5cGFzc1Rva2VuLCBzYW5kYm94SW5mbz8uZGV2VXJsLCBzYW5kYm94SW5mbz8uY2xzRGF0YSwgc2FuZGJveEluZm8/Lm1jcEVycm9yLCBzYW5kYm94SW5mbz8uYmVmb3JlU2NyZWVuc2hvdFVybCk7XG4gICAgY29uc3QgeyBsb2dBbmFseXNpcywgYmVmb3JlU2NyZWVuc2hvdFVybCB9ID0gc3RlcDFSZXN1bHQ7XG4gICAgLy8gU3RlcCAyOiBJbnZva2UgQUkgYWdlbnQgdG8gYW5hbHl6ZSBsb2dzIGFuZCBjcmVhdGUgZml4XG4gICAgY29uc3QgZml4UHJvcG9zYWwgPSBhd2FpdCBhbmFseXplTG9nc1dpdGhBZ2VudChsb2dBbmFseXNpcywgc2FuZGJveEluZm8/LmRldlVybCB8fCBkZXZVcmwpO1xuICAgIC8vIFN0ZXAgMzogVXBsb2FkIHRvIGJsb2Igc3RvcmFnZSB3aXRoIGZ1bGwgY29udGV4dCwgc2NyZWVuc2hvdCwgYW5kIGdpdCBkaWZmXG4gICAgY29uc3QgYmxvYlJlc3VsdCA9IGF3YWl0IHVwbG9hZFRvQmxvYihmaXhQcm9wb3NhbCwgcHJvamVjdE5hbWUsIGxvZ0FuYWx5c2lzLCBzYW5kYm94SW5mbz8uZGV2VXJsIHx8IGRldlVybCwgYmVmb3JlU2NyZWVuc2hvdFVybCwgc2FuZGJveEluZm8/LmdpdERpZmYpO1xuICAgIC8vIFN0ZXAgNDogQ3JlYXRlIEdpdEh1YiBQUiBpZiByZXBvIGluZm8gcHJvdmlkZWQgQU5EIHRoZXJlIGFyZSBhY3R1YWwgZml4ZXMgdG8gYXBwbHlcbiAgICBsZXQgcHJSZXN1bHQgPSBudWxsO1xuICAgIGNvbnN0IGhhc0dpdFBhdGNoID0gZml4UHJvcG9zYWwuaW5jbHVkZXMoXCJgYGBkaWZmXCIpO1xuICAgIGlmIChyZXBvT3duZXIgJiYgcmVwb05hbWUgJiYgaGFzR2l0UGF0Y2gpIHtcbiAgICAgICAgcHJSZXN1bHQgPSBhd2FpdCBjcmVhdGVHaXRIdWJQUihmaXhQcm9wb3NhbCwgYmxvYlJlc3VsdC5ibG9iVXJsLCByZXBvT3duZXIsIHJlcG9OYW1lLCBiYXNlQnJhbmNoLCBwcm9qZWN0TmFtZSk7XG4gICAgfSBlbHNlIGlmIChyZXBvT3duZXIgJiYgcmVwb05hbWUgJiYgIWhhc0dpdFBhdGNoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiW1dvcmtmbG93XSBObyBnaXQgcGF0Y2ggZm91bmQgLSBza2lwcGluZyBQUiBjcmVhdGlvbiAoc3lzdGVtIGlzIGhlYWx0aHkpXCIpO1xuICAgIH1cbiAgICAvLyBOb3RlOiBTYW5kYm94IGNsZWFudXAgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzYW5kYm94IHRpbWVvdXRcbiAgICAvLyBXZSBjYW5ub3Qgc3RvcmUgY2xlYW51cCBmdW5jdGlvbnMgYXMgdGhleSdyZSBub3Qgc2VyaWFsaXphYmxlXG4gICAgcmV0dXJuIFJlc3BvbnNlLmpzb24oe1xuICAgICAgICAuLi5ibG9iUmVzdWx0LFxuICAgICAgICBwcjogcHJSZXN1bHRcbiAgICB9KTtcbn1cbi8vIFN0ZXAgZnVuY3Rpb24gd3JhcHBlcnMgdGhhdCBkeW5hbWljYWxseSBpbXBvcnQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbnNcbnZhciBjcmVhdGVEM2tTYW5kYm94ID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2NyZWF0ZUQza1NhbmRib3hcIik7XG52YXIgZmV0Y2hSZWFsTG9ncyA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy9mZXRjaFJlYWxMb2dzXCIpO1xudmFyIGFuYWx5emVMb2dzV2l0aEFnZW50ID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2FuYWx5emVMb2dzV2l0aEFnZW50XCIpO1xudmFyIHVwbG9hZFRvQmxvYiA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy91cGxvYWRUb0Jsb2JcIik7XG52YXIgY3JlYXRlR2l0SHViUFIgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY3JlYXRlR2l0SHViUFJcIik7XG5jbG91ZEZpeFdvcmtmbG93LndvcmtmbG93SWQgPSBcIndvcmtmbG93Ly9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY2xvdWRGaXhXb3JrZmxvd1wiO1xuIiwgImdsb2JhbFRoaXMuX19wcml2YXRlX3dvcmtmbG93cyA9IG5ldyBNYXAoKTtcbmltcG9ydCAqIGFzIHdvcmtmbG93RmlsZTAgZnJvbSAnLi9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzJztcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMod29ya2Zsb3dGaWxlMCkubWFwKGl0ZW0gPT4gaXRlbT8ud29ya2Zsb3dJZCAmJiBnbG9iYWxUaGlzLl9fcHJpdmF0ZV93b3JrZmxvd3Muc2V0KGl0ZW0ud29ya2Zsb3dJZCwgaXRlbSkpXG5pbXBvcnQgKiBhcyB3b3JrZmxvd0ZpbGUxIGZyb20gJy4vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMnO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyh3b3JrZmxvd0ZpbGUxKS5tYXAoaXRlbSA9PiBpdGVtPy53b3JrZmxvd0lkICYmIGdsb2JhbFRoaXMuX19wcml2YXRlX3dvcmtmbG93cy5zZXQoaXRlbS53b3JrZmxvd0lkLCBpdGVtKSkiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUksZUFBc0IscUJBQXFCLFFBQVE7QUFDbkQsUUFBTSxFQUFFLFlBQVksU0FBUyxRQUFRLGNBQWMsV0FBVyxVQUFVLFNBQVMsSUFBSTtBQUNyRixVQUFRLElBQUksZ0RBQWdEO0FBQzVELFVBQVEsSUFBSSwyQkFBMkIsVUFBVSxFQUFFO0FBQ25ELFVBQVEsSUFBSSxrQkFBa0IsUUFBUSxLQUFLLE9BQU8sRUFBRTtBQUNwRCxVQUFRLElBQUksNkJBQTZCLGFBQWEsTUFBTSxFQUFFO0FBQzlELFVBQVEsSUFBSSwwQkFBeUIsb0JBQUksS0FBSyxHQUFFLFlBQVksQ0FBQyxFQUFFO0FBRS9ELFFBQU0sZUFBZSxNQUFNLDBCQUEwQixjQUFjLE1BQU07QUFFekUsUUFBTSxlQUFlLE1BQU0sc0JBQXNCLFlBQVksWUFBWTtBQUV6RSxRQUFNLGVBQWUsTUFBTSxtQkFBbUIsU0FBUyxRQUFRLGNBQWMsWUFBWTtBQUV6RixRQUFNLHFCQUFx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\n`;\n\nexport const POST = workflowEntrypoint(workflowCode);"],"names":[],"mappings":"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","ignoreList":[0]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.0-canary.9_%40opentelemetry%2Bapi%401.9.0_babel-plugin-react-compiler%401.0.0_react-d_e89f05fa6262f945d2946e6441ada21f/node_modules/next/dist/esm/build/templates/app-route.js","../../../../mcp-server/app/.well-known/workflow/v1/flow/route.js"],"sourcesContent":["import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setReferenceManifestsSingleton } from \"next/dist/esm/server/app-render/encryption-utils\";\nimport { createServerModuleMap } from \"next/dist/esm/server/app-render/action-utils\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/.well-known/workflow/v1/flow/route\",\n pathname: \"/.well-known/workflow/v1/flow\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/mcp-server/app/.well-known/workflow/v1/flow/route.js\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/.well-known/workflow/v1/flow/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setReferenceManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n serverModuleMap: createServerModuleMap({\n serverActionsManifest\n })\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","// biome-ignore-all lint: generated file\n/* eslint-disable */\nimport { workflowEntrypoint } from 'workflow/runtime';\n\nconst workflowCode = `var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// app/api/cloud/fix-workflow/workflow.ts\nvar workflow_exports = {};\n__export(workflow_exports, {\n cloudFixWorkflow: () => cloudFixWorkflow\n});\nasync function cloudFixWorkflow(params) {\n const { devUrl, projectName, vercelToken, vercelOidcToken: vercelOidcTokenParam, repoOwner, repoName, baseBranch = \"main\", bypassToken, repoUrl, repoBranch } = params;\n console.log(\"[Workflow] Starting cloud fix workflow...\");\n console.log(\\`[Workflow] Dev URL: \\${devUrl}\\`);\n console.log(\\`[Workflow] Project: \\${projectName}\\`);\n console.log(\\`[Workflow] Timestamp: \\${(/* @__PURE__ */ new Date()).toISOString()}\\`);\n console.log(\\`[Workflow] Bypass Token: \\${bypassToken ? \"provided\" : \"not provided\"}\\`);\n if (repoOwner && repoName) {\n console.log(\\`[Workflow] GitHub Repo: \\${repoOwner}/\\${repoName}\\`);\n console.log(\\`[Workflow] Base Branch: \\${baseBranch}\\`);\n }\n if (repoUrl) {\n console.log(\\`[Workflow] Will create sandbox from: \\${repoUrl}\\`);\n console.log(\\`[Workflow] Branch: \\${repoBranch || \"main\"}\\`);\n }\n const vercelOidcToken = vercelOidcTokenParam || process.env.VERCEL_OIDC_TOKEN;\n console.log(\\`[Workflow] VERCEL_OIDC_TOKEN from param: \\${!!vercelOidcTokenParam}\\`);\n console.log(\\`[Workflow] VERCEL_OIDC_TOKEN from env: \\${!!process.env.VERCEL_OIDC_TOKEN}\\`);\n console.log(\\`[Workflow] VERCEL_OIDC_TOKEN available: \\${!!vercelOidcToken}\\`);\n let sandboxInfo = null;\n if (repoUrl) {\n sandboxInfo = await createD3kSandbox(repoUrl, repoBranch || \"main\", projectName, vercelToken, vercelOidcToken);\n }\n const effectiveBypassToken = sandboxInfo?.bypassToken || bypassToken;\n const step1Result = await fetchRealLogs(sandboxInfo?.mcpUrl || devUrl, effectiveBypassToken, sandboxInfo?.devUrl, sandboxInfo?.clsData, sandboxInfo?.mcpError, sandboxInfo?.beforeScreenshotUrl);\n const { logAnalysis, beforeScreenshotUrl } = step1Result;\n const fixProposal = await analyzeLogsWithAgent(logAnalysis, sandboxInfo?.devUrl || devUrl);\n const blobResult = await uploadToBlob(fixProposal, projectName, logAnalysis, sandboxInfo?.devUrl || devUrl, beforeScreenshotUrl, sandboxInfo?.gitDiff);\n let prResult = null;\n const hasGitPatch = fixProposal.includes(\"\\`\\`\\`diff\");\n if (repoOwner && repoName && hasGitPatch) {\n prResult = await createGitHubPR(fixProposal, blobResult.blobUrl, repoOwner, repoName, baseBranch, projectName);\n } else if (repoOwner && repoName && !hasGitPatch) {\n console.log(\"[Workflow] No git patch found - skipping PR creation (system is healthy)\");\n }\n return Response.json({\n ...blobResult,\n pr: prResult\n });\n}\n__name(cloudFixWorkflow, \"cloudFixWorkflow\");\nvar createD3kSandbox = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//createD3kSandbox\");\nvar fetchRealLogs = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//fetchRealLogs\");\nvar analyzeLogsWithAgent = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//analyzeLogsWithAgent\");\nvar uploadToBlob = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//uploadToBlob\");\nvar createGitHubPR = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/fix-workflow/workflow.ts//createGitHubPR\");\ncloudFixWorkflow.workflowId = \"workflow//app/api/cloud/fix-workflow/workflow.ts//cloudFixWorkflow\";\n\n// app/api/cloud/check-pr/workflow.ts\nvar workflow_exports2 = {};\n__export(workflow_exports2, {\n cloudCheckPRWorkflow: () => cloudCheckPRWorkflow\n});\nasync function cloudCheckPRWorkflow(params) {\n const { previewUrl, prTitle, prBody, changedFiles, repoOwner, repoName, prNumber } = params;\n console.log(\"[Workflow] Starting cloud check-pr workflow...\");\n console.log(\\`[Workflow] Preview URL: \\${previewUrl}\\`);\n console.log(\\`[Workflow] PR #\\${prNumber}: \\${prTitle}\\`);\n console.log(\\`[Workflow] Changed files: \\${changedFiles.length}\\`);\n console.log(\\`[Workflow] Timestamp: \\${(/* @__PURE__ */ new Date()).toISOString()}\\`);\n const pagesToCheck = await identifyAffectedPagesStep(changedFiles, prBody);\n const crawlResults = await crawlPreviewPagesStep(previewUrl, pagesToCheck);\n const verification = await verifyPRClaimsStep(prTitle, prBody, crawlResults, changedFiles);\n const performanceResults = await checkPerformanceStep(previewUrl, pagesToCheck);\n const report = await generateReportStep({\n prTitle,\n prBody,\n prNumber,\n previewUrl,\n changedFiles,\n pagesToCheck,\n crawlResults,\n verification,\n performanceResults,\n repoOwner,\n repoName\n });\n const blobResult = await uploadReportStep(report, repoOwner, repoName, prNumber);\n return Response.json({\n success: verification.allChecksPassed,\n reportUrl: blobResult.blobUrl,\n prComment: true,\n verification: verification.summary,\n performance: performanceResults.summary,\n message: verification.allChecksPassed ? \"All PR checks passed! \\\\u2705\" : \"Some PR checks failed - see report for details\"\n });\n}\n__name(cloudCheckPRWorkflow, \"cloudCheckPRWorkflow\");\nvar identifyAffectedPagesStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//identifyAffectedPagesStep\");\nvar crawlPreviewPagesStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//crawlPreviewPagesStep\");\nvar verifyPRClaimsStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//verifyPRClaimsStep\");\nvar checkPerformanceStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//checkPerformanceStep\");\nvar generateReportStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//generateReportStep\");\nvar uploadReportStep = globalThis[Symbol.for(\"WORKFLOW_USE_STEP\")](\"step//app/api/cloud/check-pr/workflow.ts//uploadReportStep\");\ncloudCheckPRWorkflow.workflowId = \"workflow//app/api/cloud/check-pr/workflow.ts//cloudCheckPRWorkflow\";\n\n// virtual-entry.js\nglobalThis.__private_workflows = /* @__PURE__ */ new Map();\nObject.values(workflow_exports).map((item) => item?.workflowId && globalThis.__private_workflows.set(item.workflowId, item));\nObject.values(workflow_exports2).map((item) => item?.workflowId && globalThis.__private_workflows.set(item.workflowId, item));\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMiLCAiYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cyIsICJ2aXJ0dWFsLWVudHJ5LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipfX2ludGVybmFsX3dvcmtmbG93c3tcIndvcmtmbG93c1wiOntcImFwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzXCI6e1wiY2xvdWRGaXhXb3JrZmxvd1wiOntcIndvcmtmbG93SWRcIjpcIndvcmtmbG93Ly9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY2xvdWRGaXhXb3JrZmxvd1wifX19LFwic3RlcHNcIjp7XCJhcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50c1wiOntcImFuYWx5emVMb2dzV2l0aEFnZW50XCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vYW5hbHl6ZUxvZ3NXaXRoQWdlbnRcIn0sXCJjcmVhdGVEM2tTYW5kYm94XCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY3JlYXRlRDNrU2FuZGJveFwifSxcImNyZWF0ZUdpdEh1YlBSXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY3JlYXRlR2l0SHViUFJcIn0sXCJmZXRjaFJlYWxMb2dzXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vZmV0Y2hSZWFsTG9nc1wifSxcInVwbG9hZFRvQmxvYlwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL3VwbG9hZFRvQmxvYlwifX19fSovO1xuLyoqXG4gKiBDbG91ZCBGaXggV29ya2Zsb3cgRnVuY3Rpb24gLSBDb3JlIHdvcmtmbG93IGxvZ2ljXG4gKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIE9OTFkgdGhlIHdvcmtmbG93IGZ1bmN0aW9uIGFuZCBzdGVwIHdyYXBwZXJzLlxuICogSXQgZG9lcyBOT1QgaW1wb3J0IHdvcmtmbG93L2FwaSB0byBhdm9pZCBidW5kbGVyIGlzc3Vlcy5cbiAqLyAvKipcbiAqIE1haW4gd29ya2Zsb3cgZnVuY3Rpb24gdGhhdCBvcmNoZXN0cmF0ZXMgdGhlIGZpeCBwcm9jZXNzXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsb3VkRml4V29ya2Zsb3cocGFyYW1zKSB7XG4gICAgY29uc3QgeyBkZXZVcmwsIHByb2plY3ROYW1lLCB2ZXJjZWxUb2tlbiwgdmVyY2VsT2lkY1Rva2VuOiB2ZXJjZWxPaWRjVG9rZW5QYXJhbSwgcmVwb093bmVyLCByZXBvTmFtZSwgYmFzZUJyYW5jaCA9IFwibWFpblwiLCBieXBhc3NUb2tlbiwgcmVwb1VybCwgcmVwb0JyYW5jaCB9ID0gcGFyYW1zO1xuICAgIGNvbnNvbGUubG9nKFwiW1dvcmtmbG93XSBTdGFydGluZyBjbG91ZCBmaXggd29ya2Zsb3cuLi5cIik7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gRGV2IFVSTDogJHtkZXZVcmx9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gUHJvamVjdDogJHtwcm9qZWN0TmFtZX1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBUaW1lc3RhbXA6ICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWApO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIEJ5cGFzcyBUb2tlbjogJHtieXBhc3NUb2tlbiA/IFwicHJvdmlkZWRcIiA6IFwibm90IHByb3ZpZGVkXCJ9YCk7XG4gICAgaWYgKHJlcG9Pd25lciAmJiByZXBvTmFtZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBHaXRIdWIgUmVwbzogJHtyZXBvT3duZXJ9LyR7cmVwb05hbWV9YCk7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIEJhc2UgQnJhbmNoOiAke2Jhc2VCcmFuY2h9YCk7XG4gICAgfVxuICAgIGlmIChyZXBvVXJsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFdpbGwgY3JlYXRlIHNhbmRib3ggZnJvbTogJHtyZXBvVXJsfWApO1xuICAgICAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBCcmFuY2g6ICR7cmVwb0JyYW5jaCB8fCBcIm1haW5cIn1gKTtcbiAgICB9XG4gICAgLy8gVXNlIFZFUkNFTF9PSURDX1RPS0VOIGZyb20gcGFyYW1zIChwYXNzZWQgZnJvbSByZXF1ZXN0IGhlYWRlcikgb3IgZmFsbCBiYWNrIHRvIGVudlxuICAgIC8vIEF0IHJ1bnRpbWUsIE9JREMgdG9rZW4gaXMgaW4geC12ZXJjZWwtb2lkYy10b2tlbiBoZWFkZXIsIG5vdCBwcm9jZXNzLmVudlxuICAgIGNvbnN0IHZlcmNlbE9pZGNUb2tlbiA9IHZlcmNlbE9pZGNUb2tlblBhcmFtIHx8IHByb2Nlc3MuZW52LlZFUkNFTF9PSURDX1RPS0VOO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFZFUkNFTF9PSURDX1RPS0VOIGZyb20gcGFyYW06ICR7ISF2ZXJjZWxPaWRjVG9rZW5QYXJhbX1gKTtcbiAgICBjb25zb2xlLmxvZyhgW1dvcmtmbG93XSBWRVJDRUxfT0lEQ19UT0tFTiBmcm9tIGVudjogJHshIXByb2Nlc3MuZW52LlZFUkNFTF9PSURDX1RPS0VOfWApO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFZFUkNFTF9PSURDX1RPS0VOIGF2YWlsYWJsZTogJHshIXZlcmNlbE9pZGNUb2tlbn1gKTtcbiAgICAvLyBTdGVwIDA6IENyZWF0ZSBkM2sgc2FuZGJveCBpZiByZXBvVXJsIHByb3ZpZGVkXG4gICAgLy8gVGhpcyBzdGVwIGFsc28gY2FwdHVyZXMgQ0xTIGRhdGEsIFwiYmVmb3JlXCIgc2NyZWVuc2hvdCwgYW5kIGdpdCBkaWZmIGZyb20gaW5zaWRlIHRoZSBzYW5kYm94XG4gICAgbGV0IHNhbmRib3hJbmZvID0gbnVsbDtcbiAgICBpZiAocmVwb1VybCkge1xuICAgICAgICBzYW5kYm94SW5mbyA9IGF3YWl0IGNyZWF0ZUQza1NhbmRib3gocmVwb1VybCwgcmVwb0JyYW5jaCB8fCBcIm1haW5cIiwgcHJvamVjdE5hbWUsIHZlcmNlbFRva2VuLCB2ZXJjZWxPaWRjVG9rZW4pO1xuICAgIH1cbiAgICAvLyBTdGVwIDE6IEZldGNoIHJlYWwgbG9ncyAodXNpbmcgc2FuZGJveCBNQ1AgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgZGV2VXJsIGRpcmVjdGx5KVxuICAgIC8vIElmIHdlIGdvdCBDTFMgZGF0YSBmcm9tIFN0ZXAgMCwgcGFzcyBpdCB0byBTdGVwIDEgdG8gYXZvaWQgcmUtZmV0Y2hpbmdcbiAgICAvLyBVc2UgYnlwYXNzIHRva2VuIGZyb20gc2FuZGJveCBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2UgcHJvdmlkZWQgb25lXG4gICAgLy8gQWxzbyBwYXNzIHRoZSBiZWZvcmVTY3JlZW5zaG90VXJsIGZyb20gU3RlcCAwIGlmIGF2YWlsYWJsZVxuICAgIGNvbnN0IGVmZmVjdGl2ZUJ5cGFzc1Rva2VuID0gc2FuZGJveEluZm8/LmJ5cGFzc1Rva2VuIHx8IGJ5cGFzc1Rva2VuO1xuICAgIGNvbnN0IHN0ZXAxUmVzdWx0ID0gYXdhaXQgZmV0Y2hSZWFsTG9ncyhzYW5kYm94SW5mbz8ubWNwVXJsIHx8IGRldlVybCwgZWZmZWN0aXZlQnlwYXNzVG9rZW4sIHNhbmRib3hJbmZvPy5kZXZVcmwsIHNhbmRib3hJbmZvPy5jbHNEYXRhLCBzYW5kYm94SW5mbz8ubWNwRXJyb3IsIHNhbmRib3hJbmZvPy5iZWZvcmVTY3JlZW5zaG90VXJsKTtcbiAgICBjb25zdCB7IGxvZ0FuYWx5c2lzLCBiZWZvcmVTY3JlZW5zaG90VXJsIH0gPSBzdGVwMVJlc3VsdDtcbiAgICAvLyBTdGVwIDI6IEludm9rZSBBSSBhZ2VudCB0byBhbmFseXplIGxvZ3MgYW5kIGNyZWF0ZSBmaXhcbiAgICBjb25zdCBmaXhQcm9wb3NhbCA9IGF3YWl0IGFuYWx5emVMb2dzV2l0aEFnZW50KGxvZ0FuYWx5c2lzLCBzYW5kYm94SW5mbz8uZGV2VXJsIHx8IGRldlVybCk7XG4gICAgLy8gU3RlcCAzOiBVcGxvYWQgdG8gYmxvYiBzdG9yYWdlIHdpdGggZnVsbCBjb250ZXh0LCBzY3JlZW5zaG90LCBhbmQgZ2l0IGRpZmZcbiAgICBjb25zdCBibG9iUmVzdWx0ID0gYXdhaXQgdXBsb2FkVG9CbG9iKGZpeFByb3Bvc2FsLCBwcm9qZWN0TmFtZSwgbG9nQW5hbHlzaXMsIHNhbmRib3hJbmZvPy5kZXZVcmwgfHwgZGV2VXJsLCBiZWZvcmVTY3JlZW5zaG90VXJsLCBzYW5kYm94SW5mbz8uZ2l0RGlmZik7XG4gICAgLy8gU3RlcCA0OiBDcmVhdGUgR2l0SHViIFBSIGlmIHJlcG8gaW5mbyBwcm92aWRlZCBBTkQgdGhlcmUgYXJlIGFjdHVhbCBmaXhlcyB0byBhcHBseVxuICAgIGxldCBwclJlc3VsdCA9IG51bGw7XG4gICAgY29uc3QgaGFzR2l0UGF0Y2ggPSBmaXhQcm9wb3NhbC5pbmNsdWRlcyhcImBgYGRpZmZcIik7XG4gICAgaWYgKHJlcG9Pd25lciAmJiByZXBvTmFtZSAmJiBoYXNHaXRQYXRjaCkge1xuICAgICAgICBwclJlc3VsdCA9IGF3YWl0IGNyZWF0ZUdpdEh1YlBSKGZpeFByb3Bvc2FsLCBibG9iUmVzdWx0LmJsb2JVcmwsIHJlcG9Pd25lciwgcmVwb05hbWUsIGJhc2VCcmFuY2gsIHByb2plY3ROYW1lKTtcbiAgICB9IGVsc2UgaWYgKHJlcG9Pd25lciAmJiByZXBvTmFtZSAmJiAhaGFzR2l0UGF0Y2gpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJbV29ya2Zsb3ddIE5vIGdpdCBwYXRjaCBmb3VuZCAtIHNraXBwaW5nIFBSIGNyZWF0aW9uIChzeXN0ZW0gaXMgaGVhbHRoeSlcIik7XG4gICAgfVxuICAgIC8vIE5vdGU6IFNhbmRib3ggY2xlYW51cCBpcyBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNhbmRib3ggdGltZW91dFxuICAgIC8vIFdlIGNhbm5vdCBzdG9yZSBjbGVhbnVwIGZ1bmN0aW9ucyBhcyB0aGV5J3JlIG5vdCBzZXJpYWxpemFibGVcbiAgICByZXR1cm4gUmVzcG9uc2UuanNvbih7XG4gICAgICAgIC4uLmJsb2JSZXN1bHQsXG4gICAgICAgIHByOiBwclJlc3VsdFxuICAgIH0pO1xufVxuLy8gU3RlcCBmdW5jdGlvbiB3cmFwcGVycyB0aGF0IGR5bmFtaWNhbGx5IGltcG9ydCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uc1xudmFyIGNyZWF0ZUQza1NhbmRib3ggPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vY3JlYXRlRDNrU2FuZGJveFwiKTtcbnZhciBmZXRjaFJlYWxMb2dzID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL2ZldGNoUmVhbExvZ3NcIik7XG52YXIgYW5hbHl6ZUxvZ3NXaXRoQWdlbnQgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cy8vYW5hbHl6ZUxvZ3NXaXRoQWdlbnRcIik7XG52YXIgdXBsb2FkVG9CbG9iID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9maXgtd29ya2Zsb3cvd29ya2Zsb3cudHMvL3VwbG9hZFRvQmxvYlwiKTtcbnZhciBjcmVhdGVHaXRIdWJQUiA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy9jcmVhdGVHaXRIdWJQUlwiKTtcbmNsb3VkRml4V29ya2Zsb3cud29ya2Zsb3dJZCA9IFwid29ya2Zsb3cvL2FwcC9hcGkvY2xvdWQvZml4LXdvcmtmbG93L3dvcmtmbG93LnRzLy9jbG91ZEZpeFdvcmtmbG93XCI7XG4iLCAiLyoqX19pbnRlcm5hbF93b3JrZmxvd3N7XCJ3b3JrZmxvd3NcIjp7XCJhcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzXCI6e1wiY2xvdWRDaGVja1BSV29ya2Zsb3dcIjp7XCJ3b3JrZmxvd0lkXCI6XCJ3b3JrZmxvdy8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vY2xvdWRDaGVja1BSV29ya2Zsb3dcIn19fSxcInN0ZXBzXCI6e1wiYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50c1wiOntcImNoZWNrUGVyZm9ybWFuY2VTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jaGVja1BlcmZvcm1hbmNlU3RlcFwifSxcImNyYXdsUHJldmlld1BhZ2VzU3RlcFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vY3Jhd2xQcmV2aWV3UGFnZXNTdGVwXCJ9LFwiZ2VuZXJhdGVSZXBvcnRTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9nZW5lcmF0ZVJlcG9ydFN0ZXBcIn0sXCJpZGVudGlmeUFmZmVjdGVkUGFnZXNTdGVwXCI6e1wic3RlcElkXCI6XCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9pZGVudGlmeUFmZmVjdGVkUGFnZXNTdGVwXCJ9LFwidXBsb2FkUmVwb3J0U3RlcFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vdXBsb2FkUmVwb3J0U3RlcFwifSxcInZlcmlmeVBSQ2xhaW1zU3RlcFwiOntcInN0ZXBJZFwiOlwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vdmVyaWZ5UFJDbGFpbXNTdGVwXCJ9fX19Ki87XG4vKipcbiAqIENsb3VkIENoZWNrIFBSIFdvcmtmbG93IEZ1bmN0aW9uIC0gQ29yZSB3b3JrZmxvdyBsb2dpY1xuICpcbiAqIFRoaXMgZmlsZSBjb250YWlucyBPTkxZIHRoZSB3b3JrZmxvdyBmdW5jdGlvbiBhbmQgc3RlcCB3cmFwcGVycy5cbiAqIEl0IGRvZXMgTk9UIGltcG9ydCB3b3JrZmxvdy9hcGkgdG8gYXZvaWQgYnVuZGxlciBpc3N1ZXMuXG4gKi8gLyoqXG4gKiBNYWluIHdvcmtmbG93IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGEgUFIncyBjaGFuZ2VzXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsb3VkQ2hlY2tQUldvcmtmbG93KHBhcmFtcykge1xuICAgIGNvbnN0IHsgcHJldmlld1VybCwgcHJUaXRsZSwgcHJCb2R5LCBjaGFuZ2VkRmlsZXMsIHJlcG9Pd25lciwgcmVwb05hbWUsIHByTnVtYmVyIH0gPSBwYXJhbXM7XG4gICAgY29uc29sZS5sb2coXCJbV29ya2Zsb3ddIFN0YXJ0aW5nIGNsb3VkIGNoZWNrLXByIHdvcmtmbG93Li4uXCIpO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFByZXZpZXcgVVJMOiAke3ByZXZpZXdVcmx9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gUFIgIyR7cHJOdW1iZXJ9OiAke3ByVGl0bGV9YCk7XG4gICAgY29uc29sZS5sb2coYFtXb3JrZmxvd10gQ2hhbmdlZCBmaWxlczogJHtjaGFuZ2VkRmlsZXMubGVuZ3RofWApO1xuICAgIGNvbnNvbGUubG9nKGBbV29ya2Zsb3ddIFRpbWVzdGFtcDogJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCk7XG4gICAgLy8gU3RlcCAxOiBEZXRlcm1pbmUgd2hpY2ggcGFnZXMgdG8gY2hlY2sgYmFzZWQgb24gY2hhbmdlZCBmaWxlc1xuICAgIGNvbnN0IHBhZ2VzVG9DaGVjayA9IGF3YWl0IGlkZW50aWZ5QWZmZWN0ZWRQYWdlc1N0ZXAoY2hhbmdlZEZpbGVzLCBwckJvZHkpO1xuICAgIC8vIFN0ZXAgMjogQ3Jhd2wgdGhlIHByZXZpZXcgZGVwbG95bWVudFxuICAgIGNvbnN0IGNyYXdsUmVzdWx0cyA9IGF3YWl0IGNyYXdsUHJldmlld1BhZ2VzU3RlcChwcmV2aWV3VXJsLCBwYWdlc1RvQ2hlY2spO1xuICAgIC8vIFN0ZXAgMzogVmVyaWZ5IFBSIGNsYWltcyBhZ2FpbnN0IGFjdHVhbCBiZWhhdmlvclxuICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IGF3YWl0IHZlcmlmeVBSQ2xhaW1zU3RlcChwclRpdGxlLCBwckJvZHksIGNyYXdsUmVzdWx0cywgY2hhbmdlZEZpbGVzKTtcbiAgICAvLyBTdGVwIDQ6IENoZWNrIHBlcmZvcm1hbmNlIG1ldHJpY3NcbiAgICBjb25zdCBwZXJmb3JtYW5jZVJlc3VsdHMgPSBhd2FpdCBjaGVja1BlcmZvcm1hbmNlU3RlcChwcmV2aWV3VXJsLCBwYWdlc1RvQ2hlY2spO1xuICAgIC8vIFN0ZXAgNTogR2VuZXJhdGUgY29tcHJlaGVuc2l2ZSByZXBvcnRcbiAgICBjb25zdCByZXBvcnQgPSBhd2FpdCBnZW5lcmF0ZVJlcG9ydFN0ZXAoe1xuICAgICAgICBwclRpdGxlLFxuICAgICAgICBwckJvZHksXG4gICAgICAgIHByTnVtYmVyLFxuICAgICAgICBwcmV2aWV3VXJsLFxuICAgICAgICBjaGFuZ2VkRmlsZXMsXG4gICAgICAgIHBhZ2VzVG9DaGVjayxcbiAgICAgICAgY3Jhd2xSZXN1bHRzLFxuICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICAgIHBlcmZvcm1hbmNlUmVzdWx0cyxcbiAgICAgICAgcmVwb093bmVyLFxuICAgICAgICByZXBvTmFtZVxuICAgIH0pO1xuICAgIC8vIFN0ZXAgNjogVXBsb2FkIHJlcG9ydCB0byBibG9iIHN0b3JhZ2VcbiAgICBjb25zdCBibG9iUmVzdWx0ID0gYXdhaXQgdXBsb2FkUmVwb3J0U3RlcChyZXBvcnQsIHJlcG9Pd25lciwgcmVwb05hbWUsIHByTnVtYmVyKTtcbiAgICByZXR1cm4gUmVzcG9uc2UuanNvbih7XG4gICAgICAgIHN1Y2Nlc3M6IHZlcmlmaWNhdGlvbi5hbGxDaGVja3NQYXNzZWQsXG4gICAgICAgIHJlcG9ydFVybDogYmxvYlJlc3VsdC5ibG9iVXJsLFxuICAgICAgICBwckNvbW1lbnQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvbjogdmVyaWZpY2F0aW9uLnN1bW1hcnksXG4gICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZVJlc3VsdHMuc3VtbWFyeSxcbiAgICAgICAgbWVzc2FnZTogdmVyaWZpY2F0aW9uLmFsbENoZWNrc1Bhc3NlZCA/IFwiQWxsIFBSIGNoZWNrcyBwYXNzZWQhIFx1MjcwNVwiIDogXCJTb21lIFBSIGNoZWNrcyBmYWlsZWQgLSBzZWUgcmVwb3J0IGZvciBkZXRhaWxzXCJcbiAgICB9KTtcbn1cbi8vIFN0ZXAgZnVuY3Rpb24gd3JhcHBlcnMgdGhhdCBkeW5hbWljYWxseSBpbXBvcnQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbnNcbnZhciBpZGVudGlmeUFmZmVjdGVkUGFnZXNTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vaWRlbnRpZnlBZmZlY3RlZFBhZ2VzU3RlcFwiKTtcbnZhciBjcmF3bFByZXZpZXdQYWdlc1N0ZXAgPSBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwLy9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jcmF3bFByZXZpZXdQYWdlc1N0ZXBcIik7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IEFJLWdlbmVyYXRlZCBjcmF3bCBkYXRhIGhhcyBkeW5hbWljIHN0cnVjdHVyZVxudmFyIHZlcmlmeVBSQ2xhaW1zU3RlcCA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL3ZlcmlmeVBSQ2xhaW1zU3RlcFwiKTtcbnZhciBjaGVja1BlcmZvcm1hbmNlU3RlcCA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2NoZWNrUGVyZm9ybWFuY2VTdGVwXCIpO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0V4cGxpY2l0QW55OiBSZXBvcnQgZGF0YSBoYXMgZHluYW1pYyBzdHJ1Y3R1cmUgZnJvbSBwcmV2aW91cyBzdGVwc1xudmFyIGdlbmVyYXRlUmVwb3J0U3RlcCA9IGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXAvL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMvL2dlbmVyYXRlUmVwb3J0U3RlcFwiKTtcbnZhciB1cGxvYWRSZXBvcnRTdGVwID0gZ2xvYmFsVGhpc1tTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vYXBwL2FwaS9jbG91ZC9jaGVjay1wci93b3JrZmxvdy50cy8vdXBsb2FkUmVwb3J0U3RlcFwiKTtcbmNsb3VkQ2hlY2tQUldvcmtmbG93LndvcmtmbG93SWQgPSBcIndvcmtmbG93Ly9hcHAvYXBpL2Nsb3VkL2NoZWNrLXByL3dvcmtmbG93LnRzLy9jbG91ZENoZWNrUFJXb3JrZmxvd1wiO1xuIiwgImdsb2JhbFRoaXMuX19wcml2YXRlX3dvcmtmbG93cyA9IG5ldyBNYXAoKTtcbmltcG9ydCAqIGFzIHdvcmtmbG93RmlsZTAgZnJvbSAnLi9hcHAvYXBpL2Nsb3VkL2ZpeC13b3JrZmxvdy93b3JrZmxvdy50cyc7XG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKHdvcmtmbG93RmlsZTApLm1hcChpdGVtID0+IGl0ZW0/LndvcmtmbG93SWQgJiYgZ2xvYmFsVGhpcy5fX3ByaXZhdGVfd29ya2Zsb3dzLnNldChpdGVtLndvcmtmbG93SWQsIGl0ZW0pKVxuaW1wb3J0ICogYXMgd29ya2Zsb3dGaWxlMSBmcm9tICcuL2FwcC9hcGkvY2xvdWQvY2hlY2stcHIvd29ya2Zsb3cudHMnO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyh3b3JrZmxvd0ZpbGUxKS5tYXAoaXRlbSA9PiBpdGVtPy53b3JrZmxvd0lkICYmIGdsb2JhbFRoaXMuX19wcml2YXRlX3dvcmtmbG93cy5zZXQoaXRlbS53b3JrZmxvd0lkLCBpdGVtKSkiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUksZUFBc0IsaUJBQWlCLFFBQVE7QUFDL0MsUUFBTSxFQUFFLFFBQVEsYUFBYSxhQUFhLGlCQUFpQixzQkFBc0IsV0FBVyxVQUFVLGFBQWEsUUFBUSxhQUFhLFNBQVMsV0FBVyxJQUFJO0FBQ2hLLFVBQVEsSUFBSSwyQ0FBMkM7QUFDdkQsVUFBUSxJQUFJLHVCQUF1QixNQUFNLEVBQUU7QUFDM0MsVUFBUSxJQUFJLHVCQUF1QixXQUFXLEVBQUU7QUFDaEQsVUFBUSxJQUFJLDBCQUF5QixvQkFBSSxLQUFLLEdBQUUsWUFBWSxDQUFDLEVBQUU7QUFDL0QsVUFBUSxJQUFJLDRCQUE0QixjQUFjLGFBQWEsY0FBYyxFQUFFO0FBQ25GLE1BQUksYUFBYSxVQUFVO0FBQ3ZCLFlBQVEsSUFBSSwyQkFBMkIsU0FBUyxJQUFJLFFBQVEsRUFBRTtBQUM5RCxZQUFRLElBQUksMkJBQTJCLFVBQVUsRUFBRTtBQUFBLEVBQ3ZEO0FBQ0EsTUFB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\n`;\n\nexport const POST = workflowEntrypoint(workflowCode);"],"names":[],"mappings":"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","ignoreList":[0]}
|