dd-trace 6.20.1 → 6.22.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.
Files changed (225) hide show
  1. package/ci/diagnose.js +9 -14
  2. package/ci/init.js +1 -2
  3. package/ci/test-optimization-validation/ci-discovery.js +9 -4
  4. package/ci/test-optimization-validation/executable.js +1 -5
  5. package/ci/test-optimization-validation/framework-adapters/cypress.js +1 -4
  6. package/ci/test-optimization-validation/framework-adapters/vitest.js +1 -1
  7. package/ci/test-optimization-validation/generated-files.js +6 -4
  8. package/ci/test-optimization-validation/generated-test-contract.js +7 -3
  9. package/ci/test-optimization-validation/manifest-scaffold.js +7 -2
  10. package/ci/test-optimization-validation/manifest-schema.js +6 -7
  11. package/ci/test-optimization-validation/report-writer.js +6 -2
  12. package/ci/test-optimization-validation/runner-command.js +2 -4
  13. package/ci/test-optimization-validation/runner-contract.js +1 -2
  14. package/ci/test-optimization-validation/scenarios/auto-test-retries.js +1 -15
  15. package/ci/vitest-no-worker-init-setup.mjs +10 -7
  16. package/index.d.ts +116 -17
  17. package/initialize.mjs +1 -3
  18. package/openfeature/rules-based.d.ts +11 -0
  19. package/openfeature/rules-based.js +7 -0
  20. package/package.json +13 -11
  21. package/packages/datadog-core/src/storage.js +16 -0
  22. package/packages/datadog-esbuild/index.js +18 -12
  23. package/packages/datadog-instrumentations/src/aerospike.js +3 -3
  24. package/packages/datadog-instrumentations/src/ai.js +3 -3
  25. package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js.js +0 -6
  26. package/packages/datadog-instrumentations/src/aws-sdk.js +21 -13
  27. package/packages/datadog-instrumentations/src/cassandra-driver.js +25 -20
  28. package/packages/datadog-instrumentations/src/claude-agent-sdk.js +9 -23
  29. package/packages/datadog-instrumentations/src/cucumber.js +48 -33
  30. package/packages/datadog-instrumentations/src/elasticsearch.js +1 -5
  31. package/packages/datadog-instrumentations/src/electron.js +6 -6
  32. package/packages/datadog-instrumentations/src/fastify.js +13 -4
  33. package/packages/datadog-instrumentations/src/fs.js +2 -2
  34. package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +9 -5
  35. package/packages/datadog-instrumentations/src/grpc/client.js +2 -0
  36. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +2 -2
  37. package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +1 -2
  38. package/packages/datadog-instrumentations/src/helpers/instrument.js +1 -1
  39. package/packages/datadog-instrumentations/src/helpers/register.js +36 -1
  40. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +2 -0
  41. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentation-registry.js +87 -6
  42. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/graphql-jit.js +5 -6
  43. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/postgres.js +48 -31
  44. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/webdriverio.js +64 -11
  45. package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +1 -0
  46. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms/postgres.js +42 -4
  47. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +7 -10
  48. package/packages/datadog-instrumentations/src/ioredis.js +7 -5
  49. package/packages/datadog-instrumentations/src/iovalkey.js +7 -5
  50. package/packages/datadog-instrumentations/src/jest.js +122 -11
  51. package/packages/datadog-instrumentations/src/knex.js +9 -5
  52. package/packages/datadog-instrumentations/src/mariadb-bundle.js +3 -3
  53. package/packages/datadog-instrumentations/src/mocha/common.js +20 -8
  54. package/packages/datadog-instrumentations/src/mocha/main.js +140 -43
  55. package/packages/datadog-instrumentations/src/mocha/utils.js +127 -38
  56. package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +61 -34
  57. package/packages/datadog-instrumentations/src/mocha/worker.js +7 -5
  58. package/packages/datadog-instrumentations/src/mongodb-core.js +3 -3
  59. package/packages/datadog-instrumentations/src/mongoose.js +3 -3
  60. package/packages/datadog-instrumentations/src/nova-sonic/audio.js +173 -0
  61. package/packages/datadog-instrumentations/src/nova-sonic/index.js +209 -0
  62. package/packages/datadog-instrumentations/src/nova-sonic/session.js +483 -0
  63. package/packages/datadog-instrumentations/src/openai-realtime/index.js +18 -6
  64. package/packages/datadog-instrumentations/src/openai-realtime/session.js +1 -1
  65. package/packages/datadog-instrumentations/src/openai.js +7 -0
  66. package/packages/datadog-instrumentations/src/pino.js +5 -6
  67. package/packages/datadog-instrumentations/src/playwright.js +3 -0
  68. package/packages/datadog-instrumentations/src/redis.js +27 -13
  69. package/packages/datadog-instrumentations/src/router.js +30 -0
  70. package/packages/datadog-instrumentations/src/rum-browser-scripts.js +2 -6
  71. package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +7 -5
  72. package/packages/datadog-instrumentations/src/vitest-main.js +9 -17
  73. package/packages/datadog-instrumentations/src/vitest-util.js +2 -2
  74. package/packages/datadog-instrumentations/src/vitest-worker.js +1 -2
  75. package/packages/datadog-instrumentations/src/vitest.js +2 -2
  76. package/packages/datadog-instrumentations/src/webdriverio.js +118 -21
  77. package/packages/datadog-instrumentations/src/ws.js +1 -4
  78. package/packages/datadog-plugin-amqplib/src/client.js +1 -2
  79. package/packages/datadog-plugin-avsc/src/schema_iterator.js +1 -5
  80. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/handler.js +1 -2
  81. package/packages/datadog-plugin-aws-sdk/src/base.js +5 -8
  82. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +18 -0
  83. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/sonic.js +45 -0
  84. package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +9 -3
  85. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +2 -5
  86. package/packages/datadog-plugin-azure-durable-functions/src/index.js +5 -4
  87. package/packages/datadog-plugin-azure-functions/src/index.js +5 -3
  88. package/packages/datadog-plugin-claude-agent-sdk/src/index.js +0 -2
  89. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +18 -5
  90. package/packages/datadog-plugin-cypress/src/index.js +6 -6
  91. package/packages/datadog-plugin-cypress/src/source-map-utils.js +1 -2
  92. package/packages/datadog-plugin-cypress/src/support.js +1 -4
  93. package/packages/datadog-plugin-express/src/code_origin.js +1 -2
  94. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +2 -2
  95. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +1 -2
  96. package/packages/datadog-plugin-graphql/src/execute.js +5 -5
  97. package/packages/datadog-plugin-grpc/src/util.js +1 -2
  98. package/packages/datadog-plugin-kafkajs/src/producer.js +1 -2
  99. package/packages/datadog-plugin-mocha/src/index.js +223 -39
  100. package/packages/datadog-plugin-mocha/src/webdriverio-video.js +453 -0
  101. package/packages/datadog-plugin-mongodb-core/src/query.js +8 -5
  102. package/packages/datadog-plugin-next/src/index.js +1 -2
  103. package/packages/datadog-plugin-openai/src/tracing.js +5 -2
  104. package/packages/datadog-plugin-openai-agents/src/integration.js +6 -2
  105. package/packages/datadog-plugin-openai-agents/src/processor.js +2 -4
  106. package/packages/datadog-plugin-postgres/src/index.js +24 -0
  107. package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +1 -5
  108. package/packages/datadog-plugin-rhea/src/consumer.js +1 -4
  109. package/packages/datadog-plugin-vitest/src/index.js +5 -2
  110. package/packages/datadog-shimmer/src/shimmer.js +5 -4
  111. package/packages/datadog-webpack/index.js +55 -43
  112. package/packages/datadog-webpack/src/loader.js +56 -8
  113. package/packages/dd-trace/src/aiguard/integrations/vercel-ai.js +2 -4
  114. package/packages/dd-trace/src/aiguard/messages/utils.js +1 -2
  115. package/packages/dd-trace/src/aiguard/redaction.js +8 -2
  116. package/packages/dd-trace/src/appsec/api_security/normalized-route.js +3 -2
  117. package/packages/dd-trace/src/appsec/api_security/sampler.js +2 -6
  118. package/packages/dd-trace/src/appsec/downstream_requests.js +1 -9
  119. package/packages/dd-trace/src/appsec/handlers/http-request.js +3 -9
  120. package/packages/dd-trace/src/appsec/handlers/http-response.js +7 -2
  121. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +4 -3
  122. package/packages/dd-trace/src/appsec/iast/analyzers/set-cookies-header-interceptor.js +1 -4
  123. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +7 -1
  124. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -3
  125. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +1 -3
  126. package/packages/dd-trace/src/appsec/iast/telemetry/iast-metric.js +1 -6
  127. package/packages/dd-trace/src/appsec/lambda.js +1 -3
  128. package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +37 -27
  129. package/packages/dd-trace/src/appsec/rasp/lfi.js +9 -5
  130. package/packages/dd-trace/src/appsec/reporter.js +21 -1
  131. package/packages/dd-trace/src/appsec/stack_trace.js +1 -2
  132. package/packages/dd-trace/src/ci-visibility/dynamic-atr-retries.js +3 -6
  133. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/msgpack-to-json.js +1 -1
  134. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +13 -7
  135. package/packages/dd-trace/src/ci-visibility/exporters/settings-cache-key.js +1 -2
  136. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +2 -8
  137. package/packages/dd-trace/src/ci-visibility/resolve-runfile-path.js +54 -0
  138. package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +5 -8
  139. package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache.js +2 -53
  140. package/packages/dd-trace/src/config/config-types.d.ts +2 -2
  141. package/packages/dd-trace/src/config/defaults.js +5 -5
  142. package/packages/dd-trace/src/config/generated-config-types.d.ts +8 -0
  143. package/packages/dd-trace/src/config/helper.js +34 -3
  144. package/packages/dd-trace/src/config/index.js +10 -9
  145. package/packages/dd-trace/src/config/normalize-service.js +1 -1
  146. package/packages/dd-trace/src/config/parsers.js +2 -2
  147. package/packages/dd-trace/src/config/supported-configurations.json +35 -0
  148. package/packages/dd-trace/src/datastreams/processor.js +3 -2
  149. package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +1 -4
  150. package/packages/dd-trace/src/debugger/constants.js +1 -0
  151. package/packages/dd-trace/src/debugger/devtools_client/index.js +5 -3
  152. package/packages/dd-trace/src/debugger/devtools_client/remote_config.js +17 -12
  153. package/packages/dd-trace/src/debugger/devtools_client/send.js +7 -2
  154. package/packages/dd-trace/src/debugger/devtools_client/status.js +1 -0
  155. package/packages/dd-trace/src/debugger/devtools_client/worker-error.js +21 -0
  156. package/packages/dd-trace/src/debugger/guardrail-metrics.js +2 -2
  157. package/packages/dd-trace/src/debugger/index.js +24 -2
  158. package/packages/dd-trace/src/debugger/probe_sampler.js +108 -11
  159. package/packages/dd-trace/src/dogstatsd.js +1 -1
  160. package/packages/dd-trace/src/encode/tags-processors.js +2 -2
  161. package/packages/dd-trace/src/exporters/common/request.js +2 -5
  162. package/packages/dd-trace/src/exporters/common/url.js +1 -1
  163. package/packages/dd-trace/src/id.js +15 -5
  164. package/packages/dd-trace/src/lambda/handler.js +179 -19
  165. package/packages/dd-trace/src/lambda/index.js +15 -1
  166. package/packages/dd-trace/src/lambda/runtime/patch.js +34 -7
  167. package/packages/dd-trace/src/llmobs/agent-manifest.js +296 -0
  168. package/packages/dd-trace/src/llmobs/audio-utils.js +3 -2
  169. package/packages/dd-trace/src/llmobs/constants/tags.js +13 -0
  170. package/packages/dd-trace/src/llmobs/experiments/experiment.js +1 -1
  171. package/packages/dd-trace/src/llmobs/plugins/anthropic/index.js +15 -0
  172. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +1 -2
  173. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +1 -3
  174. package/packages/dd-trace/src/llmobs/plugins/langgraph/index.js +1 -1
  175. package/packages/dd-trace/src/llmobs/plugins/nova-sonic.js +92 -0
  176. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +56 -2
  177. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +38 -0
  178. package/packages/dd-trace/src/llmobs/prompts/manager.js +5 -7
  179. package/packages/dd-trace/src/llmobs/prompts/prompt.js +1 -1
  180. package/packages/dd-trace/src/llmobs/sdk.js +23 -6
  181. package/packages/dd-trace/src/llmobs/span_processor.js +18 -8
  182. package/packages/dd-trace/src/llmobs/tagger.js +56 -3
  183. package/packages/dd-trace/src/llmobs/util.js +1 -2
  184. package/packages/dd-trace/src/llmobs/writers/base.js +7 -6
  185. package/packages/dd-trace/src/llmobs/writers/util.js +3 -1
  186. package/packages/dd-trace/src/log/log.js +1 -5
  187. package/packages/dd-trace/src/openfeature/agentless_configuration_source.js +30 -1
  188. package/packages/dd-trace/src/openfeature/configuration_source.js +17 -2
  189. package/packages/dd-trace/src/openfeature/debug-logging-hook.js +25 -0
  190. package/packages/dd-trace/src/openfeature/evaluation-telemetry-opt-out-hook.js +51 -0
  191. package/packages/dd-trace/src/openfeature/flagging_provider.js +59 -3
  192. package/packages/dd-trace/src/openfeature/remote_config.js +9 -0
  193. package/packages/dd-trace/src/openfeature/writers/util.js +43 -4
  194. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +1 -1
  195. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +1 -1
  196. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +1 -2
  197. package/packages/dd-trace/src/opentelemetry/otlp/common.proto +1 -1
  198. package/packages/dd-trace/src/opentelemetry/resource-attributes.js +1 -1
  199. package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +6 -23
  200. package/packages/dd-trace/src/opentracing/propagation/text_map.js +53 -13
  201. package/packages/dd-trace/src/otel-sampling.js +4 -5
  202. package/packages/dd-trace/src/otel-thread-ctx.js +81 -15
  203. package/packages/dd-trace/src/plugins/database.js +7 -16
  204. package/packages/dd-trace/src/plugins/util/git.js +9 -25
  205. package/packages/dd-trace/src/plugins/util/inferred_proxy.js +1 -5
  206. package/packages/dd-trace/src/plugins/util/test.js +48 -4
  207. package/packages/dd-trace/src/priority_sampler.js +1 -2
  208. package/packages/dd-trace/src/profiling/profiler.js +4 -6
  209. package/packages/dd-trace/src/profiling/profilers/wall.js +4 -10
  210. package/packages/dd-trace/src/proxy.js +3 -2
  211. package/packages/dd-trace/src/ritm.js +4 -2
  212. package/packages/dd-trace/src/serverless.js +10 -0
  213. package/packages/dd-trace/src/span_processor.js +13 -17
  214. package/packages/dd-trace/src/storage-channels.js +112 -46
  215. package/packages/dd-trace/src/telemetry/endpoints.js +1 -3
  216. package/packages/dd-trace/src/util.js +29 -0
  217. package/packages/dd-trace/src/web-tags-cache.js +6 -2
  218. package/vendor/dist/@datadog/openfeature-node-server/index.js +1 -1
  219. package/vendor/dist/@datadog/openfeature-node-server/rules-based/LICENSE +201 -0
  220. package/vendor/dist/@datadog/openfeature-node-server/rules-based/index.d.ts +925 -0
  221. package/vendor/dist/@datadog/openfeature-node-server/rules-based/index.js +1 -0
  222. package/vendor/dist/@datadog/sketches-js/index.js +1 -1
  223. package/vendor/dist/protobufjs/index.js +1 -1
  224. package/vendor/dist/protobufjs/minimal/index.js +1 -1
  225. package/vendor/dist/shell-quote/index.js +1 -1
@@ -0,0 +1 @@
1
+ (()=>{"use strict";let e,t,n,r,a;var o,i,l,s,u,m,d,p,c,f,b,g,E,y,N,T,h,I,S,_,v,R,A,F,O,L,D,V,U,G,C,w,B,Y,k,Z,P,W,M,X,x,K,J,j,Q,H,$,z,q,ee,et,en,er,ea,eo,ei,el,es,eu={};eu.d=(e,t)=>{for(var n in t)eu.o(t,n)&&!eu.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},eu.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),eu.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var em={};eu.r(em),eu.d(em,{configurationFromRulesBinary:()=>configurationFromRulesBinary,fetchRulesConfiguration:()=>fetchRulesConfiguration,configurationFromString:()=>configurationFromString,ConfigurationFetchError:()=>ConfigurationFetchError,configurationToString:()=>configurationToString});let ed=Uint8Array.prototype.setFromBase64;function base64Decode(e){let t=e.length,n=t-(t+3>>2);(3&t)==0&&"="==e[t-1]&&(n-="="==e[t-2]?2:1);let r=new Uint8Array(n),a=-1;if(ed)try{let n=ed.call(r,e);n.read==t&&(a=n.written)}catch(e){}return a<0&&(a=setFromBase64(r,e)),a==n?r:r.subarray(0,a)}function setFromBase64(e,t){let n=getDecodeTable(),r=0,a=0,o,i=0;for(let l=0;l<t.length;l++){if(void 0===(o=n[t.charCodeAt(l)]))switch(t[l]){case"=":a=0;case"\n":case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(a){case 0:i=o,a=1;break;case 1:e[r++]=i<<2|(48&o)>>4,i=o,a=2;break;case 2:e[r++]=(15&i)<<4|(60&o)>>2,i=o,a=3;break;case 3:e[r++]=(3&i)<<6|o,a=0}}if(1==a)throw Error("invalid base64 string");return r}let ep=Uint8Array.prototype.toBase64,ec={std:{alphabet:"base64",omitPadding:!1},std_raw:{alphabet:"base64",omitPadding:!0},url:{alphabet:"base64url",omitPadding:!0}};function base64Encode(e,t="std"){if(ep)return ep.call(e,ec[t]);let n=getEncodeTable(t),r="std"==t,a="",o=0,i,l=0;for(let t=0;t<e.length;t++)switch(i=e[t],o){case 0:a+=n[i>>2],l=(3&i)<<4,o=1;break;case 1:a+=n[l|i>>4],l=(15&i)<<2,o=2;break;case 2:a+=n[l|i>>6],a+=n[63&i],o=0}return o&&(a+=n[l],r&&(a+="=",1==o&&(a+="="))),a}function getEncodeTable(n){return e||(t=(e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("")).slice(0,-2).concat("-","_")),"url"==n?t:e}function getDecodeTable(){if(!n){n=[];let e=getEncodeTable("std");for(let t=0;t<e.length;t++)n[e[t].charCodeAt(0)]=t;n[45]=e.indexOf("+"),n[95]=e.indexOf("/")}return n}function configureTextEncoding(e){var t;r=Object.assign(Object.assign({},e),{encodeUtf8Into:null!=(t=e.encodeUtf8Into)?t:emulateEncodeInto(e.encodeUtf8.bind(e))})}function getTextEncoding(){if(!r){let e,t=globalThis;if(!t.TextEncoder||!t.TextDecoder)throw Error("encoding API missing: install TextEncoder and TextDecoder on globalThis");let n=new t.TextEncoder,r=new t.TextDecoder,a={encodeUtf8:e=>n.encode(e),decodeUtf8:(n,a)=>a?(e||(e=new t.TextDecoder("utf-8",{fatal:!0})),e.decode(n)):r.decode(n),checkUtf8(e){try{return encodeURIComponent(e),!0}catch(e){return!1}}};n.encodeInto&&(a.encodeUtf8Into=n.encodeInto.bind(n));let o=String.prototype.isWellFormed;o&&(a.checkUtf8=e=>o.call(e)),configureTextEncoding(a)}return r}function emulateEncodeInto(e){return(t,n)=>{let r=e(t);return n.set(r),{written:r.byteLength}}}let ef=getUsableTextEncoder();function utf8_encodeUtf8(e){return ef?ef.encode(e):encodeUtf8Fallback(e)}function getUsableTextEncoder(){try{let e=new globalThis.TextEncoder;return 0===e.encode("").length?e:void 0}catch(e){return}}function encodeUtf8Fallback(e){let t=[];for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r>=55296&&r<=56319){let t=e.charCodeAt(n+1);t>=56320&&t<=57343?(r=65536+(r-55296<<10)+(t-56320),n++):r=65533}else r>=56320&&r<=57343&&(r=65533);r<=127?t.push(r):r<=2047?t.push(192|r>>6,128|63&r):r<=65535?t.push(224|r>>12,128|r>>6&63,128|63&r):t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r)}return new Uint8Array(t)}function protobuf_text_encoding_decodeUtf8(e){let t="";for(let n=0;n<e.length;){let r,a,o=e[n++];if(o<=127)r=o,a=0;else if(o>=194&&o<=223)r=31&o,a=1;else if(o>=224&&o<=239)r=15&o,a=2;else if(o>=240&&o<=244)r=7&o,a=3;else throw Error("Invalid UTF-8");for(let t=0;t<a;t++){let t=e[n++];if(void 0===t||(192&t)!=128)throw Error("Invalid UTF-8");r=r<<6|63&t}if(2===a&&r<2048||3===a&&r<65536||r>1114111||r>=55296&&r<=57343)throw Error("Invalid UTF-8");t+=String.fromCodePoint(r)}return t}function varint64read(){let e=this.buf,t=this.pos,n=0,r=0;for(let a=0;a<28;a+=7){let o=e[t++];if(n|=(127&o)<<a,(128&o)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=r;return}}let a=e[t++];if(n|=(15&a)<<28,r=(112&a)>>4,(128&a)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=r;return}for(let a=3;a<=31;a+=7){let o=e[t++];if(r|=(127&o)<<a,(128&o)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=r;return}}throw Error("invalid varint")}function int64FromString(e){let t="-"===e[0];t&&(e=e.slice(1));let n=0,r=0;function add1e6digit(t,a){let o=Number(e.slice(t,a));r*=1e6,(n=1e6*n+o)>=0x100000000&&(r+=n/0x100000000|0,n%=0x100000000)}return add1e6digit(-24,-18),add1e6digit(-18,-12),add1e6digit(-12,-6),add1e6digit(-6),t?negate(n,r):newBits(n,r)}function int64ToString(e,t){let n=newBits(e,t),r=0x80000000&n.hi;r&&(n=negate(n.lo,n.hi));let a=uInt64ToString(n.lo,n.hi);return r?"-"+a:a}function uInt64ToString(e,t){if({lo:e,hi:t}=toUnsigned(e,t),t<=2097151)return String(0x100000000*t+e);let n=0xffffff&e,r=(e>>>24|t<<8)&0xffffff,a=t>>16&65535,o=n+6777216*r+6710656*a,i=r+8147497*a,l=2*a;return o>=1e7&&(i+=Math.floor(o/1e7),o%=1e7),i>=1e7&&(l+=Math.floor(i/1e7),i%=1e7),l.toString()+decimalFrom1e7WithLeadingZeros(i)+decimalFrom1e7WithLeadingZeros(o)}function toUnsigned(e,t){return{lo:e>>>0,hi:t>>>0}}function newBits(e,t){return{lo:0|e,hi:0|t}}function negate(e,t){return t=~t,e?e=~e+1:t+=1,newBits(e,t)}(function hasUsableTextEncoding(){try{return 0===new globalThis.TextEncoder().encode("").length&&0===new globalThis.TextDecoder().decode(new Uint8Array).length}catch(e){return!1}})()||configureTextEncoding({checkUtf8(e){try{return encodeURIComponent(e),!0}catch(e){return!1}},decodeUtf8:protobuf_text_encoding_decodeUtf8,encodeUtf8:utf8_encodeUtf8}),(o=G||(G={}))[o.DOUBLE=1]="DOUBLE",o[o.FLOAT=2]="FLOAT",o[o.INT64=3]="INT64",o[o.UINT64=4]="UINT64",o[o.INT32=5]="INT32",o[o.FIXED64=6]="FIXED64",o[o.FIXED32=7]="FIXED32",o[o.BOOL=8]="BOOL",o[o.STRING=9]="STRING",o[o.BYTES=12]="BYTES",o[o.UINT32=13]="UINT32",o[o.SFIXED32=15]="SFIXED32",o[o.SFIXED64=16]="SFIXED64",o[o.SINT32=17]="SINT32",o[o.SINT64=18]="SINT64";let decimalFrom1e7WithLeadingZeros=e=>{let t=String(e);return"0000000".slice(t.length)+t};function varint32write(e,t){if(e>>>0<128)return void t.push(e);if(e>=0){for(;e>127;)t.push(127&e|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(127&e|128),e>>=7;t.push(1)}}function varint32read(){let e=this.buf[this.pos++];if((128&e)==0)return this.assertBounds(),e;let t=127&e;if(t|=(127&(e=this.buf[this.pos++]))<<7,(128&e)==0||(t|=(127&(e=this.buf[this.pos++]))<<14,(128&e)==0)||(t|=(127&(e=this.buf[this.pos++]))<<21,(128&e)==0))return this.assertBounds(),t;t|=(15&(e=this.buf[this.pos++]))<<28;for(let t=5;(128&e)!=0&&t<10;t++)e=this.buf[this.pos++];if((128&e)!=0)throw Error("invalid varint");return this.assertBounds(),t>>>0}let eb=makeInt64Support();function makeInt64Support(){let e=new DataView(new ArrayBuffer(8));if("function"==typeof BigInt&&"function"==typeof e.getBigInt64&&"function"==typeof e.getBigUint64&&"function"==typeof e.setBigInt64&&"function"==typeof e.setBigUint64&&(globalThis.Deno||globalThis.Bun||"object"!=typeof process||"object"!=typeof process.env||"1"!==process.env.BUF_BIGINT_DISABLE)){let t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),r=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(e){let r="bigint"==typeof e?e:BigInt(e);if(r>n||r<t)throw Error(`invalid int64: ${e}`);return r},uParse(e){let t="bigint"==typeof e?e:BigInt(e);if(t>a||t<r)throw Error(`invalid uint64: ${e}`);return t},enc(t){return e.setBigInt64(0,this.parse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(t){return e.setBigInt64(0,this.uParse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec:(t,n)=>(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigInt64(0,!0)),uDec:(t,n)=>(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigUint64(0,!0))}}return{zero:"0",supported:!1,parse:e=>("string"!=typeof e&&(e=e.toString()),assertInt64String(e),e),uParse:e=>("string"!=typeof e&&(e=e.toString()),assertUInt64String(e),e),enc:e=>("string"!=typeof e&&(e=e.toString()),assertInt64String(e),int64FromString(e)),uEnc:e=>("string"!=typeof e&&(e=e.toString()),assertUInt64String(e),int64FromString(e)),dec:(e,t)=>int64ToString(e,t),uDec:(e,t)=>uInt64ToString(e,t)}}function assertInt64String(e){if(!/^-?[0-9]+$/.test(e))throw Error("invalid int64: "+e)}function assertUInt64String(e){if(!/^[0-9]+$/.test(e))throw Error("invalid uint64: "+e)}function scalar_scalarZeroValue(e,t){switch(e){case G.STRING:return"";case G.BOOL:return!1;case G.DOUBLE:case G.FLOAT:return 0;case G.INT64:case G.UINT64:case G.SFIXED64:case G.FIXED64:case G.SINT64:return t?"0":eb.zero;case G.BYTES:return new Uint8Array(0);default:return 0}}function unsafeIsSetExplicit(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&void 0!==e[t]}function setOwn(e,t,n){"__proto__"===t?Object.defineProperty(e,"__proto__",{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function is_message_isMessage(e,t){return!!(null!==e&&"object"==typeof e&&"$typeName"in e&&"string"==typeof e.$typeName)&&(void 0===t||t.typeName===e.$typeName)}function isObject(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function isWrapperDesc(e){let t=e.fields[0];return isWrapperTypeName(e.typeName)&&void 0!==t&&"scalar"==t.fieldKind&&"value"==t.name&&1==t.number}Symbol.for("reflect unsafe local");let eg=new Set(["google.protobuf.DoubleValue","google.protobuf.FloatValue","google.protobuf.Int64Value","google.protobuf.UInt64Value","google.protobuf.Int32Value","google.protobuf.UInt32Value","google.protobuf.BoolValue","google.protobuf.StringValue","google.protobuf.BytesValue"]);function isWrapperTypeName(e){return eg.has(e)}function create(e,t){return is_message_isMessage(t,e)?t:compiledCreate(e)(t)}let eE=new WeakMap;function compiledCreate(e){let t=eE.get(e);return void 0===t&&(t=compileCreate(e),eE.set(e,t)),t}function compileCreate(e){let t=e.typeName,{properties:n,prototype:r}=compileInitMessage(e);return e=>{let a;void 0!==r?(a=Object.create(r)).$typeName=t:a={$typeName:t};for(let t=0;t<n.length;t++){let r=n[t],o=r.name,i=null==e?void 0:e[o];switch(r.kind){case 0:null!=i?a[o]=void 0!==r.convert?r.convert(i):i:void 0!==r.constant&&(a[o]=r.constant);break;case 1:a[o]=void 0!==r.convert&&Array.isArray(i)?i.map(r.convert):null!=i?i:[];break;case 2:if(void 0!==r.convert&&isObject(i)){let e={},t=Object.keys(i);for(let n=0;n<t.length;n++)setOwn(e,t[n],r.convert(i[t[n]]));a[o]=e}else a[o]=null!=i?i:{};break;case 3:if((null==i?void 0:i.case)!=null){let e=r.convert.get(i.case);if(void 0!==e){a[o]={case:i.case,value:e(i.value)};break}}a[o]={case:void 0}}}return a}}function compileInitMessage(e){var t,n;let r=[],a={},o=needsPrototypeChain(e);for(let i of e.members){let e=i.localName;if("oneof"==i.kind){r.push({name:e,kind:3,constant:void 0,convert:compileConvertOneof(i)});continue}switch(i.fieldKind){case"message":r.push({name:e,kind:0,constant:void 0,convert:compileConvertMessage(i)});break;case"list":r.push({name:e,kind:1,constant:void 0,convert:"message"==i.listKind?null!=(t=compileConvertMessage(i))?t:e=>e:i.scalar==G.BYTES?toU8Arr:void 0});break;case"map":r.push({name:e,kind:2,constant:void 0,convert:"message"==i.mapKind?null!=(n=compileConvertMessage(i))?n:e=>e:i.scalar==G.BYTES?toU8Arr:void 0});break;default:{let t=createZeroValue(i);r.push({name:e,kind:0,constant:2==i.presence?t:void 0,convert:"scalar"==i.fieldKind&&i.scalar==G.BYTES?toU8Arr:void 0}),o&&(a[e]=t)}}}return{properties:r,prototype:o?a:void 0}}function compileConvertOneof(e){let t=new Map;for(let n of e.fields){let e;"message"==n.fieldKind?e=compileConvertMessage(n):"scalar"==n.fieldKind&&n.scalar==G.BYTES&&(e=toU8Arr),t.set(n.localName,null!=e?e:e=>e)}return t}function compileConvertMessage(e){let t;if("message"==e.fieldKind&&!e.oneof&&isWrapperDesc(e.message))return e.message.fields[0].scalar==G.BYTES?toU8Arr:void 0;if("google.protobuf.Struct"==e.message.typeName&&"google.protobuf.Value"!==e.parent.typeName)return;let n=e.message;return e=>!isObject(e)||is_message_isMessage(e,n)?e:(null!=t||(t=compiledCreate(n)),t(e))}function toU8Arr(e){return Array.isArray(e)?new Uint8Array(e):e}function needsPrototypeChain(e){switch(e.file.edition){case 999:return!1;case 998:return!0;default:return e.fields.some(e=>2!=e.presence&&"message"!=e.fieldKind&&!e.oneof)}}function createZeroValue(e){let t=e.getDefaultValue();return void 0!==t?"scalar"==e.fieldKind&&e.longAsString?t.toString():t:"scalar"==e.fieldKind?scalar_scalarZeroValue(e.scalar,e.longAsString):e.enum.values[0].number}function localMessageMapper(e){if(usesJsonRepresentation(e))return{toMessage:e=>wktStructToReflect(e),toLocal:e=>wktStructToLocal(e)};if("message"==e.fieldKind&&!e.oneof&&isWrapperDesc(e.message)){let t=e.message,n=t.fields[0].localName;return{toMessage:e=>{let r=create(t);return void 0!==e&&(r[n]=e),r},toLocal:e=>e[n]}}let t=e.message;return{toMessage:e=>void 0===e?create(t):e,toLocal:e=>e}}function usesJsonRepresentation(e){return"google.protobuf.Struct"==e.message.typeName&&"google.protobuf.Value"!=e.parent.typeName}function wktStructToReflect(e){let t={$typeName:"google.protobuf.Struct",fields:{}};if(isObject(e))for(let n of Object.keys(e))setOwn(t.fields,n,wktValueToReflect(e[n]));return t}function wktStructToLocal(e){let t={};for(let n of Object.keys(e.fields))setOwn(t,n,wktValueToLocal(e.fields[n]));return t}function wktValueToLocal(e){switch(e.kind.case){case"structValue":return wktStructToLocal(e.kind.value);case"listValue":return e.kind.value.values.map(wktValueToLocal);case"nullValue":case void 0:return null;default:return e.kind.value}}function wktValueToReflect(e){let t={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof e){case"number":t.kind={case:"numberValue",value:e};break;case"string":t.kind={case:"stringValue",value:e};break;case"boolean":t.kind={case:"boolValue",value:e};break;case"object":if(null===e)t.kind={case:"nullValue",value:0};else if(Array.isArray(e)){let n={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(e))for(let t of e)n.values.push(wktValueToReflect(t));t.kind={case:"listValue",value:n}}else t.kind={case:"structValue",value:wktStructToReflect(e)}}return t}(i=C||(C={}))[i.Varint=0]="Varint",i[i.Bit64=1]="Bit64",i[i.LengthDelimited=2]="LengthDelimited",i[i.StartGroup=3]="StartGroup",i[i.EndGroup=4]="EndGroup",i[i.Bit32=5]="Bit32";let BinaryWriter=class BinaryWriter{constructor(e){this.stackPos=[],this.encodeUtf8Into=e?emulateEncodeInto(e):getTextEncoding().encodeUtf8Into,this.buffer=eT,this.viewCache=eh,this.pos=0}ensureCapacity(e){let t=this.pos+e;if(t>this.buffer.length){let e=this.buffer.length||ey;for(;e<t;)e*=2;let n=new Uint8Array(e);this.pos>0&&n.set(this.buffer),this.buffer=n}}view(){let e=this.buffer,t=this.viewCache;if(t.byteLength===e.byteLength)return t;let n=new DataView(e.buffer);return this.viewCache=n,n}finish(){let e=this.buffer.slice(0,this.pos);return this.pos=0,this.stackPos=[],e}fork(){return this.stackPos.push(this.pos),this.ensureCapacity(eN),this.buffer[this.pos++]=0,this}join(){let e=this.stackPos.pop();if(void 0===e)throw Error("invalid state, fork stack empty");let t=this.pos-e-eN,n=varint32Size(t);return n>eN&&(this.ensureCapacity(n-eN),this.buffer.copyWithin(e+n,e+eN,this.pos)),this.pos=e,this.uint32(t),this.pos+=t,this}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.ensureCapacity(e.length),this.buffer.set(e,this.pos),this.pos+=e.length,this}uint32(e){if(assertUInt32(e),this.ensureCapacity(5),e<128)return this.buffer[this.pos++]=e,this;for(;e>127;)this.buffer[this.pos++]=127&e|128,e>>>=7;return this.buffer[this.pos++]=e,this}int32(e){if(assertInt32(e),e>=0)return this.uint32(e);this.ensureCapacity(10);for(let t=0;t<9;t++)this.buffer[this.pos++]=127&e|128,e>>=7;return this.buffer[this.pos++]=1,this}bool(e){return this.ensureCapacity(1),this.buffer[this.pos++]=+!!e,this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){"string"!=typeof e&&(e=String(e));let t=e.length;if(t<=eI){this.ensureCapacity(t+1);let n=this.buffer,r=this.pos;n[r++]=t;let a=0;for(;a<t;a++){let t=e.charCodeAt(a);if(t>127)break;n[r++]=t}if(a==t)return this.pos=r,this}this.ensureCapacity(3*t+5);let n=varint32Size(t),r=this.buffer,a=this.pos,{written:o}=this.encodeUtf8Into(e,r.subarray(a+n)),i=varint32Size(o);return i!=n&&r.copyWithin(a+i,a+n,a+n+o),this.uint32(o),this.pos+=o,this}float(e){return assertFloat32(e),this.ensureCapacity(4),this.view().setFloat32(this.pos,e,!0),this.pos+=4,this}double(e){return this.ensureCapacity(8),this.view().setFloat64(this.pos,e,!0),this.pos+=8,this}fixed32(e){return assertUInt32(e),this.ensureCapacity(4),this.view().setUint32(this.pos,e,!0),this.pos+=4,this}sfixed32(e){return assertInt32(e),this.ensureCapacity(4),this.view().setInt32(this.pos,e,!0),this.pos+=4,this}sint32(e){return assertInt32(e),this.uint32((e<<1^e>>31)>>>0)}sfixed64(e){let t=eb.enc(e);this.ensureCapacity(8);let n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}fixed64(e){let t=eb.uEnc(e);this.ensureCapacity(8);let n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}int64(e){let t=eb.enc(e);return this.writeVarint64(t.lo,t.hi)}sint64(e){let t=eb.enc(e),n=t.hi>>31,r=t.lo<<1^n,a=(t.hi<<1|t.lo>>>31)^n;return this.writeVarint64(r,a)}uint64(e){let t=eb.uEnc(e);return this.writeVarint64(t.lo,t.hi)}writeVarint64(e,t){this.ensureCapacity(10);let n=this.buffer,r=this.pos;for(let a=0;a<28;a+=7){let o=e>>>a,i=o>>>7!=0||0!=t;if(n[r++]=(i?128|o:o)&255,!i)return this.pos=r,this}let a=e>>>28&15|(7&t)<<4,o=t>>3!=0;if(n[r++]=(o?128|a:a)&255,!o)return this.pos=r,this;for(let e=3;e<31;e+=7){let a=t>>>e,o=a>>>7!=0;if(n[r++]=(o?128|a:a)&255,!o)return this.pos=r,this}return n[r++]=t>>>31&1,this.pos=r,this}};let ey=128,eN=1,eT=new Uint8Array(0),eh=new DataView(eT.buffer),eI=32;function varint32Size(e){return e<128?1:e<16384?2:e<2097152?3:e<0x10000000?4:5}let binary_encoding_BinaryReader=class binary_encoding_BinaryReader{constructor(e,t=getTextEncoding().decodeUtf8){this.decodeUtf8=t,this.varint64Lo=0,this.varint64Hi=0,this.varint64=varint64read,this.uint32=varint32read,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){let e=this.pos,t=this.uint32(),n=this.pos-e;if(n>5||5==n&&this.buf[this.pos-1]>15)throw Error("illegal tag: varint overflows uint32");let r=t>>>3,a=7&t;if(r<=0||a>5)throw Error("illegal tag: field no "+r+" wire type "+a);return[r,a]}skip(e,t,n=100){let r=this.pos;switch(e){case C.Varint:for(;128&this.buf[this.pos++];);break;case C.Bit64:this.pos+=4;case C.Bit32:this.pos+=4;break;case C.LengthDelimited:let a=this.uint32();this.pos+=a;break;case C.StartGroup:if(n<=0)throw Error("maximum recursion depth reached");for(;;){let[e,r]=this.tag();if(r===C.EndGroup){if(void 0!==t&&e!==t)throw Error("invalid end group tag");break}this.skip(r,e,n-1)}break;default:throw Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(r,this.pos)}assertBounds(){if(this.pos>this.len)throw RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let e=this.uint32();return e>>>1^-(1&e)}int64(){return this.varint64(),eb.dec(this.varint64Lo,this.varint64Hi)}uint64(){return this.varint64(),eb.uDec(this.varint64Lo,this.varint64Hi)}sint64(){this.varint64();let e=this.varint64Lo,t=this.varint64Hi,n=-(1&e);return e=(e>>>1|(1&t)<<31)^n,t=t>>>1^n,eb.dec(e,t)}bool(){let e=this.buf[this.pos];return e<128?(this.pos++,0!==e):(this.varint64(),0!==this.varint64Lo||0!==this.varint64Hi)}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return eb.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return eb.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(e){let t=this.bytes(),n=t.length;if(n<=eI){let r=Array(n);for(let a=0;a<n;a++){let n=t[a];if(n>127)return this.decodeUtf8(t,e);r[a]=n}return String.fromCharCode.apply(String,r)}return this.decodeUtf8(t,e)}};function assertInt32(e){if("string"==typeof e)e=Number(e);else if("number"!=typeof e)throw Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>0x7fffffff||e<-0x80000000)throw Error("invalid int32: "+e)}function assertUInt32(e){if("string"==typeof e)e=Number(e);else if("number"!=typeof e)throw Error("invalid uint32: "+typeof e);if(!Number.isInteger(e)||e>0xffffffff||e<0)throw Error("invalid uint32: "+e)}function assertFloat32(e){if("string"==typeof e){let t=e;if(Number.isNaN(e=Number(e))&&"NaN"!==t)throw Error("invalid float32: "+t)}else if("number"!=typeof e)throw Error("invalid float32: "+typeof e);if(!Number.isFinite(Math.fround(e))&&Number.isFinite(e))throw Error("invalid float32: "+e)}function makeReadContext(e){return Object.assign(Object.assign({readUnknownFields:!0,recursionLimit:100},e),{depth:0})}function fromBinary(e,t,n){let r=create(e);return compiledReader(e).read(r,new binary_encoding_BinaryReader(t),makeReadContext(n),t.byteLength),r}let eS=new WeakMap;function compiledReader(e){let t=eS.get(e);return void 0===t&&(t=compileMessage(e)),t}function compileMessage(e){let t=String(e),n=new Map,r={read:compileMessageReader(t,n),readGroup:compileGroupReader(t,n)};for(let t of(eS.set(e,r),e.fields))n.set(t.number,compileFieldReader(t));return r}function compileMessageReader(e,t){return(n,r,a,o)=>{var i;if(++a.depth>a.recursionLimit)throw Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);let l=r.pos+o,s=null!=(i=n.$unknown)?i:[];for(;r.pos<l;){let[e,o]=r.tag(),i=t.get(e);if(void 0===i){let t=r.skip(o,e,a.recursionLimit-a.depth);a.readUnknownFields&&s.push({no:e,wireType:o,data:t});continue}i(n,r,a,o)}s.length>0&&(n.$unknown=s),a.depth--}}function compileGroupReader(e,t){return(n,r,a,o)=>{var i;let l,s;if(++a.depth>a.recursionLimit)throw Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);let u=null!=(i=n.$unknown)?i:[];for(;r.pos<r.len&&([l,s]=r.tag(),s!=C.EndGroup);){let e=t.get(l);if(void 0===e){let e=r.skip(s,l,a.recursionLimit-a.depth);a.readUnknownFields&&u.push({no:l,wireType:s,data:e});continue}e(n,r,a,s)}if(s!=C.EndGroup||l!==o)throw Error("invalid end group tag");u.length>0&&(n.$unknown=u),a.depth--}}function compileFieldReader(e){switch(e.fieldKind){case"scalar":return compileScalarFieldReader(e);case"enum":return compileEnumFieldReader(e);case"message":return compileMessageFieldReader(e);case"list":return compileListFieldReader(e);case"map":return compileMapFieldReader(e)}}function compileScalarFieldReader(e){let t=compileScalarReader(e.scalar,e.utf8Validation,e.longAsString),n=e.localName;if(e.oneof){let r=e.oneof.localName;return(e,a)=>{e[r]={case:n,value:t(a)}}}return(e,r)=>{e[n]=t(r)}}function compileEnumFieldReader(e){var t;let n=e.localName,r=null==(t=e.oneof)?void 0:t.localName;if(e.enum.open)return void 0!==r?(e,t)=>{e[r]={case:n,value:t.int32()}}:(e,t)=>{e[n]=t.int32()};let a=e.enum.values,o=e.number;return(e,t,i,l)=>{var s;let u=t.int32();if(a.some(e=>e.number===u))void 0!==r?e[r]={case:n,value:u}:e[n]=u;else if(i.readUnknownFields){let t=[];varint32write(u,t);let n=null!=(s=e.$unknown)?s:[];n.push({no:o,wireType:l,data:new Uint8Array(t)}),e.$unknown=n}}}function compileMessageFieldReader(e){let t=e.localName,{toMessage:n,toLocal:r}=localMessageMapper(e),a=compileChildReader(e);if(e.oneof){let o=e.oneof.localName;return(e,i,l)=>{let s=e[o],u=n(s.case===t?s.value:void 0);a(u,i,l),e[o]={case:t,value:r(u)}}}return(e,o,i)=>{let l=n(e[t]);a(l,o,i),e[t]=r(l)}}function compileChildReader(e){let t=compiledReader(e.message);if(e.delimitedEncoding){let n=e.number;return(e,r,a)=>t.readGroup(e,r,a,n)}return(e,n,r)=>t.read(e,n,r,n.uint32())}function compileListFieldReader(e){let t=e.localName;if("message"==e.listKind){let{toMessage:n,toLocal:r}=localMessageMapper(e),a=compileChildReader(e);return(e,o,i)=>{let l=n(void 0);a(l,o,i),e[t].push(r(l))}}let n="enum"==e.listKind?G.INT32:e.scalar,r="scalar"==e.listKind&&e.longAsString,a=compileScalarReader(n,e.utf8Validation,r),o=n!=G.STRING&&n!=G.BYTES;return(e,n,r,i)=>{let l=e[t];if(i==C.LengthDelimited&&o){let e=n.uint32()+n.pos;for(;n.pos<e;)l.push(a(n))}else l.push(a(n))}}function compileMapFieldReader(e){let t,n,r=e.localName,a=compileScalarReader(e.mapKey,e.utf8Validation,!1),o=scalar_scalarZeroValue(e.mapKey,!1);switch(e.mapKind){case"scalar":{let r=e.scalar,a=compileScalarReader(r,e.utf8Validation,!1);if(t=e=>a(e),r==G.BYTES)n=()=>new Uint8Array(0);else{let e=scalar_scalarZeroValue(r,!1);n=()=>e}break}case"enum":{let r=e.enum.values[0].number;t=e=>e.int32(),n=()=>r;break}case"message":{let{toMessage:r,toLocal:a}=localMessageMapper(e),o=compiledReader(e.message).read;t=(e,t,n)=>{let i=r(n);return o(i,e,t,e.uint32()),a(i)},n=()=>a(r(void 0))}}return(e,i,l)=>{let s,u,m=e[r],d=i.uint32(),p=i.pos+d;for(;i.pos<p;){let[e]=i.tag();switch(e){case 1:s=a(i);break;case 2:u=t(i,l,u)}}void 0===s&&(s=o),void 0===u&&(u=n()),setOwn(m,s,u)}}function compileScalarReader(e,t,n){switch(e){case G.STRING:return e=>e.string(t);case G.BOOL:return e=>e.bool();case G.DOUBLE:return e=>e.double();case G.FLOAT:return e=>e.float();case G.INT32:return e=>e.int32();case G.INT64:if(n)return e=>String(e.int64());return e=>e.int64();case G.UINT64:if(n)return e=>String(e.uint64());return e=>e.uint64();case G.FIXED64:if(n)return e=>String(e.fixed64());return e=>e.fixed64();case G.BYTES:return e=>e.bytes();case G.FIXED32:return e=>e.fixed32();case G.SFIXED32:return e=>e.sfixed32();case G.SFIXED64:if(n)return e=>String(e.sfixed64());return e=>e.sfixed64();case G.SINT64:if(n)return e=>String(e.sint64());return e=>e.sint64();case G.UINT32:return e=>e.uint32();case G.SINT32:return e=>e.sint32()}}let error_FieldError=class error_FieldError extends Error{constructor(e,t,n="FieldValueInvalidError"){super(t),this.name=n,this.field=()=>e}};let e_={writeUnknownFields:!0};function makeWriteOptions(e){return e?Object.assign(Object.assign({},e_),e):e_}function toBinary(e,t,n){let r=new BinaryWriter;return compiledWriter(e)(r,makeWriteOptions(n),t),r.finish()}let ev=new WeakMap;function compiledWriter(e){let t=ev.get(e);return void 0===t&&(t=to_binary_compileMessage(e)),t}function to_binary_compileMessage(e){let t=e.typeName,n=e.fields.concat().sort((e,t)=>e.number-t.number),r=n[0],a=[],compiled=(e,n,o)=>{if(o.$typeName!==t&&void 0!==r)throw new error_FieldError(r,`cannot use ${r} with message ${o.$typeName}`,"ForeignFieldError");for(let t=0;t<a.length;t++)a[t](e,n,o);let i=o.$unknown;if(void 0!==i&&n.writeUnknownFields)for(let t=0;t<i.length;t++){let{no:n,wireType:r,data:a}=i[t];e.tag(n,r).raw(a)}};for(let t of(ev.set(e,compiled),n))a.push(compileField(t));return compiled}function compileField(e){switch(e.fieldKind){case"message":case"scalar":case"enum":return compileSingularField(e);case"list":return compileListField(e);case"map":return compileMapField(e)}}function compileSingularField(e){let t=compileSingularValue(e),n=e.localName;if(e.oneof){let r=e.oneof.localName;return(e,a,o)=>{let i=o[r];i.case===n&&t(e,a,i.value)}}if(2!=e.presence){let r=3==e.presence?`cannot encode ${e} to binary: required field not set`:void 0;return(e,a,o)=>{let i=o[n];if(void 0!==i&&Object.prototype.hasOwnProperty.call(o,n))t(e,a,i);else if(void 0!==r)throw Error(r)}}if("enum"==e.fieldKind){let r=e.enum.values[0].number;return(e,a,o)=>{let i=o[n];i!==r&&t(e,a,i)}}switch(e.scalar){case G.BOOL:return(e,r,a)=>{let o=a[n];!1!==o&&t(e,r,o)};case G.STRING:return(e,r,a)=>{let o=a[n];""!==o&&t(e,r,o)};case G.BYTES:return(e,r,a)=>{let o=a[n];o instanceof Uint8Array&&!(o.byteLength>0)||t(e,r,o)};case G.DOUBLE:case G.FLOAT:return(e,r,a)=>{let o=a[n];Object.is(o,0)||t(e,r,o)};default:return(e,r,a)=>{let o=a[n];0!=o&&t(e,r,o)}}}function compileSingularValue(e){switch(e.fieldKind){case"message":{let{toMessage:t}=localMessageMapper(e),n=compileChildWriter(e);return(e,r,a)=>{n(e,r,t(a))}}case"scalar":case"enum":{let t="enum"==e.fieldKind?G.INT32:e.scalar,n=e.number,r=writeTypeOfScalar(t),a=compileScalarValue(t,e.parent.typeName,e.name);return(e,t,o)=>{e.tag(n,r),a(e,o)}}}}function compileListField(e){let t=e.localName,n=e.number;switch(e.listKind){case"message":{let{toMessage:n}=localMessageMapper(e),r=compileChildWriter(e);return(e,a,o)=>{let i=o[t];for(let t=0;t<i.length;t++)r(e,a,n(i[t]))}}case"scalar":case"enum":{let r="enum"==e.listKind?G.INT32:e.scalar,a=compileScalarValue(r,e.parent.typeName,e.name);if(e.packed)return(e,r,o)=>{let i=o[t];if(0!=i.length){e.tag(n,C.LengthDelimited).fork();for(let t=0;t<i.length;t++)a(e,i[t]);e.join()}};let o=writeTypeOfScalar(r);return(e,r,i)=>{let l=i[t];for(let t=0;t<l.length;t++)e.tag(n,o),a(e,l[t])}}}}function compileMapField(e){let t=e.localName,n=e.number,r=compileMapKey(e);if("message"==e.mapKind){let{toMessage:a}=localMessageMapper(e),o=compiledWriter(e.message);return(e,i,l)=>{let s=l[t],u=Object.keys(s);for(let t=0;t<u.length;t++){let l=u[t];e.tag(n,C.LengthDelimited).fork(),r(e,l),e.tag(2,C.LengthDelimited).fork(),o(e,i,a(s[l])),e.join(),e.join()}}}let a="enum"==e.mapKind?G.INT32:e.scalar,o=writeTypeOfScalar(a),i=compileScalarValue(a,e.parent.typeName,e.name);return(e,a,l)=>{let s=l[t],u=Object.keys(s);for(let t=0;t<u.length;t++){let a=u[t];e.tag(n,C.LengthDelimited).fork(),r(e,a),e.tag(2,o),i(e,s[a]),e.join()}}}function compileMapKey(e){let t=writeTypeOfScalar(e.mapKey),n=compileScalarValue(e.mapKey,e.parent.typeName,e.name),r=compileMapKeyConverter(e.mapKey);return(e,a)=>{e.tag(1,t),n(e,r(a))}}function compileMapKeyConverter(e){switch(e){case G.STRING:return e=>e;case G.BOOL:return e=>"true"===e||"false"!==e&&e;case G.UINT64:case G.FIXED64:return e=>{try{return eb.uParse(e)}catch(t){return e}};case G.INT64:case G.SFIXED64:case G.SINT64:return e=>{try{return eb.parse(e)}catch(t){return e}};default:return e=>{let t=Number.parseInt(e);return Number.isFinite(t)?t:e}}}function compileScalarValue(e,t,n){let r=compileScalarWrite(e);return(e,a)=>{try{r(e,a)}catch(e){if(e instanceof Error)throw Error(`cannot encode field ${t}.${n} to binary: ${e.message}`);throw e}}}function compileScalarWrite(e){switch(e){case G.STRING:return(e,t)=>e.string(t);case G.BOOL:return(e,t)=>e.bool(t);case G.DOUBLE:return(e,t)=>e.double(t);case G.FLOAT:return(e,t)=>e.float(t);case G.INT32:return(e,t)=>e.int32(t);case G.INT64:return(e,t)=>e.int64(t);case G.UINT64:return(e,t)=>e.uint64(t);case G.FIXED64:return(e,t)=>e.fixed64(t);case G.BYTES:return(e,t)=>e.bytes(t);case G.FIXED32:return(e,t)=>e.fixed32(t);case G.SFIXED32:return(e,t)=>e.sfixed32(t);case G.SFIXED64:return(e,t)=>e.sfixed64(t);case G.SINT64:return(e,t)=>e.sint64(t);case G.UINT32:return(e,t)=>e.uint32(t);case G.SINT32:return(e,t)=>e.sint32(t)}}function compileChildWriter(e){let t=e.number,n=compiledWriter(e.message);return e.delimitedEncoding?(e,r,a)=>{e.tag(t,C.StartGroup),n(e,r,a),e.tag(t,C.EndGroup)}:(e,r,a)=>{e.tag(t,C.LengthDelimited).fork(),n(e,r,a),e.join()}}function writeTypeOfScalar(e){switch(e){case G.BYTES:case G.STRING:return C.LengthDelimited;case G.DOUBLE:case G.FIXED64:case G.SFIXED64:return C.Bit64;case G.FIXED32:case G.SFIXED32:case G.FLOAT:return C.Bit32;default:return C.Varint}}function protoCamelCase(e){let t=!1,n=[];for(let r=0;r<e.length;r++){let a=e.charAt(r);switch(a){case"_":t=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(a),t=!1;break;default:t&&(t=!1,a=a.toUpperCase()),n.push(a)}}return n.join("")}let eR=new Set(["constructor","toString","toJSON","valueOf"]);function safeObjectProperty(e){return eR.has(e)?e+"$":e}function restoreJsonNames(e){for(let t of e.field)unsafeIsSetExplicit(t,"jsonName")||(t.jsonName=protoCamelCase(t.name));e.nestedType.forEach(restoreJsonNames)}function parseTextFormatEnumValue(e,t){let n=e.values.find(e=>e.name===t);if(!n)throw Error(`cannot parse ${e} default value: ${t}`);return n.number}function parseTextFormatScalarValue(e,t){switch(e){case G.STRING:return t;case G.BYTES:{let n=unescapeBytesDefaultValue(t);if(!1===n)throw Error(`cannot parse ${G[e]} default value: ${t}`);return n}case G.INT64:case G.SFIXED64:case G.SINT64:return eb.parse(t);case G.UINT64:case G.FIXED64:return eb.uParse(t);case G.DOUBLE:case G.FLOAT:switch(t){case"inf":return 1/0;case"-inf":return-1/0;case"nan":return NaN;default:return parseFloat(t)}case G.BOOL:return"true"===t;case G.INT32:case G.UINT32:case G.SINT32:case G.FIXED32:case G.SFIXED32:return parseInt(t,10)}}function unescapeBytesDefaultValue(e){let t=[],n={tail:e,c:"",next(){return 0!=this.tail.length&&(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(e){if(this.tail.length>=e){let t=this.tail.substring(0,e);return this.tail=this.tail.substring(e),t}return!1}};for(;n.next();)if("\\"===n.c){if(n.next())switch(n.c){case"\\":t.push(n.c.charCodeAt(0));break;case"b":t.push(8);break;case"f":t.push(12);break;case"n":t.push(10);break;case"r":t.push(13);break;case"t":t.push(9);break;case"v":t.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let e=n.c,r=n.take(2);if(!1===r)return!1;let a=parseInt(e+r,8);if(Number.isNaN(a))return!1;t.push(a);break}case"x":{let e=n.c,r=n.take(2);if(!1===r)return!1;let a=parseInt(e+r,16);if(Number.isNaN(a))return!1;t.push(a);break}case"u":{let e=n.c,r=n.take(4);if(!1===r)return!1;let a=parseInt(e+r,16);if(Number.isNaN(a))return!1;let o=new Uint8Array(4);new DataView(o.buffer).setInt32(0,a,!0),t.push(o[0],o[1],o[2],o[3]);break}case"U":{let e=n.c,r=n.take(8);if(!1===r)return!1;let a=eb.uEnc(e+r),o=new Uint8Array(8),i=new DataView(o.buffer);i.setInt32(0,a.lo,!0),i.setInt32(4,a.hi,!0),t.push(o[0],o[1],o[2],o[3],o[4],o[5],o[6],o[7])}}}else t.push(n.c.charCodeAt(0));return new Uint8Array(t)}function*nestedTypes(e){switch(e.kind){case"file":for(let t of e.messages)yield t,yield*nestedTypes(t);yield*e.enums,yield*e.services,yield*e.extensions;break;case"message":for(let t of e.nestedMessages)yield t,yield*nestedTypes(t);yield*e.nestedEnums,yield*e.nestedExtensions}}function createFileRegistry(...e){let t=createBaseRegistry();if(!e.length)return t;if("$typeName"in e[0]&&"google.protobuf.FileDescriptorSet"==e[0].$typeName){for(let n of e[0].file)addFile(n,t);return t}if("$typeName"in e[0]){let n=e[0],r=e[1],a=new Set;function recurseDeps(e){let n=[];for(let o of e.dependency){if(void 0!=t.getFile(o)||a.has(o))continue;let i=r(o);if(!i)throw Error(`Unable to resolve ${o}, imported by ${e.name}`);"kind"in i?t.addFile(i,!1,!0):(a.add(i.name),n.push(i))}return n.concat(...n.map(recurseDeps))}for(let e of[n,...recurseDeps(n)].reverse())addFile(e,t)}else for(let n of e)for(let e of n.files)t.addFile(e);return t}function createBaseRegistry(){let e=new Map,t=new Map,n=new Map;return{kind:"registry",types:e,extendees:t,[Symbol.iterator]:()=>e.values(),get files(){return n.values()},addFile(e,t,r){if(n.set(e.proto.name,e),!t)for(let t of nestedTypes(e))this.add(t);if(r)for(let n of e.dependencies)this.addFile(n,t,r)},add(n){if("extension"==n.kind){let e=t.get(n.extendee.typeName);e||t.set(n.extendee.typeName,e=new Map),e.set(n.number,n)}e.set(n.typeName,n)},get:t=>e.get(t),getFile:e=>n.get(e),getMessage(t){let n=e.get(t);return(null==n?void 0:n.kind)=="message"?n:void 0},getEnum(t){let n=e.get(t);return(null==n?void 0:n.kind)=="enum"?n:void 0},getExtension(t){let n=e.get(t);return(null==n?void 0:n.kind)=="extension"?n:void 0},getExtensionFor(e,n){var r;return null==(r=t.get(e.typeName))?void 0:r.get(n)},getService(t){let n=e.get(t);return(null==n?void 0:n.kind)=="service"?n:void 0}}}let eA={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2,enforceProtoLimits:1},1002:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:3,defaultSymbolVisibility:4,enforceProtoLimits:2}};function addFile(e,t){var n,r;let a={kind:"file",proto:e,deprecated:null!=(r=null==(n=e.options)?void 0:n.deprecated)&&r,edition:getFileEdition(e),name:e.name.replace(/\.proto$/,""),dependencies:findFileDependencies(e,t),enums:[],messages:[],extensions:[],services:[],toString:()=>`file ${e.name}`},o=new Map,i={get:e=>o.get(e),add(e){var t;assert((null==(t=e.proto.options)?void 0:t.mapEntry)===!0),o.set(e.typeName,e)}};for(let n of e.enumType)addEnum(n,a,void 0,t);for(let n of e.messageType)addMessage(n,a,void 0,t,i);for(let n of e.service)addService(n,a,t);for(let e of(addExtensions(a,t),o.values()))addFields(e,t,i);for(let e of a.messages)addFields(e,t,i),addExtensions(e,t);t.addFile(a,!0)}function addExtensions(e,t){switch(e.kind){case"file":for(let n of e.proto.extension){let r=newField(n,e,t);e.extensions.push(r),t.add(r)}break;case"message":for(let n of e.proto.extension){let r=newField(n,e,t);e.nestedExtensions.push(r),t.add(r)}for(let n of e.nestedMessages)addExtensions(n,t)}}function addFields(e,t,n){let r=e.proto.oneofDecl.map(t=>newOneof(t,e)),a=new Set;for(let o of e.proto.field){let i=findOneof(o,r),l=newField(o,e,t,i,n);e.fields.push(l),e.field[l.localName]=l,void 0===i?e.members.push(l):(i.fields.push(l),a.has(i)||(a.add(i),e.members.push(i)))}for(let t of r.filter(e=>a.has(e)))e.oneofs.push(t);for(let r of e.nestedMessages)addFields(r,t,n)}function addEnum(e,t,n,r){var a,o,i,l,s,u;let m=findEnumSharedPrefix(e.name,e.value),d={kind:"enum",proto:e,deprecated:null!=(o=null==(a=e.options)?void 0:a.deprecated)&&o,file:t,parent:n,open:!0,name:e.name,typeName:makeTypeName(e,n,t),value:{},values:[],sharedPrefix:m,toString(){return`enum ${this.typeName}`}};for(let t of(d.open=isEnumOpen(d),r.add(d),e.value)){let e=t.name;d.values.push(d.value[t.number]={kind:"enum_value",proto:t,deprecated:null!=(l=null==(i=t.options)?void 0:i.deprecated)&&l,parent:d,name:e,localName:safeObjectProperty(void 0==m?e:e.substring(m.length)),number:t.number,jsonName:null!=(s=findEnumValueJsonName(t))?s:e,toString:()=>`enum value ${d.typeName}.${e}`})}(null!=(u=null==n?void 0:n.nestedEnums)?u:t.enums).push(d)}function addMessage(e,t,n,r,a){var o,i,l,s;let u={kind:"message",proto:e,deprecated:null!=(i=null==(o=e.options)?void 0:o.deprecated)&&i,file:t,parent:n,name:e.name,typeName:makeTypeName(e,n,t),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};for(let o of((null==(l=e.options)?void 0:l.mapEntry)===!0?a.add(u):((null!=(s=null==n?void 0:n.nestedMessages)?s:t.messages).push(u),r.add(u)),e.enumType))addEnum(o,t,u,r);for(let n of e.nestedType)addMessage(n,t,u,r,a)}function addService(e,t,n){var r,a;let o={kind:"service",proto:e,deprecated:null!=(a=null==(r=e.options)?void 0:r.deprecated)&&a,file:t,name:e.name,typeName:makeTypeName(e,void 0,t),methods:[],method:{},toString(){return`service ${this.typeName}`}};for(let r of(t.services.push(o),n.add(o),e.method)){let e=newMethod(r,o,n);o.methods.push(e),o.method[e.localName]=e}}function newMethod(e,t,n){var r,a,o,i;let l;l=e.clientStreaming&&e.serverStreaming?"bidi_streaming":e.clientStreaming?"client_streaming":e.serverStreaming?"server_streaming":"unary";let s=n.getMessage(trimLeadingDot(e.inputType)),u=n.getMessage(trimLeadingDot(e.outputType));assert(s,`invalid MethodDescriptorProto: input_type ${e.inputType} not found`),assert(u,`invalid MethodDescriptorProto: output_type ${e.inputType} not found`);let m=e.name;return{kind:"rpc",proto:e,deprecated:null!=(a=null==(r=e.options)?void 0:r.deprecated)&&a,parent:t,name:m,localName:safeObjectProperty(m.length?safeObjectProperty(m[0].toLowerCase()+m.substring(1)):m),methodKind:l,input:s,output:u,idempotency:null!=(i=null==(o=e.options)?void 0:o.idempotencyLevel)?i:0,toString:()=>`rpc ${t.typeName}.${m}`}}function newOneof(e,t){return{kind:"oneof",proto:e,deprecated:!1,parent:t,fields:[],name:e.name,localName:safeObjectProperty(protoCamelCase(e.name)),toString(){return`oneof ${t.typeName}.${this.name}`}}}function newField(e,t,n,r,a){var o,i,l;let s,u=void 0===a,m={kind:"field",proto:e,deprecated:null!=(i=null==(o=e.options)?void 0:o.deprecated)&&i,name:e.name,number:e.number,scalar:void 0,message:void 0,enum:void 0,presence:getFieldPresence(e,r,u,t),utf8Validation:isUtf8Validated(e,t),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};if(u){let r="file"==t.kind?t:t.file,a="file"==t.kind?void 0:t,o=makeTypeName(e,a,r);m.kind="extension",m.file=r,m.parent=a,m.oneof=void 0,m.typeName=o,m.jsonName=`[${o}]`,s=()=>`extension ${o}`;let i=n.getMessage(trimLeadingDot(e.extendee));assert(i,`invalid FieldDescriptorProto: extendee ${e.extendee} not found`),m.extendee=i}else assert("message"==t.kind),m.parent=t,m.oneof=r,m.localName=r?protoCamelCase(e.name):safeObjectProperty(protoCamelCase(e.name)),m.jsonName=e.jsonName,s=()=>`field ${t.typeName}.${e.name}`;Object.defineProperty(m,"toString",{value:s,writable:!0,enumerable:!0,configurable:!0});let d=e.label,p=e.type,c=null==(l=e.options)?void 0:l.jstype;if(3===d){let r=11==p?null==a?void 0:a.get(trimLeadingDot(e.typeName)):void 0;if(r){m.fieldKind="map";let{key:e,value:t}=findMapEntryFields(r);return m.mapKey=e.scalar,m.mapKind=t.fieldKind,m.message=t.message,m.delimitedEncoding=!1,m.enum=t.enum,m.scalar=t.scalar,m}switch(m.fieldKind="list",p){case 11:case 10:m.listKind="message",m.message=n.getMessage(trimLeadingDot(e.typeName)),assert(m.message),m.delimitedEncoding=isDelimitedEncoding(e,t);break;case 14:m.listKind="enum",m.enum=n.getEnum(trimLeadingDot(e.typeName)),assert(m.enum);break;default:m.listKind="scalar",m.scalar=p,m.longAsString=1==c}return m.packed=isPackedField(e,t),m}switch(p){case 11:case 10:m.fieldKind="message",m.message=n.getMessage(trimLeadingDot(e.typeName)),assert(m.message,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),m.delimitedEncoding=isDelimitedEncoding(e,t),m.getDefaultValue=()=>void 0;break;case 14:{let t=n.getEnum(trimLeadingDot(e.typeName));assert(void 0!==t,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),m.fieldKind="enum",m.enum=n.getEnum(trimLeadingDot(e.typeName)),m.getDefaultValue=()=>unsafeIsSetExplicit(e,"defaultValue")?parseTextFormatEnumValue(t,e.defaultValue):void 0;break}default:m.fieldKind="scalar",m.scalar=p,m.longAsString=1==c,m.getDefaultValue=()=>unsafeIsSetExplicit(e,"defaultValue")?parseTextFormatScalarValue(p,e.defaultValue):void 0}return m}function getFileEdition(e){switch(e.syntax){case"":case"proto2":return 998;case"proto3":return 999;case"editions":if(9999===e.edition)return 1002;if(e.edition in eA)return e.edition;throw Error(`${e.name}: unsupported edition`);default:throw Error(`${e.name}: unsupported syntax "${e.syntax}"`)}}function findFileDependencies(e,t){return e.dependency.map(n=>{let r=t.getFile(n);if(!r)throw Error(`Cannot find ${n}, imported by ${e.name}`);return r})}function findEnumSharedPrefix(e,t){let n=camelToSnakeCase(e)+"_";for(let e of t){if(!e.name.toLowerCase().startsWith(n))return;let t=e.name.substring(n.length);if(0==t.length||/^\d/.test(t))return}return n}function findEnumValueJsonName(e){var t,n;let r;for(let a of null!=(n=null==(t=e.options)?void 0:t.$unknown)?n:[]){if(998!==a.no||a.wireType!==C.LengthDelimited)continue;let e=new binary_encoding_BinaryReader(new binary_encoding_BinaryReader(a.data).bytes());for(;e.pos<e.len;){let[t,n]=e.tag();1===t&&n===C.LengthDelimited?r=e.string():e.skip(n,t)}}return r}function camelToSnakeCase(e){return(e.substring(0,1)+e.substring(1).replace(/[A-Z]/g,e=>"_"+e)).toLowerCase()}function makeTypeName(e,t,n){return t?`${t.typeName}.${e.name}`:n.proto.package.length>0?`${n.proto.package}.${e.name}`:`${e.name}`}function trimLeadingDot(e){return e.startsWith(".")?e.substring(1):e}function findOneof(e,t){if(!unsafeIsSetExplicit(e,"oneofIndex")||e.proto3Optional)return;let n=t[e.oneofIndex];return assert(n,`invalid FieldDescriptorProto: oneof #${e.oneofIndex} for field #${e.number} not found`),n}function getFieldPresence(e,t,n,r){if(2==e.label)return 3;if(3==e.label)return 2;if(t||e.proto3Optional||n)return 1;let a=resolveFeature("fieldPresence",{proto:e,parent:r});return 2==a&&(11==e.type||10==e.type)?1:a}function isPackedField(e,t){if(3!=e.label)return!1;switch(e.type){case 9:case 12:case 10:case 11:return!1}let n=e.options;return n&&unsafeIsSetExplicit(n,"packed")?n.packed:1==resolveFeature("repeatedFieldEncoding",{proto:e,parent:t})}function findMapEntryFields(e){let t=e.fields.find(e=>1===e.number),n=e.fields.find(e=>2===e.number);return assert(t&&"scalar"==t.fieldKind&&t.scalar!=G.BYTES&&t.scalar!=G.FLOAT&&t.scalar!=G.DOUBLE&&n&&"list"!=n.fieldKind&&"map"!=n.fieldKind),{key:t,value:n}}function isEnumOpen(e){var t;return 1==resolveFeature("enumType",{proto:e.proto,parent:null!=(t=e.parent)?t:e.file})}function isDelimitedEncoding(e,t){return 10==e.type||2==resolveFeature("messageEncoding",{proto:e,parent:t})}function isUtf8Validated(e,t){return 2==resolveFeature("utf8Validation",{proto:e,parent:t})}function resolveFeature(e,t){var n,r;let a=null==(n=t.proto.options)?void 0:n.features;if(a){let t=a[e];if(0!=t)return t}if("kind"in t){if("message"==t.kind)return resolveFeature(e,null!=(r=t.parent)?r:t.file);let n=eA[t.edition];if(!n)throw Error(`feature default for edition ${t.edition} not found`);return n[e]}return resolveFeature(e,t.parent)}function assert(e,t){if(!e)throw Error(t)}function bootFileDescriptorProto(e){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},e),{messageType:e.messageType.map(bootDescriptorProto),enumType:e.enumType.map(bootEnumDescriptorProto)}))}function bootDescriptorProto(e){var t,n,r,a,o,i,l,s;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:e.name,field:null!=(n=null==(t=e.field)?void 0:t.map(bootFieldDescriptorProto))?n:[],extension:[],nestedType:null!=(a=null==(r=e.nestedType)?void 0:r.map(bootDescriptorProto))?a:[],enumType:null!=(i=null==(o=e.enumType)?void 0:o.map(bootEnumDescriptorProto))?i:[],extensionRange:null!=(s=null==(l=e.extensionRange)?void 0:l.map(e=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},e)))?s:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function bootFieldDescriptorProto(e){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},e),{options:e.options?bootFieldOptions(e.options):void 0}))}function bootFieldOptions(e){var t,n,r;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},e),{targets:null!=(t=e.targets)?t:[],editionDefaults:null!=(r=null==(n=e.editionDefaults)?void 0:n.map(e=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},e)))?r:[],uninterpretedOption:[]}))}function bootEnumDescriptorProto(e){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:e.name,reservedName:[],reservedRange:[],value:e.value.map(e=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},e))})}function message_messageDesc(e,t,...n){return n.reduce((e,t)=>e.nestedMessages[t],e.messages[t])}let eF=message_messageDesc(((a=bootFileDescriptorProto({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:0x1ff2b601}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false",options:{}},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true",options:{}},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"removal_error",number:5,type:9,label:1}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:990,end:999},{start:1e3,end:0x20000000}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001},{value:"STYLE2026",edition:1002}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001},{value:"STRICT",edition:1002}]}},{name:"enforce_proto_limits",number:9,type:14,label:1,typeName:".google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits",options:{retention:2,targets:[6,3,4,5],editionDefaults:[{value:"LEGACY_NO_EXPLICIT_LIMITS",edition:900},{value:"PROTO_LIMITS2026",edition:1002}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]},{name:"ProtoLimitsFeature",enumType:[{name:"EnforceProtoLimits",value:[{name:"PROTO_LIMITS_UNKNOWN",number:0},{name:"LEGACY_NO_EXPLICIT_LIMITS",number:1},{name:"PROTO_LIMITS2026",number:2}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2},{name:"STYLE2026",number:3}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:0x1ff2b601}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_2026",number:1002},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:0x7fffffff}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]})).messageType.forEach(restoreJsonNames),createFileRegistry(a,()=>void 0).getFile(a.name)),1);function fileDesc(e,t){var n;let r=fromBinary(eF,base64Decode(e));return r.messageType.forEach(restoreJsonNames),r.dependency=null!=(n=null==t?void 0:t.map(e=>e.proto.name))?n:[],createFileRegistry(r,e=>null==t?void 0:t.find(t=>t.proto.name===e)).getFile(r.name)}(l=w||(w={}))[l.DECLARATION=0]="DECLARATION",l[l.UNVERIFIED=1]="UNVERIFIED",(s=B||(B={}))[s.DOUBLE=1]="DOUBLE",s[s.FLOAT=2]="FLOAT",s[s.INT64=3]="INT64",s[s.UINT64=4]="UINT64",s[s.INT32=5]="INT32",s[s.FIXED64=6]="FIXED64",s[s.FIXED32=7]="FIXED32",s[s.BOOL=8]="BOOL",s[s.STRING=9]="STRING",s[s.GROUP=10]="GROUP",s[s.MESSAGE=11]="MESSAGE",s[s.BYTES=12]="BYTES",s[s.UINT32=13]="UINT32",s[s.ENUM=14]="ENUM",s[s.SFIXED32=15]="SFIXED32",s[s.SFIXED64=16]="SFIXED64",s[s.SINT32=17]="SINT32",s[s.SINT64=18]="SINT64",(u=Y||(Y={}))[u.OPTIONAL=1]="OPTIONAL",u[u.REPEATED=3]="REPEATED",u[u.REQUIRED=2]="REQUIRED",(m=k||(k={}))[m.SPEED=1]="SPEED",m[m.CODE_SIZE=2]="CODE_SIZE",m[m.LITE_RUNTIME=3]="LITE_RUNTIME",(d=Z||(Z={}))[d.STRING=0]="STRING",d[d.CORD=1]="CORD",d[d.STRING_PIECE=2]="STRING_PIECE",(p=P||(P={}))[p.JS_NORMAL=0]="JS_NORMAL",p[p.JS_STRING=1]="JS_STRING",p[p.JS_NUMBER=2]="JS_NUMBER",(c=W||(W={}))[c.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",c[c.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",c[c.RETENTION_SOURCE=2]="RETENTION_SOURCE",(f=M||(M={}))[f.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",f[f.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",f[f.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",f[f.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",f[f.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",f[f.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",f[f.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",f[f.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",f[f.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",f[f.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD",(b=X||(X={}))[b.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",b[b.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",b[b.IDEMPOTENT=2]="IDEMPOTENT",(g=x||(x={}))[g.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",g[g.EXPORT_ALL=1]="EXPORT_ALL",g[g.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",g[g.LOCAL_ALL=3]="LOCAL_ALL",g[g.STRICT=4]="STRICT",(E=K||(K={}))[E.PROTO_LIMITS_UNKNOWN=0]="PROTO_LIMITS_UNKNOWN",E[E.LEGACY_NO_EXPLICIT_LIMITS=1]="LEGACY_NO_EXPLICIT_LIMITS",E[E.PROTO_LIMITS2026=2]="PROTO_LIMITS2026",(y=J||(J={}))[y.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",y[y.EXPLICIT=1]="EXPLICIT",y[y.IMPLICIT=2]="IMPLICIT",y[y.LEGACY_REQUIRED=3]="LEGACY_REQUIRED",(N=j||(j={}))[N.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",N[N.OPEN=1]="OPEN",N[N.CLOSED=2]="CLOSED",(T=Q||(Q={}))[T.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",T[T.PACKED=1]="PACKED",T[T.EXPANDED=2]="EXPANDED",(h=H||(H={}))[h.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",h[h.VERIFY=2]="VERIFY",h[h.NONE=3]="NONE",(I=$||($={}))[I.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",I[I.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",I[I.DELIMITED=2]="DELIMITED",(S=z||(z={}))[S.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",S[S.ALLOW=1]="ALLOW",S[S.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT",(_=q||(q={}))[_.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",_[_.STYLE2024=1]="STYLE2024",_[_.STYLE_LEGACY=2]="STYLE_LEGACY",_[_.STYLE2026=3]="STYLE2026",(v=ee||(ee={}))[v.NONE=0]="NONE",v[v.SET=1]="SET",v[v.ALIAS=2]="ALIAS",(R=et||(et={}))[R.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",R[R.EDITION_LEGACY=900]="EDITION_LEGACY",R[R.EDITION_PROTO2=998]="EDITION_PROTO2",R[R.EDITION_PROTO3=999]="EDITION_PROTO3",R[R.EDITION_2023=1e3]="EDITION_2023",R[R.EDITION_2024=1001]="EDITION_2024",R[R.EDITION_2026=1002]="EDITION_2026",R[R.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",R[R.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",R[R.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",R[R.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",R[R.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",R[R.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",R[R.EDITION_MAX=0x7fffffff]="EDITION_MAX",(A=en||(en={}))[A.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",A[A.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",A[A.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT";let eO=fileDesc("Chtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ9ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaLmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2VtcHR5cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw"),eL=fileDesc("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),eD=message_messageDesc(fileDesc("Cgl1ZmMucHJvdG8SG2RhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MSKRBAoSRmxhZ3NDb25maWd1cmF0aW9uEi4KCmNyZWF0ZWRfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEGVudmlyb25tZW50X25hbWUYAiABKAkSSQoFZmxhZ3MYAyADKAsyOi5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuRmxhZ3NDb25maWd1cmF0aW9uLkZsYWdzRW50cnkSQwoKYXR0cmlidXRlcxgEIAMoCzIvLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5BdHRyaWJ1dGVSZWZlcmVuY2USDwoHc3RyaW5ncxgFIAMoCRIPCgdyZWdleGVzGAYgAygJEjYKCHZlcnNpb25zGAcgAygLMiQuZGF0YWRvZy5mZmUuZmxhZ2dpbmcudWZjLnYxLlZlcnNpb24SFAoManNvbl9zdHJpbmdzGAggAygJEjoKCmNvbmRpdGlvbnMYCSADKAsyJi5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuQ29uZGl0aW9uEiQKHG9ic2VydmVfZnVsbF9ldmFsdWF0aW9uX2RhdGEYCiABKAgaTwoKRmxhZ3NFbnRyeRILCgNrZXkYASABKAkSMAoFdmFsdWUYAiABKAsyIS5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuRmxhZzoCOAEiMQoHVmVyc2lvbhISCgpjb21wb25lbnRzGAEgAygJEhIKCnByZXJlbGVhc2UYAiADKAki4wEKBEZsYWcSHQoVbWluaW11bV9mZWF0dXJlX2xldmVsGAEgASgNEkIKDnZhcmlhdGlvbl90eXBlGAIgASgOMiouZGF0YWRvZy5mZmUuZmxhZ2dpbmcudWZjLnYxLlZhcmlhdGlvblR5cGUSOgoKdmFyaWF0aW9ucxgDIAMoCzImLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5WYXJpYXRpb24SPAoLYWxsb2NhdGlvbnMYBCADKAsyJy5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuQWxsb2NhdGlvbiK0AQoJVmFyaWF0aW9uEhgKEGtleV9zdHJpbmdfaW5kZXgYASABKA0SHAoSc3RyaW5nX3ZhbHVlX2luZGV4GAIgASgNSAASFwoNaW50ZWdlcl92YWx1ZRgDIAEoA0gAEhcKDW51bWVyaWNfdmFsdWUYBCABKAFIABIXCg1ib29sZWFuX3ZhbHVlGAUgASgISAASGwoRanNvbl9zdHJpbmdfaW5kZXgYBiABKA1IAEIHCgV2YWx1ZSLxAQoKQWxsb2NhdGlvbhILCgNrZXkYASABKAkSJgoZdGFyZ2V0aW5nX2NvbmRpdGlvbl9pbmRleBgCIAEoDUgAiAEBEkAKDXBhcnRpdGlvbl9rZXkYAyADKAsyKS5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuUGFydGl0aW9uS2V5EjIKBnNwbGl0cxgEIAMoCzIiLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5TcGxpdBIaChJsb2dfZXhwb3N1cmVfZXZlbnQYBSABKAhCHAoaX3RhcmdldGluZ19jb25kaXRpb25faW5kZXgikwEKEkF0dHJpYnV0ZVJlZmVyZW5jZRIvCg10YXJnZXRpbmdfa2V5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5SAASRAoOYXR0cmlidXRlX3BhdGgYAiABKAsyKi5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuQXR0cmlidXRlUGF0aEgAQgYKBGtpbmQiVAoNQXR0cmlidXRlUGF0aBJDCghzZWdtZW50cxgBIAMoCzIxLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5BdHRyaWJ1dGVQYXRoU2VnbWVudCJYChRBdHRyaWJ1dGVQYXRoU2VnbWVudBIhChdvYmplY3Rfa2V5X3N0cmluZ19pbmRleBgBIAEoDUgAEhUKC2FycmF5X2luZGV4GAIgASgNSABCBgoEa2luZCKLBgoJQ29uZGl0aW9uEj0KA2FsbBgBIAEoCzIuLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5Db25kaXRpb25PcGVyYW5kc0gAEj0KA2FueRgCIAEoCzIuLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5Db25kaXRpb25PcGVyYW5kc0gAEkAKB251bWVyaWMYAyABKAsyLS5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuTnVtZXJpY0NvbmRpdGlvbkgAEjwKBXJlZ2V4GAQgASgLMisuZGF0YWRvZy5mZmUuZmxhZ2dpbmcudWZjLnYxLlJlZ2V4Q29uZGl0aW9uSAASUwoRc3RyaW5nX21lbWJlcnNoaXAYBSABKAsyNi5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuU3RyaW5nTWVtYmVyc2hpcENvbmRpdGlvbkgAElMKEXNoYTI1Nl9tZW1iZXJzaGlwGAYgASgLMjYuZGF0YWRvZy5mZmUuZmxhZ2dpbmcudWZjLnYxLlNoYTI1Nk1lbWJlcnNoaXBDb25kaXRpb25IABJVChJhdHRyaWJ1dGVfcHJlc2VuY2UYByABKAsyNy5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuQXR0cmlidXRlUHJlc2VuY2VDb25kaXRpb25IABJACgd2ZXJzaW9uGAggASgLMi0uZGF0YWRvZy5mZmUuZmxhZ2dpbmcudWZjLnYxLlZlcnNpb25Db25kaXRpb25IABJTChFzdHJpbmdfY29tcGFyaXNvbhgJIAEoCzI2LmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5TdHJpbmdDb21wYXJpc29uQ29uZGl0aW9uSAASYAoYc2hhMjU2X3N0cmluZ19jb21wYXJpc29uGAogASgLMjwuZGF0YWRvZy5mZmUuZmxhZ2dpbmcudWZjLnYxLlNoYTI1NlN0cmluZ0NvbXBhcmlzb25Db25kaXRpb25IAEIGCgRraW5kIi4KEUNvbmRpdGlvbk9wZXJhbmRzEhkKEWNvbmRpdGlvbl9pbmRleGVzGAEgAygNIoIBChBOdW1lcmljQ29uZGl0aW9uEhcKD2F0dHJpYnV0ZV9pbmRleBgBIAEoDRJCCgpjb21wYXJhdG9yGAIgASgOMi4uZGF0YWRvZy5mZmUuZmxhZ2dpbmcudWZjLnYxLk51bWVyaWNDb21wYXJhdG9yEhEKCWNvbXBhcmFuZBgDIAEoASJOCg5SZWdleENvbmRpdGlvbhIXCg9hdHRyaWJ1dGVfaW5kZXgYASABKA0SEwoLcmVnZXhfaW5kZXgYAiABKA0SDgoGbmVnYXRlGAMgASgIIlwKGVN0cmluZ01lbWJlcnNoaXBDb25kaXRpb24SFwoPYXR0cmlidXRlX2luZGV4GAEgASgNEhYKDnN0cmluZ19pbmRleGVzGAIgAygNEg4KBm5lZ2F0ZRgDIAEoCCKdAQoZU3RyaW5nQ29tcGFyaXNvbkNvbmRpdGlvbhIXCg9hdHRyaWJ1dGVfaW5kZXgYASABKA0SQQoKY29tcGFyYXRvchgCIAEoDjItLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5TdHJpbmdDb21wYXJhdG9yEhQKDHN0cmluZ19pbmRleBgDIAEoDRIOCgZuZWdhdGUYBCABKAgiwQEKH1NoYTI1NlN0cmluZ0NvbXBhcmlzb25Db25kaXRpb24SFwoPYXR0cmlidXRlX2luZGV4GAEgASgNEgwKBHNhbHQYAiABKAwSRwoKY29tcGFyYXRvchgDIAEoDjIzLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5TaGEyNTZTdHJpbmdDb21wYXJhdG9yEg4KBmxlbmd0aBgEIAEoDRIOCgZzaGEyNTYYBSABKAwSDgoGbmVnYXRlGAYgASgIImIKGVNoYTI1Nk1lbWJlcnNoaXBDb25kaXRpb24SFwoPYXR0cmlidXRlX2luZGV4GAEgASgNEgwKBHNhbHQYAiABKAwSDgoGc2hhMjU2GAMgAygMEg4KBm5lZ2F0ZRgEIAEoCCJKChpBdHRyaWJ1dGVQcmVzZW5jZUNvbmRpdGlvbhIXCg9hdHRyaWJ1dGVfaW5kZXgYASABKA0SEwoLZXhwZWN0X251bGwYAiABKAgihgEKEFZlcnNpb25Db25kaXRpb24SFwoPYXR0cmlidXRlX2luZGV4GAEgASgNEkIKCmNvbXBhcmF0b3IYAiABKA4yLi5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuVmVyc2lvbkNvbXBhcmF0b3ISFQoNdmVyc2lvbl9pbmRleBgDIAEoDSKdAQoMUGFydGl0aW9uS2V5Ej0KBHRpbWUYASABKAsyLS5kYXRhZG9nLmZmZS5mbGFnZ2luZy51ZmMudjEuVGltZVBhcnRpdGlvbktleUgAEkYKCXNoYXJkX21kNRgCIAEoCzIxLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5NZDVTaGFyZFBhcnRpdGlvbktleUgAQgYKBGtpbmQiEgoQVGltZVBhcnRpdGlvbktleSJTChRNZDVTaGFyZFBhcnRpdGlvbktleRIMCgRzYWx0GAEgASgJEhcKD2F0dHJpYnV0ZV9pbmRleBgCIAEoDRIUCgx0b3RhbF9zaGFyZHMYAyABKAQiuAEKBVNwbGl0EjsKBnJhbmdlcxgBIAMoCzIrLmRhdGFkb2cuZmZlLmZsYWdnaW5nLnVmYy52MS5QYXJ0aXRpb25SYW5nZRIXCg92YXJpYXRpb25faW5kZXgYAiABKA0SFgoJc2VyaWFsX2lkGAMgASgFSACIAQESMwoGcmVhc29uGAQgASgOMiMuZGF0YWRvZy5mZmUuZmxhZ2dpbmcudWZjLnYxLlJlYXNvbkIMCgpfc2VyaWFsX2lkIkQKDlBhcnRpdGlvblJhbmdlEhEKBGZyb20YASABKARIAIgBARIPCgJ0bxgCIAEoBEgBiAEBQgcKBV9mcm9tQgUKA190byq3AQoNVmFyaWF0aW9uVHlwZRIeChpWQVJJQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEhkKFVZBUklBVElPTl9UWVBFX1NUUklORxABEhoKFlZBUklBVElPTl9UWVBFX0lOVEVHRVIQAhIaChZWQVJJQVRJT05fVFlQRV9OVU1FUklDEAMSGgoWVkFSSUFUSU9OX1RZUEVfQk9PTEVBThAEEhcKE1ZBUklBVElPTl9UWVBFX0pTT04QBSrXAQoRTnVtZXJpY0NvbXBhcmF0b3ISIgoeTlVNRVJJQ19DT01QQVJBVE9SX1VOU1BFQ0lGSUVEEAASIAocTlVNRVJJQ19DT01QQVJBVE9SX0xFU1NfVEhBThABEikKJU5VTUVSSUNfQ09NUEFSQVRPUl9MRVNTX1RIQU5fT1JfRVFVQUwQAhIjCh9OVU1FUklDX0NPTVBBUkFUT1JfR1JFQVRFUl9USEFOEAMSLAooTlVNRVJJQ19DT01QQVJBVE9SX0dSRUFURVJfVEhBTl9PUl9FUVVBTBAEKpkBChBTdHJpbmdDb21wYXJhdG9yEiEKHVNUUklOR19DT01QQVJBVE9SX1VOU1BFQ0lGSUVEEAASIQodU1RSSU5HX0NPTVBBUkFUT1JfU1RBUlRTX1dJVEgQARIfChtTVFJJTkdfQ09NUEFSQVRPUl9FTkRTX1dJVEgQAhIeChpTVFJJTkdfQ09NUEFSQVRPUl9DT05UQUlOUxADKpQBChZTaGEyNTZTdHJpbmdDb21wYXJhdG9yEigKJFNIQTI1Nl9TVFJJTkdfQ09NUEFSQVRPUl9VTlNQRUNJRklFRBAAEigKJFNIQTI1Nl9TVFJJTkdfQ09NUEFSQVRPUl9TVEFSVFNfV0lUSBABEiYKIlNIQTI1Nl9TVFJJTkdfQ09NUEFSQVRPUl9FTkRTX1dJVEgQAiqXAgoRVmVyc2lvbkNvbXBhcmF0b3ISIgoeVkVSU0lPTl9DT01QQVJBVE9SX1VOU1BFQ0lGSUVEEAASHAoYVkVSU0lPTl9DT01QQVJBVE9SX0VRVUFMEAESIAocVkVSU0lPTl9DT01QQVJBVE9SX05PVF9FUVVBTBACEiAKHFZFUlNJT05fQ09NUEFSQVRPUl9MRVNTX1RIQU4QAxIpCiVWRVJTSU9OX0NPTVBBUkFUT1JfTEVTU19USEFOX09SX0VRVUFMEAQSIwofVkVSU0lPTl9DT01QQVJBVE9SX0dSRUFURVJfVEhBThAFEiwKKFZFUlNJT05fQ09NUEFSQVRPUl9HUkVBVEVSX1RIQU5fT1JfRVFVQUwQBip1CgZSZWFzb24SFgoSUkVBU09OX1VOU1BFQ0lGSUVEEAASGgoWUkVBU09OX1RBUkdFVElOR19NQVRDSBABEhAKDFJFQVNPTl9TUExJVBACEhEKDVJFQVNPTl9TVEFUSUMQAxISCg5SRUFTT05fREVGQVVMVBAEQkJaQGdpdGh1Yi5jb20vRGF0YURvZy9kZC1zb3VyY2UvZG9tYWlucy9mZmUvbGlicy9mbGFnZ2luZy91ZmMvdWZjcGJiBnByb3RvMw",[eO,eL]),0);function prepareRulesResponse(e){return e.evaluationRegexCache&&e.evaluationJsonCache||Object.defineProperties(e,{evaluationRegexCache:{value:new Map},evaluationJsonCache:{value:new Map}}),e}function encodeFlagsConfiguration(e){return toBinary(eD,e)}function wire_types_parseConfigurationWire(e){let t;try{t=JSON.parse(e)}catch(e){return}if("object"==typeof t&&null!==t&&"version"in t&&(1===t.version||2===t.version))return t}function decodeSafely(e){try{return e()}catch(e){return}}function readFlagKeyObfuscation(e,t){return(void 0===e||!1===e)&&void 0===t?{}:!0!==e||"object"!=typeof t||null===t||Array.isArray(t)?{error:"Invalid precomputed flag-key obfuscation metadata"}:"flag-key-sha256-v1"!==t.scheme?{error:"Unsupported precomputed flag-key obfuscation scheme"}:isLowercaseHex(t.salt,16)?{encoding:t}:{error:"Precomputed flag-key salt must contain 32 lowercase hexadecimal characters"}}function isLowercaseHex(e,t){return"string"==typeof e&&e.length===2*t&&/^[0-9a-f]+$/.test(e)}function isWireEntry(e){return isRecord(e)&&"string"==typeof e.response&&(void 0===e.fetchedAt||"number"==typeof e.fetchedAt&&Number.isFinite(e.fetchedAt))&&(void 0===e.etag||"string"==typeof e.etag)}function isPrecomputedWireEntry(e){return isWireEntry(e)&&(!("context"in e)||isEvaluationContext(e.context))}function parsePrecomputedConfigurationResponse(e){if(!isRecord(e))return{error:"Precomputed configuration response must be an object"};if(!isRecord(e.data))return{error:"Precomputed configuration response is missing data"};if(!isRecord(e.data.attributes))return{error:"Precomputed configuration response is missing attributes"};let{createdAt:t,flags:n,obfuscated:r,obfuscation:a}=e.data.attributes,o=readFlagKeyObfuscation(r,a);if("error"in o)return o;if("string"!=typeof t&&("number"!=typeof t||!Number.isFinite(t)))return{error:"Precomputed configuration createdAt is invalid"};if(!isRecord(n))return{error:"Precomputed configuration flags must be an object"};let i=[];for(let[e,t]of Object.entries(n)){if(o.encoding&&!isLowercaseHex(e,32))return{error:"Obfuscated flag keys must contain 64 lowercase hexadecimal characters"};isPrecomputedFlag(t)||i.push([e,"Invalid precomputed flag configuration"])}return{response:e,...i.length>0?{flagErrors:Object.fromEntries(i)}:{}}}function isEvaluationContext(e){return isRecord(e)&&(void 0===e.targetingKey||"string"==typeof e.targetingKey)&&Object.values(e).every(isJsonValue)}function isPrecomputedFlag(e){if(!isRecord(e)||"string"!=typeof e.allocationKey||"string"!=typeof e.variationKey||"string"!=typeof e.variationType||"string"!=typeof e.reason||"boolean"!=typeof e.doLog)return!1;let t=e.variationType;return"STRING"===t||"string"===t?"string"==typeof e.variationValue:"BOOLEAN"===t||"boolean"===t?"boolean"==typeof e.variationValue:["NUMBER","NUMERIC","INTEGER","number","integer","float"].includes(t)?"number"==typeof e.variationValue&&Number.isFinite(e.variationValue):("OBJECT"===t||"JSON"===t||"object"===t)&&"object"==typeof e.variationValue&&null!==e.variationValue&&isJsonValue(e.variationValue)}function isJsonValue(e){return null===e||"string"==typeof e||"boolean"==typeof e||("number"==typeof e?Number.isFinite(e):Array.isArray(e)?e.every(isJsonValue):isRecord(e)&&Object.values(e).every(isJsonValue))}function isRecord(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function configurationFromRulesBinary(e){return{rules:{response:prepareRulesResponse(fromBinary(eD,e))}}}function rulesConfigurationFromWire(e){if(void 0===e.rules)return{};if(!isWireEntry(e.rules))return{rulesError:"Invalid rules configuration wire entry"};let{rules:t}=e,n=decodeSafely(()=>prepareRulesResponse(fromBinary(eD,base64Decode(t.response))));return n?{rules:{...t,response:n}}:{rulesError:"Rules configuration response could not be decoded"}}function precomputedConfigurationFromWire(e){if(void 0===e.precomputed)return{};if(!isPrecomputedWireEntry(e.precomputed))return{precomputedError:"Invalid precomputed configuration wire entry"};let{precomputed:t}=e,n=decodeSafely(()=>parsePrecomputedConfigurationResponse(JSON.parse(t.response)));return n?"error"in n?{precomputedError:n.error}:{precomputed:{...t,...n}}:{precomputedError:"Precomputed configuration response is not valid JSON"}}function precomputedConfigurationToWire(e){let t={version:1};if(!e.precomputed)return t;let{context:n,response:r,fetchedAt:a,etag:o}=e.precomputed;return!0===r.data.attributes.obfuscated&&(t.version=2),t.precomputed={context:n,response:JSON.stringify(r),fetchedAt:a,etag:o},t}function configurationFromString(e){let t=wire_types_parseConfigurationWire(e);return t?{...precomputedConfigurationFromWire(t),...rulesConfigurationFromWire(t)}:{configurationError:"Invalid flags configuration wire format"}}function configurationToString(e){let t=precomputedConfigurationToWire(e);if(e.rules){let{response:n,fetchedAt:r,etag:a}=e.rules;t.rules={response:base64Encode(encodeFlagsConfiguration(n)),fetchedAt:r,etag:a}}return JSON.stringify(t)}(F=er||(er={}))[F.UNSPECIFIED=0]="UNSPECIFIED",F[F.STRING=1]="STRING",F[F.INTEGER=2]="INTEGER",F[F.NUMERIC=3]="NUMERIC",F[F.BOOLEAN=4]="BOOLEAN",F[F.JSON=5]="JSON",(O=ea||(ea={}))[O.UNSPECIFIED=0]="UNSPECIFIED",O[O.LESS_THAN=1]="LESS_THAN",O[O.LESS_THAN_OR_EQUAL=2]="LESS_THAN_OR_EQUAL",O[O.GREATER_THAN=3]="GREATER_THAN",O[O.GREATER_THAN_OR_EQUAL=4]="GREATER_THAN_OR_EQUAL",(L=eo||(eo={}))[L.UNSPECIFIED=0]="UNSPECIFIED",L[L.STARTS_WITH=1]="STARTS_WITH",L[L.ENDS_WITH=2]="ENDS_WITH",L[L.CONTAINS=3]="CONTAINS",(D=ei||(ei={}))[D.UNSPECIFIED=0]="UNSPECIFIED",D[D.STARTS_WITH=1]="STARTS_WITH",D[D.ENDS_WITH=2]="ENDS_WITH",(V=el||(el={}))[V.UNSPECIFIED=0]="UNSPECIFIED",V[V.EQUAL=1]="EQUAL",V[V.NOT_EQUAL=2]="NOT_EQUAL",V[V.LESS_THAN=3]="LESS_THAN",V[V.LESS_THAN_OR_EQUAL=4]="LESS_THAN_OR_EQUAL",V[V.GREATER_THAN=5]="GREATER_THAN",V[V.GREATER_THAN_OR_EQUAL=6]="GREATER_THAN_OR_EQUAL",(U=es||(es={}))[U.UNSPECIFIED=0]="UNSPECIFIED",U[U.TARGETING_MATCH=1]="TARGETING_MATCH",U[U.SPLIT=2]="SPLIT",U[U.STATIC=3]="STATIC",U[U.DEFAULT=4]="DEFAULT",new WeakMap;let eV=new Set(["datadoghq.com","us3.datadoghq.com","us5.datadoghq.com","ap1.datadoghq.com","ap2.datadoghq.com","uk1.datadoghq.com","datadoghq.eu"]);function buildEndpointHost(e,t="preview"){if("ddog-gov.com"===e)throw Error("ddog-gov.com is not supported for flagging endpoints");if("datad0g.com"===e)return`${t}.ff-cdn.datad0g.com`;if(!eV.has(e))throw Error(`Unsupported site: ${e}. Supported sites: ${[...eV].join(", ")}`);return`${t}.ff-cdn.${e}`}function timeStampNow(){return new Date().getTime()}let ConfigurationFetchError=class ConfigurationFetchError extends Error{constructor(e,t,n){super(t),this.code=e,this.status=n,this.name="ConfigurationFetchError"}};function abortError(e){var t;return(null==(t=null==e?void 0:e.reason)?void 0:t.name)==="TimeoutError"?new ConfigurationFetchError("timeout","Configuration fetch timed out"):new ConfigurationFetchError("cancelled","Configuration fetch cancelled")}let eU=new Set(["ENOTFOUND","EAI_AGAIN","ECONNREFUSED","ECONNRESET","ETIMEDOUT","EHOSTUNREACH","ENETUNREACH","EPIPE","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_SOCKET","UND_ERR_CLOSED","CERT_HAS_EXPIRED","DEPTH_ZERO_SELF_SIGNED_CERT","SELF_SIGNED_CERT_IN_CHAIN","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","ERR_TLS_CERT_ALTNAME_INVALID"]);function transportError(e,t){let{code:n,cause:r}=null!=t?t:{},a=[null==r?void 0:r.code,n].find(e=>"string"==typeof e&&eU.has(e));return new ConfigurationFetchError("transport",a?`${e} (${a})`:e)}function invalidOption(e){return new ConfigurationFetchError("invalid_options",`Invalid configuration fetch options: ${e}`)}async function fetchRulesConfiguration(e){var t,n;let r,a,{distributionChannel:o="server",apiKey:i,clientToken:l,env:s,site:u="datadoghq.com",timeoutMs:m=5e3,signal:d,fetch:p=globalThis.fetch}=null!=e?e:{};if(!["server","client"].includes(o))throw invalidOption("distributionChannel");if("client"===o?void 0!==i:void 0!==l)throw invalidOption("client"===o?"apiKey with client distribution channel":"clientToken with server distribution channel");let c="client"===o?l:i;if("string"!=typeof c||!c.trim()||/[\r\n]/.test(c))throw invalidOption("client"===o?"clientToken":"apiKey");if("string"!=typeof s||!s.trim())throw invalidOption("env");if(!Number.isInteger(m)||m<=0||m>0x7fffffff)throw invalidOption("timeoutMs");if("function"!=typeof p)throw invalidOption("fetch");if(void 0!==d&&(null===d||"boolean"!=typeof d.aborted||"function"!=typeof d.addEventListener||"function"!=typeof d.removeEventListener))throw invalidOption("signal");try{r=buildEndpointHost(u,`ufc-${o}`)}catch(e){throw invalidOption("site")}if(null==d?void 0:d.aborted)throw abortError(d);let f=new URL(`https://${r}/api/v2/feature-flagging/config/rules-based/${o}`);f.searchParams.set("dd_env",s);let b=new AbortController,cancel=()=>b.abort(abortError(d));null==d||d.addEventListener("abort",cancel,{once:!0});let g=setTimeout(()=>b.abort(new ConfigurationFetchError("timeout","Configuration fetch timed out")),m),E=timeStampNow();try{let e,n;try{a=await p(f.toString(),{method:"GET",headers:{Accept:"application/protobuf",["client"===o?"dd-client-token":"dd-api-key"]:c,"DD-Client-Library-Language":"nodejs","DD-Client-Library-Version":"2.5.0"},signal:b.signal,redirect:"manual"})}catch(e){throw transportError("Configuration request failed",e)}if(b.signal.throwIfAborted(),200!==a.status)throw new ConfigurationFetchError("http",`Configuration fetch returned HTTP ${a.status}`,a.status);let r=null==(t=a.headers.get("content-type"))?void 0:t.split(";")[0].trim().toLowerCase();if("application/protobuf"!==r)throw new ConfigurationFetchError("invalid_response","Expected a protobuf configuration response");try{e=new Uint8Array(await a.arrayBuffer())}catch(e){throw transportError("Configuration response could not be read",e)}if(b.signal.throwIfAborted(),0===e.length)throw new ConfigurationFetchError("invalid_response","Configuration response was empty");try{n=configurationFromRulesBinary(e)}catch(e){throw new ConfigurationFetchError("decode","Configuration protobuf could not be decoded")}if(n.rules){n.rules.fetchedAt=E;let e=a.headers.get("etag");null!==e&&(n.rules.etag=e)}return n}catch(e){if(b.signal.aborted)throw b.signal.reason;if(e instanceof ConfigurationFetchError)throw e;throw transportError("Configuration request failed",e)}finally{clearTimeout(g),null==d||d.removeEventListener("abort",cancel),b.abort();try{let e=null==a?void 0:a.body;!e||(null==a?void 0:a.bodyUsed)||("function"==typeof e.cancel?e.cancel().catch(()=>{}):null==(n=e.destroy)||n.call(e))}catch(e){}}}module.exports=em})();