35 lines
55 KiB
JavaScript
35 lines
55 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
exports.id = "vendor-chunks/@prisma+instrumentation@7.6.0_@opentelemetry+api@1.9.1";
|
|
exports.ids = ["vendor-chunks/@prisma+instrumentation@7.6.0_@opentelemetry+api@1.9.1"];
|
|
exports.modules = {
|
|
|
|
/***/ "(rsc)/./node_modules/.pnpm/@prisma+instrumentation@7.6.0_@opentelemetry+api@1.9.1/node_modules/@prisma/instrumentation/dist/index.js":
|
|
/*!**************************************************************************************************************************************!*\
|
|
!*** ./node_modules/.pnpm/@prisma+instrumentation@7.6.0_@opentelemetry+api@1.9.1/node_modules/@prisma/instrumentation/dist/index.js ***!
|
|
\**************************************************************************************************************************************/
|
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n PrismaInstrumentation: () => PrismaInstrumentation,\n registerInstrumentations: () => import_instrumentation2.registerInstrumentations\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/PrismaInstrumentation.ts\nvar import_api2 = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nvar import_instrumentation = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.207.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\n\n// ../instrumentation-contract/dist/index.mjs\nvar package_default = {\n name: \"@prisma/instrumentation-contract\",\n version: \"7.6.0\",\n description: \"Shared types and utilities for Prisma instrumentation\",\n main: \"dist/index.js\",\n module: \"dist/index.mjs\",\n types: \"dist/index.d.ts\",\n exports: {\n \".\": {\n require: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.js\"\n },\n import: {\n types: \"./dist/index.d.mts\",\n default: \"./dist/index.mjs\"\n }\n }\n },\n license: \"Apache-2.0\",\n homepage: \"https://www.prisma.io\",\n repository: {\n type: \"git\",\n url: \"https://github.com/prisma/prisma.git\",\n directory: \"packages/instrumentation-contract\"\n },\n bugs: \"https://github.com/prisma/prisma/issues\",\n scripts: {\n dev: \"DEV=true tsx helpers/build.ts\",\n build: \"tsx helpers/build.ts\",\n prepublishOnly: \"pnpm run build\",\n test: \"vitest run\"\n },\n files: [\n \"dist\"\n ],\n sideEffects: false,\n devDependencies: {\n \"@opentelemetry/api\": \"1.9.0\"\n },\n peerDependencies: {\n \"@opentelemetry/api\": \"^1.8\"\n }\n};\nvar majorVersion = package_default.version.split(\".\")[0];\nvar GLOBAL_INSTRUMENTATION_KEY = \"PRISMA_INSTRUMENTATION\";\nvar GLOBAL_VERSIONED_INSTRUMENTATION_KEY = `V${majorVersion}_PRISMA_INSTRUMENTATION`;\nvar globalThisWithPrismaInstrumentation = globalThis;\nfunction getGlobalTracingHelper() {\n const versionedGlobal = globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n if (versionedGlobal?.helper) {\n return versionedGlobal.helper;\n }\n const fallbackGlobal = globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n return fallbackGlobal?.helper;\n}\nfunction setGlobalTracingHelper(helper) {\n const globalValue = { helper };\n globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = globalValue;\n globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = globalValue;\n}\nfunction clearGlobalTracingHelper() {\n delete globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n delete globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n}\n\n// src/ActiveTracingHelper.ts\nvar import_api = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nvar showAllTraces = process.env.PRISMA_SHOW_ALL_TRACES === \"true\";\nvar nonSampledTraceParent = `00-10-10-00`;\nfunction engineSpanKindToOtelSpanKind(engineSpanKind) {\n switch (engineSpanKind) {\n case \"client\":\n return import_api.SpanKind.CLIENT;\n case \"internal\":\n default:\n return import_api.SpanKind.INTERNAL;\n }\n}\nvar ActiveTracingHelper = class {\n tracerProvider;\n ignoreSpanTypes;\n constructor({ tracerProvider, ignoreSpanTypes }) {\n this.tracerProvider = tracerProvider;\n this.ignoreSpanTypes = ignoreSpanTypes;\n }\n isEnabled() {\n return true;\n }\n getTraceParent(context) {\n const span = import_api.trace.getSpanContext(context ?? import_api.context.active());\n if (span) {\n return `00-${span.traceId}-${span.spanId}-0${span.traceFlags}`;\n }\n return nonSampledTraceParent;\n }\n dispatchEngineSpans(spans) {\n const tracer = this.tracerProvider.getTracer(\"prisma\");\n const linkIds = /* @__PURE__ */ new Map();\n const roots = spans.filter((span) => span.parentId === null);\n for (const root of roots) {\n dispatchEngineSpan(tracer, root, spans, linkIds, this.ignoreSpanTypes);\n }\n }\n getActiveContext() {\n return import_api.context.active();\n }\n runInChildSpan(options, callback) {\n if (typeof options === \"string\") {\n options = { name: options };\n }\n if (options.internal && !showAllTraces) {\n return callback();\n }\n const tracer = this.tracerProvider.getTracer(\"prisma\");\n const context = options.context ?? this.getActiveContext();\n const name = `prisma:client:${options.name}`;\n if (shouldIgnoreSpan(name, this.ignoreSpanTypes)) {\n return callback();\n }\n if (options.active === false) {\n const span = tracer.startSpan(name, options, context);\n return endSpan(span, callback(span, context));\n }\n return tracer.startActiveSpan(name, options, (span) => endSpan(span, callback(span, context)));\n }\n};\nfunction dispatchEngineSpan(tracer, engineSpan, allSpans, linkIds, ignoreSpanTypes) {\n if (shouldIgnoreSpan(engineSpan.name, ignoreSpanTypes)) return;\n const spanOptions = {\n attributes: engineSpan.attributes,\n kind: engineSpanKindToOtelSpanKind(engineSpan.kind),\n startTime: engineSpan.startTime\n };\n tracer.startActiveSpan(engineSpan.name, spanOptions, (span) => {\n linkIds.set(engineSpan.id, span.spanContext().spanId);\n if (engineSpan.links) {\n span.addLinks(\n engineSpan.links.flatMap((link) => {\n const linkedId = linkIds.get(link);\n if (!linkedId) {\n return [];\n }\n return {\n context: {\n spanId: linkedId,\n traceId: span.spanContext().traceId,\n traceFlags: span.spanContext().traceFlags\n }\n };\n })\n );\n }\n const children = allSpans.filter((s) => s.parentId === engineSpan.id);\n for (const child of children) {\n dispatchEngineSpan(tracer, child, allSpans, linkIds, ignoreSpanTypes);\n }\n span.end(engineSpan.endTime);\n });\n}\nfunction endSpan(span, result) {\n if (isPromiseLike(result)) {\n return result.then(\n (value) => {\n span.end();\n return value;\n },\n (reason) => {\n span.end();\n throw reason;\n }\n );\n }\n span.end();\n return result;\n}\nfunction isPromiseLike(value) {\n return value != null && typeof value[\"then\"] === \"function\";\n}\nfunction shouldIgnoreSpan(spanName, ignoreSpanTypes) {\n return ignoreSpanTypes.some(\n (pattern) => typeof pattern === \"string\" ? pattern === spanName : pattern.test(spanName)\n );\n}\n\n// package.json\nvar package_default2 = {\n name: \"@prisma/instrumentation\",\n version: \"7.6.0\",\n description: \"OpenTelemetry compliant instrumentation for Prisma Client\",\n main: \"dist/index.js\",\n module: \"dist/index.mjs\",\n types: \"dist/index.d.ts\",\n exports: {\n \".\": {\n require: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.js\"\n },\n import: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.mjs\"\n }\n }\n },\n license: \"Apache-2.0\",\n homepage: \"https://www.prisma.io\",\n repository: {\n type: \"git\",\n url: \"https://github.com/prisma/prisma.git\",\n directory: \"packages/instrumentation\"\n },\n bugs: \"https://github.com/prisma/prisma/issues\",\n devDependencies: {\n \"@opentelemetry/api\": \"1.9.0\",\n \"@prisma/instrumentation-contract\": \"workspace:*\",\n \"@types/node\": \"~20.19.24\",\n typescript: \"5.4.5\"\n },\n dependencies: {\n \"@opentelemetry/instrumentation\": \"^0.207.0\"\n },\n peerDependencies: {\n \"@opentelemetry/api\": \"^1.8\"\n },\n files: [\n \"dist\"\n ],\n keywords: [\n \"prisma\",\n \"instrumentation\",\n \"opentelemetry\",\n \"otel\"\n ],\n scripts: {\n dev: \"DEV=true tsx helpers/build.ts\",\n build: \"tsx helpers/build.ts\",\n prepublishOnly: \"pnpm run build\",\n test: \"vitest run\"\n },\n sideEffects: false\n};\n\n// src/constants.ts\nvar VERSION = package_default2.version;\nvar NAME = package_default2.name;\nvar MODULE_NAME = \"@prisma/client\";\n\n// src/PrismaInstrumentation.ts\nvar PrismaInstrumentation = class extends import_instrumentation.InstrumentationBase {\n tracerProvider;\n constructor(config = {}) {\n super(NAME, VERSION, config);\n }\n setTracerProvider(tracerProvider) {\n this.tracerProvider = tracerProvider;\n }\n init() {\n const module2 = new import_instrumentation.InstrumentationNodeModuleDefinition(MODULE_NAME, [VERSION]);\n return [module2];\n }\n enable() {\n const config = this._config;\n setGlobalTracingHelper(\n new ActiveTracingHelper({\n tracerProvider: this.tracerProvider ?? import_api2.trace.getTracerProvider(),\n ignoreSpanTypes: config.ignoreSpanTypes ?? []\n })\n );\n }\n disable() {\n clearGlobalTracingHelper();\n }\n isEnabled() {\n return getGlobalTracingHelper() !== void 0;\n }\n};\n\n// src/index.ts\nvar import_instrumentation2 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.207.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQHByaXNtYStpbnN0cnVtZW50YXRpb25ANy42LjBfQG9wZW50ZWxlbWV0cnkrYXBpQDEuOS4xL25vZGVfbW9kdWxlcy9AcHJpc21hL2luc3RydW1lbnRhdGlvbi9kaXN0L2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGtDQUFrQztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLDRGQUE0RjtBQUN6SDtBQUNBO0FBQ0E7QUFDQSxvREFBb0Qsa0JBQWtCLGFBQWE7O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyxrSUFBb0I7QUFDOUMsNkJBQTZCLG1CQUFPLENBQUMsaU1BQWdDOztBQUVyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxhQUFhO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLG1CQUFPLENBQUMsa0lBQW9CO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaUNBQWlDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixhQUFhLEdBQUcsWUFBWSxJQUFJLGdCQUFnQjtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsYUFBYTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhCQUE4QixtQkFBTyxDQUFDLGlNQUFnQztBQUN0RTtBQUNBLE1BQU0sQ0FHTCIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS9AcHJpc21hK2luc3RydW1lbnRhdGlvbkA3LjYuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BwcmlzbWEvaW5zdHJ1bWVudGF0aW9uL2Rpc3QvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBpbmRleF9leHBvcnRzID0ge307XG5fX2V4cG9ydChpbmRleF9leHBvcnRzLCB7XG4gIFByaXNtYUluc3RydW1lbnRhdGlvbjogKCkgPT4gUHJpc21hSW5zdHJ1bWVudGF0aW9uLFxuICByZWdpc3Rlckluc3RydW1lbnRhdGlvbnM6ICgpID0+IGltcG9ydF9pbnN0cnVtZW50YXRpb24yLnJlZ2lzdGVySW5zdHJ1bWVudGF0aW9uc1xufSk7XG5tb2R1bGUuZXhwb3J0cyA9IF9fdG9Db21tb25KUyhpbmRleF9leHBvcnRzKTtcblxuLy8gc3JjL1ByaXNtYUluc3RydW1lbnRhdGlvbi50c1xudmFyIGltcG9ydF9hcGkyID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2FwaVwiKTtcbnZhciBpbXBvcnRfaW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiKTtcblxuLy8gLi4vaW5zdHJ1bWVudGF0aW9uLWNvbnRyYWN0L2Rpc3QvaW5kZXgubWpzXG52YXIgcGFja2FnZV9kZWZhdWx0ID0ge1xuICBuYW1lOiBcIkBwcmlzbWEvaW5zdHJ1bWVudGF0aW9uLWNvbnRyYWN0XCIsXG4gIHZlcnNpb246IFwiNy42LjBcIixcbiAgZGVzY3JpcHRpb246IFwiU2hhcmVkIHR5cGVzIGFuZCB1dGlsaXRpZXMgZm9yIFByaXNtYSBpbnN0cnVtZW50YXRpb25cIixcbiAgbWFpbjogXCJkaXN0L2luZGV4LmpzXCIsXG4gIG1vZHVsZTogXCJkaXN0L2luZGV4Lm1qc1wiLFxuICB0eXBlczogXCJkaXN0L2luZGV4LmQudHNcIixcbiAgZXhwb3J0czoge1xuICAgIFwiLlwiOiB7XG4gICAgICByZXF1aXJlOiB7XG4gICAgICAgIHR5cGVzOiBcIi4vZGlzdC9pbmRleC5kLnRzXCIsXG4gICAgICAgIGRlZmF1bHQ6IFwiLi9kaXN0L2luZGV4LmpzXCJcbiAgICAgIH0sXG4gICAgICBpbXBvcnQ6IHtcbiAgICAgICAgdHlwZXM6IFwiLi9kaXN0L2luZGV4LmQubXRzXCIsXG4gICAgICAgIGRlZmF1bHQ6IFwiLi9kaXN0L2luZGV4Lm1qc1wiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBsaWNlbnNlOiBcIkFwYWNoZS0yLjBcIixcbiAgaG9tZXBhZ2U6IFwiaHR0cHM6Ly93d3cucHJpc21hLmlvXCIsXG4gIHJlcG9zaXRvcnk6IHtcbiAgICB0eXBlOiBcImdpdFwiLFxuICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcHJpc21hL3ByaXNtYS5naXRcIixcbiAgICBkaXJlY3Rvcnk6IFwicGFja2FnZXMvaW5zdHJ1bWVudGF0aW9uLWNvbnRyYWN0XCJcbiAgfSxcbiAgYnVnczogXCJodHRwczovL2dpdGh1Yi5jb20vcHJpc21hL3ByaXNtYS9pc3N1ZXNcIixcbiAgc2NyaXB0czoge1xuICAgIGRldjogXCJERVY9dHJ1ZSB0c3ggaGVscGVycy9idWlsZC50c1wiLFxuICAgIGJ1aWxkOiBcInRzeCBoZWxwZXJzL2J1aWxkLnRzXCIsXG4gICAgcHJlcHVibGlzaE9ubHk6IFwicG5wbSBydW4gYnVpbGRcIixcbiAgICB0ZXN0OiBcInZpdGVzdCBydW5cIlxuICB9LFxuICBmaWxlczogW1xuICAgIFwiZGlzdFwiXG4gIF0sXG4gIHNpZGVFZmZlY3RzOiBmYWxzZSxcbiAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgXCJAb3BlbnRlbGVtZXRyeS9hcGlcIjogXCIxLjkuMFwiXG4gIH0sXG4gIHBlZXJEZXBlbmRlbmNpZXM6IHtcbiAgICBcIkBvcGVudGVsZW1ldHJ5L2FwaVwiOiBcIl4xLjhcIlxuICB9XG59O1xudmFyIG1ham9yVmVyc2lvbiA9IHBhY2thZ2VfZGVmYXVsdC52ZXJzaW9uLnNwbGl0KFwiLlwiKVswXTtcbnZhciBHTE9CQUxfSU5TVFJVTUVOVEFUSU9OX0tFWSA9IFwiUFJJU01BX0lOU1RSVU1FTlRBVElPTlwiO1xudmFyIEdMT0JBTF9WRVJTSU9ORURfSU5TVFJVTUVOVEFUSU9OX0tFWSA9IGBWJHttYWpvclZlcnNpb259X1BSSVNNQV9JTlNUUlVNRU5UQVRJT05gO1xudmFyIGdsb2JhbFRoaXNXaXRoUHJpc21hSW5zdHJ1bWVudGF0aW9uID0gZ2xvYmFsVGhpcztcbmZ1bmN0aW9uIGdldEdsb2JhbFRyYWNpbmdIZWxwZXIoKSB7XG4gIGNvbnN0IHZlcnNpb25lZEdsb2JhbCA9IGdsb2JhbFRoaXNXaXRoUHJpc21hSW5zdHJ1bWVudGF0aW9uW0dMT0JBTF9WRVJTSU9ORURfSU5TVFJVTUVOVEFUSU9OX0tFWV07XG4gIGlmICh2ZXJzaW9uZWRHbG9iYWw/LmhlbHBlcikge1xuICAgIHJldHVybiB2ZXJzaW9uZWRHbG9iYWwuaGVscGVyO1xuICB9XG4gIGNvbnN0IGZhbGxiYWNrR2xvYmFsID0gZ2xvYmFsVGhpc1dpdGhQcmlzbWFJbnN0cnVtZW50YXRpb25bR0xPQkFMX0lOU1RSVU1FTlRBVElPTl9LRVldO1xuICByZXR1cm4gZmFsbGJhY2tHbG9iYWw/LmhlbHBlcjtcbn1cbmZ1bmN0aW9uIHNldEdsb2JhbFRyYWNpbmdIZWxwZXIoaGVscGVyKSB7XG4gIGNvbnN0IGdsb2JhbFZhbHVlID0geyBoZWxwZXIgfTtcbiAgZ2xvYmFsVGhpc1dpdGhQcmlzbWFJbnN0cnVtZW50YXRpb25bR0xPQkFMX1ZFUlNJT05FRF9JTlNUUlVNRU5UQVRJT05fS0VZXSA9IGdsb2JhbFZhbHVlO1xuICBnbG9iYWxUaGlzV2l0aFByaXNtYUluc3RydW1lbnRhdGlvbltHTE9CQUxfSU5TVFJVTUVOVEFUSU9OX0tFWV0gPSBnbG9iYWxWYWx1ZTtcbn1cbmZ1bmN0aW9uIGNsZWFyR2xvYmFsVHJhY2luZ0hlbHBlcigpIHtcbiAgZGVsZXRlIGdsb2JhbFRoaXNXaXRoUHJpc21hSW5zdHJ1bWVudGF0aW9uW0dMT0JBTF9WRVJTSU9ORURfSU5TVFJVTUVOVEFUSU9OX0tFWV07XG4gIGRlbGV0ZSBnbG9iYWxUaGlzV2l0aFByaXNtYUluc3RydW1lbnRhdGlvbltHTE9CQUxfSU5TVFJVTUVOVEFUSU9OX0tFWV07XG59XG5cbi8vIHNyYy9BY3RpdmVUcmFjaW5nSGVscGVyLnRzXG52YXIgaW1wb3J0X2FwaSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9hcGlcIik7XG52YXIgc2hvd0FsbFRyYWNlcyA9IHByb2Nlc3MuZW52LlBSSVNNQV9TSE9XX0FMTF9UUkFDRVMgPT09IFwidHJ1ZVwiO1xudmFyIG5vblNhbXBsZWRUcmFjZVBhcmVudCA9IGAwMC0xMC0xMC0wMGA7XG5mdW5jdGlvbiBlbmdpbmVTcGFuS2luZFRvT3RlbFNwYW5LaW5kKGVuZ2luZVNwYW5LaW5kKSB7XG4gIHN3aXRjaCAoZW5naW5lU3BhbktpbmQpIHtcbiAgICBjYXNlIFwiY2xpZW50XCI6XG4gICAgICByZXR1cm4gaW1wb3J0X2FwaS5TcGFuS2luZC5DTElFTlQ7XG4gICAgY2FzZSBcImludGVybmFsXCI6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBpbXBvcnRfYXBpLlNwYW5LaW5kLklOVEVSTkFMO1xuICB9XG59XG52YXIgQWN0aXZlVHJhY2luZ0hlbHBlciA9IGNsYXNzIHtcbiAgdHJhY2VyUHJvdmlkZXI7XG4gIGlnbm9yZVNwYW5UeXBlcztcbiAgY29uc3RydWN0b3IoeyB0cmFjZXJQcm92aWRlciwgaWdub3JlU3BhblR5cGVzIH0pIHtcbiAgICB0aGlzLnRyYWNlclByb3ZpZGVyID0gdHJhY2VyUHJvdmlkZXI7XG4gICAgdGhpcy5pZ25vcmVTcGFuVHlwZXMgPSBpZ25vcmVTcGFuVHlwZXM7XG4gIH1cbiAgaXNFbmFibGVkKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGdldFRyYWNlUGFyZW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBzcGFuID0gaW1wb3J0X2FwaS50cmFjZS5nZXRTcGFuQ29udGV4dChjb250ZXh0ID8/IGltcG9ydF9hcGkuY29udGV4dC5hY3RpdmUoKSk7XG4gICAgaWYgKHNwYW4pIHtcbiAgICAgIHJldHVybiBgMDAtJHtzcGFuLnRyYWNlSWR9LSR7c3Bhbi5zcGFuSWR9LTAke3NwYW4udHJhY2VGbGFnc31gO1xuICAgIH1cbiAgICByZXR1cm4gbm9uU2FtcGxlZFRyYWNlUGFyZW50O1xuICB9XG4gIGRpc3BhdGNoRW5naW5lU3BhbnMoc3BhbnMpIHtcbiAgICBjb25zdCB0cmFjZXIgPSB0aGlzLnRyYWNlclByb3ZpZGVyLmdldFRyYWNlcihcInByaXNtYVwiKTtcbiAgICBjb25zdCBsaW5rSWRzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICBjb25zdCByb290cyA9IHNwYW5zLmZpbHRlcigoc3BhbikgPT4gc3Bhbi5wYXJlbnRJZCA9PT0gbnVsbCk7XG4gICAgZm9yIChjb25zdCByb290IG9mIHJvb3RzKSB7XG4gICAgICBkaXNwYXRjaEVuZ2luZVNwYW4odHJhY2VyLCByb290LCBzcGFucywgbGlua0lkcywgdGhpcy5pZ25vcmVTcGFuVHlwZXMpO1xuICAgIH1cbiAgfVxuICBnZXRBY3RpdmVDb250ZXh0KCkge1xuICAgIHJldHVybiBpbXBvcnRfYXBpLmNvbnRleHQuYWN0aXZlKCk7XG4gIH1cbiAgcnVuSW5DaGlsZFNwYW4ob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG9wdGlvbnMgPSB7IG5hbWU6IG9wdGlvbnMgfTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuaW50ZXJuYWwgJiYgIXNob3dBbGxUcmFjZXMpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cbiAgICBjb25zdCB0cmFjZXIgPSB0aGlzLnRyYWNlclByb3ZpZGVyLmdldFRyYWNlcihcInByaXNtYVwiKTtcbiAgICBjb25zdCBjb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0ID8/IHRoaXMuZ2V0QWN0aXZlQ29udGV4dCgpO1xuICAgIGNvbnN0IG5hbWUgPSBgcHJpc21hOmNsaWVudDoke29wdGlvbnMubmFtZX1gO1xuICAgIGlmIChzaG91bGRJZ25vcmVTcGFuKG5hbWUsIHRoaXMuaWdub3JlU3BhblR5cGVzKSkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHNwYW4gPSB0cmFjZXIuc3RhcnRTcGFuKG5hbWUsIG9wdGlvbnMsIGNvbnRleHQpO1xuICAgICAgcmV0dXJuIGVuZFNwYW4oc3BhbiwgY2FsbGJhY2soc3BhbiwgY29udGV4dCkpO1xuICAgIH1cbiAgICByZXR1cm4gdHJhY2VyLnN0YXJ0QWN0aXZlU3BhbihuYW1lLCBvcHRpb25zLCAoc3BhbikgPT4gZW5kU3BhbihzcGFuLCBjYWxsYmFjayhzcGFuLCBjb250ZXh0KSkpO1xuICB9XG59O1xuZnVuY3Rpb24gZGlzcGF0Y2hFbmdpbmVTcGFuKHRyYWNlciwgZW5naW5lU3BhbiwgYWxsU3BhbnMsIGxpbmtJZHMsIGlnbm9yZVNwYW5UeXBlcykge1xuICBpZiAoc2hvdWxkSWdub3JlU3BhbihlbmdpbmVTcGFuLm5hbWUsIGlnbm9yZVNwYW5UeXBlcykpIHJldHVybjtcbiAgY29uc3Qgc3Bhbk9wdGlvbnMgPSB7XG4gICAgYXR0cmlidXRlczogZW5naW5lU3Bhbi5hdHRyaWJ1dGVzLFxuICAgIGtpbmQ6IGVuZ2luZVNwYW5LaW5kVG9PdGVsU3BhbktpbmQoZW5naW5lU3Bhbi5raW5kKSxcbiAgICBzdGFydFRpbWU6IGVuZ2luZVNwYW4uc3RhcnRUaW1lXG4gIH07XG4gIHRyYWNlci5zdGFydEFjdGl2ZVNwYW4oZW5naW5lU3Bhbi5uYW1lLCBzcGFuT3B0aW9ucywgKHNwYW4pID0+IHtcbiAgICBsaW5rSWRzLnNldChlbmdpbmVTcGFuLmlkLCBzcGFuLnNwYW5Db250ZXh0KCkuc3BhbklkKTtcbiAgICBpZiAoZW5naW5lU3Bhbi5saW5rcykge1xuICAgICAgc3Bhbi5hZGRMaW5rcyhcbiAgICAgICAgZW5naW5lU3Bhbi5saW5rcy5mbGF0TWFwKChsaW5rKSA9PiB7XG4gICAgICAgICAgY29uc3QgbGlua2VkSWQgPSBsaW5rSWRzLmdldChsaW5rKTtcbiAgICAgICAgICBpZiAoIWxpbmtlZElkKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgIHNwYW5JZDogbGlua2VkSWQsXG4gICAgICAgICAgICAgIHRyYWNlSWQ6IHNwYW4uc3BhbkNvbnRleHQoKS50cmFjZUlkLFxuICAgICAgICAgICAgICB0cmFjZUZsYWdzOiBzcGFuLnNwYW5Db250ZXh0KCkudHJhY2VGbGFnc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZHJlbiA9IGFsbFNwYW5zLmZpbHRlcigocykgPT4gcy5wYXJlbnRJZCA9PT0gZW5naW5lU3Bhbi5pZCk7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgZGlzcGF0Y2hFbmdpbmVTcGFuKHRyYWNlciwgY2hpbGQsIGFsbFNwYW5zLCBsaW5rSWRzLCBpZ25vcmVTcGFuVHlwZXMpO1xuICAgIH1cbiAgICBzcGFuLmVuZChlbmdpbmVTcGFuLmVuZFRpbWUpO1xuICB9KTtcbn1cbmZ1bmN0aW9uIGVuZFNwYW4oc3BhbiwgcmVzdWx0KSB7XG4gIGlmIChpc1Byb21pc2VMaWtlKHJlc3VsdCkpIHtcbiAgICByZXR1cm4gcmVzdWx0LnRoZW4oXG4gICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIChyZWFzb24pID0+IHtcbiAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgdGhyb3cgcmVhc29uO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgc3Bhbi5lbmQoKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGlzUHJvbWlzZUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlW1widGhlblwiXSA9PT0gXCJmdW5jdGlvblwiO1xufVxuZnVuY3Rpb24gc2hvdWxkSWdub3JlU3BhbihzcGFuTmFtZSwgaWdub3JlU3BhblR5cGVzKSB7XG4gIHJldHVybiBpZ25vcmVTcGFuVHlwZXMuc29tZShcbiAgICAocGF0dGVybikgPT4gdHlwZW9mIHBhdHRlcm4gPT09IFwic3RyaW5nXCIgPyBwYXR0ZXJuID09PSBzcGFuTmFtZSA6IHBhdHRlcm4udGVzdChzcGFuTmFtZSlcbiAgKTtcbn1cblxuLy8gcGFja2FnZS5qc29uXG52YXIgcGFja2FnZV9kZWZhdWx0MiA9IHtcbiAgbmFtZTogXCJAcHJpc21hL2luc3RydW1lbnRhdGlvblwiLFxuICB2ZXJzaW9uOiBcIjcuNi4wXCIsXG4gIGRlc2NyaXB0aW9uOiBcIk9wZW5UZWxlbWV0cnkgY29tcGxpYW50IGluc3RydW1lbnRhdGlvbiBmb3IgUHJpc21hIENsaWVudFwiLFxuICBtYWluOiBcImRpc3QvaW5kZXguanNcIixcbiAgbW9kdWxlOiBcImRpc3QvaW5kZXgubWpzXCIsXG4gIHR5cGVzOiBcImRpc3QvaW5kZXguZC50c1wiLFxuICBleHBvcnRzOiB7XG4gICAgXCIuXCI6IHtcbiAgICAgIHJlcXVpcmU6IHtcbiAgICAgICAgdHlwZXM6IFwiLi9kaXN0L2luZGV4LmQudHNcIixcbiAgICAgICAgZGVmYXVsdDogXCIuL2Rpc3QvaW5kZXguanNcIlxuICAgICAgfSxcbiAgICAgIGltcG9ydDoge1xuICAgICAgICB0eXBlczogXCIuL2Rpc3QvaW5kZXguZC50c1wiLFxuICAgICAgICBkZWZhdWx0OiBcIi4vZGlzdC9pbmRleC5tanNcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgbGljZW5zZTogXCJBcGFjaGUtMi4wXCIsXG4gIGhvbWVwYWdlOiBcImh0dHBzOi8vd3d3LnByaXNtYS5pb1wiLFxuICByZXBvc2l0b3J5OiB7XG4gICAgdHlwZTogXCJnaXRcIixcbiAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3ByaXNtYS9wcmlzbWEuZ2l0XCIsXG4gICAgZGlyZWN0b3J5OiBcInBhY2thZ2VzL2luc3RydW1lbnRhdGlvblwiXG4gIH0sXG4gIGJ1Z3M6IFwiaHR0cHM6Ly9naXRodWIuY29tL3ByaXNtYS9wcmlzbWEvaXNzdWVzXCIsXG4gIGRldkRlcGVuZGVuY2llczoge1xuICAgIFwiQG9wZW50ZWxlbWV0cnkvYXBpXCI6IFwiMS45LjBcIixcbiAgICBcIkBwcmlzbWEvaW5zdHJ1bWVudGF0aW9uLWNvbnRyYWN0XCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB0eXBlcy9ub2RlXCI6IFwifjIwLjE5LjI0XCIsXG4gICAgdHlwZXNjcmlwdDogXCI1LjQuNVwiXG4gIH0sXG4gIGRlcGVuZGVuY2llczoge1xuICAgIFwiQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uXCI6IFwiXjAuMjA3LjBcIlxuICB9LFxuICBwZWVyRGVwZW5kZW5jaWVzOiB7XG4gICAgXCJAb3BlbnRlbGVtZXRyeS9hcGlcIjogXCJeMS44XCJcbiAgfSxcbiAgZmlsZXM6IFtcbiAgICBcImRpc3RcIlxuICBdLFxuICBrZXl3b3JkczogW1xuICAgIFwicHJpc21hXCIsXG4gICAgXCJpbnN0cnVtZW50YXRpb25cIixcbiAgICBcIm9wZW50ZWxlbWV0cnlcIixcbiAgICBcIm90ZWxcIlxuICBdLFxuICBzY3JpcHRzOiB7XG4gICAgZGV2OiBcIkRFVj10cnVlIHRzeCBoZWxwZXJzL2J1aWxkLnRzXCIsXG4gICAgYnVpbGQ6IFwidHN4IGhlbHBlcnMvYnVpbGQudHNcIixcbiAgICBwcmVwdWJsaXNoT25seTogXCJwbnBtIHJ1biBidWlsZFwiLFxuICAgIHRlc3Q6IFwidml0ZXN0IHJ1blwiXG4gIH0sXG4gIHNpZGVFZmZlY3RzOiBmYWxzZVxufTtcblxuLy8gc3JjL2NvbnN0YW50cy50c1xudmFyIFZFUlNJT04gPSBwYWNrYWdlX2RlZmF1bHQyLnZlcnNpb247XG52YXIgTkFNRSA9IHBhY2thZ2VfZGVmYXVsdDIubmFtZTtcbnZhciBNT0RVTEVfTkFNRSA9IFwiQHByaXNtYS9jbGllbnRcIjtcblxuLy8gc3JjL1ByaXNtYUluc3RydW1lbnRhdGlvbi50c1xudmFyIFByaXNtYUluc3RydW1lbnRhdGlvbiA9IGNsYXNzIGV4dGVuZHMgaW1wb3J0X2luc3RydW1lbnRhdGlvbi5JbnN0cnVtZW50YXRpb25CYXNlIHtcbiAgdHJhY2VyUHJvdmlkZXI7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZyA9IHt9KSB7XG4gICAgc3VwZXIoTkFNRSwgVkVSU0lPTiwgY29uZmlnKTtcbiAgfVxuICBzZXRUcmFjZXJQcm92aWRlcih0cmFjZXJQcm92aWRlcikge1xuICAgIHRoaXMudHJhY2VyUHJvdmlkZXIgPSB0cmFjZXJQcm92aWRlcjtcbiAgfVxuICBpbml0KCkge1xuICAgIGNvbnN0IG1vZHVsZTIgPSBuZXcgaW1wb3J0X2luc3RydW1lbnRhdGlvbi5JbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRGVmaW5pdGlvbihNT0RVTEVfTkFNRSwgW1ZFUlNJT05dKTtcbiAgICByZXR1cm4gW21vZHVsZTJdO1xuICB9XG4gIGVuYWJsZSgpIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLl9jb25maWc7XG4gICAgc2V0R2xvYmFsVHJhY2luZ0hlbHBlcihcbiAgICAgIG5ldyBBY3RpdmVUcmFjaW5nSGVscGVyKHtcbiAgICAgICAgdHJhY2VyUHJvdmlkZXI6IHRoaXMudHJhY2VyUHJvdmlkZXIgPz8gaW1wb3J0X2FwaTIudHJhY2UuZ2V0VHJhY2VyUHJvdmlkZXIoKSxcbiAgICAgICAgaWdub3JlU3BhblR5cGVzOiBjb25maWcuaWdub3JlU3BhblR5cGVzID8/IFtdXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgZGlzYWJsZSgpIHtcbiAgICBjbGVhckdsb2JhbFRyYWNpbmdIZWxwZXIoKTtcbiAgfVxuICBpc0VuYWJsZWQoKSB7XG4gICAgcmV0dXJuIGdldEdsb2JhbFRyYWNpbmdIZWxwZXIoKSAhPT0gdm9pZCAwO1xuICB9XG59O1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBpbXBvcnRfaW5zdHJ1bWVudGF0aW9uMiA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb25cIik7XG4vLyBBbm5vdGF0ZSB0aGUgQ29tbW9uSlMgZXhwb3J0IG5hbWVzIGZvciBFU00gaW1wb3J0IGluIG5vZGU6XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgUHJpc21hSW5zdHJ1bWVudGF0aW9uLFxuICByZWdpc3Rlckluc3RydW1lbnRhdGlvbnNcbn0pO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@prisma+instrumentation@7.6.0_@opentelemetry+api@1.9.1/node_modules/@prisma/instrumentation/dist/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/.pnpm/@prisma+instrumentation@7.6.0_@opentelemetry+api@1.9.1/node_modules/@prisma/instrumentation/dist/index.js":
|
|
/*!**************************************************************************************************************************************!*\
|
|
!*** ./node_modules/.pnpm/@prisma+instrumentation@7.6.0_@opentelemetry+api@1.9.1/node_modules/@prisma/instrumentation/dist/index.js ***!
|
|
\**************************************************************************************************************************************/
|
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n PrismaInstrumentation: () => PrismaInstrumentation,\n registerInstrumentations: () => import_instrumentation2.registerInstrumentations\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/PrismaInstrumentation.ts\nvar import_api2 = __webpack_require__(/*! @opentelemetry/api */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nvar import_instrumentation = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.207.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\n\n// ../instrumentation-contract/dist/index.mjs\nvar package_default = {\n name: \"@prisma/instrumentation-contract\",\n version: \"7.6.0\",\n description: \"Shared types and utilities for Prisma instrumentation\",\n main: \"dist/index.js\",\n module: \"dist/index.mjs\",\n types: \"dist/index.d.ts\",\n exports: {\n \".\": {\n require: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.js\"\n },\n import: {\n types: \"./dist/index.d.mts\",\n default: \"./dist/index.mjs\"\n }\n }\n },\n license: \"Apache-2.0\",\n homepage: \"https://www.prisma.io\",\n repository: {\n type: \"git\",\n url: \"https://github.com/prisma/prisma.git\",\n directory: \"packages/instrumentation-contract\"\n },\n bugs: \"https://github.com/prisma/prisma/issues\",\n scripts: {\n dev: \"DEV=true tsx helpers/build.ts\",\n build: \"tsx helpers/build.ts\",\n prepublishOnly: \"pnpm run build\",\n test: \"vitest run\"\n },\n files: [\n \"dist\"\n ],\n sideEffects: false,\n devDependencies: {\n \"@opentelemetry/api\": \"1.9.0\"\n },\n peerDependencies: {\n \"@opentelemetry/api\": \"^1.8\"\n }\n};\nvar majorVersion = package_default.version.split(\".\")[0];\nvar GLOBAL_INSTRUMENTATION_KEY = \"PRISMA_INSTRUMENTATION\";\nvar GLOBAL_VERSIONED_INSTRUMENTATION_KEY = `V${majorVersion}_PRISMA_INSTRUMENTATION`;\nvar globalThisWithPrismaInstrumentation = globalThis;\nfunction getGlobalTracingHelper() {\n const versionedGlobal = globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n if (versionedGlobal?.helper) {\n return versionedGlobal.helper;\n }\n const fallbackGlobal = globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n return fallbackGlobal?.helper;\n}\nfunction setGlobalTracingHelper(helper) {\n const globalValue = { helper };\n globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = globalValue;\n globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = globalValue;\n}\nfunction clearGlobalTracingHelper() {\n delete globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n delete globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n}\n\n// src/ActiveTracingHelper.ts\nvar import_api = __webpack_require__(/*! @opentelemetry/api */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nvar showAllTraces = process.env.PRISMA_SHOW_ALL_TRACES === \"true\";\nvar nonSampledTraceParent = `00-10-10-00`;\nfunction engineSpanKindToOtelSpanKind(engineSpanKind) {\n switch (engineSpanKind) {\n case \"client\":\n return import_api.SpanKind.CLIENT;\n case \"internal\":\n default:\n return import_api.SpanKind.INTERNAL;\n }\n}\nvar ActiveTracingHelper = class {\n tracerProvider;\n ignoreSpanTypes;\n constructor({ tracerProvider, ignoreSpanTypes }) {\n this.tracerProvider = tracerProvider;\n this.ignoreSpanTypes = ignoreSpanTypes;\n }\n isEnabled() {\n return true;\n }\n getTraceParent(context) {\n const span = import_api.trace.getSpanContext(context ?? import_api.context.active());\n if (span) {\n return `00-${span.traceId}-${span.spanId}-0${span.traceFlags}`;\n }\n return nonSampledTraceParent;\n }\n dispatchEngineSpans(spans) {\n const tracer = this.tracerProvider.getTracer(\"prisma\");\n const linkIds = /* @__PURE__ */ new Map();\n const roots = spans.filter((span) => span.parentId === null);\n for (const root of roots) {\n dispatchEngineSpan(tracer, root, spans, linkIds, this.ignoreSpanTypes);\n }\n }\n getActiveContext() {\n return import_api.context.active();\n }\n runInChildSpan(options, callback) {\n if (typeof options === \"string\") {\n options = { name: options };\n }\n if (options.internal && !showAllTraces) {\n return callback();\n }\n const tracer = this.tracerProvider.getTracer(\"prisma\");\n const context = options.context ?? this.getActiveContext();\n const name = `prisma:client:${options.name}`;\n if (shouldIgnoreSpan(name, this.ignoreSpanTypes)) {\n return callback();\n }\n if (options.active === false) {\n const span = tracer.startSpan(name, options, context);\n return endSpan(span, callback(span, context));\n }\n return tracer.startActiveSpan(name, options, (span) => endSpan(span, callback(span, context)));\n }\n};\nfunction dispatchEngineSpan(tracer, engineSpan, allSpans, linkIds, ignoreSpanTypes) {\n if (shouldIgnoreSpan(engineSpan.name, ignoreSpanTypes)) return;\n const spanOptions = {\n attributes: engineSpan.attributes,\n kind: engineSpanKindToOtelSpanKind(engineSpan.kind),\n startTime: engineSpan.startTime\n };\n tracer.startActiveSpan(engineSpan.name, spanOptions, (span) => {\n linkIds.set(engineSpan.id, span.spanContext().spanId);\n if (engineSpan.links) {\n span.addLinks(\n engineSpan.links.flatMap((link) => {\n const linkedId = linkIds.get(link);\n if (!linkedId) {\n return [];\n }\n return {\n context: {\n spanId: linkedId,\n traceId: span.spanContext().traceId,\n traceFlags: span.spanContext().traceFlags\n }\n };\n })\n );\n }\n const children = allSpans.filter((s) => s.parentId === engineSpan.id);\n for (const child of children) {\n dispatchEngineSpan(tracer, child, allSpans, linkIds, ignoreSpanTypes);\n }\n span.end(engineSpan.endTime);\n });\n}\nfunction endSpan(span, result) {\n if (isPromiseLike(result)) {\n return result.then(\n (value) => {\n span.end();\n return value;\n },\n (reason) => {\n span.end();\n throw reason;\n }\n );\n }\n span.end();\n return result;\n}\nfunction isPromiseLike(value) {\n return value != null && typeof value[\"then\"] === \"function\";\n}\nfunction shouldIgnoreSpan(spanName, ignoreSpanTypes) {\n return ignoreSpanTypes.some(\n (pattern) => typeof pattern === \"string\" ? pattern === spanName : pattern.test(spanName)\n );\n}\n\n// package.json\nvar package_default2 = {\n name: \"@prisma/instrumentation\",\n version: \"7.6.0\",\n description: \"OpenTelemetry compliant instrumentation for Prisma Client\",\n main: \"dist/index.js\",\n module: \"dist/index.mjs\",\n types: \"dist/index.d.ts\",\n exports: {\n \".\": {\n require: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.js\"\n },\n import: {\n types: \"./dist/index.d.ts\",\n default: \"./dist/index.mjs\"\n }\n }\n },\n license: \"Apache-2.0\",\n homepage: \"https://www.prisma.io\",\n repository: {\n type: \"git\",\n url: \"https://github.com/prisma/prisma.git\",\n directory: \"packages/instrumentation\"\n },\n bugs: \"https://github.com/prisma/prisma/issues\",\n devDependencies: {\n \"@opentelemetry/api\": \"1.9.0\",\n \"@prisma/instrumentation-contract\": \"workspace:*\",\n \"@types/node\": \"~20.19.24\",\n typescript: \"5.4.5\"\n },\n dependencies: {\n \"@opentelemetry/instrumentation\": \"^0.207.0\"\n },\n peerDependencies: {\n \"@opentelemetry/api\": \"^1.8\"\n },\n files: [\n \"dist\"\n ],\n keywords: [\n \"prisma\",\n \"instrumentation\",\n \"opentelemetry\",\n \"otel\"\n ],\n scripts: {\n dev: \"DEV=true tsx helpers/build.ts\",\n build: \"tsx helpers/build.ts\",\n prepublishOnly: \"pnpm run build\",\n test: \"vitest run\"\n },\n sideEffects: false\n};\n\n// src/constants.ts\nvar VERSION = package_default2.version;\nvar NAME = package_default2.name;\nvar MODULE_NAME = \"@prisma/client\";\n\n// src/PrismaInstrumentation.ts\nvar PrismaInstrumentation = class extends import_instrumentation.InstrumentationBase {\n tracerProvider;\n constructor(config = {}) {\n super(NAME, VERSION, config);\n }\n setTracerProvider(tracerProvider) {\n this.tracerProvider = tracerProvider;\n }\n init() {\n const module2 = new import_instrumentation.InstrumentationNodeModuleDefinition(MODULE_NAME, [VERSION]);\n return [module2];\n }\n enable() {\n const config = this._config;\n setGlobalTracingHelper(\n new ActiveTracingHelper({\n tracerProvider: this.tracerProvider ?? import_api2.trace.getTracerProvider(),\n ignoreSpanTypes: config.ignoreSpanTypes ?? []\n })\n );\n }\n disable() {\n clearGlobalTracingHelper();\n }\n isEnabled() {\n return getGlobalTracingHelper() !== void 0;\n }\n};\n\n// src/index.ts\nvar import_instrumentation2 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.207.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQHByaXNtYStpbnN0cnVtZW50YXRpb25ANy42LjBfQG9wZW50ZWxlbWV0cnkrYXBpQDEuOS4xL25vZGVfbW9kdWxlcy9AcHJpc21hL2luc3RydW1lbnRhdGlvbi9kaXN0L2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGtDQUFrQztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLDRGQUE0RjtBQUN6SDtBQUNBO0FBQ0E7QUFDQSxvREFBb0Qsa0JBQWtCLGFBQWE7O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyxrSUFBb0I7QUFDOUMsNkJBQTZCLG1CQUFPLENBQUMsaU1BQWdDOztBQUVyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxhQUFhO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLG1CQUFPLENBQUMsa0lBQW9CO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaUNBQWlDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixhQUFhLEdBQUcsWUFBWSxJQUFJLGdCQUFnQjtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsYUFBYTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhCQUE4QixtQkFBTyxDQUFDLGlNQUFnQztBQUN0RTtBQUNBLE1BQU0sQ0FHTCIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS9AcHJpc21hK2luc3RydW1lbnRhdGlvbkA3LjYuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BwcmlzbWEvaW5zdHJ1bWVudGF0aW9uL2Rpc3QvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBpbmRleF9leHBvcnRzID0ge307XG5fX2V4cG9ydChpbmRleF9leHBvcnRzLCB7XG4gIFByaXNtYUluc3RydW1lbnRhdGlvbjogKCkgPT4gUHJpc21hSW5zdHJ1bWVudGF0aW9uLFxuICByZWdpc3Rlckluc3RydW1lbnRhdGlvbnM6ICgpID0+IGltcG9ydF9pbnN0cnVtZW50YXRpb24yLnJlZ2lzdGVySW5zdHJ1bWVudGF0aW9uc1xufSk7XG5tb2R1bGUuZXhwb3J0cyA9IF9fdG9Db21tb25KUyhpbmRleF9leHBvcnRzKTtcblxuLy8gc3JjL1ByaXNtYUluc3RydW1lbnRhdGlvbi50c1xudmFyIGltcG9ydF9hcGkyID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2FwaVwiKTtcbnZhciBpbXBvcnRfaW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiKTtcblxuLy8gLi4vaW5zdHJ1bWVudGF0aW9uLWNvbnRyYWN0L2Rpc3QvaW5kZXgubWpzXG52YXIgcGFja2FnZV9kZWZhdWx0ID0ge1xuICBuYW1lOiBcIkBwcmlzbWEvaW5zdHJ1bWVudGF0aW9uLWNvbnRyYWN0XCIsXG4gIHZlcnNpb246IFwiNy42LjBcIixcbiAgZGVzY3JpcHRpb246IFwiU2hhcmVkIHR5cGVzIGFuZCB1dGlsaXRpZXMgZm9yIFByaXNtYSBpbnN0cnVtZW50YXRpb25cIixcbiAgbWFpbjogXCJkaXN0L2luZGV4LmpzXCIsXG4gIG1vZHVsZTogXCJkaXN0L2luZGV4Lm1qc1wiLFxuICB0eXBlczogXCJkaXN0L2luZGV4LmQudHNcIixcbiAgZXhwb3J0czoge1xuICAgIFwiLlwiOiB7XG4gICAgICByZXF1aXJlOiB7XG4gICAgICAgIHR5cGVzOiBcIi4vZGlzdC9pbmRleC5kLnRzXCIsXG4gICAgICAgIGRlZmF1bHQ6IFwiLi9kaXN0L2luZGV4LmpzXCJcbiAgICAgIH0sXG4gICAgICBpbXBvcnQ6IHtcbiAgICAgICAgdHlwZXM6IFwiLi9kaXN0L2luZGV4LmQubXRzXCIsXG4gICAgICAgIGRlZmF1bHQ6IFwiLi9kaXN0L2luZGV4Lm1qc1wiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBsaWNlbnNlOiBcIkFwYWNoZS0yLjBcIixcbiAgaG9tZXBhZ2U6IFwiaHR0cHM6Ly93d3cucHJpc21hLmlvXCIsXG4gIHJlcG9zaXRvcnk6IHtcbiAgICB0eXBlOiBcImdpdFwiLFxuICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcHJpc21hL3ByaXNtYS5naXRcIixcbiAgICBkaXJlY3Rvcnk6IFwicGFja2FnZXMvaW5zdHJ1bWVudGF0aW9uLWNvbnRyYWN0XCJcbiAgfSxcbiAgYnVnczogXCJodHRwczovL2dpdGh1Yi5jb20vcHJpc21hL3ByaXNtYS9pc3N1ZXNcIixcbiAgc2NyaXB0czoge1xuICAgIGRldjogXCJERVY9dHJ1ZSB0c3ggaGVscGVycy9idWlsZC50c1wiLFxuICAgIGJ1aWxkOiBcInRzeCBoZWxwZXJzL2J1aWxkLnRzXCIsXG4gICAgcHJlcHVibGlzaE9ubHk6IFwicG5wbSBydW4gYnVpbGRcIixcbiAgICB0ZXN0OiBcInZpdGVzdCBydW5cIlxuICB9LFxuICBmaWxlczogW1xuICAgIFwiZGlzdFwiXG4gIF0sXG4gIHNpZGVFZmZlY3RzOiBmYWxzZSxcbiAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgXCJAb3BlbnRlbGVtZXRyeS9hcGlcIjogXCIxLjkuMFwiXG4gIH0sXG4gIHBlZXJEZXBlbmRlbmNpZXM6IHtcbiAgICBcIkBvcGVudGVsZW1ldHJ5L2FwaVwiOiBcIl4xLjhcIlxuICB9XG59O1xudmFyIG1ham9yVmVyc2lvbiA9IHBhY2thZ2VfZGVmYXVsdC52ZXJzaW9uLnNwbGl0KFwiLlwiKVswXTtcbnZhciBHTE9CQUxfSU5TVFJVTUVOVEFUSU9OX0tFWSA9IFwiUFJJU01BX0lOU1RSVU1FTlRBVElPTlwiO1xudmFyIEdMT0JBTF9WRVJTSU9ORURfSU5TVFJVTUVOVEFUSU9OX0tFWSA9IGBWJHttYWpvclZlcnNpb259X1BSSVNNQV9JTlNUUlVNRU5UQVRJT05gO1xudmFyIGdsb2JhbFRoaXNXaXRoUHJpc21hSW5zdHJ1bWVudGF0aW9uID0gZ2xvYmFsVGhpcztcbmZ1bmN0aW9uIGdldEdsb2JhbFRyYWNpbmdIZWxwZXIoKSB7XG4gIGNvbnN0IHZlcnNpb25lZEdsb2JhbCA9IGdsb2JhbFRoaXNXaXRoUHJpc21hSW5zdHJ1bWVudGF0aW9uW0dMT0JBTF9WRVJTSU9ORURfSU5TVFJVTUVOVEFUSU9OX0tFWV07XG4gIGlmICh2ZXJzaW9uZWRHbG9iYWw/LmhlbHBlcikge1xuICAgIHJldHVybiB2ZXJzaW9uZWRHbG9iYWwuaGVscGVyO1xuICB9XG4gIGNvbnN0IGZhbGxiYWNrR2xvYmFsID0gZ2xvYmFsVGhpc1dpdGhQcmlzbWFJbnN0cnVtZW50YXRpb25bR0xPQkFMX0lOU1RSVU1FTlRBVElPTl9LRVldO1xuICByZXR1cm4gZmFsbGJhY2tHbG9iYWw/LmhlbHBlcjtcbn1cbmZ1bmN0aW9uIHNldEdsb2JhbFRyYWNpbmdIZWxwZXIoaGVscGVyKSB7XG4gIGNvbnN0IGdsb2JhbFZhbHVlID0geyBoZWxwZXIgfTtcbiAgZ2xvYmFsVGhpc1dpdGhQcmlzbWFJbnN0cnVtZW50YXRpb25bR0xPQkFMX1ZFUlNJT05FRF9JTlNUUlVNRU5UQVRJT05fS0VZXSA9IGdsb2JhbFZhbHVlO1xuICBnbG9iYWxUaGlzV2l0aFByaXNtYUluc3RydW1lbnRhdGlvbltHTE9CQUxfSU5TVFJVTUVOVEFUSU9OX0tFWV0gPSBnbG9iYWxWYWx1ZTtcbn1cbmZ1bmN0aW9uIGNsZWFyR2xvYmFsVHJhY2luZ0hlbHBlcigpIHtcbiAgZGVsZXRlIGdsb2JhbFRoaXNXaXRoUHJpc21hSW5zdHJ1bWVudGF0aW9uW0dMT0JBTF9WRVJTSU9ORURfSU5TVFJVTUVOVEFUSU9OX0tFWV07XG4gIGRlbGV0ZSBnbG9iYWxUaGlzV2l0aFByaXNtYUluc3RydW1lbnRhdGlvbltHTE9CQUxfSU5TVFJVTUVOVEFUSU9OX0tFWV07XG59XG5cbi8vIHNyYy9BY3RpdmVUcmFjaW5nSGVscGVyLnRzXG52YXIgaW1wb3J0X2FwaSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9hcGlcIik7XG52YXIgc2hvd0FsbFRyYWNlcyA9IHByb2Nlc3MuZW52LlBSSVNNQV9TSE9XX0FMTF9UUkFDRVMgPT09IFwidHJ1ZVwiO1xudmFyIG5vblNhbXBsZWRUcmFjZVBhcmVudCA9IGAwMC0xMC0xMC0wMGA7XG5mdW5jdGlvbiBlbmdpbmVTcGFuS2luZFRvT3RlbFNwYW5LaW5kKGVuZ2luZVNwYW5LaW5kKSB7XG4gIHN3aXRjaCAoZW5naW5lU3BhbktpbmQpIHtcbiAgICBjYXNlIFwiY2xpZW50XCI6XG4gICAgICByZXR1cm4gaW1wb3J0X2FwaS5TcGFuS2luZC5DTElFTlQ7XG4gICAgY2FzZSBcImludGVybmFsXCI6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBpbXBvcnRfYXBpLlNwYW5LaW5kLklOVEVSTkFMO1xuICB9XG59XG52YXIgQWN0aXZlVHJhY2luZ0hlbHBlciA9IGNsYXNzIHtcbiAgdHJhY2VyUHJvdmlkZXI7XG4gIGlnbm9yZVNwYW5UeXBlcztcbiAgY29uc3RydWN0b3IoeyB0cmFjZXJQcm92aWRlciwgaWdub3JlU3BhblR5cGVzIH0pIHtcbiAgICB0aGlzLnRyYWNlclByb3ZpZGVyID0gdHJhY2VyUHJvdmlkZXI7XG4gICAgdGhpcy5pZ25vcmVTcGFuVHlwZXMgPSBpZ25vcmVTcGFuVHlwZXM7XG4gIH1cbiAgaXNFbmFibGVkKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGdldFRyYWNlUGFyZW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBzcGFuID0gaW1wb3J0X2FwaS50cmFjZS5nZXRTcGFuQ29udGV4dChjb250ZXh0ID8/IGltcG9ydF9hcGkuY29udGV4dC5hY3RpdmUoKSk7XG4gICAgaWYgKHNwYW4pIHtcbiAgICAgIHJldHVybiBgMDAtJHtzcGFuLnRyYWNlSWR9LSR7c3Bhbi5zcGFuSWR9LTAke3NwYW4udHJhY2VGbGFnc31gO1xuICAgIH1cbiAgICByZXR1cm4gbm9uU2FtcGxlZFRyYWNlUGFyZW50O1xuICB9XG4gIGRpc3BhdGNoRW5naW5lU3BhbnMoc3BhbnMpIHtcbiAgICBjb25zdCB0cmFjZXIgPSB0aGlzLnRyYWNlclByb3ZpZGVyLmdldFRyYWNlcihcInByaXNtYVwiKTtcbiAgICBjb25zdCBsaW5rSWRzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICBjb25zdCByb290cyA9IHNwYW5zLmZpbHRlcigoc3BhbikgPT4gc3Bhbi5wYXJlbnRJZCA9PT0gbnVsbCk7XG4gICAgZm9yIChjb25zdCByb290IG9mIHJvb3RzKSB7XG4gICAgICBkaXNwYXRjaEVuZ2luZVNwYW4odHJhY2VyLCByb290LCBzcGFucywgbGlua0lkcywgdGhpcy5pZ25vcmVTcGFuVHlwZXMpO1xuICAgIH1cbiAgfVxuICBnZXRBY3RpdmVDb250ZXh0KCkge1xuICAgIHJldHVybiBpbXBvcnRfYXBpLmNvbnRleHQuYWN0aXZlKCk7XG4gIH1cbiAgcnVuSW5DaGlsZFNwYW4ob3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG9wdGlvbnMgPSB7IG5hbWU6IG9wdGlvbnMgfTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuaW50ZXJuYWwgJiYgIXNob3dBbGxUcmFjZXMpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cbiAgICBjb25zdCB0cmFjZXIgPSB0aGlzLnRyYWNlclByb3ZpZGVyLmdldFRyYWNlcihcInByaXNtYVwiKTtcbiAgICBjb25zdCBjb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0ID8/IHRoaXMuZ2V0QWN0aXZlQ29udGV4dCgpO1xuICAgIGNvbnN0IG5hbWUgPSBgcHJpc21hOmNsaWVudDoke29wdGlvbnMubmFtZX1gO1xuICAgIGlmIChzaG91bGRJZ25vcmVTcGFuKG5hbWUsIHRoaXMuaWdub3JlU3BhblR5cGVzKSkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHNwYW4gPSB0cmFjZXIuc3RhcnRTcGFuKG5hbWUsIG9wdGlvbnMsIGNvbnRleHQpO1xuICAgICAgcmV0dXJuIGVuZFNwYW4oc3BhbiwgY2FsbGJhY2soc3BhbiwgY29udGV4dCkpO1xuICAgIH1cbiAgICByZXR1cm4gdHJhY2VyLnN0YXJ0QWN0aXZlU3BhbihuYW1lLCBvcHRpb25zLCAoc3BhbikgPT4gZW5kU3BhbihzcGFuLCBjYWxsYmFjayhzcGFuLCBjb250ZXh0KSkpO1xuICB9XG59O1xuZnVuY3Rpb24gZGlzcGF0Y2hFbmdpbmVTcGFuKHRyYWNlciwgZW5naW5lU3BhbiwgYWxsU3BhbnMsIGxpbmtJZHMsIGlnbm9yZVNwYW5UeXBlcykge1xuICBpZiAoc2hvdWxkSWdub3JlU3BhbihlbmdpbmVTcGFuLm5hbWUsIGlnbm9yZVNwYW5UeXBlcykpIHJldHVybjtcbiAgY29uc3Qgc3Bhbk9wdGlvbnMgPSB7XG4gICAgYXR0cmlidXRlczogZW5naW5lU3Bhbi5hdHRyaWJ1dGVzLFxuICAgIGtpbmQ6IGVuZ2luZVNwYW5LaW5kVG9PdGVsU3BhbktpbmQoZW5naW5lU3Bhbi5raW5kKSxcbiAgICBzdGFydFRpbWU6IGVuZ2luZVNwYW4uc3RhcnRUaW1lXG4gIH07XG4gIHRyYWNlci5zdGFydEFjdGl2ZVNwYW4oZW5naW5lU3Bhbi5uYW1lLCBzcGFuT3B0aW9ucywgKHNwYW4pID0+IHtcbiAgICBsaW5rSWRzLnNldChlbmdpbmVTcGFuLmlkLCBzcGFuLnNwYW5Db250ZXh0KCkuc3BhbklkKTtcbiAgICBpZiAoZW5naW5lU3Bhbi5saW5rcykge1xuICAgICAgc3Bhbi5hZGRMaW5rcyhcbiAgICAgICAgZW5naW5lU3Bhbi5saW5rcy5mbGF0TWFwKChsaW5rKSA9PiB7XG4gICAgICAgICAgY29uc3QgbGlua2VkSWQgPSBsaW5rSWRzLmdldChsaW5rKTtcbiAgICAgICAgICBpZiAoIWxpbmtlZElkKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgIHNwYW5JZDogbGlua2VkSWQsXG4gICAgICAgICAgICAgIHRyYWNlSWQ6IHNwYW4uc3BhbkNvbnRleHQoKS50cmFjZUlkLFxuICAgICAgICAgICAgICB0cmFjZUZsYWdzOiBzcGFuLnNwYW5Db250ZXh0KCkudHJhY2VGbGFnc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZHJlbiA9IGFsbFNwYW5zLmZpbHRlcigocykgPT4gcy5wYXJlbnRJZCA9PT0gZW5naW5lU3Bhbi5pZCk7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgZGlzcGF0Y2hFbmdpbmVTcGFuKHRyYWNlciwgY2hpbGQsIGFsbFNwYW5zLCBsaW5rSWRzLCBpZ25vcmVTcGFuVHlwZXMpO1xuICAgIH1cbiAgICBzcGFuLmVuZChlbmdpbmVTcGFuLmVuZFRpbWUpO1xuICB9KTtcbn1cbmZ1bmN0aW9uIGVuZFNwYW4oc3BhbiwgcmVzdWx0KSB7XG4gIGlmIChpc1Byb21pc2VMaWtlKHJlc3VsdCkpIHtcbiAgICByZXR1cm4gcmVzdWx0LnRoZW4oXG4gICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIChyZWFzb24pID0+IHtcbiAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgdGhyb3cgcmVhc29uO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgc3Bhbi5lbmQoKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGlzUHJvbWlzZUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlW1widGhlblwiXSA9PT0gXCJmdW5jdGlvblwiO1xufVxuZnVuY3Rpb24gc2hvdWxkSWdub3JlU3BhbihzcGFuTmFtZSwgaWdub3JlU3BhblR5cGVzKSB7XG4gIHJldHVybiBpZ25vcmVTcGFuVHlwZXMuc29tZShcbiAgICAocGF0dGVybikgPT4gdHlwZW9mIHBhdHRlcm4gPT09IFwic3RyaW5nXCIgPyBwYXR0ZXJuID09PSBzcGFuTmFtZSA6IHBhdHRlcm4udGVzdChzcGFuTmFtZSlcbiAgKTtcbn1cblxuLy8gcGFja2FnZS5qc29uXG52YXIgcGFja2FnZV9kZWZhdWx0MiA9IHtcbiAgbmFtZTogXCJAcHJpc21hL2luc3RydW1lbnRhdGlvblwiLFxuICB2ZXJzaW9uOiBcIjcuNi4wXCIsXG4gIGRlc2NyaXB0aW9uOiBcIk9wZW5UZWxlbWV0cnkgY29tcGxpYW50IGluc3RydW1lbnRhdGlvbiBmb3IgUHJpc21hIENsaWVudFwiLFxuICBtYWluOiBcImRpc3QvaW5kZXguanNcIixcbiAgbW9kdWxlOiBcImRpc3QvaW5kZXgubWpzXCIsXG4gIHR5cGVzOiBcImRpc3QvaW5kZXguZC50c1wiLFxuICBleHBvcnRzOiB7XG4gICAgXCIuXCI6IHtcbiAgICAgIHJlcXVpcmU6IHtcbiAgICAgICAgdHlwZXM6IFwiLi9kaXN0L2luZGV4LmQudHNcIixcbiAgICAgICAgZGVmYXVsdDogXCIuL2Rpc3QvaW5kZXguanNcIlxuICAgICAgfSxcbiAgICAgIGltcG9ydDoge1xuICAgICAgICB0eXBlczogXCIuL2Rpc3QvaW5kZXguZC50c1wiLFxuICAgICAgICBkZWZhdWx0OiBcIi4vZGlzdC9pbmRleC5tanNcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgbGljZW5zZTogXCJBcGFjaGUtMi4wXCIsXG4gIGhvbWVwYWdlOiBcImh0dHBzOi8vd3d3LnByaXNtYS5pb1wiLFxuICByZXBvc2l0b3J5OiB7XG4gICAgdHlwZTogXCJnaXRcIixcbiAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3ByaXNtYS9wcmlzbWEuZ2l0XCIsXG4gICAgZGlyZWN0b3J5OiBcInBhY2thZ2VzL2luc3RydW1lbnRhdGlvblwiXG4gIH0sXG4gIGJ1Z3M6IFwiaHR0cHM6Ly9naXRodWIuY29tL3ByaXNtYS9wcmlzbWEvaXNzdWVzXCIsXG4gIGRldkRlcGVuZGVuY2llczoge1xuICAgIFwiQG9wZW50ZWxlbWV0cnkvYXBpXCI6IFwiMS45LjBcIixcbiAgICBcIkBwcmlzbWEvaW5zdHJ1bWVudGF0aW9uLWNvbnRyYWN0XCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkB0eXBlcy9ub2RlXCI6IFwifjIwLjE5LjI0XCIsXG4gICAgdHlwZXNjcmlwdDogXCI1LjQuNVwiXG4gIH0sXG4gIGRlcGVuZGVuY2llczoge1xuICAgIFwiQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uXCI6IFwiXjAuMjA3LjBcIlxuICB9LFxuICBwZWVyRGVwZW5kZW5jaWVzOiB7XG4gICAgXCJAb3BlbnRlbGVtZXRyeS9hcGlcIjogXCJeMS44XCJcbiAgfSxcbiAgZmlsZXM6IFtcbiAgICBcImRpc3RcIlxuICBdLFxuICBrZXl3b3JkczogW1xuICAgIFwicHJpc21hXCIsXG4gICAgXCJpbnN0cnVtZW50YXRpb25cIixcbiAgICBcIm9wZW50ZWxlbWV0cnlcIixcbiAgICBcIm90ZWxcIlxuICBdLFxuICBzY3JpcHRzOiB7XG4gICAgZGV2OiBcIkRFVj10cnVlIHRzeCBoZWxwZXJzL2J1aWxkLnRzXCIsXG4gICAgYnVpbGQ6IFwidHN4IGhlbHBlcnMvYnVpbGQudHNcIixcbiAgICBwcmVwdWJsaXNoT25seTogXCJwbnBtIHJ1biBidWlsZFwiLFxuICAgIHRlc3Q6IFwidml0ZXN0IHJ1blwiXG4gIH0sXG4gIHNpZGVFZmZlY3RzOiBmYWxzZVxufTtcblxuLy8gc3JjL2NvbnN0YW50cy50c1xudmFyIFZFUlNJT04gPSBwYWNrYWdlX2RlZmF1bHQyLnZlcnNpb247XG52YXIgTkFNRSA9IHBhY2thZ2VfZGVmYXVsdDIubmFtZTtcbnZhciBNT0RVTEVfTkFNRSA9IFwiQHByaXNtYS9jbGllbnRcIjtcblxuLy8gc3JjL1ByaXNtYUluc3RydW1lbnRhdGlvbi50c1xudmFyIFByaXNtYUluc3RydW1lbnRhdGlvbiA9IGNsYXNzIGV4dGVuZHMgaW1wb3J0X2luc3RydW1lbnRhdGlvbi5JbnN0cnVtZW50YXRpb25CYXNlIHtcbiAgdHJhY2VyUHJvdmlkZXI7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZyA9IHt9KSB7XG4gICAgc3VwZXIoTkFNRSwgVkVSU0lPTiwgY29uZmlnKTtcbiAgfVxuICBzZXRUcmFjZXJQcm92aWRlcih0cmFjZXJQcm92aWRlcikge1xuICAgIHRoaXMudHJhY2VyUHJvdmlkZXIgPSB0cmFjZXJQcm92aWRlcjtcbiAgfVxuICBpbml0KCkge1xuICAgIGNvbnN0IG1vZHVsZTIgPSBuZXcgaW1wb3J0X2luc3RydW1lbnRhdGlvbi5JbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRGVmaW5pdGlvbihNT0RVTEVfTkFNRSwgW1ZFUlNJT05dKTtcbiAgICByZXR1cm4gW21vZHVsZTJdO1xuICB9XG4gIGVuYWJsZSgpIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLl9jb25maWc7XG4gICAgc2V0R2xvYmFsVHJhY2luZ0hlbHBlcihcbiAgICAgIG5ldyBBY3RpdmVUcmFjaW5nSGVscGVyKHtcbiAgICAgICAgdHJhY2VyUHJvdmlkZXI6IHRoaXMudHJhY2VyUHJvdmlkZXIgPz8gaW1wb3J0X2FwaTIudHJhY2UuZ2V0VHJhY2VyUHJvdmlkZXIoKSxcbiAgICAgICAgaWdub3JlU3BhblR5cGVzOiBjb25maWcuaWdub3JlU3BhblR5cGVzID8/IFtdXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgZGlzYWJsZSgpIHtcbiAgICBjbGVhckdsb2JhbFRyYWNpbmdIZWxwZXIoKTtcbiAgfVxuICBpc0VuYWJsZWQoKSB7XG4gICAgcmV0dXJuIGdldEdsb2JhbFRyYWNpbmdIZWxwZXIoKSAhPT0gdm9pZCAwO1xuICB9XG59O1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBpbXBvcnRfaW5zdHJ1bWVudGF0aW9uMiA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb25cIik7XG4vLyBBbm5vdGF0ZSB0aGUgQ29tbW9uSlMgZXhwb3J0IG5hbWVzIGZvciBFU00gaW1wb3J0IGluIG5vZGU6XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgUHJpc21hSW5zdHJ1bWVudGF0aW9uLFxuICByZWdpc3Rlckluc3RydW1lbnRhdGlvbnNcbn0pO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@prisma+instrumentation@7.6.0_@opentelemetry+api@1.9.1/node_modules/@prisma/instrumentation/dist/index.js\n");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
; |