@depup/sentry__server-utils 10.71.0-depup.0 → 10.72.0-depup.0
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/README.md +3 -5
- package/build/THIRD-PARTY-LICENSES.txt +976 -0
- package/build/cjs/_virtual/_commonjsHelpers.js +8 -0
- package/build/cjs/_virtual/_commonjsHelpers.js.map +1 -0
- package/build/cjs/_virtual/array-set.js +6 -0
- package/build/cjs/_virtual/array-set.js.map +1 -0
- package/build/cjs/_virtual/astring.js +6 -0
- package/build/cjs/_virtual/astring.js.map +1 -0
- package/build/cjs/_virtual/base64-vlq.js +6 -0
- package/build/cjs/_virtual/base64-vlq.js.map +1 -0
- package/build/cjs/_virtual/base64.js +6 -0
- package/build/cjs/_virtual/base64.js.map +1 -0
- package/build/cjs/_virtual/binary-search.js +6 -0
- package/build/cjs/_virtual/binary-search.js.map +1 -0
- package/build/cjs/_virtual/chunk-D6vf50IK.js +6 -0
- package/build/cjs/_virtual/chunk-D6vf50IK.js.map +1 -0
- package/build/cjs/_virtual/instrumentation-serde-BFky_HG6.js +6 -0
- package/build/cjs/_virtual/instrumentation-serde-BFky_HG6.js.map +1 -0
- package/build/cjs/_virtual/mapping-list.js +6 -0
- package/build/cjs/_virtual/mapping-list.js.map +1 -0
- package/build/cjs/_virtual/meriyah.js +6 -0
- package/build/cjs/_virtual/meriyah.js.map +1 -0
- package/build/cjs/_virtual/node.js +6 -0
- package/build/cjs/_virtual/node.js.map +1 -0
- package/build/cjs/_virtual/quick-sort.js +6 -0
- package/build/cjs/_virtual/quick-sort.js.map +1 -0
- package/build/cjs/_virtual/source-map-consumer.js +6 -0
- package/build/cjs/_virtual/source-map-consumer.js.map +1 -0
- package/build/cjs/_virtual/source-map-generator.js +6 -0
- package/build/cjs/_virtual/source-map-generator.js.map +1 -0
- package/build/cjs/_virtual/source-map.js +6 -0
- package/build/cjs/_virtual/source-map.js.map +1 -0
- package/build/cjs/_virtual/source-node.js +6 -0
- package/build/cjs/_virtual/source-node.js.map +1 -0
- package/build/cjs/_virtual/transforms.js +6 -0
- package/build/cjs/_virtual/transforms.js.map +1 -0
- package/build/cjs/_virtual/util.js +6 -0
- package/build/cjs/_virtual/util.js.map +1 -0
- package/build/cjs/debug-build.js.map +1 -1
- package/build/cjs/graphql/graphql-dc-subscriber.js.map +1 -1
- package/build/cjs/graphql/index.js +15 -2
- package/build/cjs/graphql/index.js.map +1 -1
- package/build/cjs/graphql/utils.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/amqplib.js +24 -11
- package/build/cjs/integrations/tracing-channel/amqplib.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/anthropic.js +15 -2
- package/build/cjs/integrations/tracing-channel/anthropic.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/constants.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/index.js +15 -2
- package/build/cjs/integrations/tracing-channel/aws-sdk/index.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/MessageAttributes.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/ServicesExtensions.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/bedrock-runtime.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/dynamodb.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/kinesis.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/lambda.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/s3.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/secretsmanager.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/sns.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/sqs.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/services/stepfunctions.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/aws-sdk/utils.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/dataloader.js +17 -4
- package/build/cjs/integrations/tracing-channel/dataloader.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/express/index.js +15 -2
- package/build/cjs/integrations/tracing-channel/express/index.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/express/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/express/route.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/fastify/errors.js +14 -1
- package/build/cjs/integrations/tracing-channel/fastify/errors.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/fastify/index.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/fastify/instrumentation.js +14 -1
- package/build/cjs/integrations/tracing-channel/fastify/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/fastify/utils.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/firebase/firestore.js +14 -1
- package/build/cjs/integrations/tracing-channel/firebase/firestore.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/firebase/functions.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/firebase/index.js +14 -1
- package/build/cjs/integrations/tracing-channel/firebase/index.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/firebase/instrumentation.js +15 -2
- package/build/cjs/integrations/tracing-channel/firebase/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/generic-pool.js +15 -2
- package/build/cjs/integrations/tracing-channel/generic-pool.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/google-genai.js +15 -2
- package/build/cjs/integrations/tracing-channel/google-genai.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/graphql/constants.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/graphql/index.js +17 -4
- package/build/cjs/integrations/tracing-channel/graphql/index.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/graphql/resolvers.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/graphql/spans.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/hapi-types.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/hapi-utils.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/hapi.js +16 -3
- package/build/cjs/integrations/tracing-channel/hapi.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/ioredis.js +16 -3
- package/build/cjs/integrations/tracing-channel/ioredis.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/kafkajs/consumer.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/kafkajs/index.js +16 -3
- package/build/cjs/integrations/tracing-channel/kafkajs/index.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/kafkajs/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/kafkajs/spans.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/knex.js +16 -3
- package/build/cjs/integrations/tracing-channel/knex.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/koa.js +15 -2
- package/build/cjs/integrations/tracing-channel/koa.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/langchain.js +17 -5
- package/build/cjs/integrations/tracing-channel/langchain.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/langgraph.js +16 -3
- package/build/cjs/integrations/tracing-channel/langgraph.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/lru-memoizer.js +15 -2
- package/build/cjs/integrations/tracing-channel/lru-memoizer.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/mongodb.js +17 -4
- package/build/cjs/integrations/tracing-channel/mongodb.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/mongoose.js +17 -4
- package/build/cjs/integrations/tracing-channel/mongoose.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/mysql.js +15 -2
- package/build/cjs/integrations/tracing-channel/mysql.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/mysql2.js +16 -3
- package/build/cjs/integrations/tracing-channel/mysql2.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/openai.js +15 -2
- package/build/cjs/integrations/tracing-channel/openai.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/postgres-js.js +18 -5
- package/build/cjs/integrations/tracing-channel/postgres-js.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/postgres.js +15 -2
- package/build/cjs/integrations/tracing-channel/postgres.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/redis.js +18 -5
- package/build/cjs/integrations/tracing-channel/redis.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/tedious.js +16 -3
- package/build/cjs/integrations/tracing-channel/tedious.js.map +1 -1
- package/build/cjs/integrations/tracing-channel/vercel-ai.js +15 -2
- package/build/cjs/integrations/tracing-channel/vercel-ai.js.map +1 -1
- package/build/cjs/mongodb/mongodb-span.js.map +1 -1
- package/build/cjs/mongoose/index.js +15 -2
- package/build/cjs/mongoose/index.js.map +1 -1
- package/build/cjs/mongoose/mongoose-dc-subscriber.js.map +1 -1
- package/build/cjs/mongoose/mongoose-legacy-span.js.map +1 -1
- package/build/cjs/mysql2/index.js +15 -2
- package/build/cjs/mysql2/index.js.map +1 -1
- package/build/cjs/mysql2/mysql2-dc-subscriber.js.map +1 -1
- package/build/cjs/orchestrion/bundler/esbuild.js +2 -6
- package/build/cjs/orchestrion/bundler/esbuild.js.map +1 -1
- package/build/cjs/orchestrion/bundler/options.js.map +1 -1
- package/build/cjs/orchestrion/bundler/rollup.js +2 -6
- package/build/cjs/orchestrion/bundler/rollup.js.map +1 -1
- package/build/cjs/orchestrion/bundler/subscribeInjection.js +3 -2
- package/build/cjs/orchestrion/bundler/subscribeInjection.js.map +1 -1
- package/build/cjs/orchestrion/bundler/vite.js +2 -6
- package/build/cjs/orchestrion/bundler/vite.js.map +1 -1
- package/build/cjs/orchestrion/bundler/webpack-loader.js +8 -0
- package/build/cjs/orchestrion/bundler/webpack-loader.js.map +1 -0
- package/build/cjs/orchestrion/bundler/webpack.js +29 -16
- package/build/cjs/orchestrion/bundler/webpack.js.map +1 -1
- package/build/cjs/orchestrion/channels.js.map +1 -1
- package/build/cjs/orchestrion/config/amqplib.js.map +1 -1
- package/build/cjs/orchestrion/config/anthropic-ai.js.map +1 -1
- package/build/cjs/orchestrion/config/aws-sdk.js.map +1 -1
- package/build/cjs/orchestrion/config/channel-integration-definitions.js.map +1 -1
- package/build/cjs/orchestrion/config/dataloader.js.map +1 -1
- package/build/cjs/orchestrion/config/express.js.map +1 -1
- package/build/cjs/orchestrion/config/firebase.js.map +1 -1
- package/build/cjs/orchestrion/config/generic-pool.js.map +1 -1
- package/build/cjs/orchestrion/config/google-genai.js.map +1 -1
- package/build/cjs/orchestrion/config/graphql.js.map +1 -1
- package/build/cjs/orchestrion/config/hapi.js.map +1 -1
- package/build/cjs/orchestrion/config/index.js.map +1 -1
- package/build/cjs/orchestrion/config/ioredis.js.map +1 -1
- package/build/cjs/orchestrion/config/kafkajs.js.map +1 -1
- package/build/cjs/orchestrion/config/knex.js.map +1 -1
- package/build/cjs/orchestrion/config/koa.js.map +1 -1
- package/build/cjs/orchestrion/config/langchain.js.map +1 -1
- package/build/cjs/orchestrion/config/langgraph.js.map +1 -1
- package/build/cjs/orchestrion/config/lru-memoizer.js.map +1 -1
- package/build/cjs/orchestrion/config/mongodb.js.map +1 -1
- package/build/cjs/orchestrion/config/mongoose.js.map +1 -1
- package/build/cjs/orchestrion/config/mysql.js.map +1 -1
- package/build/cjs/orchestrion/config/mysql2.js.map +1 -1
- package/build/cjs/orchestrion/config/nestjs.js.map +1 -1
- package/build/cjs/orchestrion/config/openai.js +4 -4
- package/build/cjs/orchestrion/config/openai.js.map +1 -1
- package/build/cjs/orchestrion/config/pg.js.map +1 -1
- package/build/cjs/orchestrion/config/postgres.js.map +1 -1
- package/build/cjs/orchestrion/config/redis.js.map +1 -1
- package/build/cjs/orchestrion/config/remix.js.map +1 -1
- package/build/cjs/orchestrion/config/subscribe-injection.js.map +1 -1
- package/build/cjs/orchestrion/config/tedious.js.map +1 -1
- package/build/cjs/orchestrion/config/vercel-ai.js.map +1 -1
- package/build/cjs/orchestrion/detect.js.map +1 -1
- package/build/cjs/orchestrion/index.js.map +1 -1
- package/build/cjs/orchestrion/registerChannelIntegration.js.map +1 -1
- package/build/cjs/orchestrion/runtime/hook.js +17 -0
- package/build/cjs/orchestrion/runtime/hook.js.map +1 -0
- package/build/cjs/orchestrion/runtime/register.js +45 -38
- package/build/cjs/orchestrion/runtime/register.js.map +1 -1
- package/build/cjs/prisma/global.js.map +1 -1
- package/build/cjs/prisma/index.js.map +1 -1
- package/build/cjs/prisma/tracing-helper.js.map +1 -1
- package/build/cjs/redis/index.js +15 -2
- package/build/cjs/redis/index.js.map +1 -1
- package/build/cjs/redis/redis-dc-subscriber.js.map +1 -1
- package/build/cjs/redis/redis-statement-serializer.js.map +1 -1
- package/build/cjs/tracing-channel.js.map +1 -1
- package/build/cjs/vendored/@apm-js-collab/code-transformer/index.js +8 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/index.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/index.js +12 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/index.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/matcher.js +83 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/matcher.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/transformer.js +314 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/transformer.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/transforms.js +406 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/transforms.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/chunk-D6vf50IK.js +33 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/chunk-D6vf50IK.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/instrumentation-serde-BFky_HG6.js +66 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/instrumentation-serde-BFky_HG6.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/webpack-loader.js +90 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/webpack-loader.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/core-dC9TN3Ev.js +219 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/core-dC9TN3Ev.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/esbuild.js +98 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/esbuild.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/instrumentation-serde-C-Xxv-jj.js +29 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/instrumentation-serde-C-Xxv-jj.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/rollup-OTS4ktWb.js +1069 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/rollup-OTS4ktWb.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/vite.js +14 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/vite.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/webpack.js +75 -0
- package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/webpack.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/tracing-hooks/hook.js +166 -0
- package/build/cjs/vendored/@apm-js-collab/tracing-hooks/hook.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/tracing-hooks/index.js +88 -0
- package/build/cjs/vendored/@apm-js-collab/tracing-hooks/index.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/tracing-hooks/lib/diagnostics.js +15 -0
- package/build/cjs/vendored/@apm-js-collab/tracing-hooks/lib/diagnostics.js.map +1 -0
- package/build/cjs/vendored/@apm-js-collab/tracing-hooks/lib/get-package-version.js +30 -0
- package/build/cjs/vendored/@apm-js-collab/tracing-hooks/lib/get-package-version.js.map +1 -0
- package/build/cjs/vendored/astring/dist/astring.js +1068 -0
- package/build/cjs/vendored/astring/dist/astring.js.map +1 -0
- package/build/cjs/vendored/debug/src/common.js +178 -0
- package/build/cjs/vendored/debug/src/common.js.map +1 -0
- package/build/cjs/vendored/debug/src/node.js +186 -0
- package/build/cjs/vendored/debug/src/node.js.map +1 -0
- package/build/cjs/vendored/esquery/dist/esquery.esm.min.js +847 -0
- package/build/cjs/vendored/esquery/dist/esquery.esm.min.js.map +1 -0
- package/build/cjs/vendored/has-flag/index.js +11 -0
- package/build/cjs/vendored/has-flag/index.js.map +1 -0
- package/build/cjs/vendored/meriyah/dist/meriyah.js +9192 -0
- package/build/cjs/vendored/meriyah/dist/meriyah.js.map +1 -0
- package/build/cjs/vendored/meriyah/dist/meriyah2.js +9209 -0
- package/build/cjs/vendored/meriyah/dist/meriyah2.js.map +1 -0
- package/build/cjs/vendored/module-details-from-path/index.js +44 -0
- package/build/cjs/vendored/module-details-from-path/index.js.map +1 -0
- package/build/cjs/vendored/ms/index.js +115 -0
- package/build/cjs/vendored/ms/index.js.map +1 -0
- package/build/cjs/vendored/semifies/index.js +111 -0
- package/build/cjs/vendored/semifies/index.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/array-set.js +73 -0
- package/build/cjs/vendored/source-map/lib/array-set.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/base64-vlq.js +57 -0
- package/build/cjs/vendored/source-map/lib/base64-vlq.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/base64.js +42 -0
- package/build/cjs/vendored/source-map/lib/base64.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/binary-search.js +55 -0
- package/build/cjs/vendored/source-map/lib/binary-search.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/mapping-list.js +42 -0
- package/build/cjs/vendored/source-map/lib/mapping-list.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/quick-sort.js +36 -0
- package/build/cjs/vendored/source-map/lib/quick-sort.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/source-map-consumer.js +612 -0
- package/build/cjs/vendored/source-map/lib/source-map-consumer.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/source-map-generator.js +285 -0
- package/build/cjs/vendored/source-map/lib/source-map-generator.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/source-node.js +270 -0
- package/build/cjs/vendored/source-map/lib/source-node.js.map +1 -0
- package/build/cjs/vendored/source-map/lib/util.js +300 -0
- package/build/cjs/vendored/source-map/lib/util.js.map +1 -0
- package/build/cjs/vendored/source-map/source-map.js +16 -0
- package/build/cjs/vendored/source-map/source-map.js.map +1 -0
- package/build/cjs/vendored/supports-color/index.js +104 -0
- package/build/cjs/vendored/supports-color/index.js.map +1 -0
- package/build/cjs/vercel-ai/index.js +15 -2
- package/build/cjs/vercel-ai/index.js.map +1 -1
- package/build/cjs/vercel-ai/util.js.map +1 -1
- package/build/cjs/vercel-ai/vercel-ai-dc-subscriber.js.map +1 -1
- package/build/cjs/vercel-ai/vercel-ai-orchestrion-subscriber.js.map +1 -1
- package/build/esm/_virtual/_commonjsHelpers.js +6 -0
- package/build/esm/_virtual/_commonjsHelpers.js.map +1 -0
- package/build/esm/_virtual/array-set.js +4 -0
- package/build/esm/_virtual/array-set.js.map +1 -0
- package/build/esm/_virtual/astring.js +4 -0
- package/build/esm/_virtual/astring.js.map +1 -0
- package/build/esm/_virtual/base64-vlq.js +4 -0
- package/build/esm/_virtual/base64-vlq.js.map +1 -0
- package/build/esm/_virtual/base64.js +4 -0
- package/build/esm/_virtual/base64.js.map +1 -0
- package/build/esm/_virtual/binary-search.js +4 -0
- package/build/esm/_virtual/binary-search.js.map +1 -0
- package/build/esm/_virtual/chunk-D6vf50IK.js +4 -0
- package/build/esm/_virtual/chunk-D6vf50IK.js.map +1 -0
- package/build/esm/_virtual/instrumentation-serde-BFky_HG6.js +4 -0
- package/build/esm/_virtual/instrumentation-serde-BFky_HG6.js.map +1 -0
- package/build/esm/_virtual/mapping-list.js +4 -0
- package/build/esm/_virtual/mapping-list.js.map +1 -0
- package/build/esm/_virtual/meriyah.js +4 -0
- package/build/esm/_virtual/meriyah.js.map +1 -0
- package/build/esm/_virtual/node.js +4 -0
- package/build/esm/_virtual/node.js.map +1 -0
- package/build/esm/_virtual/quick-sort.js +4 -0
- package/build/esm/_virtual/quick-sort.js.map +1 -0
- package/build/esm/_virtual/source-map-consumer.js +4 -0
- package/build/esm/_virtual/source-map-consumer.js.map +1 -0
- package/build/esm/_virtual/source-map-generator.js +4 -0
- package/build/esm/_virtual/source-map-generator.js.map +1 -0
- package/build/esm/_virtual/source-map.js +4 -0
- package/build/esm/_virtual/source-map.js.map +1 -0
- package/build/esm/_virtual/source-node.js +4 -0
- package/build/esm/_virtual/source-node.js.map +1 -0
- package/build/esm/_virtual/transforms.js +4 -0
- package/build/esm/_virtual/transforms.js.map +1 -0
- package/build/esm/_virtual/util.js +4 -0
- package/build/esm/_virtual/util.js.map +1 -0
- package/build/esm/debug-build.js.map +1 -1
- package/build/esm/graphql/graphql-dc-subscriber.js.map +1 -1
- package/build/esm/graphql/index.js.map +1 -1
- package/build/esm/graphql/utils.js.map +1 -1
- package/build/esm/integrations/tracing-channel/amqplib.js.map +1 -1
- package/build/esm/integrations/tracing-channel/anthropic.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/constants.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/index.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/MessageAttributes.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/ServicesExtensions.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/bedrock-runtime.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/dynamodb.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/kinesis.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/lambda.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/s3.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/secretsmanager.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/sns.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/sqs.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/services/stepfunctions.js.map +1 -1
- package/build/esm/integrations/tracing-channel/aws-sdk/utils.js.map +1 -1
- package/build/esm/integrations/tracing-channel/dataloader.js.map +1 -1
- package/build/esm/integrations/tracing-channel/express/index.js.map +1 -1
- package/build/esm/integrations/tracing-channel/express/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing-channel/express/route.js.map +1 -1
- package/build/esm/integrations/tracing-channel/fastify/errors.js.map +1 -1
- package/build/esm/integrations/tracing-channel/fastify/index.js.map +1 -1
- package/build/esm/integrations/tracing-channel/fastify/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing-channel/fastify/utils.js.map +1 -1
- package/build/esm/integrations/tracing-channel/firebase/firestore.js.map +1 -1
- package/build/esm/integrations/tracing-channel/firebase/functions.js.map +1 -1
- package/build/esm/integrations/tracing-channel/firebase/index.js.map +1 -1
- package/build/esm/integrations/tracing-channel/firebase/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing-channel/generic-pool.js.map +1 -1
- package/build/esm/integrations/tracing-channel/google-genai.js.map +1 -1
- package/build/esm/integrations/tracing-channel/graphql/constants.js.map +1 -1
- package/build/esm/integrations/tracing-channel/graphql/index.js.map +1 -1
- package/build/esm/integrations/tracing-channel/graphql/resolvers.js.map +1 -1
- package/build/esm/integrations/tracing-channel/graphql/spans.js.map +1 -1
- package/build/esm/integrations/tracing-channel/hapi-types.js.map +1 -1
- package/build/esm/integrations/tracing-channel/hapi-utils.js.map +1 -1
- package/build/esm/integrations/tracing-channel/hapi.js.map +1 -1
- package/build/esm/integrations/tracing-channel/ioredis.js.map +1 -1
- package/build/esm/integrations/tracing-channel/kafkajs/consumer.js.map +1 -1
- package/build/esm/integrations/tracing-channel/kafkajs/index.js.map +1 -1
- package/build/esm/integrations/tracing-channel/kafkajs/semconv.js.map +1 -1
- package/build/esm/integrations/tracing-channel/kafkajs/spans.js.map +1 -1
- package/build/esm/integrations/tracing-channel/knex.js.map +1 -1
- package/build/esm/integrations/tracing-channel/koa.js.map +1 -1
- package/build/esm/integrations/tracing-channel/langchain.js +1 -2
- package/build/esm/integrations/tracing-channel/langchain.js.map +1 -1
- package/build/esm/integrations/tracing-channel/langgraph.js.map +1 -1
- package/build/esm/integrations/tracing-channel/lru-memoizer.js.map +1 -1
- package/build/esm/integrations/tracing-channel/mongodb.js.map +1 -1
- package/build/esm/integrations/tracing-channel/mongoose.js.map +1 -1
- package/build/esm/integrations/tracing-channel/mysql.js.map +1 -1
- package/build/esm/integrations/tracing-channel/mysql2.js.map +1 -1
- package/build/esm/integrations/tracing-channel/openai.js.map +1 -1
- package/build/esm/integrations/tracing-channel/postgres-js.js.map +1 -1
- package/build/esm/integrations/tracing-channel/postgres.js.map +1 -1
- package/build/esm/integrations/tracing-channel/redis.js.map +1 -1
- package/build/esm/integrations/tracing-channel/tedious.js.map +1 -1
- package/build/esm/integrations/tracing-channel/vercel-ai.js.map +1 -1
- package/build/esm/mongodb/mongodb-span.js.map +1 -1
- package/build/esm/mongoose/index.js.map +1 -1
- package/build/esm/mongoose/mongoose-dc-subscriber.js.map +1 -1
- package/build/esm/mongoose/mongoose-legacy-span.js.map +1 -1
- package/build/esm/mysql2/index.js.map +1 -1
- package/build/esm/mysql2/mysql2-dc-subscriber.js.map +1 -1
- package/build/esm/orchestrion/bundler/esbuild.js +2 -2
- package/build/esm/orchestrion/bundler/esbuild.js.map +1 -1
- package/build/esm/orchestrion/bundler/options.js.map +1 -1
- package/build/esm/orchestrion/bundler/rollup.js +2 -2
- package/build/esm/orchestrion/bundler/rollup.js.map +1 -1
- package/build/esm/orchestrion/bundler/subscribeInjection.js +3 -2
- package/build/esm/orchestrion/bundler/subscribeInjection.js.map +1 -1
- package/build/esm/orchestrion/bundler/vite.js +2 -2
- package/build/esm/orchestrion/bundler/vite.js.map +1 -1
- package/build/esm/orchestrion/bundler/webpack-loader.js +6 -0
- package/build/esm/orchestrion/bundler/webpack-loader.js.map +1 -0
- package/build/esm/orchestrion/bundler/webpack.js +25 -8
- package/build/esm/orchestrion/bundler/webpack.js.map +1 -1
- package/build/esm/orchestrion/channels.js.map +1 -1
- package/build/esm/orchestrion/config/amqplib.js.map +1 -1
- package/build/esm/orchestrion/config/anthropic-ai.js.map +1 -1
- package/build/esm/orchestrion/config/aws-sdk.js.map +1 -1
- package/build/esm/orchestrion/config/channel-integration-definitions.js.map +1 -1
- package/build/esm/orchestrion/config/dataloader.js.map +1 -1
- package/build/esm/orchestrion/config/express.js.map +1 -1
- package/build/esm/orchestrion/config/firebase.js.map +1 -1
- package/build/esm/orchestrion/config/generic-pool.js.map +1 -1
- package/build/esm/orchestrion/config/google-genai.js.map +1 -1
- package/build/esm/orchestrion/config/graphql.js.map +1 -1
- package/build/esm/orchestrion/config/hapi.js.map +1 -1
- package/build/esm/orchestrion/config/index.js.map +1 -1
- package/build/esm/orchestrion/config/ioredis.js.map +1 -1
- package/build/esm/orchestrion/config/kafkajs.js.map +1 -1
- package/build/esm/orchestrion/config/knex.js.map +1 -1
- package/build/esm/orchestrion/config/koa.js.map +1 -1
- package/build/esm/orchestrion/config/langchain.js.map +1 -1
- package/build/esm/orchestrion/config/langgraph.js.map +1 -1
- package/build/esm/orchestrion/config/lru-memoizer.js.map +1 -1
- package/build/esm/orchestrion/config/mongodb.js.map +1 -1
- package/build/esm/orchestrion/config/mongoose.js.map +1 -1
- package/build/esm/orchestrion/config/mysql.js.map +1 -1
- package/build/esm/orchestrion/config/mysql2.js.map +1 -1
- package/build/esm/orchestrion/config/nestjs.js.map +1 -1
- package/build/esm/orchestrion/config/openai.js +4 -4
- package/build/esm/orchestrion/config/openai.js.map +1 -1
- package/build/esm/orchestrion/config/pg.js.map +1 -1
- package/build/esm/orchestrion/config/postgres.js.map +1 -1
- package/build/esm/orchestrion/config/redis.js.map +1 -1
- package/build/esm/orchestrion/config/remix.js.map +1 -1
- package/build/esm/orchestrion/config/subscribe-injection.js.map +1 -1
- package/build/esm/orchestrion/config/tedious.js.map +1 -1
- package/build/esm/orchestrion/config/vercel-ai.js.map +1 -1
- package/build/esm/orchestrion/detect.js.map +1 -1
- package/build/esm/orchestrion/index.js.map +1 -1
- package/build/esm/orchestrion/registerChannelIntegration.js.map +1 -1
- package/build/esm/orchestrion/runtime/hook.js +8 -0
- package/build/esm/orchestrion/runtime/hook.js.map +1 -0
- package/build/esm/orchestrion/runtime/register.js +33 -40
- package/build/esm/orchestrion/runtime/register.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/prisma/global.js.map +1 -1
- package/build/esm/prisma/index.js.map +1 -1
- package/build/esm/prisma/tracing-helper.js.map +1 -1
- package/build/esm/redis/index.js.map +1 -1
- package/build/esm/redis/redis-dc-subscriber.js.map +1 -1
- package/build/esm/redis/redis-statement-serializer.js.map +1 -1
- package/build/esm/tracing-channel.js.map +1 -1
- package/build/esm/vendored/@apm-js-collab/code-transformer/index.js +6 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/index.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/lib/index.js +10 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/lib/index.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/lib/matcher.js +81 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/lib/matcher.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/lib/transformer.js +312 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/lib/transformer.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/lib/transforms.js +404 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer/lib/transforms.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/chunk-D6vf50IK.js +33 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/chunk-D6vf50IK.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/instrumentation-serde-BFky_HG6.js +66 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/instrumentation-serde-BFky_HG6.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/webpack-loader.js +88 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/webpack-loader.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/core-dC9TN3Ev.js +213 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/core-dC9TN3Ev.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/esbuild.js +96 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/esbuild.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/instrumentation-serde-C-Xxv-jj.js +27 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/instrumentation-serde-C-Xxv-jj.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/rollup-OTS4ktWb.js +1067 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/rollup-OTS4ktWb.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/vite.js +12 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/vite.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/webpack.js +72 -0
- package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/webpack.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/tracing-hooks/hook.js +157 -0
- package/build/esm/vendored/@apm-js-collab/tracing-hooks/hook.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/tracing-hooks/index.js +86 -0
- package/build/esm/vendored/@apm-js-collab/tracing-hooks/index.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/tracing-hooks/lib/diagnostics.js +13 -0
- package/build/esm/vendored/@apm-js-collab/tracing-hooks/lib/diagnostics.js.map +1 -0
- package/build/esm/vendored/@apm-js-collab/tracing-hooks/lib/get-package-version.js +27 -0
- package/build/esm/vendored/@apm-js-collab/tracing-hooks/lib/get-package-version.js.map +1 -0
- package/build/esm/vendored/astring/dist/astring.js +1066 -0
- package/build/esm/vendored/astring/dist/astring.js.map +1 -0
- package/build/esm/vendored/debug/src/common.js +176 -0
- package/build/esm/vendored/debug/src/common.js.map +1 -0
- package/build/esm/vendored/debug/src/node.js +183 -0
- package/build/esm/vendored/debug/src/node.js.map +1 -0
- package/build/esm/vendored/esquery/dist/esquery.esm.min.js +845 -0
- package/build/esm/vendored/esquery/dist/esquery.esm.min.js.map +1 -0
- package/build/esm/vendored/has-flag/index.js +9 -0
- package/build/esm/vendored/has-flag/index.js.map +1 -0
- package/build/esm/vendored/meriyah/dist/meriyah.js +9190 -0
- package/build/esm/vendored/meriyah/dist/meriyah.js.map +1 -0
- package/build/esm/vendored/meriyah/dist/meriyah2.js +9207 -0
- package/build/esm/vendored/meriyah/dist/meriyah2.js.map +1 -0
- package/build/esm/vendored/module-details-from-path/index.js +41 -0
- package/build/esm/vendored/module-details-from-path/index.js.map +1 -0
- package/build/esm/vendored/ms/index.js +113 -0
- package/build/esm/vendored/ms/index.js.map +1 -0
- package/build/esm/vendored/semifies/index.js +109 -0
- package/build/esm/vendored/semifies/index.js.map +1 -0
- package/build/esm/vendored/source-map/lib/array-set.js +71 -0
- package/build/esm/vendored/source-map/lib/array-set.js.map +1 -0
- package/build/esm/vendored/source-map/lib/base64-vlq.js +55 -0
- package/build/esm/vendored/source-map/lib/base64-vlq.js.map +1 -0
- package/build/esm/vendored/source-map/lib/base64.js +40 -0
- package/build/esm/vendored/source-map/lib/base64.js.map +1 -0
- package/build/esm/vendored/source-map/lib/binary-search.js +55 -0
- package/build/esm/vendored/source-map/lib/binary-search.js.map +1 -0
- package/build/esm/vendored/source-map/lib/mapping-list.js +40 -0
- package/build/esm/vendored/source-map/lib/mapping-list.js.map +1 -0
- package/build/esm/vendored/source-map/lib/quick-sort.js +34 -0
- package/build/esm/vendored/source-map/lib/quick-sort.js.map +1 -0
- package/build/esm/vendored/source-map/lib/source-map-consumer.js +610 -0
- package/build/esm/vendored/source-map/lib/source-map-consumer.js.map +1 -0
- package/build/esm/vendored/source-map/lib/source-map-generator.js +283 -0
- package/build/esm/vendored/source-map/lib/source-map-generator.js.map +1 -0
- package/build/esm/vendored/source-map/lib/source-node.js +268 -0
- package/build/esm/vendored/source-map/lib/source-node.js.map +1 -0
- package/build/esm/vendored/source-map/lib/util.js +300 -0
- package/build/esm/vendored/source-map/lib/util.js.map +1 -0
- package/build/esm/vendored/source-map/source-map.js +14 -0
- package/build/esm/vendored/source-map/source-map.js.map +1 -0
- package/build/esm/vendored/supports-color/index.js +102 -0
- package/build/esm/vendored/supports-color/index.js.map +1 -0
- package/build/esm/vercel-ai/index.js.map +1 -1
- package/build/esm/vercel-ai/util.js.map +1 -1
- package/build/esm/vercel-ai/vercel-ai-dc-subscriber.js.map +1 -1
- package/build/esm/vercel-ai/vercel-ai-orchestrion-subscriber.js.map +1 -1
- package/build/types/orchestrion/apmTypes.d.ts +169 -0
- package/build/types/orchestrion/apmTypes.d.ts.map +1 -0
- package/build/types/orchestrion/bundler/esbuild.d.ts +2 -2
- package/build/types/orchestrion/bundler/esbuild.d.ts.map +1 -1
- package/build/types/orchestrion/bundler/options.d.ts +1 -1
- package/build/types/orchestrion/bundler/options.d.ts.map +1 -1
- package/build/types/orchestrion/bundler/rollup.d.ts +2 -2
- package/build/types/orchestrion/bundler/rollup.d.ts.map +1 -1
- package/build/types/orchestrion/bundler/subscribeInjection.d.ts.map +1 -1
- package/build/types/orchestrion/bundler/vite.d.ts +2 -2
- package/build/types/orchestrion/bundler/vite.d.ts.map +1 -1
- package/build/types/orchestrion/bundler/webpack-loader.d.ts +3 -0
- package/build/types/orchestrion/bundler/webpack-loader.d.ts.map +1 -0
- package/build/types/orchestrion/bundler/webpack.d.ts +21 -10
- package/build/types/orchestrion/bundler/webpack.d.ts.map +1 -1
- package/build/types/orchestrion/config/aws-sdk.d.ts +1 -1
- package/build/types/orchestrion/config/aws-sdk.d.ts.map +1 -1
- package/build/types/orchestrion/config/koa.d.ts +1 -1
- package/build/types/orchestrion/config/koa.d.ts.map +1 -1
- package/build/types/orchestrion/config/langgraph.d.ts +2 -2
- package/build/types/orchestrion/config/subscribe-injection.d.ts +1 -1
- package/build/types/orchestrion/config/subscribe-injection.d.ts.map +1 -1
- package/build/types/orchestrion/index.d.ts +1 -1
- package/build/types/orchestrion/index.d.ts.map +1 -1
- package/build/types/orchestrion/runtime/register.d.ts +3 -7
- package/build/types/orchestrion/runtime/register.d.ts.map +1 -1
- package/build/types-ts3.8/orchestrion/apmTypes.d.ts +169 -0
- package/build/types-ts3.8/orchestrion/bundler/esbuild.d.ts +2 -2
- package/build/types-ts3.8/orchestrion/bundler/options.d.ts +1 -1
- package/build/types-ts3.8/orchestrion/bundler/rollup.d.ts +2 -2
- package/build/types-ts3.8/orchestrion/bundler/vite.d.ts +2 -2
- package/build/types-ts3.8/orchestrion/bundler/webpack-loader.d.ts +3 -0
- package/build/types-ts3.8/orchestrion/bundler/webpack.d.ts +21 -10
- package/build/types-ts3.8/orchestrion/config/aws-sdk.d.ts +1 -1
- package/build/types-ts3.8/orchestrion/config/koa.d.ts +1 -1
- package/build/types-ts3.8/orchestrion/config/langgraph.d.ts +2 -2
- package/build/types-ts3.8/orchestrion/config/subscribe-injection.d.ts +1 -1
- package/build/types-ts3.8/orchestrion/index.d.ts +1 -1
- package/build/types-ts3.8/orchestrion/runtime/register.d.ts +3 -7
- package/changes.json +2 -10
- package/package.json +15 -16
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
const transforms$1 = require('../../../../_virtual/transforms.js');
|
|
4
|
+
const esquery_esm_min = require('../../../esquery/dist/esquery.esm.min.js');
|
|
5
|
+
require('../../../meriyah/dist/meriyah2.js');
|
|
6
|
+
const meriyah = require('../../../../_virtual/meriyah.js');
|
|
7
|
+
|
|
8
|
+
const esquery = esquery_esm_min.default;
|
|
9
|
+
const { parse } = meriyah.__exports;
|
|
10
|
+
const tracingChannelPredicate = (node) => node.declarations?.[0]?.id?.properties?.[0]?.value?.name === "tr_ch_apm_tracingChannel";
|
|
11
|
+
const CHANNEL_REGEX = /[^\w]/g;
|
|
12
|
+
const formatChannelVariable = (channelName) => `tr_ch_apm$${channelName.replace(CHANNEL_REGEX, "_")}`;
|
|
13
|
+
const transforms = transforms$1.__module.exports = {
|
|
14
|
+
/**
|
|
15
|
+
* Injects a `tracingChannel` import/require into the program body if one is not
|
|
16
|
+
* already present.
|
|
17
|
+
*
|
|
18
|
+
* @param {{ dcModule: string, sourceType: 'module'|'script' }} state
|
|
19
|
+
* @param {import('estree').Program} node - The program root node.
|
|
20
|
+
*/
|
|
21
|
+
tracingChannelImport({ dcModule, moduleType }, node) {
|
|
22
|
+
if (node.body.some(tracingChannelPredicate)) return;
|
|
23
|
+
const options = { module: moduleType === "esm" };
|
|
24
|
+
const index = node.body.findIndex((child) => child.directive === "use strict");
|
|
25
|
+
const dc = moduleType === "esm" ? `import tr_ch_apm_dc from "${dcModule}"` : `const tr_ch_apm_dc = require("${dcModule}")`;
|
|
26
|
+
const tracingChannel = "const { tracingChannel: tr_ch_apm_tracingChannel } = tr_ch_apm_dc";
|
|
27
|
+
const hasSubscribers = `const tr_ch_apm_hasSubscribers = ch => ch.start.hasSubscribers
|
|
28
|
+
|| ch.end.hasSubscribers
|
|
29
|
+
|| ch.asyncStart.hasSubscribers
|
|
30
|
+
|| ch.asyncEnd.hasSubscribers
|
|
31
|
+
|| ch.error.hasSubscribers`;
|
|
32
|
+
node.body.splice(
|
|
33
|
+
index + 1,
|
|
34
|
+
0,
|
|
35
|
+
parse(dc, options).body[0],
|
|
36
|
+
parse(tracingChannel, options).body[0],
|
|
37
|
+
parse(hasSubscribers, options).body[0]
|
|
38
|
+
);
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Injects a `tracingChannel(...)` variable declaration for the config's channel
|
|
42
|
+
* into the program body, also ensuring the import is present.
|
|
43
|
+
*
|
|
44
|
+
* @param {{ channelName: string, module: { name: string }, dcModule: string, sourceType: 'module'|'script' }} state
|
|
45
|
+
* @param {import('estree').Program} node - The program root node.
|
|
46
|
+
*/
|
|
47
|
+
tracingChannelDeclaration(state, node) {
|
|
48
|
+
const { channelName, module: { name } } = state;
|
|
49
|
+
const channelVariable = formatChannelVariable(channelName);
|
|
50
|
+
if (node.body.some((child) => child.declarations?.[0]?.id?.name === channelVariable)) return;
|
|
51
|
+
transforms.tracingChannelImport(state, node);
|
|
52
|
+
const index = node.body.findIndex(tracingChannelPredicate);
|
|
53
|
+
const code = `
|
|
54
|
+
const ${channelVariable} = tr_ch_apm_tracingChannel("orchestrion:${name}:${channelName}")
|
|
55
|
+
`;
|
|
56
|
+
node.body.splice(index + 1, 0, parse(code).body[0]);
|
|
57
|
+
},
|
|
58
|
+
traceCallback: traceAny,
|
|
59
|
+
tracePromise: traceAny,
|
|
60
|
+
traceSync: traceAny,
|
|
61
|
+
traceAuto: traceAny
|
|
62
|
+
};
|
|
63
|
+
function wrapParams(params) {
|
|
64
|
+
const originalParams = params || [];
|
|
65
|
+
const numberedParams = originalParams.filter((param) => param.type !== "RestElement" && param.type !== "AssignmentPattern").map((_, i) => ({ type: "Identifier", name: `__apm$arg${i}` }));
|
|
66
|
+
return [
|
|
67
|
+
...numberedParams,
|
|
68
|
+
{ type: "RestElement", argument: { type: "Identifier", name: "__apm$args" } }
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
function traceAny(state, node, _parent, ancestry) {
|
|
72
|
+
const program = ancestry[ancestry.length - 1];
|
|
73
|
+
if (node.type === "ClassDeclaration" || node.type === "ClassExpression") {
|
|
74
|
+
traceInstanceMethod(state, node, program);
|
|
75
|
+
} else {
|
|
76
|
+
traceFunction(state, node, program);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function traceFunction(state, node, program) {
|
|
80
|
+
transforms.tracingChannelDeclaration(state, program);
|
|
81
|
+
const { functionQuery: { methodName, privateMethodName, functionName, expressionName, propertyName } } = state;
|
|
82
|
+
const isConstructor = methodName === "constructor" || !methodName && !privateMethodName && !functionName && !expressionName && !propertyName;
|
|
83
|
+
const type = isConstructor ? "ArrowFunctionExpression" : node.type;
|
|
84
|
+
const params = node.params;
|
|
85
|
+
node.body = wrap(state, {
|
|
86
|
+
type,
|
|
87
|
+
params,
|
|
88
|
+
body: node.body,
|
|
89
|
+
async: node.async,
|
|
90
|
+
expression: false,
|
|
91
|
+
generator: node.generator
|
|
92
|
+
}, program);
|
|
93
|
+
node.params = wrapParams(params);
|
|
94
|
+
node.generator = false;
|
|
95
|
+
node.async = false;
|
|
96
|
+
wrapSuper(state, node);
|
|
97
|
+
}
|
|
98
|
+
function traceInstanceMethod(state, node, program) {
|
|
99
|
+
const { functionQuery, operator } = state;
|
|
100
|
+
const { methodName } = functionQuery;
|
|
101
|
+
if (!methodName) return;
|
|
102
|
+
const classBody = node.body;
|
|
103
|
+
if (classBody.body.some(({ key }) => key.name === methodName)) return;
|
|
104
|
+
let ctor = classBody.body.find(({ kind }) => kind === "constructor");
|
|
105
|
+
transforms.tracingChannelDeclaration(state, program);
|
|
106
|
+
if (!ctor) {
|
|
107
|
+
ctor = parse(
|
|
108
|
+
node.superClass ? "class A extends Object { constructor (...args) { super(...args) } }" : "class A { constructor () {} }"
|
|
109
|
+
).body[0].body.body[0];
|
|
110
|
+
classBody.body.unshift(ctor);
|
|
111
|
+
}
|
|
112
|
+
const ctorBody = parse(`
|
|
113
|
+
const __apm$${methodName} = this["${methodName}"]
|
|
114
|
+
this["${methodName}"] = function () {}
|
|
115
|
+
if (typeof __apm$${methodName} === 'function') {
|
|
116
|
+
Object.defineProperty(this["${methodName}"], 'length', {
|
|
117
|
+
value: __apm$${methodName}.length,
|
|
118
|
+
configurable: true
|
|
119
|
+
})
|
|
120
|
+
}
|
|
121
|
+
`).body;
|
|
122
|
+
const fn = ctorBody[1].expression.right;
|
|
123
|
+
fn.params = [{ type: "RestElement", argument: { type: "Identifier", name: "__apm$args" } }];
|
|
124
|
+
fn.async = operator === "tracePromise";
|
|
125
|
+
fn.body = wrap(state, { type: "Identifier", name: `__apm$${methodName}` }, program);
|
|
126
|
+
wrapSuper(state, fn);
|
|
127
|
+
ctor.value.body.body.push(...ctorBody);
|
|
128
|
+
}
|
|
129
|
+
function wrap(state, node, program) {
|
|
130
|
+
const { operator, moduleVersion } = state;
|
|
131
|
+
const { returnKind } = state.functionQuery;
|
|
132
|
+
const iterPatch = returnKind ? generateIterPatch(state, returnKind, program) : "";
|
|
133
|
+
let wrapper;
|
|
134
|
+
if (operator === "traceCallback") wrapper = wrapCallback(state, node, iterPatch);
|
|
135
|
+
if (operator === "tracePromise") wrapper = wrapPromise(state, node, iterPatch);
|
|
136
|
+
if (operator === "traceSync") wrapper = wrapSync(state, node, iterPatch);
|
|
137
|
+
if (operator === "traceAuto") wrapper = wrapAuto(state, node, iterPatch);
|
|
138
|
+
const args = (node.params || []).filter((param) => param.type !== "RestElement" && param.type !== "AssignmentPattern").map((_, i) => `__apm$arg${i}`).concat("...__apm$args").join(", ");
|
|
139
|
+
const block = wrapper.body[0].body;
|
|
140
|
+
const common = parse(node.type === "ArrowFunctionExpression" ? `
|
|
141
|
+
const __apm$arguments = [${args}];
|
|
142
|
+
const __apm$ctx = {
|
|
143
|
+
arguments: __apm$arguments,
|
|
144
|
+
moduleVersion: ${JSON.stringify(moduleVersion)}
|
|
145
|
+
};
|
|
146
|
+
const __apm$traced = () => {
|
|
147
|
+
const __apm$wrapped = () => {};
|
|
148
|
+
return __apm$wrapped(...__apm$arguments);
|
|
149
|
+
};
|
|
150
|
+
` : `
|
|
151
|
+
const __apm$arguments = [${args}].slice(0, arguments.length);
|
|
152
|
+
const __apm$ctx = {
|
|
153
|
+
arguments: __apm$arguments,
|
|
154
|
+
self: this,
|
|
155
|
+
moduleVersion: ${JSON.stringify(moduleVersion)}
|
|
156
|
+
};
|
|
157
|
+
const __apm$traced = () => {
|
|
158
|
+
const __apm$wrapped = () => {};
|
|
159
|
+
return __apm$wrapped.apply(this, __apm$arguments);
|
|
160
|
+
};
|
|
161
|
+
`).body;
|
|
162
|
+
block.body.unshift(...common);
|
|
163
|
+
esquery.query(block, "[id.name=__apm$wrapped]")[0].init = node;
|
|
164
|
+
return block;
|
|
165
|
+
}
|
|
166
|
+
function wrapSuper(_state, node) {
|
|
167
|
+
const members = /* @__PURE__ */ new Set();
|
|
168
|
+
esquery.traverse(
|
|
169
|
+
node.body,
|
|
170
|
+
esquery.parse("[object.type=Super]"),
|
|
171
|
+
(node2, parent) => {
|
|
172
|
+
const { name } = node2.property;
|
|
173
|
+
let child;
|
|
174
|
+
if (parent.callee) {
|
|
175
|
+
const { expression } = parse(`__apm$super['${name}'].call(this)`).body[0];
|
|
176
|
+
parent.callee = child = expression.callee;
|
|
177
|
+
parent.arguments.unshift(...expression.arguments);
|
|
178
|
+
} else {
|
|
179
|
+
parent.expression = child = parse(`__apm$super['${name}']`).body[0];
|
|
180
|
+
}
|
|
181
|
+
child.computed = parent.callee.computed;
|
|
182
|
+
child.optional = parent.callee.optional;
|
|
183
|
+
members.add(name);
|
|
184
|
+
}
|
|
185
|
+
);
|
|
186
|
+
for (const name of members) {
|
|
187
|
+
const member = parse(`
|
|
188
|
+
class Wrapper {
|
|
189
|
+
wrapper () {
|
|
190
|
+
__apm$super['${name}'] = super['${name}']
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
`).body[0].body.body[0].value.body.body[0];
|
|
194
|
+
node.body.body.unshift(member);
|
|
195
|
+
}
|
|
196
|
+
if (members.size > 0) {
|
|
197
|
+
node.body.body.unshift(parse("const __apm$super = {}").body[0]);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function wrapAuto(state, node, iterPatch = "") {
|
|
201
|
+
const cbWrapperAST = wrapCallback(state, node, iterPatch);
|
|
202
|
+
const promiseWrapperAST = wrapPromise(state, node, iterPatch);
|
|
203
|
+
const [
|
|
204
|
+
getCbArg,
|
|
205
|
+
checkHasSubscribers,
|
|
206
|
+
defineWrappedCb,
|
|
207
|
+
checkCbIsFunction,
|
|
208
|
+
spliceCbArg,
|
|
209
|
+
runStores
|
|
210
|
+
] = cbWrapperAST.body[0].body.body;
|
|
211
|
+
const fallbackToPromise = {
|
|
212
|
+
type: "IfStatement",
|
|
213
|
+
test: checkCbIsFunction.test,
|
|
214
|
+
consequent: { type: "BlockStatement", body: promiseWrapperAST.body[0].body.body },
|
|
215
|
+
alternate: null
|
|
216
|
+
};
|
|
217
|
+
cbWrapperAST.body[0].body.body = [
|
|
218
|
+
getCbArg,
|
|
219
|
+
fallbackToPromise,
|
|
220
|
+
checkHasSubscribers,
|
|
221
|
+
defineWrappedCb,
|
|
222
|
+
spliceCbArg,
|
|
223
|
+
runStores
|
|
224
|
+
];
|
|
225
|
+
return cbWrapperAST;
|
|
226
|
+
}
|
|
227
|
+
function wrapCallback(state, node, iterPatch = "") {
|
|
228
|
+
const { channelName, functionQuery: { callbackIndex = -1 } } = state;
|
|
229
|
+
const channelVariable = formatChannelVariable(channelName);
|
|
230
|
+
return parse(`
|
|
231
|
+
function wrapper () {
|
|
232
|
+
const __apm$cb = Array.prototype.at.call(__apm$arguments, ${callbackIndex});
|
|
233
|
+
|
|
234
|
+
if (!${channelVariable}.start.hasSubscribers) return __apm$traced();
|
|
235
|
+
|
|
236
|
+
function __apm$wrappedCb(err, res) {
|
|
237
|
+
if (err) {
|
|
238
|
+
__apm$ctx.error = err;
|
|
239
|
+
${channelVariable}.error.publish(__apm$ctx);
|
|
240
|
+
} else {
|
|
241
|
+
__apm$ctx.result = res;
|
|
242
|
+
${iterPatch}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
${channelVariable}.asyncStart.runStores(__apm$ctx, () => {
|
|
246
|
+
try {
|
|
247
|
+
if (__apm$cb) {
|
|
248
|
+
return __apm$cb.apply(this, arguments);
|
|
249
|
+
}
|
|
250
|
+
} finally {
|
|
251
|
+
${channelVariable}.asyncEnd.publish(__apm$ctx);
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if (typeof __apm$cb !== 'function') {
|
|
257
|
+
return __apm$traced();
|
|
258
|
+
}
|
|
259
|
+
Array.prototype.splice.call(__apm$arguments, ${callbackIndex}, 1, __apm$wrappedCb);
|
|
260
|
+
|
|
261
|
+
return ${channelVariable}.start.runStores(__apm$ctx, () => {
|
|
262
|
+
try {
|
|
263
|
+
return __apm$traced();
|
|
264
|
+
} catch (err) {
|
|
265
|
+
__apm$ctx.error = err;
|
|
266
|
+
${channelVariable}.error.publish(__apm$ctx);
|
|
267
|
+
throw err;
|
|
268
|
+
} finally {
|
|
269
|
+
__apm$ctx.self ??= this;
|
|
270
|
+
${channelVariable}.end.publish(__apm$ctx);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
`);
|
|
275
|
+
}
|
|
276
|
+
function wrapPromise(state, node, iterPatch = "") {
|
|
277
|
+
const { channelName } = state;
|
|
278
|
+
const channelVariable = formatChannelVariable(channelName);
|
|
279
|
+
return parse(`
|
|
280
|
+
function wrapper () {
|
|
281
|
+
if (!tr_ch_apm_hasSubscribers(${channelVariable})) return __apm$traced();
|
|
282
|
+
|
|
283
|
+
return ${channelVariable}.start.runStores(__apm$ctx, () => {
|
|
284
|
+
try {
|
|
285
|
+
let promise = __apm$traced();
|
|
286
|
+
if (typeof promise?.then !== 'function') {
|
|
287
|
+
__apm$ctx.result = promise;
|
|
288
|
+
${iterPatch}
|
|
289
|
+
return __apm$ctx.result;
|
|
290
|
+
}
|
|
291
|
+
// Mirror Node.js core diagnostics_channel behaviour: for native Promise
|
|
292
|
+
// instances, chain normally (safe since there is no subclass API to
|
|
293
|
+
// preserve). For Promise subclasses and other thenables, side-chain the
|
|
294
|
+
// callbacks for event publishing and return the original so that any
|
|
295
|
+
// subclass-specific methods (e.g. APIPromise.withResponse()) remain
|
|
296
|
+
// accessible to the caller.
|
|
297
|
+
if (promise instanceof Promise && promise.constructor === Promise) {
|
|
298
|
+
return promise.then(
|
|
299
|
+
result => {
|
|
300
|
+
__apm$ctx.result = result;
|
|
301
|
+
${iterPatch}
|
|
302
|
+
${channelVariable}.asyncStart.publish(__apm$ctx);
|
|
303
|
+
${channelVariable}.asyncEnd.publish(__apm$ctx);
|
|
304
|
+
return __apm$ctx.result;
|
|
305
|
+
},
|
|
306
|
+
err => {
|
|
307
|
+
__apm$ctx.error = err;
|
|
308
|
+
${channelVariable}.error.publish(__apm$ctx);
|
|
309
|
+
${channelVariable}.asyncStart.publish(__apm$ctx);
|
|
310
|
+
${channelVariable}.asyncEnd.publish(__apm$ctx);
|
|
311
|
+
throw err;
|
|
312
|
+
}
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
promise.then(
|
|
316
|
+
result => {
|
|
317
|
+
__apm$ctx.result = result;
|
|
318
|
+
${iterPatch}
|
|
319
|
+
${channelVariable}.asyncStart.publish(__apm$ctx);
|
|
320
|
+
${channelVariable}.asyncEnd.publish(__apm$ctx);
|
|
321
|
+
},
|
|
322
|
+
err => {
|
|
323
|
+
__apm$ctx.error = err;
|
|
324
|
+
${channelVariable}.error.publish(__apm$ctx);
|
|
325
|
+
${channelVariable}.asyncStart.publish(__apm$ctx);
|
|
326
|
+
${channelVariable}.asyncEnd.publish(__apm$ctx);
|
|
327
|
+
}
|
|
328
|
+
);
|
|
329
|
+
return promise;
|
|
330
|
+
} catch (err) {
|
|
331
|
+
__apm$ctx.error = err;
|
|
332
|
+
${channelVariable}.error.publish(__apm$ctx);
|
|
333
|
+
throw err;
|
|
334
|
+
} finally {
|
|
335
|
+
__apm$ctx.self ??= this;
|
|
336
|
+
${channelVariable}.end.publish(__apm$ctx);
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
`);
|
|
341
|
+
}
|
|
342
|
+
function wrapSync(state, node, iterPatch = "") {
|
|
343
|
+
const { channelName } = state;
|
|
344
|
+
const channelVariable = formatChannelVariable(channelName);
|
|
345
|
+
return parse(`
|
|
346
|
+
function wrapper () {
|
|
347
|
+
if (!tr_ch_apm_hasSubscribers(${channelVariable})) return __apm$traced();
|
|
348
|
+
|
|
349
|
+
return ${channelVariable}.start.runStores(__apm$ctx, () => {
|
|
350
|
+
try {
|
|
351
|
+
__apm$ctx.result = __apm$traced();
|
|
352
|
+
${iterPatch}
|
|
353
|
+
} catch (err) {
|
|
354
|
+
__apm$ctx.error = err;
|
|
355
|
+
${channelVariable}.error.publish(__apm$ctx);
|
|
356
|
+
throw err;
|
|
357
|
+
} finally {
|
|
358
|
+
__apm$ctx.self ??= this;
|
|
359
|
+
${channelVariable}.end.publish(__apm$ctx);
|
|
360
|
+
}
|
|
361
|
+
return __apm$ctx.result;
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
`);
|
|
365
|
+
}
|
|
366
|
+
function declareIteratorChannel(state, program) {
|
|
367
|
+
const { channelName, module: { name } } = state;
|
|
368
|
+
const iterChannelVariable = formatChannelVariable(channelName + ":next");
|
|
369
|
+
if (program.body.some((child) => child.declarations?.[0]?.id?.name === iterChannelVariable)) return;
|
|
370
|
+
const channelVariable = formatChannelVariable(channelName);
|
|
371
|
+
const index = program.body.findIndex(
|
|
372
|
+
(child) => child.declarations?.[0]?.id?.name === channelVariable
|
|
373
|
+
);
|
|
374
|
+
const code = `const ${iterChannelVariable} = tr_ch_apm_tracingChannel("orchestrion:${name}:${channelName}:next")`;
|
|
375
|
+
program.body.splice(index + 1, 0, parse(code).body[0]);
|
|
376
|
+
}
|
|
377
|
+
function generateIterPatch(state, returnKind, program) {
|
|
378
|
+
const { channelName } = state;
|
|
379
|
+
const traceMethod = returnKind === "Iterator" ? "traceSync" : "tracePromise";
|
|
380
|
+
const iterChannelVariable = formatChannelVariable(channelName + ":next");
|
|
381
|
+
declareIteratorChannel(state, program);
|
|
382
|
+
return `
|
|
383
|
+
const __apm$iter = __apm$ctx.result;
|
|
384
|
+
if (__apm$iter != null && typeof __apm$iter.next === 'function') {
|
|
385
|
+
const __apm$patchIter = function (method) {
|
|
386
|
+
const __apm$orig = __apm$iter[method];
|
|
387
|
+
if (typeof __apm$orig !== 'function') return;
|
|
388
|
+
__apm$iter[method] = function () {
|
|
389
|
+
const __apm$iterArgs = Array.prototype.slice.call(arguments);
|
|
390
|
+
if (!tr_ch_apm_hasSubscribers(${iterChannelVariable})) return __apm$orig.apply(this, __apm$iterArgs);
|
|
391
|
+
__apm$ctx.method = method;
|
|
392
|
+
__apm$ctx.arguments = __apm$iterArgs;
|
|
393
|
+
return ${iterChannelVariable}.${traceMethod}(__apm$orig, __apm$ctx, this, ...__apm$iterArgs);
|
|
394
|
+
};
|
|
395
|
+
};
|
|
396
|
+
__apm$patchIter('next');
|
|
397
|
+
__apm$patchIter('throw');
|
|
398
|
+
__apm$patchIter('return');
|
|
399
|
+
}
|
|
400
|
+
`;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
var transformsExports = transforms$1.__module.exports;
|
|
404
|
+
|
|
405
|
+
exports.transformsExports = transformsExports;
|
|
406
|
+
//# sourceMappingURL=transforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transforms.js","sources":["../../../../../../../../node_modules/@apm-js-collab/code-transformer/lib/transforms.js"],"sourcesContent":["'use strict'\n\nconst esquery = require('esquery')\nconst { parse } = require('meriyah')\n\n/**\n * Returns `true` if `node` is already a `tracingChannel` import/require statement,\n * used to avoid duplicate injections.\n *\n * @param {import('estree').Node} node\n * @returns {boolean}\n */\nconst tracingChannelPredicate = (node) => (\n node.declarations?.[0]?.id?.properties?.[0]?.value?.name === 'tr_ch_apm_tracingChannel'\n)\n\nconst CHANNEL_REGEX = /[^\\w]/g\n/**\n * Formats the channel variable name by replacing any non-whitespace characters with `_`\n *\n * @param {string} channelName\n */\nconst formatChannelVariable = (channelName) => `tr_ch_apm$${channelName.replace(CHANNEL_REGEX, '_')}`\n\nconst transforms = module.exports = {\n /**\n * Injects a `tracingChannel` import/require into the program body if one is not\n * already present.\n *\n * @param {{ dcModule: string, sourceType: 'module'|'script' }} state\n * @param {import('estree').Program} node - The program root node.\n */\n tracingChannelImport ({ dcModule, moduleType }, node) {\n if (node.body.some(tracingChannelPredicate)) return\n\n const options = { module: moduleType === 'esm' }\n const index = node.body.findIndex(child => child.directive === 'use strict')\n const dc = moduleType === 'esm'\n ? `import tr_ch_apm_dc from \"${dcModule}\"`\n : `const tr_ch_apm_dc = require(\"${dcModule}\")`\n const tracingChannel = 'const { tracingChannel: tr_ch_apm_tracingChannel } = tr_ch_apm_dc'\n const hasSubscribers = `const tr_ch_apm_hasSubscribers = ch => ch.start.hasSubscribers\n || ch.end.hasSubscribers\n || ch.asyncStart.hasSubscribers\n || ch.asyncEnd.hasSubscribers\n || ch.error.hasSubscribers`\n\n node.body.splice(\n index + 1,\n 0,\n parse(dc, options).body[0],\n parse(tracingChannel, options).body[0],\n parse(hasSubscribers, options).body[0]\n )\n },\n\n /**\n * Injects a `tracingChannel(...)` variable declaration for the config's channel\n * into the program body, also ensuring the import is present.\n *\n * @param {{ channelName: string, module: { name: string }, dcModule: string, sourceType: 'module'|'script' }} state\n * @param {import('estree').Program} node - The program root node.\n */\n tracingChannelDeclaration (state, node) {\n const { channelName, module: { name } } = state\n const channelVariable = formatChannelVariable(channelName)\n\n if (node.body.some(child => child.declarations?.[0]?.id?.name === channelVariable)) return\n\n transforms.tracingChannelImport(state, node)\n\n const index = node.body.findIndex(tracingChannelPredicate)\n const code = `\n const ${channelVariable} = tr_ch_apm_tracingChannel(\"orchestrion:${name}:${channelName}\")\n `\n\n node.body.splice(index + 1, 0, parse(code).body[0])\n },\n\n traceCallback: traceAny,\n tracePromise: traceAny,\n traceSync: traceAny,\n traceAuto: traceAny,\n}\n\n/**\n * Replaces a function's params with numbered placeholders (`__apm$arg0`,\n * `__apm$arg1`, ...) plus a rest element (`...__apm$args`) to capture overflow.\n * This preserves the function's `.length` while giving the preamble a uniform\n * way to reconstruct all call-site arguments. `RestElement` and\n * `AssignmentPattern` params are excluded from the count since they do not\n * contribute to `.length`.\n *\n * @param {import('estree').Pattern[]} params - The original function params.\n * @returns {import('estree').Pattern[]} The replacement params.\n */\nfunction wrapParams (params) {\n const originalParams = params || []\n const numberedParams = originalParams\n .filter(param => param.type !== 'RestElement' && param.type !== 'AssignmentPattern')\n .map((_, i) => ({ type: 'Identifier', name: `__apm$arg${i}` }))\n\n return [\n ...numberedParams,\n { type: 'RestElement', argument: { type: 'Identifier', name: '__apm$args' } }\n ]\n}\n/**\n * Generic trace entry point. Dispatches to {@link traceInstanceMethod} for class\n * nodes or {@link traceFunction} for all other function nodes.\n *\n * @param {object} state - Merged instrumentation + runtime state.\n * @param {import('estree').Node} node - Matched AST node.\n * @param {import('estree').Node} _parent\n * @param {import('estree').Node[]} ancestry - Full ancestor chain, root last.\n */\nfunction traceAny (state, node, _parent, ancestry) {\n const program = ancestry[ancestry.length - 1]\n\n if (node.type === 'ClassDeclaration' || node.type === 'ClassExpression') {\n traceInstanceMethod(state, node, program)\n } else {\n traceFunction(state, node, program)\n }\n}\n\n/**\n * Wraps a function node's body with diagnostics_channel tracing.\n *\n * Injects the channel declaration, wraps the original body in an inner function,\n * and rewrites `super` references if needed.\n *\n * @param {object} state\n * @param {import('estree').Function} node - The function node to instrument.\n * @param {import('estree').Program} program\n */\nfunction traceFunction (state, node, program) {\n transforms.tracingChannelDeclaration(state, program)\n\n const { functionQuery: { methodName, privateMethodName, functionName, expressionName, propertyName } } = state\n const isConstructor = methodName === 'constructor' ||\n (!methodName && !privateMethodName && !functionName && !expressionName && !propertyName)\n const type = isConstructor ? 'ArrowFunctionExpression' : node.type\n const params = node.params\n\n node.body = wrap(state, {\n type,\n params,\n body: node.body,\n async: node.async,\n expression: false,\n generator: node.generator,\n }, program)\n\n node.params = wrapParams(params)\n\n // The original function no longer contains any calls to `await` or `yield` as\n // the function body is copied to the internal wrapped function, so we set\n // these to false to avoid altering the return value of the wrapper. The old\n // values are instead copied to the new AST node above.\n node.generator = false\n node.async = false\n\n wrapSuper(state, node)\n}\n\n/**\n * Instruments an instance method that may not exist on the class at definition\n * time by patching it inside the constructor.\n *\n * If the method is already defined on the class body it is skipped (it will be\n * handled via {@link traceFunction} when the child node is visited). Otherwise a\n * constructor is synthesised (or extended) to wrap `this[methodName]` at runtime.\n *\n * @param {object} state\n * @param {import('estree').ClassDeclaration|import('estree').ClassExpression} node\n * @param {import('estree').Program} program\n */\nfunction traceInstanceMethod (state, node, program) {\n const { functionQuery, operator } = state\n const { methodName } = functionQuery\n\n // No methodName means a constructor-only config — the constructor FunctionExpression\n // is matched directly by the other queries and handled via traceFunction instead.\n if (!methodName) return\n\n const classBody = node.body\n\n // If the method exists on the class, we return as it will be patched later\n // while traversing child nodes later on.\n if (classBody.body.some(({ key }) => key.name === methodName)) return\n\n // Method doesn't exist on the class so we assume an instance method and\n // wrap it in the constructor instead.\n let ctor = classBody.body.find(({ kind }) => kind === 'constructor')\n\n transforms.tracingChannelDeclaration(state, program)\n\n if (!ctor) {\n ctor = parse(\n node.superClass\n ? 'class A extends Object { constructor (...args) { super(...args) } }'\n : 'class A { constructor () {} }'\n ).body[0].body.body[0] // Extract constructor from dummy class body.\n\n classBody.body.unshift(ctor)\n }\n\n const ctorBody = parse(`\n const __apm$${methodName} = this[\"${methodName}\"]\n this[\"${methodName}\"] = function () {}\n if (typeof __apm$${methodName} === 'function') {\n Object.defineProperty(this[\"${methodName}\"], 'length', {\n value: __apm$${methodName}.length,\n configurable: true\n })\n }\n `).body\n\n // Extract only right-hand side function of line 2.\n const fn = ctorBody[1].expression.right\n fn.params = [{ type: 'RestElement', argument: { type: 'Identifier', name: '__apm$args' } }]\n\n fn.async = operator === 'tracePromise'\n fn.body = wrap(state, { type: 'Identifier', name: `__apm$${methodName}` }, program)\n wrapSuper(state, fn)\n\n ctor.value.body.body.push(...ctorBody)\n}\n\n/**\n * Builds the replacement block statement for a function body.\n *\n * Selects the appropriate wrapper template (`wrapSync`, `wrapPromise`, etc.) and\n * prepends the shared `__apm$ctx` / `__apm$traced` preamble before returning the\n * resulting block statement body.\n *\n * @param {object} state\n * @param {import('estree').Node} node - The original function (or identifier for instance methods).\n * @param {import('estree').Program} program\n * @returns {import('estree').BlockStatement['body']}\n */\nfunction wrap (state, node, program) {\n const { operator, moduleVersion } = state\n const { returnKind } = state.functionQuery\n\n const iterPatch = returnKind ? generateIterPatch(state, returnKind, program) : ''\n\n let wrapper\n\n if (operator === 'traceCallback') wrapper = wrapCallback(state, node, iterPatch)\n if (operator === 'tracePromise') wrapper = wrapPromise(state, node, iterPatch)\n if (operator === 'traceSync') wrapper = wrapSync(state, node, iterPatch)\n if (operator === 'traceAuto') wrapper = wrapAuto(state, node, iterPatch)\n\n const args = (node.params || [])\n .filter(param => param.type !== 'RestElement' && param.type !== 'AssignmentPattern')\n .map((_, i) => `__apm$arg${i}`).concat('...__apm$args').join(', ')\n\n const block = wrapper.body[0].body // Extract only block statement of function body.\n const common = parse(node.type === 'ArrowFunctionExpression'\n ? `\n const __apm$arguments = [${args}];\n const __apm$ctx = {\n arguments: __apm$arguments,\n moduleVersion: ${JSON.stringify(moduleVersion)}\n };\n const __apm$traced = () => {\n const __apm$wrapped = () => {};\n return __apm$wrapped(...__apm$arguments);\n };\n `\n : `\n const __apm$arguments = [${args}].slice(0, arguments.length);\n const __apm$ctx = {\n arguments: __apm$arguments,\n self: this,\n moduleVersion: ${JSON.stringify(moduleVersion)}\n };\n const __apm$traced = () => {\n const __apm$wrapped = () => {};\n return __apm$wrapped.apply(this, __apm$arguments);\n };\n `).body\n\n block.body.unshift(...common)\n\n // Replace the right-hand side assignment of `const __apm$wrapped = () => {}`.\n esquery.query(block, '[id.name=__apm$wrapped]')[0].init = node\n\n return block\n}\n\n/**\n * Rewrites `super.method(...)` calls inside a moved function body.\n *\n * Because the original body is copied into a nested arrow/function, `super` would\n * no longer be in scope. Each unique `super.x` reference is replaced with\n * `__apm$super['x']` and a preamble that captures the super-binding in the\n * outermost method scope is prepended.\n *\n * @param {object} _state\n * @param {import('estree').Function} node - The outer (wrapper) function node.\n */\nfunction wrapSuper (_state, node) {\n const members = new Set()\n\n esquery.traverse(\n node.body,\n esquery.parse('[object.type=Super]'),\n (node, parent) => {\n const { name } = node.property\n\n let child\n\n if (parent.callee) {\n // This is needed because for generator functions we have to move the\n // original function to a nested wrapped function, but we can't use an\n // arrow function because arrow function cannot be generator functions,\n // and `super` cannot be called from a nested function, so we have to\n // rewrite any `super` call to not use the keyword.\n const { expression } = parse(`__apm$super['${name}'].call(this)`).body[0]\n\n parent.callee = child = expression.callee\n parent.arguments.unshift(...expression.arguments)\n } else {\n parent.expression = child = parse(`__apm$super['${name}']`).body[0]\n }\n\n child.computed = parent.callee.computed\n child.optional = parent.callee.optional\n\n members.add(name)\n }\n )\n\n for (const name of members) {\n const member = parse(`\n class Wrapper {\n wrapper () {\n __apm$super['${name}'] = super['${name}']\n }\n }\n `).body[0].body.body[0].value.body.body[0]\n\n node.body.body.unshift(member)\n }\n\n if (members.size > 0) {\n node.body.body.unshift(parse('const __apm$super = {}').body[0])\n }\n}\n\n/**\n * Builds a composite wrapper AST that detects at runtime whether to use callback\n * or promise tracing: if the argument at `callbackIndex` is a function, the\n * callback path is taken; otherwise the promise path is used as the fallback.\n *\n * @param {object} state\n * @param {import('estree').Node} node\n * @param {import('estree').Program} program\n * @returns {import('estree').Program} Parsed wrapper function program.\n */\nfunction wrapAuto (state, node, iterPatch = '') {\n const cbWrapperAST = wrapCallback(state, node, iterPatch)\n const promiseWrapperAST = wrapPromise(state, node, iterPatch)\n\n const [\n getCbArg,\n checkHasSubscribers,\n defineWrappedCb,\n checkCbIsFunction,\n spliceCbArg,\n runStores,\n ] = cbWrapperAST.body[0].body.body\n\n const fallbackToPromise = {\n type: 'IfStatement',\n test: checkCbIsFunction.test,\n consequent: { type: 'BlockStatement', body: promiseWrapperAST.body[0].body.body },\n alternate: null,\n }\n\n cbWrapperAST.body[0].body.body = [\n getCbArg,\n fallbackToPromise,\n checkHasSubscribers,\n defineWrappedCb,\n spliceCbArg,\n runStores,\n ]\n\n return cbWrapperAST\n}\n\n/**\n * Builds the wrapper AST for a callback-style function.\n *\n * Replaces the callback argument (at `callbackIndex`) with a wrapped version that\n * publishes to the tracing channel on completion or error.\n *\n * @param {{ channelName: string, functionQuery: { callbackIndex?: number } }} state\n * @param {import('estree').Node} node - The original function node (unused; replaced by preamble).\n * @returns {import('estree').Program} Parsed wrapper function program.\n */\nfunction wrapCallback (state, node, iterPatch = '') {\n const { channelName, functionQuery: { callbackIndex = -1 } } = state\n const channelVariable = formatChannelVariable(channelName)\n\n return parse(`\n function wrapper () {\n const __apm$cb = Array.prototype.at.call(__apm$arguments, ${callbackIndex});\n\n if (!${channelVariable}.start.hasSubscribers) return __apm$traced();\n\n function __apm$wrappedCb(err, res) {\n if (err) {\n __apm$ctx.error = err;\n ${channelVariable}.error.publish(__apm$ctx);\n } else {\n __apm$ctx.result = res;\n ${iterPatch}\n }\n\n ${channelVariable}.asyncStart.runStores(__apm$ctx, () => {\n try {\n if (__apm$cb) {\n return __apm$cb.apply(this, arguments);\n }\n } finally {\n ${channelVariable}.asyncEnd.publish(__apm$ctx);\n }\n });\n }\n\n if (typeof __apm$cb !== 'function') {\n return __apm$traced();\n }\n Array.prototype.splice.call(__apm$arguments, ${callbackIndex}, 1, __apm$wrappedCb);\n\n return ${channelVariable}.start.runStores(__apm$ctx, () => {\n try {\n return __apm$traced();\n } catch (err) {\n __apm$ctx.error = err;\n ${channelVariable}.error.publish(__apm$ctx);\n throw err;\n } finally {\n __apm$ctx.self ??= this;\n ${channelVariable}.end.publish(__apm$ctx);\n }\n });\n }\n `)\n}\n\n/**\n * Builds the wrapper AST for a Promise-returning function.\n *\n * Uses `runStores` to propagate async context and publishes\n * `asyncStart`/`asyncEnd`/`error` channel events on settlement.\n *\n * @param {{ channelName: string }} state\n * @param {import('estree').Node} node\n * @returns {import('estree').Program} Parsed wrapper function program.\n */\nfunction wrapPromise (state, node, iterPatch = '') {\n const { channelName } = state\n const channelVariable = formatChannelVariable(channelName)\n\n // A subscriber can substitute the resolved value by reassigning\n // `message.result` in `asyncEnd` (the wrapper returns `__apm$ctx.result`),\n // but ONLY for native `Promise` instances. For Promise subclasses and other\n // thenables we side-chain the callbacks and return the original object so\n // that any subclass-specific methods (e.g. `APIPromise.withResponse()`)\n // remain accessible to the caller; that means their resolved value cannot be\n // mutated.\n return parse(`\n function wrapper () {\n if (!tr_ch_apm_hasSubscribers(${channelVariable})) return __apm$traced();\n\n return ${channelVariable}.start.runStores(__apm$ctx, () => {\n try {\n let promise = __apm$traced();\n if (typeof promise?.then !== 'function') {\n __apm$ctx.result = promise;\n ${iterPatch}\n return __apm$ctx.result;\n }\n // Mirror Node.js core diagnostics_channel behaviour: for native Promise\n // instances, chain normally (safe since there is no subclass API to\n // preserve). For Promise subclasses and other thenables, side-chain the\n // callbacks for event publishing and return the original so that any\n // subclass-specific methods (e.g. APIPromise.withResponse()) remain\n // accessible to the caller.\n if (promise instanceof Promise && promise.constructor === Promise) {\n return promise.then(\n result => {\n __apm$ctx.result = result;\n ${iterPatch}\n ${channelVariable}.asyncStart.publish(__apm$ctx);\n ${channelVariable}.asyncEnd.publish(__apm$ctx);\n return __apm$ctx.result;\n },\n err => {\n __apm$ctx.error = err;\n ${channelVariable}.error.publish(__apm$ctx);\n ${channelVariable}.asyncStart.publish(__apm$ctx);\n ${channelVariable}.asyncEnd.publish(__apm$ctx);\n throw err;\n }\n );\n }\n promise.then(\n result => {\n __apm$ctx.result = result;\n ${iterPatch}\n ${channelVariable}.asyncStart.publish(__apm$ctx);\n ${channelVariable}.asyncEnd.publish(__apm$ctx);\n },\n err => {\n __apm$ctx.error = err;\n ${channelVariable}.error.publish(__apm$ctx);\n ${channelVariable}.asyncStart.publish(__apm$ctx);\n ${channelVariable}.asyncEnd.publish(__apm$ctx);\n }\n );\n return promise;\n } catch (err) {\n __apm$ctx.error = err;\n ${channelVariable}.error.publish(__apm$ctx);\n throw err;\n } finally {\n __apm$ctx.self ??= this;\n ${channelVariable}.end.publish(__apm$ctx);\n }\n });\n }\n `)\n}\n\n/**\n * Builds the wrapper AST for a synchronous function.\n *\n * Uses `runStores` for context propagation and publishes `error` channel events\n * on throw. The result is stored in `__apm$ctx.result` on success, and the\n * wrapper returns whatever `__apm$ctx.result` holds after `end` publishes, so a\n * subscriber's `end` handler can substitute the return value via `message.result`.\n *\n * @param {{ channelName: string }} state\n * @param {import('estree').Node} node\n * @returns {import('estree').Program} Parsed wrapper function program.\n */\nfunction wrapSync (state, node, iterPatch = '') {\n const { channelName } = state\n const channelVariable = formatChannelVariable(channelName)\n\n // The return value is whatever `__apm$ctx.result` holds *after* `end` has\n // published, so a subscriber's `end` handler can reassign `message.result`\n // to substitute it (e.g. to wrap a returned handler). The `return`\n // therefore sits below the `try`/`finally`: on the throw path the `catch`\n // re-throws, so the trailing `return` is unreachable.\n return parse(`\n function wrapper () {\n if (!tr_ch_apm_hasSubscribers(${channelVariable})) return __apm$traced();\n\n return ${channelVariable}.start.runStores(__apm$ctx, () => {\n try {\n __apm$ctx.result = __apm$traced();\n ${iterPatch}\n } catch (err) {\n __apm$ctx.error = err;\n ${channelVariable}.error.publish(__apm$ctx);\n throw err;\n } finally {\n __apm$ctx.self ??= this;\n ${channelVariable}.end.publish(__apm$ctx);\n }\n return __apm$ctx.result;\n });\n }\n `)\n}\n\n/**\n * Injects a `:next` tracing channel declaration (for iterator method tracing) into\n * the program body, inserting it immediately after the main channel declaration.\n *\n * @param {object} state\n * @param {import('estree').Program} program\n */\nfunction declareIteratorChannel (state, program) {\n const { channelName, module: { name } } = state\n const iterChannelVariable = formatChannelVariable(channelName + ':next')\n\n if (program.body.some(child => child.declarations?.[0]?.id?.name === iterChannelVariable)) return\n\n const channelVariable = formatChannelVariable(channelName)\n const index = program.body.findIndex(child =>\n child.declarations?.[0]?.id?.name === channelVariable\n )\n const code = `const ${iterChannelVariable} = tr_ch_apm_tracingChannel(\"orchestrion:${name}:${channelName}:next\")`\n program.body.splice(index + 1, 0, parse(code).body[0])\n}\n\n/**\n * Generates the iterator-patching code string for injection into an existing\n * wrapper. Patches `next`, `throw`, and `return` on the iterator held in\n * `__apm$ctx.result`, publishing to the `:next` tracing channel via\n * `traceSync` or `tracePromise` depending on `returnKind`.\n *\n * @param {object} state\n * @param {'Iterator'|'AsyncIterator'} returnKind\n * @param {import('estree').Program} program\n * @returns {string}\n */\nfunction generateIterPatch (state, returnKind, program) {\n const { channelName } = state\n const traceMethod = returnKind === 'Iterator' ? 'traceSync' : 'tracePromise'\n const iterChannelVariable = formatChannelVariable(channelName + ':next')\n\n declareIteratorChannel(state, program)\n\n return `\n const __apm$iter = __apm$ctx.result;\n if (__apm$iter != null && typeof __apm$iter.next === 'function') {\n const __apm$patchIter = function (method) {\n const __apm$orig = __apm$iter[method];\n if (typeof __apm$orig !== 'function') return;\n __apm$iter[method] = function () {\n const __apm$iterArgs = Array.prototype.slice.call(arguments);\n if (!tr_ch_apm_hasSubscribers(${iterChannelVariable})) return __apm$orig.apply(this, __apm$iterArgs);\n __apm$ctx.method = method;\n __apm$ctx.arguments = __apm$iterArgs;\n return ${iterChannelVariable}.${traceMethod}(__apm$orig, __apm$ctx, this, ...__apm$iterArgs);\n };\n };\n __apm$patchIter('next');\n __apm$patchIter('throw');\n __apm$patchIter('return');\n }\n `\n}\n"],"names":["require$$0","require$$1","transformsModule","node"],"mappings":"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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAMvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACR,CAAA,CAAA,CAAA,CAAA,CAAA,GAAQ,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACR,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,EAAK,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,EAAK,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAE,CAAA,CAAA,CAAA,EAAK,CAAC;AAAA,CAAA,CAAA,CAAA,CAAA,CACvC;AAAA,CAAA,CAAA,CACF;AAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAO9C;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACyB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEmD,aAAa,CAAA,CAAA;;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAElE,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKhB,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAGf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGX,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAMX,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAQwB,aAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEnD,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKlB,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAIxB,CAAA;AACH;AAYA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAsB,WAAW,CAAA;AASzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAA,CAAM;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEuB,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEtC,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAKhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAaL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAQjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAGlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGT,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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A,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAQiC,mBAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAG1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,IAAI,WAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAQrD;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const chunkD6vf50IK = require('../../../../../_virtual/chunk-D6vf50IK.js');
|
|
2
|
+
|
|
3
|
+
(function (exports) {
|
|
4
|
+
//#region \0rolldown/runtime.js
|
|
5
|
+
var __create = Object.create;
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
9
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
13
|
+
key = keys[i];
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
|
+
get: ((k) => from[k]).bind(null, key),
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
22
|
+
value: mod,
|
|
23
|
+
enumerable: true
|
|
24
|
+
}) : target, mod));
|
|
25
|
+
//#endregion
|
|
26
|
+
Object.defineProperty(exports, "__toESM", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function() {
|
|
29
|
+
return __toESM;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
} (chunkD6vf50IK.__exports));
|
|
33
|
+
//# sourceMappingURL=chunk-D6vf50IK.js.map
|